【課題】人工知能アクセラレータのための高帯域幅メモリシリコンにおける光通信用シリコン貫通ビアアーキテクチャを具現するために、向上されたコンピューティング能力を備えたルックアップコンピューティング型装置を提供する。
【解決手段】本発明に係る装置は、第1データを第2データに変換するルックアップテーブルを格納するように構成されるメモリ回路ダイを含む。また、前記第2データを受信するように構成される組み合わせ論理回路を含む論理回路ダイを包む。前記メモリ回路ダイ及び前記論理回路ダイの間に連結され、前記第2データを前記メモリ回路ダイ及び前記論理回路ダイの間において伝送するように構成される光学的ビアをさらに含む。
前記メモリ回路ダイ及び前記論理回路ダイの間に連結され、そして前記メモリ回路ダイ及び前記論理回路ダイの間にアドレス情報を伝送するように構成される電気的ビアと、をさらに包含し、前記光学的ビアは、前記電気的ビアよりも、少なくとも4倍の大きな帯域幅を包含する、ことを特徴とする請求項16に記載のマルチチップモジュール。
前記光学的ビアを経る前記データの前記伝送を調整するように構成されるスケジューラ回路と、をさらに包含する、ことを特徴とする請求項16に記載のマルチチップモジュール。
【発明を実施するための形態】
【0016】
多様な例示的な実施例が、以下で、いくつかの例示的な実施例が図示された添付図面を参照して、より完全に説明されるだろう。しかし、ここに開示された主題は、多数の相異なる形態に具現でき、ここで提示された例示的な実施例に限定されると理解されてはならない。代わりに、このような例示的な実施例は、本開示が徹底的に完全になるように、ここに開示された主題の範囲を、この分野に熟練された者に完全に伝達できるように提供される。図面で、サイズ、階層及び領域の相対的なサイズは、明確性のため強調される場合がある。
【0017】
一つのエレメント又は階層が、他の1つのエレメント又は階層の「上」にある、「連結」される、又は「結合」される、と示されるとき、これは他のエレメント又は階層の直ぐ上にある、連結される、又は結合される場合もあるが、或いは介在するエレメント又は階層が存在する場合もある。逆に、一つのエレメントが他の一つのエレメント又は階層の直ぐ上にある、直接連結される、又は直接結合される、と示されるとき、介在するエレメント又は階層は存在しない。全体的に類似した番号は類似したエレメントを示す。ここで使用されるように、「及び/又は」の用語は、関連して羅列された項目のうち、任意のもの1つ又はそれより多くのものの全ての組み合わせを包含する。
【0018】
第1、第2、第3などの用語が、多様なエレメント、コンポーネント、領域、階層及び/又はセクションを記述するのに使用できるが、このようなエレメント、コンポーネント、領域、階層、及び/又はセクションはこのような用語によって限定されてはならないことが理解されるであろう。このような用語は、一つのエレメント、コンポーネント、領域、階層又はセクションを他の一つのエレメント、コンポーネント、領域、階層又はセクションから区別するためだけに使用される。従って、下で議論される第1、エレメント、コンポーネント、領域、階層又はセクションは、ここに開示された主題の教示(teaching)する範囲から離れずに第2エレメント、コンポーネント、領域、階層又はセクションと命名できる。
【0019】
「下方(beneath)」、「下方(below)」、「下部(lower)」、「上方(above)」、「上部(upper)」などのような空間的に相対的な用語は、図面に図示されるように、一つのエレメント又はフィーチャ(feature)の他のエレメント又はフィーチャに対する関係をより容易に説明するためにここで使用できる。空間的に相対的な用語は、図面に図示された方向に加えて使用中又は動作中のデバイスの他の方向を含むことを意図することが理解されるであろう。たとえば、図面のデバイスが上下反転されたら、他のエレメント又はフィーチャの「すぐ下」又は「より下」であると説明されたエレメントは、他のエレメント又はフィーチャの「より上」に指向できる。従って、模範的な用語「より下」は、より上とより下の方向の両方を包含できる。デバイスが別の方式に指向でき(90度回転されるか、他の方向に)、ここで使用される空間的に相対的な説明は、それに応じて解釈できる。
【0020】
同様に、「ハイ(high)」、「ロー(low)」、「プルアップ(pull up)」、「プルダウン(pull down)」、「1」、「0」などのような電気的な用語は、図面に示されたように、一つの電圧レベル又は電流の、他の電圧レベル又は電流、或いは他のエレメント又はフィーチャと比べた相対的記述を容易に説明するために、ここで使用できる。電気的に相対的な用語は、図面に示された電圧又は電流に加えて使用中又は動作中のデバイスの異なる基準電圧を含むことを意図するのが理解されるだろう。たとえば、図面のデバイス又は信号が反転されるか、又は、他の基準電圧、電流又は電荷を使用すると、「ハイ」又は「プルアップ」に記述されたエレメントは、新しい基準電圧又は電流と比較して、「ロー」又は「プルダウン」であり得る。従って、模範的な用語「ハイ」は、相対的なロー又はハイ電圧又は電流の両方を包含できる。デバイスは参照の他の電気的フレームに基づき得、ここで使用される電気的に相対的な説明は、それに応じて解釈できる。
【0021】
ここで使用される用語は、特定の例示的な実施例を記述するためのものであり、ここに開示された主題の限定を意図していない。ここで使用されるように、単数形は、文脈が異なるように明示しない限り複数形もまた包含するものと意図される。「〜包含する」及び/又は「包含する〜」の用語は、この明細書で使用されるとき、言及されたフィーチャ、整数、ステップ、動作、エレメント及び/又はコンポ−ネントの存在を明示し、一つ又はそれより多くの他のフィーチャ、整数、ステップ、動作、エレメント、コンポーネント及び/又はこれらのグループの存在又は追加を排除していないことが、より理解されるであろう。
【0022】
例示的な実施例は、理想化された例示的な実施例の図式的図面である断面図(そして中間構造)を参照して、ここで説明される。例えば、製造技術及び/又は公差(許容誤差、tolerance)の結果として、図面の形態からの変形が予測される。従って、例示的な実施例は、ここに図示された領域の特定の形態に限定されると解釈されてはならず、例えば、製造に起因する形態の偏差を包含する。
例えば、四角形で図示された注入領域は、通常的に丸くなったり、曲がったりするフィーチャを有しており、及び/又は、注入領域から非注入領域へのバイナリな(binary、不連続な)変化よりは、エッジにおいて注入濃度の勾配(gradient)を有する筈である。同様に、注入によって形成される埋め込み領域は、埋め込み領域及び注入が発生した表面との間の領域にも幾らかの注入を引き起こすことができる。従って、図面に図示された領域は、事実上図式的であり、それらの形態は、デバイスの領域の実際の形態を図示することを意図せず、そしてここに開示された主題の範囲の限定を意図していない。
【0023】
別の意味に定義されない限り、ここで使用される全ての用語(技術的及び科学的用語を含む)は、ここに記述された主題の属する分野における通常の技術を有する者によって共通に理解される意味と同じ意味を有する。共通に使用される辞典で定義された用語は、関連された分野のコンテキスト(context)からそれらの意味と同じ意味を有するものと解釈されるべきであり、ここで明確にそのように定義されない限り理想化された、又は過度に形式的なものと解釈されてはならない。
【0024】
以下では、例示的な実施例が添付された図面を参照して詳細に説明されるであろう。
【0025】
図1は、開示された主題によるシステム100の例示的な実施例のブロック図である。多様な実施例で、システム100は、プロセッサ104、メモリ106と、再構成可能なメモリロジック102を包含できる。多様な実施例で、システム100は、1つ又は複数の他のコンポーネント108(例えば、ネットワークインタフェース、メモリコントローラなど)を包含できる。
【0026】
多様な実施例において、システム100は、システムオンチップ(SoC)を包含できる。一部の実施例で、例えば、
図2及び
図3の例で、システム100は、別々の、又はマルチチップモジュール(MCM)の一部として、多数の集積回路(IC)ダイを包含できる。他の実施例では、システム100は、一連の離散(discrete)コンポーネント、即ち、個別の(individual)コンポーネントを包含できる。他の実施例では、システム100は、集積コンポーネント及び離散コンポーネントの組み合わせを包含できる。多様な実施例で、システム100は、例えば、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント(PDA)、スマートフォン、タブレット、及び他の適切なコンピュータなどのようなコンピューティングデバイス、又はその仮想マシン、即ちその仮想コンピューティングデバイスを包含できる。多様な実施例で、システム100は、ユーザ(図示せず)によって使用され得る。
【0027】
図示された実施例で、プロセッサ104は、1つ又は複数の機械実行可能な(machine−executable)複数個の命令(instructions)、即ち、ソフトウェア、ファームウェア、又はそれらの組み合わせのピース(piece)を実行するように構成されることができる。このような実施例で、プロセッサ104は、プロセッサ104の製造時(又は製造直後に、例えばヒューズなどにより)に設定される固定された論理回路(例えば、論理積(AND)ゲート、フリップフロップなど)を包含でき、前記固定された論理回路は、製造後には実質的に変更されない可能性がある。他の実施例では、プロセッサ104は、たとえば、フィールドプログラマブルゲートアレイ(FPGA)のような再構成可能なデバイスを包含できる。前述されたのは、開示された主題を限定しない説明的な例に過ぎない。
【0028】
多様な実施例で、メモリ106は、各々のデータの何れか1つ又は複数のピース(piece)を一時的に、永久的に、半永久的に、又はこれらを組み合わせて、格納するように構成される複数のメモリセルを包含できる。メモリ106内のデータは、プロセッサ104によってアクセスされる。なお、メモリ106は、揮発性メモリ、不揮発性メモリ、又はこれらの組み合わせを包含できる。
【0029】
図示された実施例において、システム100は、再構成可能なメモリロジック102を包含できる。再構成可能なメモリロジック102は、これらのサブアレイ(エレメント(112、114)で図示される)に配列される多数のメモリセル(明示的に図示せず)を含むという点でメモリ106と類似できる。通常的に、メモリ(例えば、SRAM、DRAMなど)は、行及び列のアレイに配列されるメモリセルのアレイを包含する。多くの場合、より大きなアレイをもっと管理しやすくするために、アレイは、メモリセルのサブアレイ(例えば、256行及び256列など)に分割され得る。一般的に、一度に1つのサブアレイのみがアクセスされるので、電力と計算量を削減でき、通常、メモリアレイをサブアレイに分割するのは有益であり得る。
【0030】
図示された実施例で、メモリアレイ(再構成可能なメモリロジック102として図示されている)は、そのサブアレイが通常のメモリ(RAM)としてではなくルックアップテーブルとして(LUTs)で動作するように再構成され得る点で、メモリ106とは異なる場合がある。このような実施例で、論理機能がルックアップテーブル(LUT)内に具現され得る。例えば、LUTは加算器、乗算器などのような算術論理機能を遂行できる。前述されたのは、開示された主題を限定しない説明的な例に過ぎないことが理解されるであろう。図示された実施例で、このようなLUTsはプロセッシングエレメント又は再構成可能なルックアップテーブル(RLUTS)112と称され得る。
【0031】
このような実施例で、指定されたRLUT112が、特定の計算作業(ニューラルネットワークプロセッシングのような)を遂行するように構成されると、そのRLUT112は、プロセッサ104に対するアクセラレータ又はコプロセッサ(coprocessor)として動作し、そのRLUT112のメモリ空間は、もはやデータの格納のためにプロセッサ104に対して露出(expose)しないようにできる。斯かる実施例で、プロセッサ104は、実行されるべき幾つかのカーネル又は作業をRLUT112スタックにオフロード(off−load)でき、作業が完了すると、プロセッサ104はインタラプトされるか、又はプロセッサ104は作業の完了を通知され得る。一方、RLUT112は、メモリ106のようにデータを格納するための純粋なメモリのスタックとして構成され得る。斯かる実施例で、サブアレイ(112、114)は、メモリ又はLUTとして再構成され得る。
【0032】
このような実施例で、RLUT112及びここで具現された論理機能は、メモリの書き込み動作を遂行するだけで変更できる。これは、論理機能がシステム100の動作の間に動的に再構成され、及び/又は変更されることを可能にする。通常的な書き込み動作(又はこれと類似したもの)を使用しているので、EEPROMなどをプログラムするために使用されるような特別な(つまり、通常動作ではない、又は高レベルの)電圧を必要とせずに再プログラムを許容できる。
【0033】
このような実施例で、再構成可能なメモリロジック102は、構成インタフェース116を包含できる。多様な実施例で、プロセッサ104(又は他のコンポーネント)がRLUT112に格納された論理機能の変化又は変更を望むとき、プロセッサ104(又は他のコンポーネント)は、書き込み動作又は特殊書き込み操作(例えば、或るRLUT112に関係するとの指示などを含む書き込み動作)を実行できる。
【0034】
一部の実施例において、全てのメモリアクセス又は動作は、再構成可能なメモリロジック102の入力/出力(I/O)インタフェース118を経由(pass_through)できる。斯かる実施例で、メモリアクセスが再生のためのデータを格納するサブアレイ(例えば、RAMサブアレイ114など)に対する場合であれば、I/Oインタフェース118は、メモリアレイに対する通常の読み取り/書き込み要請として単純に処理できる。しかし、幾つかの実施例で、メモリアクセスがRLUT112に採用された(又はRLUT112に採用される)サブアレイに対する場合であれば、I/Oインタフェース118は、その処理を構成インタフェース116に回送(pass)できる。
【0035】
他の実施例で、I/Oインタフェース118は、RLUT112に対して読み出し又は書き込みするように構成できる。このような実施例で、書き込みアクセスはRLUT112に対する、その論理機能を定義する書き込みを含み得る。斯かる実施例で、構成インタフェース116は、RLUT112内の、又はRLUT間の、若しくは再構成可能なメモリロジック102全体としての、信号のルーティングを調節するように構成され得る。
例えば、構成インタフェース116は、多重のRLUT112及び/又はRAM114間の信号のルーティングを調節するように構成され得る。斯かる実施例で、I/Oインタフェース118は、RLUT112及びRAM114に対するデータアクセスを管理するように構成され、構成インタフェース116は、サブアレイ(112、114)の相互連結及びルーティングを管理するように構成され得る。前述の記述は開示された主題を限定しない例示的な例に過ぎない、ことが理解されるであろう。多様な実施例で、I/Oインタフェース118は、構成インタフェース116を含み得る。
【0036】
なお、図示された実施例で、各サブアレイはRLUT112又は通常的なRAM114サブアレイとして使用され得る。前述されたように、通常のRAM114サブアレイは、データ及び情報を格納するように構成され得。斯かる実施例で、RLUT112及びRAM114サブアレイ間の数又はバランスは、再構成可能なメモリロジック102内で要請に合わせて動的に調節され得る。他の実施例で、RLUT112及びRAM114サブアレイの数は、製造時に固定され得る。更に他の実施例で、RLUT112の最大数は、製造時に固定されるが、RLUT112は、RAM114サブアレイとして動作するように構成可能である。前述されたのは、開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0037】
多様な実施例で、プロセッサ104(又は他のコンポーネント)は、或るサブアレイをRLUT112として構成することを望み得る。斯かる実施例で、プロセッサ104は、再構成可能なメモリロジック102にメモリアクセスを実行できる。メモリアクセスは、特定のRLUT112にルックアップテーブル(LUT)を格納する書き込み動作を含み得る。メモリアクセスは、LUTのサイズに依存する一連のメモリアクセスを含み得る。
いくつかの実施例で、特定のメモリアクセスは、LUTに対する入力の数及びLUTからの出力の数を指示できる。なお、メモリアクセスはRLUT112に対する信号ルーティング情報をさらに指示できる。例えば、下で記述されるように、多数のRLUT112は、カスケード(cascade)接続されるか、又は、一緒にルーティングされて、論理機能(例えば、加算器など)を遂行できる。
【0038】
逆に、プロセッサ104(又は他のコンポーネント)は、或るサブアレイをRAM114として構成することを望み得る。その場合、メモリアクセスは構成インタフェース116に対してRLUT112を再構成して標準RAM114に戻すように命令(instruct)できる。幾つかの実施例で、予め定義されたメモリセルが、そのサブアレイが現在RLUT112又はRAM114として機能するかを指示(indicate)するビットを格納するように構成され得る。多様な実施例で、当該指示ビットは、当該サブアレイ又は当該構成インタフェース116に含まれ得る。前述されたのは、開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0039】
多様な実施例で、再構成可能なメモリロジック102は、ダイナミックRAM(DRAM)を含み得る。これは、RLUT112が特殊な電圧(例えば、ヒューズを焼き切る電圧、又はトランジスタを設定する電圧、など)に頼る必要なしに、正常なメモリアクセス動作によって再プログラムできる点で、通常のFPGA又はPLDと相異できる。
【0040】
このような実施例において、DRAMサブアレイをRLUT112のベースとする(basing)ことにより、SRAMベースのFPGAと比較して、より高い密度を達成できる。例えば、メモリセル又は情報の1ビット当たり、SRAM RLUT112が6つのトランジスタ(6T)を必要とするのと比較して、DRAM RLUT112は、1つのトランジスタ及び1つのキャパシタ(1T1C)しか必要としない。他の実施例で、DRAM RLUT112は、SRAM又はフラッシュベース(Flash−based)のFPGAのRLUT112と比較して、より低いコスト(lower cost)に帰着できる。
【0041】
RLUT112が、通常のメモリアクセス(又はその変形)によって書き換え(変更、modify)られ得るので、RLUT112は、自己書き換えが可能になる。例えば、一つのクロックサイクルのRLUT112の計算の出力は、直ちに第2の計算機能を遂行するようにRLUT112を再構成又は更新するメモリアクセスに帰着できる。他の実施例で、RLUT112の出力は、同じRLUT112に入力としてフィードバックされて、該RLUT112の動作形態を変更できる。
【0042】
なお、多様な実施例で、DRAM RLUT112とRAM114との混在は、幾つかの長所を提供できる。例えば、RAM114に格納されたデータが近接しているので、RLUT112によって実行される演算を加速し、データがバスを介して移動する必要がないので、消費電力を低下できる。
幾つかの実施例で、プロセッサ104及びメモリ106の生成に使用されるのと類似のDRAM技術をRLUT112のベースとすることにより、RLUT112は、プロセッサ104及び/又はメモリ106と同じダイ又はパッケージ内に存在できる。このように、DRAM RLUT112によって提供される近接データ計算(near−data computing)は、より速く、より効果的であり得る。また、同一の製造工程は、システム100の製造コストを低下できる。前述されたのは、開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0043】
図2は、開示された主題に適合したシステム200の例示的な実施例の等角投影(isometric、斜視)ブロック図である。図示された実施例で、多数の集積回路ダイが積層されて(又は、積層されずに)集積され、マルチチップモジュール、即ちマルチチップシステムを形成できる。多様な実施例で、マルチチップシステム200は、前述されたようにRLUT又はより通常の(即ち、再構成可能ではない)ルックアップテーブル(LUT)を含み得る。
【0044】
多様な実施例で、高帯域幅メモリ(HBM)は、高性能形態のランダムアクセスメモリ(RAM)を含み得る。幾つかの実施例で、高帯域幅メモリ(HBM)は、シリコン貫通ビア(TSV)を介して通信する、積層されたダイナミックRAM(DRAM)メモリを含み得る。一般に、高帯域幅メモリ(HBM)は、シリコン貫通ビア(TSV)とマイクロバンプを結合し、メモリセルアレイの複数(例えば、4個、8個)のダイの下面を順次、他のダイの上面に連結してなし得る。幾つかの実施例で、メモリコントローラ(図示せず)は、スタックの最下部に配置された別のダイに包含され得る。
【0045】
多様な実施例で、システム200は、高帯域幅メモリ(HBM)を含み得る。斯かる実施例で、システム200は、スタックの最上部又は最下部、或いは実施例に依存する位置に配置され得るメモリコントローラ(図示せず)を含み得る。前述されたのは開示された主題を限定しない説明的な一例に過ぎないことが理解されるであろう。
【0046】
図示された実施例で、システム200は、メモリダイ(例えば、DRAMダイなど)204及びロジックダイ202を含み得る。図示された実施例で、メモリダイ204は、多数のRAM216を含み得る。斯かる実施例で、RAM216は、多様なデータのピース(piece)を格納するように構成され得る。
【0047】
図示された実施例で、メモリダイ204は、1つ又は複数のルックアップテーブル(LUT)214或いは再構成可能なルックアップテーブルに(RLUT)を含み得る。斯かる実施例で、LUT214は、前述されたように定められた論理機能の遂行が可能なルックアップテーブル(LUT)を格納するように構成されたメモリサブアレイを含み得る。
【0048】
多様な実施例で、メモリダイ204は、複数のメモリセルからなるRAM216を含み得る。斯かる実施例で、LUT214は、メモリダイ204のRAM216内に格納されたデータにアクセスするように構成され得る。斯かる実施例で、LUT214は、アクセスされたRAM216と同じ場所にあるか、又は物理的に近接する場所にあり得る。斯かる実施例で、アクセス時間及び電力の両方の観点から、両者の間の連結が減少され得る。また、両者の間に必要なルーティングが減少され得る。前述されたのは、開示された主題を限定しない説明的な例に過ぎないことが理解されるであろう。
【0049】
多様な実施例では、ロジックダイ202は、コマンド又は論理演算を実行するように構成されるプロセッサ(例えば、中央プロセッサ(CPU)、グラフィックスプロセッサ)を含み得る。図示された実施例で、ロジックダイ202は、多数の論理回路又は組み合わせ論理ブロック(CLB、Combinatorial_Logical_Block)212を含み得る。CLB212は一般に、入力信号及び格納されたデータに対してブール代数(Boolean algebra)を遂行する回路を包含し、通常、実際上は組み合わせロジック(例えば、NANDゲート及びNORゲートなど)と順次(例えば、フリップフロップ、ラッチ)ロジックの混合物を包含する。
【0050】
多様な実施例では、LUT214は、1つ又は複数のビア226を利用して、ロジックダイ202(例えば、CLB212)と通信できる。斯かる実施例では、これは、バス又は外部インタフェースを介した通信の必要なしに、2つのプロセッシングエレメント(例えば、LUT214及びCLB212)間の高速通信を可能にし得る。
【0051】
多様な実施例で、ビア226は、例えばシリコン貫通光通信用ビア(TSPV、Through−Silicon_Photonic_Via)、光ファイバ、光導波路又は光カプラのような光学的ビアを含み得る。斯かる実施例で、LUT214及びCLB212が、電気回路を包含すると、電光変換トランスデューサ(electrical−to−optical transducer)がビアの226の入力222に必要であり得る。同様に、光電変換トランスデューサ(optical−to−electrical transducer)がビアの226の出力に必要であり得る。
【0052】
このような一実施例で、CLB212は、コマンドを処理し、そして第1データセット(CLB212からの出力)を生成できる。ロジックダイ202は、プロセッシングの次のステップがLUT214によって、より効果的に実行できるか(例えば、速度、帯域幅、電力の観点から)を判定し、そしてデータを処理するためLUT214に伝送するようにCLB212に命令できる。
【0053】
このような実施例で、CLB212は光学的ビア226を介して、第1データセットをLUT214に伝送できる。斯かる実施例で、光学的ビア226又はそれに伴うコンポーネントは、必要に応じて電気的/光学的変換(電光変換及び/又は光電変換)を実行できる。
【0054】
LUT214は、第1データセットを処理し、即ち、第1データセットに対してコマンドを実行して、第2データセット(LUT214の出力)を生成できる。LUT214は、第2データセットを追加処理のためにロジックダイ202の同一の又は他のCLB212に再伝送できる。データは、光学的ビア226を介して、また再伝送され得る。
【0055】
多様な実施例で、LUT214は、第1データセットを生成し、これを追加処理(第2データセットを生成)のためにCLB212に伝送できる。このような実施例で、動作は、前に記述されたものの反対であり得る。
【0056】
他の実施例で、LUT214は、RAM216に格納されたデータをCLB212からのデータに対して追加される入力又はLUT214に対する唯一の入力として使用できる。他の実施例で、LUT214の出力は、CLB212に伝送される代わりに、RAM216に格納され得る。又は、データはCLB212に伝送されることに加え、少なくとも一部がRAM216にコピー(copy)され得る。多様な実施例で、光学的ビア226は、RAM216からのデータを読み取る/書き込みするために援用され得る。前述されたのは開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0057】
多様な実施例で、特定の動作に(例えば、行列積、行列コンボリューション)に対する処理速度は、データが伝送される内部帯域幅又は速度によって制限されることができる。このように、図示された実施例では、ダイ(202、204)の間で光ビア226を利用してデータを移す能力は、処理速度を大幅に向上できる。
【0058】
一実施例で、光通信(Photonic)リンク又は光学的ビア226は、通常の電気的リンクよりもはるかに高い帯域幅密度を可能にできる。例えば、光学的ビア226は、64Gb/sの電気的リンクの速度と比較して、128Gb/s(秒当たりギガバイトの)の帯域幅又は速度を達成できる。多様な実施例で、これはDWDM(Dense Wave Division Multiplexing)を介して実行でき、従って与えられた実質的に同一のシリコンフットプリント(footprint、外部端子)を用いてより高い帯域幅(電気リンクと比較して)を可能にする。前述されたのは開示された主題を限定しない説明的な一例に過ぎないことが理解されるであろう。
【0059】
多様な実施例で、複数のメモリダイ204がシステム200に包含され得る。斯かる実施例では、メモリのダイ204は、互いに接して、又はその上に積層され得る。一部の実施例で、メモリのダイ204の部分集合のみがLUTs214を含み得る。他の実施例で、ロジックダイ202を積層されたメモリダイ204の特定の一つと直接連結する多重の光学的ビア226が援用(employ)され得る。他の実施例で、一つの積層されたメモリダイ204を、他の積層されたメモリダイ204と直接連結する光ビア226が援用され得る。
【0060】
図3は、開示された主題に適合したシステム300の例示的な実施例のブロック図を示す。図示された実施例で、多数の集積回路ダイが積層され、又は他の方法により集積され、マルチチップモジュール又はシステムを形成され得る。図示された実施例では、光学的ビアと関連されたコンポーネントが集中的に表現されている。
【0061】
図示された実施例で、前述されたように、システム300は、メモリダイ304及びロジックダイ302を含み得る。これに加えて、斯かる実施例で、システム300はまた、光源390を含み得る。光源390は、光学的ビアによって使用される光を生成又はそうではない場合、提供できる。多様な実施例で、ダイ(302、304、又は390)の内、2つ又はそれ以上が、インタポーザ階層301によって結合され得る。
【0062】
図示された実施例で、ダイ(302、304)は、3つのエレメントによって連結され得る。下で記述されるように、光源リンク356は、光源390をメモリダイ304の光学的エレメント(例えば、変調器322)と結合することができる。アドレス/コマンド_リンク(又は、アドレス/コマンド_ビア)354はアドレス及びコマンドデータを伝送できる。
多様な実施例で、アドレス/コマンド_ビア354は、光学的又は電気的であり得る。このような実施例で、アドレス及びコマンド情報のために伝送されるより少ない量の情報に必要な帯域幅は、アドレス/コマンド_ビア354が電気的であることを許容できる。他の実施例で、アドレス/コマンド_ビア354は、光学的であり得る。図示された実施例で、データ_リンク(又はデータ_ビア)352は、前で記述されたように、光学的であり得る。多様な実施例で、リンク(352、354、356)は、光導波路を含み得る。
【0063】
次に、メモリダイ304からロジックダイ302へのデータの伝送が議論される。図示された実施例で、メモリダイ304は、前述されたように、第1データセットを取り込んで第2データセットを出力することにより、論理動作又は論理機能を遂行するように構成されるルックアップテーブル(LUT)334を含み得る。メモリダイ304は、第1又は第2データセットを格納するように構成される中間結果バッファ、メモリ又は回路336を包含できる。
【0064】
図示された実施例で、メモリダイ304は、第2データセットの電気的バージョンを受信し、そして第2データセットのバージョンを変調器322によって変換されるのに十分な電気的パワーで駆動又は生成するように構成されるドライバ回路328を含み得る。斯かる実施例で、メモリダイ304は、電気的信号(例えば、第2データセット)を光信号に変換するように構成される光変調器322を含み得る。斯かる実施例で、変調器322は、光源390又は光源390によって生成される信号(そして光源リンク356によって変調器322にルーティングされた)を取り込み、そしてドライバ328から受信されたデータの電気的バージョンの少なくとも一部により、光源390を変化、即ち変調できる。このデータの光学的バージョンは、以後に、データ_リンク(又はデータ_ビア)352を通って、ロジックダイ302に伝送される。
【0065】
図示された実施例で、ロジックダイ302は、光学的フィルタ及び/又は検出器324を含み得る。光学的検出器324は、光学的ビア(例えば、データ_ビア352)の導波路部分を経て伝送される光学的データを検出し、そして光学的データを電気データに変換するように構成され得る。ロジックダイ302は、受信された電気信号(例えば、第2データ)に電気的利得又は電力を提供するように構成されるアンプ回路326を含み得る。ロジックダイ302は、前述されたように、データを受信してこれを処理できる計算又は組み合わせ論理332を含み得る。
【0066】
多様な実施例で、ロジックダイ302からメモリダイ304へのデータの伝送は類似の方式で、しかし逆に動作できる。斯かる実施例で、ロジックダイ302は、ドライバ回路328及び光変調器322の自己自身のバージョンを含み得る。斯かる実施例で、ロジックダイ302の光変調器322は、インタポーザ301を経て、光源390と結合できる。メモリダイ304は、前で記述されたように、光学的フィルタ及び/又は検出器324、そしてアンプ回路326の自己自身のバージョンを含み得る。
【0067】
図示された実施例で、ロジックダイ302は、光学的ビア(352及び/又は354)を経たダイ間のデータトラフィックを調整するように構成されるスケジューラ回路340を含み得る。多様な実施例で、スケジューラ回路340は、特定の動作又は論理機能がCLB332又はLUT334によって遂行されなければならないときを判定することができる。多様な実施例で、スケジューラ回路340は、何時、データが光学的リンク352又は電気的リンク(例えば、リンク354の電気的バージョン)を経て伝送されるべきかを決定できる。前述されたのは開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0068】
図示された実施例で、LUT334、中間結果バッファ336、アンプ326、ドライバ328、CLB332及びスケジューラ340は、電気的コンポーネントであり得る。他方、図示された実施例で、光変調器322、光学的検出器324及び光源390は、少なくとも基本的に光学的コンポーネントであり得る。前述されたのは開示され主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0069】
図4は、開示された主題に適合したシステム491の例示的な実施例のブロック図である。図示された実施例で、システム491は、前で言及されたように、メモリダイを含み得る。図示された実施例で、メモリダイの多様なメモリセル又はエレメントに対するアクセスのメモリバンクレベルのグラニュラリティ(granularity)が議論される。
【0070】
図示された実施例で、システム491は、複数のメモリマット(memory mat)490(メモリセル、行及び列デコーダと共に図示された)を含み得る。このようなマット490は、メモリバンク420に配列され得る。多様な実施例で、システム491は、複数のメモリバンク420を包含できる。
【0071】
この文脈(コンテキスト)で、メモリマット490は、メモリバンク420のビルディングブロック(building block)であり得る。メモリバンク420の多重のマット490は、同時に動作して、メモリの動作(例えば、読み取り、書き込み)を実行できる。各メモリマット490は、メモリセルの一つ又はそれより多くのサブアレイ、そしてデコーダブロック(例えば、行及び列)を含み得る。前述されたのは開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0072】
図示された実施例で、メモリマット490は、バスネットワーク404を介して光学的ビア(即ち、導波路)402と通信的に結合され得る。斯かる実施例で、メモリバンク420の全体、及びそのデータは、光学的ビア(即ち、導波路)402から読み出し(read)される(源泉)か、又は光学的ビア(即ち、導波路)402に対して書き込み(write)される(目標又は目的地)か、を選択され得る。
【0073】
これらの実施例で、メモリバンク420が源泉として動作する、即ち、読み出し(read)されるとき、メモリバンク420のデータは、バッファ回路416に格納され得る。データは、その後に並列データを直列形態に変換するシリアライザ(serializer)回路414によって少なくとも一部分直列化される。電気的ドライバ412は、その後に、十分な利得又は電力を有する電気的形態のデータを提供できる。システム491は、バッファ回路416、直列化回路414、そして電気的ドライバ412を含み得る。
【0074】
図示された実施例で、光源406は、以後に、マイクロリング(micro−ring)変調器に404によって変調され得る。これは、データの電気的形態に応じて行われ、電気的データは光学的データに変換され得る。
図示された実施例で、各々異なる波長(λ)又は色と関連された四個のマイクロリング変調器404が図示される。前述されたのは、開示された主題を限定しない一つの説明的な例に過ぎないことが理解されるであろう。データの新しい光学的バージョンは、光学的ビア(即ち、導波路)402を経て伝送される。
【0075】
図5は、開示された主題に適合したシステム492の例示的な実施例のブロック図である。図示された実施例で、システム492は、前述されたように、メモリダイを含み得る。図示された実施例で、メモリダイの多様なメモリセル又はエレメントに対するアクセスのグラニュラリティ(granularity)のメモリマットレベルが議論される。
【0076】
図示された実施例で、システム491は、前述されたように、複数のメモリマット(メモリセル、行及び列デコーダとともに図示される)を含み得る。図示された実施例で、メモリマット490は、光学的ビア(即ち、導波路)402と結合されるか、又はこれらに対するアクセスを有する結合されたマット432と、光学的ビア(即ち、導波路)402から遮断、即ち、連結されない遮断されたマット434と、にグループ化される。
【0077】
図示された実施例で、結合されたメモリマット432の各々のメモリマット490は、光学的ビア(即ち、導波路)402と通信的に直接結合され得る。このような実施例で、データは特定のメモリマット490に伝送され、これらの大規模なグループ(例えば、メモリバンク)に伝送されない。多様な実施例で、各結合されたメモリマット432は、各々の変調技術又は形態(例えば、波長、色など)と関連され得る。
【0078】
このような実施例で、連結されたメモリマット432が源泉として動作する、即ち読み出し(read)されるとき、メモリマット490のデータは、バッファ回路416に格納される。以後に、データは並列データを直列形態に変換するシリアライザ(serializer)回路414によって少なくとも部分的に直列化される。以後に電気的ドライバ412は、十分な利得又は電力を有する電気的形態のデータを提供できる。システム491は、バッファ回路416、シリアライザ(serializer)回路414、そして電気的ドライバ412を含み得る。
【0079】
図示された実施例で、光源406は、以後に、マイクロリング変調器404によって変調され得る。これは、データの電気的形態に応じて実行され得、電気的データは、光学的データに変換される。図示された実施例で、各々異なる波長(λ)又は色と関連された四個のマイクロリング変調器404が図示される。前述されたのは、開示された主題を限定しない一つの説明的な例に過ぎないことが理解されるであろう。データの新しい光学的バージョンは、光学的ビア(即ち、導波路)402を経て伝送される。
【0080】
図6は開示された主題に適合したシステム493の例示的な実施例のブロック図である。図示された実施例で、システム493は、前述されたように、ロジックダイを含み得る。図示された実施例で、光学的ビア402の受信側が記述される。ロジックダイ及びメモリダイの双方は光学的ビアインタフェースの受信及び送信部分の各々のバージョンを含むことが理解されるであろう。
【0081】
図示された実施例で、データは、光学的ビア(即ち、導波路)402を経て伝送される。データは、マイクロリングフィルタ(micro−ring filters)464によって受信されたりフィルタされたり(filtered)することができる。システム493は、複数の光学的検出器(即ち、光検出器)466を含み得る。多様な実施例で、各光検出器466は、各マイクロリングフィルタ464と関連され得る。図示された実施例で、各々相異なる波長(λ)又は色と関連された四個のマイクロリングフィルタ464及び光検出器466が図示される。前述されたのは、開示された主題を限定しない一つの説明的な例に過ぎないことが理解されるであろう。光検出器に466は、前述されたように光信号又は光データを電気的信号又は電気的データに変換できる。
【0082】
図示された実施例で、システム493は、逆シリアライザ(deserializer)回路478を含むことができる。逆シリアライザ(deserializer)回路478は、受信した信号又はデータをシリアル(serial)形態からパラレル(parallel)形態に変換するように構成され得る。システム493は、データを格納するバッファ回路476を含み得る。以後にデータは目標又は目的地プロセッシングブロック480によって送信又は受信され得る。
【0083】
多様な実施例で、各処理ブロック480は、入力バッファ482及び/又は出力バッファ488(例えば、フリップフロップ)、1つ又は複数のCLB486、そしてディスパッチャ(dispatcher)回路484を含み得る。多様な実施例で、ディスパッチャ回路484は、バッファ回路(例えば、バッファ476)からのデータを読み書きするように構成され得る。前述されたように、システム493は、
図4及び
図5に図示されたものと類似した光学的ビア402に対する伝送インタフェースを含み得る。この伝送インタフェース(図示せず)は、ディスパッチャ回路484が書き込みを行う自分のバッファ回路(バッファ416に類似した)を含み得る。
【0084】
図7は、開示された主題の原理に基づいて形成された半導体デバイスを包含できる情報処理システム500の概念的ブロック図である。
【0085】
図7を参照すると、情報処理システム500は、開示された主題の原理に基づいて製造された一つ又は複数のデバイスを含み得る。他の実施例で、情報処理システム500は、開示された主題の原理に基づく1つ又は複数の技術を援用又は実行できる。
【0086】
多様な実施例で、情報処理システム500は、例えば、ラップトップ、デスクトップ、ワークステーション、サーバ、ブレードサーバ(blade server)、パーソナルデジタルアシスタント(PDA)、スマートフォン、タブレットのようなコンピューティングデバイス、そして他の適切なコンピュータ、仮想マシン、又はその仮想コンピューティングデバイスを含み得る。多様な実施例で、情報処理システム500は、ユーザ(図示せず)によって使用され得る。
【0087】
開示された主題に適合した情報処理システム500は、中央処理部(CPU)、ロジック、又はプロセッサ510をさらに含むことができる。いくつかの実施例で、プロセッサ510は、1つ又は複数の機能ユニットブロック(FUB)又は組み合わせ論理ブロック(CLB)515を含み得る。このような実施例で、組み合わせ論理ブロックは、多様なブール論理演算(例えば、NAND、NOR、NOT、XOR)、安定化論理デバイス(例えば、フリップフロップ、ラッチ)、他の論理デバイス、又はこれらの組み合わせを含み得る。このような組み合わせ論理動作は、単純な又は複雑な方式で構成されて入力信号を処理して、望みの結果を達成できる。
同期式組み合わせ論理動作の幾つかの説明的な例が記述されるが、開示された主題は前記記述内容に限定されず、例えば、非同期式動作又はこれらの組み合わせを包含できることが理解されるであろう。一実施例で、組み合わせ論理動作は、複数の相補的金属酸化物半導体(CMOS)トランジスタを含み得る。多様な実施例で、このようなCMOSトランジスタは配置されて、論理動作を遂行するゲートを形成できる。しかし、他の技術が、開示された主題の範囲内で使用され得ることが理解されるであろう。
【0088】
開示された主題に適合した情報処理システム500は、揮発性メモリ520(例えば、ランダムアクセスメモリ(RAM))をさらに含み得る。開示された主題に適合した情報処理システム500は、不揮発性メモリ530(例えば、ハードドライブ、光学的メモリ、NAND又はフラッシュメモリ)をさらに含み得る。幾つかの実施例で、揮発性メモリ520、不揮発性メモリ530、又はこれらの組み合わせ、又は一部分は、ストレージ媒体と称され得る。多様な実施例で、揮発性メモリ520及び/又は不揮発性メモリ530は、半永久的に又は実質的に永続的な形態でデータを格納するように構成され得る。
【0089】
多様な実施例で、情報処理システム500は、情報処理システム500が通信ネットワークの一部であり、そして通信ネットワークを介して通信することを許容するように構成される1つ又は複数のネットワークインタフェース540を包含できる。ワイファイ(Wi−Fi)プロトコルの例は、IEEE(Institute of Electrical and Electronics Engineers)802.11g、IEEE 802.11nを含み得るが、これに限定されない。携帯電話のプロトコルの例は、IEEE 802.16m(進化版無線MAN(Wireless Metropolitan Area Network Advanced)としても知られている)、進化版LTE(Long Term Evolution Advanced)、EDGE(Enhanced Data rates for GSM(登録商標)(Global System for Mobile Communications) Evolution)、HSPA+(Evolved High−Speed Packet Access)を含み得るが、これに限定されない。有線プロトコルの例は、IEEE 802.3(イーサネット(登録商標)(Ethernet)としても知られている)、ファイバーチャンネル、電力線通信(例えば、ホームプラグ(HomePlug)、IEEE 1902)を含み得るが、これに限定されない。前述されたのは開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0090】
開示された主題に適合した情報処理システム500は、ユーザインタフェース部550(例えば、ディスプレイアダプタ、ハプティックインタフェース(haptic interface)、ヒューマンインタフェースデバイス)をさらに含み得る。多様な実施例で、ユーザインタフェース部550は、ユーザから入力を受信したり、及び/又はユーザに出力を提供したりするように構成され得る。他の種類のデバイスも、またユーザとの相互作用を提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば視覚フィードバック、聴覚フィードバック、又は触覚フィードバックのような任意の形態の感覚フィードバックであり得る。音声、言語又は触覚入力を含むユーザからの入力は、任意の形態で受信され得る。
【0091】
多様な実施例で、情報処理システム500は、一つ又はそれより多くの他のデバイス又はハードウェアコンポーネント560(例えば、ディスプレイ(又はモニタ)、キーボード、マウス、カメラ、指紋リーダ(fingerprint reader)、ビデオプロセッサ)を包含できる。前述されたのは開示された主題を限定しない幾つかの説明的な例に過ぎないことが理解されるであろう。
【0092】
開示された主題に適合した情報処理システム500は、一つ又は複数のシステムバス505をさらに含み得る。斯かる実施例で、システムバス505は、プロセッサ510、揮発性メモリ520、不揮発性メモリ530、ネットワークインタフェース540、ユーザインタフェース部550、そして1つ又はそれより多くのハードウェアコンポーネント560を通信的に結合するように構成され得る。プロセッサ510によって処理されるデータ又は不揮発性メモリ530の外部から入力されるデータは、不揮発性メモリ530又は揮発性メモリ520に格納され得る。
【0093】
多様な実施例において、情報処理システム500は、一つ又は複数のソフトウェアコンポーネント570を包含又は実行することができる。いくつかの実施例で、ソフトウェアコンポーネント570は、オペレーティングシステム(OS)及び/又はアプリケーションを含み得る。幾つかの実施例で、OSは、アプリケーションに1つ又は複数のサービスを提供し、そしてアプリケーションと情報処理システム500の多様なハードウェアコンポーネント(例えば、プロセッサ510、ネットワークインタフェース540)との間の仲介者(intermediary)として管理又は動作するように構成され得る。
このような実施例で、情報処理システム500は、局部的に(例えば、不揮発性メモリ530内に)インストール(install)されて、プロセッサ510によって直接実行され、そしてOSと直接に相互作用するように構成される1つ又は複数のネイティブアプリケーション(native applications)を含み得る。斯かる実施例で、ネイティブアプリケーションは、プリコンパイルされた(pre−compiled)マシン実行可能なコードを包含できる。幾つかの実施例で、ネイティブアプリケーションは、ソース又はオブジェクトコードを、以後にプロセッサ510によって実行される実行可能なコードに変換するように構成されるスクリプトインタプリタ(script interpreter)(例えば、Cシェル(csh)、アップルスクリプト(AppleScript)、オートホットキー(AutoHotkey))又は仮想実行マシン(VM)(virtual execution machine)(例えば、ジャバ(Java(登録商標))仮想マシン、マイクロソフト(Microsoft)共通言語ランタイム)を包含できる。
【0094】
前で記述された半導体デバイスは、多様なパッケージング技術を用いてカプセル化されることができる。例えば、開示された主題の原理に基づいて製造された半導体デバイスは、パッケージオンパッケージ(POP)(package on package)技術、ボールグリッドアレイ(BGAs)(ball grid arrays)技術、チップスケールパッケージ(CSPs)(chip scale packages)技術、プラスチックリードレスチップキャリア(PLCC)(plastic leadless chip carrier)技術、プラスチックデュアルインラインパッケージ(PDIP)(plastic dual in−line package)技術、ダイインワッフルパック(die in waffle pack )技術、ダイインウェハフォーム(die in wafer form)技術、チップオンボード(COB)(chip on board)技術、セラミックデュアルインラインパッケージ(CERDIP)(ceramic dual in−line package)技術、プラスチックメトリッククワッドフラットパッケージ(PMQFP)(plastic metric quad flat package)技術、プラスチッククワッドフラットパッケージ(PQFP)(plastic quad flat package)技術、スモールアウトラインパッケージ(SOP)(small outline package)技術、シュリンクスモールアウトラインパッケージ(SSOP)(shrink small outline package)技術、シンスモールアウトラインパッケージ(TSOP)(thin small outline package)技術、シンクワッドフラットパッケージ(TQFP)(thin quad flat package)技術、システムインパッケージ(SIP)(system in package)技術、マルチチップパッケージ(MCP)(multi−chip package)技術、ウェハレベルファブリケーテッドパッケージ(WFP)(wafer−level fabricated package)技術、ウエハレベルプロセスドスタックパッケージ(WSP)(wafer−level processed stack package)技術、又はこの分野で熟練された者に知られている他の技術の何れか1つを利用して、カプセル化され得る。
【0095】
開示された主題に係る方法の各ステップは、コンピュータプログラムを実行する1つ又は複数のプログラム可能なプロセッサによって遂行され得、その際、前記コンピュータプログラムは入力データに対して動作し、そして出力を生成することにより、機能を遂行する。開示された主題に係る方法の各ステップは、また、専用論理回路(例えば、FPGA(field programmable gate array)又はASIC(application−specific integrated circuit))によって遂行され得、その場合、開示された主題に係る装置は専用論理回路で具現され得る。
【0096】
多様な実施例で、コンピュータ読み出し可能な媒体は、実行された時に方法のステップの少なくとも一部をデバイスに遂行させる命令を含み得る。幾つかの実施例で、コンピュータ読み出し可能な媒体は、磁気媒体、光学的媒体、他の媒体、又はこれらの組み合わせ(例えば、CD−ROM、ハードドライブ、読み取り専用メモリ、フラッシュドライブ)を含み得る。斯かる実施例で、コンピュータ読み出し可能な媒体は実在し、非一時的に(半永久的に)具現された製造物品であり得る。
【0097】
開示された主題の原理が例示的な実施例を参照して説明されたが、多様な変更及び修正が、ここに開示された概念の思想及び範囲から逸脱せずに行われ得ることがこの分野における熟練した者には明らかであろう。従って、上述の実施例は、限定的ではなく、ひたすら説明的であることが理解されるべきである。従って、開示された概念の範囲は、下の特許請求の範囲及びそれらの等価物の最も広い許容可能な解釈によって定められ、上述の説明によって制限も限定もされてはならない。従って、添付の請求項は、実施例の範囲内に属するこのような全ての修正及び変更を含むと意図されていると理解されるべきである。