JP2009211248A - Dma転送装置 - Google Patents

Dma転送装置 Download PDF

Info

Publication number
JP2009211248A
JP2009211248A JP2008051737A JP2008051737A JP2009211248A JP 2009211248 A JP2009211248 A JP 2009211248A JP 2008051737 A JP2008051737 A JP 2008051737A JP 2008051737 A JP2008051737 A JP 2008051737A JP 2009211248 A JP2009211248 A JP 2009211248A
Authority
JP
Japan
Prior art keywords
dma transfer
read
address
dma
cache
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
Application number
JP2008051737A
Other languages
English (en)
Inventor
Tsuyoshi Maeda
剛志 前田
Daisuke Yamamoto
大介 山本
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008051737A priority Critical patent/JP2009211248A/ja
Priority to CN2009801073558A priority patent/CN101960437A/zh
Priority to PCT/JP2009/000227 priority patent/WO2009110168A1/ja
Publication of JP2009211248A publication Critical patent/JP2009211248A/ja
Priority to US12/853,092 priority patent/US20100306421A1/en
Withdrawn 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】DMA転送の読み出しを高速化する。
【解決手段】転送元アドレス設定検知部305は、マスタ301がDMAC302に対して複数回行うレジスタ設定のうちDMA転送元領域の転送開始アドレス設定よりDMA転送元アドレスを取得する。先行読み出し処理部303は、DMAC302がDMA転送を開始する前に、DMA転送元アドレスが指定するリソース304上のデータを先行読み出しし、さらにDMA転送元アドレスをインクリメントして先行読み出しを繰り返す。DMAC302は、マスタ301によるレジスタ設定が終わればDMA転送を開始し、先行読み出し処理部303上に既に先行読み出ししているDMA転送元領域のデータを読み出し、リソース304上のDMA転送先領域に転送する。
【選択図】図3

Description

本発明はDMA(Direct Memory Access)転送装置に関し、特に、DMAC(Direct Memory Access Controller)がDMA転送する際に転送元のデータを先行読み出しすることでDMA転送を高速化する技術に関する。
図1のように、DMA転送装置101はDMAC102、リソース103から構成され、DMAC102がリソース103上のDMA転送元領域をリードし、リードしたデータをリソース103上のDMA転送先領域へライトすることでDMA転送が行なわれる。以下、DMA転送を高速化する従来の先行読み出し技術について図2を用いて説明する。
DMA転送装置201は、DMAC202,先行読み出し処理部203,リソース204を備えている。DMAC202は、先行読み出し処理部203を介してリソース204上のDMA転送元領域のデータを読み出し、リソース204上のDMA転送先領域に出力するDMA転送を行う。
また、先行読み出し処理部203は、先行アドレスレジスタ205,コントローラ206,先行データ格納バッファ207,加算回路208,セレクタ209,セレクタ210を備える。先行アドレスレジスタ205には、DMAC202がリード予定のDMA転送元領域へのリードアドレスが格納される。セレクタ209は、先行アドレスレジスタ205に格納されているリードアドレスとDMAC202が出力するリードアドレスのどちらかを選択しリソース204へ出力する。先行データ格納バッファ207には、リソース204より先行読み出ししたデータが格納される。セレクタ210は、先行データ格納バッファ207に格納されたデータをDMAC202に返すか、リソース204から読み出したデータを直接DMAC202に返すかを切り替える。コントローラ206は、セレクタ209,210の切り替えを制御する。
先行読み出し処理部203は、DMAC202よりリードアドレスを受けると、受けたリードアドレスと先行アドレスレジスタ205に格納されているリードアドレスとを比較する。
両者が一致するときは、リードアドレスが指定するリソース204上のデータが既に先行データ格納バッファ207に格納されているため、先行データ格納バッファ207に格納されているデータをDMAC202に返し、さらに先行アドレスレジスタ205に格納されているリードアドレスを加算回路208によりインクリメントし、当該インクリメント後のリードアドレスが指定するリソース204上のデータを読み出し、先行データ格納バッファ207に格納する。
一方、両者が一致しないときは、リードアドレスが指定するリソース204上のデータが先行データ格納バッファ207に格納されていないため、DMAC202より受けたリードアドレスをリソース204に出力し、読み出したデータを直接DMAC202に返す。さらにリードアドレスを加算回路208でインクリメントして先行アドレスレジスタ205に格納し、先行アドレスレジスタ205が指定するリソース204上のデータを読み出し、先行データ格納バッファ207に格納する。これら動作によりDMA転送元領域の先行読み出しを行い、DMA転送を高速化している(例えば特許文献1参照)。
特開平2-110646号公報
DMAC202がDMA転送によりDMA転送元領域の連続したアドレス空間を読み出すとき、従来の先行読み出し処理部203は、DMAC202が1回目のリードアドレスを出力すると、代わりにリソース204よりデータを読み出しDMAC202に返すとともに、受け取ったリードアドレスをインクリメントしてDMAC202が次に読み出すリードアドレスを求め、このリードアドレスが指定するリソース204上のデータを先行読み出しする。そしてDMAC202が次のリードアドレスを出力すると、すでに先行読み出ししたデータをDMAC202に返すことでDMAC202のDMA転送元データ読み出しを高速化している。しかしこれら従来の先行読み出し処理部203では、DMA転送元領域へのリードのうち1回目のリードは高速化できない。
さらに一般的なDMACは、DMACを制御するマスタがDMACに対して行うレジスタ設定(転送元アドレス,転送先アドレス,転送方法など)が完了するまでDMACはDMA転送を開始できない。つまり従来の先行読み出し処理部では、マスタがDMACに対する設定を開始してからDMA転送元領域の1回目のリード完了までのサイクルが高速化の対象外となり、DMAを即、起動したいシステムにおいては問題となる。
本発明は上記の点に鑑みてなされたものであり、DMA転送を高速化させることを目的としている。
前記の課題を解決するために、本発明では、マスタがDMACに対して複数回行うレジスタ設定のうち、DMA転送元領域の転送開始アドレス設定よりDMA転送元アドレスを取得し、DMA転送元アドレスが指定するリソース上のデータを先行読み出しする。
そのために、本発明によるDMA転送装置は、マスタがDMACに対して複数回行うレジスタ設定よりDMA転送元アドレスを取得する転送元アドレス設定検知手段と、DMA転送元アドレスが指定するリソース上のデータを先行読み出しする先行読み出し手段とを有する。先行読み出し手段は、DMA転送元アドレスを格納する先行アドレスレジスタと、先行アドレスレジスタに格納された転送元アドレスをリソースに発行し、読み出したデータを格納する先行データ格納バッファとを有する。
本発明では、マスタがDMACに対して複数回行うレジスタ設定のうち、DMA転送元領域の転送開始アドレス設定よりDMA転送元アドレスを取得する。これに応答して先行読み出し手段は、DMACのDMA転送開始を待たずに、上記DMA転送元アドレスが指定するデータを先行読み出しする。DMACは、DMA転送元の読み出しを先行読み出し手段が先行読み出ししたデータから行う。これにより、DMA転送の一回目のリードを高速化させることができる。
さらに、マスタがDMACに対して行う複数のレジスタ設定のうちDMA転送元領域の転送開始アドレス設定を一番初めに設定させ、先行読み出しを開始させることでそれ以降のレジスタ設定サイクルも隠蔽させることができる。
また、DMACが利用するキャッシュを備え、先行読み出ししたデータをキャッシュに格納し、格納した先行読み出しデータをキャッシュ上のDMA転送先へ転送させることでDMA転送のライトも高速化させることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図3は本発明の実施の形態1〜3におけるDMA転送装置の全体構成を表した図である。DMA転送装置306は、DMAC302と、DMAC302を制御するマスタ301と、先行読み出し処理部303と、転送元アドレス設定検知部305とを備える。
転送元アドレス設定検知部305は、マスタ301がDMAC302に対して複数回行うレジスタ設定のうちDMA転送元領域の転送開始アドレス設定よりDMA転送元アドレスを取得する。先行読み出し処理部303は、転送元アドレス設定検知部305によって取得されたDMA転送元アドレスが指定するリソース304上のデータを先行読み出しする。
マスタ301によるDMAC302のレジスタ設定が終わると、DMAC302は、DMA転送を開始し、先行読み出し処理部303により先行読み出しされたリソース304上のDMA転送元領域のデータを読み出し、リソース304上のDMA転送先領域へ転送する。
(実施の形態1)
本実施形態におけるDMA転送装置の全体構成は図3に示すとおりであり、本実施形態における先行読み出し処理部303は図4に示した構成をとる。
図4に示すように、先行読み出し処理部303は、加算回路402,先行アドレスレジスタ403,アドレス選択部405,先行データ格納バッファ406,先行読み出し無効レジスタ407,先行読み出し終了アドレス保持部408,データ選択部409を備えている。先行アドレスレジスタ403はアドレスを保持する。アドレス選択部405は、先行アドレスレジスタ403に格納されたアドレスとDMAC302から受けるリードアドレスのどちらかを選択しリソース304に出力する。先行データ格納バッファ406には、リソース304から読み出されたデータが格納される。データ選択部409は、先行データ格納バッファ406に格納されたデータとリソース304から受けるデータのどちらかを選択しDMAC302に出力する。
次に、本実施形態におけるDMA転送装置306の動作について説明する。
転送元アドレス設定検知部305よりDMA転送元アドレスを受け取ると、先行読み出し処理部303は、これを先行アドレスレジスタ403に格納する。さらに先行読み出し処理部303は、アドレス選択部405を制御し、先行アドレスレジスタ403が保持するリソース304上のアドレスへシングルリード要求を行って1ワードデータを先行読み出しし、当該先行読み出しした1ワードデータを先行データ格納バッファ406に格納する。
DMAC302よりリードアドレスを受けると、先行読み出し処理部303は、すでに先行データ格納バッファ406に格納されているデータすなわち当該リードアドレスが指定するリソース304上のデータをデータ選択部409により選択しDMAC302に返すとともに、先行アドレスレジスタ403に保持されているアドレスを加算回路402により1ワード分インクリメントし、次のDMA転送に備えてさらに先行読み出しする。これを繰り返すことでリソース(スレーブ)304上のDMA転送元領域を先行読み出しすることができる。
さらに、先行読み出し無効レジスタ407は、アドレス選択部405がDMAC302より受けたリードアドレスを直接リソース(スレーブ)304に出力し、リソース(スレーブ)304から読み出したデータをデータ選択部409で選択し直接マスタ301に返すよう制御する。これにより、先行読み出し機能を起動・停止させることができる。
さらに、先行読み出し終了アドレス保持部408はDMA転送元領域の終了アドレスを保持する。先行アドレスレジスタ403のアドレスが、先行読み出し終了アドレス保持部408が保持する終了アドレスに達すれば、先行読み出しをこれ以上行なわないよう制御することで、全てのDMA転送元領域の先行読み出しを終えれば先行読み出しを停止させることができる。
なお、マスタ301のレジスタ設定により、先行読み出し無効レジスタ407と先行読み出し終了アドレス保持部408が保持する値を設定,変更することができる。
(実施の形態2)
本実施形態におけるDMA転送装置の全体構成は図3に示すとおりであり、本実施形態における先行読み出し処理部303は図5に示した構成をとる。
図5に示すように、先行読み出し処理部303は、加算回路502,先行アドレスレジスタ503,複数ワード格納できる先行データ格納バッファ506,連続先行読み出し回数計測部507,総転送回数計測部508,総転送数保持部509,連続先行読み出し数保持部510を備えている。
次に、本実施形態におけるDMA転送装置306の動作について説明する。
転送元アドレス設定検知部305よりDMA転送元アドレスを受け取ると、先行読み出し処理部303は、これを先行アドレスレジスタ503に格納する。さらに先行読み出し処理部303は、先行アドレスレジスタ503が保持するリソース304上のアドレスへバーストリード要求(8ワード連続読み出し要求)を行って8ワードデータを先行読み出しし、当該先行読み出しした8ワードデータを先行データ格納バッファ506に格納する。
DMAC302よりリードアドレスを受けると、先行読み出し処理部303は、すでに先行データ格納バッファ506に格納されているデータすなわち当該リードアドレスが指定するリソース304上のデータをDMAC302に返す。先行データ格納バッファ506に空きができると、次のDMA転送に備えて加算回路502で先行アドレスレジスタ503が保持するアドレスを8ワード分インクリメントしてバーストリード要求を行い、さらに次の8ワードを先行読み出しする。
これを繰り返すことでリソース(スレーブ)304上のDMA転送元領域をバースト転送で先行読み出しすることができる。
さらに、連続先行読み出し回数計測部507は、先行アドレスレジスタ503が保持するリソース304上のリードアドレスへリード要求が行われるとカウントアップし、DMAC302が先行データ格納バッファ506に格納された先行読み出しデータを読み出すとカウントダウンする。連続先行読み出し数保持部510は、連続先行読み出し回数計測部507のカウント数の上限を指定する。連続先行読み出し回数計測部507のカウント値が連続先行読み出し数保持部510に設定した上限を超えるとリードアドレスの発行を一時的に止め、上限を下回ると再開させることで、先行データ格納バッファ506の容量を超えた先行読み出しを行わないよう制御することができる。
さらに、総転送回数計測部508は、先行アドレスレジスタ503が保持するリソース304上のリードアドレスへリード要求が行われた回数をカウントする。総転送数保持部509は、総転送回数計測部508のカウント数の上限を指定する。総転送回数計測部508で計測したリード要求数が、総転送数保持部509に設定した数に達するまで先行読み出しさせることで、全てのDMA転送元領域の先行読み出しを行なわせることができる。
また、マスタ301のレジスタ設定により、連続先行読み出し数保持部510,総転送数保持部509が保持する値を設定,変更することができる。
(実施の形態3)
本実施形態におけるDMA転送装置の全体構成は図3に示すとおりであり、本実施形態における先行読み出し処理部303は図6に示した構成をとる。
図6に示すように先行読み出し処理部303は、加算回路602,先行アドレスレジスタ603,先行データ格納バッファ606,X方向転送数計測部607,Y方向転送数計測部608,X方向転送数保持部609,Y方向転送数保持部610,不連続サイズ保持部611を備えている。
先行アドレスレジスタ603はリード要求を行う。先行データ格納バッファ606は読み出したデータを保持する。X方向転送数計測部607はリード要求数をカウントする。X方向転送数保持部609は、X方向転送数計測部607のカウント数の上限を保持する。不連続サイズ保持部611は、X方向転送数計測部607のカウント値がX方向転送数保持部609で設定した上限に達すれば先行アドレスレジスタ603に加えるオフセット値を保持する。Y方向転送数計測部608は、オフセットを加えた回数を保持する。Y方向転送数保持部610は、Y方向転送数計測部608のカウント数の上限を保持する。
次に、本実施形態におけるDMA転送装置306の動作について説明する。
転送元アドレス設定検知部305よりDMA転送元アドレスを受け取るとると、先行読み出し処理部303は、これを先行アドレスレジスタ603に格納する。さらに先行読み出し処理部303は、先行アドレスレジスタ603が保持するリソース304上のアドレスへシングルリード要求を行って1ワードデータを先行読み出しし、当該先行読み出しした1ワードデータを先行データ格納バッファ606に格納する。
DMAC302よりリードアドレスを受けると、先行読み出し処理部303は、すでに先行データ格納バッファ606に格納されているデータすなわち当該リードアドレスが指定するリソース304上データをDMAC302に返すとともに、先行アドレスレジスタ603に保持されているアドレスを加算回路602により1ワード分インクリメントし、次のDMA転送に備えてさらに先行読み出しする。
また、先行アドレスレジスタ603からリソース304へリード要求を発行した数をX方向転送数計測部607でカウントする。X方向転送数計測部607のカウント値がX方向転送数保持部609に設定された値を超えると、不連続サイズ保持部611が保持するオフセット値を先行アドレスレジスタ603が保持するアドレスに加え、さらにY方向転送数計測部608を1カウントアップし、X方向転送数計測部607のカウント数を0からカウントを再開する。そしてY方向転送数計測部608のカウント値がY方向転送数保持部610で保持する上限まで先行読み出しを繰り返すよう制御することで、矩形転送の先行読み出しを実現できる。
なお、X方向転送数保持部609,Y方向転送数保持部610,不連続サイズ保持部611に保持する値はマスタ301のレジスタ設定により設定することができる。
(実施の形態4)
本実施形態におけるDMA転送装置の全体構成は図7に示すとおりである。このDMA転送装置701は、複数転送チャネルを持つDMAC703と、DMAC703を制御するマスタ702と、転送元アドレス設定検知部704と、先行読み出し処理部705と、リソース706と、先行読み出し指定部718とを備える。
DMAC703は、複数の転送チャネルが出力するリードアドレスを調停し出力するアドレス選択部714を備える。
先行読み出し処理部705は、アドレス選択部707,DMA転送制御部708,先行読み出しチャネル709〜711,アドレス選択部712,先行データ格納バッファ713,調停部715,データ選択部716,DMA転送領域補保持部717を備えている。先行読み出しチャネル709〜711はアドレスを保持する。アドレス選択部712は、先行読み出しチャネル709〜711に格納されているアドレスとDMAC703より受け取ったリードアドレスとの中から1つを選択してリソース706に出力する。先行データ格納バッファ713は、複数のデータ部とタグ部の対から構成され、リソース706より読み出されたデータを格納する。データ選択部716は、先行データ格納バッファ713に格納されたデータ,または,リソース706が出力するデータを選択してDMAC703へ出力する。DMA転送領域補保持部717は、先行読み出しチャネル709〜711により先行読み出しされるDMA転送元領域のアドレス範囲を保持する。
転送元アドレス設定検知部704は、DMAC703の1つの転送チャネルを転送開始するためマスタ702が行うレジスタ設定のうちDMA転送元領域の転送開始アドレス設定よりDMA転送元アドレスを取得する。アドレス選択部707は、先行読み出しチャネル709〜711よりチャネル使用状態を調べ、空いている先行読み出しチャネルの1つにDMA転送元アドレスを格納する。さらに、DMAC703の他の転送チャネルを転送開始するためマスタ702がDMAC703に対してレジスタ設定を行うと、転送元アドレス設定検知部704が再度DMA転送先アドレスを取得し、アドレス選択部707は先行読み出しチャネル709〜711からチャネル使用状態を調べ、空いている先行読み出しチャネルの1つにDMA転送元アドレスを格納する。
アドレス選択部712は、先行読み出しチャネル709〜711のチャネル使用状況を調べ、DMA転送アドレスが格納された先行読み出しチャネルがあるときは当該DMA転送アドレスが格納された先行読み出しチャネルを1つ選択し、選択した先行読み出しチャネルに格納されたアドレスが指定するリソース706上のデータを先行読み出しして先行データ格納バッファ713のデータ部に格納する。この時、先行データ格納バッファ713に格納したデータがどのアドレスを読み出したものか区別するため、データを格納したデータ部に対応するタグ部にリソース706に出力したアドレスを格納する。
DMAC703は、転送チャネルのレジスタ設定が完了すると、レジスタ設定が完了した転送チャネルよりDMA転送を開始し、DMA転送元領域を読み出すため先行データ格納バッファ713へリードアドレスを発行する。先行読み出し処理部705は、DMAC703より受けたリードアドレスが、DMA転送領域保持部717が保持するDMA転送範囲内か否かを調べる。範囲内の場合、当該リードアドレスのデータはすでに先行データ格納バッファ713に先行読み出しされているため、先行データ格納バッファ713のタグ部と当該リードアドレスとを比較し、一致したタグ部に対応するデータをDMAC703に返す。一方、範囲内でない場合、当該リードアドレスのデータは先行データ格納バッファ713に先行読み出しされていないため、アドレス選択部712により当該リードアドレスをリソース706へ直接発行し、読み出したデータをデータ選択部716で選択し、DMAC703へ直接返す。
以上のように、複数転送チャネルを持つDMAC703のDMA転送をリソース(スレーブ)706上のDMA転送元領域を先行読み出しすることで高速化することができる。
また、DMA転送領域保持部717で保持するDMA転送元領域のアドレス範囲以外のリードアドレスをDMAC703より受けた場合、DMAC702より受け取ったリードアドレスをアドレス選択部712で選択してリソース706へ出力し、読み出したデータをデータ選択部716で選択しDMAC703に直接返すよう制御することで、全ての先行読み出しチャネル709〜711が使用中のときにマスタ702がさらに開始した転送チャネルのDMA転送は先行読み出しチャネル709〜711で先行読み出しを開始しないように制御することもできる。
さらに、調停部715は、複数の先行読み出しチャネル709〜711に格納されているDMA転送元アドレスを順番にアドレス選択部712が選択しリソース706にリード要求を送れるよう調停する。これにより、複数のDMA転送チャネルの転送元領域を時分割に先行読み出しすることができる。
また、DMA転送制御部708は、先行読み出しチャネル709〜711の動作状況をモニタし、全て使用していればこれ以上DMAC703の新しい転送チャネルを開始させないようマスタ702にDMA転送制御要求を送る。これにより、マスタ702が先行読み出し処理部705の能力を超える量の転送チャネルを開始するのを防ぐことができる。
また、先行読み出し指定部718は、転送元アドレス設定検知部704がDMAC703の特定チャネルのDMA転送元アドレスのみ取得するよう制限する。これにより、先行読み出しさせたいDMAC703の転送チャネルのDMA転送のみ先行読み出しするよう制御することができる。
(実施の形態5)
本実施形態におけるDMA転送装置の全体構成は図8に示すとおりである。このDMA転送装置808は、DMAC802と、DMAC802を制御するマスタ801と、キャッシュ803と、リソース804と、先行読み出し処理部806とを備える。キャッシュ803は、DMAC802が利用するリソース804上のデータのキャッシュが置かれ、DMAC802は先行読み出し処理部806とキャッシュ803を介してリソース804上でDMA転送を行う。
先行読み出し処理部806は、DMA転送を開始するためマスタ801がDMAC802に対して行うレジスタ設定のうちDMA転送元領域の開始アドレス設定よりDMA転送元アドレスを取得し、さらに、何ワードDMA転送するか指定するDMA転送サイズ設定よりDMA転送サイズを取得すると、DMA転送元アドレスが指定するリソース804上のデータのキャッシュを格納するようキャッシュ803へリフィル要求を行う。キャッシュ803がリフィル完了時に出力するリフィル完了通知を受けると、先行読み出し処理部806は、さらに次のアドレスに対しリフィル要求を行う。これを繰り返し、DMA転送元アドレスからDMA転送サイズまでの全てのDMA転送元領域をキャッシュ803に格納するよう制御する。また、マスタ801によるDMAC802のレジスタ設定が完了するとDMAC802はDMA転送を開始し、キャッシュ803上に格納したDMA転送元領域のデータを読み出し、リソース804上のDMA転送元へ転送する。
次に先行読み出し処理部806、キャッシュ803の構成と動作について説明する。図9に示すように、先行読み出し処理部806は、転送元アドレス設定検知部902,DMA転送サイズ設定検知部903,加算回路904,先行アドレスレジスタ905,先行読み出し終了サイズ保持部906を備えており、キャッシュ907は、コントローラ908,キャッシュメモリ909を備えている。
先行読み出し処理部806は、DMAC802が行うレジスタ設定のうちDMA転送元アドレスを転送元アドレス設定検知部902により取得し、先行アドレスレジスタ905に格納する。また先行読み出し処理部806は、DMA転送サイズ設定検知部903によりDMA転送サイズを取得し、先行読み出し終了サイズ保持部906に格納する。両方の格納が終わると先行読み出し処理部806は、キャッシュ803の先行アドレスレジスタ905が保持するアドレスへリフィル要求を発行する。
先行読み出し処理部806よりリフィル要求を受けると、キャッシュ803のコントローラ908は、当該リフィル要求に含まれるアドレスが指定する1ワードがキャッシュメモリ909上にあるか否かを確認するためキャッシュメモリ909にアドレスを発行する。これに応答してキャッシュメモリ909は、データがあればヒット、なければミスを表す制御信号をコントローラ908に返す。ミスを表す制御信号を受け取ると、コントローラ908は、上記リフィル要求に含まれるアドレスが指すリソース804上のデータ1ワードを読み出しキャッシュメモリ909に格納するキャッシュリフィル動作を行う。またコントローラ908は、キャッシュメモリ909よりヒットを表す制御信号を受け取るか、上記キャッシュリフィル動作が終わると、リフィル完了通知を先行読み出し処理部806に発行する。
リフィル完了通知を受け取ると、先行読み出し処理部806は、先行アドレスレジスタ905に格納されたアドレスを加算回路904により1ワード分インクリメントし、次のDMA転送元領域をリフィルするよう再度キャッシュ803にリフィル要求を発行する。これをDMA転送サイズが指示するDMA転送したいワード分繰り返すことで、リソース804上の全てのDMA転送元領域をキャッシュメモリ909上に先行読み出しすることができる。
(実施の形態6)
本実施形態におけるDMA転送装置の全体構成は図10に示すとおりである。このDMA転送装置1008は、DMAC1002、DMACを制御するマスタ1001、共有キャッシュ1003、リソース1004、先行読み出し処理部1006を備える。共有キャッシュ1003は、マスタ1001とDMAC1002が利用するリソース1004上のデータのキャッシュが置かれ、DMAC1002は先行読み出し処理部1006と共有キャッシュ1003を介してリソース1004上でDMA転送を行う。
先行読み出し処理部1006は、DMA転送を開始するためマスタ1001がDMAC1002に対して行うレジスタ設定をモニタし、その中のDMA転送元領域の開始アドレス設定よりDMA転送元アドレスを取得し、さらに、何ワードDMA転送するか指示するDMA転送サイズ設定よりDMA転送サイズを取得し、取得したDMA転送元アドレスとDMA転送サイズを共有キャッシュ1003に発行する。
共有キャッシュ1003は、受け取ったDMA転送元アドレスからDMA転送サイズまでのDMA転送元領域をリソース1004から読み出し、共有キャッシュ1003上にコピーを格納するリフィル動作を行う。さらに共有キャッシュ1003は、DMA転送元領域全てのリフィルが完了すると、リフィル完了通知をDMAC1002に発行する。
DMAC1002は、リソース1004上のDMA転送元領域のキャッシュを共有キャッシュ1003に格納完了したことをリフィル完了通知により認識する。DMAC1002は、格納したDMA転送元データをDMA転送先に出力するため、DMA転送元領域の先頭アドレスであるDMA転送先アドレスを共有キャッシュ1003に発行する。DMA転送先アドレスを受けると共有キャッシュ1003は、先行読み出し処理部1006が指定する共有キャッシュ1003上のDMA転送元アドレスからDMA転送サイズまでのDMA転送元領域を、共有キャッシュ1003上のDMA転送先アドレスからDMA転送サイズまでの転送先空間へ転送する。
次に先行読み出し処理部1006、共有キャッシュ1003の詳細な構成と動作について説明する。図11に示すように先行読み出し処理部1006は、転送元アドレス設定検知部1102,DMA転送サイズ設定検知部1103,先行アドレスレジスタ1105,先行読み出し終了サイズ保持部1106を備えており、共有キャッシュ1003は、コントローラ1108,キャッシュメモリ1109を備えている。
先行読み出し処理部1006は、DMAC1002が行うレジスタ設定のうちDMA転送元アドレスを転送元アドレス設定検知部1102で取得し、先行アドレスレジスタ1105に格納する。また先行読み出し処理部1006は、DMAC1002が行うレジスタ設定のうちDMA転送サイズをDMA転送サイズ検知部1103で取得し、先行読み出し終了サイズ保持部1106に格納する。両方の格納が終わると先行アドレスレジスタ1105と先行読み出し終了サイズ保持部1106からDMA転送元アドレスとDMA転送サイズを共有キャッシュ1003に発行する。
DMA転送元アドレスとDMA転送サイズを受けると共有キャッシュ1003のコントローラ1108は、受け取ったDMA転送元アドレスをキャッシュメモリ1109に発行する。キャッシュメモリ1109は、当該DMA転送元アドレスにより指定されるアドレスのデータがあればヒット、なければミスを表す制御信号をコントローラ1108に返す。ミスを表す制御信号を受け取ると、コントローラ1108は、DMA転送元アドレスが指定するリソース1004上のデータを読み出しキャッシュメモリ1109に格納するキャッシュリフィル動作を行う。これをDMA転送元アドレスからDMA転送サイズまでの領域に繰り返し行うことで全てのDMA転送元領域をキャッシュに格納することができる。さらにコントローラ1108は、全てのリフィル動作が完了すると、リフィル完了を知らせるためリフィル完了通知をDMAC1002に発行する。
DMAC1002よりDMA転送先アドレスを受けると、共有キャッシュ1003のコントローラ1108は、DMA転送元アドレスが指定するキャッシュメモリ1109上の1ライン(8ワード)を読み出し、DMA転送先アドレスが指定するキャッシュメモリ1109上の1ライン(8ワード)へ書き出す。これを繰り返し、DMA転送元アドレスからDMA転送サイズまでの全てのDMA転送元領域をDMA転送先アドレスからDMA転送サイズまでの全てのDMA転送先領域へ格納することで、共有キャッシュ1003に先行読み出ししたDMA転送元領域のデータをそのまま共有キャッシュ1003上のDMA転送先領域へ転送させることができる。
次に、図11のキャッシュメモリ1109が図12の構成であり、メモリ部1217の初期状態が図13(a)の時、図14のアドレス1,アドレス2が指定するリソース1004上のデータのキャッシュをメモリ部1217に格納するリフィル要求を受けた時の、動作と構成を説明する。
まずキャッシュメモリ1109の構成を説明する。キャッシュメモリ1109は、セットアソシアティブ方式のキャッシュである。メモリ部1217は、複数のライン(ライン0〜3)から構成され、それぞれのラインは、タグ領域1204、validビット領域1205、データ領域1206を備えている。データ領域1206は、リソース1004上のデータのコピーを格納する8ワード領域を備える。タグ領域1204には、データ領域1206に格納したデータがどこのアドレスのデータか区別するためにアドレスの一部(フレームアドレス)が格納される。また、キャッシュメモリ1109が受けるアドレスは、フレームアドレスと、ライン0〜3のうちどのラインを使うか選択するため使われる0〜3までのアドレス範囲からなるエントリアドレスと、8ワードからなるデータ領域1206から1ワード選択するため0〜7までのアドレス範囲からなるワードアドレスを備えている。
次に動作について説明する。コントローラ1108は、アドレス1のデータが既にメモリ部1217に格納されているか確認するためアドレス1(図14参照)をキャッシュメモリ1109に出力する。アドレス1を受けると、キャッシュメモリ1109のアドレスデコーダ1208は、アドレス1のエントリアドレス0をデコードし、メモリ部1217のライン0を選択する(図13(a)参照)。次にヒット判定部1210は、ライン0のタグ領域1204(図13(a)参照)とアドレス1のフレームアドレス(図14参照)が一致し、かつ、ライン0上のvalidビット領域1205が有効であるか調査する。ここでは全て条件を満たしているためライン0上に目的のデータがあると判断し、ヒット判定部1210は、キャッシュメモリ1109上にデータがあることを知らせるためコントローラ1108にヒット情報を通知する。
次にアドレス2(図14参照)を受け取ると、アドレスデコーダ1208は、アドレス2のエントリアドレス1をデコードし、メモリ部1217のライン1を選択する。次にヒット判定部1210は、ライン1のタグ領域1204とアドレス2のフレームアドレス2が一致し、かつ、ライン1上のvalidビット領域1205が有効であるか調査する。ここでは条件を満たしていないためライン1上にデータがないと判断し、ヒット判定部1210は、キャッシュメモリ1109上にデータがないことを知らせるためコントローラ1108にミス情報を通知する。ミス情報を受けるとコントローラ1108は、リソース1004上のアドレス2のワードアドレス0〜7のアドレス範囲の8ワードを読み出し、キャッシュメモリ1109のワードデコーダ1207を制御し、ライン1上のデータ領域1206のワード0〜7領域に順に書き込む。さらにタグ書き込み部1202によりライン1のタグ領域1204にアドレス2のフレームアドレス2を格納し、valid bit書き込み部1203によりライン1のvalidビット領域1205を有効に設定する。以上の動作により、リソース1004上のDMA転送元のデータをキャッシュメモリ1109へリフィルさせることができ、リフィル後のメモリ部1217は図13(b)に示すような状態となる。
次に図11のキャッシュメモリ1109が図12の構成であり、メモリ部1217の初期状態が図15(a)の時、図16に示すアドレス3とアドレス4をコントローラ1108より受け取り、アドレス3が指定するメモリ部1217上のDMA転送元領域1ライン(8ワード)を読み出し、アドレス4が指定するメモリ部1217上のDMA転送先領域1ライン(8ワード)へ格納した時のキャッシュ動作を説明する。
キャッシュメモリ1109はアドレス3(図16参照)を受けると、アドレス3のエントリアドレス1をアドレスデコーダ1208でデコードし、メモリ部1217のライン1を選択する。次にヒット判定部1210は、ライン1上のタグ領域1204とアドレス3のフレームアドレス2が一致し、かつ、ライン1のvalidビット領域1205が有効か調査する。ここでは全て条件を満たしているため、ヒット判定部1210は、コントローラ1108へヒット情報を送る。またワードセレクタ1211は、ライン1上のデータ領域1206の8ワードを順に読み出し、コントローラ1108に送る。
次にコントローラ1108は、DMA転送先へ書き出すためアドレス4(図16参照)と、先ほど読み出したDMA転送元データ8ワードをキャッシュメモリ1109へ出力する。キャッシュメモリ1109は、アドレス4のエントリアドレス3をアドレスデコーダ1208でデコードし、メモリ部1217のライン3を選択する。次にライン3上のタグ領域1204にタグ書き込み部1202によりアドレス4のフレームアドレス4を格納し、さらにvalid bit書き込み部1203によりライン3のvalidビット領域1205を有効に設定し、受け取ったデータをワードデコーダ1207でライン3のデータ領域1206のワード0〜7領域に順に格納する。
以上の動作により、キャッシュメモリ1109上に格納したDMA転送元領域の1ライン(8ワード)をキャッシュメモリ1109上のDMA転送先領域へ転送させることができ、転送後のメモリ部1217は図15(b)に示すような状態となる。
さらに、キャッシュメモリ1109に格納したDMA転送元領域のデータを読み出し、キャッシュメモリ1109上のDMA転送先領域へ格納した時、valid bit書き込み部1203により読み出したラインのvalidビット領域1205を無効に書き換え、転送済みのDMA転送元のデータをキャッシュ上から削除することで、キャッシュの有効利用を図ることができる。
(実施の形態7)
本実施形態におけるDMA転送装置の全体構成は図10に示すとおりであり、本実施形態における共有キャッシュ1003、先行読み出し処理部1006は図11の構成をとる。またそれぞれの構成とその動作については実施の形態6で説明したとおりであるが、キャッシュメモリ1109の構成が異なる。
キャッシュメモリ1109が図17の構成であり、メモリ部1703の初期状態が図18(a)の時、図19のアドレス1、アドレス2が指定するリソース1004上のデータのキャッシュをメモリ部1703に格納するリフィル要求を受けた時の、動作と構成を説明する。
まずキャッシュメモリ1109の構成を説明する。キャッシュメモリ1109はフルアソシアティブ方式のキャッシュであり、メモリ部1703は複数のライン(ライン0〜3)から構成され、それぞれのラインはタグ領域1705、データ領域1706を備えている。データ領域1706は、リソース1004上のデータのコピーを格納する8ワード領域を備える。タグ領域1705には、データ領域1706に格納したデータがどこのアドレスのデータか区別するためにアドレスの一部(フレームアドレス)が格納される。またキャッシュメモリ1109が受けるアドレスは、フレームアドレスと、ワードアドレスとを備えている。ワードアドレスは、8ワードからなるデータ領域1706から1ワード選択するため0〜7までのアドレス範囲からなる。
次に動作について説明する。コントローラ1108は、アドレス1のデータが既にメモリ部1703に格納されているか確認するためアドレス1(図19参照)をキャッシュメモリ1109に出力する。アドレス1を受けるとキャッシュメモリ1109のヒット判定部1707は、アドレス1のフレームアドレス100とメモリ部1703の全てのラインのタグ領域1705とを比較する。ここではライン0が一致するためキャッシュメモリ1109上のライン0にデータがあると判断し、ヒット判定部1707は、コントローラ1108にヒット情報を通知する。次にアドレス2(図19参照)を受け取ると、アドレス2のフレームアドレス101とメモリ部1703の全てのラインのタグ領域1705とを比較する。ここでは1つも一致しないためキャッシュメモリ1109の全てのラインにデータがないと判断し、ヒット判定部1707は、コントローラ1108にミス情報を通知する。ミス情報を受けるとコントローラ1108は、リソース1004上のアドレス2のワードアドレス0〜7の範囲より8ワードを読み出し、ヒット判定部1707が選択する空のライン1のデータ領域1706のワード0〜7領域へワードデコーダ1708を制御し順に書き込む。さらにタグ書き込み部1702により、ライン1上のタグ領域1705にアドレス2のフレームアドレス101を格納する。以上の動作により、リソース1004上のDMA転送元のデータをキャッシュメモリ1109へリフィルさせることができ、リフィル後のメモリ部1703は図18(b)に示すような状態となる。
次に図11のキャッシュメモリ1109が図17の構成であり、メモリ部1703の初期状態が図20の時、コントローラ1108より図21のアドレス3とアドレス4を受け取り、アドレス3が指定するメモリ部1703上のDMA転送元領域1ライン(8ワード)を読み出し、アドレス4が指定するメモリ1703上のDMA転送先領域1ライン(8ワード)へ格納した時のキャッシュ動作を説明する。
キャッシュメモリ1109がアドレス3(図21参照)を受けると、ヒット判定部1707でアドレス3のフレームアドレス101とメモリ部1703の全てのラインのタグ領域1705とを比較する。ここではライン1が一致するためヒット判定部1707は、一致したライン1を選択し、さらにキャッシュメモリ1109上にデータがあることを知らせるためコントローラ1108へヒット情報を送る。次にキャッシュメモリ1109がアドレス4を受けると、ヒット判定部1701により先ほど選択されたライン1のタグ領域1705をタグ書き込み部1702によりアドレス4(図21参照)のフレームアドレス201に書き換える。これにより、キャッシュメモリ1109の1ライン(8ワード)をDMA転送させることができる。また、転送後のメモリ部1703は図20(b)に示すような状態となる。
さらにキャッシュメモリ1109上のDMA転送元領域のタグをDMA転送先領域のものに変更する際、属性指定部1710は、このデータをキャッシュに保持するライトバック属性(WB)か、キャッシュに保持するがリソース1004にも書き出すライトスルー属性(WT)か、キャッシュに保持しないノンバッファブル属性かを指定する。属性指定部1710が指定するキャッシュ属性はメモリ部1703の属性領域1711に保持される。これにより、キャッシュメモリ1109のDMA転送先領域に転送したデータをキャッシュメモリ1109に保持してよいかリソース1004に書き出さなければいけないか指定することができる。
(実施の形態8)
本実施形態におけるDMA転送装置の全体構成は図10に示すとおりであり、本実施形態における共有キャッシュ1003、先行読み出し処理部1006は図11の構成をとる。またそれぞれの構成とその動作については実施の形態6で説明したとおりであるが、キャッシュメモリ1109の構成が異なる。
本実施形態におけるキャッシュメモリ1109の構成を図22に示す。このキャッシュメモリ1109は、DMA転送用のデータを格納するキャッシュメモリB2206、それ以外のデータを格納するキャッシュメモリA2205を備えている。
キャッシュメモリ1109にリードアドレス及びライトアドレスが入力されるとキャッシュ制御部2202は、DMA転送領域保持部2209が保持するDMA転送範囲アドレスと比較し、範囲内のアドレスならDMA転送と判断してキャッシュメモリB2206を選択し、それ以外ならキャッシュメモリA2205を選択する。また、このアドレスをアドレス制御部2203で制御し、キャッシュ制御部2202が選択したキャッシュメモリ2205または2206へ入力する。またキャッシュメモリ1109に入力されたデータがあればライトデータ制御部2204で制御し、キャッシュ制御部2202が選択するキャッシュメモリ2205または2206へ入力する。またキャッシュ制御部2202が選択したキャッシュメモリ2205または2206が出力するヒット,ミスの情報をタグ参照結果制御部2207で選択し、コントローラ1108に出力する。またキャッシュ制御部2202が選択したキャッシュメモリ2205または2206が出力するデータがあればリードデータ制御部2208で選択し、コントローラ1108に出力する。以上の動作により、DMAC1002がDMA転送で使用するキャッシュメモリとマスタ1001が使用するキャッシュメモリを分けることができる。
(実施の形態9)
本実施形態におけるDMA転送装置の全体構成は図23に示すとおりである。このDMA転送装置2308は、DMAC2302と、DMAC2302を制御するマスタ2301と、共有キャッシュ2303と、リソース2304と、先行読み出し処理部2306とを備える。共有キャッシュ2303は、マスタ2301とDMAC2302で共有され、リソース2304上のデータのキャッシュが置かれる。DMAC2302は、先行読み出し処理部2306と共有キャッシュ2303を介してリソース2304上でDMA転送を行う。
次にそれぞれの動作を説明する。共有キャッシュ2303は、先行読み出し処理部2306より受け取ったDMA転送元アドレスが指定するリソース2304上のデータを先行読み出しする。またDMAC2302は、マスタ2301によるレジスタ設定が終わるとDMA転送を開始し、リソース2304上のDMA転送先領域の先頭アドレスであるDMA転送先アドレスを共有キャッシュ2303に発行する。共有キャッシュ2303は、DMA転送先アドレスを受けると、先行読み出ししたデータを共有キャッシュ2303上のDMA転送先アドレスが指定する領域へ格納する。
さらに共有キャッシュ2303は、DMA転送元アドレスとDMA転送先アドレスをそれぞれインクリメントし、DMA転送元アドレスが指定するリソース2304上のデータを共有キャッシュ2303のDMA転送先アドレス領域へ格納し、これをDMA転送サイズまで繰り返すことで、全てのリソース2304上のDMA転送元領域のキャッシュを共有キャッシュ2303上のDMA転送先領域へ格納することができる。
また先行読み出し処理部2306は、実施の形態6で説明した先行読み出し処理部1006(図10)と同様の動作を行う。
本発明は、瞬時に転送が開始されるDMA転送や、高速なDMA転送が要求される半導体装置において有用である。
一般的なDMA転送装置の概略構成を示す図である。 先行読み出しによりDMA転送を高速化する従来のDMA転送装置の概略構成を示す図である。 本発明の実施の形態1〜3におけるDMA転送装置の全体構成を示す図である。 本発明の実施の形態1における先行読み出し処理部の内部構成を示す図である。 本発明の実施の形態2における先行読み出し処理部の内部構成を示す図である。 本発明の実施の形態3における先行読み出し処理部の内部構成を示す図である。 本発明の実施の形態4におけるDMA転送装置の全体構成を示す図である。 本発明の実施の形態5におけるDMA転送装置の全体構成を示す図である。 本発明の実施の形態5における先行読み出し処理部とキャッシュの内部構成を示す図である。 本発明の実施の形態6におけるDMA転送装置の全体構成を示す図である。 本発明の実施の形態6における先行読み出し処理部と共有キャッシュの内部構成を示す図である。 図11に示したキャッシュメモリの内部構成を示す図である。 (a)メモリ部の初期状態を示す図である。(b)リフィル後のメモリ部の状態を示す図である。 アドレスの例を示す図である。 (a)メモリ部の初期状態を示す図である。(b)キャッシュメモリ上に格納したDMA転送元領域の1ライン(8ワード)をキャッシュメモリ上のDMA転送先領域へ転送後のメモリ部の状態を示す図である。 アドレスの例を示す図である。 本発明の実施の形態7におけるキャッシュメモリの内部構成を示す図である。 (a)メモリ部の初期状態を示す図である。(b)リフィル後のメモリ部の状態を示す図である。 アドレスの例を示す図である。 (a)メモリ部の初期状態を示す図である。(b)キャッシュメモリの1ライン(8ワード)をDMA転送後のメモリ部の状態を示す図である。 アドレスの例を示す図である。 本発明の実施の形態8におけるキャッシュメモリの内部構成を示す図である。 本発明の実施の形態9におけるDMA転送装置の全体構成を示す図である。
符号の説明
101,201,306,701,808,1008,2308…DMA転送装置
102,202,302,703,802,1002,2302…DMAC
103,204,304,706,804,1004,2304…リソース
203,303,705,806,1006,2306…先行読み出し処理部
205,403,503,603,905,1105…先行アドレスレジスタ
206,908,1108…コントローラ
207,506,606…先行データ格納バッファ
208,402,502,602,904…加算回路
209,210…セレクタ
301,702,801,2301…マスタ
305,704,902,1102…転送元アドレス設定検知部
405,707,712,714…アドレス選択部
406,713…先行データ格納バッファ
407…先行読み出し無効レジスタ
408…先行読み出し終了アドレス保持部
409,716…データ選択部
507…連続先行読み出し回数計測部
508…総転送回数計測部
509…総転送数保持部
510…連続先行読み出し数保持部
607…X方向転送数計測部
608…Y方向転送数計測部
609…X方向転送数保持部
610…Y方向転送数保持部
611…不連続サイズ保持部
708…DMA転送制御部
709,710,711…先行読み出しチャネル
715…調停部
717…DMA転送領域補保持部
718…先行読み出し指定部
803…キャッシュ
903,1103…DMA転送サイズ設定検知部
906,1106…先行読み出し終了サイズ保持部
909,1109…キャッシュメモリ
1003,2303…共有キャッシュ
1202,1702…タグ書き込み部
1203…Valid bit書き込み部
1204,1705…タグ領域
1205…Validビット領域
1206,1706…データ領域
1207,1708…ワードデコーダ
1208…アドレスデコーダ
1210,1707…ヒット判定部
1211,1709…ワードセレクタ
1217,1703…メモリ部
1710…属性指定部
1711…属性領域
2202…キャッシュ制御部
2203…アドレス制御部
2204…ライトデータ制御部
2205…キャッシュメモリA
2206…キャッシュメモリB
2207…タグ参照結果制御部
2208…リードデータ制御部
2209…DMA転送領域保持部

Claims (24)

  1. DMAC(Direct Memory Access Controller)と、
    前記DMACを制御するマスタと、
    DMA(Direct Memory Access)転送でアクセスされる少なくとも一つのリソースと、
    DMA転送を開始するため前記マスタが前記DMACに行なうレジスタ設定のうち、DMA転送元領域の転送開始アドレス設定よりDMA転送元アドレスを取得する転送元アドレス設定検知手段と、
    前記転送元アドレス設定検知手段が検知した前記リソース上のDMA転送元アドレスへリード要求する先行読み出し手段とを備えている、
    ことを特徴とするDMA転送装置。
  2. 複数の転送チャネルを持つDMAC(Direct Memory Access Controller)と、
    前記DMAC(Direct Memory Access Controller)を制御するマスタと、
    DMA転送でアクセスされる少なくとも一つのリソースと、
    各DMA転送を開始するため前記マスタが前記DMACの前記各転送チャネル毎に行うレジスタ設定のうち、DMA転送元領域の転送開始アドレス設定より各々のDMA転送元アドレスを取得する転送元アドレス設定検知手段と、
    先行読み出し手段とを備え、
    前記先行読み出し手段は、
    前記転送元アドレス設定検知手段が検知したDMA転送元アドレスを保持する先行読み出しチャネルを一つ以上備え、
    前記各先行読み出しチャネルが保持する前記リソース上の各DMA転送元アドレスへリード要求する、
    ことを特徴とするDMA転送装置。
  3. 請求項2において、
    全ての前記先行読み出しチャネルが使用中のとき、前記マスタにこれ以上DMA転送を開始しないよう要求するDMA転送制御手段をさらに備える、
    ことを特徴とするDMA転送装置。
  4. 請求項2において、
    全ての前記先行読み出しチャネルが使用中のとき、前記マスタがさらに開始した新しい前記転送チャネルのDMA転送はDMA転送元アドレスを前記先行読み出しチャネルに格納しない、
    ことを特徴とするDMA転送装置。
  5. 請求項2において、
    特定の前記転送チャネルが行うDMA転送以外のDMA転送はDMA転送元アドレスを前記先行読み出しチャネルに格納しない、
    ことを特徴とするDMA転送装置。
  6. 請求項2において、
    複数の先行読み出しチャネルがそれぞれ出力するリード要求を調停する調停手段をさらに備える、
    ことを特徴とするDMA転送装置。
  7. 請求項1〜6のいずれか1つにおいて、
    前記先行読み出し手段が出力するリード要求により先行読み出ししたデータを格納する先行データ格納バッファをさらに備えている、
    ことを特徴とするDMA転送装置。
  8. 請求項1〜6のいずれか1つにおいて、
    前記先行読み出し手段が出力するリード要求により先行読み出ししたデータを格納するキャッシュをさらに備えている、
    ことを特徴とするDMA転送装置。
  9. 請求項1〜6のいずれか1つにおいて、
    前記先行読み出し手段が出力するリード要求により先行読み出ししたデータを格納する、前記DMACと1つ以上のバスマスタで共有される共有キャッシュをさらに備えている、
    ことを特徴とするDMA転送装置。
  10. 請求項9において、
    前記共有キャッシュは複数のキャッシュを含み、
    前記複数のキャッシュのうちの少なくとも1つを前記DMACが専有し、
    前記先行読み出し手段が出力するリード要求により先行読み出ししたデータを前記DMACが専有するキャッシュに格納する、
    ことを特徴とするDMA転送装置。
  11. 請求項8〜10のいずれか1つにおいて、
    先行読み出ししたデータを前記キャッシュまたは前記共有キャッシュ上のDMA転送元アドレス領域に格納し、さらにこのデータのコピーを前記キャッシュまたは前記共有キャッシュ上のDMA転送先アドレス領域へ格納することでDMA転送先への書き出しを行う、
    ことを特徴とするDMA転送装置。
  12. 請求項11において、
    コピー済みの前記キャッシュまたは前記共有キャッシュ上のDMA転送元アドレス領域をインバリデートする、
    ことを特徴とするDMA転送装置。
  13. 請求項8〜10のいずれか1つにおいて、
    先行読み出ししたデータを前記キャッシュまたは前記共有キャッシュ上のDMA転送元アドレス領域に格納し、さらに前記キャッシュまたは前記共有キャッシュ上のDMA転送元アドレス領域のタグをDMA転送先アドレス領域のタグに変更することでDMA転送先への書き出しを行う、
    ことを特徴とするDMA転送装置。
  14. 請求項8〜10のいずれか1つにおいて、
    先行読み出ししたデータを前記キャッシュまたは前記共有キャッシュ上のDMA転送先アドレス領域に格納する、
    ことを特徴とするDMA転送装置。
  15. 請求項11〜14のいずれか1つにおいて、
    先行読み出ししたデータを前記キャッシュまたは前記共有キャッシュ上の転送先アドレス領域へ書き込む際、前記キャッシュのタグ領域にキャッシュ属性を書き込む属性指定手段をさらに備えている、
    ことを特徴とするDMA転送装置。
  16. 請求項1〜15のいずれか1つにおいて、
    前記先行読み出し手段がリード要求を行った後、前記先行読み出し手段が保持するDMA転送元アドレスをインクリメントしてさらにリード要求を行う、
    ことを特徴とするDMA転送装置。
  17. 請求項16において、
    先行読み出し終了アドレス保持手段をさらに備え、
    DMA転送元アドレスが前記先行読み出し終了アドレス保持手段が保持するアドレスに達するとインクリメントを止め、先行読み出しを終了させる、
    ことを特徴とするDMA転送装置。
  18. 請求項16において、
    前記先行読み出し手段がリード要求を行った回数を計測する総転送回数計測手段と、
    前記総転送回数計測手段で計測できる上限を保持する総転送数保持手段とをさらに備え、
    前記総転送回数計測手段で計測した値が前記総転送数保持手段で保持する上限に達すると先行読み出しを終了させる、
    ことを特徴とするDMA転送装置。
  19. 請求項16〜18のいずれか1つにおいて、
    前記DMACが行うリード要求より前に先行して前記先行読み出し手段がリード要求を行った数を計測する連続先行読み出し回数計測手段と、
    前記連続先行読み出し回数計測手段で計測できる上限回数を保持する連続読み出し数保持手段とをさらに備え、
    前記連続先行読み出し回数計測手段で計測した値が前記連続読み出し数保持手段で保持する上限に達すると先行読み出しを停止させる、
    ことを特徴とするDMA転送装置。
  20. 請求項1〜19のいずれか1つにおいて、
    シングル転送で先行読み出しする、
    ことを特徴とするDMA転送装置。
  21. 請求項1〜19のいずれか1つにおいて、
    バースト転送で先行読み出しする、
    ことを特徴とするDMA転送装置。
  22. 請求項1〜19のいずれか1つにおいて、
    矩形転送の際先行読み出しする、
    ことを特徴とするDMA転送装置。
  23. 請求項1〜22のいずれか1つにおいて、
    先行読み出し手段の起動、及び停止が制御できる、
    ことを特徴とするDMA転送装置。
  24. 請求項1〜23のいずれか1つにおいて、
    DMA転送を開始するため前記マスタが前記DMACに行うレジスタ設定のうち、何ワードDMA転送するか指示するDMA転送サイズ設定よりDMA転送サイズを取得するDMA転送サイズ検知手段をさらに備える、
    ことを特徴とするDMA転送装置。
JP2008051737A 2008-03-03 2008-03-03 Dma転送装置 Withdrawn JP2009211248A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008051737A JP2009211248A (ja) 2008-03-03 2008-03-03 Dma転送装置
CN2009801073558A CN101960437A (zh) 2008-03-03 2009-01-22 Dma传输装置
PCT/JP2009/000227 WO2009110168A1 (ja) 2008-03-03 2009-01-22 Dma転送装置
US12/853,092 US20100306421A1 (en) 2008-03-03 2010-08-09 Dma transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008051737A JP2009211248A (ja) 2008-03-03 2008-03-03 Dma転送装置

Publications (1)

Publication Number Publication Date
JP2009211248A true JP2009211248A (ja) 2009-09-17

Family

ID=41055737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008051737A Withdrawn JP2009211248A (ja) 2008-03-03 2008-03-03 Dma転送装置

Country Status (4)

Country Link
US (1) US20100306421A1 (ja)
JP (1) JP2009211248A (ja)
CN (1) CN101960437A (ja)
WO (1) WO2009110168A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114774B2 (en) 2016-09-14 2018-10-30 Fujitsu Limited Data transfer method, parallel processing device, and recording medium

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150090621A (ko) * 2014-01-29 2015-08-06 삼성전자주식회사 스토리지 장치 및 데이터 처리 방법
US20160011790A1 (en) * 2014-07-14 2016-01-14 Sandisk Technologies Inc. Systems and methods to enable access to a host memory associated with a unified memory architecture (uma)
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
US10025532B2 (en) * 2015-09-11 2018-07-17 Sandisk Technologies Llc Preserving read look ahead data in auxiliary latches
US10642513B2 (en) 2015-09-11 2020-05-05 Sandisk Technologies Llc Partially de-centralized latch management architectures for storage devices
DE102016206109A1 (de) * 2016-04-13 2017-10-19 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit
JP7257772B2 (ja) * 2018-10-31 2023-04-14 ルネサスエレクトロニクス株式会社 半導体装置を用いるシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62279445A (ja) * 1986-05-29 1987-12-04 Canon Inc デ−タ転送装置
JPH02110646A (ja) * 1988-10-20 1990-04-23 Hitachi Ltd メモリの先行読出し装置
JP2626568B2 (ja) * 1994-07-27 1997-07-02 日本電気株式会社 データ転送制御装置
JP3525518B2 (ja) * 1994-10-13 2004-05-10 ヤマハ株式会社 データ転送装置
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
JPH11115258A (ja) * 1997-10-21 1999-04-27 Canon Inc 出力制御装置及び方法
JP2004139361A (ja) * 2002-10-18 2004-05-13 Sony Corp ダイレクトメモリアクセス装置およびその制御方法
JP4499008B2 (ja) * 2005-09-15 2010-07-07 富士通マイクロエレクトロニクス株式会社 Dma転送システム
JP2007310735A (ja) * 2006-05-19 2007-11-29 Nec Electronics Corp ダイレクトメモリアクセスコントローラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114774B2 (en) 2016-09-14 2018-10-30 Fujitsu Limited Data transfer method, parallel processing device, and recording medium

Also Published As

Publication number Publication date
US20100306421A1 (en) 2010-12-02
CN101960437A (zh) 2011-01-26
WO2009110168A1 (ja) 2009-09-11

Similar Documents

Publication Publication Date Title
WO2009110168A1 (ja) Dma転送装置
JP5536658B2 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
JP5417879B2 (ja) キャッシュ装置
JP7340326B2 (ja) メンテナンス動作の実行
US8589638B2 (en) Terminating barriers in streams of access requests to a data store while maintaining data consistency
US10198357B2 (en) Coherent interconnect for managing snoop operation and data processing apparatus including the same
CN109799959B (zh) 一种提高开放通道固态盘写并行性的方法
JP2007080220A (ja) メモリ制御装置。
WO2010032433A1 (ja) バッファメモリ装置、メモリシステム及びデータ読出方法
KR100505695B1 (ko) 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법
US10042773B2 (en) Advance cache allocator
KR102482516B1 (ko) 메모리 어드레스 변환
JP2008217183A (ja) メモリ管理装置
US8719542B2 (en) Data transfer apparatus, data transfer method and processor
US9824017B2 (en) Cache control apparatus and method
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
US10083116B2 (en) Method of controlling storage device and random access memory and method of controlling nonvolatile memory device and buffer memory
JP2005128963A (ja) 記憶制御装置及びdma転送が可能な制御システム
US9116814B1 (en) Use of cache to reduce memory bandwidth pressure with processing pipeline
EP2902910A1 (en) Electronic device, and method for accessing data in electronic device
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法
JP3130569B2 (ja) キャッシュメモリのストア方式
JP2004240520A (ja) ノンキャッシュ領域内高速メモリアクセス方法
WO2023191861A1 (en) Cache data provided based on data availability
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100915

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120130

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120217