JP7611444B2 - マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ - Google Patents
マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ Download PDFInfo
- Publication number
- JP7611444B2 JP7611444B2 JP2024063119A JP2024063119A JP7611444B2 JP 7611444 B2 JP7611444 B2 JP 7611444B2 JP 2024063119 A JP2024063119 A JP 2024063119A JP 2024063119 A JP2024063119 A JP 2024063119A JP 7611444 B2 JP7611444 B2 JP 7611444B2
- Authority
- JP
- Japan
- Prior art keywords
- memory address
- tensor
- memory
- dimension
- request
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Description
DMA(ダイレクトメモリアクセス)とは、デバイスやサブシステムが、処理装置とは独立してメモリにアクセスすることを可能にする機能である。これにより、処理装置は、データ転送に関わることから解放され、処理装置は、その他の操作を実行できるよう、利用可能になる。DMAを利用して、大容量のメモリ転送操作およびスキャッター/ギャザー操作など、処理装置が抱えるコストの高いメモリ操作の負担を軽減させることができる。
本明細書は、たとえば1つのクロック周期の間に、マルチレベルマルチストライドを行うことと、複数のメモリアドレスを並列して決定することとが可能なDMAアーキテクチャに関する技術について説明する。
列して生成するように構成され、各並列メモリ計算は、1つのクロック周期の間に行われる。
解放された識別子を利用してメモリ要求の発行を継続することが可能なり、メモリ転送の速度および効率が向上する。
詳細な説明
概して、本明細書は、たとえば1つのクロック周期の間に、マルチレベルマルチストライドを行うことと、複数のメモリアドレスを並列して決定することとが可能なDMAアーキテクチャについて説明する。チップは、チップのプロセッサコア(複数可)からのメモリ転送操作の負荷を軽減させる1つ以上のDMAエンジンを含み得る。各DMAエンジンは、1つ以上のDMAスレッドを含み得る。各DMAスレッドは、コア(複数可)に代わってDMAトランザクションの実行を管理するハードウェアユニットである。クロック周期は、DMAエンジンまたはコアによる1つの操作の実行に必要な時間であり得る。
よびその他のメモリ転送操作など、コア110を含む1つ以上のプロセッサコアのDMAトランザクションを管理し得る。たとえば、DMAスレッド120は、コア110とDMAスレッド120とを備えるチップ上のメモリシステムの、異なるメモリ間での多次元テンソルの転送を指揮し得る。DMAスレッド120は、メモリシステムに要求(コマンド)を送ることによりデータの移動を指揮し、トランザクションを要求したコアに進行状況を同期できるよう、これらの要求の完了を追跡する。メモリシステムは、読出/書込の要求/コマンドがメモリシステムに入ると、要求の順番に関係なく独立して各要求を満たす。DMAスレッド120は、要求/応答の順番、およびコアとの同期に対処する。DMAスレッド120にこれらのメモリ操作の負荷を肩代わりさせることで、たとえば、機械学習計算を行ったり、テンソルの形を変更したりするなどのその他のタスクのために、コア110上の計算周期が解放される。
えば、DMAスレッド120は、受け取って記述子キュー122に格納した記述子112に基づいて、複数のDMAスレッドを逐次実行し得る。いくつかの実施態様では、記述子キュー122は、FIFO(First-In,First-Out)キューであり、DMAトランザクションの記述子112が受け取られる順番にDMAスレッド120がDMAトランザクションを実行できる。DMAトランザクションの実行は、完全にパイプライン化されており、順不同な操作を行うように実装され得るが、処理装置には、プログラム順に実行しているように見える。
ている現在の記述子112のテンソルの次元の数によっては、これらのステップ比較値は、たとえば、次元のストライド当たりのステップ数から1を減算した値、次元のストライド当たりのステップ数から2を減算した値、次元のストライド当たりのステップ数から3を減算した値などであり得る。計算要素210は、必須ではなく、事前に計算された値も必須ではない。値を事前に計算することは、次のクロック周期上でのクリティカルパスタイミングを改善するのに役立ち得る。
い要求をまだ受け付けられない)。いくつかの実施態様では、各DMAスレッド120は、ソフトウェアによって構成可能なハードウェアFSMを用いて、独立して速度が絞られ得る。ソフトウェアは、構成可能なサンプリング期間にわたる目標要求生成バンド幅をDMAスレッド120ごとに設定し得、DMAスレッド120は、割り当てられたバンド幅に達すると自動的にそのパイプラインをストールする。よって、DMAスレッド120は、(1)メモリシステムネットワークバックプレッシャー、(2)要求バンド幅が絞られる、(3)要求ID割り当てを使い果たす(進行状況追跡部がクレジットを返すのを待つ)という3つの異なる状況でストールし得る。
されたステップインクリメントチェーン322に切り替えて、ステップインクリメントチェーン322に初期化量を送り得る。ステップインクリメントチェーン324が次元メモリアドレスオフセット値の最後の一式を決定したクロック周期の直後のクロック周期に、ステップインクリメントチェーン322は、次元メモリアドレスオフセット値の最初の一式を生成し得る。2つのステップインクリメントチェーンをこのように利用することで、特に、テンソルが小さい場合にDMAスレッドの処理能力および効率性が大幅に改善し得る。たとえば、このテンソルのメモリアドレスのすべてを決定するために要求生成部が3つのクロック周期しか必要としない場合、1つのクロック周期を用いてテンソル間の1つのステップインクリメントチェーンを再度初期化すると、処理能力(たとえば、単位時間当たりに行われるメモリ操作の数)が25%低下してしまう。
インクリメントチェーン324は、ステップインデックス値の現在の状態を有することとなり、この記述子に関連する残りの周期の次元メモリアドレスオフセット値を決定し得る。この記述子の最初の周期が完了した後、FSMは、マルチプレクサを制御して、ステップインクリメントチェーン324の出力を再び渡し得る。
ステップインデックス値が現在の周期において再度初期化された回数に等しくてもよい。すなわち、ラップ量は、予告量に基づいて4つのループがラップアラウンドされる回数を反映している。
元の次のステップインデックス値とストライド次元オフセット値との積)。
20から、受け取った順序要求IDの数を明記するデータを受け取り得る。同期部530は、記述子が規定する少なくともしきい値量(またはしきい値割合)のメモリ操作が完了するたびに、同期メッセージを送るように構成され得る。たとえば、同期部530は、現在の記述子に関連して行われるメモリ操作の回数(たとえば、読出操作または書込操作であるかは、サブスレッドによって異なる)を決定し得る。同期更新部530は、メモリ操作の少なくとも10%が完了するたびにコアに同期メッセージを送るように構成され得る。上述したように、記述子が規定するメモリ操作のすべてが完了するまで待たずに、コアは、これらの一部の最新情報を使って、転送されたデータを消費し始め得る。
ごとに1対の入力がある。特定の要求IDの場合、並替えベクトル630に含まれるビットの値、およびポップベクトルロジック640が保持するポップベクトルにある要求IDのポップビットの値が両方とも1である場合、当該要求IDに関する論理積ゲートの出力は、1である。後述するが、メモリアドレスのポップビットを1に設定して、たとえば、要求生成部が使用するために要求IDが解放された場合に、ビットの値をクリアして0にし得る。すなわち、要求IDに対する応答が受け取られていて要求IDがまだ解放されていない場合、要求IDに対応するビットの論理積ゲート622の出力は、1である。要求IDが解放された場合、このビットについての論理積ゲート622の出力は、ポップベクトルからの入力が1になるので、0である。
定し得る。たとえば、ポップするビットが4つである場合、ポップベクトルロジック640は、現在の先頭ポインタから先頭ポインタに4を足した位置までのビットをポップし得る。先頭ポインタに4を足した値はすでに計算されているので、ポップベクトルロジック640は、ポップするビットの位置を、クロック周期を消費して決定する必要がない。
、各次元の次元メモリアドレスオフセット値を、当該次元のストライド次元オフセット値と、次のステップインデックス値とを用いて計算し得る。そして、レーン上のステップ追跡部が出力した各次元の次元メモリアドレスオフセット値と、基底アドレスとに基づいて、各レーンのメモリアドレス計算部は、メモリアドレスを計算し得る。たとえば、レーンのメモリアドレス(よって、テンソル要素)は、基底アドレスと、次元メモリアドレスオフセット値との和であり得る。
得る(812)。たとえば、進行状況追跡部は、受け取った応答の数または割合を示す同期メッセージをコアに送り得る。別の例では、進行状況追跡部は、前回の同期メッセージがコアに送られてから受け取った応答の数を示す同期メッセージをコアに送り得る。
Claims (20)
- DMA(ダイレクトメモリアクセス)システムであって、
DMAハードウェアユニットを備え、前記DMAハードウェアユニットは、
並列メモリアドレス計算周期のたびに(1)多次元テンソルのためにM個のメモリアドレスを並列して生成し、メモリアドレスごとに(2)前記多次元テンソルに関するメモリ操作を行うようメモリシステムに求める要求を生成するように構成された要求生成部を含み、前記要求生成部は、M個のメモリアドレス部を含み、各メモリアドレス部は、
並列メモリアドレス計算周期のたびに、前記多次元テンソルのテンソル要素のメモリアドレスオフセット値を生成するように構成されたステップ追跡部と、
メモリアドレス計算要素とを含み、前記メモリアドレス計算要素は、
並列メモリアドレス計算周期のたびに、前記メモリアドレスオフセット値に基づいて、前記多次元テンソルの前記テンソル要素のメモリアドレスを生成し、
前記メモリアドレスを用いて前記メモリ操作を行うよう求める前記要求を、前記メモリシステムに送るように構成され、前記DMAハードウェアユニットは、さらに、
進行状況追跡部を備え、前記進行状況追跡部は、
前記テンソル要素のメモリ操作が行われたかどうかのステータスをテンソル要素ごとに保持するように構成された応答並替え部と、
複数の一部の最新情報をプロセッサコアに提供するように構成された同期更新部とを含み、前記複数の一部の最新情報は、各々、前記多次元テンソルの前記テンソル要素に対して行われたメモリ操作の全体的なステータスを明記し、
前記M個のメモリアドレス部のステップ追跡部のうちの任意のステップ追跡部がメモリアドレスオフセット値を生成する前記テンソル要素は、並列メモリアドレス計算周期のたびに前記M個のメモリアドレス部の残りのステップ追跡部のうちの任意のステップ追跡部がメモリアドレスオフセット値を生成する前記テンソル要素とは異なり、
前記Mは、2以上である、DMAシステム。 - 前記ステップ追跡部は、前記多次元テンソルの次元ごとに(1)前記次元のステップインデックス値を決定し、前記ステップインデックス値に基づいて(2)前記次元のメモリアドレスオフセット値を決定することによって前記多次元テンソルの前記テンソル要素の前記メモリアドレスオフセット値を生成するように構成され、前記多次元テンソルの前記次元の前記ステップインデックス値は、前記多次元テンソル内での前記テンソル要素の位置に対応する、請求項1に記載のDMAシステム。
- 各要求は、一意の識別子を含み、
前記応答並替え部は、
前記メモリシステムから応答を任意の順番に受け取るように構成され、各応答は、前記応答が提供される前記要求の前記一意の識別子を含み、前記応答並替え部は、さらに、
一連の一意の識別子を、前記要求生成部が再利用できるよう、解放するように構成される、請求項1または2に記載のDMAシステム。 - 前記応答並替え部は、少なくともしきい値数の連続した一意の識別子を前記応答で受け取った場合、前記一連の一意の識別子を解放するように構成される、請求項3に記載のDMAシステム。
- 前記要求生成部は、1つのクロック周期の間に前記メモリアドレスを並列して生成するように構成され、各並列メモリ計算は、1つのクロック周期の間に行われる、請求項1~4のいずれか1項に記載のDMAシステム。
- 前記要求生成部は、M個のレーンを含み、前記M個のレーンは、各々、ステップ追跡部と、メモリアドレス計算要素とを含み、各レーンの前記ステップ追跡部および前記メモリアドレス計算要素は、対応するメモリアドレスを他のレーンと並列して計算する、請求項1~5のいずれか1項に記載のDMAシステム。
- ステップ追跡部は、ループネストに基づいて前記多次元テンソルの前記メモリアドレスを生成するように構成され、前記ループネストは、前記多次元テンソルの次元ごとに、前記多次元テンソルの次元を横断するためのループを含み、
各次元のストライド値当たりのステップ数は、前記次元の前記ループのループ範囲を表し、各次元の前記ステップインデックス値は、前記次元の前記ループのループインデックスを表す、請求項2に記載のDMAシステム。 - 各ステップ追跡部は、クロック周期のたびに前記次元の各々の前記ステップインデックス値を更新するように構成される、請求項7に記載のDMAシステム。
- DMAシステムによって実行される方法であって、
要求生成部が、並列メモリアドレス計算周期のたびに(1)多次元テンソルのためにM個のメモリアドレスを並列して生成し、メモリアドレスごとに(2)前記多次元テンソルに関するメモリ操作を行うようメモリシステムに求める要求を生成するステップを含み、前記要求生成部は、M個のメモリアドレス部を含み、前記Mは、2以上であり、各メモリアドレス部は、ステップ追跡部と、メモリアドレス計算要素とを含み、前記方法は、さらに、
各メモリアドレス部の前記ステップ追跡部が、並列メモリアドレス計算周期のたびに、前記多次元テンソルのテンソル要素のメモリアドレスオフセット値を生成するステップと、
各メモリアドレス部の前記メモリアドレス計算要素が、並列メモリアドレス計算周期のたびに、前記多次元テンソルの前記テンソル要素の前記メモリアドレスオフセット値に基づいて、前記多次元テンソルのテンソル要素のメモリアドレスを生成するステップと、
各メモリアドレス部の前記メモリアドレス計算要素が、前記メモリアドレスを用いて前記メモリ操作を行うよう求める前記要求を、前記メモリシステムに送るステップと、
応答並替え部が、前記テンソル要素のメモリ操作が行われたかどうかのステータスをテンソル要素ごとに保持するステップと、
同期更新部が、複数の一部の最新情報をプロセッサコアに提供するステップとを含み、前記複数の一部の最新情報は、各々、前記多次元テンソルの前記テンソル要素に対して行われたメモリ操作の全体的なステータスを明記し、
前記M個のメモリアドレス部のステップ追跡部のうちの任意のステップ追跡部がメモリアドレスオフセット値を生成する前記テンソル要素は、並列メモリアドレス計算周期のたびに前記M個のメモリアドレス部の残りのステップ追跡部のうちの任意のステップ追跡部がメモリアドレスオフセット値を生成する前記テンソル要素とは異なる、方法。 - 前記多次元テンソルの前記テンソル要素の前記メモリアドレスオフセット値を生成するステップは、前記多次元テンソルの次元ごとに(1)前記次元のステップインデックス値を決定し、前記ステップインデックス値に基づいて(2)前記次元のメモリアドレスオフセット値を決定するステップを含み、前記多次元テンソルの前記次元の前記ステップインデックス値は、前記多次元テンソル内での前記テンソル要素の位置に対応する、請求項9に記載の方法。
- 各要求は、一意の識別子を含み、
前記応答並替え部は、
前記メモリシステムから応答を任意の順番に受け取るように構成され、各応答は、前記応答が提供される前記要求の前記一意の識別子を含み、前記応答並替え部は、さらに、
一連の一意の識別子を、前記要求生成部が再利用できるよう、解放するように構成される、請求項9または10に記載の方法。 - 前記応答並替え部は、少なくともしきい値数の連続した一意の識別子を前記応答で受け取った場合、前記一連の一意の識別子を解放する、請求項11に記載の方法。
- 前記要求生成部は、1つのクロック周期の間に前記メモリアドレスを並列して生成し、各並列メモリ計算は、1つのクロック周期の間に行われる、請求項9~12のいずれか1項に記載の方法。
- 前記要求生成部は、M個のレーンを含み、前記M個のレーンは、各々、ステップ追跡部と、メモリアドレス計算要素とを含み、各レーンの前記ステップ追跡部および前記メモリアドレス計算要素は、対応するメモリアドレスを他のレーンと並列して計算する、請求項9~13のいずれか1項に記載の方法。
- ステップ追跡部は、ループネストに基づいて前記多次元テンソルの前記メモリアドレスを生成し、前記ループネストは、前記多次元テンソルの次元ごとに、前記多次元テンソルの次元を横断するためのループを含み、
各次元のストライド値当たりのステップ数は、前記次元の前記ループのループ範囲を表し、各次元の前記ステップインデックス値は、前記次元の前記ループのループインデックスを表す、請求項10に記載の方法。 - 各ステップ追跡部は、クロック周期のたびに前記次元の各々の前記ステップインデックス値を更新する、請求項15に記載の方法。
- システムであって、
1つ以上のプロセッサコアと、
メモリシステムと、
DMAハードウェアユニットとを備え、前記DMAハードウェアユニットは、
並列メモリアドレス計算周期のたびに(1)多次元テンソルのためにM個のメモリアドレスを並列して生成し、メモリアドレスごとに(2)前記多次元テンソルに関するメモリ操作を行うようメモリシステムに求める要求を生成するように構成された要求生成部を含み、前記要求生成部は、M個のメモリアドレス部を含み、各メモリアドレス部は、
並列メモリアドレス計算周期のたびに、前記多次元テンソルのテンソル要素のメモリアドレスオフセット値を生成するように構成されたステップ追跡部と、
メモリアドレス計算要素とを含み、前記メモリアドレス計算要素は、
並列メモリアドレス計算周期のたびに、前記メモリアドレスオフセット値に基づいて、前記多次元テンソルの前記テンソル要素のメモリアドレスを生成し、
前記メモリアドレスを用いて前記メモリ操作を行うよう求める前記要求を、前記メモリシステムに送るように構成され、前記DMAハードウェアユニットは、さらに、
進行状況追跡部を備え、前記進行状況追跡部は、
前記テンソル要素のメモリ操作が行われたかどうかのステータスをテンソル要素ごとに保持するように構成された応答並替え部と、
複数の一部の最新情報をプロセッサコアに提供するように構成された同期更新部とを含み、前記複数の一部の最新情報は、各々、前記多次元テンソルの前記テンソル要素に対して行われたメモリ操作の全体的なステータスを明記し、
前記M個のメモリアドレス部のステップ追跡部のうちの任意のステップ追跡部がメモリアドレスオフセット値を生成する前記テンソル要素は、並列メモリアドレス計算周期のたびに前記M個のメモリアドレス部の残りのステップ追跡部のうちの任意のステップ追跡部がメモリアドレスオフセット値を生成する前記テンソル要素とは異なり、
前記Mは、2以上である、システム。 - 前記ステップ追跡部は、前記多次元テンソルの次元ごとに(1)前記次元のステップインデックス値を決定し、前記ステップインデックス値に基づいて(2)前記次元のメモリアドレスオフセット値を決定することによって前記多次元テンソルの前記テンソル要素の前記メモリアドレスオフセット値を生成するように構成され、前記多次元テンソルの前記次元の前記ステップインデックス値は、前記多次元テンソル内での前記テンソル要素の位置に対応する、請求項17に記載のシステム。
- 各要求は、一意の識別子を含み、
前記応答並替え部は、
前記メモリシステムから応答を任意の順番に受け取るように構成され、各応答は、前記応答が提供される前記要求の前記一意の識別子を含み、前記応答並替え部は、さらに、
一連の一意の識別子を、前記要求生成部が再利用できるよう、解放するように構成される、請求項18に記載のシステム。 - 前記応答並替え部は、少なくともしきい値数の連続した一意の識別子を前記応答で受け取った場合、前記一連の一意の識別子を解放するように構成される、請求項19に記載のシステム。
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202062977062P | 2020-02-14 | 2020-02-14 | |
| US62/977,062 | 2020-02-14 | ||
| US16/838,796 US11314674B2 (en) | 2020-02-14 | 2020-04-02 | Direct memory access architecture with multi-level multi-striding |
| US16/838,796 | 2020-04-02 | ||
| JP2022522723A JP7472277B2 (ja) | 2020-02-14 | 2020-11-30 | マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ |
| PCT/US2020/062605 WO2021162765A1 (en) | 2020-02-14 | 2020-11-30 | Direct memory access architecture with multi-level multi-striding |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022522723A Division JP7472277B2 (ja) | 2020-02-14 | 2020-11-30 | マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024105255A JP2024105255A (ja) | 2024-08-06 |
| JP7611444B2 true JP7611444B2 (ja) | 2025-01-09 |
Family
ID=77272083
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022522723A Active JP7472277B2 (ja) | 2020-02-14 | 2020-11-30 | マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ |
| JP2024063119A Active JP7611444B2 (ja) | 2020-02-14 | 2024-04-10 | マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022522723A Active JP7472277B2 (ja) | 2020-02-14 | 2020-11-30 | マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ |
Country Status (7)
| Country | Link |
|---|---|
| US (3) | US11314674B2 (ja) |
| EP (2) | EP4617889A3 (ja) |
| JP (2) | JP7472277B2 (ja) |
| KR (2) | KR20250134709A (ja) |
| CN (1) | CN114556311A (ja) |
| TW (2) | TWI862752B (ja) |
| WO (1) | WO2021162765A1 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11314674B2 (en) * | 2020-02-14 | 2022-04-26 | Google Llc | Direct memory access architecture with multi-level multi-striding |
| US11704130B2 (en) * | 2021-08-16 | 2023-07-18 | Micron Technology, Inc. | Indexing external memory in a reconfigurable compute fabric |
| CN113836049B (zh) * | 2021-09-17 | 2023-08-08 | 海飞科(南京)信息技术有限公司 | 存储器访问方法和电子装置 |
| JP7770865B2 (ja) * | 2021-10-26 | 2025-11-17 | 株式会社Preferred Networks | コンパイル装置、生成方法、プログラム及びシステム |
| CN117435547B (zh) * | 2022-07-15 | 2026-03-20 | 北京有竹居网络技术有限公司 | 人工智能芯片、灵活地访问数据的方法、设备和介质 |
| US20240069914A1 (en) * | 2022-08-23 | 2024-02-29 | Intel Corporation | Hardware enhancements for matrix load/store instructions |
| EP4594905A4 (en) * | 2022-10-01 | 2026-04-22 | Intel Corp | MATERIAL SUPPORT FOR INSTRUCTIONS FOR LOADING AND STORING N-DIMENSIONAL MATRICES |
| CN115757201A (zh) * | 2022-12-05 | 2023-03-07 | 北京算能科技有限公司 | 基于dma架构的sg指令实现方法、装置、设备及存储介质 |
| CN116821019B (zh) * | 2023-08-30 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、计算机设备及芯片 |
| US12499045B1 (en) * | 2024-07-19 | 2025-12-16 | Arm Limited | Efficient data processing |
| CN119271274B (zh) * | 2024-09-30 | 2026-01-30 | 苏州元脑智能科技有限公司 | 一种多维度数据的处理方法、装置、设备和介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015018314A (ja) | 2013-07-09 | 2015-01-29 | 富士通株式会社 | ストレージ制御装置、制御プログラムおよび制御方法 |
| US20190243790A1 (en) | 2018-02-02 | 2019-08-08 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Direct memory access engine and method thereof |
Family Cites Families (50)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6057457A (ja) * | 1983-09-07 | 1985-04-03 | Ricoh Co Ltd | Dma装置 |
| US4855903A (en) * | 1984-12-20 | 1989-08-08 | State University Of New York | Topologically-distributed-memory multiprocessor computer |
| JPS63216170A (ja) * | 1987-03-05 | 1988-09-08 | Mitsubishi Electric Corp | デイジタル信号処理プロセツサ |
| JPH03268040A (ja) * | 1990-03-19 | 1991-11-28 | Toshiba Corp | アドレス発生装置 |
| US5361363A (en) * | 1990-10-03 | 1994-11-01 | Thinking Machines Corporation | Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes |
| JPH04333952A (ja) * | 1991-05-10 | 1992-11-20 | Toshiba Corp | Dmaコントロールlsi |
| US5659797A (en) * | 1991-06-24 | 1997-08-19 | U.S. Philips Corporation | Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface |
| EP0562251A2 (en) * | 1992-03-24 | 1993-09-29 | Universities Research Association, Inc. | Parallel data transfer network controlled by a dynamically reconfigurable serial network |
| JPH06243113A (ja) * | 1993-02-19 | 1994-09-02 | Fujitsu Ltd | 並列計算機における計算モデルのマッピング法 |
| US5526501A (en) * | 1993-08-12 | 1996-06-11 | Hughes Aircraft Company | Variable accuracy indirect addressing scheme for SIMD multi-processors and apparatus implementing same |
| US5628026A (en) * | 1994-12-05 | 1997-05-06 | Motorola, Inc. | Multi-dimensional data transfer in a data processing system and method therefor |
| US5809334A (en) | 1996-09-24 | 1998-09-15 | Allen-Bradley Company, Llc | Receive packet pre-parsing by a DMA controller |
| US6185634B1 (en) * | 1996-09-27 | 2001-02-06 | Emc Corporation | Address triggered DMA controller with an indicative signal including circuitry for calculating a new trigger address value based on the sum of the current trigger address and the descriptor register data with a trigger address register |
| EP1059588A1 (en) | 1999-06-09 | 2000-12-13 | Texas Instruments Incorporated | Multi-channel dma with request scheduling |
| HK1046049A1 (zh) * | 1999-09-01 | 2002-12-20 | Intel Corporation | 用於多线程处理器的分支指令 |
| US7035958B2 (en) * | 2002-10-03 | 2006-04-25 | International Business Machines Corporation | Re-ordering a first request within a FIFO request queue to a different queue position when the first request receives a retry response from the target |
| US6874054B2 (en) | 2002-12-19 | 2005-03-29 | Emulex Design & Manufacturing Corporation | Direct memory access controller system with message-based programming |
| US7331013B2 (en) * | 2004-02-18 | 2008-02-12 | Nvidia Corporation | Viterbi decoder with survivor bits stored to support look-ahead addressing |
| US7165722B2 (en) * | 2004-03-10 | 2007-01-23 | Microsoft Corporation | Method and system for communicating with identification tags |
| US7363397B2 (en) * | 2004-08-26 | 2008-04-22 | International Business Machines Corporation | System and method for DMA controller with multi-dimensional line-walking functionality |
| US7577772B2 (en) | 2004-09-08 | 2009-08-18 | Qlogic, Corporation | Method and system for optimizing DMA channel selection |
| US8843727B2 (en) | 2004-09-30 | 2014-09-23 | Intel Corporation | Performance enhancement of address translation using translation tables covering large address spaces |
| US7529245B1 (en) * | 2005-04-04 | 2009-05-05 | Sun Microsystems, Inc. | Reorder mechanism for use in a relaxed order input/output system |
| US20060259658A1 (en) | 2005-05-13 | 2006-11-16 | Connor Patrick L | DMA reordering for DCA |
| DE602005023542D1 (de) * | 2005-06-30 | 2010-10-21 | Freescale Semiconductor Inc | Einrichtung und verfahren zum ausführen einer dma-task |
| US7926046B2 (en) * | 2005-12-13 | 2011-04-12 | Soorgoli Ashok Halambi | Compiler method for extracting and accelerator template program |
| US7870544B2 (en) * | 2006-04-05 | 2011-01-11 | International Business Machines Corporation | Insuring maximum code motion of accesses to DMA buffers |
| US8176265B2 (en) * | 2006-10-30 | 2012-05-08 | Nvidia Corporation | Shared single-access memory with management of multiple parallel requests |
| TWI346873B (en) * | 2007-03-27 | 2011-08-11 | Ind Tech Res Inst | A direct memory access controller with dynamic data width adjustment, method thereof, and computer accessible storage media to store program thereof |
| US20090031001A1 (en) * | 2007-07-27 | 2009-01-29 | Archer Charles J | Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer |
| JP2010033188A (ja) * | 2008-07-25 | 2010-02-12 | Fujitsu Ltd | 送信経路選択装置、データ送信システム、コンピュータ装置および送信経路選択方法 |
| US20100180100A1 (en) * | 2009-01-13 | 2010-07-15 | Mavrix Technology, Inc. | Matrix microprocessor and method of operation |
| US8255593B2 (en) * | 2009-09-29 | 2012-08-28 | Oracle America, Inc. | Direct memory access with striding across memory |
| JP5706754B2 (ja) * | 2011-05-13 | 2015-04-22 | キヤノン株式会社 | データ処理装置及びデータ処理方法 |
| US9996500B2 (en) * | 2011-09-27 | 2018-06-12 | Renesas Electronics Corporation | Apparatus and method of a concurrent data transfer of multiple regions of interest (ROI) in an SIMD processor system |
| GB2515755A (en) | 2013-07-01 | 2015-01-07 | Ibm | Method and apparatus for performing a FFT computation |
| US9094039B2 (en) * | 2013-10-18 | 2015-07-28 | Advanced Micro Devices, Inc. | Efficient deflate decompression |
| US9778949B2 (en) * | 2014-05-05 | 2017-10-03 | Google Inc. | Thread waiting in a multithreaded processor architecture |
| US10255547B2 (en) * | 2014-12-04 | 2019-04-09 | Nvidia Corporation | Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system |
| US20170192720A1 (en) * | 2015-12-31 | 2017-07-06 | Arteris, Inc. | Prioritization of order ids in dram scheduling |
| US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
| US11055063B2 (en) | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
| US9959498B1 (en) * | 2016-10-27 | 2018-05-01 | Google Llc | Neural network instruction set architecture |
| US10896367B2 (en) * | 2017-03-07 | 2021-01-19 | Google Llc | Depth concatenation using a matrix computation unit |
| US9946539B1 (en) * | 2017-05-23 | 2018-04-17 | Google Llc | Accessing data in multi-dimensional tensors using adders |
| CN107832843B (zh) * | 2017-10-30 | 2021-09-21 | 上海寒武纪信息科技有限公司 | 一种信息处理方法及相关产品 |
| CN110197265B (zh) * | 2018-02-27 | 2021-01-05 | 安徽寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
| US11101804B2 (en) * | 2019-01-22 | 2021-08-24 | Intel Corporation | Fast memory for programmable devices |
| US10997102B2 (en) * | 2019-04-01 | 2021-05-04 | Wave Computing, Inc. | Multidimensional address generation for direct memory access |
| US11314674B2 (en) * | 2020-02-14 | 2022-04-26 | Google Llc | Direct memory access architecture with multi-level multi-striding |
-
2020
- 2020-04-02 US US16/838,796 patent/US11314674B2/en active Active
- 2020-11-30 JP JP2022522723A patent/JP7472277B2/ja active Active
- 2020-11-30 EP EP25193689.4A patent/EP4617889A3/en active Pending
- 2020-11-30 KR KR1020257028486A patent/KR20250134709A/ko active Pending
- 2020-11-30 EP EP20825377.3A patent/EP4022450B1/en active Active
- 2020-11-30 KR KR1020227011989A patent/KR102852712B1/ko active Active
- 2020-11-30 WO PCT/US2020/062605 patent/WO2021162765A1/en not_active Ceased
- 2020-11-30 CN CN202080071556.3A patent/CN114556311A/zh active Pending
- 2020-12-07 TW TW109143079A patent/TWI862752B/zh active
- 2020-12-07 TW TW113146583A patent/TWI901462B/zh active
-
2022
- 2022-04-25 US US17/728,478 patent/US11762793B2/en active Active
-
2023
- 2023-08-02 US US18/229,616 patent/US12287745B2/en active Active
-
2024
- 2024-04-10 JP JP2024063119A patent/JP7611444B2/ja active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015018314A (ja) | 2013-07-09 | 2015-01-29 | 富士通株式会社 | ストレージ制御装置、制御プログラムおよび制御方法 |
| US20190243790A1 (en) | 2018-02-02 | 2019-08-08 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Direct memory access engine and method thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7472277B2 (ja) | 2024-04-22 |
| KR20250134709A (ko) | 2025-09-11 |
| CN114556311A (zh) | 2022-05-27 |
| US20220327075A1 (en) | 2022-10-13 |
| US20210255976A1 (en) | 2021-08-19 |
| EP4022450B1 (en) | 2025-09-10 |
| US20240070098A1 (en) | 2024-02-29 |
| EP4617889A2 (en) | 2025-09-17 |
| JP2024105255A (ja) | 2024-08-06 |
| EP4022450A1 (en) | 2022-07-06 |
| US11314674B2 (en) | 2022-04-26 |
| TW202511963A (zh) | 2025-03-16 |
| TW202131195A (zh) | 2021-08-16 |
| US11762793B2 (en) | 2023-09-19 |
| TWI862752B (zh) | 2024-11-21 |
| KR20220062068A (ko) | 2022-05-13 |
| US12287745B2 (en) | 2025-04-29 |
| TWI901462B (zh) | 2025-10-11 |
| JP2023513652A (ja) | 2023-04-03 |
| WO2021162765A1 (en) | 2021-08-19 |
| KR102852712B1 (ko) | 2025-08-29 |
| EP4617889A3 (en) | 2025-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7611444B2 (ja) | マルチレベルマルチストライドを有するダイレクトメモリアクセスアーキテクチャ | |
| US11782760B2 (en) | Time-multiplexed use of reconfigurable hardware | |
| EP2866138B1 (en) | Floating-point supportive pipeline for emulated shared memory architectures | |
| TWI417798B (zh) | High - speed reverse transfer neural network system with elastic structure and learning function | |
| KR20210029725A (ko) | 게이트웨이를 통한 데이터 | |
| TW201209709A (en) | Multiprocessor system-on-a-chip for machine vision algorithms | |
| EP2806361B1 (en) | Memory unit for emulated shared memory architectures | |
| US11816485B2 (en) | Nested loop control | |
| US12333284B2 (en) | Nested loop control | |
| KR20210023904A (ko) | 스트리밍 엔진 | |
| JP2021531572A (ja) | Mac回路中の異なるカーネルを使用してデータのセットに対して連続するmac演算を実施すること | |
| KR102349138B1 (ko) | 사전 프로그래밍 된 함수를 갖는 고속 컴퓨터 가속기 | |
| HK40071755A (en) | Direct memory access architecture with multi-level multi-striding | |
| TW202609572A (zh) | 具有多級多步之直接記憶體存取系統及由該系統執行之方法 | |
| JP2024528421A (ja) | ストールされたデータを処理するためのデータ処理装置及び方法 | |
| JP2004515856A (ja) | ディジタル信号処理装置 | |
| JP5544856B2 (ja) | 調停装置、調停方法及びプログラム | |
| WO2014202128A1 (en) | P-select n-port round robin arbiter for scheduling requests | |
| HK40019155A (en) | High-speed computer accelerator with pre-programmed functions |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240507 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240507 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20240507 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240730 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241021 |
|
| 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: 20241203 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241223 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7611444 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |