(57)【要約】【課題】特定のハードウエア設計に関わる複数の当事者間のライセンス交付契約の条項を実行するためのハードウエア技術を提供する。【解決手段】ハードウエア技術の使用による特定のハードウエアデザインに関わる複数の当事者間のライセンス交付契約の条項を実行する方法及び機器。一実施形態によれば、ハードウエアサブデザインは、暗号化によってユーザによる修正から保護されたライセンス検証サブデザインを含む。一実施形態では、ライセンスは、外部ハードウエア装置内の信頼できるホスト識別子に基づいて発生される。一実施形態では、各信頼できるホスト識別子は固有であり、同じ信頼できるホスト識別子を共有する集積回路は２つとない。別の実施形態では、集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路である。一実施形態では、ライセンスは、ハードウエアサブデザインが信頼できるホスト識別子を有する集積回路内で実施された時に、ハードウエアサブデザインがどのくらい長く作動することになるかを判断する。【選択図】図２Ａ
2008516310.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたハードウエアサブデザインを発生させる方法であって、
第１の設計者側で第１のハードウエアサブデザインを発生させる段階と、
第２の設計者側で第２のハードウエアサブデザインを発生させる段階と、
信頼できるホスト識別子を有する集積回路に前記第１のハードウエアサブデザイン及び前記第２のハードウエアサブデザインをアップロードする段階と、
前記信頼できるホスト識別子に基づくライセンスを適用することによって前記第２のハードウエアサブデザインを使用可能にする段階と、
を含むことを特徴とする方法。
【請求項２】
前記第２のハードウエアサブデザインを発生させながら該第２のハードウエアサブデザイン内でライセンス検証サブデザインを暗号化する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項１に記載の方法。
【請求項４】
前記ライセンスは、前記第２のハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項１に記載の方法。
【請求項５】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項１に記載の方法。
【請求項６】
外部ハードウエア装置が、前記信頼できるホスト識別子を提供することを特徴とする請求項１に記載の方法。
【請求項７】
デジタル処理システム上で実行された時に、
第１の設計者側で第１のハードウエアサブデザインを発生させる段階と、
第２の設計者側で第２のハードウエアサブデザインを発生させる段階と、
信頼できるホスト識別子を有する集積回路に前記第１のハードウエアサブデザイン及び前記第２のハードウエアサブデザインをアップロードする段階と、
前記信頼できるホスト識別子に基づくライセンスを適用することによって前記第２のハードウエアサブデザインを使用可能にする段階と、
を含む暗号化されたハードウエアサブデザインを発生する方法を前記デジタル処理システムに実行させる複数の実行可能な命令を収容した機械可読媒体。
【請求項８】
前記第２のハードウエアサブデザインを発生させる段階の間に該第２のハードウエアサブデザイン内でライセンス検証サブデザインを暗号化する段階を更に含むことを特徴とする請求項７に記載の機械可読媒体。
【請求項９】
前記ライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項７に記載の機械可読媒体。
【請求項１０】
前記ライセンスは、前記第２のハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項７に記載の機械可読媒体。
【請求項１１】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項７に記載の機械可読媒体。
【請求項１２】
外部ハードウエア装置が、前記信頼できるホスト識別子を提供することを特徴とする請求項７に記載の機械可読媒体。
【請求項１３】
暗号化されたハードウエアサブデザインを発生させるシステムであって、
第１の設計者側で第１のハードウエアサブデザインを発生させるための手段と、
第２の設計者側で第２のハードウエアサブデザインを発生させるための手段と、
信頼できるホスト識別子を有する集積回路に前記第１のハードウエアサブデザイン及び前記第２のハードウエアサブデザインをアップロードするための手段と、
前記信頼できるホスト識別子に基づくライセンスを適用することによって前記第２のハードウエアサブデザインを使用可能にするための手段と、
を含むことを特徴とするシステム。
【請求項１４】
前記第２のハードウエアサブデザインを発生させながら該第２のハードウエアサブデザイン内でライセンス検証サブデザインを暗号化するための手段、
を更に含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記ライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項１３に記載のシステム。
【請求項１６】
前記ライセンスは、前記第２のハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項１３に記載のシステム。
【請求項１７】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項１３に記載のシステム。
【請求項１８】
外部ハードウエア装置が、前記信頼できるホスト識別子を提供することを特徴とする請求項１３に記載のシステム。
【請求項１９】
信頼できるホスト識別子を有する集積回路に暗号化された回路デザインをアップロードする段階と、
信頼できるホスト識別子特定のライセンスに基づいて前記暗号化された回路デザインを使用可能にする段階と、
を含むことを特徴とする方法。
【請求項２０】
前記信頼できるホスト識別子を有する前記集積回路に、暗号化されていない回路デザインをアップロードする段階、
を更に含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項１９に記載の方法。
【請求項２２】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化された回路デザインがどのくらい長く作動することになるかを判断することを特徴とする請求項１９に記載の方法。
【請求項２３】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項１９に記載の方法。
【請求項２４】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項１９に記載の方法。
【請求項２５】
デジタル処理システム上で実行された時に、
暗号化された回路デザインを信頼できるホスト識別子を有する集積回路にアップロードする段階と、
信頼できるホスト識別子特定のライセンスに基づいて前記暗号化された回路デザインを使用可能にする段階と、
を含む方法を前記デジタル処理システムに実行させる複数の実行可能な命令を収容した機械可読媒体。
【請求項２６】
前記方法は、
暗号化されていない回路デザインを前記信頼できるホスト識別子を有する前記集積回路にアップロードする段階、
を更に含む、
ことを特徴とする請求項２５に記載の機械可読媒体。
【請求項２７】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項２５に記載の機械可読媒体。
【請求項２８】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化された回路デザインがどのくらい長く作動することになるかを判断することを特徴とする請求項２５に記載の機械可読媒体。
【請求項２９】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項２５に記載の機械可読媒体。
【請求項３０】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項２５に記載の機械可読媒体。
【請求項３１】
信頼できるホスト識別子を有する集積回路に暗号化された回路デザインをアップロードするための手段と、
信頼できるホスト識別子特定のライセンスに基づいて前記暗号化された回路デザインを使用可能にするための手段と、
を含むことを特徴とするシステム。
【請求項３２】
暗号化されていない回路デザインを前記信頼できるホスト識別子を有する前記集積回路にアップロードするための手段、
を更に含むことを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項３１に記載のシステム。
【請求項３４】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化された回路デザインがどのくらい長く作動することになるかを判断することを特徴とする請求項３１に記載のシステム。
【請求項３５】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項３１に記載のシステム。
【請求項３６】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項３１に記載のシステム。
【請求項３７】
信頼できるホスト識別子に基づいて集積回路内の知的財産に制約を加える方法であって、
信頼できるホスト識別子を有する集積回路上で特定の量の時間に対してのみ実行することができるハードウエアサブデザインを使用可能にする該信頼できるホスト識別子特定のライセンスを発生させる段階、
を含むことを特徴とする方法。
【請求項３８】
前記信頼できるホスト識別子を有する前記集積回路に、前記ハードウエアサブデザインをライセンスを必要としない別のハードウエアサブデザインと共にアップロードする段階、
を更に含むことを特徴とする請求項３７に記載の方法。
【請求項３９】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項３７に記載の方法。
【請求項４０】
前記信頼できるホスト識別子特定のライセンスは、前記ハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項３７に記載の方法。
【請求項４１】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項３７に記載の方法。
【請求項４２】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項３７に記載の方法。
【請求項４３】
デジタル処理システム上で実行された時に、
信頼できるホスト識別子を有する集積回路上で特定の量の時間に対してのみ実行することができるハードウエアサブデザインを使用可能にする該信頼できるホスト識別子特定のライセンスを発生させる段階、
を含む、信頼できるホスト識別子に基づいて集積回路内の知的財産に制約を加える方法を前記デジタル処理システムに実行させる複数の実行可能な命令を収容した機械可読媒体。
【請求項４４】
前記方法は、
前記信頼できるホスト識別子を有する前記集積回路に、前記ハードウエアサブデザインをライセンスを必要としない別のハードウエアサブデザインと共にアップロードする段階、
を更に含む、
ことを特徴とする請求項４３に記載の機械可読媒体。
【請求項４５】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項４３に記載の機械可読媒体。
【請求項４６】
前記信頼できるホスト識別子特定のライセンスは、前記ハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項４３に記載の機械可読媒体。
【請求項４７】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項４３に記載の機械可読媒体。
【請求項４８】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項４３に記載の機械可読媒体。
【請求項４９】
信頼できるホスト識別子に基づいて集積回路内の知的財産に制約を加えるシステムであって、
信頼できるホスト識別子を有する集積回路上で特定の量の時間に対してのみ実行することができるハードウエアサブデザインを使用可能にする該信頼できるホスト識別子特定のライセンスを発生させるための手段、
を含むことを特徴とするシステム。
【請求項５０】
前記信頼できるホスト識別子を有する前記集積回路に、前記ハードウエアサブデザインをライセンスを必要としない別のハードウエアサブデザインと共にアップロードするための手段、
を更に含むことを特徴とする請求項４９に記載のシステム。
【請求項５１】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項４９に記載のシステム。
【請求項５２】
前記信頼できるホスト識別子特定のライセンスは、前記ハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項４９に記載のシステム。
【請求項５３】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項４９に記載のシステム。
【請求項５４】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項４９に記載のシステム。
【請求項５５】
ユーザによって修正することができない信頼できるホスト識別子を有する集積回路を製造する段階、
を含むことを特徴とする方法。
【請求項５６】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項５５に記載の方法。
【請求項５７】
前記集積回路は、暗号化されたライセンス検証サブデザインをハードウエアサブデザイン内に含むことを特徴とする請求項５５に記載の方法。
【請求項５８】
デジタル処理システム上で実行された時に、
ユーザによって修正することができない信頼できるホスト識別子を有する集積回路を製造する段階、
を含む方法を前記デジタル処理システムに実行させる複数の実行可能な命令を収容した機械可読媒体。
【請求項５９】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項５８に記載の機械可読媒体。
【請求項６０】
前記集積回路は、暗号化されたライセンス検証サブデザインをハードウエアサブデザイン内に含むことを特徴とする請求項５８に記載の機械可読媒体。
【請求項６１】
ユーザによって修正することができない信頼できるホスト識別子を有する集積回路を製造するための手段、
を含むことを特徴とするシステム。
【請求項６２】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項６１に記載のシステム。
【請求項６３】
前記集積回路は、暗号化されたライセンス検証サブデザインをハードウエアサブデザイン内に含むことを特徴とする請求項６１に記載のシステム。
【請求項６４】
信頼できるホスト識別子を有する集積回路であって、
第１の設計者によって信頼できるホスト識別子とは独立に使用可能にされた第１のハードウエアサブデザインと、
第２の設計者によって前記信頼できるホスト識別子に基づいて使用可能にされた第２のハードウエアサブデザインと、
を含むことを特徴とする集積回路。
【請求項６５】
前記第２のハードウエアサブデザインは、信頼できるホスト識別子の群に基づいて使用可能にされることを特徴とする請求項６４に記載の集積回路。
【請求項６６】
前記第２のハードウエアサブデザイン内のライセンス検証サブデザインは、修正を防止するために暗号化されることを特徴とする請求項６４に記載の集積回路。
【請求項６７】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項６４に記載の集積回路。
【請求項６８】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項６４に記載の集積回路。
【請求項６９】
信頼できるホスト識別子を有する集積回路内のロケーションであって、
集積回路内の暗号化された回路デザインを使用可能にするライセンス交付ブロックと、
前記暗号化された回路デザインがどのくらい長く作動することになるかを判断するクロック回路と、
を含むことを特徴とするロケーション。
【請求項７０】
前記ライセンス交付ブロックは、信頼できるホスト識別子の群に基づいて前記暗号化された回路デザインの少なくとも一部分を使用可能にすることを特徴とする請求項６９に記載のロケーション。
【請求項７１】
前記ライセンス交付ブロックは、前記暗号化された回路がどのくらい長く作動することになるかを判断することを特徴とする請求項６９に記載のロケーション。
【請求項７２】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項６９に記載のロケーション。
【請求項７３】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項６９に記載のロケーション。
【請求項７４】
複数の集積回路（ＩＣ）を設計する際に使用されるデジタル処理システムであって、
表示装置と、
メモリと、
信頼できるホスト識別子を有する集積回路上でハードウエアサブデザインが特定の量の時間に対して作動することを可能にする信頼できるホスト識別子特定のライセンスを発生させる、前記メモリ及び前記表示装置に結合したプロセッサと、
を含むことを特徴とするシステム。
【請求項７５】
前記プロセッサは、前記信頼できるホスト識別子を有する前記集積回路に、前記ハードウエアサブデザインをライセンスを必要としない別のハードウエアサブデザインと共にアップロードするためのものであることを特徴とする請求項７４に記載のデジタル処理システム。
【請求項７６】
前記信頼できるホスト識別子特定のライセンスは、信頼できるホスト識別子の群に基づいていることを特徴とする請求項７４に記載のデジタル処理システム。
【請求項７７】
前記信頼できるホスト識別子特定のライセンスは、前記ハードウエアサブデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項７４に記載のデジタル処理システム。
【請求項７８】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項７４に記載のデジタル処理システム。
【請求項７９】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項７４に記載のデジタル処理システム。
【請求項８０】
設計者側の方法であって、
第１のハードウエアデザインと、信頼できるホスト識別子を通じて第２のハードウエアデザインを使用可能にする第２の暗号化されたデザインとを合併する段階、
を含むことを特徴とする方法。
【請求項８１】
前記第２の暗号化されたデザインは、信頼できるホスト識別子の群に基づく信頼できるホスト識別子特定のライセンスを通じて使用可能にされることを特徴とする請求項８０に記載の方法。
【請求項８２】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化された回路デザインがどのくらい長く作動することになるかを判断することを特徴とする請求項８１に記載の方法。
【請求項８３】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項８０に記載の方法。
【請求項８４】
前記第１のハードウエアデザイン及び前記第２の暗号化されたデザインは、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路内に組み込まれていることを特徴とする請求項８０に記載の方法。
【請求項８５】
ＩＰブロック所有者側の方法であって、
別の設計者によって集積回路内に組み込むための暗号化されたデザインを発生させる段階と、
前記集積回路の信頼できるホスト識別子部分に対するデータを許可する段階と、
を含むことを特徴とする方法。
【請求項８６】
前記暗号化されたデザインは、信頼できるホスト識別子の群に基づく信頼できるホスト識別子特定のライセンスを通じて使用可能にされることを特徴とする請求項８５に記載の方法。
【請求項８７】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化されたデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項８６に記載の方法。
【請求項８８】
前記集積回路は、該集積回路に対する固有の値である信頼できるホスト識別子を含むことを特徴とする請求項８５に記載の方法。
【請求項８９】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項８５に記載の方法。
【請求項９０】
信頼できるホスト識別子プロバイダ側の方法であって、
設計者によって構成することができるプログラマブル・ゲート・アレイ又は特定用途向け集積回路を生成する段階と、
信頼できるホスト識別子部分を前記プログラマブル・ゲート・アレイ又は前記特定用途向け集積回路に組み込む段階と、
を含むことを特徴とする方法。
【請求項９１】
前記信頼できるホスト識別子部分は、暗号化されたライセンス検証サブデザインをハードウエアサブデザイン内に含むことを特徴とする請求項９０に記載の方法。
【請求項９２】
前記信頼できるホスト識別子部分は、信頼できるホスト識別子の群に基づく信頼できるホスト識別子特定のライセンスを通じて使用可能にされることを特徴とする請求項９０に記載の方法。
【請求項９３】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化されたデザインがどのくらい長く作動することになるかを判断することを特徴とする請求項９２に記載の方法。
【請求項９４】
前記プログラマブル・ゲート・アレイ又は前記特定用途向け集積回路は、該プログラマブル・ゲート・アレイ又は該特定用途向け集積回路に対する固有の値である信頼できるホスト識別子を含むことを特徴とする請求項９０に記載の方法。
【請求項９５】
設計者側の方法であって、
ＩＰブロックの暗号化された部分によって使用されて該ＩＰブロックの残りの部分を使用可能にする信頼できるホスト識別子を発生させる段階、
を含み、
前記信頼できるホスト識別子は、集積回路をプログラムするか又は製造する時にソフトウエアによって提供される、
ことを特徴とする方法。
【請求項９６】
前記暗号化された部分は、信頼できるホスト識別子の群に基づく信頼できるホスト識別子特定のライセンスを通じて使用可能にされることを特徴とする請求項９５に記載の方法。
【請求項９７】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化された回路デザインがどのくらい長く作動することになるかを判断することを特徴とする請求項９６に記載の方法。
【請求項９８】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項９５に記載の方法。
【請求項９９】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項９５に記載の方法。
【請求項１００】
ＩＰブロック所有者側の方法であって、
別の設計者によって集積回路内に組み込むためにＩＰブロックに関連した暗号化された回路デザインを発生させる段階と、
前記ＩＰブロックを使用可能にするために、集積回路をプログラムするか又は製造する時にソフトウエアを通じて信頼できるホスト識別子を前記別の設計者に提供する段階と、
を含むことを特徴とする方法。
【請求項１０１】
前記暗号化された回路デザインは、信頼できるホスト識別子の群に基づく信頼できるホスト識別子特定のライセンスを通じて使用可能にされることを特徴とする請求項１００に記載の方法。
【請求項１０２】
前記信頼できるホスト識別子特定のライセンスは、前記暗号化された回路デザインがどのくらい長く作動することになるかを判断することを特徴とする請求項１０１に記載の方法。
【請求項１０３】
前記信頼できるホスト識別子は、前記集積回路に対する固有の値であることを特徴とする請求項１００に記載の方法。
【請求項１０４】
前記集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路であることを特徴とする請求項１００に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、集積回路の設計の分野に関するものであり、より具体的には、特定のハードウエア設計に関わる複数の当事者間のライセンス交付契約の条項を実行するためのハードウエア技術に関する。
【背景技術】
【０００２】
複合ハードウエアシステムの設計は、ゼロからの新しいハードウエアサブデザインの作成（例えば、専有ハードウエアデザインコード及びサポート文書の各部分）及びＩＰブロック所有者によって準備されたハードウエアサブデザインの購入の組合せを伴っている。多くの場合、設計者は、社内的に特定のハードウエアサブデザインを開発するのではなく、ハードウエアサブデザインをＩＰブロック所有者（例えば、ハードウエアサブデザインに対して知的財産権を有する組織／個人）から購入する。ＩＰブロック所有者は、彼の知的財産権のライセンス交付及び管理維持においていくつかの問題に直面している。最大の問題の１つは、使用毎ベースのハードウエアサブデザインの無断使用及びそれをライセンス交付する有効な方法の欠如である。残念ながら、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）及びＡＳＩＣ（特定用途向け集積回路）には、信頼されかつ固定した固有の識別子はなく、その結果、使用毎のベースでハードウエアサブデザインをライセンス交付することが容易にはできない（例えば、使用毎のライセンスには、特定のハードウエアサブデザインが実施されている全ての装置の課金が必要になり、信頼される固有の識別子がないために、特定のライセンスを特定のＦＰＧＡに固定することが困難になると考えられる）。代わりに、ＩＰブロック所有者は、多くの場合に、設計者がハードウエアサブデザインの各使用に対して適正に計上してその支払いを行うと信頼しない限り（例えば、長期的に続くビジネス関係を通して）、グローバルな１回限りのライセンス（例えば、設計者側のいずれか及び全てのＦＰＧＡ上で特定のハードウエアサブデザインを使用するグローバルな１回限りのライセンス）を販売する必要がある。更に、ハードウエアサブデザインがどこでコピーされて適用されているかを追跡する方法がないために、業界内に窃盗が広がり蔓延している（例えば、ハードウエアサブデザインが販売された状態で、ＩＰブロック所有者は、特定のハードウエアサブデザインがＦＰＧＡ上で何回検索されたかをモニタかつ判断することができない）。従って、ＩＰブロック所有者は、ハードウエアサブデザインにおいて知的財産権を最大限利用することができず、かつ彼らのハードウエアサブデザインが最終的にどこで利用されているのかを管理することができない。
【０００３】
図１Ａは、複数のＩＰブロック１１０Ａ〜１１０Ｉを有するＦＰＧＡ１１８を示している。ＦＰＧＡ１１８は、バス１０８を通じて設計者１１１と結合される。設計者１１１（例えば、ハードウエアシステムを作成している個人又は会社）は、ハードウエアサブデザインをバス１０８を通じてＦＰＧＡ１１８に転送する（例えば、設計者１１１は、設計者１１１が以前作成した特定のハードウエアサブデザインを再利用することができ、特注デザインを開発することができ、パブリックドメインのデザインを使用することができ、又は第三者ＩＰブロック所有者から購入したか又はそれによって作成されたデザインを使用することができる）（例えば、設計者１１１は、デザインの表示をＦＰＧＡ１１８に転送し、１つ又はそれよりも多くのＩＰブロック１１０Ａ〜１１０Ｉ及び／又は設計者の論理１５０をプログラムすることができる）。
【０００４】
ＦＰＧＡ１１８は、設計者の論理１５０と複数のＩＰブロック１１０Ａ〜１１０Ｉを含む。設計者の論理１５０は、設計者１１１が既に作成したハードウエアサブデザインを含む。ＦＰＧＡ１１８内の各ＩＰブロック１１０Ａ〜１１０Ｉは、第三者から購入したハードウエアサブデザインを含む（例えば、特定のＩＰブロック１１０Ａ内のハードウエアサブデザインは、例えば、図１Ｂに示すように第三者ＩＰブロック所有者１００から購入することができる）。
【０００５】
図１Ｂは、デザインを実施するための設計者１１１と、ＩＰブロック所有者１００と、ＦＰＧＡプロバイダ１２０との間の従来技術のトランザクション流れ図を示している。図１Ｂにおいて、設計者１１１は、最初に、丸で囲んだ１に示すようにＦＰＧＡプロバイダ１２０と通信する。丸で囲んだ１の通信は、ＦＰＧＡ装置１１８をＦＰＧＡプロバイダ１２０から購入する要求とすることができる（例えば、ＦＰＧＡプロバイダは、代理店、小売業者、製造業者、及び／又は卸売業者のようなあらゆる商業レベルのＦＰＧＡ納入業者とすることができる）。次に、ＦＰＧＡプロバイダ１２０は、丸で囲んだ２でＦＰＧＡ１１８を設計者１１１に出荷する（例えば、ＦＰＧＡプロバイダ１２０は、信用調査を行い、送り状を作成し、設計者１１１とＦＰＧＡプロバイダ１２０間の商取引の一部としてオファーを受諾することができる）。
【０００６】
設計者１１１が、丸で囲んだ２で、ＦＰＧＡ１１８をＦＰＧＡプロバイダ１２０から受領した後に、設計者１１１は、丸で囲んだ３で、設計者１１１が彼のハードウエアシステムを完了するために必要とする専有ハードウエアサブデザインを購入する要求をＩＰブロック所有者１００に送る（例えば、ＩＰブロック所有者１００は、設計者１１１が彼に与えられた時間及び経費上の制約の範囲内で彼のハードウエアシステムを完了するために必要とする専有ハードウエアサブデザインの所有権を有する場合がある）。設計者１１１が、丸で囲んだ３で、要求をＩＰブロック所有者１００に提供した後に（例えば、設計者１１１は、発注書の形で専有ハードウエアサブデザインを購入するオファーをＩＰブロック所有者１００に電子メールで送ることができ、又はＩＰブロック所有者１００に電話して専有ハードウエアサブデザインを購入することができる）、ＩＰブロック所有者１００は、丸で囲んだ４で、専有ハードウエアサブデザインを設計者１１１に供給する（例えば、ＩＰブロック所有者１００は、グローバルライセンスに関する契約を締結して、ＩＰブロック所有者１００が有する専有ハードウエアサブデザインのグローバル知的財産ライセンスを購入する設計者１１１のオファーを受諾した後に、ＨＤＬ及び／又はＲＴＬ実施デザイン詳細及び専有ハードウエアサブデザインの実施に必要な対応する文書を設計者１１１に提供することができる）。
【０００７】
次に、設計者１１１は、ＩＰブロック所有者１００から受領した専有ハードウエアサブデザインをＦＰＧＡ装置１１８に組み込む（例えば、設計者１１１は、図１Ａで上述したように、バス１０８を通じてＦＰＧＡプロバイダ１２０から設計者１１１が購入したＦＰＧＡ１１８をプログラムすることができる）。残念ながら、ＩＰブロック所有者１００は、専有ハードウエアサブデザインの詳細が設計者１１１に送られた後は、彼の知的財産を管理することができなくなる。ＩＰブロック所有者１００が彼らの専有ハードウエアサブデザインの一部を暗号化したとしても、設計者１１１は、彼／彼女が所望する多くのＦＰＧＡ１１８にそれを自由に複製して利用することができる（例えば、暗号化された回路の他に、ライセンスコードを複製することにより）。更に、ＩＰブロック所有者１００は、設計者１１１がＩＰブロック所有者１００の提供した専有ハードウエアサブデザインを悪用したか否かを判断することができない上に、設計者１１１が専有ハードウエアサブデザインを他人に再販したか否かをモニタすることができない（例えば、ＩＰブロック所有者１００は、彼の専有ハードウエアサブデザインの最初の設計に何百万ドルも投資したかもしれず、かつＩＰブロック所有者１００は、彼の知的財産を他人にライセンス交付することができないので、設計者１１１による専有ハードウエアサブデザインの悪用及び／又は窃盗に対する以外は、投資額を取り戻すのは困難であろう）。従って、ＩＰブロック所有者によって作成された専有ハードウエアサブデザインを保護するための改良型の機器及び方法を提供することが望ましいことが分る。
【発明の開示】
【０００８】
本発明は、ハードウエア技術の使用による特定のハードウエアデザインに関わる複数の当事者間のライセンス交付契約の条項を実行する方法及び機器を開示する。本発明の１つの態様によれば、ハードウエアサブデザインは、暗号化によってユーザによる修正から保護されたライセンス検証サブデザインを含む。１つの態様では、ライセンス交付検証サブデザインと、ＩＰブロックを使用不可にするハードウエアサブデザイン内の論理コードの一部分との接続も、修正を防止するために暗号化される。１つの態様では、ライセンスは、外部ハードウエア装置内の信頼できるホスト識別子に基づいて発生される。別の態様では、ユーザは、信頼できるホスト識別子を修正することはできない。本発明の１つの態様では、各信頼できるホスト識別子は固有であり、同じ信頼できるホスト識別子を共有する集積回路は２つとない。本発明の別の態様では、集積回路は、フィールド・プログラマブル・ゲート・アレイ又は特定用途向け集積回路である。
【０００９】
本発明の別の態様によれば、例示的な方法は、設計者によって設計された第１のハードウエアサブデザインを信頼できるホスト識別子を有するプログラマブル・ゲート・アレイ上にアップロードし、並びに第三者によって提供され、かつ特定の信頼できるホスト識別子を有するプログラマブル・ゲート・アレイ上でのみ機能することができる第２のハードウエアサブデザインをアップロードする。本発明の別の態様では、ライセンスは、信頼できるホスト識別子の群に基づいて発生される。１つの態様では、ライセンスは、ハードウエアサブデザインが信頼できるホスト識別子を有する集積回路内で実施された時に、ハードウエアサブデザインがどのくらい長く作動することになるかを判断する。本発明はまた、集積回路の設計に使用することができるソフトウエア媒体を含む機器を開示する。例えば、本発明は、本発明により集積回路を設計することができるデジタル処理システムを含み、本発明はまた、コンピュータシステムのようなデジタル処理システム上で実行された時にデジタル処理システムに集積回路を設計する方法を実行させる機械可読媒体を提供する。
【００１０】
本発明の他の特徴は、添付の図面及び以下の詳細説明から明らかになるであろう。
【００１１】
本発明は、一例として示すものであり、同じ参照番号が類似の要素を示す添付図面の図に制限するものではない。
【発明を実施するための最良の形態】
【００１２】
特定のハードウエアデザインに関わる複数の当事者間のライセンス交付契約の条項を実行するのに使用されるハードウエア技術の方法及び機器を本明細書で説明する。以下の説明においては、説明を目的として、本発明を完全に理解することができるように多くの特定の詳細事項に対して説明する。しかし、これらの特定の詳細事項がなくても本発明を実施することができることは、当業者には明らかであろう。他の事例においては、公知の構造、処理、及び装置をブロック図の形で示し、又は必要以上の詳細事項なく説明を行うために要約して参照する。本発明の方法の多くは、従来の汎用コンピュータシステムのようなデジタル処理システムと共に実施することができる。
【００１３】
図２Ａは、本発明の一例示的実施形態による信頼できるホスト識別子２４５と、複数のライセンス交付ブロック２０５Ａ〜２０５Ｉと、各ライセンス交付ブロック２０５Ａ〜２０５Ｉに関連した複数のＩＰブロック２１０Ａ〜２１０Ｉとを有するＦＰＧＡ２１８を示している。設計者２１１は、バス２０８を通じてＦＰＧＡ２１８と通信する（例えば、設計者２１１は、バス２０８を通じてＦＰＧＡにダウンロードする前にビットストリームを合成、配置、経路指定、及び発生させることにより、ハードウエアサブデザインの全ての部分を編集することができる）。設計者２１１は、一実施形態によると、社内で作成されたハードウエアサブデザイン並びに第三者から購入したハードウエアサブデザインを使用するハードウエアシステム設計者とすることができる（例えば、設計者２１１は、特定のハードウエアサブデザインをＩＰブロック所有者２００から購入して、設計者の論理２５０と組み合わせてバス２０８を通じてＦＰＧＡ２１８内で完全なデザインを作ることができる）。バス２０８は、直接接続ローカルバス（例えば、シリアル及び／又はパラレルポートを通じてＦＰＧＡに直接に接続したコンピュータ）とすることができる。代替的に、バス２０８は、別の実施形態によると、設計者２１１がＦＰＧＡ２１８と通信するローカル又はワイドエリアネットワークとすることができる。
【００１４】
ＦＰＧＡ２１８は、設計者の論理２５０と、信頼できるホストＩＤ２４５と、１つ又はそれよりも多くのＩＰロケーション２４０Ａ〜２４０Ｉとを含む。設計者の論理２５０は、設計者２１１によって単独に作成されたハードウエアサブデザインを含む（例えば、設計者の論理２５０は、検証された上に既に試験済みであるハードウエアサブデザインを含むこともあり、また、他のデザインにおいて過去に使用されたハードウエアサブデザインを含む場合がある）。設計者の論理２５０は、ＩＰロケーション２４０Ａ〜２４０Ｉからに分離され、これは、ＩＰロケーション２４０Ａ〜２４０Ｉが一実施形態では第三者によって設計されたハードウエアサブデザインのために使用される場合があるからである。
【００１５】
ＦＰＧＡ２１８内の信頼できるホストＩＤ２４５（信頼できるホスト識別子）は、ＦＰＧＡ２１８に対する固有の信頼できるホスト識別子を維持する。信頼できるホストＩＤ２４５の実施は、一実施形態では、内蔵連続番号（例えば、ＦＰＧＡは、内蔵連続番号として製造することができ、又は内蔵連続番号は、１回限りのプログラマブル連続番号とすることができる）及びライセンス検証サブデザインにおいて使用することができる設計構成要素（例えば、ハードウエアサブデザイン内でのライセンス検証サブデザイン）を用いて、ユーザが目視可能な接続部なしにその連続番号にアクセスすることで（例えば、ユーザによる修正からサブデザインのライセンス検証部分を保護する）、フィールド・プログラマブル・ゲート・アレイ内で行うことができる。信頼できるホストＩＤ２４５は、一実施形態では、ＦＰＧＡ２１８に永久的に関連付けられた固有番号とすることができる（例えば、信頼できるホストＩＤは、製造中にＦＰＧＡ製造業者のような信頼できるホストＩＤプロバイダによって予め設定された番号とすることができる）。一実施形態では、信頼できるホストＩＤ２４５の一部は、図２Ｂに示すように、信頼できるホストＩＤプロバイダ２２０によって設計者２１１に販売されたＦＰＧＡの群に関して共通とすることができる（例えば、固定の上位の組のビットを有するマスキングと信頼できるホストＩＤとを組み合わせることができる）（例えば、ＦＰＧＡ２１８の製造時期及び／又は製造場所を示すように、信頼できるホストＩＤプロバイダ２２０が設計者２１１に数値ホストＩＤの一部を販売したＦＰＧＡの特定のバッチと関連付けることができる）。信頼できるホストＩＤ２４５のアイデンティティは、一実施形態では、ＦＰＧＡ２１８に問合わせすることでバス２０８を通じて設計者２１１が検索することができる（例えば、設計者２１１が有するソフトウエアプログラム又はソフトウエアプログラムは、設計者２１１が信頼できるホストＩＤ２４５のコンテンツを読むことを可能にすることができる）。信頼できるホストＩＤ２４５は、ＦＰＧＡ２１８を完全に使用不可にすることなしに変えることはできないことに注意すべきである（例えば、誰かが信頼できるホストＩＤ２４５のアイデンティティを変えようとした場合、ＦＰＧＡ２１８を使用不可にする回路遮断器を通じた改ざんに対して信頼できるホストＩＤ２４５を保護することができる）。一実施形態では、信頼できるホストＩＤ２４５は、フィールド・プログラマブル・ゲート・アレイの外部にあり、セキュアではないチャンネル（例えば、仮想専用ネットワークプロトコル）によるセキュアな通信に様々な公知の方法を使用することができる。
【００１６】
一実施形態では、設計者２１１は、ＦＰＧＡ２１８にダウンロードする前にビットストリームを合成、配置、経路指定、及び発生させることで、ハードウエアサブデザインの全ての部分を編集することができる。代替的に、部分的再構成を目的とした別の実施形態では、各ＩＰブロック２０５Ａ〜２０５ＩをＦＰＧＡ２１８上の異なるロケーションに個別にダウンロードすることができる。各ＩＰロケーション２４０Ａ〜２４０Ｉは、ライセンス交付ブロック２０５Ａ〜２０５ＩとＩＰハードウエアデザインブロック２１０Ａ〜２１０Ｉ（例えば、又はＩＰブロック２１０Ａ〜２１０Ｉ）とを含む。各ＩＰロケーション２４０Ａ〜２４０Ｉを設計者の論理２５０に接続することができる（例えば、特定のＩＰロケーション２４０Ａが設計者の論理２５０と通信してハードウエアサブデザイン命令を共有することを可能にするために）。一実施形態では、新しいハードウエアサブデザインが追加及び／又はＩＰブロック２１０Ａ〜２１０Ｉの範囲内から削除された時、ＩＰロケーション２４０Ａ〜２４０Ｉを使用可能及び使用不可にすることができる（例えば、ＩＰロケーション２４０Ａは、物理的ＩＰロケーションに対して、図２Ｂに示すようにＩＰブロック所有者から購入された専有ハードウエアサブデザインがＦＰＧＡ２１８内で追加及び／又は削除された時に作成されるＩＰブロック２１０Ａに対して、特定のライセンス交付ブロック２０５Ａの論理的関連付けとすることができる）。一実施形態では、ライセンス交付ブロック２０５Ａ〜２０５Ｉを使用して、ＩＰブロック２１０Ａ〜２１０Ｉを使用可能にすることができる（例えば、特定のライセンス交付ブロック２０５Ａは、図２Ｂの丸で囲んだ４で示すように、ＩＰブロック２１０Ａのコンテンツをアンロックして、ＩＰブロック所有者２００によって提供されるハードウエアサブデザインを明らかにすることができる）。
【００１７】
ライセンス交付ブロック２０５Ａは、ライセンスを受信し、信頼できるホスト識別子２４５を分析してＩＰブロックのどの特徴を使用可能にすべきであるかを判断することができる。一実施形態では、ライセンス交付ブロック２０５Ａ〜２０５Ｉは、ハードウエアサブデザインの作動を使用可能にするために信頼できるホストＩＤ２４５と共に（図２Ｂに示すように）ＩＰブロック所有者２００から受信したライセンスコードの整合性を検証するライセンス検証ハードウエア（例えば、ハードウエアサブデザインを発生させる間に暗号化されるハードウエアサブデザイン内のライセンス検証サブデザイン）を含む。従って、ライセンス交付ブロック２０５Ａ〜２０５Ｉは、ＩＰブロック所有者（図２Ｂに示すようなＩＰブロック所有者２００など）から受信したライセンスコードを信頼できるホストＩＤ２４５に依存するライセンス交付ブロック２０５Ａ〜２０５Ｉ内の内部暗号化手法と比較することで、知的財産を有するライセンス交付されていない設計者がＩＰブロック２１０Ａ〜２１０Ｉ内のハードウエアサブデザインにアクセスするのを防止する電子ロックとして作動することができる（例えば、一実施形態では、ライセンスコードは、信頼できるホストＩＤ２４５を有するＦＰＧＡ上でしか機能することはできない）。一実施形態では、ライセンス交付ブロック２０５Ａは、（図２Ｂで丸で囲んだ４で示すように）ＩＰブロック所有者２００からライセンスコードを受信した設計者２１１から、バス２０８を通じてそのライセンスコード（例えば、バイナリデータのストリング）を受信することができる。別の実施形態では、ライセンス交付ブロック２０５Ａは、ライセンスコードを信頼できるホストＩＤ２４５及びライセンス交付ブロック２０５Ａ内の暗号化手法と比較することができる。一実施形態では、ライセンスコードは、ＩＰブロック２１０Ａ〜２１０Ｉ内に組み込むことができ、及び／又は設計者の論理２５０内に組み込むことができる。
【００１８】
ＩＰブロック２１０Ａ〜２１０Ｉは、一実施形態によれば、第三者ＩＰブロック所有者によって提供されたハードウエアサブデザインとすることができる（例えば、図２Ｂで後述するようなＩＰブロック所有者２００）。別の実施形態では、異なるＩＰブロック所有者が、ＩＰブロック２１０Ａ〜２１０Ｉを形成するように設計者２１１に自社のハードウエアサブデザインを販売又はライセンス交付していたかもしれない（例えば、第１のＩＰブロック所有者が、ハードウエアサブデザインをＩＰブロック２１０Ａ内に供給する場合があり、一方、異なるＩＰブロック所有者が、ハードウエアサブデザインをＩＰブロック２１０Ｂ内に供給する場合もある）。ＩＰブロック２１０Ａ〜２１０Ｉのうちの複数のＩＰブロックは、別の実施形態では、共通のライセンス交付ブロック２０５Ａ〜２０５Ｉを共有することができ、及び／又は共通のライセンスコードがコンテンツを使用可能にすることを可能にすることができる（例えば、同じライセンスコードは、ライセンス交付ブロック２０５Ａ並びにライセンス交付ブロック２０５Ｂをアンロックするように作動することができる）。ライセンス交付ブロック２０５Ａ〜２０５Ｉは、修正を防止するために暗号化されたライセンス検証サブデザインを含むことができる。一実施形態では、ＩＰブロック２１０Ａ〜２１０Ｉは、特定の信頼できるホストＩＤ２４５値を有するＦＰＧＡ２１８上でしか機能することはできず、異なるホストＩＤ値を有する異なるＦＰＧＡ上では機能しない。ライセンス交付ブロック２０５Ａ〜２０５Ｉは、一実施形態では、ＩＰブロック所有者２００によって提供された信頼できるホストＩＤ２４５及びライセンスの組合せに基づいて作動の意思決定を行うことができる。ライセンスが有効でなく、かつ検証が失敗した場合、一実施形態では、ハードウエアサブデザインの論理を妨害する（状態機械をリセットさせ、かつメモリを決して書込みさせない）信号をアサートすることで、ハードウエアサブデザインの作動を防止することができる。ライセンス検証サブデザインを暗号化して、ユーザがライセンス検証サブデザインのいずれの部分も修正することができないようにすることができる（例えば、このデザインツールフローは、ハードウエアサブデザインのこの部分の編集を防止することができる）。一実施形態では、ハードウエアサブデザインの暗号化は、ハードウエアサブデザイン内のライセンス検証サブデザインを修正から保護する目的だけに行われる。一実施形態では、ライセンス検証サブデザインと、ＩＰブロックを使用不可にするハードウエアサブデザイン内の論理コードの部分との接続を暗号化して修正を防止することができる。
【００１９】
図２Ｂは、本発明の一例示的実施形態による信頼できるホストＩＤ２４５とライセンスコードとを用いたハードウエアデザインの実施に関する設計者２１１と、ＩＰブロック所有者２００と、信頼できるホストＩＤプロバイダ２２０との間のトランザクション流れ図を示している。図２Ｂにおいては、設計者２１１は、ホストＩＤ付きＦＰＧＡ２１８を購入する要求を信頼できるホストＩＤプロバイダ２２０に送る。一実施形態では、信頼できるホストＩＤプロバイダ２２０は、ＩＰブロック所有者２００が、信頼される製造業者によって製造された各ＦＰＧＡが固有かつ編集不能なホストＩＤ２１８を有すると信じるように、十分な信頼に足る企業の評判を築いてきたＦＰＧＡ製造業者のような信頼される製造業者とすることができる。
【００２０】
代替的に、別の実施形態では、信頼できるホストＩＤプロバイダ２２０は、コンピュータ（例えば、図３のコンピュータ３１１など）に接続した時に信頼できるホスト識別子を供給する外部ハードウエア装置（例えば、ドングル及び／又はマイクロチップ）を製造する企業とすることができる。丸で囲んだ１では、設計者２１１は、信頼できるホストＩＤ（又は信頼できるホスト識別子を有するＦＰＧＡ２１８）を信頼できるホストＩＤプロバイダ２２０に注文する（例えば、設計者２１１は、特注集積回路の設計で使用される内蔵の信頼できるホストＩＤ２４５を有するＦＰＧＡ２１８の購入の注文書を信頼できるホストＩＤプロバイダ２２０に送ることで注文することができる）。また、設計者２１１は、丸で囲んだ１で、信頼できるホストＩＤプロバイダ２２０に、設計者２１１がどのＩＰブロック所有者２００のハードウエアサブデザインをハードウエアシステムで使用するつもりであるかを連絡することができる（例えば、設計者２１１は、例えば、ＩＰブロック所有者２００が作成したハードウエアサブデザインを使用するつもりであることを信頼できるホストＩＤプロバイダに連絡することができる）。
【００２１】
丸で囲んだ２で、信頼できるホストＩＤプロバイダ２２０は、ＦＰＧＡ２１８を有するＦＰＧＡを設計者２１１に出荷するか、又は信頼できるホスト識別子を有する外部ハードウエア装置を供給する（例えば、信頼できるホストＩＤプロバイダ２２０は、設計者２１１と拘束力のある契約を締結して、例えば、設計者２１１が注文した各ＦＰＧＡ２１８に対して固有のホストＩＤを発生させることができる）。一実施形態では、外部ハードウエア装置を直接にＦＰＧＡに接続することができるので、外部ハードウエア装置をコンピュータに接続するという点が不要になると考えられる。一例示的実施形態では、信頼できるホストＩＤプロバイダ２２０が外部ハードウエア装置を供給した場合、設計者２１１は、ＩＰブロック所有者２００が所有するハードウエアサブデザインが使用されるＡＳＩＣ及び／又はＦＰＧＡに接続したコンピュータに外部ハードウエア装置を接続する必要があると考えられる（例えば、設計者２１１は、ＩＰブロック所有者２００が所有するハードウエアサブデザインを使用するＡＳＩＣ及び／又はＦＰＧＡへの書込みに設計者２１１が使用することができるコンピュータ上のＵＳＢポートに信頼できるホスト識別子を有する周辺装置を接続するであろう）。代替的に、一実施形態では、コンピュータの製造番号をホスト識別子として用いることができる。ＩＰブロック所有者２００は、外部ハードウエア装置によって発生されたホスト識別子が固有かつ修正不可能であると確信すべきである（例えば、信じる）ことに注意すべきである。従って、ＩＰブロック所有者２００は、一実施形態では、信頼できるホスト識別子を発生させたいと考えている各信頼できるホストＩＤプロバイダ２２０を事前に資格審査する必要があると考えられる。別の実施形態では、独立した業界団体が、信頼できるホストＩＤプロバイダの指針及び資格を提供することができる。
【００２２】
次に、丸で囲んだ３では、設計者２１１は、ＩＰブロック所有者２００に、設計者２１１がホストＩＤ付きＦＰＧＡ２１８（又は、信頼できるホスト識別子を有する外部装置）を購入したことを知らせ、設計者２１１は、ＩＰブロック所有者２００が所有するハードウエアサブデザインを発注する（例えば、設計者２１１は、複合集積回路の一部をＩＰブロック所有者２００から購入して、例えば、設計者２１１がゼロから設計するのではなく時間を節約することができるようにすることができる）。また、設計者２１１は、ＩＰブロック所有者２００に信頼できるホストＩＤを知らせることができる（例えば、設計者２１１は、ホストＩＤを有するＦＰＧＡ２１８及び／又は外部ハードウエア装置内で固定レジスタを読み取ることで、信頼できるホスト識別子のＩＤを判断するソフトウエアプログラムを実施することができる）。
【００２３】
次に、ＩＰブロック所有者２００は、丸で囲んだ３で、設計者２１１から受信する信頼できるホストＩＤ情報を組み合わせて、設計者２１１が購入したいと考えているハードウエアサブデザイン向けにカスタマイズされている設計者２１１のための信頼できるホスト識別子特定のライセンスを発生させる（例えば、ＩＰブロック所有者２００は、図２Ａに示すように、信頼できるホストＩＤ２４５を使用してハードウエアサブデザイン内のライセンス検証サブデザインを暗号化し、特定のホスト識別子２１８のみを使用してＩＰブロック所有者２００が供給したハードウエアサブデザイン内の１つ又はそれよりも多くの特徴を検証して使用可能にすることを要件とするライセンスコードを発生させることができる）。一実施形態では、ライセンス検証サブデザインは、ＩＰブロック所有者２００によって提供された信頼できるホストＩＤ２４５とライセンスの組合せに基づいて、作動の意思決定を行うことができる。ライセンスが有効でなく、かつ検証が失敗した場合、一実施形態では、ハードウエアサブデザインの論理を妨害する信号をアサートすることで、ハードウエアサブデザインの作動を防止することができる。
【００２４】
次に、丸で囲んだ４では、ＩＰブロック所有者２００は、固有のホストＩＤを有する特定のＦＰＧＡ２１８向けにカスタマイズされているライセンスコード（例えば、ＩＰブロック所有者２００が所有するハードウエアサブデザイン内の１つ又はそれよりも多くの特徴をアンロックするライセンスコード）と共にハードウエアサブデザイン（例えば、ＩＰブロック所有者２００が所有するハードウエアサブデザイン）を設計者２１１に供給する。一実施形態では、ＩＰブロック所有者２００は、修正を防止するために暗号化されているハードウエアサブデザイン内にライセンス検証サブデザインを発生させる。一実施形態では、ライセンスは、設計者２１１がＩＰブロック所有者２００の有するハードウエアサブデザインを使用したいと考えている様々なＦＰＧＡのための信頼できるホストＩＤの群に関して発生される（例えば、ＩＰブロック所有者２００は、各々が固有のホストＩＤを有するＦＰＧＡの群上にＩＰブロック所有者２００が所有するハードウエアサブデザインを設置するための注文を設計者２１１から受注することができ、ＩＰブロック所有者２００は、ハードウエアサブデザインの使用を設計者２１１が購入した全ての資格審査用ホストＩＤに許可することができる）。
【００２５】
信頼できるホストＩＤ２４５を有するＦＰＧＡ上でのみ機能することができるライセンスを供給することで、ＩＰブロック所有者２００は、ＩＰブロック所有者２００が所有するハードウエアサブデザインが使用される方法をより有効に規制することができる（例えば、ＩＰブロック所有者２００は、信頼できるホストＩＤの特定の群のみで作業するライセンスを設計者２１１に供給することで、ハードウエアサブデザインの使用を特定のＦＰＧＡにのみ制限することができる）。代替的に、ＩＰブロック所有者２００は、一実施形態では、信頼できるホスト識別子を含む外部ハードウエア装置が設計者２１１側のコンピュータに接続されることを要件とするライセンスコードを供給することができる。例えば、ＩＰブロック所有者２００のハードウエアサブデザインは、外部ハードウエア装置が接続されているＡＳＩＣ及び／又はＦＰＧＡ上でしか作動することはできない。従って、ＩＰブロック所有者２００は、グローバルライセンスに対してではなく使用毎のベースで課金することで、知的財産（例えば、ハードウエアサブデザイン）に対して可変の金額を課金することができる（例えば、ＩＰブロック所有者２００は、全てのＦＰＧＡを対象としてハードウエアサブデザインをライセンス交付する１回限りの料金とは対照的に、ハードウエアサブデザインの全てのインスタンスが既知であるという点で実施機構が存在するので、ハードウエアサブデザインが使用される各ＦＰＧＡに対して課金することができる）。更に、ＩＰブロック所有者２００が所有するハードウエアサブデザインを信頼できるホスト識別子を有するライセンシーだけに制限することで、ＩＰブロック所有者２００は、ＩＰブロック所有者２００が所有するハードウエアサブデザインの無許可サブライセンス交付及び／又は盗難を防止することができる。従って、設計者２１１は、ＩＰブロック所有者２００から事前の許可を得なければ、ＩＰブロック所有者２００からライセンス交付されたハードウエアサブデザインの無許可の複写を発生させることはできない。設計者２１１は、設計者２１１がＩＰブロック所有者２００から受信するハードウエアサブデザインが、特定の信頼できるホスト識別子を用いてのみ機能することになるので、設計者２１１が更に別のコピーを使用することを明示的に許可するライセンスを購入すべきである（例えば、ＩＰブロック所有者２００は、ＩＰブロック所有者２００が付与するライセンスを特定の信頼できるホストＩＤを有するＦＰＧＡだけに制限することができるので、ＩＰブロック所有者２００が所有するハードウエアサブデザインの拡散を防止することができる）。
【００２６】
図３は、本発明の一例示的実施形態によるデザイン実施に関するコンピュータと、ライセンス発生器と、信頼できるホストＩＤプロバイダとの間の信頼できるホスト識別子及びライセンスコードの使用のハードウエア図を示している。図３は、図３が図２Ｂに示す当事者によって使用される特定のハードウエアを示す点を除き、図２Ｂで発生させる全ての処理が図３に発生させるという点において図２Ｂと類似のものである。コンピュータ３１１は、図２Ｂで上述のように、設計者２１１内にある（コンピュータ３１１は、図２Ａに示すように、バス２０８を通じてホストＩＤ２１８を有するＦＰＧＡと通信することができる）。コンピュータ３１１は、丸で囲んだ１及び丸で囲んだ２に示しかつ図２Ｂで上述のように、通信で信頼できるホストＩＤプロバイダ２２０から信頼できるホストＩＤ２４５を受信する（例えば、ＦＰＧＡ２１８は、当事者が契約を締結した後で、図２Ｂに示すように、コンピュータ３１１で使用されるように、信頼できるホストＩＤプロバイダ２２０が設計者２１１に出荷することができる）。次に、ＩＰブロック所有者２００内のライセンス発生器３００は、丸で囲んだ３及び丸で囲んだ４で、信頼できるホストＩＤ２４５専用のライセンスを発生させる（例えば、ライセンス発生器３００は、ハードウエアサブデザインがアンロックされるように特定の信頼できるホストＩＤ２４５に依存するライセンスを発生させることができる）。一実施形態では、ライセンス発生器３００は、ハードウエアサブデザイン内の暗号化ライセンス検証サブデザインと、特定のＦＰＧＡ２１８内の信頼できるホストＩＤ２４５に依存するカスタマイズホストＩＤ専用ライセンスコードとを発生させるためにＩＰブロック所有者２００が使用するアプリケーションプログラムである。丸で囲んだ４では、信頼できるホストＩＤ専用ライセンスコード並びにハードウエアサブデザインをライセンス発生器３００からコンピュータ３１１（図２Ｂに説明するような設計者２１１側のコンピュータ３１１）に供給する。
【００２７】
図４Ａは、本発明の実施形態の実施に使用することができるコンピュータシステム３１１のブロック図である。コンピュータシステム３１１は、ＨＤＬコードに説明されているデザインの論理合成に使用する。コンピュータシステム３１１は、バス４０１を通じてランダムアクセスメモリ４０４と、読み出し専用メモリ４０６と、大容量記憶装置４０７とに結合されたプロセッサ４０２を含む。大容量記憶装置４０７は、フロッピー（登録商標）ディスクドライブ、固定ディスクドライブ（例えば、磁気ドライブ、光ドライブなど）のような持続性データ記憶装置を表している。プロセッサ４０２は、汎用プロセッサ（「Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）」プロセッサのような）、専用プロセッサ、及び／又は特殊プログラム論理デバイスにおいて実施することができる。ディスプレイ４２０は、バス４０１を通じてプロセッサ４０２に結合され、コンピュータシステムにグラフィック出力を供給する。このグラフィック出力は、一般的に、コンピュータシステムの作動の制御に使用することができるグラフィカルユーザインタフェースである。キーボード４２１及びカーソル制御装置４２２は、情報及び指令選択をプロセッサ４０２に通信するためにバス４０１に結合される。カーソル制御装置４２２は、一般的に、表示装置４２０上に表示されるカーソルの制御に使用することができるマウス又は他のカーソル制御装置であることになる。また、プロセッサ４０２には、データの制御及びコンピュータシステム３１１に結合されるプリンタ及び他のコンピュータのような電気装置へ及びそれからの転送に使用することができる入力／出力インタフェース４２３がバス４０１を通じて結合される。また、信頼できるホストＩＤ２４５をコンピュータシステム３１１に結合することができる。一実施形態では、信頼できるホストＩＤ２４５は、外部ハードウエア装置である。別の実施形態では、信頼できるホスト識別子は、信頼できるホストＩＤ２４５を有するＦＰＧＡ２１８内にある。また、信頼できるホストＩＤ２４５は、直接にコンピュータシステム３１１にではなく、特定の入力／出力インタフェース４２３に結合することができる。
【００２８】
図４のアーキテクチャは、説明のみを目的として提供するものであり、本発明に関連して使用されるコンピュータシステム又は他のデジタル処理システムは、この特定のアーキテクチャに限定されるものではないことに注意すべきである。
【００２９】
ここで、図４Ｂを参照して本発明のある一定の実施形態の一般的な例を説明する。図４Ｂは、本発明の一例示的実施形態により信頼できるホストＩＤ２４５を有するＦＰＧＡ２１８内のハードウエアサブデザインの実施に使用される設計者２１１側のコンピュータシステム３１１内での作動を示す流れ図である。本発明の大部分の実施形態は、ＨＤＬデザイン合成ソフトウエアでの使用を意図したものであるが、本発明は、必ずしもこのような使用に限定されるものではない。一実施形態では、ハードウエアサブデザインは、実際には、暗号化によって隠されたこのような部分を有する簡単なネットリストとして簡単に表すことができることに注意すべきである。ハードウエアサブデザインは、ＨＤＬ又は動作記述でなくてもよい。コンピュータプログラムにおける他の言語の使用が可能であるが、本発明の実施形態は、ＨＤＬ合成システム、特に、販売業者特異の技術／アーキテクチャを有する集積回路と共に使用するために設計されたＨＤＬ合成システムにおける使用という関連で以下に説明する。
【００３０】
公知の通り、プログラマブルＩＣの納入業者は、一般的に目標のアーキテクチャを判断する。目標アーキテクチャの例は、カリフォルニア州サンホセ所在の「Ｘｉｌｉｎｘ、Ｉｎｃ．」製フィールド・プログラマブル・ゲート・アレイのプログラム済みルックアップテーブル（ＬＵＴ）及び関連論理である。目標アーキテクチャ／技術の他の例としては、Ａｌｔｅｒａ、「Ｌｕｃｅｎｔ  Ｔｅｃｈｎｏｌｏｇｉｅｓ」、「Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ」、及び「Ｌａｔｔｉｃｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ」のような販売業者製のＦＰＧＡ及び複合プログラマブル論理デバイスにおける公知のアーキテクチャがある。また、ある一定の実施形態に対しては、本発明は、ＡＳＩＣと共に採用することもできる。
【００３１】
図４Ｂの方法は、設計者（図２Ｂに示すような設計者２１１など）が、修正から保護されたライセンス検証ハードウエアを含む設計図（例えば、望ましい回路の動作記述）を作成する作業４１１で始まる。作業４１２においては、隠されているＩＰブロックと共にデザインを表示し、編集不能なＩＰブロックを除くデザインに対する変更を可能にする（例えば、設計者の論理２５０は、編集可能であるが、ＩＰブロック所有者２００によって提供されたハードウエアサブデザインＩＰロケーション２４０Ａ〜２４０Ｉは、隠すことができ、図２Ａに示すように、部分的又は完全であるかを問わず、編集不能にすることができる）。次に、作業４１３において、ＨＤＬコンパイラで設計図をコンパイルして、技術に無関係のＲＴＬネットリストを発生させる。このネットリストは、特定の販売業者の技術から独立したものであり、これは、特定の目標アーキテクチャによって使用される構築用ブロック（例えば、ルックアップテーブル、マルチプレクサ、及びＡＮＤ／ＯＲアレイなど）のライブラリから独立したものであることを意味する。設計図の少なくとも一部は、暗号化済みであるために修正に対してセキュアである。
【００３２】
作業４１４においては、設計図を最適化する（例えば、論理を最適化して論理のタイミングパラメータを改善する）。この作業は、任意的であり、これを使用して最適化ルーチンに従って二重の相互接続及び論理デバイスを除去する。次に、作業４１５においては、従来の配置及び経路指定ソフトウエアツールを使用して、Ｘｉｌｉｎｘ又はＡｌｔｅｒａのＦＰＧＡのような目標アーキテクチャにおける回路のデザインを作成する。次に、作業４１６においては、修正から保護された設計図ライセンス検証ハードウエアを含むＩＰブロック（例えば、ＩＰブロック所有者２００から購入したハードウエアサブデザインを有するＩＰブロック）を作成するようにＦＰＧＡの一部をプログラムする構成データを発生させる。
【００３３】
図４Ｃは、本発明の一例示的実施形態による信頼できるホストＩＤ２４５を有する外部ハードウエア装置を使用してＡＳＩＣに範囲内でハードウエアサブデザインを実施するのに使用される設計者２１１側のコンピュータ３１１内の作業を示す流れ図である。ＡＳＩＣ内でのＩＰブロック所有者２００が所有するハードウエアサブデザインの実施には、設計者２１１が図２Ｂにおいて上述したような外部ハードウエア装置を購入することが必要である。図４Ｃに示す作業４１１〜４１５は、図４Ｂに示す作業と同じものである。図４Ｃの作業４２６においては、ハードウエアサブデザインが、ＦＰＧＡではなくＡＳＩＣでの使用のためにライセンス交付されているので、修正から保護された設計図ライセンス検証ハードウエアを含むＩＰブロックをＡＳＩＣ内で実施するための回路のレイアウトが実行される。
【００３４】
図５は、本発明の一例示的実施形態による信頼できるホスト識別子５４５と、設計者の論理５５０と、複数のライセンス交付ブロック５０５Ａ〜５０５Ｉと、クロック回路５２５と、各ライセンス交付ブロック５０５Ａ〜５０５Ｉ及びクロック回路５２５に関連した複数のＩＰブロック５１０Ａ〜５１０Ｉとを有するＦＰＧＡ５１８を示している。ＦＰＧＡ５１８は、図２Ａで上述したＦＰＧＡ２１８と類似のものである。しかし、図５に示すＦＰＧＡ５１８は、ＩＰロケーション５４０Ａ〜５４０Ｉ内の各ライセンス交付ブロック５０５Ａ〜５０５Ｉと通信するクロック回路を含む。クロック回路５２５は、一実施形態では、前回記憶された値よりも大きい場合に限り新しい値（例えば、特定のハードウエアサブデザインが何回実施されたかのカウント又は現在の日付／時間など）を記憶することができる。一実施形態では、クロック回路５２５は、リセットすることができないので、記録された時間が確実に順方向に移動し続けるようにするのに使用される。
【００３５】
各ＩＰロケーション５４０Ａ〜５４０Ｉは、ライセンス交付ブロック５０５Ａ〜５０５ＩとＩＰブロック５１０Ａ〜５１０Ｉとを含む。クロック回路５２５は、特定のＩＰロケーション５４０Ａ〜５４０Ｉがどのくらい長く作動することになるかを支配する情報を記憶する（例えば、クロック回路５２５は、図２Ａに示すように、ＩＰブロック所有者２００によってライセンス交付ブロック５０５Ａに提供されたライセンスコードに基づいて、ＩＰロケーション５４０Ａがどのくらい長く作動することができるかに関する情報を記憶することができる）。一実施形態では、特定の作動期間の限界に達した時、クロック回路５２５は、１つ又はそれよりも多くのＩＰブロック５１０Ａ〜５１０Ｉを使用不可にすることができる（例えば、図２Ａで上述したのと同様に、ＩＰロケーション５４０Ａ〜５４０Ｉは、設計者２１１がＩＰロケーション５４０Ａ〜５４０Ｉに関連したＩＰブロック５１０Ａ〜５１０Ｉにアクセス可能である期間にわたって使用可能して、ＩＰブロック５１０Ａ〜５１０Ｉ内のハードウエアサブデザインにアクセスするライセンスが満了となった時に使用不可にすることができる論理モジュールとすることができる）。
【００３６】
一実施形態では、クロック回路５２５は、クロック回路５２５に関連した特定のＩＰブロック５１０Ａ〜５１０Ｉが最後に更新された時（例えば、設計者２１１がバス５０８を通じて特定の第三者ハードウエアサブデザインをＩＰブロック５１０Ａ〜５１０Ｉに最後に更新した時）を記憶することができる。別の実施形態では、クロック回路５２５は、ライセンス交付ブロック５０５Ａがどのくらい長く作動することができるか（例えば、ＩＰブロックに関連したＩＰロケーションが無効化される前にどのくらいか）を判断するカウントダウンタイマを記憶することができる。本発明の別の実施形態では、クロック回路５２５は、ＩＰロケーション５４０Ａ〜５４０Ｉの最終更新時を含むことができる（例えば、ＩＰブロック所有者２００が以前にハードウエアサブデザインの群を設計者２１１にライセンス交付していた場合、クロック回路５２５は、例えば、部分的な再構成計画のためにＩＰロケーション５４０Ａ及び５４０Ｂに関する最終更新時を記憶することができる）。一実施形態では、ホストＩＤ５４５を有する外部ハードウエア装置は、バッテリによって電源が提供されかつＩＰブロック５１０Ａ〜５１０Ｉ内のハードウエアサブデザインが所定の時間量にわたって作動することを可能にするクロック回路を含むことができる（例えば、クロック回路５２５と同様の）。別の実施形態では、信頼できるホスト識別子５４５を有する外部ハードウエア装置の内部のメモリは、上述したようなクロック回路５２５に対して説明した実施形態の全てを含むことができる。
【００３７】
一実施形態では、設計者２１１は、ソフトウエアライセンス交付サブシステム（例えば、カリフォルニア州サンタクララ所在の「Ｍａｃｒｏｍｅｄｉａ、Ｉｎｃ．」による「ＧＬＯＢＥＴＲＯＴＴＥＲ（登録商標）」）をそれ自体が使用するソフトウエアアプリケーションを使用して、ハードウエアサブデザインに関する評価ライセンスをＩＰブロック所有者２００から受信することができる。評価ライセンスは、ソフトウエアベースの信頼できるホスト識別子を含むことができる（例えば、評価ライセンスは、アプリケーションソフトウエアに関するソフトウエアライセンスと共に送られた追加ビットのデータ内のソフトウエアベースの信頼できるホスト識別子を含むことができる）。次に、設計者２１１は、ソフトウエアアプリケーションを使用して、図５に示すように、ソフトウエアベースの信頼できるホスト識別子と評価ライセンスとをＦＰＧＡ５１８内のライセンス交付ブロック５０５Ａに転送し（例えば、ＪＴＡＧシリアル通信法を通じて）、その結果、ライセンス交付ブロック５０５Ａは、ソフトウエアベースの信頼できるホスト識別子を使用してハードウエアサブデザイン内の１つ又はそれよりも多くの特徴を使用可能にすることができる。一実施形態では、ＩＰブロック２１０Ａ又はライセンス交付ブロック２０５Ａの暗号化部分（例えば、ハードウエアサブデザイン内のライセンス検証サブデザイン）によって使用される信頼できるホスト識別子２４５を発生させ、集積回路プログラム又は製造時に信頼できるホスト識別子２４５が提供される時に、ＩＰブロック２１０Ａ（例えば、ハードウエアサブデザイン）の残りの部分を使用可能にすることができる。別の実施形態では、集積回路のプログラム時又は製造時にソフトウエアを通じて信頼できるホスト識別子をＩＰブロック所有者２００が設計者２１１に供給し、例えば、ＩＰブロック２１０Ａを使用可能にする。このソフトウエアは、集積回路がプログラムされている時に設計者２１１が実施することができ、このソフトウエアは、一般的に、ＩＰブロック所有者によって提供された許可メッセージ又は信号を通じて使用可能されたＩＰブロックと共にプログラム又は製造させることになる実施可能なコンピュータプログラムコードを含むと考えられる。この許可メッセージ又は信号は、ソフトウエアによって利用されるソフトウエア又はデータ構造の暗号化部分に供給することができ、又はこの許可メッセージ又は信号は、ネットワーク接続部を通じて、ＩＰブロック所有者によって制御されるデータ処理システムから供給することができる。
【００３８】
図６は、本発明の一例示的実施形態による修正を防止するために行われるＩＰブロック所有者側の信頼できるホスト識別子２４５を有するハードウエアサブデザイン内のライセンス検証サブデザインの暗号化を示す流れ図である。作業６０１においては、ＩＰブロック（例えば、図２ＡのＩＰブロック２１０Ａのような）のためのハードウエアサブデザインは、図２Ｂで上述のようにＩＰブロック所有者２００によって設計される。ハードウエアサブデザインは、一実施形態では、ＩＰブロック所有者２００によって最初に作成されたデザインとすることができる。別の実施形態では、ＩＰブロック所有者２００は、ハードウエアサブデザインを有することができるが、このハードウエアサブデザインは、最初に別の企業によって作成されたものである。作業６０２においては、ＩＰブロック内のハードウエアサブデザインを実施するようにＦＰＧＡをプログラムするデータを発生させる。一実施形態では、図３で説明するようなＩＰブロック所有者２００側のライセンス発生器３００を使用して、図２Ａに示すように、ＩＰブロック２１０Ａ〜２１０Ｉの１つ又はそれよりも多くの内部でハードウエアサブデザインを実施するようにＰＦＧＡ２１８をプログラムするデータを発生させることができる。
【００３９】
次に、作業６０３においては、ハードウエアサブデザイン内のライセンス検証サブデザインをＨＤＬ及び／又はＲＴＬレベルで及び可能性として他のレベルでもホストＩＤ情報を用いて暗号化する（例えば、図２Ａで説明するように、ＩＰブロック所有者２００によって提供されたハードウエアサブデザインが、信頼できるホスト識別子２４５を有する特定のＦＰＧＡ上でしか機能しないことを保証するために）。最後に、作業６０４においては、別々に開発された設計者の論理２５０（例えば、図２Ａの設計者の論理２５０のような設計者によって作成されたハードウエアサブデザイン）と共に、図２Ｂで説明したように、ＩＰブロック所有者２００によって提供されたハードウエアサブデザインを信頼できるホスト識別子２４５を有するＦＰＧＡ２１８に実施することになるＦＰＧＡシステムの設計者２１１にハードウエアサブデザイン情報を提供する。
【００４０】
図７は、本発明の一例示的実施形態による信頼できるホスト識別子２４５を設計者２１１から受信した後に行われるＩＰブロック所有者２００側のライセンス発生器３００によるハードウエアサブデザインライセンスコードの発生を示す流れ図である。作業７０１においては、ライセンス発生器３００は、ハードウエアサブデザインの要求を設計者２１１側のコンピュータシステム３１１から受信する（例えば、設計者２１１は、ＩＰブロック所有者２００が所有するハードウエアサブデザインを供給する契約をＩＰブロック所有者２００と締結したと考えられる）。作業７０２においては、ＩＰブロック所有者２００は、信頼できるホスト識別子２４５の要求を設計者２１１に送る（例えば、信頼できるホスト識別子２４５の要求をＩＰブロック所有者２００が送って特定のライセンスに対して設計者２１１にどれだけ請求するかを決めることができる）。作業７０３においては、信頼できるホスト識別子２４５を設計者２１１から受信する（例えば、ＩＰブロック所有者２００が、信頼できるホスト識別子２４５を有するＦＰＧＡ２１８上でのみハードウエアサブデザインを使用するライセンスを発生させることができるように）。
【００４１】
作業７０４においては、信頼できるホスト識別子２４５に基づいて固有のＩＰブロックライセンスコードを発生させる（固有のＩＰブロックライセンスコードをライセンス発生器３００が発生させることができる）。作業７０５においては、ＩＰブロック所有者２００が所有するハードウエアサブデザイン内のライセンス検証サブデザインを暗号化することができる。作業７０６においては、ＩＰブロック所有者２００側のライセンス発生器３００から固有のＩＰブロックライセンスコードとハードウエアサブデザインとを設計者２１１に供給する（例えば、図２Ｂに示すように、例えば、設計者２１１とＩＰブロック所有者２００の間の契約に基づく義務を履行するために）。
【００４２】
図８は、本発明の一例示的実施形態による信頼できるホスト識別子２４５を設計者２１１から受信した後に行われるＩＰブロック所有者２００側のライセンス発生器８００による期限を有する固有のハードウエアサブデザインライセンスの発生を示す流れ図である。図８は、ライセンス発生器８００が、設計者２１１からの要求に基づいてライセンスの期限を更に発生させる点において図７と異なっている（例えば、ＩＰブロック所有者２００が所有する特定のハードウエアサブデザインがどのくらい長く作動することになるかに関する、かつ図５に示すようにクロック回路５２５内に及び／又は外部ハードウエア装置上に記憶される期限）。作業７０１〜７０４は、図７で上述のものと同一である。作業８０１においては、設計者２１１からの要求に基づいてライセンスの期限を発生させる（例えば、期限は、設計者がＩＰブロック所有者２００にいくら支払う意志があるかに基づくものとすることができる）。作業８０２においては、図７で上述の作業７０５と同様に、ＩＰブロック所有者２００が有するハードウエアサブデザイン内のライセンス検証サブデザインを暗号化して修正を防止する。作業８０３においては、期限を有する固有のＩＰブロックライセンス及びハードウエアサブデザインを設計者２１１に供給する。従って、図８は、設計者からの要求に基づく期限付きライセンスを発生させる点において図７と異なっている。更に、図８においては、期限を含む固有のＩＰブロックライセンスを設計者２１１に供給する。
【００４３】
本発明の様々な方法の作業は、機械可読記憶媒体と考えることができるメモリに記憶されたコンピュータプログラムの命令シーケンスを実行するデジタル処理システム内の処理ユニットによって実施することができる。メモリは、ランダムアクセスメモリ、読み出し専用メモリ、大容量記憶装置のような持続性記憶メモリ、又はこれらの装置の組合せとすることができる。命令のシーケンスの実行により、処理ユニットが本発明による作業を実行する。ネットワーク接続を通して、記憶装置又は１つ又はそれよりも多くの他のデジタル処理システム（例えば、サーバコンピュータシステム）からコンピュータのメモリに命令を取り込むことができる。命令は、いくつかの記憶装置（例えば、ＤＲＡＭ、及びバーチャルメモリのようなハードディスク）に同時に記憶することができる。その結果、これらの命令の実行は、処理ユニットで直接に実行することができる。これ以外の場合、命令は、直接に実行することはできず、又は処理ユニットで直接には実行することができない。これらの状況下では、実行は、命令を解釈する解釈ルーチンをプロセッサに実行させることにより、又は受信した命令を、プロセッサが直接に実行することができる命令に変換する命令をプロセッサに実行させることによって行うことができる。他の実施形態では、ソフトウエア命令の代わりに又はソフトウエア命令と組み合わせて、配線接続回路を使用して本発明を実施することができる。従って、本発明は、ハードウエア回路とソフトウエアのいかなる特定の組合せにも又はコンピュータシステム又はデジタルシステムによって実施される命令のいかなる特定のソースにも限定されない。更に、本文書で使用される時の「暗号化」は、設計者によるライセンス交付に関わるサブデザインの部分の修正の防止に使用することができるあらゆる機構を指すものである。ハードウエアサブデザインは、例えば、逆コンパイルが許可されないバイナリデータベースに予めコンパイルすることができる。
【００４４】
本発明を特定の例示的な実施形態を参照して説明したが、特許請求の範囲で示すような本発明の広範な精神及び範囲から逸脱することなく、これらの実施形態に様々な修正及び変更を行うことができることが明らかであろう。従って、本明細書及び図面は、限定的な意味ではなく例示的に考えるものとする。
【図面の簡単な説明】
【００４５】
【図１Ａ】複数のＩＰブロックを有する従来技術のＦＰＧＡを示す図である。
【図１Ｂ】ハードウエアデザイン実施のための設計者とＩＰブロック所有者とＦＰＧＡプロバイダとの間の従来技術のトランザクション流れ図である。
【図２Ａ】本発明の一例示的実施形態による信頼できるホスト識別子と複数のライセンス交付ブロックと各ライセンス交付ブロックに関連した複数のＩＰブロックとを有するＦＰＧＡを示す図である。
【図２Ｂ】本発明の一例示的実施形態により信頼できるホスト識別子とライセンスコードとを用いたハードウエアデザイン実施のための設計者とＩＰブロック所有者と信頼できるホストＩＤプロバイダとの間のトランザクション流れ図である。
【図３】本発明の一例示的実施形態によるデザイン実施のためのコンピュータとライセンス発生器と信頼できるＩＤプロバイダとの間での信頼できるホスト識別子及びライセンスコードの使用のハードウエア図である。
【図４Ａ】本発明の実施形態の実施に使用することができるコンピュータのブロック図である。
【図４Ｂ】本発明の一例示的実施形態により信頼できるホスト識別子を有するＦＰＧＡ内でハードウエアサブデザインを実施するのに使用される設計者側のコンピュータ内の作動を示す流れ図である。
【図４Ｃ】本発明の一例示的実施形態により信頼できるホスト識別子を有する外部ハードウエア装置を使用してＡＳＩＣ内でハードウエアサブデザインを実施するのに使用される設計者側のコンピュータ内の作動を示す流れ図である。
【図５】本発明の一例示的実施形態による信頼できるホスト識別子と、複数のライセンス交付ブロックと、複数のクロックメモリと、各ライセンス交付ブロック及びクロックメモリに関連した複数のＩＰブロックとを有するＦＰＧＡを示す図である。
【図６】本発明の一例示的実施形態による修正を防止するためのＩＰブロック所有者側での信頼できるホスト識別子を有するハードウエアサブデザイン内のライセンス検証サブデザインの暗号化を示す流れ図である。
【図７】本発明の一例示的実施形態により信頼できるホスト識別子を設計者から受信した後のＩＰブロック所有者側のライセンス発生器によるハードウエアサブデザインライセンスコードの発生を示す流れ図である。
【図８】本発明の一例示的実施形態による信頼できるホスト識別子を設計者から受信した後のＩＰブロック所有者側のライセンス発生器による期限を有するハードウエアサブデザインライセンスコードの発生を示す流れ図である。
【符号の説明】
【００４６】
２０５Ａ〜２０５Ｉ  ライセンス交付ブロック
２０８  バス
２１０Ａ〜２１０Ｉ  ＩＰブロック
２１１  設計者
２４５  ホスト識別子
【図１Ａ】
2008516310.tif 000003
【図１Ｂ】
2008516310.tif 000004
【図２Ａ】
2008516310.tif 000005
【図２Ｂ】
2008516310.tif 000006
【図３】
2008516310.tif 000007
【図４Ａ】
2008516310.tif 000008
【図４Ｂ】
2008516310.tif 000009
【図４Ｃ】
2008516310.tif 000010
【図５】
2008516310.tif 000011
【図６】
2008516310.tif 000012
【図７】
2008516310.tif 000013
【図８】
2008516310.tif 000014
【国際調査報告】
2008516310.tif 000015
2008516310.tif 000016