JP2016520905A - ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ - Google Patents
ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ Download PDFInfo
- Publication number
- JP2016520905A JP2016520905A JP2016509091A JP2016509091A JP2016520905A JP 2016520905 A JP2016520905 A JP 2016520905A JP 2016509091 A JP2016509091 A JP 2016509091A JP 2016509091 A JP2016509091 A JP 2016509091A JP 2016520905 A JP2016520905 A JP 2016520905A
- Authority
- JP
- Japan
- Prior art keywords
- list
- dma
- descriptor
- pointer
- jump
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
ダイレクトメモリアクセス(DMA)コントローラは、DMA命令のセットをリスト内に記憶し、リスト内の各エントリは、エントリのタイプを識別する、ビットフィールドを含む。ビットフィールドに基づいて、DMAコントローラは、各DMA命令がバッファポインタまたはジャンプポインタであるかどうかを判定する。DMA命令が、バッファポインタとして識別される場合、DMAコントローラは、バッファポインタによって規定された場所にまたはそこからデータを転送する。DMA命令が、ジャンプポインタとして識別される場合、DMAコントローラは、ジャンプポインタによって規定されたリスト内の場所にジャンプする。DMA命令のリストのサブセットは、キャッシュされてもよく、DMAコントローラは、キャッシュエントリを連続して実行する。
Description
(関連出願への相互参照)
本出願は、2013年4月17日に出願された米国仮出願第61/812,873号の利益を主張する。上記文献は、その全体として本明細書において援用される。
本出願は、2013年4月17日に出願された米国仮出願第61/812,873号の利益を主張する。上記文献は、その全体として本明細書において援用される。
(技術分野)
本開示は、ダイレクトメモリアクセスコントローラに関し、特に、マルチチャネル分散・集積ダイレクトメモリアクセスコントローラに関する。
本開示は、ダイレクトメモリアクセスコントローラに関し、特に、マルチチャネル分散・集積ダイレクトメモリアクセスコントローラに関する。
(背景)
ダイレクトメモリアクセス(DMA)コントローラは、コンピュータシステムによって使用され、メモリとハードウェアサブシステムとの間のデータ転送を行い、転送は、コンピュータシステムの中央処理ユニットから独立して完了される。コンピュータシステムは、複数のDMAコントローラを利用してもよく、マイクロコントローラ、マイクロプロセッサ、内蔵システム、およびそれ自体がDMAコントローラを実装する、周辺機器等のサブ構成要素を含んでもよい。DMAコントローラは、そうでなければ、システムプロセッサの転送実行の中断を要求し得る、メモリ内に記憶されるデータへのダイレクトアクセスを仲介する。DMAコントローラによって提供される本能力は、ハードウェアサブシステムが読み出されたデータ自体を処理するであろう状況では、特に有利であり、その場合、システムプロセッサは、データの転送のみを行い、それを処理しない。例えば、グラフィックカードは、システムメモリ内に記憶されるデータにアクセスする必要があり得る。しかし、グラフィックカードは、読み出されたデータ自体を処理するであろうため、DMAは、システムプロセッサを迂回しながら、データがグラフィックカードによって読み出されることを可能にする。これは、システムプロセッサ上のサイクルを解放し、概して、プロセッサが比較的に低速のI/O動作を待機しないため、効率を改善する。
ダイレクトメモリアクセス(DMA)コントローラは、コンピュータシステムによって使用され、メモリとハードウェアサブシステムとの間のデータ転送を行い、転送は、コンピュータシステムの中央処理ユニットから独立して完了される。コンピュータシステムは、複数のDMAコントローラを利用してもよく、マイクロコントローラ、マイクロプロセッサ、内蔵システム、およびそれ自体がDMAコントローラを実装する、周辺機器等のサブ構成要素を含んでもよい。DMAコントローラは、そうでなければ、システムプロセッサの転送実行の中断を要求し得る、メモリ内に記憶されるデータへのダイレクトアクセスを仲介する。DMAコントローラによって提供される本能力は、ハードウェアサブシステムが読み出されたデータ自体を処理するであろう状況では、特に有利であり、その場合、システムプロセッサは、データの転送のみを行い、それを処理しない。例えば、グラフィックカードは、システムメモリ内に記憶されるデータにアクセスする必要があり得る。しかし、グラフィックカードは、読み出されたデータ自体を処理するであろうため、DMAは、システムプロセッサを迂回しながら、データがグラフィックカードによって読み出されることを可能にする。これは、システムプロセッサ上のサイクルを解放し、概して、プロセッサが比較的に低速のI/O動作を待機しないため、効率を改善する。
DMAコントローラは、DMA対応ハードウェアサブシステム間のメモリ転送を取り扱う論理を実装する。DMAコントローラは、典型的には、複数のチャネルを介して、並行して、複数のサブシステムのためのメモリアクセスをサポートすることができる。本能力を提供するために、DMAコントローラは、複数のチャネルを並行して管理するための論理を実装する。したがって、DMAコントローラは、定義されたチャネルのセットを介して、システムメモリへのダイレクトアクセスを管理する、特殊目的処理ユニットと見なされることができる。DMAコントローラの限定された権限のセットにもかかわらず、従来のDMAコントローラは、非効率性を含む。
概して、DMAコントローラは、具体的チャネルを介して、ソース場所から目的地場所に具体的データのセットを転送するように命令される。ソースおよび目的地場所は、マイクロコントローラのシステムメモリ(典型的には、RAM)またはデータメモリ、周辺デバイスの内蔵システム、または周辺機器によってアクセス可能な他のデータ(アナログ/デジタルコンバータ、ポート、捕捉比較ユニット等からのデータ等)内であり得る。データをソース場所から目的地場所に転送するために、従来のDMAコントローラは、個別のソースおよび目的地アドレスを転送命令の一部として受信する。本アドレス情報がDMAコントローラに提供される方法の1つは、DMAコントローラによってサポートされる、「記述子」の形態におけるものであり、各記述子は、DMAコントローラに命令する命令である。従来のシステムでは、各記述子は、DMAコントローラに、システムメモリ内の規定された場所とデータメモリとの間でデータの連続ブロックを転送するように命令する。転送されるべきメモリのブロックを識別するために、従来の記述子はまた、ブロックのサイズをデータ転送命令の一部として規定し得る。ソースアドレスおよびブロックサイズは、システムメモリから転送されるべきデータの連続ブロックを識別するために、従来のDMAコントローラによって使用される。
記述子は、リストに編成され、DMAコントローラに提供され、リスト内の各エントリは、DMAコントローラによるアクションを命令する、記述子である。記述子のリストは、DMAコントローラによって厳密に連続して実行される、またはリストが、各エントリが、実行されるべき次の記述子としてリスト内の別のエントリを規定する、付加的専用ポインタを有する、リンク式リストである場合、任意の順序で実行されることができる。概して、記述子のリンク式リストを使用するのではなく、記述子の連続して実行されるリストを使用して、ストリーミングデータ(すなわち、通常、メモリの連続ブロック内に記憶される、非構造化データ)を転送することは、より効率的である。しかしながら、パケットデータ(すなわち、メモリ内の分散場所に記憶される各個々のデータアイテムの処理を要求する傾向がある、構造化データ)の転送は、リンク式リストによって提供される柔軟性に有利に働く傾向がある。その結果、DMAコントローラは、典型的には、記述子リストのシーケンス式および非シーケンス式両方の処理をサポートする。両タイプの処理をサポートするために、従来のDMAコントローラは、全インスタンスにおいてポインタを利用するように構成される、記述子のリンク式リストを利用し、これは、ストリーミングデータを転送するときにほとんど必要とされない、有意なアドレス指定オーバーヘッドを費やす結果をもたらす。したがって、効率的様式において、種々のタイプのデータ転送を取り扱うことができる、より柔軟性のあるDMAコントローラの必要性がある。
(要約)
従来のDMAコントローラは、記述子のシーケンス式および非シーケンス式両方の処理のために、DMA記述子のリンク式リストを使用する。転送されるデータの性質に応じて、シーケンス式処理は、十分な柔軟性を提供せず、従来のリンク式リストは、有意な無駄なオーバーヘッドを含み得る。故に、シーケンス式およびリンク式の両方のリストの利点を提供する、ハイブリッドリンク式リストの必要性がある。先行技術におけるこれらおよび他の短所は、本発明の実施形態によるシステムおよび方法によって、大部分が克服される。
従来のDMAコントローラは、記述子のシーケンス式および非シーケンス式両方の処理のために、DMA記述子のリンク式リストを使用する。転送されるデータの性質に応じて、シーケンス式処理は、十分な柔軟性を提供せず、従来のリンク式リストは、有意な無駄なオーバーヘッドを含み得る。故に、シーケンス式およびリンク式の両方のリストの利点を提供する、ハイブリッドリンク式リストの必要性がある。先行技術におけるこれらおよび他の短所は、本発明の実施形態によるシステムおよび方法によって、大部分が克服される。
ある実施形態によると、DMAコントローラは、DMAコントローラと結合されるバスを経由してデータ転送を行うように構成される、制御ユニットから成り、制御ユニットはさらに、メモリ内に記憶されるDMA命令のうちの1つ以上のリストを使用して、複数のデータ転送を行うように構成され、制御ユニットは、アドレス情報を各リストエントリから読み取り、アドレス情報は、各リストエントリ内の少なくとも1ビットに基づいて、バッファポインタまたはジャンプポインタのいずれかであると判定される。
さらなる実施形態によると、DMAコントローラはさらに、記述子と呼ばれる、DMA命令のキャッシュから成り、制御ユニットは、記述子のブロックをキャッシュの中にロードし、制御ユニットは、キャッシュ内に記憶される記述子を連続して実行する。さらなる実施形態によると、DMAコントローラの制御ユニットは、実行されるべきキャッシュエントリがジャンプ記述子として識別されると、キャッシュをフラッシュする。さらなる実施形態によると、各記述子は、第1および第2のビットフィールドを備え、第1のビットフィールドは、前記アドレス情報を記憶し、第2のビットフィールドは、アドレス情報がバッファポインタまたはジャンプポインタを提供するかどうかを示す、1つ以上のビットを記憶する。さらなる実施形態によると、バッファポインタは、コントローラによって転送されるべきデータメモリの連続ブロックの始まりを識別する、開始アドレスを備える。さらなる実施形態によると、バッファポインタはさらに、転送されるべきデータメモリの連続ブロックのサイズを規定する、バッファ深度(BD)値を備える。
本発明は、付随の図面を参照することによって、より深く理解され、その多数の目的、特徴、および利点が、当業者に明白となり得る。異なる図面中の同一参照記号の使用は、類似または同じアイテムを示す。
(詳細な説明)
種々の実施形態によると、改良された効率が、従来のDMA記述子と、一方のタイプが、記述子のリストのシーケンス式実行をサポートし、他方のタイプが、記述子のリストの非シーケンス式実行におけるポインタの使用をサポートする、2つの別々のタイプの記述子を置換することによって提供される。また、種々の実施形態によると、DMAコントローラは、記述子のシーケンス式処理と非シーケンス式処理との間の効率的切替を可能にする様式において、2つのタイプの記述子を利用する。したがって、より柔軟性かつ効率的転送能力のセットを伴う、DMAコントローラが、提供されることができる。
種々の実施形態によると、改良された効率が、従来のDMA記述子と、一方のタイプが、記述子のリストのシーケンス式実行をサポートし、他方のタイプが、記述子のリストの非シーケンス式実行におけるポインタの使用をサポートする、2つの別々のタイプの記述子を置換することによって提供される。また、種々の実施形態によると、DMAコントローラは、記述子のシーケンス式処理と非シーケンス式処理との間の効率的切替を可能にする様式において、2つのタイプの記述子を利用する。したがって、より柔軟性かつ効率的転送能力のセットを伴う、DMAコントローラが、提供されることができる。
種々の実施形態によると、DMAコントローラは、メモリおよびバス帯域幅の効率的使用もまた維持しながら、シーケンス式および非シーケンス式両方の処理の柔軟性を提供する必要性の平衡を保つ。加えて、いくつかの実施形態によると、ユーザは、転送されるデータの特性に基づいて、記述子のシーケンス式または非シーケンス式いずれかの処理をより良好にサポートするように、DMAコントローラの個々のチャネルを構成する能力も提供される。
図1は、マイクロコントローラまたは内蔵システム等のコンピュータシステム内のDMAコントローラの例証的実施形態を描写する。コンピュータシステム100は、概して、1つ以上の通信バスに結合される、中央処理ユニット(CPU)110を備える。図1に図示される実施形態では、周辺バス140が、示される。本周辺バス140を通して、CPU110は、I/Oポート、メモリ、A/DおよびD/Aコンバータ、タイマ、パルス幅変調器、グラフィックサブシステム、オーディオ処理サブシステム等の複数の周辺デバイス180a...180nと通信することができる。さらに、メモリバス160は、CPU110とRAMメモリ等のメインデータメモリ120を結合するために提供されることができる。DMAコントローラ130は、周辺バス140と統合され、本バス140と結合されるDMA対応周辺デバイス180a...180n間にデータ転送を提供する。加えて、DMAコントローラ130は、メモリバス170を通して、データメモリ120と結合される。DMAコントローラ130はまた、CPU110との接続150を含んでもよく、それによって、DMAコントローラは、CPUからの制御信号を受信することができる。
図1に描写されるシステムは、DMAコントローラ130が、CPU110に負荷をかけずに、データメモリ120と周辺デバイス180a...180nとの間の転送を仲介することを可能にする。本システムはまた、同様にCPU110に負荷をかけずに、データメモリ120内のデータ転送を厳密に実行するために使用されることができる。典型的には、CPU110は、DMAコントローラ130を初期化するために必要とされるであろう。しかし、いったんDMAコントローラ130が初期化されると、データメモリ120へおよびそこからの転送は、CPU110の補助を伴わずに、行われ得る。これは、他のタスクを行うために、CPU110を解放することになる。特に、メモリにアクセスすることを要求する、比較的に低速のI/Oトランザクションを仲介することによって生じる遅延からCPU110を解放する。
図2は、実施形態による、DMAコントローラ130を示す。DMAコントローラは、接続150を介してCPU110から受信された制御信号を介して、独立して構成されることができる、複数のチャネルをサポートする。これらのチャネルの構成可能側面の1つは、各チャネルが、伝送または受信チャネルのいずれかとして規定されることである。受信チャネルは、DMAコントローラ130によって、周辺バス140上のデバイスからメインデータメモリバス170にデータを移動するために使用される。逆に言えば、伝送チャネルは、メインデータメモリバス170から周辺バス140上のデバイスにデータを移動するために使用される。DMAコントローラ130は、1つ以上の記述子のリストをCPU110から受信する。各チャネルは、記述子のリストを実行するように構成される。
実施形態によると、ハイブリッドリンク式リスト内の各記述子は、転送されるべきシステムメモリ内のアドレスを規定するバッファ記述子、または記述子リスト内の別の記述子へのポインタであるジャンプ記述子のいずれかである。各記述子はさらに、記述子がバッファ記述子またはジャンプ記述子であるかどうかを規定するために使用される、制御ビットフィールドを含む。DMAコントローラ130は、コントローラが記述子を適宜処理することができるように、制御ビットフィールドを使用し、記述子のタイプをデコードする。
記述子がバッファ記述子であると判定される場合、DMAコントローラ130は、バッファ記述子によって規定されたメインデータメモリ120内の場所にアクセスする。バッファ記述子が、伝送チャネル内で実行される場合、DMAコントローラ130は、メモリバス170を介して、バッファ記述子によって規定されたアドレスにおけるメインデータメモリ内に位置するデータを読み出し、周辺バス140を介して転送要求を行う周辺デバイスにデータを転送する。バッファ記述子が、受信チャネル内で実行される場合、DMAコントローラ130は、周辺バス140を介して、周辺デバイスからデータを受信し、メモリバス170を介して、バッファ記述子によって規定されたアドレスにおけるメインデータメモリ120内の場所にデータを記憶する。
いくつかの実施形態では、転送されるデータは、DMAコントローラ130による読取および書込両方の動作が周辺バス140を介するような外部メモリ場所内に常駐する。いくつかの実施形態では、転送動作は、DMAコントローラが、メモリバス170を介して、メインデータメモリ内のある場所からメインデータメモリ内の別の場所にデータを転送するように、メインデータメモリ内にあるであろう。
いくつかの実施形態では、DMAコントローラの制御ユニット285は、メインデータメモリ120内に記憶される記述子のリストにアクセスする。制御ユニット285が、記述子の実行を完了し、新しい記述子の実行を始める準備ができる度に、制御ユニットは、次の記述子をメインデータメモリ120から読み出す。完了した記述子が、バッファ記述子である場合、制御ユニット285によってメインデータメモリ120からフェッチされる次の記述子は、実行されるリスト内のメインデータメモリ内の次の記述子である。完了した記述子が、ジャンプ記述子である場合、ジャンプ記述子のジャンプポインタは、制御ユニット285によってフェッチされる次の記述子のメインデータメモリ120内のアドレスを規定する。
いくつかの実施形態では、DMAコントローラ130の制御ユニット285は、1つ以上の記述子リストを受信し、これらのリストを記述子キャッシュ290内に記憶する。制御ユニット285は、リスト内の第1の記述子を処理することによって、キャッシュされる記述子リストの実行を始める。前述のように、制御ユニット285は、バッファ記述子またはジャンプ記述子であるかどうかを判定するために処理される記述子に照会を行う。記述子が実行され、制御ユニット285が次の記述子を処理する準備ができた後、次の記述子が、記述子キャッシュ290内のリストからフェッチされる。実行される記述子が、バッファ記述子である場合、制御ユニット285は、記述子キャッシュ290内の次の場所に位置する記述子をフェッチする。実行される記述子が、ジャンプ記述子である場合、ジャンプ記述子のジャンプポインタは、制御ユニット285によってフェッチされる次の記述子のメインデータメモリ120内のアドレスを規定する。記述子キャッシュ290を利用する実施形態は、記述子キャッシュ290をDMAコントローラ内に維持することが、メインデータメモリ120から付加的記述子を読み出すために、コントローラが転送を中断せずに、実行されるべきメインデータメモリ120データ転送を可能にするため、メインデータメモリ120内に記憶されるリストに依拠するより効率的に動作することが可能である。
前述のように、記述子は、典型的には、リストの形態において、従来のDMAコントローラに提供され、各リストは、リンク式リストとして実装される。従来のリスト内の各要素は、転送されるべきデータメモリの連続ブロックを規定する、記述子である。転送されるべきデータのアドレスを規定することに加え、リンク式リスト実装の使用はまた、各記述子が実行されるべき次の記述子へのポインタを含むことを要求する。本リンク式リスト実装は、記述子が、任意の順序において、実行されるべき記述子の繰り返しパターンのために実行されることを可能にする。しかしながら、従来のリンク式リストの使用は、有意な非効率性をもたらし得る。
図3は、記述子が、リストを記憶する連続的メモリ内に現れる順序で厳密に処理される、従来の記述子のリストを描写する。図3に図示されるように、本シーケンス式リスト内の各記述子は、転送されるべきデータのブロックの開始メモリアドレスを規定する、バッファポインタ(BP)305と、バッファ深度(BD)310と、1つ以上の制御ステータス(CS)ビット315とから成ってもよい。バッファ深度310は、バッファポインタ305からのオフセットとして使用され、転送されるべきデータのブロック全体を判定する。図示されるように、従来のDMAコントローラは、第1の記述子のためにバッファポインタ305およびバッファ深度310によって規定されたデータのブロックを読み出すことによって、シーケンス式リスト内の第1の記述子を実行するであろう。いったん完了されると、DMAコントローラは、次いで、シーケンス式リスト内の次の記述子に移動するであろう。そのようなシーケンス式リストは、ストリーミングデータの転送の場合等、データの大連続ブロックの転送に好適であろう。しかしながら、ジャンプポインタを伴わない場合、シーケンス式リストは、非ストリーミングデータのための効率的データ転送を提供するように実証されている、環状またはピンポンバッファ等の読み出しパターンを利用することができない。
図4は、従来のリンク式記述子のリストを描写する。リンク式リストでは、全ての記述子は、データ転送命令およびジャンプ命令の両方を含む。より具体的には、従来の記述子は、実行されるべき次の記述子を規定する、ジャンプポインタ420と、バッファポインタ(BP)410と、バッファ深度(BD)415と、1つ以上の制御ステータスビット430とを含む。リンク式リストの場合、リスト内の記述子は、各記述子内に規定されたジャンプポインタ420によって記載される順序に基づいて、DMAコントローラによって実行される。各従来の記述子を実行する際、DMAコントローラは、バッファポインタ410によって規定されたメモリ場所にアクセスする。いったんバッファポインタ410およびバッファ深度415によって規定されたデータのブロックが転送されると、DMAコントローラは、従来の記述子のジャンプ命令部分を実行する。各ジャンプ命令は、リンク式リスト内の別の記述子への参照である、ジャンプポインタ420である。このように、DMAコントローラは、ジャンプポインタによって規定された順序において、従来のリンク式リストをトラバースする。記述子の非シーケンス式ブロック間にジャンプする本能力に起因して、リンク式リストは、パケットデータの転送の場合等、データの断片化されたブロックの転送に非常に好適である。
シーケンス式リストと異なり、リンク式リストは、記述子リスト内に記述子のデータ構造を形成するために使用されることができる。リンク式リストは、DMAコントローラが、メモリの非連続ブロックからの記述子を継ぎ合わせることを可能にする。非連続的記述子を読み取るためのジャンプポインタの使用は、リンク式リストが、効率的データ転送を提供するために使用される、データ構造を定義することを可能にする。例えば、ジャンプポインタは、リンク式リストによって使用され、ピンポンバッファ、環状バッファ、および当技術分野において公知の他のパターン等、データ転送のパターンを定義する。そのようなパターンは、効率的データ転送アルゴリズムを実装するために使用される。リンク式リストによって提供される本能力は、柔軟性かつ強力であるが、また、コストもかかる。
これらの能力を提供するために、リンク式リストは、ジャンプポインタの使用を要求する。従来のリンク式リストは、ジャンプポインタを全ての記述子の一部として利用し、記述子のサイズを増加させる。記述子のサイズは、記述子内にエンコードされなければならない情報によって判定される。記述子内のバッファポインタおよびジャンプポインタのサイズは、アクセスされるメモリシステムのアドレス指定可能サイズに依存し、典型的には、32または64ビットである。付加的ビットが、バッファ深度および制御ステータスビットを定義するために記述子内に必要とされる。ジャンプポインタをエンコードするために必要とされるビットの数は、記述子リストが記憶されるメインメモリ120のサイズに応じて、変動するであろう。ジャンプポインタを全ての記述子内に含めることは、したがって、図3に描写されるもの等のシーケンス式リスト内で使用される記述子と比較して、リンク式リスト記述子のサイズの増加を要求する。
加えて、ジャンプポインタを全ての記述子内で使用する、従来のリンク式リストは、ジャンプポインタによって課される、有意な計算オーバーヘッドおよびメモリバス帯域幅によって負荷がかけられる。従来のリンク式リストでは、全ての記述子の実行は、最初に、ジャンプポインタアドレスを読み取り、ポインタによって参照される記述子を特定し、次の記述子をフェッチすることを要求する。これらのステップは、ジャンプポインタがリスト内の次のエントリのみをポイントする場合でも、全ての記述子を実行するために実施されなければならない。したがって、DMAコントローラによる付加的命令が、シーケンス式リストと比較して、各リンク式リスト記述子をフェッチおよび実行するために要求される。
実施形態によるハイブリッドリンク式リストは、図5に示される。シーケンス式リストのように、ハイブリッドリンク式リストの記述子は、チャネルのために現在実行されているリスト内に現れる順序において、DMAコントローラによって実行される。記述子のシーケンス式実行は、ジャンプ記述子にリスト内で遭遇するまで継続する。図5に図示されるように、ハイブリッドリンク式リスト内の各エントリは、バッファポインタ(BP)505を含有するバッファ記述子またはジャンプポインタ(JP)530を含有するジャンプ記述子のいずれかから成る。DMAコントローラは、記述子の「タイプ」(例えば、バッファまたはジャンパ)をエンコードする、記述子の制御ステータス(CS)ビットフィールド520をクエリすることによって、個々の記述子がバッファ記述子またはジャンプ記述子であるかどうかを判定する。各ハイブリッドリンク式リスト記述子はまた、バッファポインタ505と併せて、転送されるべきデータのブロックを規定する、バッファ深度610を含有する。
図5に図示されるもの等の記述子のハイブリッドリンク式リストは、ジャンプポインタにリスト内で遭遇するまで、リストが記憶されるメモリ内の記述子の順序において、DMAコントローラによって実行される。DMAコントローラ130が、図2に関して説明されるように、実行されるべきリスト内の次の記述子がバッファ記述子であると判定する場合、DMAコントローラ130は、バッファ記述子のバッファポインタ605によって規定されたメモリ場所にアクセスする。データは、次いで、チャネルが伝送または受信チャネルであるかどうかに応じて、バッファポインタ場所への書込またはそこからの読取のいずれかが行われる。
いったんバッファ記述子の実行が完了すると、DMAコントローラ130は、リストが記憶されるメモリ内の次の記述子の実行に進む。本プロセスは、リスト内のエントリの全てがDMAコントローラ130によって実行されるまで、または実行されるべき次の記述子がジャンプ記述子であると判定されるまで、継続する。ジャンプ記述子に遭遇する場合、DMAコントローラによって実行される次の記述子は、ジャンプ記述子のジャンプポインタ530によって規定されたメモリアドレスにおける記述子である。ジャンプ記述子は、転送されるべきデータのブロックを規定しないため、ジャンプ記述子の1つ以上のビットフィールドは、ヌル値であってもよい。例えば、バッファポインタまたはバッファ深度を表すであろうビットフィールドは、ジャンプ記述子による他の目的のために使用される、またはプレースホルダヌル値が記入されるであろう。
図6Aおよび6Bは、3つの異なるタイプの記述子リストのためのサポートを提供するためのハイブリッドリンク式リストの実施形態の能力を図示する。左列は、ハイブリッドリンク式リスト実施形態を使用する、シーケンス式リストの実装を図示する。中心列は、ハイブリッドリンク式リスト実施形態を使用する、リンク式リストの実装を図示する。右列は、シーケンス式およびリンク式リスト処理能力の両方を組み合わせる実施形態による、ハイブリッドリストの実装を図示する。図6Aおよび6Bに図示されるように、実施形態によるハイブリッドリンク式リストは、改良された効率もまた提供しながら、シーケンス式およびリンク式の両方のリストと、シーケンス式およびリンク式リストの組み合わせであるリストとを構築するために使用されることができる。
図6Aおよび6Bの中心列は、リンク式リストを実装するために使用される、実施形態によるハイブリッドリンク式リストの使用を図示する。図6Aおよび6Bはさらにまた、従来のリンク式リストの不利点を図示する。前述のように、リンク式リスト内の従来の記述子の実行は、DMAコントローラが少なくとも2つの動作を実行することを要求する。第1に、DMAコントローラは、記述子によって規定されたメインデータメモリ内のアドレスにまたはそこからデータを転送することによって、転送命令を実行しなければならない。第2に、DMAコントローラは、ジャンプ命令を実行し、記述子のリストのうちの1つ内の実行されるべき次の記述子の場所を判定しなければならない。これは、ジャンプ命令を単に実行することがコントローラの仕事量の有意な部分を構成し得るため、DMAコントローラにとっての有意なオーバーヘッド源である。本オーバーヘッドは、記述子がメインデータメモリ内に現れる順序で実行され得るため、ジャンプ命令が必要とされないとき、特に、無駄な非効率性となる。これらの場合には、全てのジャンプ命令は、リスト内の次のエントリへのポインタにすぎない。
図6Aおよび6Bの左列は、実施形態によるハイブリッドリンク式リストを使用して実装されるシーケンス式リストを図示する。DMAコントローラは、記述子がメインデータメモリ内に現れる順序において、ハイブリッドリンク式リストの記述子を実行する。その結果、ジャンプ記述子に付帯するオーバーヘッドは、費やされない。これは、ハイブリッドリンク式リストが、主に、バッファ記述子から成るとき、DMAコントローラの動作が、主に、データ転送であるため、効率を改善する。DMAコントローラの効率を改善することに加え、ハイブリッドリンク式リストはまた、従来のリンク式リストと比較して、より小さい記述子が使用されることを可能にする。記述子内のジャンプポインタを表すために要求されるビットの数に応じて、有意な節約が、シーケンス式リストによって実現されることができる。記述子のシーケンス式ブロックを処理するためのハイブリッドリンク式リストの能力はまた、DMAコントローラが、効率に関する他の利点を実現することを可能にする。メインデータメモリ内に連続して配列されるシーケンス式リスト内の記述子の場合、ハードウェアは、記述子のより大きい連続ブロックを読み取り、次いで、それらをキャッシュし、記述子を読み出す際の遅延を短縮するように構成されることができる。加えて、記述子のより大きいブロックを一括で読み取ることは、バス上により効率的トラフィックをもたらす。
図6Aおよび6Bの右列は、シーケンス式およびリンク式リスト特性を組み合わせる記述子のリストを実装する、実施形態によるハイブリッドリンク式リストを図示する。ハイブリッドリンク式リストは、従来のリンク式リストより改良された効率を提供しながら、シーケンス式リストおよびリンク式リストの両方の利点をもたらす。実施形態によると、ハイブリッドリンク式リスト記述子は、バッファ記述子またはジャンプ記述子のいずれかであることができる。バッファ記述子は、転送されるべき連続的メモリのブロックを規定する一方、ジャンプ記述子は、DMAコントローラに、実行されるべき次の記述子を読み出すために、メインメモリ内の具体的場所にジャンプするように命令する。前述のように、バッファ記述子およびジャンプ記述子は両方とも、2つのタイプの記述子間を区別するためにDMAコントローラによって利用される、「記述子タイプ」ビットフィールドを含む。DMAコントローラが、記述子の実行を始めると、記述子がバッファ記述子またはジャンプ記述子であるかどうかを判定するために、記述子タイプビットフィールドにクエリを行う。
従来の記述子を本方式で分割することは、DMAコントローラ実施形態が、依然として、要求されると、ジャンプ命令を利用する能力を提供しながら、シーケンス式リストであるかのように、リストの一部を通してナビゲートすることを可能にする。図6Aおよび6Bの右列によって図示されるように、ハイブリッドリンク式リストは、全ての記述子を実行する一部としてジャンプ命令を含むことに付帯するオーバーヘッドを含まない。したがって、要求されるジャンプ命令の数に応じて、DMAコントローラの効率は、データ転送であるその動作の割合の観点から、シーケンス式リストのものに近づくことができる。また、図6Aおよび6Bの右列に図示されるように、ハイブリッドリンク式リストは、依然として、従来のリンク式リストのジャンプ機能性の全てを提供する。
ハイブリッドリンク式リストはまた、記述子のブロックに作用することによって、効率を改善する能力を提供する。いくつかの実施形態によると、かつ図2に戻って参照すると、記述子の連続ブロックは、DMAコントローラ130の効率を改善するために、メインデータメモリ内に記憶されるハイブリッドリンク式リストからロードされ、記述子キャッシュ290内にキャッシュされることができる。キャッシュされた記述子ブロックは、メインデータメモリ内に実装されるハイブリッドリンク式リストから、1度にn個の記述子をフェッチすることによって形成される。キャッシュされる記述子ブロックのサイズ(n)は、ハイブリッドリンク式リスト内で遭遇した、または遭遇することが予期される、バッファ記述子の連続ブロックのサイズに基づいて、調節されることができる。DMAコントローラ130による記述子ブロックのキャッシュは、コントローラが、実行されるべき次の記述子をメインメモリ120内に記憶されるハイブリッドリンク式リストから読み出すために、データ転送を中断する必要なく、データの複数のブロックを効率的に転送することを可能にする。
DMAコントローラ130は、ジャンプ記述子に遭遇するまで、記述子キャッシュ290内に記憶される記述子を連続して実行する。記述子の実行に先立って、DMAコントローラ130は、記述子の制御フィールドにクエリを行い、バッファ記述子またはジャンプ記述子を含有するかどうかを判定する。ジャンプ記述子に記述子キャッシュ290内で遭遇すると、DMAコントローラの制御ユニット285は、記述子キャッシュ290をフラッシュする。DMAコントローラは、次いで、メインデータメモリ210内に記憶されるハイブリッドリンク式リストからn個のエントリとともにキャッシュを再ロードし、ジャンプ記述子によって規定されたアドレスを開始する。本時点において、DMAコントローラ130は、キャッシュ内のエントリの実行を再開し、第1のエントリから開始し、次いで、記述子キャッシュ290内のエントリの全てが、DMAコントローラ130によって処理される、または別のジャンプ記述子に遭遇するまで、連続して進められる。このように、ハイブリッドリンク式リストの実施形態は、シーケンス式リストおよびリンク式リストの両方の能力および利点を提供する。ハイブリッドリンク式リストは、従来のシーケンス式リストおよび従来のリンク式リストによって提供されるデータ構造のスペクトル全体を生成するために使用されることができる。
ユーザはさらに、チャネルによって転送されるべきデータの特性に基づいて、DMAコントローラの各チャネルを個々に構成することによって、ハイブリッドリンク式リストによって提供される柔軟性から恩恵を受け得る。例えば、チャネルが、主に、ストリーミングデータを転送するために使用されるであろうことが既知である場合、ユーザは、そのチャネルのためにキャッシュされるべき記述子ブロックのサイズを調節することができる。ストリーミングデータの転送は、メモリの連続ブロックの多数の連続転送から成る傾向があるため、ストリーミングデータ転送のために使用されるであろうチャネルは、比較的に低頻度キャッシュフラッシュが要求されるであろうことから、より大きい記述子ブロックを使用するように調節されることができる。しかしながら、パケットデータが転送されているとき、そのようなデータは、ピンポンおよび環状バッファ等のポインタベースの読み出しパターンを使用して頻繁に転送される、メモリのより小さいブロックから成る傾向がある。この場合、チャネルは、より小さい記述子ブロックを使用するようにカスタマイズされることができ、さらに、利用される読み出しパターンによって使用されるバッファのサイズと一致する、記述子ブロックサイズを使用することができる。
種々のハイブリッドリンク式リスト実施形態は、特に、有意な数のシーケンス式転送命令を含む傾向がある、ストリーミングデータフローを転送するために非常に良好である、DMAコントローラを設定することを可能にする。ハイブリッドリンク式リストは、従来のシーケンス式リストの効率を伴って、実行されるべきシーケンス式命令のそのようなブロックを可能にする。しかしながら、ハイブリッドリンク式リストは、依然として、DMAコントローラが、記述子データ構造によって定義される読み出しパターンを実行するためにプログラムされることを可能にすることによって、従来のリンク式リストの全柔軟性を提供する。加えて、ハイブリッドリンク式リストは、従来のリンク式リストDMAコントローラによって提供される効率を改善しながら、これらの能力を提供する。柔軟性かつ効率的である、解決策のための要件は、現代のデバイスにおけるリアルタイムデータ転送の要件を前提として、特に重要である。
ハイブリッドリンク式リストの実施形態の前述の説明に照らして、従来のシーケンス式およびリンク式リストに優るいくつかの別々の利点が、明白である。ハイブリッドリンク式リストは、従来のリンク式リストより小さい記述子を利用し、シーケンス式リストのものに匹敵する効率を提供する。従来のリンク式リストと異なり、ハイブリッドリンク式リストは、より高速の読み出しのために、記述子の連続ブロックをキャッシュすることによって、記述子を連続して実行するという事実を利用することができる。ブロック内の記述子の取扱はまた、全ての記述子を個々に処理するのとは対照的に、DMAコントローラによるバス転送の効率を改善する。これらの利点は全て、リンク式リストおよびシーケンス式リストの両方の正確な機能性を提供するための能力を維持しながら提供される。最後に、ハイブリッドリンク式リストは、チャネルが、転送されるデータの特性に基づいて、より従来のシーケンス式リストまたは従来のリンク式リストのように挙動するように、チャネル毎ベースにおいて、DMAコントローラの動作をカスタマイズする能力を提供する。
Claims (21)
- DMAコントローラであって、
前記DMAコントローラは、前記DMAコントローラと結合されたバスを経由して、データ転送を行うように構成されている制御ユニットを備え、
前記制御ユニットはさらに、メモリ内に記憶されたDMA命令のうちの1つ以上のリストを使用して、複数のデータ転送を行うように構成され、前記制御ユニットは、アドレス情報を各リストエントリから読み取り、前記アドレス情報は、各リストエントリ内の少なくとも1ビットに基づいて、バッファポインタまたはジャンプポインタのいずれかであると判定される、DMAコントローラ。 - DMA命令のキャッシュをさらに備え、前記制御ユニットは、リストエントリのブロックを前記キャッシュの中にロードし、前記制御ユニットは、前記キャッシュ内に記憶されたDMA命令を連続して実行する、請求項1に記載のDMAコントローラ。
- 前記制御ユニットは、前記実行されるべきキャッシュエントリがジャンプポインタとして識別されると、前記キャッシュをフラッシュする、請求項2に記載のDMAコントローラ。
- 各リストエントリは、第1および第2のビットフィールドを備え、前記第1のビットフィールドは、前記アドレス情報を記憶し、前記第2のビットフィールドは、前記アドレス情報がバッファポインタまたはジャンプポインタを提供するかどうかを示す、前記1つ以上のビットを記憶する、請求項1に記載のDMAコントローラ。
- 前記バッファポインタは、前記コントローラによって転送されるべきデータメモリの連続ブロックの始まりを識別する、開始アドレスを備える、請求項1に記載のDMAコントローラ。
- 前記バッファポインタはさらに、終了アドレスを備え、前記開始アドレスおよび前記終了アドレスは、前記転送されるべきデータメモリの連続ブロックを規定する、請求項5に記載のDMAコントローラ。
- 前記バッファポインタはさらに、前記転送されるべきデータメモリの連続ブロックのサイズを規定する、バッファ深度値を備える、請求項5に記載のDMAコントローラ。
- DMAコントローラによってデータを転送するための方法であって、前記方法は、
メモリ内に、DMA命令のセットをリストとして記憶することであって、前記リスト内の各エントリは、前記エントリのタイプを識別する、少なくとも1ビットを備える、ことと、
DMA命令を前記リストから読み出すことと、
前記少なくとも1ビットに基づいて、前記読み出されたDMA命令のタイプを判定することであって、前記DMA命令は、バッファ記述子またはジャンプ記述子のいずれかであると判定される、ことと、
DMA命令が、バッファ記述子であると判定される場合、前記バッファ記述子によって規定されたメモリ内のアドレスによって規定されたデータを読み出すことと、
DMA命令が、ジャンプ記述子であると判定される場合、前記ジャンプ記述子によって規定された前記リスト内の場所におけるDMA命令にジャンプすることと
を含む、方法。 - リストエントリのブロックをキャッシュ内に記憶することと、
前記キャッシュ内に記憶されるリストエントリを連続して実行することと
をさらに含む、請求項8に記載の方法。 - 前記実行されるべき次のキャッシュエントリが、ジャンプ記述子として識別されると、前記キャッシュをフラッシュすることをさらに含む、請求項9に記載の方法。
- 各リストエントリは、第1および第2のビットフィールドを備え、前記第1のビットフィールドは、バッファポインタまたはジャンプポインタのいずれかを記憶し、前記第2のビットフィールドは、前記第1のビットフィールドがバッファポインタまたはジャンプポインタを提供するかどうかを示す、前記1つ以上のビットを記憶する、請求項8に記載の方法。
- 前記バッファポインタは、前記コントローラによって転送されるべきデータメモリの連続ブロックの始まりを識別する、開始アドレスを備える、請求項8に記載の方法。
- 前記バッファポインタはさらに、終了アドレスを備え、前記開始アドレスおよび前記終了アドレスは、前記転送されるべきデータメモリの連続ブロックを規定する、請求項12に記載の方法。
- 前記バッファポインタはさらに、前記転送されるべきデータメモリの連続ブロックのサイズを規定する、バッファ深度を備える、請求項12に記載の方法。
- プログラム命令を記憶する非一過性コンピュータアクセス可能メモリ媒体であって、前記プログラム命令は、
メモリ内に、DMA命令のセットをリストとして記憶することであって、前記リスト内の各エントリは、前記エントリのタイプを識別する、少なくとも1ビットを備える、ことと、
DMA命令を前記リストから読み出すことと、
前記少なくとも1ビットに基づいて、前記読み出されたDMA命令のタイプを判定することであって、前記DMA命令は、バッファポインタまたはジャンプポインタのいずれかであると判定される、ことと、
DMA命令が、バッファポインタであると判定される場合、前記バッファポインタによって規定されたメモリ内のアドレスによって規定されたデータを読み出すことと、
DMA命令が、ジャンプポインタであると判定される場合、前記ジャンプポインタによって規定された前記リスト内の場所におけるDMA命令にジャンプすることと
を行うように実行可能である、メモリ媒体。 - 前記プログラム命令はさらに、
リストエントリのブロックをキャッシュ内に記憶することと、
前記キャッシュ内に記憶されるリストエントリを連続して実行することと
を行うように実行可能である、請求項15に記載のメモリ媒体。 - 前記プログラム命令はさらに、前記実行されるべきキャッシュエントリがジャンプポインタとして識別されると、前記キャッシュをフラッシュするように実行可能である、請求項16に記載のメモリ媒体。
- 各リストエントリは、第1および第2のビットフィールドを備え、前記第1のビットフィールドは、バッファポインタまたはジャンプポインタのいずれかを記憶し、前記第2のビットフィールドは、前記第1のビットフィールドがバッファポインタまたはジャンプポインタを提供するかどうかを示す、前記1つ以上のビットを記憶する、請求項15に記載のメモリ媒体。
- 前記バッファポインタは、前記コントローラによって転送されるべきデータメモリの連続ブロックの始まりを識別する、開始アドレスを備える、請求項15に記載のメモリ媒体。
- 前記バッファポインタはさらに、終了アドレスを備え、前記開始アドレスおよび前記終了アドレスは、前記転送されるべきデータメモリの連続ブロックを規定する、請求項19に記載のメモリ媒体。
- 前記バッファポインタはさらに、前記転送されるべきデータメモリの連続ブロックのサイズを規定する、バッファ深度を備える、請求項19に記載のメモリ媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361812873P | 2013-04-17 | 2013-04-17 | |
US61/812,873 | 2013-04-17 | ||
US14/254,256 US20140317333A1 (en) | 2013-04-17 | 2014-04-16 | Direct Memory Access Controller with Hybrid Scatter-Gather Functionality |
US14/254,256 | 2014-04-16 | ||
PCT/US2014/034445 WO2014172516A1 (en) | 2013-04-17 | 2014-04-17 | Direct memory access controller with hybrid scatter-gather functionality |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016520905A true JP2016520905A (ja) | 2016-07-14 |
Family
ID=51729921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016509091A Pending JP2016520905A (ja) | 2013-04-17 | 2014-04-17 | ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140317333A1 (ja) |
JP (1) | JP2016520905A (ja) |
CN (1) | CN105122228A (ja) |
TW (1) | TW201510730A (ja) |
WO (1) | WO2014172516A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2520729A (en) | 2013-11-29 | 2015-06-03 | Ibm | Data processing apparatus and method |
US9531641B2 (en) * | 2014-07-29 | 2016-12-27 | Oracle International Corporation | Virtual output queue linked list management scheme for switch fabric |
US10027602B2 (en) * | 2014-07-29 | 2018-07-17 | Oracle International Corporation | Packet queue depth sorting scheme for switch fabric |
US10169271B1 (en) * | 2014-10-28 | 2019-01-01 | Xilinx, Inc. | Direct memory access descriptor |
US10048878B2 (en) | 2015-06-08 | 2018-08-14 | Samsung Electronics Co., Ltd. | Nonvolatile memory module and storage system having the same |
US9910798B2 (en) | 2015-10-05 | 2018-03-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Storage controller cache memory operations that forego region locking |
US9910797B2 (en) * | 2015-10-05 | 2018-03-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Space efficient formats for scatter gather lists |
US10241946B2 (en) | 2017-01-18 | 2019-03-26 | Nxp Usa, Inc. | Multi-channel DMA system with command queue structure supporting three DMA modes |
CN109725936B (zh) | 2017-10-30 | 2022-08-26 | 上海寒武纪信息科技有限公司 | 扩展计算指令的实现方法以及相关产品 |
US10592250B1 (en) * | 2018-06-21 | 2020-03-17 | Amazon Technologies, Inc. | Self-refill for instruction buffer |
US20210098001A1 (en) | 2018-09-13 | 2021-04-01 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US11023400B1 (en) | 2020-01-20 | 2021-06-01 | International Business Machines Corporation | High performance DMA transfers in host bus adapters |
CN111831595A (zh) * | 2020-06-30 | 2020-10-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种dma传输方法及相关装置 |
CN115080464B (zh) * | 2022-06-24 | 2023-07-07 | 海光信息技术股份有限公司 | 数据处理方法和数据处理装置 |
US12008368B2 (en) | 2022-09-21 | 2024-06-11 | Amazon Technologies, Inc. | Programmable compute engine having transpose operations |
CN116578391B (zh) * | 2023-07-08 | 2023-09-26 | 北京云豹创芯智能科技有限公司 | 描述符表读取方法及模块、后端设备、介质、设备、芯片 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0530A (ja) | 1991-01-22 | 1993-01-08 | Sanden Corp | 農業用空調システム |
US5644784A (en) * | 1995-03-03 | 1997-07-01 | Intel Corporation | Linear list based DMA control structure |
US6202107B1 (en) * | 1998-11-19 | 2001-03-13 | Sun Microsystems, Inc. | Host controller interface descriptor fetching unit |
US6842457B1 (en) * | 1999-05-21 | 2005-01-11 | Broadcom Corporation | Flexible DMA descriptor support |
US6782465B1 (en) * | 1999-10-20 | 2004-08-24 | Infineon Technologies North America Corporation | Linked list DMA descriptor architecture |
US20050060441A1 (en) * | 2001-03-27 | 2005-03-17 | Schmisseur Mark A. | Multi-use data access descriptor |
US7043518B2 (en) * | 2003-07-31 | 2006-05-09 | Cradle Technologies, Inc. | Method and system for performing parallel integer multiply accumulate operations on packed data |
US7325122B2 (en) * | 2004-02-20 | 2008-01-29 | International Business Machines Corporation | Facilitating inter-DSP data communications |
US7415549B2 (en) * | 2005-09-27 | 2008-08-19 | Intel Corporation | DMA completion processing mechanism |
TWI368136B (en) * | 2008-04-21 | 2012-07-11 | Ralink Technology Corp | Memory allocation and access method and device using the same |
-
2014
- 2014-04-16 US US14/254,256 patent/US20140317333A1/en not_active Abandoned
- 2014-04-17 JP JP2016509091A patent/JP2016520905A/ja active Pending
- 2014-04-17 TW TW103114073A patent/TW201510730A/zh unknown
- 2014-04-17 WO PCT/US2014/034445 patent/WO2014172516A1/en active Application Filing
- 2014-04-17 CN CN201480020834.7A patent/CN105122228A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN105122228A (zh) | 2015-12-02 |
TW201510730A (zh) | 2015-03-16 |
WO2014172516A1 (en) | 2014-10-23 |
US20140317333A1 (en) | 2014-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016520905A (ja) | ハイブリッド分散・集積機能性を有するダイレクトメモリアクセスコントローラ | |
KR101923661B1 (ko) | 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스 | |
JP6768928B2 (ja) | アドレスを圧縮するための方法及び装置 | |
JP5603507B2 (ja) | ディレクトリベースのマルチコアアーキテクチャ上におけるキャッシュ状態の移動の加速 | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
US8661199B2 (en) | Efficient level two memory banking to improve performance for multiple source traffic and enable deeper pipelining of accesses by reducing bank stalls | |
US9104532B2 (en) | Sequential location accesses in an active memory device | |
US20140136811A1 (en) | Active memory device gather, scatter, and filter | |
US20090287859A1 (en) | DMA Engine | |
US20090287857A1 (en) | Virtual Memory Direct Access (DMA) Channel Technique with Multiple Engines for DMA Controller | |
KR101789190B1 (ko) | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 | |
US20190026111A1 (en) | Dual data streams sharing dual level two cache access ports to maximize bandwidth utilization | |
CN111143234A (zh) | 存储设备、包括这种存储设备的系统及其操作方法 | |
EP3695318B1 (en) | Servicing cpu demand requests with inflight prefetches | |
US20200394038A1 (en) | Look up table with data element promotion | |
US20040148606A1 (en) | Multi-thread computer | |
JP2006338538A (ja) | ストリームプロセッサ | |
TW201721401A (zh) | 主機介面控制器以及儲存裝置控制方法 | |
JP5901787B2 (ja) | 半導体装置及びキャッシュメモリへのデータ先読み方法 | |
CN115826872A (zh) | 完全硬件卸载的NVMe存储加速系统 | |
WO2020243127A1 (en) | Histogram operation | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
US6782470B1 (en) | Operand queues for streaming data: A processor register file extension | |
US20140258639A1 (en) | Client spatial locality through the use of virtual request trackers | |
CN117631974A (zh) | 跨越基于存储器的通信队列的多信道接口的存取请求重新排序 |