[go: up one dir, main page]

JP2019075101A - インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム - Google Patents

インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム Download PDF

Info

Publication number
JP2019075101A
JP2019075101A JP2018173507A JP2018173507A JP2019075101A JP 2019075101 A JP2019075101 A JP 2019075101A JP 2018173507 A JP2018173507 A JP 2018173507A JP 2018173507 A JP2018173507 A JP 2018173507A JP 2019075101 A JP2019075101 A JP 2019075101A
Authority
JP
Japan
Prior art keywords
memory
function
instruction
controller
hbm
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
Application number
JP2018173507A
Other languages
English (en)
Other versions
JP2019075101A5 (ja
Inventor
牧 天 張
Mu-Tien Chang
牧 天 張
クリシャン テジャ マラディ,
Teja Malladi Krishna
クリシャン テジャ マラディ,
迪 民 牛
Dimin Niu
迪 民 牛
宏 忠 チェン
Hongzhong Zheng
宏 忠 チェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019075101A publication Critical patent/JP2019075101A/ja
Publication of JP2019075101A5 publication Critical patent/JP2019075101A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】高帯域幅メモリシステムでインメモリのコマンドを調整するためのシステム、及び方法を提供する。【解決手段】高帯域幅メモリ(HBM)システム100において、グラフィック処理装置のHBMコントローラ180によってファンクション・イン・メモリ命令をHBM110に送信する。HBMのロジック部分130は、ファンクション・イン・メモリ命令を受信し、ロジック部分が有するコントローラ140、ALU150、及びSRAM160を用いて命令の実行を調整する。【選択図】図1

Description

本発明は、メモリ帯域幅の管理に関し、より詳しくは、プロセッサ及び高帯域幅メモリ(HBM:High−Bandwidth Memory)のロジックダイ(Logic Die)上のメモリコントローラを有するHBMシステム、及びHBMの処理方法に関する。
HBMは、主にグラフィック処理装置(GPU)用高性能メモリとして用られる。HBMは、通常のDRAMに比べて非常に広いバスを有するという利点がある。現在のHBMシステムの構造(architecture)は、HBMでバッファとして機能するロジックダイと、多重スタックDRAMダイ(例:ダイス(dice))と、グラフィック処理装置のHBMコントローラと、を備える。メモリシステムにメモリ内の処理(例:インメモリプロセシング)機能を追加することによって、さらに性能が向上するが、HBMの変更による既存のグラフィック処理装置の環境変化は最小限にすべきである。
なお、上述の内容は、本発明の実施形態における背景技術の理解を助けるためのものであって、先行技術を構成しない技術内容を含む。
特開2003−015824号公報
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、メモリシステムにファンクション・イン・メモリを導入して性能を向上しつつも、既存のグラフィック処理装置の環境変化を最小限にすることができるインメモリのコマンド処理方法と、このためのHBM、及びHBMシステムを提供することにある。
本発明は、高帯域幅メモリシステムでインメモリのコマンドを調整するためのシステム、及び方法を提供する。
上記目的を達成するためになされた本発明の一態様による高帯域幅メモリ(HBM)システムにおいてインメモリ(In−memory)のコマンドを処理するシステム、及び方法は、グラフィック処理装置のHBMコントローラによって、ファンクション・イン・HBM(Function−in−HBM、以下「ファンクション・イン・メモリ」という)命令をHBMに送信し、前記HBMのロジック部分(Logic component)で前記ファンクション・イン・メモリ命令を受信することを含む。前記ロジック部分は、コントローラ、ALU(Arithmetic Logic Unit)、及びSRAMを含む。前記ロジック部分は、前記ファンクション・イン・メモリ命令に基づいて、前記コントローラ、前記ALU、又は前記SRAMのうちの少なくとも1つを用いることによって、前記ファンクション・イン・メモリ命令の実行を調整する。
前記ファンクション・イン・メモリ命令の実行調整は、前記ファンクション・イン・メモリ命令を、計算(computational)ファンクション・イン・メモリ命令として識別することを含む。前記計算ファンクション・イン・メモリ命令は、演算(operation)及び少なくとも1つのデータ位置を含む。前記計算ファンクション・イン・メモリ命令の実行調整は、前記少なくとも1つのデータ位置に応じて、前記HBMのDRAMから少なくとも1つのデータを検索し、前記少なくとも1つのデータ及び前記演算を前記ALUに提供し、前記ALUによって前記少なくとも1つのデータに対して前記演算を実行し、前記演算の実行結果をDRAMに格納することを有する。
前記演算は、アトミック演算(atomic operation)及びデータ型であり、前記少なくとも1つのデータ位置は、宛先レジスタ、メモリアドレス、ソースレジスタ、定数、又は参照レジスタのうちの少なくとも1つを含む。
前記アトミック演算は、ADD、SUBTRACT、EXCHANGE、MAX、MIN、INCREMENT、DECREMENT、COMPARE−AND−SWAP、AND、OR、XOR、又はNOTの関数のうちの少なくとも1つを含む。
前記演算は、ALU演算及びDRAMアクセス演算であり、前記少なくとも1つのデータ位置は、宛先レジスタ及び少なくとも1つのソースレジスタを含む。
前記DRAMアクセス演算は、前記ALU演算と対をなすロード命令又は格納命令を含む。
前記ファンクション・イン・メモリ命令の実行調整は、前記コントローラによって前記ファンクション・イン・メモリ命令をファンクション・イン・メモリ移動命令として識別することを含む。前記ファンクション・イン・メモリ移動命令は、ソースレジスタと、宛先レジスタと、を含む。前記コントローラは、前記ソースレジスタに応じて、前記HBMのDRAMから前記少なくとも1つのデータを検索し、前記少なくとも1つのデータを前記宛先レジスタのDRAMに格納する。
前記ファンクション・イン・メモリ命令の実行調整は、前記ファンクション・イン・メモリ命令をファンクション・イン・メモリスクラッチパッド命令として識別することを含む。前記ファンクション・イン・メモリスクラッチパッド命令は、ソースレジスタ又は宛先レジスタのうちの少なくとも1つを含む。前記ファンクション・イン・メモリスクラッチパッド命令の実行調整は、前記コントローラのタイミングパラメータをDRAMのタイミングパラメータからSRAMのタイミングパラメータに調整し、前記SRAMで前記SRAMのタイミングパラメータに応じて、前記ファンクション・イン・メモリスクラッチパッド命令を実行することを含む。
前記HBMシステムにおいて、前記インメモリのコマンドを処理するシステム、及び方法は、前記少なくとも1つのデータ位置がグラフィック処理装置のキャッシュを含む場合、前記HBMコントローラによって前記グラフィック処理装置における前記ファンクション・イン・メモリ命令の実行を調整することを含む。
本発明によれば、既存のグラフィック処理装置の環境変化を最小限にすると共に、メモリシステムの性能を向上させるためにインメモリのコマンドを処理する。
本発明の一実施形態による高帯域幅メモリシステム構造のブロック図である。 本発明の一実施形態によるファンクション・イン・メモリの命令セットアーキテクチャからの命令を処理する演算を示すフローチャートである。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本発明の技術的思想の特徴、及びこれを達成するための方法は、実施形態に関する以下の具体的な説明及び図面を参照して容易に理解される。以下、図面を参照しながら、本発明の実施形態について詳細に説明する。図面全般に亘って同一の参照符号は、同一の構成要素を示す。なお、本発明は、多様な実施形態を有し、本明細書で説明する実施形態のみに限定されない。本明細書で説明する実施形態は、本発明を全て完全に開示する例として提供され、これを通じて本発明が属する技術分野の通常の知識を有する者に、本発明の態様及び特徴を十分に伝えられる。従って、本発明が属する技術分野の通常の技術者が本発明の態様及び特徴を完全に理解するために、不要なプロセス、構成、及び技法については説明を省略する。特に言及しない限り、図面及び詳細な説明全般に亘って同一の参照符号は、同一の構成要素を示し、同一の構成要素に関する重複説明は省略する。図面に示す構成要素、階層、及び領域は、明確性のために誇張することがある。
以下の説明では、様々な実施形態が完全に理解されるように、数多くの特定の細部説明を記載する。しかし、このような特定の細部説明がなくても、様々な実施形態を実施し得ることは明らかである。別の例では、公知の構造、及び装置は、様々な実施形態が不要且つあいまいにならないようにブロック図の形態で示す。
何れかの要素、階層、領域、又は構成が、他の要素、階層、領域、又は構成に対して、「上に」、「連結された」、又は「結合された」と記載される場合、これは、直接、他の要素や階層上に、他の要素や階層に連結された、又は他の要素や階層に結合されたことを意味する、或いは1つ以上の媒介要素、媒介階層、媒介領域、又は媒介構成が存在することを意味する。但し、「直接連結された/直接結合された」との記載は、中間の構成なしで他の構成と直接連結されるか、又は結合される1つの構成を示す。一方、「間に」、「間にすぐ」、又は「隣接した」及び「すぐ隣」のように、構成間の関係を説明する他の表現も同様に解釈する。また、何れのかの要素又は階層が、二つの要素又は階層の間にあると記載する場合、これは、単に二つの要素又は階層の間にあることを意味するか、又は1つ以上の媒介要素又は階層が存在することを意味する。
本明細書で用いる用語は、単に特定の実施形態を説明するためのものであって、本発明を限定するものではない。本明細書で用いる単数形態の用語は、文脈上特に明らかな指示がない限り、複数形態の用語も含む。また、「含む」、「有する」、「備える」等の用語を本明細書で用いる場合、これは、記載する特徴、数字、段階、動作、要素、及び/又は構成の存在を明示するが、1つ以上の他の特徴、数字、段階、動作、要素、構成、及び/又はこれらの集合の存在や付加を排除するものではない。本明細書で用いる「及び/又は」という用語は、挙げられる1つ以上の関連項目の任意の組み合わせ及び全ての組み合わせを含む。
本明細書で用いる「実質的に」、「約」、「略」、及びこれに類似する用語は、程度(degree)を示す用語ではなく、近似(approximation)を示す用語として用いるものであり、本発明が属する技術分野の通常の技術者に認識される測定値又は計算値に内在する偏差を説明するためのものである。本明細書で用いる「約」又は「略」は、当該測定及び特定の量の測定に関する誤差(即ち、測定システムの限界)を考慮し、本発明の技術分野に属する通常の技術者が決定した特定の値に対する許容可能な偏差範囲内の平均及び記載した値を含む。例えば、「約」は、1つ以上の標準偏差内、又は記載した値の±30%、20%、10%、5%内を意味する。また、本発明の実施形態を説明する際に「し得る及び/又はできる」という表現を用いる場合、これは、「本発明の1つ以上の実施形態」を示す。本明細書で用いられる「用いる」及び「用いられる」という用語は、それぞれ「利用する」及び「利用される」という用語と同じ意味である。更に、「例示的な」という用語は、例示又は一例を指称する。
特定の実施形態が異なって実施される場合、詳細なプロセス順序は、説明している順序とは異なって実行され得る。例えば、連続して説明した二つのプロセスは、実質的に同時に、又は説明した順序とは逆に実行される。
実施形態及び/又は中間構造の概略図である図面を参照して、様々な実施形態を本明細書で説明する。図示した形状は、例えば、製造技術及び/又は許容誤差の結果により変わる。また、本明細書に開示している特定の構造的又は機能的説明は、単に本発明の技術的思想による実施形態を説明するために例示する。従って、本明細書に開示する実施形態は、説明している領域の特定形態に制限されるものではなく、例えば、製造過程で生じる偏差形状を含む。例えば、矩形で示した注入領域(implanted region)は、通常円形や湾曲した形態を有し、及び/又は注入領域から非注入領域(non−implanted region)への二元的変化というよりもその境界部分で注入濃度の傾斜を有する。同様に、注入によって形成された埋込領域は、注入が起きる面と埋込領域との間の領域にいくらかの注入をもたらす。従って、図に示す領域は、事実上概略的なものであり、その形態は装置の領域の実際の形態を示したものでなく、示した形状に制限しようとするものでもない。
本明細書で説明する本発明の実施形態によると、電子/電気装置、及び/又は任意の他の関連装置や構成は、任意の適切なハードウェア、ファームウェア(例えば、特定用途向け集積回路)、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの適切な組み合わせを利用して具現される。例えば、このような装置の様々な構成要素は、1つの集積回路(IC)チップ又は個別のICチップ上に形成される。また、このような装置の様々な構成要素は、フレキシブル印刷回路フィルム(flexible printed circuit film)、テープキャリアパッケージ(TCP:Tape Carrier Package)、印刷回路基板(PCB:Printed Circuit Board)上に具現されるか又は1つの基板(substrate)上に形成される。更に、このような装置の多様な構成要素は、1つ以上のコンピューティング装置の1つ以上のプロセッサで実行され、コンピュータプログラムの命令を実行して、本明細書に記載する多様な機能を行うための他のシステム構成要素と相互作用するプロセス又はスレッド(thread)である。コンピュータプログラムの命令はメモリに格納され、メモリは、例えばランダムアクセスメモリ(RAM:Random Access Memory)又はフラッシュメモリ(例:NANDフラッシュメモリ)装置などの標準メモリ装置を用いるコンピューティング装置で具現される。コンピュータプログラムの命令は、例えばCD−ROM、フラッシュドライブ等のような他の非一時的コンピュータ読み取り可能な媒体に格納される。また、本発明が属する技術分野の通常の技術者には、本発明の技術範囲を逸脱することなく、多様なコンピューティング装置の機能が、単一のコンピューティング装置に結合若しくは統合されるか、又は特定のコンピューティング装置の機能が1つ以上の他のコンピューティング装置に分散されることが認識される。
本明細書で用いる技術用語及び科学用語を含む全ての用語は、特に定義しない限り、本発明が属する技術分野の通常の知識を有する者が一般的に理解するものと同様の意味を有する。また、通常用いられる辞典に定義されているような用語は、関連技術及び/又は本明細書の文脈上の意味と一致すると解釈され、本明細書で明らかに定義しない限り、理想的又は過度に形式的な意味として解釈されない。
図1は、本発明の一実施形態による高帯域幅メモリシステム構造のブロック図である。
図1に示す本発明の実施形態は、ファンクション・イン・メモリ(Function−in−HBM)のHBMシステム100、及びHBM用命令セットアーキテクチャ(ISA:Instruction Set Architecture)の拡張のためのシステムを提供する。
HBMシステム100は、HBM110に統合される追加の計算リソースを支援する。例えば、本実施形態において、HBMシステム100は、一部のデータの演算及び移動をインメモリ(in−memory)で実行させ、大容量のスクラッチパッドを提供する。
HBMシステム100は、グラフィック処理装置(GPU)170に連結された少なくとも1つのHBM110を含む。本実施形態において、HBM110は、DRAM120(例:1つ以上のDRAMダイ(die))と、ロジック部分(logic component)130(例:ロジックダイ(die))と、を含む。ロジック部分130は、コントローラ140、ALU150、及びSRAM160を有し、グラフィック処理装置170は、HBM110とインターフェースするためのHBMコントローラ180を含む。
本発明の一実施形態によるコントローラ140は、グラフィック処理装置170からの命令の実行を調整する。命令は、一般命令とファンクション・イン・メモリ命令との両方を含む。例えば、一般命令(ファンクション・イン・メモリ命令ではなく従来のロードファンクション及び格納ファンクション)は、HBMコントローラ180によって送信され、コントローラ140で受信されて、既存の方法で実行される。
また、コントローラ140は、インメモリ・ファンクション(例:ファンクション・イン・メモリ命令)の実行を調整する。例えば、コントローラ140は、データ移動演算(例:ロード/格納の対命令)を実行する。一例として、コントローラ140は、本来複数の一般命令であったファンクション・イン・メモリ命令を実行する。例えば、コントローラ140は、ALU150を利用する計算ファンクション・イン・メモリ命令(例:アトミック命令(Atomic Instructions)及びALU命令)の実行を調整する。この場合、コントローラ140は、DRAM120からデータを検索して、処理のために該当データ(及びALU演算)をALU150に提供することによって、命令の実行を調整する。その結果は、DRAM120に格納されるか、又はグラフィック処理装置170に戻される。一例として、ファンクション・イン・メモリ命令は、ロード命令又は格納命令と対をなす1つ以上のALU命令を含む。
他の実施形態として、コントローラ140はスクラッチパッドの読み取り命令及び書き込み命令の実行を調整する。以下では、このようなファンクション・イン・メモリの各類型について詳細に説明する。
本発明の一実施形態によるALU150は、様々な計算の動作(例:単純な計算のコマンド)を実行する。一例として、ALU150は、算術演算、ビット演算、シフト演算等を実行する32ビットALUである。例えば、ALU150は、ADD、SUBTRACT、EXCHANGE、MAX、MIN、INCREMENT、DECREMENT、COMPARE−AND−SWAP、AND、OR、及びXORの演算を実行する。ALU150は、アトミック演算及び非アトミック演算に利用される。
一実施形態として、コントローラ140は演算を提供し、ALU150へのデータ入力及びALU150からDRAM120へのデータ出力を管理する。また、他の実施形態として、ALU150が直接DRAM120からデータを検索して、DRAM120にデータを格納する。さらに他の実施形態では、コントローラ140がDRAM120からデータを検索して、DRAM120にデータを格納する役割を担う。
本発明の一実施形態によるSRAM160は、低レイテンシのスクラッチパッドとして構成される。一実施形態として、SRAM160は、同一のコマンド/アドレス(CA:Command/Address)及びデータ(DQ)インターフェースをDRAM120と共有し、他の実施形態として、SRAM160は、固有のCA及びDQインターフェースを有する。SRAM160は、DRAM120のアドレス範囲から区別される固有のアドレス範囲を含む。
コントローラ140は、入力される読み取り/書き込み命令のアドレスを用いて、要請がスクラッチパッド演算であるか否かを判定する。他の実施形態として、グラフィック処理装置170は、具体的に指定されたスクラッチパッド命令をコントローラ140に送信する。
SRAM160を利用するコマンドの場合、コントローラ140は、SRAM160のタイミングパラメータ(例:DRAM120のタイミングパラメータより速いか又は低いレイテンシ)に応じて動作するように自身のタイミングパラメータを変える。SRAM160の利用は、ユーザ(例:プログラマ)によって指定され、SRAM160の空間は、実行時間中に割り当てられる。動作中のスクラッチパッドは、グラフィック処理装置のL1スクラッチパッドと同様に動作する(例:低レイテンシメモリを提供)。グラフィック処理装置のL1スクラッチパッドは通常小さい(コア当たり15kB)ため、拡張されたHBMスクラッチパッド(例:SRAM160)はDRAM120を利用する場合よりも性能が向上する。
本発明の一実施形態によるファンクション・イン・メモリISAは、HBM110で利用可能な追加のリソースを利用するために提供される。例えば、ファンクション・イン・メモリISAは、計算ファンクション・イン・メモリ命令(例:ファンクション・イン・メモリアトミック命令及びファンクション・イン・メモリALU命令)と、データ移動ファンクション・イン・メモリ命令と、ファンクション・イン・メモリスクラッチパッド命令と、を含む演算を許容するために、既存の命令セットを拡張する。各々のファンクション・イン・メモリ命令は、命令をファンクション・イン・メモリ命令として識別するファンクション・イン・メモリの指定子と、HBMにより実行される1つ以上の演算と、データ位置(例:レジスタ、メモリ、提供された定数等)と、を含む。一実施形態として、ファンクション・イン・メモリ命令は、<designator>.<operation>.<data location 1><data location 2>の形式に配列される。
本実施形態において、命令は、ユーザ(例:プログラマ)、コンパイラ、又はグラフィック処理装置によって、ファンクション・イン・メモリ命令として指定される。例えば、一部のプログラミング言語において、ユーザは、演算を実行する位置(例:インメモリ、グラフィック処理装置、又は中央処理装置)、又は利用するメモリを指定する。他の例として、コンパイラは、HBM110で実行するコマンドを識別し、グラフィック処理装置170よりもHBM110のファンクション・イン・メモリのコマンドを優先して実行する。さらに他の例として、グラフィック処理装置170は、ソース及び宛先メモリアドレスを分析して、ファンクション・イン・メモリ命令が有効か否かを判定する。例えば、グラフィック処理装置170は、メモリアドレスを分析して、メモリアドレスの少なくとも1つがグラフィック処理装置のキャッシュに位置するか、又はHBMではない他のメモリに位置するかを判定し、これらの場合、一般命令を実行する(例:非インメモリ命令)。
図2は、ファンクション・イン・メモリの命令セットアーキテクチャ(FIM ISA)からの命令を処理する方法を示すフローチャートである。
本発明の一実施形態によるグラフィック処理装置170は、ファンクション・イン・メモリ(FIM)命令をHBM110に送信する(S200段階)。グラフィック処理装置170は、要請を処理してHBM110に送信し、任意の返還情報を処理するHBMコントローラ180を含む。本実施形態において、HBMコントローラ180は、ファンクション・イン・メモリ命令に含まれるメモリアドレスの位置を推定することによって、ファンクション・イン・メモリ命令が適切か否かを検証する。例えば、アドレスが他のHBMを示すか、又はアドレスの何れかがグラフィック処理装置170のキャッシュ、即ちローカルキャッシュ用である場合、ファンクション・イン・メモリ命令は不適切なものとなる。本実施形態において、ファンクション・イン・メモリ命令の検証は、HBM110に命令が送信される前に、初期のグラフィック処理装置パイプライン(GPU Pipeline)段階で行われる。例えば、本実施形態において、グラフィック処理装置のローカルキャッシュコントローラは、ファンクション・イン・メモリ命令が適切か否かを検証する。
HBM110は、ロジック部分130でファンクション・イン・メモリ命令を受信する(S210段階)。コントローラ140は、命令を処理して実行を調整する。コントローラ140は、命令がファンクション・イン・メモリ命令なのか否かを検証し、その命令による演算を判定する(S220段階)。例えば、コントローラ140は、命令がALU150を利用する演算命令なのか、移動命令なのか、それともスクラッチパッド命令なのかを判定する。次に、コントローラ140は、命令自体(例:移動命令)を完了することによって、又は必須ロジックハードウェア(例:ALU150又はSRAM160)を用いることによって、命令の実行を調整する(S230段階)。
本発明の一実施形態によるISAは計算命令を含む。本実施形態において、コントローラ140は計算命令を受信して、ALU150での計算命令の実行を調整する。計算命令は、ファンクション・イン・メモリアトミック命令と、ファンクション・イン・メモリALU命令と、を含む。
本実施形態において、HBM110は、ファンクション・イン・メモリISAを用いてファンクション・イン・メモリアトミック命令を処理する。アトミック命令は、一般に3つの段階、即ち、メモリ位置からデータを読み取る段階と、データに対して関数(例:ADD、SUBTRACT等)を実行する段階と、結果データを再度所定のメモリ位置に書き込む段階と、に分類される。
HBM110は、ファンクション・イン・メモリアトミック命令を受信すると、内部で上記3つの段階を全て実行する。従来のアトミック命令と比較すると、ファンクション・イン・メモリアトミック命令は、命令の実行を完了するために、グラフィック処理装置170によってHBM110に送信された追加情報を含む。例えば、グラフィック処理装置170は、アトミック演算、データ型、宛先レジスタ、ソースレジスタ、参照レジスタ(例:COMPARE−AND−SWAP関数のための)、メモリアドレス、及び関数型を含むファンクション・イン・メモリアトミック命令を送信する。
本実施形態において、コントローラ140は、グラフィック処理装置のHBMコントローラ180からファンクション・イン・メモリアトミック命令を受信する。コントローラ140は、命令を読み取り、ファンクション・イン・メモリの指定子を用いて読み取られた命令が、ファンクション・イン・メモリ命令か否かを判定する。コントローラ140は、該当命令がファンクション・イン・メモリアトミック命令か否かを判定するために演算を用いる。この演算は、該当関数がファンクション・イン・メモリアトミック命令という信号を送信する以外にも、ALU150により実行される関数型(例:アトミックADD、アトミックCOMPARE−AND−SWAP、アトミックOR等)と、演算が実行されるデータ型(例:符号のある32ビット定数、符号のない32ビット定数等)と、を示す。
次に、コントローラ140は、提供されたデータ位置からデータを読み取り、関数と共にALU150にデータを提供する。ALU150は、データに対して関数を実行し、その結果は元のデータ位置に格納される。
一例として、ファンクション・イン・メモリアトミック命令の一般フォーマットは、fim.atom.<function>.<data type> <destination register> <memory address> <source register or constant> <reference register> である。表1は、例示値を有する関数の例(又はファンクション・イン・メモリアトミック命令の例)の一部を示す。
Figure 2019075101
本実施形態において、ファンクション・イン・メモリ命令ISAは、ファンクション・イン・メモリALU命令のための命令を含む。グラフィック処理装置によって実行される通常の演算は、メモリから必要なデータを引き出し、結果データを格納することに伴うロード命令及び格納命令を必要とする。本実施形態において、ファンクション・イン・メモリALU命令は、既存の関数とこれに伴うロード命令及び格納命令を単一のファンクション・イン・メモリALU命令に圧縮する。一例として、ファンクション・イン・メモリALU命令の一般フォーマットは、ファンクション・イン・メモリの指定子と、ALU演算及びこれと対をなすロード演算/格納演算を含む演算と、少なくとも1つのデータ位置と、を含む。例えば、ファンクション・イン・メモリALU命令は、fim.<function>.<load/store> <destination register> <source register> <load register>の形式に配列される。例えば、ALU命令は、表2(ファンクション・イン・メモリALU ロード命令/格納命令の例)に示すように、ロード命令及び/又は格納命令と対をなす。
Figure 2019075101
一例として、ファンクション・イン・メモリALU命令の演算は、ファンクション・イン・メモリアトミック命令の演算と同様である。例えば、本実施形態において、コントローラ140は、グラフィック処理装置のHBMコントローラ180からファンクション・イン・メモリALU命令を受信する。コントローラ140は、命令を読み取り、ファンクション・イン・メモリの指定子を用いて読み取った命令がファンクション・イン・メモリ命令か否かを判定する。コントローラ140は、命令がファンクション・イン・メモリALU命令か否かを判定するため、及びALU150により実行される関数型(例:ADD、EXCHANGE、MIN、MAX、OR等)を判定するために演算を用いる。
次に、コントローラ140は、提供されたデータ位置からデータを読み取り、関数と共にALU150にデータを提供する。ALU150は、データに対して関数を実行し、その結果は元のデータ位置又は指示されたデータ位置に格納される。
本実施形態において、HBM110及びファンクション・イン・メモリISAは、ファンクション・イン・メモリ移動命令のために構成される。移動命令は、対応する格納命令と対をなすロード命令として識別される。ロード及び格納のアドレスが同一のHBMに位置すると、関数はインメモリで実行される。本実施形態において、対をなすロード及び格納の関数は、単一のファンクション・イン・メモリ移動命令に併合される。表3は、ロード命令/格納命令の例(又はファンクション・イン・メモリの移動命令の例)を示す。
Figure 2019075101
コントローラ140は、ファンクション・イン・メモリ移動命令を受信すると、ファンクション・イン・メモリの指定子により、命令がファンクション・イン・メモリ命令であることを認識して、演算が移動演算であることを認識する。次に、コントローラ140は、ソースアドレスからデータを読み取り、宛先アドレスにデータを格納する。本実施形態において、コンパイラは、表3に示すように、単一のファンクション・イン・メモリ移動命令に併合されるロード命令及び格納命令の対を識別する。本実施形態において、グラフィック処理装置170は、移動命令をHBM110に送信する前に移動命令を分析し、ファンクション・イン・メモリ移動命令が適切か否かを判定する。例えば、グラフィック処理装置170(例:HBMコントローラ180)は、ソースメモリアドレス及び宛先メモリアドレスを分析し、アドレスの何れかがグラフィック処理装置のキャッシュに存在するか否かを判定する。この例において、グラフィック処理装置170は、命令を一般のロード命令と格納命令とに分離する。
本実施形態において、HBM110及びファンクション・イン・メモリISAは、低レイテンシスクラッチパッドとしてSRAM160を利用する。コントローラ140は、ファンクション・イン・メモリスクラッチパッド命令を識別する。上述のように、SRAM160は、DRAM120のアドレス範囲から区別された特定のアドレス範囲を含む。コントローラ140は、要請がDRAM120メモリアドレス又はSRAM160メモリアドレスに対応するか否かを識別する。本実施形態において、ISAは、特定のスクラッチパッドのコマンドを含む。例えば、ISAは、ファンクション・イン・メモリ読み取りスクラッチパッドのコマンド(例:FIM.RD_SP)と、ファンクション・イン・メモリ書き込みスクラッチパッドのコマンド(例:FIM.WR_SP)と、を含む。この例では、コントローラ140は入力コマンドのメモリアドレスを推定しない。
SRAM160は、DRAM120より低いレイテンシ(即ち、より速く)で動作する。従って、スクラッチパッドは、データのロード時間及び格納時間に対して非決定的にHBM110をレンダリングする。コントローラ140は、DRAMメモリが関連関数を実行する場合、DRAM120のタイミングパラメータに応じて動作し、SRAMメモリの関連関数(例:ファンクション・イン・メモリスクラッチパッド命令)を実行する間は、SRAM160のタイミングパラメータに応じて動作することによって、命令の実行を調整する。従って、ファンクション・イン・メモリスクラッチパッド命令を受信すると、コントローラ140はSRAM160のタイミングパラメータに対応するように自身のタイミングパラメータを調整し、ファンクション・イン・メモリ読み取り/書き込みスクラッチパッドのコマンドを実行する。
本実施形態において、ユーザは低レイテンシスクラッチパッドとしてSRAM160を利用するデータ構造を設定する。ユーザがスクラッチパッドを用いることによってデータ構造を設定すると、コンパイラは指定子(例:アセンブリのllsp)を含むように要請を変換し、その結果、グラフィック処理装置170はHBM110に空間を割り当てる。
以上、上述した本発明の実施形態は、高帯域幅メモリシステム及び命令セットアーキテクチャを提供する。
上述の説明内容は、本発明の一実施形態を説明するためのものであって、本発明を限定するものではない。本発明の技術分野に属する通常の技術者は、本発明の技術範囲から逸脱することなく、多様に変形実施することが可能である。
100 HBMシステム
110 HBM
120 DRAM
130 ロジック部分
140 コントローラ
150 ALU
160 SRAM
170 グラフィック処理装置
180 HBMコントローラ

Claims (25)

  1. HBM(High−Bandwidth Memory)システムにおいてインメモリのコマンドを処理する方法であって、
    グラフィック処理装置のHBMコントローラによって、ファンクション・イン・メモリ命令をHBMに送信する段階と、
    コントローラ、ALU(Arithmetic Logic Unit)、及びSRAMを含む前記HBMのロジック部分によって、前記ファンクション・イン・メモリ命令を受信する段階と、
    前記コントローラ、前記ALU、又は前記SRAMのうちの少なくとも1つを用いる前記ロジック部分によって、前記ファンクション・イン・メモリ命令に基づいて、前記ファンクション・イン・メモリ命令の実行を調整する段階と、を有することを特徴とする方法。
  2. 前記ファンクション・イン・メモリ命令の実行を調整する段階は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令を、演算及び少なくとも1つのデータ位置を含む計算ファンクション・イン・メモリ命令として識別する段階と、
    前記コントローラによって、前記少なくとも1つのデータ位置に応じて、前記HBMのDRAMから少なくとも1つのデータを検索する段階と、
    前記コントローラによって、前記少なくとも1つのデータ及び前記演算を前記ALUに提供する段階と、
    前記ALUによって、前記少なくとも1つのデータに対して前記演算を実行する段階と、
    前記演算の実行結果を前記DRAMに格納する段階と、を有することを特徴とする請求項1に記載の方法。
  3. 前記演算は、アトミック演算(atomic operation)及びデータ型を含み、
    前記少なくとも1つのデータ位置は、宛先レジスタ、メモリアドレス、ソースレジスタ、定数、又は参照レジスタのうちの少なくとも1つを含むことを特徴とする請求項2に記載の方法。
  4. 前記アトミック演算は、ADD、SUBTRACT、EXCHANGE、MAX、MIN、INCREMENT、DECREMENT、COMPARE−AND−SWAP、AND、OR、XOR、又はNOTの関数のうちの少なくとも1つを含むことを特徴とする請求項3に記載の方法。
  5. 前記演算は、ALU演算及びDRAMアクセス演算を含み、
    前記少なくとも1つのデータ位置は、宛先レジスタ及び少なくとも1つのソースレジスタを含むことを特徴とする請求項2に記載の方法。
  6. 前記DRAMアクセス演算は、前記ALU演算と対をなすロード命令又は格納命令を含むことを特徴とする請求項5に記載の方法。
  7. 前記ファンクション・イン・メモリ命令の実行を調整する段階は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令をソースレジスタ及び宛先レジスタを含むファンクション・イン・メモリ移動命令として識別する段階と、
    前記コントローラによって、前記ソースレジスタに応じて、前記HBMのDRAMから少なくとも1つのデータを検索する段階と、
    前記コントローラによって、前記少なくとも1つのデータを前記宛先レジスタの前記DRAMに格納する段階と、を有することを特徴とする請求項1に記載の方法。
  8. 前記ファンクション・イン・メモリ命令の実行を調整する段階は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令をソースレジスタ及び宛先レジスタのうちの少なくとも1つを含むファンクション・イン・メモリスクラッチパッド命令として識別する段階と、
    前記コントローラのタイミングパラメータを、DRAMのタイミングパラメータからSRAMのタイミングパラメータに調整する段階と、
    前記コントローラによって、前記SRAMで前記SRAMのタイミングパラメータに応じて、前記ファンクション・イン・メモリスクラッチパッド命令を実行する段階と、を有することを特徴とする請求項1に記載の方法。
  9. 前記少なくとも1つのデータ位置がグラフィック処理装置のキャッシュを含む場合、前記HBMコントローラによって、前記グラフィック処理装置における前記ファンクション・イン・メモリ命令の実行を調整する段階を有することを特徴とする請求項1に記載の方法。
  10. HBM(High−Bandwidth Memory)であって、
    DRAMと、
    コントローラ、ALU(Arithmetic Logic Unit)、及びSRAMを含んで命令を実行するロジック部分と、を備え、
    前記命令は、前記ロジック部分によって実行されるとき、前記ロジック部分がファンクション・イン・メモリ命令に基づいて、前記DRAM、前記コントローラ、前記ALU、又は前記SRAMのうちの少なくとも1つを用いることによって、前記ファンクション・イン・メモリ命令の実行を調整することを特徴とするHBM。
  11. 前記ファンクション・イン・メモリ命令の実行調整は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令を演算及び少なくとも1つのデータ位置を含む計算ファンクション・イン・メモリ命令として識別し、
    前記コントローラによって、前記少なくとも1つのデータ位置に応じて前記DRAMから少なくとも1つのデータを検索し、
    前記コントローラによって、前記少なくとも1つのデータ及び前記演算を前記ALUに提供し、
    前記ALUによって、前記少なくとも1つのデータに対して前記演算を実行し、
    前記演算の実行結果を前記DRAMに格納することを特徴とする請求項10に記載のHBM。
  12. 前記演算は、アトミック演算(atomic operation)及びデータ型を含み、
    前記少なくとも1つのデータ位置は、宛先レジスタ、メモリアドレス、ソースレジスタ、定数、又は参照レジスタのうちの少なくとも1つを含むことを特徴とする請求項11に記載のHBM。
  13. 前記アトミック演算は、ADD、SUBTRACT、EXCHANGE、MAX、MIN、INCREMENT、DECREMENT、COMPARE−AND−SWAP、AND、OR、XOR、又はNOTの関数のうちの少なくとも1つを含むことを特徴とする請求項12に記載のHBM。
  14. 前記演算は、ALU演算及びDRAMアクセス演算を含み、
    前記少なくとも1つのデータ位置は、宛先レジスタ及び少なくとも1つのソースレジスを含むことを特徴とする請求項11に記載のHBM。
  15. 前記DRAMアクセス演算は、前記ALU演算と対をなすロード命令又は格納命令を含むことを特徴とする請求項14に記載のHBM。
  16. 前記ファンクション・イン・メモリ命令の実行調整は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令をソースレジスタ及び宛先レジスタを含むファンクション・イン・メモリ移動命令として識別し、
    前記コントローラによって、前記ソースレジスタに応じて、前記DRAMから少なくとも1つのデータを検索し、
    前記コントローラによって、前記少なくとも1つのデータを前記宛先レジスタの前記DRAMに格納することを特徴とする請求項10に記載のHBM。
  17. 前記ファンクション・イン・メモリ命令の実行調整は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令をソースレジスタ及び宛先レジスタのうちの少なくとも1つを含むファンクション・イン・メモリスクラッチパッドの命令として識別し、
    前記コントローラのタイミングパラメータをDRAMのタイミングパラメータからSRAMのタイミングパラメータに調整し、
    前記コントローラによって、前記SRAMで前記SRAMのタイミングパラメータに応じて前記ファンクション・イン・メモリスクラッチパッド命令を実行することを特徴とする請求項10に記載のHBM。
  18. HBM(High−Bandwidth Memory)システムであって、
    DRAMを含むDRAMダイと、
    コントローラ、ALU(Arithmetic Logic Unit)、及びSRAMを含むロジックダイと、
    を有するHBMと、
    前記HBMから分離して前記コントローラに命令を送信するグラフィック処理装置メモリコントローラと、を備え、
    前記コントローラは、
    前記命令を受信して、前記命令が一般命令である場合には、前記DRAMダイの前記DRAMに前記命令を伝達し、前記命令がファンクション・イン・メモリ命令である場合には、前記命令の実行を調整し、
    前記命令の実行は、
    前記コントローラ、前記ALU、及び前記SRAMのうちの少なくとも1つを用いて実行することを特徴とするHBMシステム。
  19. 前記ファンクション・イン・メモリ命令の実行調整は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令を演算及び少なくとも1つのデータ位置を含む計算ファンクション・イン・メモリ命令として識別し、
    前記コントローラによって、前記少なくとも1つのデータ位置に応じて前記DRAMから少なくとも1つのデータを検索し、
    前記コントローラによって、前記少なくとも1つのデータ及び前記演算を前記ALUに提供し、
    前記ALUによって、前記少なくとも1つのデータに対して前記演算を実行し、
    前記演算の実行結果を前記DRAMに格納することを特徴とする請求項18に記載のHBMシステム。
  20. 前記演算は、アトミック演算(atomic operation)及びデータ型を含み、
    前記少なくとも1つのデータ位置は、宛先レジスタ、メモリアドレス、ソースレジスタ、定数、又は参照レジスタのうちの少なくとも1つを含むことを特徴とする請求項19に記載のHBMシステム。
  21. 前記アトミック演算は、ADD、SUBTRACT、EXCHANGE、MAX、MIN、INCREMENT、DECREMENT、COMPARE−AND−SWAP、AND、OR、XOR、又はNOTの関数のうちの少なくとも1つを含むことを特徴とする請求項20に記載のHBMシステム。
  22. 前記演算は、ALU演算及びDRAMアクセス演算を含み、
    前記少なくとも1つのデータ位置は、宛先レジスタ及び少なくとも1つのソースレジスタを含むことを特徴とする請求項19に記載のHBMシステム。
  23. 前記DRAMアクセス演算は、前記ALU演算と対をなすロード命令又は格納命令を含むことを特徴とする請求項22に記載のHBMシステム。
  24. 前記ファンクション・イン・メモリ命令の実行調整は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令をソースレジスタ及び宛先レジスタを含むファンクション・イン・メモリ移動命令として識別し、
    前記コントローラによって、前記ソースレジスタに応じて、前記DRAMから少なくとも1つのデータを検索し、
    前記コントローラによって、前記少なくとも1つのデータを前記宛先レジスタの前記DRAMに格納することを特徴とする請求項18に記載のHBMシステム。
  25. 前記ファンクション・イン・メモリ命令の実行調整は、
    前記コントローラによって、前記ファンクション・イン・メモリ命令をソースレジスタ及び宛先レジスタのうちの少なくとも1つを含むファンクション・イン・メモリスクラッチパッド命令として識別し、
    前記コントローラのタイミングパラメータをDRAMのタイミングパラメータからSRAMのタイミングパラメータに調整し、
    前記コントローラによって、前記SRAMで前記SRAMのタイミングパラメータに応じて前記ファンクション・イン・メモリスクラッチパッド命令を実行することを特徴とする請求項18に記載のHBMシステム。
JP2018173507A 2017-10-17 2018-09-18 インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム Pending JP2019075101A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762573390P 2017-10-17 2017-10-17
US62/573,390 2017-10-17
US15/854,557 2017-12-26
US15/854,557 US10866900B2 (en) 2017-10-17 2017-12-26 ISA extension for high-bandwidth memory

Publications (2)

Publication Number Publication Date
JP2019075101A true JP2019075101A (ja) 2019-05-16
JP2019075101A5 JP2019075101A5 (ja) 2021-09-02

Family

ID=66097486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018173507A Pending JP2019075101A (ja) 2017-10-17 2018-09-18 インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム

Country Status (5)

Country Link
US (3) US10866900B2 (ja)
JP (1) JP2019075101A (ja)
KR (1) KR102289095B1 (ja)
CN (1) CN109669887A (ja)
TW (1) TWI750406B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021128752A (ja) * 2020-02-12 2021-09-02 三星電子株式会社Samsung Electronics Co., Ltd. インメモリコンピューティングに対するデータ配置のための方法及びその方法が適用されたメモリモジュール
JP2023505261A (ja) * 2019-12-06 2023-02-08 ザイリンクス インコーポレイテッド メモリと分散計算アレイとの間のデータ転送
JP2024501635A (ja) * 2020-12-16 2024-01-15 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 固定機能動作を使用するオフロードされた命令のプロセッサ誘導実行
EP4535278A4 (en) * 2022-06-28 2025-12-03 Huawei Tech Co Ltd METHOD FOR PROCESSING INPUT DATA FOR A SHADE GAUGE, AND GRAPHICS PROCESSING APPARATUS

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561731B2 (en) 2019-12-26 2023-01-24 Micron Technology, Inc. Truth table extension for stacked memory systems
EP4081889A4 (en) * 2019-12-26 2023-05-31 Micron Technology, Inc. HOST TECHNIQUES FOR STACKED STORAGE SYSTEMS
US12504952B2 (en) 2020-01-07 2025-12-23 SK Hynix Inc. Multiplication and accumulation (MAC) operator and processing-in-memory (PIM) device including the mac operator
US12136470B2 (en) 2020-01-07 2024-11-05 SK Hynix Inc. Processing-in-memory (PIM) system that changes between multiplication/accumulation (MAC) and memory modes and operating methods of the PIM system
US11829760B2 (en) * 2020-01-07 2023-11-28 SK Hynix Inc. Processing-in-memory device and processing-in-memory system including the same
US11635911B2 (en) * 2020-01-07 2023-04-25 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
US11983508B2 (en) 2020-01-07 2024-05-14 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
TWI868210B (zh) * 2020-01-07 2025-01-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統
US12386777B2 (en) 2020-01-07 2025-08-12 SK Hynix Inc. Processing-in-memory (PIM) device to perform a memory access operation and an arithmetic operation in response to a command from a PIM controller and a high speed interface, respectively
KR102831057B1 (ko) 2020-01-20 2025-07-07 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템
US11281554B2 (en) * 2020-03-17 2022-03-22 Samsung Electronics Co., Ltd. System and method for in-memory computation
KR102786984B1 (ko) 2020-09-03 2025-03-27 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템, 그것을 제어하는 제어기 및 그것의 동작 방법
EP4024222A1 (en) * 2021-01-04 2022-07-06 Imec VZW An integrated circuit with 3d partitioning
CN115469800A (zh) 2021-06-10 2022-12-13 三星电子株式会社 数据处理系统以及用于访问异构存储器系统的方法
CN113643739B (zh) * 2021-09-02 2025-02-07 西安紫光国芯半导体股份有限公司 一种llc芯片及缓存系统
KR20250019482A (ko) * 2023-08-01 2025-02-10 삼성전자주식회사 가속기, 이를 포함하는 전자 장치 및 그 동작 방법
US12052116B1 (en) * 2024-03-28 2024-07-30 Persimmons, Inc. Methods for arbitrating the role of bus master among a plurality of host devices

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0425961A (ja) * 1990-05-22 1992-01-29 Toshiba Corp 共有データ更新方式
JP2009514479A (ja) * 2005-11-01 2009-04-02 エヌエックスピー ビー ヴィ データ処理システムおよびビデオデータの処理方法
JP2012038293A (ja) * 2010-08-11 2012-02-23 Primesense Ltd マシンビジョン用マルチプロセッサシステムオンチップ
JP2013242823A (ja) * 2012-05-23 2013-12-05 Toshiba Corp 情報処理装置、情報処理方法および制御プログラム
US20140040532A1 (en) * 2012-08-06 2014-02-06 Advanced Micro Devices, Inc. Stacked memory device with helper processor
JP2015064676A (ja) * 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、半導体装置、情報処理方法およびプログラム
WO2016066487A1 (en) * 2014-10-28 2016-05-06 International Business Machines Corporation Instructions controlling access to shared registers of a multi-threaded processor
JP2016532933A (ja) * 2013-07-03 2016-10-20 マイクロン テクノロジー, インク. メモリで制御されるデータ移動及びタイミング
WO2016209406A1 (en) * 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces
US20170255390A1 (en) * 2016-03-01 2017-09-07 Samsung Electronics Co., Ltd. 3-d stacked memory with reconfigurable compute logic
US20170263306A1 (en) * 2016-03-10 2017-09-14 Micron Technology, Inc. Apparatuses and methods for logic/memory devices

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325513A (en) * 1987-02-23 1994-06-28 Kabushiki Kaisha Toshiba Apparatus for selectively accessing different memory types by storing memory correlation information in preprocessing mode and using the information in processing mode
US5517015A (en) * 1990-11-19 1996-05-14 Dallas Semiconductor Corporation Communication module
JPH0845269A (ja) 1994-07-27 1996-02-16 Hitachi Ltd 半導体記憶装置
US5953738A (en) * 1997-07-02 1999-09-14 Silicon Aquarius, Inc DRAM with integral SRAM and arithmetic-logic units
US6438670B1 (en) * 1998-10-02 2002-08-20 International Business Machines Corporation Memory controller with programmable delay counter for tuning performance based on timing parameter of controlled memory storage device
US6240498B1 (en) * 1999-01-06 2001-05-29 International Business Machines Corporation Object oriented storage pool apparatus and method
DE60029270T2 (de) 1999-04-16 2007-07-05 Infineon Technologies North America Corp., San Jose Dynamische Rekonfiguration des Cache-Speichers eines Mikrokontrollers
US6430655B1 (en) 2000-01-31 2002-08-06 Mips Technologies, Inc. Scratchpad RAM memory accessible in parallel to a primary cache
US6792599B2 (en) * 2001-10-15 2004-09-14 Intel Corporation Method and apparatus for an atomic operation in a parallel computing environment
US7581079B2 (en) * 2005-03-28 2009-08-25 Gerald George Pechanek Processor composed of memory nodes that execute memory access instructions and cooperate with execution nodes to execute function instructions
GB0519984D0 (en) 2005-09-30 2005-11-09 Texas Instruments Ltd Configuration interface
US8719516B2 (en) * 2009-10-21 2014-05-06 Micron Technology, Inc. Memory having internal processors and methods of controlling memory access
US20110131381A1 (en) * 2009-11-27 2011-06-02 Advanced Micro Devices, Inc. Cache scratch-pad and method therefor
JP5887989B2 (ja) * 2012-02-24 2016-03-16 富士ゼロックス株式会社 情報処理装置、制御装置および画像形成装置
US9734079B2 (en) 2013-06-28 2017-08-15 Intel Corporation Hybrid exclusive multi-level memory architecture with memory management
US9286216B2 (en) * 2014-01-16 2016-03-15 Carnegie Mellon University 3DIC memory chips including computational logic-in-memory for performing accelerated data processing
US9823925B2 (en) * 2014-03-28 2017-11-21 Intel Corporation Instruction and logic for a logical move in an out-of-order processor
US9003109B1 (en) * 2014-05-29 2015-04-07 SanDisk Technologies, Inc. System and method for distributed computing in non-volatile memory
US9836277B2 (en) 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
US20160239278A1 (en) * 2015-02-16 2016-08-18 Advanced Micro Devices, Inc. Generating a schedule of instructions based on a processor memory tree
TWI518585B (zh) * 2015-05-18 2016-01-21 國立成功大學 具有草稿式記憶體的電子裝置與草稿式記憶體的管理方法
US10853904B2 (en) * 2016-03-24 2020-12-01 Advanced Micro Devices, Inc. Hierarchical register file at a graphics processing unit
US10467092B2 (en) 2016-03-30 2019-11-05 Qualcomm Incorporated Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
US10552152B2 (en) * 2016-05-27 2020-02-04 Arm Limited Method and apparatus for scheduling in a non-uniform compute device
US10503641B2 (en) * 2016-05-31 2019-12-10 Advanced Micro Devices, Inc. Cache coherence for processing in memory
EP3306479A1 (en) * 2016-10-06 2018-04-11 Stichting IMEC Nederland Memory structure comprising scratchpad memory
US10325344B2 (en) * 2017-04-17 2019-06-18 Intel Corporation Efficient merging of atomic operations at computing devices

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0425961A (ja) * 1990-05-22 1992-01-29 Toshiba Corp 共有データ更新方式
JP2009514479A (ja) * 2005-11-01 2009-04-02 エヌエックスピー ビー ヴィ データ処理システムおよびビデオデータの処理方法
JP2012038293A (ja) * 2010-08-11 2012-02-23 Primesense Ltd マシンビジョン用マルチプロセッサシステムオンチップ
JP2013242823A (ja) * 2012-05-23 2013-12-05 Toshiba Corp 情報処理装置、情報処理方法および制御プログラム
US20140040532A1 (en) * 2012-08-06 2014-02-06 Advanced Micro Devices, Inc. Stacked memory device with helper processor
JP2016532933A (ja) * 2013-07-03 2016-10-20 マイクロン テクノロジー, インク. メモリで制御されるデータ移動及びタイミング
JP2015064676A (ja) * 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、半導体装置、情報処理方法およびプログラム
WO2016066487A1 (en) * 2014-10-28 2016-05-06 International Business Machines Corporation Instructions controlling access to shared registers of a multi-threaded processor
WO2016209406A1 (en) * 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces
US20170255390A1 (en) * 2016-03-01 2017-09-07 Samsung Electronics Co., Ltd. 3-d stacked memory with reconfigurable compute logic
US20170263306A1 (en) * 2016-03-10 2017-09-14 Micron Technology, Inc. Apparatuses and methods for logic/memory devices

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023505261A (ja) * 2019-12-06 2023-02-08 ザイリンクス インコーポレイテッド メモリと分散計算アレイとの間のデータ転送
JP2021128752A (ja) * 2020-02-12 2021-09-02 三星電子株式会社Samsung Electronics Co., Ltd. インメモリコンピューティングに対するデータ配置のための方法及びその方法が適用されたメモリモジュール
JP7550614B2 (ja) 2020-02-12 2024-09-13 三星電子株式会社 インメモリコンピューティングに対するデータ配置のための方法及びその方法が適用されたメモリモジュール
US12236239B2 (en) 2020-02-12 2025-02-25 Samsung Electronics Co., Ltd. Systems and methods for data placement for in-memory-compute
JP2024501635A (ja) * 2020-12-16 2024-01-15 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 固定機能動作を使用するオフロードされた命令のプロセッサ誘導実行
EP4535278A4 (en) * 2022-06-28 2025-12-03 Huawei Tech Co Ltd METHOD FOR PROCESSING INPUT DATA FOR A SHADE GAUGE, AND GRAPHICS PROCESSING APPARATUS

Also Published As

Publication number Publication date
US11556476B2 (en) 2023-01-17
KR102289095B1 (ko) 2021-08-12
TW201917567A (zh) 2019-05-01
US11940922B2 (en) 2024-03-26
TWI750406B (zh) 2021-12-21
US10866900B2 (en) 2020-12-15
US20190114265A1 (en) 2019-04-18
US20210096999A1 (en) 2021-04-01
KR20190043072A (ko) 2019-04-25
CN109669887A (zh) 2019-04-23
US20230119291A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
JP2019075101A (ja) インメモリのコマンド処理方法、これを適用する高帯域幅メモリ(hbm)、及びhbmシステム
KR20170027125A (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 처리하는 방법
US9990205B2 (en) System on chip and verification method thereof
US10565131B2 (en) Main memory including hardware accelerator and method of operating the same
US20130194286A1 (en) Graphics processing unit buffer management
US10146687B2 (en) Execution using multiple page tables
KR20120123127A (ko) 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치
US20130151787A1 (en) Mechanism for Using a GPU Controller for Preloading Caches
JP2015534184A (ja) コード実行の柔軟なアクセラレーション
RU2643499C2 (ru) Управление памятью
CN116324717A (zh) 具有早期释放的寄存器紧缩
CN114647446A (zh) 存储级存储装置、计算机模块及服务器系统
US10901883B2 (en) Embedded memory management scheme for real-time applications
TW202119215A (zh) 共用代碼之系統與代碼共用方法
KR20190049098A (ko) 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US12204900B2 (en) Predicates for processing-in-memory
US10725667B2 (en) Method of transferring data in parallel system, and parallel system for performing the same
CN217588059U (zh) 处理器系统
CN113284532B (zh) 处理器系统
CN113609034B (zh) 处理器系统
US12436887B1 (en) Data-driven precision for memory access
US20220326909A1 (en) Technique for bit up-conversion with sign extension
CN120543360A (zh) 图形处理器、芯片产品、计算机设备及数据处理方法
KR20000019461A (ko) 데이터 처리 회로

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220816

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230307