JP2006293927A - ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi - Google Patents

ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi Download PDF

Info

Publication number
JP2006293927A
JP2006293927A JP2005117308A JP2005117308A JP2006293927A JP 2006293927 A JP2006293927 A JP 2006293927A JP 2005117308 A JP2005117308 A JP 2005117308A JP 2005117308 A JP2005117308 A JP 2005117308A JP 2006293927 A JP2006293927 A JP 2006293927A
Authority
JP
Japan
Prior art keywords
transfer
data
address
stored
storage unit
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
Application number
JP2005117308A
Other languages
English (en)
Inventor
Atsushi Tanabe
田辺  淳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005117308A priority Critical patent/JP2006293927A/ja
Priority to US11/190,184 priority patent/US20060236001A1/en
Publication of JP2006293927A publication Critical patent/JP2006293927A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

【課題】
データ書込み転送におけるバス利用効率を維持しつつ、データ転送先の領域のデータへの書込み完了を保証可能とする。
【解決手段】
転送制御部285は転送データを前記バッファから転送先のアドレスに係るデバイスへ転送する際に、所定の転送単位にデータを分割して転送データの転送を行い、分割された転送データであって、最終転送に係るデータの場合には、データ転送先のアドレスに係るデバイスからレスポンスを必要とする転送方式で最終転送に係る転送データを転送し、また、分割された転送データであって、最終転送に係る転送データではない場合には、データ転送先のアドレスに係るデバイスからレスポンスを必要としない転送方式で転送する命令を送信する。
【選択図】 図3

Description

本発明は、ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムLSIに関し、特に、データ書込み転送におけるバス利用効率を維持しつつ、データ転送先の領域のデータへの書込み完了を保証可能な技術に関する。
近年のシステムLSI開発では、階層設計とすることで平行開発やブロックの再利用を促進して開発期間の短縮が図られている。階層設計とした時、複数の機能ブロック(デバイス)をバス結合したシステム構成となることが多い。
しかしながら、半導体の微細化の進展によって信号伝達の遅延時間全体の中で配線遅延が支配的となり、配線長が大きいバスを介したデータ転送を、従来の要求と応答が同期する方式で行うと、バス上の信号伝達に時間がかかるためバスを占有する時間が長くなり、バスの利用効率が低下して、システム全体の性能が低下する問題があった。
このため、バス上のデータ転送の要求と応答が非同期のスプリット・トランザクション方式などのバスインターフェースを用いて、バスの利用効率を向上させシステム性能を高める方法が知られている(例えば、非特許文献1参照。)。
また、DMAC装置を用いてCPUを介さずデータ転送することで、デバイス間のデータ転送の転送効率を高めることが行なわれている。更にDMAC装置に内蔵したFIFO方式で動作するデータバッファの使用量によって読出し制御と書込み制御を行ってデータ転送の転送効率を向上させる技術が開示されている(例えば、特許文献1参照。)。
特開2001−14281号公報(第2図) 「デザイン ウェーブ マガジン 2003年12月号」 CQ出版株式会社、第39−57頁
しかしながら、前者のバスインターフェースを用いたデータ書込み転送で、バスインターフェースから先に存在するデータバッファへの書込みとそのハンドシェーク応答で転送を終了するポステッドライト(Posted Write)方式を用いると、転送元デバイスはバスからの応答で転送を終了できるのでバスの利用効率やデータ転送効率は向上するが、転送先のデバイスでの実際のデータ書込み完了タイミングを知ることができない。
このため、転送元デバイスが転送終了時に転送先デバイスのデータの正当性を保証しなければならない時は、例えば転送先デバイスからの書込み完了信号を受信してからデータ転送を終了する非ポステッドライト(Non Posted Write)方式を用いてデータ書込み転送が行われる。この方式は、データ転送元のデバイスが転送先のデバイスからの書込み終了応答が得られるまで次の転送を開始できないため、データ転送効率が低下する問題がある。
後者のDMAC装置は、FIFO方式で動作するデータバッファに蓄えられたデータ量から、バスを介したデータ転送をシングル転送やバースト転送として読込み制御および書込み制御してデータ転送効率を向上させているが、データバッファがバス上に存在するような最近のシステムバスを介したデータ転送における、転送効率向上と書込み終了時のデータの書込み完了を保証することを同時に実現することに対応できない。
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、データ書込み転送におけるバス利用効率を維持しつつ、データ転送先の領域のデータへの書込み完了を保証可能なダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムLSIを提供することにある。
本願発明の一態様によれば、データ転送に係るデータ転送元のアドレス、データ転送先のアドレス、及び、データ転送に係るデータのサイズに関する情報を含む転送情報を受け取り、前記転送情報を記憶する内部レジスタと、前記内部レジスタに記憶された前記データ転送元のアドレス及びデータ転送に係るデータのサイズに基づいて、前記データ転送元のアドレスに係るデバイスから転送データを取得し、前記データ転送に係るデータ転送先のアドレスに基づいて、前記データ転送先のアドレスに係るデバイスへ転送データを送信する命令である転送命令を送信する転送制御部と、前記転送制御部が取得した転送データを記憶するバッファと、前記転送制御部が送信した転送命令を受信し、受信した転送命令に基づいて前記データ転送元アドレスに係るデバイスから転送データを受信し、前記バッファに記憶された転送データを前記バッファに送信し、前記受信した転送データを前記転送先のアドレスに係るデバイスに送信するインターフェースと、を有し、
前記転送制御部は、前記転送データを前記バッファから前記転送先のアドレスに係るデバイスへ転送する際に、所定の転送単位にデータを分割して転送データの転送を行い、前記分割された転送データであって、最終転送に係るデータの場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要とする転送方式で前記最終転送に係る転送データを転送し、また、分割された転送データであって、最終転送に係る転送データではない場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要としない転送方式で転送する命令を送信することを特徴とするダイレクトメモリアクセス制御装置が提供される。
本発明に係るダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムLSIによれば、データ書込み転送におけるバス利用効率を維持しつつ、データ転送先の領域のデータへの書込み完了を保証可能とすることができる。
本発明に係るダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムLSIの実施形態について、図面を参照しながら詳細に説明する。
(ダイレクトメモリアクセス制御装置を含むシステムLSI)
図1は、本実施形態のダイレクトメモリアクセス制御装置を含むシステムLSIの概略構成図である。このシステムLSI1は、データ転送の際にデータ転送の制御を行うダイレクトメモリアクセス制御(DMAC)装置200と、各種命令を実行し、DMAC装置200にデータ転送の指示を行うCPU100と、接続されたデバイスとのデータの転送を行うバス300と、各種データを記憶するデバイス400とデバイス500とを有する。
ここで、CPU100がDMAC装置200に対して、DMA要求を行った場合について説明する。本実施形態においては、CPU100がDMAC装置200にDMA要求を行う際には、DMA転送開始命令、転送をすべき転送元のアドレス、転送先のアドレス、及び転送すべきデータのサイズ等の転送情報を出力する。この転送情報の出力は、バス300を経由して出力しても良いし、CPU100とDMAC装置200とを直接接続する制御線を準備して、直接出力するようにしてもよい。
次に、転送情報を受け取ったDMAC装置200はDMA転送開始命令によって、DMA転送のプロセスを開始する。まず、転送をすべき転送元のアドレスに基づいて、転送元のアドレスに係るデバイスを認定する。また、DMAC装置200は、転送先のアドレスに基づいて、転送先のアドレスに係るデバイスを認定する。本実施形態においては、転送元のアドレスに係るデバイスとしてデバイスA(400)が認定され、また、転送先のアドレスに係るデバイスとしてデバイスB(500)が認定されたものとする。DMAC装置200は、デバイスAの所定のアドレス(アドレスAとする)から始まるデータであって、転送すべきデータのサイズに係る大きさのデータをバス300を経由して取得し(矢印20)、デバイスBの所定のアドレス(アドレスBとする)から始まる記憶領域に対し、バス300を経由して当該データを書き込む。書き込みが終了した際には、DMAC装置200はデータ転送完了信号をCPU100に送る。データ転送完了信号の送信に関しても、バス300を経由して出力しても良いし、CPU100とDMAC装置200とを直接接続する制御線10を準備して、直接出力するようにしてもよい。
ここで、デバイスA及びBはデータを記憶する記憶装置であり、ROM(Read Only Memory)やRAM (Random Access Memory)を含むメモリ装置、ハードディスク装置を含み、また、バス300が例えばブリッジ等に接続され、ブリッジ越しに記憶装置にアクセスする場合には当該ブリッジも含まれ得る。
バス300は、このバス300に接続されたCPU100、DMAC装置200、若しくはデバイスA、Bとのインターフェースを行うバスインターフェース41,42,43,及び44を有する。本実施形態におけるバス300はパイプライン構造を有しており、バス300内には、パイプラインレジスタ51,52,53,及び54を有している。これらパイプラインレジスタは、例えばフリップフロップを用いることが出来る。前述の通り、バス300は、パイプライン構造を有し、バス300に接続された各種のデバイスはパイプラインレジスタを経由して接続される。データ転送時には、単位時間(クロック)毎にパイプラインレジスタに記憶されたデータが次のパイプラインレジスタに転送され、最終的には目的のデバイスに到達する。すなわち、バス300を経由する場合には、データは目的のデバイスに転送されるまでに通常数サイクル掛かる。
例えばDMAC装置200がデバイスAからデータの読み込みを行う際には、バスインターフェース42はDMAC装置200から読み込みの命令を受け取り、バスインターフェース43に通信を行う。この通信の際には、パイプラインレジスタ52、53を経由する。バスインターフェース43は、デバイスAから所定のデータを受け取り、バス300内のパイプラインレジスタ52,53を経由してバスインターフェース42にデータを送信する。そして、バスインターフェース42はDMAC装置200に所定のデータを送信する。
図2は、本実施形態のバス300を説明するための図面である。上述の通り、本実施形態のバス300はパイプライン構造を有しており、バスインターフェース45,46,47,48は、パイプラインレジスタ55,56,57,58,59,60,61,62,63,及び64を経由して、データの転送を行う事が出来る。例えば、バスインターフェース45とバスインターフェース48とがでデータ転送を行う場合には、パイプラインレジスタ55,56,57,60,63,及び64を経由する。
ここで、DMAC装置200に内蔵できるデータバッファのサイズの制限や、DMAのデータ転送で用いられる転送効率の高いバーストモード転送がシステムバスを一つのデバイスからのアクセスで連続占有することになり他のデバイスからのシステムバスへのアクセスが一定期間行えないという事態が想定される。このような事態を回避するため、バーストモード転送の連続転送数に上限を設けて運用されることなどからデータ転送の転送単位の最大値が存在するようにしてもよい。
その場合には、転送されるデータを分割して転送する。分割してデータを転送するので、まず、分割されたデータであって、最初のデータがバスインターフェース45から送信された場合には、その間に存在するパイプラインレジスタの個数のクロック数後にバスインターフェース48に到達し、その後分割された個数だけデータが連なって送信されるようにしてもよい。
(ダイレクトメモリアクセス制御装置)
図3は、本発明に係るダイレクトメモリアクセス制御装置200の構成を示すブロック図である。このダイレクトメモリアクセス制御装置200は、CPU100から送信された転送情報及び開始信号を受信し、これら転送情報及び開始フラグを記憶するレジスタ280と、レジスタ280に記憶された開始フラグに基づいてデータ転送処理を開始し、レジスタ280に記憶された転送情報に基づいてデータ転送処理を行い、データ転送処理が完了した際には、CPU100に完了信号を送信する転送制御部285と、転送制御部285のデータ転送処理に係るデータを一時的に記憶するバッファ290と、バッファ290及びバス300のバスインターフェースに電気的接続され、転送制御部285の転送命令に基づいて所定のデバイスからデータを受信し、受信したデータをバッファ290に送信し、前記受信したデータを所定のデバイスに送信するDMACインターフェース295と、を有する。ここで、レジスタ280は、転送情報に含まれる転送元アドレスを記憶する転送元アドレス記憶部281と、転送先のアドレスを記憶する転送先アドレス記憶部282と、データ転送を行う際の転送数を記憶する転送数アドレス記憶部283と開始信号を受け取ったか否かの情報を記憶する開始フラグ記憶部284と、を有する。
次に、本実施形態のDMAC装置200の動作について説明する。まず、CPU100から開始信号及び書き込み信号を受信する。これら信号は続けて送信されるようにしても良いし、まず、書き込み信号を受信し、その後に開始信号を受信するようにしてもよい。ここで、この書き込み信号は転送情報を含む。転送情報とは、転送を行うべきデータの転送元のアドレス、転送を行うべきデータの転送先のアドレス、及び、転送を行うべきデータのサイズである。転送元アドレスは転送元アドレス281に記憶され、転送先アドレスはアドレス記憶部282に記憶される。また、転送を行うべきデータのサイズは転送数記憶部283に記憶される。
転送制御部285は、開始信号を検知した際には、データ転送処理を開始する。この検知方法は、開始フラグ記憶部284を周期的または常時監視して検知するようにしても良いし、CPU100からの信号を直接入力するようにしてもよい。後者の場合には開始フラグ記憶部284を備えなくても実施する事が出来る。開始信号を検知した転送制御部285は、次に、転送元アドレス記憶部281に記憶された転送元アドレス、転送先アドレス記憶部282に記憶された転送先アドレス、及び転送数記憶部283に記憶された転送数を読み込む。転送制御部285は、転送元アドレスに基づいて、転送すべきデータが記憶されたデバイス(図示せず)を特定し、DMACインターフェース295に転送すべきデータを読み込むように命令する。命令を受けたDMACインターフェース295は、バス300のバスインターフェース49に対して、データ転送要求を行う。バスインターフェース49はバス300内のパイプラインレジスタ(図示せず)を経由して所定のデバイス(図示せず)から所定のデータを準備し、DMACインターフェース295に送信する。DMACインターフェース295は受信したデータをバッファ290に送信し、バッファ290は一時的にデータを記憶する。ここまでの処理を読み込み転送処理(リード転送処理)という。
次に、転送制御部285は、転送先アドレス記憶部282に記憶された転送先アドレスに基づいて、転送すべきデータが記憶されたデバイスを特定し、DMACインターフェース295に転送すべきデータを読み込むように命令する。命令を受けたDMACインターフェース295は、バス300のバスインターフェース49に対して、データ転送要求を行う。バスインターフェース49はバス300内のパイプラインレジスタ(図示せず)を経由して、バッファ290に記憶されたデータを特定されたデバイス(図示せず)に転送する。
データを分割して転送を行う場合には、転送すべきデータが記憶されたデバイスからデータを読み込み、転送先のデバイスにデータを書き込む処理を所定の回数繰り返すことで、転送すべきデータの総てについて読み込み処理及び書き込み処理を行う。
転送が終了した際には、転送制御部285は転送先のデバイスから完了信号をDMACインターフェース295を経由して受信する。転送制御部285は完了信号を受信した際には、CPU100に対して、データの転送が完了した旨を通知するために、完了信号を送信し、転送処理を終了する。この転送先デバイスにデータを転送する処理を書き込み転送処理(ライト転送処理)という。
図4は、本実施形態のダイレクトメモリアクセス制御装置200を説明するための概略回路構成図である。DMAC装置200は、CPU100よりCPU100からのレジスタ選択および書込み信号201とCPU100からの設定のための専用バス202を経由して転送元アドレスレジスタ210、転送先アドレスレジスタ220、転送数レジスタ230に、それぞれ転送先アドレス(アドレスA)、転送元アドレス(アドレスB)、転送数(1K)が入力設定され、CPUからのデータ転送開始信号203によってデータ読出し転送とデータ書込み転送とが一組で実現するデータ転送が開始される。
次に、転送数レジスタ230の値と転送単位の値とを比較回路232で比較し、転送単位と等しいかまたは小さいかを判断する。ここで、本実施形態においては、転送単位を16ワードとする。しかしながら、本発明に係るダイレクトメモリアクセス制御装置においては、これに限られず実施することが可能である。この判断で、転送数レジスタ230に記憶された値が転送単位の値よりも大きい場合には、リード転送制御部240は、転送元アドレスレジスタ210の出力値アドレスAとバス動作要求としてリードコマンドをDMACインターフェース270に出力する。DMACインターフェース270はバス300のインターフェース規約に従ったタイミング(図示しない)と制御を行ってデバイスAのアドレスAから始まる転送単位の16ワードのデータを読み出してバス300のRデータを通じて、転送用バッファおよび制御部260内のFIFO方式で動作するデータバッファに読出しデータを書き込む。
データ読出し転送が終了すると、リード転送制御部240は、加算回路211を用いて転送元レジスタ210の内容に転送用バッファおよび制御ブロック260から出力される転送単位の値を加算する。ライト転送制御部250は、転送先アドレスレジスタ220の出力値アドレスBとともに、今回のデータ書込み転送が最終転送単位の転送でないため、バス動作要求として、書き込み先のデバイスからレスポンスを要求しないデータ転送方式のコマンドをDMACインターフェース270に出力する。ここで、本実施形態においては、ポステッドライト(Posted Write)コマンドを出力する。同時に転送用バッファおよび制御部260のデータバッファから読出したデータをDMACインターフェース270に出力する。一方、データの書き込み転送が最終転送単位の転送の場合には、バス動作要求として、書き込み先のデバイスからレスポンスを要求するデータ転送方式のコマンドをDMACインターフェース270に出力する。ここで、本実施形態においては、非ポステッドライト(Non Posted Write)コマンドをDMACインターフェース270に出力する。
ここで、このポステッドライト(Posted Write)方式のデータ転送及び非ポステッドライト(Non−Posted Write)方式のデータ転送について説明する。まずポステッドライト方式による転送とは、書き込み先のデバイスからレスポンスを必要としない転送方式をいい、OCP−IP(Open Core Protocol International Partnership)が規格の標準化を推進しているOCP(Open Core Protocol)1.0に規定されるものである。また、非ポステッドライト(Non−Posted Write)方式のデータ転送とは、書き込み先のデバイスからレスポンスを必要とする転送方式をいい、OCP2.0なって規定されるようになったものである。
図7は、ポステッドライト方式でのライト転送処理のタイミングチャートを示す図である。DMACインターフェース270は、T1のサイクルに、Posted Writeコマンドをマスタバス要求(MReq)に出力し、バス300からのハンドシェーク信号(MReqAck)の応答を得て、アドレスBとデータバッファから読出したデータを、それぞれマスタアドレス(MADR)とマスタ書込みデータ(MWData)に出力(A1、D1と図示)する。書込みデータのハンドシェーク信号(MWDataAck)の応答を得て、続くT2、T3、T4のサイクルにデータバッファから読出したデータを書込みデータとして連続出力してバースト転送する。
Posted Write方式の書込みでは、書込み先のバッファ(本実施形態では、バス300上にも存在する)にデータを書込んでハンドシェーク信号が得られた時点で処理が終了するため、スレーブデバイス側のバスインターフェースでの動作の説明は省略する。また、DMAC装置は、T5サイクルから新たなバス動作要求を開始できる。
図8は、非ポステッドライト方式でのライト転送処理のタイミングチャートを示す図である。DMACインターフェース270は、T1のサイクルに、Non Posted Writeコマンドをマスタバス要求(MReq)に出力し、バス300からのハンドシェーク信号(MReqAck)の応答を得て、アドレスBとバッファ260から読出したデータを、それぞれマスタアドレス(MADR)とマスタ書込みデータ(MWData)に出力(A1、D1と図示)する。書込みデータのハンドシェーク信号(MWDataAck)の応答を得て、続くT2、T3、T4のサイクルにデータバッファから読出したデータを書込みデータとして連続出力してバースト転送する。
ここで、図7および図8タイミング図は、表記の都合上4サイクルでデータ転送を終了しているが、転送単位が16の場合は、16サイクル連続してデータがバス300のWデータを通じて出力される。
Non Posted Write方式での書込みでは、バスインターフェースはスレーブデバイスからの書込み終了確認応答を得るまでデータ書込み転送は終了しない。以下スレーブデバイス側の動作を説明する。
Tnサイクル(バス300上のDMAC装置からデバイスBまでの信号伝達の遅延時間はN−1サイクルとする)にスレーブデバイス(デバイスB)側のバスインターフェースは、バス300からNon Posted WriteコマンドとアドレスA1をそれぞれスレーブバス要求(SReq)、スレーブアドレス(SADR)を通じて入力し、要求応答信号(SReqAck)を出力する。要求応答信号を得てスレーブ書込みデータ(SWData)がバス300から出力され、デバイスBのデータ受信が可能な期間バスインターフェースからの書込みデータのハンドシェーク信号(SWDataAck)の応答を出力し、この実施形態では連続したTn+1、Tn+2、TN+3のサイクルに書込みデータがデバイスBのバスインターフェースに入力される。
また、本実施形態のデバイスBのバスインターフェースからデバイスBの該当するアドレスに実際にデータが書込みが2サイクル後に終了するので、デバイスBのバスインターフェースはTn+5サイクルに書込み終了を示すスレーブ応答信号(SResp)をバス300に出力する。
デバイスBからDMACまでのバス300上の信号伝達の遅延時間(3サイクル)後のTmサイクルに、DMACのDMACインターフェース270は、デバイスBでの書込み終了を示すマスタ応答信号(MResp)を入力後、ライト転送制御部250にデータ書込み転送が終了したことを通知する。
DMAC装置の転送単位のデータ書込み転送が終了すると、ライト転送制御部250は、加算回路221を用いて転送先アドレスレジスタ220の内容に転送単位の値を加算するとともに、減算回路231を用いて転送数レジスタ230の内容から転送単位の値を減算する。次に、転送数レジスタ230の値と転送単位の値を比較回路232で比較し、転送単位と等しいかまたは小さい時は、最終転送単位の処理を行う。以下、この時の転送数レジスタ230の値を最終転送での転送数と表記する。
続いて、リード転送制御部240は、転送元アドレスレジスタ210の値とバス動作要求としてリードコマンドをDMACインターフェース270に出力するとともに転送用バッファおよび制御部260に転送数レジスタ230の値を出力する。DMACインターフェース270は転送用バッファおよび制御部260と連携してバス300のインターフェース規約に従ったタイミング(図示しない)と制御を行ってデバイスAの転送元アドレスから始まる転送数レジスタ230の値の数(最終転送での転送数)のデータを読み出してバス300のRデータを通じて、転送用のバッファおよび制御部260内のデータバッファに読出しデータを書き込む。データ読出し転送が終了すると、リード転送制御部240は、加算回路211を用いて転送元レジスタ210の内容に転送用バッファおよび制御ブロック260から出力される実転送数の値を加算する。
次に、ライト転送制御部250は、転送先アドレスレジスタ220の値とともに、今回のデータ書込み転送が最終ブロックの転送となるため、バス動作要求としてNon Posted WriteコマンドをDMACインターフェース270に出力する。同時に転送用のバッファおよび制御部260のバッファから読出したデータをDMACインターフェース270に出力する。
ライト転送制御部250は、加算回路221を用いて転送先アドレスレジスタ220の値に実転送数を加算するとともに、減算回路231を用いて転送数レジスタ230の値から実転送数を減算するとともに、CPU100へのデータ転送完了信号204を通じて、CPU100にデータ転送が完了したことを通知する。
以上のように、本実施形態のダイレクトメモリアクセス制御装置を用いれば、最終転送ブロック以外は、デバイスからの書き込み完了信号(レスポンス)を要求しないPosted Write方式でデータ書込み転送を行い、最終転送ブロックのみをデバイスからの書き込み完了信号(レスポンス)を要求するNon Posted Write方式のデータ書込み転送するようにする。これにより、Posted Write方式による転送効率とほぼ同様の効率を維持しながら、CPUへのDMA要求完了通知が行われた時に、データ転送先の領域の全てのデータ書込み完了が保証できるシステムを提供できる。
なお、上述のデータバッファは、FIFO方式で動作するものに限定される訳ではなく、任意の箇所から任意の順序で書込み読出しが制御できる構造のデータバッファであってもよい。この場合は、例えば、DMAC装置がデータ転送時にデータ配列の入れ替えを行いながら転送することが可能となる。
(ダイレクトメモリアクセス制御装置を用いたデータ転送方法)
図5は、ダイレクトメモリアクセス制御装置を用いたデータ転送方法を示すフローチャートであり、DMAC装置200がデバイスAからデバイスBへのデータ転送を行う時の処理手順を示すフローチャートである。まず、CPU100はDMAC装置200に対して、デバイスAのアドレスAから1Kワード分のデータをデバイスBのアドレスBから始まる領域に転送させるための転送情報をレジスタに設定し、転送処理動作を起動する(ステップS100)。次に、デバイスAのアドレスAから1Kワード分のデータをデバイスBのアドレスBから始まる領域に転送する処理を行う(ステップS200)。この処理は基本的には、デバイスAのアドレスAから始まるデータを読み込み、デバイスBのアドレスBから始まる領域に書き込みを行う。データ転送が完了した際には、DMAC装置200はCPU100に対してデータ転送の終了を通知する(ステップS130)。
図6は、図5のステップS200の詳細の処理を説明するフローチャートである。通常、CPUからのDMA要求の転送数は、転送単位の転送数より大きいので、CPUからのDMA要求によるデータ転送の処理は、複数に分割して転送が行われる。
ここで、図6に示したフローチャートにおいては、データ転送の単位を16とする。まず、転送すべきデータの転送数の残りが所定以下か否かを判定する(ステップS210)。本実施形態においては、データの転送単位を16ワードとしたので、16と等しいか、若しくは小さいかを判定する。すなわち、この判定において、転送すべきデータの最後のデータか否かを判定するようにしてある。この判定にて、最後のデータではないと判定された場合には、デバイスAのアドレスから16ワードのデータをDMAC装置のバッファ290に読み込む(ステップS220)。次に、DMAC装置のバッファ290内の16ワードのデータをデバイスBのアドレスBから始まる領域に第1の方式で書き込む(ステップS230)。本実施形態においては、この第1の方式として、書き込み先のデバイスからのレスポンスを必要としないポステッドライト方式を採用するようにしてもよい。次に、転送元アドレスが格納される転送元アドレスレジスタ210の値に、加算回路211を用いて転送単位の値を加算して、加算結果を転送元アドレスレジスタ210に格納する。また、転送先アドレスが格納される転送先アドレスレジスタ220の値に、加算回路221を用いて転送単位の値を加算して、加算結果を転送先アドレスレジスタ220に格納する。さらに、転送数が格納される転送数レジスタ230の値に、減算回路231を用いて転送単位の値を減算して、減算結果を転送数レジスタ230に格納する。これらの処理が終わったらステップS210の判断を行う。
このようにして、ステップS210からステップS240の処理を行い、デバイスAのデータを転送単位ずつ読み込み、読み込んだ転送単位のデータをデバイスBに書き込み、これらを複数回行う。残り転送数が転送単位以下になった場合には、次に、デバイスAのアドレスAから残りの転送数ワードのデータをDMAC装置のバッファ290に読み込み(ステップS250)このバッファ290内の残り転送数ワードのデータをデバイスBのアドレスBから始まる領域に第2の方式で書き込む(ステップS260)。本実施形態においては、この第2の方式として、書き込み先のデバイスからのレスポンスを必要とする非ポステッドライト方式を採用するようにしてもよい。
以上のように、最終転送ブロック以外は、書き込み転送においてレスポンスを必要としない転送方式でデータ転送を行い、最終転送ブロックのみを書き込み転送においてレスポンスを要求する転送方式でデータ転送を行うようにする。これにより、レスポンスいを必要としない転送方式の転送効率とほぼ同様の効率を維持しながら、CPUへのDMA要求完了通知が行われた時に、データ転送先の領域の全てのデータ書込み完了が保証できるのである。
本実施形態のダイレクトメモリアクセス制御装置を含んだシステムLSIの概略構成図である。 本実施形態のバス300を説明するための図面である。 本発明に係るダイレクトメモリアクセス制御装置200の構成を示すブロック図である。 本実施形態のダイレクトメモリアクセス制御装置200を説明するための概略回路構成図である。 ダイレクトメモリアクセス制御装置を用いたデータ転送方法を示すフローチャートである。 図5のステップS200の詳細の処理を説明するフローチャートである。 ポステッドライト方式でのライト転送処理のタイミングチャートを示す図である。 非ポステッドライト方式でのライト転送処理のタイミングチャートを示す図である。
符号の説明
41,42,43,44,45,46,47,48 バスインターフェース
51,52,53,54,55,56,57,58,59,60,61,62,63,64 パイプラインレジスタ
100 CPU
200 ダイレクトメモリアクセス制御(DMAC)装置
201 CPUからの書き込み信号バス
202 CPUからの設定のためのバス
203 CPUからのデータ転送開始信線
204 CPUからのデータ転送完了信号線
210 転送元アドレスレジスタ
211,221 加算回路
220 転送先アドレスレジスタ
230 転送数レジスタ
231 減算回路
240 リード転送制御部
250 ライト転送制御部
260 転送用バッファ及び制御部
270,295 DMACインターフェース
280 レジスタ
281 転送元アドレス記憶部
282 転送先アドレス記憶部
283 転送数記憶部
284 開始フラグ
285 転送制御部
290 バッファ
300 バス
400 デバイスA
500 デバイスB

Claims (5)

  1. ダイレクトメモリアクセス制御装置において、
    データ転送に係るデータ転送元のアドレス、データ転送先のアドレス、及び、データ転送に係るデータのサイズに関する情報を含む転送情報を受け取り、前記転送情報を記憶する内部レジスタと、
    前記内部レジスタに記憶された前記データ転送元のアドレス及びデータ転送に係るデータのサイズに基づいて、前記データ転送元のアドレスに係るデバイスから転送データを取得し、前記データ転送に係るデータ転送先のアドレスに基づいて、前記データ転送先のアドレスに係るデバイスへ転送データを送信する命令である転送命令を送信する転送制御部と、
    前記転送制御部が取得した転送データを記憶するバッファと、
    前記転送制御部が送信した転送命令を受信し、受信した転送命令に基づいて前記データ転送元アドレスに係るデバイスから転送データを受信し、前記バッファに記憶された転送データを前記バッファに送信し、前記受信した転送データを前記転送先のアドレスに係るデバイスに送信するインターフェースと、を有し、
    前記転送制御部は、前記転送データを前記バッファから前記転送先のアドレスに係るデバイスへ転送する際に、所定の転送単位にデータを分割して転送データの転送を行い、前記分割された転送データであって、最終転送に係るデータの場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要とする転送方式で前記最終転送に係る転送データを転送し、また、分割された転送データであって、最終転送に係る転送データではない場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要としない転送方式で転送する命令を送信することを特徴とするダイレクトメモリアクセス装置。
  2. 前記内部レジスタは、
    データ転送元のアドレスを記憶するデータ転送元アドレス記憶部と、
    データ転送先のアドレスを記憶するデータ転送先アドレス記憶部と、
    データ転送に係るデータのサイズを記憶する転送数記憶部と、
    を有することを特徴とする請求項1記載のダイレクトメモリアクセス装置。
  3. 前記転送制御部は、分割された転送データを転送する度に、データ転送元アドレス記憶部に記憶されたアドレスと前記転送単位とを加算し、データ転送先アドレス記憶部に記憶されたアドレスと前記転送単位とを加算し、転送数記憶部に記憶されたデータのサイズから前記転送単位を減算し、前記転送数記憶部に記憶されたデータサイズが前記転送単位以下になった場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要とする転送方式で前記最終の転送データを転送する命令を送信することを特徴とする請求項2記載のダイレクトメモリアクセス装置。
  4. 前記転送制御部は、
    データ転送元アドレス記憶部に記憶されたアドレスに係るデバイスから前記転送単位の転送データを前記バッファに転送し、
    前記転送された前記転送単位の転送データを前記データ転送先アドレス記憶部に記憶されたアドレスに係るデバイスに、前記データ転送先のアドレスに係るデバイスからレスポンスを必要としない転送方式で転送し、
    前記データ転送元アドレス記憶部に記憶されたアドレスと前記転送単位とを加算してその結果を前記データ転送元アドレス記憶部に記憶し、データ転送先アドレス記憶部に記憶されたアドレスと前記転送単位とを加算してその結果を前記データ転送先アドレス記憶部に記憶し、転送数記憶部に記憶されたデータのサイズから前記転送単位を減算してその結果を前記転送数記憶部に記憶し、
    前記転送数記憶部に記憶された内容が前記転送単位以下か否かを判定し、前記転送単位以下と判定された場合には、前記データ転送元アドレスに記憶されたアドレスに係るデバイスから前記転送数記憶部に記憶されたデータサイズの転送データを前記バッファに転送し、
    前記転送された前記転送数記憶部に記憶されたデータサイズの転送データを前記データ転送先アドレス記憶部に記憶されたアドレスに係るデバイスに、前記データ転送先のアドレスに係るデバイスからレスポンスを必要とする転送方式で転送する命令を送信することを特徴とする請求項2記載のダイレクトメモリアクセス装置。
  5. ダイレクトメモリアクセス制御装置を含むシステムLSIにおいて、
    データ転送の際にデータ転送の制御を行うダイレクトメモリアクセス装置と、
    各種命令を実行し、前記ダイレクトメモリアクセス装置にデータ転送の指示を行うCPUと、
    各種データを記憶する複数のデバイスと、
    接続されたデバイスとのデータの転送を行うバスと、を有し、
    前記ダイレクトメモリアクセス制御装置は、データ転送に係るデータ転送元のアドレス、データ転送先のアドレス、及び、データ転送に係るデータのサイズに関する情報を含む転送情報を受け取り、前記転送情報を記憶する内部レジスタと、
    前記内部レジスタに記憶された前記データ転送元のアドレス及びデータ転送に係るデータのサイズに基づいて、前記データ転送元のアドレスに係るデバイスから転送データを前記バスを経由して取得し、前記データ転送に係るデータ転送先のアドレスに基づいて、前記データ転送先のアドレスに係るデバイスへ転送データを前記バスを経由して送信する命令である転送命令を送信する転送制御部と、
    前記転送制御部が取得した転送データを記憶するバッファと、
    前記転送制御部が送信した転送命令を受信し、受信した転送命令に基づいて前記データ転送元アドレスに係るデバイスから転送データを受信し、前記バッファに記憶された転送データを前記バッファに送信し、前記受信した転送データを前記転送先のアドレスに係るデバイスに送信するインターフェースと、を有し、
    前記転送制御部は、前記転送データを前記バッファから前記転送先のアドレスに係るデバイスへ転送する際に、所定の転送単位にデータを分割して転送データの転送を行い、前記分割された転送データであって、最終転送に係るデータの場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要とする転送方式で前記最終転送に係る転送データを転送し、前記レスポンスを受信した際には前記CPUへ転送の完了を通知し、また、分割された転送データであって、最終転送に係る転送データではない場合には、前記データ転送先のアドレスに係るデバイスからレスポンスを必要としない転送方式で転送する命令を送信することを特徴とするダイレクトメモリアクセス制御装置を含むシステムLSI。
JP2005117308A 2005-04-14 2005-04-14 ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi Pending JP2006293927A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005117308A JP2006293927A (ja) 2005-04-14 2005-04-14 ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
US11/190,184 US20060236001A1 (en) 2005-04-14 2005-07-27 Direct memory access controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005117308A JP2006293927A (ja) 2005-04-14 2005-04-14 ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi

Publications (1)

Publication Number Publication Date
JP2006293927A true JP2006293927A (ja) 2006-10-26

Family

ID=37109875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005117308A Pending JP2006293927A (ja) 2005-04-14 2005-04-14 ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi

Country Status (2)

Country Link
US (1) US20060236001A1 (ja)
JP (1) JP2006293927A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775406B1 (ko) 2006-02-28 2007-11-12 후지쯔 가부시끼가이샤 Dma 데이터 전송 장치 및 dma 데이터 전송 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127082B2 (en) * 2006-02-01 2012-02-28 International Business Machines Corporation Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations
US7904614B1 (en) * 2006-06-27 2011-03-08 Marvell International Ltd. Direct memory access controller with multiple transaction functionality
JP4408126B2 (ja) * 2006-12-13 2010-02-03 富士通株式会社 監視装置、半導体集積回路、および監視方法
JP5546635B2 (ja) * 2010-06-01 2014-07-09 株式会社日立製作所 データ転送装置およびその制御方法
JP5609490B2 (ja) * 2010-09-27 2014-10-22 セイコーエプソン株式会社 記憶装置、ホスト装置、回路基板、液体容器及びシステム
WO2016039198A1 (ja) * 2014-09-10 2016-03-17 ソニー株式会社 アクセス制御方法、バスシステム、および半導体装置
KR102387460B1 (ko) 2015-04-09 2022-04-15 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
US10025727B2 (en) * 2016-02-05 2018-07-17 Honeywell International Inc. Relay mechanism to facilitate processor communication with inaccessible input/output (I/O) device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61117651A (ja) * 1984-11-14 1986-06-05 Hitachi Ltd インタ−フエイス装置
JPH06149730A (ja) * 1992-11-13 1994-05-31 Hitachi Ltd バスシステム,バス制御方式及びそのバス変換装置
JP2002366507A (ja) * 2001-06-12 2002-12-20 Fujitsu Ltd 複数チャネルdmaコントローラおよびプロセッサシステム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235685A (en) * 1989-05-11 1993-08-10 Data General Corp. Interface bus with independent data, command and direct control sections for parallel transfer of information between host and intelligent storage
JPH05173932A (ja) * 1991-12-24 1993-07-13 Toshiba Corp データ転送装置
US5835972A (en) * 1996-05-28 1998-11-10 Advanced Micro Devices, Inc. Method and apparatus for optimization of data writes
US5978865A (en) * 1997-02-04 1999-11-02 Advanced Micro Devices, Inc. System for performing DMA transfers where an interrupt request signal is generated based on the value of the last of a plurality of data bits transmitted
US7113985B2 (en) * 2002-10-15 2006-09-26 Intel Corporation Allocating singles and bursts from a freelist
US7277975B2 (en) * 2004-11-02 2007-10-02 Sonics, Inc. Methods and apparatuses for decoupling a request from one or more solicited responses

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61117651A (ja) * 1984-11-14 1986-06-05 Hitachi Ltd インタ−フエイス装置
JPH06149730A (ja) * 1992-11-13 1994-05-31 Hitachi Ltd バスシステム,バス制御方式及びそのバス変換装置
JP2002366507A (ja) * 2001-06-12 2002-12-20 Fujitsu Ltd 複数チャネルdmaコントローラおよびプロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775406B1 (ko) 2006-02-28 2007-11-12 후지쯔 가부시끼가이샤 Dma 데이터 전송 장치 및 dma 데이터 전송 방법

Also Published As

Publication number Publication date
US20060236001A1 (en) 2006-10-19

Similar Documents

Publication Publication Date Title
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
JP2004171209A (ja) 共有メモリデータ転送装置
EP2423824B1 (en) Data transfer device, method of transferring data, and image forming apparatus
JP2010134627A (ja) バス中継装置
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
JP4902640B2 (ja) 集積回路、及び集積回路システム
JP4829408B2 (ja) 画像処理方法及び画像処理装置
JP4215417B2 (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
JP2007334772A (ja) データ転送装置及びその制御方法
JP2010079536A (ja) メモリアクセス制御回路、メモリアクセス制御方法
JP2006285872A (ja) マルチcpuシステム
JP2010140440A (ja) バス調停装置
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP4472402B2 (ja) バス装置
JP2006092077A (ja) バスシステム
JP2006004340A (ja) Dma転送制御装置
JP2014146278A (ja) スイッチ装置、画像処理装置、及び排他制御方法
JP2005339426A (ja) データ処理システム及び設定方法
JP2011013812A (ja) メモリシステム
JPH07334453A (ja) メモリアクセスシステム
JP2008171335A (ja) レジスタアクセス方式
JP2008003786A (ja) 論理シミュレーション方法及びその装置
JP2009169501A (ja) データ転送装置
JP2005128931A (ja) Dma転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110208