JP4836488B2 - データ転送装置及び半導体集積回路装置 - Google Patents

データ転送装置及び半導体集積回路装置 Download PDF

Info

Publication number
JP4836488B2
JP4836488B2 JP2005136149A JP2005136149A JP4836488B2 JP 4836488 B2 JP4836488 B2 JP 4836488B2 JP 2005136149 A JP2005136149 A JP 2005136149A JP 2005136149 A JP2005136149 A JP 2005136149A JP 4836488 B2 JP4836488 B2 JP 4836488B2
Authority
JP
Japan
Prior art keywords
transfer
data
memory device
address
memory
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
Application number
JP2005136149A
Other languages
English (en)
Other versions
JP2006313478A (ja
Inventor
琢哉 芳賀
哲彦 東
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 JP2005136149A priority Critical patent/JP4836488B2/ja
Priority to TW095115021A priority patent/TWI326839B/zh
Priority to US11/417,636 priority patent/US7506114B2/en
Priority to EP06009330A priority patent/EP1722304A3/en
Priority to CNA2006101156402A priority patent/CN1892630A/zh
Publication of JP2006313478A publication Critical patent/JP2006313478A/ja
Application granted granted Critical
Publication of JP4836488B2 publication Critical patent/JP4836488B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Description

この発明は、データ転送装置及び半導体集積回路装置に関するもので、例えばDMA(Direct Memory Access)転送に関する。
近年、DMA転送技術が広く使用されてきている。DMA転送を行う場合、メモリやデバイスはDMAコントローラ(以下DMACと呼ぶ)と接続される。そして、DMACによってデータの転送制御が行われる(例えば特許文献1、2参照)。DMA転送によれば、CPU(Central Processing Unit)を介さずにメモリやデバイス間のデータ転送を行うことが出来る。従って、CPUの負荷を軽減でき、システムの性能を向上出来る。
しかしながら、上記従来のDMA転送であると、転送元あるいは転送先のデバイスがインオーダー(in-order)でしか読み出しまたは書き込みが出来ない場合、データの転送効率が低下するという問題があった。
特開平9−223102号 特開2002−259326号
この発明は、上記事情に鑑みてなされたもので、その目的は、データの転送効率を向上できるデータ転送装置及び半導体集積回路装置を提供することにある。
の発明の一態様に係るデータ転送装置は、第1転送調停回路と第2転送調停回路とを備え、第1メモリ装置と第2メモリ装置との間のデータ転送を制御するデータ転送制御装置であって、前記第1メモリ装置から前記第2メモリ装置へのデータの転送命令に応答して、前記データを第1転送単位でアドレス順に転送させる第1転送命令を、前記第1転送単位毎に前記第2転送調停回路へ出力する前記第1転送調停回路と、前記第1転送命令に応答して、前記第1転送単位の前記データを前記第1転送単位よりも小さい第2転送単位で転送させる第2転送命令を、前記第2転送単位毎に前記第1、第2メモリ装置へ出力する前記第2転送調停回路とを具備し、前記第2転送調停回路は、前記第1、第2メモリ装置においてアクセス可能なアドレスを含む第2転送命令から順番に出力する。
この発明によれば、データの転送効率を向上できるデータ転送装置及び半導体集積回路装置を提供できる。
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
この発明の第1の実施形態に係るデータ転送装置及び半導体集積回路装置について、図1を用いて説明する。図1は本実施形態に係る半導体集積回路(LSI)のブロック図である。図示するように、LSI1はDMAC10、メモリ20、30、及びバス40を備えている。
DMAC10は、メモリ20とメモリ30との間のデータ転送を制御する。DMAC10は、インオーダー転送命令発生器(In-order Transfer Instruction Generator:ITIG)11及びアウトオブオーダー転送命令発生器(Out-of-order Transfer Instruction Generator:OTIG)12を備えている。そしてITIG11がデータの転送命令を受信して、転送先メモリまたは転送元メモリのバッファサイズに合わせたデータサイズの転送命令を生成する。OTIG12は、ITIG11の生成した転送命令に応答して、該転送命令により指定されたデータを分割し、分割したデータをアウトオブオーダーで転送させる転送命令を生成する。
メモリ20はアウトオブオーダーによるデータの読み書きが可能なメモリであり、例えばDRAM等である。メモリ20は複数のバンク21−0〜21−nを有しており、各バンクはランダムにアクセス可能である。
メモリ30はインオーダーによりデータの読み書きを行うFIFO(first in first out)方式のメモリである。以下、便宜上、メモリ30をFIFO30と呼ぶことにする。FIFO30は複数のエントリ31−0〜31−mを有しており、エントリ31−0〜31−mの順番にデータが格納される。1エントリのビット幅は、例えば128ビットである。
バス40は、メモリ20とFIFO30との間でデータを伝達し、またDMAC10からの転送命令を伝達する。バス40のビット幅は例えば32バイトである。従って、FIFO30へ(FIFO30から)データを1エントリ分転送する場合には、4回に分割して行われる(32バイト×4回=128バイト)。
次に、本実施形態に係るDMAC10によるデータ転送方法について図2及び図3を用いて説明する。図2は本実施形態に係るデータ転送方法のフローチャートである。また図3はデータ転送時における転送データの様子を示す概念図である。
まずDMAC10は、外部からデータの転送命令を受信する(ステップS10)。この際、DMAC10は、転送元において、転送すべきデータが保持される領域の先頭アドレス(以下ソースアドレスSrcAddrと呼ぶ)と、転送先において、転送されたデータを保持すべき領域の先頭アドレス(以下宛先アドレスDstAddrと呼ぶ)と、転送データのデータサイズTSizeを受け取る。例えば図3に示すように、転送データ50のデータサイズTSizeは1kバイトであったとする。
次にDMAC10のITIG11は、インオーダー方式のメモリのバッファサイズに合わせて転送データ50を分割し、分割された転送データ毎の転送命令(これを第1転送命令と呼ぶ)を生成する。図1の例であると、インオーダー方式のメモリはFIFO30であり、そのバッファサイズは128バイトである。従って図3に示すように、転送データ50は8個の分割データ51−0〜51−7に分割される(1024バイト/128バイト=8個)。そして、これらの分割データ51−0〜51−7毎に、第1転送命令が生成される。勿論、分割データ51−0〜51−7の各データサイズは128バイトである。ITIG11は、まず分割データ51−0についての第1転送命令をOTIG12へ出力する。第1転送命令は、分割データ51−0〜51−7毎に、転送すべき分割データが保持される領域の先頭アドレス(以下ソースアドレスTempSrcAddrと呼ぶ)と、転送先において、転送された分割データを保持すべき領域の先頭アドレス(以下宛先アドレスTempDstAddrと呼ぶ)と、分割データのデータサイズBufSizeを含む。これらの情報を、以下DMAタグと呼ぶ。第1転送命令が出力された段階では、実際のデータ転送はまだ行われない。
次に、DMAタグを受け取ったOTIG12は、受け取った分割データ51−0〜51−7のいずれかを、バスサイズに合わせて更に分割し、分割された分割データ(これを再分割データと呼ぶことにする)毎の転送命令(これを第2転送命令と呼ぶ)を生成する。図1の例であると、バス40のサイズは32バイトである。従って図3に示すように、分割データ51−0〜51−7の各々は、4個の分割データ52−0〜52−3に再分割される。そして、これらの再分割データ52−0〜52−3毎に、第2転送命令が生成される。勿論、再分割データ52−0〜52−3の各データサイズは32バイトである。第2転送命令は、再分割データ52−0〜51−3毎に、転送すべき再分割データが保持される領域の先頭アドレス(以下ソースアドレスTmpOtigSrcAddrと呼ぶ)と、転送先において再分割データを保持すべき領域の先頭アドレス(以下宛先アドレスTmpOtigDstAddrと呼ぶ)と、再分割データのデータサイズBusSizeを含む。
そしてOTIG12は、転送可能な再分割データ52−0〜52−3についての第2転送命令を、メモリ20及びFIFO30へ出力する。第2転送命令により、メモリ20とFIFO30との間でデータが転送される。この際、OTIG12は、必要に応じて第2転送命令の順番を入れ換える。すなわち、必ずしも再分割データ52−0〜52−3の順番で第2転送命令を出力するわけではない。例えば再分割データ52−0が転送不可であり、再分割データ52−1が転送可能な場合には、再分割データ52−0より先に再分割データ52−1についての第2転送命令を出力する。第2転送命令が出力された段階で、初めてデータの転送が実際に行われる。
ある分割データ51−0〜51−7のいずれかについての第2転送命令が全て出力され、その分割データのメモリ20・FIFO30間の転送が終了すると、OTIG12はアクノリッジ信号をITIG11へ返す(ステップS40)。すると、全ての分割データ51−0〜51−7の転送が完了していた場合(ステップS50)、処理は終了する。完了していない場合にはステップS20に戻り、ITIGは次の分割データについて第1転送命令を出力し、ステップS30、S40の処理を繰り返す。
以上によってメモリ20とFIFO30との間でデータの転送が行われる。次に、ステップS20、S30についてより詳細に説明する。まずステップS20のITIG11の処理について図4のフローチャートを用いて説明する。
まずDMAC10が外部から転送命令を受けると、ITIG11は転送すべきデータ50が保持される領域の先頭アドレス(以下ソースアドレスSrcAddrと呼ぶ)と、転送先においてデータ50を保持すべき領域の先頭アドレス(以下宛先アドレスDstAddrと呼ぶ)と、データサイズTSizeを受信する(ステップS21)。
次にITIG11は、最初に転送すべき分割データ51−0に関するアドレスTempSrcAddr、TempDstAddr、及びデータ50の転送元における最終アドレスLastSrcAddrを計算する(ステップS22)。分割データ51−0のアドレスTempSrcAddr、アドレスTempDstAddrは、当然にSrcAddr及びDstAddrに一致する。また最終アドレスLastSrcAddrは、SrcAddr+TSizeにより計算できる。
そして、ステップS22で算出したアドレスTempSrcAddr、TempDstAddr及びバッファサイズBufSizeに基づき、第1転送命令を作成し、OTIG12へ出力する(ステップS23)。この第1転送命令が意味するところを図5に示す。図5はメモリ20からFIFO30へデータを転送する場合を例に、分割データ転送の様子を示す概念図である。図示するように、ステップS23で作成される第1転送命令は、メモリ20において転送データ50内の先頭アドレスSrcAddrから始まる最初の分割データ51−0を、FIFO30における宛先アドレスDstAddrから始まるエントリに転送させる旨の命令である。
次にITIG11は、OTIG12からアクノリッジ信号を受けると次の分割データ51−1に関するアドレスTempSrcAddr及びTempDstAddrを計算する(ステップS24)。この様子を示しているのが図6である。図示するように、次に作成されるべき第1転送命令は、分割データ51−0の次のアドレスに保持される分割データ51−1を、FIFO30において分割データ51−0の次のアドレス領域に転送させる旨の命令である。従って、ソースアドレスTempSrcAddrは、直前のTempSrcAddr+BufSize、宛先アドレスTempDstAddrは直前のTempDstAddr+BufSizeで計算出来る。
そして、ソースアドレスTempSrcAddrが最終アドレスLastSrcAddrを超えたか否かを判定する。超えた場合は、最後の分割データ51−7に関する第1転送命令が出力された、すなわち全ての分割データ51−0〜51−7について第1転送命令が出力されたことになるので、ITIG11の処理は終了する。超えていない場合は、まだ分割データが残っているので、ステップS24、S25を繰り返す。
次にステップS30のOTIG12の処理について図7のフローチャートを用いて説明する。まずOTIG12はITIG11から第1転送命令を受け取る(ステップS31)。第1転送命令を受け取ることにより、OTIG12はDMAタグ(TempSrcAddr、TempDstAddr、BufSize)を受け取る。
次にOTIG12は、分割データ51−0内において最初に転送すべき再分割データ51−1に関するアドレスTempOtigSrcAddr、TempOtigDstAddr、及び分割データ51−0の転送元における最終アドレスLastOtigSrcAddrを計算する(ステップS32)。再分割転送データ52−0のソースアドレスTempOtigSrcAddr及び宛先アドレスTempOtigDstAddrは、当然にTempSrcAddr及びTempDstAddrに一致する。また最終アドレスLastOtigSrcAddrは、TempSrcAddr+BufSizeにより計算できる。
そしてOTIG12は、ステップS23で算出したアドレスTempOtigSrcAddr、TempOtigDstAddr及びバスサイズBusSizeに基づき第2転送命令を作成する(ステップS33)。この第2転送命令が意味するところを図8に示す。図8はメモリ20からFIFO30へデータを転送する場合を例に、再分割データの転送の様子を示す概念図である。図示するように、ステップS33で作成される第2転送命令は、メモリ20において分割データ51−0内の先頭アドレスTempSrcAddrから始まる最初の再分割データ52−0を、FIFO30における宛先アドレスTempDstAddrから始まるエントリに転送させる旨の命令である。
次にOTIG12は、次の再分割データ51−2に関するアドレスTempOtigSrcAddr及びTempOtigDstAddrを計算する(ステップS34)。この様子を示しているのが図9である。図示するように、次に作成されるべき第2転送命令は、再分割データ52−0の次のアドレスに保持される再分割データ52−1を、FIFO30において再分割データ52−0の次のアドレス領域に転送させる旨の命令である。従って、ソースアドレスTempOtigSrcAddrは、直前のTempOtigSrcAddr+BusSize、宛先アドレスTempOtigDstAddrは直前のTempOtigDstAddr+BusSizeで計算出来る。
そして、ソースアドレスTempOtigSrcAddrが最終アドレスLastOtigSrcAddrを超えたか否かを判定する。超えた場合は、最後の再分割データ52−3に関する第2転送命令が作成された、すなわち全ての再分割データ52−0〜52−3について第2転送命令が作成されたことになる。従ってOTIG12は、分割データ52−0〜52−3をその時点で最も効率よく転送出来るように、第2転送命令の順序を入れ換えて、メモリ20及びFIFO30へ第2転送命令を出力する。
上記のように、この発明の第1の実施形態に係るデータ転送装置及び半導体集積回路装置によれば、効率の良いデータ転送を実現できる。本実施形態によれば、インオーダー方式でデータの読み書きを行うメモリと、アウトオブオーダー方式でデータの読み書きを行うメモリとの間でデータの転送を行う際、インオーダー方式で読み書きを行うメモリで扱われるデータの最小単位については、インオーダー方式でデータを転送する。そしてその最小単位を更に複数のデータに分割して、分割データに関してはアウトオブオーダー方式でデータを転送している。すなわち、マクロなレベルではインオーダー方式を用いつつ、ミクロなレベルではアウトオブオーダー方式でデータを転送している。このように、インオーダー方式のメモリにおいてもアウトオブオーダー方式を用いることが出来るため、データの転送効率を向上出来る。本特徴は、例えばバンクコンフリクト(Bank Conflict)を起こすようなメモリと、インオーダー方式のメモリとの間でデータを転送するような場合に顕著となる。このような場合について、DRAMとFIFOとを例に挙げて、以下第2の実施形態として説明する。
次に、本発明の第2の実施形態に係るデータ転送装置及び半導体集積回路装置について図10を用いて説明する。本実施形態は、上記第1の実施形態において、メモリ20がDRAMである場合に関するものである。図10は、DRAM20とFIFO30のメモリ空間の概念図である。
図示するように、DRAM20に保持されている256バイト(TSize)のデータ50を、FIFO30のエントリ0、エントリ1に転送する場合を考える。FIFO30のエントリサイズ(BufSize)は128バイトであるから、データ50はITIG11によって2つの分割データ51−0、51−1に分割される。まずITIG11は、分割データ51−0に関する第1転送命令を作成し、OTIG12へ出力する。DMAタグの内容は、TmpSrcAddr=0xA0、TmpDstAddr=0x00、BufSize=128である。すなわち、DRAM20におけるアドレス0xA0〜0xAFに保持されているデータ51−0が、FIFO30におけるアドレス0x00から始まるエントリに転送させる第1転送命令がOTIG12に与えられる。
次にOTIG12がアウトオブオーダーでの転送を行うべく、第2転送命令を作成する。この様子を示しているのが図11である。図示するように、OTIG12は、分割データ51−0に関して、以下のような4つの第2転送命令を作成する。すなわち、
1:TmpOtigSrcAddr=0xA0
TmpOtigDstAddr=0x00
BusSize=32
2:TmpOtigSrcAddr=0xA4
TmpOtigDstAddr=0x04
BusSize=32
3:TmpOtigSrcAddr=0xA8
TmpOtigDstAddr=0x08
BusSize=32
4:TmpOtigSrcAddr=0xAC
TmpOtigDstAddr=0x0C
BusSize=32
そして、これら4つの第2転送命令を、最も転送効率が良くなるように出力する。例えばDRAMのアドレス0xA0〜0xA3の領域(再分割データ52−0)と、アドレス0xA4〜0xA7の領域(再分割データ52−1)とが、同一のバンクであり、更にアドレス0xA8〜0xABの領域(再分割データ52−2)と、アドレス0xAC〜0xAFの領域(再分割データ52−3)とが、同一のバンクであったとする。すると、再分割データ52−0〜52−3の順にデータの転送を行おうとすると、バンクコンフリクトの問題が生ずる。
バンクコンフリクトとは、同一のバンクに連続してアクセスした場合、一定時間、そのバンクがビジー(busy)状態となり、アクセス出来ない状態に陥ることである。バンクコンフリクトを生じた場合には、それが解消されるまで処理は待たなければならない。図12は、DRAMにアクセスがなされた場合の各種信号のタイミングチャートである。図示するように、例えば時刻t0であるバンクに対して転送命令が出されたとする。するとそのバンクは時刻t1から一定期間Δtだけアクセス不能になる。従って、次にそのバンクにアクセス出来るのは時刻t2である。その期間、そのバンクのビジーフラグ(busy flag)が“1”となる。ビジーフラグは、図13に示すように、バンク毎に設けられており、“1”となることによって当該バンクがアクセス不能であることを知らせるためのものである。
図11に戻って説明する。OTIG12は、第2転送命令を出力する順序を決定する際、再分割データ52−0〜52−3が格納されているバンクのビジーフラグをチェックする。この際のOTIG12の処理を図14のフローチャートに示す。図示するように、着目した再分割データを保持する領域のアドレスに対応するバンクのビジーフラグをチェックする(ステップS37−1)。そしてビジーフラグが立っていなければ(ステップS37−2)、そのバンクにはアクセス可能であるので、その再分割データについて第2転送命令を出力する(ステップS37−3)。ビジーフラグが立っていた場合(ステップS37−2)、次のアドレスに格納される再分割データに着目し(ステップS37−4)、ステップS37−1を行う。この処理を、全ての再分割データの転送が終了するまで繰り返す。
例えば図11の場合、まず再分割データ52−0を転送したとすると、そのバンクはビジー状態となりその後一定期間はアクセスが出来なくなる。すなわち、再分割データ52−1にアクセスするにはビジー状態が解消するまで待たなくてはならない。そこでOTIG12は、異なるバンクであり且つビジー状態でないバンクに格納されている再分割データ52−3の転送を行う。再分割データ52−3の転送を行っている間に、再分割データ52−1を保持するバンクのビジー状態が解消された場合、次に再分割データ52−1の転送を行う。そして最後に再分割データ52−3の転送を行う。
以上のようにして分割データ51−0の転送が完了すると、OTIG12はアクノリッジ信号をITIG11に返す。するとITIG11は、分割データ51−1に関する第1転送命令を出力し、再び上記と同様の処理を繰り返す。
上記のように、OTIG12が、バンクコンフリクトを生じないように第2転送命令の出力順序を入れ換えることにより、データ転送効率が向上出来る。この点について、図15のタイミングチャートを用いて説明する。図15において、MRはDRAMからのデータの読み出し動作、FWはFIFOへの書き込み動作、Waitはバンクコンフリクトによる待ち時間を示す。MR及びFWにそれぞれかかる時間は2クロックサイクルで、Waitにかかる時間は3クロックサイクルであったとする。
まず、本実施形態の方法を用いずに、インオーダー方式によって再分割データ52−0〜52−3をアドレス順にDRAM20からFIFO30に転送した場合について説明する。図示するように、時刻t0で再分割データ52−0の転送を開始したとすると時刻t2で転送は終了する。この時点で、データ52−0、52−1を保持するバンクはビジー状態となっているため、データ52−1の転送開始時刻は、最も早くて時刻t2から3クロック後の時刻t4である。データ52−1、52−2の転送の際にはバンクコンフリクトは生じないが、データ52−3を転送する際に再びバンクコンフリクトが生じる。すなわち、時刻t10にデータ52−2の転送が終了するが、次のデータ52−3の転送は、そのバンクのビジー状態が解消する時刻t12まで待たなくてはならない。その結果、再分割データ52−0〜52−3の転送終了は時刻t13となる。
これに対して本実施形態に係る方法であると、再分割データ52−0、52−2、52−1、52−3の順にFIFO30へデータが書き込まれる。従って、バンクコンフリクトの問題が生じない。従って、無駄な待ち時間を発生することなく、連続して再分割データの転送処理を実行できる。その結果、インオーダー方式のみを用いて転送する場合に比べて、2回の待ち時間分、すなわち6サイクル分だけ早い時刻t11にデータ転送は完了する。
次に、この発明の第3の実施形態に係るデータ転送装置及び半導体集積回路装置について図16を用いて説明する。図16はITIG11のブロック図である。本実施形態は、上記第1、第2の実施形態において、ITIG11をハードウェアによって実現するものである。従って、本実施形態ではITIG11以外の構成についての説明は省略する。
図示するようにITIG11は、バッファサイズ検出回路60、マルチプレクサ61、63、加算器62、64、65、及び最終アドレス判定回路66を備えている。
バッファサイズ検出回路60は、外部より入力されるアドレスSrcAddr及びDstAddrに基づいて、転送の対象となるデバイスを把握すると共に、バッファサイズBufSizeを検出、出力する。マルチプレクサ61は、ソースアドレスSrcAddrと加算器62の出力とのいずれかを選択する。加算器62は、マルチプレクサ61の出力と、バッファサイズ検出回路60の出力するバッファサイズBufSizeとを加算して、ソースアドレスTempSrcAddrを出力する。マルチプレクサ63は、宛先アドレスDstAddrと加算器64の出力とのいずれかを選択する。加算器64は、マルチプレクサ63の出力と、バッファサイズ検出回路60の出力するバッファサイズBufSizeとを加算して、宛先アドレスTempDstAddrを出力する。加算器65は、外部より入力されるアドレスSrcAddrとデータサイズTSizeとを加算して、最終アドレスLastSrcAddrを出力する。最終アドレス判定回路66は第1転送命令を出力すると共に、加算器62の出力するアドレスTmpSrcAddrと最終アドレスLastSrcAddrとを比較して、第1転送命令が全て出力されたか否かを判定する。
次に上記構成のITIG11の動作について説明する。外部より転送命令を受信した直後は、マルチプレクサ61、63はそれぞれソースアドレスSrcAddr及び宛先アドレスDstAddrを選択する。そして加算器62、64は、マルチプレクサ61、63で選択したソースアドレスSrcAddr及び宛先アドレスDstAddrをそれぞれTmpSrcAddr及びTempDstAddrとする。また加算器65は、ソースアドレスSrcAddrとデータサイズTSizeとを加算して、最終アドレスLastSrcAddrを出力する。そして最終アドレス判定回路66から、第1転送命令が出力される。
最初の第1転送命令が出力されると、バッファサイズ検出回路60はソースアドレスSrcAddrと宛先アドレスDstAddrに基づいて、バッファサイズBufSizeを検出する。バッファサイズは、メモリ20、30にそれぞれ割り当てられているアドレスから検出出来る。例えば図17の場合、ソースアドレスSrcAddrが0x00〜0x6Fであれば対象デバイスの一方はFIFO1であるので、バッファサイズBufSizeは128バイトである。またソースアドレスSrcAddrが0x70〜0xFFであれば対象デバイスの一方はFIFO2であるので、バッファサイズBufSizeは256バイトである。
またマルチプレクサ61、63は、OTIG12からアクノリッジ信号Ackを受け取ると、それぞれ加算器62、64の出力を選択する。従って加算器62は、マルチプレクサ61で選択されたソースアドレスTempSrcAddrと、バッファサイズ検出回路60から出力されたバッファサイズBufSizeとを加算して、次のソースアドレスTempSrcAddrを出力する。また加算器64は、マルチプレクサ63で選択された宛先アドレスTempDstAddrと、バッファサイズ検出回路60から出力されたバッファサイズBufSizeとを加算して、次の宛先アドレスTempDstAddrを出力する。そしてこれらのデータが第1転送命令として最終アドレス判定回路66から出力される。
最終アドレス判定回路66により、ソースアドレスTempSrcAddrが最終アドレスを超えた場合には、以後第1転送命令は出力されず、ITIG11の処理は終了する。
本実施形態によれば、第1転送命令生成・出力処理に特化したハードウェアによってITIG11を形成している。従って上記第1、第2の実施形態で説明した効果に加えて、ITIG11の処理速度を向上出来る。
次に、この発明の第4の実施形態に係るデータ転送装置及び半導体集積回路装置について図18を用いて説明する。図18はITIG11のブロック図である。本実施形態は、上記第1、第2の実施形態において、ITIG11をソフトウェアによって実現するものである。
図示するようにITIG11は、CPU70、入出力回路71、72、メインメモリ73、及びメモリ74を備えている。メモリ74は、アドレス作成プログラム75及びバッファサイズテーブル76を保持している。アドレス作成プログラム75はDMAタグを作成するためのプログラムであり、上記第1、第2の実施形態で説明したステップS4の処理を行うためのものである。バッファサイズテーブル76は、DMAC10によりデータ転送を制御される複数のデバイスと、それらに割り当てられたアドレスとの関係を保持する。バッファサイズテーブル76の一例を図19に示す。図示するように、バッファサイズテーブル76は、アドレスとそれに対応するメモリの種類及びバッファサイズを格納している。例えばアドレスAから始まる領域はDRAM0のバンク0に対応し、そのバッファサイズは128バイトである。アドレスJから始まる領域はFIFO0のエントリ0に対応し、そのバッファサイズは128バイトである。またアドレスNから始まる領域はFIFO1のエントリ0に対応し、そのバッファサイズは256バイトである。
入出力回路71は、転送命令により送られるソースアドレスSrcAddr、宛先アドレスDstAddr、及びデータサイズTSize、並びにOTIG12から送られるアクノリッジ信号Ackを受け取る。CPU70は、必要なプログラム及びデータをメモリ74からメインメモリ73に読み出し、DMAタグを作成する。入出力回路72は、CPU70によって作成されたDMAタグをOTIG12へ出力する。
上記構成において、アドレスSrcAddr、DstAddr、TSizeが入出力回路71に入力されると、入出力回路71はこれらのデータをメモリ74に保持させる。そしてCPU70がこれらのデータと、アドレス作成プログラム75及びバッファサイズテーブル76をメインメモリ73に読み出して、図4に示した処理を行う。CPU70はステップS23の処理を行う際、バッファサイズテーブル76と、アドレスSrcAddrとを照らし合わせてバッファサイズBufSizeを認識する。
また2番目の分割データ以降に関しては、OTIG12からのアクノリッジを入出力回路71が受けた際に、これをトリガとしてCPU70はアドレス作成プログラム75を実行する。
本実施形態によれば、第1転送命令生成・出力処理をソフトウェア(コンピュータ)によってITIG11を形成している。すなわち、ITIG11となるコンピュータを、ソースアドレスTempSrcAddrとバッファサイズBufSizeとを加算するソースアドレス生成手段と、宛先アドレスTempDstAddrとバッファサイズBufSizeとを加算する宛先アドレス生成手段と、ソースアドレスSrcAddrとデータサイズTSizeとを加算する最終アドレス生成手段と、バッファサイズテーブル76とソースアドレスSrcAddrとからバッファサイズBufSizeを選択するバッファサイズ生成手段として機能させている。そして、メモリ74に必要なプログラムを保持させておくことによりITIG11に第1転送命令生成・出力処理以外の機能を持たせることが可能である。従って上記第1、第2の実施形態で説明した効果に加えて、データ転送装置の多機能化が実現できる。
次に、この発明の第5の実施形態に係るデータ転送装置及び半導体集積回路装置について図20を用いて説明する。本実施形態は、上記第1乃至第4の実施形態において、ITIG11とOTIG12との間にキュー(queue)を設けたものである。図20はDMAC10のブロック図である。
図示するようにDMAC10は、上記第1乃至第4の実施形態で説明した構成において、更にメモリ13を備えている。メモリ13は、ITIG11が作成したDMAタグを保持する。ITIG11は、OTIG12からのアクノリッジ信号を待つことなく、転送命令を受けたら次々にDMAタグを作成し、それをメモリ13に蓄積していく。OTIG12は、アクノリッジ信号をITIG11へ送る必要はない。またOTIG12は、メモリ13に保持されているDMAタグのいずれかを選択して取り出して第2転送命令を作成する。その他の構成及び動作は上記第1乃至第4の実施形態と同様である。
本実施形態によれば、OTIG12は、メモリ13に保持されているDMAタグをどれでも自由に選択出来る。すなわち、より多くのDMAタグを選択肢として選択出来る。またITIG11はDMAタグを作成するためにアクノリッジ信号を待つ必要が無いため、DMAC10の動作速度を向上出来る。
上記のようにこの発明の第1乃至第5の実施形態によれば、インオーダー方式でデータを転送するシステムにおいて、転送順序が変えられないデータ単位ではインオーダーで転送し、それよりもミクロなデータ単位では順序を入れ換えてアウトオブオーダーでデータを転送している。従って、データの転送効率の低下を抑制出来る。
なお、上記実施形態で説明したデータ転送装置及び半導体集積回路装置は、例えば画像プロセッサなどに適用できる。図21は、上記実施形態に係るデータ転送装置を備えた画像描画プロセッサシステムLSIのブロック図である。
図示するように、本実施形態に係る画像描画プロセッサシステムLSI2は、ホストプロセッサ3、I/Oプロセッサ4、メインメモリ5、及びグラフィックプロセッサ6を備えている。ホストプロセッサ3とグラフィックプロセッサ6とは、プロセッサバスBUSによって、相互に通信可能に接続されている。
ホストプロセッサ3は、メインプロセッサ80、I/O部81〜83、及び複数の信号処理部(DSP:Digital Signal Processor)84を備えている。これらの回路ブロックは、ローカルネットワークLN1によって相互に通信可能に接続されている。メインプロセッサ80は、ホストプロセッサ3内の各回路ブロックの動作を制御する。I/O部81は、I/Oプロセッサ4を介してホストプロセッサ3外部とデータの授受を行う。I/O部82は、メインメモリ5との間でデータの授受を行う。I/O部83は、プロセッサバスBUSを介してグラフィックプロセッサ6との間でデータの授受を行う。信号処理部84は、メインメモリ5や外部から読み込んだデータに基づいて信号処理を行う。
I/Oプロセッサ4は、ホストプロセッサ3と、例えば汎用バス、HDDやDVD(Digital Versatile Disc)ドライブ等の周辺機器並びにネットワークとを接続する。この際、HDDやDVDドライブは、LSI2に搭載されているものでも良いし、またはLSI2外部に設けられていても良い。
メインメモリ5は、ホストプロセッサ3が動作するために必要なプログラムを保持する。このプログラムは、例えば図示せぬHDD等から読み出されて、メインメモリ5に格納される。
グラフィックプロセッサ6は、DMAC90、I/O部91、92、及び演算処理部93を備えている。DMAC90は、上記第1乃至第5の実施形態で説明したDMAC10である。I/O部91は、プロセッサバスBUSを介したホストプロセッサ3との間の入出力を司る。I/O部92は、PCI等の各種汎用バス、ビデオ及びオーディオ、更に外部メモリ等との入出力を司る。演算処理部93は、画像処理演算を行う。
演算処理部93はラスタライザ(rasterizer)94、複数のピクセルシェーダ(pixel shader)95−0〜95−3、及びパケットマネジメントユニット(packet management unit)96を備えている。なお、本実施形態ではピクセルシェーダ95の数は4個であるがこれは一例に過ぎず、8個、16個、32個等でも良く、その数は限定されるものではない。
ラスタライザ94は、入力された図形情報に従ってピクセル(pixel)を生成する。ピクセルとは、所定の図形を描画する際に取り扱われる最小単位の領域のことであり、ピクセルの集合によって図形が描画される。生成されたピクセルはピクセルシェーダ95−0〜95−3へ投入される。ピクセルシェーダ95−0〜95−3は、ラスタライザ94から投入されたピクセルにつき演算処理を行い、リアライズメモリ上に画像データを生成する。パケットマネジメントユニット96は、ピクセルシェーダ95−0〜95−3毎に設けられたリアライズメモリ(realize memory)を備えている。リアライズメモリは、例えば互いに同一の半導体基板上に形成されたeDRAM(embedded DRAM)であり、それぞれピクセルシェーダ95−0〜94−3で描画されたピクセルデータを記憶する。DMAC90、I/O部91、92、ラスタライザ94、及びパケットマネジメントユニット96は、ローカルネットワークLN2により相互に通信可能に接続されている。
上記構成において、リアライズメモリに格納されたピクセルデータは、I/O部92が保持するFIFOにDMA転送され、外部に出力される。DMAC90は、リアライズメモリとI/O部92のFIFOとの間のデータ転送を、上記第1乃至第5の実施形態で説明した方法によって制御する。画像描画装置は扱うデータ量が膨大であるため、上記実施形態で説明した方法が特に有効である。
なお、上記実施形態ではDRAMとFIFOとの間でのデータ転送を例に挙げて説明したが、勿論、インオーダー方式でデータを読み出す/書き込む必要があるデータ転送の場合であれば限定されるものではない。
上記のように、この発明の実施形態に係るデータ転送装置は、
1.第1メモリ装置と第2メモリ装置との間のデータ転送を制御するデータ転送制御装置であって、前記第1メモリ装置から前記第2メモリ装置へのデータの転送命令に応答して、前記データを第1転送単位でアドレス順に転送させる第1転送命令を出力する第1転送調停回路と、
前記第1転送命令に応答して、前記第1転送単位の前記データを前記第1転送単位よりも小さい第2転送単位で転送させる第2転送命令を出力する第2転送調停回路とを具備し、前記第2転送調停回路は、前記第1、第2メモリ装置においてアクセス可能なアドレスから順番に前記第2転送命令を出力する。
2.上記1において、前記第2転送調停回路は、第1転送単位の1つの前記データに関して全ての前記第2転送命令を出力した後にアクノリッジ信号を出力し、
前記第1転送調停回路は、前記アクノリッジ信号に応答して、次のアドレスに対応する前記第1転送命令を出力する。
3.上記1において、前記第1転送命令を保持する第3メモリ装置を更に備え、
前記第1転送調停回路は、前記第2転送調停回路の処理の進行状況に関わらず前記第1転送命令を順次、前記第3メモリ装置へ格納し、
前記第2転送調停回路は、前記第3メモリ装置に保持されるいずれかの前記第1転送命令に基づいて前記第2転送命令を作成する。
また上記実施形態に係る半導体集積回路装置は、
4.第1メモリ装置と、
前記第1メモリ装置からデータを受け取る第2メモリ装置と、
前記第1、第2メモリ装置間を接続し、前記データを伝送するバスと、
前記バスを介して前記第1、第2メモリ装置間の前記データの転送を制御するデータ転送装置とを具備し、前記データ転送装置はデータを所定のデータサイズを有する複数の第1分割データに分割して、前記第1メモリ装置から前記第2メモリ装置へ前記第1分割データを転送させる第1転送命令を、アドレス順に発生する第1転送調停回路と、
前記第1転送命令を受けて、前記第1分割データを、前記バスの転送幅を有する複数の第2分割データに分割して転送させる第2転送命令を発生し、前記第1、第2メモリ装置においてアクセス可能な領域から順番に前記第2分割データを転送させる。
5.上記4において、前記第1メモリ装置は、複数のバンクを有するDRAMであり、
前記第2メモリ装置は、複数のエントリを有し且つデータをFIFO方式で取り扱うメモリであり、
前記第1転送調停回路は、前記データを、前記エントリのエントリ幅を有する複数の前記第1分割データに分割し、
前記第2転送調停回路は、前記第1メモリ装置においてアクセス可能ないずれかの前記バンクに保持される前記第2分割データを優先して転送する。
更にデータ転送装置は、
6.上記1において、前記第1メモリ装置と前記第2メモリ装置との少なくともいずれか一方は、アドレス順に前記第1転送単位でデータを転送するインオーダー方式でのみデータ転送が可能である。
7.上記1において、前記第1転送命令は、前記第1メモリ装置において前記第1転送単位で転送される前記データが保持されるメモリ領域の先頭アドレスを示す第1アドレスと、前記第2メモリ装置において前記第1転送単位で転送された前記データが保持されるべきメモリ領域の先頭アドレスを示す第2アドレスと、前記第1転送単位とを含み、
前記第2転送命令は、前記第1メモリ装置において前記第2転送単位で転送される前記データが保持されるメモリ領域の先頭アドレスを示す第3アドレスと、前記第2メモリ装置において前記第2転送単位で転送された前記データが保持されるべきメモリ領域の先頭アドレスを示す第4アドレスと、前記第2転送単位とを含む。
8.上記7において、前記第1転送調停回路は、前記第1メモリ装置における前記データの先頭アドレスに基づいて前記第1転送単位を検出する検出回路と、
前記第1アドレスと前記第1転送単位とを加算して、次の第1転送命令に関する前記第1アドレスを生成する第1加算器と、
前記第2アドレスと前記第1転送単位とを加算して、次の第1転送命令に関する前記第2アドレスを生成する第2加算器とを備える。
9.上記7において、前記第1転送調停回路は、アドレス作成プログラムと第1転送単位テーブルとを保持する第3メモリ装置と、
前記アドレス作成プログラムと前記第1転送単位テーブルとに基づいて、前記第1、第2アドレス及び前記第1転送単位を算出して、前記第1転送命令を作成するプロセッサとを備え、前記第1転送単位テーブルは、前記第1、第2メモリ装置に対して割り当てられたアドレスと、該アドレスに対応した領域の第1転送単位との関係を保持し、
前記アドレス作成プログラムは前記プロセッサに対して、前記第1アドレスと前記第1転送単位テーブルから読み出したいずれかの前記第1転送単位とを加算して次の第1転送命令に関する前記第1アドレスを生成し、
前記第2アドレスと前記第1転送単位テーブルから読み出したいずれかの前記第1転送単位とを加算して、次の第1転送命令に関する前記第2アドレスを生成させる。
更に半導体集積回路装置は、
10.上記4において、前記第2転送調停回路は、1つの前記第1分割データに対応する全ての前記第2分割データの転送が完了した後にアクノリッジ信号を出力し、
前記第1転送調停回路は、前記アクノリッジ信号に応答して、次の第1分割データに対応する前記第1転送命令を出力する。
11.上記4において、前記第1転送命令を保持する第3メモリ装置を更に備え、
前記第1転送調停回路は、前記第2転送調停回路の処理の進行状況に関わらず前記第1転送命令を順次、前記第3メモリ装置へ格納し、
前記第2転送調停回路は、前記第3メモリ装置に保持されるいずれかの前記第1転送命令に基づいて前記第2転送命令を作成する。
12.上記4において、前記第1メモリ装置と前記第2メモリ装置との少なくともいずれか一方は、前記第1分割データをアドレス順に転送するインオーダー方式でのみデータ転送が可能である。
13.上記4において、前記第1転送命令は、前記第1分割データの第1メモリ装置における先頭アドレスを示す第1アドレスと、転送される前記第1分割データの前記第2メモリ装置における先頭アドレスを示す第2アドレスと、前記データサイズとを含み、
前記第2転送命令は、前記第2分割データの前記第1メモリ装置における先頭アドレスを示す第3アドレスと、転送される前記第2分割データの前記第2メモリ装置における先頭アドレスを示す第4アドレスと、前記バスの転送幅とを含む。
14.上記13において、前記第1転送調停回路は、前記第1メモリ装置における前記データの先頭アドレスに基づいて前記データサイズを検出する検出回路と、
前記第1アドレスと前記データサイズとを加算して、次の前記第1分割データに関する前記第1アドレスを生成する第1加算器と、
前記第2アドレスと前記データサイズとを加算して、次の前記第1分割データに関する前記第2アドレスを生成する第2加算器とを備える。
15.上記13において、前記第1転送調停回路は、アドレス作成プログラムとデータサイズテーブルとを保持する第3メモリ装置と、
前記アドレス作成プログラムと前記第1転送単位テーブルとに基づいて、前記第1、第2アドレス及び前記データサイズを算出して、前記第1転送命令を作成するプロセッサとを備え、前記データサイズテーブルは、前記第1、第2メモリ装置に対して割り当てられたアドレスと、該アドレスに対応した領域の前記データサイズとの関係を保持し、
前記アドレス作成プログラムは前記プロセッサに対して、前記第1アドレスと前記データサイズテーブルから読み出したいずれかの前記データサイズとを加算して、次に転送すべき第1分割データの前記第1アドレスを生成し、
前記第2アドレスと前記データサイズテーブルから読み出したいずれかの前記データサイズとを加算して、次に転送すべき第1分割データの前記第2アドレスを生成させる。
16.上記5において、前記第1メモリ装置は、ビジー状態か否かを示すビジーフラグを前記バンク毎に保持し、
前記第2転送調停回路は、前記ビジーフラグをチェックすることによりアクセス可能な前記バンクを認識する。
また上記実施形態に係るデータ転送方法は、
17.第1、第2メモリ装置間におけるデータ転送方法であって、前記第1メモリ装置のデータを第1転送単位でアドレス順に前記第2メモリ装置に転送させる旨の第1転送命令を出力するステップと、
前記第1転送命令に応答して、前記第1転送単位の前記データを前記第1転送単位よりも小さい第2転送単位で転送させる旨の第2転送命令を生成するステップと、
前記第1、第2メモリ装置においてアクセス可能なアドレスから順番に、前記第2転送命令を前記第1、第2メモリ装置に出力するステップとを具備する。
18.上記17において、前記第1転送単位の1つの前記データに関して全ての前記第2転送命令を出力した後にアクノリッジ信号を出力するステップと、
前記アクノリッジ信号に応答して前記第1転送命令を出力するステップに戻り、次のアドレスに対応する前記第1転送命令を出力するステップとを更に備える。
19.上記17において、前記第1転送命令を第3メモリ装置に格納するステップを更に備え、前記第2転送命令を生成するステップは、前記第3メモリ装置に保持されるいずれかの前記第1転送命令に基づいて行われる。
20.上記17において、前記第1メモリ装置と前記第2メモリ装置との少なくともいずれか一方は、アドレス順に前記第1転送単位でデータを転送するインオーダー方式でのみデータ転送が可能である。
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
この発明の第1の実施形態に係る半導体集積回路装置のブロック図。 この発明の第1の実施形態に係るデータ転送方法のフローチャート。 この発明の第1の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 この発明の第1の実施形態に係るデータ転送方法のフローチャート。 この発明の第1の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 この発明の第1の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 この発明の第1の実施形態に係るデータ転送方法のフローチャート。 この発明の第1の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 この発明の第1の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 この発明の第2の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 この発明の第2の実施形態に係るデータ転送方法を説明するための図であり、転送データの概念図。 DRAMに対して転送命令が為された際の各種信号のタイミングチャート。 DRAMのバンク構成を示すブロック図。 この発明の第2の実施形態に係るデータ転送方法のフローチャート。 この発明の第2の実施形態に係るデータ転送方法の効果を説明するための図であり、データ転送の様子を示すタイミングチャート。 この発明の第3の実施形態に係るデータ転送装置の備えるインオーダー転送命令発生器のブロック図。 この発明の第3の実施形態に係るデータ転送システムの備えるFIFOのメモリ空間の概念図。 この発明の第4の実施形態に係るデータ転送装置の備えるインオーダー転送命令発生器のブロック図。 この発明の第4の実施形態に係るデータ転送装置の備えるインオーダー転送命令発生器内に保持されるバッファサイズテーブルの概念図。 この発明の第5の実施形態に係るデータ転送装置のブロック図。 この発明の第1乃至第4の実施形態に係るデータ転送装置を備えた画像描画プロセッサのブロック図。
符号の説明
1、2…LSI、3…ホストプロセッサ、4…I/Oプロセッサ、5、73…メインメモリ、6…グラフィックプロセッサ、10、90…DMAC、11…インオーダー転送命令発生器、12…アウトオブオーダー転送命令発生器、13、20、30、30−1、30−2、74…メモリ、21−0〜21−n…バンク、31−0〜31−m…エントリ、50…転送データ、51−0〜51−7…分割データ、52−0〜52−3…再分割データ、60…バッファサイズ検出回路、61、63…マルチプレクサ、62、64、65…加算器、66…最終アドレス判定回路、70…CPU、71、72、81〜83、91、92…入出力回路、75…アドレス生成プログラム、76…バッファサイズテーブル、80…メインプロセッサ、84…信号処理部、94…ラスタライザ、95−0〜95−3…ピクセルシェーダ、96…パケットマネジメントユニット

Claims (5)

  1. 第1転送調停回路と第2転送調停回路とを備え、第1メモリ装置と第2メモリ装置との間のデータ転送を制御するデータ転送制御装置であって、
    前記第1メモリ装置から前記第2メモリ装置へのデータの転送命令に応答して、前記データを第1転送単位でアドレス順に転送させる第1転送命令を、前記第1転送単位毎に前記第2転送調停回路へ出力する前記第1転送調停回路と、
    前記第1転送命令に応答して、前記第1転送単位の前記データを前記第1転送単位よりも小さい第2転送単位で転送させる第2転送命令を、前記第2転送単位毎に前記第1、第2メモリ装置へ出力する前記第2転送調停回路と
    を具備し、前記第2転送調停回路は、前記第1、第2メモリ装置においてアクセス可能なアドレスを含む第2転送命令から順番に出力する
    ことを特徴とするデータ転送装置。
  2. 前記第2転送調停回路は、1つの分割データに関して全ての前記第2転送命令を出力した後にアクノリッジ信号を出力し、
    前記第1転送調停回路は、前記アクノリッジ信号に応答して、次のアドレスに対応する前記第1転送命令を出力する
    ことを特徴とする請求項1記載のデータ転送装置。
  3. 前記第1転送命令を保持する第3メモリ装置を更に備え、
    前記第1転送調停回路は、前記第2転送調停回路の処理の進行状況に関わらず前記第1転送命令を順次、前記第3メモリ装置へ格納し、
    前記第2転送調停回路は、前記第3メモリ装置に保持されるいずれかの前記第1転送命令に基づいて前記第2転送命令を作成する
    ことを特徴とする請求項1記載のデータ転送装置。
  4. 第1メモリ装置と、
    前記第1メモリ装置からデータを受け取る第2メモリ装置と、
    前記第1、第2メモリ装置間を接続し、前記データを伝送するバスと、
    前記バスを介して前記第1、第2メモリ装置間の前記データの転送を制御するデータ転送装置と
    を具備し、前記データ転送装置は、第1転送調停回路と第2転送調停回路とを備え、
    前記第1転送調停回路は、データを所定のデータサイズを有する複数の第1分割データに分割して、前記第1メモリ装置から前記第2メモリ装置へ前記第1分割データを転送させる第1転送命令を、前記第1分割データ毎に、前記第2転送調停回路へ、アドレス順に発生
    前記第2転送調停回路は、前記第1転送命令を受けて、前記第1分割データを、前記バスの転送幅を有する複数の第2分割データに分割して転送させる第2転送命令を、前記第2分割データ毎に、前記第1、第2メモリ装置へ発生し、前記第1、第2メモリ装置においてアクセス可能な領域を含む前記第2分割データから順番に転送させる
    ことを特徴とする半導体集積回路装置。
  5. 前記第1メモリ装置は、複数のバンクを有するDRAMであり、
    前記第2メモリ装置は、複数のエントリを有し且つデータをFIFO方式で取り扱うメモリであり、
    前記第1転送調停回路は、前記データを、前記エントリのエントリ幅を有する複数の前記第1分割データに分割し、
    前記第2転送調停回路は、前記第1メモリ装置においてアクセス可能ないずれかの前記バンクに保持される前記第2分割データを優先して転送する
    ことを特徴とする請求項4記載の半導体集積回路装置。
JP2005136149A 2005-05-09 2005-05-09 データ転送装置及び半導体集積回路装置 Expired - Fee Related JP4836488B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005136149A JP4836488B2 (ja) 2005-05-09 2005-05-09 データ転送装置及び半導体集積回路装置
TW095115021A TWI326839B (en) 2005-05-09 2006-04-27 Transmission device performing dma transmission, semiconductor integrated circuit device and data transmission method
US11/417,636 US7506114B2 (en) 2005-05-09 2006-05-04 Data transfer device which executes DMA transfer, semiconductor integrated circuit device and data transfer method
EP06009330A EP1722304A3 (en) 2005-05-09 2006-05-05 Data transfer device which executes DMA transfer, semiconductor integrated circuit device and data transfer method
CNA2006101156402A CN1892630A (zh) 2005-05-09 2006-05-09 Dma数据传送装置、半导体集成电路装置及数据传送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005136149A JP4836488B2 (ja) 2005-05-09 2005-05-09 データ転送装置及び半導体集積回路装置

Publications (2)

Publication Number Publication Date
JP2006313478A JP2006313478A (ja) 2006-11-16
JP4836488B2 true JP4836488B2 (ja) 2011-12-14

Family

ID=36676553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005136149A Expired - Fee Related JP4836488B2 (ja) 2005-05-09 2005-05-09 データ転送装置及び半導体集積回路装置

Country Status (5)

Country Link
US (1) US7506114B2 (ja)
EP (1) EP1722304A3 (ja)
JP (1) JP4836488B2 (ja)
CN (1) CN1892630A (ja)
TW (1) TWI326839B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341360B2 (en) * 2005-12-30 2012-12-25 Intel Corporation Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US20110010512A1 (en) * 2009-07-09 2011-01-13 Mediatek Inc. Method for controlling storage system having multiple non-volatile memory units and storage system using the same
US8281054B2 (en) * 2010-08-25 2012-10-02 Lsi Corporation Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication
JP6225492B2 (ja) * 2012-07-13 2017-11-08 住友電気工業株式会社 光学ユニット、及び、波長選択スイッチ
JP6316593B2 (ja) * 2014-01-07 2018-04-25 ルネサスエレクトロニクス株式会社 半導体装置
JPWO2015155850A1 (ja) * 2014-04-09 2017-04-13 株式会社日立製作所 入出力装置及び方法
DE112014006642T5 (de) * 2014-07-28 2017-01-19 Intel Corporation Halbleitervorrichtungs-Prüfgerät mit Dut-Daten-Streaming
JP7367359B2 (ja) * 2018-08-10 2023-10-24 株式会社デンソー 車両用電子制御システム、ファイルの転送制御方法、ファイルの転送制御プログラム及び装置
CN110704018B (zh) * 2019-08-26 2020-11-06 深圳芯英科技有限公司 一种数据缓存器及数据处理方法
US11231934B2 (en) * 2020-03-05 2022-01-25 Samsung Electronics Co., Ltd. System and method for controlling the order of instruction execution by a target device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4492161A (en) * 1981-10-01 1985-01-08 Banctec, Incorporated High speed document encoding system
JPH07200461A (ja) * 1993-12-29 1995-08-04 Canon Inc メモリ制御装置およびメモリ制御方法
US5708849A (en) * 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
JPH09223102A (ja) 1995-12-14 1997-08-26 Ricoh Co Ltd ダイレクトメモリアクセスコントローラ
US6493343B1 (en) * 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
JP2002259326A (ja) 2001-02-27 2002-09-13 Canon Inc Dmaコントローラ及びdma転送方法
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
US6981073B2 (en) * 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
US6836831B2 (en) * 2002-08-08 2004-12-28 International Business Machines Corporation Independent sequencers in a DRAM control structure
US7512722B2 (en) * 2003-07-31 2009-03-31 International Business Machines Corporation Method for completing a plurality of chained list DMA commands that include a fenced list DMA command element
JP4456490B2 (ja) * 2005-01-14 2010-04-28 富士通株式会社 Dma装置
JP2005190496A (ja) * 2005-02-14 2005-07-14 Sony Computer Entertainment Inc データ転送方法及び装置

Also Published As

Publication number Publication date
EP1722304A2 (en) 2006-11-15
US7506114B2 (en) 2009-03-17
US20060265534A1 (en) 2006-11-23
CN1892630A (zh) 2007-01-10
TWI326839B (en) 2010-07-01
TW200701056A (en) 2007-01-01
JP2006313478A (ja) 2006-11-16
EP1722304A3 (en) 2007-05-23

Similar Documents

Publication Publication Date Title
JP4836488B2 (ja) データ転送装置及び半導体集積回路装置
JP4322259B2 (ja) マルチプロセッサシステムにおけるローカルメモリへのデータアクセスを同期化する方法および装置
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
WO2017185396A1 (zh) 一种用于执行矩阵加/减运算的装置和方法
JP4219369B2 (ja) プロセッサシステム内においてスタックを分離して管理する方法および装置
US20070273699A1 (en) Multi-graphics processor system, graphics processor and data transfer method
JP2012038293A5 (ja)
JP2006195823A (ja) Dma装置
JP7470685B2 (ja) 集積回路中の算出ユニットをプログラムおよび制御すること
CN117453594A (zh) 数据传输装置及方法
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US7660924B2 (en) Semiconductor integrated circuit device which executes data transfer between a plurality of devices connected over network, and data transfer method
JP2010146084A (ja) キャッシュメモリ制御部を備えるデータ処理装置
JP3803196B2 (ja) 情報処理装置、情報処理方法および記録媒体
JP2003345648A5 (ja)
JP2010061220A (ja) データ転送装置、データ転送方法およびプロセッサ
US20080209085A1 (en) Semiconductor device and dma transfer method
JP2008102599A (ja) プロセッサ
JP2020140284A (ja) ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム
JP3467188B2 (ja) 多重化バスの順序保証システム
JP2015219544A (ja) データ処理装置、データ処理方法、プログラム、および記憶装置
JP2003177960A (ja) 演算装置及び記憶装置
JP2008198119A (ja) データ転送装置、データ転送システムおよびデータ転送方法
JP2002278753A (ja) データ処理システム
JP2621793B2 (ja) バスサイクルのマルチプレクス方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

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: 20110906

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees