(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6974270
(24)【登録日】2021年11月8日
(45)【発行日】2021年12月1日
(54)【発明の名称】知能型高帯域幅メモリシステム及びそのための論理ダイ
(51)【国際特許分類】
G06F 12/00 20060101AFI20211118BHJP
G11C 5/02 20060101ALI20211118BHJP
G11C 5/04 20060101ALI20211118BHJP
【FI】
G06F12/00 560F
G11C5/02 100
G11C5/04 220
【請求項の数】23
【全頁数】17
(21)【出願番号】特願2018-139930(P2018-139930)
(22)【出願日】2018年7月26日
(65)【公開番号】特開2019-36298(P2019-36298A)
(43)【公開日】2019年3月7日
【審査請求日】2021年7月2日
(31)【優先権主張番号】62/543918
(32)【優先日】2017年8月10日
(33)【優先権主張国】US
(31)【優先権主張番号】15/796743
(32)【優先日】2017年10月27日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】ズン, 宏 忠
(72)【発明者】
【氏名】ブレンナン, ロバート
(72)【発明者】
【氏名】金, 晋 賢
(72)【発明者】
【氏名】キム, ヒュン ソク
(72)【発明者】
【氏名】マラディ, クリシュナ テジャ
【審査官】
後藤 彰
(56)【参考文献】
【文献】
特表2018−530025(JP,A)
【文献】
国際公開第2016/209406(WO,A1)
【文献】
特開2018−198017(JP,A)
【文献】
特表2015−533009(JP,A)
【文献】
特開2010−080802(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G11C 5/02
G11C 5/04
(57)【特許請求の範囲】
【請求項1】
中央処理装置(CPU)、グラフィック処理装置(GPU)、注文型集積回路(ASIC)、又はフィールドプログラマブルゲートアレイ(FPGA)の少なくとも1つを含むホストと、
積層された複数の高帯域幅メモリ(HBM)モジュール及び前記複数のHBMモジュールの下方に配置された論理ダイを有する知能型HBMスタックと、を含み、
前記論理ダイは、
前記複数のHBMモジュールとインタフェースするメモリコントローラを含むHBMコントローラと、
前記ホストから処理演算をオフロードするオフロード処理論理部と、を含み、
前記オフロード処理論理部は、前記オフロードされた処理演算を開始すべきことを指示する前記ホストによって設定された第1フラグを受信し、
前記オフロード処理論理部は、前記第1フラグに応答して前記HBMコントローラを使用して前記オフロードされた処理演算を実行し、
前記HBMコントローラは、前記オフロードされた処理演算が終了したことを指示する第2フラグを設定することを特徴とする知能型高帯域幅メモリシステム。
【請求項2】
前記論理ダイは、前記ホストから処理演算をオフロードすることを特徴とする請求項1に記載の知能型高帯域幅メモリシステム。
【請求項3】
前記ホスト及び前記論理ダイに連結されたインタポーザをさらに有することを特徴とする請求項1に記載の知能型高帯域幅メモリシステム。
【請求項4】
前記インタポーザに連結された基板をさらに有することを特徴とする請求項3に記載の知能型高帯域幅メモリシステム。
【請求項5】
前記複数のHBMモジュールは、前記論理ダイと通信可能に連結され、前記論理ダイは、前記ホストと通信可能に連結されることを特徴とする請求項4に記載の知能型高帯域幅メモリシステム。
【請求項6】
前記知能型HBMスタックは、第1知能型HBMスタックと呼ばれ、
前記複数のHBMモジュールは、第1の複数のHBMモジュールと呼ばれ、
前記論理ダイは、第1論理ダイと呼ばれ、
前記知能型高帯域幅メモリシステムは、さらに、積層された第2の複数のHBMモジュールと、前記第2の複数のHBMモジュールの下方に配置された第2論理ダイと、を有する第2知能型HBMスタックを含むことを特徴とする請求項1に記載の知能型高帯域幅メモリシステム。
【請求項7】
前記第1論理ダイ及び前記第2論理ダイは、各々前記ホストから処理演算をオフロードし、
前記第1の複数のHBMモジュールは、前記第1論理ダイに通信可能に連結され、前記第1論理ダイは、前記ホストに通信可能に連結され、
前記第2の複数のHBMモジュールは、前記第2論理ダイに通信可能に連結され、前記第2論理ダイは、前記ホストに通信可能に連結され、
前記知能型高帯域幅メモリシステムは、さらに、前記ホストと前記第1論理ダイ及び前記第2論理ダイとに連結されたインタポーザと、
前記インタポーザに連結された基板と、を有することを特徴とする請求項6に記載の知能型高帯域幅メモリシステム。
【請求項8】
メモリをさらに含み、
前記論理ダイは、
インタフェース物理層(PHY)とホストキューマネージャとを有し、前記インタフェース物理層(PHY)を介して前記ホストとインタフェースし、前記ホストから受信した情報をキューイングするホストマネージャと、
プリフェッチエンジンとキャッシュコントローラとを有し、前記プリフェッチエンジン及び前記キャッシュコントローラを介して前記メモリとインタフェースするメモリコントローラと、をさらに含むことを特徴とする請求項1に記載の知能型高帯域幅メモリシステム。
【請求項9】
前記オフロード処理論理部は、
前記ホストマネージャを介して前記ホストから前記オフロードされた処理演算に関する情報を受信し、
前記オフロードされた処理演算に関する前記受信した情報に応じて前記オフロードされた処理演算を実行することを特徴とする請求項8に記載の知能型高帯域幅メモリシステム。
【請求項10】
前記受信した情報は、コマンドを含むことを特徴とする請求項9に記載の知能型高帯域幅メモリシステム。
【請求項11】
前記論理ダイは、前記ホストから受信した前記コマンドを復号するコマンド復号論理部をさらに有することを特徴とする請求項10に記載の知能型高帯域幅メモリシステム。
【請求項12】
前記論理ダイは、前記復号されたコマンドを出力するコマンド出力論理部をさらに含み、
前記オフロード処理論理部は、前記コマンド出力論理部から出力されたコマンドに応答して前記オフロードされた処理演算を実行することを特徴とする請求項11に記載の知能型高帯域幅メモリシステム。
【請求項13】
前記オフロード処理論理部は、演算論理ユニット(ALU)、浮動小数点ユニット(FPU)、固定論理、又は再設定可能な論理の少なくとも1つを含むことを特徴とする請求項8に記載の知能型高帯域幅メモリシステム。
【請求項14】
前記オフロード処理論理部は、前記複数のHBMモジュールに格納されたデータに応じて前記オフロードされた処理演算を実行することを特徴とする請求項8に記載の知能型高帯域幅メモリシステム。
【請求項15】
前記メモリコントローラは、SRAMコントローラであり、
前記メモリは、SRAMであることを特徴とする請求項8に記載の知能型高帯域幅メモリシステム。
【請求項16】
インタフェース物理層(PHY)とホストキューマネージャとを含み、前記インタフェース物理層(PHY)を介してホストとインタフェースし、前記ホストから受信した情報をキューイングするホストマネージャと、
プリフェッチエンジンとキャッシュコントローラとを含み、前記プリフェッチエンジン及び前記キャッシュコントローラを介してメモリとインタフェースするメモリコントローラと、
高帯域幅メモリ(HBM)モジュールスタックとインタフェースするメモリコントローラを含む高帯域幅メモリ(HBM)コントローラと、
前記ホストから処理演算をオフロードするオフロード処理論理部と、を含み、
前記受信した情報は、処理を開始すべきことを指示する前記ホストによって設定された第1フラグを含み、
前記オフロード処理論理部は、前記第1フラグに応答して前記HBMコントローラを使用して前記処理演算を実行し、
前記HBMコントローラは、前記処理演算が終了したことを指示する第2フラグを設定することを特徴とする論理ダイ。
【請求項17】
前記オフロード処理論理部は、
前記ホストマネージャを介して前記ホストから前記オフロードされた処理演算に関する情報を受信し、
前記オフロードされた処理演算に関する前記受信した情報に応じて前記オフロードされた処理演算を実行することを特徴とする請求項16に記載の論理ダイ。
【請求項18】
前記受信した情報は、コマンドを含むことを特徴とする請求項16に記載の論理ダイ。
【請求項19】
前記ホストから受信した前記コマンドを復号するコマンド復号論理部をさらに含むことを特徴とする請求項18に記載の論理ダイ。
【請求項20】
前記復号されたコマンドを出力するコマンド出力論理部をさらに含み、
前記オフロード処理論理部は、前記コマンド出力論理部から出力されたコマンドに応答して前記オフロードされた処理演算を実行することを特徴とする請求項19に記載の論理ダイ。
【請求項21】
前記オフロード処理論理部は、演算論理ユニット(ALU)、浮動小数点ユニット(FPU)、固定論理、又は再設定可能な論理の少なくとも1つを含むことを特徴とする請求項19に記載の論理ダイ。
【請求項22】
前記オフロード処理論理部は、前記HBMモジュールスタックに格納されたデータに応じて前記オフロードされた処理演算を実行することを特徴とする請求項19に記載の論理ダイ。
【請求項23】
前記メモリコントローラは、SRAMコントローラであり、
前記メモリは、SRAMであることを特徴とする請求項16に記載の論理ダイ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、知能型高帯域幅メモリシステムに係り、より詳細には、ホストにより一般に実行される複雑な論理演算をオフロード(offload)するための論理ダイ(logic die)を含む知能型高帯域幅メモリシステムに関する。
【背景技術】
【0002】
インターネットにより数多くのコンピュータ及びモバイル機器にデータを提供するコンピュータのサーバの数が大幅に急増してきた。人工知能(Artificial Intelligence:AI)及びその他、深層学習(deep learning)アプリケーションは、ますます普遍化しており、現在その需要が大きく増加している。今日のサーバコンピュータの環境は、ストレージ内及びメモリ内で演算を実行する方向に進んでおり、これにより実際にデータが存在する所と近い位置で一部の演算が実行される。これは、性能を向上させ、エネルギー消費を削減させる。
【0003】
多層のニューラルネットワーク(deep neural network)のような新たなアプリケーションは、様々なデータセットを訓練し、高精度で学習するために、大量の演算及びメモリ能力を必要とする。また、高性能コンピュータ(High Performance Computer: HPC)、グラフィックスアルゴリズムなどのアプリケーションにおいて、データ又は演算が集約化されて、エネルギー効率及び低レイテンシ(low latency)が決定的な要素になった。
【0004】
最近、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory: DRAM)のダイを別のダイの上に積み重ねることにより、小さなフォームファクタであまり電力を消費せず、より高い帯域幅を得るために、高帯域幅メモリ(High Bandwidth Memory: HBM)及び高帯域幅メモリ2(HBM2)が利用されており、これらは、ホストとの非同期式通信インタフェースを提供する。非同期通信の特徴は、性能は向上するが、複雑な論理演算の処理はさらに難しくなる。論理演算が複雑であれば、判断性(determinism)は弱い。言い換えると、特定の複雑な論理演算が完了するまで、どれほど長い時間がかかるのかがはっきりしない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、上述の問題点を解決するためのものであって、本発明の目的は、知能型高帯域幅メモリ装置を提供することにある。
【課題を解決するための手段】
【0006】
中央処理装置(Central Processing Unit: CPU)、グラフィック処理装置(Graphics Processing Unit: GPU)、注文型集積回路(Application Specific Integrated Circuit: ASIC)、又はフィールドプログラマブルゲートアレイ(Field Programmable Gate Array: FPGA)の少なくとも1つを含むホストと、積層された複数の高帯域幅メモリモジュールおよび複数の高帯域幅メモリモジュールの下に配置された論理ダイとを有する知能型高帯域幅メモリスタックと、を含む知能型高帯域幅メモリシステムを開示している。論理ダイは、ホストから処理演算をオフロードする。
【0007】
一部の実施形態において、論理ダイは、インタフェース物理層(PHY)とホストキューマネージャとを含むホストマネージャを含み、ホストマネージャは、インタフェース物理層(PHY)を介してホストとインタフェースし、ホストから受信した情報(communications)をキューイングする。論理ダイは、さらに、プリフェッチエンジン(prefetch engine)とキャッシュコントローラとを含む、メモリコントローラを含み、メモリコントローラは、プリフェッチエンジン及びキャッシュコントローラを介してメモリとインタフェースする。論理ダイは、さらに、高帯域幅メモリモジュールスタックとインタフェースするメモリコントローラを有する高帯域幅メモリコントローラを含む。論理ダイは、さらに、ホストから処理演算をオフロードするオフロード処理論理部を含む。
【発明の効果】
【0008】
本発明は、支援ハードウェア及びソフトウェアアーキテクチャ、論理ダイのマイクロアーキテクチャ、並びにメモリインタフェースシグナルオプションとともに特定の演算能力を有する論理ダイを提供することにより、高帯域幅メモリシステムのエネルギー効率を向上し、かつ遅延時間を減少できる。
【図面の簡単な説明】
【0009】
【
図1】知能型HBM装置の例示的な平面ブロック図である。
【
図2】
図1の2−2線に沿った知能型HBM装置の側面ブロック図である。
【
図3】ホストから演算作業をオフロードするための2種類のアーキテクチャに関するフレームワークブロック図である。
【
図4】一部の実施形態により主にハードウェアで実現されるホストの構成要素及び知能型HBMスタックを含むシステムの例示的なブロック図である。
【
図5】(A)は、一部の実施形態により主にソフトウェアで実現されるホストの構成要素及び知能型HBMスタックを含むシステムの例示的なブロック図である。(B)は、一部の実施形態により別々のカーネルがGPU又は知能型HBMスタックで処理される方法を説明するための図である。
【
図6】
図1及び
図2の論理ダイのマイクロアーキテクチャである。
【
図7】本明細書に開示する実施形態による
図1の知能型HBM装置を含むコンピューティングシステムの例示的なブロック図である。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。以下の詳細な説明で実施形態の完全な理解を助けるために様々な特定の細部事項を記載する。しかし、本発明が属する技術分野の通常の技術者は、このような特定の細部事項がなくても本発明の技術的思想を実施し得ることは当然である。別の例示において、公知の方法、手順、構成、回路、及びネットワークに関する具体的な説明は、本実施形態の様々な様態が不要且つあいまいにならないように省略する。
【0011】
第1、第2等の用語を様々な構成要素を説明するために本明細書で用いたとしても、このような用語によって、該当構成要素が制限されないことは当然である。このような用語は、単にある構成要素を別の構成要素と区別するためにのみ用いる。例えば、本実施形態の範囲から逸脱することなく、第1モジュールは第2モジュールと指称でき、同様に、第2モジュールも第1モジュールと指称できる。
【0012】
本明細書で実施形態の説明のために用いる技術用語は、特定の実施形態を説明するための目的のみであって、本発明の技術的思想を制限しようとするものではない。実施形態に関する説明及び特許請求の請求範囲で用いるように、単数形の用語は、文脈上明らかに指示がない限り、複数形の用語も含む。本明細書で用いる「及び/又は」という用語は、挙げられる1つ以上の関連項目の任意の何れか1つ及び全ての組み合せを指すか、又は、含むと理解すべきである。また、本明細書で使用する「含む」という用語は、挙げられた特徴、数字、段階、動作、要素、及び/又は構成の存在を明示するが、1以上の別の特徴、数字、段階、動作、要素、構成、及び/又はこれらの集合の存在や付加を排除するものではない。本図面の構成要素及び特徴は必ずしも一定の比率で示すものではない。
【0013】
人工知能コンピューティングアプリケーションが発達するにつれて、イメージと音声の分類、メディアの分析、健康管理、自律機械、及びスマートアシスタントに至る領域の新たなアプリケーションを実行し得る、新たなハードウェアが必要となっている。人工知能アプリケーションは、機械学習フレームワークを駆動する。例えば、多層のニューラルネットワークのアルゴリズムでは、頻繁にデータセットの大きさがハードウェアの使用可能な演算能力を上回る。より新たなアーキテクチャが開発されるまで、高いテラフロップス(teraflops)の演算能力を備えた新たな高性能コンピュータが代替ソルーションとして登場していた。HBMは、HBM2に発展して並列加速器のための高帯域幅を提供し、ホスト装置当たり4乃至8個のモジュールスタックを提供する。ホストは、例えば、マイクロプロセッサなどの中央処理装置(CPU)、注文型集積回路(ASIC)、グラフィック処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)などを含む。現在、帯域幅は、1秒当たり1テラバイトの範囲であり、これは、GDDR5(Double Data Rate Five Synchronous Graphics)より2倍も効率的である。
【0014】
本明細書に開示する実施形態は、支援ハードウェア及びソフトウェアアーキテクチャ、論理ダイのマイクロアーキテクチャ、並びにメモリインタフェースシグナルオプションとともに高帯域幅メモリ(HBM)の論理ダイで特定の演算能力を提供するシステムアーキテクチャを含む。HBMメモリスタックの下方に配置された論理ダイのメモリ内(in−memory)の処理能力を利用するために種々の新たな方法が提供される。また、HBMインタフェースを利用するための種々の新たな信号プロトコルを開示する。論理ダイのマイクロアーキテクチャ及び支援システムフレームワークもさらに説明する。
【0015】
本システムは、GPU、FPGA等の加速器でエネルギー効率の良い高速演算を実行するための終端間ソリューション(end−end solution)を提供する。処理演算をオフロードすると、ハードウェア又はソフトウェアのツールチェーン(tool chain)に別のレベルの複雑さを取り入れて種々の利点を導き出す。本明細書で「知能型HBM(HBM+)」と指称する新たなアーキテクチャは、HBM2と、PIMとで形成される。HBM2アーキテクチャは、ホスト当たり最大4個のスタックと、スタック当たり最大8個のチャンネルとを含み、スタック当たり4乃至8個のダイを含む。チャンネル当たり8乃至16個のバンクが存在し、バンクのグループを支援する。データライン(DQ)の幅は、例えば、128プラス選択的エラー訂正コード(Error Correction Code: ECC)ピンプラス2つの擬似チャンネル(pseudo channel)である。バンク当たり秒当たり2ギガバイトの場合、システムの帯域幅は、システム当たり秒当たり1テラバイトである。
【0016】
図1は、知能型HBM装置100の例示的な平面ブロック図である。知能型HBM装置100は、ホスト115(例:CPU、GPU、ASIC、FPGAなど)を含む。知能型HBM装置100は、HBM2モジュール110とこれに対応してHBM2モジュール110の下方に配置される論理ダイ105とを含む、複数の知能型HBMスタック120を含む。知能型HBM装置100は、PCI−E互換ボートである。
【0017】
図2は、
図1の2−2線に沿った知能型HBM装置100の側面ブロック図である。
図2に示すように、HBM2モジュールは、論理ダイ105の上に積み重ねて、知能型HBMスタック120を形成する。複数の知能型HBMスタック120が知能型HBM装置100に含まれる。ホスト115は、各々の論理ダイ105と通信する。ホスト115及び論理ダイ105は、インタポーザ(Interposer)205の上部に配置され、インタポーザ205に連結される。インタポーザ205は、パッケージ基板210の上部に配置され、かつパッケージ基板210に連結される。
【0018】
知能型HBMにおいて、論理ダイ105は、基本的な入/出力(I/O)演算を実行し、遅延時間を減少させ、メモリトラフィックが改善される。機械学習アルゴリズムは、訓練及び予測のために強い帯域幅を必要とするため、このようなアーキテクチャの利点を享受する。プロセッサ隣接メモリは、知能型HBMの論理ダイ105を介してホスト115を支援する。
【0019】
知能型HBMスタック120は、演算作業をホスト115からHBM2モジュール110下の論理ダイ105にオフロードする。ホスト115は、CPU、GPU、ASIC、FPGAなどを含む。論理ダイ105は、特化した論理関数を実行し、特化した論理関数は、特別高い帯域幅を要求する機械学習アプリケーションに特化した関数である。結果として、システムの性能は向上し、エネルギー消費は減る。
【0020】
図3は、ホスト(例:115)から演算作業をオフロードするための2種類のアーキテクチャ(例:340及び345)に関するフレームワークのブロック
図300を示す。
図3に示すように、第1アーキテクチャ340は、上位層アプリケーション(例:人工知能アプリケーション305)を変更する必要なく、HBMの演算機能アーキテクチャ(例:310、315、及び320)を用いる。HBMの演算機能アーキテクチャは、CUDA(Compute Unified Device Architecture)310、GPU命令集合アーキテクチャ(GPU Instruction Set Architecture:GPU−ISA又はG−ISA)315、及び/又はGPU320を含む。
【0021】
別のアーキテクチャ345は、根底にあるHBM論理命令集合アーキテクチャ(ISA)を使用するために人工知能アプリケーション305に知能型HBMライブラリ関数呼び出し(例:325、330、及び335)を提供する。知能型HBMライブラリ関数呼び出しは、ライブラリ325、メモリISA(M−ISA)330、又は他の知能型HBM専用のライブラリ関数呼び出し部335を含む。本実施形態において、上位層アプリケーション(例えば、人工知能アプリケーション305)は、ライブラリ関数呼び出し部を呼び出すように変更される。全体のフレームワークは、システムと、マイクロアーキテクチャと、ライブラリと、ドライバーと、を含む。更に、本システムは、後述のように、2つのハードウェアプロトコルと論理マイクロアーキテクチャとを含む。
【0022】
図4は、一部の実施形態により主にハードウェアで実現される、ホストの構成要素(405、410、415、及び420)及び知能型HBMスタック120を含むシステム400の例示的なブロック図である。ホスト115は、例えば、CPU405、DRAMバッファ410、PCI−Eインタフェース415、GPU420などを含む。主にハードウェアで実現される場合、ホスト115(例えば、GPU420)は、メモリコントローラの変更を伴うことがある。GPU420は、オフロードされた論理処理を実行するHBM2モジュール(例:110)及び/又は知能型HBMスタック120へ演算を直接オフロードする。本実施形態では、同期又は非同期のホスト−メモリ間のプロトコルが存在し、アプリケーションの変更の必要がない。
【0023】
図5(A)は、一部の実施形態により主にソフトウェアで実現される、ホストの構成要素(例:405、410、415、及び420)及び知能型HBMスタック120を含むシステム500の例示的なブロック図である。ホスト115は、例えば、CPU405、DRAMバッファ410、PCI−Eインタフェース415、GPU420等を含む。
【0024】
主にソフトウェアで実現される場合、CPU405へGPUメモリのキャッシュされていないユーザー空間のマッピングを生成するために、gdrcopyなどのメモリマップドI/O(Memory Mapped I/O:MMIO)の技術が使用される。このようなユーザー空間のマッピングは、GPU420からDRAMバッファ410内の共用バッファへオフロードされたカーネル510のデータをCPU405が直接読み取り可能にする。その後、CPU405は、知能型HBMスタック120へデータをコピーするか、関連アドレスにHBM論理を送信し直す。人工知能アプリケーション305(
図3参照)などの上位層アプリケーションは、演算のために、知能型HBMスタックを使用するように変更される。ハードウェアの変更は必要ではない。
【0025】
図5(B)は、一部の実施形態により別々のカーネルがGPU又は知能型HBMスタックで処理される方法を説明するための図面502である。すなわち、構成に応じて、アプリケーション内の別々の部分は、別々のハードウェアで実行される。言い換えると、別々のカーネル又は関数をGPU420又は知能型HBMスタック120のいずれかで開始及び処理することにより、処理負荷を分散させる。例えば、GPU420は、DATA_INを受信し、KERNEL_1を処理する。知能型HBMスタック120は、DATA_1を受信し、KERNEL_2を処理して、DATA_2を生成する。GPU420は、KERNEL_3を処理し、DATA_OUTを生成する。一実行例による擬似コードを以下に示す。
【0026】
gdrcopy(DATA_IN,numBytes,HostToDevice)
【0027】
GPU_Kernel<<<1,N>>>(DATA_IN)
【0028】
CpuWaitFunction(lock)
【0029】
gdrcopy(DATA_1,numBytes,DeviceToHost)
【0030】
HBM_Kernel<<<1,N>>>(DATA_1)
【0031】
CpuWaitFunction(lock)
【0032】
gdrcopy(DATA_2,numBytes,HostToDevice)
【0033】
GPU_Kernel<<<1,N>>>(DATA_2)
【0034】
一部の実施形態において、多様なハードウェアの構成要素の間の処理を調整するために1以上のフラグが設定される。例えば、CPU405は、処理を開始すべきことを指示する第1フラグを設定する。次に、CPU405は、DRAMバッファ410からGPU420にデータをコピーし、処理の少なくとも一部は、知能型HBMスタック120により行われる。その後、GPU420及び/又は知能型HBMスタック120は、処理が終了したことを指示する第2フラグを設定する。そして、CPU405は、データをDRAMバッファ410にコピーし直す。
【0035】
図6は、
図1及び
図2の論理ダイ105のマイクロアーキテクチャである。コアアーキテクチャ605は、プロセシング−イン−メモリ(Processing−In−Memory:PIM)コマンド(例:PIM_CMD)を復号し、内部のマイクロ演算を出力し、多重プロセシング−イン−メモリ(PIM)演算をスケジューリングする。周辺ロジックは、種々の状態機械を含む、キューイングを制御するホストマネージャ615と、SRAMコントローラ620と、HBMコントローラ625と、オフロード処理論理部610とを含む。
【0036】
より具体的に、論理ダイ105は、インタフェース物理層(PHY)675とホストキューマネージャ680とを含む、ホストマネージャ615を含む。一部の実施形態において、ホストマネージャ615は、インタフェース物理層(PHY)675を介してホスト(例:
図1の115)とインタフェースする。また、ホストマネージャ615は、ホスト115から受信した情報をキューイングする。論理ダイ105は、プリフェッチエンジン685とキャッシュコントローラ690とを含む、SRAMコントローラ620を含む。SRAMコントローラ620は、プリフェッチエンジン685及びキャッシュコントローラ690を介してSRAM635とインタフェースする。
【0037】
論理ダイ105は、HBM2モジュールスタック630とインタフェースするメモリコントローラ698とエラー訂正コード(ECC)論理部695を含む、HBMコントローラ625を含む。一部の実施形態において、論理ダイ105は、ホスト(例:
図1の115)から処理演算をオフロードするオフロード処理論理部610を含む。一部の実施形態において、オフロード処理論理部610は、ホストマネージャ615を介してホスト115からオフロード処理演算に関する情報を受信する。一部の実施形態において、オフロード処理論理部610は、オフロード処理演算に関する受信された情報に応じて処理演算を実行する。受信された情報は、フラグを含む。受信された情報は、コマンドを含む。
【0038】
一部の実施形態において、コマンド復号論理部640は、コマンドを復号する。
一部の実施形態において、コマンド出力論理部645は、コマンドを出力する。オフロード処理論理部610は、出力されたコマンドに応答してオフロード処理演算を実行する。オフロード処理論理部610は、演算論理ユニット(ALU)655、浮動小数点ユニット(FPU)660、固定論理670、又は再設定可能な論理665の少なくとも1つを含む。一部の実施形態において、オフロード処理論理部610は、HBM2モジュールスタック630に格納されたデータに応じてオフロード処理演算を実行する。また、コアアーキテクチャ605は、有限状態機械(Finite State Machine:FSM)650を含む。
【0039】
ハードウェアベースのプロトコルは、1段階プロトコル又は2段階プロトコルを含む。1段階プロトコルは、ホスト(例:
図1の115)がさらなる別の演算を進行する前に、演算の結果を待つ必要のない簡単な演算に好適である。すなわち、ホスト115と知能型HBMスタック(例:
図1の120)との間の決定的なタイミングが存在する。1段階プロトコルにおいて、メモリコントローラ698は、ソース、宛先アドレス、及び/又はバンクに対してのみロックを実行する。例えば、1段階プロトコルは、読み取り−修正−書き込み(read−modify−write)演算などの原子演算(atomic operation)を含む。
【0040】
2段階プロトコルは、ホスト115が演算結果を待つ演算に好適である。一例に、トランザクションコマンドが挙げられる。本実施形態において、PHYは、ホスト115と知能型HBMスタック120(
図1参照)との間の情報の流れを得るために、目的が変更されたトランザクションピンで修正される(例:ピンが変更または追加される。)。本実施形態において、メモリコントローラ698は、トランザクションを行う間HBM2モジュールスタック630全体に対してロックする。一例に、100×100列を転置することが挙げられる。
【0041】
論理ダイ(例:
図1の105)で実行される関数ライブラリの様々なカテゴリー(すなわち、#1乃至5)を以下の表1に示す。関数ライブラリは、ホスト(例:
図1の115)と調整され、個別の運営フィールド及び構成関数をそれぞれ含む。このような関数ライブラリは、同期及び非同期の知能型HBMインタフェースと互換される。バストランザクション、キューイング、及びメモリコントローラの遅延時間が短くなることにより、性能が向上する。関数の実行に固定論理及び/又は再設定可能な論理が利用される。
【0043】
本明細書には、HBMベースの論理モジュールマイクロアーキテクチャと、アプリケーションライブラリカーネルドライバーと、関連のフレームワークと、を含む、システムアーキテクチャを開示している。本システムは、HBM装置のための個別の関数カテゴリーを利用して種々の処理機能を提供する。本システムは、HBM演算領域を識別し、これらを知能型HBMマイクロアーキテクチャで処理するために、ホストメモリコントローラの修正とともに、主にハードウェアベースのアクセス法を用いる。本システムは、GPUの支援を要求することなく、作業の分散を支援するために直接CPUからHBMメモリの空間にアクセスするように、主にMMIOとともにソフトウェアベースのアクセス法を用いる。本システムは、同期及び非同期のHBMメモリインタフェースをそれぞれ可能にするために、1段階プロトコル及び/又は2段階プロトコルを用いる。本明細書に開示するHBM論理は、マイクロアーキテクチャがコマンド復号、並列関数スケジュールリング、ホスト、並びにホスト側インタフェース、キューイング、内部SRAMキャッシュ、及び/又はエラー訂正を管理する周辺論理を支援するように具現する。
【0044】
図7は、本明細書に開示する実施形態による
図1の知能型HBM装置を含むコンピューティングシステム700の例示的なブロック図である。知能型HBM装置100は、システムバス705に電気的に連結される。コンピューティングシステム700は、クロック710、ランダムアクセスメモリ(RAM)及び/若しくはフラッシュメモリ715、メモリコントローラ745、ユーザーインタフェース720、ベースバンドチップセットなどのモデム725、並びに/又は自動試験装置(Automated Test Equipment:ATE)735を含み、これらのうちの一部又は全部は、システムバス705に電気的に結合される。
【0045】
コンピューティングシステム700がモバイル装置である場合、さらにコンピューティングシステム700に電力を供給するバッテリー740を含む。
図7には示していないが、コンピューティングシステム700は、アプリケーションチップセット、カメライメージプロセッサ(Camera Image Processor:CIS)、モバイルDRAMなどをさらに含む。メモリコントローラ745及びフラッシュメモリ715は、データを格納するために不揮発性メモリを使用するソリッドステートドライブ/ディスク(Solid State Drive/Disk:SSD)の一部を構成する。
【0046】
例示的な実施形態において、コンピューティングシステム700は、コンピュータ、携帯型コンピュータ、ウルトラモバイルPC(Ultra Mobile PC:UMPC)、ワークステーション、ネットブック、PDA、ウェブタブレット、無線電話、移動電話、スマートフォン、eブック、PMP(Portable Multimedia Player)、デジタルカメラ、デジタルオーディオレコーダ/プレーヤ、デジタル写真/ビデオレコーダ/プレーヤ、携帯ゲーム機、ナビゲーションシステム、ブラックボックス、三次元テレビ、無線環境で情報の送受信が可能な装置、ホームネットワークを構成する多様な電子装置の1つ、コンピュータネットワークを構成する多様な電子装置の1つ、テレマティクスネットワークを構成する多様な電子装置の1つ、RFID、又はコンピューティングシステムを構成する多様な電子装置として使用される。
【0047】
以下の説明は、本発明の技術的思想の所定の様相が具現され得る適切な装置の簡略かつ一般的な説明を提供するためである。一般に、装置は、プロセッサ、メモリ(例:ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、又は他の状態保存媒体、ストレージ装置、ビデオインタフェース、及び入/出力インタフェースポートが接続されるシステムバスを含む。装置は、キーボード、マイク等の従来の入力装置からの入力により少なくとも部分的に制御されるだけでなく、他の装置から受信した命令、仮想現実(Virtual Reality:VR)環境との相互作用、生体認識フィードバック、又は他の入力信号によっても制御される。本明細書で用いるように、「機械」という用語は、単一機械、仮想機械、又は通信可能に連結され共に動作する機械、仮想機械若しくはデバイスからなるシステムを広範に含む。例示的な機械としては、パソコン、ワークステーション、サーバ、携帯型コンピュータ、携帯用デバイス、電話機、タブレット等のコンピューティング装置だけではなく、例えば、自動車、列車、タクシーなどの個人又は公共交通機関などの輸送装置を含む。
【0048】
機械は、プログラム可能/不可能な論理装置又はアレーなどの埋め込みコントローラ、注文型集積回路(ASICs)、埋め込み式コンピュータ、及びスマートカード等を含む。機械は、例えばネットワークインタフェース、モデム、又は他の通信連結手段を介して1以上の遠隔装置に対する1以上の連結を利用する。機械は、イントラネット、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)などの物理及び/又は論理ネットワークを介して互いに連結する。本技術分野に属する通常の技術者は、ネットワーク通信が、無線周波数(RF)、衛星、マイクロ波、IEEE(Institute of Electrical and Electronics Engineers)545.11、ブルートゥース(登録商標)、光学、赤外線、ケーブル、レーザー等を含む様々な有線及び/若しくは無線の短距離又は長距離搬送波、並びにプロトコルを利用可能であることを理解するであろう。
【0049】
本発明の技術的思想による実施形態は、機械がアクセスする場合、機械に作業を実行させるか、抽象データ型又は下位層のハードウェアコンテキストを規定するようにする関数、手順、データ構造、アプリケーションのプログラム等を含む関連データを参照するか、又はこれらと共に説明される。例えば、関連データは、RAM、ROMなどのような揮発性及び/又は不揮発性メモリに格納するか、又はハードドライブ、フロッピーディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージなどを含む他のストレージ装置、及びこれらに関するストレージ媒体に格納される。関連データは、物理及び/又は論理ネットワークを含む伝送環境を介してパケット、直列データ、並列データ、電波信号などの形で伝えられ、圧縮又は暗号化フォーマットで使用される。関連データは、分散環境で使用され、機械のアクセスのために、ローカル又は遠隔に格納される。
【0050】
実施形態に関して本発明の技術的思想の原理を説明し示したが、実施形態は、このような原理から逸脱することなく、配列及び詳細事項において修正され、任意の好ましい方法で組み合わせることが可能である。先に説明した内容は、特定の実施形態に焦点を合わせているが、他の構成も考えられる。特に、「本発明の技術的思想の実施形態による」などの表現や、これと同様の表現を本明細書で使用していても、このような語句は、一般に実現可能な実施形態の例示を参照として組み込むためのものであり、特定の実施形態による構成に本発明の技術的思想を制限するわけではない。本明細書では、このような用語は、他の実施形態と組合せ可能な同一または異なる実施形態を引用可能である。
【0051】
本発明の技術的思想の実施形態は、1以上のプロセッサにより実行可能な命令を含む非一時的な機械の読み取り可能な媒体を含み、命令は、本明細書に説明する技術的思想の要素を行うための命令を含む。
【0052】
上述の実施形態は、それらの技術的思想を限定すると解釈すべきではない。一部の実施形態を説明したが、本発明の通常の技術者は、本開示の新規な教示及び利点から実質的に逸脱することなく、実施形態の種々の変形が可能であることは、容易に理解できる。従って、このような全ての変形は、請求範囲に規定されている技術的思想の範囲内に含まれる。
【符号の説明】
【0053】
100 知能型HBM装置
105 論理ダイ
110 HBM2モジュール
115 ホスト
120 知能型HBMスタック
205 インタポーザ
210 パッケージ基板
300 ブロック図
305 人工知能アプリケーション
310 CUDA
315 GPU命令集合アーキテクチャ
320、420 GPU
325 ライブラリ
330 メモリISA
335 ライブラリ関数呼び出し部
340、345 アーキテクチャ
400、500 システム
405 CPU
410 DRAMバッファ
415 PCI−Eインタフェース
502 図面
510 カーネル
605 コアアーキテクチャ
610 オフロード処理論理部
615 ホストマネージャ
620 SRAMコントローラ
625 HBMコントローラ
630 HBM2モジュールスタック
635 SRAM
640 コマンド復号論理部
645 コマンド出力論理部
650 有限状態機械
655 演算論理ユニット
660 浮動小数点ユニット
665 再設定可能な論理
670 固定論理
675 インタフェース物理層
680 ホストキューマネージャ
685 プリフェッチエンジン
690 キャッシュコントローラ
695 エラー訂正コード論理部
698、745 メモリコントローラ
700 コンピューティングシステム
705 システムバス
710 クロック
715 ランダムアクセスメモリ及び/若しくはフラッシュメモリ
720 ユーザーインタフェース
725 モデム
735 自動試験装置
740 バッテリー