JP2019053734A - 高効率ラーニングシステムのためのヘテロジニアスアクセラレータ - Google Patents

高効率ラーニングシステムのためのヘテロジニアスアクセラレータ Download PDF

Info

Publication number
JP2019053734A
JP2019053734A JP2018171047A JP2018171047A JP2019053734A JP 2019053734 A JP2019053734 A JP 2019053734A JP 2018171047 A JP2018171047 A JP 2018171047A JP 2018171047 A JP2018171047 A JP 2018171047A JP 2019053734 A JP2019053734 A JP 2019053734A
Authority
JP
Japan
Prior art keywords
processing unit
reprogrammable
task
memory
fixed
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
JP2018171047A
Other languages
English (en)
Other versions
JP2019053734A5 (ja
JP7028745B2 (ja
Inventor
ティ マラディ,クリシュナ
T Malladi Krishna
ティ マラディ,クリシュナ
ゾング ゼング,ホング
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 JP2019053734A publication Critical patent/JP2019053734A/ja
Publication of JP2019053734A5 publication Critical patent/JP2019053734A5/ja
Application granted granted Critical
Publication of JP7028745B2 publication Critical patent/JP7028745B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • G06F15/7889Reconfigurable logic implemented as a co-processor
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/768Gate array
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Abstract

【課題】向上した効率性を有する高効率ラーニングシステムのための異種加速器を提供する。
【解決手段】システム100は、タスクスケジューラにより、少なくとも部分的に制御される異種演算環境を含む。異種演算環境は、命令を実行するように構成された固定論理回路を含む固定処理ユニット、プロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む再プログラム可能な処理ユニット及び高帯域メモリダイのスタックを含む。高帯域メモリダイの各々はデータを格納し、再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供する。再プログラム可能な処理ユニットは、少なくとも部分的に高帯域メモリダイと積層され、タスクスケジューラは固定処理ユニット及び再プログラム可能な処理ユニットの間における演算タスクの分担をスケジューリングする。
【選択図】図1

Description

本発明は、一般的な回路に関するものである。特に、本発明は高効率ラーニングシステムのためのヘテロジニアスアクセラレータ(heterogeneous accelerator、異種加速器)に係る装置及びシステムに関する。
ディープニューラルネットワーク(deep neural network)のようなラーニングシステム(learning system)のごとく、最近生まれたアプリケーションは他のデータセットをトレーニングして、高精度で学習するために大量の演算(computation、computing、以下、「コンピューティング」とも言う)能力及びメモリ能力を必要とする。さらに、高性能コンピューティング、グラフィクス作業(operation)などのアプリケーションがデータ集中的及び演算集中的になるにつれて、エネルギー効率性及び低レイテンシが重要になる。
「プロセッシングインメモリ(processing−in−memory)」として知られた技法は、低電力技術プロセスだけではなくデータが存在する場所により近接したメモリ(例えば、動的ランダムアクセスメモリ(DRAM(dyanamic random access memory)など)とロジックを混載したダイにおける複雑な作業をスケジューリングして追加的な演算能力を提供することにより、斯かる難問に挑戦する能力を含む。
高帯域メモリ(HBM: High Bandwidth Memory)は3次元積層メモリ(例えば、DRAM)のための高性能ランダムアクセスメモリ(RAM)インタフェースである。それは、多くのデータをアクセスするネットワーク装置及び高性能グラフィクスアクセラレータと共に使用される。HBMは、一般的に他のDRAM技術(例えば、DDR4、GDDR4など)より、実質的により小さいフォームファクタ(form factor)においてより少ない電力を消費しながら、より広い帯域幅を達成する。これは、多数のメモリダイ(例えば、8個)を一緒に積層することにより、達成する。このような積層は、メモリコントローラを含む選択的な基本ダイ(optional base die)を包含できる。ダイは、TSV(Through Silicon Vias、シリコン貫通ビア)及びマイクロバンプ(micro bump)により連結される。
米国登録特許第8874943B2号公報 米国登録特許第9304730B2号公報 米国登録特許第20140040532A1号公報 米国公開特許第20140181453A1号公報 米国公開特許第20160379115A1号公報
本発明の目的は、向上された効率性を有する高効率ラーニングシステムのための異種加速器を提供することにある。
本発明の一実施例によると、例示的な実施例は、タスクスケジューラにより、少なくとも部分的に制御される異種演算環境(heterogeneous_computing_environment)を含み、前記異種演算環境は命令(instruction)を実行するように構成された固定論理回路を含む処理ユニット(以下、固定処理ユニットという)、プロセッシングインメモリ(processing−in−memory)の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む処理ユニット(以下、再プログラム可能な処理ユニットという)、及び高帯域メモリダイのスタックを含み、前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層され、前記タスクスケジューラは、前記固定処理ユニット及び前記再プログラム可能な処理ユニットの間における演算タスクの分担をスケジューリングするように構成される装置を提供する。
本発明の他の実施例によると、他の例示的な実施例は、中央処理ユニットにより、少なくとも部分的に制御される異種演算環境を含み、前記異種演算環境は固定処理ユニット及び再プログラム可能な処理ユニットの間において演算タスクを割り当てるように構成された前記中央処理ユニット、命令を実行するように構成された固定論理回路を含む前記固定処理ユニット、プロセッシングインメモリ(processing−in−memory)の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む前記再プログラム可能な処理ユニット、高帯域メモリダイのスタック、及び前記固定処理ユニットに専用留保された(reserved)バッファ領域及び前記再プログラム可能な処理ユニットに専用留保されたバッファ領域を含む中央メモリを包含し、前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層される装置を提供する。
本発明の他の実施例によると、もう一つの実施例は異種演算環境の処理ユニットに演算タスクを割り当てるように構成された中央処理ユニット、データを格納するように構成されたシステムメモリ、及び前記異種演算環境を含む異種アクセラレータのマルチチップモジュールを含むシステムを提供する。
前記異種アクセラレータのマルチチップモジュールは、命令を実行するように構成された固定論理回路を含む固定処理ユニット、プロセッシングインメモリ(processing−in−memory)の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む再プログラム可能な処理ユニット、及び高帯域メモリダイのスタックを含み、前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層される。
1つ又はそれ以上の具現の詳細な説明は、添付された図面及び以下の詳細な説明で掲載される。他の特徴は詳細な説明、図面及び特許請求の範囲から表されることができる。
特許請求の範囲でもう少し完全に説明されるように、実質的に図面の少なくとも1つと共に説明されるか、又は図示されるような高効率のラーニングシステムのための異種アクセラレータのシステム及び方法のためのシステム及び/又は方法が提供される。
本発明の実施例によると、高帯域メモリダイのスタックに積層・直結された再プログラム可能な処理ユニットと固定処理ユニットとに対してCPU(タスクスケジューラ)によりタスクが振り分けられ、好ましくは、各ユニットの入出力データが遠距離直接メモリアクセス(RDMA)により高速で転送されるので、向上された効率性を有するラーニングシステムのための異種アクセラレータが提供される。
図1は、本発明によるシステムの例示的な実施例のブロック図である。 図2は、本発明によるシステムの例示的な実施例のブロック図である。 図3は、本発明によるシステムの例示的な実施例のブロック図である。 図4は、本発明によるシステムの例示的な実施例のブロック図である。 図5は、本発明によるシステムの例示的な実施例のブロック図である。 図6は、本発明によるシステムの例示的な実施例のブロック図である。 図7は、本発明の原理によって形成された装置を包含できる情報処理システムの例示的なブロック図である。
多様な図面で類似した参照記号は類似した構成を示す。
多様な例示的な実施例が一部の例示的な実施例を示す添付された図面を参照してさらに詳細に説明される。しかしながら、本文に開示された内容は多様な他の形態で具現されることができ、本文に説明された例示的な実施例に制限されるものと解釈されてはならない。代わりに、このような例示的な実施例は詳細な説明が完全であり、当業者により本発明の技術的思想が完全に伝達されることができるように提供される。図面において、階層及び領域のサイズ及び相対的なサイズは明確性のために誇張される。
構成又は階層が他の構成又は階層と「連結された(on, connected to, or coupled to)」ものと示される場合、これは直接的に(directly)他の構成又は階層と連結されうるか又は1つ以上の中間(intervening)の構成又は階層が存在できると理解されるはずである。対照的に、構成が他の構成又は階層と「直接的に連結された(directly on, directly connected to, or directly coupled to)」ものと示される場合、中間の構成又は階層が存在しない。類似した参照番号は、全体的に類似した構成を示す。本文で使用されるように「及び/又は(and/or)」は、連関されて羅列された目録中で1つ又はそれ以上の組合せの一部及び全部を含む。
「第1(first)」、「第2(second)」、「第3(third)」などの用語は多様な要素(element)、構成部品(component)、領域、階層、及び/又は区域を説明するために本文で使用されるが、このような要素、構成部品、領域、階層、及び/又は区域は、このような用語に限定されないことがよく理解されるはずである。斯かる用語は1つの要素、構成部品、領域、階層又は区域を他の一つの要素、構成部品、領域、階層、又は区域から区分するためにだけ使用される。即ち、以下で記載される第1要素、構成部品、領域、階層、又は区域は本発明の思想及び範囲から逸脱せずに第2要素、構成部品、領域、又は区域と称することができる。
「〜の下(beneath, below, lower, under」,「〜の上(above, upper)」などの空間的に相対的な用語(spatially relative terms)は、図面で図示された他の一つの要素又は特徴と1つの要素又は特徴との関連性を容易に説明するため、本文で使用される。空間的に相対的な用語は、図面に図示された指向性に追加的に作業又は使用で、装置の他の指向性(orientations)を含むと意図されることをよく理解されるはずである。例えば、図面で装置が上下反転される場合、他の要素又は特徴の「下(below or beneath or under)」として説明された要素は、他の要素又は特徴の「上(above)」に向くはずである。即ち、「下(below, under)」の例示的な用語は上及び下の方向を全て包含できる。装置が他の方向(例えば、90度回転するか、又は他の方向)に指向される場合、本文で使用される空間的に相対的な説明は、その指向方向に合わせて解釈されなければならない。
同様に、「ハイ(high)」、「ロー(low)」、「(プルアップ(pull up)」、「プルダウン(pull down)」、「1」、「0」などの電気的な用語は、図面で図示されたように、他の電圧レベル、他の構成又は特徴と相対的な電圧レベル及び電流を表す説明の便宜のために詳細な説明で使用される。電気的に相対的な用語は、図面に図示された電圧又は電流に追加的に使用又は作業において、装置の他の基準電圧を含むことと意図される。例えば、図面で装置又は信号が反転されるか又は他の基準電圧、電流、又は電荷を使用する場合、「ハイ(high)」又は「(プルアップ(pull up)」で説明される構成は、新たな基準電圧又は電流と比較して「ロー(low)」又は「プルダウン(pull down)」である。即ち、「ハイ(high)」の例示的な用語は、相対的に低いか又は高い電圧又は電流を全て包含できる。装置は、他の電気的なフレームの基準に基づき、詳細な説明で使用される電気的に相対的な説明により解釈できる。
詳細な説明で使用される用語は、専ら特定の実施例に対する説明のためであり、本発明の限定を意図しない。詳細な説明で使用されるように、単数形態(singular forms)は、明確に別なものとして定義されない限り、複数形態(plural forms)を含むように意図される。「包含する(comprise)」の用語は、詳細な説明で使用される場合、列挙された特徴、ステップ、作業、要素及び/又は構成部品の存在を特定するが、1つ又はそれ以上の他の特徴、ステップ、作業、要素、構成部品、及び/又はそれらのグループの追加又は存在を排除しない。
例示的な実施例が、理想的な実施例(及び中間構造)の例示的な図面である断面図を参照して詳細な説明で述べられる。このように、例えば、製造技術及び/許容誤差の結果としての図面の形状からの変形が予想されなければならない。即ち、例示的な実施例は、詳細な説明に図示された特定の形状の領域に限定されるものとして解釈されてはならないし、例えば、製造からもたらされる形状の偏差を包含しなければならない。例えば、直四角形で図示された注入された領域は一般的に、注入された領域から注入されない領域への二進変化であるよりは、丸い又は曲線のフィーチャー(feature)及び/又はエッジ(edge)での注入濃度の勾配を有するであろう。同様に、注入によって形成されたベリード(buried)領域はベリード領域と注入が起こる表面間の領域に若干の注入をもたらす。従って、図面に図示された領域は、本質的に概略的であり、その形状はデバイスの領域の実際の形状を説明するためではないし、本発明の範囲を制限しない。
別に定義されない限り、本文で使用される全ての用語(技術的及び科学的用語を包含する)は当業者により共通的に理解される意味を有する。なお、一般的に使用される辞典で定義されたような用語は、関連技術及び/又は本明細書と関連してその意味と一致する意味を有すると解釈されるべきであり、本文で定義されない限り、理想的や過度に形式的な意味で解釈されてはならない。
以下で、例示的な実施例が添付された図面を参照して詳細に説明されるであろう。
図1は、本発明によるシステム100の例示的な実施例のブロック図である。図示された実施例で、システム100は複数の集積回路(IC: Integrated Circuit)ダイを包含できる。斯かる実施例で、ICはマルチチップモジュール(MCM: Multi−Chip Module)として配列される。
しばしば、MCMは、通常、統一基板(unifying substrate)上に複数の集積回路(IC又はチップ)、半導体ダイ、及び/又は他の個別部品(discrete_component)が集積されて、使用時には単一の構成部品(例えば、より大きいIC)のように扱われる、複数の導電端子、即ちピン(pin)を含むパッケージのような電子組立体(製品)であり得る。しかし、上述された構成は単に説明のための実施例であり、本発明はこれに限定されない。
図示された実施例においてシステム100は、HBMダイ112上に形成された高帯域幅のメモリ(HBM: High Bandwidth Memories)のスタック108を包含する。上述されたように、HBMは、データを格納(store)してメモリアクセスが標準DRAM又はシステムメモリよりも速く且つ効率的となるように構成できる。一実施例において、HBMダイ112はプロセッシングインメモリ機能(processing−in−memory functionality)を提供するように構成される。多様な実施例において、HBMダイ112は互いに垂直的に、即ち一つのHBMダイ112が他の一つの上方に積層されているので、TSV(Through−Silicon Vias)、マイクロバンプ又は他の相互チップ接続(図示せず)を通じてHBMダイ112間で通信を遂行できる。
多様な実施例において、HBMダイ112のスタック108は、HBMコントローラダイ110を包含する。HBMコントローラダイ110は、標準メモリアクセスの調整機能(例えば、ページテーブル変換、アドレスマッピング、ライト(write)の組合せなど)を遂行するように構成される。多様な実施例において、HBMコントローラダイ110はHBMダイ112向けに特化したメモリ管理ユニット(MMU: Memory Management Unit)を包含する。
図示された実施例において、システム100はプログラム可能か又は再プログラム可能な処理ユニット106(PPU又はRPU: Programmable or Reprogrammable Processing Unit、図1ではRPUで代表)を包含する。多様な実施例で、RPU106は動的にプログラムされて多様な機能を遂行するか又は特定の命令を実行するロジック回路を包含すると。一実施例において、RPU106はHBMダイ112のプロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成される。多様な実施例において、RPU106はFPGA(Field−Programmable Gate Array)、 ASIC(Application Specific Integrated Circuit)、LUT(Look−Up Table)、 PAL(Programmable Array Logic)などの、しかしこれに限定されないデバイスを包含できる。上述の内容は、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
多様な実施例において、RPU106は、HBMダイ112のスタック108の下方に、又はHBMダイ112と共に積層される。斯かる実施例で、RPU106は、スタック108と直接的に通信するように構成され、スタック108へのアクセスをシステム100の他の構成部品(例えば、固定的なGPU104)へ提供するように構成されうる。
多様な実施例において、RPU106は粗粒子(coarse grain)な、機能即ち命令実行の再構成性(reconfigurability)を提供できる。他の実施例で、RPU106は微粒子(fine grain)な、機能即ち命令実行の再構成性を提供できる。一部の実施例で、RPU106により遂行される作業は、例えば、しかしこれに限定されないが、乗加算演算(multiply−accumulate operations)、データシャフリング (data shuffling)、データ転換 (data transposition)などを包含する、HBMダイ112におけるプロセッシングインメモリの機能制御を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。多様な実施例で、RPU106自身及びRPU106のHBMスタック108への物理的に近接したアクセスは、固定処理ユニット又は回路、若しくは、相対的に遠隔配置された処理ユニット又は回路より、命令(instruction)、タスク(task)、又は作業(operation)のより高速実行を提供できる。
図示された実施例において、システム100は変更不能な、即ち固定処理ユニット104(FPU: Fixed Processing Unit)を包含する。(図中では、FPUの代表例である後述のGPUを並記してFPU/GPUと記載。)このような実施例において、FPU104は多様な命令を実行するか又はロジック作業を遂行するように構成される。FPU104は、FPU104の製造中に静的に形成されて変更不能即ち固定されている論理回路を包含する。但し、多様な構成の設定により固定論理回路の機能具現方法を変更できる。
多様な実施例において、FPU104は、例えばグラフィクス処理ユニット(GPU: Graphic Processing Unit)、暗号化処理ユニット(encryption processing unit)、 物理処理ユニット(physics processing unit)、マシンラーニング処理ユニット (machine learning processing unit) などの特化された処理ユニット(specialized processing unit)を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明がこれに限定されない。多様な実施例において、FPU104はスタック108と直接的に通信しないように(積層ではなく)並置される。
多様な実施例において、システム100はインタポーザ(interposer)ダイ又はレイヤ(layer)120を包含する。斯かる実施例で、インタポーザ120はシリコン(silicon)又は他の基板(substrate)を包含でき、FPU104及びRPU106(及びスタック108)の間の通信経路を提供する。斯かる実施例で、インタポーザ120はRPU106及びFPU104の下方にあって、RPU106及びFPU104と互いに連結される。
図示された実施例において、システム100はパッケージ基板ダイ122を包含する。パッケージ基板ダイ122は、他の構成部品(ダイ)間、及びシステム110の外部との間を通信するように構成される。多様なダイ(122、120,104,106など)は、複数のはんだバンプ(solder bumps)124により連結される。
図2は、本発明によるシステム200の例示的なブロック図である。図示された実施例で、システム200は複数の集積回路(IC)ダイを包含できる。斯かる実施例で、ICはマルチチップモジュール(MCM)として配列される。
図示された実施例において、システム200は上述されたように、HBMダイ112及びHBMコントローラダイ110からなるスタック108、RPU106、FPU104、インタポーザ120及びパッケージ基板122を包含する。図示された実施例において、複数の可能な追加されたダイ又は構成部品(component)が図示される。多様な実施例で、1つ又はそれ以上の斯かるダイが、以下で説明されるように、システム200に包含される。他の実施例で、一つ又はそれ以上の斯かるダイ又は構成部品は、他のICパッケージの部分として又はより大きいシステムの部分として包含されることができる。例えば、中央処理ユニット(CPU)及び/又はシステムメモリがデスクトップ(desktop)又はラップトップコンピュータ(laptop computer)の部分として包含されうる。
多様な実施例において、システム200は中央処理ユニット(CPU: Central Processing Unit)を包含する。斯かる実施例で、CPU202はダイに包含され、マイクロプロセッサ及び/又は複数のプロセッサコアを包含する。CPU202は命令を処理して管理するシステムの主構成部品(primary component)である。CPU202は、OS(operating system、オペレーティングシステム)及びアプリケーションの実行を主に担当する。多様な実施例で、CPU202はARM社又はIntel社により生産されるような汎用演算構造(general purpose computing architecture)を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明の範囲はこれに限定されない。図示された実施例において、CPU202はシステム200の異種コンピューティング環境(heterogeneous computing environment)を制御し、FPU104及びRPU106の間で演算作業を分割して割り当てるように構成される。
多様な実施例において、システム200はCPUメモリダイ212を包含する。CPUメモリダイ212はCPU202の上部に積層されうる。斯かる実施例で、CPUメモリはデータを格納するように構成され、CPU202から直接的にアクセスできる。一部の実施例で、CPUメモリ212はシステムメモリを包含する。他の実施例で、システムメモリ(例えば、DRAM)は、システム200の外部に位置する。
多様な実施例において、システム200はFPUメモリダイ214を包含する。一部の実施例で、FPUメモリダイはFPUの上方に積層される。このような実施例で、FPUメモリ214はデータを格納するように構成され、FPU104から直接的にアクセスできる。
多様な実施例において、システム200の三つのプロセッサ(RPU106、FPU104及びCPU202)には、多様なコンピューティングタスク、命令、又はカーネル(kernel)の実行がそれらの間に割り当てられる。このような脈絡で、「カーネル(kernel)」は、タスク又は定義可能なサブタスク(definable sub−task)を実行するように共にグループ化された1つ又はそれ以上の命令として定義される。
カーネルの境界(bounds of kernel)はサブルーチンと一致する場合としない場合があるので、サブルーチンの同義語(synonymous terms)と見做すべきではない。斯かる脈絡で、「カーネル(kernel)」の用語は「コンピュートカーネル(compute kernel)」の用語と少し類似して、「OSカーネル(operating system kernel)」、「カーネル方式(kernel method)」、「イメージカーネル(image kernel)」のようなカーネルの他の定義、又は数学で使用されるカーネルの多様な定義と混同してはならない。
このような実施例において、システム200の三つのプロセッサ(RPU106、FPU104、及びCPU202)はタスクを分配して効率性を向上し、電力の使用及びメモリ帯域幅の消耗を低減できる。多様な実施例で、これはARM社のビッグリトル異種演算構造(big.LITTLE heterogeneous computing architecture)と類似するが、同一ではない。ARM社のビッグリトル異種演算構造においては、バッテリ節減的で低速のプロセッサコア(LITTLE)は、相対的にさらに強力で電力消耗が多いプロセッサコア(big)と連結される。このような実施例で、相異なる形態のコア間で(例えば、ビッグ(big)及びリトル(LITTLE)コア、RPU106、FPU104、CPU202などの間で)、作業負荷(workloads)がスワップ(swap、交換)できる。斯かる実施例で、マルチコアシステム200は動的な演算要求に適応してより少ない電力を使用できる(又はより速くなれる)。上述されたのは単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
図3は、本発明によるシステム300の例示的な実施例のブロック図である。多様な実施例で、システム300は図1及び/又は図2に図示されたダイ又は他のICから構成される。
図示された実施例において、システム300は、固定論理回路を含む処理ユニット(以下、固定処理ユニット(FPU)という)304及び再プログラム可能な論理回路を含む処理ユニット(以下、再プログラム可能な処理ユニット(RPU)という)306、並びにそれらに対して演算(コンピューティング)タスクを割り当てるように構成されたCPU(即ち、ホストプロセッサ又はタスクスケジューラ)302を包含する。多様な実施例で、タスクスケジューラ302は、少なくとも部分的にシステム300を制御するように構成される。多様な実施例で、タスクスケジューラ302はプロセッサ(例えば、CPU)を包含するが、他の実施例で、作業スケジューラ302は、より汎用ではない回路(即ち、専用回路)を包含する。
図示された実施例において、システム300は、上述されたように、固定処理ユニット(FPU)304(例えば、GPU、DSP(Digital Signal Processor)など)を包含する。システム300は、上述されたように、再プログラム可能な処理ユニット(RPU)306(例えば、FPGAなど)を包含する。システム300は、上述されたように、更にHBMスタック308を包含する。
図示された実施例において、FPU304及びRPU306は制御経路及び/又はデータ経路を集積された形で包含するように構成される。斯かる実施例で、コンピューティングタスク(及びそれに連関されたデータ)は、2つのプロセッサ(304,306)間で転送されるか又はハンドオフ(hand−off)される。以下で説明されるように、多様な実施例で、タスク及びデータのスイッチングは自己調節方式で発現されるか、又はCPU302により調節される。
図示された実施例において、FPU304は、プログラマー又はユーザに、公知のFPU(例えば、GPU)プログラミングモデル又はAPI(Application Programming Interfaces)、及びFPUと連関されたデータアクセスプロトコル又はモデルの利用を可能にする。反面、RPU304の再プログラム能力は、効率性を(例えば、電力、時間など)を増加し、動的に変更可能な特定タスク専用の回路(task specific circuitry)を具現できる。
図4は、本発明によるシステム400の例示的な実施例のブロック図である。多様な実施例で、システム400の各部分は図1及び/又は図2に図示されたダイ又は他のICで構成される。システム400は、図3に簡略に図示されたタスク転送の一実施例を示す。
図示された実施例において、システム400は、上述されたように、固定処理ユニット304(例えば、GPU、DSP(Digital Signal Processor)など)を包含する。システム400は、上述されたように、RPU306(例えば、FPGAなど)を包含する。システム400は、上述されたように、HBMスタック308を包含する。
図示された実施例において、システム400はデータを格納するように構成され、CPU302により又はその制御下に直接的にアクセスされるシステムメモリ412を包含する。システム400はデータを格納し、FPU304により又はその制御下に直接的にアクセスされるように構成されたFPUメモリ414を包含する。
図示された実施例において、CPU302は連結バス(interconnect bus)を介しFPU304及びRPU306と連結される。多様な実施例で、連結バス402は、例えば、PCIe(Peripheral Component Interconnect express)プロトコルのような直列プロトコルを使用できる。上述されたのは、単に説明のための実施例であり、本発明がこれに限定されない。
図示された実施例において、CPU(又はホスト、又はタスクスケジューラ)302は第1タスク、サブタスク、又はタスク490の一部をFPU304に割り当てる。FPU304は例えば第1サブタスクと連関された命令の実行を開始し、タスク490と連関されたデータ404のアクセスを望む。図示された実施例で、データ404はHBMスタック308に格納されている場合がある。
図示された実施例において、RPU306は直接メモリアクセス(DMA: Direct Memory Access)、RDMA(Remote DMA)エンジン(又はRDMA回路)464を包含する。RPU306がHBMスタックと直接的に連結されるから、RPU306はHBMスタック308へのアクセスをゲート(制御)できる。多様な実施例で、RPU306がRDMAエンジン464を実行する場合、他のプロセッサはRPU306を介してHBMスタック308からのDMA呼出又は要請を遂行できる。そこでRDMAエンジン464はDMA要請を提供するか又は遂行できる。
図示された実施例において、FPU304はRDMAアクセスの要請をRDMAエンジン464へ提供する。RDMAはHBMスタック308からデータ404を回収する、即ち、リード(read)し、それをFPU304に提供する。多様な実施例で、FPU304は1つ又はそれ以上のアクセスレジスタ444を包含する。斯かる実施例で、データ404又はデータ404の一部は、アクセスレジスタ444(例えば、256メガバイトの部分)にバッファリングされる、即ち、一時記憶(stage)される。以後、データ404はFPUメモリ414に複写される。以後、FPU304はデータ404に対して割り当てられたタスク490の一部を実行できる。
図示された実施例において、CPU(又はタスクスケジューラ)302は第2タスク、サブタスク又はタスク490の一部をRPU306に割り当てる。多様な実施例で、RPU306はタスク490の第2の部分をRPU306上で効率的に又は好ましい形で実行するロジック回路としてプログラムされうる。例えば、RPU306に割り当てられたタスク490の一部はHBMスタック308のHBMダイのプロセッシングインメモリの機能の制御を包含する。FPU304がタスク490の第1の一部を完了した場合、FPU304はRPU306にカーネルをオフロード(offload)すること又はタスク490の残りの実行を伝送するのを中断する。
図示された実施例において、RPU306は、タスク490の第2部分の処理の開始の準備完了を報らせるレディーフラッグ(ready flag)462又は他の何らかの指示を包含する。一部の実施例で、RPU306は多数のレディーフラッグ462を包含し、各々は多様なロジック回路と連関され、該ロジック回路はそれぞれタスクを遂行できる。FPU304は、RPU306を周期的にチェックするか又はポーリングしてRPU306へタスク490の処理を転送する時期であるかを確認するように構成されたポーリング回路442を包含する。多様な実施例で、他のフラッグ基盤の同期化プロトコルが採用される。
FPU304が、RPU306が準備されたことを認識した場合、タスク490又はデータ404の所有権が2つのプロセッサ(304、306)間で転送される。以後、RPU306は割り当てられたタスク490の第2部分の実行を開始する。多様な実施例で、CPU302はFPU304にRPU306がタスク490の第2部分の実行を開始する準備完了を報らせるように構成される。斯かる実施例で、RPU306は、CPU302にこれを報らせることができるか、又はCPU302は、RPU306の状態をモニタする。(例えば、CPU302は、RPU306が他のタスクを完了したことを認識できる。)
多様な実施例において、データ404はFPUメモリ414からHBMスタック308へ上述されたRDMAプロトコルを使用して転送される。以後、RPU306はHBMスタック308に格納されたデータ404を直接的にアクセスできる。RPU306がタスク490の第2部分を実行する間、FPU304は中断又は停止するか又は非同期的に他のタスクを遂行してFPU304の演算電力を浪費しないようにする。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
一部の実施例において、タスク実行は類似した方式で、しかし逆向きの手順で、RPU306からFPU304(又はCPU302)に変更される。斯かる実施例で、FPU304、RPU306、及びCPU302間のデータ同期化は、上述されたところと類似に、現出できる。
図5は、本発明によるシステム500の例示的な実施例のブロック図である。多様な実施例で、システム500の部分は、図1及び/又は図2に図示されたダイ又は他のICで構成される。システム500は、図3に簡略に図示されたタスク転送の一実施例を示す。
図示された実施例において、システム500は、上述されたように、固定処理ユニット304(例えば、GPU、DSPなど)を包含する。システム500は、上述されたように、RPU306(例えば、FPGAなど)を包含する。システム500は、上述されたように、HBMスタック308をも包含する。
図示された実施例において、システム500はデータを格納するように構成され、FPU304により又はその制御下に直接的にアクセスされるFPUメモリ414を包含する。システム500はFPU304と連関されたデータを格納するように構成されたFPUバッファ又は中央メモリ514を包含する。システム500はRPU306と連関されたデータを格納するように構成されたRPUバッファ又は中央メモリ516をも包含する。
このような実施例で、FPUバッファ514及びRPUバッファ516はCPU302により制御されるか又はアクセスされる。多様な実施例で、FPUバッファ514及びRPUバッファ516は、システムメモリ(例えば、図4に図示されたシステムメモリ412)の部分又は領域であるか又は別途のメモリ回路である。
図示された実施例において、CPU302は連結バス(interconnect bus)402を介しFPU304及びRPU306と連結される。多様な実施例で、連結バス402は、例えば、PCIe(Peripheral Component Interconnect express)プロトコルのような直列プロトコルを使用できる。上述されたのは、単に説明のための実施例であり、本発明はこれに限定されない。
上述されたように、CPU(又はタスクスケジューラ)302は多様なタスク590又はタスク590の或る部分を、実行のため、FPU304及びRPU306に分散するか又は割り当てる。多様な実施例で、斯かる割当は、少なくとも部分的に、どのプロセッサが利用可能であり、且つ、より効率的にタスクを実行できるか、という点に基づく。上述されたように、CPU302はFPU304にタスク590の第1部分を割り当てて、タスク590の第2部分をRPU306に割り当てられる。例えば、RPU306に割り当てられた多様なタスク590の部分は、HBMスタック308のHBMダイのプロセッシングインメモリの機能の制御を包含できる。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
図示された実施例において、FPU304は上述されたように、割り当てられたタスクを実行する。斯かる実施例で、FPU304は一時記憶(temporary)キャッシュ、即ち、作業用(working)メモリとしてFPUメモリ414を使用する。割り当てられたタスク、サブタスク又はタスク590の一部が完了された場合、FPU304はデータをFPUバッファ514に書き込む。
このような実施例においては、これはFPU304及びFPUバッファ514間で媒介体として作業するか、又は少なくともデータ504がFPUバッファ514に書き込み中であることを報らされているCPU302を包含する。一部の実施例で、これは、メモリ割当機能又は手続呼出(procedure call)(例えば、GPUの場合で、「CUDAMalloc()」の呼出が生成される。「CUDAMalloc()」はNVIDIA社が開発したGPU向けの汎用並列コンピューティングプラットフォームで使用される関数である)を通じて行われる。斯かる実施例で、FPU304はCPU302にデータを複写し、CPU302はFPUバッファ514にデータを順次的に複写する。
図示された実施例において、以後、CPU302はデータ504をFPUバッファ514からRPUバッファ516へ転送する。斯かる実施例で、CPU302は、FPU304及びRPU306間(少なくともFPUバッファ514と,RPUバッファ516との間)でデータ同期化及びデータ転送のタイミングを制御する。
図示された実施例において、FPUバッファ514とRPUバッファ516間のデータ504の複写が完了された場合、CPU302はトリガイベント(triggering event)546を開示してデータ504が準備されたことをRPU306に報らせる。多様な実施例で、このようなトリガイベント546は、インタラプト信号、連結バスを介したメッセージ、又はRPU306への信号を包含する。図示された実施例で、RPU306はトリガイベント546を感知して反応するように構成されたポーリング回路542を包含する。また、斯かる実施例で、CPU302はデータ転送のタイミングを制御する。多様な実施例で、ポーリング回路542はRPUと関連されたドライバ又はファームウェアと共に作業する。上述されたのは、単に説明のための実施例であり、本発明はこれに限定されない。
このような実施例において、トリガイベント546が発生した場合、RPU306はデータ504をRPUバッファ516からHBMスタック308へ複写する。以後、RPU306はそれ自身に割り当てられたタスク、サブタスク又はタスク590の一部を実行する。前に説明されたように、RPU306に割り当てられたタスク590の一部はHBMスタック308のHBMダイのプロセッシングインメモリの機能の制御を包含する。RPU306がタスク590の第2部分を実行する間ち、FPU304は中断又は停止するか又は非同期的に他のタスクを遂行してFPU304の演算電力を浪費しないようにする。上述されたのは、単に説明のための幾つかの実施例であり、本発明がこれに限定されるものではない。
一部の実施例において、 タスク実行は類似した方式で、しかし逆向きの手順で、RPU306からFPU304(又はCPU302)に変更される。斯かる実施例で、FPU304、RPU306、及びCPU302間のデータ同期化は、前に説明されたところと類似に、現出できる。
図6は、本発明によるシステム600の例示的な実施例のブロック図である。多様な実施例で、スステム500の部分は、図1及び/又は図2に図示されたダイ又は他のICで構成される。システム500は図3に簡略に図示されたタスク転送の一実施例を示す。
図示された実施例において、システム600は、上述されたように、固定処理ユニット304(例えば、GPU、DSPなど)を包含する。システム600は、上述されたように、RPU306(例えば、FPGAなど)を包含する。システム600は、上述されたように、HBMスタック308をも包含する。
図示された実施例において、システム600は、データを格納するように構成され、FPU304により又はその制御下に直接的にアクセスされるFPUメモリ414を包含する。システム600は、上述されたように、システムメモリ412を包含する。
図示された実施例において、CPU302は連結バス(interconnector bus)402を介しFPU304及びRPU306と連結される。多様な実施例で、連結バス402は、PCIe(Peripheral Component Interconnect express)プロトコルのような直列プロトコルを使用できる。上述されたのは、単に説明のための実施例であり、本発明がこれに限定されない。
上述されたように、CPU(又はタスクスケジューラ)302は多様なタスク690又はタスク690の或る部分を、実行のため、FPU304及びRPU306に分散するか又は割り当てる。多様な実施例で、斯かる割当は、少なくとも部分的に、どのプロセッサが利用可能であり、且つ、より効率的にタスク690を実行できるか、という点に基づく。上述されたように、CPU302はFPU304にタスク590の第1部分を割り当てて、タスク590の第2部分をRPU306に割り当てられる。例えば、RPU306に割り当てられたタスク590の部分は、HBMスタック308のHBMダイのプロセッシングインメモリの機能の制御を包含できる。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
図示された実施例において、FPU304は、上述されたように、割り当てられたタスクを実行する。斯かる実施例で、FPU304は一時記憶キャッシュ、即ち、作業用メモリとしてFPUメモリ414を使用する。割り当てられたタスク、サブタスク又はタスク690の一部が完了された場合、FPU304はデータ604をシステムメモリ412に書き込む。
図示された実施例において、FPU304はRDMA(Remote Direct Memory Access)を通じてシステムメモリ412にアクセスする。多様な実施例で、これは、CPU302又は少なくともCPU302の積極的な関与を本質的にバイパス(bypass)する。矢印614はFPU304が、直接(又はCPU302のDMAエンジンを使用して)データをシステムメモリ412に書き込むアクセスを示す。
システムメモリ412へのデータの書き込みが完了された場合、データが使用のため準備されたことをRPU306に報らせるために、トリガイベント646(例えば、インタラプトなど)が開始される。多様な実施例で、トリガイベント646は、上述されたように、CPU302により生成される。他の実施例で、トリガイベント646はFPU304により生成される。
図示された実施例において、RPU306は、トリガイベント646が発生した時を感知するポーリング回路642を包含する。このような実施例で、以後、RPU306はデータ604をシステムメモリ412からHBMスタック308へ複写する。(矢印616により図示される)多様な実施例で、これはRDMAを介して行われることができる。斯かる実施例で、RPU306は、図4に図示されたように、RDMAエンジンを包含できる。
以後、306はそれ自身に割り当てられたタスク、サブタスク又はタスク690の一部を実行できる。タスク、サブタスク又はタスク690の一部はHBMスタック308のHBMダイのプロセッシングインメモリの機能の制御を包含する。RPU306がタスク690の第2部分を実行する間、FPU304は停止か中断か、又は非同期的に他のタスクを遂行して、FPU304の演算電力の浪費を回避できる。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
一部の実施例において、タスク実行は類似した方式で、しかし逆向きの手順で、RPU306からFPU304(又はCPU302に)に変更される。斯かる実施例で、FPU304、RPU306及びCPU302間のデータ同期化は、前に説明されたところと類似に現出できる。
図7は、本発明の理論によって形成された半導体装置を包含できる情報処理システム700の例示的なブロック図である。
図7を参照すると、情報処理システム700は、本発明の理論によって構成された1つ又はそれ以上の装置を包含する。他の実施例で、情報処理システム700は本発明の理論による1つ又はそれ以上の技法を使用するか又は実行できる。
多様な実施例において、情報処理システム700は、例えば、ラップトップ(laptop)、デスクトップ(desktop)、ワークステーション(workstation)、サーバー、ブレードサーバー(blade server)、個人用デジタル端末機(PDA: Personal Digital Assistant)、スマートフォン、タブレット(tablet)及び他の適切なコンピュータのようなコンピューティング装置、又はそれらの仮想マシン又は仮想コンピューティング装置を包含する。多様な実施例で、情報処理システム700はユーザ(図示せず)により使用され得る。
本発明による情報処理システム700は、中央処理ユニット(CPU)、ロジック、又はプロセッサ(以下、プロセッサで代表)710を包含できる。一部の実施例で、プロセッサ710は1つ又はそれ以上の機能ユニットブロック(FUB: Functional Unit Block)又は組合せ論理ブロック(CLB: Combinational Logic Block)715を包含する。このような実施例で、組合せ論理ブロックは、多様なブール論理動作(Boolean Logic Operation)(例えば、NAND、NOR、NOT、XORなどの演算)、双安定ロジック装置(例えば、フリップフロップ、ラッチ)、他のロジック装置、又はそれらの組合せを包含する。斯かる組合せロジック動作は、入力信号を処理して意図された結果を達成するように単純な方式又は複雑な方式で構成されることができる。同期組合せロジック動作の幾つかの例示的な実施例が説明されたが、本発明はこれに限定されず、非同期動作又はそれらの組合せを包含する。一実施例で、組合せロジック動作は複数の相補型金属酸化半導体(CMOS: Complementary Metal Oxide Semiconductor)トランジスタを包含する。多様な実施例で、斯かるCMOSトランジスタは、論理的動作を遂行するゲートを構成するように配列される。他の技術が使用できるが、これは本発明の範囲内に含まれる。
本発明による情報処理システム700は、揮発性メモリ720(例えば、RAM(Random Access Memory)をさらに包含する。本発明による情報処理システム700は、不揮発性メモリ730(例えば、ハードドライブ、光学ドライブ、ナンド又はフラッシュメモリ)をさらに包含する。幾つかの実施例で、揮発性メモリ720、不揮発性メモリ730、或いはそれらの部分又は組合せの中で何れか1つは、「格納媒体(storage medium)」と称される。多様な実施例で、揮発性メモリ720及び/又は不揮発性メモリ730は、半永久的、即ち、実質的に永久的な形態でデータを格納するように構成される。
多様な実施例において、情報処理システム700は、1つ又はそれ以上のネットワークインタフェース740を包含する。1つ又はそれ以上のネットワークインタフェース740は、情報処理システム700が通信ネットワークの一部分となって通信ネットワークを介して通信するように構成される。
ワイファイ(Wi−Fi)プロトコルの例は、IEEE(Institute of Electrical and Electronics Engineers) 802.11g、IEEE802.11nを包含するが、これに限定されない。
セルラー(cellular)プロトコルの例は、IEEE802.16m(別名:無線−MAN(Metropolitan Area Network) Advanced)、LTE(Long Term Evolution) Advanced、EDGE(Enhanced Data rates for GSM(登録商標)(Global System for Mobile Communications) Evolution)、HSPA+(Evolved High−Speed Packet Access)を包含するが、これに限定されない。有線プロトコルの例は、IEEE 802.3(別名:イーサネット(登録商標)(Ethernet))、ファイバチャンネル(Fiber Channel)、電力線通信(例えば、ホームプラグ(HomePlug)、IEEE1901)を包含するが、これに限定されない。
本発明による情報処理システム700はユーザインタフェースユニット750(例えば、ディスプレイアダプタ(display adapter)、ハプティックインタフェイス(haptic interface)、ヒューマンインタフェース(human interface)装置)をさらに包含する。多様な実施例で、このようなユーザインタフェースユニット750は、ユーザからの入力を受信するように、及び/又はユーザに出力を提供するように、構成される。なお、他の種類の装置もまた、ユーザとの相互作用を提供するために使用できる。例えば、ユーザに提供されたフィードバックは何らかの形の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであり、ユーザからの入力は音、音声、又は触覚入力を含む、何らかの形で受信される。
多様な実施例において、情報処理システム700は1つ又はそれ以上の他の装置又はハードウェア構成部品760(例えば、ディスプレイ、モニタ、キーボード、マウス、カメラ、指紋認識機又はビデオプロセッサ)を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
本発明による情報処理システム700は1つ又はそれ以上のシステムバス705をさらに包含する。斯かる実施例で、システムバス705は、プロセッサ710、揮発性メモリ720、不揮発性メモリ730、ネットワークインタフェース740、ユーザインタフェースユニット750及び1つ又はそれ以上のハードウェア構成部品760を通信的に連結するように構成される。プロセッサ710により処理されたデータ又は不揮発性メモリ730の外部から入力されたデータは、不揮発性メモリ730又は揮発性メモリ720の中の何れか1つに格納される。
多様な実施例において、情報処理システム700は1つ又はそれ以上のソフトウェア構成部品770を包含するか又は実行できる。幾つかの実施例で、ソフトウェア構成部品770は、OS(Operating System、オペレーティングシステム)及び/又はアプリケーションを包含できる。幾つかの実施例で、OSは1つ又はそれ以上のサービスをアプリケーションに対して提供し、アプリケーションと、情報処理システム700の多様なハードウェア構成部品(例えば、プロセッサ710、ネットワークインタフェース740)との間で媒介体として世話役となって動作する。
斯かる実施例で、情報処理システム700は局部的に(例えば、不揮発性メモリ730内に)設置されてプロセッサ710により直接実行されるか又はOSと直接的に相互作用するように構成される1つ又はそれ以上の基本アプリケーション(native applications)を包含する。斯かる実施例で、基本アプリケーションは、予めコンパイルされたマシン実行可能なコード(pre−compiled machine executable code)を包含する。幾つかの実施例で、基本アプリケーションは、ソースコード又はオブジェクトコードをプロセッサ710により実行される、プロセッサ710が実行可能なコードに変換するように構成されたスクリプト解釈機(例えば、csh(C−shell)(登録商標)、AppleScript(登録商標)、AutoHotkey(登録商標))又は仮想実行マシン(VM:Virtual execution Machine)(例えば、ジャバ仮想マシン(JAVA_Virtual_Machine)(登録商標)、マイクロソフト共通言語ランタイム(Microsoft_Common_Language_Runtime)(登録商標))を包含する。
上述された半導体装置は、多様なパッケージング技法を使用して構成されうる。例えば、本発明の理論により構成された半導体装置は、POP(package on package)技法、BGA(ball grid arrays)技法、CSPs(chip scale packages)技法、PLCC(plastic leaded chip carrier)技法、PDIP(plastic dual in−line package)技法、die_in_waffle pack技法、die_in_wafer form技法、COB(chip on board)技法、CERDIP(ceramic dual in−line package)技法、PMQFP(plastic metric quad flat package)技法、PQFP(plastic quad flat package)技法、SOIC(small outline IC package)技法、SSOP(shrink small outline package)技法、TSOP(thin small outline package)技法、TQFP(thin quad flat package)技法、SIP(single in−line_package)技法、MCP(multi−chip package)技法、WFP(wafer−level fabricated package)技法、WSP(wafer−level processed stack package)技法、又は、当業者によく知られた他の技法の中で何れか1つを使用して構成される。
方法のステップは、コンピュータプログラムを実行する1つ又はそれ以上のプログラム可能なプロセッサにより遂行されて、入力データに対し作業して出力を生成することにより機能を遂行する。方法のステップは特定目的向け論理回路(例えば、FPGA(field programmable gate array)又はASIC(application−specific integrated circuit))により遂行され、装置は特定目的向け論理回路として具現される。
多様な実施例において、コンピュータ読み取り可能な媒体は、命令(instruction)を包含する。命令が実行される時、装置は方法のステップの少なくとも一部を遂行する。幾つかの実施例で、コンピュータ読み取り可能な装置は、磁気媒体、光学媒体、他の媒体又はそれらの組合せ(例えば、CD−ROM、ハードドライブ、リード(read)専用メモリ、フラッシュドライブ)に含まれる。斯かる実施例で、コンピュータ読み取り可能な媒体は有形であり、非一時的に具現された製品であり得る。
本発明の理論が例示的な実施例を参照して説明されたが、多様な変化及び変更が本発明の思想及び範囲からの逸脱なしに行われることは、当業者には明らかであろう。よって、上述された実施例は発明の範囲を何ら限定するものではなく、単に例示するものとして理解されなければならない。即ち、本発明の範囲は、以下の特許請求の範囲及びそれの均等物の最も広く許容される解釈により決定されるものであり、前の説明により制限されたり、限定されたりしてはならない。従って、添付された特許請求の範囲は、実施例の範囲内に含まれる全ての変更及び変化を包含するように意図されたものとして理解されるべきである。
本発明は、向上された高効率ラーニングシステムを有する異種アクセラレータに有用である。
100、200、300,400、500、600 システム
104 固定処理ユニット、FPU、FPU/GPU
106 再プログラム可能な処理ユニット、RPU
108、308 スタック
110 HBMコントローラ
112 HBMダイ
120 インタポーザ、インタポーザダイ、インタポーザレイヤ
122 基板ダイ、パッケージ基板ダイ
124 はんだバンプ
202 中央処理ユニット、CPU
212 CPUメモリ、CPUメモリダイ
214 FPUメモリ、FPUメモリダイ
302 タスクスケジューラ、CPU、(ホスト)プロセッサ
304 FPU、固定処理ユニット
306 RPU、再プログラム可能な処理ユニット
402 連結バス
404、504、604 データ
412 システムメモリ
414 FPUメモリ
442 ポーリング回路
444 アクセスレジスタ
462 レディーフラッグ
464 RDMAエンジン又はRDMA回路
490、590,690 タスク
514 FPUバッファ、中央メモリ
516 RPUバッファ、中央メモリ
542、642 ポーリング回路
546、646 トリガイベント
614、616 データ(604)の転送経路
700 情報処理システム
705 システムバス
710 中央処理ユニット(CPU)、ロジック、又はプロセッサ、プロセッサ
715 CLB
720 揮発性メモリ
730 不揮発性メモリ
740 ネットワークインタフェース
750 ユーザインタフェースユニット
760 ハードウェア構成部品
770 ソフトウェア構成部品
CLB 組合せ論理ブロック
CPU 中央処理ユニット
FPU 変更不能な、即ち固定処理ユニット
FUB 機能ユニットブロック
GPU グラフィクス処理ユニット
PPU プログラム可能な処理ユニット
RPU 再プログラム可能な処理ユニット

Claims (20)

  1. タスクスケジューラにより、少なくとも部分的に制御される異種演算環境を含み、
    前記異種演算環境は、
    命令を実行するように構成された固定論理回路を含む処理ユニット(以下、固定処理ユニットという)と、
    プロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む処理ユニット(以下、再プログラム可能な処理ユニットという)と、
    高帯域メモリダイのスタックと、を含み、
    前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、
    前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層され、
    前記タスクスケジューラは、前記固定処理ユニット及び前記再プログラム可能な処理ユニットの間における演算タスクの分担をスケジューリングするように構成される、装置。
  2. 前記固定処理ユニットはグラフィクス処理ユニットを含む、請求項1に記載の装置。
  3. 前記固定処理ユニットは遠距離直接メモリアクセス(RDMA、remote direct memory accesses)を通じて前記高帯域メモリダイに格納されたデータにアクセスするように構成され、
    前記再プログラム可能な処理ユニットは前記固定処理ユニットから遠距離直接メモリアクセスをサービスするように構成された直接メモリアクセス回路を含み、
    前記遠距離直接メモリアクセスは前記高帯域メモリダイに対して発生する、請求項1に記載の装置。
  4. 前記固定処理ユニットは前記高帯域メモリダイからのデータを臨時格納するように構成されたレジスタメモリを含む、請求項1に記載の装置。
  5. タスクスケジューラは前記固定処理ユニットがタスクの第1部分を実行し、前記再プログラム可能な処理ユニットが前記タスクの第2部分を実行するように構成され、
    前記固定処理ユニットは前記タスクの実行を中断し、フラッグ基盤の同期化プロトコルに少なくとも部分的に基づいて前記タスクの実行を前記再プログラム可能な処理ユニットにオフロード(offload)するのを待機するように構成された、請求項1に記載の装置。
  6. 前記固定処理ユニットは前記再プログラム可能な処理ユニットをポーリング(polling)し、前記再プログラム可能な処理ユニットが前記タスクを実行する準備になったかを判定するように構成された、請求項5に記載の装置。
  7. 前記タスクスケジューラは前記再プログラム可能な処理ユニットが前記タスクを実行する準備になったことを前記固定処理ユニットに知らせるように構成された、請求項5に記載の装置。
  8. 中央処理ユニットにより、少なくとも部分的に制御される異種演算環境を含み、
    前記異種演算環境は、
    固定処理ユニット及び再プログラム可能な処理ユニットの間において演算タスクを割り当てるように構成された前記中央処理ユニットと、
    命令を実行するように構成された固定論理回路を含む前記固定処理ユニットと、
    プロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む前記再プログラム可能な処理ユニットと、
    高帯域メモリダイのスタックと、
    前記固定処理ユニットに専用留保されたバッファ領域及び前記再プログラム可能な処理ユニットに専用留保されたバッファ領域を含む中央メモリを包含し、
    前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、
    前記再プログラム可能な処理ユニットに少なくとも部分的に前記高帯域メモリダイが積層される、装置。
  9. 前記中央処理ユニットは第1タスクを、実行のため、前記固定処理ユニットに割り当てるように構成され、
    前記固定処理ユニットは前記第1タスクの実行が少なくとも部分的に完了された場合、前記中央処理ユニットにデータを複写するように構成され、
    前記中央処理ユニットは第2タスクを、実行のため、前記再プログラム可能な処理ユニットに割り当て、前記データを前記再プログラム可能な処理ユニットにおいて可用にするように構成された、請求項8に記載の装置。
  10. 前記中央処理ユニットは前記データを前記固定処理ユニットに専用留保された前記バッファ領域から前記再プログラム可能な処理ユニットに専用留保された前記バッファ領域に複写するように構成された、請求項9に記載の装置。
  11. 前記中央処理ユニットは少なくとも部分的に前記固定処理ユニット及び前記再プログラム可能な処理ユニット間で転送されたデータのタイミングを制御するように構成された、請求項8に記載の装置。
  12. 前記再プログラム可能な処理ユニットは前記データに対するタスクが実行される前に、前記データを前記中央メモリから前記高帯域メモリダイに複写するように構成された、請求項8に記載の装置。
  13. 前記再プログラム可能な処理ユニットは、前記データを前記中央メモリから前記高帯域メモリダイに複写する前に、トリガイベントが発生されたかを判定するように構成された、請求項12に記載の装置。
  14. 前記異種演算環境は、前記固定処理ユニットが前記高帯域メモリダイに直接的にアクセスしないように構成された、請求項8に記載の装置。
  15. 異種演算環境の処理ユニットに演算タスクを割り当てるように構成された中央処理ユニットと、
    データを格納するように構成されたシステムメモリと、
    前記異種演算環境を含む異種アクセラレータのマルチチップモジュールを含み、
    前記異種アクセラレータのマルチチップモジュールは、
    命令を実行するように構成された固定論理回路を含む固定処理ユニットと、
    プロセッシングインメモリ(processing−in−memory)の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む再プログラム可能な処理ユニットと、
    高帯域メモリダイのスタックを含み、
    前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、
    前記再プログラム可能な処理ユニットに少なくとも部分的に前記高帯域メモリダイが積層される、システム。
  16. 前記固定処理ユニットは、前記固定処理ユニットに割り当てられたタスクの前記実行が少なくとも部分的に完了された場合、前記システムメモリにデータを複写するように構成され、
    前記再プログラム可能な処理ユニットは、データを要求する前記再プログラム可能な処理ユニットに割り当てられたタスクを実行する前に、前記データを前記システムメモリから前記高帯域メモリダイに複写するように構成された、請求項15に記載のシステム。
  17. 前記固定処理ユニットは前記データを遠距離直接メモリアクセス(remote direct memory accesses)を通じて前記システムメモリに複写するように構成された、請求項16に記載のシステム。
  18. 前記再プログラム可能な処理ユニットは、前記システムメモリから前記高帯域メモリダイにデータを複写する前に、トリガイベントが発生されたと判定するように構成された、請求項15に記載のシステム。
  19. 前記固定処理ユニットはグラフィクス処理ユニットを含み、
    前記再プログラム可能な処理ユニットはFPGA(Field Programmable Gate Array)を含む、請求項15に記載のシステム。
  20. 前記中央処理ユニットはタスクの第1部分を、実行のため、前記固定処理ユニットに割り当て、前記タスクの第2部分を、実行のため、前記再プログラム可能な処理ユニットに割り当てるように構成され、
    前記固定処理ユニットは前記タスクの前記第1部分が完了された時刻及び前記タスクの第2部分が完了された時刻の間にタスクの実行を停止(halt)するように構成された、請求項15に記載のシステム。
JP2018171047A 2017-09-14 2018-09-13 高効率ラーニングシステムのためのヘテロジニアスアクセラレータ Active JP7028745B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762558745P 2017-09-14 2017-09-14
US62/558,745 2017-09-14
US15/825,047 2017-11-28
US15/825,047 US10474600B2 (en) 2017-09-14 2017-11-28 Heterogeneous accelerator for highly efficient learning systems

Publications (3)

Publication Number Publication Date
JP2019053734A true JP2019053734A (ja) 2019-04-04
JP2019053734A5 JP2019053734A5 (ja) 2021-09-02
JP7028745B2 JP7028745B2 (ja) 2022-03-02

Family

ID=65631148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018171047A Active JP7028745B2 (ja) 2017-09-14 2018-09-13 高効率ラーニングシステムのためのヘテロジニアスアクセラレータ

Country Status (5)

Country Link
US (3) US10474600B2 (ja)
JP (1) JP7028745B2 (ja)
KR (1) KR20190030579A (ja)
CN (1) CN109508316B (ja)
TW (1) TWI754752B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021034008A (ja) * 2019-08-13 2021-03-01 三星電子株式会社Samsung Electronics Co.,Ltd. プロセッサチップ及びその制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474600B2 (en) * 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
US11367707B2 (en) * 2018-09-26 2022-06-21 Intel Corporation Semiconductor package or structure with dual-sided interposers and memory
CN109785224B (zh) * 2019-01-29 2021-09-17 华中科技大学 一种基于fpga的图数据处理方法和系统
US11211378B2 (en) * 2019-07-18 2021-12-28 International Business Machines Corporation Heterogeneous integration structure for artificial intelligence computing
KR20210034784A (ko) * 2019-09-23 2021-03-31 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그 제조 방법
KR20210042757A (ko) 2019-10-10 2021-04-20 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법
US11769043B2 (en) 2019-10-25 2023-09-26 Samsung Electronics Co., Ltd. Batch size pipelined PIM accelerator for vision inference on multiple images
US20230012487A1 (en) * 2019-12-20 2023-01-19 Hewlett-Packard Development Company, L.P. Machine learning workload orchestration in heterogeneous clusters
US11385837B2 (en) 2020-01-07 2022-07-12 SK Hynix Inc. Memory system
US11315611B2 (en) 2020-01-07 2022-04-26 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11748100B2 (en) * 2020-03-19 2023-09-05 Micron Technology, Inc. Processing in memory methods for convolutional operations
TWI811620B (zh) * 2020-03-24 2023-08-11 威盛電子股份有限公司 運算裝置與資料處理方法
US11941433B2 (en) 2020-03-24 2024-03-26 Via Technologies Inc. Computing apparatus and data processing method for offloading data processing of data processing task from at least one general purpose processor
CN111813526A (zh) * 2020-07-10 2020-10-23 深圳致星科技有限公司 用于联邦学习的异构处理系统、处理器及任务处理方法
KR20220032366A (ko) 2020-09-07 2022-03-15 삼성전자주식회사 가변적인 모드 설정을 수행하는 메모리 장치 및 그 동작방법
WO2022139835A1 (en) * 2020-12-23 2022-06-30 Futurewei Technologies, Inc. Server architecture with configurable universal expansion slots
CN115469800A (zh) 2021-06-10 2022-12-13 三星电子株式会社 数据处理系统以及用于访问异构存储器系统的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003347470A (ja) * 2002-05-24 2003-12-05 Fujitsu Ltd 半導体装置の製造方法
JP2010080802A (ja) * 2008-09-29 2010-04-08 Hitachi Ltd 半導体装置
JP2015533009A (ja) * 2012-09-25 2015-11-16 インテル・コーポレーション パフォーマンスおよび電力のために構成可能な3dメモリ
WO2016209406A1 (en) * 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4951193A (en) * 1986-09-05 1990-08-21 Hitachi, Ltd. Parallel computer with distributed shared memories and distributed task activating circuits
US5918248A (en) * 1996-12-30 1999-06-29 Northern Telecom Limited Shared memory control algorithm for mutual exclusion and rollback
US20030216874A1 (en) * 2002-03-29 2003-11-20 Henry Manus P. Drive techniques for a digital flowmeter
US7155602B2 (en) * 2001-04-30 2006-12-26 Src Computers, Inc. Interface for integrating reconfigurable processors into a general purpose computing system
US6794273B2 (en) 2002-05-24 2004-09-21 Fujitsu Limited Semiconductor device and manufacturing method thereof
US8108656B2 (en) * 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
EP1443417A1 (en) * 2003-01-31 2004-08-04 STMicroelectronics S.r.l. A reconfigurable signal processor with embedded flash memory device
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
US7506297B2 (en) * 2004-06-15 2009-03-17 University Of North Carolina At Charlotte Methodology for scheduling, partitioning and mapping computational tasks onto scalable, high performance, hybrid FPGA networks
TWI251171B (en) * 2004-09-21 2006-03-11 Univ Tsinghua Task scheduling method with low power consumption and a SOC using the method
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US8412872B1 (en) 2005-12-12 2013-04-02 Nvidia Corporation Configurable GPU and method for graphics processing using a configurable GPU
JP4934356B2 (ja) * 2006-06-20 2012-05-16 株式会社日立製作所 映像処理エンジンおよびそれを含む映像処理システム
US8806228B2 (en) * 2006-07-13 2014-08-12 International Business Machines Corporation Systems and methods for asymmetrical performance multi-processors
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8296743B2 (en) 2007-12-17 2012-10-23 Intel Corporation Compiler and runtime for heterogeneous multiprocessor systems
US8041852B1 (en) * 2008-12-09 2011-10-18 Calos Fund Limited Liability Company System and method for using a shared buffer construct in performance of concurrent data-driven tasks
US7996564B2 (en) * 2009-04-16 2011-08-09 International Business Machines Corporation Remote asynchronous data mover
US8310492B2 (en) * 2009-09-03 2012-11-13 Ati Technologies Ulc Hardware-based scheduling of GPU work
US8874943B2 (en) 2010-05-20 2014-10-28 Nec Laboratories America, Inc. Energy efficient heterogeneous systems
JP5516744B2 (ja) * 2010-08-27 2014-06-11 富士通株式会社 スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US8745626B1 (en) * 2012-12-17 2014-06-03 Throughputer, Inc. Scheduling application instances to configurable processing cores based on application requirements and resource specification
US9329843B2 (en) 2011-08-02 2016-05-03 International Business Machines Corporation Communication stack for software-hardware co-execution on heterogeneous computing systems with processors and reconfigurable logic (FPGAs)
US8990518B2 (en) 2011-08-04 2015-03-24 Arm Limited Methods of and apparatus for storing data in memory in data processing systems
US9280395B2 (en) * 2012-05-30 2016-03-08 Intel Corporation Runtime dispatching among a heterogeneous group of processors
US20140040532A1 (en) 2012-08-06 2014-02-06 Advanced Micro Devices, Inc. Stacked memory device with helper processor
US9304730B2 (en) 2012-08-23 2016-04-05 Microsoft Technology Licensing, Llc Direct communication between GPU and FPGA components
US8996781B2 (en) * 2012-11-06 2015-03-31 OCZ Storage Solutions Inc. Integrated storage/processing devices, systems and methods for performing big data analytics
US9110778B2 (en) * 2012-11-08 2015-08-18 International Business Machines Corporation Address generation in an active memory device
US10079044B2 (en) * 2012-12-20 2018-09-18 Advanced Micro Devices, Inc. Processor with host and slave operating modes stacked with memory
US9135185B2 (en) 2012-12-23 2015-09-15 Advanced Micro Devices, Inc. Die-stacked memory device providing data translation
US9658977B2 (en) * 2013-03-15 2017-05-23 Micron Technology, Inc. High speed, parallel configuration of multiple field programmable gate arrays
US9135062B2 (en) * 2013-04-09 2015-09-15 National Instruments Corporation Hardware assisted method and system for scheduling time critical tasks
US9244629B2 (en) * 2013-06-25 2016-01-26 Advanced Micro Devices, Inc. Method and system for asymmetrical processing with managed data affinity
US9424079B2 (en) 2013-06-27 2016-08-23 Microsoft Technology Licensing, Llc Iteration support in a heterogeneous dataflow engine
US9600346B2 (en) * 2013-07-10 2017-03-21 International Business Machines Corporation Thread scheduling across heterogeneous processing elements with resource mapping
US9934043B2 (en) 2013-08-08 2018-04-03 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing computational imaging pipeline
US9665533B2 (en) * 2013-12-20 2017-05-30 Rambus Inc. Blob pools, selectors, and command set implemented within a memory appliance for accessing memory
EP3100562B1 (en) * 2014-01-31 2018-03-07 Telefonaktiebolaget LM Ericsson (publ) Scheduling in cellular communication systems
US9444827B2 (en) * 2014-02-15 2016-09-13 Micron Technology, Inc. Multi-function, modular system for network security, secure communication, and malware protection
JP2017508161A (ja) * 2014-03-10 2017-03-23 オープンアイオーラブズ リミテッド 走査型イオンコンダクタンス顕微鏡法
WO2015171905A1 (en) 2014-05-08 2015-11-12 Micron Technology, Inc. In-memory lightweight coherency
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
US10691663B2 (en) * 2014-09-16 2020-06-23 Sap Se Database table copy
US9424092B2 (en) * 2014-09-26 2016-08-23 Microsoft Technology Licensing, Llc Heterogeneous thread scheduling
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
CN105900064B (zh) * 2014-11-19 2019-05-03 华为技术有限公司 调度数据流任务的方法和装置
CN104615488B (zh) * 2015-01-16 2018-01-19 华为技术有限公司 异构多核可重构计算平台上任务调度的方法和装置
US10528443B2 (en) * 2015-01-30 2020-01-07 Samsung Electronics Co., Ltd. Validation of multiprocessor hardware component
US9542248B2 (en) 2015-03-24 2017-01-10 International Business Machines Corporation Dispatching function calls across accelerator devices
JP6588230B2 (ja) 2015-05-12 2019-10-09 愛知株式会社 収納式テーブル
US9983857B2 (en) * 2015-06-16 2018-05-29 Architecture Technology Corporation Dynamic computational acceleration using a heterogeneous hardware infrastructure
US10540588B2 (en) 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US10387314B2 (en) * 2015-08-25 2019-08-20 Oracle International Corporation Reducing cache coherence directory bandwidth by aggregating victimization requests
WO2017048294A1 (en) * 2015-09-18 2017-03-23 Hewlett Packard Enterprise Development Lp Memory persistence from a volatile memory to a non-volatile memory
US10031765B2 (en) * 2015-09-24 2018-07-24 Intel Corporation Instruction and logic for programmable fabric hierarchy and cache
US11036509B2 (en) 2015-11-03 2021-06-15 Intel Corporation Enabling removal and reconstruction of flag operations in a processor
US9996268B2 (en) * 2015-12-18 2018-06-12 Toshiba Memory Corporation Memory system and control method of the same
WO2017107118A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment
JP2017135698A (ja) * 2015-12-29 2017-08-03 株式会社半導体エネルギー研究所 半導体装置、コンピュータ及び電子機器
US11079936B2 (en) * 2016-03-01 2021-08-03 Samsung Electronics Co., Ltd. 3-D stacked memory with reconfigurable compute logic
US9977609B2 (en) * 2016-03-07 2018-05-22 Advanced Micro Devices, Inc. Efficient accesses of data structures using processing near memory
CN106156851B (zh) * 2016-06-24 2019-04-05 科大讯飞股份有限公司 面向深度学习业务的加速装置及方法
US10802992B2 (en) * 2016-08-12 2020-10-13 Xilinx Technology Beijing Limited Combining CPU and special accelerator for implementing an artificial neural network
US10198349B2 (en) * 2016-09-19 2019-02-05 Advanced Micro Devices, Inc. Programming in-memory accelerators to improve the efficiency of datacenter operations
US10416896B2 (en) * 2016-10-14 2019-09-17 Samsung Electronics Co., Ltd. Memory module, memory device, and processing device having a processor mode, and memory system
US20180115496A1 (en) * 2016-10-21 2018-04-26 Advanced Micro Devices, Inc. Mechanisms to improve data locality for distributed gpus
CN108022905A (zh) * 2016-11-04 2018-05-11 超威半导体公司 使用多个金属层的转接板传输线
US20180173619A1 (en) * 2016-12-21 2018-06-21 Sandisk Technologies Llc System and Method for Distributed Logical to Physical Address Mapping
US11119923B2 (en) * 2017-02-23 2021-09-14 Advanced Micro Devices, Inc. Locality-aware and sharing-aware cache coherence for collections of processors
CN107102824B (zh) * 2017-05-26 2019-08-30 华中科技大学 一种基于存储和加速优化的Hadoop异构方法和系统
US10489195B2 (en) * 2017-07-20 2019-11-26 Cisco Technology, Inc. FPGA acceleration for serverless computing
US10474600B2 (en) * 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003347470A (ja) * 2002-05-24 2003-12-05 Fujitsu Ltd 半導体装置の製造方法
JP2010080802A (ja) * 2008-09-29 2010-04-08 Hitachi Ltd 半導体装置
JP2015533009A (ja) * 2012-09-25 2015-11-16 インテル・コーポレーション パフォーマンスおよび電力のために構成可能な3dメモリ
WO2016209406A1 (en) * 2015-06-26 2016-12-29 Advanced Micro Devices, Inc. Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021034008A (ja) * 2019-08-13 2021-03-01 三星電子株式会社Samsung Electronics Co.,Ltd. プロセッサチップ及びその制御方法
JP7164561B2 (ja) 2019-08-13 2022-11-01 三星電子株式会社 プロセッサチップ及びその制御方法
US11681904B2 (en) 2019-08-13 2023-06-20 Samsung Electronics Co., Ltd. Processor chip and control methods thereof
US11842265B2 (en) 2019-08-13 2023-12-12 Samsung Electronics Co., Ltd. Processor chip and control methods thereof

Also Published As

Publication number Publication date
CN109508316A (zh) 2019-03-22
US11226914B2 (en) 2022-01-18
TWI754752B (zh) 2022-02-11
US20220138132A1 (en) 2022-05-05
US10474600B2 (en) 2019-11-12
CN109508316B (zh) 2023-08-18
US20200042477A1 (en) 2020-02-06
JP7028745B2 (ja) 2022-03-02
TW201915724A (zh) 2019-04-16
KR20190030579A (ko) 2019-03-22
US20190079886A1 (en) 2019-03-14
US11921656B2 (en) 2024-03-05

Similar Documents

Publication Publication Date Title
JP7028745B2 (ja) 高効率ラーニングシステムのためのヘテロジニアスアクセラレータ
JP6228459B2 (ja) システムコール要求の通信の最適化
US8473715B2 (en) Dynamic accelerator reconfiguration via compiler-inserted initialization message and configuration address and size information
US11663769B2 (en) Game engine on a chip
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
US9582463B2 (en) Heterogeneous input/output (I/O) using remote direct memory access (RDMA) and active message
KR102240774B1 (ko) 지역 베이스보드 관리 제어기를 이용하여 패브릭 시스템에 걸쳐 불휘발성 메모리 익스프레스 내에서 공유된 그래픽 처리부 자원들을 할당하는 방법
JP6086868B2 (ja) ユーザモードからのグラフィックス処理ディスパッチ
US20190043536A1 (en) Sector-Aligned Memory Accessible to Programmable Logic Fabric of Programmable Logic Device
EP2652611A1 (en) Device discovery and topology reporting in a combined cpu/gpu architecture system
TWI825033B (zh) 用於查找計算人工智慧加速器的裝置及多晶片模組
WO2012083012A1 (en) Device discovery and topology reporting in a combined cpu/gpu architecture system
US10037225B2 (en) Method and system for scheduling computing
CN113094326A (zh) 处理器控制的可编程逻辑器件修改
US20130160017A1 (en) Software Mechanisms for Managing Task Scheduling on an Accelerated Processing Device (APD)
CN114968371A (zh) 用于为不同的应用域配置并行处理器的技术
JP2014503899A (ja) コンピュータシステムインタラプト処理
CN110837419A (zh) 基于弹性批处理的推理引擎系统、方法及电子设备
US11989144B2 (en) Centralized interrupt handling for chiplet processing units
US20220058062A1 (en) System resource allocation for code execution
US20230195664A1 (en) Software management of direct memory access commands

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

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220217

R150 Certificate of patent or registration of utility model

Ref document number: 7028745

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150