JP2018537800A - メモリアクセスコマンドの転送記述子 - Google Patents

メモリアクセスコマンドの転送記述子 Download PDF

Info

Publication number
JP2018537800A
JP2018537800A JP2018543080A JP2018543080A JP2018537800A JP 2018537800 A JP2018537800 A JP 2018537800A JP 2018543080 A JP2018543080 A JP 2018543080A JP 2018543080 A JP2018543080 A JP 2018543080A JP 2018537800 A JP2018537800 A JP 2018537800A
Authority
JP
Japan
Prior art keywords
instruction
transfer descriptor
transfer
memory device
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018543080A
Other languages
English (en)
Other versions
JP2018537800A5 (ja
JP6888019B2 (ja
Inventor
ロー,マンキット
Original Assignee
ビバンテ コーポレーション
ビバンテ コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ビバンテ コーポレーション, ビバンテ コーポレーション filed Critical ビバンテ コーポレーション
Publication of JP2018537800A publication Critical patent/JP2018537800A/ja
Publication of JP2018537800A5 publication Critical patent/JP2018537800A5/ja
Application granted granted Critical
Publication of JP6888019B2 publication Critical patent/JP6888019B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

コンピュータシステムは、命令コード、ソースタイプ、ソースアドレス、デスティネーションタイプ、およびデスティネーションアドレスを含む命令を処理する。ソースタイプおよびデスティネーションタイプは、メモリ装置を示してもよく、その場合、データは、ソースアドレスにおいてメモリ装置から読み出され、デスティネーションアドレスに書き込まれる。ソースタイプおよびデスティネーションタイプの一方または両方は、転送記述子フラグを含み得、その場合、ソースアドレスまたはデスティネーションアドレスによって識別される転送記述子が実行される。ソースアドレスによって参照される転送記述子は、命令コードによって示される操作を実行するために使用される中間結果を得るために実行され得る。デスティネーションアドレスによって参照される転送記述子は、操作結果が格納される位置を決定するために実行されて得る。
【選択図】図4A

Description

本発明は、メモリアクセスコマンドを実施するためのシステムおよび方法に関する。
従来のコンピュータシステムでは、メモリアクセスコマンドは、命令(読み出し、書き込み、消去など)、ソースタイプ(例えば、メモリ装置の指定)、ソースアドレス、デスティネーションタイプ、及びデスティネーションアドレスを含む。より複雑な命令は、実行すべき複数の動作を指定し、処理機能の非常に特殊な制御を提供することができる「超長命令語」(VLIW)を用いることによって実装され得る。しかし、VLIWシステムは、命令の記憶のために大容量のメモリを必要とし、対応する回路に大きな面積を必要とする。
本明細書で開示されるシステムおよび方法は、複雑なコマンド、特にメモリアクセスコマンドを実装するための改良されたアプローチを提供する。
本発明の効果が容易に理解されるように、上記に簡単に記述した本発明のより具体的な記述は、添付の図面に示される特定の実施形態を参照して提供される。これらの図面は、本発明の典型的な実施形態のみを示すものであり、したがって、その範囲を限定するものとみなされるべきではないと理解されたく、本発明は、添付の図面の使用を通して、さらなる具体性および詳細とともに記述および説明される。
本発明の実施形態に係る方法を実装するのに適したコンピュータシステムの概略ブロック図である。 本発明の一実施形態に係る転送記述子を使用するための構成の概略ブロック図である。 本発明の一実施形態に係る転送記述子を使用するための構成の概略ブロック図である。 本発明の一実施形態に係る転送記述子を使用するための構成の概略ブロック図である。 本発明の一実施形態に係る転送記述子を使用するための構成の概略ブロック図である。 従来技術に係る命令語のフィールドの図である。 本発明の一実施形態に係るメモリアクセスコマンドにおける転送記述子を処理するための方法のプロセスフロー図を示す。 本発明の一実施形態に係る、メモリアクセスコマンドにおける転送記述子を処理するための方法のプロセスフロー図を示す。
本明細書の図面において概して記述および説明されている本発明の構成要素は、多種多様な異なる構成で配置および設計できることが容易に理解されるであろう。したがって、図面に表された本発明の実施形態の以下のより詳細な説明は、請求される本発明の範囲を限定する意図はではなく、単に本発明に係る現在考えられる実施形態のいくつかの例を表している。現在記述されている実施形態は、同様の部材が全体を通じて同様の数字で示されている図面を参照することで最もよく理解されるであろう。
本発明に係る実施形態は、装置、方法、またはコンピュータプログラム製品として具体化され得る。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または、本明細書では「モジュール」または「システム」としてすべて参照され得るソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとってよい。さらに、本発明は、媒体に具体化されたコンピュータ使用可能プログラムコードを有する表現の任意の有形の媒体に具体化されたコンピュータプログラム製品の形態を取ってよい。
非一時的媒体を含む、1つまたは複数のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組み合わせが利用され得る。例えば、コンピュータ可読媒体は、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)デバイス、読み出し専用メモリ(ROM)デバイス、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)デバイス、ポータブルコンパクトディスク読み出し専用メモリ(CDROM)、光記憶装置、および磁気記憶装置の1つまたは複数を含見得る。選ばれた実施形態では、コンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって使用される、又は関連するプログラムを、含む、格納する、通信する、伝播する、または転送することができる任意の非一時的媒体を含み得る。
本発明の操作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および"C"プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記載され得る。プログラムコードは、全体的にスタンドアローンのソフトウェアパッケージとしてコンピュータシステム上で、全体的にスタンドアローンのハードウェアユニット上で、一部がコンピュータからある程度の距離の離れたリモートコンピュータ上で、或いは全体的にリモートコンピュータ上で、又はサーバ上で実行され得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してコンピュータに接続されてもよく、或いは、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに接続されてもよい。
本発明の実施形態に係る方法、装置(システム)およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して以下に本発明は記載される。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図におけるブロックの組み合わせは、コンピュータプログラム命令またはコードによって実装できることが理解されよう。これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックで指定された機能/動作を実装するための手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、機械を製造し得る。
これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能データ処理装置に特定の仕方で機能するように指示することができ、コンピュータ可読媒体に格納された命令が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックで指定された機能/動作を実装する命令手段を含む製造品を製造するように、非一時的コンピュータ可読媒体に格納されてもよい。
コンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能装置上で実行される命令が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックで指定される機能/動作を実装するためのプロセスを提供するように、コンピュータまたは他のプログラム可能データ処理装置にロードされて、コンピュータまたは他のプログラム可能装置上で一連の操作ステップを実行させて、コンピュータ実装プロセスを生成してもよい。
図1は、例示的なコンピュータデバイス100を示すブロック図である。コンピュータデバイス100は、本明細書で論じられるものなどの様々な手順を実行するために使用され得る。コンピュータデバイス100は、サーバ、クライアント、または任意の他のコンピューティングエンティティ(other computing entity)として機能することができる。コンピュータデバイスは、本明細書で論じるような様々なモニタリング機能を実行することができ、本明細書に記述するアプリケーションプログラムなどの1つまたは複数のアプリケーションプログラムを実行することができる。コンピュータデバイス100は、例えば、デスクトップコンピュータ、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータなどの多種多様なコンピュータデバイスのいずれかとすることができる。
コンピュータデバイス100は、1つまたは複数のプロセッサ102、1つまたは複数のメモリ装置104、1つまたは複数のインタフェース106、1つまたは複数の大容量記憶装置108、1つまたは複数の入力/出力(I/O)デバイス、および表示装置130を含み、これらすべてはバス112に接続される。(複数の)プロセッサ102は、(複数の)メモリ装置104および/または(複数の)大容量記憶装置108に格納された命令を実行する1つまたは複数のプロセッサまたはコントローラを含む。(複数の)プロセッサ102は、キャッシュメモリなどの様々な種類のコンピュータ可読媒体を含んでもよい。
(複数の)メモリ装置104は、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)114)および/または不揮発性メモリ(例えば、読み出し専用メモリ(ROM)116)などの様々なコンピュータ可読媒体を含む。(複数の)メモリ装置104はまた、フラッシュメモリなどの書き換え可能なROMを含んでもよい。
(複数の)大容量記憶装置108は、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリ(例えば、フラッシュメモリ)などの様々なコンピュータ可読媒体を含む。図1に示すように、具体的な大容量記憶装置はハードディスクドライブ124である。(複数の)大容量記憶装置108には様々なドライブが含まれ、様々なコンピュータ可読媒体からの読み出しおよび/または書き込みを可能にしてもよい。(複数の)大容量記憶装置108は、リムーバブルメディア126および/または非リムーバブルメディアを含む。
(複数の)I/Oデバイス110は、データおよび/または他の情報がコンピュータデバイス100に入力されるか、またはコンピュータデバイス100から取り出されることを可能にする様々なデバイスを含む。例示的な(複数の)I/Oデバイス110は、カーソル制御デバイス、キーボード、キーパッド、マイク、モニタまたは他の表示装置、スピーカー、プリンタ、ネットワークインタフェースカード、モデム、レンズ、CCDまたは他の画像キャプチャ装置などを含む。
表示装置130は、コンピュータデバイス100の1人または複数人のユーザに情報を表示することができる任意の種類のデバイスを含む。表示装置130の例は、モニタ、表示端末、ビデオ投影装置などを含む。
グラフィックス・プロセッシングユニット(GPU)132は、(複数の)プロセッサ102および/または表示装置130に接続されてよい。GPUは、コンピュータ生成画像をレンダリングし、及び他のグラフィカル処理を実行するように動作可能であってよい。GPUは、(複数の)プロセッサ102などの汎用プロセッサの機能の一部または全部を含み得る。GPUは、グラフィックス処理に特有の追加の機能を含んでもよい。GPUは、座標変換、シェーディング、テクスチャリング、ラスタライズ、およびコンピュータ生成画像のレンダリングに役立つ他の機能に関連するハードコードされたグラフィックス機能、および/またはハードワイヤードのグラフィックス機能を含み得る。
(複数の)インタフェース106は、コンピュータデバイス100が他のシステム、デバイス、またはコンピューティング環境と情報をやり取りすることを可能にする様々なインタフェースを含む。例示的な(複数の)インタフェース106は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、無線ネットワーク、およびインターネットへのインタフェースなどの任意の数の様々なネットワークインタフェース120を含む。他の(複数の)インタフェースは、ユーザインタフェース118と周辺装置インタフェース122とを含む。(複数の)インタフェース106はまた、1つまたは複数のユーザインタフェース要素118を含んでもよい。(複数の)インタフェース106はまた、例えば、プリンタ、ポインティングデバイス(マウス、トラックパッドなど)、キーボードなどのインタフェースのような、1つまたは複数の周辺インタフェースを含んでもよい。
バス112は、(複数の)プロセッサ102、(複数の)メモリ装置104、(複数の)インタフェース106、(複数の)大容量記憶装置108、および(複数の)I/Oデバイス110が相互に通信することを可能にし、バス112に接続された他のデバイスまたは要素との通信も可能にする。バス112は、システムバス、PCIバス、IEEE1394バス、USBバスなどのいくつかの種類のバス構造の1つまたは複数を表す。
説明のために、プログラムおよび他の実行可能なプログラム要素は、本明細書では個別のブロックとして示されているが、そのようなプログラムおよび要素は、コンピュータデバイス100の様々な時間に異なる記憶要素に存在し得、プロセッサ102によって実行され得ることが理解される。代わりに、本明細書に記載のシステムおよび手順は、ハードウェアで、またはハードウェア、ソフトウェア、および/またはファームウェアの組み合わせで実装されることができる。例えば、1つまたは複数の特定用途向け集積回路(ASIC)は、本明細書で記載される1つまたは複数のシステムおよび手順を実行するようにプログラムすることができる。
図2A〜図2Dを参照すると、以下により詳細に記述するように、メモリアクセスコマンドは、ソースアドレスおよび/またはデスティネーションアドレスよりもむしろ転送記述子を参照し得る。転送記述子は、実行時に、メモリアクセスコマンドのアドレス(ソースまたはデスティネーション)として、その後に使用される値を生成する実行可能コードである。転送記述子が格納される場所と、転送記述子を実行するデバイスとは、変わってもよい。
例えば、特に図2Aを参照すると、処理装置102は、メモリ装置104に格納されたアプリケーション200を実行し得る。アプリケーション200の命令は、処理装置102によって取り出され、実行されてよい。命令が転送記述子を参照する場合、処理装置102は、例えば、プロセッサに接続されたキャッシュメモリまたは他のメモリ装置などの別個のメモリ装置104として具体化された転送記述子バッファ202から転送記述子を取り出し得る。
図2Bを参照すると、他の実施形態では、転送記述子バッファ202は、アプリケーション200と同じメモリ装置104内の記憶領域にある。
図2Cを参照すると、他の実施形態では、ダイレクトメモリアクセス(DMA)コントローラが、処理装置102およびメモリ装置104ならびに転送記述子バッファ202に接続される。メモリアクセスコマンドの転送記述子は、次に、DMAコントローラ204によって実行され得、DMAコントローラ204は、次に、転送記述子の結果に基づいてメモリ装置104からデータ値を取り出し、そのデータ値を処理装置102または他の要素に返し得る。
図2Dを参照すると、さらに別の実装において、本明細書では転送記述子コントローラ206として参照される別の要素が、転送記述子バッファ202からの転送記述子を処理し、転送記述子の処理結果に従ってデータ値を取り出し、そのデータ値を処理装置102に返し得る。
図3を参照すると、処理装置102によって実行される命令語は、命令コード300、ソースタイプ302、ソースアドレス304、デスティネーションタイプ306、およびデスティネーションアドレス308を含む、図示されたフィールドの一部または全部を含み得る。命令語の図示されたフォーマットは標準的なものであり、当技術分野で知られている多くのプロセッサまたはメモリコントローラによって実行され得る。従来の命令語のフィールドは、以下により詳細に記述するように、新規の転送記述子を実装するために、別の目的で用いられる。
命令コード300は、ソースアドレス304から取り出されたデータに関して実行される操作を規定し、その操作の結果はデスティネーションアドレス308に書き込まれる。ソースタイプ302は、従来、ソースデータがソースアドレス304から読み出されるメモリ装置を指定するために使用される。同様に、デスティネーションタイプ306は、従来、デスティネーションアドレス308に操作の結果が書き込まれるメモリ装置を指定するために使用される。本明細書に記載の方法によれば、ソースタイプ302は、メモリ装置または転送記述子のいずれかを参照し得る。ソースタイプ302が転送記述子を参照する場合、ソースアドレス304は、実行する転送記述子を識別するためにデコードされる。同様に、デスティネーションタイプ306が転送記述子を参照する場合、デスティネーションアドレス308は、実行する転送記述子を決定するためにデコードされる。ソースタイプ302およびデスティネーションタイプ306は、好ましくは、命令コード300によって指定されるものとして実行される操作に影響を与えない。言い換えると、ソースタイプ302およびデスティネーションタイプ306は、命令コード300によって指定された操作に従って処理されるべきデータを決定するためにのみに使用されるが、データに対して実行される操作は、データがソースアドレス304およびデスティネーションアドレス308から直接取り出されたか、または転送記述子の実行の結果として取り出されたかにかかわらず同じである。
図4Aおよび図4Bを参照すると、図示の方法400は、図3の命令のフィールドを有する命令などの命令を処理するときに実行されてよい。上述のように、方法400のステップは、処理装置102、DMAコントローラ204、専用の転送コントローラ206、または他の要素、或いはこれらのデバイスの2つ以上の組み合わせによって実行されてもよい。例えば、いくつかの実施形態では、方法400は、処理装置102に対してトランスペアレントであってよく、すなわち、メモリアクセス命令がメモリ制御システムに提示され、転送記述子のいかなる処理も処理装置102によって実行されることなく、応答が受信されてよい。
方法400は、命令語(例えば、命令語300)を受信する(402)こと、および命令語のソースタイプを評価する(404)ことを含む。ソースタイプが転送記述子フラグではない場合、その後、命令語のソースアドレスに位置するデータが、ソースタイプによって参照されるメモリ装置104からフェッチされる(406)。その後、命令語の命令コードによって示される操作が実行され(408)、操作の結果(“結果データ”)が出力される(410)。
転送記述子フラグを含むソースタイプが見つかった(404)場合、その後、転送記述子が実行される(412)。具体的には、命令語のソースアドレスに対応する転送記述子が実行される(412)。例えば、転送記述子がバッファに格納される場合、バッファ内のソースアドレスに開始アドレスを有する転送記述子が実行されてよい(412)。代わりに、各転送記述子は識別子を有してもよく、命令語のソースアドレスと一致する識別子を有する転送記述子が実行されてよい(412)。転送記述子の実行結果(412)は、転送記述子によって出力される(414)出力データである(以下、「第1中間値」と呼ぶ)。
いくつかの実施形態では、命令語の命令コードによって示される操作が実行され(408)、その操作の結果が出力される(410)。他の実施形態では、中間結果はアドレスである。したがって、メモリ装置104内の中間値において格納された値が取り出され、その後、取り出された値に対して命令コードによって示される操作が実行される(408)。
図4Bを参照すると、ステップ402で受信された命令語の処理は、命令語のデスティネーションタイプを評価する(416)ことをさらに含み得る。デスティネーションタイプが転送記述子フラグでない場合、その後、結果データは、命令語のデスティネーションタイプによって示されるメモリ装置104に、命令語のデスティネーションアドレスにおいて書き込まれる(418)。
デスティネーションタイプが転送記述子フラグを含むことが判明した(418)場合、その後、命令語のデスティネーションアドレスによって識別される転送記述子が実行される(420)。転送記述子は、転送記述子がソースアドレスに対して識別されるものとして上述したのと同じようにして、デスティネーションアドレスに基づいて識別されてよい。
転送記述子の実行(420)は、出力値(「第2の中間結果」)を含んでよい。第2の中間結果は、アドレスであってよい。ステップ410の結果データは、その後、第2の中間結果に対応するアドレスにおいてメモリ装置104に書き込まれる(424)。
いくつかの実施形態では、操作は、1つの操作される(ソースまたはデスティネーション)のみを含む。したがって、いくつかの実施形態では、ソースタイプのみが、図4Aに記述したように転送記述子を実行する可能性があり、または、図4Bに記述したようにデスティネーションタイプのみが転送記述子に潜在的に対応する。他の例では、ソースタイプとデスティネーションタイプの両方によって示されるように、2つの転送記述子が、各命令語に対して実行される。
前述の記述から明らかなように、転送記述子は、メモリアクセス機能の期間中に実行される機能のカスタマイズおよび拡張を提供する。以下は、転送記述子を用いて実装され得る機能の例である。
先入れ先出し(FIFO)バッファは、転送記述子を用いて実装され得、それによって、FIFOバッファにアクセスする実行の複数のスレッド(multiple threads of execution)間でオブジェクトを共有する必要がなくなる。第1の転送記述子は、新しいエントリがFIFOバッファに書き込まれるべき現在の位置を示す書き込みポインタを維持し得る。第2の転送記述子は、新しいエントリがFIFOバッファから読み出されるべき現在の位置を示す読み出しポインタを維持し得る。第1の転送記述子は、書き込み要求に応じて書き込みポインタを更新し、書き込み要求に応じてポインタの現在の値を返す機能を規定してよい。例えば、第1の転送記述子は、バッファのサイズ(例えば、エントリの数)及びバッファの開始アドレスを含み得る。
第1の転送記述子について、書き込み要求を受信すると、ポインタがインクリメントされる。インクリメントされた値がバッファのサイズを超えるか、または、バッファの終了アドレスの外側にある場合、ポインタはバッファの開始アドレスを指すように更新されてよい。第2の転送記述子について、読み出し要求を受信すると、ポインタが更新され、そのポインタがバッファのサイズを超えた場合、またはバッファの終了アドレスの外側にあるアドレスを指す場合、ポインタはバッファの開始アドレスに設定される。
したがって、MOVE命令を示す命令コード、転送記述子フラグに設定されたソースタイプ、および第1の転送記述子を指し示すソースアドレスを有するアプリケーションによって命令が生成され得る。この命令を受信すると、第1の転送記述子が実行され、書き込みポインタの現在値の出力し、書き込みポインタを更新する結果となる。メモリ装置104内の書込みポインタの現在の値に格納された値は、その後、命令の結果として読み出され、返される。
別の例では、MOVE命令を示す命令コードと、転送記述子フラグに設定されたデスティネーションタイプと、第2の転送記述子を指し示すデスティネーションアドレスとを有するアプリケーションによって、命令が生成され得る。この命令を受信すると、第2の転送記述子が実行され、読み出しポインタの現在値を出力し、読み出しポインタを更新する結果となる。その後、データ値は、メモリ装置104内の読み出しポインタの現在の値に書き込まれ得る。
上記の例から明らかなように、転送記述子は、或る命令から次の命令まで持続的(persistent)であり、且つ転送記述子が呼び出されたときに更新される状態変数を含み得る。いくつかの実施形態では、アプリケーションまたは他のソフトウェア、或いはハードウェア要素は、1つまたは複数の転送記述子の状態変数を監視し、イベントを生成し得る。例えば、転送記述子の状態変数が、閾値条件が満たされていることを示す場合、その後、1つまたは複数のスレッドは、ブロックされるか、実行の異なるスレッドに分岐するか、開始されるかまたはインスタンスを生成する(instantiate)か、或いは他のスレッド管理機能の対象とされ得る。
例えば、上述したFIFOバッファを規定する転送記述子の読み出しポインタ及び書き込みポインタが比較されてもよく、読み出しポインタが、書き込みポインタからオフセットされた閾値よりも小さい場合、バッファはほぼ空であるとみなされ得、閾値が超過されたことがわかるまで、FIFOバッファへの要求を行おうと試みるスレッドがブロックされ得る。同様に、読み出しポインタが書き込みポインタからオフセットされた第2の閾値量を上回る場合、FIFOバッファはほぼ満杯であるとみなされ得、第2の閾値がもはや超過されなくなるまで、FIFOバッファへの書込みを試みるスレッドはブロックされ得る。
本発明は、その趣旨または本質的な特徴から逸脱することなく、他の特定の形態で実施され得る。記載された実施形態は、すべての点において、単に例示的なものであり、限定的なものではないとみなされるべきである。したがって、本発明の範囲は、前述の記述によってではなく、添付の特許請求の範囲によって示される。特許請求の均等の意味および範囲内に入るすべての変更は、その範囲内に含まれるべきである。

Claims (20)

  1. 複数の命令のそれぞれが、(a)命令コード、(b)ソースタイプ、および(c)ソースアドレスを含む前記複数の命令を格納するメモリ装置を提供するステップと、
    前記メモリ装置に動作可能に接続された処理装置を提供するステップと、
    前記複数の命令のうちの第1の命令を前記メモリ装置から前記処理装置が取り出すステップと、
    前記処理装置およびメモリ制御システムのうちの一方が、
    前記第1の命令の前記ソースタイプが転送記述子フラグであると判定し、
    前記第1の命令の前記ソースタイプが前記転送記述子フラグであると判定することに応じて、第1の中間結果を得るために転送バッファ内の前記第1の命令の前記ソースアドレスに格納された第1の転送記述子を実行し、
    前記第1の中間結果に対して前記第1の命令の前記命令コードを実行する、
    ことによって、前記第1の命令を処理するステップと、
    を含む、方法。
  2. 前記複数の命令のうちの第2命令を前記メモリ装置から前記処理装置が取り出すステップと、
    前記処理装置およびメモリ制御システムのうちの少なくとも一方が、
    前記第2の命令の前記ソースタイプが転送記述子フラグではないと判定し、
    前記第2の命令の前記ソースタイプが転送記述子フラグではないと判定することに応じて、前記第2の命令の前記ソースアドレスに格納されたデータ値を要求し、及び
    前記データ値に対して前記第2の命令の前記命令コードを実行する、
    ことによって、前記第2の命令を処理するステップと、
    を更に含む、請求項1に記載の方法。
  3. 前記第2の命令の前記命令コードを実行することは、前記第1の命令の前記命令コードを実行することと同じの操作を実行することを含むように、前記第2の命令の前記命令コードは、前記第1の命令の前記命令コードと同一である、ことを特徴とする、請求項2に記載の方法。
  4. 前記第1の中間結果に対して前記第1の命令の前記命令コードを実行することは、第1の結果値をもたらし、
    前記方法は、
    前記第1の命令の前記デスティネーションタイプが前記転送記述子フラグであると判定するステップと、
    前記第1の命令の前記デスティネーションタイプが前記転送記述子フラグであると判定することに応じて、前記転送バッファ内の前記第1の命令の前記デスティネーションアドレスに格納された第2の転送記述子を実行して、第2の中間結果を取得し、
    格納された前記第1の結果値を、前記メモリ装置内の前記第2の中間結果に対応するアドレスに格納する、
    ことを更に含む、
    ことを特徴とする請求項3に記載の方法。
  5. 前記データ値に対して前記第2の命令の前記命令コードを実行することにより、第2の結果値がもたらされ、
    前記方法は、
    前記第2の命令の前記デスティネーションタイプが前記転送記述子フラグではないと判定し、
    前記第2の命令の前記デスティネーションタイプが前記転送記述子フラグではないと判定することに応じて、前記第2の結果値を前記第2の命令の前記デスティネーションアドレスにおいて前記メモリ装置に格納する、
    ことを更に含む、
    ことを特徴とする、請求項4に記載の方法。
  6. 前記第1の転送記述子を実行するステップは、前記第1の転送記述子の状態を更新するステップを含み、及び
    前記第2の転送記述子を実行するステップは、前記第2の転送記述子の状態を更新するステップを含む、
    ことを特徴とする、請求項5に記載の方法。
  7. 前記第1の転送記述子を実行するステップは、
    前記第1の転送記述子の前記状態に従って少なくとも1つの読み出しアドレスを識別し、及び
    前記メモリ装置内の前記少なくとも1つの読み出しアドレスから少なくとも1つの取り出されたデータ値を取り出し、及び
    前記第1の中間結果は、前記少なくとも1つの取り出されたデータ値と、前記少なくとも1つの取り出されたデータ値から導出された値とのうちの少なくとも1つである、
    ことを特徴とする請求項6に記載の方法。
  8. 前記第1の命令を処理するステップは、前記アプリケーションによってインスタンス化された実行の第1のスレッドを実行しながら前記プロセッサによって実行され、
    前記方法は、
    前記プロセッサによって、前記第1の転送記述子および前記第2の転送記述子のうちの少なくとも一方の状態を評価するステップと、
    前記第1の転送記述子の状態と前記第2の転送記述子の状態の少なくとも一方が閾値条件を満たすと判定するステップと、及び
    前記第1の転送記述子の前記状態および前記第2の転送記述子の前記状態のうちの少なくとも一方が前記閾値条件を満たすと判定することに応じて、実行の前記第1のスレッドの前記少なくとも1つ及び、前記アプリケーションによってインスタンス化された実行の別のスレッドのうちの少なくとも一方の実行をブロックするステップと、
    を更に含む、請求項5に記載の方法。
  9. 前記転送バッファは、前記メモリ装置とは別のデバイスである、請求項1に記載の方法。
  10. 前記第1の命令の前記ソースタイプが前記転送記述子フラグであると判定するステップと、及び
    前記第1の命令の前記ソースタイプが前記転送記述子フラグであると判定することに応じて、前記第1の中間結果を得るために前記転送バッファ内の前記第1命令の前記ソースアドレスに格納された前記第1の転送記述子を実行するステップと、
    の両方が、前記処理装置と前記メモリ装置との間に介在する前記処理装置とは別の装置によって実行される、ことを特徴とする請求項9に記載の方法。
  11. メモリ装置と、
    前記メモリ装置に動作可能に接続された処理装置であって、(a)命令コード、(b)ソースタイプ、及び(c)ソースアドレスを含む命令を処理するようにプログラムされた前記処理装置と、
    を含み、
    前記処理装置は、更に、
    前記メモリ装置から命令を取り出し、
    前記命令の前記ソースタイプを評価し、
    前記命令の前記ソースタイプが転送記述子フラグである場合、(i)転送バッファ内の前記ソースアドレスに対応するアドレスにおいて対応する転送記述子を取り出し、(ii)前記対応する転送記述子を実行して第1の中間結果を取得し、及び(iii)前記第1の中間結果に対して前記命令の前記命令コードを実行して結果値を取得する、
    のに有効であるように、前記処理装置により前記命令を処理すること、及び前記メモリ装置と前記処理装置との間に介在するメモリ制御システムにおいて前記命令を処理することの少なくとも一方を実行する、
    ようにさらにプログラムされる、ことを特徴とする、システム。
  12. 前記処理装置は、
    前記命令の前記ソースタイプが転送記述子フラグでない場合、(iv)前記命令の前記ソースアドレスにおいて前記メモリ装置に格納されたデータ値を取り出し、及び(v)前記命令の前記命令コードを、前記ソースアドレスにおいて前記メモリ装置に格納された前記データ値に対して実行するために有効であるように、
    前記処理装置により前記命令を処理することと、及び前記メモリ装置と前記処理装置との間に介在する前記メモリ制御システムにおいて前記命令の処理を呼び出すこととの少なくとも一方を実行するように、更にプログラムされることを特徴とする、請求項11に記載のシステム。
  13. (a)前記ソースタイプにかかわらず、前記命令コードに応じて実行される操作が同じであるように、前記命令コードを実行するように前記処理装置がプログラムされることと、並びに、(b)前記メモリ制御システムにおいて前記命令を処理するように前記処理装置はプログラムされており、及び、前記メモリ制御システムは、前記ソースタイプにかかわらず前記命令コードに応じて実行される操作が同じであるように、プログラムされることと、のうちの少なくとも一方であること特徴とする請求項12に記載のシステム。
  14. 前記処理装置は、
    前記命令の前記デスティネーションタイプを評価し、
    前記命令の前記デスティネーションタイプが前記転送記述子フラグである場合、(vi)前記命令の前記デスティネーションアドレスに対応するアドレスにおいて前記転送バッファに格納された第2の転送記述子を実行して、第2の中間結果を取得し、(vii)前記メモリ装置内の前記第2の中間結果に対応するアドレスに前記結果値を格納する、ために有効であるように、
    前記処理装置により前記命令を処理することと、前記メモリ装置と前記処理装置との間に介在する前記メモリ制御システムにおいて前記命令の処理を呼び出すことと、の少なくとも一方を実行するように、更にプログラムされることを特徴とする、請求項13に記載のシステム。
  15. 前記処理装置は、
    前記命令の前記デスティネーションタイプが前記転送記述子フラグでない場合、前記結果値を前記命令の前記デスティネーションアドレスにおいて前記メモリ装置に格納するために有効であるように、
    前記処理装置により前記命令の処理することと、前記メモリ装置と前記処理装置との間に介在する前記メモリ制御システムにおいて前記命令の処理を呼び出すこととの少なくとも一方を実行するように、更にプログラムされる、請求項14に記載の方法。
  16. 前記第1の転送記述子は、前記第1の転送記述子の状態を更新するのに有効な実行可能コードを含み、及び
    前記第2の転送記述子は、前記第2の転送記述子の状態を更新するのに有効な実行可能コードを含む、ことを特徴とする請求項16に記載のシステム。
  17. 前記第1の転送記述子は、
    前記第1の転送記述子の前記状態に従って少なくとも1つの読み出しアドレスを識別し、及び
    前記メモリ装置内の前記少なくとも1つの読み出しアドレスから少なくとも1つの取り出されたデータ値を取り出し、及び
    前記取り出されたデータの少なくとも1つとして、前記少なくとも1つの取り出されたデータ値に関しての関数を評価することによって、前記第1の中間結果を計算する、ために有効な実行可能コードを含む、請求項16に記載のシステム。
  18. 前記処理装置は、
    前記第1の転送記述子と前記第2の転送記述子の少なくとも一方の前記状態を評価し、
    前記第1の転送記述子および前記第2の転送記述子の前記少なくとも一方の前記状態が閾値条件を満たす場合、前記処理装置によって実行される実行の少なくとも1つのスレッドの実行をブロックする、
    ように更にプログラムされる、ことを特徴とする、請求項16に記載の方法。
  19. 前記転送バッファは、前記メモリ装置とは別のデバイスである、請求項11に記載の方法。
  20. 複数の命令を含むアプリケーションを格納するメモリ装置であって、前記命令の少なくとも一部は、複数のメモリアクセスコマンドを含み、前記複数のメモリアクセスコマンドの各メモリアクセスコマンドは、(a)命令コード、(b)ソースタイプ、(c)ソースアドレス、(d)、デスティネーションタイプ、および(e)デスティネーションアドレスを含む命令語を含む、メモリ装置と、
    前記メモリ装置に接続され、前記命令を実行するようにプログラムされた処理装置であって、各メモリアクセスコマンドごとに、
    (i)前記各メモリアクセスコマンドの前記ソースタイプを評価するステップと、
    (ii)前記ソースタイプが前記メモリ装置に対応する場合、前記メモリ装置において前記各メモリアクセスコマンドの前記ソースアドレスに格納されたデータを要求し、前記各メモリアクセスコマンドの前記ソースアドレスに格納された前記データに前記命令コードに対応する操作を実行して、最終結果を得るステップと、
    (iii)前記デスティネーションタイプが前記メモリ装置に対応する場合、前記メモリにおける前記各メモリアクセスコマンドの前記デスティネーションアドレスへの前記最終結果の書き込みを要求するステップと、
    (iv)前記ソースタイプが転送記述子フラグである場合、
    前記メモリ装置及び別のバッファデバイスのうちの1つを含む転送バッファにおいて前記各メモリアクセスコマンドの前記ソースアドレスに対応するアドレスに格納された第1の転送記述子であって、第1の中間結果を出力するようにプログラムされた前記第1の転送記述子を実行するステップと、
    前記命令コードに対応する前記操作を前記第1の中間結果に実行して前記最終結果を得るステップと、
    (v)前記デスティネーションタイプが前記転送記述子フラグである場合、
    前記転送バッファにおいて前記各メモリアクセスコマンドの前記デスティネーションアドレスに対応するアドレスに格納された第2の転送記述子であって、第2の中間結果を出力するようにプログラムされた前記第2の転送記述子を実行するステップと、
    前記メモリ装置内の前記第2の中間結果に対応する位置への前記最終結果の書き込みを要求するステップと、
    によって前記複数のメモリアクセスコマンドを実行するように更にプログラムされる処理装置と、
    を含む、システム。
JP2018543080A 2015-11-06 2016-11-08 メモリアクセスコマンドの転送記述子 Active JP6888019B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/934,707 US9977619B2 (en) 2015-11-06 2015-11-06 Transfer descriptor for memory access commands
PCT/US2016/060995 WO2017079769A1 (en) 2015-11-06 2016-11-08 Transfer descriptor for memory access commands

Publications (3)

Publication Number Publication Date
JP2018537800A true JP2018537800A (ja) 2018-12-20
JP2018537800A5 JP2018537800A5 (ja) 2019-12-19
JP6888019B2 JP6888019B2 (ja) 2021-06-16

Family

ID=58663110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018543080A Active JP6888019B2 (ja) 2015-11-06 2016-11-08 メモリアクセスコマンドの転送記述子

Country Status (6)

Country Link
US (1) US9977619B2 (ja)
EP (1) EP3398075B1 (ja)
JP (1) JP6888019B2 (ja)
KR (1) KR102632382B1 (ja)
CN (1) CN108292277B (ja)
WO (1) WO2017079769A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258491B (zh) * 2018-11-30 2021-10-15 北京忆芯科技有限公司 降低读命令处理延迟的方法与装置
CN112347186B (zh) * 2019-08-09 2023-02-28 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
CN111782267B (zh) * 2019-04-04 2022-12-09 安徽寒武纪信息科技有限公司 数据处理方法及装置以及相关产品
CN111782577B (zh) * 2019-04-04 2023-03-24 安徽寒武纪信息科技有限公司 数据处理装置及方法以及相关产品
CN111831329B (zh) * 2019-04-19 2022-12-09 安徽寒武纪信息科技有限公司 数据处理方法及装置以及相关产品
CN111831337B (zh) * 2019-04-19 2022-11-29 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
US11243699B2 (en) * 2019-05-22 2022-02-08 Micron Technology, Inc. System using a restricted operation mode memory indicator
CN110457232A (zh) * 2019-07-31 2019-11-15 联想(北京)有限公司 数据处理方法、装置、计算设备及介质
US11221776B2 (en) * 2019-12-30 2022-01-11 Micron Technology, Inc. Metadata indication for a memory device
US11385820B2 (en) * 2020-03-04 2022-07-12 Micron Technology, Inc. Command batching for a memory sub-system
CN117992123B (zh) * 2024-04-02 2024-07-05 摩尔线程智能科技(北京)有限责任公司 指令执行方法、装置、电子设备、存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3739352A (en) 1971-06-28 1973-06-12 Burroughs Corp Variable word width processor control
US5761740A (en) 1995-11-30 1998-06-02 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US5941959A (en) 1995-12-20 1999-08-24 Tandem Computers Incorporated System for transferring a data stream to a requestor without copying data segments to each one of multiple data source/sinks during data stream building
US5961639A (en) 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
US6115761A (en) 1997-05-30 2000-09-05 Lsi Logic Corporation First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment
US6145016A (en) 1998-09-03 2000-11-07 Advanced Micro Devices, Inc. System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
US6434649B1 (en) 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6754732B1 (en) * 2001-08-03 2004-06-22 Intervoice Limited Partnership System and method for efficient data transfer management
US7363467B2 (en) 2002-01-03 2008-04-22 Intel Corporation Dependence-chain processing using trace descriptors having dependency descriptors
JP4696199B2 (ja) 2003-05-15 2011-06-08 エスティー‐エリクソン、ソシエテ、アノニム 転送ディスクリプタ用メモリを備えるusbホストコントローラ
JP4340519B2 (ja) * 2003-11-04 2009-10-07 富士通株式会社 情報処理端末
US7293121B2 (en) 2004-02-25 2007-11-06 Analog Devices, Inc. DMA controller utilizing flexible DMA descriptors
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US8683143B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US20090119460A1 (en) * 2007-11-07 2009-05-07 Infineon Technologies Ag Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space
US7877524B1 (en) * 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
JP5287301B2 (ja) 2009-01-30 2013-09-11 富士通株式会社 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US8549182B2 (en) * 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US9552206B2 (en) 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US9436629B2 (en) * 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US8959554B2 (en) * 2012-04-25 2015-02-17 Samsung Electronics Co., Ltd Apparatus and method for transmitting and receiving signaling information in a digital broadcasting system
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
CN103593437A (zh) * 2013-11-14 2014-02-19 浪潮电子信息产业股份有限公司 一种基于dma的数据压缩芯片结构及其实现方法

Also Published As

Publication number Publication date
US20170131939A1 (en) 2017-05-11
WO2017079769A1 (en) 2017-05-11
EP3398075A4 (en) 2019-07-10
CN108292277A (zh) 2018-07-17
CN108292277B (zh) 2021-08-17
US9977619B2 (en) 2018-05-22
KR20200028280A (ko) 2020-03-16
JP6888019B2 (ja) 2021-06-16
EP3398075A1 (en) 2018-11-07
EP3398075B1 (en) 2022-02-16
KR102632382B1 (ko) 2024-01-31

Similar Documents

Publication Publication Date Title
JP6888019B2 (ja) メモリアクセスコマンドの転送記述子
US10831547B2 (en) Accelerator control apparatus for analyzing big data, accelerator control method, and program
JP6884149B2 (ja) マルチスレッドアクセスのためのソフトウェア定義のfifoバッファ
US9519401B2 (en) Providing context menu based on predicted commands
US9772861B2 (en) Accessing operating system elements via a tag cloud
US20200117623A1 (en) Adaptive Interrupt Coalescing
US10204598B2 (en) Predictive pre-decoding of encoded media item
US11782761B2 (en) Resource management unit for capturing operating system configuration states and offloading tasks
US9779466B2 (en) GPU operation
CN109684566B (zh) 标签引擎实现方法、装置、计算机设备及存储介质
US8898625B2 (en) Optimized storage of function variables
US20150070393A1 (en) Tile-based accumulative multi-layer alpha blending systems and methods
US11630698B2 (en) Resource management unit for capturing operating system configuration states and swapping memory content
KR102651864B1 (ko) 하드웨어 액세스 카운터 및 다중 스레드 처리를 조정하기 위한 이벤트 생성
KR102683211B1 (ko) 다중 스레드 액세스를 위한 소프트웨어로 한정된 fifo 버퍼
CN115809956B (zh) 图形处理器性能分析方法、装置、计算机设备和存储介质
CN111625192B (zh) 一种元数据对象访问方法、装置、设备以及介质
CN116991600A (zh) 图形调用指令的处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210401

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20210401

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210519

R150 Certificate of patent or registration of utility model

Ref document number: 6888019

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250