(57)【要約】ニアメモリ及びインメモリ堅牢化ロジックブロックを使用する構成可能コンピューティングシステムが本明細書で説明される。堅牢化ロジックブロックは、メモリモジュールに組み込まれる。メモリモジュールは、構成可能コンピューティング基板とメモリモジュールとの間で通信するインタフェースまたは通信ロジックを含む。実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、オンダイメモリまたは他の形式の非構成可能ロジックを含むことができる。別の実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、構成可能コンピューティング基板ロジックファブリックの一部を含むことができる。別の実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、オンダイメモリ及び構成可能コンピューティング基板ロジックファブリックの一部を含むことができる。【選択図】図４
2021510863.tif 000002
【特許請求の範囲】
【請求項１】
構成可能コンピューティング基板と、
前記構成可能コンピューティング基板に接続されたメモリモジュールであって、前記メモリモジュールは、メモリダイ及び別のダイを含む、前記メモリモジュールと、を備え、
前記別のダイは、
前記構成可能コンピューティング基板によって送信されたデータに対して動作するように構成された堅牢化ロジックブロックと、
前記構成可能コンピューティング基板と通信するように構成された構成可能コンピューティング基板インタフェースと、
前記メモリダイ、前記構成可能コンピューティング基板インタフェース、及び前記堅牢化ロジックブロックと通信するように構成されたメモリインタフェースと、を含む、
構成可能コンピューティングプラットフォーム。
【請求項２】
前記堅牢化ロジックブロックは、中央処理装置（ＣＰＵ）、ＣＰＵコア、グラフィックプロセシングユニット（ＧＰＵ）、ＧＰＵコア、ハードコードアクセラレータ、特定用途向け集積回路ブロック、実行エンジン、及びデータ並列浮動小数点対応実行エンジンのうちの少なくとも１つである、請求項１に記載の構成可能コンピューティングプラットフォーム。
【請求項３】
前記別のダイは更に、前記構成可能コンピューティング基板インタフェース及び前記堅牢化ロジックブロックと通信するように構成されたオンダイメモリを含む、請求項１に記載の構成可能コンピューティングプラットフォーム。
【請求項４】
前記オンダイメモリは更に、前記メモリインタフェースと通信するように構成され、前記メモリダイに対するキャッシュとして機能する、請求項３に記載の構成可能コンピューティングプラットフォーム。
【請求項５】
前記オンダイメモリは、前記メモリモジュールのアドレス範囲に含まれる、請求項３に記載の構成可能コンピューティングプラットフォーム。
【請求項６】
前記構成可能コンピューティング基板からの前記データは、前記データのサイズが前記オンダイメモリの容量と実質的に一致するときに前記オンダイメモリに書き込まれる、請求項３に記載の構成可能コンピューティングプラットフォーム。
【請求項７】
前記堅牢化ロジックブロックからの結果は、前記結果のデータサイズが前記オンダイメモリの容量と実質的に一致するときに前記オンダイメモリに書き込まれる、請求項３に記載の構成可能コンピューティングプラットフォーム。
【請求項８】
前記ダイは更に、前記構成可能コンピューティング基板インタフェース及び前記堅牢化ロジックブロックと通信するように構成された構成可能コンピューティング基板ファブリックを含む、請求項１に記載の構成可能コンピューティングプラットフォーム。
【請求項９】
前記構成可能コンピューティング基板は、計算のタイプに基づいて、前記構成可能コンピューティング基板ファブリックを介して前記堅牢化ロジックブロックに前記データを送信する、請求項８に記載の構成可能コンピューティングプラットフォーム。
【請求項１０】
前記ダイは更に、
前記構成可能コンピューティング基板インタフェース及び前記堅牢化ロジックブロックと通信するように構成されたオンダイメモリと、
前記構成可能コンピューティング基板インタフェース及び前記堅牢化ロジックブロックと通信するように構成された構成可能コンピューティング基板ファブリックと、
を含む、請求項１に記載の構成可能コンピューティングプラットフォーム。
【請求項１１】
前記ダイは、ロジックダイである、請求項１に記載の構成可能コンピューティングプラットフォーム。
【請求項１２】
前記ダイは、メモリダイである、請求項１に記載の構成可能コンピューティングプラットフォーム。
【請求項１３】
構成可能コンピューティングプラットフォームを使用して計算する方法であって、
構成可能コンピューティング基板をメモリモジュールに接続することと、
構成可能コンピューティング基板インタフェース及びメモリインタフェースを介して、前記構成可能コンピューティング基板から前記メモリモジュールに含まれるメモリダイにデータを書き込むことであって、前記構成可能コンピューティング基板インタフェース及び前記メモリインタフェースは、前記メモリモジュールに含まれるダイ上に設けられる、前記書き込むことと、
前記メモリインタフェースを介して、堅牢化ロジックブロックによって前記メモリダイから前記データにアクセスすることであって、前記堅牢化ロジックブロックは、前記ダイ上に設けられる、前記アクセスすることと、
前記メモリインタフェースを介して、前記堅牢化ロジックブロックによって前記メモリダイに結果を書き込むことと、
を備える、前記方法。
【請求項１４】
前記データのサイズがオンダイメモリの容量と実質的に一致するとき、前記構成可能コンピューティング基板インタフェースを介して前記オンダイメモリに前記データを書き込むことを更に備え、前記オンダイメモリは、前記ダイ上に設けられる、請求項１３に記載の方法。
【請求項１５】
結果のデータサイズが前記オンダイメモリの前記容量と実質的に一致するとき、前記堅牢化ロジックブロックによって前記オンダイメモリに前記結果を書き込むことを更に備える、請求項１４に記載の方法。
【請求項１６】
前記データが前記メモリダイに書き込まれるとき、前記オンダイメモリに前記データの一部を書き込むことと、
前記データの前記一部に後続の読み出しをサービスすることと、
を更に備える、請求項１４に記載の方法。
【請求項１７】
前記オンダイメモリは、前記メモリモジュールのアドレス範囲に含まれる、請求項１４に記載の方法。
【請求項１８】
計算のタイプに基づいて、構成可能コンピューティング基板ファブリック及び前記構成可能コンピューティング基板インタフェースを介して、前記構成可能コンピューティング基板と前記堅牢化ロジックブロックとの間で前記データを通信することを更に備え、前記構成可能コンピューティング基板ファブリックは、前記ダイ上に設けられる、請求項１３に記載の方法。
【請求項１９】
前記データのサイズがオンダイメモリの容量と実質的に一致するとき、前記構成可能コンピューティング基板インタフェースを介して前記オンダイメモリに前記データを書き込むことを更に備え、前記オンダイメモリは、前記ダイ上に設けられる、請求項１８に記載の方法。
【請求項２０】
結果のデータサイズが前記オンダイメモリの前記容量と実質的に一致するとき、前記堅牢化ロジックブロックによって前記メモリダイに前記結果を書き込むことを更に備える、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照によって本明細書で完全に示されるようにその内容が以下に組み込まれる、２０１８年１月１６日に出願された米国特許出願第１５／８７２，９４３号の利益を主張する。
【背景技術】
【０００２】
構成可能プラットフォームがデータセンタに配置されており、特定のクラスの作業負荷を加速させるための有望な候補のアーキテクチャである。しかしながら、それらの構成可能プラットフォームは典型的には、グラフィックプロセシングユニット（ＧＰＵ）、特定のタイプの演算（不規則なデータフロー、標準的でないビット幅のデータタイプに対する計算など）のための他のタイプの計算密度の高いプロセシングユニットを凌ぐにすぎない。この欠点に対処するために、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）ベンダは、中央処理装置（ＣＰＵ）、浮動小数点（ＦＰ）装置、及びＦＰＧＡにおける同様のものを含むいくつかの計算要素タイプについての堅牢化ロジック、ハードコードロジックブロック、または堅牢化計算ブロック（集合的に「堅牢化ロジックブロック」）を組み込むことを開始している。しかしながら、これは、ＦＰＧＡベンダが様々な市場区分に対してハードコードロジックブロックを様々に組み合わせて多種多様なデバイスを製造することを必要とする。そのようなハードコードロジックブロックでさえ、構成可能プラットフォームの効率性は、ＧＰＵなどの密度の高い計算エンジンから利点を得ることができるコードの区分を有する用途に対して次善的なものである。従来の技術は、ボードレベル（例えば、ＦＰＧＡと共にＣＰＵ及びＧＰＵ）においてシステムに各々の種類の複数の個別デバイスを組み込む。この技術は、複数の個別デバイスが組み込まれ、調整される必要があるので、システムレベルのコスト及び複雑度を増大させる。別の従来の技術は、ＦＰＧＡデバイス上で堅牢化ロジックブロックを組み込む。この技術は、堅牢化ロジックブロックの種類を様々に組み合わせて多くの異なるデバイスを製造する必要があり、いずれかの特定の作業負荷に対して最適でないリスクをなおも抱える。
【発明の概要】
【０００３】
添付図面と共に例として与えられる以下の説明から更なる詳細な理解を得ることができる。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態に従った、ニアメモリ堅牢化ロジックを有する構成可能コンピューティング基板の実施例の高レベルブロック図である。
【図２】いくつかの実施形態に従った、メモリスタックと統合されたベースダイの実施例の詳細なブロック図である。
【図３】いくつかの実施形態に従った、ニアメモリ堅牢化ロジックを有する構成可能コンピューティング基板の別の実施例のブロック図である。
【図４】いくつかの実施形態に従った、ニアメモリ堅牢化ロジックを有する構成可能コンピューティング基板の更なる別の実施例のブロック図である。
【図５】いくつかの実施形態に従った、ニアメモリ堅牢化ロジックを有する構成可能コンピューティング基板を使用する実施例のフローチャートである。
【図６】１つ以上の開示される実施形態を実装することができる実施例のデバイスのブロック図である。
【発明を実施するための形態】
【０００５】
構成可能コンピューティング基板または構成可能ロジックデバイス（集合的に「構成可能コンピューティング基板」）は、データセンタ配置及び機械学習の加速化のために最近では相当な注目を集めている。構成可能コンピューティング基板は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブル論理デバイス（ＣＰＬＤ）、粗粒度再構成可能アレイ（ＣＧＲＡ）、ゲートアレイ、及び他の同様のプラットフォームまたはデバイスを指すことができる。しかしながら、そのような構成可能コンピューティング基板は、密度の高い算術的または複雑な制御フローにより計算の効率的なサポートのために堅牢化ロジックブロックにより拡張されることがある。すなわち、構成可能コンピューティング基板は典型的には、構成可能ロジックブロックを使用して効率的に実装することができない機能性に対して堅牢化ロジックブロックを組み込む。
【０００６】
本明細書で説明されるのは、追加の個別構成要素がＦＰＧＡデバイスなどの構成可能コンピューティング基板に追加されることを必要とすることなく、構成可能コンピューティング基板の能力を高めるためにニアメモリ及びインメモリ堅牢化ロジックブロックを使用する構成可能コンピューティングシステムである。それらの堅牢化ロジックブロックは、中央処理装置（ＣＰＵ）、ＣＰＵコア、グラフィックプロセシングユニット（ＧＰＵ）、ＧＰＵコア、ハードコードアクセラレータ、特定用途向け集積回路（ＡＳＩＣ）ブロック、実行エンジン、データ並列浮動小数点対応実行エンジン、及び他の同様のデバイスまたはロジック、並びにそれらの組み合わせを含むことができるが、それらに限定されない。堅牢化ロジックブロックは、メモリモジュールに組み込まれる。特に、堅牢化ロジックブロックは、メモリモジュールのベースもしくはロジックダイ、またはメモリダイ上にある。実装態様では、別個のダイは、堅牢化ロジックブロックを実装するためのメモリモジュールの一部として追加及び含まれてもよい。
【０００７】
メモリモジュールは、構成可能コンピューティング基板とメモリモジュールとの間で通信するインタフェースまたは通信ロジックを含む。実装態様では、構成可能コンピューティング基板とメモリモジュールとの間のインタフェースは、インタフェースに互換性があり組み合わせて使用できるという条件で独自のものであり得る。実装態様では、インタフェースは、コモディティメモリモジュールの使用を可能にするジョイントエレクトロンデバイスエンジニアリングカウンシル（ＪＥＤＥＣ）高帯域幅メモリ（ＨＢＭ）などの標準であってもよい。インタフェースの標準化は、第三者メモリモジュールの使用を可能にすることによって柔軟性を高める。実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、スタティックランダムアクセスメモリ（ＳＲＡＭ）などのオンダイメモリまたは他の形式の非構成可能ロジックを含むことができる。別の実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、構成可能コンピューティング基板ロジックファブリックの一部を含むことができる。別の実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、ＳＲＡＭ及び構成可能コンピューティング基板ロジックファブリックの一部を含むことができる。
【０００８】
メモリモジュールへの堅牢化ロジックブロックの組み込みは、複数の市場区分に対してコア構成可能コンピューティング基板を再設計する必要性を回避し、メモリモジュールにおいて使用されるベースダイタイプの組み合わせを単に変えることによって、単一の構成可能コンピューティング基板が多くの市場に標的とされることを可能にする。
【０００９】
本明細書で説明されるのは、メモリモジュールを構成し、メモリモジュールにおける構成可能コンピューティング基板と堅牢化ロジックブロックとの間でデータを移動して戻すための例示的な実装態様である。本明細書で説明される明細書及び請求項の範囲から逸脱することなく、更なる組み合わせが想定される。
【００１０】
図１は、特定の実装態様に従った、構成可能プラットフォーム１００の実施例の高レベルブロック図を示す。構成可能プラットフォーム１００は、メモリモジュール（複数可）１２０に接続され、または通信する（集合的に「接続された」）構成可能コンピューティング基板１１０を含む。メモリモジュール（複数可）１２０は、メモリダイ１４０と共に積層されたベースまたはロジックダイ１３０を有する３Ｄ積層メモリモジュールであってもよい。
【００１１】
図２は、特定の実装態様に従った、図１のメモリモジュール１２０のベースダイ１３０の拡大図を示す。ベースダイ１３０は、構成可能コンピューティング基板１１０と通信するための構成可能コンピューティング基板インタフェース２００（図２ではＣＣＳインタフェース２００として示される）を含む。構成可能コンピューティング基板インタフェース２００は、メモリインタフェース２１０に接続され、メモリインタフェース２１０は次いで、積層メモリ、例えば、メモリダイ１４０に接続される。メモリインタフェース２１０は更に、堅牢化ロジックブロック２２０に接続される。結果として、堅牢化ロジックブロック２２０は、構成可能コンピューティング基板１１０に対するニアメモリまたはインメモリ構造である。堅牢化ロジックブロック２２０は、１つ以上のロジックブロックを含むことができるが、説明を容易にするため、１つのロジックブロックのみが本明細書で言及される。
【００１２】
動作的に、構成可能コンピューティング基板１１０は、構成可能コンピューティング基板インタフェース２００及びメモリインタフェース２１０を介して、メモリダイ１４０にデータを書き込む。堅牢化ロジックブロック２２０は、メモリインタフェース２１０を介してメモリダイ１４０からデータを読み出す。堅牢化ロジックブロック２２０からの結果は、メモリインタフェース２１０を介してメモリダイ１４０に書き込まれる。構成可能コンピューティング基板１１０は次いで、構成可能コンピューティング基板インタフェース２００及びメモリインタフェース２１０を介して、メモリダイ１４０から結果を読み出す。実装態様では、構成可能コンピューティング基板１１０及び堅牢化ロジックブロック２２０は、メモリに／からデータを書き込み／読み出し、それに対して動作するために、またはその逆のために、メモリストア及び負荷動作を使用することができる。構成可能コンピューティング基板１１０とメモリモジュール１２０との間の構成可能コンピューティング基板インタフェース２００は、産業標準メモリインタフェース（メモリモジュール１２０の外側で負荷／ストアのみが必要とされるような）または独自のものであってもよい。
【００１３】
図３は、特定の実装態様に従った、構成可能プラットフォーム３００の実施例の高レベルブロック図を示す。構成可能プラットフォーム３００は、メモリモジュール３２０に接続され、または通信する（集合的に「接続された」）構成可能コンピューティング基板３１０を含む。メモリモジュール３２０は、積層メモリ３４０に接続されたベースダイ３３０を有する３Ｄ積層メモリモジュールであってもよい。ベースダイ３３０は、構成可能コンピューティング基板３１０と通信するための構成可能コンピューティング基板インタフェース３５０（図３ではＣＣＳインタフェース３５０として示される）を含む。構成可能コンピューティング基板インタフェース３５０は、メモリインタフェース３６０に接続され、メモリインタフェース３６０は次いで、積層メモリ３４０に接続される。メモリインタフェース３６０は更に、堅牢化ロジックブロック３７０に接続される。堅牢化ロジックブロック３７０は、１つ以上のロジックブロックを含むことができるが、説明を容易にするため、１つのロジックブロックのみが本明細書で言及される。構成可能コンピューティング基板インタフェース３５０は更に、メモリモジュール３２０のアドレス空間または範囲に含まれるベースダイ３３０内でオンダイメモリ３８０に接続される。非限定的な実施例では、オンダイメモリ３８０は、ＳＲＡＭであってもよい。オンダイメモリ３８０は、積層メモリ３４０への読み出し及び書き込みを回避することができるので、データがオンダイメモリ３８０の容量と互換性を有するときにデータの効率的な処理をもたらす。実装態様では、オンダイメモリ３８０は、構成可能コンピューティング基板３１０上でプロビジョニングされてもよい。この実装態様では、構成可能コンピューティング基板インタフェース３５０は、メモリモジュール３２０において堅牢化ロジックブロック３７０からのオンダイメモリ３８０のアドレス指定を可能にする。
【００１４】
動作的に、構成可能コンピューティング基板３１０は、構成可能コンピューティング基板インタフェース３５０を介してデータを書き込む。堅牢化ロジックブロックと通信されることになるデータの量は、データが記憶される場所を決定する。データの量がオンダイメモリ３８０の容量と互換性を有する場合、構成可能コンピューティング基板３１０は次いで、構成可能コンピューティング基板インタフェース３５０を介して、オンダイメモリ３８０にデータを書き込む（オンダイメモリ３８０と関連付けられたアドレス空間を使用して）。データの量がオンダイメモリ３８０の容量と互換性を有しない場合、構成可能コンピューティング基板３１０は次いで、構成可能コンピューティング基板インタフェース３５０及びメモリインタフェース３６０を介して、積層メモリ３４０にデータを書き込む（積層メモリ３４０と関連付けられたアドレス空間を使用して）。堅牢化ロジックブロック３７０は、メモリインタフェース３６０を介して積層メモリ３４０から、またはオンダイメモリ３８０からのいずれかでデータを読み出す。堅牢化ロジックブロック２２０からの結果は、結果と関連付けられたデータの量に応じて、及び適切なアドレス空間を使用して、メモリインタフェース３６０を介して積層メモリ３４０に、またはオンダイメモリ３８０に書き込まれる。構成可能コンピューティング基板３１０は次いで、適切なアドレス空間を使用して、構成可能コンピューティング基板インタフェース３５０及びメモリインタフェース３６０を介して積層メモリ３４０から、または構成可能コンピューティング基板インタフェース３５０を介してオンダイメモリ３８０から結果を読み出す。いくつかの実装態様では、オンダイメモリ３８０は、積層メモリ３４０に対するキャッシュとして動作してもよく、積層メモリ３４０に書き込まれるデータのサブセットを自動で捕捉してもよく、そのデータへの後続の読み出しをサービスしてもよく、それによって、積層メモリ３４０へのアクセスを減少させる。
【００１５】
図４は、特定の実装態様に従った、構成可能プラットフォーム４００の実施例の高レベルブロック図を示す。構成可能プラットフォーム４００は、メモリモジュール４２０に接続され、または通信する（集合的に「接続された」）構成可能コンピューティング基板４１０を含む。メモリモジュール４２０は、積層メモリ４４０に接続されたベースダイ４３０を有する３Ｄ積層メモリモジュールであってもよい。ベースダイ４３０は、構成可能コンピューティング基板４１０と通信するための構成可能コンピューティング基板インタフェース４５０（図４ではＣＣＳインタフェース４５０として示される）を含む。構成可能コンピューティング基板インタフェース４５０は、メモリインタフェース４６０に接続され、メモリインタフェース４６０は次いで、積層メモリ４４０に接続される。メモリインタフェース４６０は更に、堅牢化ロジックブロック４７０に接続される。堅牢化ロジックブロック４７０は、１つ以上のロジックブロックを含むことができるが、説明を容易にするため、１つのロジックブロックのみが本明細書で言及される。構成可能コンピューティング基板インタフェース４５０は更に、構成可能コンピューティング基板ファブリック４８０に接続される。構成可能コンピューティング基板ファブリック４８０は、ベースダイ４３０上で構成可能コンピューティング基板４１０の一部として作動し、または構成可能コンピューティング基板４１０の一部として見え、堅牢化ロジックブロック４７０が、例えば、レジスタを使用することを可能にし、したがって、積層メモリ４４０に対して負荷及びストアを行う必要があることを回避する。これは、２つのデバイスの間のインタフェースにわたって構成可能コンピューティング基板の内部ファブリックを拡張することによって、構成可能コンピューティング基板４１０とメモリモジュール４２０との間のシームレスな通信を可能にする。この実装態様では、メモリモジュール４２０における堅牢化ロジックブロック４７０は、堅牢化ロジックブロック４７０が構成可能コンピューティング基板４１０自体の上に直接あるかのように、いずれかの方式において構成可能コンピューティング基板４１０の残りと設計的にインタフェース接続されてもよい。
【００１６】
動作的に、構成可能コンピューティング基板４１０は、構成可能コンピューティング基板インタフェース４５０を介して堅牢化ロジックブロック４７０と通信する。計算の性質またはタイプは、データが構成可能コンピューティング基板４１０から堅牢化ロジックブロック４７０にどのように通信されるかを決定する。非限定的な例示的な実施例では、計算の性質は、構成可能コンピューティング基板ファブリック４８０が計算のいくつかのステップ（複数可）を実行し、堅牢化ロジックブロック４７０が次のステップ（複数可）を実行する（または、その逆）、ストリーミング計算を指すことができる。この例では、各々のデバイス上で行われるステップの間で収集される多くのデータは存在せず、データが利用可能になるにつれて、データは単純に１つのデバイスから他のデバイスに渡される。結果として、構成可能コンピューティング基板ファブリック４８０を堅牢化ロジックブロック４７０のすぐ隣にさせることは、それらのタイプの計算におけるハンドオフを支援する。
【００１７】
メモリモジュール４２０上の構成可能コンピューティング基板ファブリック４８０を堅牢化ロジックブロック４７０とインタフェース接続するために使用することができるような計算である場合、データは、構成可能コンピューティング基板インタフェース４５０を介して構成可能コンピューティング基板４１０から堅牢化ロジックブロック４７０に渡され、メモリモジュール４２０上の構成可能コンピューティング基板ファブリック４８０によって媒介される。メモリモジュール４２０上の構成可能コンピューティング基板ファブリック４８０を堅牢化ロジックブロック４７０とインタフェース接続するために使用することができないような計算の性質である場合、データは次いで、構成可能コンピューティング基板インタフェース４５０及びメモリインタフェース４６０を介して、積層メモリ４４０に記憶される。堅牢化ロジックブロック４７０は、メモリモジュール４２０上の構成可能コンピューティング基板ファブリック４８０を通じてデータを受信し、またはメモリインタフェース４６０を介して積層メモリ４４０からデータにアクセスする。堅牢化ロジックブロック４７０からの結果は、計算の性質に応じて、メモリインタフェース４６０を介して積層メモリ４４０に書き込まれ、または構成可能コンピューティング基板インタフェース４５０を介して構成可能コンピューティング基板４１０に通信され、メモリモジュール４２０上の構成可能コンピューティング基板ファブリック４８０によって媒介される。構成可能コンピューティング基板４１０は次いで、必要に応じて、構成可能コンピューティング基板インタフェース４５０及びメモリインタフェース４６０を介して、積層メモリ４４０から結果を読み出し、または構成可能コンピューティング基板インタフェース４５０を介して直接、及びメモリモジュール４２０上の構成可能コンピューティング基板ファブリック４８０によって媒介されたそれらに対して動作する。
【００１８】
実装態様では、構成可能プラットフォームは、メモリモジュールに接続された構成可能コンピューティング基板を含むことができ、メモリモジュールは、図３に説明されたオンダイメモリ及び図４に説明された構成可能コンピューティング基板ファブリックの両方を含む。そのような実装態様は、データサイズと計算の決定要因の性質との間の優先考慮事項を決定するために、データサイズ及び追加のロジックによる計算の性質の両方を考慮することができる。
【００１９】
メモリモジュールのベースダイ上で実装されるとして本明細書で説明されるが、堅牢化ロジックブロック（複数可）は、メモリダイ上で、またはメモリモジュールに接続された別個のダイ上で実装されてもよい。
【００２０】
１つのロジックダイ及び１つ以上のメモリダイから構成されたメモリ構成において採用されるとして本明細書で説明されるが、例えば、複数のロジックダイを含む他の物理的な明示が存在する。１つ以上のメモリダイを有するロジックダイの垂直なスタックとして説明されるが、別の実施形態は、ロジックのいくつかまたは全てをインタポーザ上で水平に別個のチップ上に置いてもよく、またはマルチチップモジュール（ＭＣＭ）において共にパッケージ化してもよい。１つよりも多いロジックダイは、全体的なスタックまたはシステムに含まれてもよい。
【００２１】
構成可能コンピューティング基板に対して実装されるとして本明細書で説明されるが、ニアメモリ堅牢化ロジックブロックアーキテクチャは、本明細書で提供される説明または請求項の範囲から逸脱することなく、他のプラットフォームまたはデバイスと共に使用されてもよい。
【００２２】
図５は、メモリモジュール（複数可）上で実装された堅牢化ロジックブロック（複数可）と通信する構成可能コンピューティング基板を有する構成可能プラットフォームを使用したデータ処理のための実施例の高レベルフローチャート５００である。構成可能コンピューティング基板は、メモリモジュールにデータを書き込む（ステップ５１０）。実装態様では、データは、メモリダイまたはメモリスタックに記憶される。別の実装態様では、データがオンダイメモリの容量と互換性を有するとき、データは、堅牢化ロジックブロック（複数可）と関連付けられたオンダイメモリに記憶される。別の実装態様では、データは、メモリモジュールにおける構成可能ロジックファブリックの拡張内のロジックまたは記憶素子に記憶される。堅牢化ロジックブロック（複数可）は、メモリモジュールからデータにアクセスする（ステップ５２０）。実装態様では、データは、メモリダイまたはメモリスタックから読み出される。別の実装態様では、データがオンダイメモリの容量と互換性を有するとき、データは、堅牢化ロジックブロックと関連付けられたオンダイメモリから読み出される。別の実装態様では、データは、メモリモジュールにおける構成可能ロジックファブリックの拡張内から通信される。堅牢化ロジックブロックからの結果は、メモリモジュールに書き込まれる（ステップ５３０）。実装態様では、結果は、メモリダイまたはメモリスタックに記憶される。別の実装態様では、結果と関連付けられたデータのサイズがオンダイメモリの容量と互換性を有するとき、結果は、堅牢化ロジックブロックと関連付けられたオンダイメモリに記憶される。別の実装態様では、結果は、メモリモジュールにおける構成可能ロジックファブリックの拡張内のロジックまたは記憶素子に記憶される。構成可能コンピューティング基板は、メモリモジュールから結果にアクセスする（ステップ５４０）。実装態様では、結果は、メモリダイまたはメモリスタックから読み出される。別の実装態様では、結果と関連付けられたデータのサイズがオンダイメモリの容量と互換性を有するとき、結果は、堅牢化ロジックブロック（複数可）と関連付けられたオンダイメモリから読み出される。別の実装態様では、結果は、メモリモジュールにおける構成可能ロジックファブリックの拡張内のロジックまたは記憶素子からアクセスされる。
【００２３】
図６は、開示の１つ以上の特徴を実装することができる実施例のデバイス６００のブロック図である。デバイス６００は、例えば、コンピュータ、ゲーミングデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話、またはタブレットコンピュータを含むことができる。デバイス６００は、プロセッサ６０２、メモリ６０４、記憶装置６０６、１つ以上の入力デバイス６０８、及び１つ以上の出力デバイス６１０を含む。デバイス６００はまた任意選択で、入力ドライバ６１２及び出力ドライバ６１４を含むことができる。デバイス６００が、図６に示されない追加の構成要素を含むことができることを理解されよう。
【００２４】
様々な代替手段では、プロセッサ６０２は、中央処理装置（ＣＰＵ）、グラフィックプロセシングユニット（ＧＰＵ）、同一のダイ上に位置するＣＰＵ及びＧＰＵ、または１つ以上のプロセッサコアを含み、各々のプロセッサコアは、ＣＰＵまたはＧＰＵであってもよい。様々な代替手段では、メモリ６０４は、プロセッサ６０２と同一のダイ上に位置してもよく、またはプロセッサ６０２とは別個に位置する。メモリ６０４は、揮発性または不揮発性メモリ、例えば、ランダムアクセスメモリ（ＲＡＭ）、動的ＲＡＭ、またはキャッシュを含む。
【００２５】
記憶装置６０６は、固定または着脱可能記憶装置、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、またはフラッシュドライブを含む。入力デバイス６０８は、限定することなく、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体スキャナ、またはネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／もしくは受信のための無線ローカルエリアネットワークカード）を含む。出力デバイス６１０は、限定することなく、構成可能コンピューティング基板、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、１つ以上の照明、アンテナ、またはネットワーク接続（例えば、無線ＩＥＥＥ８０２信号の送信及び／もしくは受信のための無線ローカルエリアネットワークカード）を含む。
【００２６】
入力ドライバ６１２は、プロセッサ６０２及び入力デバイス６０８と通信し、プロセッサ６０２が入力デバイス６０８から入力を受信することを可能にする。出力ドライバ６１４は、プロセッサ６０２及び出力デバイス６１０と通信し、プロセッサ６０２が出力デバイス６１０に出力を送信することを可能にする。入力ドライバ６１２及び出力ドライバ６１４は、任意選択の構成要素であること、並びにデバイス６００は、入力ドライバ６１２及び出力ドライバ６１４が存在しない場合に同一の方式において動作することに留意されよう。
【００２７】
概して、構成可能コンピューティングプラットフォームは、構成可能コンピューティング基板及び構成可能コンピューティング基板に接続されたメモリモジュールを含む。メモリモジュールは、メモリダイ及び別のダイを含む。別のダイは、構成可能コンピューティング基板によって送信されたデータに対して動作するように構成された堅牢化ロジックブロック、構成可能コンピューティング基板と通信するように構成された構成可能コンピューティング基板インタフェース、並びにメモリダイ、構成可能コンピューティング基板インタフェース、及び堅牢化ロジックブロックと通信するように構成されたメモリインタフェースを含む。実装態様では、堅牢化ロジックブロックは、中央処理装置（ＣＰＵ）、ＣＰＵコア、グラフィックプロセシングユニット（ＧＰＵ）、ＧＰＵコア、ハードコードアクセラレータ、特定用途向け集積回路ブロック、実行エンジン、及びデータ並列浮動小数点対応実行エンジンのうちの少なくとも１つである。実装態様では、別のダイは更に、構成可能コンピューティング基板インタフェース及び堅牢化ロジックブロックと通信するように構成されたオンダイメモリを含む。実装態様では、オンダイメモリは更に、メモリインタフェースと通信するように構成され、メモリダイに対するキャッシュとして機能する。実装態様では、オンダイメモリは、メモリモジュールのアドレス範囲に含まれる。実装態様では、構成可能コンピューティング基板からのデータは、データのサイズがオンダイメモリの容量と実質的に一致するときにオンダイメモリに書き込まれる。実装態様では、堅牢化ロジックブロックからの結果は、結果のデータサイズがオンダイメモリの容量と実質的に一致するときにオンダイメモリに書き込まれる。実装態様では、ダイは更に、構成可能コンピューティング基板インタフェース及び堅牢化ロジックブロックと通信するように構成された構成可能コンピューティング基板ファブリックを含む。実装態様では、構成可能コンピューティング基板は、計算のタイプに基づいて、構成可能コンピューティング基板ファブリックを介して堅牢化ロジックブロックにデータを送信する。実装態様では、ダイは更に、構成可能コンピューティング基板インタフェース及び堅牢化ロジックブロックと通信するように構成されたオンダイメモリ、並びに構成可能コンピューティング基板インタフェース及び堅牢化ロジックブロックと通信するように構成された構成可能コンピューティング基板ファブリックを含む。実装態様では、ダイは、ロジックダイである。実装態様では、ダイは、メモリダイである。
【００２８】
概して、構成可能コンピューティングプラットフォームを使用して計算する方法は、構成可能コンピューティング基板をメモリモジュールと接続することを含む。構成可能コンピューティング基板は、構成可能コンピューティング基板インタフェース及びメモリインタフェースを介して、メモリモジュールに含まれるメモリダイにデータを書き込み、構成可能コンピューティング基板インタフェース及びメモリインタフェースは、メモリモジュールに含まれるダイ上に設けられる。メモリダイからのデータは、メモリインタフェースを介して堅牢化ロジックブロックによってアクセスされ、堅牢化ロジックブロックは、ダイ上に設けられる。実装態様では、結果は、メモリインタフェースを介して堅牢化ロジックブロックによってメモリダイに書き込まれる。実装態様では、データは、データのサイズがオンダイメモリの容量と実質的に一致するときに構成可能コンピューティング基板インタフェースを介してオンダイメモリに書き込まれ、オンダイメモリは、ダイ上に設けられる。実装態様では、結果は、結果のデータサイズがオンダイメモリの容量と実質的に一致するときに堅牢化ロジックブロックによってオンダイメモリに書き込まれる。実装態様では、データの一部は、データがメモリダイに書き込まれるときにオンダイメモリに書き込まれ、後続の読み出しは、データの一部にサービスされる。実装態様では、オンダイメモリは、メモリモジュールのアドレス範囲に含まれる。実装態様では、構成可能コンピューティング基板と堅牢化ロジックブロックとの間のデータは、計算のタイプに基づいて、構成可能コンピューティング基板ファブリック及び構成可能コンピューティング基板インタフェースを介して通信され、構成可能コンピューティング基板ファブリックは、ダイ上に設けられる。実装態様では、データは、データのサイズがオンダイメモリの容量と実質的に一致するときに構成可能コンピューティング基板インタフェースを介してオンダイメモリに書き込まれ、オンダイメモリは、ダイ上に設けられる。実装態様では、結果は、結果のデータサイズがオンダイメモリの容量と実質的に一致するときに堅牢化ロジックブロックによってメモリダイに書き込まれる。
【００２９】
本明細書における開示に基づいて多くの変形が可能であることを理解すべきである。上記のとおり特徴及び要素が特定の組み合わせで説明されたが、各々の特徴または要素は、他の特徴及び要素なしに単独で、または他の特徴及び要素との様々な組み合わせで、もしくは他の特徴及び要素なしに使用されてもよい。
【００３０】
提供される方法は、汎用コンピュータ、プロセッサ、またはプロセッサコアにおいて実装されてもよい。適切なプロセッサは、例として、汎用プロセッサ、特殊目的プロセッサ、従来型プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、ＤＳＰコアと関連した１つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、いずれかの他のタイプの集積回路（ＩＣ）、及び／または状態機械を含む。そのようなプロセッサは、処理されたハードウェア記述言語（ＨＤＬ）命令の結果及びネットリストを含む他の中間データ（コンピュータ可読媒体に記憶されることが可能なそのような命令）を使用して製造工程を構成することによって製造されてもよい。そのような処理の結果は、マスクワークであってもよく、マスクワークは次いで、実施形態の態様を実装するプロセッサを製造する半導体製造工程において使用される。
【００３１】
本明細書で提供される方法またはフローチャートは、適用可能な範囲で、汎用コンピュータまたはプロセッサによる実行のためにコンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアにおいて実装されてもよい。コンピュータ可読記憶媒体の例は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及び着脱可能ディスクなどの磁気媒体、磁気光学媒体、並びにＣＤ−ＲＯＭディスク及びデジタル多用途ディスク（ＤＶＤ）などの光学媒体を含む。
【図１】
2021510863.tif 000003
【図２】
2021510863.tif 000004
【図３】
2021510863.tif 000005
【図４】
2021510863.tif 000006
【図５】
2021510863.tif 000007
【図６】
2021510863.tif 000008
【国際調査報告】
2021510863.tif 000009
2021510863.tif 000010
2021510863.tif 000011
2021510863.tif 000012