(57)【要約】【課題】少ない追加ハードウェアで外部共有メモリ−ＤＭＡコントローラ間バスのトラフィックを減少させ、メモリの効率的な使用が可能なＤＭＡ転送装置及び方法を提供する。【解決手段】ＤＭＡコントローラ１７内にパターン生成部１１を備え、一方の外部共有メモリ１４から他方の内部メモリ１５にデータを転送する際にＤＭＡコントローラ内でゼロ行列や単位行列等の予め決まった既定パターンデータを生成する。また、一方の外部共有メモリから読み出した転送データを待ち合わせユニット１３に一時保持して待ち合わせを行う。その際、転送データ数の大きさに基づいて待ち合わせユニットからの転送データと既定パターンデータとの切り替えを行う。【選択図】図１
2008105494.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ間のＤＭＡ転送を行うＤＭＡ転送装置において、
既定パターンデータを生成するパターンタ生成部と、
一方のメモリから読み出した転送データと前記パターン生成部で生成された既定パターンデータとの同期をとるための待ち合わせ部と、
前記転送データの大きさを判定する判定部とを有し、
前記判定部の判定結果に基づいて前記待ち合わせ部からの転送データと前記パターン生成部で生成された既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加して他方のメモリへ転送することを特徴とするＤＭＡ転送装置。
【請求項２】
前記既定パターンデータは複数であり、前記パターン生成部はどのパターンを出力するかを示すパラメータ、及び既定パターンの大きさを示すパラメータに基づいて前記既定パターンデータを生成することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項３】
前記パターン生成部は始めに既定パターンデータを挿入するタイミングを示すパラメータ、及び前記転送データに前記既定パターンを挿入するタイミングを示すパラメータに基づいて前記転送データに前記既定パターンデータを付加することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項４】
前記判定部は、ＤＭＡ転送するデータ数をカウントすることによって前記転送データの大きさを判定することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項５】
前記判定部は、ＤＭＡ転送に要するクロックサイクルをカウントすることによって前記転送データの大きさを判定することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項６】
前記一方及び他方のメモリは、外部共有メモリと内部メモリ、又は内部メモリと外部共有メモリであり、前記ＤＭＡ転送は前記外部共有メモリと前記内部メモリとの間のデータ転送であり、前記既定パターンデータは単位行列又はゼロ行列であることを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項７】
前記一方及び他方のメモリ間がバスで接続され、更に、前記バスとのデータＩＦ、前記既定パターンデータの生成に使用するパラメータを記憶するパラメータレジスタと、前記ＤＭＡ転送を制御するＤＭＡ制御部とを有することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項８】
複数のメモリ間のＤＭＡ転送を行うＤＭＡ転送装置のＤＭＡ転送方法において、
既定パターンデータを生成するステップと、
一方のメモリから読み出した転送データと、生成された前記既定パターンデータとの同期をとるステップと、
前記転送データの大きさを判定するステップと、
前記転送データの大きさの判定結果に基づいて、同期がとられた転送データと、生成された前記既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加し、他方のメモリへ転送するステップと、を含むことを特徴とするＤＭＡ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ間データ転送装置、特に、ＤＭＡ（Direct  Memory  Access）転送装置及び方法に関するものである。本願は、２００７年２月２８日に出願された特願２００７−０４９９７６号に基づき、優先権の利益を主張するものである。そして、特願２００７−０４９９７６号の内容は本願の明細書の内容に含まれる。
【背景技術】
【０００２】
現在、トランジスタ技術の進歩によりＬＳＩの微細化が進み、シストリックアレイやマルチプロセッサ等のようなたくさんの演算ユニットにより高い並列性を持つアーキテクチャが脚光を浴びている。それらの高並列アーキテクチャはメモリ間データ転送のトラフィックをいかに効率よくできるかが、システムのパフォーマンスを向上させる上でポイントとなる。【０００３】
上述のシステムにおいてメモリ間のデータ転送は一般的にＤＭＡ転送が用いられている。図１０は背景技術となるＤＭＡ転送装置の構成を示す図である。ＤＭＡ転送を制御するＤＭＡコントローラ１０７は、パラメータレジスタ１０１、ＤＭＡ制御部１００、ＩＦ１０６を含んでいる。【０００４】
また、ＤＭＡコントローラ１０７の周辺には、外部共有メモリ１０２、内部メモリ１０３、演算コア１０８、ＣＰＵ１０９が設けられている。ＤＭＡコントローラ１０７、外部共有メモリ１０２、及びＣＰＵ１０９や、データバス１１０、１１１に接続されている。【０００５】
ＤＭＡ転送では、図１０に示すように、ＣＰＵ１０９が直接制御せずに、メモリアドレスオフセットやデータ数等のパラメータをＤＭＡコントローラ１０７に設定することにより、ＤＭＡコントローラ１０７が外部共有メモリ１０２から内部メモリ１０３へデータ転送を行う。ＤＭＡ転送を行うことで、ＣＰＵ１０９の負荷を軽減することが可能となる。【０００６】
ＤＭＡ転送に関連する技術は、例えば、特開２００１−１５４８４６号公報（特許文献１）、特開２００６−１５５４９０号公報（特許文献２）、特開平５−２４４１６７号公報（特許文献３）、特開平５−３３６３８０号公報（特許文献４）、特開平１０−４０３９９号公報（特許文献５）に開示されている。
【特許文献１】特開２００１−１５４８４６号公報
【特許文献２】特開２００６−１５５４９０号公報
【特許文献３】特開平５−２４４１６７号公報
【特許文献４】特開平５−３３６３８０号公報
【特許文献５】特開平１０−４０３９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したＤＭＡ転送には以下の３つの問題点がある。【０００８】
（１）メモリに既定のパターンであるゼロ行列や単位行列も格納するため、メモリの使用効率が低下する。【０００９】
（２）外部メモリにゼロ行列や単位行列を格納する場合、ＤＭＡ転送にてそれらの行列を内部メモリへ転送する必要があるため無駄なデータ転送が発生する。【００１０】
（３）メモリ使用効率やデータ転送率向上のため演算部分でデータを生成する機能を追加する方法もあるが、既定パターンデータを扱わない場合の処理と分けて構成する必要があり、内部の構成が複雑になる。【００１１】
図１０に示したシステムは、外部に共有メモリを持つ構成であり、外部メモリから適宜内部メモリへデータ転送を行うことによって演算を行う。演算ユニットがシストリックアレイの場合には、データフローが単純であるほど高効率な演算を行うことができる。【００１２】
そのため、ゼロ行列や単位行列を演算に用いる場合でも、通常のデータと同様にデータ転送を行うことが望まれる。従って、ゼロ行列や単位行列等の既定パターンのデータを格納するためメモリ領域を確保する必要がある。【００１３】
また、ＤＭＡ転送時においても規定パターンのデータを転送するため冗長な転送が発生する。これに対し、演算コア内部で既定パターンを生成する機能を追加し、データ転送量を改善する方法もあるが、既定パターンデータを扱わない場合の処理と分けて動作フローを構成する必要があり、内部構成が複雑になるという問題点が生じる。【００１４】
本発明の典型的な目的は、少ない追加ハードウェアで外部共有メモリ−ＤＭＡコントローラ間バスのトラフィックを減少させ、メモリの効率的な使用が可能なＤＭＡ転送装置及び方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、複数のメモリ間のＤＭＡ転送を行うＤＭＡ転送装置において、
既定パターンデータを生成するパターンタ生成部と、
一方のメモリから読み出した転送データと前記パターン生成部で生成された既定パターンデータとの同期をとるための待ち合わせ部と、
前記転送データの大きさを判定する判定部とを有し、
前記判定部の判定結果に基づいて前記待ち合わせ部からの転送データと前記パターン生成部で生成された既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加して他方のメモリへ転送することを特徴とする。
また本発明は、複数のメモリ間のＤＭＡ転送を行うＤＭＡ転送装置のＤＭＡ転送方法において、
既定パターンデータを生成するステップと、
待ち合わせ部で、一方のメモリから読み出した転送データと、生成された前記既定パターンデータとの同期をとるステップと、
前記転送データの大きさを判定するステップとを有し、
前記転送データの大きさの判定結果に基づいて、同期がとられた転送データと、生成された前記既定パターンデータとを切り替えることによって、前記既定パターンデータを前記一方のメモリから転送するデータストリームに付加し、他方のメモリへ転送するステップと、を含むことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、ＤＭＡ転送装置内に既定パターンデータを生成するパターンタ生成部を追加することにより、ＤＭＡ転送装置とＤＭＡ転送元のメモリ間のバスの転送量を削減でき、ＤＭＡ転送元のメモリの使用効率を向上できる。また、ＤＭＡ転送先のメモリにすでに既定パターンデータが格納されるため、動作フローも単純に構成できる。即ち、ＤＭＡ転送時にＤＭＡ転送元のメモリとＤＭＡ転送装置との間のバスに既定パターンのデータを流す必要がないため構成を簡単化できる。【００１７】
更に、データ転送量が削減できればＤＭＡ転送元のメモリと他のユニットとのデータ転送にバスを明け渡すことができるため、システム全体のパフォーマンスを向上することもできる。これは、ＤＭＡ転送元のメモリに既定パターンのデータを格納する必要がないことも理由として挙げられる。他の効果としてＤＭＡ転送先の一定領域のリセットをＣＰＵの介在なしでＤＭＡ転送装置の処理のみで行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係るＤＭＡ転送装置の第１の実施形態を示すブロック図である。
【図２】第１の実施形態のパターン生成部を示すブロック図である。
【図３】第１の実施形態のＤＭＡ転送を説明するタイミングチャートである。
【図４】本発明に係るＤＭＡ転送装置の第２の実施形態を含むシステムを示すブロック図である。
【図５】第２の実施形態のパターン生成部を示すブロック図である。
【図６】第２の実施形態のＤＭＡ転送を説明するタイミングチャートである。
【図７】本発明の第３の実施形態のパターン生成部を示すブロック図である。
【図８】第３の実施形態のＤＭＡ転送を説明するタイミングチャートである。
【図９】第４の実施形態のＤＭＡ転送を説明するタイミングチャートである。
【図１０】背景技術となるＤＭＡ転送装置を示すブロック図である。
【符号の説明】
【００１９】
１０  ＤＭＡ制御部
１１  パターン生成部
１２  パラメータレジスタ
１３  待ち合わせユニット
１４  外部共有メモリ
１５  内部メモリ
１６  データ用メモリＩＦ
１７  ＤＭＡコントローラ
１８  演算コア
１９  ＣＰＵ
２０  データバス
２１  アドレスバス
２２  インデックスデコーダ
２３  カウンタ
２４  セレクタ
２５  マルチプレクサ
【発明を実施するための最良の形態】
【００２０】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。まず、本発明の典型的な実施形態は、ＤＭＡ転送を用いて外部の共有メモリから内部メモリへデータ転送を行い、内部演算コアにて行列演算のような多量のデータを扱うシステムを想定する。行列演算では、ゼロ行列や単位行列等のパターンの決まった構成のデータを扱う場合が多い。【００２１】
ゼロ行列や単位行列といった既定パターンのデータは、他の演算用データと同様に内部メモリや外部メモリに一時保存しておき、使用する度に演算コアへデータ転送を行う（但し、内部メモリに一時格納する場合にはメモリ容量に限りがあるため、次の演算で既定パターンのデータが使用されない場合は、他のデータが上書きされてしまう）。【００２２】
背景技術として説明したＤＭＡ転送はパラメータによって設定されたデータ数やアドレスオフセットによりメモリ間転送を行うのみであるため、ゼロ行列や単位行列等も通常の演算データと同様の演算パスで計算したい場合、ゼロ行列や単位行列等を含めてＤＭＡコントローラによりメモリ間転送を行う必要がある。【００２３】
本実施形態は、ＤＭＡコントローラ内で既定パターンを生成し、外部共有メモリからの転送データに既定パターンを付加することで、ＤＭＡコントローラと外部メモリ間のバスの転送量を削減し、外部共有メモリの使用効率を向上させるものである。また、ＤＭＡ転送時に外部共有メモリ−ＤＭＡコントローラ間のバスに既定パターンを流す必要がなく、構成を簡単化するものである。【００２４】
より詳しくは、本実施形態では、ＤＭＡコントローラ内にパターン生成部を備えており、一方のメモリから他方のメモリにデータを転送する際にＤＭＡコントローラ内でゼロ行列や単位行列等の予め決まった既定パターンデータを生成する。また、一方のメモリから読み出した転送データを待ち合わせ部に一時保持して待ち合わせを行う。その際、転送データ数の大きさに基づいて待ち合わせ部からの転送データと既定パターンデータとの切り替えを行う。このようにして既定パターンデータを転送するデータストリームに付加してメモリに転送する。以下、本発明の典型的な実施形態について図面を用いて詳細に説明する。【００２５】
（第１の実施形態）
図１は本発明に係るＤＭＡ転送装置の第１の実施形態を含むシステムを示すブロック図である。ＤＭＡ転送装置となるＤＭＡコントローラ１７は、内部メモリ１５と外部共有メモリ１４との間に接続される。ＤＭＡコントローラ１７はメモリ間（内部メモリ１５と外部共有メモリ１４との間）のデータ転送を行う。【００２６】
ＤＭＡコントローラ１７は、ＤＭＡ転送の制御を行うＤＭＡ制御部１０、既定パターンデータを生成するパターン生成部１１、パターン生成に用いる各パラメータを格納するためのパラメータレジスタ１２を備えている。【００２７】
パターン生成部１１で生成する既定パターンとは、例えば、ゼロ行列や単位行列等の既定パターンデータである。パターン生成部１１はパラメータレジスタ１２のパターンインデックス、追加データサイズ、挿入オフセット或いは挿入タイミング等の各パラメータに基づいて既定パターンを生成する。【００２８】
また、ＤＭＡコントローラ１７は、待ち合わせユニット１３、マルチプレクサ２５、メモリデータＩＦ１６を備えている。待ち合わせユニット１３は、外部共有メモリ１４から転送されたデータとパターン生成部１１から出力される既定パターンの出力タイミングを同期させる。マルチプレクサ２５は待ち合わせユニット１３からの転送データとパターン生成部１１からの既定パターンとを切り替えて内部メモリ１５に出力する。メモリデータＩＦ１６は内部メモリ１５及び待ち合わせユニット１３に接続される。【００２９】
ＤＭＡコントローラ１７の周辺には、内部メモリ１５、外部共有メモリ１４、演算コア１８、ＣＰＵ１９が設けられている。データバス２０、アドレスバス２１は、ＤＭＡコントローラ１７、ＣＰＵ１９、外部共有メモリ１４間を接続する。【００３０】
外部共有メモリ１４はＤＭＡ転送対象となるメモリである。演算コア１８はＤＭＡ転送されたデータを用いて行列演算を行う。ＣＰＵ１９はＤＭＡコントローラ１７にコマンドを発行する。ＤＭＡコントローラ１７のＤＭＡ転送は、外部共有メモリ１４とＤＭＡコントローラ１７との間のデータバス２０に接続されているＣＰＵ１９からのコマンドによって制御される。【００３１】
図２はパターン生成部１１とパラメータレジスタ１２の構成例を示す。まず、パラメータレジスタ１２のパラメータについて説明する。パターンインデックスはどのパターンを出力するかを決めるパラメータ、追加データサイズは挿入すべき既定パターンの大きさを示すパラメータである。挿入オフセットは既定パターンを転送データに１回目に挿入するタイミングを示すパラメータである。挿入タイミングは既定パターンの挿入が複数回ある場合の既定パターンの挿入間隔を示すパラメータである。【００３２】
詳しく後述するようにカウンタ２３により計測された転送データ量がこの挿入タイミングに一致した時に内部メモリ１５への転送データの出力から既定パターンの出力に切り替えられる。これらのパラメータレジスタ１２における各パラメータはＣＰＵ１９によって設定される。【００３３】
パターン生成部１１はカウンタ２３とパターン生成ユニット２６を含んでいる。パターン生成ユニット２６内にはインデックスデコーダ２２、セレクタ２４が設けられている。インデックスデコーダ２２は上述のようなパラメータレジスタ１２に格納されたパターンインデックス等に基づき単位行列やゼロ行列等を生成するためのタイミングを制御信号として生成し、セレクタ２４に出力する。セレクタ２４はインデックスデコーダ２２からの制御信号をもとに０か１のどちらかを選択し、ゼロ行列や単位行列等の既定パターンデータを生成する。【００３４】
カウンタ２３は外部共有メモリ１４からの転送データ数をカウントする。カウンタ２３の値を用いて転送データのデータサイズを判定し、転送データから既定パターンデータの出力に切り替えるタイミングの調整を行う。【００３５】
次に、図１、図２、及び図３を参照しながら本実施形態によるＤＭＡ転送動作について説明する。図３は本実施形態によるＤＭＡ転送のタイミングチャートを示すものである。なお、以下の動作は外部共有メモリ１４から内部メモリ１５へのＤＭＡ転送を対象として説明する。【００３６】
まず、ＤＭＡコントローラ１７は図３に示すように外部のＣＰＵ１９からＤＭＡ転送コマンドとデータサイズや先頭アドレス或いはパターン生成に必要なパターンインデックスや追加データサイズ、挿入オフセット或いは挿入タイミング等のパラメータを受け取ると、ＤＭＡ転送を開始する。その際、パターン生成に必要なパラメータはＣＰＵ１９によりパラメータレジスタ１２に設定される。【００３７】
ＤＭＡコントローラ１７は外部共有メモリ用アドレスを生成し、外部共有メモリ１４のアクセスを開始し、指定されたアドレス領域の指定されたデータサイズ分のデータを外部共有メモリ１４から読み出す。同時にカウンタ２３は転送データ数のカウント動作を開始する。これらの制御はＤＭＡ制御部１０によって行う。以下の説明においても同様である。【００３８】
外部共有メモリ１４から読み出されたデータは、一旦、ＤＭＡコントローラ１７内の待ち合わせユニット１３にＩＦ１６を介して送られる。待ち合わせユニット１３にデータが入力されると、図３に示すようにそれに同期してＤＭＡコントローラ１７は内部メモリ用のアドレスを生成し、待ち合わせユニット１３内に入力された転送データと一緒に内部メモリ１５に出力する。【００３９】
待ち合わせユニット１３はＦＩＦＯ（First-In First-Out）で構成されており、データの挿入がなければ１クロックサイクルでデータとアドレスを出力することができる。また、カウンタ２３によりＤＭＡ転送対象データの個数がカウントされ、パラメータにより指定されたタイミング（図２のパラメータレジスタ１２に格納されている挿入オフセット）になると、マルチプレクサ２５によりパターン生成部１１からの既定パターンデータが選択され、内部メモリ１５に出力される。【００４０】
パターン生成部１１で既定パターンを生成する場合には、上述のようにパラメータレジスタ１２のパターンインデックスによるどの既定パターンを出力するかを示すパラメータに従いセレクタ２４にて「０」か「１」を選択し、ゼロ行列や単位行列等の既定パターンデータを生成する。その際、パターン生成部１１は上述のようにパラメータレジスタ１２の既定パターンの大きさを示す追加データサイズに従い既定パターンデータを生成する。【００４１】
パターン生成部１１からの既定パターンデータが内部メモリ１５へ出力されている間、外部共有メモリ１４から転送されてきたデータは待ち合わせユニット１３内に保持されている。既定パターンデータの出力が完了すると、待ち合わせユニット１３内に保持されていた転送データがＤＭＡコントローラ１７内で生成されたアドレスと一緒に再び内部メモリ１５に出力される。【００４２】
続けて既定パターンを転送データに挿入する場合には、同様の動作で既定パターンを転送データに挿入する。但し、２回目以降の既定パターンの挿入動作に関してはパラメータレジスタ１２に設定された既定パターンの挿入間隔を示す挿入タイミングに従い転送データを既定パターンに切り替え、一定間隔で既定パターンを転送データに挿入する動作を行う。このようにして外部共有メモリ１４から転送するデータストリームに既定パターンを付加して内部メモリ１５へ転送する。【００４３】
本実施形態ではパターン生成部１１から出力するデータ値を０か１のいずれか一方と記述したが、必ずしもそれらの値に限定されるものではない。【００４４】
（第２の実施形態）
図４は本発明に係るＤＭＡ転送装置の第２の実施形態を含むシステムを示すブロック図である。図４中、第１の実施形態の図１と同一部分には同一符号を付している。第１の実施形態との違いは待ち合わせユニット１３から出力するデータをパラメータとしてパターン生成部１１で用いている点、及びパターン生成部１１の構成が異なる点である。その他の構成は第１の実施形態の図１と同様である。【００４５】
第１の実施形態は上述のように単位行列やゼロ行列を生成することを想定した構成であり、セレクタ２４への入力は０か１である。本実施形態では、パターン生成部１１から転送するデータとパラメータインデックスの値を用いて、パラメータレジスタ１２に格納されている任意のデータ２個のうちの一つを選択して既定パターンを生成する。本実施形態のＤＭＡ転送は、例えば、パケットのヘッダのようなデータによって挿入するパターンが変わる場合に用いることができる。【００４６】
ＤＭＡコントローラ１７は、ＤＭＡ制御部１０、パターン生成部１１、パラメータレジスタ１２、待ち合わせユニット１３、マルチプレクサ２５、メモリデータＩＦ１６を備えている。ＤＭＡ制御部１０はＤＭＡ転送の制御を行う。パターン生成部１１は既定パターンを生成する。パラメータレジスタ１２はパターン生成に用いる各パラメータを格納する。待ち合わせユニット１３は外部共有メモリ１４から転送された転送データとパターン生成部１１から出力される既定パターンとの出力タイミングを同期させる。【００４７】
マルチプレクサ２５は同様に待ち合わせユニット１３からの転送データとパターン生成部１１からの既定パターンとを切り替えて内部メモリ１５に出力する。メモリデータＩＦ１６は内部メモリ１５及び待ち合わせユニット１３に接続される。【００４８】
ＤＭＡコントローラ１７の周辺には内部メモリ１５、外部共有メモリ１４、演算コア１８、ＣＰＵ１９が設けられている。データバス２０、アドレスバス２１は、ＤＭＡコントローラ１７、ＣＰＵ１９、外部共有メモリ１４間を接続する。【００４９】
外部共有メモリ１４はＤＭＡ転送対象となる外部共有メモリである。内部メモリ１５はＤＭＡ転送対象となる内部メモリである。ＤＭＡコントローラ１７のＤＭＡ転送は、外部共有メモリ１４とＤＭＡコントローラ１７との間のデータバス２０に接続されているＣＰＵ１９からのコマンドによって制御される。【００５０】
パターン生成部１１とパラメータレジスタ１２の構成を図５に示す。まず、パラメータレジスタ１２の追加データサイズ、挿入オフセット、挿入タイミングは図２の説明と同様である。パラメータレジスタ１２にはその他に任意の数１と任意の数２がセットされている。【００５１】
パターン生成ユニット２６はインデックスデコーダ２２とセレクタ２４から構成されている。インデックスデコーダ２２は上述のようなパラメータレジスタ１２に格納されたパラメータに基づき既定パターンを生成するためのタイミングを制御信号として生成する。【００５２】
セレクタ２４には、この制御信号と上述のように転送データがパラメータとして入力され、セレクタ２４はこれら制御信号と転送データに基づいてパラメータレジスタ１２に格納されている任意の数１か任意の数２のどちらかを選択し、これを既定パターンとして出力する。【００５３】
カウンタ２３は同様に外部共有メモリ１４からの転送データ数をカウントする。カウンタ２３の値を用いて転送データサイズを判定し、既定パターンを挿入するタイミングを調整する。【００５４】
次に、図４、図５、図６を参照しながら本実施形態によるＤＭＡ転送の動作を説明する。図６は本実施形態によるＤＭＡ転送を示すタイミングチャートである。以下の動作説明は同様に外部共有メモリ１４から内部メモリ１５へのＤＭＡ転送を対象とするものである。【００５５】
本実施形態によるＤＭＡ転送動作は、第１の実施形態の図３の動作と基本的に同じであるが、図３との違いは上述のようにセレクタ２４から任意の数１か任意の数２のどちらかを選択して既定パターンを生成する点であり、パターン生成部１１にて生成する既定パターンが異なる点である。【００５６】
まず、ＤＭＡコントローラ１７は外部のＣＰＵ１９からＤＭＡ転送のコマンドとデータサイズや先頭アドレス或いはパターン生成に必要なパターンインデックスや追加データサイズ等のパラメータを受け取ると、ＤＭＡ転送を開始する。【００５７】
まず、ＤＭＡコントローラ１７は外部共有メモリ用アドレスを生成し、外部共有メモリ１４のアクセスを開始し、指定されたアドレス領域の指定されたデータサイズ分のデータを外部共有メモリ１４から読み出す。同時にカウンタ２３は転送データ数のカウント動作を開始する。【００５８】
外部共有メモリ１４から読み出されたデータは、一旦、ＤＭＡコントローラ１７内の待ち合わせユニット１３に送られる。待ち合わせユニット１３にデータが入力されると、図６に示すようにそれに同期してＤＭＡコントローラ１７は内部メモリ用のアドレスを生成し、待ち合わせユニット１３内に入力された転送データと一緒に内部メモリ１５に出力する。【００５９】
待ち合わせユニット１３はＦＩＦＯで構成されており、データの挿入がなければ１クロックサイクルでデータとアドレスを出力することができる。また、カウンタ２３によりＤＭＡ転送対象データの個数がカウントされ、パラメータにより指定されたタイミング（図５のパラメータレジスタ１２に格納されている挿入オフセット）になると、パターン生成部１１からの既定パターンデータの出力に切り替えられ、内部メモリ１５に出力される。【００６０】
その際、既定パターンとして指定された任意の数１か任意の数２のどちらを出力するかは、外部共有メモリ１４から転送されるデータによって選択する。例えば、転送データが「１」であれば任意の数１を選択し、転送データが「０」であれば任意の数２を選択する。それに合わせてパターンインデックスの値に基づいて任意の数１や任意の数２の個数を選択することで既定パターンデータを生成する。なお、パターン生成部１１はパラメータレジスタ１２の既定パターンの大きさを示す追加データサイズに従い既定パターンデータを生成する。【００６１】
パターン生成部１１からの既定パターンデータが内部メモリ１５へ出力されている間、外部共有メモリ１４から転送されてきたデータは待ち合わせユニット１３内に保持される。既定パターンデータの出力が完了すると、待ち合わせユニット１３内に保持されていた転送データがＤＭＡコントローラ１７内で生成されたアドレスと一緒に再び内部メモリ１５に出力される。【００６２】
続けて既定パターンを転送データに挿入する場合には、同様の動作で既定パターンを転送データに挿入する。２回目以降の既定パターンの挿入動作に関してはパラメータレジスタ１２に設定された既定パターンの挿入間隔を示す挿入タイミングに従い転送データを既定パターンに切り替え、一定間隔で既定パターンを転送データに挿入する。このようにして外部共有メモリ１４から転送するデータストリームに既定パターンを付加して内部メモリ１５へ転送する。【００６３】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。第３の実施形態は第２の実施形態の変形である。第２の実施形態との違いはパターン生成部１１の構成が異なる点、及び既定パターン挿入プロセスが異なる点である。その他の構成は第２の実施形態の図４と同様である。【００６４】
本実施形態によるパターン生成部１１の構成を図７に示す。図中、第２の実施形態の図５と同一部分には同一符号を付している。パラメータレジスタ２２のパターンインデックスと追加データサイズは図２の説明と同様である。トリガ値は転送データと既定パターンを切り替えるためのパラメータである。【００６５】
インデックスデコーダ２２はトリガ値と待ち合わせユニット１３からの転送データに基づいて挿入する既定パターンを選択するタイミングを制御信号としてセレクタ２４に出力する。セレクタ２４はインデックスデコーダ２２からの制御信号をもとにパラメータレジスタ１２に格納されている０か１のどちらかを選択し、既定パターンとして出力する。【００６６】
本実施形態では、外部共有メモリ１４からのＤＭＡ転送データがある一定値（その値はパラメータレジスタ１２に予め格納しているものとする）を示す時にパターン生成部１１で生成した既定パターンをＤＭＡ転送する場合に用いることができる。【００６７】
図８は本実施形態によるＤＭＡ転送を示すタイミングチャートである。本実施形態の動作は第２の実施形態の図６とは基本的に同じであるが、本実施形態では外部共有メモリ１４からの転送データと既定パターンとの切り替えに外部共有メモリ１４の転送データが用いられる。その他の動作は第２の実施形態と同様である。【００６８】
まず、ＤＭＡコントローラ１７がＣＰＵ１９からＤＭＡ転送コマンド等を受け取り、ＤＭＡ転送ＭＡ転送が開始されると、カウンタ２３がカウント動作を開始し、外部共有メモリ用のアドレスがＤＭＡコントローラ１７で生成され、外部共有メモリ１４からデータが読み出される。【００６９】
読み出されたデータは、一旦、ＤＭＡコントローラ１７内の待ち合わせユニット１３に送られる。待ち合わせユニット１３にデータが入力されると、それに同期してＤＭＡコントローラ１７は内部メモリ用のアドレスを生成し、待ち合わせユニット１３内に入力された転送データと一緒に内部メモリ１５に出力する。【００７０】
また、図８に示すようにＤＭＡ転送中は待ち合わせユニット１３からの外部共有メモリ１４の転送データとパラメータで指定されたトリガ値との比較を行い、一致した時点で既定パターンの出力に切り替えられる。例えば、転送データ中の３２ビットデータのオール１が、トリガ値の３２ビットデータのオール１に一致すると、既定パターンの出力に切り替えられる。既定パターンの出力が終了すると、同様に待ち合わせユニット１３に保持されていた外部共有メモリ１４からの転送データが内部メモリ１３へと出力される。【００７１】
既定パターンが送られている間は、外部共有データ１４からの転送データは待ち合わせユニット１３に保持されている。既定パターンのデータ転送が終了すると、同様に待ち合わせユニット１３に保持されていた転送データが既定パターンに代わって内部メモリ１５へ出力される。以下、同様の動作でパターン生成部１１で生成された既定パターンデータを外部共有メモリ１４から転送するデータストリームに付加して内部メモリ１５へ転送する。【００７２】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。本実施形態は第１の実施形態の変形であり、第１の実施形態との違いは既定パターンを生成するパターン生成部１１で使用するＤＭＡ転送への挿入タイミングの指定が、第１の実施形態ではデータの個数であったのに対し、本実施形態ではＤＭＡ転送が開始されてからの所要時間（クロックサイクル）で指定する点である。その他の構成は第１の実施形態と同様である。【００７３】
具体的には、パターン生成部１１の動作が第１の実施形態とは異なっており、ＤＭＡ転送コマンド等をＤＭＡコントローラ１７がＣＰＵ１９から受け取った時点でカウンタ２３が動作を始め、ＤＭＡ転送に要するサイクル数を出力する。カウンタ２３の値を用いてパラメータレジスタ１２にあるＤＭＡ転送タイミングのパラメータとの比較を行い、指定されたタイミングとなった時にパターン生成部１１で生成された既定パターンをＤＭＡ転送する。【００７４】
図９は本実施形態によるＤＭＡ転送のタイミングチャートを示す。図９は第１の実施形態の図３のタイミングチャートと基本的には同様であるが、上述のようにカウンタ２３によるサイクル数が指定の値になったら既定パターンを出力する。その他の動作は第１の実施形態と同様である。【００７５】
まず、ＤＭＡ転送が開始されると、カウンタ２３がカウント動作を開始し、外部共有メモリ用のアドレスがＤＭＡコントローラ１７で生成され、外部共有メモリ１４からデータが読み出される。【００７６】
読み出されたデータは、一旦、ＤＭＡコントローラ１７内の待ち合わせユニット１３に送られる。待ち合わせユニット１３にデータが入力されると、それに同期してＤＭＡコントローラ１７は内部メモリ用のアドレスを生成し、待ち合わせユニット１３内に入力された転送データと一緒に内部メモリ１５に出力する。【００７７】
一方、カウンタ２３のカウント値がパラメータで指定された値（挿入オフセット）になると、パターン生成部１１で既定パターンが生成され、図９に示すように外部共有メモリ１４からの転送データと切り替わって既定パターンデータが内部メモリ１５に送られる。【００７８】
既定パターンが送られている間は、外部共有データ１４からの転送データは待ち合わせユニット１３に保持される。既定パターンのデータ転送が終了すると、同様に待ち合わせユニット１３に保持されていた転送データが既定パターンに代わって内部メモリ１５へ出力される。【００７９】
続けて既定パターンを転送データに挿入する場合には、第１の実施形態と同様に既定パターンの挿入間隔を示す挿入タイミングに従い転送データを既定パターンに切り替え、一定間隔で既定パターンを転送データに挿入する動作を行う。このようにして外部共有メモリ１４から転送するデータストリームに既定パターンを付加して内部メモリ１５へ転送する。【００８０】
なお、本実施形態によるＤＭＡ転送は第１の実施形態の変形例として説明したが、第４の実施形態によるＤＭＡ転送は第２の実施形態によるＤＭＡ転送にも適用することもできる。【００８１】
以上説明した各実施形態では、外部共有メモリから内部メモリへのＤＭＡ転送について説明したが、内部メモリから外部共有メモリへのＤＭＡ転送についても同様に本発明を適用できることは勿論である。【００８２】
以上、本発明の代表的な実施形態について説明したが、本発明は、本願の請求の範囲によって規定される、その精神または主要な特徴から逸脱することなく、他の種々の形で実施することができる。そのため、前述した各実施形態は単なる例示にすぎず、限定的に解釈されるべきではない。本発明の範囲は特許請求の範囲によって示すものであって、明細書や要約書の記載には拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更はすべて本発明の範囲内のものである。
【産業上の利用可能性】
【００８３】
本発明は、多量のストリームデータに対して行列演算・フィルタリング等を行うデータ通信処理装置等のデジタル信号処理装置といった用途に好適に使用することができる。
【図１】
2008105494.tif 000003
【図２】
2008105494.tif 000004
【図３】
2008105494.tif 000005
【図４】
2008105494.tif 000006
【図５】
2008105494.tif 000007
【図６】
2008105494.tif 000008
【図７】
2008105494.tif 000009
【図８】
2008105494.tif 000010
【図９】
2008105494.tif 000011
【図１０】
2008105494.tif 000012
【手続補正書】
【提出日】平成20年7月30日(2008.7.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のメモリ間のＤＭＡ転送を行うＤＭＡ転送装置において、
既定パターンデータを生成するパターンタ生成部と、
一方のメモリから読み出した転送データと前記パターン生成部で生成された既定パターンデータとの同期をとるための待ち合わせ部と、
前記転送データの大きさを判定する判定部とを有し、
前記判定部の判定結果に基づいて前記待ち合わせ部からの転送データと前記パターン生成部で生成された前記既定パターンデータとを切り替えることによって、前記既定パターンデータを前記転送データに挿入して他方のメモリへ転送することを特徴とするＤＭＡ転送装置。
【請求項２】
前記既定パターンデータは複数であり、前記パターン生成部はどのパターンを出力するかを示すパラメータ、及び既定パターンの大きさを示すパラメータに基づいて前記既定パターンデータを生成することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項３】
始めに既定パターンデータを挿入するタイミングを示すパラメータ、及び前記転送データに前記既定パターンを挿入するタイミングを示すパラメータがＣＰＵから送られ、前記パターン生成部はこれらのパラメータに基づいて前記転送データに前記既定パターンデータを挿入することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項４】
前記判定部は、ＤＭＡ転送するデータ数をカウントすることによって前記転送データの大きさを判定することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項５】
前記判定部は、ＤＭＡ転送に要するクロックサイクルをカウントすることによって前記転送データの大きさを判定することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項６】
前記一方及び他方のメモリは、外部共有メモリと内部メモリ、又は内部メモリと外部共有メモリであり、前記ＤＭＡ転送は前記外部共有メモリと前記内部メモリとの間のデータ転送であり、前記既定パターンデータは単位行列又はゼロ行列であることを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項７】
前記一方及び他方のメモリ間がバスで接続され、更に、前記バスとのデータＩＦ、ＣＰＵから送られた前記既定パターンデータの生成に使用するパラメータを記憶するパラメータレジスタと、前記ＤＭＡ転送を制御するＤＭＡ制御部とを有することを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項８】
複数のメモリ間のＤＭＡ転送を行うＤＭＡ転送装置のＤＭＡ転送方法において、
既定パターンデータを生成し、
一方のメモリから読み出した転送データと、生成された前記既定パターンデータとの同期をとり、
前記転送データの大きさを判定し、
前記転送データの大きさの判定結果に基づいて、同期がとられた転送データと、生成された前記既定パターンデータとを切り替えることによって、前記既定パターンデータを前記転送データに挿入し、他方のメモリへ転送することを含むことを特徴とするＤＭＡ転送方法。
【請求項９】
前記既定パターンデータは複数であり、前記既定パターンデータの生成は、どのパターンを出力するかを示すパラメータ、及び既定パターンの大きさを示すパラメータに基づいて行われることを特徴とする請求項８に記載のＤＭＡ転送方法。
【請求項１０】
前記転送データへの前記既定パターンデータの挿入は、ＣＰＵから送られた、始めに既定パターンデータを挿入するタイミングを示すパラメータ、及び前記転送データに前記既定パターンを挿入するタイミングを示すパラメータに基づいて行われることを特徴とする請求項８に記載のＤＭＡ転送方法。
【請求項１１】
前記転送データの大きさの判定は、ＤＭＡ転送するデータ数をカウントすることによって行われることを特徴とする請求項８に記載のＤＭＡ転送方法。
【請求項１２】
前記転送データの大きさの判定は、ＤＭＡ転送に要するクロックサイクルをカウントすることによって行われることを特徴とする請求項８に記載のＤＭＡ転送方法。
【請求項１３】
前記一方及び他方のメモリは、外部共有メモリと内部メモリ、又は内部メモリと外部共有メモリであり、前記ＤＭＡ転送は前記外部共有メモリと前記内部メモリとの間のデータ転送であり、前記既定パターンデータは単位行列又はゼロ行列であることを特徴とする請求項８に記載のＤＭＡ転送方法。
【請求項１４】
前記一方及び他方のメモリ間がバスで接続され、ＣＰＵから送られた前記既定パターンデータの生成に使用するパラメータを記憶するパラメータレジスタとを有することを特徴とする請求項８に記載のＤＭＡ転送方法。
【国際調査報告】
2008105494.tif 000013
2008105494.tif 000014