(57)【要約】【課題】二次元ＤＭＡＣを用いたデータ転送制御装置において、従来技術に比較してデータバスの使用効率を高めることができるデータ転送制御装置及び方法を提供する。【解決手段】ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御部と、データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成するタグ生成部と、上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択部とを備える。【選択図】図７
2013050772.tif 000002
【特許請求の範囲】
【請求項１】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成するタグ生成手段と、
上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とするデータ転送制御装置。
【請求項２】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
コマンド発行の際にアドレスオフセットの情報を内部蓄積する記憶手段と、
データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とするデータ転送制御装置。
【請求項３】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成することと、
上記ダイレクトメモリアクセスコントローラが、上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することと含むことを特徴とするデータ転送制御方法。
【請求項４】
ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、コマンド発行の際にアドレスオフセットの情報を内部蓄積することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することとを含むことを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダイレクトメモリアクセス（以下、ＤＭＡという。）コントローラ（以下、ＤＭＡコントローラをＤＭＡＣという。）を用いたデータ転送制御装置及び方法に関する。
【背景技術】
【０００２】
ＤＲＡＭ（ダイナミックランダムアクセスメモリ）と周辺装置とがダイレクトにデータ交換を行う際、ＣＰＵなどの中央演算処理装置を介さずにデータ転送を行うＤＭＡという方式がしばしば用いられる。ＤＭＡはアドレスと転送数を指定し、起動すると、転送全体をＤＲＡＭにとって最適なアドレス、データ転送方向、バースト数を指定する、コマンドと呼ばれる単位に分割し、コマンド発行とデータ転送を、指定された転送数分完了するまで繰り返す。
【０００３】
図１は従来技術に係る二次元ＤＭＡＣの処理方法を示すメモリマップを示す図である。ＤＭＡの中でも二次元ＤＭＡと呼ばれるものは、図１に示すように、開始アドレス、一次転送量、アドレスオフセット、繰り返し数を指定し、開始アドレスから一次転送量に達すると、アドレスオフセットで指定されるアドレスを加算して、再び一次転送量分の転送を行うという手順を繰り返し数分行う。
【０００４】
また、近年は転送効率向上の観点から、データのバス幅を広げ、１サイクルで複数バイト（複数アドレス）のデータ転送を行うことが通常であり、コマンドでのアドレス指定は、アドレスの上位ビットを指定し、下位の数ビット（１サイクルで転送するアドレス分）は、データ転送時のバイトイネーブルで制御される。
【０００５】
図２は従来技術に係るデータの下位１６ビットが有効であるときの転送例を示すタイミングチャートである。データ幅が３２ビット（４バイト）のときは、コマンド発行時のアドレス下位２ビット（４バイト分）は、固定値となり、データ転送時にバイトイネーブルを制御することで、有効データの位置を決定する。図２は、データの下位１６ビットが有効の際の転送例である。
【０００６】
図３Ａは従来技術に係るコマンド先投げなしのＤＭＡＣの転送例を示すタイミングチャートであり、図３Ｂは従来技術に係るコマンド先投げありのＤＭＡＣの転送例を示すタイミングチャートである。コマンド発行からデータ転送完了までは、一定の遅延が発生することが知られており、近年では、この遅延によるバス使用効率の低下を回避するために、コマンドとデータのフェーズを分離し、図３Ｂに示すように、コマンドの先投げが可能な構成を持つＤＭＡコントローラ（ＤＭＡＣ）が考案され、既に知られている。
【０００７】
図４は従来技術に係るＤＭＡＣを用いたデータ転送制御装置を示すブロック図である。ＤＭＡＣが複数チャンネルある場合は、アービター回路（調停回路）で調停される。調停の際、アービター回路は、図４に示すように、各ＤＭＡＣ毎に固有なタグ、またはＩＤと呼ばれるものを割り付け、コマンドとデータの関連付けを行う。コマンド発行時にアービター回路により発行されたタグを対向のＩ／Ｆコントローラが受け取り、データ転送時に出力する。このようにすることでＤＭＡＣが複数チャンネル接続される場合においてもコマンドとデータをチャンネル毎に分類することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、今までのコマンド先投げ機能付きの二次元ＤＭＡＣでは、一次転送のコマンド発行完了後、もしデータ転送が開始していない場合には、次の一次転送の開始を待つ必要があり、一次転送量が少量の場合に、バス使用効率が十分に上がらないという問題点があった。
【０００９】
図５は従来技術に係るコマンド先投げ機能を有する二次元ＤＭＡＣのデータ転送を示す概念図であり、図６は図５の二次元ＤＭＡＣのデータ転送時のタイミングチャートである。上記の問題点について、図５及び図６を参照して以下に説明する。
【００１０】
図５は１コマンドで転送できるデータ量が８バイト、一次転送量がコマンド２回分の１６バイトで、一次転送を４回繰り返す二次元ＤＭＡＣ転送をイメージした図であり、図６は転送タイミングを示した図である。上述のように、アドレスの下位ビットに関してはデータ転送時のバイトイネーブルで指定するため、一次転送の２回目は、一次転送１回目のデータ転送開始まで待たなければならない。
【００１１】
例えば、特許文献１においては、スループットを向上させることが可能なデータ転送制御装置を提供することを目的としており、入力されたアドレスに対応したデータがキャッシュメモリに存在しないと判定された場合、このアドレスの直前に入力されたアドレスに対応したデータの出力を待たずに、このアドレスに対応したデータを読み出すためのコマンドを生成することにより、スループットを向上させる。すなわち、特許文献１において、ＤＭＡＣのデータ転送効率の向上目的で、キャッシュメモリと入力されたアドレスに対応するデータがキャッシュメモリに存在するか否かを判定する回路を保持し、ＤＲＡＭへのアクセス回数を減らす構成が開示されている。しかしながら、２回目以降の一次転送開始時に必要な転送開始待ち時間の影響によるデータ転送効率の低下という問題点を解消することができない。
【００１２】
本発明の目的は上記の問題点を解決し、二次元ＤＭＡＣを用いたデータ転送制御装置において、従来技術に比較してデータバスの使用効率を高めることができるデータ転送制御装置及び方法を提供することにある。
【課題を解決するための手段】
【００１３】
第１の発明に係るデータ転送制御装置は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成するタグ生成手段と、
上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とする。
【００１４】
第２の発明に係るデータ転送制御装置は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御装置であって、
転送先のアドレス、リードもしくはライトを指定するコマンドを発行するコマンド制御手段と、
コマンド発行の際にアドレスオフセットの情報を内部蓄積する記憶手段と、
データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する有効データ選択手段とを備えたことを特徴とする。
【００１５】
第３の発明に係るデータ転送制御方法は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に記憶装置制御回路よりタグ情報を受け取ることでどのコマンドに対するデータ転送か判別するために、コマンド発行の際にタグ情報を生成することと、
上記ダイレクトメモリアクセスコントローラが、上記タグ情報にアドレスオフセットの情報を含め、データ転送の際に当該データに対応するアドレスオフセットの情報を受けとり、上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することと含むことを特徴とする。
【００１６】
第４の発明に係るデータ転送制御方法は、ダイレクトメモリアクセスコントローラを用いたデータ転送制御方法であって、
上記ダイレクトメモリアクセスコントローラが、転送先のアドレス、リードもしくはライトを指定するコマンドを発行することと、
上記ダイレクトメモリアクセスコントローラが、コマンド発行の際にアドレスオフセットの情報を内部蓄積することと、
上記ダイレクトメモリアクセスコントローラが、データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力することとを含むことを特徴とする。
【発明の効果】
【００１７】
本発明に係るデータ転送制御装置及び方法によれば、コマンド発行時のタグにデータ転送時に必要なアドレスの下位ビットの情報を含めることで、二回目以降の一次転送のコマンド転送を、直前の一次転送のデータ転送開始を待つことなく開始できるので、ＤＭＡＣを用いたデータ転送装置で、データバスの使用効率を従来技術に比較して高めることができる。また、アドレスオフセットの情報を内部蓄積することで、タグを使用しない場合でも同様の作用効果を有し、さらに構成が簡単になる。
【図面の簡単な説明】
【００１８】
【図１】従来技術に係る二次元ＤＭＡＣの処理方法を示すメモリマップを示す図である。
【図２】従来技術に係るデータの下位１６ビットが有効であるときの転送例を示すタイミングチャートである。
【図３Ａ】従来技術に係るコマンド先投げなしのＤＭＡＣの転送例を示すタイミングチャートである。
【図３Ｂ】従来技術に係るコマンド先投げありのＤＭＡＣの転送例を示すタイミングチャートである。
【図４】従来技術に係るＤＭＡＣを用いたデータ転送制御装置を示すブロック図である。
【図５】従来技術に係るコマンド先投げ機能を有する二次元ＤＭＡＣのデータ転送を示す概念図である。
【図６】図５の二次元ＤＭＡＣのデータ転送時のタイミングチャートである。
【図７】本発明の一実施形態に係るＤＭＡＣを用いたデータ転送制御装置を示すブロック図である。
【図８】図７のデータ転送制御回路の動作を示すタイミングチャートである。
【図９】図７のデータ転送制御回路において一次転送を２回行った場合のタイミングチャートである。
【図１０】本発明の変形例に係るＤＭＡＣを用いたデータ転送制御装置を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００２０】
図７は本発明の一実施形態に係るＤＭＡＣを用いたデータ転送制御装置を示すブロック図である。本実施形態に係るデータ転送制御回路は、二次元ＤＭＡＣを用いたデータ転送制御回路において、一次転送開始の際に発生する可能性があるウエイト期間を削除し、データバスの使用効率を従来技術に比較して高めることを特徴としている。具体的には、コマンド転送発行時のタグに、データ転送時に必要なアドレスの下位情報を含めることで、データ転送時は、そのタグ情報を使ってアドレス制御する。
【００２１】
図７のデータ転送制御装置において、アービター回路１２には３つのＤＭＡＣ１１−０，１１−１，１１−２が接続される一方、アービター回路１２にインターフェースコントローラ１３が接続されている。各ＤＭＡＣ１１−０，１１−１，１１−２は、コマンド制御部２０と、タグ生成部２１と、有効データ選択部２２と、アドレス情報抽出部２３とを備えて構成される。ここで、インターフェースコントローラ１３は、コマンドタグ信号ｃｏｍ＿ｔａｇを順次先入れ先出しで格納するＦＩＦＯ（First-In Fist-Out）メモリ１３Ｍを備える。
【００２２】
例えばＤＭＡＣ１１−０のコマンド制御部２０は、コマンド発行を示すコマンド要求信号ｃｏｍ＿ｒｅｑと、アドレスを示すアドレス信号ａｄｄｒｅｓｓと、リードかライトを示すライト信号ｗｒｉｔｅとを含むコマンドを生成してアービター回路１２に出力する。タグ生成部２１は、コマンド制御部２０からのアドレスの下位４ビットａｄｄｒｅｓｓ［３：０］を受け取り、コマンド発行時に付与するコマンドタグ信号ｃｏｍ＿ｔａｇ（アドレスの下位４ビットａｄｄｒｅｓｓ［３：０］に対して、ＤＭＡＣのＩＤ（識別番号）を付加した信号をいう。）を生成してアービター回路１２を介してインターフェースコントローラ１３に出力する。これに応答して、インターフェースコントローラ１３は、コマンドタグ信号ｃｏｍ＿ｔａｇをＦＩＦＯメモリ１３Ｍに格納し、受信したコマンドに基づいてＤＲＡＭ１４からデータを読み出して受信した後、当該データに対応する、上記格納したコマンドタグ信号ｃｏｍ＿ｔａｇをＦＩＦＯメモリ１３Ｍから取り出してデータタグ信号ｄａｔａ＿ｔａｇとしてアービター回路１２を介して例えばＤＭＡＣ１１−０に返信する。一方、ＤＭＡＣ１１−０のアドレス情報抽出部２３及び有効データ選択部２２はそれぞれ、対向のアービター回路１２からデータｄａｔａ［１２７：０］と、データタグ信号ｄａｔａ＿ｔａｇを受け取り、アドレス情報抽出部２３はデータタグ信号ｄａｔａ＿ｔａｇからアドレス情報ａｄｄｒｅｓｓ［３：０]を抽出し、データｄａｔａ［１２７：０］の有効部の選択を行う。
【００２３】
なお、本動作例では、１コマンドで１２８ビット（１６バイト）転送する構成であるが、本発明はこれに限らず、１コマンドで８バイトや３２バイトなどで構成しても構わない。
【００２４】
図８は図７のデータ転送制御回路の動作を示すタイミングチャートである。図８において、コマンド発行を示す、コマンド要求信号ｃｏｍ＿ｒｅｑのアサートと同時にアドレスａｄｄｒｅｓｓ［３１：４］とコマンドタグ信号ｃｏｍ＿ｔａｇを発行する（Ｔ１）。本動作例はリード転送を示すため、ライト転送を示すライト信号ｗｉｒｔｅは、Ｌレベルである。コマンドタグ信号ｃｏｍ＿ｔａｇには、アドレスの下位ビット（ａｄｄｒｅｓｓ［３：０］）とＤＭＡＣ固有のＩＤ（識別番号）が含まれる。本動作例では２つ目のコマンドを続けて発行している（Ｔ２）。次いで、コマンド発行から一定の時間経過後、リードデータ（ｄａｔａ［１２７：０］）を対向のアービター回路１２から受け取る（Ｔ３）。この際、コマンド発行時に発行したコマンドタグ信号ｃｏｍ＿ｔａｇに対応するデータタグ信号ｄａｔａ＿ｔａｇも受け取る。ＤＭＡＣ１１−０は受け取ったデータタグ信号ｄａｔａ＿ｔａｇの中のアドレス情報（ａｄｄｒｅｓｓ［３：０］）の情報から、データ（ｄａｔａ［１２７：０］）のうち、有効なデータを選択してＣＰＵ１０に出力する。例えば、ａｄｄｒｅｓｓ［３：０］＝０のときは、ｄａｔａ［１２７：０］はすべて有効であるし、ａｄｄｒｅｓｓ［３：０］＝０ｘ４（１６進数表示）のときは、ｄａｔａ［３１：０］（リトルエンディアンの場合）の下記４バイト分は無効データと判断する。なお、ビッグエンディアンの場合は、上位４バイト分は無効データと判断する。
【００２５】
図９は図７のデータ転送制御回路において一次転送を２回行った場合のタイミングチャートである。従来技術に係るデータ転送制御装置では、図６に示すように、一次転送１回目のデータ転送開始を待って、２回目の転送を開始していたが、本実施形態に係るデータ転送制御装置では、上述したように、タグにアドレス情報が含まれているため、転送開始待ちは発生せず、図９に示すように、連続転送が可能となる。
【００２６】
図１０は本発明の変形例に係るＤＭＡＣを用いたデータ転送制御装置を示すブロック図である。図１０のデータ転送制御装置は、図７のデータ転送制御装置に比較して以下の構成が異なる。すなわち、各ＤＭＡＣ１１−０，１１−１，１１−２は、タグ生成部２１及びアドレス情報抽出部２３に代えてＦＩＦＯメモリ２４をさらに備え、アドレスオフセットの情報をタグを用いて送らず、ＦＩＦＯメモリ２４に内部蓄積することで、有効データ選択部２２は、データ転送の際に上記内部蓄積したアドレスオフセットの情報に基づいて上記記憶装置制御回路から受けとったデータから上記アドレスオフセットの情報に基づいて有効データの選択を行って出力する。これにより、図７のデータ転送制御装置と同様の作用効果を得るとともに、図７のデータ転送制御装置の構成よりも簡単になるという利点がある。
【産業上の利用可能性】
【００２７】
以上詳述したように、本発明に係るデータ転送制御装置及び方法によれば、コマンド発行時のタグにデータ転送時に必要なアドレスの下位ビットの情報を含めることで、二回目以降の一次転送のコマンド転送を、直前の一次転送のデータ転送開始を待つことなく開始できるので、ＤＭＡＣを用いたデータ転送装置で、データバスの使用効率を従来技術に比較して高めることができる。また、アドレスオフセットの情報を内部蓄積することで、タグを使用しない場合でも同様の作用効果を有し、さらに構成が簡単になる。
【符号の説明】
【００２８】
１０…ＣＰＵ、
１１−０，１１−１．１１−２…ＤＭＡコントローラ、
１２…アービター回路（調停回路）、
１３…インターフェースコントローラ、
１３Ｍ…ＦＩＦＯメモリ、
１４…ＤＲＡＭ、
２０…コマンド制御部、
２１…タグ生成部、
２２…有効データ選択部、
２３…アドレス情報抽出部、
２４…ＦＩＦＯメモリ。
【先行技術文献】
【特許文献】
【００２９】
【特許文献１】特開２００９−２１７６４０号公報
【図１】
2013050772.tif 000003
【図２】
2013050772.tif 000004
【図３Ａ】
2013050772.tif 000005
【図３Ｂ】
2013050772.tif 000006
【図４】
2013050772.tif 000007
【図５】
2013050772.tif 000008
【図６】
2013050772.tif 000009
【図７】
2013050772.tif 000010
【図８】
2013050772.tif 000011
【図９】
2013050772.tif 000012
【図１０】
2013050772.tif 000013