(57)【要約】      （修正有）【課題】知能型高帯域幅メモリ装置を提供する。【解決手段】ＨＢＭ２モジュール１１０は、論理ダイ１０５の上に積み重ねて、知能型ＨＢＭスタック１２０を形成する。複数の知能型ＨＢＭスタックが知能型ＨＢＭ装置に含まれる。ホスト１１５は、各々の論理ダイと通信する。ホスト及び論理ダイは、インタポーザ（Ｉｎｔｅｒｐｏｓｅｒ）２０５の上部に配置され、インタポーザに連結される。インタポーザは、パッケージ基板２１０の上部に配置され、かつパッケージ基板に連結される。論理ダイは、基本的な入／出力（Ｉ／Ｏ）演算を実行し、遅延時間を減少させ、メモリトラフィックが改善される。プロセッサ隣接メモリは、知能型ＨＢＭの論理ダイを介してホストを支援する。【選択図】図２
2019036298.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）、注文型集積回路（ＡＳＩＣ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）の少なくとも１つを含むホストと、
積層された複数の高帯域幅メモリモジュール及び前記複数の高帯域幅メモリモジュールの下方に配置された論理ダイを有する知能型高帯域幅メモリスタックと、を含むことを特徴とする知能型高帯域幅メモリシステム。
【請求項２】
前記論理ダイは、前記ホストから処理演算をオフロードすることを特徴とする請求項１に記載の知能型高帯域幅メモリシステム。
【請求項３】
さらに、前記ホスト及び前記論理ダイに連結されたインタポーザを有することを特徴とする請求項１に記載の知能型高帯域幅メモリシステム。
【請求項４】
さらに、前記インタポーザに連結された基板を有することを特徴とする請求項３に記載の知能型高帯域幅メモリシステム。
【請求項５】
前記複数の高帯域幅メモリモジュールは、前記論理ダイと通信可能に連結され、前記論理ダイは、前記ホストと通信可能に連結されることを特徴とする請求項４に記載の知能型高帯域幅メモリシステム。
【請求項６】
前記知能型高帯域幅メモリスタックは、第１知能型高帯域幅メモリスタックと呼ばれ、
前記複数の高帯域幅メモリモジュールは、第１の複数の高帯域幅メモリモジュールと呼ばれ、
前記論理ダイは、第１論理ダイと呼ばれ、
前記知能型高帯域幅メモリシステムは、さらに、積層された第２の複数の高帯域幅メモリモジュールと、前記第２の複数の高帯域幅メモリモジュールの下方に配置された第２論理ダイと、を有する第２知能型高帯域幅メモリスタックを有することを特徴とする請求項１に記載の知能型高帯域幅メモリシステム。
【請求項７】
前記第１論理ダイ及び第２論理ダイは、各々前記ホストから処理演算をオフロードし、
前記第１の複数の高帯域幅メモリモジュールは、前記第１論理ダイに通信可能に連結され、前記第１論理ダイは、前記ホストに通信可能に連結され、
前記第２の複数の高帯域幅メモリモジュールは、前記第２論理ダイに通信可能に連結され、前記第２論理ダイは、前記ホストに通信可能に連結され、
前記知能型高帯域幅メモリシステムは、さらに、前記ホストと前記第１論理ダイ及び第２論理ダイに連結されたインタポーザと、
前記インタポーザに連結された基板と、を有することを特徴とする請求項６に記載の知能型高帯域幅メモリシステム。
【請求項８】
さらに、メモリを含み、
前記論理ダイは、
インタフェース物理層（ＰＨＹ）とホストキューマネージャとを有し、前記インタフェース物理層（ＰＨＹ）を介して前記ホストとインタフェースし、前記ホストから受信した情報をキューイングするホストマネージャと、
プリフェッチエンジンとキャッシュコントローラとを有し、前記プリフェッチエンジン及び前記キャッシュコントローラを介して前記メモリとインタフェースするメモリコントローラと、
前記複数の高帯域幅メモリモジュールとインタフェースするメモリコントローラを有する高帯域幅メモリコントローラと、
前記ホストから処理演算をオフロードするオフロード処理論理部と、をさらに有することを特徴とする請求項１に記載の知能型高帯域幅メモリシステム。
【請求項９】
前記オフロード処理論理部は、
前記ホストマネージャを介して前記ホストから前記オフロードされた処理演算に関する情報を受信し、
前記オフロードされた処理演算に関する前記受信した情報に応じて前記オフロードされた処理演算を実行することを特徴とする請求項８に記載の知能型高帯域幅メモリシステム。
【請求項１０】
前記受信した情報は、フラグを含むことを特徴とする請求項９に記載の知能型高帯域幅メモリシステム。
【請求項１１】
前記受信した情報は、コマンドを含むことを特徴とする請求項９に記載の知能型高帯域幅メモリシステム。
【請求項１２】
前記論理ダイは、さらに、
前記コマンドを復号するコマンド復号論理部と、
前記コマンドを出力するコマンド出力論理部と、を有することを特徴とする請求項１１に記載の知能型高帯域幅メモリシステム。
【請求項１３】
前記オフロード処理論理部は、前記出力されたコマンドに応答して前記オフロードされた処理演算を実行することを特徴とする請求項１２に記載の知能型高帯域幅メモリシステム。
【請求項１４】
前記オフロード処理論理部は、演算論理ユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、固定論理、又は再設定可能な論理の少なくとも１つを有することを特徴とする請求項８に記載の知能型高帯域幅メモリシステム。
【請求項１５】
前記オフロード処理論理部は、前記複数の高帯域幅メモリモジュールに格納したデータに応じて前記オフロードされた処理演算を実行することを特徴とする請求項８に記載の知能型高帯域幅メモリシステム。
【請求項１６】
前記メモリコントローラは、ＳＲＡＭコントローラであり、
前記メモリは、ＳＲＡＭであることを特徴とする請求項８に記載の知能型高帯域幅メモリシステム。
【請求項１７】
インタフェース物理層（ＰＨＹ）とホストキューマネージャとを有し、前記インタフェース物理層（ＰＨＹ）を介してホストとインタフェースし、前記ホストから受信した情報をキューイングするホストマネージャと、
プリフェッチエンジンとキャッシュコントローラとを有し、前記プリフェッチエンジン及び前記キャッシュコントローラを介してメモリとインタフェースするメモリコントローラと、
高帯域幅メモリモジュールスタックとインタフェースするメモリコントローラを有する高帯域幅メモリコントローラと、
前記ホストから処理演算をオフロードするオフロード処理論理部と、を含むことを特徴とする論理ダイ。
【請求項１８】
前記オフロード処理論理部は、
前記ホストマネージャを介して前記ホストから前記オフロードされた処理演算に関する情報を受信し、
前記オフロードされた処理演算に関する前記受信した情報に応じて前記オフロードされた処理演算を実行することを特徴とする請求項１７に記載の論理ダイ。
【請求項１９】
前記受信した情報は、フラグを含むことを特徴とする請求項１７に記載の論理ダイ。
【請求項２０】
前記受信した情報は、コマンドを含むことを特徴とする請求項１７に記載の論理ダイ。
【請求項２１】
さらに、前記コマンドを復号するコマンド復号論理部と、
前記コマンドを出力するコマンド出力論理部と、を含むことを特徴とする請求項２０に記載の論理ダイ。
【請求項２２】
前記オフロード処理論理部は、前記出力したコマンドに応答して前記オフロードされた処理演算を実行することを特徴とする請求項２１に記載の論理ダイ。
【請求項２３】
前記オフロード処理論理部は、演算論理ユニット、浮動小数点ユニット、固定論理、又は再設定可能な論理の少なくとも１つを含むことを特徴とする請求項２１に記載の論理ダイ。
【請求項２４】
前記オフロード処理論理部は、前記高帯域幅メモリモジュールスタックに格納されたデータに応じて前記オフロードされた処理演算を実行することを特徴とする請求項２１に記載の論理ダイ。
【請求項２５】
前記メモリコントローラは、ＳＲＡＭコントローラであり、
前記メモリは、ＳＲＡＭであることを特徴とする請求項１７に記載の論理ダイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、知能型高帯域幅メモリシステムに係り、より詳細には、ホストにより一般に実行される複雑な論理演算をオフロード（ｏｆｆｌｏａｄ）するための論理ダイ（ｌｏｇｉｃ  ｄｉｅ）を含む知能型高帯域幅メモリシステムに関する。
【背景技術】
【０００２】
インターネットにより数多くのコンピュータ及びモバイル機器にデータを提供するコンピュータのサーバの数が大幅に急増してきた。人工知能（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ：ＡＩ）及びその他、深層学習（ｄｅｅｐ  ｌｅａｒｎｉｎｇ）アプリケーションは、ますます普遍化しており、現在その需要が大きく増加している。今日のサーバコンピュータの環境は、ストレージ内及びメモリ内で演算を実行する方向に進んでおり、これにより実際にデータが存在する所と近い位置で一部の演算が実行される。これは、性能を向上させ、エネルギー消費を削減させる。
【０００３】
多層のニューラルネットワーク（ｄｅｅｐ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）のような新たなアプリケーションは、様々なデータセットを訓練し、高精度で学習するために、大量の演算及びメモリ能力を必要とする。また、高性能コンピュータ（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｅｒ：  ＨＰＣ）、グラフィックスアルゴリズムなどのアプリケーションにおいて、データ又は演算が集約化されて、エネルギー効率及び低レイテンシ（ｌｏｗ  ｌａｔｅｎｃｙ）が決定的な要素になった。
【０００４】
最近、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：  ＤＲＡＭ）のダイを別のダイの上に積み重ねることにより、小さなフォームファクタであまり電力を消費せず、より高い帯域幅を得るために、高帯域幅メモリ（Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ：  ＨＢＭ）及び高帯域幅メモリ２（ＨＢＭ２）が利用されており、これらは、ホストとの非同期式通信インタフェースを提供する。非同期通信の特徴は、性能は向上するが、複雑な論理演算の処理はさらに難しくなる。論理演算が複雑であれば、判断性（ｄｅｔｅｒｍｉｎｉｓｍ）は弱い。言い換えると、特定の複雑な論理演算が完了するまで、どれほど長い時間がかかるのかがはっきりしない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上述の問題点を解決するためのものであって、本発明の目的は、知能型高帯域幅メモリ装置を提供することにある。
【課題を解決するための手段】
【０００６】
中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：  ＣＰＵ）、グラフィック処理装置（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：  ＧＰＵ）、注文型集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：  ＡＳＩＣ）、又はフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ：  ＦＰＧＡ）の少なくとも１つを含むホストと、積層された複数の高帯域幅メモリモジュールおよび複数の高帯域幅メモリモジュールの下に配置された論理ダイとを有する知能型高帯域幅メモリスタックと、を含む知能型高帯域幅メモリシステムを開示している。論理ダイは、ホストから処理演算をオフロードする。
【０００７】
一部の実施形態において、論理ダイは、インタフェース物理層（ＰＨＹ）とホストキューマネージャとを含むホストマネージャを含み、ホストマネージャは、インタフェース物理層（ＰＨＹ）を介してホストとインタフェースし、ホストから受信した情報（ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）をキューイングする。論理ダイは、さらに、プリフェッチエンジン（ｐｒｅｆｅｔｃｈ  ｅｎｇｉｎｅ）とキャッシュコントローラとを含む、メモリコントローラを含み、メモリコントローラは、プリフェッチエンジン及びキャッシュコントローラを介してメモリとインタフェースする。論理ダイは、さらに、高帯域幅メモリモジュールスタックとインタフェースするメモリコントローラを有する高帯域幅メモリコントローラを含む。論理ダイは、さらに、ホストから処理演算をオフロードするオフロード処理論理部を含む。
【発明の効果】
【０００８】
本発明は、支援ハードウェア及びソフトウェアアーキテクチャ、論理ダイのマイクロアーキテクチャ、並びにメモリインタフェースシグナルオプションとともに特定の演算能力を有する論理ダイを提供することにより、高帯域幅メモリシステムのエネルギー効率を向上し、かつ遅延時間を減少できる。
【図面の簡単な説明】
【０００９】
【図１】知能型ＨＢＭ装置の例示的な平面ブロック図である。
【図２】図１の２−２線に沿った知能型ＨＢＭ装置の側面ブロック図である。
【図３】ホストから演算作業をオフロードするための２種類のアーキテクチャに関するフレームワークブロック図である。
【図４】一部の実施形態により主にハードウェアで実現されるホストの構成要素及び知能型ＨＢＭスタックを含むシステムの例示的なブロック図である。
【図５】（Ａ）は、一部の実施形態により主にソフトウェアで実現されるホストの構成要素及び知能型ＨＢＭスタックを含むシステムの例示的なブロック図である。（Ｂ）は、一部の実施形態により別々のカーネルがＧＰＵ又は知能型ＨＢＭスタックで処理される方法を説明するための図である。
【図６】図１及び図２の論理ダイのマイクロアーキテクチャである。
【図７】本明細書に開示する実施形態による図１の知能型ＨＢＭ装置を含むコンピューティングシステムの例示的なブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。以下の詳細な説明で実施形態の完全な理解を助けるために様々な特定の細部事項を記載する。しかし、本発明が属する技術分野の通常の技術者は、このような特定の細部事項がなくても本発明の技術的思想を実施し得ることは当然である。別の例示において、公知の方法、手順、構成、回路、及びネットワークに関する具体的な説明は、本実施形態の様々な様態が不要且つあいまいにならないように省略する。
【００１１】
第１、第２等の用語を様々な構成要素を説明するために本明細書で用いたとしても、このような用語によって、該当構成要素が制限されないことは当然である。このような用語は、単にある構成要素を別の構成要素と区別するためにのみ用いる。例えば、本実施形態の範囲から逸脱することなく、第１モジュールは第２モジュールと指称でき、同様に、第２モジュールも第１モジュールと指称できる。
【００１２】
本明細書で実施形態の説明のために用いる技術用語は、特定の実施形態を説明するための目的のみであって、本発明の技術的思想を制限しようとするものではない。実施形態に関する説明及び特許請求の請求範囲で用いるように、単数形の用語は、文脈上明らかに指示がない限り、複数形の用語も含む。本明細書で用いる「及び／又は」という用語は、挙げられる１つ以上の関連項目の任意の何れか１つ及び全ての組み合せを指すか、又は、含むと理解すべきである。また、本明細書で使用する「含む」という用語は、挙げられた特徴、数字、段階、動作、要素、及び／又は構成の存在を明示するが、１以上の別の特徴、数字、段階、動作、要素、構成、及び／又はこれらの集合の存在や付加を排除するものではない。本図面の構成要素及び特徴は必ずしも一定の比率で示すものではない。
【００１３】
人工知能コンピューティングアプリケーションが発達するにつれて、イメージと音声の分類、メディアの分析、健康管理、自律機械、及びスマートアシスタントに至る領域の新たなアプリケーションを実行し得る、新たなハードウェアが必要となっている。人工知能アプリケーションは、機械学習フレームワークを駆動する。例えば、多層のニューラルネットワークのアルゴリズムでは、頻繁にデータセットの大きさがハードウェアの使用可能な演算能力を上回る。より新たなアーキテクチャが開発されるまで、高いテラフロップス（ｔｅｒａｆｌｏｐｓ）の演算能力を備えた新たな高性能コンピュータが代替ソルーションとして登場していた。ＨＢＭは、ＨＢＭ２に発展して並列加速器のための高帯域幅を提供し、ホスト装置当たり４乃至８個のモジュールスタックを提供する。ホストは、例えば、マイクロプロセッサなどの中央処理装置（ＣＰＵ）、注文型集積回路（ＡＳＩＣ）、グラフィック処理装置（ＧＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などを含む。現在、帯域幅は、１秒当たり１テラバイトの範囲であり、これは、ＧＤＤＲ５（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｆｉｖｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｇｒａｐｈｉｃｓ）より２倍も効率的である。
【００１４】
本明細書に開示する実施形態は、支援ハードウェア及びソフトウェアアーキテクチャ、論理ダイのマイクロアーキテクチャ、並びにメモリインタフェースシグナルオプションとともに高帯域幅メモリ（ＨＢＭ）の論理ダイで特定の演算能力を提供するシステムアーキテクチャを含む。ＨＢＭメモリスタックの下方に配置された論理ダイのメモリ内（ｉｎ−ｍｅｍｏｒｙ）の処理能力を利用するために種々の新たな方法が提供される。また、ＨＢＭインタフェースを利用するための種々の新たな信号プロトコルを開示する。論理ダイのマイクロアーキテクチャ及び支援システムフレームワークもさらに説明する。
【００１５】
本システムは、ＧＰＵ、ＦＰＧＡ等の加速器でエネルギー効率の良い高速演算を実行するための終端間ソリューション（ｅｎｄ−ｅｎｄ  ｓｏｌｕｔｉｏｎ）を提供する。処理演算をオフロードすると、ハードウェア又はソフトウェアのツールチェーン（ｔｏｏｌ  ｃｈａｉｎ）に別のレベルの複雑さを取り入れて種々の利点を導き出す。本明細書で「知能型ＨＢＭ（ＨＢＭ＋）」と指称する新たなアーキテクチャは、ＨＢＭ２と、ＰＩＭとで形成される。ＨＢＭ２アーキテクチャは、ホスト当たり最大４個のスタックと、スタック当たり最大８個のチャンネルとを含み、スタック当たり４乃至８個のダイを含む。チャンネル当たり８乃至１６個のバンクが存在し、バンクのグループを支援する。データライン（ＤＱ）の幅は、例えば、１２８プラス選択的エラー訂正コード（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ：  ＥＣＣ）ピンプラス２つの擬似チャンネル（ｐｓｅｕｄｏ  ｃｈａｎｎｅｌ）である。バンク当たり秒当たり２ギガバイトの場合、システムの帯域幅は、システム当たり秒当たり１テラバイトである。
【００１６】
図１は、知能型ＨＢＭ装置１００の例示的な平面ブロック図である。知能型ＨＢＭ装置１００は、ホスト１１５（例：ＣＰＵ、ＧＰＵ、ＡＳＩＣ、ＦＰＧＡなど）を含む。知能型ＨＢＭ装置１００は、ＨＢＭ２モジュール１１０とこれに対応してＨＢＭ２モジュール１１０の下方に配置される論理ダイ１０５とを含む、複数の知能型ＨＢＭスタック１２０を含む。知能型ＨＢＭ装置１００は、ＰＣＩ−Ｅ互換ボートである。
【００１７】
図２は、図１の２−２線に沿った知能型ＨＢＭ装置１００の側面ブロック図である。図２に示すように、ＨＢＭ２モジュールは、論理ダイ１０５の上に積み重ねて、知能型ＨＢＭスタック１２０を形成する。複数の知能型ＨＢＭスタック１２０が知能型ＨＢＭ装置１００に含まれる。ホスト１１５は、各々の論理ダイ１０５と通信する。ホスト１１５及び論理ダイ１０５は、インタポーザ（Ｉｎｔｅｒｐｏｓｅｒ）２０５の上部に配置され、インタポーザ２０５に連結される。インタポーザ２０５は、パッケージ基板２１０の上部に配置され、かつパッケージ基板２１０に連結される。
【００１８】
知能型ＨＢＭにおいて、論理ダイ１０５は、基本的な入／出力（Ｉ／Ｏ）演算を実行し、遅延時間を減少させ、メモリトラフィックが改善される。機械学習アルゴリズムは、訓練及び予測のために強い帯域幅を必要とするため、このようなアーキテクチャの利点を享受する。プロセッサ隣接メモリは、知能型ＨＢＭの論理ダイ１０５を介してホスト１１５を支援する。
【００１９】
知能型ＨＢＭスタック１２０は、演算作業をホスト１１５からＨＢＭ２モジュール１１０下の論理ダイ１０５にオフロードする。ホスト１１５は、ＣＰＵ、ＧＰＵ、ＡＳＩＣ、ＦＰＧＡなどを含む。論理ダイ１０５は、特化した論理関数を実行し、特化した論理関数は、特別高い帯域幅を要求する機械学習アプリケーションに特化した関数である。結果として、システムの性能は向上し、エネルギー消費は減る。
【００２０】
図３は、ホスト（例：１１５）から演算作業をオフロードするための２種類のアーキテクチャ（例：３４０及び３４５）に関するフレームワークのブロック図３００を示す。図３に示すように、第１アーキテクチャ３４０は、上位層アプリケーション（例：人工知能アプリケーション３０５）を変更する必要なく、ＨＢＭの演算機能アーキテクチャ（例：３１０、３１５、及び３２０）を用いる。ＨＢＭの演算機能アーキテクチャは、ＣＵＤＡ（Ｃｏｍｐｕｔｅ  Ｕｎｉｆｉｅｄ  Ｄｅｖｉｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ）３１０、ＧＰＵ命令集合アーキテクチャ（ＧＰＵ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＧＰＵ−ＩＳＡ又はＧ−ＩＳＡ）３１５、及び／又はＧＰＵ３２０を含む。
【００２１】
別のアーキテクチャ３４５は、根底にあるＨＢＭ論理命令集合アーキテクチャ（ＩＳＡ）を使用するために人工知能アプリケーション３０５に知能型ＨＢＭライブラリ関数呼び出し（例：３２５、３３０、及び３３５）を提供する。知能型ＨＢＭライブラリ関数呼び出しは、ライブラリ３２５、メモリＩＳＡ（Ｍ−ＩＳＡ）３３０、又は他の知能型ＨＢＭ専用のライブラリ関数呼び出し部３３５を含む。本実施形態において、上位層アプリケーション（例えば、人工知能アプリケーション３０５）は、ライブラリ関数呼び出し部を呼び出すように変更される。全体のフレームワークは、システムと、マイクロアーキテクチャと、ライブラリと、ドライバーと、を含む。更に、本システムは、後述のように、２つのハードウェアプロトコルと論理マイクロアーキテクチャとを含む。
【００２２】
図４は、一部の実施形態により主にハードウェアで実現される、ホストの構成要素（４０５、４１０、４１５、及び４２０）及び知能型ＨＢＭスタック１２０を含むシステム４００の例示的なブロック図である。ホスト１１５は、例えば、ＣＰＵ４０５、ＤＲＡＭバッファ４１０、ＰＣＩ−Ｅインタフェース４１５、ＧＰＵ４２０などを含む。主にハードウェアで実現される場合、ホスト１１５（例えば、ＧＰＵ４２０）は、メモリコントローラの変更を伴うことがある。ＧＰＵ４２０は、オフロードされた論理処理を実行するＨＢＭ２モジュール（例：１１０）及び／又は知能型ＨＢＭスタック１２０へ演算を直接オフロードする。本実施形態では、同期又は非同期のホスト−メモリ間のプロトコルが存在し、アプリケーションの変更の必要がない。
【００２３】
図５（Ａ）は、一部の実施形態により主にソフトウェアで実現される、ホストの構成要素（例：４０５、４１０、４１５、及び４２０）及び知能型ＨＢＭスタック１２０を含むシステム５００の例示的なブロック図である。ホスト１１５は、例えば、ＣＰＵ４０５、ＤＲＡＭバッファ４１０、ＰＣＩ−Ｅインタフェース４１５、ＧＰＵ４２０等を含む。
【００２４】
主にソフトウェアで実現される場合、ＣＰＵ４０５へＧＰＵメモリのキャッシュされていないユーザー空間のマッピングを生成するために、ｇｄｒｃｏｐｙなどのメモリマップドＩ／Ｏ（Ｍｅｍｏｒｙ  Ｍａｐｐｅｄ  Ｉ／Ｏ：ＭＭＩＯ）の技術が使用される。このようなユーザー空間のマッピングは、ＧＰＵ４２０からＤＲＡＭバッファ４１０内の共用バッファへオフロードされたカーネル５１０のデータをＣＰＵ４０５が直接読み取り可能にする。その後、ＣＰＵ４０５は、知能型ＨＢＭスタック１２０へデータをコピーするか、関連アドレスにＨＢＭ論理を送信し直す。人工知能アプリケーション３０５（図３参照）などの上位層アプリケーションは、演算のために、知能型ＨＢＭスタックを使用するように変更される。ハードウェアの変更は必要ではない。
【００２５】
図５（Ｂ）は、一部の実施形態により別々のカーネルがＧＰＵ又は知能型ＨＢＭスタックで処理される方法を説明するための図面５０２である。すなわち、構成に応じて、アプリケーション内の別々の部分は、別々のハードウェアで実行される。言い換えると、別々のカーネル又は関数をＧＰＵ４２０又は知能型ＨＢＭスタック１２０のいずれかで開始及び処理することにより、処理負荷を分散させる。例えば、ＧＰＵ４２０は、ＤＡＴＡ＿ＩＮを受信し、ＫＥＲＮＥＬ＿１を処理する。知能型ＨＢＭスタック１２０は、ＤＡＴＡ＿１を受信し、ＫＥＲＮＥＬ＿２を処理して、ＤＡＴＡ＿２を生成する。ＧＰＵ４２０は、ＫＥＲＮＥＬ＿３を処理し、ＤＡＴＡ＿ＯＵＴを生成する。一実行例による擬似コードを以下に示す。
【００２６】
ｇｄｒｃｏｐｙ（ＤＡＴＡ＿ＩＮ，ｎｕｍＢｙｔｅｓ，ＨｏｓｔＴｏＤｅｖｉｃｅ）
【００２７】
ＧＰＵ＿Ｋｅｒｎｅｌ＜＜＜１，Ｎ＞＞＞（ＤＡＴＡ＿ＩＮ）
【００２８】
ＣｐｕＷａｉｔＦｕｎｃｔｉｏｎ（ｌｏｃｋ）
【００２９】
ｇｄｒｃｏｐｙ（ＤＡＴＡ＿１，ｎｕｍＢｙｔｅｓ，ＤｅｖｉｃｅＴｏＨｏｓｔ）
【００３０】
ＨＢＭ＿Ｋｅｒｎｅｌ＜＜＜１，Ｎ＞＞＞（ＤＡＴＡ＿１）
【００３１】
ＣｐｕＷａｉｔＦｕｎｃｔｉｏｎ（ｌｏｃｋ）
【００３２】
ｇｄｒｃｏｐｙ（ＤＡＴＡ＿２，ｎｕｍＢｙｔｅｓ，ＨｏｓｔＴｏＤｅｖｉｃｅ）
【００３３】
ＧＰＵ＿Ｋｅｒｎｅｌ＜＜＜１，Ｎ＞＞＞（ＤＡＴＡ＿２）
【００３４】
一部の実施形態において、多様なハードウェアの構成要素の間の処理を調整するために１以上のフラグが設定される。例えば、ＣＰＵ４０５は、処理を開始すべきことを指示する第１フラグを設定する。次に、ＣＰＵ４０５は、ＤＲＡＭバッファ４１０からＧＰＵ４２０にデータをコピーし、処理の少なくとも一部は、知能型ＨＢＭスタック１２０により行われる。その後、ＧＰＵ４２０及び／又は知能型ＨＢＭスタック１２０は、処理が終了したことを指示する第２フラグを設定する。そして、ＣＰＵ４０５は、データをＤＲＡＭバッファ４１０にコピーし直す。
【００３５】
図６は、図１及び図２の論理ダイ１０５のマイクロアーキテクチャである。コアアーキテクチャ６０５は、プロセシング−イン−メモリ（Ｐｒｏｃｅｓｓｉｎｇ−Ｉｎ−Ｍｅｍｏｒｙ：ＰＩＭ）コマンド（例：ＰＩＭ＿ＣＭＤ）を復号し、内部のマイクロ演算を出力し、多重プロセシング−イン−メモリ（ＰＩＭ）演算をスケジューリングする。周辺ロジックは、種々の状態機械を含む、キューイングを制御するホストマネージャ６１５と、ＳＲＡＭコントローラ６２０と、ＨＢＭコントローラ６２５と、オフロード処理論理部６１０とを含む。
【００３６】
より具体的に、論理ダイ１０５は、インタフェース物理層（ＰＨＹ）６７５とホストキューマネージャ６８０とを含む、ホストマネージャ６１５を含む。一部の実施形態において、ホストマネージャ６１５は、インタフェース物理層（ＰＨＹ）６７５を介してホスト（例：図１の１１５）とインタフェースする。また、ホストマネージャ６１５は、ホスト１１５から受信した情報をキューイングする。論理ダイ１０５は、プリフェッチエンジン６８５とキャッシュコントローラ６９０とを含む、ＳＲＡＭコントローラ６２０を含む。ＳＲＡＭコントローラ６２０は、プリフェッチエンジン６８５及びキャッシュコントローラ６９０を介してＳＲＡＭ６３５とインタフェースする。
【００３７】
論理ダイ１０５は、ＨＢＭ２モジュールスタック６３０とインタフェースするメモリコントローラ６９８とエラー訂正コード（ＥＣＣ）論理部６９５を含む、ＨＢＭコントローラ６２５を含む。一部の実施形態において、論理ダイ１０５は、ホスト（例：図１の１１５）から処理演算をオフロードするオフロード処理論理部６１０を含む。一部の実施形態において、オフロード処理論理部６１０は、ホストマネージャ６１５を介してホスト１１５からオフロード処理演算に関する情報を受信する。一部の実施形態において、オフロード処理論理部６１０は、オフロード処理演算に関する受信された情報に応じて処理演算を実行する。受信された情報は、フラグを含む。受信された情報は、コマンドを含む。
【００３８】
一部の実施形態において、コマンド復号論理部６４０は、コマンドを復号する。
一部の実施形態において、コマンド出力論理部６４５は、コマンドを出力する。オフロード処理論理部６１０は、出力されたコマンドに応答してオフロード処理演算を実行する。オフロード処理論理部６１０は、演算論理ユニット（ＡＬＵ）６５５、浮動小数点ユニット（ＦＰＵ）６６０、固定論理６７０、又は再設定可能な論理６６５の少なくとも１つを含む。一部の実施形態において、オフロード処理論理部６１０は、ＨＢＭ２モジュールスタック６３０に格納されたデータに応じてオフロード処理演算を実行する。また、コアアーキテクチャ６０５は、有限状態機械（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ：ＦＳＭ）６５０を含む。
【００３９】
ハードウェアベースのプロトコルは、１段階プロトコル又は２段階プロトコルを含む。１段階プロトコルは、ホスト（例：図１の１１５）がさらなる別の演算を進行する前に、演算の結果を待つ必要のない簡単な演算に好適である。すなわち、ホスト１１５と知能型ＨＢＭスタック（例：図１の１２０）との間の決定的なタイミングが存在する。１段階プロトコルにおいて、メモリコントローラ６９８は、ソース、宛先アドレス、及び／又はバンクに対してのみロックを実行する。例えば、１段階プロトコルは、読み取り−修正−書き込み（ｒｅａｄ−ｍｏｄｉｆｙ−ｗｒｉｔｅ）演算などの原子演算（ａｔｏｍｉｃ  ｏｐｅｒａｔｉｏｎ）を含む。
【００４０】
２段階プロトコルは、ホスト１１５が演算結果を待つ演算に好適である。一例に、トランザクションコマンドが挙げられる。本実施形態において、ＰＨＹは、ホスト１１５と知能型ＨＢＭスタック１２０（図１参照）との間の情報の流れを得るために、目的が変更されたトランザクションピンで修正される（例：ピンが変更または追加される。）。本実施形態において、メモリコントローラ６９８は、トランザクションを行う間ＨＢＭ２モジュールスタック６３０全体に対してロックする。一例に、１００×１００列を転置することが挙げられる。
【００４１】
論理ダイ（例：図１の１０５）で実行される関数ライブラリの様々なカテゴリー（すなわち、＃１乃至５）を以下の表１に示す。関数ライブラリは、ホスト（例：図１の１１５）と調整され、個別の運営フィールド及び構成関数をそれぞれ含む。このような関数ライブラリは、同期及び非同期の知能型ＨＢＭインタフェースと互換される。バストランザクション、キューイング、及びメモリコントローラの遅延時間が短くなることにより、性能が向上する。関数の実行に固定論理及び／又は再設定可能な論理が利用される。
【００４２】
【表１】
2019036298.tif 000003
2019036298.tif 000004
【００４３】
本明細書には、ＨＢＭベースの論理モジュールマイクロアーキテクチャと、アプリケーションライブラリカーネルドライバーと、関連のフレームワークと、を含む、システムアーキテクチャを開示している。本システムは、ＨＢＭ装置のための個別の関数カテゴリーを利用して種々の処理機能を提供する。本システムは、ＨＢＭ演算領域を識別し、これらを知能型ＨＢＭマイクロアーキテクチャで処理するために、ホストメモリコントローラの修正とともに、主にハードウェアベースのアクセス法を用いる。本システムは、ＧＰＵの支援を要求することなく、作業の分散を支援するために直接ＣＰＵからＨＢＭメモリの空間にアクセスするように、主にＭＭＩＯとともにソフトウェアベースのアクセス法を用いる。本システムは、同期及び非同期のＨＢＭメモリインタフェースをそれぞれ可能にするために、１段階プロトコル及び／又は２段階プロトコルを用いる。本明細書に開示するＨＢＭ論理は、マイクロアーキテクチャがコマンド復号、並列関数スケジュールリング、ホスト、並びにホスト側インタフェース、キューイング、内部ＳＲＡＭキャッシュ、及び／又はエラー訂正を管理する周辺論理を支援するように具現する。
【００４４】
図７は、本明細書に開示する実施形態による図１の知能型ＨＢＭ装置を含むコンピューティングシステム７００の例示的なブロック図である。知能型ＨＢＭ装置１００は、システムバス７０５に電気的に連結される。コンピューティングシステム７００は、クロック７１０、ランダムアクセスメモリ（ＲＡＭ）及び／若しくはフラッシュメモリ７１５、メモリコントローラ７４５、ユーザーインタフェース７２０、ベースバンドチップセットなどのモデム７２５、並びに／又は自動試験装置（Ａｕｔｏｍａｔｅｄ  Ｔｅｓｔ  Ｅｑｕｉｐｍｅｎｔ：ＡＴＥ）７３５を含み、これらのうちの一部又は全部は、システムバス７０５に電気的に結合される。
【００４５】
コンピューティングシステム７００がモバイル装置である場合、さらにコンピューティングシステム７００に電力を供給するバッテリー７４０を含む。図７には示していないが、コンピューティングシステム７００は、アプリケーションチップセット、カメライメージプロセッサ（Ｃａｍｅｒａ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ：ＣＩＳ）、モバイルＤＲＡＭなどをさらに含む。メモリコントローラ７４５及びフラッシュメモリ７１５は、データを格納するために不揮発性メモリを使用するソリッドステートドライブ／ディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ／Ｄｉｓｋ：ＳＳＤ）の一部を構成する。
【００４６】
例示的な実施形態において、コンピューティングシステム７００は、コンピュータ、携帯型コンピュータ、ウルトラモバイルＰＣ（Ｕｌｔｒａ  Ｍｏｂｉｌｅ  ＰＣ：ＵＭＰＣ）、ワークステーション、ネットブック、ＰＤＡ、ウェブタブレット、無線電話、移動電話、スマートフォン、ｅブック、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、デジタルカメラ、デジタルオーディオレコーダ／プレーヤ、デジタル写真／ビデオレコーダ／プレーヤ、携帯ゲーム機、ナビゲーションシステム、ブラックボックス、三次元テレビ、無線環境で情報の送受信が可能な装置、ホームネットワークを構成する多様な電子装置の１つ、コンピュータネットワークを構成する多様な電子装置の１つ、テレマティクスネットワークを構成する多様な電子装置の１つ、ＲＦＩＤ、又はコンピューティングシステムを構成する多様な電子装置として使用される。
【００４７】
以下の説明は、本発明の技術的思想の所定の様相が具現され得る適切な装置の簡略かつ一般的な説明を提供するためである。一般に、装置は、プロセッサ、メモリ（例：ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、又は他の状態保存媒体、ストレージ装置、ビデオインタフェース、及び入／出力インタフェースポートが接続されるシステムバスを含む。装置は、キーボード、マイク等の従来の入力装置からの入力により少なくとも部分的に制御されるだけでなく、他の装置から受信した命令、仮想現実（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ：ＶＲ）環境との相互作用、生体認識フィードバック、又は他の入力信号によっても制御される。本明細書で用いるように、「機械」という用語は、単一機械、仮想機械、又は通信可能に連結され共に動作する機械、仮想機械若しくはデバイスからなるシステムを広範に含む。例示的な機械としては、パソコン、ワークステーション、サーバ、携帯型コンピュータ、携帯用デバイス、電話機、タブレット等のコンピューティング装置だけではなく、例えば、自動車、列車、タクシーなどの個人又は公共交通機関などの輸送装置を含む。
【００４８】
機械は、プログラム可能／不可能な論理装置又はアレーなどの埋め込みコントローラ、注文型集積回路（ＡＳＩＣｓ）、埋め込み式コンピュータ、及びスマートカード等を含む。機械は、例えばネットワークインタフェース、モデム、又は他の通信連結手段を介して１以上の遠隔装置に対する１以上の連結を利用する。機械は、イントラネット、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）などの物理及び／又は論理ネットワークを介して互いに連結する。本技術分野に属する通常の技術者は、ネットワーク通信が、無線周波数（ＲＦ）、衛星、マイクロ波、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）５４５．１１、ブルートゥース（登録商標）、光学、赤外線、ケーブル、レーザー等を含む様々な有線及び／若しくは無線の短距離又は長距離搬送波、並びにプロトコルを利用可能であることを理解するであろう。
【００４９】
本発明の技術的思想による実施形態は、機械がアクセスする場合、機械に作業を実行させるか、抽象データ型又は下位層のハードウェアコンテキストを規定するようにする関数、手順、データ構造、アプリケーションのプログラム等を含む関連データを参照するか、又はこれらと共に説明される。例えば、関連データは、ＲＡＭ、ＲＯＭなどのような揮発性及び／又は不揮発性メモリに格納するか、又はハードドライブ、フロッピーディスク、光ストレージ、テープ、フラッシュメモリ、メモリスティック、デジタルビデオディスク、生体ストレージなどを含む他のストレージ装置、及びこれらに関するストレージ媒体に格納される。関連データは、物理及び／又は論理ネットワークを含む伝送環境を介してパケット、直列データ、並列データ、電波信号などの形で伝えられ、圧縮又は暗号化フォーマットで使用される。関連データは、分散環境で使用され、機械のアクセスのために、ローカル又は遠隔に格納される。
【００５０】
実施形態に関して本発明の技術的思想の原理を説明し示したが、実施形態は、このような原理から逸脱することなく、配列及び詳細事項において修正され、任意の好ましい方法で組み合わせることが可能である。先に説明した内容は、特定の実施形態に焦点を合わせているが、他の構成も考えられる。特に、「本発明の技術的思想の実施形態による」などの表現や、これと同様の表現を本明細書で使用していても、このような語句は、一般に実現可能な実施形態の例示を参照として組み込むためのものであり、特定の実施形態による構成に本発明の技術的思想を制限するわけではない。本明細書では、このような用語は、他の実施形態と組合せ可能な同一または異なる実施形態を引用可能である。
【００５１】
本発明の技術的思想の実施形態は、１以上のプロセッサにより実行可能な命令を含む非一時的な機械の読み取り可能な媒体を含み、命令は、本明細書に説明する技術的思想の要素を行うための命令を含む。
【００５２】
上述の実施形態は、それらの技術的思想を限定すると解釈すべきではない。一部の実施形態を説明したが、本発明の通常の技術者は、本開示の新規な教示及び利点から実質的に逸脱することなく、実施形態の種々の変形が可能であることは、容易に理解できる。従って、このような全ての変形は、請求範囲に規定されている技術的思想の範囲内に含まれる。
【符号の説明】
【００５３】
１００  知能型ＨＢＭ装置
１０５  論理ダイ
１１０  ＨＢＭ２モジュール  
１１５  ホスト
１２０  知能型ＨＢＭスタック
２０５  インタポーザ
２１０  パッケージ基板
３００  ブロック図
３０５  人工知能アプリケーション
３１０  ＣＵＤＡ
３１５  ＧＰＵ命令集合アーキテクチャ
３２０、４２０  ＧＰＵ
３２５  ライブラリ
３３０  メモリＩＳＡ
３３５  ライブラリ関数呼び出し部
３４０、３４５  アーキテクチャ
４００、５００  システム
４０５  ＣＰＵ
４１０  ＤＲＡＭバッファ
４１５  ＰＣＩ−Ｅインタフェース
５０２  図面
５１０  カーネル
６０５  コアアーキテクチャ
６１０  オフロード処理論理部
６１５  ホストマネージャ
６２０  ＳＲＡＭコントローラ
６２５  ＨＢＭコントローラ
６３０  ＨＢＭ２モジュールスタック
６３５  ＳＲＡＭ
６４０  コマンド復号論理部
６４５  コマンド出力論理部
６５０  有限状態機械
６５５  演算論理ユニット
６６０  浮動小数点ユニット
６６５  再設定可能な論理
６７０  固定論理
６７５  インタフェース物理層
６８０  ホストキューマネージャ
６８５  プリフェッチエンジン
６９０  キャッシュコントローラ
６９５  エラー訂正コード論理部
６９８、７４５  メモリコントローラ
７００  コンピューティングシステム
７０５  システムバス
７１０  クロック
７１５  ランダムアクセスメモリ及び／若しくはフラッシュメモリ
７２０  ユーザーインタフェース
７２５  モデム
７３５  自動試験装置
７４０  バッテリー
【図１】
2019036298.tif 000005
【図２】
2019036298.tif 000006
【図３】
2019036298.tif 000007
【図４】
2019036298.tif 000008
【図５】
2019036298.tif 000009
【図６】
2019036298.tif 000010
【図７】
2019036298.tif 000011