(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-14
(45)【発行日】2023-12-22
(54)【発明の名称】構成可能コンピューティング基板についてのニアメモリのハード化された計算ブロック
(51)【国際特許分類】
G06F 12/00 20060101AFI20231215BHJP
G06F 3/06 20060101ALI20231215BHJP
G06F 3/08 20060101ALI20231215BHJP
【FI】
G06F12/00 560F
G06F12/00 550K
G06F3/06 302A
G06F3/08 H
(21)【出願番号】P 2020536026
(86)(22)【出願日】2018-12-21
(86)【国際出願番号】 US2018067067
(87)【国際公開番号】W WO2019143442
(87)【国際公開日】2019-07-25
【審査請求日】2021-12-09
(32)【優先日】2018-01-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ヌワン ジャヤセーナ
(72)【発明者】
【氏名】マイケル イグナトウスキー
【審査官】田名網 忠雄
(56)【参考文献】
【文献】米国特許出願公開第2017/0255397(US,A1)
【文献】米国特許出願公開第2017/0123987(US,A1)
【文献】米国特許出願公開第2017/0344301(US,A1)
【文献】米国特許出願公開第2015/0088948(US,A1)
【文献】米国特許出願公開第2014/0176187(US,A1)
【文献】米国特許出願公開第2016/0380635(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 3/06
G06F 3/08
(57)【特許請求の範囲】
【請求項1】
構成可能コンピューティング基板と、
前記構成可能コンピューティング基板に接続されたメモリモジュールであって、前記メモリモジュールは、メモリダイ及びベースダイを含む、前記メモリモジュールと、を備え、
前記ベースダイは、
構成可能コンピューティング基板インタフェースと通信可能に接続されたオンダイメモリと、
前記構成可能コンピューティング基板と通信可能に接続された構成可能コンピューティング基板インタフェースと、
前記メモリダイ及び前記構成可能コンピューティング基板インタフェースと通信可能に接続されたメモリインタフェースと、
前記オンダイメモリ及び前記メモリインタフェースと通信可能に接続された、ハード化されたロジックブロックと、を備え、
前記ハード化されたロジックブロックは、
前記構成可能コンピューティング基板インタフェースによって送信されたデータに基づいて計算結果を生成することと、
前記計算結果を前記メモリダイ又は前記オンダイメモリに選択的に記憶することと、
を行うように構成されている、
構成可能コンピューティングプラットフォーム。
【請求項2】
前記ハード化されたロジックブロックは、中央処理装置(CPU)、CPUコア、グラフィックプロセシングユニット(GPU)、GPUコア、ハードコードアクセラレータ、特定用途向け集積回路ブロック、実行エンジン、又は、データ並列浮動小数点対応実行エンジンのうちの少なくとも1つである、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項3】
前記オンダイメモリは、前記メモリインタフェースと通信するように構成され、前記メモリダイに対するキャッシュとして機能する、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項4】
前記オンダイメモリは、前記メモリモジュールのアドレス範囲に含まれる、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項5】
前記構成可能コンピューティング基板からの前記データは、前記データのサイズが前記オンダイメモリの容量と一致するときに前記オンダイメモリに書き込まれる、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項6】
前記計算結果は、前記計算結果のデータサイズが前記オンダイメモリの容量と一致するときに前記オンダイメモリに書き込まれる、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項7】
前記ベースダイは、前記構成可能コンピューティング基板インタフェース及び前記ハード化されたロジックブロックと通信可能に接続された構成可能コンピューティング基板ファブリックを含む、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項8】
前記構成可能コンピューティング基板は、計算のタイプに基づいて、前記構成可能コンピューティング基板ファブリックを介して前記ハード化されたロジックブロックに前記データを送信する、請求項7に記載の構成可能コンピューティングプラットフォーム。
【請求項9】
前記ベースダイは、ロジックダイである、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項10】
前記ベースダイ及び前記メモリダイは、垂直に積層されている、請求項1に記載の構成可能コンピューティングプラットフォーム。
【請求項11】
構成可能コンピューティングプラットフォームを使用して計算する方法であって、
メモリダイ及びベースダイを含むメモリモジュールが、構成可能コンピューティング基板からデータを受信することと、
前記ベースダイのハード化されたロジックブロックが、前記ベースダイのメモリインタフェースを介して前記データにアクセスすることと、
前記ハード化されたロジックブロックが、前記データに基づいて計算結果を生成することと、
前記ハード化されたロジックブロックが、前記計算結果を前記メモリダイ又は前記ベースダイのオンダイメモリに選択的に記憶することと、を含む、
方法。
【請求項12】
前記データのサイズが前記オンダイメモリの容量と一致するとき、前記オンダイメモリに前記データを書き込むことを更に含む、請求項11に記載の方法。
【請求項13】
前記計算結果は、前記計算結果のデータサイズが前記オンダイメモリの容量と一致するとき、前記オンダイメモリに書き込まれる、請求項11に記載の方法。
【請求項14】
前記データが前記メモリダイに書き込まれるとき、前記オンダイメモリに前記データの一部を書き込むことと、
前記データの前記一部に後続の読み出しをサービスすることと、
を更に含む、請求項12に記載の方法。
【請求項15】
前記オンダイメモリは、前記メモリモジュールのアドレス範囲に含まれる、請求項12に記載の方法。
【請求項16】
計算のタイプに基づいて、構成可能コンピューティング基板ファブリック及び構成可能コンピューティング基板インタフェースを介して、前記構成可能コンピューティング基板と前記ハード化されたロジックブロックとの間で前記データを通信することを更に含み、前記構成可能コンピューティング基板ファブリックは、前記
ベースダイ上に設けられる、請求項11に記載の方法。
【請求項17】
前記データのサイズが前記オンダイメモリの容量と一致するとき、前記構成可能コンピューティング基板インタフェースを介して前記オンダイメモリに前記データを書き込むことを更に含み、前記オンダイメモリは、前記
ベースダイ上に設けられる、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、参照によって本明細書で完全に示されるようにその内容が以下に組み込まれる、2018年1月16日に出願された米国特許出願第15/872,943号の利益を主張する。
【背景技術】
【0002】
構成可能プラットフォームがデータセンタに配置されており、特定のクラスの作業負荷を加速させるための有望な候補のアーキテクチャである。しかしながら、それらの構成可能プラットフォームは典型的には、グラフィックプロセシングユニット(GPU)、特定のタイプの演算(不規則なデータフロー、標準的でないビット幅のデータタイプに対する計算など)のための他のタイプの計算密度の高いプロセシングユニットを凌ぐにすぎない。この欠点に対処するために、フィールドプログラマブルゲートアレイ(FPGA)ベンダは、中央処理装置(CPU)、浮動小数点(FP)装置、及びFPGAにおける同様のものを含むいくつかの計算要素タイプについてのハード化されたロジック、ハードコードロジックブロック、またはハード化された計算ブロック(集合的に「ハード化されたロジックブロック」)を組み込むことを開始している。しかしながら、これは、FPGAベンダが様々な市場区分に対してハードコードロジックブロックを様々に組み合わせて多種多様なデバイスを製造することを必要とする。そのようなハードコードロジックブロックでさえ、構成可能プラットフォームの効率性は、GPUなどの密度の高い計算エンジンから利点を得ることができるコードの区分を有する用途に対して次善的なものである。従来の技術は、ボードレベル(例えば、FPGAと共にCPU及びGPU)においてシステムに各々の種類の複数の個別デバイスを組み込む。この技術は、複数の個別デバイスが組み込まれ、調整される必要があるので、システムレベルのコスト及び複雑度を増大させる。別の従来の技術は、FPGAデバイス上でハード化されたロジックブロックを組み込む。この技術は、ハード化されたロジックブロックの種類を様々に組み合わせて多くの異なるデバイスを製造する必要があり、いずれかの特定の作業負荷に対して最適でないリスクをなおも抱える。
【発明の概要】
【0003】
添付図面と共に例として与えられる以下の説明から更なる詳細な理解を得ることができる。
【図面の簡単な説明】
【0004】
【
図1】いくつかの実施形態に従った、ニアメモリ
のハード化されたロジックを有する構成可能コンピューティング基板の実施例の高レベルブロック図である。
【
図2】いくつかの実施形態に従った、メモリスタックと統合されたベースダイの実施例の詳細なブロック図である。
【
図3】いくつかの実施形態に従った、ニアメモリ
のハード化されたロジックを有する構成可能コンピューティング基板の別の実施例のブロック図である。
【
図4】いくつかの実施形態に従った、ニアメモリ
のハード化されたロジックを有する構成可能コンピューティング基板の更なる別の実施例のブロック図である。
【
図5】いくつかの実施形態に従った、ニアメモリ
のハード化されたロジックを有する構成可能コンピューティング基板を使用する実施例のフローチャートである。
【
図6】1つ以上の開示される実施形態を実装することができる実施例のデバイスのブロック図である。
【発明を実施するための形態】
【0005】
構成可能コンピューティング基板または構成可能ロジックデバイス(集合的に「構成可能コンピューティング基板」)は、データセンタ配置及び機械学習の加速化のために最近では相当な注目を集めている。構成可能コンピューティング基板は、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブル論理デバイス(CPLD)、粗粒度再構成可能アレイ(CGRA)、ゲートアレイ、及び他の同様のプラットフォームまたはデバイスを指すことができる。しかしながら、そのような構成可能コンピューティング基板は、密度の高い算術的または複雑な制御フローにより計算の効率的なサポートのためにハード化されたロジックブロックにより拡張されることがある。すなわち、構成可能コンピューティング基板は典型的には、構成可能ロジックブロックを使用して効率的に実装することができない機能性に対してハード化されたロジックブロックを組み込む。
【0006】
本明細書で説明されるのは、追加の個別構成要素がFPGAデバイスなどの構成可能コンピューティング基板に追加されることを必要とすることなく、構成可能コンピューティング基板の能力を高めるためにニアメモリ及びインメモリのハード化されたロジックブロックを使用する構成可能コンピューティングシステムである。それらのハード化されたロジックブロックは、中央処理装置(CPU)、CPUコア、グラフィックプロセシングユニット(GPU)、GPUコア、ハードコードアクセラレータ、特定用途向け集積回路(ASIC)ブロック、実行エンジン、データ並列浮動小数点対応実行エンジン、及び他の同様のデバイスまたはロジック、並びにそれらの組み合わせを含むことができるが、それらに限定されない。ハード化されたロジックブロックは、メモリモジュールに組み込まれる。特に、ハード化されたロジックブロックは、メモリモジュールのベースもしくはロジックダイ、またはメモリダイ上にある。実装態様では、別個のダイは、ハード化されたロジックブロックを実装するためのメモリモジュールの一部として追加及び含まれてもよい。
【0007】
メモリモジュールは、構成可能コンピューティング基板とメモリモジュールとの間で通信するインタフェースまたは通信ロジックを含む。実装態様では、構成可能コンピューティング基板とメモリモジュールとの間のインタフェースは、インタフェースに互換性があり組み合わせて使用できるという条件で独自のものであり得る。実装態様では、インタフェースは、コモディティメモリモジュールの使用を可能にするジョイントエレクトロンデバイスエンジニアリングカウンシル(JEDEC)高帯域幅メモリ(HBM)などの標準であってもよい。インタフェースの標準化は、第三者メモリモジュールの使用を可能にすることによって柔軟性を高める。実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、スタティックランダムアクセスメモリ(SRAM)などのオンダイメモリまたは他の形式の非構成可能ロジックを含むことができる。別の実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、構成可能コンピューティング基板ロジックファブリックの一部を含むことができる。別の実装態様では、メモリモジュールは、様々な動作のためのより効率的な処理を可能にするために、SRAM及び構成可能コンピューティング基板ロジックファブリックの一部を含むことができる。
【0008】
メモリモジュールへのハード化されたロジックブロックの組み込みは、複数の市場区分に対してコア構成可能コンピューティング基板を再設計する必要性を回避し、メモリモジュールにおいて使用されるベースダイタイプの組み合わせを単に変えることによって、単一の構成可能コンピューティング基板が多くの市場に標的とされることを可能にする。
【0009】
本明細書で説明されるのは、メモリモジュールを構成し、メモリモジュールにおける構成可能コンピューティング基板とハード化されたロジックブロックとの間でデータを移動して戻すための例示的な実装態様である。本明細書で説明される明細書及び請求項の範囲から逸脱することなく、更なる組み合わせが想定される。
【0010】
図1は、特定の実装態様に従った、構成可能プラットフォーム100の実施例の高レベルブロック図を示す。構成可能プラットフォーム100は、メモリモジュール(複数可)120に接続され、または通信する(集合的に「接続された」)構成可能コンピューティング基板110を含む。メモリモジュール(複数可)120は、メモリダイ140と共に積層されたベースまたはロジックダイ130を有する3D積層メモリモジュールであってもよい。
【0011】
図2は、特定の実装態様に従った、
図1のメモリモジュール120のベースダイ130の拡大図を示す。ベースダイ130は、構成可能コンピューティング基板110と通信するための構成可能コンピューティング基板インタフェース200(
図2ではCCSインタフェース200として示される)を含む。構成可能コンピューティング基板インタフェース200は、メモリインタフェース210に接続され、メモリインタフェース210は次いで、積層メモリ、例えば、メモリダイ140に接続される。メモリインタフェース210は更に、
ハード化されたロジックブロック220に接続される。結果として、
ハード化されたロジックブロック220は、構成可能コンピューティング基板110に対するニアメモリまたはインメモリ構造である。
ハード化されたロジックブロック220は、1つ以上のロジックブロックを含むことができるが、説明を容易にするため、1つのロジックブロックのみが本明細書で言及される。
【0012】
動作的に、構成可能コンピューティング基板110は、構成可能コンピューティング基板インタフェース200及びメモリインタフェース210を介して、メモリダイ140にデータを書き込む。ハード化されたロジックブロック220は、メモリインタフェース210を介してメモリダイ140からデータを読み出す。ハード化されたロジックブロック220からの結果は、メモリインタフェース210を介してメモリダイ140に書き込まれる。構成可能コンピューティング基板110は次いで、構成可能コンピューティング基板インタフェース200及びメモリインタフェース210を介して、メモリダイ140から結果を読み出す。実装態様では、構成可能コンピューティング基板110及びハード化されたロジックブロック220は、メモリに/からデータを書き込み/読み出し、それに対して動作するために、またはその逆のために、メモリストア及び負荷動作を使用することができる。構成可能コンピューティング基板110とメモリモジュール120との間の構成可能コンピューティング基板インタフェース200は、産業標準メモリインタフェース(メモリモジュール120の外側で負荷/ストアのみが必要とされるような)または独自のものであってもよい。
【0013】
図3は、特定の実装態様に従った、構成可能プラットフォーム300の実施例の高レベルブロック図を示す。構成可能プラットフォーム300は、メモリモジュール320に接続され、または通信する(集合的に「接続された」)構成可能コンピューティング基板310を含む。メモリモジュール320は、積層メモリ340に接続されたベースダイ330を有する3D積層メモリモジュールであってもよい。ベースダイ330は、構成可能コンピューティング基板310と通信するための構成可能コンピューティング基板インタフェース350(
図3ではCCSインタフェース350として示される)を含む。構成可能コンピューティング基板インタフェース350は、メモリインタフェース360に接続され、メモリインタフェース360は次いで、積層メモリ340に接続される。メモリインタフェース360は更に、
ハード化されたロジックブロック370に接続される。
ハード化されたロジックブロック370は、1つ以上のロジックブロックを含むことができるが、説明を容易にするため、1つのロジックブロックのみが本明細書で言及される。構成可能コンピューティング基板インタフェース350は更に、メモリモジュール320のアドレス空間または範囲に含まれるベースダイ330内でオンダイメモリ380に接続される。非限定的な実施例では、オンダイメモリ380は、SRAMであってもよい。オンダイメモリ380は、積層メモリ340への読み出し及び書き込みを回避することができるので、データがオンダイメモリ380の容量と互換性を有するときにデータの効率的な処理をもたらす。実装態様では、オンダイメモリ380は、構成可能コンピューティング基板310上でプロビジョニングされてもよい。この実装態様では、構成可能コンピューティング基板インタフェース350は、メモリモジュール320において
ハード化されたロジックブロック370からのオンダイメモリ380のアドレス指定を可能にする。
【0014】
動作的に、構成可能コンピューティング基板310は、構成可能コンピューティング基板インタフェース350を介してデータを書き込む。ハード化されたロジックブロックと通信されることになるデータの量は、データが記憶される場所を決定する。データの量がオンダイメモリ380の容量と互換性を有する場合、構成可能コンピューティング基板310は次いで、構成可能コンピューティング基板インタフェース350を介して、オンダイメモリ380にデータを書き込む(オンダイメモリ380と関連付けられたアドレス空間を使用して)。データの量がオンダイメモリ380の容量と互換性を有しない場合、構成可能コンピューティング基板310は次いで、構成可能コンピューティング基板インタフェース350及びメモリインタフェース360を介して、積層メモリ340にデータを書き込む(積層メモリ340と関連付けられたアドレス空間を使用して)。ハード化されたロジックブロック370は、メモリインタフェース360を介して積層メモリ340から、またはオンダイメモリ380からのいずれかでデータを読み出す。ハード化されたロジックブロック220からの結果は、結果と関連付けられたデータの量に応じて、及び適切なアドレス空間を使用して、メモリインタフェース360を介して積層メモリ340に、またはオンダイメモリ380に書き込まれる。構成可能コンピューティング基板310は次いで、適切なアドレス空間を使用して、構成可能コンピューティング基板インタフェース350及びメモリインタフェース360を介して積層メモリ340から、または構成可能コンピューティング基板インタフェース350を介してオンダイメモリ380から結果を読み出す。いくつかの実装態様では、オンダイメモリ380は、積層メモリ340に対するキャッシュとして動作してもよく、積層メモリ340に書き込まれるデータのサブセットを自動で捕捉してもよく、そのデータへの後続の読み出しをサービスしてもよく、それによって、積層メモリ340へのアクセスを減少させる。
【0015】
図4は、特定の実装態様に従った、構成可能プラットフォーム400の実施例の高レベルブロック図を示す。構成可能プラットフォーム400は、メモリモジュール420に接続され、または通信する(集合的に「接続された」)構成可能コンピューティング基板410を含む。メモリモジュール420は、積層メモリ440に接続されたベースダイ430を有する3D積層メモリモジュールであってもよい。ベースダイ430は、構成可能コンピューティング基板410と通信するための構成可能コンピューティング基板インタフェース450(
図4ではCCSインタフェース450として示される)を含む。構成可能コンピューティング基板インタフェース450は、メモリインタフェース460に接続され、メモリインタフェース460は次いで、積層メモリ440に接続される。メモリインタフェース460は更に、
ハード化されたロジックブロック470に接続される。
ハード化されたロジックブロック470は、1つ以上のロジックブロックを含むことができるが、説明を容易にするため、1つのロジックブロックのみが本明細書で言及される。構成可能コンピューティング基板インタフェース450は更に、構成可能コンピューティング基板ファブリック480に接続される。構成可能コンピューティング基板ファブリック480は、ベースダイ430上で構成可能コンピューティング基板410の一部として作動し、または構成可能コンピューティング基板410の一部として見え、
ハード化されたロジックブロック470が、例えば、レジスタを使用することを可能にし、したがって、積層メモリ440に対して負荷及びストアを行う必要があることを回避する。これは、2つのデバイスの間のインタフェースにわたって構成可能コンピューティング基板の内部ファブリックを拡張することによって、構成可能コンピューティング基板410とメモリモジュール420との間のシームレスな通信を可能にする。この実装態様では、メモリモジュール420における
ハード化されたロジックブロック470は、
ハード化されたロジックブロック470が構成可能コンピューティング基板410自体の上に直接あるかのように、いずれかの方式において構成可能コンピューティング基板410の残りと設計的にインタフェース接続されてもよい。
【0016】
動作的に、構成可能コンピューティング基板410は、構成可能コンピューティング基板インタフェース450を介して、ハード化されたロジックブロック470と通信する。計算の性質またはタイプは、データが構成可能コンピューティング基板410からハード化されたロジックブロック470にどのように通信されるかを決定する。非限定的な例示的な実施例では、計算の性質は、構成可能コンピューティング基板ファブリック480が計算のいくつかのステップ(複数可)を実行し、ハード化されたロジックブロック470が次のステップ(複数可)を実行する(または、その逆)、ストリーミング計算を指すことができる。この例では、各々のデバイス上で行われるステップの間で収集される多くのデータは存在せず、データが利用可能になるにつれて、データは単純に1つのデバイスから他のデバイスに渡される。結果として、構成可能コンピューティング基板ファブリック480をハード化されたロジックブロック470のすぐ隣にさせることは、それらのタイプの計算におけるハンドオフを支援する。
【0017】
メモリモジュール420上の構成可能コンピューティング基板ファブリック480をハード化されたロジックブロック470とインタフェース接続するために使用することができるような計算である場合、データは、構成可能コンピューティング基板インタフェース450を介して構成可能コンピューティング基板410からハード化されたロジックブロック470に渡され、メモリモジュール420上の構成可能コンピューティング基板ファブリック480によって媒介される。メモリモジュール420上の構成可能コンピューティング基板ファブリック480をハード化されたロジックブロック470とインタフェース接続するために使用することができないような計算の性質である場合、データは次いで、構成可能コンピューティング基板インタフェース450及びメモリインタフェース460を介して、積層メモリ440に記憶される。ハード化されたロジックブロック470は、メモリモジュール420上の構成可能コンピューティング基板ファブリック480を通じてデータを受信し、またはメモリインタフェース460を介して積層メモリ440からデータにアクセスする。ハード化されたロジックブロック470からの結果は、計算の性質に応じて、メモリインタフェース460を介して積層メモリ440に書き込まれ、または構成可能コンピューティング基板インタフェース450を介して構成可能コンピューティング基板410に通信され、メモリモジュール420上の構成可能コンピューティング基板ファブリック480によって媒介される。構成可能コンピューティング基板410は次いで、必要に応じて、構成可能コンピューティング基板インタフェース450及びメモリインタフェース460を介して、積層メモリ440から結果を読み出し、または構成可能コンピューティング基板インタフェース450を介して直接、及びメモリモジュール420上の構成可能コンピューティング基板ファブリック480によって媒介されたそれらに対して動作する。
【0018】
実装態様では、構成可能プラットフォームは、メモリモジュールに接続された構成可能コンピューティング基板を含むことができ、メモリモジュールは、
図3に説明されたオンダイメモリ及び
図4に説明された構成可能コンピューティング基板ファブリックの両方を含む。そのような実装態様は、データサイズと計算の決定要因の性質との間の優先考慮事項を決定するために、データサイズ及び追加のロジックによる計算の性質の両方を考慮することができる。
【0019】
メモリモジュールのベースダイ上で実装されるとして本明細書で説明されるが、ハード化されたロジックブロック(複数可)は、メモリダイ上で、またはメモリモジュールに接続された別個のダイ上で実装されてもよい。
【0020】
1つのロジックダイ及び1つ以上のメモリダイから構成されたメモリ構成において採用されるとして本明細書で説明されるが、例えば、複数のロジックダイを含む他の物理的な明示が存在する。1つ以上のメモリダイを有するロジックダイの垂直なスタックとして説明されるが、別の実施形態は、ロジックのいくつかまたは全てをインタポーザ上で水平に別個のチップ上に置いてもよく、またはマルチチップモジュール(MCM)において共にパッケージ化してもよい。1つよりも多いロジックダイは、全体的なスタックまたはシステムに含まれてもよい。
【0021】
構成可能コンピューティング基板に対して実装されるとして本明細書で説明されるが、ニアメモリのハード化されたロジックブロックアーキテクチャは、本明細書で提供される説明または請求項の範囲から逸脱することなく、他のプラットフォームまたはデバイスと共に使用されてもよい。
【0022】
図5は、メモリモジュール(複数可)上で実装された
ハード化されたロジックブロック(複数可)と通信する構成可能コンピューティング基板を有する構成可能プラットフォームを使用したデータ処理のための実施例の高レベルフローチャート500である。構成可能コンピューティング基板は、メモリモジュールにデータを書き込む(ステップ510)。実装態様では、データは、メモリダイまたはメモリスタックに記憶される。別の実装態様では、データがオンダイメモリの容量と互換性を有するとき、データは、
ハード化されたロジックブロック(複数可)と関連付けられたオンダイメモリに記憶される。別の実装態様では、データは、メモリモジュールにおける構成可能ロジックファブリックの拡張内のロジックまたは記憶素子に記憶される。
ハード化されたロジックブロック(複数可)は、メモリモジュールからデータにアクセスする(ステップ520)。実装態様では、データは、メモリダイまたはメモリスタックから読み出される。別の実装態様では、データがオンダイメモリの容量と互換性を有するとき、データは、
ハード化されたロジックブロックと関連付けられたオンダイメモリから読み出される。別の実装態様では、データは、メモリモジュールにおける構成可能ロジックファブリックの拡張内から通信される。
ハード化されたロジックブロックからの結果は、メモリモジュールに書き込まれる(ステップ530)。実装態様では、結果は、メモリダイまたはメモリスタックに記憶される。別の実装態様では、結果と関連付けられたデータのサイズがオンダイメモリの容量と互換性を有するとき、結果は、
ハード化されたロジックブロックと関連付けられたオンダイメモリに記憶される。別の実装態様では、結果は、メモリモジュールにおける構成可能ロジックファブリックの拡張内のロジックまたは記憶素子に記憶される。構成可能コンピューティング基板は、メモリモジュールから結果にアクセスする(ステップ540)。実装態様では、結果は、メモリダイまたはメモリスタックから読み出される。別の実装態様では、結果と関連付けられたデータのサイズがオンダイメモリの容量と互換性を有するとき、結果は、
ハード化されたロジックブロック(複数可)と関連付けられたオンダイメモリから読み出される。別の実装態様では、結果は、メモリモジュールにおける構成可能ロジックファブリックの拡張内のロジックまたは記憶素子からアクセスされる。
【0023】
図6は、開示の1つ以上の特徴を実装することができる実施例のデバイス600のブロック図である。デバイス600は、例えば、コンピュータ、ゲーミングデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話、またはタブレットコンピュータを含むことができる。デバイス600は、プロセッサ602、メモリ604、記憶装置606、1つ以上の入力デバイス608、及び1つ以上の出力デバイス610を含む。デバイス600はまた任意選択で、入力ドライバ612及び出力ドライバ614を含むことができる。デバイス600が、
図6に示されない追加の構成要素を含むことができることを理解されよう。
【0024】
様々な代替手段では、プロセッサ602は、中央処理装置(CPU)、グラフィックプロセシングユニット(GPU)、同一のダイ上に位置するCPU及びGPU、または1つ以上のプロセッサコアを含み、各々のプロセッサコアは、CPUまたはGPUであってもよい。様々な代替手段では、メモリ604は、プロセッサ602と同一のダイ上に位置してもよく、またはプロセッサ602とは別個に位置する。メモリ604は、揮発性または不揮発性メモリ、例えば、ランダムアクセスメモリ(RAM)、動的RAM、またはキャッシュを含む。
【0025】
記憶装置606は、固定または着脱可能記憶装置、例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、またはフラッシュドライブを含む。入力デバイス608は、限定することなく、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、生体スキャナ、またはネットワーク接続(例えば、無線IEEE802信号の送信及び/もしくは受信のための無線ローカルエリアネットワークカード)を含む。出力デバイス610は、限定することなく、構成可能コンピューティング基板、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上の照明、アンテナ、またはネットワーク接続(例えば、無線IEEE802信号の送信及び/もしくは受信のための無線ローカルエリアネットワークカード)を含む。
【0026】
入力ドライバ612は、プロセッサ602及び入力デバイス608と通信し、プロセッサ602が入力デバイス608から入力を受信することを可能にする。出力ドライバ614は、プロセッサ602及び出力デバイス610と通信し、プロセッサ602が出力デバイス610に出力を送信することを可能にする。入力ドライバ612及び出力ドライバ614は、任意選択の構成要素であること、並びにデバイス600は、入力ドライバ612及び出力ドライバ614が存在しない場合に同一の方式において動作することに留意されよう。
【0027】
概して、構成可能コンピューティングプラットフォームは、構成可能コンピューティング基板及び構成可能コンピューティング基板に接続されたメモリモジュールを含む。メモリモジュールは、メモリダイ及び別のダイを含む。別のダイは、構成可能コンピューティング基板によって送信されたデータに対して動作するように構成されたハード化されたロジックブロック、構成可能コンピューティング基板と通信するように構成された構成可能コンピューティング基板インタフェース、並びにメモリダイ、構成可能コンピューティング基板インタフェース、及びハード化されたロジックブロックと通信するように構成されたメモリインタフェースを含む。実装態様では、ハード化されたロジックブロックは、中央処理装置(CPU)、CPUコア、グラフィックプロセシングユニット(GPU)、GPUコア、ハードコードアクセラレータ、特定用途向け集積回路ブロック、実行エンジン、及びデータ並列浮動小数点対応実行エンジンのうちの少なくとも1つである。実装態様では、別のダイは更に、構成可能コンピューティング基板インタフェース及びハード化されたロジックブロックと通信するように構成されたオンダイメモリを含む。実装態様では、オンダイメモリは更に、メモリインタフェースと通信するように構成され、メモリダイに対するキャッシュとして機能する。実装態様では、オンダイメモリは、メモリモジュールのアドレス範囲に含まれる。実装態様では、構成可能コンピューティング基板からのデータは、データのサイズがオンダイメモリの容量と実質的に一致するときにオンダイメモリに書き込まれる。実装態様では、ハード化されたロジックブロックからの結果は、結果のデータサイズがオンダイメモリの容量と実質的に一致するときにオンダイメモリに書き込まれる。実装態様では、ダイは更に、構成可能コンピューティング基板インタフェース及びハード化されたロジックブロックと通信するように構成された構成可能コンピューティング基板ファブリックを含む。実装態様では、構成可能コンピューティング基板は、計算のタイプに基づいて、構成可能コンピューティング基板ファブリックを介して、ハード化されたロジックブロックにデータを送信する。実装態様では、ダイは更に、構成可能コンピューティング基板インタフェース及びハード化されたロジックブロックと通信するように構成されたオンダイメモリ、並びに構成可能コンピューティング基板インタフェース及びハード化されたロジックブロックと通信するように構成された構成可能コンピューティング基板ファブリックを含む。実装態様では、ダイは、ロジックダイである。実装態様では、ダイは、メモリダイである。
【0028】
概して、構成可能コンピューティングプラットフォームを使用して計算する方法は、構成可能コンピューティング基板をメモリモジュールと接続することを含む。構成可能コンピューティング基板は、構成可能コンピューティング基板インタフェース及びメモリインタフェースを介して、メモリモジュールに含まれるメモリダイにデータを書き込み、構成可能コンピューティング基板インタフェース及びメモリインタフェースは、メモリモジュールに含まれるダイ上に設けられる。メモリダイからのデータは、メモリインタフェースを介して、ハード化されたロジックブロックによってアクセスされ、ハード化されたロジックブロックは、ダイ上に設けられる。実装態様では、結果は、メモリインタフェースを介して、ハード化されたロジックブロックによってメモリダイに書き込まれる。実装態様では、データは、データのサイズがオンダイメモリの容量と実質的に一致するときに構成可能コンピューティング基板インタフェースを介してオンダイメモリに書き込まれ、オンダイメモリは、ダイ上に設けられる。実装態様では、結果は、結果のデータサイズがオンダイメモリの容量と実質的に一致するときにハード化されたロジックブロックによってオンダイメモリに書き込まれる。実装態様では、データの一部は、データがメモリダイに書き込まれるときにオンダイメモリに書き込まれ、後続の読み出しは、データの一部にサービスされる。実装態様では、オンダイメモリは、メモリモジュールのアドレス範囲に含まれる。実装態様では、構成可能コンピューティング基板とハード化されたロジックブロックとの間のデータは、計算のタイプに基づいて、構成可能コンピューティング基板ファブリック及び構成可能コンピューティング基板インタフェースを介して通信され、構成可能コンピューティング基板ファブリックは、ダイ上に設けられる。実装態様では、データは、データのサイズがオンダイメモリの容量と実質的に一致するときに構成可能コンピューティング基板インタフェースを介してオンダイメモリに書き込まれ、オンダイメモリは、ダイ上に設けられる。実装態様では、結果は、結果のデータサイズがオンダイメモリの容量と実質的に一致するときにハード化されたロジックブロックによってメモリダイに書き込まれる。
【0029】
本明細書における開示に基づいて多くの変形が可能であることを理解すべきである。上記のとおり特徴及び要素が特定の組み合わせで説明されたが、各々の特徴または要素は、他の特徴及び要素なしに単独で、または他の特徴及び要素との様々な組み合わせで、もしくは他の特徴及び要素なしに使用されてもよい。
【0030】
提供される方法は、汎用コンピュータ、プロセッサ、またはプロセッサコアにおいて実装されてもよい。適切なプロセッサは、例として、汎用プロセッサ、特殊目的プロセッサ、従来型プロセッサ、デジタルシグナルプロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアと関連した1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、いずれかの他のタイプの集積回路(IC)、及び/または状態機械を含む。そのようなプロセッサは、処理されたハードウェア記述言語(HDL)命令の結果及びネットリストを含む他の中間データ(コンピュータ可読媒体に記憶されることが可能なそのような命令)を使用して製造工程を構成することによって製造されてもよい。そのような処理の結果は、マスクワークであってもよく、マスクワークは次いで、実施形態の態様を実装するプロセッサを製造する半導体製造工程において使用される。
【0031】
本明細書で提供される方法またはフローチャートは、適用可能な範囲で、汎用コンピュータまたはプロセッサによる実行のためにコンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアにおいて実装されてもよい。コンピュータ可読記憶媒体の例は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及び着脱可能ディスクなどの磁気媒体、磁気光学媒体、並びにCD-ROMディスク及びデジタル多用途ディスク(DVD)などの光学媒体を含む。