(57)【特許請求の範囲】
【請求項１】
第１の半導体ダイ（１０２，４１０）と、
前記第１の半導体ダイに通信可能に結合された１つ以上の半導体ダイ（２０８，４４０）と、
前記第１の半導体ダイ上のＭ本の信号線（１２０，４１６）と、
前記第１の半導体ダイ上のロジック回路（１１０，４１２）であって、Ｍ個のデータ信号を前記Ｍ本の信号線を介して前記１つ以上の半導体ダイと通信するように構成されたロジック回路と、
少なくともＮ個のコンタクト（１４０，２０６）を含む前記第１の半導体ダイ上の複数のコンタクトであって、前記Ｎ個のコンタクトの数が、前記Ｍ本の信号線の数よりも少なく、各コンタクトが、それぞれの信号経路（４１８）を介して前記１つ以上の半導体ダイのうちの他の１つに結合される、複数のコンタクトと、
前記第１の半導体ダイ上の複数のシリアライザ回路（１３０，４１４）であって、各シリアライザ回路が、複数の前記Ｍ本の信号線のそれぞれのサブセットからのデータをシリアライズして、シリアライズされたデータを生成し、前記シリアライズされたデータを前記コンタクトのうちのそれぞれのコンタクトに供給するように構成された、複数のシリアライザ回路と
を備える装置であって、
前記１つ以上の半導体ダイ及び前記第１の半導体ダイが、集積回路（ＩＣ）パッケージへの及びＩＣパッケージからのデータの通信のための１組のデータ端子（２１８）を有するＩＣパッケージ（２００，４００）内に配置され、
前記１つ以上の半導体ダイの１つである第２の半導体ダイ（２０８，４４０）が、
各々の通信回路が前記１組のデータ端子のうちのそれぞれのデータ端子を介してデータを通信するように構成された複数の通信回路（４４２，４４４，４４６，４４８）と、
前記シリアライズされたデータを前記信号経路のうちのそれぞれの信号経路を介して前記第１の半導体ダイから受信するように結合されたデシリアライザ回路（４５０）と
を含み、前記デシリアライザ回路（４５０）が、
前記シリアライズされたデータをデシリアライズして、１組の並列データ信号を生成し、
前記１組の並列データ信号の各データ信号を前記複数の通信回路（４４２，４４４，４４６，４４８）のうちのそれぞれの通信回路に供給する
ように構成され、前記それぞれの通信回路が、前記データ信号を前記データ端子のうちのそれぞれのデータ端子上で送信するように構成されており、
前記第２の半導体ダイ（２０８，４４０）の前記複数の通信回路（４４２，４４４，４４６，４４８）のうちの少なくとも１つが、前記信号経路のうちのそれぞれの信号経路からシリアライズされたデータを受信するように結合され、前記１組のデータ端子のうちのそれぞれのデータ端子を介して前記シリアライズされたデータを送信するように構成されている、装置。
【請求項２】
前記第１の半導体ダイ（１０２，４１０）が、複数のデシリアライザ回路（４１４）を更に含み、各デシリアライザ回路が、前記コンタクトのうちのそれぞれのコンタクトからシリアライズされたデータを受信し、デシリアライズされたデータを生成し、前記デシリアライズされたデータを前記Ｍ本の信号線（４１６）のうちのそれぞれの複数の信号線に分配するように構成された、請求項１に記載の装置。
【請求項３】
前記第２の半導体ダイ（２０８，４４０）の前記複数の通信回路（４４２，４４４，４４６，４４８）の少なくとも１つの通信回路が、
それぞれのデータ端子から受信された信号を復調し、シリアライズされたデータを含む復調された信号を生成し、
前記復調された信号を前記信号経路のうちのそれぞれの信号経路を介して前記ロジック回路に送信する
ように構成されている、請求項１に記載の装置。
【請求項４】
前記複数の通信回路（４４２，４４４，４４６，４４８）のうちの２つ以上が各々、それぞれのデータ端子から受信されたそれぞれの信号を復調して、それぞれの復調された信号を生成するように構成され、
前記第２の半導体ダイ（２０８，４４０）が、前記複数の通信回路のうちの前記２つ以上によって生成された前記復調された信号をシリアライズして、それぞれのシリアライズされた信号を生成し、前記それぞれのシリアライズされた信号を前記信号経路の１つを介して前記第１の半導体ダイに送信するように構成されたシリアライザ回路を更に含む、請求項１に記載の装置。
【請求項５】
前記第１の半導体ダイ（１０２，４１０）が、第１のリソグラフィプロセスサイズを有する複数のプログラマブルロジックリソースを含み、
前記第２の半導体ダイ（２０８，４４０）の回路が、前記第１のリソグラフィプロセスサイズよりも大きい第２のリソグラフィプロセスを有し、
前記第１の半導体ダイが、Ｘ単位２に等しい面積を有し、
各コンタクト（１４０，２０６）が、前記第１の半導体ダイの前記Ｘ単位２のうちのＹ単位２を含むそれぞれのコンタクト領域に配置され、
前記Ｎ個のコンタクトの数が、Ｘ／Ｙ以下である、請求項１に記載の装置。
【請求項６】
前記ＩＣパッケージ内の基板（２０２）と、
前記基板上のインターポーザ（３１０，４２０）であって、前記第２の半導体ダイのコンタクトの各々を複数の半導体ダイのうちの他の１つの半導体ダイのそれぞれのコンタクトに結合するように構成されたインターポーザと、
前記基板上の１つ以上の配線層（２１４）であって、前記第２の半導体ダイの前記コンタクトの各々を前記複数の半導体ダイのうちの他の１つの半導体ダイのそれぞれのコンタクトに結合するように構成された配線層と
を更に備える、請求項１に記載の装置。
【請求項７】
マルチダイＩＣパッケージ（２００）におけるダイ間通信のための方法であって、
前記ＩＣパッケージの第１の半導体ダイ（１０２，４１０）上のロジック回路（１１０，４１２）を使用して、前記第１の半導体ダイ上のＭ本の信号線を介してＭ個のデータ信号を並列に前記ＩＣパッケージの他のダイ（１０２，４１０）と通信すること（５０２）と、
前記第１の半導体ダイ上の複数のシリアライザ回路（１３０，４１４）の各々について、
前記Ｍ個のデータ信号のそれぞれの第１のサブセットをシリアライズして、それぞれの第１のシリアライズされたデータ信号を生成し（５０４）、
前記それぞれの第１のシリアライズされたデータ信号を前記第１の半導体ダイのＮ個（ここで、Ｎ＜Ｍ）のコンタクト（１４０，２０６）のうちのそれぞれのコンタクトに供給し（５０６）、
前記第１の半導体ダイ上の複数のデシリアライザ回路（４１４）の各々について、
前記Ｎ個のコンタクトのうちの１つにおけるそれぞれの第２のシリアライズされたデータ信号をデシリアライズして、前記Ｍ個のデータ信号のそれぞれの第２のサブセットを生成し（５０８）、
前記それぞれの第２のサブセットの各データ信号を前記Ｍ本の信号線のうちのそれぞれの信号線に供給すること（５１０）と、
インターポーザ（３１０，４２０）を介して又は前記ＩＣパッケージの基板（２０２）上の信号線を介して前記第１のシリアライズされたデータ信号を第２の半導体ダイ（２０８，４４０）へ通信することと、
前記第２の半導体ダイ（２０８，４４０）上のデシリアライザ回路（４５０）を使用して、前記第１のシリアライズされたデータ信号をデシリアライズして、複数の並列データ信号を生成することと、
前記第２の半導体ダイ上のそれぞれの通信回路を使用して、前記複数の並列データ信号を前記ＩＣパッケージ（２００）のそれぞれのデータ端子（２１８）を介して送信することと、
前記第２の半導体ダイ（２０８，４４０）上の通信回路を使用して、前記それぞれのデータ端子とは別の前記データ端子（２１８）の外部データ端子を介して前記第１のシリアライズされたデータ信号を送信することと
を含む方法。
【請求項８】
前記第２の半導体ダイ（２０８，４４０）上のシリアライザ回路（４５０）を使用して、複数のデータ端子（２１８）からのデータ信号をシリアライズして、前記第１の半導体ダイ（１０２，４１０）上の前記複数のデシリアライザ回路（１３０，４１４）の１つに対して前記それぞれの第２のシリアライズされたデータ信号を生成することを更に含む、請求項７に記載の方法。
【請求項９】
前記第１の半導体ダイ（１０２，４１０）の回路が、第１のプロセスサイズを有するリソグラフィを用いて形成され、
前記第２の半導体ダイ（２０８，４４０）の回路が、前記第１のプロセスサイズよりも大きい第２のプロセスサイズを有するリソグラフィを用いて形成され、
前記第１の半導体ダイが、Ｘ単位２に等しい面積を有し、
前記Ｎ個のコンタクト（１４０，２０６）の各々が、前記第１の半導体ダイの（Ｘ／Ｍ）単位２より大きい面積を含むそれぞれのコンタクト領域に配置される、請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データ通信に関し、より詳細には、マルチダイ集積回路（ＩＣ）パッケージのダイ間でのデータの通信に関する。
【背景技術】
【０００２】
プログラマブルロジックデバイス（ＰＬＤ）は、指定された論理機能を実行するようにプログラムすることができる、よく知られているタイプのプログラマブルＩＣである。１つのタイプのＰＬＤであるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、通常、プログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、例えば、入出力ブロック（ＩＯＢ）、構成可能な論理ブロック（ＣＬＢ）、専用ランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、ディレイロックループ（ＤＬＬ）、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）およびイーサネットなどのバスまたはネットワークインターフェースを含むことができる、様々なタイプの論理ブロックを含む。
【０００３】
各プログラマブルタイルは、通常、プログラマブルインターコネクトとプログラマブルロジックの両方を含む。プログラマブルインターコネクトは、通常、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続された様々な長さの多数のインターコネクトラインを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザーデザインのロジックを実装する。
【０００４】
プログラマブルインターコネクトおよびプログラマブルロジックは、プログラマブルエレメントがどのように構成されるかを定める内部コンフィギュレーションメモリセルにコンフィギュレーションデータのストリームをロードすることによって、通常、プログラムされる。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってＦＰＧＡに書き込むことができる。その後、個々のメモリセルの集合的な状態が、ＦＰＧＡの機能を決定する。
【発明の概要】
【０００５】
様々な実施例が、マルチダイＩＣパッケージ上のダイ間通信のための回路および方法に関する。実施例によれば、ＩＣは、半導体ダイ上にＭ本の信号線とロジック回路とを有する第１の半導体ダイを含む。ロジック回路は、第１の半導体ダイに通信可能に結合された１つ以上の半導体ダイと、Ｍ本の信号線を介してＭ個のデータ信号を通信するように構成される。ＩＣはまた、半導体ダイ上に複数のコンタクトを含む。複数のコンタクトは、少なくともＮ個のコンタクトを含み、ＮはＭ未満である。半導体ダイ上の複数のシリアライザ回路は各々、複数のＭ本の信号線のうちの対応するサブセットからのデータをシリアライズして、シリアライズされたデータを生成するように構成される。各シリアライザ回路は、シリアライズされたデータを対応するコンタクトに供給する。
【０００６】
任意選択で、本装置は、１つ以上の半導体ダイをさらに含む。１つ以上の半導体ダイおよび第１の半導体ダイは、ＩＣパッケージへ及びＩＣパッケージからデータを通信するための１組のデータ端子を有する集積回路（ＩＣ）パッケージ内に配置することができる。１つ以上の半導体ダイに含まれる第２の半導体ダイは、複数の通信回路を含み、各通信回路は、１組のデータ端子のうちの対応するデータ端子を介してデータを通信するように構成されている。
【０００７】
任意選択で、第１の半導体ダイは、複数のデシリアライザ回路をさらに含み、各回路は、シリアライズされたデータを対応するコンタクトから受け取り、デシリアライズされたデータを生成し、デシリアライズされたデータをＭ本の信号線のうちの対応する複数の信号線に分配するように構成される。
【０００８】
任意選択で、第２の半導体ダイの複数の通信回路の少なくとも１つは、シリアライズされたデータを対応する信号経路から受信するように結合され、１組のデータ端子のうちの対応するデータ端子を介してシリアライズされたデータを送信するように構成される。
【０００９】
任意選択で、第２の半導体ダイは、第１の半導体ダイからのシリアライズされたデータを対応する信号経路を介して受信するように結合されたデシリアライザ回路であって、シリアライズされたデータをデシリアライズして１組の並列データ信号を生成し、１組の並列データ信号の各データ信号を複数の通信回路のうちの対応する通信回路へ送信するように構成されたデシリアライザ回路をさらに含み、前記対応する通信回路は、データ信号を対応するデータ端子上で送信するように構成される。
【００１０】
任意選択で、第２の半導体ダイの複数の通信回路のうちの少なくとも１つの通信回路は、対応するデータ端子から受信した信号を復調して、シリアライズされたデータを含む復調信号を生成し、対応する信号経路を介して復調信号をロジック回路に送信するように構成される。
【００１１】
任意選択で、複数の通信回路のうちの２つ以上は各々、対応するデータ端子から受信したそれぞれの信号を復調して、それぞれの復調信号を生成するように構成され、第２の半導体ダイは、複数の通信回路のうちの前記２つ以上によって生成された復調信号をシリアライズし、それぞれのシリアライズされた信号を生成し、それぞれのシリアライズされた信号を信号経路の１つを介して第１の半導体ダイに送信するように構成されたシリアライザ回路をさらに含む。
【００１２】
任意選択で、第１の半導体ダイは、第１のリソグラフィプロセスサイズを有する複数のプログラマブルロジックリソースを含み、第２の半導体ダイの回路は、第１のリソグラフィプロセスサイズよりも大きい第２のリソグラフィプロセスを有する。
【００１３】
任意選択で、ＩＣパッケージは、ＩＣパッケージ内の基板と、基板上のインターポーザであって、第２の半導体ダイのコンタクトの各々を複数の半導体ダイのうちの別の１つの対応するコンタクトに結合するように構成されたインターポーザと、をさらに含む。
【００１４】
任意選択で、ＩＣパッケージは、基板上の１つ以上の配線層であって、第２の半導体ダイのコンタクトの各々を複数の半導体ダイのうちの別の１つの対応するコンタクトに結合するように構成された配線層を、さらに含む。
【００１５】
任意選択で、第１の半導体ダイは、Ｘ単位２に等しい面積を有し、各コンタクトが、第１の半導体ダイのＸ単位２のうちのＹ単位２を含むそれぞれのコンタクト領域に配置され、Ｎ個のコンタクトの数は、Ｘ／Ｙより小さいか又は等しい。
【００１６】
マルチダイＩＣパッケージにおけるダイ間通信のための方法もまた開示される。ＩＣパッケージの第１の半導体ダイ上のロジック回路を使用して、Ｍ個のデータ信号が並列に、第１の半導体ダイ上のＭ本の信号線を介してＩＣパッケージの他のダイと通信される。第１の半導体ダイ上の複数のシリアライザ回路の各々について、Ｍ個のデータ信号のうちの対応する第１のサブセットがシリアライズされて、それぞれの第１のシリアライズされたデータ信号が生成される。それぞれの第１のシリアライズされたデータ信号は、第１の半導体ダイのＮ個のコンタクトのうちの対応するコンタクトに供給され、Ｎ＜Ｍである。第１の半導体ダイ上の複数のデシリアライザ回路の各々について、Ｎ個のコンタクトのうちの１つにおけるそれぞれの第２のシリアライズされたデータ信号がデシリアライズされて、Ｍ個の並列データ信号のうちのそれぞれの第２のサブセットを生成する。それぞれの第２のサブセットのデータ信号は、Ｍ本の信号線のうちの対応する信号線に供給される。
【００１７】
任意選択で、本方法は、第１のシリアライズされたデータ信号を、Ｎ個のコンタクトのうちの前記対応するコンタクトからＩＣパッケージの第２の半導体ダイへ供給することを、さらに含む。
【００１８】
任意選択で、第１のシリアライズされたデータ信号を第２の半導体ダイに供給することは、インターポーザを介して第１のシリアライズされたデータ信号を第２の半導体ダイに通信することを含む。
【００１９】
任意選択で、第１のシリアライズされたデータ信号を第２の半導体ダイに供給することは、ＩＣパッケージの基板上の信号線を介して第１のシリアライズされたデータ信号を通信することを含む。
【００２０】
任意選択で、本方法は、第２の半導体ダイ上の通信回路を使用することと、ＩＣパッケージの外部データ端子を介して第１のシリアライズされたデータ信号を送信することとをさらに含む。
【００２１】
任意選択で、本方法は、第２の半導体ダイ上のデシリアライザ回路を使用して、第１のシリアライズされたデータ信号をデシリアライズして複数の並列データ信号を生成することと、第２の半導体ダイ上の対応する通信回路を使用して、ＩＣパッケージの対応するデータ端子を介して複数の並列データ信号を送信することとをさらに含む。
【００２２】
任意選択で、本方法は、第２の半導体ダイ上のシリアライザ回路を使用して、複数のデータ端子からのデータ信号をシリアライズして、それぞれの第２のシリアライズされたデータ信号を第１の半導体ダイ上の複数のデシリアライザ回路の１つに対して生成することをさらに含む。
【００２３】
任意選択で、第１の半導体ダイの回路は、第１のプロセスサイズを有するリソグラフィを用いて形成され、第２の半導体ダイの回路は、第１のプロセスサイズより大きい第２のプロセスサイズを有するリソグラフィを用いて形成される。第１の半導体ダイは、Ｘ単位２に等しい面積を有してもよく、Ｎ個のコンタクトの各々が、第１の半導体ダイの、（Ｘ／Ｍ）単位２より大きい領域を含むそれぞれのコンタクト領域に配置される。
【００２４】
一実施例によれば、ＩＣパッケージは、基板と、基板に結合された、ＩＣパッケージへ及びＩＣパッケージからデータを通信するための１組のデータ端子とを含む。ＩＣパッケージは、ＩＣパッケージの対応するデータ端子を介してデータを通信するための複数の通信回路を有する第１の半導体ダイを含む。ＩＣパッケージはまた、第２の半導体ダイへ及び第２の半導体ダイからデータを通信するためのＮ個のコンタクトを有する第２の半導体ダイを含む。第２の半導体ダイは、Ｍ個のデータ信号をパッケージの１つ以上の他の半導体ダイと並列に通信するように構成されたロジック回路を含み、Ｍ＞Ｎである。第２の半導体ダイはまた、複数のシリアライザ回路を含み、各シリアライザ回路は、複数のＭ個のデータ信号のうちの対応するサブセットからのデータをシリアライズして、シリアライズされたデータを生成し、シリアライズされたデータをＮ個のコンタクトのうちの対応するコンタクトに供給するように構成される。
【００２５】
他の特徴が、以下の詳細な説明および特許請求の範囲の考察から認識されるであろう。
【００２６】
本方法および回路の様々な態様および特徴は、以下の詳細な説明を考察し、図面を参照することにより、明らかになるであろう。
【図面の簡単な説明】
【００２７】
【図１】より少ない数のコンタクトを使用する、ある数のデータ信号のダイ間通信用に構成された例示的な半導体ダイを示す。
【図２】ダイ間通信用に構成された第１および第２の半導体ダイを有する第１のＩＣパッケージの断面図である。
【図３】ダイ間通信用に構成された第１および第２の半導体ダイを有する第２のＩＣパッケージの断面図である。
【図４】ダイ間通信のための回路例のブロック図である。
【図５】マルチダイＩＣパッケージ内の半導体ダイからデータを通信するための例示的なプロセスを示す。
【図６】マルチダイＩＣパッケージ内の半導体ダイにデータを通信するための例示的なプロセスを示す。
【図７】１つ以上の実施形態に従って構成され得るプログラマブルＩＣを示す。
【発明を実施するための形態】
【００２８】
以下の説明では、本明細書に示される特定の例を説明するために、多数の特定の詳細が説明される。しかしながら、当業者には明らかなように、１つ以上の他の例および／またはこれらの例の変形例が、以下に示される特定の詳細のすべてを伴わずに実施されてもよい。他の例では、本明細書の例の説明を不明瞭にしないように、周知の特徴については詳細には説明していない。説明を容易にするために、同じ要素または同じ要素の追加の例を指すために、同じ参照番号が異なる図で使用され得る。
【００２９】
マルチダイＩＣパッケージは、一緒に結合され、単一パッケージ内に配置された複数の半導体ダイを含む。各半導体ダイは、ＩＣパッケージのそれぞれの構成要素を実施する。一般に、いずれかの半導体ダイ内で発生する製造不良は、ＩＣパッケージを動作不能にする。ＩＣパッケージのそれぞれの構成要素を実施するために複数の半導体ダイを使用することにより、ＩＣパッケージの最終組立に先立って、構成要素を個別に製造し、試験することが可能になる。したがって、欠陥のある構成要素は、最終的なＩＣパッケージに組み立てられる前に個別に識別され得る。このようにして、ＩＣパッケージの製造の歩留まりを向上させることができる。
【００３０】
データは、半導体ダイ上のそれぞれのコンタクト間のダイ間接続を介して、マルチダイＩＣパッケージ内の個々の半導体ダイ間で通信される。ダイ間接続は、例えば、ＩＣパッケージ内の基板および／またはインターポーザ上の信号線を含むことができる。コンタクトは、例えばワイヤボンド、Ｃ４はんだボール、および／またはマイクロバンプを含む様々な製造技術を使用して信号線に接続することができる。これに限定されるものではないが、参照を容易にするために、マイクロバンプを用いて半導体パッケージに搭載され相互接続された半導体ダイを参照して、例が主に説明される。
【００３１】
リソグラフィプロセスの進歩は、シリコンの所定の面積に印刷することができる回路の密度を増加させ続けている。典型的には、半導体ダイ上に集積される回路の量が増加すると、データの入出力のためのコンタクトの数が増加する。しかしながら、現在の製造技術の限界のために、半導体ダイへの及び／又は半導体ダイからのデータ通信のための所望の数のコンタクトを収容するのに十分な面積が半導体ダイ上に存在しないことがある。例えば、プログラマブルＩＣの場合、プログラマブルロジック回路とプログラマブルロジック回路の外部の様々な通信回路との間で数千の並列データ信号を通信する必要があるかもしれない。半導体ダイ上にプログラマブルロジック回路を形成するために２８ｎｍのリソグラフィが使用される場合、プログラマブルロジック回路からのすべてのデータ信号を対応する信号線に伝達するために、１〜２μｍピッチのコンタクトが必要となることがある。しかしながら、現在入手可能なコンタクトは、典型的には、約３５〜４０μｍの最小ピッチを有する。したがって、半導体ダイのシリコン領域内で各データ信号に対してそれぞれのコンタクトを形成することは不可能である。
【００３２】
より少ない数のコンタクトを使用して、マルチダイＩＣパッケージの半導体ダイへ及び／又は半導体ダイから、より多くの数のデータ信号を通信するための回路および方法が開示される。一実施例によれば、ＩＣパッケージは、第１の数（Ｍ）のデータ信号を並列にパッケージの１つ以上の他の半導体ダイと通信するように構成されたロジック回路を有する第１の半導体ダイを含む。第１の半導体ダイは、データ信号の数よりも小さい第２の数（Ｎ）のコンタクトを含む。第１の半導体ダイはまた、１つ以上のシリアライザ回路を含む。各シリアライザ回路は、Ｍ個のデータ信号のうちの対応するサブセットをシリアライズして、シリアライズされたデータ信号を生成し、シリアライズされたデータ信号をＮ個のコンタクトのうちの対応するコンタクトに提供するように構成される。シリアライゼーションは、Ｍ個のデータ信号のそれぞれのビットを、単一の信号経路を介して順次送信するための単一のデータ信号に配列する。代替的または追加的に、第１の半導体ダイは、１つ以上のデシリアライザ回路を含むことができる。各デシリアライザは、Ｍ個のデータ信号のサブセットを生成するために、Ｎ個のコンタクトのうちの対応するコンタクトにおけるシリアライズされたデータ信号をデシリアライズするように構成される。デシリアライゼーションは、シリアライズされたデータ信号を、それぞれの信号線上で送信するための成分データ信号に分離する。参照を容易にするために、シリアライズされていないデータ信号は、並列データ信号または並列に通信されるデータ信号と呼ぶことができる。
【００３３】
開示された実施形態は、複数の相互接続された半導体ダイによって実現される様々な回路を有するＩＣパッケージに適用可能である。説明を容易にするために、本開示の例は、第１の半導体ダイ上のプログラマブルロジック回路と、第２の半導体ダイ上の１つ以上の通信回路とを含むＩＣパッケージを参照して一般的に議論され得る。第２の半導体ダイ上の通信回路は、例えば、ＩＣパッケージの１組の外部データ端子を介してＩＣパッケージへ及び／又はＩＣパッケージからデータを通信するように構成することができる。
【００３４】
いくつかの実施形態では、１つ以上の通信回路が、ＩＣダイからの伝送のために、第１の半導体ダイから第２の半導体ダイに通信されるシリアライズされたデータ信号を符号化する。代替的にまたは追加的に、第２の半導体ダイは、第１の半導体ダイから第２の半導体ダイに通信されるシリアライズされたデータ信号をデシリアライズして、１組の並列データ信号を生成するように構成されたデシリアライザ回路を含むことができる。並列データ信号の各々が、対応するデータ端子を介して伝送するために、対応する通信回路によって符号化されてもよい。相異なる通信回路は、様々な通信プロトコルを使用して、シリアライズされた又は並列のデータ信号を符号化することができる。通信回路によって生成された変調信号は、ＩＣパッケージのデータ端子のうちの対応するデータ端子上で通信回路によって送信される。
【００３５】
いくつかの実施形態では、第２の半導体ダイ上の１つ以上の通信回路は、ＩＣパッケージのデータ端子から受信したデータ信号を復調し、復調信号をシリアライズされたデータとして第１の半導体ダイに通信するように構成される。いくつかの通信回路の場合、復調信号は、通信回路によって第１の半導体ダイに直接に通信することができるシリアライズされたデータを含むことができる。いくつかの他の通信回路では、復調信号は、シリアライズされたデータを含まない。いくつかの実施形態では、第２の半導体ダイは、複数の復調信号をシリアライズして、第１の半導体ダイへの通信のためのシリアライズされたデータ信号を生成するように構成されたシリアライザ回路を含むことができる。
【００３６】
上述したように、ＩＣパッケージ内に複数の半導体ダイを使用することにより、ＩＣパッケージ内の回路部品を個別に製造し、ＩＣパッケージ内に組み立てる前に試験することができる。しかしながら、半導体ダイのシリコン面積を、半導体ダイ間で通信されるデータ信号のそれぞれのためのそれぞれのコンタクトを収容するために増加させる必要があるかもしれない。このようなシリコン面積の増加は、個々の半導体ダイおよび結果として得られるＩＣパッケージの製造コストを増加させる。
【００３７】
開示されたダイ間通信用の回路および方法は、マルチダイＩＣパッケージ内の個々の半導体ダイが、各ダイ間データ信号用のそれぞれのコンタクトを含むために要求されるであろう面積よりも小さい面積寸法で形成されることを可能にする。より少ないコンタクトを使用してデータ信号を通信することにより、半導体ダイのシリコン面積を縮小することができる。したがって、ＩＣパッケージ内の回路は、追加のコンタクトを含むためにシリコン面積を増加させることなく、複数の半導体ダイを使用して実現することができる。
【００３８】
ＩＣパッケージ内の複数の半導体ダイを使用することにより、異なるリソグラフィプロセスを使用して異なる回路を形成することも可能になる。例えば、いくつかの実施形態では、プログラマブルロジック回路は、より小さいリソグラフィプロセスサイズを使用して第１の半導体ダイに形成され、データの入出力のための通信回路は、より大きなリソグラフィプロセスサイズを使用して第２の半導体ダイに形成することができる。
【００３９】
ここで図面を参照すると、図１は、より少ない数のコンタクトを使用した、ある数のデータ信号のダイ間通信用に構成された例示的な半導体ダイを示す。この例では、半導体ダイ１０２は、半導体ダイへの及び／又は半導体ダイからのデータ信号の通信のための複数のコンタクト１４０を含む。コンタクトの最大数は、半導体ダイの総面積と各コンタクトに必要な面積によって制限される。例えば、長さＸ単位を有する正方形の半導体ダイ及び長さＹ単位を有する正方形のコンタクトに対して、半導体ダイは、Ｘ*Ｘ単位２の面積を有し、コンタクトは、Ｙ*Ｙ単位２を必要とする。したがって、半導体ダイ１０２に含まれ得るコンタクトの数（Ｎ）は、Ｘ２／Ｙ２を超えることができない。半導体ダイ１０２は、コンタクト１４０の数よりも多い数（Ｍ）のデータ信号を並列にパッケージの１つ以上の他の半導体ダイと通信するように構成されたロジック回路１１０を含む。この例では、ロジック回路１１０は、Ｍ個のデータ信号の各々を、１組の並列信号線１２０のうちの対応する信号線を介して通信するように構成される。
【００４０】
第１の半導体ダイはまた、信号線１２０に結合された１つ以上のシリアライザ回路および／またはデシリアライザ回路を有するシリアライゼーション回路１３０を含む。シリアライゼーション回路１３０内の各シリアライザ回路は、もしあれば、プログラマブルロジック１１０から受信されたＭ個のデータ信号のうちの対応する第１のサブセットをシリアライズして、それぞれのシリアライズされたデータ信号を生成するように構成される。シリアライゼーションは、Ｍ本の信号線のデータ値を、単一の信号線を介して通信可能なシーケンシャルなシーケンスに配列する。各シリアライザは、ＩＣパッケージ内の１つ以上の他のダイへの送信のために、Ｎ個のコンタクト１４０のうちの対応するコンタクトに、それぞれのシリアライズされたデータ信号を供給する。
【００４１】
ダイ間通信回路１３０内の各デシリアライザ回路は、もしあれば、Ｍ個のデータ信号のうちの対応する第２のサブセットを生成するために、コンタクト１４０のうちの対応するコンタクトを介してＩＣパッケージの別のダイから受信されたシリアライズされた信号をデシリアライズするように構成される。デシリアライゼーションは、それぞれの信号線を介してＭ個の並列データ信号として通信するために、シリアライズされたデータ信号のＭ個のシーケンシャルなデータ値を配列する。対応する第２のサブセットのＭ個のデータ信号は、信号線１２０のうちの対応する信号線に供給される。
【００４２】
図２は、ダイ間通信するように構成された第１および第２の半導体ダイを有する第１のＩＣパッケージの断面図を示す。ＩＣパッケージ２００は、１組のマイクロバンプ２０６によって基板２０２に結合されたプログラマブルロジックダイ１０２と、Ｉ／Ｏダイ２０８とを含む。マイクロバンプ２０６の各々は、１つのダイ上のそれぞれに対応するコンタクト（図示せず）を基板２０２上の配線層２１４に接続されたそれぞれに対応するコンタクト（図示せず）に電気的に結合するはんだボールである。配線層２１４は、配線層上の様々な位置の間でデータ信号をルーティングするための複数のそれぞれの信号線（図２には図示せず）を含む。ＩＣパッケージ２００の製造中に、マイクロバンプ２０６を最初に半導体ダイ１０２および２０８上のコンタクトに取り付けることができる。次いで、マイクロバンプ２０６を、基板２０２上の対応するコンタクトと整列させることができる。マイクロバンプ２０６は、リフローされて、ダイのコンタクトと基板２０２上のコンタクトとの間の電気的接続を形成する。
【００４３】
図１に示すように、プログラマブルロジックダイ１０２は、ＩＣ内の他のダイと多数のデータ信号を通信するように構成されたプログラマブルロジック回路１１０を含む。プログラマブルロジックダイ１０２はまた、シリアライズされたデータ信号としてプログラマブルロジックダイ１０２とＩ／Ｏダイ２０８との間でＭ個のデータ信号を通信するためのシリアライザ回路および／またはデシリアライザ回路を有するダイ間通信回路１３０を含む。シリアライズされたデータ信号の各々が、プログラマブルロジックダイ１０２とＩ／Ｏダイ２０８との間で、配線層２１４のそれぞれの信号線、プログラマブルロジックダイ１０２を信号線に結合するマイクロバンプ２０６のうちの第１のマイクロバンプ、及びＩ／Ｏダイ２０８を配線層２１４の信号線に結合するマイクロバンプ２０６のうちの第２のマイクロバンプを含むそれぞれのダイ間通信経路上で、通信される。
【００４４】
ＩＣパッケージはまた、ＩＣパッケージ２００へ及び／又はＩＣパッケージ２００からデータを通信するための複数のデータ端子２１８を含む。この例では、データ端子２１８は、ボンドワイヤ２１４を介して基板２０２上の配線層２１４に通信可能に結合されている。別の例として、いくつかの実施形態では、データ端子が基板２０２上に形成され、配線層２１４に直接に接続されてもよい。
【００４５】
Ｉ／Ｏダイ２０８は、データ端子２１８を介してＩＣパッケージへ又はＩＣパッケージからデータ信号を通信するように構成された複数の通信回路を含む。データ信号は、マイクロバンプ２０６の１つ、配線層２１４の信号線、ボンドワイヤ２１６の１つ、およびデータ端子２１８のうちの１つを含む信号経路を介して通信回路によって送信および／または受信される。異なる実施形態では、Ｉ／Ｏダイ２０８の通信回路は、シリアライズされたフォーマットまたはシリアライズされていないフォーマットのいずれかでＩＣパッケージ２００へ及びＩＣパッケージ２００からデータを通信することができる。さらに、相異なる通信回路は、例えば、ＡＸＩ、ＰＣＩｅ、および／またはイーサネットを含む様々な通信プロトコルを使用してデータを送信または受信することができる。
【００４６】
図２に示す例では、プログラマブルロジックダイ１０２およびＩ／Ｏダイ２０８は、マイクロバンプを介して基板配線層２１４に直接に結合される。いくつかの実施形態では、１つ以上の半導体ダイは、例えばインターポーザを介して基板配線層２１４に間接的に結合されてもよく、又は互いの半導体ダイにスタックされて、互いの半導体ダイに結合されてもよい。
【００４７】
図３は、インターポーザを介して基板に間接的に結合された第１および第２の半導体を有する例示的なＩＣパッケージの断面図を示す。ＩＣパッケージ３００は、図２を参照して説明したように、基板２０２、配線層２１４、データ端子２１８、ボンドワイヤ２１６、プログラマブルロジックダイ１０２、およびＩ／Ｏダイ２０８を含む。この例では、プログラマブルロジックダイ１０２およびＩ／Ｏダイ２０８は、インターポーザ３１０に搭載されている。プログラマブルロジックダイ１０２とＩ／Ｏダイ２０８のコンタクトが、１組のマイクロバンプ３１６によってインターポーザ３１０上の第２の配線層３１４に結合される。シリアライズされたデータ信号が、それぞれに対応する信号経路を介してプログラマブルロジックダイ１０２とＩ／Ｏダイ２０８との間で通信される。プログラマブルロジックダイ１０２とＩ／Ｏダイ２０８との間の信号経路の各々は、それぞれに対応する配線層３１４の信号線、プログラマブルロジックダイ１０２を信号線に結合する、それぞれに対応する第１のマイクロバンプ、およびＩ／Ｏダイ２０８を信号線に結合する、それぞれに対応する第２のマイクロバンプを含む。
【００４８】
インターポーザ３１０は、多数のビア（図３には図示せず）を含み、各々のビアが、配線層３１４内の対応する信号線を、インターポーザ３１０の底面のＣ４はんだボール３１２のうちの対応するＣ４はんだボール３１２に結合する。Ｃ４はんだボール３１２は、基板２０２上の配線層２１４内の対応する信号線に取り付けられ、それらに接続される。この例では、Ｉ／Ｏダイ２０８によってＩＣパッケージ３００へ及びＩＣパッケージ３００から通信される各データ信号は、マイクロバンプの１つ、配線層３１４内の信号線、インターポーザ３１０のビア、Ｃ４はんだボールの１つ、配線層２１４の信号線、ボンドワイヤ２１６、およびデータ端子２１８のうちの１つを通るそれぞれの経路で通信される。
【００４９】
図４は、ＩＣパッケージ内のダイ間通信のための例示的な回路のブロック図を示す。この例では、ＩＣパッケージ４００は、インターポーザ４２０によってＩ／Ｏダイ４４０に結合されたプログラマブルロジックダイ４１０を含む。プログラマブルロジックダイ４１０は、Ｍ本の信号線４１６を介してＭ個のデータ信号をＩ／Ｏダイ４４０と並列に通信するように構成されたプログラマブルロジック回路４１２を含む。プログラマブルロジックダイ４１０はまた、プログラマブルロジックダイ４１０のコンタクトに結合された、インターポーザ４２０を通るＮ個の対応する信号経路４１８上のシリアライズされたデータ信号としてＭ個のデータ信号を通信するように構成されたシリアライザ／デシリアライザ（ｓｅｒｄｅｓ）回路４１４を含む。より具体的には、ｓｅｒｄｅｓ回路４１４は、信号線４１６のそれぞれのグループのデータをシリアライズして、それぞれのシリアライズされた信号を生成する。それぞれのシリアライズされた信号の各々が、対応する信号経路４１８を介してＩ／Ｏダイ４４０に伝達される。信号経路数Ｎは、データ信号数Ｍより小さい。ｓｅｒｄｅｓ回路４１４はまた、Ｉ／Ｏダイ４４０から受信したそれぞれのシリアライズされたデータ信号を、複数の並列信号にデシリアライズし、各々の信号が、信号線４１６のうちの対応する信号線を介してプログラマブルロジック回路に供給される。
【００５０】
Ｉ／Ｏダイ４４０は、ＩＣパッケージ４００へ又はＩＣパッケージ４００からデータ信号を通信するように構成された複数の通信回路４４２、４４４、４４６、および４４８を含む。Ｉ／Ｏダイ４４０は、異なる構成を有する様々な通信回路を含むことができる。いくつかの実施形態では、１つ以上の通信回路が、シリアライズされたデータフォーマットでＩＣパッケージへ又はＩＣパッケージからデータを通信するように構成されている。この例では、第１の通信回路４４２は、ＩＣパッケージ４００のデータ端子を介してプログラマブルＩＣダイ４１０から受信したシリアライズされたデータ信号を送信するように構成されている。第２の通信回路４４４は、シリアライズされたフォーマットでＩＣパッケージに入力されたデータを受信し、シリアライズされたデータをプログラマブルロジックダイ４１０に提供するように構成される。
【００５１】
いくつかの実施形態では、１つ以上の通信回路が、シリアライズされていないデータフォーマットでＩＣパッケージへ又はＩＣパッケージからデータを通信するように構成されている。例えば、Ｉ／Ｏダイ４４０は、プログラマブルＩＣダイ４１０からのシリアライズされたデータ信号をデシリアライズして、１組の並列信号を生成するように構成されたｓｅｒｄｅｓ回路４５０を含む。各並列信号は、それぞれに対応する通信回路４４６によってＩ／Ｏダイ４４０から送信される。反対に、ｓｅｒｄｅｓ回路４５０は、信号線４１８の１つを介してプログラマブルＩＣダイに供給されるシリアライズされたデータ信号を生成するために、それぞれに対応する通信回路４４８によって受信された並列信号をシリアライズするように構成されてもよい。
【００５２】
図５は、マルチダイＩＣパッケージ内のＩＣダイからデータを通信するための例示的なプロセスを示す。ブロック５０２において、第１の半導体ダイ上のプログラマブルロジック回路が、第１の半導体ダイ上のＭ本の信号線を介して同じＩＣ内の他の半導体ダイとＭ個のデータ信号を並列に通信するために使用される。ブロック５０４において、第１の半導体ダイ上の複数のシリアライザ回路の各々について、Ｍ個のデータ信号のうちの対応する第１のサブセットがシリアライズされて、それぞれのシリアライズされたデータ信号が生成される。ブロック５０６において、それぞれのシリアライズされたデータ信号の各々が、第１の半導体ダイのＮ個のコンタクトのうちの対応するコンタクトを介して通信される。コンタクト数Ｎは、データ信号数Ｍより小さい。
【００５３】
図６は、マルチダイＩＣパッケージ内のＩＣダイにデータを通信するための例示的なプロセスを示す。ブロック６０２において、シリアライズされたデータ信号が、それぞれに対応するコンタクトからそれぞれに対応するデシリアライザ回路へ供給される。ブロック６０４において、各デシリアライザ回路に供給されるシリアライズされたデータ信号は、デシリアライズされて、それぞれに対応するＭ個のデータ信号の第２のサブセットを生成する。ブロック６０６において、それぞれに対応するＭ個のデータ信号の第２のサブセットの各々は、Ｍ本の信号線のうちの対応する信号線に供給される。
【００５４】
上記の例は、主に、マルチダイＩＣパッケージ内の半導体ダイ間のシリアライズされたデータ信号の通信に関して論じられているが、いくつかの実施形態では、半導体ダイ間で並列データ信号を通信することもできる。例えば、再び図１を参照すると、プログラマブルロジックダイ１０２は、Ｍ個のデータ信号の第１のサブセットを、対応するコンタクトを介して並列に通信するように適合されてもよい。Ｍ個のデータ信号の第２のサブセットが、前述したようなシリアライズされたフォーマットでシリアライゼーション回路１３０によって通信されてもよい。
【００５５】
プログラマブルロジックダイ上のシリアライザおよび／またはデシリアライザ回路は、ダイ上のハードワイヤード回路として、またはダイ上のプログラマブルロジックリソースによって実施することができる。プログラマブルロジックにハードワイヤード回路を実装することにより、プログラマブルロジックに実装されたユーザ回路設計の通信要件に適合するようにダイ間通信回路を適合させることができる。いくつかの実施形態では、ソフトウェア回路設計ツールは、プログラマブルロジックに実装されるユーザ回路設計へのおよび／またはそこからの信号の通信のためのシリアライゼーションおよび／またはデシリアライゼーション回路の作成および／または構成を支援するように構成することができる。例えば、ソフトウェア回路設計ツールは、ユーザ回路設計におけるＩ／Ｏ信号の数およびターゲットプログラマブルＩＣパッケージ内にあるプログラマブルロジックダイの利用可能なＩ／Ｏコンタクトの数に基づいて、シリアライズされたフォーマットで通信される必要がある信号の数を決定することができる。プログラマブルロジックダイの利用可能なＩ／Ｏコンタクトの数は、例えば、様々なプログラマブルＩＣパッケージのための利用可能なＩ／Ｏコンタクトのそれぞれの数を示すデータベースから決定することができる。シリアライズされたフォーマットで通信される必要がある信号の数を決定した後、ソフトウェア回路設計ツールは、その数の信号をシリアルに通信するために、ユーザ回路設計においてシリアライゼーション／デシリアライゼーション回路を自動的にインスタンス化することができる。
【００５６】
いくつかの実施形態では、ソフトウェア回路設計ツールは、Ｉ／Ｏ信号の通信要件に基づいてシリアライズされるユーザ回路設計のＩ／Ｏ信号を選択することができる。例えば、ソフトウェア設計ツールは、シリアライゼーションのために最も遅い転送速度を有するＩ／Ｏ信号を自動的に選択することができる。逆に、最も高い転送速度を有するＩ／Ｏ信号が、シリアライズされていないフォーマットで通信されるように選択されてもよい。別の例として、ソフトウェア設計ツールは、Ｉ／Ｏ信号の必要な転送速度およびＩ／Ｏコンタクトの転送速度に基づいて、シリアライズされるＩ／Ｏ信号をグループ化してもよい。シリアライズされるＩ／Ｏ信号を選択した後、ソフトウェア回路設計ツールは、選択されたＩ／Ｏ信号に対応する信号線をユーザ回路設計のインスタンス化されたシリアライゼーション／デシリアライゼーション回路に自動的に接続することができる。
【００５７】
図７は、１つ以上の実施形態に従って構成され得るプログラマブルＩＣ７０２を示す。プログラマブルＩＣは、プロセッシングサブシステム７１０およびプログラマブルロジックサブシステム７３０を含むシステムオンチップ（ＳＯＣ）とも呼ばれる。この例では、プログラマブルＩＣはまた、電力および／または安全管理のための様々な回路を有するサブシステム７４０と、外部回路とのデータ通信のための入力／出力（Ｉ／Ｏ）サブシステム７５０とを含む。サブシステム７１０、７３０、７４０、および７５０は、上記実施例で説明したように、複数の半導体ダイを使用して形成され、ＩＣパッケージ内で相互接続されてもよい。
【００５８】
プロセッシングサブシステム７１０は、ユーザープログラムの実行を介して、ユーザーデザインのソフトウェア部分を実装するようにプログラムされてもよい。プログラムは、コンフィギュレーションデータストリームの一部として指定されてもよく、またはオンチップ若しくはオフチップのデータストレージデバイスから取り出されてもよい。プロセッシングサブシステム７１０は、１つ以上のソフトウェアプログラムを実行するための様々な回路７１２、７１４、７１６、および７１８を含むことができる。回路７１２、７１４、７１６、および７１８は、例えば、１つ以上のプロセッサコア、浮動小数点ユニット（ＦＰＵ）、割り込み処理ユニット、オンチップメモリ、メモリキャッシュ、および／またはキャッシュコヒーレントインターコネクトを含むことができる。
【００５９】
プログラマブルＩＣ７０２のプログラマブルロジックサブシステム７３０は、ユーザーデザインのハードウェア部分を実装するようにプログラムすることができる。例えば、プログラマブルロジックサブシステムは、コンフィギュレーションデータストリームに指定された一組の回路を実装するようにプログラムすることができるいくつかのプログラマブルリソース７３２を含むことができる。プログラマブルリソース７３２は、プログラマブルインターコネクト回路、プログラマブルロジック回路、およびコンフィギュレーションメモリセルを含む。プログラマブルロジックは、例えば、ファンクションジェネレータ、レジスタ、算術論理などを含むことができるプログラマブルエレメントを使用して、ユーザーデザインの論理を実装する。プログラマブルインターコネクト回路は、プログラマブルインターコネクトポイント（ＰＩＰ）によって相互接続された様々な長さの多数のインターコネクトラインを含むことができる。
【００６０】
プログラマブルリソース７３２は、プログラマブルインターコネクト回路およびプログラマブルロジック回路がどのように構成されるかを定めるコンフィギュレーションメモリセルにコンフィギュレーションデータストリームをロードすることによってプログラムすることができる。次いで、個々のメモリセルの集合状態が、プログラマブルリソース７３２の機能を決定する。コンフィギュレーションデータは、メモリから（例えば、外部ＰＲＯＭから）読み出すことができ、または外部デバイスによってプログラマブルＩＣ７０２に書き込むことができる。いくつかの実施形態では、コンフィギュレーションデータは、プログラマブルロジックサブシステム７３０に含まれるコンフィギュレーションコントローラ７３４によってコンフィギュレーションメモリセルにロードされてもよい。いくつかの他の実施形態では、コンフィギュレーションデータは、プロセッササブシステム７１０によって実行される始動プロセスによってコンフィギュレーションメモリセルにロードされてもよい。
【００６１】
プログラマブルＩＣ７０２は、プロセッシングサブシステム７１０を、プログラマブルロジックサブシステム７３０内に実装された回路と相互接続するための様々な回路を含むことができる。この例では、プログラマブルＩＣ７０２は、プロセッシングサブシステム７１０およびプログラマブルロジックサブシステム７３０の様々なデータポート間でデータ信号をルーティングすることができるコアスイッチ７２６を含む。コアスイッチ７２６はまた、プログラマブルロジックまたはプロセッシングサブシステム７１０および７３０のいずれかと、プログラマブルＩＣの様々な他の回路（例えば、内部データバス）との間でデータ信号をルーティングすることもできる。代替的または追加的に、プロセッシングサブシステム７１０は、コアスイッチ７２６をバイパスして、プログラマブルロジックサブシステムに直接接続するためのインターフェースを含むことができる。そのようなインターフェースは、例えば、ＡＲＭによって公表されたＡＭＢＡ  ＡＸＩプロトコル仕様（ＡＸＩ）を使用して、実装することができる。
【００６２】
いくつかの実施形態では、プロセッシングサブシステム７１０およびプログラマブルロジックサブシステム７３０は、メモリコントローラ７２１を介してオンチップメモリ７２２またはオフチップメモリ（図示せず）のメモリ位置に読み書きすることもできる。メモリコントローラ７２１は、限定ではないが、１６ビットであれ、３２ビットであれ、ＥＣＣ付き１６ビットなどであれ、デュアルデータレート（ＤＤＲ）２、ＤＤＲ３、低電力（ＬＰ）ＤＤＲ２タイプのメモリを含む１つ以上の異なるタイプのメモリ回路と通信するように実装することができる。メモリコントローラ７２１が通信することができる様々なメモリタイプのリストは、例示のみのために提供されており、限定または網羅的なものではない。図７に示すように、プログラマブルＩＣ７０２は、サブシステム７１０および７３０によって使用される仮想メモリアドレスを、メモリコントローラ７２１が特定のメモリ位置にアクセスするために使用する物理メモリアドレスに変換するためのメモリ管理ユニット７２０およびトランスレーションルックアサイドバッファ７２４を含むことができる。
【００６３】
この例では、プログラマブルＩＣは、外部回路とのデータ通信用のＩ／Ｏサブシステム７５０を含む。Ｉ／Ｏサブシステム７５０は、例えば、フラッシュメモリタイプＩ／Ｏデバイス、高性能Ｉ／Ｏデバイス、低性能インターフェース、デバッグＩ／Ｏデバイス、および／またはＲＡＭ  Ｉ／Ｏデバイスを含む様々なタイプのＩ／Ｏデバイスまたはインターフェースを含むことができる。
【００６４】
Ｉ／Ｏサブシステム７５０は、７６０Ａおよび７６０Ｂとして示す１つ以上のフラッシュメモリインターフェース７６０を含むことができる。例えば、フラッシュメモリインターフェース７６０のうちの１つ以上は、４ビット通信用に構成されたクワッドシリアル・ペリフェラル・インターフェース（ＱＳＰＩ）として実装することができる。フラッシュメモリインターフェース７６０のうちの１つ以上は、パラレル８ビットＮＯＲ／ＳＲＡＭタイプのインターフェースとして実装することができる。フラッシュメモリインターフェース７６０のうちの１つ以上は、８ビットおよび／または１６ビット通信用に構成されたＮＡＮＤインターフェースとして実装することができる。記載された特定のインターフェースは、例示のために提供され、限定のためではないことを理解されたい。異なるビット幅を有する他のインタフェースを使用することができる。
【００６５】
Ｉ／Ｏサブシステム７５０は、フラッシュメモリインタフェース７６０より高い性能レベルを提供する１つ以上のインターフェース７６２を含むことができる。インターフェース７６２Ａ〜７６２Ｃの各々は、ＤＭＡコントローラ７６４Ａ〜７６４Ｃにそれぞれ結合することができる。例えば、インターフェース７６２のうちの１つ以上は、ユニバーサルシリアルバス（ＵＳＢ）タイプのインターフェースとして実装することができる。インターフェース７６２のうちの１つ以上は、ギガビットイーサネットタイプのインターフェースとして実装することができる。インターフェース７６２のうちの１つ以上は、セキュアデジタル（ＳＤ）タイプのインターフェースとして実装することができる。
【００６６】
Ｉ／Ｏサブシステム７５０はまた、インターフェース７６２よりも低い性能レベルを提供する、インターフェース７６６Ａ〜７６６Ｄなどの１つ以上のインターフェース７６６を含むことができる。例えば、インターフェース７６６のうちの１つ以上は、汎用Ｉ／Ｏ（ＧＰＩＯ）タイプのインターフェースとして実装することができる。インターフェース７６６のうちの１つ以上は、汎用非同期送受信回路（ＵＡＲＴ）タイプのインターフェースとして実装することができる。インターフェース７６６のうちの１つ以上は、シリアル・ペリフェラル・インターフェース（ＳＰＩ）バスタイプのインターフェースの形態で実装することができる。インターフェース７６６のうちの１つ以上は、コントローラエリアネットワーク（ＣＡＮ）タイプのインターフェースおよび／またはＩ２Ｃタイプのインターフェースの形態で実装することができる。インターフェース７６６のうちの１つ以上は、トリプルタイマーカウンタ（ＴＴＣ）および／またはウォッチドッグタイマー（ＷＤＴ）タイプのインターフェースの形態で実装することもできる。
【００６７】
Ｉ／Ｏサブシステム７５０は、プロセッサＪＴＡＧ（ＰＪＴＡＧ）インターフェース７６８Ａおよびトレースインターフェース７６８Ｂなどの１つ以上のデバッグインターフェース７６８を含むことができる。ＰＪＴＡＧインターフェース７６８Ａは、プログラマブルＩＣ７０２のための外部デバッグインターフェースを提供することができる。トレースインターフェース７６８Ｂは、プロセッシングサブシステム７１０またはプログラマブルロジックサブシステム７３０からデバッグ、例えば、トレース情報を受信するためのポートを提供することができる。
【００６８】
図示されているように、インターフェース７６０、７６２、７６６、および７６８の各々は、マルチプレクサ７７０に結合することができる。マルチプレクサ７７０は、プログラマブルＩＣ７０２の外部ピン、例えばプログラマブルＩＣ７０２が内部に配置されるパッケージのボールなどに直接ルーティングまたは結合され得る複数の出力を提供する。例えば、プログラマブルＩＣ７０２のＩ／Ｏピンは、インターフェース７６０、７６２、７６６、および７６８の間で共有することができる。ユーザは、インターフェース７６０〜７６８のどれを使用するか、したがって、どれをマルチプレクサ７７０を介してプログラマブルＩＣ７０２のＩ／Ｏピンに結合するかを選択するように、コンフィギュレーションデータストリームによって、マルチプレクサ７７０を構成することができる。Ｉ／Ｏサブシステム７５０はまた、インターフェース７６２〜７６８をプログラマブルロジックサブシステムのプログラマブルロジック回路に接続するためのファブリックマルチプレクサＩ／Ｏ（ＦＭＩＯ）インターフェース（図示せず）を含むことができる。これに加えて、またはこれに代えて、プログラマブルロジックサブシステム７３０は、プログラマブルロジック内に１つ以上のＩ／Ｏ回路を実装するように構成することができる。この例では、プログラマブルＩＣ７０２は、電力および／または安全管理のための様々な回路を有するサブシステム７４０を含む。例えば、サブシステム７４０は、プログラマブルＩＣ７０２の様々なサブシステムに電力供給するために使用される１つ以上の電圧ドメインを監視および維持するように構成された電力管理ユニット７４６を含むことができる。いくつかの実施形態では、電力管理ユニット７４６は、使用中のサブシステムへの電力を停止することなく、アイドル時に、個々のサブシステムの電力を停止して、電力消費を低減することができる。
【００６９】
サブシステム７４０は、正しい動作を保証するためにサブシステムのステータスを監視する安全回路を含むこともできる。例えば、サブシステム７４０は、（例えば、ステータスレジスタ７４４に示されるような）様々なサブシステムのステータスを監視するように構成された１つ以上のリアルタイムプロセッサ７４２を含むことができる。リアルタイムプロセッサ７４２は、エラーを検出することに応答して幾つかのタスクを実行するように構成することができる。例えば、いくつかのエラーの場合、リアルタイムプロセッサ７４２は、エラーの検出に応答してアラートを生成することができる。別の例として、リアルタイムプロセッサ７４２は、サブシステムをリセットして、サブシステムを正しい動作に復元しようと試みることができる。サブシステム７４０は、様々なサブシステムを相互接続するために使用され得るスイッチネットワーク７４８を含む。例えば、スイッチネットワーク７４８は、様々なサブシステム７１０、７３０、及び７４０をＩ／Ｏサブシステム７５０の様々なインターフェースに接続するように構成することができる。いくつかのアプリケーションでは、スイッチネットワーク７４８を使用して、監視されるサブシステムからリアルタイムプロセッサ７４２を分離することもできる。そのような分離は、リアルタイムプロセッサ７４２が他のサブシステムで発生するエラーの影響を受けないことを保証するために、特定のアプリケーション規格（例えば、ＩＥＣ−６１５０８  ＳＩＬ３またはＩＳＯ−２６２６２規格）によって要求されることがある。
【００７０】
本方法および回路は、様々なマルチダイパッケージに適用可能であると考えられる。他の態様および特徴は、明細書の考察から当業者には明らかであろう。例えば、態様および特徴は、場合によっては個々の図に記述されることがあるが、組合せが明示的に示されていない場合でも、組合せとして明示的に記述されている場合でも、ある図の特徴を他の図の特徴と組み合わせることができる、ということが理解されるであろう。本明細書および図面は、単なる例示としてみなされ、本発明の真の範囲は、以下の特許請求の範囲によって示されることが意図されている。
【図１】
0006781163.tif 000002
【図２】
0006781163.tif 000003
【図３】
0006781163.tif 000004
【図４】
0006781163.tif 000005
【図５】
0006781163.tif 000006
【図６】
0006781163.tif 000007
【図７】
0006781163.tif 000008