(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】装置及びシステム並びに方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20240625BHJP
G06F 12/04 20060101ALI20240625BHJP
【FI】
G06F12/00 560A
G06F12/04 530
(21)【出願番号】P 2020080141
(22)【出願日】2020-04-30
【審査請求日】2023-04-27
(32)【優先日】2019-05-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-09-12
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】110000051
【氏名又は名称】弁理士法人共生国際特許事務所
(72)【発明者】
【氏名】クリシュナ テジャ マラディ
(72)【発明者】
【氏名】牛 迪 民
(72)【発明者】
【氏名】チェン 宏 忠
【審査官】北村 学
(56)【参考文献】
【文献】特表2014-513345(JP,A)
【文献】特開2018-022487(JP,A)
【文献】特開2013-041625(JP,A)
【文献】特開2015-176245(JP,A)
【文献】米国特許出願公開第2019/0095339(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/04
(57)【特許請求の範囲】
【請求項1】
装置であって、
メモリと、
プロセッサから高帯域幅メモリ(以下、HBM)にデータを転送するように構成されたデータバスと、
前記プロセッサから2つの連続的なデータ書き込み要求を受信するコントローラと、を有し、
前記コントローラは、
前記2つの連続的なデータ書き込み要求の各データに基づいて、2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づいてデータ値類似性を識別し、
ここで、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含み、前記所定量の空間値局所性は、所定量のデータ粒度(gruanularity)に基づき、
前記2つの連続的なデータ書き込み要求の前記データの前記データ値類似性に関連する情報を含むエントリを前記メモリに格納し、
前記エントリは、前記データ書き込み要求の前記データ値類似性に関連する情報を含み、
前記コントローラは、さらに、データ幅を削減するために前記エントリを圧縮し、
前記データ値類似性を含む前記データ書き込み要求の前記データに基づいて、前記データバスが前記プロセッサによる動作(operation)に利用可能であるという指示(indication)を生成し、
前記プロセッサに前記指示を伝達することを特徴とする装置。
【請求項2】
前記コントローラは、前記HBMへの読み取りアクセスのために、前記プロセッサからデータ読み取り要求をさらに受信し、
前記コントローラは、前記データ読み取り要求に対応するアドレスが前記メモリ内にエントリとして格納されているかどうかを判断することを特徴とする
請求項1に記載の装置。
【請求項3】
前記コントローラは、側波帯アクセス、並列メモリルックアップ、及びHBMルックアップをさらに実行することを特徴とする
請求項2に記載の装置。
【請求項4】
システムであって、
プロセッサと、
高帯域幅メモリ(以下、HBM)と、
プロセッサから前記HBMにデータを転送するように構成されるデータバスと、
メモリを含むコントローラと、を有し、
前記コントローラは、前記プロセッサから2つの連続的なデータ書き込み要求を受信し、
前記コントローラは、前記2つの連続的なデータ書き込み要求の各データ
の2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づいてデータ値類似性を識別し、
ここで、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含み、前記所定量の空間値局所性は、所定量のデータ粒度(gruanularity)に基づき、
前記2つの連続的なデータ書き込み要求の前記データの前記データ値類似性に関連する情報を含むエントリを前記メモリに格納し、
前記コントローラは、さらに、データ幅を削減するために前記エントリを圧縮し、
前記データ値類似性を含む前記データ書き込み要求の前記データに基づいて、前記データバスが前記プロセッサによる動作(operation)に利用可能であるという指示(indication)を生成し、
前記プロセッサに前記指示を伝達することを特徴とするシステム。
【請求項5】
前記コントローラは、前記HBMへの読み取りアクセスのために、前記プロセッサからデータ読み取り要求を受信し、
前記コントローラは、前記データ読み取り要求に対応するアドレスが前記メモリ内のエントリとして格納されているか否かを判断することを特徴とする
請求項4に記載のシステム。
【請求項6】
前記コントローラは、側波帯アクセス、並列メモリルックアップ、及びHBMルックアップをさらに実行することを特徴とする
請求項5に記載の高帯域幅メモリシステム。
【請求項7】
メモリと、プロセッサから高帯域幅メモリ(以下、HBM)にデータを転送するように構成されたデータバスと、前記プロセッサから2つの連続的なデータ書き込み要求を受信するコントローラと、を有する装置の方法であって、
前記コントローラで、
前記プロセッサから2つの連続的なデータ書き込み要求を受信する段階と、
ここで、HBMは、前記プロセッサから前記HBMにデータを転送するように構成されたデータバスを備え、
前記コントローラによって、前記2つの連続的なデータ書き込み要求の各データに基づいて、
2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づいてデータ値類似性を識別する段階と、
ここで、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含み、前記所定量の空間値局所性は、所定量のデータ粒度(gruanularity)に基づき、
前記2つの連続的なデータ書き込み要求の前記データの前記データ値類似性に関連する情報を含むエントリを前記メモリに格納する段階と、
前記コントローラによって、データ幅を削減するために前記エントリを圧縮する段階と、
前記コントローラによって、前記データ値類似性を含む前記データ書き込み要求の前記データに基づいて、前記データバスが前記プロセッサによる動作(operation)に利用可能であるという指示(indication)を生成する段階と、
前記コントローラによって、前記プロセッサに前記指示を伝達する段階と、を有することを特徴とする方法。
【請求項8】
前記HBMへの読み取りアクセスのために、前記プロセッサからデータ読み取り要求を受信する段階と、
前記データ読み取り要求に対応するアドレスが前記メモリ内のエントリとして格納されているか否かを判断する段階と、
前記メモリ内の前記エントリとして格納されている前記データ読み取り要求に対応する前記アドレスに基づいて、側波帯アクセス、並列メモリルックアップ、及びHBMルックアップを実行する段階と、をさらに有することを特徴とする
請求項7に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高帯域幅メモリ(HBM:High Bandwidth Memory)に関し、特に、データ特性に基づいて内部及び外部のHBMアクセスを削減し、HBMの全般的な性能を改善する装置及びシステム並びに方法に関する。
【背景技術】
【0002】
深層ニューラルネットワーク(deep neural networks)等の機械-学習アプリケーション(Machine-learning applications)は、正確な推論を提供するために、計算及びメモリを使用して異なるデータセットを学習する。
高性能計算(High-Performance Computing:HPC)及びグラフィックアルゴリズムは、さらにデータ及び計算集約型となるため、高帯域幅メモリの要求事項は、メモリピンが制限されているグラフィック処理装置(Graphics Processing Unit:GPU)のようなアクセラレータの場合には、特に重要になってきている。
【0003】
従って、高帯域幅メモリの全般的な性能を改善することが課題となっている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は上記従来の高帯域幅メモリにおける課題に鑑みてなされたものであって、本発明の目的は、データ特性に基づいて内部及び外部の高帯域幅メモリアクセスを削減して、高帯域幅メモリの全般的な性能を改善する装置及びシステム並びに方法を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するためになされた本発明による装置は、装置であって、メモリと、プロセッサから高帯域幅メモリ(以下、HBM)にデータを転送するように構成されたデータバスと、前記プロセッサから2つの連続的なデータ書き込み要求を受信するコントローラと、を有し、前記コントローラは、前記2つの連続的なデータ書き込み要求の各データに基づいて、2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づいてデータ値類似性を識別し、ここで、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含み、前記所定量の空間値局所性は、所定量のデータ粒度(gruanularity)に基づき、前記2つの連続的なデータ書き込み要求の前記データの前記データ値類似性に関連する情報を含むエントリを前記メモリに格納し、前記エントリは、前記データ書き込み要求の前記データ値類似性に関連する情報を含み、前記コントローラは、さらに、データ幅を削減するために前記エントリを圧縮し、前記データ値類似性を含む前記データ書き込み要求の前記データに基づいて、前記データバスが前記プロセッサによる動作(operation)に利用可能であるという指示(indication)を生成し、前記プロセッサに前記指示を伝達することを特徴とする。
【0007】
上記目的を達成するためになされた本発明によるシステムは、システムであって、プロセッサと、高帯域幅メモリ(以下、HBM)と、プロセッサから前記HBMにデータを転送するように構成されるデータバスと、メモリを含むコントローラと、を有し、前記コントローラは、前記プロセッサから2つの連続的なデータ書き込み要求を受信し、前記コントローラは、前記2つの連続的なデータ書き込み要求の各データの2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づいてデータ値類似性を識別し、ここで、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含み、前記所定量の空間値局所性は、所定量のデータ粒度(gruanularity)に基づき、前記2つの連続的なデータ書き込み要求の前記データの前記データ値類似性に関連する情報を含むエントリを前記メモリに格納し、前記コントローラは、さらに、データ幅を削減するために前記エントリを圧縮し、前記データ値類似性を含む前記データ書き込み要求の前記データに基づいて、前記データバスが前記プロセッサによる動作(operation)に利用可能であるという指示(indication)を生成し、前記プロセッサに前記指示を伝達することを特徴とする。
【0008】
上記目的を達成するためになされた本発明による方法は、メモリと、プロセッサから高帯域幅メモリ(以下、HBM)にデータを転送するように構成されたデータバスと、前記プロセッサから2つの連続的なデータ書き込み要求を受信するコントローラと、を有する装置の方法であって、前記コントローラで、前記プロセッサから2つの連続的なデータ書き込み要求を受信する段階と、ここで、HBMは、前記プロセッサから前記HBMにデータを転送するように構成されたデータバスを備え、前記コントローラによって、前記2つの連続的なデータ書き込み要求の各データに基づいて、2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づいてデータ値類似性を識別する段階と、ここで、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含み、前記所定量の空間値局所性は、所定量のデータ粒度(gruanularity)に基づき、前記2つの連続的なデータ書き込み要求の前記データの前記データ値類似性に関連する情報を含むエントリを前記メモリに格納する段階と、前記コントローラによって、データ幅を削減するために前記エントリを圧縮する段階と、前記コントローラによって、前記データ値類似性を含む前記データ書き込み要求の前記データに基づいて、前記データバスが前記プロセッサによる動作(operation)に利用可能であるという指示(indication)を生成する段階と、前記コントローラによって、前記プロセッサに前記指示を伝達する段階と、を有することを特徴とする。
【発明の効果】
【0009】
本発明に係る装置及びシステム並びに方法によれば、データ特性に基づいて内部及び外部の高帯域幅メモリアクセスを削減して、高帯域幅メモリの全般的な性能を改善することができる。
【図面の簡単な説明】
【0010】
【
図1A】本発明の一実施形態による典型的な高帯域幅メモリ(HBM)システムの概略構成を示す平面図である。
【
図1B】本発明の一実施形態による典型的なHBMシステムの側面図である。
【
図2】本発明の一実施形態による2つの一般的に使用されるニューラルネットワークの異なる層における活性化密度のグラフである。
【
図3】本発明の一実施形態による例示的なHBMの出力ドライバと例示的なGPUの入力バッファーとの間の32ビットデータバスの例を示す図である。
【
図4A】本発明の一実施形態によるHBMシステムの概略構成を示すブロック図である。
【
図4B】本発明の一実施形態によるHBMシステムの概略構成を示すブロック図である。
【
図5】本発明の一実施形態によるデータ書き込み要求に関連するデータが疎データである場合のデータ書き込み要求動作を示すタイミング図である。
【
図6】本発明の一実施形態による連続するデータ書き込み要求に関連するデータがデータ値類似性を有する場合のデータ書き込み要求動作を示すタイミング図である。
【
図7】本発明の一実施形態による書き込み要求に関連するデータが疎データ又はデータ値類似性を有する場合のデータ書き込み要求動作に応答してHBMの全般的な性能を高める方法を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
次に、本発明に係る装置及びシステム並びに方法を実施するための形態の具体例を図面を参照しながら説明する。
【0012】
以下の詳細な説明では、本発明が完全に理解されるように、多数の特定の詳細を説明する。
しかし、当業者は、開示される特定の態様がこれらの特定の詳細なしで実施し得ることを理解するであろう。
他の場合では、周知の方法、手順、コンポーネント、および回路は、本明細書に記載の主題があいまいにならないように、詳細に説明していない。
【0013】
本明細書全体における「一実施形態」又は「実施形態」への記載は、実施形態に関して説明された特定の特徴、構造又は特性が、本明細書に開示された少なくとも一つの実施形態に含まれることを意味する。
したがって、本明細書全体の様々な箇所における「一実施形態において」、「実施形態において」、又は「一実施形態により」(又は同様の他のフレーズ)のフレーズがすべて同じ実施形態を指すとは限らない。
また、特定の特徴、構造又は特性は、一つ以上の実施形態において任意の適切な方法で結合することができる。
これに関して、本明細書で使用しているように、「例示的な」という単語は、「例、実例又は例示として提供する」ことを意味する。
本明細書で「例示的な」ものとして説明された任意の実施形態は、他の実施形態よりも必ず好ましいまたは有利であると解釈されるべきではない。
さらに、特定の特徴、構造又は特性は、一つ以上の実施形態において任意の適切な方法で結合することができる。
【0014】
また、本明細書の説明の文脈に応じて、単数形は対応する複数形を含む場合があり、複数形は対応する単数を含む場合がある。
本明細書に示し説明した様々な図(構成要素図を含む)は、単に説明のためのものであり、実際の大きさで示されていないことに留意されたい。
同様に、様々な波形及びタイミング図が、単に例示の目的で示している。
例えば、一部の構成要素の寸法は、明確にするために他の構成要素に比べて誇張されている場合がある。
また、適切と見なされる場合、対応する及び/又は類似する要素を示すために、図において参照番号が繰り返される。
【0015】
本明細書で使用する用語は、単に例示的な実施形態を説明するためのものであり、請求される主題を限定するものではない。
単数形の表現は、文脈上明確に異なる意味を持たない限り、複数形の表現を含む。
本明細書で用いる場合、用語「含む」は、記載する特徴、整数、段階、演算、要素及び/又は構成要素の存在を明示するが、一つ以上の異なる特徴、整数、段階、演算、要素、構成要素、及び/又はそれらのグループの存在や追加を排除しないことを理解されよう。
本明細書で用いる「第1」、「第2」等は、名詞のラベルとして使用され、明示的に定義されない限り、任意のタイプの順序(例えば、空間的、時間的、論理的等)を意味しない。
したがって、同一又は類似の機能を有する部品、構成要素、ブロック、回路、ユニット、又はモジュールを指すために、同じ参照番号が2つ以上の図にわたって使用される場合がある。
しかし、このような使用は、説明を簡単、容易にするためのものある。
そのような構成要素又はユニットの構成や構造的詳細がすべての実施形態にわたって同じであること、又はそのような共通の参照部品/モジュールが本明細書に開示した例示的な実施形態の一部を具現する唯一の方法であることを意味するわけではない。
【0016】
構成要素又は層が別の構成要素又は層上に存在するか、「接続される」、又は「連結される」と記載される場合、それは、他の構成要素に直接、接続又は結合できることが理解されよう。
或いは層、又は介在要素や介在層が存在してもよい。
逆に、ある構成要素が別の構成要素に「直接接続」、「直接連結」されているとの記載の場合には、中間に他の構成要素が存在しないことが理解されるべきである。
同じ参照番号は、全体にわたって同じ要素を指す。本明細書で使用される「及び/又は」という用語は、挙げられる一つ以上の関連項目の任意の組み合わせ及びあらゆる組み合わせを含む。
【0017】
特に定義しない限り、技術的用語及び科学的用語を含む、本明細書で用いるすべての用語は、本発明が属する技術分野の当業者が一般的に理解するものと同じ意味を有する。
また、一般的に使用される辞書に定義されている用語は、関連技術の文脈における意味と一致する意味を有すると解釈され、本明細書で明らかに定義されない限り、理想的又は過度に形式的な意味に解されない。
【0018】
本明細書で使用する「モジュール」という用語は、モジュールに関して本明細書で説明する機能を提供するように構成されたソフトウェア、ファームウェア、及び/又はハードウェアの任意の組み合わせを指す。
ソフトウェアは、ソフトウェアパッケージ、コード及び/又は命令セット、又は命令として具現し、本明細書で説明する任意の具現で使用される「ハードウェア」という用語は、例えば、単独で、又は任意の組み合わせで、ハードワイヤード回路、プログラマブル回路、状態機械回路、及び/又はプログラマブル回路によって実行される命令を格納するファームウェアを含む。
モジュールは、集合的に又は個別に、より大きなシステムの一部を形成する回路として、例えば、集積回路(IC)、システムオンチップ(SoC)等を形成する回路として具現化される。
本明細書で開示する様々な構成要素及び/又は機能ブロックは、様々な構成要素及び/又は機能ブロックに関して本明細書で説明する機能を提供するソフトウェア、ファームウェア及び/又はハードウェアを含むモジュールとして具現化される。
【0019】
図1Aは、本発明の一実施形態による典型的な高帯域幅メモリ(以下、HBM)システム100の概略構成を示す平面図であり、
図1Bは、本発明の一実施形態による典型的なHBMシステム100の概略構成を示す側面図である。
【0020】
HBMシステム100は、マザーボード101、印刷回路基板(Printed Circuit Board:PCB)102、インターポーザ103、バッファーダイ(buffer die)104、ダイナミックランダムアクセスメモリ(DRAM)チップ(105a~105d)が示す一つ以上のDRAMチップ、及び中央処理装置(Central Processing Unit:CPU)、グラフィック処理装置(Graphic Processing Unit:GPU)、又はテンソル処理装置(Tensor Processing Unit:TPU)等のホスト処理装置(すなわち、論理プロセッサ)106を含む。
バッファーダイ104、及びDRAMチップ(105a~105d)は、HBMを構成する。
【0021】
PCB102は、はんだボール107のアレイを介してマザーボード101に電気的に接続する。
インターポーザ103は、PCB102上に配置される。
バッファーダイ104は、インターポーザ103上に配置される。
DRAMチップ105は、バッファーダイ104上に積層して配置される。
バッファーダイ104は、インターポーザ103を通過するI/Oバス108を介してホスト処理装置106に電気的に接続される。
一実施形態によれば、I/Oバス108は、1024個のデータラインと、1つ以上の制御及びアドレス(CA)ラインとを含む。
【0022】
一実施形態によれば、HBMは、1024ビット幅のデータバス(すなわち、I/Oバス108の一部)を含み、レガシー(legacy)モード及び擬似チャネル(pseuto-channel)モードを提供するHBM構造を有する。
レガシーモードでは、I/Oバス108は、バースト長(BL)が「2」のチャネル当たり128ビットの8つのチャネル(CH0~CH7)を有するように構成する。
レガシーモードでは、各チャネルは専用CAバスを有する。
擬似チャネルモードでは、I/Oバス108は、バースト長(BL)が「4」のチャネル当たり64ビットの16チャネルを有するように構成する。
2つの擬似チャネルは、擬似チャネルモードで同じCAバスを共有する。
【0023】
深層学習(deep-learning)のアプリケーションは、繰り返し浮動小数点/固定小数点演算によるデータ疎性(data sparsity)特性及び/又はデータ類似性(data similarity)特性を示す。
データ疎性は、一般に、負の値をクリッピングする整流線形ユニット(Rectified Linear Unit:ReLU)の使用、又は推論段階中の低精度の重みの使用のいずれかによって発生する。
重み値を減らすReLU又はパラメトリックReLU(PReLU)は、ランキングモデル及び推奨モデルのみではなく、コンボリューションニューラルネットワーク(Convolution Neural Network:CNN)での使用が一般的である。
しかし、全体的なモデルサイズを減らすために重みの一部を除去することによって、訓練されたニューラルネットワークを整理すると、最も大きいゼロ(0)のソースが発生する。
データ類似性は、画像におけるピクセル値の空間的局所性(spatial locality)により、CNNでより一般的である。
深層学習のアプリケーションに関連するデータ疎性は、例えば、ReLU活性化関数及び/又はゼロの重みに基づいて,平均約40%~50%に増加する。
【0024】
図2の2A及び2Bは、それぞれ2つの一般的に使用される例示的なニューラルネットワークに対して、異なる層における活性化密度を例示的に示すグラフである。
各グラフで、横座標は、例示的なニューラルネットワーク内の与えられた層を表し、縦座標は、活性化密度(すなわち、1-疎性)を表す。
2つの一般的に使用される各層の特定の活性化密度は、ニューラルネットワークが訓練される時に特定の活性化密度がどのように変化するかを示す。
例えば、40%密度の特定の活性化密度は、活性化値の平均60%がゼロであることを意味する。
【0025】
疎データに関連するアドレスマップメタデータは、数メガバイト程度まで拡大し、アドレスマップデータにおけるゼロ(0)値の位置は、機械学習モデルの訓練中に急速に変化し、追跡が難しい。
論理プロセッサからチップ外部のHBM100内にこのようなメタデータを格納することは、ルックアップ待ち時間が増加し、HBMメモリ帯域幅が低下する。
本明細書に記載の主題は、例えば、脱落又は削除する疎データメモリ書き込みを検出するために使用し、他のバスの動作のために使用するゼロ位置のビットマップを静的ランダムアクセスメモリ(Static Random Access Memory:SRAM)内にコンパクトに格納するために、HBMのDRAMチップ(105a~105b)の下に積層されたバッファーダイ104内に機能を提供する。
【0026】
データは、領域の構造(Structure Of Area:SOA)配列又は構造の領域(Area Of Structure:ASO)配列で構成される。
例えば、赤(R)、緑(G)、及び青(B)等のピクセルデータは、それぞれのピクセルに対するRGBデータがメモリの構成領域内にSOA配列で構成される。
それぞれのピクセルに対する同じRGBデータは、すべてのRデータが一緒に配列され、すべてのGデータが一緒に配列され、すべてのBデータが一緒に配列されるように、AOS配列で構成される。
いずれの配列でも、データの空間的局所性は、類似のパターン又は値を持つデータを含む。
さらに、深層学習のアプリケーションで多くの浮動小数点データは、浮動小数点値の指数部分にデータの位置を示す。
つまり、深層学習の応用における使用される値の多くが「-1」と「+1」との間である。
データの位置は、HBMバス帯域幅を節約し、HBMのトグルレート(toggle-rate)の動的電力を削減するために使用される。
【0027】
図3は、本発明の一実施形態による例示的なHBMの出力ドライバと例示的なGPUの入力バッファーとの間の32ビットデータバスの例を示す図である。
図3を参照すると、例えば、HBMの出力ドライバ302と、例えば、GPUの入力バッファー303との間の32ビットデータバス301の例を示している。
第1のトランザクション304及び第2のトランザクション305は、出力ドライバ302から入力バッファー303にデータバス301を介して伝送されるものとして示す。
第1のトランザクション304の内容の例を符号306に示す。
符号307で示した第1のトランザクション304のビットは類似性がある。
この特定の場合において、符号307で示したビットの類似性はすべて同じである。
別の実施形態では、ビットの類似性は、ビットがすべて同一でなく、所定の範囲値内の値を有する。
さらに別の実施形態では、類似すると判断されるビットの特定の位置は、符号307によって示される位置とは異なる。
第1のトランザクション304のビットの類似性は、HBMバス帯域幅を節約し、HBMのトグルレートの動的電力を低減するために使用される。
【0028】
本明細書に記載の主題は、HBMのバッファーダイ104内に、本明細書に記載のような機能を実行することによってHBMの全般的な性能を高めるために、データ疎性及びデータ類似性の両方のデータ特性を使用するHBMシステム構造を提供する。
本明細書に記載の構造の一実施形態は、疎データのゼロ値の位置を格納するためにビットマップを使用し、特定の疎な書き込みが脱落又は削除されるホスト処理装置のメモリコントローラに該当通信を送信し、他の動作に使用されるバスサイクルを節約する。
本明細書に記載の構造の別の実施形態は、アプリケーション及びHBM性能を向上させるために、連続的なデータ書き込みでデータに現れる類似性を検出し、データ圧縮技術及び/又はロギング(logging)を使用する。
データ圧縮の使用の際に、圧縮データは、HBMシステム構造のメモリ内に一連のブロックとして圧縮される。
【0029】
本明細書に記載のHBMシステム構造の一実施形態は、データ疎性又はデータ値類似性を使用するために、HBMに物理的に近い機能を実行し、これによって、コマンド及び/又はアドレスバスプロトコルの変更なしにメモリシステム性能を向上させる。
本明細書で使用する、「近い」又は「近さ」という用語は、本明細書に記載の主題によるHBMのバッファーダイ104で実行される機能及び/又は機能性を指す。
このような機能及び/又は機能性は、コアアレイに影響を及ぼすことなく、DRAMチップ内部の入出力(I/O)周辺回路で実行することもできる。
HBMのバッファーダイ104は、GPU等のアクセラレータの内部で他の方法により実行できないSRAMでビットマップを実行できる利用可能な領域が大きいため、HBMに関する機能の近さは有用性を提供する。
アクセラレータのSRAMは、マトリックス/テンソル動作を加速するために使用する貴重な資源(リソース)であるが、たとえば、HBMのバッファーダイ104のSRAMは、ここで説明する例と同様に近接メモリの加速機能に使用する。
【0030】
本明細書に記載の別の実施形態では、ゼロ値データのアドレス位置(メタデータ)は、HBMのバッファーダイ104上に位置する大きなアドレス空間内に格納する。
データ疎性を検出し、HBMのバッファーダイ104によって実行される本明細書に記載の機能的ロジックは、たとえば、SRAM内にゼロ値の位置を含むビットマップをコンパクトに格納するために使用し、それによって疎なメモリ書き込みを検出し、脱落又は削除される。
同様に、本明細書に記載の機能性は、連続的なデータ書き込み内のデータ類似性を検出し、類似値を圧縮するように構成される。
これは、メモリバスサイクルを節約し、全体的により多くの回数のメモリ転送を提供するために使用され、これにより、データ帯域幅に敏感なGPUのデータ帯域幅を増やすことができる。
【0031】
図4Aは、本発明の一実施形態によるHBMシステム400の概略構成を示すブロック図である。
HBMシステム400は、疎密制御エンジン(sparse-dense control engine)401とメモリ402とを含む。
一実施形態によれば、HBMシステム400は、大きなバッファーダイ領域を使用し、ロジック及びSRAMを含み得る。
疎密制御エンジン401は、ゼロ値に関するデータの疎度及び密度を判断する機能を提供する。
疎密制御エンジン401は、ハードウェアとソフトウェアの組み合わせとして具現され、モジュールと呼ばれる。
一実施形態によれば、メモリ402はSRAMである。
HBMシステム400は、CPU、GPU、又はTPU等のホスト処理装置420とHBM430との間にあるバッファーダイ410上に位置する。
【0032】
一実施形態によれば、HBMシステム400は、データ書き込み要求に関連するデータが疎データ特性を有するか否かを検出し、メッセージ及び/又は予備使用(Reserved for Future Use:RFU)ピンを介して、ホスト処理装置420のメモリコントローラ421へ疎データ特性の検出に関する情報を信号伝達するか、又は伝えるために、コマンド/デコード回路403を使用する。
疎データの特性は、データが「0」に等しい所定の割合の値を含むか否かに基づく。
【0033】
あるいは、HBMシステム400は、データ書き込み要求に関連するデータがデータ類似性特性を有するか否かを検出し、メッセージ及び/又はRFUピンを介してホスト処理装置420のメモリコントローラ421へデータ類似性特性の検出に関する情報を信号伝達又は伝えるために、コマンド/デコード回路403を使用する。
データ値類似性の識別は、自動的に決定されるか、及び/又はユーザ選択可能であり、本明細書では空間値局所性と呼ばれるデータ粒度(gruanularity)に基づく。
データ値類似性は、2つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づく。
【0034】
オペレーション(動作)において、疎密制御エンジン401は、ホスト処理装置420からデータ書き込み要求を受信し、書き込み要求に関連するデータが疎データ特性を有するか否かを判断する。
すなわち、疎密制御エンジン401は、書き込み要求に関連するデータの値の所定の割合以上が「0」に等しいか否かを判断する。
一実施形態によれば、書き込み要求のデータが、例えば、データの約40%以上が「0」に等しければ、「疎」と見なされる。
書き込み要求のデータが疎データと見なされる他の割合も可能である。
さらに、データ幅の粒度は、疎エントリを追跡するためのメタデータのオーバーヘッドも管理しながら、「疎」と見なされるエントリの数を変更するために、より細しく(すなわち、4kB~1kB、1kB~128B、又は、128B~32B)、又はより粗くする。
粒度の変化は、RFUピン又はエラー訂正コード(Error Correction Code:ECC)ピンを介して信号伝達する。
【0035】
もし、疎密制御エンジン401が、書き込みデータが「疎」であると判断した場合、疎密制御エンジン401は、「0」に等しいデータのアドレスに関するメタデータをメモリ402に格納する。
疎密制御エンジン401は、HBM430へのデータ書き込みが「0」に等しい疎データに脱落又は削除されるかを、メモリコントローラ421及び/又はHBM430と通信する。
データ書き込みが脱落する通信は、コマンド/デコード回路403を介してホスト処理装置420のメモリコントローラ421に送信され、HBM430にゼロ(0)値データを書き込むためにホスト処理装置420によって使用されるサイクルが、他のタスクに使用される。
別途の実施形態によれば、メモリコントローラ421は、バッファーダイ410とホスト処理装置420との間で利用可能なRFUピンを介してホスト処理装置420に信号伝達する。
追加的又は代替的に、ゼロ(0)値データをHBM430に書き込むために使用されるサイクルが他のタスクに使用するために使用可能であることを疎密制御エンジン401によってHBM430に信号伝達する。
【0036】
各ゼロ(0)値のアドレスは、メモリ402内に直接ロギング(logged)され得る。
一部の例によれば、ロギングされたアドレスは32ビットである。
他の例によれば、アドレスは32ビットより多いか、又は少ない。
一実施形態によれば、メモリ402は、ロギングされたアドレスを格納するキャッシュとして構成される。
一実施形態によれば、メモリ402は、行バッファーキャッシュとして構成される。
一実施形態によれば、ロギングされたアドレスは、各ビットがアクセスブロックを表すビットマップを形成する。
この実施形態のビットマップは、サイズを縮小するために圧縮される。
圧縮されると、ビットマップは、ホスト処理装置420のキャッシュサイズに基づくサイズを有するキャッシュラインを形成する。
【0037】
プリセットビットは、正確な値を選択するために使用され、エンコードは正確なサイズに減らす。
例えば、ホスト処理装置420が8ギガバイト(GB)のメモリ容量と128バイトのキャッシュラインとを有する場合、ビットマップは6400万(M)エントリを有する。
64メガビット(Mb)マップは、64Mエントリが8MBのサイズであることを表すのに使用され、圧縮技術によって8MBのサイズが2MBのサイズに圧縮される。
あるいは、メタデータがアクセスブロックごとに2~3ビット等のメモリ402に格納される。
メモリ201のサイズは、メモリ201に格納され得るメタデータエントリの数を設定し得る。
【0038】
データ読み取り要求の間、ビットマップに格納されたアドレスに対するヒット又はマッチがある場合、ビットマップは復元される。
復元は、特定の行に対してホスト処理装置420によって起動コマンドが送信されるとすぐに、DRAM行内部のすべての列に対して推論的に行われ、それによって復元に対する最小待ち時間のオーバーヘッドが保証される。
本明細書で使用する「推論的」という用語は、活性化されたDRAM行内のすべての列の対応する圧縮エントリがホストによって要求されたものと仮定することを意味し、それにより、プロセスを早期に開始することにより、復元待ち時間を部分的に隠すのに役立ち、起動コマンド後にtRCDサイクルで一つの特定の列コマンドが発行されるまで待たなくてもよい。
メタデータの使用に基づいて、読み取りアクセスは、O(1)の計算の複雑さを持つ。
【0039】
一実施形態によれば、特殊目的の命令セット構造450は、本明細書に記載の主題により、HBMシステム400で動作をインスタンス化し、実行するために使用する。
ソフトウェアドライバ451及びライブラリ452を含むアプリケーション・プログラミング・インターフェイス(Application Programming Interface:API)は、本明細書に記載の機能性を既存の機械学習フレームワークに透過的に統合するために、HBMシステム400にアクセスする特殊目的の命令セット構造450の一部として提供される。
【0040】
図5は、本発明の一実施形態によるデータ書き込み要求に関連するデータが疎データを含む場合のデータ書き込み要求動作を示すタイミング図である。
タイミング
図500は、データ書き込み要求動作中のクロック信号501、CAバス502、及びデータ(DQ)バス503の相対的なタイミングを含む。
図5に示すCAバス502の一部は、ホスト処理装置420と疎密制御エンジン401との間に延在するが、
図5に示すDQバス503の一部は、疎密制御エンジン401とHBM430との間に延在する。
【0041】
初めに、ホスト処理装置420は、活性化(ACT)コマンド504に続いて書き込み要求(WR)コマンド505を送信する。
この例では、疎密制御エンジン401は、書き込みデータが「疎」であると決定し、疎密制御エンジン401は、非動作(no-operation:NOP)506によって表されるように、「0」に等しいデータに対してHBM430へのデータ書き込みを脱落又は削除する。
ホスト処理装置420は、プリチャージ(PRE)コマンド507を送信することによって、書き込み要求を続行する。
一実施形態によれば、プリチャージは、DRAMバンクを横切る開かれた行を閉じ、次の行の活性化のためにバンクを準備する。
より具体的には、プリチャージは、次の活性化後に行の値を検知することができるように、内部ビットライン電圧をVdd/2に再上昇させる。
NOPが実行されている間、クロックサイクル及びDQバスは、他の動作に使用することができる。
本明細書で使用するように、「他の動作」という用語は、自由なサイクル又は利用可能なサイクルを使用する、他の正規のDRAM読み取り、書き込み、及び起動コマンドを指す。
【0042】
図4Bは、本発明の他の実施形態によるHBMシステムの概略構成を示すブロック図である。
図4Aに示すHBMシステム400と同様に、HBMシステム400’はCPU、GPU、又はTPU等のホスト処理装置420とHBM430との間のバッファーダイ410上に位置する。
HBMシステム400’は、疎密制御エンジン401とメモリ402とを含む。
一実施形態によれば、メモリ402はSRAMである。
一実施形態によれば、HBMシステム400’は、ECCエンジン404を使用して、疎データ特性の検出又はデータ類似特性の検出に関する情報をホスト処理装置420のメモリコントローラ421に信号伝達又は通信する。
ECC機能は、典型的に、深層ニューラルネットワークの訓練中に使用されないため、ECCエンジン404に関連する通信経路は、データ書き込み動作が脱落又は削除され、メモリサイクルが他の動作に用いられるように信号伝達又は通信するように再構成される。
【0043】
HBMシステム400’の動作は、
図4Aに示すHBMシステム400の動作と同様である。
疎密制御エンジン401は、ホスト処理装置420からデータ書き込み要求を受信し、書き込み要求に関連するデータが疎データであるか否かを判断する。
つまり、疎密制御エンジン401は、書き込み要求に関連するデータの値の所定の割合以上が「0」であるか否かを判断する。
一実施形態によれば、書き込み要求のデータは、例えば、データの約40%以上が「0」であれば「疎」とみなされる。
疎密制御エンジン401が、書き込みデータが「疎」であると判断した場合、疎密制御エンジン401は、「0」に等しいデータのアドレスに関連するメモリ402にメタデータを格納する。
疎密制御エンジン401は、次に、「0」に等しいデータに対してHBM430へのデータ書き込みを脱落又は削除し、HBM430にゼロ(0)値のデータを書き込むために使用されるサイクルが他のタスクに使用可能であることを、ECC回路404を介してホスト処理装置420のメモリコントローラ421に信号を送信する。
別の実施形態では、メモリコントローラ421は、バッファーダイ410とホスト処理装置420との間で利用可能なRFUピンを介して信号伝達される。
【0044】
HBMシステム400及びHBMシステム400’両者のために、データ読み取り要求は、HBM430及びメモリ402に対する並列又は側波帯ルックアップを含む。
データ読み取りに関連する小さな待ち時間があるが、このような待ち時間は、ホスト処理装置420に悪影響を及ぼさない。
行全体に対応するマップエントリは、HBMレジスタにフェッチされる。
列アクセスは、まずメモリ402で調べられ、一致するものがある場合、疎データはメモリ402と疎密制御エンジン401との間の疎データバスを介して返される。
一致するものがない場合、要求されたデータは、HBM430と疎密制御エンジン401との間のDQバスを介して、メモリ402に格納されたデータと一致した場合に比べて、追加の待ち時間を使用して返される。
【0045】
側波帯ルックアップは、アドレスに対応するメタデータを要求する。
メタデータは、アクセスが「疎な(sparse)」又は「密な(dense)」アクセスであるか否かを判断するために並列に使用され、ここで主要な動機は、HBM430から0値の読み取りを排除することである。
アクセスが疎なアクセスであると判断された場合、読み取りコマンドが発行されず、サイクルは解放される。
アクセスが密なアクセスであると判断された場合、読み取りコマンドが発行され、「密な」データがHBMから読み取られる。
【0046】
ECC/DQバスのリターン経路は、疎/密なアクセスによって変わる。
ECC経路は、値が「0」である制御情報を提供する。
ECC経路に対する制御情報が、値が「0」でないことを示す場合、規則的な読み取りコマンドが発行され、読み取りデータがDQバスに返される。
ECC経路が疎/密なアクセスのために用いられる場合、HBMはECC機能を実行できるため、読み取り値がバッファーダイまでエラーから保護される。
しかし、DRAMからホストへのデータ伝送にはエラーが発生する場合がある。
例えば、ホストで実行されるCRC(Cyclic Redundancy Check)は、この種のエラーを修正及び検出する。
解放されたECCピンは、(DRAM起動コマンド中に)読み取りデータが「疎」であるか否かを調べるために、上記のメカニズムに使用される。
データが「疎」の場合、読み取りコマンドは発行されず、プリチャージコマンドで行が閉じられる。
【0047】
HBMシステムの別途の例示的な実施形態は、
図4A又は
図4Bに示す構成を有し、連続するデータ書き込み要求の間でデータ値類似性を検出する。
この別途の例示的な実施形態は、データ書き込みアクセスの幅を縮小し、HBM430の内部及び外部の他の動作に利用可能なバス幅を作ることにより、アプリケーション性能を向上させるために、類似性データを圧縮及び/又は記録する。
データ値類似性及び空間値局所性は、バッファーダイ410でメモリ帯域幅の圧縮を実行するのに役立つ。
検出されたデータの類似性を記録するために使用されるメタデータが生成される。
データ値類似性の識別は、データ粒度に基づき、これは自動的に決定され、及び/又はユーザが選択可能である。
データ値類似性は、2つのデータ値の間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術にも基づいている。
ECCピン及び/又はRFUピン等の予備ピンは、利用可能なバス幅を外部のホスト処理装置420及び/又はHBM430の両者に信号伝達することができる。
【0048】
疎密制御エンジン401は、連続するデータ書き込み要求のデータを追跡し、任意の適切な符号化技術を使用して、データ値類似性を示すデータを符号化するように構成される。
符号化データ及び/又は符号化データに関連するメタデータは、メモリ402に格納される。
データ読み取り要求は、メモリ402及びHBM430の両者に対する並列ルックアップを利用する。
メモリ402に格納されたメタデータで一致が発生すると、符号化データは復号化され、ホスト処理装置420に返される。
メタデータのサイズは、使用される符号化技術に応じてエントリごとに異なり、メモリ402のキャッシュサイズに収まるように変更される。
さらに、メタデータのサイズは、ホスト処理装置420のキャッシュサイズ/セクターの関数である。
一実施形態において、メモリコントローラ421は、以前の値を追跡し、データ幅を削減するために、符号化方式を選択する。
一実施形態において、メタデータのサイズは、バックグラウンドプロセスとして及び/又はHBM430のリフレッシュ動作中に、異なる符号化方式に動的に変更する。
復号化プロセスは、符号化プロセスで使用されるコード体系、特別な最適化ビット、同様の値の数等を生じる。
【0049】
図6は、本発明の一実施形態による連続する書き込み要求に関連するデータがデータ値類似性を有する場合のデータ書き込み要求動作を示す相対的なタイミング図である。
タイミング
図600は、クロック信号601、CAバス602、及びDQバス603の相対的なタイミングを含む。
【0050】
2つの連続的なデータ書き込み要求604及び605のうちの1番目に対して、ホスト処理装置420は、第1の活性化(ACT1)コマンド606、第1の書き込み要求(WR1)コマンド607、及びプリチャージ(PRE)コマンド608を送信する。
プリチャージ(PRE)コマンド608に続き、第2の活性化(ACT2)コマンド609、第2の書き込み要求(WR2)コマンド610、及びプリチャージ(PRE)コマンド611が続く。
この例では、疎密制御エンジン401は、2つの書き込み要求604及び605のデータ612及び613がデータ値類似性の特徴を有する場合、疎密制御エンジン401は類似のデータを符号化し、符号化データ及び符号化データのメタデータをメモリ402に格納し、通常のDRAMアクセスに使用される読み取り、書き込み、及び起動コマンド等、他の動作に使用するバス幅の可用性があるか否かを信号伝達する(図示しない)。
これらの動作が解除されたスロットでスケジュールされることにより、全体の帯域幅効率が改善し、スループットが改善する。
【0051】
図7は、本発明の一実施形態による書き込み要求に関連するデータが疎データ又はデータ値類似性である場合のデータ書き込み要求動作に応答してHBMの全般的な性能を高める方法を説明するためのフローチャートである。
【0052】
まず、ステップS701で、データ書き込み要求は、HBM430外部にある
図4Aのホスト処理装置420等のプロセッサから
図4Aの疎密制御エンジン401等のHBM430のコントローラによって受信される。
次に、ステップS702で、エントリは、
図4Aのメモリ402等のメモリに格納され、疎データ又はデータ値類似性を含むデータ書き込み要求のデータに基づいて、データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリをメモリ内に格納する。
次に、ステップS703で、疎データ又はデータ値類似性を含むデータ書き込み要求のデータに基づいて、データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示が生成する。
【0053】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【0054】
100、400、400’ HBMシステム
101 マザーボード
102 印刷回路基板(PCB)
103 インターポーザ
104、410 バッファーダイ
105a~105d DRAMチップ
106 ホスト処理装置
107 はんだボール
108 I/Oバス
401 疎密制御エンジン
402 メモリ
403 コマンド/デコード回路
404 ECCエンジン(回路)
420 ホスト処理装置
421 メモリコントローラ
430 HBM(高帯域幅メモリ)
450 命令セット構造
451 ソフトウェアドライバ
452 ライブラリ