IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザイリンクス インコーポレイテッドの特許一覧

特許7611902マルチチップ積層デバイスのための冗長方式
<>
  • 特許-マルチチップ積層デバイスのための冗長方式 図1
  • 特許-マルチチップ積層デバイスのための冗長方式 図2
  • 特許-マルチチップ積層デバイスのための冗長方式 図3
  • 特許-マルチチップ積層デバイスのための冗長方式 図4
  • 特許-マルチチップ積層デバイスのための冗長方式 図5
  • 特許-マルチチップ積層デバイスのための冗長方式 図6
  • 特許-マルチチップ積層デバイスのための冗長方式 図7
  • 特許-マルチチップ積層デバイスのための冗長方式 図8
  • 特許-マルチチップ積層デバイスのための冗長方式 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-26
(45)【発行日】2025-01-10
(54)【発明の名称】マルチチップ積層デバイスのための冗長方式
(51)【国際特許分類】
   H01L 25/07 20060101AFI20241227BHJP
   H01L 25/065 20230101ALI20241227BHJP
   H01L 25/18 20230101ALI20241227BHJP
   H03K 19/17704 20200101ALI20241227BHJP
   H03K 19/17796 20200101ALI20241227BHJP
【FI】
H01L25/08 C
H03K19/17704
H03K19/17796
【請求項の数】 15
(21)【出願番号】P 2022516331
(86)(22)【出願日】2020-06-17
(65)【公表番号】
(43)【公表日】2022-11-21
(86)【国際出願番号】 US2020038213
(87)【国際公開番号】W WO2021055038
(87)【国際公開日】2021-03-25
【審査請求日】2023-06-12
(31)【優先権主張番号】16/571,788
(32)【優先日】2019-09-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ヤング, スティーヴン ピー.
(72)【発明者】
【氏名】ガイド, ブライアン シー.
【審査官】鈴木 駿平
(56)【参考文献】
【文献】特開2004-128014(JP,A)
【文献】特開2014-053055(JP,A)
【文献】国際公開第2016/098691(WO,A1)
【文献】国際公開第2017/126014(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H01L 25/065
H01L 25/07
H01L 25/18
H03K 19/17704
H03K 19/17796
H10B 80/00
(57)【特許請求の範囲】
【請求項1】
垂直に積層されたチップを備えたチップスタックを備えるマルチチップデバイスであって、
前記チップの隣り合うペアが互いに直接接続され、
前記チップが、コントローラおよびメモリを含む第1のチップを含み、
前記チップが、前記チップスタック内で前記第1のチップの上に2つ以上の第2のチップを含み、前記2つ以上の第2のチップのそれぞれが処理集積回路を含み、
前記チップスタックは、前記処理集積回路の一部が不良であるときに前記2つ以上の第2のチップの前記処理集積回路の機能のサブセットを動作させるように構成可能であり、
前記メモリが、前記処理集積回路の動作可能性に関連する構成情報を記憶するように動作可能であり、
前記コントローラが、前記処理集積回路に通信可能に接続され、少なくとも前記機能のサブセットの動作を実装するための前記構成情報に基づいて、前記処理集積回路に構成データを配信するように動作可能である、マルチチップデバイス。
【請求項2】
前記処理集積回路のそれぞれがプログラマブルロジック領域を含み、
前記チップスタックが、前記2つ以上の第2のチップよりも少数の前記プログラマブルロジック領域のそれぞれの全体を動作させ、前記2つ以上の第2のチップのうちの少なくとも1つの前記プログラマブルロジック領域のそれぞれの全体を無効化するように構成可能である、請求項1に記載のマルチチップデバイス。
【請求項3】
前記処理集積回路のそれぞれがプログラマブルロジック領域を含み、
前記チップスタックが、前記2つ以上の第2のチップの前記プログラマブルロジック領域のいずれかのサブ領域を動作させ、前記2つ以上の第2のチップの前記プログラマブルロジック領域のいずれかのサブ領域を無効化するように構成可能である、請求項1に記載のマルチチップデバイス。
【請求項4】
前記2つ以上の第2のチップの前記プログラマブルロジック領域のサブ領域がスリバとして整列され、前記スリバのそれぞれが前記2つ以上の第2のチップのそれぞれの前記プログラマブルロジック領域のサブ領域を含み、前記2つ以上の第2のチップがそれぞれチップ間ブリッジを備え、前記チップ間ブリッジのそれぞれが(i)隣り合うスリバ内の、および(ii)隣り合うチップまたは同じチップ内の、前記プログラマブルロジック領域のサブ領域間に接続される、請求項3に記載のマルチチップデバイス。
【請求項5】
前記コントローラが前記構成データをロードするように動作可能であり、前記構成データは前記処理集積回路のうちの1つまたは複数で動作可能であり、
前記チップスタックは、前記チップスタックの前記処理集積回路のどの部分が動作するように構成されているかとは無関係に前記構成データを動作させるように構成可能である、請求項1に記載のマルチチップデバイス。
【請求項6】
前記2つ以上の第2のチップの前記処理集積回路のうちの少なくとも1つが、前記2つ以上の第2のチップの前記処理集積回路のうちの別の少なくとも1つとは異なる、請求項1に記載のマルチチップデバイス。
【請求項7】
前記2つ以上の第2のチップの前記処理集積回路のうちの2つ以上が同じ処理集積回路である、請求項1に記載のマルチチップデバイス。
【請求項8】
デバイスを実現する方法であって、前記方法が、
複数の処理集積回路の機能のサブセットを、前記処理集積回路の一部が不良であるときに動作させるようにコントローラによってチップスタックを構成することを含み、前記チップスタックは垂直に積層されたチップを備え、前記チップの隣り合うペアが互いに直接接続され、前記チップが第1のチップと、前記チップスタックにおける前記第1のチップの上の2つ以上の第2のチップとを含み、前記第1のチップが前記コントローラおよびメモリを含み、前記2つ以上の第2のチップのそれぞれが前記処理集積回路のそれぞれの1つを含み、前記コントローラは、前記複数の処理集積回路に通信可能に接続され、前記メモリに記憶された構成情報に基づいて、前記複数の処理集積回路のどの1つまたは複数の部分が前記機能のサブセットを動作させるかを構成するための構成データを配信し前記構成情報は前記複数の処理集積回路の動作可能性に関連する、方法。
【請求項9】
前記チップスタックを構成することが、前記2つ以上の第2のチップよりも少数のプログラマブルロジック領域のそれぞれの全体を動作させ、前記2つ以上の第2のチップのうちの少なくとも1つのプログラマブルロジック領域のそれぞれの全体を無効化するように前記チップスタックを構成することを含み、前記処理集積回路のそれぞれがプログラマブルロジック領域を含む、請求項8に記載の方法。
【請求項10】
前記チップスタックを構成することが、前記2つ以上の第2のチップのプログラマブルロジック領域のいずれかのサブ領域を動作させ、前記2つ以上の第2のチップのプログラマブルロジック領域のいずれかのサブ領域を無効化するように前記チップスタックを構成することを含み、前記処理集積回路のそれぞれがプログラマブルロジック領域を含む、請求項8に記載の方法。
【請求項11】
前記2つ以上の第2のチップの前記プログラマブルロジック領域のサブ領域がスリバとして整列され、前記スリバのそれぞれが前記2つ以上の第2のチップのそれぞれの前記プログラマブルロジック領域のサブ領域を含み、前記2つ以上の第2のチップがそれぞれチップ間ブリッジを備え、前記チップ間ブリッジのそれぞれが(i)隣り合うスリバ内の、および(ii)隣り合うチップまたは同じチップ内の、前記プログラマブルロジック領域のサブ領域間に接続され、前記チップスタックを構成することが、前記チップ間ブリッジを構成することを含む、請求項10に記載の方法。
【請求項12】
前記2つ以上の第2のチップの前記処理集積回路のうちの少なくとも1つが、前記2つ以上の第2のチップの前記処理集積回路のうちの別の少なくとも1つとは異なる、請求項8に記載の方法。
【請求項13】
前記2つ以上の第2のチップの前記処理集積回路のうちの2つ以上が同じ処理集積回路である、請求項8に記載の方法。
【請求項14】
積層されたチップを備え前記チップの隣り合うペアが互いに結合されたチップスタックを備えるマルチチップデバイスであって、
前記チップが、第1のチップと、前記第1のチップ上に積層された2つ以上の第2のチップとを含み、
前記第1のチップが、コントローラおよびメモリを含み、
前記2つ以上の第2のチップのそれぞれが、処理集積回路を含み、
前記メモリが、不良である前記処理集積回路の部分を示す構成情報を記憶するように動作可能であり、
前記コントローラが、前記処理集積回路に通信可能に接続され、前記2つ以上の第2のチップの前記処理集積回路の機能の少なくともサブセットの動作を実装するための前記構成情報に基づいて、前記処理集積回路の非不良部分に構成データを配信するように動作可能であり、
前記チップスタックは、前記処理集積回路の一部が不良であるときに前記2つ以上の第2のチップの前記処理集積回路の前記機能のサブセットを動作させるように構成可能である、マルチチップデバイス。
【請求項15】
前記処理集積回路のそれぞれがプログラマブルロジック領域を含む、請求項14に記載のマルチチップデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の例は一般に、積層されたチップを含むマルチチップ積層デバイスにおける冗長構成に関する。
【背景技術】
【0002】
一部のマルチチップデバイスにおいては、フィールドプログラマブルゲートアレイ(FPGA)のチップがパッケージ化されてパッケージを形成することができ、チップは共通の基板またはインターポーザ上に配置される。チップは、インターポーザの同じ面に横並びで取り付けることができる。インターポーザは一般にパッシブ(例えば、トランジスタなどのアクティブ構成要素を含まない)であり、チップを相互に結合するためのデータパスを含む。
【0003】
製造欠陥により、マルチチップデバイスに組み込まれるべき1つまたは複数のチップが機能しないことがある。マルチチップデバイスの上記の例では、欠陥チップは、インターポーザに取り付ける前に特定され廃棄され得る。マルチチップ積層デバイスの開発中の技術においては、いくつかの状況の下で、欠陥チップは、たとえ特定されても、マルチチップ積層デバイスに組み込まれることがあり、マルチチップ積層デバイス内の欠陥チップはマルチチップ積層デバイスを不良にする可能性があるため、製造されるマルチチップ積層デバイスの歩留まりが低下する結果を生じ得る。
【発明の概要】
【0004】
本明細書に記載される例は、マルチチップ積層デバイスにおける冗長構成に関する。マルチチップデバイスは、例えば、デバイス仕様を満たすように動作可能なマルチチップデバイスのチップのそれぞれを含むデバイス仕様に従って製造され得る。マルチチップデバイスは、別のデバイス仕様、例えば、動作可能な、より少数ではあるが共通のチップ(またはその部分)を有するデバイス仕様、に従って動作可能であるように構成可能なことがある。このような例では、ある仕様に従って製造される不良なマルチチップデバイスが、異なる仕様に従って動作するように再生可能である。さらなる例は、不良なデバイスを再生する能力に基づいてマルチチップデバイスを実現するための技術を記述する。
【0005】
本明細書に記載される一例はマルチチップデバイスである。マルチチップデバイスは、垂直に積層されたチップを含むチップスタックを含む。チップの隣り合うペアが互いに直接接続される。チップのうちの2つ以上のそれぞれが処理集積回路を含む。チップスタックは、処理集積回路の一部が不良であるときにチップのうちの2つ以上のチップの処理集積回路の機能のサブセットを動作させるように構成可能である。
【0006】
本明細書に記載される別の例はデバイスを実現する方法である。チップスタックが、複数の処理集積回路の機能のサブセットを、処理集積回路の一部が不良であるときに動作させるように構成される。チップスタックは垂直に積層されたチップを含む。チップの隣り合うペアが互いに直接接続される。チップのうちの2つ以上のチップのそれぞれが処理集積回路のそれぞれの1つを含む。
【0007】
本明細書に記載される別の例はマルチチップデバイスである。マルチチップデバイスは、チップを備えたチップスタックを含む。チップのそれぞれが集積回路を含む。チップのうちの少なくとも1つが、プログラマブルロジック領域を備えた集積回路を含む。チップスタックは、チップスタックのすべてのチップのそれぞれの全体を動作させるように構成可能であり、チップスタックのすべてのチップの全体未満を動作させるように構成可能である。チップスタックが、チップスタックのすべてのチップの全体未満を動作させるように構成されるとき、プログラマブルロジック領域を備えた集積回路を有するチップのうちの少なくとも1つのチップのプログラマブルロジック領域の少なくとも一部が動作可能である。チップスタックは、構成データをロードし動作させるように動作可能であり、構成データは、チップスタックの1つまたは複数のプログラマブルロジック領域で動作可能である。チップスタックは、チップスタックのチップのどの部分が動作するように構成されているかとは無関係に構成データを動作させるように構成可能である。
【0008】
本明細書に記載される別の例はデバイスを実現する方法である。チップのチップスタックを含むマルチチップデバイスが検査される。チップのそれぞれが処理集積回路を含む。マルチチップデバイスは、第1のデバイス仕様に従って製造される。マルチチップデバイスは第1のデバイス仕様または第1のデバイス仕様とは異なる第2のデバイス仕様に従って動作可能であるかどうかが、マルチチップデバイスを検査することに基づいて判定される。マルチチップデバイスは、判定に基づいて第1のデバイス仕様および第2のデバイス仕様の一方に従って動作可能であるようにプログラムされる。
【0009】
本明細書に記載される追加的な例はデバイスを実現する方法である。マルチチップ積層デバイスが第1の仕様に従って製造される。第1の仕様は第1の個数のチップを含む。第1の個数のチップは、プログラマブルロジック領域を備えた集積回路を備える少なくとも1つのチップを含む。マルチチップ積層デバイスは検査される。マルチチップ積層デバイスは、第1の仕様または第2の仕様に従って動作可能であるように構成される。第2の仕様は、第1の個数のチップよりも少数の第2の個数のチップを含む。第2の個数のチップは、プログラマブルロジック領域を備えた集積回路を備える少なくとも1つのチップを含む。
【0010】
本明細書に記載されるさらなる例はデバイスを製造する方法である。第1の仕様に従って実現されるべきマルチチップデバイスの第1の目標数および第2の仕様に従って実現されるべきマルチチップデバイスの第2の目標数が取得される。第1の仕様に従って製造されるべきマルチチップデバイスの第1の製造数が、第1の目標数および第1の仕様による製造の第1の期待歩留まりに基づいて判定される。第2の目標数を少なくとも部分的に実現するように再生可能な、第1の仕様に従って製造されるべき期待される不良マルチチップデバイスの再生数が判定される。第2の仕様に従って製造されるべきマルチチップデバイスの第2の製造数が、再生数を除いた第2の目標数に基づいて、および第2の仕様による製造の第2の期待歩留まりに基づいて判定される。第1の製造数のマルチチップデバイスが、第1の仕様に従って製造される。第2の製造数のマルチチップデバイスが、第2の仕様に従って製造される。
【0011】
本明細書に記載される一層さらなる例はデバイスを製造する方法である。相異なる仕様に従って実現されるべきマルチチップデバイスのそれぞれの目標数が特定される。目標数のそれぞれが充足されるまで反復的に、(i)仕様のうち、最高の製造コストを有し未充足の残りの目標数を有する仕様に従って製造されるべきマルチチップデバイスの製造数が判定され、(ii)仕様のうちの他の仕様のマルチチップデバイスのそれぞれの目標数を少なくとも部分的に実現し充足するように再生可能な仕様に従って製造される不良なマルチチップデバイスのそれぞれの期待される再生可能数が判定される。製造数を判定することは、未充足の残りの目標数および仕様による製造の期待歩留まりに基づく。それぞれの製造数のマルチチップデバイスが仕様に従って製造される。
【0012】
上記の特徴が詳細に理解できる仕方で、上記で簡潔に要約したことのより詳細な説明を、例示的な実装形態を参照して行うことができ、そのいくつかは添付図面に示される。しかし、添付図面は典型的な例示的実装形態のみを示しているため、その適用範囲の限定とみなしてはならないことに留意されたい。
【図面の簡単な説明】
【0013】
図1】いくつかの例によるマルチチップデバイスの構造を示す図である。
図2】いくつかの例による図1のマルチチップデバイスを形成する方法のフローチャートである。
図3】いくつかの例によるマルチチップデバイス内のチップのプログラマブルロジック領域を無効化することの概略図である。
図4】いくつかの例による再生方式を可能にし得る、いくつかの例示的なマルチチップデバイス仕様の図である。
図5】いくつかの例によるマルチチップデバイスのプログラマブルロジック領域のサブ領域を無効化することの概略図である。
図6】いくつかの例によるマルチチップデバイスのプログラマブルロジック領域のサブ領域を無効化することの概略図である。
図7】いくつかの例によるチップ上およびスリバ間のチップ間ブリッジの回路図である。
図8】いくつかの例によるマルチチップデバイスを実現する方法のフローチャートである。
図9】いくつかの例によるマルチチップデバイスを実現する方法のフローチャートである。
【発明を実施するための形態】
【0014】
理解を容易にするため、いくつかの図に共通の同一の要素を表すために、可能な場合には、同一の参照番号が使用されている。一例の要素が他の例に有益に組み込まれ得ると考えられる。
【0015】
以下、さまざまな特徴が図を参照して説明される。なお、図は縮尺通りに描かれることもそうでないこともあり、類似の構造または機能の要素が図全体を通して同様の参照番号によって表されることに留意されたい。図は、特徴の説明を容易にすることを意図するのみであることに留意されたい。図は、網羅的な説明として、または特許請求の範囲に対する限定としては意図されていない。さらに、示される例は、示されるすべての態様または利点を有している必要はない。特定の例に関連して記載される態様または利点は、その例に必ずしも限定されず、たとえ例示されていなくても、またはたとえ明示的に記載されていなくても、他の例において実施され得る。
【0016】
本明細書に記載される例は、マルチチップ積層デバイスにおける冗長構成に関する。マルチチップデバイスは、チップのスタックを含み得る。マルチチップデバイスは、例えば、デバイス仕様を満たすように動作可能なマルチチップデバイスのチップのそれぞれを含むデバイス仕様に従って製造され得る。しかし、製造の結果として、マルチチップデバイスのチップのうちの1つまたは複数が、全体的に、または部分的に、不良となり得る。マルチチップデバイスは、別のデバイス仕様、例えば、動作可能な、より少数ではあるが共通のチップ(またはその部分)を有するデバイス仕様、に従って動作可能であるように構成可能なことがある。本明細書に記載されるいくつかの例では、不良部分を有するチップの全体が、マルチチップデバイスを構成することによって無効化され得る。いくつかの例では、不良となったさまざまな部分が無効化されることができる一方、チップの他の機能する部分は、マルチチップデバイスを構成することによって動作するように構成される。いくつかの例では、1つの仕様に従って製造された不良なマルチチップデバイスが、異なる仕様に従って動作するように再生され得る。
【0017】
いくつかの例は、不良なデバイスを再生する能力に基づいてマルチチップデバイスを実現する技術を記載する。示されるように、1つのデバイス仕様に従って製造された一部のマルチチップデバイスは別のデバイス仕様に従って動作するように再生可能であり得るため、別のデバイス仕様に従って動作可能であるように再生されたマルチチップデバイスは、別のデバイス仕様に従って製造されるマルチチップデバイスの個数を減少させることができる。したがって、別のデバイス仕様に従って製造されるべきマルチチップデバイスの個数を減少させることによって、製造コストを減少させ得る。
【0018】
本明細書に記載されるさまざまな例は、フィールドプログラマブルゲートアレイ(FPGA)の場合などの、プログラマブルロジック領域を有するマルチチップデバイスのチップに関連して説明される。本明細書に記載される概念は、任意の集積回路を有するマルチチップデバイスのチップに拡張され得る。例えば、冗長構成は、複数のチップがプロセッサ、メモリ、または任意の他の回路を有し、さらに特定用途向け集積回路(ASIC)であり得るときに実装され得る。本明細書で使用される場合、「処理集積回路」は、単にデータを記憶するメモリ、およびメモリに付随する任意の回路(例えば、メモリコントローラ、アドレスデコーダなど)とは異なり、データを処理または操作することが可能であり、そのように構成され、および/または構成可能である回路を備えた集積回路を指す。処理集積回路は、データを処理または操作することが可能であり、そのように構成され、および/または構成可能である回路に加えてメモリを含み得る。処理集積回路の例は、プログラマブルロジック領域を含む集積回路(例えば、FPGA)、プロセッサ(例えば、中央処理装置(CPU)、グラフィクス処理装置(GPU)など)、ASICなど、またはそれらの組合せを含む。
【0019】
図1は、いくつかの例によるマルチチップデバイスの構造である。図1に示すマルチチップデバイスは、本明細書に記載されるさまざまな例の態様の説明および理解を容易にするためのものである。さまざまな他のマルチチップデバイスが異なる構造、異なる数のチップ、追加的な構成要素などを有し得る。
【0020】
マルチチップデバイスは、第1のチップ102、第2のチップ104、第3のチップ106、および第4のチップ108を含む。一般的に、チップ102~108は積層され、マルチチップデバイスにおけるチップスタックを形成する。チップ102~108は、いくつかの例では、アクティブダイオンアクティブダイ(AoA:Active die-on-Active die)デバイスを形成するように積層される。以下で説明するようないくつかの例では、より多くのまたはより少ないチップがチッブスタックに含まれ得る。例えば、第2のチップ104および/または第3のチップ106のうちの1つまたは複数がチップスタックから除去され、またはチップスタックに追加され得る。
【0021】
チップ102~108のそれぞれは、半導体基板112と、それぞれの半導体基板112の表側の表側誘電体層114とを含む。表側誘電体層114は、その内部に形成されたメタライゼーション(例えば、金属ラインおよび/またはヴィア)(図示されているが具体的に付番されていない)を含み、集積回路内のさまざまな構成要素を電気的に接続することができる。チップ102~106のそれぞれは、それぞれの半導体基板112の裏側の裏側誘電体層116を含む。裏側誘電体層116は、その内部に形成されたメタライゼーション(例えば、金属ラインおよび/またはヴィア)(図示されているが具体的に付番されていない)を含み、集積回路内のさまざまな構成要素を電気的に接続することができる。チップ102~108の各半導体基板112は、例えば、それぞれの半導体基板112の表側の表面の上および/または中に形成されたトランジスタ118を含む。トランジスタ118および任意の他の構成要素は、表側誘電体層114内のメタライゼーションに接続され得る。それぞれのチップ102~106の各半導体基板112は、貫通する裏側基板貫通ヴィア(TSV:through-substrate via)120を有し、それぞれのチップ102~106の表側誘電体層114内のメタライゼーションを裏側誘電体層116内のメタライゼーションに電気的に接続することができる。
【0022】
表側ボンドパッド122が、それぞれの半導体基板112から遠位の外側表面で、チップ102~108のそれぞれの表側誘電体層114内に形成される。表側ボンドパッド122は、それぞれの表側誘電体層114内のメタライゼーションに接続される。裏側ボンドパッド124が、それぞれの半導体基板112から遠位の外側表面で、チップ104、106のそれぞれの裏側誘電体層116内に形成される。裏側ボンドパッド124は、それぞれの裏側誘電体層116内のメタライゼーションに接続される。
【0023】
チップ102~108は(例えば、金属間および酸化物間結合を使用したハイブリッド結合によって)互いに結合される。第1のチップ102は、第1のチップ102の表側誘電体層114の表側ボンドパッド122および外側表面が第2のチップ104の表側誘電体層114の表側ボンドパッド122および外側表面に結合するように、表側間で第2のチップ104に結合される。第2のチップ104は、第2のチップ104の裏側誘電体層116の裏側ボンドパッド124および外側表面が第3のチップ106の表側誘電体層114の表側ボンドパッド122および外側表面に結合するように、裏側と表側の間で第3のチップ106に結合される。第3のチップ106は、第3のチップ106の裏側誘電体層116の裏側ボンドパッド124および外側表面が第4のチップ108の表側誘電体層114の表側ボンドパッド122および外側表面に結合するように、裏側と表側の間で第4のチップ108に結合される。
【0024】
結合の他の配置が実装され得る。他の例では、チップ102~108は(ミニバンプ、はんだなどの)外部コネクタを使用して互いに取り付けられ得る。いくつかの例では、チップ102~108のうちのいくつかが外部コネクタによって互いに取り付けられることができる一方、他のチップは外部コネクタを使用せずに互いに結合されることができる。結合と外部コネクタの使用との任意の置換が実装され得る。
【0025】
外側コネクタボンドパッド126(例えば、アルミニウムパッド)が、チップ102の半導体基板112から遠位の外側表面で、チップ102の裏側誘電体層116内に形成される。外側コネクタボンドパッド126は、チップ102の裏側誘電体層116内のメタライゼーションに接続される。パッシベーション層128が、チップ102の半導体基板112から遠位の外側表面上に形成され、そこを貫通するそれぞれの開口部が外側コネクタボンドパッド126を露出させる。外部コネクタ130(例えば、崩壊制御チップ接続(C4:controlled collapse chip connection)、ミニバンプなど)が、パッシベーション層128内の開口部を貫通するそれぞれの外側コネクタボンドパッド126上に形成される。
【0026】
外部コネクタ130は、パッケージ基板に取り付けられ得る。パッケージ基板は、例えば、プリント回路基板(PCB)にさらに取り付けられて、パッケージ基板(したがってマルチチップデバイス)をPCBに取り付けることができる。さまざまな他の構成要素がマルチチップデバイスに含まれ得る。例えば、インターポーザ、(成形コンパウンド、MUFなどのような)封止材などが、マルチチップデバイスに含まれ得る。当業者は、マルチチップデバイスになされ得るさまざまな変形を容易に想定するであろう。
【0027】
図2は、図1のマルチチップデバイスを形成する方法200のフローチャートである。図2の方法の加工が一般的に記載され、当業者は、実行され得るより具体的な加工を容易に理解するであろう。より具体的な加工は、チップに個片化されるべき基板上に集積回路を形成するための任意の半導体加工に従うことができる。
【0028】
ブロック202で、それぞれの基板(例えば、ウェハ)上のチップの表面加工が実行される。例えば、各半導体基板112(例えば、ウェハ)の表面加工は、半導体基板112の表面の中および/または上にデバイス(例えば、トランジスタ118)を形成し、半導体基板112の表面上にメタライゼーションおよび表側ボンドパッド122を有する表側誘電体層114を形成することを含み得る。複数の第1のチップ102が、第1の基板上に形成され得る。複数の第2のチップ104が、第2の基板上に形成され得る。複数の第3のチップ106が、第3の基板上に形成され得る。複数の第4のチップ108が、第4の基板上に形成され得る。
【0029】
ブロック204で、第1のチップおよび第2のチップのそれぞれの基板(例えば、第1の基板および第2の基板)が、図1に示した表側間結合などで互いに結合される。結合は、基板(例えば、ウェハ)レベルであり得る。結合は、第1の基板の表側ボンドパッド122を第2の基板の表側ボンドパッド122に結合し、第1の基板の表側誘電体層114の外側表面を第2の基板の表側誘電体層114の外側表面に結合するなどのハイブリッド結合であり得る。
【0030】
ブロック206で、第2のチップの半導体基板112(例えば、第2の基板の半導体基板112)が裏側から薄化される。薄化は、化学機械研磨(CMP)または他の適切なプロセスによって可能である。ブロック208で、第2の基板上の第2のチップの裏面加工が実行される。裏面加工は、第2の基板の半導体基板112を貫通する裏側TSV120を形成し、第2の基板の表側誘電体層114内のメタライゼーションに接続することを含み得る。裏面加工は、半導体基板112の裏面上にメタライゼーションおよび裏側ボンドパッド124を有する裏側誘電体層116を形成することをさらに含み得る。裏側誘電体層116内のメタライゼーションは、裏側TSV120を通じて第2の基板の表側誘電体層114内のメタライゼーションに接続に接続され得る。
【0031】
ブロック210で、第2のチップおよび第3のチップのそれぞれの基板(例えば、第2の基板および第3の基板)が、図1に示した(第2の基板の)裏側と(第3の基板の)表側との結合のように互いに結合される。結合は基板(例えば、ウェハ)レベルであり得る。結合は、第2の基板の裏側ボンドパッド124を第3の基板の表側ボンドパッド122に結合し、第2の基板の裏側誘電体層116の外側表面を第3の基板の表側誘電体層114の外側表面に結合するなどの、ハイブリッド結合であり得る。
【0032】
ブロック212で、ブロック206と同様に、第3のチップの半導体基板112(例えば、第3の基板の半導体基板112)が裏側から薄化される。ブロック214で、ブロック208と同様に、第3の基板上の第3のチップの裏面加工が実行される。ブロック216で、ブロック210と同様に、第3のチップおよび第4のチップのそれぞれの基板(例えば、第3の基板および第4の基板)が、図1に示した(第3の基板の)裏側と(第4の基板の)表側との結合のように互いに結合される。
【0033】
ブロック218で、ブロック206と同様に、第1のチップの半導体基板112(例えば、第1の基板の半導体基板112)が裏側から薄化される。ブロック220で、ブロック208と同様に、第1の基板上の第1のチップの裏面加工が実行される。第1のチップの裏面加工は、外側コネクタボンドパッド126、パッシベーション層128、および外部コネクタ130を形成することをさらに含み得る。ブロック222で、結合された基板が(例えば、ソーイングによって)個片化されて、形成された個別のマルチチップデバイスを分離する。マルチチップデバイスのそれぞれは図1に示した通りであり得る。
【0034】
いくつかの例では、チップ102~108のうちの複数が、それぞれのチップ102~108上に形成された同じ集積回路(IC)(例えば、同じ処理IC)を有する。したがって、チップ102~108のうちのそれらの複数が、いくつかの場合には、各チップ個別の場合よりも大きい集合的なICを形成することができ、および/または、チップ102~108のうちの1つまたは複数は、いくつかの場合には、デバイス再生のために冗長であることができる。例えば、第2のチップ104、第3のチップ106、および第4のチップ108が同じICを有する場合、それらのチップのうちの任意の1つまたは複数は、マルチチップデバイス内の冗長構成を可能にし得る。例えば、チップ102~108のうちのそれらの複数のうちの1つが故障している場合、チップ102~108のうちのそれらの複数のうちの冗長な他の1つが、例えば、パワーゲーティング、スイッチング、および/または構成データによって、故障したチップの代わりに使用または有効化され得る。またさらに、チップ102~108のうちの複数が同じICを有さない場合であっても、それらのICのいずれかの部分が不良であるときに、マルチチップデバイスは、チップ102~108のICの機能のサブセットを動作させるように構成可能であり得る。
【0035】
一例として、第1のチップ102が相互接続ICを有することができ、チップ104~108のそれぞれが同じプログラマブルICを有することができる。チップ102~106のそれぞれは、チップ102~106のそれぞれの半導体基板112を貫通するTSVを含むことで、チップスタック内で垂直に信号および電力を伝えることに適応する。第1のチップ102上の相互接続ICは、チップスタック内で水平に、そして垂直に信号および電力を配信し伝えることができる。相互接続ICは、さまざまなサブシステムをさらに含むことができ、システムオンチップ(SoC)であり得る。例えば、相互接続ICは処理システムを含むことができ、処理システムは、とりわけ、(例えば、処理システムのコントローラ(例えば、これは任意の制御ロジックを含み得る)によって)チップ104~108のプログラマブルICの構成またはプログラミングを制御することができる。さらに、相互接続ICは、ネットワークオンチップ(NoC)、(エクストリームパフォーマンス入出力(XPIO:eXtreme Performance Input/Output)、マルチギガビットトランシーバ(MGT:multi-gigabit transceiver)、高帯域幅メモリ(HBM:high bandwidth memory)インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インタフェース、アクセラレータ用キャッシュコヒーレントインターコネクト(CCIX:cache coherent interconnect for accelerators)インタフェース、アナログ-デジタルコンバータ(ADC)、デジタル-アナログコンバータ(DAC)などのような)入出力ブロック、および/または((ダブルデータレート(DDR)メモリコントローラ、高帯域幅メモリ(HBM)メモリコントローラなどのような)メモリコントローラ、PCIeブロック、CCIXブロック、イーサネットコア、前方誤り訂正(FEC)ブロックなどのような)任意の知的財産(IP:intellectual property)ハードブロックを有することができる。
【0036】
チップ104~108のプログラマブルICは、プログラマブルロジック領域を含み得る。プログラマブルロジック領域は、構成可能ロジックブロック(CLB:configurable logic block)、ルックアップテーブル(LUT)、ランダムアクセスメモリブロック(BRAM)、ウルトラRAM(URAM)、入出力ブロック(IOB)、デジタル信号処理ブロック(DSP)、クロックマネージャ、および/または遅延ロックループ(DLL)を含むプログラマブルロジック要素を含み得る。いくつかのアーキテクチャでは、プログラマブルロジック領域は、プログラマブルロジック要素のカラムを含むことができ、各カラムは単一タイプのプログラマブルロジック要素を含む(例えば、CLBのカラム、BRAMのカラムなど)。プログラマブルロジック要素は、1つまたは複数の関連するプログラマブル相互接続要素を有し得る。例えば、いくつかのアーキテクチャでは、プログラマブルロジック領域は、プログラマブルロジック要素の各カラムに関連づけられ隣り合うプログラマブル相互接続要素のカラムを含む。このような例では、各プログラマブル相互接続要素は、隣り合うカラム内の関連するプログラマブルロジック要素に接続されるとともに、同じカラム内の隣り合うプログラマブル相互接続要素に接続される。プログラマブル相互接続要素の相互接続されたカラムは、プログラマブルロジック領域内のグローバルルーティングネットワークを形成し得る。いくつかの例では、プログラマブルICは、(ブート読出し専用メモリ(ROM)を有する)コントローラと、NoCとを含み得る。コントローラは、ROMを読み出してそれぞれのプログラマブルICを基本構成に構成することにより、プログラマブルICが、例えば、システムレベルの構成のために第1のチップ102の相互接続ICから、構成データを受信することを可能にする。
【0037】
いくつかの例によれば、1つまたは複数のチップ、またはその一部が不良である場合、マルチチップデバイスは、不良であるいずれかのチップ、またはその一部を無効化し、残りのチップまたは一部を動作させることによって、依然として動作可能であることができる。例えば、マルチチップデバイス内の複数のチップがそれぞれプログラマブルロジック領域を有するとき、およびいずれかのプログラマブルロジック領域が不良または故障であるとき、そのチップのプログラマブルロジック領域全体が無効化されることができる一方、他のチップのプログラマブルロジック領域は動作可能であることができる。いくつかの例では、マルチチップデバイス内の複数のチップがそれぞれプログラマブルロジック領域を有するとき、およびいずれかのプログラマブルロジック領域の一部が不良または故障であるとき、そのチップのプログラマブルロジック領域のその部分が無効化されることができる一方、他のチップのプログラマブルロジック領域およびそのチップのプログラマブルロジック領域の残りの部分は動作可能であることができる。
【0038】
図3は、いくつかの例によるマルチチップデバイス内のチップのプログラマブルロジック領域を無効化することの概略図である。第1のチップ102はインターコネクト302を含む。第2のチップ104、第3のチップ106、および第4のチップ108はそれぞれプログラマブルロジック領域304-1、304-2、304-3(個別にまたはまとめて、プログラマブルロジック領域304)を含む。インターコネクト302は、(例えば、処理システムの)コントローラ303を含み、プログラミングインターコネクト306(例えば、構成フレーム(CFRAME)インターコネクト)によってプログラマブルロジック領域304のそれぞれに通信可能に接続される。例えば、コントローラ303は、プログラミングインターコネクト306を介してプログラマブルロジック領域304のそれぞれに構成データを通信することができる。いくつかの例では、チップ102~108、またはそれらの任意のサブセットのそれぞれは、構成データを通信する制御がマルチチップデバイス全体を通じて配信され得るようなコントローラを含み得る。チップ102~108のそれぞれは、接続308を介して隣り合うチップに通信可能に接続される。
【0039】
図3において、第3のチップ106のプログラマブルロジック領域304-2が、不良または故障として示されている。他の例では、プログラマブルロジック領域304のいずれかが不良または故障であり得る。マルチチップデバイスを(図2における加工のように)形成した後、マルチチップデバイスは、例えば、プログラマブルロジック領域304のいずれかが不良または故障であるかどうかを特定するために、機能について検査され得る。十分な数のプログラマブルロジック領域304が機能する(例えば、不良でない、または故障でない)場合、マルチチップデバイスは、機能するいくつかのプログラマブルロジック領域304を含むように動作し得る。第1のチップ102内のコントローラ303は、どのプログラマブルロジック領域304が機能するか、および/または故障もしくは不良であるかを示すようにプログラムされ得る(電子ヒューズ(eFuse)などの)メモリを含み得る。これに応答して、コントローラ303は、プログラムされたメモリに基づいて、プログラミングインターコネクト306を介して、機能するプログラマブルロジック領域304に構成データを配信し得る。さらに、故障または不良であるプログラマブルロジック領域304および/または対応するチップによる電力消費を低減または除去するためにコントローラ303を使用して、パワーゲーティングが実装され得る。この例では、不良チップの全体、またはチップの不良なプログラマブルロジック領域304の全体が無効化される一方、機能するプログラマブルロジック領域304の全体は動作可能のままである。
【0040】
記載されるようなマルチチップデバイスによって実装されるプログラマブルロジックデバイス(例えば、FPGA)に関連して、ユーザ設計がプログラマブルロジック領域304において実装され得る。どのプログラマブルロジック領域304が機能するか、または故障もしくは不良であるかは、ユーザ設計にとって透過的である。例えば、図3の状況では、マルチチップデバイスは、2個のプログラマブルロジック領域304(例えば、プログラマブルロジック領域304-1、304-3)において、それらの2個のプログラマブルロジック領域304がマルチチップデバイスのチップスタック内で隣接するかのように(例えば、プログラマブルロジック領域304がそれぞれ第2のチップ104および第3のチップ106にあるかのように)、ユーザ設計を実装し得る。第1のチップ102のコントローラ303は、ユーザ設計が中間の不良なプログラマブルロジック領域304-2を認識することなく、中間の不良なプログラマブルロジック領域304-2に適応するために、プログラマブルロジック領域304に対する構成データを配信するように構成される。
【0041】
図4は、いくつかの例による再生方式を可能にし得る、いくつかの例示的なマルチチップデバイス仕様の表現400である。図4は、マルチチップデバイスの4つのデバイス仕様402、404、406、408を示している。デバイス仕様402~408は、図示を容易にするために単一の平面内に示されているが、図1に一般的に示したマルチチップデバイスにおいて(チップ数は異なり得るが)構成され得る。
【0042】
図示のように、デバイス仕様402~408は、相異なる仕様にわたって同じであるベースチップ410を含む。ベースチップ410は、例えば、図1の第1のチップ102であることができ、例えば、図3に関して説明したインターコネクト302およびコントローラ303を含むことができる。デバイス仕様402は、単一のファブリックチップ412を含む。ファブリックチップ412は、図1の第2のチップ104、第3のチップ106、および第4のチップ108のいずれかであることができ、例えば、図3に関して説明したプログラマブルロジック領域304を含むことができる。デバイス仕様404は、2個のファブリックチップ414、416を含む。ファブリックチップ414、416は、図1の第2のチップ104、第3のチップ106、および第4のチップ108のいずれかであることができ、例えば、図3に関して説明したプログラマブルロジック領域304をそれぞれ含むことができる。デバイス仕様406は、3個のファブリックチップ418、420、422を含む。ファブリックチップ418、420、422は、図1の第2のチップ104、第3のチップ106、および第4のチップ108のいずれかであることができ、例えば、図3に関して説明したプログラマブルロジック領域304をそれぞれ含むことができる。デバイス仕様408は、1つのファブリックチップ424と、(例えば、ファブリックチップ424とは異なる)アクセラレータチップ426とを含む。ファブリックチップ424は、図1の第2のチップ104および第3のチップ106のいずれかであることができ、例えば、図3に関して説明したプログラマブルロジック領域304を含むことができる。アクセラレータチップ426は、マルチチップデバイス内でファブリックチップ424の物理的に上方にあり、図1の第3のチップ106または第4のチップ108であり得る。ファブリックチップ412~424は、同じ集積回路をそれぞれ有する。
【0043】
所与のデバイス仕様に従って製造されたマルチチップデバイスは、順に積層されたその仕様のチップを含む。例えば、デバイス仕様402に従って製造されたマルチチップデバイスは、第1のチップ(例えば、ベースチップ410)と、第1のチップの上に積層された第2のチップ(例えば、ファブリックチップ412)とを有し、他のチップはない。例えば、デバイス仕様404に従って製造されたマルチチップデバイスは、第1のチップ(例えば、ベースチップ410)と、第1のチップの上に積層された第2のチップ(例えば、ファブリックチップ414)と、第2のチップの上に積層された第3のチップ(例えば、ファブリックチップ416)とを有し、他のチップはない。さらなる例として、デバイス仕様406に従って製造されたマルチチップデバイスは、第1のチップ(例えば、ベースチップ410)と、第1のチップの上に積層された第2のチップ(例えば、ファブリックチップ418)と、第2のチップの上に積層された第3のチップ(例えば、ファブリックチップ420)と、第3のチップの上に積層された第4のチップ(例えば、ファブリックチップ422)とを有し、他のチップはない。
【0044】
マルチチップデバイスがデバイス仕様408に従って(例えば、図1の状況では、第1のチップ102がベースチップ410であり、第2のチップ104がファブリックチップ424であり、第3のチップ106がアクセラレータチップ426であるように)製造されると仮定する。アクセラレータチップ426が不良または故障であり動作可能でなく、ベースチップ410およびファブリックチップ424が動作可能である場合、マルチチップデバイスは、ベースチップ410および単一のファブリックチップ412(例えば、単一層のプログラマブルロジック領域またはファブリック)を有するデバイス仕様402を実装し得る。
【0045】
マルチチップデバイスがデバイス仕様406に従って(例えば、図1の状況では、第1のチップ102がベースチップ410であり、第2のチップ104、第3のチップ106、および第4のチップ108がそれぞれファブリックチップ418、420、422であるように)製造されると仮定する。ファブリックチップ418、420、422のうちの1つが不良または故障であり動作可能でなく、ベースチップ410およびファブリックチップ418、420、422のうちの2つが動作可能である場合、マルチチップデバイスは、ベースチップ410および2つのファブリックチップ414、416(例えば、2層のプログラマブルロジック領域またはファブリック)を有するデバイス仕様404を実装し得る。ファブリックチップ418、420、422のうちの2つが不良または故障であり動作可能でなく、ベースチップ410およびファブリックチップ418、420、422のうちの1つが動作可能である場合、マルチチップデバイスは、ベースチップ410および単一のファブリックチップ412(例えば、単一層のプログラマブルロジック領域またはファブリック)を有するデバイス仕様402を実装し得る。
【0046】
マルチチップデバイスがデバイス仕様404に従って(例えば、図1の状況では、第1のチップ102がベースチップ410であり、第2のチップ104および第3のチップ106がそれぞれファブリックチップ414、416であり、第4のチップ108がないように)製造されると仮定する。ファブリックチップ414、416のうちの一方が不良または故障であり動作可能でなく、ベースチップ410およびファブリックチップ414、416のうちの他方が動作可能である場合、マルチチップデバイスは、ベースチップ410および単一のファブリックチップ412(例えば、単一層のプログラマブルロジック領域またはファブリック)を有するデバイス仕様402を実装し得る。
【0047】
上記の例は、1つのデバイス仕様に従って製造されるマルチチップデバイスが、チップが故障または不良であるときに、どのように別のデバイス仕様に従って実現し、または動作可能であり得るかを示している。マルチチップデバイスは、マルチチップデバイスが満たすことが可能なデバイス仕様を論理的に実装するように構成されることができ、その論理構成はユーザおよびユーザ設計にとって透過的である。例えば、ユーザ設計がデバイス仕様404を満たすマルチチップデバイス上で実装されるべき場合、マルチチップデバイスがデバイス仕様404に従って製造されたか、それともデバイス仕様406に従って製造されたか(ファブリックチップ418、420、422のうちの1つが故障または欠陥である)は、ユーザ設計にとって未知および透過的であり、ユーザ設計はいずれの場合でも機能的に同一に実装される。論理実装は、ベースチップ410内のメモリに記憶された構成データに基づくことができ、これはベースチップ410内のコントローラが、対応するファブリックチップに構成データをどのように配信するかを決定し得る。
【0048】
いくつかの例では、相異なるマルチチップデバイスのアーキテクチャが接続性、遅延、および電力に関してメトリックが実質的に同一であるほど十分に類似し、このことは相異なる物理構成要素(例えば、相異なるチップ数)を有するマルチチップデバイスが同じデバイス仕様を満たすことを可能にし得る。いくつかの例では、マルチチップデバイスは、あるチップが非アクティブであるときに信号がわずかな遅延オーバーヘッドでそのチップを、例えばTSVを通じて、任意選択的に通過することを可能にするチップ間接続を備える。いくつかの例では、マルチチップデバイスは、構成データを異なる層に任意選択的に送信するための構成方式を備える。いくつかの例では、マルチチップデバイスは、可能なチップ間パスのうちのいずれかを通じて最悪の場合の遅延に適応するためのタイミング方法を備える。
【0049】
図5は、いくつかの例によるマルチチップデバイスのプログラマブルロジック領域のサブ領域を無効化することの概略図である。第1のチップ102はインターコネクト502を含む。第2のチップ104、第3のチップ106、および第4のチップ108はそれぞれプログラマブルロジック領域504-1、504-2、504-3(個別にまたはまとめて、プログラマブルロジック領域504)を含む。インターコネクト502は、(例えば、処理システムの)コントローラ503を含み、プログラミングインターコネクト506によってプログラマブルロジック領域504のそれぞれに通信可能に接続される。例えば、コントローラ503は、プログラミングインターコネクト506を介してプログラマブルロジック領域504のそれぞれに構成データを通信することができる。いくつかの例では、チップ102~108、またはそれらの任意のサブセットのそれぞれは、構成データを通信する制御がマルチチップデバイス全体を通じて配信され得るようなコントローラを含み得る。チップ102~108のそれぞれは、接続508を介して隣り合うチップに通信可能に接続される。
【0050】
プログラマブルロジック領域504のそれぞれはサブ領域を含む。プログラマブルロジック領域504-1はサブ領域504-11、504-12、504-13、504-14を含む。プログラマブルロジック領域504-2はサブ領域504-21、504-22、504-23、504-24を含む。プログラマブルロジック領域504-3はサブ領域504-31、504-32、504-33、504-34を含む。サブ領域は、物理的に分割され、および/または論理的に分割されることができる。サブ領域間の分割は、異なるクロックドメイン間の境界、異なる電圧ドメイン間の境界、異なるタイプの回路または論理ブロック間の境界などのような、任意の個数の論理的および/または物理的境界に基づき得る。この例では、個別のサブ領域は、そのサブ領域が故障のとき、およびまたはそのサブ領域がマルチチップデバイス内のアクティブなサブ領域でないように選択されるときに、無効化され得る。
【0051】
各サブ領域は、接続508を介して隣接するチップ内の他の隣り合うサブ領域と通信し得る。接続508は、例えば、表側および/または裏側の誘電体層内のTSVならびに金属ラインおよびヴィアを含むパッシブ接続であり得る。したがって、介在するサブ領域を無効化することは、接続508を介して互いに通信することに関して他のサブ領域に影響しない可能性がある。いくつかの例では、サブ領域は、接続508を介して信号を中継するための別個の受信および駆動回路を含むことがあるが、これは所与のサブ領域が無効化されるときに影響されない。したがって、いくつかの例では、無効化されるサブ領域内の回路のすべてが未使用となるわけではない可能性がある。
【0052】
図5で、第2のチップ104のサブ領域504-13、504-14および第4のチップ108のサブ領域504-34が、不良または故障として示されている。他の例では、サブ領域のうちのいずれかが不良または故障であり得る。マルチチップデバイスを(図2における加工のように)形成した後、マルチチップデバイスは、例えば、プログラマブルロジック領域504のサブ領域のいずれかが不良または故障であるかどうかを特定するために、機能について検査され得る。十分な数のプログラマブルロジック領域504のサブ領域が機能する(例えば、不良でない、または故障でない)場合、マルチチップデバイスは、機能するいくつかのプログラマブルロジック領域504のサブ領域を含むように動作し得る。第1のチップ102内のコントローラ503は、どのプログラマブルロジック領域504のサブ領域が機能するか、および/または故障もしくは不良であるかを示すようにプログラムされ得る(eFuseなどの)メモリを含み得る。これに応答して、コントローラ503は、プログラムされたメモリに基づいて、プログラミングインターコネクト506を介して、機能するプログラマブルロジック領域304に構成データを配信し得る。さらに、故障または不良であるプログラマブルロジック領域504のサブ領域による電力消費を低減または除去するためにコントローラ503を使用して、パワーゲーティングが実装され得る。
【0053】
図5の図示された例では、マルチチップデバイスは、例えば、チップ104~108にわたって分配され得る2個のプログラマブルロジック領域504を含むように動作し得る。任意の個数のサブ領域がチップ104~108のいずれかの上で機能し得ることにより、図4に関して上記で説明したように、サブ領域についてより高い粒度で、マルチチップデバイスがデバイス仕様を満たすことを可能にする。当業者は、追加的なレベルの粒度を容易に理解するであろう。
【0054】
記載されるようなマルチチップデバイスによって実装されるプログラマブルロジックデバイス(例えば、FPGA)に関連して、ユーザ設計がプログラマブルロジック領域504において実装され得る。プログラマブルロジック領域504のどのサブ領域が機能するか、および/または故障もしくは不良であるかは、ユーザ設計にとって透過的である。例えば、図5の状況では、マルチチップデバイスは、(例えば、2個の完全なプログラマブルロジック領域504と等価な)8個のサブ領域(例えば、サブ領域504-11、504-12、504-21、504-22、504-23、504-24、504-31、504-32を使用して)において、プログラマブルロジック領域504のそれらのサブ領域がマルチチップデバイスのチップスタック内で隣接するかのようにユーザ設計を実装し得る。図示した例では、機能するサブ領域の配列(論理的または物理的)とは無関係に、プログラマブルロジック領域504-1、504-3のそれぞれの半分が、プログラマブルロジック領域の論理層を形成するように実装され得る。説明したように、プログラマブルロジック領域504-1の半分はサブ領域504-11、504-12を含み、プログラマブルロジック領域504-3の半分はサブ領域504-31、504-32、504-33のうちのいずれか2個を含み得る。1層のプログラマブルロジック領域を形成するために、任意のプログラマブルロジック領域504ごとに異なる数のサブ領域が組み合わされ得る。第1のチップ102のコントローラ503は、ユーザ設計がプログラマブルロジック領域504の中間の不良なサブ領域を認識することなく、プログラマブルロジック領域504の中間の不良なサブ領域に適応するために、プログラマブルロジック領域504のサブ領域に対する構成データを配信するように構成される。
【0055】
図5の上記の説明では、サブ領域は整数個の論理的な、完全なプログラマブルロジック領域504を形成するように実装され得る。他の例では、マルチチップデバイスは、例えば、整数個の論理的な、完全なプログラマブルロジック領域504を実装することとは無関係に、部分的なプログラマブルロジック領域504の任意の組合せを実装し得る。例えば、図5の図示した例では、第1の層がサブ領域504-11、504-12を備える半分の層として実装されることができ、第2の層がプログラマブルロジック領域504-2の完全な層として実装されることができ、第3の層がサブ領域504-31、504-32、504-33を備える4分の3の層として実装されることができる。
【0056】
図6は、いくつかの例によるマルチチップデバイスのプログラマブルロジック領域のサブ領域を無効化することの概略図である。第1のチップ102はインターコネクト602を含む。第2のチップ104、第3のチップ106、および第4のチップ108はそれぞれプログラマブルロジック領域604-1、604-2、604-3(個別にまたはまとめて、プログラマブルロジック領域604)を含む。インターコネクト602は、(例えば、処理システムの)コントローラ603を含み、プログラミングインターコネクト606によってプログラマブルロジック領域604のそれぞれに通信可能に接続される。例えば、コントローラ603は、プログラミングインターコネクト606を介してプログラマブルロジック領域604のそれぞれに構成データを通信することができる。いくつかの例では、チップ102~108、またはそれらの任意のサブセットのそれぞれは、構成データを通信する制御がマルチチップデバイス全体を通じて配信され得るようなコントローラを含み得る。チップ102~108のそれぞれは、接続608を介して隣り合うチップに通信可能に接続される。
【0057】
プログラマブルロジック領域604のそれぞれはサブ領域を含む。プログラマブルロジック領域604-1はサブ領域604-11、604-12、604-13、604-14を含む。プログラマブルロジック領域604-2はサブ領域604-21、604-22、604-23、604-24を含む。プログラマブルロジック領域604-3はサブ領域604-31、604-32、604-33、604-34を含む。サブ領域は、物理的に分割され、および/または論理的に分割されることができる。サブ領域間の分割は、異なるクロックドメイン間の境界、異なる電圧ドメイン間の境界、異なるタイプの回路または論理ブロック間の境界などのような、任意の個数の論理的および/または物理的境界に基づき得る。
【0058】
この例では、個別のサブ領域は、そのサブ領域が故障のとき、およびまたはそのサブ領域がマルチチップデバイス内のアクティブなサブ領域でないように選択されるときに、無効化され得る。チップ104~108にわたって論理的および/または物理的に整列するサブ領域はスリバ(細片)を形成し得る。スリバ内の各サブ領域は、そのスリバ内の他のサブ領域と同じ、および/または機能的に等価である。異なるスリバ内のサブ領域は、異なる回路および/または機能を有し得る。動作時に、スリバの1つまたは複数のサブ領域が無効化され得る。例えば、スリバ内の1つのサブ領域が故障の場合、そのサブ領域が無効化される一方、スリバ内の他のサブ領域は有効化され動作可能である。さらに、例えば、スリバ内のどのサブ領域も故障でない場合、そのスリバ内の任意のサブ領域が無効化されるように選択され得る一方、スリバ内の他のサブ領域は有効化され動作可能である。
【0059】
図示した例の状況では、4個のスリバがマルチチップデバイス内にある。第1のスリバはサブ領域604-11、604-21、604-31を含む。第2のスリバはサブ領域604-12、604-22、604-32を含む。第3のスリバはサブ領域604-13、604-23、604-33を含む。第4のスリバはサブ領域604-14、604-24、604-34を含む。いくつかの例では、各スリバ内の十分な数のサブ領域が故障でない限り、マルチチップデバイスは、3個までのプログラマブルロジック領域(例えば、ファブリックチップ)を論理的に含むように動作し得る。例えば、サブ領域604-31、604-13、604-14が故障であり、および/または無効化される場合、サブ領域604-11、604-21が第1のスリバ内で動作することができ、サブ領域604-12、604-22が第2のスリバ内で動作することができ、サブ領域604-23、604-33が第3のスリバ内で動作することができ、サブ領域604-24、604-34が第4のスリバ内で動作することができる。
【0060】
スリバ内の各サブ領域は、接続608を介してそのスリバ内の他のサブ領域と通信し得る。接続608は、例えば、表側および/または裏側の誘電体層内のTSVならびに金属ラインおよびヴィアを含むパッシブ接続であり得る。したがって、スリバ内の介在するサブ領域を無効化することは、接続608を介して互いに通信することに関してそのスリバ内の他のサブ領域に影響しない可能性がある。いくつかの例では、スリバ内のサブ領域は、接続608を介して信号を中継するための別個の受信および駆動回路を含むことがあるが、これはスリバ内の所与のサブ領域が無効化されるときに影響されない。例えば、サブ領域604-13が無効化される場合、サブ領域604-13を通る接続608のためのドライバおよび受信機回路は、サブ領域604-23、604-33が接続608を介して通信し得るように依然として動作し得る。したがって、いくつかの例では、無効化されるサブ領域内の回路のすべてが未使用となるわけではない可能性がある。
【0061】
チップ間ブリッジ610がサブ領域間の境界に配置され、それぞれのサブ領域が隣り合うスリバ内のサブ領域と選択的に通信することを可能にする。チップ間ブリッジ610を介して、各サブ領域は、それぞれのサブ領域に隣り合うスリバ内にあり、それぞれのサブ領域と同じチップ内またはそれぞれのサブ領域が配置されたチップに隣り合うチップ内にある別のサブ領域と通信し得る。例えば、チップ間ブリッジ610を介して、第2のスリバ内のサブ領域604-22は、第1のスリバ内のサブ領域604-11、604-21、604-31のうちの1つまたは複数と通信することが可能であり、他のチップ間ブリッジ610を介して、第2のスリバ内のサブ領域604-22は、第3のスリバ内のサブ領域604-13、604-23、604-33のうちの1つまたは複数と通信することが可能である。複数の冗長な物理チップがマルチチップデバイスに含まれるいくつかの例では、チップ間ブリッジは、1つまたは複数の他のチップがサブ領域間に介在するようなチップ上にあるサブ領域間の選択的な通信を可能にし得る。
【0062】
一例として、サブ領域604-31、604-13、604-14が故障であり、および/または無効化されていると仮定する。サブ領域604-11、604-12、604-23、604-24は、それぞれのチップ間ブリッジ610を介して通信することができ、第1の論理ダイとして動作することができる。サブ領域604-21、604-22、604-33、604-34は、それぞれのチップ間ブリッジ610を介して通信することができ、第2の論理ダイとして動作することができる。このような状況の下では、チップ104~108は、論理的な2個のファブリックチップのマルチチップデバイスとして動作する。これらの特徴は、異なる個数の物理チップおよび論理ダイを有するマルチチップデバイスに拡張され得る。
【0063】
チップ間ブリッジ610は、チップのそれぞれの半導体基板上のアクティブデバイス(例えば、トランジスタを含む)、半導体基板内のTSV、およびチップ内のメタライゼーションを含む。当業者は、チップ間ブリッジ610において実装され得るこのような構成要素を容易に理解するであろう。
【0064】
いくつかの例では、図6のチップ間ブリッジ610のようなチップ間ブリッジは、追加的な接続性および/またはフレキシビリティを提供するために、図5の上記の例において実装され得る。チップ間ブリッジは、図6におけるプログラマブルロジック領域604のサブ領域に関して図示し説明したように、図5におけるプログラマブルロジック領域504のサブ領域間に実装され得る。
【0065】
図7は、いくつかの例によるチップ104、106、108のそれぞれの上、および第1のスリバと第2のスリバとの間のチップ間ブリッジ610-2、610-4、610-6の回路図を示す。図7に示すチップ間ブリッジ610は、一方向性(例えば、第1のスリバから第2のスリバへ)として示されている。類似の回路図が、(例えば、第2のスリバから第1のスリバへの別の一方向性回路を追加して)スリバ間の双方向通信を可能にするように追加的に実装され得る。当業者は、このような追加、および通信を可能にするためのチップ間ブリッジ610として任意の個数の回路が実装され得ることを容易に理解するであろう。
【0066】
チップ間ブリッジ610-2、610-4、610-6(個別にまたはまとめて、チップ間ブリッジ610)のそれぞれは、ドライバ702、3状態ドライバ704、706、マルチプレクサ708、およびドライバ710を含む。ドライバ702の入力ノードは、第1のスリバ内でチップ間ブリッジ610と同じチップ104~108上にあるそれぞれのサブ領域604-11、604-21、604-31の出力ノードに接続される。ドライバ702の出力ノードは、3状態ドライバ704、706およびマルチプレクサ708のそれぞれの入力ノードに接続される。3状態ドライバ704、706のそれぞれの出力ノードは、第1のノード712および第2のノード714に接続され、これらはマルチプレクサ708のそれぞれの入力ノードにさらに接続される。マルチプレクサ708の出力ノードはドライバ710の入力ノードに接続され、ドライバ710の出力ノードは、第2のスリバ内でチップ間ブリッジ610と同じチップ104~108上にあるそれぞれのサブ領域604-12、604-22、604-32の入力ノードに接続される。さらに、チップのチップ間ブリッジ610内の第1のノード712は、上に重なる隣り合うチップのチップ間ブリッジ610内の第2のノード714に、例えば、一方または両方のチップのTSVを介して接続される。例えば、チップ104内の第1のノード712はチップ106内の第2のノード714に接続され、チップ106内の第1のノード712はチップ108内の第2のノード714に接続される。
【0067】
3状態ドライバ704、706は、それぞれのイネーブル信号EN1、EN2によって制御される。例えば、イネーブル信号EN1、EN2がアサートされるとき、それぞれの3状態ドライバ704、706の出力ノード上の信号は3状態ドライバ704、706の入力ノードにおける信号に従い、または対応し、イネーブル信号がアサートされないとき、それぞれの3状態ドライバ704、706の出力ノードにおけるインピーダンスが高インピーダンス出力状態にある。マルチプレクサ708は選択信号SELによって制御され、これに応答して、マルチプレクサ708の入力ノードのうちの1つにおいてマルチプレクサ708に入力された信号を出力する。
【0068】
チップ間ブリッジ610の相異なる構成を例示するために、サブ領域604-22への通信を示す相異なる例について説明する。当業者は、これらの構成が他のチップ間ブリッジ610に対して、および/または他のサブ領域間の通信に対してどのように適用され得るかを容易に理解するであろう。
【0069】
第1の例では、サブ領域604-11がサブ領域604-22と通信する。このような例では、サブ領域604-12は無効化され得る。サブ領域604-11は、チップ間ブリッジ610-2内のドライバ702に信号(例えば、データ)を出力し、ドライバ702はチップ間ブリッジ610-2の3状態ドライバ704、706およびマルチプレクサ708にその信号を出力する。チップ間ブリッジ610-2内のイネーブル信号EN1により、チップ間ブリッジ610-2内の3状態ドライバ704はチップ間ブリッジ610-2の第1のノード712に、したがってチップ間ブリッジ610-4の第2のノード714に信号を出力する。チップ間ブリッジ610-2内のイネーブル信号EN2により、チップ間ブリッジ610-2内の3状態ドライバ706は高インピーダンス出力状態となる。チップ間ブリッジ610-2内の選択信号SELにより、チップ間ブリッジ610-2内のマルチプレクサ708はチップ間ブリッジ610-2内の第2のノード714に信号を出力する。チップ間ブリッジ610-2内の3状態ドライバ706は高インピーダンス出力状態を有するため、チップ間ブリッジ610-2内の第2のノード714上には信号があり得ないか、または下に重なるチップからの信号が存在することができ、これがサブ領域604-12に伝搬され得る。
【0070】
チップ間ブリッジ610-4内のイネーブル信号EN2により、チップ間ブリッジ610-4内の3状態ドライバ706は高インピーダンス出力状態となる。チップ間ブリッジ610-4内の選択信号SELにより、チップ間ブリッジ610-4内のマルチプレクサ708はチップ間ブリッジ610-4内の第2のノード714に信号を出力し、これはチップ間ブリッジ610-2内のドライバ702および3状態ドライバ704を介してサブ領域604-11によって出力される信号である。したがって、サブ領域604-11によって出力された信号がサブ領域604-22に伝搬され得る。
【0071】
第2の例では、サブ領域604-21がサブ領域604-22と通信する。サブ領域604-21は、チップ間ブリッジ610-4内のドライバ702に信号(例えば、データ)を出力し、ドライバ702はチップ間ブリッジ610-4の3状態ドライバ704、706およびマルチプレクサ708にその信号を出力する。チップ間ブリッジ610-4内の選択信号SELにより、チップ間ブリッジ610-4内のマルチプレクサ708はチップ間ブリッジ610-4内のドライバ702からの信号を出力する。したがって、サブ領域604-21によって出力された信号がサブ領域604-22に伝搬され得る。チップ間ブリッジ610-4内のイネーブル信号EN1、EN2により、チップ間ブリッジ610-4内の3状態ドライバ704、706は高インピーダンス出力状態となり得る。チップ間ブリッジ610-2内のイネーブル信号EN1により、チップ間ブリッジ610-2内の3状態ドライバ704は高インピーダンス出力状態となり得る。チップ間ブリッジ610-6内のイネーブル信号EN2により、チップ間ブリッジ610-6内の3状態ドライバ706は高インピーダンス出力状態となり得る。
【0072】
第3の例では、サブ領域604-31がサブ領域604-22と通信する。このような例では、サブ領域604-32は無効化され得る。サブ領域604-31は、チップ間ブリッジ610-6内のドライバ702に信号(例えば、データ)を出力し、ドライバ702はチップ間ブリッジ610-6の3状態ドライバ704、706およびマルチプレクサ708にその信号を出力する。チップ間ブリッジ610-6内のイネーブル信号EN1により、チップ間ブリッジ610-6内の3状態ドライバ704は高インピーダンス出力状態となる。チップ間ブリッジ610-6内のイネーブル信号EN2により、チップ間ブリッジ610-6内の3状態ドライバ706はチップ間ブリッジ610-6の第2のノード714に、したがってチップ間ブリッジ610-4の第1のノード712に信号を出力する。チップ間ブリッジ610-6内の選択信号SELにより、チップ間ブリッジ610-6内のマルチプレクサ708はチップ間ブリッジ610-6内の第1のノード712に信号を出力する。チップ間ブリッジ610-6内の3状態ドライバ704は高インピーダンス出力を有するため、チップ間ブリッジ610-6内の第1のノード712上には信号があり得ないか、または上に重なるチップからの信号が存在することができ、これがサブ領域604-32に伝搬され得る。
【0073】
チップ間ブリッジ610-4内のイネーブル信号EN1により、チップ間ブリッジ610-4内の3状態ドライバ704は高インピーダンス出力状態となる。チップ間ブリッジ610-4内の選択信号SELにより、チップ間ブリッジ610-4内のマルチプレクサ708はチップ間ブリッジ610-4内の第1のノード712に信号を出力し、これはチップ間ブリッジ610-6内のドライバ702および3状態ドライバ706を介してサブ領域604-31によって出力される信号である。したがって、サブ領域604-31によって出力された信号がサブ領域604-22に伝搬され得る。
【0074】
イネーブル信号EN1、EN2および選択信号SELのためのデータは、例えば、それぞれのチップ104~108上の1つまたは複数の構成レジスタ、eFuse、および/または他のストレージに記憶され得る。これらの信号のために記憶されるデータは、それぞれのチップ104~108のチップ間ブリッジ610を構成する。データは、マルチチップデバイスが製造および検査された後に記憶され得る。検査は、故障しているいずれかのサブ領域を示し得る。検査結果に基づいて、十分な数の動作可能なサブ領域が各スリバ内に残っている場合、データは適宜チップ間ブリッジ610を構成して動作可能なサブ領域間の通信を可能にするために、例えば、構成レジスタ、eFuse、および/または他のストレージに記憶され得る。例えば、eFuseをとばすことにより、データをeFuseに書き込むことができる。
【0075】
図8は、いくつかの例によるマルチチップデバイスを実現する方法800のフローチャートである。ブロック802で、マルチチップデバイスがデバイス仕様に従って製造される。例えば、マルチチップデバイスは、図2に関して上記で説明したように製造され得る。
【0076】
ブロック804で、機能しないプログラマブルロジック領域またはサブ領域を特定するために、マルチチップデバイス内のチップが検査される。ブロック806で、方法800は、十分なプログラマブルロジック領域またはサブ領域がデバイス仕様を満たすように動作可能であるかどうかを判定する。いくつかの例では、ブロック806の判定は、まずマルチチップデバイスが最も厳格なデバイス仕様を満たすように動作可能であるかどうかを判定しようと試み、続いて逐次的により厳格さの低いデバイス仕様を満たすように動作可能であるかどうかを判定する。例えば、図4を参照すると、マルチチップデバイスがデバイス仕様406に従って製造される場合、ブロック806の判定はまず、マルチチップデバイスがデバイス仕様406を満たすように動作可能であるかどうかを判定し、満たさない場合、ブロック806の判定は、マルチチップデバイスがデバイス仕様404を満たすように動作可能であるかどうかを判定し、満たさない場合、ブロック806の判定は、マルチチップデバイスがデバイス仕様402を満たすように動作可能であるかどうかを判定する。判定は、上記のように、プログラマブルロジック領域レベルの分析またはサブ領域レベルの分析を使用することによることができる。
【0077】
ブロック606でマルチチップデバイスがデバイス仕様を満たすように動作可能であると判定された場合、ブロック808で、マルチチップデバイスは対応するデバイス仕様を満たすように構成される。より一般的には、マルチチップデバイス(例えば、チップスタック)は、チップのICのいずれかの部分が不良であるとき、チップのICの機能のサブセットを動作させるように構成され得る。マルチチップデバイスはまた、ICのどの部分も不良でないとき、チップのICの機能全体を動作させるように構成され得る。マルチチップデバイスは、チップのうちのいずれかの上のメモリ(例えば、eFuse)をプログラムすることによって構成され得る。例えば、メモリは、(例えば、第1のチップ102の)処理システムのコントローラにおいてプログラムされ、これに応答してマルチチップデバイス内で構成データの配信を制御することにより、動作可能なプログラマブルロジック領域および/またはサブ領域を構成することができる。いくつかの例では、チップ104~108内のメモリは、適切な層内のプログラマブルロジック領域のサブ領域を相互接続するためにチップ間ブリッジを構成するようにプログラムされ得る。ブロック808の構成は、任意の不良もしくは故障チップ(例えば、チップの全体および/またはチップのプログラマブルロジック領域の全体)またはその一部を無効化し得る。ブロック808の構成は、機能するチップをその全体で有効化することができ、および/またはチップの機能する部分を有効化し得る。
【0078】
ブロック806でマルチチップデバイスがデバイス仕様を満たすように動作可能でないと判定された場合、ブロック810で、マルチチップデバイスは廃棄または再加工される
【0079】
本明細書に記載されるマルチチップデバイスのアーキテクチャにおける冗長構成は再生を可能にし得る。一般的に、あるデバイス仕様に従って製造されるマルチチップデバイスのチップスタックに含まれるチップが多いほど、そのデバイス仕様に従って動作可能であるようなマルチチップデバイスの歩留まりは低下する。追加的なチップは一般的に、歩留まりを低下させ得る欠陥の追加的なインスタンスを引き起こす。再生方式は、ある個数のチップがスタック内にあるように製造されたマルチチップデバイスは製造の結果として不良となり得るが、そのスタック内のより少数のチップで動作可能であるように構成され得るという前提に基づく。
【0080】
一例として、1ロットのマルチチップデバイスが(例えば、3個のファブリックチップ418、420、422を有する)デバイス仕様406に従って製造され得る。ロット内のいくつかのマルチチップデバイスが不良であり、デバイス仕様406に従って動作可能でない可能性がある。しかし、それらのマルチチップデバイスは、(例えば、2個のファブリックチップ414、416を有する)デバイス仕様404に従って動作可能であるように構成されることができる可能性がある。さらに、デバイス仕様406に従って製造されたいくつかの不良なマルチチップデバイスは、(例えば、1個のファブリックチップ412を有する)デバイス仕様402に従って動作可能であるように構成されることができる可能性がある。したがって、デバイス仕様406に従って製造され、そのデバイス仕様406に従って不良であり動作可能でないマルチチップデバイスは、別のデバイス仕様402、404に従って動作するように再生および構成され得る。製造を計画する際に、他の点では不良なマルチチップデバイスを再生する可能性を考慮することによって、製造されるマルチチップデバイスをより少なくすることができ、および/またはコスト削減を達成し得る。
【0081】
デバイス仕様402に従って動作可能な1000個のマルチチップデバイスが実現されるべきであり、デバイス仕様404に従って動作可能な1000個のマルチチップデバイスが実現されるべきであると仮定する。さらに、デバイス仕様402を製造する歩留まりは90%であり、デバイス仕様404を製造する歩留まりは50%であると仮定する。またさらに、各チップのコストが1任意単位(AU)であることにより、デバイス仕様402に従って製造されるマルチチップデバイスのコストは2AUであり、デバイス仕様402に従って製造されるマルチチップデバイスのコストは3AUであると仮定する。
【0082】
デバイス仕様402に従って動作可能なマルチチップデバイスが、デバイス仕様404に従って動作可能なマルチチップデバイスとは独立に実現される場合、歩留まりに基づいて製造されるべきそのようなデバイスの個数は単純計算である。デバイス仕様402に従って製造される1111個のマルチチップデバイスが、デバイス仕様402に従って動作可能な1000個のマルチチップデバイスを実現するために製造され(例えば、1111×0.9=1000)、デバイス仕様404に従って製造される2000個のマルチチップデバイスが、デバイス仕様404に従って動作可能な1000個のマルチチップデバイスを実現するために製造される(例えば、2000×0.5=1000)。この結果、コストは8222AUとなる(例えば、1111×2+2000×3)。
【0083】
チップ数のより多い仕様、例えば、デバイス仕様404、が独立に考慮され、チップ数のより少ない仕様、例えば、この例ではデバイス仕様402、がチップ数のより多い仕様に依存して考慮される場合、コストが低減され得る。上記のように、デバイス仕様404に従って製造される2000個のマルチチップデバイスが、デバイス仕様404に従って動作可能な1000個のマルチチップデバイスを実現するために製造される(例えば、2000×0.5=1000)。明らかなように、チップ数のより少ない仕様に従って製造されるマルチチップデバイスは、チップ数のより多い仕様に従って動作可能なマルチチップデバイスの個数に影響し得ない。デバイス仕様404に従って製造される不良なマルチチップデバイスのうちの40%が、デバイス仕様402に従って動作可能であるように再生され得ると仮定する。デバイス仕様404に従って製造される不良なマルチチップデバイスのうちの400個が、デバイス仕様402に従って動作可能であるように再生される(例えば、1000×0.4=400)。この結果、デバイス仕様402に従って動作可能なマルチチップデバイスとして追加的に実現される必要のあるのは600個となる。歩留まりに基づいて、デバイス仕様402に従って製造される667個のマルチチップデバイスが、デバイス仕様402に従って動作可能な600個のマルチチップデバイスを実現するために製造される(例えば、667×0.9=600)。これらの状況の下で、この結果として、コストは7334AU(例えば、2000×3+667×2)となり、これは上記の8222AUから10.8%の減少である。
【0084】
図9は、いくつかの例によるマルチチップデバイスを実現する方法900のフローチャートである。例示的な方法900は、方法900のさまざまな態様の実例を提供するために、デバイス仕様402、404、406、および408に関連して説明される。方法900の他の例示的な実装形態は、異なるデバイス仕様を使用し得る。さらに、方法900は、チップを不良にする欠陥に関連して以下で説明されることがあるが、他の実装形態は、欠陥がチップの一部またはサブ領域を不良にし、チップの残部は動作可能である状況に適用され得る。
【0085】
方法900の説明を開始する前に、以下の説明を簡単にするためにさまざまな変数を定義する。
【0086】
は、デバイス仕様Aに従って実現され動作可能であるべきマルチチップデバイスの目標数である。
【0087】
は、デバイス仕様Aに従って製造されるマルチチップデバイスのコストである。
【0088】
は、デバイス仕様Aによる製造の期待歩留まりである。
【0089】
は、デバイス仕様Aに従って製造されるマルチチップデバイスで、不良となる期待個数である(例えば、D=M×(1-Y))。
【0090】
は、デバイス仕様Aに従って製造される不良のマルチチップデバイスであって、デバイス仕様Bに従って再生され動作可能となるマルチチップデバイスの期待歩留まりである。
【0091】
B|Aは、デバイス仕様Aに従って製造される不良のデバイスであって、デバイス仕様Bに従って再生され動作可能となると期待されるマルチチップデバイスの個数である(例えば、
)。
【0092】
は、Tに達するために充足され続けると期待されるマルチチップデバイスの個数であり、U=T-(M×Y)-ΣB|Aである。
【0093】
は、デバイス仕様Bに従って製造されると判定されたマルチチップデバイスの個数である(例えば、M=U/Y)。
【0094】
それぞれのMは0に初期化される。
【0095】
ブロック902で、デバイス仕様に対応して実現されるべき相異なるマルチチップデバイスの目標数が特定される。一例として、目標数が以下に列挙され、添字は、デバイス仕様402、404、406、408のうちのいずれがその目標数に対応するかを識別する。最初に、UはTに等しく設定される。
402=U402=1000
404=U404=1000
406=U406=1000
408=U408=1000
【0096】
明らかとなるように、これらの目標値は、対応するデバイス仕様に従ってマルチチップデバイスを製造することによって、および、別のデバイス仕様に従ってマルチチップデバイスを製造し、対応するデバイス仕様に従って動作可能であるように再生されることによって、達成され得る。
【0097】
ブロック904で、デバイス仕様による製造の期待歩留まりが特定される。例えば、期待歩留まりは下記に列挙される。
402=90%
404=50%
406=30%
408=40%
【0098】
ブロック906で、対応する期待歩留まりに基づいて、残りの最高コストのデバイス仕様に従って製造されるべきマルチチップデバイスであって、そのデバイス仕様に対して実現されるべき目標数を充足するものの個数が判定される。例の目的のために、マルチチップデバイスを製造するコストが下記に列挙される。
402=2AU
404=3AU
406=4AU
408=3.2AU
【0099】
記載される方法900では、チップ数が増大すると、一般的に、コストが増大し、歩留まりが減少する結果となると仮定される。他の例示的実装形態では、ブロック906および以降のブロックならびに反復において対応するデバイス仕様に対して製造されるべきマルチチップデバイスの個数を判定するために、どのような順序でデバイス仕様を分析するかを判定するために、コストの代わりに、またはコストに加えて、別の考慮点が考慮され得る。
【0100】
これらの仮定の下で、ブロック906の第1のインスタンスで残りの最高コストのデバイス仕様は、デバイス仕様406である。デバイス仕様406に従って製造されるべきデバイスの個数(例えば、M406として識別される)は3333個である(例えば、M406×Y406=U406==3333×0.3=1000)。したがって、デバイス仕様406に従って実現され動作可能であるべきマルチチップデバイスの目標数は、デバイス仕様406に従って3333個のマルチチップデバイスを製造することによって充足され得る。
【0101】
ブロック908で、残りの最高コストのデバイス仕様に従って製造される、不良であると予想されるマルチチップデバイスであって、別のデバイス仕様に従って、その別のデバイス仕様に対して実現されるべきマルチチップデバイスの目標数を少なくとも部分的に充足するために、動作可能であるように再生され得るマルチチップデバイスの個数が、判定される。例を続けると、あるデバイス仕様に従って再生され動作可能であるべきマルチチップデバイスであって、別の仕様に従って製造される不良なデバイスの期待歩留まりが、下記に列挙される。
【0102】
なお、この例では、デバイス仕様406に従って製造される不良なマルチチップデバイスのいずれも、そのような不良なマルチチップデバイスはアクセラレータチップ426を含むように製造されていないため、デバイス仕様408に従って動作可能であるようには再生できないことに留意されたい。
【0103】
上記の仮定および状況の下で、ブロック906および908を通る第1のパスを通じて、さまざまな決定された量が下記の示すようにまとめられる。
【0104】
ブロック910で、相異なるマルチチップデバイスの目標数が充足されたかどうかの判定がなされる。充足されていない場合、方法900はブロック906にループバックし、相異なるマルチチップデバイスの目標数が充足されるまでブロック906および908が反復的に実行される。示した例では、方法900は、U402=U404=U406=U408=0となるまでブロック910の動作によってブロック906にループバックする。ブロック910における判定が、相異なるマルチチップデバイスの目標数が充足されたという判定である場合、ブロック912で、製造されるべきマルチチップデバイスの判定された個数に基づいて、相異なるマルチチップデバイスが製造される。示した例では、判定されたM402、M404、M406、およびM408が、それぞれのデバイス仕様402、404、406、408に従って製造される。デバイス仕様による製造は、例えば、図2の方法200によることができる。別のデバイス仕様に従って動作可能であるように再生されるべき任意の不良なマルチチップデバイスは、図8の方法800に関して説明したように構成される。
【0105】
説明している例では、ブロック906および908の第1のパスの後、目標数は未充足のままである(例えば、U402、U404、およびU406は0でない)。したがって、ブロック906および908の第2の反復が実行され、結果として得られる判定および仮定が下記に例示される。残りの最高コストの仕様は、デバイス仕様408である。
【0106】
なお、この例では、デバイス仕様408に従って製造される不良なマルチチップデバイスのいずれも、そのような不良なマルチチップデバイスは2個のファブリックチップ414、416を含むように製造されていないため、デバイス仕様404に従って動作可能であるようには再生できないことに留意されたい。
【0107】
説明している例では、ブロック906および908の第2のパスの後、目標数は未充足のままである(例えば、U402およびU404は0でない)。したがって、ブロック906および908の第3の反復が実行され、結果として得られる判定および仮定が下記に例示される。残りの最高コストの仕様は、デバイス仕様404である。
【0108】
説明している例では、ブロック906および908の第3のパスの後、目標数は未充足のままである(例えば、U402は0でない)。したがって、ブロック906および908の第4の反復が実行され、結果として得られる判定および仮定が下記に例示される。残りの最高コストの仕様は、デバイス仕様404である。
402=U402/Y402=308/0.9=342
402=T402-(M402×Y402)-Σ402|A
1000-(342×0.9)-(466+150+76)=0
404=T404-(M404×Y404)-Σ404|A=1000-(1534×0.5)-(233+0)=0
406=T406-(M406×Y406)-Σ406|A=1000-(3333×0.3)-0=0
408=T408-(M408×Y408)-Σ408|A=1000-(2500×0.4)-0=0
【0109】
説明している例では、ブロック906および908の第4のパスの後、目標数は充足され、デバイス仕様に従って製造されるべき対応する個数のマルチチップデバイスが製造される。それらの個数は下記に列挙する通りである。
402=342
404=1534
406=3333
408=2500
【0110】
したがって、説明している例では、デバイス仕様408については、仕様に従って実現され動作可能であるべきマルチチップデバイスの目標数(例えば、1000)は、与えられた期待製造歩留まり(例えば、40%)に対して、製造されるべきと判定された個数(例えば、2500)のマルチチップデバイスを製造することによって達成され得る。デバイス仕様406については、仕様に従って実現され動作可能であるべきマルチチップデバイスの目標数(例えば、1000)は、与えられた期待製造歩留まり(例えば、30%)に対して、製造されるべきと判定された個数(例えば、3333)のマルチチップデバイスを製造することによって達成され得る。デバイス仕様404については、仕様に従って実現され動作可能であるべきマルチチップデバイスの目標数(例えば、1000)は、与えられた期待製造歩留まり(例えば、50%)に対して、製造されるべきと判定された個数(例えば、1534)のマルチチップデバイスを製造し、ある個数(例えば、233)のデバイス仕様406に従って製造される不良なマルチチップデバイスを再生することによって達成され得る。デバイス仕様402については、仕様に従って実現され動作可能であるべきマルチチップデバイスの目標数(例えば、1000)は、与えられた期待製造歩留まり(例えば、90%)に対して、製造されるべきと判定された個数(例えば、342)のマルチチップデバイスを製造し、ある個数(例えば、150)のデバイス仕様408に従って製造される不良なマルチチップデバイスと、ある個数(例えば、466)のデバイス仕様406に従って製造される不良なマルチチップデバイスと、ある個数(例えば、76)のデバイス仕様404に従って製造される不良なマルチチップデバイスとを再生することによって達成され得る。
【0111】
開示される再生方式を使用することにより、いくつかの製造されたマルチチップデバイスが再生され得る。他の例は、任意の個数のデバイス仕様を有することができ、任意の再生メカニズムを使用することができ、実現されるべき任意の個数のデバイスを有することができる。上記の例は、記載される方法をより明確に例示するために記載されている。
【0112】
一例は、垂直に積層されたチップを含むチップスタックを含むマルチチップデバイスを含む。チップの隣り合うペアが互いに直接接続される。チップは、コントローラおよびメモリを含む第1のチップを含む。チップは、チップスタック内で第1のチップの上に2つ以上の第2のチップを含み、2つ以上の第2のチップのそれぞれが処理集積回路を含む。チップスタックは、処理集積回路の一部が不良であるときに2つ以上の第2のチップの処理集積回路の機能のサブセットを動作させるように構成可能である。メモリは、処理集積回路の動作可能性に関連する構成情報を記憶するように動作可能である。コントローラは、処理集積回路に通信可能に接続され、少なくとも機能のサブセットの動作を実装するための構成情報に基づいて、処理集積回路に構成データを配信するように動作可能である。
【0113】
上記の例示的なマルチチップデバイスにおいて、処理集積回路のそれぞれがプログラマブルロジック領域を含むことができ、チップスタックは、2つ以上の第2のチップよりも少数のプログラマブルロジック領域のそれぞれの全体を動作させ、2つ以上の第2のチップのうちの少なくとも1つのプログラマブルロジック領域のそれぞれの全体を無効化するように構成可能であることができる。
【0114】
上記の例示的なマルチチップデバイスにおいて、処理集積回路のそれぞれがプログラマブルロジック領域を含むことができ、チップスタックは、2つ以上の第2のチップのプログラマブルロジック領域のいずれかのサブ領域を動作させ、2つ以上の第2のチップのプログラマブルロジック領域のいずれかのサブ領域を無効化するように構成可能であることができる。さらに、上記の例示的なマルチチップデバイスにおいて、2つ以上の第2のチップのプログラマブルロジック領域のサブ領域がスリバとして整列されることができ、スリバのそれぞれが2つ以上の第2のチップのそれぞれのプログラマブルロジック領域のサブ領域を含むことができる。2つ以上の第2のチップがそれぞれチップ間ブリッジを備えることができ、チップ間ブリッジのそれぞれが(i)隣り合うスリバ内の、および(ii)隣り合うチップまたは同じチップ内の、プログラマブルロジック領域のサブ領域間に接続されることができる。
【0115】
上記の例示的なマルチチップデバイスにおいて、コントローラは構成データをロードするように動作可能であることができ、構成データは処理集積回路のうちの1つまたは複数で動作可能であることができる。チップスタックは、チップスタックの処理集積回路のどの部分が動作するように構成されているかとは無関係に構成データを動作させるように構成可能であることができる。
【0116】
上記の例示的なマルチチップデバイスにおいて、2つ以上の第2のチップの処理集積回路のうちの少なくとも1つが、2つ以上の第2のチップの処理集積回路のうちの別の少なくとも1つとは異なることができる。
【0117】
上記の例示的なマルチチップデバイスにおいて、2つ以上の第2のチップの処理集積回路のうちの2つ以上が同じ処理集積回路である。
【0118】
別の一例は、デバイスを実現する方法を含む。チップスタックが、複数の処理集積回路の機能のサブセットを、処理集積回路の一部が不良であるときに動作するようにコントローラによって構成される。チップスタックは垂直に積層されたチップを備える。チップの隣り合うペアが互いに直接接続される。チップは第1のチップと第1のチップの上の2つ以上の第2のチップとを含む。第1のチップはコントローラおよびメモリを含む。2つ以上の第2のチップのそれぞれが処理集積回路のそれぞれの1つを含む。コントローラは、メモリに記憶された構成情報に基づいて、複数の処理集積回路のどの1つまたは複数の部分が機能のサブセットを動作させるかを構成する。
【0119】
上記の例示的な方法において、チップスタックを構成することは、2つ以上の第2のチップよりも少数のプログラマブルロジック領域のそれぞれの全体を動作させ、2つ以上の第2のチップのうちの少なくとも1つのプログラマブルロジック領域のそれぞれの全体を無効化するようにチップスタックを構成することを含むことができ、処理集積回路のそれぞれがプログラマブルロジック領域を含む。
【0120】
上記の例示的な方法において、チップスタックを構成することは、2つ以上の第2のチップのプログラマブルロジック領域のいずれかのサブ領域を動作させ、2つ以上の第2のチップのプログラマブルロジック領域のいずれかのサブ領域を無効化するようにチップスタックを構成することを含むことができ、処理集積回路のそれぞれがプログラマブルロジック領域を含む。さらに、上記の例示的な方法において、2つ以上の第2のチップのプログラマブルロジック領域のサブ領域がスリバとして整列されることができ、スリバのそれぞれが2つ以上の第2のチップのそれぞれのプログラマブルロジック領域のサブ領域を含むことができる。2つ以上の第2のチップはそれぞれチップ間ブリッジを備えることができ、チップ間ブリッジのそれぞれが(i)隣り合うスリバ内の、および(ii)隣り合うチップまたは同じチップ内の、プログラマブルロジック領域のサブ領域間に接続され得る。チップスタックを構成することは、チップ間ブリッジを構成することを含むことができる。
【0121】
上記の例示的な方法において、2つ以上の第2のチップの処理集積回路のうちの少なくとも1つが、2つ以上の第2のチップの処理集積回路のうちの別の少なくとも1つとは異なることができる。
【0122】
上記の例示的な方法において、2つ以上の第2のチップの処理集積回路のうちの2つ以上が同じ処理集積回路であることができる。
【0123】
さらなる一例は、積層されたチップを含みチップの隣り合うペアが互いに結合されたチップスタックを含むマルチチップデバイスを含む。チップは、第1のチップと、第1のチップ上に積層された2つ以上の第2のチップとを含む。第1のチップは、コントローラおよびメモリを含む。2つ以上の第2のチップのそれぞれが、処理集積回路を含む。メモリは、不良である処理集積回路の部分を示す構成情報を記憶するように動作可能である。コントローラは、処理集積回路に通信可能に接続され、2つ以上の第2のチップの処理集積回路の機能の少なくともサブセットの動作を実装するための構成情報に基づいて、処理集積回路の非不良部分に構成データを配信するように動作可能である。チップスタックは、処理集積回路の一部が不良であるときに2つ以上の第2のチップの処理集積回路の機能のサブセットを動作させるように構成可能である。
【0124】
上記の例示的なマルチチップデバイスにおいて、処理集積回路のそれぞれがプログラマブルロジック領域を含む。
【0125】
またさらなる一例は、デバイスを実現する方法である。チップのチップスタックを備えるマルチチップデバイスが検査される。チップのそれぞれが処理集積回路を含む。マルチチップデバイスは、第1のデバイス仕様に従って製造される。マルチチップデバイスが第1のデバイス仕様または第1のデバイス仕様とは異なる第2のデバイス仕様に従って動作可能であるかどうかが、マルチチップデバイスを検査したことに基づいて判定される。マルチチップデバイスは、判定に基づいて、第1のデバイス仕様および第2のデバイス仕様のうちの1つに従って動作可能であるようにプログラムされる。
【0126】
上記の例示的な方法において、マルチチップデバイスをプログラムすることは、チップのうちの少なくとも1つの少なくとも一部を無効化することを含む。
【0127】
上記の例示的な方法において、チップのうちの2つ以上が、プログラマブルロジック領域を備えた同じ処理集積回路を含むことができ、マルチチップデバイスをプログラムすることは、少なくとも1つの論理的なプログラマブルロジック領域全体を使用し、プログラマブルロジック領域のうちの少なくとも1つの少なくとも一部を無効化して、動作可能であるようにマルチチップデバイスを構成することを含むことができる。
【0128】
上記の例示的な方法において、チップのうちの2つ以上が、プログラマブルロジック領域を備えた同じ処理集積回路を含むことができ、マルチチップデバイスをプログラムすることは、チップのうちの少なくとも1つのプログラマブルロジック領域全体を使用し、チップのうちの少なくとも1つのプログラマブルロジック領域全体を無効化して、動作可能であるようにマルチチップデバイスを構成することを含むことができる。
【0129】
上記の例示的な方法において、チップのうちの2つ以上が、プログラマブルロジック領域を備えた同じ集積回路を含むことができ、マルチチップデバイスをプログラムすることは、チップの2つ以上のプログラマブルロジック領域の少なくとも一部を使用し、同じ集積回路を含むチップのうちの少なくとも1つのプログラマブルロジック領域の少なくとも一部を無効化して、動作可能であるようにマルチチップデバイスを構成することを含むことができる。
【0130】
図中のフローチャートおよびブロック図は、さまざまな例によるシステムおよび方法の可能な実装形態のアーキテクチャ、機能、および動作を示す。他の実装形態では、ブロック内に記された機能は、図中に記された順序以外で発生し得る。例えば、連続して示される2個のブロックが、関与する機能に依存して、実際には実質的に同時並行して実行されてもよく、またはブロックは逆順で実行されることがあってもよい。上記は特定の例を対象としているが、他の、およびさらなる例が、その基本的範囲から逸脱することなく案出されることが可能であり、その範囲は添付の特許請求の範囲によって決定される。
図1
図2
図3
図4
図5
図6
図7
図8
図9