(57)【要約】      （修正有）【課題】向上した効率性を有する高効率ラーニングシステムのための異種加速器を提供する。【解決手段】システム１００は、タスクスケジューラにより、少なくとも部分的に制御される異種演算環境を含む。異種演算環境は、命令を実行するように構成された固定論理回路を含む固定処理ユニット、プロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む再プログラム可能な処理ユニット及び高帯域メモリダイのスタックを含む。高帯域メモリダイの各々はデータを格納し、再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供する。再プログラム可能な処理ユニットは、少なくとも部分的に高帯域メモリダイと積層され、タスクスケジューラは固定処理ユニット及び再プログラム可能な処理ユニットの間における演算タスクの分担をスケジューリングする。【選択図】図１
2019053734.tif 000002
【特許請求の範囲】
【請求項１】
タスクスケジューラにより、少なくとも部分的に制御される異種演算環境を含み、
前記異種演算環境は、
命令を実行するように構成された固定論理回路を含む処理ユニット（以下、固定処理ユニットという）と、
プロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む処理ユニット（以下、再プログラム可能な処理ユニットという）と、
高帯域メモリダイのスタックと、を含み、
前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、
前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層され、
前記タスクスケジューラは、前記固定処理ユニット及び前記再プログラム可能な処理ユニットの間における演算タスクの分担をスケジューリングするように構成される、装置。
【請求項２】
前記固定処理ユニットはグラフィクス処理ユニットを含む、請求項１に記載の装置。
【請求項３】
前記固定処理ユニットは遠距離直接メモリアクセス（ＲＤＭＡ、ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓｅｓ）を通じて前記高帯域メモリダイに格納されたデータにアクセスするように構成され、
前記再プログラム可能な処理ユニットは前記固定処理ユニットから遠距離直接メモリアクセスをサービスするように構成された直接メモリアクセス回路を含み、
前記遠距離直接メモリアクセスは前記高帯域メモリダイに対して発生する、請求項１に記載の装置。
【請求項４】
前記固定処理ユニットは前記高帯域メモリダイからのデータを臨時格納するように構成されたレジスタメモリを含む、請求項１に記載の装置。
【請求項５】
タスクスケジューラは前記固定処理ユニットがタスクの第１部分を実行し、前記再プログラム可能な処理ユニットが前記タスクの第２部分を実行するように構成され、
前記固定処理ユニットは前記タスクの実行を中断し、フラッグ基盤の同期化プロトコルに少なくとも部分的に基づいて前記タスクの実行を前記再プログラム可能な処理ユニットにオフロード（ｏｆｆｌｏａｄ）するのを待機するように構成された、請求項１に記載の装置。
【請求項６】
前記固定処理ユニットは前記再プログラム可能な処理ユニットをポーリング（ｐｏｌｌｉｎｇ）し、前記再プログラム可能な処理ユニットが前記タスクを実行する準備になったかを判定するように構成された、請求項５に記載の装置。
【請求項７】
前記タスクスケジューラは前記再プログラム可能な処理ユニットが前記タスクを実行する準備になったことを前記固定処理ユニットに知らせるように構成された、請求項５に記載の装置。
【請求項８】
中央処理ユニットにより、少なくとも部分的に制御される異種演算環境を含み、
前記異種演算環境は、
固定処理ユニット及び再プログラム可能な処理ユニットの間において演算タスクを割り当てるように構成された前記中央処理ユニットと、
命令を実行するように構成された固定論理回路を含む前記固定処理ユニットと、
プロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む前記再プログラム可能な処理ユニットと、
高帯域メモリダイのスタックと、
前記固定処理ユニットに専用留保されたバッファ領域及び前記再プログラム可能な処理ユニットに専用留保されたバッファ領域を含む中央メモリを包含し、
前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、
前記再プログラム可能な処理ユニットに少なくとも部分的に前記高帯域メモリダイが積層される、装置。
【請求項９】
前記中央処理ユニットは第１タスクを、実行のため、前記固定処理ユニットに割り当てるように構成され、
前記固定処理ユニットは前記第１タスクの実行が少なくとも部分的に完了された場合、前記中央処理ユニットにデータを複写するように構成され、
前記中央処理ユニットは第２タスクを、実行のため、前記再プログラム可能な処理ユニットに割り当て、前記データを前記再プログラム可能な処理ユニットにおいて可用にするように構成された、請求項８に記載の装置。
【請求項１０】
前記中央処理ユニットは前記データを前記固定処理ユニットに専用留保された前記バッファ領域から前記再プログラム可能な処理ユニットに専用留保された前記バッファ領域に複写するように構成された、請求項９に記載の装置。
【請求項１１】
前記中央処理ユニットは少なくとも部分的に前記固定処理ユニット及び前記再プログラム可能な処理ユニット間で転送されたデータのタイミングを制御するように構成された、請求項８に記載の装置。
【請求項１２】
前記再プログラム可能な処理ユニットは前記データに対するタスクが実行される前に、前記データを前記中央メモリから前記高帯域メモリダイに複写するように構成された、請求項８に記載の装置。
【請求項１３】
前記再プログラム可能な処理ユニットは、前記データを前記中央メモリから前記高帯域メモリダイに複写する前に、トリガイベントが発生されたかを判定するように構成された、請求項１２に記載の装置。
【請求項１４】
前記異種演算環境は、前記固定処理ユニットが前記高帯域メモリダイに直接的にアクセスしないように構成された、請求項８に記載の装置。
【請求項１５】
異種演算環境の処理ユニットに演算タスクを割り当てるように構成された中央処理ユニットと、
データを格納するように構成されたシステムメモリと、
前記異種演算環境を含む異種アクセラレータのマルチチップモジュールを含み、
前記異種アクセラレータのマルチチップモジュールは、
命令を実行するように構成された固定論理回路を含む固定処理ユニットと、
プロセッシングインメモリ（ｐｒｏｃｅｓｓｉｎｇ−ｉｎ−ｍｅｍｏｒｙ）の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む再プログラム可能な処理ユニットと、
高帯域メモリダイのスタックを含み、
前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、
前記再プログラム可能な処理ユニットに少なくとも部分的に前記高帯域メモリダイが積層される、システム。
【請求項１６】
前記固定処理ユニットは、前記固定処理ユニットに割り当てられたタスクの前記実行が少なくとも部分的に完了された場合、前記システムメモリにデータを複写するように構成され、
前記再プログラム可能な処理ユニットは、データを要求する前記再プログラム可能な処理ユニットに割り当てられたタスクを実行する前に、前記データを前記システムメモリから前記高帯域メモリダイに複写するように構成された、請求項１５に記載のシステム。
【請求項１７】
前記固定処理ユニットは前記データを遠距離直接メモリアクセス（ｒｅｍｏｔｅ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓｅｓ）を通じて前記システムメモリに複写するように構成された、請求項１６に記載のシステム。
【請求項１８】
前記再プログラム可能な処理ユニットは、前記システムメモリから前記高帯域メモリダイにデータを複写する前に、トリガイベントが発生されたと判定するように構成された、請求項１５に記載のシステム。
【請求項１９】
前記固定処理ユニットはグラフィクス処理ユニットを含み、
前記再プログラム可能な処理ユニットはＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を含む、請求項１５に記載のシステム。
【請求項２０】
前記中央処理ユニットはタスクの第１部分を、実行のため、前記固定処理ユニットに割り当て、前記タスクの第２部分を、実行のため、前記再プログラム可能な処理ユニットに割り当てるように構成され、
前記固定処理ユニットは前記タスクの前記第１部分が完了された時刻及び前記タスクの第２部分が完了された時刻の間にタスクの実行を停止（ｈａｌｔ）するように構成された、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的な回路に関するものである。特に、本発明は高効率ラーニングシステムのためのヘテロジニアスアクセラレータ（ｈｅｔｅｒｏｇｅｎｅｏｕｓ  ａｃｃｅｌｅｒａｔｏｒ、異種加速器）に係る装置及びシステムに関する。
【背景技術】
【０００２】
ディープニューラルネットワーク（ｄｅｅｐ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）のようなラーニングシステム（ｌｅａｒｎｉｎｇ  ｓｙｓｔｅｍ）のごとく、最近生まれたアプリケーションは他のデータセットをトレーニングして、高精度で学習するために大量の演算（ｃｏｍｐｕｔａｔｉｏｎ、ｃｏｍｐｕｔｉｎｇ、以下、「コンピューティング」とも言う）能力及びメモリ能力を必要とする。さらに、高性能コンピューティング、グラフィクス作業（ｏｐｅｒａｔｉｏｎ）などのアプリケーションがデータ集中的及び演算集中的になるにつれて、エネルギー効率性及び低レイテンシが重要になる。
「プロセッシングインメモリ（ｐｒｏｃｅｓｓｉｎｇ−ｉｎ−ｍｅｍｏｒｙ）」として知られた技法は、低電力技術プロセスだけではなくデータが存在する場所により近接したメモリ（例えば、動的ランダムアクセスメモリ（ＤＲＡＭ（ｄｙａｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）など）とロジックを混載したダイにおける複雑な作業をスケジューリングして追加的な演算能力を提供することにより、斯かる難問に挑戦する能力を含む。
【０００３】
高帯域メモリ（ＨＢＭ：  Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｙ）は３次元積層メモリ（例えば、ＤＲＡＭ）のための高性能ランダムアクセスメモリ（ＲＡＭ）インタフェースである。それは、多くのデータをアクセスするネットワーク装置及び高性能グラフィクスアクセラレータと共に使用される。ＨＢＭは、一般的に他のＤＲＡＭ技術（例えば、ＤＤＲ４、ＧＤＤＲ４など）より、実質的により小さいフォームファクタ（ｆｏｒｍ  ｆａｃｔｏｒ）においてより少ない電力を消費しながら、より広い帯域幅を達成する。これは、多数のメモリダイ（例えば、８個）を一緒に積層することにより、達成する。このような積層は、メモリコントローラを含む選択的な基本ダイ（ｏｐｔｉｏｎａｌ  ｂａｓｅ  ｄｉｅ）を包含できる。ダイは、ＴＳＶ（Ｔｈｒｏｕｇｈ  Ｓｉｌｉｃｏｎ  Ｖｉａｓ、シリコン貫通ビア）及びマイクロバンプ（ｍｉｃｒｏ  ｂｕｍｐ）により連結される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国登録特許第８８７４９４３Ｂ２号公報
【特許文献２】米国登録特許第９３０４７３０Ｂ２号公報
【特許文献３】米国登録特許第２０１４００４０５３２Ａ１号公報
【特許文献４】米国公開特許第２０１４０１８１４５３Ａ１号公報
【特許文献５】米国公開特許第２０１６０３７９１１５Ａ１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、向上された効率性を有する高効率ラーニングシステムのための異種加速器を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一実施例によると、例示的な実施例は、タスクスケジューラにより、少なくとも部分的に制御される異種演算環境（ｈｅｔｅｒｏｇｅｎｅｏｕｓ＿ｃｏｍｐｕｔｉｎｇ＿ｅｎｖｉｒｏｎｍｅｎｔ）を含み、前記異種演算環境は命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように構成された固定論理回路を含む処理ユニット（以下、固定処理ユニットという）、プロセッシングインメモリ（ｐｒｏｃｅｓｓｉｎｇ−ｉｎ−ｍｅｍｏｒｙ）の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む処理ユニット（以下、再プログラム可能な処理ユニットという）、及び高帯域メモリダイのスタックを含み、前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層され、前記タスクスケジューラは、前記固定処理ユニット及び前記再プログラム可能な処理ユニットの間における演算タスクの分担をスケジューリングするように構成される装置を提供する。
【０００７】
本発明の他の実施例によると、他の例示的な実施例は、中央処理ユニットにより、少なくとも部分的に制御される異種演算環境を含み、前記異種演算環境は固定処理ユニット及び再プログラム可能な処理ユニットの間において演算タスクを割り当てるように構成された前記中央処理ユニット、命令を実行するように構成された固定論理回路を含む前記固定処理ユニット、プロセッシングインメモリ（ｐｒｏｃｅｓｓｉｎｇ−ｉｎ−ｍｅｍｏｒｙ）の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む前記再プログラム可能な処理ユニット、高帯域メモリダイのスタック、及び前記固定処理ユニットに専用留保された（ｒｅｓｅｒｖｅｄ）バッファ領域及び前記再プログラム可能な処理ユニットに専用留保されたバッファ領域を含む中央メモリを包含し、前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層される装置を提供する。
【０００８】
本発明の他の実施例によると、もう一つの実施例は異種演算環境の処理ユニットに演算タスクを割り当てるように構成された中央処理ユニット、データを格納するように構成されたシステムメモリ、及び前記異種演算環境を含む異種アクセラレータのマルチチップモジュールを含むシステムを提供する。
前記異種アクセラレータのマルチチップモジュールは、命令を実行するように構成された固定論理回路を含む固定処理ユニット、プロセッシングインメモリ（ｐｒｏｃｅｓｓｉｎｇ−ｉｎ−ｍｅｍｏｒｙ）の機能を制御する命令を含む命令を実行するように構成された再プログラム可能な論理回路を含む再プログラム可能な処理ユニット、及び高帯域メモリダイのスタックを含み、前記高帯域メモリダイの各々はデータを格納し、前記再プログラム可能な処理ユニットにより制御可能なプロセッシングインメモリの機能を提供するように構成され、前記再プログラム可能な処理ユニットは少なくとも部分的に前記高帯域メモリダイと積層される。
【０００９】
１つ又はそれ以上の具現の詳細な説明は、添付された図面及び以下の詳細な説明で掲載される。他の特徴は詳細な説明、図面及び特許請求の範囲から表されることができる。
【００１０】
特許請求の範囲でもう少し完全に説明されるように、実質的に図面の少なくとも１つと共に説明されるか、又は図示されるような高効率のラーニングシステムのための異種アクセラレータのシステム及び方法のためのシステム及び／又は方法が提供される。
【発明の効果】
【００１１】
本発明の実施例によると、高帯域メモリダイのスタックに積層・直結された再プログラム可能な処理ユニットと固定処理ユニットとに対してＣＰＵ（タスクスケジューラ）によりタスクが振り分けられ、好ましくは、各ユニットの入出力データが遠距離直接メモリアクセス（ＲＤＭＡ）により高速で転送されるので、向上された効率性を有するラーニングシステムのための異種アクセラレータが提供される。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明によるシステムの例示的な実施例のブロック図である。
【図２】図２は、本発明によるシステムの例示的な実施例のブロック図である。
【図３】図３は、本発明によるシステムの例示的な実施例のブロック図である。
【図４】図４は、本発明によるシステムの例示的な実施例のブロック図である。
【図５】図５は、本発明によるシステムの例示的な実施例のブロック図である。
【図６】図６は、本発明によるシステムの例示的な実施例のブロック図である。
【図７】図７は、本発明の原理によって形成された装置を包含できる情報処理システムの例示的なブロック図である。
【００１３】
多様な図面で類似した参照記号は類似した構成を示す。
【発明を実施するための形態】
【００１４】
多様な例示的な実施例が一部の例示的な実施例を示す添付された図面を参照してさらに詳細に説明される。しかしながら、本文に開示された内容は多様な他の形態で具現されることができ、本文に説明された例示的な実施例に制限されるものと解釈されてはならない。代わりに、このような例示的な実施例は詳細な説明が完全であり、当業者により本発明の技術的思想が完全に伝達されることができるように提供される。図面において、階層及び領域のサイズ及び相対的なサイズは明確性のために誇張される。
【００１５】
構成又は階層が他の構成又は階層と「連結された（ｏｎ，  ｃｏｎｎｅｃｔｅｄ  ｔｏ，  ｏｒ  ｃｏｕｐｌｅｄ  ｔｏ）」ものと示される場合、これは直接的に（ｄｉｒｅｃｔｌｙ）他の構成又は階層と連結されうるか又は１つ以上の中間（ｉｎｔｅｒｖｅｎｉｎｇ）の構成又は階層が存在できると理解されるはずである。対照的に、構成が他の構成又は階層と「直接的に連結された（ｄｉｒｅｃｔｌｙ  ｏｎ，  ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ  ｔｏ，  ｏｒ  ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ  ｔｏ）」ものと示される場合、中間の構成又は階層が存在しない。類似した参照番号は、全体的に類似した構成を示す。本文で使用されるように「及び／又は（ａｎｄ／ｏｒ）」は、連関されて羅列された目録中で１つ又はそれ以上の組合せの一部及び全部を含む。
【００１６】
「第１（ｆｉｒｓｔ）」、「第２（ｓｅｃｏｎｄ）」、「第３（ｔｈｉｒｄ）」などの用語は多様な要素（ｅｌｅｍｅｎｔ）、構成部品（ｃｏｍｐｏｎｅｎｔ）、領域、階層、及び／又は区域を説明するために本文で使用されるが、このような要素、構成部品、領域、階層、及び／又は区域は、このような用語に限定されないことがよく理解されるはずである。斯かる用語は１つの要素、構成部品、領域、階層又は区域を他の一つの要素、構成部品、領域、階層、又は区域から区分するためにだけ使用される。即ち、以下で記載される第１要素、構成部品、領域、階層、又は区域は本発明の思想及び範囲から逸脱せずに第２要素、構成部品、領域、又は区域と称することができる。
【００１７】
「〜の下（ｂｅｎｅａｔｈ，  ｂｅｌｏｗ，  ｌｏｗｅｒ，  ｕｎｄｅｒ」，「〜の上（ａｂｏｖｅ，  ｕｐｐｅｒ）」などの空間的に相対的な用語（ｓｐａｔｉａｌｌｙ  ｒｅｌａｔｉｖｅ  ｔｅｒｍｓ）は、図面で図示された他の一つの要素又は特徴と１つの要素又は特徴との関連性を容易に説明するため、本文で使用される。空間的に相対的な用語は、図面に図示された指向性に追加的に作業又は使用で、装置の他の指向性（ｏｒｉｅｎｔａｔｉｏｎｓ）を含むと意図されることをよく理解されるはずである。例えば、図面で装置が上下反転される場合、他の要素又は特徴の「下（ｂｅｌｏｗ  ｏｒ  ｂｅｎｅａｔｈ  ｏｒ  ｕｎｄｅｒ）」として説明された要素は、他の要素又は特徴の「上（ａｂｏｖｅ）」に向くはずである。即ち、「下（ｂｅｌｏｗ，  ｕｎｄｅｒ）」の例示的な用語は上及び下の方向を全て包含できる。装置が他の方向（例えば、９０度回転するか、又は他の方向）に指向される場合、本文で使用される空間的に相対的な説明は、その指向方向に合わせて解釈されなければならない。
【００１８】
同様に、「ハイ（ｈｉｇｈ）」、「ロー（ｌｏｗ）」、「（プルアップ（ｐｕｌｌ  ｕｐ）」、「プルダウン（ｐｕｌｌ  ｄｏｗｎ）」、「１」、「０」などの電気的な用語は、図面で図示されたように、他の電圧レベル、他の構成又は特徴と相対的な電圧レベル及び電流を表す説明の便宜のために詳細な説明で使用される。電気的に相対的な用語は、図面に図示された電圧又は電流に追加的に使用又は作業において、装置の他の基準電圧を含むことと意図される。例えば、図面で装置又は信号が反転されるか又は他の基準電圧、電流、又は電荷を使用する場合、「ハイ（ｈｉｇｈ）」又は「（プルアップ（ｐｕｌｌ  ｕｐ）」で説明される構成は、新たな基準電圧又は電流と比較して「ロー（ｌｏｗ）」又は「プルダウン（ｐｕｌｌ  ｄｏｗｎ）」である。即ち、「ハイ（ｈｉｇｈ）」の例示的な用語は、相対的に低いか又は高い電圧又は電流を全て包含できる。装置は、他の電気的なフレームの基準に基づき、詳細な説明で使用される電気的に相対的な説明により解釈できる。
【００１９】
詳細な説明で使用される用語は、専ら特定の実施例に対する説明のためであり、本発明の限定を意図しない。詳細な説明で使用されるように、単数形態（ｓｉｎｇｕｌａｒ  ｆｏｒｍｓ）は、明確に別なものとして定義されない限り、複数形態（ｐｌｕｒａｌ  ｆｏｒｍｓ）を含むように意図される。「包含する（ｃｏｍｐｒｉｓｅ）」の用語は、詳細な説明で使用される場合、列挙された特徴、ステップ、作業、要素及び／又は構成部品の存在を特定するが、１つ又はそれ以上の他の特徴、ステップ、作業、要素、構成部品、及び／又はそれらのグループの追加又は存在を排除しない。
【００２０】
例示的な実施例が、理想的な実施例（及び中間構造）の例示的な図面である断面図を参照して詳細な説明で述べられる。このように、例えば、製造技術及び／許容誤差の結果としての図面の形状からの変形が予想されなければならない。即ち、例示的な実施例は、詳細な説明に図示された特定の形状の領域に限定されるものとして解釈されてはならないし、例えば、製造からもたらされる形状の偏差を包含しなければならない。例えば、直四角形で図示された注入された領域は一般的に、注入された領域から注入されない領域への二進変化であるよりは、丸い又は曲線のフィーチャー（ｆｅａｔｕｒｅ）及び／又はエッジ（ｅｄｇｅ）での注入濃度の勾配を有するであろう。同様に、注入によって形成されたベリード（ｂｕｒｉｅｄ）領域はベリード領域と注入が起こる表面間の領域に若干の注入をもたらす。従って、図面に図示された領域は、本質的に概略的であり、その形状はデバイスの領域の実際の形状を説明するためではないし、本発明の範囲を制限しない。
【００２１】
別に定義されない限り、本文で使用される全ての用語（技術的及び科学的用語を包含する）は当業者により共通的に理解される意味を有する。なお、一般的に使用される辞典で定義されたような用語は、関連技術及び／又は本明細書と関連してその意味と一致する意味を有すると解釈されるべきであり、本文で定義されない限り、理想的や過度に形式的な意味で解釈されてはならない。
【００２２】
以下で、例示的な実施例が添付された図面を参照して詳細に説明されるであろう。
【００２３】
図１は、本発明によるシステム１００の例示的な実施例のブロック図である。図示された実施例で、システム１００は複数の集積回路（ＩＣ：  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）ダイを包含できる。斯かる実施例で、ＩＣはマルチチップモジュール（ＭＣＭ：  Ｍｕｌｔｉ−Ｃｈｉｐ  Ｍｏｄｕｌｅ）として配列される。
【００２４】
しばしば、ＭＣＭは、通常、統一基板（ｕｎｉｆｙｉｎｇ  ｓｕｂｓｔｒａｔｅ）上に複数の集積回路（ＩＣ又はチップ）、半導体ダイ、及び／又は他の個別部品（ｄｉｓｃｒｅｔｅ＿ｃｏｍｐｏｎｅｎｔ）が集積されて、使用時には単一の構成部品（例えば、より大きいＩＣ）のように扱われる、複数の導電端子、即ちピン（ｐｉｎ）を含むパッケージのような電子組立体（製品）であり得る。しかし、上述された構成は単に説明のための実施例であり、本発明はこれに限定されない。
【００２５】
図示された実施例においてシステム１００は、ＨＢＭダイ１１２上に形成された高帯域幅のメモリ（ＨＢＭ：  Ｈｉｇｈ  Ｂａｎｄｗｉｄｔｈ  Ｍｅｍｏｒｉｅｓ）のスタック１０８を包含する。上述されたように、ＨＢＭは、データを格納（ｓｔｏｒｅ）してメモリアクセスが標準ＤＲＡＭ又はシステムメモリよりも速く且つ効率的となるように構成できる。一実施例において、ＨＢＭダイ１１２はプロセッシングインメモリ機能（ｐｒｏｃｅｓｓｉｎｇ−ｉｎ−ｍｅｍｏｒｙ  ｆｕｎｃｔｉｏｎａｌｉｔｙ）を提供するように構成される。多様な実施例において、ＨＢＭダイ１１２は互いに垂直的に、即ち一つのＨＢＭダイ１１２が他の一つの上方に積層されているので、ＴＳＶ（Ｔｈｒｏｕｇｈ−Ｓｉｌｉｃｏｎ  Ｖｉａｓ）、マイクロバンプ又は他の相互チップ接続（図示せず）を通じてＨＢＭダイ１１２間で通信を遂行できる。
【００２６】
多様な実施例において、ＨＢＭダイ１１２のスタック１０８は、ＨＢＭコントローラダイ１１０を包含する。ＨＢＭコントローラダイ１１０は、標準メモリアクセスの調整機能（例えば、ページテーブル変換、アドレスマッピング、ライト（ｗｒｉｔｅ）の組合せなど）を遂行するように構成される。多様な実施例において、ＨＢＭコントローラダイ１１０はＨＢＭダイ１１２向けに特化したメモリ管理ユニット（ＭＭＵ：  Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）を包含する。
【００２７】
図示された実施例において、システム１００はプログラム可能か又は再プログラム可能な処理ユニット１０６（ＰＰＵ又はＲＰＵ：  Ｐｒｏｇｒａｍｍａｂｌｅ  ｏｒ  Ｒｅｐｒｏｇｒａｍｍａｂｌｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、図１ではＲＰＵで代表）を包含する。多様な実施例で、ＲＰＵ１０６は動的にプログラムされて多様な機能を遂行するか又は特定の命令を実行するロジック回路を包含すると。一実施例において、ＲＰＵ１０６はＨＢＭダイ１１２のプロセッシングインメモリの機能を制御する命令を含む命令を実行するように構成される。多様な実施例において、ＲＰＵ１０６はＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、  ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＬＵＴ（Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）、  ＰＡＬ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｒａｙ  Ｌｏｇｉｃ）などの、しかしこれに限定されないデバイスを包含できる。上述の内容は、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００２８】
多様な実施例において、ＲＰＵ１０６は、ＨＢＭダイ１１２のスタック１０８の下方に、又はＨＢＭダイ１１２と共に積層される。斯かる実施例で、ＲＰＵ１０６は、スタック１０８と直接的に通信するように構成され、スタック１０８へのアクセスをシステム１００の他の構成部品（例えば、固定的なＧＰＵ１０４）へ提供するように構成されうる。
【００２９】
多様な実施例において、ＲＰＵ１０６は粗粒子（ｃｏａｒｓｅ  ｇｒａｉｎ）な、機能即ち命令実行の再構成性（ｒｅｃｏｎｆｉｇｕｒａｂｉｌｉｔｙ）を提供できる。他の実施例で、ＲＰＵ１０６は微粒子（ｆｉｎｅ  ｇｒａｉｎ）な、機能即ち命令実行の再構成性を提供できる。一部の実施例で、ＲＰＵ１０６により遂行される作業は、例えば、しかしこれに限定されないが、乗加算演算（ｍｕｌｔｉｐｌｙ−ａｃｃｕｍｕｌａｔｅ  ｏｐｅｒａｔｉｏｎｓ）、データシャフリング  （ｄａｔａ  ｓｈｕｆｆｌｉｎｇ）、データ転換  （ｄａｔａ  ｔｒａｎｓｐｏｓｉｔｉｏｎ）などを包含する、ＨＢＭダイ１１２におけるプロセッシングインメモリの機能制御を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。多様な実施例で、ＲＰＵ１０６自身及びＲＰＵ１０６のＨＢＭスタック１０８への物理的に近接したアクセスは、固定処理ユニット又は回路、若しくは、相対的に遠隔配置された処理ユニット又は回路より、命令（ｉｎｓｔｒｕｃｔｉｏｎ）、タスク（ｔａｓｋ）、又は作業（ｏｐｅｒａｔｉｏｎ）のより高速実行を提供できる。
【００３０】
図示された実施例において、システム１００は変更不能な、即ち固定処理ユニット１０４（ＦＰＵ：  Ｆｉｘｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を包含する。（図中では、ＦＰＵの代表例である後述のＧＰＵを並記してＦＰＵ／ＧＰＵと記載。）このような実施例において、ＦＰＵ１０４は多様な命令を実行するか又はロジック作業を遂行するように構成される。ＦＰＵ１０４は、ＦＰＵ１０４の製造中に静的に形成されて変更不能即ち固定されている論理回路を包含する。但し、多様な構成の設定により固定論理回路の機能具現方法を変更できる。
【００３１】
多様な実施例において、ＦＰＵ１０４は、例えばグラフィクス処理ユニット（ＧＰＵ：  Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、暗号化処理ユニット（ｅｎｃｒｙｐｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、  物理処理ユニット（ｐｈｙｓｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、マシンラーニング処理ユニット  （ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）  などの特化された処理ユニット（ｓｐｅｃｉａｌｉｚｅｄ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明がこれに限定されない。多様な実施例において、ＦＰＵ１０４はスタック１０８と直接的に通信しないように（積層ではなく）並置される。
【００３２】
多様な実施例において、システム１００はインタポーザ（ｉｎｔｅｒｐｏｓｅｒ）ダイ又はレイヤ（ｌａｙｅｒ）１２０を包含する。斯かる実施例で、インタポーザ１２０はシリコン（ｓｉｌｉｃｏｎ）又は他の基板（ｓｕｂｓｔｒａｔｅ）を包含でき、ＦＰＵ１０４及びＲＰＵ１０６（及びスタック１０８）の間の通信経路を提供する。斯かる実施例で、インタポーザ１２０はＲＰＵ１０６及びＦＰＵ１０４の下方にあって、ＲＰＵ１０６及びＦＰＵ１０４と互いに連結される。
【００３３】
図示された実施例において、システム１００はパッケージ基板ダイ１２２を包含する。パッケージ基板ダイ１２２は、他の構成部品（ダイ）間、及びシステム１１０の外部との間を通信するように構成される。多様なダイ（１２２、１２０，１０４，１０６など）は、複数のはんだバンプ（ｓｏｌｄｅｒ  ｂｕｍｐｓ）１２４により連結される。
【００３４】
図２は、本発明によるシステム２００の例示的なブロック図である。図示された実施例で、システム２００は複数の集積回路（ＩＣ）ダイを包含できる。斯かる実施例で、ＩＣはマルチチップモジュール（ＭＣＭ）として配列される。
【００３５】
図示された実施例において、システム２００は上述されたように、ＨＢＭダイ１１２及びＨＢＭコントローラダイ１１０からなるスタック１０８、ＲＰＵ１０６、ＦＰＵ１０４、インタポーザ１２０及びパッケージ基板１２２を包含する。図示された実施例において、複数の可能な追加されたダイ又は構成部品（ｃｏｍｐｏｎｅｎｔ）が図示される。多様な実施例で、１つ又はそれ以上の斯かるダイが、以下で説明されるように、システム２００に包含される。他の実施例で、一つ又はそれ以上の斯かるダイ又は構成部品は、他のＩＣパッケージの部分として又はより大きいシステムの部分として包含されることができる。例えば、中央処理ユニット（ＣＰＵ）及び／又はシステムメモリがデスクトップ（ｄｅｓｋｔｏｐ）又はラップトップコンピュータ（ｌａｐｔｏｐ  ｃｏｍｐｕｔｅｒ）の部分として包含されうる。
【００３６】
多様な実施例において、システム２００は中央処理ユニット（ＣＰＵ：  Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を包含する。斯かる実施例で、ＣＰＵ２０２はダイに包含され、マイクロプロセッサ及び／又は複数のプロセッサコアを包含する。ＣＰＵ２０２は命令を処理して管理するシステムの主構成部品（ｐｒｉｍａｒｙ  ｃｏｍｐｏｎｅｎｔ）である。ＣＰＵ２０２は、ＯＳ（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ、オペレーティングシステム）及びアプリケーションの実行を主に担当する。多様な実施例で、ＣＰＵ２０２はＡＲＭ社又はＩｎｔｅｌ社により生産されるような汎用演算構造（ｇｅｎｅｒａｌ  ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ａｒｃｈｉｔｅｃｔｕｒｅ）を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明の範囲はこれに限定されない。図示された実施例において、ＣＰＵ２０２はシステム２００の異種コンピューティング環境（ｈｅｔｅｒｏｇｅｎｅｏｕｓ  ｃｏｍｐｕｔｉｎｇ  ｅｎｖｉｒｏｎｍｅｎｔ）を制御し、ＦＰＵ１０４及びＲＰＵ１０６の間で演算作業を分割して割り当てるように構成される。
【００３７】
多様な実施例において、システム２００はＣＰＵメモリダイ２１２を包含する。ＣＰＵメモリダイ２１２はＣＰＵ２０２の上部に積層されうる。斯かる実施例で、ＣＰＵメモリはデータを格納するように構成され、ＣＰＵ２０２から直接的にアクセスできる。一部の実施例で、ＣＰＵメモリ２１２はシステムメモリを包含する。他の実施例で、システムメモリ（例えば、ＤＲＡＭ）は、システム２００の外部に位置する。
【００３８】
多様な実施例において、システム２００はＦＰＵメモリダイ２１４を包含する。一部の実施例で、ＦＰＵメモリダイはＦＰＵの上方に積層される。このような実施例で、ＦＰＵメモリ２１４はデータを格納するように構成され、ＦＰＵ１０４から直接的にアクセスできる。
【００３９】
多様な実施例において、システム２００の三つのプロセッサ（ＲＰＵ１０６、ＦＰＵ１０４及びＣＰＵ２０２）には、多様なコンピューティングタスク、命令、又はカーネル（ｋｅｒｎｅｌ）の実行がそれらの間に割り当てられる。このような脈絡で、「カーネル（ｋｅｒｎｅｌ）」は、タスク又は定義可能なサブタスク（ｄｅｆｉｎａｂｌｅ  ｓｕｂ−ｔａｓｋ）を実行するように共にグループ化された１つ又はそれ以上の命令として定義される。
カーネルの境界（ｂｏｕｎｄｓ  ｏｆ  ｋｅｒｎｅｌ）はサブルーチンと一致する場合としない場合があるので、サブルーチンの同義語（ｓｙｎｏｎｙｍｏｕｓ  ｔｅｒｍｓ）と見做すべきではない。斯かる脈絡で、「カーネル（ｋｅｒｎｅｌ）」の用語は「コンピュートカーネル（ｃｏｍｐｕｔｅ  ｋｅｒｎｅｌ）」の用語と少し類似して、「ＯＳカーネル（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ  ｋｅｒｎｅｌ）」、「カーネル方式（ｋｅｒｎｅｌ  ｍｅｔｈｏｄ）」、「イメージカーネル（ｉｍａｇｅ  ｋｅｒｎｅｌ）」のようなカーネルの他の定義、又は数学で使用されるカーネルの多様な定義と混同してはならない。
【００４０】
このような実施例において、システム２００の三つのプロセッサ（ＲＰＵ１０６、ＦＰＵ１０４、及びＣＰＵ２０２）はタスクを分配して効率性を向上し、電力の使用及びメモリ帯域幅の消耗を低減できる。多様な実施例で、これはＡＲＭ社のビッグリトル異種演算構造（ｂｉｇ．ＬＩＴＴＬＥ  ｈｅｔｅｒｏｇｅｎｅｏｕｓ  ｃｏｍｐｕｔｉｎｇ  ａｒｃｈｉｔｅｃｔｕｒｅ）と類似するが、同一ではない。ＡＲＭ社のビッグリトル異種演算構造においては、バッテリ節減的で低速のプロセッサコア（ＬＩＴＴＬＥ）は、相対的にさらに強力で電力消耗が多いプロセッサコア（ｂｉｇ）と連結される。このような実施例で、相異なる形態のコア間で（例えば、ビッグ（ｂｉｇ）及びリトル（ＬＩＴＴＬＥ）コア、ＲＰＵ１０６、ＦＰＵ１０４、ＣＰＵ２０２などの間で）、作業負荷（ｗｏｒｋｌｏａｄｓ）がスワップ（ｓｗａｐ、交換）できる。斯かる実施例で、マルチコアシステム２００は動的な演算要求に適応してより少ない電力を使用できる（又はより速くなれる）。上述されたのは単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００４１】
図３は、本発明によるシステム３００の例示的な実施例のブロック図である。多様な実施例で、システム３００は図１及び／又は図２に図示されたダイ又は他のＩＣから構成される。
【００４２】
図示された実施例において、システム３００は、固定論理回路を含む処理ユニット（以下、固定処理ユニット（ＦＰＵ）という）３０４及び再プログラム可能な論理回路を含む処理ユニット（以下、再プログラム可能な処理ユニット（ＲＰＵ）という）３０６、並びにそれらに対して演算（コンピューティング）タスクを割り当てるように構成されたＣＰＵ（即ち、ホストプロセッサ又はタスクスケジューラ）３０２を包含する。多様な実施例で、タスクスケジューラ３０２は、少なくとも部分的にシステム３００を制御するように構成される。多様な実施例で、タスクスケジューラ３０２はプロセッサ（例えば、ＣＰＵ）を包含するが、他の実施例で、作業スケジューラ３０２は、より汎用ではない回路（即ち、専用回路）を包含する。
【００４３】
図示された実施例において、システム３００は、上述されたように、固定処理ユニット（ＦＰＵ）３０４（例えば、ＧＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）など）を包含する。システム３００は、上述されたように、再プログラム可能な処理ユニット（ＲＰＵ）３０６（例えば、ＦＰＧＡなど）を包含する。システム３００は、上述されたように、更にＨＢＭスタック３０８を包含する。
【００４４】
図示された実施例において、ＦＰＵ３０４及びＲＰＵ３０６は制御経路及び／又はデータ経路を集積された形で包含するように構成される。斯かる実施例で、コンピューティングタスク（及びそれに連関されたデータ）は、２つのプロセッサ（３０４，３０６）間で転送されるか又はハンドオフ（ｈａｎｄ−ｏｆｆ）される。以下で説明されるように、多様な実施例で、タスク及びデータのスイッチングは自己調節方式で発現されるか、又はＣＰＵ３０２により調節される。
【００４５】
図示された実施例において、ＦＰＵ３０４は、プログラマー又はユーザに、公知のＦＰＵ（例えば、ＧＰＵ）プログラミングモデル又はＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅｓ）、及びＦＰＵと連関されたデータアクセスプロトコル又はモデルの利用を可能にする。反面、ＲＰＵ３０４の再プログラム能力は、効率性を（例えば、電力、時間など）を増加し、動的に変更可能な特定タスク専用の回路（ｔａｓｋ  ｓｐｅｃｉｆｉｃ  ｃｉｒｃｕｉｔｒｙ）を具現できる。
【００４６】
図４は、本発明によるシステム４００の例示的な実施例のブロック図である。多様な実施例で、システム４００の各部分は図１及び／又は図２に図示されたダイ又は他のＩＣで構成される。システム４００は、図３に簡略に図示されたタスク転送の一実施例を示す。
【００４７】
図示された実施例において、システム４００は、上述されたように、固定処理ユニット３０４（例えば、ＧＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）など）を包含する。システム４００は、上述されたように、ＲＰＵ３０６（例えば、ＦＰＧＡなど）を包含する。システム４００は、上述されたように、ＨＢＭスタック３０８を包含する。
【００４８】
図示された実施例において、システム４００はデータを格納するように構成され、ＣＰＵ３０２により又はその制御下に直接的にアクセスされるシステムメモリ４１２を包含する。システム４００はデータを格納し、ＦＰＵ３０４により又はその制御下に直接的にアクセスされるように構成されたＦＰＵメモリ４１４を包含する。
【００４９】
図示された実施例において、ＣＰＵ３０２は連結バス（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）を介しＦＰＵ３０４及びＲＰＵ３０６と連結される。多様な実施例で、連結バス４０２は、例えば、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）プロトコルのような直列プロトコルを使用できる。上述されたのは、単に説明のための実施例であり、本発明がこれに限定されない。
【００５０】
図示された実施例において、ＣＰＵ（又はホスト、又はタスクスケジューラ）３０２は第１タスク、サブタスク、又はタスク４９０の一部をＦＰＵ３０４に割り当てる。ＦＰＵ３０４は例えば第１サブタスクと連関された命令の実行を開始し、タスク４９０と連関されたデータ４０４のアクセスを望む。図示された実施例で、データ４０４はＨＢＭスタック３０８に格納されている場合がある。
【００５１】
図示された実施例において、ＲＰＵ３０６は直接メモリアクセス（ＤＭＡ：  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）、ＲＤＭＡ（Ｒｅｍｏｔｅ  ＤＭＡ）エンジン（又はＲＤＭＡ回路）４６４を包含する。ＲＰＵ３０６がＨＢＭスタックと直接的に連結されるから、ＲＰＵ３０６はＨＢＭスタック３０８へのアクセスをゲート（制御）できる。多様な実施例で、ＲＰＵ３０６がＲＤＭＡエンジン４６４を実行する場合、他のプロセッサはＲＰＵ３０６を介してＨＢＭスタック３０８からのＤＭＡ呼出又は要請を遂行できる。そこでＲＤＭＡエンジン４６４はＤＭＡ要請を提供するか又は遂行できる。
【００５２】
図示された実施例において、ＦＰＵ３０４はＲＤＭＡアクセスの要請をＲＤＭＡエンジン４６４へ提供する。ＲＤＭＡはＨＢＭスタック３０８からデータ４０４を回収する、即ち、リード（ｒｅａｄ）し、それをＦＰＵ３０４に提供する。多様な実施例で、ＦＰＵ３０４は１つ又はそれ以上のアクセスレジスタ４４４を包含する。斯かる実施例で、データ４０４又はデータ４０４の一部は、アクセスレジスタ４４４（例えば、２５６メガバイトの部分）にバッファリングされる、即ち、一時記憶（ｓｔａｇｅ）される。以後、データ４０４はＦＰＵメモリ４１４に複写される。以後、ＦＰＵ３０４はデータ４０４に対して割り当てられたタスク４９０の一部を実行できる。
【００５３】
図示された実施例において、ＣＰＵ（又はタスクスケジューラ）３０２は第２タスク、サブタスク又はタスク４９０の一部をＲＰＵ３０６に割り当てる。多様な実施例で、ＲＰＵ３０６はタスク４９０の第２の部分をＲＰＵ３０６上で効率的に又は好ましい形で実行するロジック回路としてプログラムされうる。例えば、ＲＰＵ３０６に割り当てられたタスク４９０の一部はＨＢＭスタック３０８のＨＢＭダイのプロセッシングインメモリの機能の制御を包含する。ＦＰＵ３０４がタスク４９０の第１の一部を完了した場合、ＦＰＵ３０４はＲＰＵ３０６にカーネルをオフロード（ｏｆｆｌｏａｄ）すること又はタスク４９０の残りの実行を伝送するのを中断する。
【００５４】
図示された実施例において、ＲＰＵ３０６は、タスク４９０の第２部分の処理の開始の準備完了を報らせるレディーフラッグ（ｒｅａｄｙ  ｆｌａｇ）４６２又は他の何らかの指示を包含する。一部の実施例で、ＲＰＵ３０６は多数のレディーフラッグ４６２を包含し、各々は多様なロジック回路と連関され、該ロジック回路はそれぞれタスクを遂行できる。ＦＰＵ３０４は、ＲＰＵ３０６を周期的にチェックするか又はポーリングしてＲＰＵ３０６へタスク４９０の処理を転送する時期であるかを確認するように構成されたポーリング回路４４２を包含する。多様な実施例で、他のフラッグ基盤の同期化プロトコルが採用される。
【００５５】
ＦＰＵ３０４が、ＲＰＵ３０６が準備されたことを認識した場合、タスク４９０又はデータ４０４の所有権が２つのプロセッサ（３０４、３０６）間で転送される。以後、ＲＰＵ３０６は割り当てられたタスク４９０の第２部分の実行を開始する。多様な実施例で、ＣＰＵ３０２はＦＰＵ３０４にＲＰＵ３０６がタスク４９０の第２部分の実行を開始する準備完了を報らせるように構成される。斯かる実施例で、ＲＰＵ３０６は、ＣＰＵ３０２にこれを報らせることができるか、又はＣＰＵ３０２は、ＲＰＵ３０６の状態をモニタする。（例えば、ＣＰＵ３０２は、ＲＰＵ３０６が他のタスクを完了したことを認識できる。）
【００５６】
多様な実施例において、データ４０４はＦＰＵメモリ４１４からＨＢＭスタック３０８へ上述されたＲＤＭＡプロトコルを使用して転送される。以後、ＲＰＵ３０６はＨＢＭスタック３０８に格納されたデータ４０４を直接的にアクセスできる。ＲＰＵ３０６がタスク４９０の第２部分を実行する間、ＦＰＵ３０４は中断又は停止するか又は非同期的に他のタスクを遂行してＦＰＵ３０４の演算電力を浪費しないようにする。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００５７】
一部の実施例において、タスク実行は類似した方式で、しかし逆向きの手順で、ＲＰＵ３０６からＦＰＵ３０４（又はＣＰＵ３０２）に変更される。斯かる実施例で、ＦＰＵ３０４、ＲＰＵ３０６、及びＣＰＵ３０２間のデータ同期化は、上述されたところと類似に、現出できる。
【００５８】
図５は、本発明によるシステム５００の例示的な実施例のブロック図である。多様な実施例で、システム５００の部分は、図１及び／又は図２に図示されたダイ又は他のＩＣで構成される。システム５００は、図３に簡略に図示されたタスク転送の一実施例を示す。
【００５９】
図示された実施例において、システム５００は、上述されたように、固定処理ユニット３０４（例えば、ＧＰＵ、ＤＳＰなど）を包含する。システム５００は、上述されたように、ＲＰＵ３０６（例えば、ＦＰＧＡなど）を包含する。システム５００は、上述されたように、ＨＢＭスタック３０８をも包含する。
【００６０】
図示された実施例において、システム５００はデータを格納するように構成され、ＦＰＵ３０４により又はその制御下に直接的にアクセスされるＦＰＵメモリ４１４を包含する。システム５００はＦＰＵ３０４と連関されたデータを格納するように構成されたＦＰＵバッファ又は中央メモリ５１４を包含する。システム５００はＲＰＵ３０６と連関されたデータを格納するように構成されたＲＰＵバッファ又は中央メモリ５１６をも包含する。
このような実施例で、ＦＰＵバッファ５１４及びＲＰＵバッファ５１６はＣＰＵ３０２により制御されるか又はアクセスされる。多様な実施例で、ＦＰＵバッファ５１４及びＲＰＵバッファ５１６は、システムメモリ（例えば、図４に図示されたシステムメモリ４１２）の部分又は領域であるか又は別途のメモリ回路である。
【００６１】
図示された実施例において、ＣＰＵ３０２は連結バス（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）４０２を介しＦＰＵ３０４及びＲＰＵ３０６と連結される。多様な実施例で、連結バス４０２は、例えば、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）プロトコルのような直列プロトコルを使用できる。上述されたのは、単に説明のための実施例であり、本発明はこれに限定されない。
【００６２】
上述されたように、ＣＰＵ（又はタスクスケジューラ）３０２は多様なタスク５９０又はタスク５９０の或る部分を、実行のため、ＦＰＵ３０４及びＲＰＵ３０６に分散するか又は割り当てる。多様な実施例で、斯かる割当は、少なくとも部分的に、どのプロセッサが利用可能であり、且つ、より効率的にタスクを実行できるか、という点に基づく。上述されたように、ＣＰＵ３０２はＦＰＵ３０４にタスク５９０の第１部分を割り当てて、タスク５９０の第２部分をＲＰＵ３０６に割り当てられる。例えば、ＲＰＵ３０６に割り当てられた多様なタスク５９０の部分は、ＨＢＭスタック３０８のＨＢＭダイのプロセッシングインメモリの機能の制御を包含できる。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００６３】
図示された実施例において、ＦＰＵ３０４は上述されたように、割り当てられたタスクを実行する。斯かる実施例で、ＦＰＵ３０４は一時記憶（ｔｅｍｐｏｒａｒｙ）キャッシュ、即ち、作業用（ｗｏｒｋｉｎｇ）メモリとしてＦＰＵメモリ４１４を使用する。割り当てられたタスク、サブタスク又はタスク５９０の一部が完了された場合、ＦＰＵ３０４はデータをＦＰＵバッファ５１４に書き込む。
【００６４】
このような実施例においては、これはＦＰＵ３０４及びＦＰＵバッファ５１４間で媒介体として作業するか、又は少なくともデータ５０４がＦＰＵバッファ５１４に書き込み中であることを報らされているＣＰＵ３０２を包含する。一部の実施例で、これは、メモリ割当機能又は手続呼出（ｐｒｏｃｅｄｕｒｅ  ｃａｌｌ）（例えば、ＧＰＵの場合で、「ＣＵＤＡＭａｌｌｏｃ（）」の呼出が生成される。「ＣＵＤＡＭａｌｌｏｃ（）」はＮＶＩＤＩＡ社が開発したＧＰＵ向けの汎用並列コンピューティングプラットフォームで使用される関数である）を通じて行われる。斯かる実施例で、ＦＰＵ３０４はＣＰＵ３０２にデータを複写し、ＣＰＵ３０２はＦＰＵバッファ５１４にデータを順次的に複写する。
【００６５】
図示された実施例において、以後、ＣＰＵ３０２はデータ５０４をＦＰＵバッファ５１４からＲＰＵバッファ５１６へ転送する。斯かる実施例で、ＣＰＵ３０２は、ＦＰＵ３０４及びＲＰＵ３０６間（少なくともＦＰＵバッファ５１４と，ＲＰＵバッファ５１６との間）でデータ同期化及びデータ転送のタイミングを制御する。
【００６６】
図示された実施例において、ＦＰＵバッファ５１４とＲＰＵバッファ５１６間のデータ５０４の複写が完了された場合、ＣＰＵ３０２はトリガイベント（ｔｒｉｇｇｅｒｉｎｇ  ｅｖｅｎｔ）５４６を開示してデータ５０４が準備されたことをＲＰＵ３０６に報らせる。多様な実施例で、このようなトリガイベント５４６は、インタラプト信号、連結バスを介したメッセージ、又はＲＰＵ３０６への信号を包含する。図示された実施例で、ＲＰＵ３０６はトリガイベント５４６を感知して反応するように構成されたポーリング回路５４２を包含する。また、斯かる実施例で、ＣＰＵ３０２はデータ転送のタイミングを制御する。多様な実施例で、ポーリング回路５４２はＲＰＵと関連されたドライバ又はファームウェアと共に作業する。上述されたのは、単に説明のための実施例であり、本発明はこれに限定されない。
【００６７】
このような実施例において、トリガイベント５４６が発生した場合、ＲＰＵ３０６はデータ５０４をＲＰＵバッファ５１６からＨＢＭスタック３０８へ複写する。以後、ＲＰＵ３０６はそれ自身に割り当てられたタスク、サブタスク又はタスク５９０の一部を実行する。前に説明されたように、ＲＰＵ３０６に割り当てられたタスク５９０の一部はＨＢＭスタック３０８のＨＢＭダイのプロセッシングインメモリの機能の制御を包含する。ＲＰＵ３０６がタスク５９０の第２部分を実行する間ち、ＦＰＵ３０４は中断又は停止するか又は非同期的に他のタスクを遂行してＦＰＵ３０４の演算電力を浪費しないようにする。上述されたのは、単に説明のための幾つかの実施例であり、本発明がこれに限定されるものではない。
【００６８】
一部の実施例において、  タスク実行は類似した方式で、しかし逆向きの手順で、ＲＰＵ３０６からＦＰＵ３０４（又はＣＰＵ３０２）に変更される。斯かる実施例で、ＦＰＵ３０４、ＲＰＵ３０６、及びＣＰＵ３０２間のデータ同期化は、前に説明されたところと類似に、現出できる。
【００６９】
図６は、本発明によるシステム６００の例示的な実施例のブロック図である。多様な実施例で、スステム５００の部分は、図１及び／又は図２に図示されたダイ又は他のＩＣで構成される。システム５００は図３に簡略に図示されたタスク転送の一実施例を示す。
【００７０】
図示された実施例において、システム６００は、上述されたように、固定処理ユニット３０４（例えば、ＧＰＵ、ＤＳＰなど）を包含する。システム６００は、上述されたように、ＲＰＵ３０６（例えば、ＦＰＧＡなど）を包含する。システム６００は、上述されたように、ＨＢＭスタック３０８をも包含する。
【００７１】
図示された実施例において、システム６００は、データを格納するように構成され、ＦＰＵ３０４により又はその制御下に直接的にアクセスされるＦＰＵメモリ４１４を包含する。システム６００は、上述されたように、システムメモリ４１２を包含する。
【００７２】
図示された実施例において、ＣＰＵ３０２は連結バス（ｉｎｔｅｒｃｏｎｎｅｃｔｏｒ  ｂｕｓ）４０２を介しＦＰＵ３０４及びＲＰＵ３０６と連結される。多様な実施例で、連結バス４０２は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）プロトコルのような直列プロトコルを使用できる。上述されたのは、単に説明のための実施例であり、本発明がこれに限定されない。
【００７３】
上述されたように、ＣＰＵ（又はタスクスケジューラ）３０２は多様なタスク６９０又はタスク６９０の或る部分を、実行のため、ＦＰＵ３０４及びＲＰＵ３０６に分散するか又は割り当てる。多様な実施例で、斯かる割当は、少なくとも部分的に、どのプロセッサが利用可能であり、且つ、より効率的にタスク６９０を実行できるか、という点に基づく。上述されたように、ＣＰＵ３０２はＦＰＵ３０４にタスク５９０の第１部分を割り当てて、タスク５９０の第２部分をＲＰＵ３０６に割り当てられる。例えば、ＲＰＵ３０６に割り当てられたタスク５９０の部分は、ＨＢＭスタック３０８のＨＢＭダイのプロセッシングインメモリの機能の制御を包含できる。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００７４】
図示された実施例において、ＦＰＵ３０４は、上述されたように、割り当てられたタスクを実行する。斯かる実施例で、ＦＰＵ３０４は一時記憶キャッシュ、即ち、作業用メモリとしてＦＰＵメモリ４１４を使用する。割り当てられたタスク、サブタスク又はタスク６９０の一部が完了された場合、ＦＰＵ３０４はデータ６０４をシステムメモリ４１２に書き込む。
【００７５】
図示された実施例において、ＦＰＵ３０４はＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を通じてシステムメモリ４１２にアクセスする。多様な実施例で、これは、ＣＰＵ３０２又は少なくともＣＰＵ３０２の積極的な関与を本質的にバイパス（ｂｙｐａｓｓ）する。矢印６１４はＦＰＵ３０４が、直接（又はＣＰＵ３０２のＤＭＡエンジンを使用して）データをシステムメモリ４１２に書き込むアクセスを示す。
【００７６】
システムメモリ４１２へのデータの書き込みが完了された場合、データが使用のため準備されたことをＲＰＵ３０６に報らせるために、トリガイベント６４６（例えば、インタラプトなど）が開始される。多様な実施例で、トリガイベント６４６は、上述されたように、ＣＰＵ３０２により生成される。他の実施例で、トリガイベント６４６はＦＰＵ３０４により生成される。
【００７７】
図示された実施例において、ＲＰＵ３０６は、トリガイベント６４６が発生した時を感知するポーリング回路６４２を包含する。このような実施例で、以後、ＲＰＵ３０６はデータ６０４をシステムメモリ４１２からＨＢＭスタック３０８へ複写する。（矢印６１６により図示される）多様な実施例で、これはＲＤＭＡを介して行われることができる。斯かる実施例で、ＲＰＵ３０６は、図４に図示されたように、ＲＤＭＡエンジンを包含できる。
【００７８】
以後、３０６はそれ自身に割り当てられたタスク、サブタスク又はタスク６９０の一部を実行できる。タスク、サブタスク又はタスク６９０の一部はＨＢＭスタック３０８のＨＢＭダイのプロセッシングインメモリの機能の制御を包含する。ＲＰＵ３０６がタスク６９０の第２部分を実行する間、ＦＰＵ３０４は停止か中断か、又は非同期的に他のタスクを遂行して、ＦＰＵ３０４の演算電力の浪費を回避できる。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００７９】
一部の実施例において、タスク実行は類似した方式で、しかし逆向きの手順で、ＲＰＵ３０６からＦＰＵ３０４（又はＣＰＵ３０２に）に変更される。斯かる実施例で、ＦＰＵ３０４、ＲＰＵ３０６及びＣＰＵ３０２間のデータ同期化は、前に説明されたところと類似に現出できる。
【００８０】
図７は、本発明の理論によって形成された半導体装置を包含できる情報処理システム７００の例示的なブロック図である。
【００８１】
図７を参照すると、情報処理システム７００は、本発明の理論によって構成された１つ又はそれ以上の装置を包含する。他の実施例で、情報処理システム７００は本発明の理論による１つ又はそれ以上の技法を使用するか又は実行できる。
【００８２】
多様な実施例において、情報処理システム７００は、例えば、ラップトップ（ｌａｐｔｏｐ）、デスクトップ（ｄｅｓｋｔｏｐ）、ワークステーション（ｗｏｒｋｓｔａｔｉｏｎ）、サーバー、ブレードサーバー（ｂｌａｄｅ  ｓｅｒｖｅｒ）、個人用デジタル端末機（ＰＤＡ：  Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン、タブレット（ｔａｂｌｅｔ）及び他の適切なコンピュータのようなコンピューティング装置、又はそれらの仮想マシン又は仮想コンピューティング装置を包含する。多様な実施例で、情報処理システム７００はユーザ（図示せず）により使用され得る。
【００８３】
本発明による情報処理システム７００は、中央処理ユニット（ＣＰＵ）、ロジック、又はプロセッサ（以下、プロセッサで代表）７１０を包含できる。一部の実施例で、プロセッサ７１０は１つ又はそれ以上の機能ユニットブロック（ＦＵＢ：  Ｆｕｎｃｔｉｏｎａｌ  Ｕｎｉｔ  Ｂｌｏｃｋ）又は組合せ論理ブロック（ＣＬＢ：  Ｃｏｍｂｉｎａｔｉｏｎａｌ  Ｌｏｇｉｃ  Ｂｌｏｃｋ）７１５を包含する。このような実施例で、組合せ論理ブロックは、多様なブール論理動作（Ｂｏｏｌｅａｎ  Ｌｏｇｉｃ  Ｏｐｅｒａｔｉｏｎ）（例えば、ＮＡＮＤ、ＮＯＲ、ＮＯＴ、ＸＯＲなどの演算）、双安定ロジック装置（例えば、フリップフロップ、ラッチ）、他のロジック装置、又はそれらの組合せを包含する。斯かる組合せロジック動作は、入力信号を処理して意図された結果を達成するように単純な方式又は複雑な方式で構成されることができる。同期組合せロジック動作の幾つかの例示的な実施例が説明されたが、本発明はこれに限定されず、非同期動作又はそれらの組合せを包含する。一実施例で、組合せロジック動作は複数の相補型金属酸化半導体（ＣＭＯＳ：  Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタを包含する。多様な実施例で、斯かるＣＭＯＳトランジスタは、論理的動作を遂行するゲートを構成するように配列される。他の技術が使用できるが、これは本発明の範囲内に含まれる。
【００８４】
本発明による情報処理システム７００は、揮発性メモリ７２０（例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）をさらに包含する。本発明による情報処理システム７００は、不揮発性メモリ７３０（例えば、ハードドライブ、光学ドライブ、ナンド又はフラッシュメモリ）をさらに包含する。幾つかの実施例で、揮発性メモリ７２０、不揮発性メモリ７３０、或いはそれらの部分又は組合せの中で何れか１つは、「格納媒体（ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）」と称される。多様な実施例で、揮発性メモリ７２０及び／又は不揮発性メモリ７３０は、半永久的、即ち、実質的に永久的な形態でデータを格納するように構成される。
【００８５】
多様な実施例において、情報処理システム７００は、１つ又はそれ以上のネットワークインタフェース７４０を包含する。１つ又はそれ以上のネットワークインタフェース７４０は、情報処理システム７００が通信ネットワークの一部分となって通信ネットワークを介して通信するように構成される。
ワイファイ（Ｗｉ−Ｆｉ）プロトコルの例は、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）  ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎを包含するが、これに限定されない。
セルラー（ｃｅｌｌｕｌａｒ）プロトコルの例は、ＩＥＥＥ８０２．１６ｍ（別名：無線−ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）  Ａｄｖａｎｃｅｄ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）  Ａｄｖａｎｃｅｄ、ＥＤＧＥ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ｒａｔｅｓ  ｆｏｒ  ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）  Ｅｖｏｌｕｔｉｏｎ）、ＨＳＰＡ＋（Ｅｖｏｌｖｅｄ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ）を包含するが、これに限定されない。有線プロトコルの例は、ＩＥＥＥ  ８０２．３（別名：イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ））、ファイバチャンネル（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）、電力線通信（例えば、ホームプラグ（ＨｏｍｅＰｌｕｇ）、ＩＥＥＥ１９０１）を包含するが、これに限定されない。
【００８６】
本発明による情報処理システム７００はユーザインタフェースユニット７５０（例えば、ディスプレイアダプタ（ｄｉｓｐｌａｙ  ａｄａｐｔｅｒ）、ハプティックインタフェイス（ｈａｐｔｉｃ  ｉｎｔｅｒｆａｃｅ）、ヒューマンインタフェース（ｈｕｍａｎ  ｉｎｔｅｒｆａｃｅ）装置）をさらに包含する。多様な実施例で、このようなユーザインタフェースユニット７５０は、ユーザからの入力を受信するように、及び／又はユーザに出力を提供するように、構成される。なお、他の種類の装置もまた、ユーザとの相互作用を提供するために使用できる。例えば、ユーザに提供されたフィードバックは何らかの形の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであり、ユーザからの入力は音、音声、又は触覚入力を含む、何らかの形で受信される。
【００８７】
多様な実施例において、情報処理システム７００は１つ又はそれ以上の他の装置又はハードウェア構成部品７６０（例えば、ディスプレイ、モニタ、キーボード、マウス、カメラ、指紋認識機又はビデオプロセッサ）を包含する。上述されたのは、単に説明のための幾つかの実施例であり、本発明はこれに限定されない。
【００８８】
本発明による情報処理システム７００は１つ又はそれ以上のシステムバス７０５をさらに包含する。斯かる実施例で、システムバス７０５は、プロセッサ７１０、揮発性メモリ７２０、不揮発性メモリ７３０、ネットワークインタフェース７４０、ユーザインタフェースユニット７５０及び１つ又はそれ以上のハードウェア構成部品７６０を通信的に連結するように構成される。プロセッサ７１０により処理されたデータ又は不揮発性メモリ７３０の外部から入力されたデータは、不揮発性メモリ７３０又は揮発性メモリ７２０の中の何れか１つに格納される。
【００８９】
多様な実施例において、情報処理システム７００は１つ又はそれ以上のソフトウェア構成部品７７０を包含するか又は実行できる。幾つかの実施例で、ソフトウェア構成部品７７０は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティングシステム）及び／又はアプリケーションを包含できる。幾つかの実施例で、ＯＳは１つ又はそれ以上のサービスをアプリケーションに対して提供し、アプリケーションと、情報処理システム７００の多様なハードウェア構成部品（例えば、プロセッサ７１０、ネットワークインタフェース７４０）との間で媒介体として世話役となって動作する。
斯かる実施例で、情報処理システム７００は局部的に（例えば、不揮発性メモリ７３０内に）設置されてプロセッサ７１０により直接実行されるか又はＯＳと直接的に相互作用するように構成される１つ又はそれ以上の基本アプリケーション（ｎａｔｉｖｅ  ａｐｐｌｉｃａｔｉｏｎｓ）を包含する。斯かる実施例で、基本アプリケーションは、予めコンパイルされたマシン実行可能なコード（ｐｒｅ−ｃｏｍｐｉｌｅｄ  ｍａｃｈｉｎｅ  ｅｘｅｃｕｔａｂｌｅ  ｃｏｄｅ）を包含する。幾つかの実施例で、基本アプリケーションは、ソースコード又はオブジェクトコードをプロセッサ７１０により実行される、プロセッサ７１０が実行可能なコードに変換するように構成されたスクリプト解釈機（例えば、ｃｓｈ（Ｃ−ｓｈｅｌｌ）（登録商標）、ＡｐｐｌｅＳｃｒｉｐｔ（登録商標）、ＡｕｔｏＨｏｔｋｅｙ（登録商標））又は仮想実行マシン（ＶＭ：Ｖｉｒｔｕａｌ  ｅｘｅｃｕｔｉｏｎ  Ｍａｃｈｉｎｅ）（例えば、ジャバ仮想マシン（ＪＡＶＡ＿Ｖｉｒｔｕａｌ＿Ｍａｃｈｉｎｅ）（登録商標）、マイクロソフト共通言語ランタイム（Ｍｉｃｒｏｓｏｆｔ＿Ｃｏｍｍｏｎ＿Ｌａｎｇｕａｇｅ＿Ｒｕｎｔｉｍｅ）（登録商標））を包含する。
【００９０】
上述された半導体装置は、多様なパッケージング技法を使用して構成されうる。例えば、本発明の理論により構成された半導体装置は、ＰＯＰ（ｐａｃｋａｇｅ  ｏｎ  ｐａｃｋａｇｅ）技法、ＢＧＡ（ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ）技法、ＣＳＰｓ（ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ）技法、ＰＬＣＣ（ｐｌａｓｔｉｃ  ｌｅａｄｅｄ  ｃｈｉｐ  ｃａｒｒｉｅｒ）技法、ＰＤＩＰ（ｐｌａｓｔｉｃ  ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｐａｃｋａｇｅ）技法、ｄｉｅ＿ｉｎ＿ｗａｆｆｌｅ  ｐａｃｋ技法、ｄｉｅ＿ｉｎ＿ｗａｆｅｒ  ｆｏｒｍ技法、ＣＯＢ（ｃｈｉｐ  ｏｎ  ｂｏａｒｄ）技法、ＣＥＲＤＩＰ（ｃｅｒａｍｉｃ  ｄｕａｌ  ｉｎ−ｌｉｎｅ  ｐａｃｋａｇｅ）技法、ＰＭＱＦＰ（ｐｌａｓｔｉｃ  ｍｅｔｒｉｃ  ｑｕａｄ  ｆｌａｔ  ｐａｃｋａｇｅ）技法、ＰＱＦＰ（ｐｌａｓｔｉｃ  ｑｕａｄ  ｆｌａｔ  ｐａｃｋａｇｅ）技法、ＳＯＩＣ（ｓｍａｌｌ  ｏｕｔｌｉｎｅ  ＩＣ  ｐａｃｋａｇｅ）技法、ＳＳＯＰ（ｓｈｒｉｎｋ  ｓｍａｌｌ  ｏｕｔｌｉｎｅ  ｐａｃｋａｇｅ）技法、ＴＳＯＰ（ｔｈｉｎ  ｓｍａｌｌ  ｏｕｔｌｉｎｅ  ｐａｃｋａｇｅ）技法、ＴＱＦＰ（ｔｈｉｎ  ｑｕａｄ  ｆｌａｔ  ｐａｃｋａｇｅ）技法、ＳＩＰ（ｓｉｎｇｌｅ  ｉｎ−ｌｉｎｅ＿ｐａｃｋａｇｅ）技法、ＭＣＰ（ｍｕｌｔｉ−ｃｈｉｐ  ｐａｃｋａｇｅ）技法、ＷＦＰ（ｗａｆｅｒ−ｌｅｖｅｌ  ｆａｂｒｉｃａｔｅｄ  ｐａｃｋａｇｅ）技法、ＷＳＰ（ｗａｆｅｒ−ｌｅｖｅｌ  ｐｒｏｃｅｓｓｅｄ  ｓｔａｃｋ  ｐａｃｋａｇｅ）技法、又は、当業者によく知られた他の技法の中で何れか１つを使用して構成される。
【００９１】
方法のステップは、コンピュータプログラムを実行する１つ又はそれ以上のプログラム可能なプロセッサにより遂行されて、入力データに対し作業して出力を生成することにより機能を遂行する。方法のステップは特定目的向け論理回路（例えば、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）又はＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ））により遂行され、装置は特定目的向け論理回路として具現される。
【００９２】
多様な実施例において、コンピュータ読み取り可能な媒体は、命令（ｉｎｓｔｒｕｃｔｉｏｎ）を包含する。命令が実行される時、装置は方法のステップの少なくとも一部を遂行する。幾つかの実施例で、コンピュータ読み取り可能な装置は、磁気媒体、光学媒体、他の媒体又はそれらの組合せ（例えば、ＣＤ−ＲＯＭ、ハードドライブ、リード（ｒｅａｄ）専用メモリ、フラッシュドライブ）に含まれる。斯かる実施例で、コンピュータ読み取り可能な媒体は有形であり、非一時的に具現された製品であり得る。
【００９３】
本発明の理論が例示的な実施例を参照して説明されたが、多様な変化及び変更が本発明の思想及び範囲からの逸脱なしに行われることは、当業者には明らかであろう。よって、上述された実施例は発明の範囲を何ら限定するものではなく、単に例示するものとして理解されなければならない。即ち、本発明の範囲は、以下の特許請求の範囲及びそれの均等物の最も広く許容される解釈により決定されるものであり、前の説明により制限されたり、限定されたりしてはならない。従って、添付された特許請求の範囲は、実施例の範囲内に含まれる全ての変更及び変化を包含するように意図されたものとして理解されるべきである。
【産業上の利用可能性】
【００９４】
本発明は、向上された高効率ラーニングシステムを有する異種アクセラレータに有用である。
【符号の説明】
【００９５】
１００、２００、３００，４００、５００、６００      システム
１０４      固定処理ユニット、ＦＰＵ、ＦＰＵ／ＧＰＵ
１０６      再プログラム可能な処理ユニット、ＲＰＵ
１０８、３０８      スタック
１１０      ＨＢＭコントローラ
１１２      ＨＢＭダイ
１２０      インタポーザ、インタポーザダイ、インタポーザレイヤ
１２２      基板ダイ、パッケージ基板ダイ
１２４      はんだバンプ
２０２      中央処理ユニット、ＣＰＵ
２１２      ＣＰＵメモリ、ＣＰＵメモリダイ
２１４      ＦＰＵメモリ、ＦＰＵメモリダイ
３０２      タスクスケジューラ、ＣＰＵ、（ホスト）プロセッサ
３０４      ＦＰＵ、固定処理ユニット
３０６      ＲＰＵ、再プログラム可能な処理ユニット
４０２      連結バス
４０４、５０４、６０４      データ
４１２      システムメモリ
４１４      ＦＰＵメモリ
４４２      ポーリング回路
４４４      アクセスレジスタ
４６２      レディーフラッグ
４６４      ＲＤＭＡエンジン又はＲＤＭＡ回路
４９０、５９０，６９０      タスク
５１４      ＦＰＵバッファ、中央メモリ
５１６      ＲＰＵバッファ、中央メモリ
５４２、６４２      ポーリング回路
５４６、６４６      トリガイベント
６１４、６１６      データ（６０４）の転送経路
７００      情報処理システム
７０５      システムバス
７１０      中央処理ユニット（ＣＰＵ）、ロジック、又はプロセッサ、プロセッサ
７１５      ＣＬＢ
７２０      揮発性メモリ
７３０      不揮発性メモリ
７４０      ネットワークインタフェース
７５０      ユーザインタフェースユニット
７６０      ハードウェア構成部品
７７０      ソフトウェア構成部品
ＣＬＢ      組合せ論理ブロック
ＣＰＵ      中央処理ユニット
ＦＰＵ      変更不能な、即ち固定処理ユニット
ＦＵＢ      機能ユニットブロック
ＧＰＵ      グラフィクス処理ユニット
ＰＰＵ      プログラム可能な処理ユニット
ＲＰＵ      再プログラム可能な処理ユニット
【図１】
2019053734.tif 000003
【図２】
2019053734.tif 000004
【図３】
2019053734.tif 000005
【図４】
2019053734.tif 000006
【図５】
2019053734.tif 000007
【図６】
2019053734.tif 000008
【図７】
2019053734.tif 000009