(57)【要約】【課題】データ特性に基づき内部及び外部の高帯域幅メモリアクセスを削減し全般的な性能を改善する高帯域幅メモリを提供する。【解決手段】メモリと高帯域幅メモリ（ＨＢＭ）の外部にあるプロセッサからのデータ書き込み要求を受信するコントローラとを有し、コントローラはデータ書き込み要求のデータの少なくとも一つのアドレスを示すエントリをメモリ内に格納し、エントリを格納することは、データ書き込み要求のデータの疎データ又はデータ値類似性を含むデータ書き込み要求のデータに基づいて行われ、コントローラは疎データ又はデータ値類似性を含むデータ書き込み要求に基づいてデータ書き込み要求のサイクルタイム中にデータバスが動作に利用可能であるという指示を生成し、疎データは０に等しいデータ書き込み要求のデータの所定の割合のデータ値を含み、データ値類似性はデータ書き込み要求のデータのデータ値の所定量の空間値局所性を含む。【選択図】  図１Ａ
2020184338.tif 000002
【特許請求の範囲】
【請求項１】
高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：以下、ＨＢＭ）であって、
メモリと、
前記ＨＢＭの外部にあるプロセッサからのデータ書き込み要求を受信するコントローラと、を有し、
前記コントローラは、前記データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリを前記メモリ内に格納し、
前記エントリを格納することは、前記データ書き込み要求のデータの疎データ（ｓｐａｒｓｅ  ｄａｔａ）又はデータ値類似性（ｄａｔａ−ｖａｌｕｅ  ｓｉｍｉｌａｒｉｔｙ  ｏｆ  ｄａｔａ）を含む前記データ書き込み要求のデータに基づいて行われ、
前記コントローラは、前記疎データ又はデータ値類似性を含む前記データ書き込み要求に基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成し、
前記疎データは、「０」に等しい前記データ書き込み要求のデータの所定の割合のデータ値を含み、
前記データ値類似性は、前記データ書き込み要求のデータのデータ値の所定量の空間値局所性（ｓｐａｔｉａｌ−ｖａｌｕｅ  ｌｏｃａｌｉｔｙ  ｏｆ  ｄａｔａ）を含むことを特徴とする高帯域幅メモリ。
【請求項２】
前記「０」に等しいデータ値の前記所定の割合は、所定のデータ粒度（ｄａｔａ  ｇｒａｎｕｌａｒｉｔｙ）に基づくことを特徴とする請求項１に記載の高帯域幅メモリ。
【請求項３】
前記所定量の空間値局所性は、所定のデータ粒度に基づくことを特徴とする請求項１に記載の高帯域幅メモリ。
【請求項４】
前記コントローラは、前記ＨＢＭへの読み取りアクセスのために、前記ＨＢＭの外部にある前記プロセッサからデータ読み取り要求を受信し、
前記コントローラは、前記データ読み取り要求に対応するアドレスが前記メモリ内のエントリとして格納されているかどうかを判断することを特徴とする請求項１に記載の高帯域幅メモリ。
【請求項５】
前記コントローラは、並列メモリルックアップ及びＨＢＭルックアップに加えて、側波帯アクセスをさらに実行することを特徴とする請求項４に記載の高帯域幅メモリ。
【請求項６】
前記エントリは、前記データ書き込み要求のデータの前記データ値類似性に関連する情報を含み、
前記コントローラは、データ幅を削減するために前記エントリを圧縮することを特徴とする請求項１に記載の高帯域幅メモリ。
【請求項７】
前記エントリは、メタデータを含み、
前記コントローラは、前記メタデータを前記メモリ内の一連のブロックとして圧縮することを特徴とする請求項１に記載の高帯域幅メモリ。
【請求項８】
高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：以下、ＨＢＭ）システムであって、
プロセッサと、
前記ＨＢＭと、
メモリを含むコントローラと、を有し、
前記コントローラは、前記プロセッサからデータ書き込み要求を受信し、
疎データを含む前記データ書き込み要求のデータに基づいて、前記データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリを前記コントローラの前記メモリ内に格納し、
前記疎データを含む前記データ書き込み要求に基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成し、
前記疎データは、「０」に等しい前記データ書き込み要求のデータのデータ値の所定の割合を含むことを特徴とする高帯域幅メモリシステム。
【請求項９】
前記「０」に等しいデータ値の前記所定の割合は、所定のデータ粒度に基づくことを特徴とする請求項８に記載の高帯域幅メモリシステム。
【請求項１０】
前記コントローラは、データ値類似性をさらに含む前記データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリを前記コントローラの前記メモリ内に格納し、
前記データ値類似性を含む前記データ書き込み要求に基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成し、
前記データ書き込み要求のデータは、所定量の空間値局所性を含み、
前記所定量の空間値局所性は、所定のデータ粒度に基づくことを特徴とする請求項８に記載の高帯域幅メモリシステム。
【請求項１１】
前記コントローラは、前記ＨＢＭへの読み取りアクセスのために、前記ＨＢＭの外部にある前記プロセッサからデータ読み取り要求を受信し、
前記コントローラは、前記データ読み取り要求に対応するアドレスが前記メモリ内のエントリとして格納されているか否かを判断することを特徴とする請求項８に記載の高帯域幅メモリシステム。
【請求項１２】
前記コントローラは、並列メモリルックアップ及びＨＢＭルックアップに加えて、側波帯アクセスをさら実行することを特徴とする請求項１１に記載の高帯域幅メモリシステム。
【請求項１３】
前記エントリは、前記データ書き込み要求のデータの前記データ値類似性に関連する情報を含み、
前記コントローラは、データ幅を削減するために前記エントリを圧縮することを特徴とする請求項８に記載の高帯域幅メモリシステム。
【請求項１４】
前記エントリは、メタデータを含み、
前記コントローラは、前記メタデータを前記メモリ内の一連のブロックとして圧縮することを特徴とする請求項８に記載の高帯域幅メモリシステム。
【請求項１５】
高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：以下、ＨＢＭ）の動作方法であって、
前記ＨＢＭのコントローラで、前記ＨＢＭの外部にあるプロセッサからのデータ書き込み要求を受信する段階と、
前記コントローラによって、前記データ書き込み要求のデータの疎データ又はデータ値類似性に基づいて、前記データ書き込み要求のデータの少なくとも１つのアドレスを示すエントリを前記コントローラのメモリに格納する段階と、
前記コントローラによって、前記データ値類似性を含む前記データ書き込み要求のデータに基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成する段階と、を有し、
前記疎データは、「０」に等しい前記データ書き込み要求のデータのデータ値の所定の割合を含み、
前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含むことを特徴とする高帯域幅メモリの動作方法。
【請求項１６】
前記データ書き込み要求の前記データは、所定量の空間値局所性を含み、
前記指示は、前記所定量の空間値局所性を含む前記データ書き込み要求のデータに基づき、
前記高帯域幅メモリの動作方法は、前記コントローラによって、前記所定量の空間値局所性をさらに含む前記データ書き込み要求のデータに基づいて、前記データ書き込み要求のサイクルタイム中にデータバスが前記オペレーションに利用可能であるという前記指示を生成する段階をさらに有することを特徴とする請求項１５に記載の高帯域幅メモリの動作方法。
【請求項１７】
前記データ書き込み要求の前記データは、「０」に等しい前記データ書き込み要求のデータのデータ値の所定の割合を含み、
前記指示は、「０」に等しい前記データ書き込み要求のデータのデータ値の所定の割合を含む、前記データ書き込み要求の前記データに基づき、
前記高帯域幅メモリの動作方法は、前記コントローラによって、データバスが、前記疎データを含む前記データ書き込み要求のデータに基づいて、前記データ書き込み要求のサイクルタイム中にデータバスが前記オペレーションに利用可能であるという指示を生成する段階をさらに有し、
前記疎データの「０」に等しいデータ値の前記所定の割合は、所定のデータ粒度に基づくことを特徴とする請求項１５に記載の高帯域幅メモリの動作方法。
【請求項１８】
前記ＨＢＭへの読み取りアクセスのために、前記ＨＢＭの外部にある前記プロセッサからデータ読み取り要求を受信する段階と、
前記データ読み取り要求に対応するアドレスが前記メモリ内のエントリとして格納されているか否かを判断する段階と、
前記メモリ内の前記エントリとして格納されている前記データ読み取り要求に対応する前記アドレスに基づいて、並列メモリルックアップ及びＨＢＭルックアップに加えて、側波帯アクセスを実行する段階と、をさらに有することを特徴とする請求項１５に記載の高帯域幅メモリの動作方法。
【請求項１９】
前記エントリは、前記データ書き込み要求のデータの前記データ値類似性に関連する情報を含み、
前記高帯域幅メモリの動作方法は、データ幅を削減するために前記エントリを圧縮する段階をさらに有することを特徴とする請求項１５に記載の方法。
【請求項２０】
前記エントリは、メタデータを含み、
前記高帯域幅メモリの動作方法は、前記メタデータを前記メモリ内の一連のブロックとして圧縮する段階をさらに有することを特徴とする請求項１５に記載の高帯域幅メモリの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高帯域幅メモリ（ＨＢＭ：Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ）に関し、特に、データ特性に基づいて内部及び外部のＨＢＭアクセスを削減し、ＨＢＭの全般的な性能を改善する高帯域幅メモリ及びその動作方法並びに高帯域幅メモリシステムに関する。
【背景技術】
【０００２】
深層ニューラルネットワーク（ｄｅｅｐ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ）等の機械−学習アプリケーション（Ｍａｃｈｉｎｅ−ｌｅａｒｎｉｎｇ  ａｐｐｌｉｃａｔｉｏｎｓ）は、正確な推論を提供するために、計算及びメモリを使用して異なるデータセットを学習する。
高性能計算（Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ：ＨＰＣ）及びグラフィックアルゴリズムは、さらにデータ及び計算集約型となるため、高帯域幅メモリの要求事項は、メモリピンが制限されているグラフィック処理装置（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＧＰＵ）のようなアクセラレータの場合には、特に重要になってきている。
【０００３】
従って、高帯域幅メモリの全般的な性能を改善することが課題となっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３４０２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は上記従来の高帯域幅メモリにおける課題に鑑みてなされたものであって、本発明の目的は、データ特性に基づいて内部及び外部の高帯域幅メモリアクセスを削減して、高帯域幅メモリの全般的な性能を改善する高帯域幅メモリ及びその動作方法並びに高帯域幅メモリシステムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明による高帯域幅メモリは、高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：以下、ＨＢＭ）であって、メモリと、前記ＨＢＭの外部にあるプロセッサからのデータ書き込み要求を受信するコントローラと、を有し、前記コントローラは、前記データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリをメモリ内に格納し、前記エントリを格納することは、前記データ書き込み要求のデータの疎データ（ｓｐａｒｓｅ  ｄａｔａ）又はデータ値類似性（ｄａｔａ−ｖａｌｕｅ  ｓｉｍｉｌａｒｉｔｙ  ｏｆ  ｄａｔａ）を含む前記データ書き込み要求のデータに基づいて行われ、前記コントローラは、前記疎データ又はデータ値類似性を含む前記データ書き込み要求に基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成し、前記疎データは、「０」に等しい前記データ書き込み要求のデータの所定の割合のデータ値を含み、前記データ値類似性は、前記データ書き込み要求のデータのデータ値の所定量の空間値局所性（ｓｐａｔｉａｌ−ｖａｌｕｅ  ｌｏｃａｌｉｔｙ  ｏｆ  ｄａｔａ）を含むことを特徴とする。
【０００７】
上記目的を達成するためになされた本発明による高帯域幅メモリシステムは、高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：以下、ＨＢＭ）システムであって、プロセッサと、前記ＨＢＭと、メモリを含むコントローラと、を有し、前記コントローラは、前記プロセッサからデータ書き込み要求を受信し、疎データを含む前記データ書き込み要求のデータに基づいて、前記データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリを前記コントローラの前記メモリ内に格納し、前記疎データを含む前記データ書き込み要求に基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成し、前記疎データは、「０」に等しい前記データ書き込み要求のデータのデータ値の所定の割合を含むことを特徴とする。
【０００８】
上記目的を達成するためになされた本発明による高帯域幅メモリの動作方法は、高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：以下、ＨＢＭ）の動作方法であって、前記ＨＢＭのコントローラで、前記ＨＢＭの外部にあるプロセッサからのデータ書き込み要求を受信する段階と、前記コントローラによって、前記データ書き込み要求のデータの疎データ又はデータ値類似性に基づいて、前記データ書き込み要求のデータの少なくとも１つのアドレスを示すエントリを前記コントローラのメモリに格納する段階と、前記コントローラによって、前記データ値類似性を含む前記データ書き込み要求のデータに基づいて、前記データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示を生成する段階と、を有し、前記疎データは、「０」に等しい前記データ書き込み要求のデータのデータ値の所定の割合を含み、前記データ値類似性は、前記データ書き込み要求のデータの所定量の空間値局所性を含むことを特徴とする。
【発明の効果】
【０００９】
本発明に係る高帯域幅メモリ及びその動作方法並びに高帯域幅メモリシステムによれば、データ特性に基づいて内部及び外部の高帯域幅メモリアクセスを削減して、高帯域幅メモリの全般的な性能を改善することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】本発明の一実施形態による典型的な高帯域幅メモリ（ＨＢＭ）システムの概略構成を示す平面図である。
【図１Ｂ】本発明の一実施形態による典型的なＨＢＭシステムの側面図である。
【図２】本発明の一実施形態による２つの一般的に使用されるニューラルネットワークの異なる層における活性化密度のグラフである。
【図３】本発明の一実施形態による例示的なＨＢＭの出力ドライバと例示的なＧＰＵの入力バッファーとの間の３２ビットデータバスの例を示す図である。
【図４Ａ】本発明の一実施形態によるＨＢＭシステムの概略構成を示すブロック図である。
【図４Ｂ】本発明の一実施形態によるＨＢＭシステムの概略構成を示すブロック図である。
【図５】本発明の一実施形態によるデータ書き込み要求に関連するデータが疎データである場合のデータ書き込み要求動作を示すタイミング図である。
【図６】本発明の一実施形態による連続するデータ書き込み要求に関連するデータがデータ値類似性を有する場合のデータ書き込み要求動作を示すタイミング図である。
【図７】本発明の一実施形態による書き込み要求に関連するデータが疎データ又はデータ値類似性を有する場合のデータ書き込み要求動作に応答してＨＢＭの全般的な性能を高める方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
次に、本発明に係る高帯域幅メモリ及びその動作方法並びに高帯域幅メモリシステムを実施するための形態の具体例を図面を参照しながら説明する。
【００１２】
以下の詳細な説明では、本発明が完全に理解されるように、多数の特定の詳細を説明する。
しかし、当業者は、開示される特定の態様がこれらの特定の詳細なしで実施し得ることを理解するであろう。
他の場合では、周知の方法、手順、コンポーネント、および回路は、本明細書に記載の主題があいまいにならないように、詳細に説明していない。
【００１３】
本明細書全体における「一実施形態」又は「実施形態」への記載は、実施形態に関して説明された特定の特徴、構造又は特性が、本明細書に開示された少なくとも一つの実施形態に含まれることを意味する。
したがって、本明細書全体の様々な箇所における「一実施形態において」、「実施形態において」、又は「一実施形態により」（又は同様の他のフレーズ）のフレーズがすべて同じ実施形態を指すとは限らない。
また、特定の特徴、構造又は特性は、一つ以上の実施形態において任意の適切な方法で結合することができる。
これに関して、本明細書で使用しているように、「例示的な」という単語は、「例、実例又は例示として提供する」ことを意味する。
本明細書で「例示的な」ものとして説明された任意の実施形態は、他の実施形態よりも必ず好ましいまたは有利であると解釈されるべきではない。
さらに、特定の特徴、構造又は特性は、一つ以上の実施形態において任意の適切な方法で結合することができる。
【００１４】
また、本明細書の説明の文脈に応じて、単数形は対応する複数形を含む場合があり、複数形は対応する単数を含む場合がある。
本明細書に示し説明した様々な図（構成要素図を含む）は、単に説明のためのものであり、実際の大きさで示されていないことに留意されたい。
同様に、様々な波形及びタイミング図が、単に例示の目的で示している。
例えば、一部の構成要素の寸法は、明確にするために他の構成要素に比べて誇張されている場合がある。
また、適切と見なされる場合、対応する及び／又は類似する要素を示すために、図において参照番号が繰り返される。
【００１５】
本明細書で使用する用語は、単に例示的な実施形態を説明するためのものであり、請求される主題を限定するものではない。
単数形の表現は、文脈上明確に異なる意味を持たない限り、複数形の表現を含む。
本明細書で用いる場合、用語「含む」は、記載する特徴、整数、段階、演算、要素及び／又は構成要素の存在を明示するが、一つ以上の異なる特徴、整数、段階、演算、要素、構成要素、及び／又はそれらのグループの存在や追加を排除しないことを理解されよう。
本明細書で用いる「第１」、「第２」等は、名詞のラベルとして使用され、明示的に定義されない限り、任意のタイプの順序（例えば、空間的、時間的、論理的等）を意味しない。
したがって、同一又は類似の機能を有する部品、構成要素、ブロック、回路、ユニット、又はモジュールを指すために、同じ参照番号が２つ以上の図にわたって使用される場合がある。
しかし、このような使用は、説明を簡単、容易にするためのものある。
そのような構成要素又はユニットの構成や構造的詳細がすべての実施形態にわたって同じであること、又はそのような共通の参照部品／モジュールが本明細書に開示した例示的な実施形態の一部を具現する唯一の方法であることを意味するわけではない。
【００１６】
構成要素又は層が別の構成要素又は層上に存在するか、「接続される」、又は「連結される」と記載される場合、それは、他の構成要素に直接、接続又は結合できることが理解されよう。
或いは層、又は介在要素や介在層が存在してもよい。
逆に、ある構成要素が別の構成要素に「直接接続」、「直接連結」されているとの記載の場合には、中間に他の構成要素が存在しないことが理解されるべきである。
同じ参照番号は、全体にわたって同じ要素を指す。本明細書で使用される「及び／又は」という用語は、挙げられる一つ以上の関連項目の任意の組み合わせ及びあらゆる組み合わせを含む。
【００１７】
特に定義しない限り、技術的用語及び科学的用語を含む、本明細書で用いるすべての用語は、本発明が属する技術分野の当業者が一般的に理解するものと同じ意味を有する。
また、一般的に使用される辞書に定義されている用語は、関連技術の文脈における意味と一致する意味を有すると解釈され、本明細書で明らかに定義されない限り、理想的又は過度に形式的な意味に解されない。
【００１８】
本明細書で使用する「モジュール」という用語は、モジュールに関して本明細書で説明する機能を提供するように構成されたソフトウェア、ファームウェア、及び／又はハードウェアの任意の組み合わせを指す。
ソフトウェアは、ソフトウェアパッケージ、コード及び／又は命令セット、又は命令として具現し、本明細書で説明する任意の具現で使用される「ハードウェア」という用語は、例えば、単独で、又は任意の組み合わせで、ハードワイヤード回路、プログラマブル回路、状態機械回路、及び／又はプログラマブル回路によって実行される命令を格納するファームウェアを含む。
モジュールは、集合的に又は個別に、より大きなシステムの一部を形成する回路として、例えば、集積回路（ＩＣ）、システムオンチップ（ＳｏＣ）等を形成する回路として具現化される。
本明細書で開示する様々な構成要素及び／又は機能ブロックは、様々な構成要素及び／又は機能ブロックに関して本明細書で説明する機能を提供するソフトウェア、ファームウェア及び／又はハードウェアを含むモジュールとして具現化される。
【００１９】
図１Ａは、本発明の一実施形態による典型的な高帯域幅メモリ（以下、ＨＢＭ）システム１００の概略構成を示す平面図であり、図１Ｂは、本発明の一実施形態による典型的なＨＢＭシステム１００の概略構成を示す側面図である。
【００２０】
ＨＢＭシステム１００は、マザーボード１０１、印刷回路基板（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ：ＰＣＢ）１０２、インターポーザ１０３、バッファーダイ（ｂｕｆｆｅｒ  ｄｉｅ）１０４、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）チップ（１０５ａ〜１０５ｄ）が示す一つ以上のＤＲＡＭチップ、及び中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）、グラフィック処理装置（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＧＰＵ）、又はテンソル処理装置（Ｔｅｎｓｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＴＰＵ）等のホスト処理装置（すなわち、論理プロセッサ）１０６を含む。
バッファーダイ１０４、及びＤＲＡＭチップ（１０５ａ〜１０５ｄ）は、ＨＢＭを構成する。
【００２１】
ＰＣＢ１０２は、はんだボール１０７のアレイを介してマザーボード１０１に電気的に接続する。
インターポーザ１０３は、ＰＣＢ１０２上に配置される。
バッファーダイ１０４は、インターポーザ１０３上に配置される。
ＤＲＡＭチップ１０５は、バッファーダイ１０４上に積層して配置される。
バッファーダイ１０４は、インターポーザ１０３を通過するＩ／Ｏバス１０８を介してホスト処理装置１０６に電気的に接続される。
一実施形態によれば、Ｉ／Ｏバス１０８は、１０２４個のデータラインと、１つ以上の制御及びアドレス（ＣＡ）ラインとを含む。
【００２２】
一実施形態によれば、ＨＢＭは、１０２４ビット幅のデータバス（すなわち、Ｉ／Ｏバス１０８の一部）を含み、レガシー（ｌｅｇａｃｙ）モード及び擬似チャネル（ｐｓｅｕｔｏ−ｃｈａｎｎｅｌ）モードを提供するＨＢＭ構造を有する。
レガシーモードでは、Ｉ／Ｏバス１０８は、バースト長（ＢＬ）が「２」のチャネル当たり１２８ビットの８つのチャネル（ＣＨ０〜ＣＨ７）を有するように構成する。
レガシーモードでは、各チャネルは専用ＣＡバスを有する。
擬似チャネルモードでは、Ｉ／Ｏバス１０８は、バースト長（ＢＬ）が「４」のチャネル当たり６４ビットの１６チャネルを有するように構成する。
２つの擬似チャネルは、擬似チャネルモードで同じＣＡバスを共有する。
【００２３】
深層学習（ｄｅｅｐ−ｌｅａｒｎｉｎｇ）のアプリケーションは、繰り返し浮動小数点／固定小数点演算によるデータ疎性（ｄａｔａ  ｓｐａｒｓｉｔｙ）特性及び／又はデータ類似性（ｄａｔａ  ｓｉｍｉｌａｒｉｔｙ）特性を示す。
データ疎性は、一般に、負の値をクリッピングする整流線形ユニット（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ：ＲｅＬＵ）の使用、又は推論段階中の低精度の重みの使用のいずれかによって発生する。
重み値を減らすＲｅＬＵ又はパラメトリックＲｅＬＵ（ＰＲｅＬＵ）は、ランキングモデル及び推奨モデルのみではなく、コンボリューションニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）での使用が一般的である。
しかし、全体的なモデルサイズを減らすために重みの一部を除去することによって、訓練されたニューラルネットワークを整理すると、最も大きいゼロ（０）のソースが発生する。
データ類似性は、画像におけるピクセル値の空間的局所性（ｓｐａｔｉａｌ  ｌｏｃａｌｉｔｙ）により、ＣＮＮでより一般的である。
深層学習のアプリケーションに関連するデータ疎性は、例えば、ＲｅＬＵ活性化関数及び／又はゼロの重みに基づいて，平均約４０％〜５０％に増加する。
【００２４】
図２の２Ａ及び２Ｂは、それぞれ２つの一般的に使用される例示的なニューラルネットワークに対して、異なる層における活性化密度を例示的に示すグラフである。
各グラフで、横座標は、例示的なニューラルネットワーク内の与えられた層を表し、縦座標は、活性化密度（すなわち、１−疎性）を表す。
２つの一般的に使用される各層の特定の活性化密度は、ニューラルネットワークが訓練される時に特定の活性化密度がどのように変化するかを示す。
例えば、４０％密度の特定の活性化密度は、活性化値の平均６０％がゼロであることを意味する。
【００２５】
疎データに関連するアドレスマップメタデータは、数メガバイト程度まで拡大し、アドレスマップデータにおけるゼロ（０）値の位置は、機械学習モデルの訓練中に急速に変化し、追跡が難しい。
論理プロセッサからチップ外部のＨＢＭ１００内にこのようなメタデータを格納することは、ルックアップ待ち時間が増加し、ＨＢＭメモリ帯域幅が低下する。
本明細書に記載の主題は、例えば、脱落又は削除する疎データメモリ書き込みを検出するために使用し、他のバスの動作のために使用するゼロ位置のビットマップを静的ランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ＳＲＡＭ）内にコンパクトに格納するために、ＨＢＭのＤＲＡＭチップ（１０５ａ〜１０５ｂ）の下に積層されたバッファーダイ１０４内に機能を提供する。
【００２６】
データは、領域の構造（Ｓｔｒｕｃｔｕｒｅ  Ｏｆ  Ａｒｅａ：ＳＯＡ）配列又は構造の領域（Ａｒｅａ  Ｏｆ  Ｓｔｒｕｃｔｕｒｅ：ＡＳＯ）配列で構成される。
例えば、赤（Ｒ）、緑（Ｇ）、及び青（Ｂ）等のピクセルデータは、それぞれのピクセルに対するＲＧＢデータがメモリの構成領域内にＳＯＡ配列で構成される。
それぞれのピクセルに対する同じＲＧＢデータは、すべてのＲデータが一緒に配列され、すべてのＧデータが一緒に配列され、すべてのＢデータが一緒に配列されるように、ＡＯＳ配列で構成される。
いずれの配列でも、データの空間的局所性は、類似のパターン又は値を持つデータを含む。
さらに、深層学習のアプリケーションで多くの浮動小数点データは、浮動小数点値の指数部分にデータの位置を示す。
つまり、深層学習の応用における使用される値の多くが「−１」と「＋１」との間である。
データの位置は、ＨＢＭバス帯域幅を節約し、ＨＢＭのトグルレート（ｔｏｇｇｌｅ−ｒａｔｅ）の動的電力を削減するために使用される。
【００２７】
図３は、本発明の一実施形態による例示的なＨＢＭの出力ドライバと例示的なＧＰＵの入力バッファーとの間の３２ビットデータバスの例を示す図である。
図３を参照すると、例えば、ＨＢＭの出力ドライバ３０２と、例えば、ＧＰＵの入力バッファー３０３との間の３２ビットデータバス３０１の例を示している。
第１のトランザクション３０４及び第２のトランザクション３０５は、出力ドライバ３０２から入力バッファー３０３にデータバス３０１を介して伝送されるものとして示す。
第１のトランザクション３０４の内容の例を符号３０６に示す。
符号３０７で示した第１のトランザクション３０４のビットは類似性がある。
この特定の場合において、符号３０７で示したビットの類似性はすべて同じである。
別の実施形態では、ビットの類似性は、ビットがすべて同一でなく、所定の範囲値内の値を有する。
さらに別の実施形態では、類似すると判断されるビットの特定の位置は、符号３０７によって示される位置とは異なる。
第１のトランザクション３０４のビットの類似性は、ＨＢＭバス帯域幅を節約し、ＨＢＭのトグルレートの動的電力を低減するために使用される。
【００２８】
本明細書に記載の主題は、ＨＢＭのバッファーダイ１０４内に、本明細書に記載のような機能を実行することによってＨＢＭの全般的な性能を高めるために、データ疎性及びデータ類似性の両方のデータ特性を使用するＨＢＭシステム構造を提供する。
本明細書に記載の構造の一実施形態は、疎データのゼロ値の位置を格納するためにビットマップを使用し、特定の疎な書き込みが脱落又は削除されるホスト処理装置のメモリコントローラに該当通信を送信し、他の動作に使用されるバスサイクルを節約する。
本明細書に記載の構造の別の実施形態は、アプリケーション及びＨＢＭ性能を向上させるために、連続的なデータ書き込みでデータに現れる類似性を検出し、データ圧縮技術及び／又はロギング（ｌｏｇｇｉｎｇ）を使用する。
データ圧縮の使用の際に、圧縮データは、ＨＢＭシステム構造のメモリ内に一連のブロックとして圧縮される。
【００２９】
本明細書に記載のＨＢＭシステム構造の一実施形態は、データ疎性又はデータ値類似性を使用するために、ＨＢＭに物理的に近い機能を実行し、これによって、コマンド及び／又はアドレスバスプロトコルの変更なしにメモリシステム性能を向上させる。
本明細書で使用する、「近い」又は「近さ」という用語は、本明細書に記載の主題によるＨＢＭのバッファーダイ１０４で実行される機能及び／又は機能性を指す。
このような機能及び／又は機能性は、コアアレイに影響を及ぼすことなく、ＤＲＡＭチップ内部の入出力（Ｉ／Ｏ）周辺回路で実行することもできる。
ＨＢＭのバッファーダイ１０４は、ＧＰＵ等のアクセラレータの内部で他の方法により実行できないＳＲＡＭでビットマップを実行できる利用可能な領域が大きいため、ＨＢＭに関する機能の近さは有用性を提供する。
アクセラレータのＳＲＡＭは、マトリックス／テンソル動作を加速するために使用する貴重な資源（リソース）であるが、たとえば、ＨＢＭのバッファーダイ１０４のＳＲＡＭは、ここで説明する例と同様に近接メモリの加速機能に使用する。
【００３０】
本明細書に記載の別の実施形態では、ゼロ値データのアドレス位置（メタデータ）は、ＨＢＭのバッファーダイ１０４上に位置する大きなアドレス空間内に格納する。
データ疎性を検出し、ＨＢＭのバッファーダイ１０４によって実行される本明細書に記載の機能的ロジックは、たとえば、ＳＲＡＭ内にゼロ値の位置を含むビットマップをコンパクトに格納するために使用し、それによって疎なメモリ書き込みを検出し、脱落又は削除される。
同様に、本明細書に記載の機能性は、連続的なデータ書き込み内のデータ類似性を検出し、類似値を圧縮するように構成される。
これは、メモリバスサイクルを節約し、全体的により多くの回数のメモリ転送を提供するために使用され、これにより、データ帯域幅に敏感なＧＰＵのデータ帯域幅を増やすことができる。
【００３１】
図４Ａは、本発明の一実施形態によるＨＢＭシステム４００の概略構成を示すブロック図である。
ＨＢＭシステム４００は、疎密制御エンジン（ｓｐａｒｓｅ−ｄｅｎｓｅ  ｃｏｎｔｒｏｌ  ｅｎｇｉｎｅ）４０１とメモリ４０２とを含む。
一実施形態によれば、ＨＢＭシステム４００は、大きなバッファーダイ領域を使用し、ロジック及びＳＲＡＭを含み得る。
疎密制御エンジン４０１は、ゼロ値に関するデータの疎度及び密度を判断する機能を提供する。
疎密制御エンジン４０１は、ハードウェアとソフトウェアの組み合わせとして具現され、モジュールと呼ばれる。
一実施形態によれば、メモリ４０２はＳＲＡＭである。
ＨＢＭシステム４００は、ＣＰＵ、ＧＰＵ、又はＴＰＵ等のホスト処理装置４２０とＨＢＭ４３０との間にあるバッファーダイ４１０上に位置する。
【００３２】
一実施形態によれば、ＨＢＭシステム４００は、データ書き込み要求に関連するデータが疎データ特性を有するか否かを検出し、メッセージ及び／又は予備使用（Ｒｅｓｅｒｖｅｄ  ｆｏｒ  Ｆｕｔｕｒｅ  Ｕｓｅ：ＲＦＵ）ピンを介して、ホスト処理装置４２０のメモリコントローラ４２１へ疎データ特性の検出に関する情報を信号伝達するか、又は伝えるために、コマンド／デコード回路４０３を使用する。
疎データの特性は、データが「０」に等しい所定の割合の値を含むか否かに基づく。
【００３３】
あるいは、ＨＢＭシステム４００は、データ書き込み要求に関連するデータがデータ類似性特性を有するか否かを検出し、メッセージ及び／又はＲＦＵピンを介してホスト処理装置４２０のメモリコントローラ４２１へデータ類似性特性の検出に関する情報を信号伝達又は伝えるために、コマンド／デコード回路４０３を使用する。
データ値類似性の識別は、自動的に決定されるか、及び／又はユーザ選択可能であり、本明細書では空間値局所性と呼ばれるデータ粒度（ｇｒｕａｎｕｌａｒｉｔｙ）に基づく。
データ値類似性は、２つのデータ値間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術に基づく。
【００３４】
オペレーション（動作）において、疎密制御エンジン４０１は、ホスト処理装置４２０からデータ書き込み要求を受信し、書き込み要求に関連するデータが疎データ特性を有するか否かを判断する。
すなわち、疎密制御エンジン４０１は、書き込み要求に関連するデータの値の所定の割合以上が「０」に等しいか否かを判断する。
一実施形態によれば、書き込み要求のデータが、例えば、データの約４０％以上が「０」に等しければ、「疎」と見なされる。
書き込み要求のデータが疎データと見なされる他の割合も可能である。
さらに、データ幅の粒度は、疎エントリを追跡するためのメタデータのオーバーヘッドも管理しながら、「疎」と見なされるエントリの数を変更するために、より細しく（すなわち、４ｋＢ〜１ｋＢ、１ｋＢ〜１２８Ｂ、又は、１２８Ｂ〜３２Ｂ）、又はより粗くする。
粒度の変化は、ＲＦＵピン又はエラー訂正コード（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ：ＥＣＣ）ピンを介して信号伝達する。
【００３５】
もし、疎密制御エンジン４０１が、書き込みデータが「疎」であると判断した場合、疎密制御エンジン４０１は、「０」に等しいデータのアドレスに関するメタデータをメモリ４０２に格納する。
疎密制御エンジン４０１は、ＨＢＭ４３０へのデータ書き込みが「０」に等しい疎データに脱落又は削除されるかを、メモリコントローラ４２１及び／又はＨＢＭ４３０と通信する。
データ書き込みが脱落する通信は、コマンド／デコード回路４０３を介してホスト処理装置４２０のメモリコントローラ４２１に送信され、ＨＢＭ４３０にゼロ（０）値データを書き込むためにホスト処理装置４２０によって使用されるサイクルが、他のタスクに使用される。
別途の実施形態によれば、メモリコントローラ４２１は、バッファーダイ４１０とホスト処理装置４２０との間で利用可能なＲＦＵピンを介してホスト処理装置４２０に信号伝達する。
追加的又は代替的に、ゼロ（０）値データをＨＢＭ４３０に書き込むために使用されるサイクルが他のタスクに使用するために使用可能であることを疎密制御エンジン４０１によってＨＢＭ４３０に信号伝達する。
【００３６】
各ゼロ（０）値のアドレスは、メモリ４０２内に直接ロギング（ｌｏｇｇｅｄ）され得る。
一部の例によれば、ロギングされたアドレスは３２ビットである。
他の例によれば、アドレスは３２ビットより多いか、又は少ない。
一実施形態によれば、メモリ４０２は、ロギングされたアドレスを格納するキャッシュとして構成される。
一実施形態によれば、メモリ４０２は、行バッファーキャッシュとして構成される。
一実施形態によれば、ロギングされたアドレスは、各ビットがアクセスブロックを表すビットマップを形成する。
この実施形態のビットマップは、サイズを縮小するために圧縮される。
圧縮されると、ビットマップは、ホスト処理装置４２０のキャッシュサイズに基づくサイズを有するキャッシュラインを形成する。
【００３７】
プリセットビットは、正確な値を選択するために使用され、エンコードは正確なサイズに減らす。
例えば、ホスト処理装置４２０が８ギガバイト（ＧＢ）のメモリ容量と１２８バイトのキャッシュラインとを有する場合、ビットマップは６４００万（Ｍ）エントリを有する。
６４メガビット（Ｍｂ）マップは、６４Ｍエントリが８ＭＢのサイズであることを表すのに使用され、圧縮技術によって８ＭＢのサイズが２ＭＢのサイズに圧縮される。
あるいは、メタデータがアクセスブロックごとに２〜３ビット等のメモリ４０２に格納される。
メモリ２０１のサイズは、メモリ２０１に格納され得るメタデータエントリの数を設定し得る。
【００３８】
データ読み取り要求の間、ビットマップに格納されたアドレスに対するヒット又はマッチがある場合、ビットマップは復元される。
復元は、特定の行に対してホスト処理装置４２０によって起動コマンドが送信されるとすぐに、ＤＲＡＭ行内部のすべての列に対して推論的に行われ、それによって復元に対する最小待ち時間のオーバーヘッドが保証される。
本明細書で使用する「推論的」という用語は、活性化されたＤＲＡＭ行内のすべての列の対応する圧縮エントリがホストによって要求されたものと仮定することを意味し、それにより、プロセスを早期に開始することにより、復元待ち時間を部分的に隠すのに役立ち、起動コマンド後にｔＲＣＤサイクルで一つの特定の列コマンドが発行されるまで待たなくてもよい。
メタデータの使用に基づいて、読み取りアクセスは、Ｏ（１）の計算の複雑さを持つ。
【００３９】
一実施形態によれば、特殊目的の命令セット構造４５０は、本明細書に記載の主題により、ＨＢＭシステム４００で動作をインスタンス化し、実行するために使用する。
ソフトウェアドライバ４５１及びライブラリ４５２を含むアプリケーション・プログラミング・インターフェイス（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ：ＡＰＩ）は、本明細書に記載の機能性を既存の機械学習フレームワークに透過的に統合するために、ＨＢＭシステム４００にアクセスする特殊目的の命令セット構造４５０の一部として提供される。
【００４０】
図５は、本発明の一実施形態によるデータ書き込み要求に関連するデータが疎データを含む場合のデータ書き込み要求動作を示すタイミング図である。
タイミング図５００は、データ書き込み要求動作中のクロック信号５０１、ＣＡバス５０２、及びデータ（ＤＱ）バス５０３の相対的なタイミングを含む。
図５に示すＣＡバス５０２の一部は、ホスト処理装置４２０と疎密制御エンジン４０１との間に延在するが、図５に示すＤＱバス５０３の一部は、疎密制御エンジン４０１とＨＢＭ４３０との間に延在する。
【００４１】
初めに、ホスト処理装置４２０は、活性化（ＡＣＴ）コマンド５０４に続いて書き込み要求（ＷＲ）コマンド５０５を送信する。
この例では、疎密制御エンジン４０１は、書き込みデータが「疎」であると決定し、疎密制御エンジン４０１は、非動作（ｎｏ−ｏｐｅｒａｔｉｏｎ：ＮＯＰ）５０６によって表されるように、「０」に等しいデータに対してＨＢＭ４３０へのデータ書き込みを脱落又は削除する。
ホスト処理装置４２０は、プリチャージ（ＰＲＥ）コマンド５０７を送信することによって、書き込み要求を続行する。
一実施形態によれば、プリチャージは、ＤＲＡＭバンクを横切る開かれた行を閉じ、次の行の活性化のためにバンクを準備する。
より具体的には、プリチャージは、次の活性化後に行の値を検知することができるように、内部ビットライン電圧をＶｄｄ／２に再上昇させる。
ＮＯＰが実行されている間、クロックサイクル及びＤＱバスは、他の動作に使用することができる。
本明細書で使用するように、「他の動作」という用語は、自由なサイクル又は利用可能なサイクルを使用する、他の正規のＤＲＡＭ読み取り、書き込み、及び起動コマンドを指す。
【００４２】
図４Ｂは、本発明の他の実施形態によるＨＢＭシステムの概略構成を示すブロック図である。
図４Ａに示すＨＢＭシステム４００と同様に、ＨＢＭシステム４００’はＣＰＵ、ＧＰＵ、又はＴＰＵ等のホスト処理装置４２０とＨＢＭ４３０との間のバッファーダイ４１０上に位置する。
ＨＢＭシステム４００’は、疎密制御エンジン４０１とメモリ４０２とを含む。
一実施形態によれば、メモリ４０２はＳＲＡＭである。
一実施形態によれば、ＨＢＭシステム４００’は、ＥＣＣエンジン４０４を使用して、疎データ特性の検出又はデータ類似特性の検出に関する情報をホスト処理装置４２０のメモリコントローラ４２１に信号伝達又は通信する。
ＥＣＣ機能は、典型的に、深層ニューラルネットワークの訓練中に使用されないため、ＥＣＣエンジン４０４に関連する通信経路は、データ書き込み動作が脱落又は削除され、メモリサイクルが他の動作に用いられるように信号伝達又は通信するように再構成される。
【００４３】
ＨＢＭシステム４００’の動作は、図４Ａに示すＨＢＭシステム４００の動作と同様である。
疎密制御エンジン４０１は、ホスト処理装置４２０からデータ書き込み要求を受信し、書き込み要求に関連するデータが疎データであるか否かを判断する。
つまり、疎密制御エンジン４０１は、書き込み要求に関連するデータの値の所定の割合以上が「０」であるか否かを判断する。
一実施形態によれば、書き込み要求のデータは、例えば、データの約４０％以上が「０」であれば「疎」とみなされる。
疎密制御エンジン４０１が、書き込みデータが「疎」であると判断した場合、疎密制御エンジン４０１は、「０」に等しいデータのアドレスに関連するメモリ４０２にメタデータを格納する。
疎密制御エンジン４０１は、次に、「０」に等しいデータに対してＨＢＭ４３０へのデータ書き込みを脱落又は削除し、ＨＢＭ４３０にゼロ（０）値のデータを書き込むために使用されるサイクルが他のタスクに使用可能であることを、ＥＣＣ回路４０４を介してホスト処理装置４２０のメモリコントローラ４２１に信号を送信する。
別の実施形態では、メモリコントローラ４２１は、バッファーダイ４１０とホスト処理装置４２０との間で利用可能なＲＦＵピンを介して信号伝達される。
【００４４】
ＨＢＭシステム４００及びＨＢＭシステム４００’両者のために、データ読み取り要求は、ＨＢＭ４３０及びメモリ４０２に対する並列又は側波帯ルックアップを含む。
データ読み取りに関連する小さな待ち時間があるが、このような待ち時間は、ホスト処理装置４２０に悪影響を及ぼさない。
行全体に対応するマップエントリは、ＨＢＭレジスタにフェッチされる。
列アクセスは、まずメモリ４０２で調べられ、一致するものがある場合、疎データはメモリ４０２と疎密制御エンジン４０１との間の疎データバスを介して返される。
一致するものがない場合、要求されたデータは、ＨＢＭ４３０と疎密制御エンジン４０１との間のＤＱバスを介して、メモリ４０２に格納されたデータと一致した場合に比べて、追加の待ち時間を使用して返される。
【００４５】
側波帯ルックアップは、アドレスに対応するメタデータを要求する。
メタデータは、アクセスが「疎な（ｓｐａｒｓｅ）」又は「密な（ｄｅｎｓｅ）」アクセスであるか否かを判断するために並列に使用され、ここで主要な動機は、ＨＢＭ４３０から０値の読み取りを排除することである。
アクセスが疎なアクセスであると判断された場合、読み取りコマンドが発行されず、サイクルは解放される。
アクセスが密なアクセスであると判断された場合、読み取りコマンドが発行され、「密な」データがＨＢＭから読み取られる。
【００４６】
ＥＣＣ／ＤＱバスのリターン経路は、疎／密なアクセスによって変わる。
ＥＣＣ経路は、値が「０」である制御情報を提供する。
ＥＣＣ経路に対する制御情報が、値が「０」でないことを示す場合、規則的な読み取りコマンドが発行され、読み取りデータがＤＱバスに返される。
ＥＣＣ経路が疎／密なアクセスのために用いられる場合、ＨＢＭはＥＣＣ機能を実行できるため、読み取り値がバッファーダイまでエラーから保護される。
しかし、ＤＲＡＭからホストへのデータ伝送にはエラーが発生する場合がある。
例えば、ホストで実行されるＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）は、この種のエラーを修正及び検出する。
解放されたＥＣＣピンは、（ＤＲＡＭ起動コマンド中に）読み取りデータが「疎」であるか否かを調べるために、上記のメカニズムに使用される。
データが「疎」の場合、読み取りコマンドは発行されず、プリチャージコマンドで行が閉じられる。
【００４７】
ＨＢＭシステムの別途の例示的な実施形態は、図４Ａ又は図４Ｂに示す構成を有し、連続するデータ書き込み要求の間でデータ値類似性を検出する。
この別途の例示的な実施形態は、データ書き込みアクセスの幅を縮小し、ＨＢＭ４３０の内部及び外部の他の動作に利用可能なバス幅を作ることにより、アプリケーション性能を向上させるために、類似性データを圧縮及び／又は記録する。
データ値類似性及び空間値局所性は、バッファーダイ４１０でメモリ帯域幅の圧縮を実行するのに役立つ。
検出されたデータの類似性を記録するために使用されるメタデータが生成される。
データ値類似性の識別は、データ粒度に基づき、これは自動的に決定され、及び／又はユーザが選択可能である。
データ値類似性は、２つのデータ値の間のハミング距離を測定し、対応する類似性スコアを割り当てるコーディング技術にも基づいている。
ＥＣＣピン及び／又はＲＦＵピン等の予備ピンは、利用可能なバス幅を外部のホスト処理装置４２０及び／又はＨＢＭ４３０の両者に信号伝達することができる。
【００４８】
疎密制御エンジン４０１は、連続するデータ書き込み要求のデータを追跡し、任意の適切な符号化技術を使用して、データ値類似性を示すデータを符号化するように構成される。
符号化データ及び／又は符号化データに関連するメタデータは、メモリ４０２に格納される。
データ読み取り要求は、メモリ４０２及びＨＢＭ４３０の両者に対する並列ルックアップを利用する。
メモリ４０２に格納されたメタデータで一致が発生すると、符号化データは復号化され、ホスト処理装置４２０に返される。
メタデータのサイズは、使用される符号化技術に応じてエントリごとに異なり、メモリ４０２のキャッシュサイズに収まるように変更される。
さらに、メタデータのサイズは、ホスト処理装置４２０のキャッシュサイズ／セクターの関数である。
一実施形態において、メモリコントローラ４２１は、以前の値を追跡し、データ幅を削減するために、符号化方式を選択する。
一実施形態において、メタデータのサイズは、バックグラウンドプロセスとして及び／又はＨＢＭ４３０のリフレッシュ動作中に、異なる符号化方式に動的に変更する。
復号化プロセスは、符号化プロセスで使用されるコード体系、特別な最適化ビット、同様の値の数等を生じる。
【００４９】
図６は、本発明の一実施形態による連続する書き込み要求に関連するデータがデータ値類似性を有する場合のデータ書き込み要求動作を示す相対的なタイミング図である。
タイミング図６００は、クロック信号６０１、ＣＡバス６０２、及びＤＱバス６０３の相対的なタイミングを含む。
【００５０】
２つの連続的なデータ書き込み要求６０４及び６０５のうちの１番目に対して、ホスト処理装置４２０は、第１の活性化（ＡＣＴ１）コマンド６０６、第１の書き込み要求（ＷＲ１）コマンド６０７、及びプリチャージ（ＰＲＥ）コマンド６０８を送信する。
プリチャージ（ＰＲＥ）コマンド６０８に続き、第２の活性化（ＡＣＴ２）コマンド６０９、第２の書き込み要求（ＷＲ２）コマンド６１０、及びプリチャージ（ＰＲＥ）コマンド６１１が続く。
この例では、疎密制御エンジン４０１は、２つの書き込み要求６０４及び６０５のデータ６１２及び６１３がデータ値類似性の特徴を有する場合、疎密制御エンジン４０１は類似のデータを符号化し、符号化データ及び符号化データのメタデータをメモリ４０２に格納し、通常のＤＲＡＭアクセスに使用される読み取り、書き込み、及び起動コマンド等、他の動作に使用するバス幅の可用性があるか否かを信号伝達する（図示しない）。
これらの動作が解除されたスロットでスケジュールされることにより、全体の帯域幅効率が改善し、スループットが改善する。
【００５１】
図７は、本発明の一実施形態による書き込み要求に関連するデータが疎データ又はデータ値類似性である場合のデータ書き込み要求動作に応答してＨＢＭの全般的な性能を高める方法を説明するためのフローチャートである。
【００５２】
まず、ステップＳ７０１で、データ書き込み要求は、ＨＢＭ４３０外部にある図４Ａのホスト処理装置４２０等のプロセッサから図４Ａの疎密制御エンジン４０１等のＨＢＭ４３０のコントローラによって受信される。
次に、ステップＳ７０２で、エントリは、図４Ａのメモリ４０２等のメモリに格納され、疎データ又はデータ値類似性を含むデータ書き込み要求のデータに基づいて、データ書き込み要求のデータの少なくとも一つのアドレスを示すエントリをメモリ内に格納する。
次に、ステップＳ７０３で、疎データ又はデータ値類似性を含むデータ書き込み要求のデータに基づいて、データ書き込み要求のサイクルタイム中にデータバスがオペレーションに利用可能であるという指示が生成する。
【００５３】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００５４】
１００、４００、４００’    ＨＢＭシステム
１０１    マザーボード
１０２    印刷回路基板（ＰＣＢ）
１０３    インターポーザ
１０４、４１０    バッファーダイ
１０５ａ〜１０５ｄ    ＤＲＡＭチップ
１０６    ホスト処理装置
１０７    はんだボール
１０８    Ｉ／Ｏバス
４０１    疎密制御エンジン
４０２    メモリ
４０３    コマンド／デコード回路
４０４    ＥＣＣエンジン（回路）
４２０    ホスト処理装置
４２１    メモリコントローラ
４３０    ＨＢＭ（高帯域幅メモリ）
４５０    命令セット構造
４５１    ソフトウェアドライバ
４５２    ライブラリ
【図１Ａ】
2020184338.tif 000003
【図１Ｂ】
2020184338.tif 000004
【図２】
2020184338.tif 000005
【図３】
2020184338.tif 000006
【図４Ａ】
2020184338.tif 000007
【図４Ｂ】
2020184338.tif 000008
【図５】
2020184338.tif 000009
【図６】
2020184338.tif 000010
【図７】
2020184338.tif 000011