JP2023058030A - 自動ダイレクトメモリアクセスデータフォーマットのためのハードウェアシステム - Google Patents
自動ダイレクトメモリアクセスデータフォーマットのためのハードウェアシステム Download PDFInfo
- Publication number
- JP2023058030A JP2023058030A JP2022163626A JP2022163626A JP2023058030A JP 2023058030 A JP2023058030 A JP 2023058030A JP 2022163626 A JP2022163626 A JP 2022163626A JP 2022163626 A JP2022163626 A JP 2022163626A JP 2023058030 A JP2023058030 A JP 2023058030A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory access
- direct memory
- payload
- target destination
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4013—Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
Abstract
【課題】データ転送の前にダイレクトメモリアクセス(DMA)チャネルを適切に構成するハードウェアDMAコントローラを提供する。【解決手段】ハードウェアDMAコントローラの処理回路要素は、入力ポートを介して電子デバイスからヘッダー及びペイロードを含むデータを受信し、ヘッダーを解析してレジスタ長と入力データフォーマットとを含むデータパラメータを判定し、データパラメータに基づきデータのためのターゲット宛先を選択する。処理回路要素はまた、トランザクション長に基づきターゲット宛先内のメモリを割り当て、データパラメータに基づきダイレクトメモリアクセスのためにペイロードをフォーマットし、フォーマットされたペイロードをダイレクトメモリアクセスを用いて出力ポートを介しターゲット宛先内の割り当てられたメモリ内に格納するために転送する。【選択図】図5
Description
ダイレクトメモリアクセス(DMA)は、中央処理装置(CPU)を介さずに直接データを転送するために用いられる。この転送が正しく機能するためには、データ転送の前にDMAチャネルを適切に構成する必要がある。
典型的には、或るプロトコルが入力データに適用されるとき、CPU上で実行されるソフトウェアは、そのプロトコルのヘッダーを解析し、入力データのペイロードを抽出し、データをトランスコードし、必要なデータ操作を実施し、入力データを宛先メモリ内の適切な場所に転送する。
入力データの長さ又は量は、典型的には、ソフトウェアに事前に知られておらず、そのため、ソフトウェアは、典型的には割り込み要求(IRQ)ルーチンにおいて、それを解析し、それに応じてジョブを設定し及び実行しなければならない。
解析、トランスコーディング、及びデータ操作のこのプロセスは、ハードウェア物理インタフェースとソフトウェアとの間の多数の相互作用を必要とする。これには、データのリアルタイム処理が必要となり、CPU処理時間が消費され、データを失うことなく物理インタフェースデータフローを維持するために大きなハードウェア先入れ先出し(FIFO)メモリを使用する必要がある。
一実装において、ハードウェアダイレクトメモリアクセスコントローラが提供される。ハードウェアダイレクトメモリアクセスコントローラは、ダイレクトメモリアクセスのために電子デバイスからデータを受け取るように構成される入力ポートと、データをダイレクトメモリアクセス転送のために提供するように構成される出力ポートと、入力ポート及び出力ポートに結合される処理回路要素とを含む。
処理回路要素は、ヘッダー及びペイロードを含むデータを入力ポートを介して電子デバイスから受け取り、トランザクション長及び入力データフォーマットを含むデータパラメータを判定するためにヘッダーを解析し、データパラメータに少なくとも部分的に基づいてデータのためのターゲット宛先を選択するように構成される。
処理回路要素はまた、トランザクション長に少なくとも部分的に基づいて、ターゲット宛先内でメモリを割り当てるように、及び、データパラメータに少なくとも部分的に基づいて、ダイレクトメモリアクセスのためにペイロードをフォーマットするように構成される。処理回路要素は更に、フォーマットされたペイロードを、ダイレクトメモリアクセスを用いて出力ポートを介してターゲット宛先内の割り当てられたメモリ内のストレージのために転送するように構成される。
別の実装において、ハードウェアダイレクトメモリアクセスコントローラを動作させるための方法が提供される。この方法は、入力ポートを介して電子デバイスからヘッダー及びペイロードを含むデータを受け取ることと、トランザクション長及び入力データフォーマットを含むデータパラメータを判定するためにヘッダーを解析することと、データパラメータに少なくとも部分的に基づいてデータのためのターゲット宛先を選択することとを含む。
この方法は、トランザクション長に少なくとも部分的に基づいて、ターゲット宛先内のメモリを割り当てることと、データパラメータに少なくとも部分的に基づいて、ダイレクトメモリアクセスのためにペイロードをフォーマットすることと、フォーマットされたペイロードを、ダイレクトメモリアクセスを用いて出力ポートを介してターゲット宛先内の割り当てられたメモリ内のストレージのために転送することとを更に含む。
更なる実装において、電子デバイスが提供される。電子デバイスは、電子デバイスと外部電子デバイスとの間でデータを転送するように構成される入力/出力ポートと、外部電子デバイスから受け取ったデータを格納するように構成されるメモリと、入力/出力ポート及びメモリに接続されるハードウェアダイレクトメモリアクセスコントローラとを含む。
ハードウェアダイレクトメモリアクセスコントローラは、入力/出力ポートを介して外部電子デバイスからヘッダー及びペイロードを含むデータを受け取り、トランザクショトランザクション長及び入力データフォーマットを含むデータパラメータを判定するためにヘッダーを解析し、データパラメータに少なくとも部分的に基づいて、データのためのメモリ内のターゲット宛先を選択するように構成される。
ハードウェアダイレクトメモリアクセスコントローラは更に、トランザクション長に少なくとも部分的に基づいてターゲット宛先内でメモリを割り当て、データパラメータに少なくとも部分的に基づいてダイレクトメモリアクセスのためのペイロードをフォーマットし、ダイレクトメモリアクセスを用いて、入力/出力ポートを介して、メモリ内に格納するためのフォーマットされたペイロードを転送するように構成される。
本開示の多くの態様は、以下の図面を参照すればより良く理解することができる。これらの図面に関連して幾つかの実装について説明するが、本開示は、本明細書で開示する実装に限定されない。そうではなく、あらゆる代替、変形、及び均等物を網羅することを意図している。
システムオンチップ(SoC)デバイスなどの現在の複雑な電子デバイスにおいて、デバイス内の任意のダイレクトメモリアクセス(DMA)動作を管理するために、マイクロコントローラ(MCU)が用いられる。MCUは、データペイロード及びメモリ内の位置を記述するDMA動作のためのジョブ記述子を生成して、格納動作においてデータを格納するか、又は読み出し動作においてデータを読み出す。周辺機器と内部メモリアクセスとの間のジッタバッファとしてFIFOが用いられる。
送信動作の場合、DMA又はMCUは、データをFIFOに複製し、周辺機器は、データをFIFOから複製し、それをインタフェース(例えば、シリアルペリフェラルインタフェース(SPI)、セキュアデジタル入出力(SDIO)、ユニバーサル非同期レシーバトランスミッタ(UART)など)を介して転送する。受信動作の場合、周辺機器は、データをインタフェースから受け取り、それをFIFOに格納する。MCU又はDMAモジュールは、データをストレージメモリに複製する。FIFOのこの動作は、ジッタを克服し、MCU又はDMAモジュールが、間隔をおいて機能することを可能にする。
MCUからデバイス内の専用ハードウェアDMAモジュールへ必要なDMA管理動作を転送することによって、MCUは、DMAルーチンに関与しない他の命令を処理するために利用可能となり、結果として、MCU効率が向上する。
図1は、ハードウェアDMAデータコントローラ140を含むデータを転送するためのシステム100の例示の実施例を図示する。本発明のこの例示の実施例では、電子システム100が、ホストマイクロコントローラ110と、システムオンチップ120とを含む。ここで、ホストマイクロコントローラ110及びシステムオンチップ120はいずれも、全体的な電子システム内で動作する電子デバイスの特定の例である。他の例示の実施例にはその他の電子デバイスが含まれ、これらはすべて本開示の範囲内である。
この例示の実施例では、マイクロコントローラ130、ハードウェアDMAコントローラ140、シリアルインタフェース150、RAMメモリ160、及びバス121が、システムオンチップ(SoC)120を構成する。この例示の実施例では、シリアルインタフェース150は更に、送信FIFO152と受信FIFO154を含む。
シリアルインタフェース150は、物理インタフェース122を介してホストマイクロコントローラ110と通信する。マイクロコントローラ130、ハードウェアDMAコントローラ140、シリアルインタフェース150、及びRAMメモリ160は、バス121を介して互いに通信する。この例示の実施例では、バス121に結合されるモジュールは、イニシエータモジュール又はターゲットモジュールである。イニシエータモジュールは、トランザクションを開始することができるバス上のノードである。マイクロコントローラ130は、イニシエータであり、一方、シリアルインタフェース150はターゲットである。これは、マイクロコントローラ130は、シリアルインタフェース150にアクセスし、そこからデータを読み書きすることができることを意味する。
ハードウェアDMAコントローラ140は、イニシエータ及びターゲットの両方として動作する。それは、マイクロコントローラ130がジョブを制御及び設定することを可能にするためのターゲットとして動作し、シリアルインタフェース150内の受信FIFO154からデータを読み出し、そのデータをRAMメモリ160に複製するために、イニシエータとして動作する。それはまた、RAMメモリ160からデータを読み出し、そのデータをシリアルインタフェース150内の送信FIFO152に複製するために、イニシエータとして動作する。
図1は、システムオンチップ120の非常に単純化された図であることに留意されたい。実際には、チップシステムオンチップ120は、様々なモジュールと周辺機器との間のデータバス及び制御インタフェースを含む、はるかに複雑なものであり、図1に図示されていない多数のモジュール及び周辺機器を含む。
この例示の実施例では、ハードウェアDMAコントローラ140は、マイクロコントローラ130からの直接制御を必要とすることなく、オンザフライDMAトランザクションデータ解析及び実行を実施する。ハードウェアDMAコントローラ140がシリアルインタフェース150から入力データを受け取ると、ハードウェアDMAコントローラ140は、入力データのヘッダーを解析して、トランザクション長及びデータフォーマットを検出し、RAMメモリ160内のターゲット宛先を設定し、RAMメモリ160内の正しいメモリプール内の空間を割り当て、入力データの任意の必要なビットスウィズリング(swizzling)及びトランスコーディングを実施する。
ハードウェアDMAコントローラ140内のこれらの動作により、事前定義された構成が必要とされなくなり、MCU処理要件及びそれに関連するソフトウェアフットプリントが低減され、冗長なソフトウェア割り当てが排除され、FIFOオーバーフローの可能性が回避される。
この例示の実施例では、ハードウェアDMAコントローラ140は、周辺機器からメモリ、メモリから周辺機器、及びメモリからメモリへのDMAトランザクションを実施するように構成される。
動作において、システムオンチップが、物理インタフェース122を介してホストマイクロコントローラ110からヘッダー及びペイロードを含む入力データを受け取る。物理インタフェース122は、シリアルペリフェラルインタフェース(SPI)、セキュアデジタル入力出力(SDIO)、汎用非同期レシーバ-トランスミッタ(UART)などを含むが、これらに限定されない、多種多様なデータインタフェースの任意のものを含む。入力物理データフォーマットは、大抵、データを受け取る前は、システムオンチップに既知ではない。ハードウェアDMAコントローラ140は、受信されるあり得る物理データフォーマットのリストから、入力データがどのフォーマットを含むかを判定する。
物理データフォーマットが判定されると、ハードウェアDMAコントローラ140は、入力データのヘッダーを解析して、RAMメモリ160にデータを格納する際に使用するための正しいデータパラメータを判定する。例えば、ハードウェアDMAコントローラ140は、格納されるデータのトランザクション長又は量、及び入力データのデジタルフォーマットを判定する。
ヘッダーに基づいて、ハードウェアDMAコントローラ140は、データのターゲット宛先を判定する。ハードウェアDMAコントローラ140は、入力データのヘッダーから抽出されたデータパラメータに基づいて、ターゲット宛先内でメモリを割り当てる。
これらのデータパラメータは、データフォーマット、データ量などを含む。ハードウェアDMAコントローラ140は、これらのデータパラメータに少なくとも部分的に基づいて、ターゲット宛先内のどこにデータを格納するかを判定する。メモリ割り当ては、データタイプに従ってメモリが区分されるターゲット宛先内のメモリパーティション間の選択を含む。
次いで、ハードウェアDMAコントローラ140は、データがRAMメモリ160に格納される前に、必要なビットスウィズリング又は要求されるデータトランスコーディングを判定し、ペイロードに対して必要なビットスウィズリング及び/又はデータトランスコーディングを実施する。
ビットスウィズリングは、特にコンピュータグラフィックス内で、他のベクトルの成分を任意に並べ替えて組み合わせることによってベクトルを構成するプロセスを説明するために用いられる用語又は技術である。また、トランスコーディングは、或るデータフォーマットから別のデータフォーマットにデータを変換するプロセスを説明するために用いられる技術用語である。図4は、ビッグエンディアンデータフォーマットとリトルエンディアンデータフォーマットとの間でデータをトランスコードする例を図示する。
データフォーマット、ビットスウィズリング、及びトランスコーディングは、ハードウェアDMAコントローラ140によってオンザフライで行われ、その結果、ハードウェアDMAコントローラ140は、依然として、入力データを受け取り、フォーマットし、ビットスウィズリング、及びトランスコーディングする一方で、ダイレクトメモリアクセスを用いて出力ポートを介して、ターゲット宛先内の割り当てられたメモリ内のストレージのために、フォーマットされたペイロードを転送する。これらのデータフォーマット、ビットスウィズリング、及びトランスコーディング動作は、典型的には、1ワード毎に、一度に32ビット又は64ビットで実施される。
図2は、ハードウェアDMAデータコントローラ220を含むデータを転送するためのシステム200の別の例示の実施例を図示する。本発明のこの例示の実施例では、電子システム200は、ホストプラットフォーム/マイクロコントローラ230と電子デバイス210を含む。この例示の実施例では、入力/出力(I/O)ポート222、ハードウェアDMAコントローラ220、メモリ224、及びネットワークプロセッサ/MCU226が、電子デバイス210を構成する。この例示の実施例では、電子システム200は更に、Wi-Fiアンテナ228を介して他の外部システムと通信するように構成される。
I/Oポート222は、物理インタフェース242を介してホスト230と通信する。I/Oポート222は、リンク241を介してハードウェアDMAコントローラ220とデータを交換し、ハードウェアDMAコントローラ220は、トランスコードされたデータを、リンク240を介してメモリ224と交換する。ハードウェアDMAコントローラ220はまた、リンク243を介してネットワークプロセッサ/MCU226にデータフォーマットを提供する。
図2は、電子デバイス210の非常に簡略化された図であることに留意されたい。実際には、電子デバイス210は、様々なモジュールと周辺機器との間のデータバス及び制御インタフェースを含んだ、はるかに複雑なものであり、図2に図示されていない多数のモジュール及び周辺機器を含む。
この例示の実施例では、ハードウェアDMAコントローラ220は、ネットワークプロセッサ/MCU226からの直接的な制御を必要とすることなく、オンザフライDMAトランザクションデータの解析及び実行を実施する。ハードウェアDMAコントローラ220は、I/Oポート222から入力データを受け取ると、入力データのヘッダーを解析して、トランザクション長及びデータフォーマットを検出し、メモリ224内のターゲット宛先を設定し、メモリ224内の正しいメモリプール内の空間を割り当て、入力データの任意の必要なビットスウィズリング及びトランスコーディングを実施し、任意選択で、データフラグメンテーション及びアグリゲーションのための拡張スキャッタギャザーモードを実施する。
ハードウェアDMAコントローラ220内のこれらの動作により、事前定義された構成が必要とされなくなり、MCU処理要件及びそれに関連するソフトウェアフットプリントが低減され、冗長なソフトウェア割り当てが排除され、FIFOオーバーフローの可能性が回避される。
この例示の実施例では、ハードウェアDMAコントローラ220は、周辺機器からメモリ、メモリから周辺機器、及びメモリからメモリへのDMAトランザクションを実施するように構成される。
動作において、電子デバイス210は、ホスト230からヘッダー及びペイロードを含む入力データを物理インタフェース242を介して受け取る。物理インタフェース242は、シリアルペリフェラルインタフェース(SPI)、セキュアデジタル入力出力(SDIO)、汎用非同期レシーバ-トランスミッタ(UART)などを含むがこれらに限定されない、多種多様なデータインタフェースの任意のものを含む。入力物理データフォーマットは、大抵、データを受け取る前に電子デバイス210に既知ではない。ハードウェアDMAコントローラ220は、受信されるあり得る物理データフォーマットのリストから、入力データがどのフォーマットを含むかを判定する。
物理データフォーマットが判定されると、ハードウェアDMAコントローラ220は、入力データのヘッダーを解析して、メモリ224にデータを格納する際に使用するための正しいデータパラメータを判定する。例えば、ハードウェアDMAコントローラ220は、格納されるデータのトランザクション長又は量、及び、入力データのデジタルフォーマットを判定する。
ヘッダーに基づいて、ハードウェアDMAコントローラ220は、データのターゲット宛先を判定する。このターゲット宛先は、メモリ224、外部メモリ(図示せず)、Wi-Fiアンテナ228を介してリンクされた外部デバイスなどであってもよい。ハードウェアDMAコントローラ220は、入力データのヘッダーから抽出されたデータパラメータに基づいて、ターゲット宛先内のメモリを割り当てる。
これらのデータパラメータは、データフォーマット、データ量などを含む。ハードウェアDMAコントローラ220は、これらのデータパラメータに少なくとも部分的に基づいて、ターゲット宛先内のどこにデータを格納するかを判定する。メモリ割り当ては、データタイプに従ってメモリが区分される、ターゲット宛先内のメモリパーティション間の選択を含む。任意選択で、ハードウェアDMAコントローラ220は、メモリからデータを受け取るときにデータアグリゲーションを実施し、メモリにデータを割り当てるときにデータフラグメンテーションを実施する。本発明の幾つかの例示の実施例において、このアグリゲーション及びフラグメンテーションは、ターゲット宛先とインタフェースするためのスキャッタギャザーモードとして実行される。
次いで、ハードウェアDMAコントローラ220は、データがメモリ224に格納される前に、必要なビットスウィズリング又はデータトランスコーディングを判定し、必要なビットスウィズリング及び/又はデータトランスコーディングをペイロードに対して実施する。
ビットスウィズリングは、特にコンピュータグラフィックス内で、他のベクトルの成分を任意に並べ替えて組み合わせることによってベクトルを構成するプロセスを説明するために用いられる用語又は技術である。また、トランスコーディングは、或るデータフォーマットから別のデータフォーマットにデータを変換するプロセスを説明するために用いられる技術用語である。図4は、ビッグエンディアンデータフォーマットとリトルエンディアンデータフォーマットとの間でデータをトランスコードする例を図示する。
データフォーマット、ビットスウィズリング、及びトランスコーディングは、ハードウェアDMAコントローラ220によってオンザフライで行われ、その結果、ハードウェアDMAコントローラ220は、依然として、入力データを受け取り、フォーマットし、ビットスウィズリング、及びトランスコーディングする一方で、ダイレクトメモリアクセスを用いて出力ポートを介してターゲット宛先内の割り当てられたメモリ内のストレージのために、フォーマットされたペイロードを転送する。これらのデータフォーマット、ビットスウィズリング、及びトランスコーディング動作は、典型的には、1ワード毎に、一度に32ビット又は64ビットで実施される。
図3は、ハードウェアDMAデータコントローラ340を含むデータを転送するためのデバイス300の別の例示の実施例を図示する。本発明のこの例示の実施例では、電子システム300が、外部コントローラ/デバイス310と電子デバイス320とを含む。電子デバイス320は、物理インタフェース312を介して外部コントローラ/デバイス310からデータを受け取るように構成される。この例示の実施例では、電子デバイス320は、ハードウェアDMAコントローラ340及びメモリ360を含む。ハードウェアDMAコントローラ340は、ヘッダー解析モジュール344及びデータ処理モジュール346~352を含む。
この例示の実施例では、ヘッダー処理モジュール344及びデータ処理モジュール346~352は、本明細書で説明するように動作するようにハードウェアDMAコントローラ340内の処理回路要素に指示するように構成される命令モジュールである。幾つかのデータ処理モジュール346~352は、任意選択であり、ハードウェアDMAコントローラ340によって実施されるすべてのDMA動作において用いられるわけではない。図3は、物理インタフェース312を介して外部コントローラ/デバイス310から電子デバイス320によって受け取られたデータに対してハードウェアDMAコントローラ340によって実施されるデータ操作を図示する。ハードウェアDMAコントローラ340は、図2に関して上述したようなDMA動作に必要な他の機能も実施することに留意されたい。
ヘッダー解析モジュール344は、ハードウェアDMAコントローラ340内の処理回路要素に、入力データのヘッダー342を解析して、メモリ360にデータを格納する際に使用するための正しいデータパラメータを判定するように指示する。例えば、ヘッダー解析モジュール344は、格納されるデータのトランザクション長、又は量、及び、入力データのデジタルフォーマットを判定する。
ヘッダー解析モジュール344によって判定されたデータパラメータに少なくとも部分的に基づいて、ハードウェアDMAコントローラ340は、データがメモリ360に格納される前に必要な任意のビットスウィズリング又は必要とされるデータトランスコーディングを判定し、ペイロードに対して必要なビットスウィズリング及び/又はデータトランスコーディングを実施する。
ビットスウィズリングは、特にコンピュータグラフィックス内で、他のベクトルの成分を任意に並べ替えて組み合わせることによってベクトルを構成するプロセスを記述する用語又は技術である。また、トランスコーディングは、或るデータフォーマットから別のデータフォーマットにデータを変換するプロセスを記述する技術の用語である。図4は、ビッグエンディアンデータフォーマットとリトルエンディアンデータフォーマットとの間でデータをトランスコードする例を図示する。
必要に応じて、データビットスウィズリングモジュール346は、ハードウェアDMAコントローラ340内の処理回路要素に、必要なビットスウィズリングを実施するように指示する。また、必要に応じて、データトランスコーディングモジュール348は、ハードウェアDMAコントローラ340内の処理回路要素に、必要なデータトランスコーディングを実施するように指示する。データアグリゲーションモジュール350は、ハードウェアDMAコントローラ340内の処理回路要素に、任意のタイプのスキャッタギャザーメモリ動作における任意の必要なデータアグリゲーションを実施するように指示する。データフラグメンテーションモジュール352は、ハードウェアDMAコントローラ340内の処理回路要素に、任意のタイプのスキャッタギャザーメモリ動作において任意の必要なデータフラグメンテーションを実施するように指示する。
ペイロードがストレージのために適切にフォーマットされると、ハードウェアDMAコントローラ340は、ダイレクトメモリアクセスを用いて出力ポートを介してターゲット宛先360内の割り当てられたメモリ内のストレージのために、フォーマットされたペイロードを転送する。
図4は、2つの異なるデータフォーマットの例示のデータフォーマットを図示する。図4は、ハードウェアDMAコントローラ340内の処理回路要素によって実施されるデータフォーマット400の例を図示する。
この例では、ペイロード内のデータは、ビッグエンディアンフォーマット又はリトルエンディアンフォーマットのいずれかであり得る。図4は、バイト[0xAA]、短い[0xAABB]、及び長い[0xAABBCCDD]長を有するデータのためのこれらの2つのフォーマットを図示する。バイト長のデータの場合、ビッグエンディアン402とリトルエンディアン404のデータに差はない。しかしながら、長さの短い及び長さの長いデータでは、データフォーマットは、データの個々のバイトを格納する順序が異なる。
短い長さのデータの場合、データ[0xAABB]は、ビッグエンディアン406データとしてメモリ位置順[AA]、[BB]に格納され、同じデータが、リトルエンディアンデータ408としてメモリ位置順[BB]、[AA]に格納される。同様に、長さの長いデータの場合、データ[0xAABBCCDD]は、ビッグエンディアン410データとしてメモリ位置順[AA]、[BB]、[CC]、[DD]に格納され、同じデータが、リトルエンディアン412データとしてメモリ位置順[DD]、[CC]、[BB]、[AA]に格納される。
ハードウェアDMAコントローラ340は、入力データのフォーマット及びメモリ360内のデータのフォーマットに基づいて、必要に応じてビッグエンディアンフォーマットとリトルエンディアンフォーマットとの間のデータをフォーマットする。図4はデータフォーマットの一例を図示する。ハードウェアDMAコントローラ340は、必要に応じて、データフォーマット間で他の異なるデータフォーマット方法を実施するように構成される。
図5は、ハードウェアDMAコントローラ340を動作させるための例示の方法を図示する。この例示の方法において、ハードウェアDMAコントローラ340内の処理回路要素が、以下の動作を実施するために様々なモジュールによって制御される。
この例示の実施例では、ハードウェアDMAコントローラ340は、電子デバイス310から、ヘッダー及びペイロードを含むデータを入力ポートを介して受け取る(動作500)。ハードウェアDMAコントローラ340は、ヘッダーを解析して、トランザクション長及び入力データフォーマットを含むデータパラメータを判定する(動作502)
ハードウェアDMAコントローラ340は、データパラメータに少なくとも部分的に基づいて、データのターゲット宛先360を選択する(動作504)。ハードウェアDMAコントローラ340は、データのターゲット宛先360内のメモリを割り当てる(動作506)。
ハードウェアDMAコントローラ340は、データパラメータに少なくとも部分的に基づいてダイレクトメモリアクセスのためのペイロードをフォーマットする(動作508)。例示の実施例において、このフォーマット動作は、チャンク単位又は単語単位で実施され、ペイロード全体が受信されるまで繰り返される。次いで、ハードウェアDMAコントローラ340は、ダイレクトメモリアクセスを用いて出力ポートを介してターゲット宛先360内の割り当てられたメモリ内のストレージのために、フォーマットされたペイロードを転送する(動作510)。例示の実施例において、この転送動作は、チャンク又はワード単位でも実施され、ペイロード全体が格納されるまで繰り返される。
図6は、電子デバイス320内のハードウェアDMAコントローラ600の例示の実施例を図示する。上述のように、ハードウェアDMAコントローラ600は、多種多様な構成のうちの任意のものをとることができる。ここで、ASICとして実装される電子デバイス320内のハードウェアDMAコントローラ600のための例示の構成が提供される。幾つかの実施例において、ハードウェアDMAコントローラ600は、システムオンチップ(SoC)内のモジュールである。
この例示の実施例では、ハードウェアDMAコントローラ600は、入力ポート610と、処理回路要素620と、出力ポート630と、内部ストレージシステム640とを含む。1つの例示の構成において、入力ポート610は、メモリに格納するために電子デバイス310から入力を受け取るように構成される回路要素を含む。出力ポート630は、ストレージシステム又はメモリ360にデータ及び命令を送るように構成される回路要素を含む。幾つかの実施例において、入力ポート610及び出力ポート630は、単一の入力/出力(I/O)ポートに組み合わされる。
処理回路要素620は、上述のようにハードウェアDMAコントローラ340のタスクを実施するように構成される電子回路要素を含む。幾つかの実施例において、処理回路要素620は、複合電子デバイス320に埋め込まれてもよい。処理回路要素620の例は、汎用中央処理装置、特定用途向けプロセッサ、及び論理デバイス、並びに、任意の他のタイプの処理デバイス、それらの組み合わせ又は変形を含む。処理回路要素620は、単一の処理デバイス内に実装することができるが、プログラム命令を実行する際に協働する複数の処理デバイス又はサブシステムにわたって分散させることもできる。
例示の実施例において、ハードウェアDMAコントローラ600は、特定用途向けモジュールとして実装され、カスタム処理回路要素620が、ヘッダー解析モジュール621、データビットスウィズリングモジュール622、データトランスコーディングモジュール623、データアグリゲーションモジュール624、データフラグメンテーションモジュール625、及びメモリ割り当てモジュール626を含む1つ又は複数のハードウェアモジュールを介して、本明細書で説明される機能を実施するように提供される。
内部ストレージシステム640は、データを格納することができる任意の非一時的コンピュータ可読ストレージ媒体を含む。内部ストレージシステム640はまた、処理回路要素620によって用いられる物理データフォーマット、デジタルデータフォーマット、データバッファなどのリストを含む、1つ又は複数のデータベース、表、リスト、又は他のデータ構造を含む、様々なデータ構造650を含む。内部ストレージシステム640は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、又は他のデータなどの情報を格納するための任意の方法又は技術において実装される、揮発性及び不揮発性の、取外し可能及び取外し不可能な媒体を含むことができる。
内部ストレージシステム640は、単一のストレージデバイスとして実装することができるが、複数のストレージデバイス、サブシステム、又は相互に共同配置又は分散されたモジュールにわたって実装することもできる。内部ストレージシステム640は、処理回路要素620と通信することができるコントローラなどの付加的な要素を含むことができる。ストレージ媒体の例は、ランダムアクセスメモリ、読み出し専用メモリ、磁気ディスク、光ディスク、フラッシュメモリ、仮想メモリ及び非仮想メモリ、磁気カセット、磁気テープ、磁気ディスクストレージシステム又は他の磁気ストレージシステム、又は所望の情報を格納するために用いられ得、命令実行システムによってアクセスされ得る、任意の他の媒体、並びにそれらの任意の組合せ又は変形を含む。
この例示の実施例では、内部ストレージシステム640は、図1からの送信FIFO152及び受信FIFO154などの、1つ又は複数のFIFO660も含む。これらのFIFO660は、ジッタを克服し、ハードウェアDMAコントローラ600が間隔をおいて動作することを可能にするために用いられる。
処理回路要素620内のヘッダー処理モジュール621は、トランザクション長及び入力データフォーマットを含むデータパラメータを判定するために、データヘッダーを解析する。処理回路要素620内のデータビットスウィズリングモジュール622は、任意の必要なデータビットスウィズリングを実施する。処理回路要素620内のデータトランスコーディングモジュール623は、任意の必要なデータトランスコーディングを実施する。幾つかの例において、データトランスコーディングモジュール623は、図4に図示されるような任意のデータフォーマットも実施する。
処理回路要素620内のデータアグリゲーションモジュール624は、スキャッタギャザータイプモードで任意の必要なデータアグリゲーションを実施する。例えば、データアグリゲーションモジュール624は、複数のデータペイロードに対してデータアグリゲーションを実施する。
処理回路要素620内のデータフラグメンテーションモジュール625は、スキャッタギャザータイプモードで任意の必要なデータフラグメンテーションを実施する。例えば、データフラグメンテーションモジュール665は、ペイロードを複数のデータパーティションに区分することと、各データパーティションを別々に処理することと、複数のデータパーティションに対応するターゲット宛先内の複数のメモリ位置を割り当てることと、複数のデータパーティションの各々を複数のメモリ位置のうちの1つに格納することとによって、ペイロードに対してデータフラグメンテーションを実施する。
処理回路要素620内のメモリ割り当てモジュール626は、データのストレージのためにメモリを割り当てる。
含まれる説明及び図は、ベストモードをどのようにつくり、用いるかを当業者に教示するための特定の実施例を示す。本発明の原理を教示する目的で、幾つかの従来の態様は、単純化されるか又は省略されている。当業者であれば、本発明の範囲内にあるこれらの実施例からの変形を理解するであろう。また、当業者であれば、上述の特徴を様々な方式で組み合わせて複数の実施例を形成することができることを理解するであろう。その結果、本発明は、上述の特定の実施例に限定されるものではなく、特許請求の範囲及びその均等物によってのみ限定される。
Claims (20)
- ハードウェアダイレクトメモリアクセスコントローラであって、
ダイレクトメモリアクセスのために電子デバイスからデータを受け取るように構成される入力ポートと、
ダイレクトメモリアクセス転送のためのデータを提供するように構成される出力ポートと、
前記入力ポート及び前記出力ポートと結合される処理回路要素と、
を含み、
前記処理回路要素が、
前記入力ポートを介して前記電子デバイスからヘッダー及びペイロードを含むデータを受け取り、
トランザクション長と入力データフォーマットとを含むデータパラメータを判定するために前記ヘッダーを解析し、
前記データパラメータに少なくとも部分的に基づいて前記データのためのターゲット宛先を選択し、
前記トランザクション長に少なくとも部分的に基づいて前記ターゲット宛先内でメモリを割り当て、
前記データパラメータに少なくとも部分的に基づいてダイレクトメモリアクセスのために前記ペイロードをフォーマットし、
ダイレクトメモリアクセスを用いて、前記出力ポートを介して前記ターゲット宛先内の前記割り当てられたメモリ内に格納するために前記フォーマットされたペイロードを転送する、
ように構成される、
ハードウェアダイレクトメモリアクセスコントローラ。 - 請求項1に記載のハードウェアダイレクトメモリアクセスコントローラであって、前記処理回路要素が、前記データに対してビットスウィズリングを実施するように更に構成される、ハードウェアダイレクトメモリアクセスコントローラ。
- 請求項1に記載のハードウェアダイレクトメモリアクセスコントローラであって、前記処理回路要素が、スキャッタギャザーモードを用いて、前記ターゲット宛先内でメモリを割り当てるように更に構成される、ハードウェアダイレクトメモリアクセスコントローラ。
- 請求項3に記載のハードウェアダイレクトメモリアクセスコントローラであって、前記処理回路要素が、複数のデータペイロードに対してデータアグリゲーションを実施するように更に構成される、ハードウェアダイレクトメモリアクセスコントローラ。
- 請求項3に記載のハードウェアダイレクトメモリアクセスコントローラであって、前記処理回路要素が、
前記ペイロードを複数のデータパーティションに区分することと、
各データパーティションを別々に処理することと、
前記複数のデータパーティションに対応する前記ターゲット宛先内の複数のメモリロケーションを割り当てることと、
前記複数のデータパーティションの各々を前記複数のメモリロケーションのうちの1つに格納することと、
によって、前記ペイロードに対してデータフラグメンテーションを実施するように更に構成される、
ハードウェアダイレクトメモリアクセスコントローラ。 - 請求項1に記載のハードウェアダイレクトメモリアクセスコントローラであって、前記処理回路要素が、前記入力データフォーマットに少なくとも部分的に基づいて、前記ターゲット宛先内でメモリを割り当てるように更に構成される、ハードウェアダイレクトメモリアクセスコントローラ。
- 請求項1に記載のハードウェアダイレクトメモリアクセスコントローラであって、前記入力ポート及び前記出力ポートが共に入力/出力ポートを含む、ハードウェアダイレクトメモリアクセスコントローラ。
- ハードウェアダイレクトメモリアクセスコントローラを動作させるための方法であって、
ヘッダーとペイロードを含むデータを電子デバイスから入力ポートを介して受け取ることと、
トランザクション長と入力データフォーマットとを含むデータパラメータを判定するため前記ヘッダーを解析することと、
前記データパラメータに少なくとも部分的に基づいて前記データのためのターゲット宛先を選択することと、
前記トランザクション長に少なくとも部分的に基づいて、前記ターゲット宛先内でメモリを割り当てることと、
前記データパラメータに少なくとも部分的に基づいて、ダイレクトメモリアクセスのために前記ペイロードをフォーマットすることと、
ダイレクトメモリアクセスを用いて出力ポートを介して前記ターゲット宛先内の前記割り当てられたメモリ内に格納するために前記フォーマットされたペイロードを転送することと、
を含む、方法。 - 請求項8に記載の方法であって、前記処理回路要素が、前記データに対してビットスウィズリングを実施するように更に構成される、方法。
- 請求項8に記載の方法であって、前記処理回路要素が、スキャッタギャザーモードを用いて前記ターゲット宛先内でメモリを割り当てるように更に構成される、方法。
- 請求項10に記載の方法であって、前記処理回路要素が、複数のデータペイロードに対してデータアグリゲーションを実施するように更に構成される、方法。
- 請求項10に記載の方法であって、前記処理回路要素が、
前記ペイロードを複数のデータパーティションに区分することと、
各データパーティションを別々に処理することと、
前記複数のデータパーティションに対応する前記ターゲット宛先内の複数のメモリロケーションを割り当てることと、
前記複数のデータパーティションの各々を前記複数のメモリロケーションのうちの1つに格納することと、
によって、前記ペイロードに対してデータフラグメンテーションを実施するように更に構成される、
方法。 - 請求項8に記載の方法であって、前記処理回路要素が、前記入力データフォーマットに少なくとも部分的に基づいて、前記ターゲット宛先内でメモリを割り当てるように更に構成される、方法。
- 請求項8に記載の方法であって、前記入力ポート及び前記出力ポートが共に入力/出力ポートを含む、方法。
- 電子デバイスであって、
前記電子デバイスと外部電子デバイスとの間でデータを転送するように構成される入力/出力ポートと、
前記外部電子デバイスから受け取ったデータを格納するように構成されるメモリと、
前記入力/出力ポートと結合されるハードウェアダイレクトメモリアクセスコントローラと、
を含み、
前記ハードウェアダイレクトメモリアクセスコントローラが、
ヘッダーとペイロードとを含むデータを前記入力/出力ポートを介して前記外部電子デバイスから受け取り、
トランザクション長と入力データフォーマットとを含むデータパラメータを判定するために前記ヘッダーを解析し、
前記データパラメータに少なくとも部分的に基づいて、前記データのための前記メモリ内のターゲット宛先を選択し、
前記トランザクション長に少なくとも部分的に基づいて前記ターゲット宛先内の格納場所を割り当て、
前記データパラメータに少なくとも部分的に基づいてダイレクトメモリアクセスのために前記ペイロードをフォーマットし、
ダイレクトメモリアクセスを用いて前記入力/出力ポートを介して前記メモリ内に格納するために前記フォーマットされたペイロードを転送する、
ように構成される、
電子デバイス。 - 請求項15に記載の電子デバイスであって、前記ハードウェアダイレクトメモリアクセスコントローラが、前記データに対してビットスウィズリングを実施するように更に構成される、電子デバイス。
- 請求項15に記載の電子デバイスであって、前記ハードウェアダイレクトメモリアクセスコントローラが、スキャッタギャザーモードを用いて前記ターゲット宛先内でメモリを割り当てるように更に構成される、電子デバイス。
- 請求項17に記載の電子デバイスであって、前記ハードウェアダイレクトメモリアクセスコントローラが、複数のデータペイロードに対してデータアグリゲーションを実施するように更に構成される、電子デバイス。
- 請求項17に記載の電子デバイスであって、前記ハードウェアダイレクトメモリアクセスコントローラが、
前記ペイロードを複数のデータパーティションに区分することと、
各データパーティションを別々に処理することと、
前記複数のデータパーティションに対応する前記ターゲット宛先内の複数のメモリロケーションを割り当てることと、
前記複数のメモリ位置の各々を前記複数のデータパーティションの1つに格納することと、
によって、前記ペイロードに対してデータフラグメンテーションを実施するように更に構成される、電子デバイス。 - 請求項15に記載の電子デバイスであって、前記ハードウェアダイレクトメモリアクセスコントローラが、前記入力データフォーマットに少なくとも部分的に基づいて、前記ターゲット宛先内でメモリを割り当てるように更に構成される、電子デバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/499,522 | 2021-10-12 | ||
US17/499,522 US20230112720A1 (en) | 2021-10-12 | 2021-10-12 | Hardware system for automatic direct memory access data formatting |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023058030A true JP2023058030A (ja) | 2023-04-24 |
Family
ID=83691038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022163626A Pending JP2023058030A (ja) | 2021-10-12 | 2022-10-12 | 自動ダイレクトメモリアクセスデータフォーマットのためのハードウェアシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230112720A1 (ja) |
EP (1) | EP4167099A1 (ja) |
JP (1) | JP2023058030A (ja) |
CN (1) | CN115964316A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230342045A1 (en) * | 2022-04-21 | 2023-10-26 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for selecting devices in tiered memory |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5937170A (en) * | 1997-02-21 | 1999-08-10 | Vlsi Technology, Inc. | Data communications with processor-assertable addresses mapped to peripheral-accessible-addresses-times-command product space |
US20030097481A1 (en) * | 2001-03-01 | 2003-05-22 | Richter Roger K. | Method and system for performing packet integrity operations using a data movement engine |
US20030172189A1 (en) * | 2001-07-02 | 2003-09-11 | Globespanvirata Incorporated | Communications system using rings architecture |
US7707477B2 (en) * | 2005-09-29 | 2010-04-27 | Apple Inc. | Checksum calculation |
US20090296683A1 (en) * | 2008-05-27 | 2009-12-03 | Fujitsu Limited | Transmitting a protocol data unit using descriptors |
US10505747B2 (en) * | 2012-10-16 | 2019-12-10 | Solarflare Communications, Inc. | Feed processing |
US9916269B1 (en) * | 2016-04-14 | 2018-03-13 | Amazon Technologies, Inc. | Packet queueing for network device |
US11943207B2 (en) * | 2020-09-25 | 2024-03-26 | Intel Corporation | One-touch inline cryptographic data processing |
US20210117353A1 (en) * | 2020-12-23 | 2021-04-22 | Kishore Kasichainula | Methods and apparatus to transmit and/or receive data streams with a network interface controller |
US11467998B1 (en) * | 2021-03-16 | 2022-10-11 | Amazon Technologies, Inc. | Low-latency packet processing for network device |
US20220398282A1 (en) * | 2021-06-10 | 2022-12-15 | Fidelity Information Services, Llc | Systems and methods for multi-vendor storage infrastructure in a dashboard |
-
2021
- 2021-10-12 US US17/499,522 patent/US20230112720A1/en active Pending
-
2022
- 2022-10-10 CN CN202211235057.0A patent/CN115964316A/zh active Pending
- 2022-10-12 EP EP22201095.1A patent/EP4167099A1/en active Pending
- 2022-10-12 JP JP2022163626A patent/JP2023058030A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115964316A (zh) | 2023-04-14 |
US20230112720A1 (en) | 2023-04-13 |
EP4167099A1 (en) | 2023-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6813653B2 (en) | Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system | |
EP1358562B1 (en) | Method and apparatus for controlling flow of data between data processing systems via a memory | |
CA2069711C (en) | Multi-media signal processor computer system | |
US9996484B1 (en) | Hardware acceleration for software emulation of PCI express compliant devices | |
US8032686B2 (en) | Protocol translation in a data storage system | |
US20050235068A1 (en) | Computer system sharing an I/O device between logical partitions | |
US20220334975A1 (en) | Systems and methods for streaming storage device content | |
US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
US6684281B1 (en) | Fast delivery of interrupt message over network | |
US20130138841A1 (en) | Message passing using direct memory access unit in a data processing system | |
US11435958B2 (en) | Shared memory mechanism to support fast transport of SQ/CQ pair communication between SSD device driver in virtualization environment and physical SSD | |
US20210019261A1 (en) | Memory cache-line bounce reduction for pointer ring structures | |
JP2023058030A (ja) | 自動ダイレクトメモリアクセスデータフォーマットのためのハードウェアシステム | |
TW202238399A (zh) | 快速週邊組件互連裝置及其操作方法 | |
US20150268985A1 (en) | Low Latency Data Delivery | |
JPH06208548A (ja) | スマート・バス制御ユニット | |
US11029847B2 (en) | Method and system for shared direct access storage | |
US7216186B2 (en) | Controlling data flow between processor systems | |
WO2022222040A1 (zh) | 图形处理器的缓存访问方法、图形处理器及电子设备 | |
Shim et al. | Design and implementation of initial OpenSHMEM on PCIe NTB based cloud computing | |
US6892253B2 (en) | Maintaining remote queue using two counters in transfer controller with hub and ports | |
US20220365729A1 (en) | Shared memory mechanism to support fast transport of sq/cq pair communication between ssd device driver in virtualization environment and physical ssd | |
CN116483259A (zh) | 一种数据处理方法以及相关装置 | |
RU2643622C1 (ru) | Вычислительный модуль | |
US5666556A (en) | Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit |