JPWO2008105494A1 - Dma転送装置及び方法 - Google Patents

Dma転送装置及び方法 Download PDF

Info

Publication number
JPWO2008105494A1
JPWO2008105494A1 JP2009501295A JP2009501295A JPWO2008105494A1 JP WO2008105494 A1 JPWO2008105494 A1 JP WO2008105494A1 JP 2009501295 A JP2009501295 A JP 2009501295A JP 2009501295 A JP2009501295 A JP 2009501295A JP WO2008105494 A1 JPWO2008105494 A1 JP WO2008105494A1
Authority
JP
Japan
Prior art keywords
data
transfer
pattern
memory
dma
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.)
Granted
Application number
JP2009501295A
Other languages
English (en)
Other versions
JP5360594B2 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009501295A priority Critical patent/JP5360594B2/ja
Publication of JPWO2008105494A1 publication Critical patent/JPWO2008105494A1/ja
Application granted granted Critical
Publication of JP5360594B2 publication Critical patent/JP5360594B2/ja
Active 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)
  • Arrangement Or Mounting Of Control Devices For Change-Speed Gearing (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

【課題】少ない追加ハードウェアで外部共有メモリ−DMAコントローラ間バスのトラフィックを減少させ、メモリの効率的な使用が可能なDMA転送装置及び方法を提供する。【解決手段】DMAコントローラ17内にパターン生成部11を備え、一方の外部共有メモリ14から他方の内部メモリ15にデータを転送する際にDMAコントローラ内でゼロ行列や単位行列等の予め決まった既定パターンデータを生成する。また、一方の外部共有メモリから読み出した転送データを待ち合わせユニット13に一時保持して待ち合わせを行う。その際、転送データ数の大きさに基づいて待ち合わせユニットからの転送データと既定パターンデータとの切り替えを行う。【選択図】図1

Description

本発明は、メモリ間データ転送装置、特に、DMA(Direct Memory Access)転送装置及び方法に関するものである。本願は、2007年2月28日に出願された特願2007−049976号に基づき、優先権の利益を主張するものである。そして、特願2007−049976号の内容は本願の明細書の内容に含まれる。
現在、トランジスタ技術の進歩によりLSIの微細化が進み、シストリックアレイやマルチプロセッサ等のようなたくさんの演算ユニットにより高い並列性を持つアーキテクチャが脚光を浴びている。それらの高並列アーキテクチャはメモリ間データ転送のトラフィックをいかに効率よくできるかが、システムのパフォーマンスを向上させる上でポイントとなる。
上述のシステムにおいてメモリ間のデータ転送は一般的にDMA転送が用いられている。図10は背景技術となるDMA転送装置の構成を示す図である。DMA転送を制御するDMAコントローラ107は、パラメータレジスタ101、DMA制御部100、IF106を含んでいる。
また、DMAコントローラ107の周辺には、外部共有メモリ102、内部メモリ103、演算コア108、CPU109が設けられている。DMAコントローラ107、外部共有メモリ102、及びCPU109や、データバス110、111に接続されている。
DMA転送では、図10に示すように、CPU109が直接制御せずに、メモリアドレスオフセットやデータ数等のパラメータをDMAコントローラ107に設定することにより、DMAコントローラ107が外部共有メモリ102から内部メモリ103へデータ転送を行う。DMA転送を行うことで、CPU109の負荷を軽減することが可能となる。
DMA転送に関連する技術は、例えば、特開2001−154846号公報(特許文献1)、特開2006−155490号公報(特許文献2)、特開平5−244167号公報(特許文献3)、特開平5−336380号公報(特許文献4)、特開平10−40399号公報(特許文献5)に開示されている。
特開2001−154846号公報 特開2006−155490号公報 特開平5−244167号公報 特開平5−336380号公報 特開平10−40399号公報
上述したDMA転送には以下の3つの問題点がある。
(1)メモリに既定のパターンであるゼロ行列や単位行列も格納するため、メモリの使用効率が低下する。
(2)外部メモリにゼロ行列や単位行列を格納する場合、DMA転送にてそれらの行列を内部メモリへ転送する必要があるため無駄なデータ転送が発生する。
(3)メモリ使用効率やデータ転送率向上のため演算部分でデータを生成する機能を追加する方法もあるが、既定パターンデータを扱わない場合の処理と分けて構成する必要があり、内部の構成が複雑になる。
図10に示したシステムは、外部に共有メモリを持つ構成であり、外部メモリから適宜内部メモリへデータ転送を行うことによって演算を行う。演算ユニットがシストリックアレイの場合には、データフローが単純であるほど高効率な演算を行うことができる。
そのため、ゼロ行列や単位行列を演算に用いる場合でも、通常のデータと同様にデータ転送を行うことが望まれる。従って、ゼロ行列や単位行列等の既定パターンのデータを格納するためメモリ領域を確保する必要がある。
また、DMA転送時においても規定パターンのデータを転送するため冗長な転送が発生する。これに対し、演算コア内部で既定パターンを生成する機能を追加し、データ転送量を改善する方法もあるが、既定パターンデータを扱わない場合の処理と分けて動作フローを構成する必要があり、内部構成が複雑になるという問題点が生じる。
本発明の典型的な目的は、少ない追加ハードウェアで外部共有メモリ−DMAコントローラ間バスのトラフィックを減少させ、メモリの効率的な使用が可能なDMA転送装置及び方法を提供することにある。
本発明は、複数のメモリ間のDMA転送を行うDMA転送装置において、
既定パターンデータを生成するパターンタ生成部と、
一方のメモリから読み出した転送データと前記パターン生成部で生成された既定パターンデータとの同期をとるための待ち合わせ部と、
前記転送データの大きさを判定する判定部とを有し、
前記判定部の判定結果に基づいて前記待ち合わせ部からの転送データと前記パターン生成部で生成された既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加して他方のメモリへ転送することを特徴とする。
また本発明は、複数のメモリ間のDMA転送を行うDMA転送装置のDMA転送方法において、
既定パターンデータを生成するステップと、
待ち合わせ部で、一方のメモリから読み出した転送データと、生成された前記既定パターンデータとの同期をとるステップと、
前記転送データの大きさを判定するステップとを有し、
前記転送データの大きさの判定結果に基づいて、同期がとられた転送データと、生成された前記既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加し、他方のメモリへ転送するステップと、を含むことを特徴とする。
本発明によれば、DMA転送装置内に既定パターンデータを生成するパターンタ生成部を追加することにより、DMA転送装置とDMA転送元のメモリ間のバスの転送量を削減でき、DMA転送元のメモリの使用効率を向上できる。また、DMA転送先のメモリにすでに既定パターンデータが格納されるため、動作フローも単純に構成できる。即ち、DMA転送時にDMA転送元のメモリとDMA転送装置との間のバスに既定パターンのデータを流す必要がないため構成を簡単化できる。
更に、データ転送量が削減できればDMA転送元のメモリと他のユニットとのデータ転送にバスを明け渡すことができるため、システム全体のパフォーマンスを向上することもできる。これは、DMA転送元のメモリに既定パターンのデータを格納する必要がないことも理由として挙げられる。他の効果としてDMA転送先の一定領域のリセットをCPUの介在なしでDMA転送装置の処理のみで行うことができる。
本発明に係るDMA転送装置の第1の実施形態を示すブロック図である。 第1の実施形態のパターン生成部を示すブロック図である。 第1の実施形態のDMA転送を説明するタイミングチャートである。 本発明に係るDMA転送装置の第2の実施形態を含むシステムを示すブロック図である。 第2の実施形態のパターン生成部を示すブロック図である。 第2の実施形態のDMA転送を説明するタイミングチャートである。 本発明の第3の実施形態のパターン生成部を示すブロック図である。 第3の実施形態のDMA転送を説明するタイミングチャートである。 第4の実施形態のDMA転送を説明するタイミングチャートである。 背景技術となるDMA転送装置を示すブロック図である。
符号の説明
10 DMA制御部
11 パターン生成部
12 パラメータレジスタ
13 待ち合わせユニット
14 外部共有メモリ
15 内部メモリ
16 データ用メモリIF
17 DMAコントローラ
18 演算コア
19 CPU
20 データバス
21 アドレスバス
22 インデックスデコーダ
23 カウンタ
24 セレクタ
25 マルチプレクサ
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。まず、本発明の典型的な実施形態は、DMA転送を用いて外部の共有メモリから内部メモリへデータ転送を行い、内部演算コアにて行列演算のような多量のデータを扱うシステムを想定する。行列演算では、ゼロ行列や単位行列等のパターンの決まった構成のデータを扱う場合が多い。
ゼロ行列や単位行列といった既定パターンのデータは、他の演算用データと同様に内部メモリや外部メモリに一時保存しておき、使用する度に演算コアへデータ転送を行う(但し、内部メモリに一時格納する場合にはメモリ容量に限りがあるため、次の演算で既定パターンのデータが使用されない場合は、他のデータが上書きされてしまう)。
背景技術として説明したDMA転送はパラメータによって設定されたデータ数やアドレスオフセットによりメモリ間転送を行うのみであるため、ゼロ行列や単位行列等も通常の演算データと同様の演算パスで計算したい場合、ゼロ行列や単位行列等を含めてDMAコントローラによりメモリ間転送を行う必要がある。
本実施形態は、DMAコントローラ内で既定パターンを生成し、外部共有メモリからの転送データに既定パターンを付加することで、DMAコントローラと外部メモリ間のバスの転送量を削減し、外部共有メモリの使用効率を向上させるものである。また、DMA転送時に外部共有メモリ−DMAコントローラ間のバスに既定パターンを流す必要がなく、構成を簡単化するものである。
より詳しくは、本実施形態では、DMAコントローラ内にパターン生成部を備えており、一方のメモリから他方のメモリにデータを転送する際にDMAコントローラ内でゼロ行列や単位行列等の予め決まった既定パターンデータを生成する。また、一方のメモリから読み出した転送データを待ち合わせ部に一時保持して待ち合わせを行う。その際、転送データ数の大きさに基づいて待ち合わせ部からの転送データと既定パターンデータとの切り替えを行う。このようにして既定パターンデータを転送するデータストリームに付加してメモリに転送する。以下、本発明の典型的な実施形態について図面を用いて詳細に説明する。
(第1の実施形態)
図1は本発明に係るDMA転送装置の第1の実施形態を含むシステムを示すブロック図である。DMA転送装置となるDMAコントローラ17は、内部メモリ15と外部共有メモリ14との間に接続される。DMAコントローラ17はメモリ間(内部メモリ15と外部共有メモリ14との間)のデータ転送を行う。
DMAコントローラ17は、DMA転送の制御を行うDMA制御部10、既定パターンデータを生成するパターン生成部11、パターン生成に用いる各パラメータを格納するためのパラメータレジスタ12を備えている。
パターン生成部11で生成する既定パターンとは、例えば、ゼロ行列や単位行列等の既定パターンデータである。パターン生成部11はパラメータレジスタ12のパターンインデックス、追加データサイズ、挿入オフセット或いは挿入タイミング等の各パラメータに基づいて既定パターンを生成する。
また、DMAコントローラ17は、待ち合わせユニット13、マルチプレクサ25、メモリデータIF16を備えている。待ち合わせユニット13は、外部共有メモリ14から転送されたデータとパターン生成部11から出力される既定パターンの出力タイミングを同期させる。マルチプレクサ25は待ち合わせユニット13からの転送データとパターン生成部11からの既定パターンとを切り替えて内部メモリ15に出力する。メモリデータIF16は内部メモリ15及び待ち合わせユニット13に接続される。
DMAコントローラ17の周辺には、内部メモリ15、外部共有メモリ14、演算コア18、CPU19が設けられている。データバス20、アドレスバス21は、DMAコントローラ17、CPU19、外部共有メモリ14間を接続する。
外部共有メモリ14はDMA転送対象となるメモリである。演算コア18はDMA転送されたデータを用いて行列演算を行う。CPU19はDMAコントローラ17にコマンドを発行する。DMAコントローラ17のDMA転送は、外部共有メモリ14とDMAコントローラ17との間のデータバス20に接続されているCPU19からのコマンドによって制御される。
図2はパターン生成部11とパラメータレジスタ12の構成例を示す。まず、パラメータレジスタ12のパラメータについて説明する。パターンインデックスはどのパターンを出力するかを決めるパラメータ、追加データサイズは挿入すべき既定パターンの大きさを示すパラメータである。挿入オフセットは既定パターンを転送データに1回目に挿入するタイミングを示すパラメータである。挿入タイミングは既定パターンの挿入が複数回ある場合の既定パターンの挿入間隔を示すパラメータである。
詳しく後述するようにカウンタ23により計測された転送データ量がこの挿入タイミングに一致した時に内部メモリ15への転送データの出力から既定パターンの出力に切り替えられる。これらのパラメータレジスタ12における各パラメータはCPU19によって設定される。
パターン生成部11はカウンタ23とパターン生成ユニット26を含んでいる。パターン生成ユニット26内にはインデックスデコーダ22、セレクタ24が設けられている。インデックスデコーダ22は上述のようなパラメータレジスタ12に格納されたパターンインデックス等に基づき単位行列やゼロ行列等を生成するためのタイミングを制御信号として生成し、セレクタ24に出力する。セレクタ24はインデックスデコーダ22からの制御信号をもとに0か1のどちらかを選択し、ゼロ行列や単位行列等の既定パターンデータを生成する。
カウンタ23は外部共有メモリ14からの転送データ数をカウントする。カウンタ23の値を用いて転送データのデータサイズを判定し、転送データから既定パターンデータの出力に切り替えるタイミングの調整を行う。
次に、図1、図2、及び図3を参照しながら本実施形態によるDMA転送動作について説明する。図3は本実施形態によるDMA転送のタイミングチャートを示すものである。なお、以下の動作は外部共有メモリ14から内部メモリ15へのDMA転送を対象として説明する。
まず、DMAコントローラ17は図3に示すように外部のCPU19からDMA転送コマンドとデータサイズや先頭アドレス或いはパターン生成に必要なパターンインデックスや追加データサイズ、挿入オフセット或いは挿入タイミング等のパラメータを受け取ると、DMA転送を開始する。その際、パターン生成に必要なパラメータはCPU19によりパラメータレジスタ12に設定される。
DMAコントローラ17は外部共有メモリ用アドレスを生成し、外部共有メモリ14のアクセスを開始し、指定されたアドレス領域の指定されたデータサイズ分のデータを外部共有メモリ14から読み出す。同時にカウンタ23は転送データ数のカウント動作を開始する。これらの制御はDMA制御部10によって行う。以下の説明においても同様である。
外部共有メモリ14から読み出されたデータは、一旦、DMAコントローラ17内の待ち合わせユニット13にIF16を介して送られる。待ち合わせユニット13にデータが入力されると、図3に示すようにそれに同期してDMAコントローラ17は内部メモリ用のアドレスを生成し、待ち合わせユニット13内に入力された転送データと一緒に内部メモリ15に出力する。
待ち合わせユニット13はFIFO(First-In First-Out)で構成されており、データの挿入がなければ1クロックサイクルでデータとアドレスを出力することができる。また、カウンタ23によりDMA転送対象データの個数がカウントされ、パラメータにより指定されたタイミング(図2のパラメータレジスタ12に格納されている挿入オフセット)になると、マルチプレクサ25によりパターン生成部11からの既定パターンデータが選択され、内部メモリ15に出力される。
パターン生成部11で既定パターンを生成する場合には、上述のようにパラメータレジスタ12のパターンインデックスによるどの既定パターンを出力するかを示すパラメータに従いセレクタ24にて「0」か「1」を選択し、ゼロ行列や単位行列等の既定パターンデータを生成する。その際、パターン生成部11は上述のようにパラメータレジスタ12の既定パターンの大きさを示す追加データサイズに従い既定パターンデータを生成する。
パターン生成部11からの既定パターンデータが内部メモリ15へ出力されている間、外部共有メモリ14から転送されてきたデータは待ち合わせユニット13内に保持されている。既定パターンデータの出力が完了すると、待ち合わせユニット13内に保持されていた転送データがDMAコントローラ17内で生成されたアドレスと一緒に再び内部メモリ15に出力される。
続けて既定パターンを転送データに挿入する場合には、同様の動作で既定パターンを転送データに挿入する。但し、2回目以降の既定パターンの挿入動作に関してはパラメータレジスタ12に設定された既定パターンの挿入間隔を示す挿入タイミングに従い転送データを既定パターンに切り替え、一定間隔で既定パターンを転送データに挿入する動作を行う。このようにして外部共有メモリ14から転送するデータストリームに既定パターンを付加して内部メモリ15へ転送する。
本実施形態ではパターン生成部11から出力するデータ値を0か1のいずれか一方と記述したが、必ずしもそれらの値に限定されるものではない。
(第2の実施形態)
図4は本発明に係るDMA転送装置の第2の実施形態を含むシステムを示すブロック図である。図4中、第1の実施形態の図1と同一部分には同一符号を付している。第1の実施形態との違いは待ち合わせユニット13から出力するデータをパラメータとしてパターン生成部11で用いている点、及びパターン生成部11の構成が異なる点である。その他の構成は第1の実施形態の図1と同様である。
第1の実施形態は上述のように単位行列やゼロ行列を生成することを想定した構成であり、セレクタ24への入力は0か1である。本実施形態では、パターン生成部11から転送するデータとパラメータインデックスの値を用いて、パラメータレジスタ12に格納されている任意のデータ2個のうちの一つを選択して既定パターンを生成する。本実施形態のDMA転送は、例えば、パケットのヘッダのようなデータによって挿入するパターンが変わる場合に用いることができる。
DMAコントローラ17は、DMA制御部10、パターン生成部11、パラメータレジスタ12、待ち合わせユニット13、マルチプレクサ25、メモリデータIF16を備えている。DMA制御部10はDMA転送の制御を行う。パターン生成部11は既定パターンを生成する。パラメータレジスタ12はパターン生成に用いる各パラメータを格納する。待ち合わせユニット13は外部共有メモリ14から転送された転送データとパターン生成部11から出力される既定パターンとの出力タイミングを同期させる。
マルチプレクサ25は同様に待ち合わせユニット13からの転送データとパターン生成部11からの既定パターンとを切り替えて内部メモリ15に出力する。メモリデータIF16は内部メモリ15及び待ち合わせユニット13に接続される。
DMAコントローラ17の周辺には内部メモリ15、外部共有メモリ14、演算コア18、CPU19が設けられている。データバス20、アドレスバス21は、DMAコントローラ17、CPU19、外部共有メモリ14間を接続する。
外部共有メモリ14はDMA転送対象となる外部共有メモリである。内部メモリ15はDMA転送対象となる内部メモリである。DMAコントローラ17のDMA転送は、外部共有メモリ14とDMAコントローラ17との間のデータバス20に接続されているCPU19からのコマンドによって制御される。
パターン生成部11とパラメータレジスタ12の構成を図5に示す。まず、パラメータレジスタ12の追加データサイズ、挿入オフセット、挿入タイミングは図2の説明と同様である。パラメータレジスタ12にはその他に任意の数1と任意の数2がセットされている。
パターン生成ユニット26はインデックスデコーダ22とセレクタ24から構成されている。インデックスデコーダ22は上述のようなパラメータレジスタ12に格納されたパラメータに基づき既定パターンを生成するためのタイミングを制御信号として生成する。
セレクタ24には、この制御信号と上述のように転送データがパラメータとして入力され、セレクタ24はこれら制御信号と転送データに基づいてパラメータレジスタ12に格納されている任意の数1か任意の数2のどちらかを選択し、これを既定パターンとして出力する。
カウンタ23は同様に外部共有メモリ14からの転送データ数をカウントする。カウンタ23の値を用いて転送データサイズを判定し、既定パターンを挿入するタイミングを調整する。
次に、図4、図5、図6を参照しながら本実施形態によるDMA転送の動作を説明する。図6は本実施形態によるDMA転送を示すタイミングチャートである。以下の動作説明は同様に外部共有メモリ14から内部メモリ15へのDMA転送を対象とするものである。
本実施形態によるDMA転送動作は、第1の実施形態の図3の動作と基本的に同じであるが、図3との違いは上述のようにセレクタ24から任意の数1か任意の数2のどちらかを選択して既定パターンを生成する点であり、パターン生成部11にて生成する既定パターンが異なる点である。
まず、DMAコントローラ17は外部のCPU19からDMA転送のコマンドとデータサイズや先頭アドレス或いはパターン生成に必要なパターンインデックスや追加データサイズ等のパラメータを受け取ると、DMA転送を開始する。
まず、DMAコントローラ17は外部共有メモリ用アドレスを生成し、外部共有メモリ14のアクセスを開始し、指定されたアドレス領域の指定されたデータサイズ分のデータを外部共有メモリ14から読み出す。同時にカウンタ23は転送データ数のカウント動作を開始する。
外部共有メモリ14から読み出されたデータは、一旦、DMAコントローラ17内の待ち合わせユニット13に送られる。待ち合わせユニット13にデータが入力されると、図6に示すようにそれに同期してDMAコントローラ17は内部メモリ用のアドレスを生成し、待ち合わせユニット13内に入力された転送データと一緒に内部メモリ15に出力する。
待ち合わせユニット13はFIFOで構成されており、データの挿入がなければ1クロックサイクルでデータとアドレスを出力することができる。また、カウンタ23によりDMA転送対象データの個数がカウントされ、パラメータにより指定されたタイミング(図5のパラメータレジスタ12に格納されている挿入オフセット)になると、パターン生成部11からの既定パターンデータの出力に切り替えられ、内部メモリ15に出力される。
その際、既定パターンとして指定された任意の数1か任意の数2のどちらを出力するかは、外部共有メモリ14から転送されるデータによって選択する。例えば、転送データが「1」であれば任意の数1を選択し、転送データが「0」であれば任意の数2を選択する。それに合わせてパターンインデックスの値に基づいて任意の数1や任意の数2の個数を選択することで既定パターンデータを生成する。なお、パターン生成部11はパラメータレジスタ12の既定パターンの大きさを示す追加データサイズに従い既定パターンデータを生成する。
パターン生成部11からの既定パターンデータが内部メモリ15へ出力されている間、外部共有メモリ14から転送されてきたデータは待ち合わせユニット13内に保持される。既定パターンデータの出力が完了すると、待ち合わせユニット13内に保持されていた転送データがDMAコントローラ17内で生成されたアドレスと一緒に再び内部メモリ15に出力される。
続けて既定パターンを転送データに挿入する場合には、同様の動作で既定パターンを転送データに挿入する。2回目以降の既定パターンの挿入動作に関してはパラメータレジスタ12に設定された既定パターンの挿入間隔を示す挿入タイミングに従い転送データを既定パターンに切り替え、一定間隔で既定パターンを転送データに挿入する。このようにして外部共有メモリ14から転送するデータストリームに既定パターンを付加して内部メモリ15へ転送する。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第3の実施形態は第2の実施形態の変形である。第2の実施形態との違いはパターン生成部11の構成が異なる点、及び既定パターン挿入プロセスが異なる点である。その他の構成は第2の実施形態の図4と同様である。
本実施形態によるパターン生成部11の構成を図7に示す。図中、第2の実施形態の図5と同一部分には同一符号を付している。パラメータレジスタ22のパターンインデックスと追加データサイズは図2の説明と同様である。トリガ値は転送データと既定パターンを切り替えるためのパラメータである。
インデックスデコーダ22はトリガ値と待ち合わせユニット13からの転送データに基づいて挿入する既定パターンを選択するタイミングを制御信号としてセレクタ24に出力する。セレクタ24はインデックスデコーダ22からの制御信号をもとにパラメータレジスタ12に格納されている0か1のどちらかを選択し、既定パターンとして出力する。
本実施形態では、外部共有メモリ14からのDMA転送データがある一定値(その値はパラメータレジスタ12に予め格納しているものとする)を示す時にパターン生成部11で生成した既定パターンをDMA転送する場合に用いることができる。
図8は本実施形態によるDMA転送を示すタイミングチャートである。本実施形態の動作は第2の実施形態の図6とは基本的に同じであるが、本実施形態では外部共有メモリ14からの転送データと既定パターンとの切り替えに外部共有メモリ14の転送データが用いられる。その他の動作は第2の実施形態と同様である。
まず、DMAコントローラ17がCPU19からDMA転送コマンド等を受け取り、DMA転送MA転送が開始されると、カウンタ23がカウント動作を開始し、外部共有メモリ用のアドレスがDMAコントローラ17で生成され、外部共有メモリ14からデータが読み出される。
読み出されたデータは、一旦、DMAコントローラ17内の待ち合わせユニット13に送られる。待ち合わせユニット13にデータが入力されると、それに同期してDMAコントローラ17は内部メモリ用のアドレスを生成し、待ち合わせユニット13内に入力された転送データと一緒に内部メモリ15に出力する。
また、図8に示すようにDMA転送中は待ち合わせユニット13からの外部共有メモリ14の転送データとパラメータで指定されたトリガ値との比較を行い、一致した時点で既定パターンの出力に切り替えられる。例えば、転送データ中の32ビットデータのオール1が、トリガ値の32ビットデータのオール1に一致すると、既定パターンの出力に切り替えられる。既定パターンの出力が終了すると、同様に待ち合わせユニット13に保持されていた外部共有メモリ14からの転送データが内部メモリ13へと出力される。
既定パターンが送られている間は、外部共有データ14からの転送データは待ち合わせユニット13に保持されている。既定パターンのデータ転送が終了すると、同様に待ち合わせユニット13に保持されていた転送データが既定パターンに代わって内部メモリ15へ出力される。以下、同様の動作でパターン生成部11で生成された既定パターンデータを外部共有メモリ14から転送するデータストリームに付加して内部メモリ15へ転送する。
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。本実施形態は第1の実施形態の変形であり、第1の実施形態との違いは既定パターンを生成するパターン生成部11で使用するDMA転送への挿入タイミングの指定が、第1の実施形態ではデータの個数であったのに対し、本実施形態ではDMA転送が開始されてからの所要時間(クロックサイクル)で指定する点である。その他の構成は第1の実施形態と同様である。
具体的には、パターン生成部11の動作が第1の実施形態とは異なっており、DMA転送コマンド等をDMAコントローラ17がCPU19から受け取った時点でカウンタ23が動作を始め、DMA転送に要するサイクル数を出力する。カウンタ23の値を用いてパラメータレジスタ12にあるDMA転送タイミングのパラメータとの比較を行い、指定されたタイミングとなった時にパターン生成部11で生成された既定パターンをDMA転送する。
図9は本実施形態によるDMA転送のタイミングチャートを示す。図9は第1の実施形態の図3のタイミングチャートと基本的には同様であるが、上述のようにカウンタ23によるサイクル数が指定の値になったら既定パターンを出力する。その他の動作は第1の実施形態と同様である。
まず、DMA転送が開始されると、カウンタ23がカウント動作を開始し、外部共有メモリ用のアドレスがDMAコントローラ17で生成され、外部共有メモリ14からデータが読み出される。
読み出されたデータは、一旦、DMAコントローラ17内の待ち合わせユニット13に送られる。待ち合わせユニット13にデータが入力されると、それに同期してDMAコントローラ17は内部メモリ用のアドレスを生成し、待ち合わせユニット13内に入力された転送データと一緒に内部メモリ15に出力する。
一方、カウンタ23のカウント値がパラメータで指定された値(挿入オフセット)になると、パターン生成部11で既定パターンが生成され、図9に示すように外部共有メモリ14からの転送データと切り替わって既定パターンデータが内部メモリ15に送られる。
既定パターンが送られている間は、外部共有データ14からの転送データは待ち合わせユニット13に保持される。既定パターンのデータ転送が終了すると、同様に待ち合わせユニット13に保持されていた転送データが既定パターンに代わって内部メモリ15へ出力される。
続けて既定パターンを転送データに挿入する場合には、第1の実施形態と同様に既定パターンの挿入間隔を示す挿入タイミングに従い転送データを既定パターンに切り替え、一定間隔で既定パターンを転送データに挿入する動作を行う。このようにして外部共有メモリ14から転送するデータストリームに既定パターンを付加して内部メモリ15へ転送する。
なお、本実施形態によるDMA転送は第1の実施形態の変形例として説明したが、第4の実施形態によるDMA転送は第2の実施形態によるDMA転送にも適用することもできる。
以上説明した各実施形態では、外部共有メモリから内部メモリへのDMA転送について説明したが、内部メモリから外部共有メモリへのDMA転送についても同様に本発明を適用できることは勿論である。
以上、本発明の代表的な実施形態について説明したが、本発明は、本願の請求の範囲によって規定される、その精神または主要な特徴から逸脱することなく、他の種々の形で実施することができる。そのため、前述した各実施形態は単なる例示にすぎず、限定的に解釈されるべきではない。本発明の範囲は特許請求の範囲によって示すものであって、明細書や要約書の記載には拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更はすべて本発明の範囲内のものである。
本発明は、多量のストリームデータに対して行列演算・フィルタリング等を行うデータ通信処理装置等のデジタル信号処理装置といった用途に好適に使用することができる。

Claims (8)

  1. 複数のメモリ間のDMA転送を行うDMA転送装置において、
    既定パターンデータを生成するパターンタ生成部と、
    一方のメモリから読み出した転送データと前記パターン生成部で生成された既定パターンデータとの同期をとるための待ち合わせ部と、
    前記転送データの大きさを判定する判定部とを有し、
    前記判定部の判定結果に基づいて前記待ち合わせ部からの転送データと前記パターン生成部で生成された既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加して他方のメモリへ転送することを特徴とするDMA転送装置。
  2. 前記既定パターンデータは複数であり、前記パターン生成部はどのパターンを出力するかを示すパラメータ、及び既定パターンの大きさを示すパラメータに基づいて前記既定パターンデータを生成することを特徴とする請求項1に記載のDMA転送装置。
  3. 前記パターン生成部は始めに既定パターンデータを挿入するタイミングを示すパラメータ、及び前記転送データに前記既定パターンを挿入するタイミングを示すパラメータに基づいて前記転送データに前記既定パターンデータを付加することを特徴とする請求項1に記載のDMA転送装置。
  4. 前記判定部は、DMA転送するデータ数をカウントすることによって前記転送データの大きさを判定することを特徴とする請求項1に記載のDMA転送装置。
  5. 前記判定部は、DMA転送に要するクロックサイクルをカウントすることによって前記転送データの大きさを判定することを特徴とする請求項1に記載のDMA転送装置。
  6. 前記一方及び他方のメモリは、外部共有メモリと内部メモリ、又は内部メモリと外部共有メモリであり、前記DMA転送は前記外部共有メモリと前記内部メモリとの間のデータ転送であり、前記既定パターンデータは単位行列又はゼロ行列であることを特徴とする請求項1に記載のDMA転送装置。
  7. 前記一方及び他方のメモリ間がバスで接続され、更に、前記バスとのデータIF、前記既定パターンデータの生成に使用するパラメータを記憶するパラメータレジスタと、前記DMA転送を制御するDMA制御部とを有することを特徴とする請求項1に記載のDMA転送装置。
  8. 複数のメモリ間のDMA転送を行うDMA転送装置のDMA転送方法において、
    既定パターンデータを生成するステップと、
    一方のメモリから読み出した転送データと、生成された前記既定パターンデータとの同期をとるステップと、
    前記転送データの大きさを判定するステップと、
    前記転送データの大きさの判定結果に基づいて、同期がとられた転送データと、生成された前記既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加し、他方のメモリへ転送するステップと、を含むことを特徴とするDMA転送方法。
JP2009501295A 2007-02-28 2008-02-28 Dma転送装置及び方法 Active JP5360594B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009501295A JP5360594B2 (ja) 2007-02-28 2008-02-28 Dma転送装置及び方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007049976 2007-02-28
JP2007049976 2007-02-28
JP2009501295A JP5360594B2 (ja) 2007-02-28 2008-02-28 Dma転送装置及び方法
PCT/JP2008/053510 WO2008105494A1 (ja) 2007-02-28 2008-02-28 Dma転送装置及び方法

Publications (2)

Publication Number Publication Date
JPWO2008105494A1 true JPWO2008105494A1 (ja) 2010-06-03
JP5360594B2 JP5360594B2 (ja) 2013-12-04

Family

ID=39721318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009501295A Active JP5360594B2 (ja) 2007-02-28 2008-02-28 Dma転送装置及び方法

Country Status (5)

Country Link
US (1) US9367496B2 (ja)
EP (1) EP2133797B1 (ja)
JP (1) JP5360594B2 (ja)
AT (1) ATE553436T1 (ja)
WO (1) WO2008105494A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248587B2 (en) 2013-11-08 2019-04-02 Sandisk Technologies Llc Reduced host data command processing
WO2015067983A1 (en) * 2013-11-08 2015-05-14 Sandisk Il Ltd. Reduced host data command processing
US8984179B1 (en) * 2013-11-15 2015-03-17 International Business Machines Corporation Determining a direct memory access data transfer mode

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5896446A (ja) 1981-12-03 1983-06-08 Nec Corp 音声信号蓄積方式
US4493048A (en) * 1982-02-26 1985-01-08 Carnegie-Mellon University Systolic array apparatuses for matrix computations
US5159665A (en) * 1989-11-27 1992-10-27 Sun Microsystems, Inc. Graphics accelerator system
JPH04285765A (ja) 1991-03-13 1992-10-09 Casio Comput Co Ltd デジタルレコーダ
JPH05244167A (ja) 1992-02-28 1993-09-21 Toshiba Corp 情報追加挿入装置
JPH05336380A (ja) 1992-06-03 1993-12-17 Matsushita Graphic Commun Syst Inc 画情報処理装置
US5541640A (en) * 1992-06-23 1996-07-30 Larson; Craig R. Videophone for simultaneous audio and video communication via a standard telephone line
JPH06319047A (ja) * 1993-05-07 1994-11-15 Seiko Epson Corp 情報処理装置
JP2765433B2 (ja) * 1993-06-10 1998-06-18 ヤマハ株式会社 記憶再生装置
NO942080D0 (no) * 1994-06-03 1994-06-03 Int Digital Tech Inc Bildekoder
US5678063A (en) * 1995-04-19 1997-10-14 National Instruments Corporation System and method for performing efficient random write operations
SG77135A1 (en) * 1996-04-26 2000-12-19 Texas Instruments Inc Method and system for assigning a channel number to a received data packet
JPH1040399A (ja) 1996-07-19 1998-02-13 Canon Inc 描画装置、斜線描画データ生成装置、斜線描画アドレス生成装置、及び破線パターン生成装置
US6425060B1 (en) * 1999-01-05 2002-07-23 International Business Machines Corporation Circuit arrangement and method with state-based transaction scheduling
JP2000259553A (ja) 1999-03-09 2000-09-22 Sony Corp データ処理装置
JP3737660B2 (ja) 1999-11-30 2006-01-18 株式会社東芝 ディジタル信号処理回路とこの回路を備えた通信装置
US6836289B2 (en) * 1999-12-20 2004-12-28 Texas Instruments Incorporated Digital still camera architecture with red and blue interpolation using green as weighting factors
EP1162788B1 (en) * 2000-06-09 2012-11-21 Broadcom Corporation Trunking and mirroring across stacked gigabit switches
US20030058543A1 (en) * 2001-02-21 2003-03-27 Sheedy James B. Optically corrective lenses for a head-mounted computer display
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US20020140706A1 (en) * 2001-03-30 2002-10-03 Peterson James R. Multi-sample method and system for rendering antialiased images
US6961340B2 (en) * 2001-04-06 2005-11-01 Texas Instruments Incorporated AAL2 receiver for filtering signaling/management packets in an ATM system
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
US7411694B2 (en) * 2002-01-21 2008-08-12 Ricoh Company, Ltd. Data conversion apparatus for and method of data conversion for image processing
US7081892B2 (en) * 2002-04-09 2006-07-25 Sony Computer Entertainment America Inc. Image with depth of field using z-buffer image data and alpha blending
GB2417111B (en) * 2002-04-22 2006-08-16 Micron Technology Inc Providing a register file memory with local addressing in a SIMD parallel processor
US7346049B2 (en) * 2002-05-17 2008-03-18 Brian Patrick Towles Scheduling connections in a multi-stage switch to retain non-blocking properties of constituent switching elements
US7403542B1 (en) * 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
JP3989396B2 (ja) * 2003-03-31 2007-10-10 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
US7626985B2 (en) * 2003-06-27 2009-12-01 Broadcom Corporation Datagram replication in internet protocol multicast switching in a network device
US7339941B2 (en) * 2004-02-13 2008-03-04 Broadcom Corporation Connecting ethernet based system on a chip integrated circuits in a ring topology
US7493427B2 (en) * 2004-07-14 2009-02-17 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
US7583588B2 (en) * 2004-11-30 2009-09-01 Broadcom Corporation System and method for maintaining a layer 2 modification buffer
JP4696540B2 (ja) 2004-12-01 2011-06-08 ソニー株式会社 コンピュータ、データ処理方法およびプログラム
WO2006120664A2 (en) * 2005-05-13 2006-11-16 Provost Fellows And Scholars Of The College Of The Holy And Undivided Trinity Of Queen Elizabeth Near Dublin A data processing system and method
US7299335B2 (en) * 2005-05-27 2007-11-20 Freescale Semiconductor, Inc. Translation information retrieval transparent to processor core
JP3766430B1 (ja) 2005-08-17 2006-04-12 三郎 澤田 可倒式釣り仕掛け投入装置
US7901093B2 (en) * 2006-01-24 2011-03-08 Seiko Epson Corporation Modeling light transport in complex display systems
US7626521B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding control of computational core of programmable graphics processing unit
JP4942095B2 (ja) * 2007-01-25 2012-05-30 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチコア・プロセッサにより演算を行う技術
FR2913156B1 (fr) * 2007-02-26 2009-05-29 Canon Kk Procede d'allocation de ressources de transmission d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et dispositif correspondants
US8103809B1 (en) * 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof

Also Published As

Publication number Publication date
EP2133797B1 (en) 2012-04-11
EP2133797A4 (en) 2010-12-08
EP2133797A1 (en) 2009-12-16
WO2008105494A1 (ja) 2008-09-04
ATE553436T1 (de) 2012-04-15
JP5360594B2 (ja) 2013-12-04
US20100106865A1 (en) 2010-04-29
US9367496B2 (en) 2016-06-14

Similar Documents

Publication Publication Date Title
JP2004287757A (ja) Dma制御装置
KR20070039120A (ko) 통신 구성 요소의 메시지 메모리의 데이터를 액세스하기위한 방법 및 장치
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
TWI753063B (zh) 資料傳送裝置及資料傳送方法
JP2006338538A (ja) ストリームプロセッサ
KR100977897B1 (ko) 메시지 메모리 내에서 메시지를 저장하기 위한 방법 및상응하는 메시지 메모리
JP2007034392A (ja) 情報処理装置及びデータ処理方法
JP5360594B2 (ja) Dma転送装置及び方法
JP2005084907A (ja) メモリ帯域制御装置
US20090119429A1 (en) Semiconductor integrated circuit
JP4850504B2 (ja) 信号処理装置、撮像装置およびデータ転送方法
JP2012098884A (ja) データ処理装置および画像処理装置
JP4790545B2 (ja) 画像処理装置、画像処理方法
JP4633334B2 (ja) 情報処理装置およびメモリアクセス調停方法
US20120144150A1 (en) Data processing apparatus
JP2015001986A (ja) データ転送装置、バッファリング回路及びバッファリング方法
JP4292218B2 (ja) 画像処理装置及び画像処理システム
JP2005321933A (ja) データ入出力装置およびデータ入出力方法
JP2007011884A (ja) データ転送装置
JP2007018266A (ja) データ転送装置及びデータ転送方法
JP2007087181A (ja) データ転送装置
JP4776947B2 (ja) データ処理装置
JP2004070851A (ja) データ入出力装置
JP2009104529A (ja) 情報処理装置、音声付動画記録装置及び情報処理方法
JP2010118023A (ja) メモリアクセス制御回路及び画像処理装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20101020

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130822

R150 Certificate of patent or registration of utility model

Ref document number: 5360594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150