(57)【要約】  目標電子回路またはデバイス内で電子回路設計を認可するシステムおよび方法であって、認可された回路設計の安全な引渡および信頼性の高い課金を使用単位で可能とする。この方法は、電子回路設計が目標電子回路内での使用に認可され得るか否かを、その電子回路設計と関連した所定のベクターの組に含まれる認可情報を確認することによって決定する。電子回路設計が目標電子回路内での使用に認可可能であると判定される場合、ベクターの組が認可コントローラによって目標電子回路に適用される。次いで、所定のイベントに応答して認可情報の属性が更新され、目標回路内の電子回路設計の認可された使用を指示する。この認可システムは、ＩＰコアプロバイダとＩＰコアユーザが、認可された電子回路設計の使用に対し使用単位で高精度に課金することを可能にし、これにより電子回路設計が全ての関係者に対して公正な手法で認可されているという高い保証を与える。
2005516288.tif 000002
【特許請求の範囲】
【請求項１】
目標電子回路内で使用するための電子回路設計を認可する方法であって、この方法は少なくとも１つの認可システムで使用され、各認可システムはそれぞれの目標電子回路に通信可能に結合可能な認可コントローラを含み、前記方法は、
電子回路設計が目標電子回路内での使用に認可できるか否かを、この電子回路設計に関連した第１のデータに含まれる、少なくとも１つの関連した属性を有する第１の認可情報を検証することによって判定するステップと、
前記電子回路設計が目標電子回路内での使用に認可できると判定された場合に、認可コントローラを介して前記第１のデータを前記目標電子回路に適用するステップと、
所定のイベントに応答して、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記少なくとも１つの関連した属性を更新するステップと
を備えることを特徴とする方法。
【請求項２】
前記判定するステップは、第２の認可情報にアクセスし、前記第１の認可情報の少なくとも一部分を前記第２の認可情報の少なくとも一部分と比較し、この比較結果に基づいて、電子回路設計が目標電子回路内での使用に認可できるか否かを判定する請求項１に記載の方法。
【請求項３】
前記適用するステップは、電子回路設計を目標電子回路内でプログラム可能に構成するために、前記第１のデータを前記目標電子回路に適用する請求項１に記載の方法。
【請求項４】
前記目標電子回路に適用される前記第１のデータの署名を生成するステップを更に備える請求項３に記載の方法。
【請求項５】
前記更新するステップは、前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されていると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記少なくとも１つの関連した属性を更新する請求項３に記載の方法。
【請求項６】
前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されたものではないと判定された場合に、前記少なくとも１つの関連した属性を更新しないステップを更に備える請求項５に記載の方法。
【請求項７】
前記適用するステップは、電子回路設計を目標電子回路内でテストするために、前記第１のデータを前記目標電子回路に適用する請求項１に記載の方法。
【請求項８】
前記更新するステップは、前記電子回路設計がテストに合格したと判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記少なくとも１つの関連した属性を更新する請求項７に記載の方法。
【請求項９】
前記電子回路設計がテストに合格していないと判定された場合に、前記少なくとも１つの関連した属性を更新しないステップを更に備える請求項８に記載の方法。
【請求項１０】
前記電子回路設計がテストに合格していると判定された場合に、前記電子回路設計の機能的動作を可能にするために、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するステップを更に備える請求項７に記載の方法。
【請求項１１】
前記電子回路設計の機能的またはテスト動作を可能にするために、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するステップを更に備える請求項１に記載の方法。
【請求項１２】
前記認可システムは、少なくとも１つのネットワークに接続され、そして前記判定するステップは、前記ネットワークを通して前記第１の認可情報の少なくとも一部分にアクセスする請求項１に記載の方法。
【請求項１３】
前記認可システムは、少なくとも１つのネットワークに接続され、そして前記判定するステップは、前記ネットワークを通して前記第１および第２の認可情報の少なくとも一部分にアクセスする請求項２に記載の方法。
【請求項１４】
前記判定するステップと、前記適用するステップと、前記更新するステップは、複数の認可システムによって実行可能であり、各認可システムは、少なくとも１つのネットワークに接続されている請求項１に記載の方法。
【請求項１５】
目標電子回路内で使用するための電子回路設計を認可するシステムであって、
前記電子回路設計に関連し且つ少なくとも１つの関連した属性を有した第１の認可情報を含んだ第１のデータを記憶するように構成された少なくとも１つの第１のストレージと、
前記第１のストレージに記憶された第１のデータにアクセスするように構成され、また前記第１の認可情報を検証することによって、前記電子回路設計が前記目標電子回路内での使用に認可できるか否かを判定するように構成されたコンピュータと、
前記第１のデータを前記コンピュータから前記目標電子回路へ搬送するように構成されたコントローラとを備え、
前記コンピュータは更に、前記電子回路設計が目標電子回路内での使用に認可できると判定された場合に、前記コントローラを介して前記第１のデータを前記目標電子回路に適用するように構成されていることを特徴とするシステム。
【請求項１６】
前記コンピュータは更に、所定のイベントに応答して、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記少なくとも１つの関連した属性を更新するように構成されている請求項１５に記載のシステム。
【請求項１７】
請前記コンピュータは更に、第２の認可情報にアクセスし、前記第１の認可情報の少なくとも一部分を前記第２の認可情報の少なくとも一部分と比較し、この比較結果に基づいて、電子回路設計が目標電子回路内での使用に認可できるか否かを判定するように構成されている請求項１５に記載のシステム。
【請求項１８】
前記第１のストレージは更に、前記第２の認可情報を記憶するように構成されている請求項１７に記載のシステム。
【請求項１９】
前記第２の認可情報を記憶するように構成された第２のストレージを更に備える請求項１７に記載のシステム。
【請求項２０】
前記第２のストレージは前記コントローラに含まれており、そして前記コントローラは更に、前記第２の認可情報を前記第２のストレージから前記コンピュータへ搬送するように構成されている請求項１９に記載のシステム。
【請求項２１】
前記コンピュータは更に、電子回路設計を目標電子回路内でプログラム可能に構成するために、前記第１のデータを前記目標電子回路に適用するように構成されている請求項１５に記載のシステム。
【請求項２２】
前記目標電子回路は、前記第１のデータの署名を生成するように構成されている請求項２１に記載のシステム。
【請求項２３】
前記コンピュータは更に、前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されていると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記少なくとも１つの関連した属性を更新するように構成されている請求項２１に記載のシステム。
【請求項２４】
前記コンピュータは更に、前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されたものではないと判定された場合に、前記少なくとも１つの関連した属性を更新しないように構成されている請求項２３に記載のシステム。
【請求項２５】
前記コンピュータは更に、電子回路設計を目標電子回路内でテストするために、前記第１のデータを前記目標電子回路に適用するように構成されている請求項１５に記載のシステム。
【請求項２６】
前記コンピュータは更に、前記電子回路設計がテストに合格していると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記少なくとも１つの関連した属性を更新するように構成されている請求項２５に記載のシステム。
【請求項２７】
前記コンピュータは更に、前記電子回路設計がテストに合格していないと判定された場合に、前記少なくとも１つの関連した属性を更新しないように構成されている請求項２６に記載のシステム。
【請求項２８】
前記コンピュータは更に、前記電子回路設計がテストに合格していると判定された場合に、前記電子回路設計の機能的動作を可能にするために、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するように構成されている請求項２５に記載のシステム。
【請求項２９】
前記コンピュータは更に、前記電子回路設計の機能的またはテスト動作を可能にするために、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するように構成されている請求項１５に記載のシステム。
【請求項３０】
少なくとも１つのネットワークを更に備え、前記第１のストレージおよび前記コンピュータは、前記ネットワークに通信可能に接続され、前記コンピュータは更に、前記ネットワークを通して前記第１の認可情報の少なくとも一部分にアクセスするように構成されている請求項１５に記載のシステム。
【請求項３１】
少なくとも１つのネットワークを更に備え、前記第１のストレージ、前記第２のストレージおよび前記コンピュータは、前記ネットワークに通信可能に接続され、前記コンピュータは更に、前記ネットワークを通して前記第１および第２の認可情報の少なくとも一部分にアクセスするように構成されている請求項１９に記載のシステム。
【請求項３２】
目標電子回路内で使用するための電子回路設計を認可する方法であって、この方法は認可システムで使用され、この認可システムは、コンピュータと、このコンピュータと前記目標電子回路との間でデータを搬送するためのコントローラとを含み、前記方法は、
前記電子回路設計に関連し且つ少なくとも１つの関連した属性を有する第１の認可情報を含んだ第１のデータを、前記コンピュータによって、アクセスするステップと、
電子回路設計が目標電子回路内での使用に認可できるか否かを判定するために、前記コンピュータによって、前記第１の認可情報を検証するステップと、
前記電子回路設計が目標電子回路内での使用に認可できると判定された場合に、前記コンピュータによって、認可コントローラを介して前記第１のデータを前記目標電子回路に適用するステップと
を備えることを特徴とする方法。
【請求項３３】
前記第１のデータを少なくとも１つの第１のストレージに記憶するステップを更に備える請求項３２に記載の方法。
【請求項３４】
前記第１のデータを少なくとも１つの第１のストレージに記憶するステップを更に備え、前記第１のストレージは前記認可システムに含まれる請求項３３に記載の方法。
【請求項３５】
所定のイベントに応答して、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記コンピュータによって、前記少なくとも１つの関連した属性を更新するステップを更に備える請求項３２に記載の方法。
【請求項３６】
前記検証するステップは、前記コンピュータによって、第２の認可情報にアクセスし、前記第１の認可情報の少なくとも一部分を前記第２の認可情報の少なくとも一部分と比較し、この比較結果に基づいて、電子回路設計が目標電子回路内での使用に認可できるか否かを判定する請求項３２に記載の方法。
【請求項３７】
前記第２の認可情報を前記少なくとも１つの第１のストレージに記憶するステップを更に備える請求項３６に記載の方法。
【請求項３８】
前記第２の認可情報を前記少なくとも１つの第２のストレージに記憶するステップを更に備える請求項３６に記載の方法。
【請求項３９】
前記第２の認可情報を、前記コントローラによって、前記第２のストレージから前記コンピュータへ搬送するステップを更に備え、前記第２のストレージは前記コントローラに含まれる請求項３８に記載の方法。
【請求項４０】
前記適用するステップは、電子回路設計を目標電子回路内でプログラム可能に構成するために、前記第１のデータを前記目標電子回路に適用する請求項３２に記載の方法。
【請求項４１】
前記目標電子回路によって、前記第１のデータの署名を生成するステップを更に備える請求項４０に記載の方法。
【請求項４２】
前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されていると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記コンピュータによって、前記少なくとも１つの関連した属性を更新するステップを更に備える請求項４０に記載の方法。
【請求項４３】
前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されたものではないと判定された場合に、前記少なくとも１つの関連した属性を更新しないステップを更に備える請求項４２に記載の方法。
【請求項４４】
前記適用するステップは、電子回路設計を目標電子回路内でテストするために、前記第１のデータを前記目標電子回路に適用する請求項３２に記載の方法。
【請求項４５】
前記電子回路設計がテストに合格していると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記コンピュータによって、前記少なくとも１つの関連した属性を更新するステップを更に備える請求項４４に記載の方法。
【請求項４６】
前記電子回路設計がテストに合格していないと判定された場合に、前記少なくとも１つの関連した属性を更新しないステップを更に備える請求項４５に記載の方法。
【請求項４７】
前記電子回路設計がテストに合格していると判定された場合に、前記電子回路設計の機能的動作を可能にするために、前記コンピュータによって、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するステップを更に備える請求項４４に記載の方法。
【請求項４８】
前記電子回路設計の機能的またはテスト動作を可能にするために、前記コンピュータによって、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するステップを更に備える請求項３２に記載の方法。
【請求項４９】
前記コンピュータによって、少なくとも１つのネットワークを通して前記第１の認可情報の少なくとも一部分にアクセスするステップを更に備え、前記第１のストレージおよび前記コンピュータは、前記ネットワークに通信可能に接続されている請求項３２に記載の方法。
【請求項５０】
前記コンピュータによって、少なくとも１つのネットワークを通して前記第１および第２の認可情報の少なくとも一部分にアクセスするステップを更に備え、前記第１のストレージ、前記第２のストレージおよび前記コンピュータは、前記ネットワークに通信可能に接続されている請求項３８に記載の方法。
【請求項５１】
目標電子回路内で使用するための電子回路設計を認可するシステムであって、
少なくとも１つのネットワークと、
前記電子回路設計に関連し且つ少なくとも１つの関連した属性を有した第１の認可情報を含んだ第１のデータを記憶するように構成され、且つ前記ネットワークに通信可能に接続された少なくとも１つの第１のストレージと、
前記ネットワークに通信可能に接続された少なくとも１つの認可サブシステムとを備え、前記認可サブシステムは、
前記第１のストレージに記憶された第１のデータに前記ネットワークを通してアクセスするように構成され、また前記第１の認可情報を検証することによって、前記電子回路設計が少なくとも１つの目標電子回路内での使用に認可できるか否かを判定するように構成されたコンピュータと、
前記第１のデータを前記コンピュータから前記目標電子回路へ搬送するように構成されたコントローラとを含み、
前記コンピュータは更に、前記電子回路設計が目標電子回路内での使用に認可できると判定された場合に、前記コントローラを介して前記第１のデータを前記目標電子回路に適用するように構成されていることを特徴とするシステム。
【請求項５２】
前記コンピュータは更に、所定のイベントに応答して、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記ネットワークを通して前記少なくとも１つの関連した属性を更新するように構成されている請求項５１に記載のシステム。
【請求項５３】
請前記コンピュータは更に、前記ネットワークを通して第２の認可情報にアクセスし、前記第１の認可情報の少なくとも一部分を前記第２の認可情報の少なくとも一部分と比較し、この比較結果に基づいて、電子回路設計が目標電子回路内で使用するために認可できるか否かを判定するように構成されている請求項５１に記載のシステム。
【請求項５４】
前記第１のストレージは更に、前記第２の認可情報を記憶するように構成されている請求項５３に記載のシステム。
【請求項５５】
前記第２の認可情報を記憶するように構成された第２のストレージを更に備え、この第２のストレージは前記ネットワークに通信可能に接続されいる請求項５３に記載のシステム。
【請求項５６】
前記第２のストレージは前記コントローラに含まれており、そして前記コントローラは更に、前記第２の認可情報を前記第２のストレージから前記コンピュータへ搬送するように構成されている請求項５５に記載のシステム。
【請求項５７】
前記コンピュータは更に、電子回路設計を目標電子回路内でプログラム可能に構成するために、前記第１のデータを前記目標電子回路に適用するように構成されている請求項５１に記載のシステム。
【請求項５８】
前記目標電子回路は、前記第１のデータの署名を生成するように構成されている請求項５７に記載のシステム。
【請求項５９】
前記コンピュータは更に、前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されていると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記ネットワークを通して前記少なくとも１つの関連した属性を更新するように構成されている請求項５７に記載のシステム。
【請求項６０】
前記コンピュータは更に、前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されたものではないと判定された場合に、前記少なくとも１つの関連した属性を更新しないように構成されている請求項５９に記載のシステム。
【請求項６１】
前記コンピュータは更に、電子回路設計を目標電子回路内でテストするために、前記第１のデータを前記目標電子回路に適用するように構成されている請求項５１に記載のシステム。
【請求項６２】
前記コンピュータは更に、前記電子回路設計がテストに合格していると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記ネットワークを通して前記少なくとも１つの関連した属性を更新するように構成されている請求項６１に記載のシステム。
【請求項６３】
前記コンピュータは更に、前記電子回路設計がテストに合格していないと判定された場合に、前記少なくとも１つの関連した属性を更新しないように構成されている請求項６２に記載のシステム。
【請求項６４】
前記コンピュータは更に、前記電子回路設計がテストに合格していると判定された場合に、前記電子回路設計の機能的動作を可能にするために、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するように構成されている請求項６１に記載のシステム。
【請求項６５】
前記コンピュータは更に、前記電子回路設計の機能的またはテスト動作を可能にするために、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するように構成されている請求項５１に記載のシステム。
【請求項６６】
目標電子回路内で使用するための電子回路設計を認可する方法であって、
少なくとも１つの関連した属性を有する第１の認可情報を含んで少なくとも１つの第１のストレージに記憶された第１のデータを、少なくとも１つのネットワークを通して、少なくとも１つの認可サブシステムによってアクセスするために、前記認可サブシステムはコンピュータとコントローラを含み、前記第１のストレージと認可サブシステムは前記ネットワークに通信可能に接続されているステップと、
電子回路設計が少なくとも１つの目標電子回路内での使用に認可できるか否かを、前記コンピュータによって、前記第１の認可情報を検証することにより判定するステップと、
前記電子回路設計が目標電子回路内で使用するために認可できると判定された場合に、前記コンピュータによって、認可コントローラを介して前記第１のデータを前記目標電子回路に適用するステップと
を備えることを特徴とする方法。
【請求項６７】
所定のイベントに応答して、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記コンピュータによって、前記ネットワークを通して前記少なくとも１つの関連した属性を更新するステップを更に備える請求項６６に記載の方法。
【請求項６８】
前記判定するステップは、前記ネットワークを通して第２の認可情報にアクセスし、前記第１の認可情報の少なくとも一部分を前記第２の認可情報の対応する部分と比較し、この比較結果に基づいて、電子回路設計が目標電子回路内で使用するために認可できるか否かを判定する請求項６６に記載の方法。
【請求項６９】
前記第２の認可情報を前記第１のストレージに記憶するステップを更に備える請求項６８に記載の方法。
【請求項７０】
前記第２の認可情報を少なくとも１つの第２のストレージに記憶するステップを更に備え、前記第２のストレージは前記ネットワークに通信可能に接続されている請求項６８に記載の方法。
【請求項７１】
前記第２の認可情報を前記第２のストレージから前記コンピュータへ搬送するステップを更に備え、前記第２のストレージは前記コントローラに含まれる請求項７０に記載の方法。
【請求項７２】
前記適用するステップは、電子回路設計を目標電子回路内でプログラム可能に構成するために、前記第１のデータを前記目標電子回路に適用する請求項６６に記載の方法。
【請求項７３】
前記目標電子回路によって、前記第１のデータの署名を生成するステップを更に備える請求項７２に記載の方法。
【請求項７４】
前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されていると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記コンピュータによって、前記ネットワークを通して前記少なくとも１つの関連した属性を更新するステップを更に備える請求項７２に記載の方法。
【請求項７５】
前記電子回路設計が目標電子回路内で最初にプログラム可能に構成されたものではないと判定された場合に、前記少なくとも１つの関連した属性を更新しないステップを更に備える請求項７４に記載の方法。
【請求項７６】
前記適用するステップは、電子回路設計を目標電子回路内でテストするために、前記第１のデータを前記目標電子回路に適用する請求項６６に記載の方法。
【請求項７７】
前記電子回路設計がテストに合格していると判定された場合に、前記目標電子回路内での前記電子回路設計の認可された使用を示すために、前記コンピュータによって、前記ネットワークを通して前記少なくとも１つの関連した属性を更新するステップを更に備える請求項７６に記載の方法。
【請求項７８】
前記電子回路設計がテストに合格していないと判定された場合に、前記少なくとも１つの関連した属性を更新しないステップを更に備える請求項７７に記載の方法。
【請求項７９】
前記電子回路設計がテストに合格していると判定された場合に、前記電子回路設計の機能的動作を可能にするために、前記コンピュータによって、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するステップを更に備える請求項７６に記載の方法。
【請求項８０】
前記電子回路設計の機能的またはテスト動作を可能にするために、前記コンピュータによって、前記電子回路設計に関連した第２のデータを、認可コントローラを介して前記目標電子回路に適用するステップを更に備える請求項６６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
この出願は、「電子回路の知的財産権の認可された引渡および課金をするための管理システム、方法および装置」なる名称で２００２年１月２３日に出願された米国仮特許出願第６０／３５０，８８５号の優先権を主張する。
【０００２】
［連邦補助研究または開発に関する表明］
適用なし
【背景技術】
【０００３】
本発明は、一般に目標電子回路内にプログラム可能に構成または設計された電子回路設計の認可に関し、特に目標電子回路内で使用するために認可された電子回路設計の引渡に対して安全な認可および信頼性の高い課金をするシステムおよび方法に関する。
【０００４】
近年、集積回路（ＩＣ）のサイズおよび複雑性が増すにつれて、多くの回路設計者は、既存の所有権を主張できる回路を使用してＩＣを設計することがもはや実用的ではないことを見出している。この結果、回路設計者は、電子製品に対して増大する要望を満たしながら、半導体技術の進歩の有利さを享受できるＩＣ設計への代わりのアプローチを採用した。
【０００５】
回路設計者によって採用された１つのそのようなアプローチは、「設計再使用」として知られている。この場合、１以上の既存ＩＣ設計や第三者プロバイダからの機能回路ブロックが再使用されて、新しいＩＣ設計がなされる。このアプローチによって、回路設計者は、新しい半導体技術の利点を享受し、且つ増大した生産性を維持することが可能になる。これは、彼らがＩＣ内の回路の全てを設計する必要がないからである。設計再使用は、製品の小型化およびコスト削減を達成することに、またそれまでは独立した複数のチップ内で実施されていた複数の機能を有する１つの新製品が単一のＩＣ内へ集積化されることを可能にすること、および／または既存の機能と新たに設計された能力とを組み合わせた新製品を作ることに使用できる。
【０００６】
更に、設計再使用は、半導体技術および電子設計自動化（ＥＤＡ）ツールの進歩と共に、システム・オン・チップ（ＳｏＣ）の設計を可能にしている。この場合、システム全体が単一のＩＣパッケージ内に適合するように設計および構成され得る。このようなＳｏＣ設計は典型的に、高レベルの機能回路ブロックを使用する。これらのブロックは、一般に回路設計者や第三者プロバイダの知的財産権（ＩＰ）を備えるため、たびたび「ＩＰコア」と呼ばれる。ＩＰコアを使用するＳｏＣ設計のアプローチは、回路設計者が製品開発サイクルを加速することを可能にする。例えば、回路設計者（「ＩＰユーザ」）が第三者プロバイダから１以上のＩＰコアを得ることがあると、コア回路自身を設計する必要性を未然に回避し、またコア回路の高レベルの集積化を設計開発プロセスで行うことができる。
【０００７】
ＩＰプロバイダがＩＰユーザに対しＩＰコアを提供する場合、ＩＰプロバイダは、典型的にはＩＰユーザに対しＩＣやシステムの開発に回路設計を使用することを認可する。ＩＰコアは、「プロジェクト単位」または「使用単位」の２通りの一方で認可される。プロジェクト単位で認可される場合、その認可は一般に、特別なＩＣ、製品またはＩＣや製品のファミリー内での使用に対してＩＰユーザに許可され、そして一律料金がプロジェクトの期間に対して課せられる。使用単位で認可される場合、料金やロイヤリティは、しばしば設計される製品とは関係なくＩＰコアの各個別使用に対して課せられたり、あるいはプロジェクトの期間に対して課せられる。
【０００８】
使用単位の認可は一般に、ＩＰプロバイダおよびＩＰユーザの双方にとって、プロジェクト単位の認可よりも公正かつ予測可能であると見られている。例えば、プロジェクト単位の認可に必要な一律料金は通常、ＩＰコアの期待される使用をプロジェクト期間にわたってカバーするには比較的高い。更には、ＩＰプロバイダとＩＰユーザは通常、期待される製品量と期待される製造期間とを見積もらなければならない。製品が見積もられた製品量に達しない場合、ＩＰユーザは典型的に、ＩＰコアの各使用に対してより多くを支払う。この代わりに、期待される製品量が超過される場合、ＩＰプロバイダは典型的に、より低い料金やロイヤリティで各ＩＰコアを認可する。この結果、ＩＰユーザによって支払われる料金と、ＩＰプロバイダによって受け取られるロイヤリティは、これらの当事者が最初に契約したものとは有意に異なってしまうことがある。
【０００９】
これに対し、ＩＰコアが使用単位で認可される場合、ＩＰプロバイダとＩＰユーザは一般に、最初の見積もりからかなり変化する可能性のある期待される製品量および／または期待される製造期間に頼る必要がない。さらに、使用単位の認可は、ＩＰユーザがＩＰコアの認可コストを製品の製造期間にわたらせることを可能にする。しかしながら、使用単位の認可が一般にプロジェクト単位の認可よりも公正かつ予測可能であるとしても、使用単位の認可は典型的にＩＰプロバイダに対し実際のＩＰコア使用、即ちＩＣの製造に使用されたＩＰコアの数に課金する信頼性の高い方法を与えない。例えば、ＩＰプロバイダは、ＩＰユーザが種々の製品で使用されたＩＰコアの数に正確に課金することを信頼しなければならない。
【００１０】
ソフトウエアのアプリケーションの実行を使用単位で監視するために今日利用可能なソフトウエアの認可システムはあるが、目標電子回路およびデバイス内で認可された回路設計の安全な引渡および信頼性の高い課金を管理するためのシステムおよび方法に対する必要性が残る。
【００１１】
［発明の簡単な要約］
本発明に従って、目標電子回路またはデバイス内で使用される電子回路設計を認可するシステムおよび方法が提供される。この認可システムは、認可された回路設計の安全な引渡および信頼性の高い課金を使用単位で可能とする。
【００１２】
一実施形態では、電子回路設計を認可する方法は、電子回路設計が目標電子回路内での使用に認可され得るか否かを、その電子回路設計と関連したデータに含まれる認可情報を確認することによって決定する。この認可情報は、少なくとも１つの属性を有する。電子回路設計が目標電子回路内での使用に認可可能であると判定される場合、１組のベクターのような回路設計に関連したデータが認可コントローラによって目標電子回路に適用される。次いで、所定のイベントに応答して認可情報の属性は更新され、目標回路内の電子回路設計の認可された使用を指示する。例えば、１組のテストベクターが認可コントローラによって目標回路に適用される。電子回路設計がテストベクターに関連した１以上のテストに合格したと判定される場合、認可情報の属性は更新される。この代わりに、プログラム可能な構成データが認可コントローラによって目標回路に適用される。この場合、目標回路内で初めて電子回路設計がプログラム可能に構成されていると判定される場合、認可情報の属性は更新される。
【００１３】
もう１つの実施形態では、認可システムは、コンピュータ化されたデバイス、例えば少なくとも１つの電子回路設計に関連したデータを記憶するように構成された第１のストレージを含んだコンピュータを備える。この場合、記憶されたデータは、少なくとも１つの属性を有する第１の所定の情報を含んでいる。このシステムは更に、コンピュータに結合され且つ目標電子回路に結合可能な認可コントローラを含んでいる。認可コントローラは、コンピュータと目標回路との間でデータを搬送するように構成されている。認可コントローラは、電子回路設計に関連した第２の所定の情報を記憶するための第２のストレージを含んでいる。この場合、第２の所定の情報もまた、少なくとも１つの属性を有する。第１及び第２の所定の情報の属性のそれぞれは、それぞれの認可コントローラ用の識別子を含むことがある。
【００１４】
この実施形態では、コンピュータは、認可コントローラのストレージからの第２の所定の情報の属性にアクセスし、第１及び第２の所定の情報のそれぞれの認可コントローラ用の識別子を比較し、そしてそれぞれの認可コントローラ用の識別子が一致する場合には、電子回路設計に関連したデータを認可コントローラを介して目標回路に適用するように構成されている。例えば、適用されたデータは、１組のテストベクターやプログラム可能な構成データを含む。この場合、認可システムは、テストベクターや構成データの適用を管理および監視することによって、目標回路内の電子回路設計の使用に対して課金する。
【００１５】
ここで開示される認可システムは、ＩＰコアプロバイダとＩＰコアユーザが、認可された電子回路設計の目標電子回路内での使用に対し使用単位で高精度に課金することを可能にし、これにより電子回路設計が全ての関係者に対して公正な手法で認可されているという高い保証を与える。
【００１６】
この発明の他の特徴、機能および形態は、後続する発明の詳細な説明から明らかとなる。
【００１７】
この発明は、図面に関連した以下の発明の詳細な説明を参照することによって、より完全に理解される。
【００１８】
［発明の詳細な説明］
２００２年１月２３日に出願された米国仮特許出願第６０／３５０，８８５号は、参照によりここに組み入れられる。
【００１９】
図１は、本発明に係る知的財産権認可（ＩＰＬ）システム１００の例証用実施形態を図示している。この例証用実施形態では、認可システム１００は、コンピュータ１０２と、このコンピュータ１０２に接続された認可コントローラ１０４とを含んでいる。例えば、コンピュータ１０２は、汎用コンピュータ（例えば、ＰＣまたはラップトップ）であって、少なくとも１つのプロセッサと、少なくとも１つのメモリ、例えば読み出し専用メモリ（ＲＯＭ）やランダムアクセスメモＲＹ（ＲＡＭ）と、少なくとも１つのデータストレージ、例えばディスクとを含んでいる。認可コントローラ１０４は、第１のバス（“Ｐバス”）１０７を介してコントローラ１０４がコンピュータ１０２と通信可能となるように構成された回路（図示せず）を含んでいる。更に認可コントローラ１０４は、プログラム可能な構成および／またはテストの目的のために、第２のバス１０８を介して目標電子回路１０６にアクセスするように構成されている。例えば、第２のバス１０８は、認可コントローラ１０４が既知のテストアクセスポート（ＴＡＰ）プロトコルを使用して目標回路１０６にアクセスできるように構成されたＩＥＥＥ１１４９．１バスである。目標回路１０６は、好適なプログラム可能回路、例えばプログラム可能読み出し専用メモリ（ＰＲＯＭ）、フラッシュメモリ、フィールドプログラム可能ゲートアレイ（ＦＲＧＡ）、あるいは複合プログラム可能ロジックデバイス（ＣＰＬＤ）である。この代わりに、目標回路１０６は、好適な非プログラム可能回路、例えば応用特定ＩＣ（ＡＳＩＣ）またはランダムアクセスメモリ（ＲＡＭ）である。認可コントローラ１０４が目標回路１０６にアクセスして、認可された電子回路設計を、目標回路内において設計階層構造の選択されたレベルで、プログラム可能に構成またはテストすることがある点に留意されたい。例えば、認可コントローラ１０４は、認可された電子回路設計を、目標回路内で埋込型コアまたは埋込型メモリとしてアクセスすることがある。この目標回路は、印刷回路基板（ＰＣＢ）のシステム内でパッケージ化されたＩＣまたはＦＰＧＡとして構成されることがある。
【００２０】
ここで開示されている実施形態では、認可コントローラ１０４は、ＩＥＥＥ１１４９．１および１５３２規格に従って、目標回路１０６をテストすること、および／または回路１０６のインシステム構成（ＩＳＣ）を行うことに使用される。これらの規格は、ＩＥＥＥ１１４９．１規格テストアクセスポートおよび境界スキャンアーキテクチャ仕様、並びにプログラム可能デバイスのインシステム構成用ＩＥＥＥ１５３２規格にそれぞれ記載されている。これらは、参照によってここに組み入れられる。しかしながら、ここで理解されるべき点は、テスト、スキャン、およびＩＳＣアクセスの代替の技法およびプロトコルもまた使用できるということである。さらに、コンピュータ１０２および／または認可コントローラ１０４は、自動テスト装置（ＡＴＥ）や他の好ましいテスト／プログラミング資源を備えることもできる。
【００２１】
認可システム１００は、コンピュータ１０２のメモリ内にインストールされた認可設備と、認可コントローラ１０４に含まれた不揮発性データストレージとを含んで、目標回路１０６内での認可された回路設計（例えば、埋込型コアおよびメモリ）の使用に対して認可および課金を行う。ここで理解されるべき点は、ここで使用されている「認可」という用語は、コア電子回路設計の各個別使用に対する収入を得る好適な方法、例えば各コア回路設計に対する使用単位の収入を得る好適な方法を指すということである。
【００２２】
図１は、例示的な認可特徴ファイル１１０（図１参照）の拡大図を示している。図１に示されるように、認可特徴ファイル１１０は、コンピュータ１０２のメモリに記憶されたテキストファイルを備える。このテキストファイルは、目標回路１０６に対して引き渡されるコア回路設計に関連した認可データを含んでいる。図１に示されるように、認可特徴ファイル１１０は、認可されている特別な回路設計の特徴または属性を含んでいる。例えば、これらの属性は、認可「発行(Issue)」番号、「製品(Product)」コード、「バージョン(Version)」コード、追加／削除される「認可(Licenses)」の数、認可「満了(Expiration)」コード、「ベンダー(Vendor)」コード、「顧客(Customer)」コード、および認可コントローラのシリアル番号”IPLC_SN”、即ち認可コントローラ１０４のシリアル番号を含む。加えて、認可特徴ファイル１１０の属性の各組は、「キー(Key)」を含んでいる。このキーは、認可されている回路設計に対する属性情報を考慮する暗号化アルゴリズムを使用して生成される。暗号化されたキーと、認可コントローラ１０４の不揮発性データストレージ内に保持されている認可データとを使用して、認可特徴ファイル１１０内の情報を確認することによって、認可システム１００は、目標回路１０６に対するコア回路設計の安全な引渡が可能になる。
【００２３】
認可システム
ここに開示された実施形態では、認可システム１００（図１参照）は、認可された回路設計の目標回路１０６内での使用を、回路１０６に適用または引渡されたプログラミングデータやテストデータ（例えば、ベクター）に基づいて、追跡するように構成されている。認可システム１００は、知的財産権（ＩＰ）コアベンダーまたはプロバイダ（「ＩＰプロバイダ」）とＩＰコア顧客またはユーザ（「ＩＰユーザ」）との間で実施および強制されるべき安全な使用単位の認可および課金を可能とする。
【００２４】
図６は、認可コントローラ１０４を含んだ認可システム１００を使用するＩＰプロバイダおよびＩＰユーザ用の実例電子回路設計認可環境６００を図示している（図１も参照）。コンピュータ１０２上にインストールされた上述の認可設備の動作によって、ＩＰプロバイダは、特別な電子回路設計に関連したデータＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎを、認可されたベクターとして、ＩＰユーザに引渡すことが可能になる。例えば、データＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎは、目標回路１０６内で電子回路設計をプログラム可能に構成したり、テストするに好適である。認可設備は更に、ベンダー（ＩＰプロバイダ）コード、顧客（ＩＰユーザ）コード、および／または製品コード（例えば、ＩＰタイプ）によってデータＩＰ１−ＩＰｎ即ち６０２．１−６０２．ｎにタグ付けするように動作する。これらのコードは、認可特徴ファイル１１０（図１参照）内の暗号化された属性のようなキーを用いてベクターファイル内で暗号化され、認可システムの不要な崩壊を防止している。ＩＰユーザは、認可されたベクター６０４を、認可コントローラ１０４を介して目標回路１０６に直接適用することができる。この代わりに、ＩＰユーザは、認可されたベクター６０４を他のベクター（例えば、非認可のユーザベクター）と組み合わせて、目標回路１０６用に組み合わされた認可／非認可ベクター６０６の組を形成し、そのベクター６０６の組を、認可コントローラ１０４を介して目標回路１０６に適用することができる。
【００２５】
この結果、認可環境６００は、目標回路１０６内での電子回路設計の認可された使用が、ベクター６０４および６０６の適用中に高い信頼性で課金され、これにより認可された回路設計の信頼性の高い課金が、使用単位、アプリケーション単位、またはインスタンス単位で可能になる。更には、認可環境６００は認可されたテストベクター応用を準備しているので、ＩＰユーザは一般に、テストに失敗した回路設計（例えば、製造欠陥を含んだ不完全な回路設計）に対して支払う必要がない。従って、テストベクター応用中に目標回路が失敗したときは、認可は消耗されない。そして、ＩＰユーザは、ダイ上またはＩＣ内の良好な認可された回路設計に対してのみ支払う。認可環境６００はまた、ＩＰユーザが認可、例えば認可６０８を追加または削除したり、認可６０８を１つの認可コントローラからもう１つの認可コントローラへ移動することを、認可サーバ／マネージャ６１０を介してＩＰプロバイダに要求する好ましいリクエストを作ることによって、可能にする。それ故、ＩＰユーザは、必要とする認可された回路設計が何であれ、それに対して任意数の使用単位の認可を得ることができる。ＩＰユーザは、ビジネス条件によって要求および／または指図されるように、これらの認可を得て、実際に使用された電子回路設計の数およびタイプに基づいて認可料金か課せられる。
【００２６】
認可コントローラ
図２は、認可システム１００に含まれる認可コントローラ１０４（図１参照）の例証用実施形態を図示している。この例証用実施形態では、認可コントローラ１０４は、不揮発性データストレージ２０２（例えば、シリアルＰＲＯＭ）と、ＰＲＯＭコントロール回路２０４と、Ｉ／Ｏインターフェース２０６と、ＩＥＥＥ１１４９．１バスコントロール回路２０８とを含んでいる。Ｉ／Ｏインターフェース２０６は、Ｐバス１０７に結合されている。このＰバスは、クロック信号（ＰＣＬＫ）を搬送するためのラインと、それぞれのＰＤＡＴＡ＿ＩＮおよびＰＤＡＴＡ＿ＯＵＴデータバスとを含んでいる。シリアルＰＲＯＭ２０２、ＰＲＯＭコントロール２０４、Ｉ／Ｏインターフェース２０６、およびＩＥＥＥ１１４９．１バスコントロール２０８の記述は、後続のセクションで与えられる。
【００２７】
Ｉ／Ｏインターフェース
ここで開示されている実施形態では、Ｉ／Ｏインターフェース２０６（図２参照）は、コンピュータ１０２（図１参照）および認可コントローラ１０４が同期式高速パラレルデータバスを備えたＰバス１０７を介して互いに通信することを可能にするように構成された回路を含んでいる。Ｐバス１０７上のＰＣＬＫ信号は、コンピュータ１０２から認可コントローラ１０４への入力データＰＤＡＴＡ＿ＩＮの転送を同期させること、並びにコントローラ１０４からコンピュータ１０２への出力データＰＤＡＴＡ＿ＯＵＴの転送を同期させることに使用される。従って、Ｉ／Ｏインターフェース２０６は、ＰＲＯＭコントロール２０４とＩＥＥＥ１１４９．１バスコントロール２０８との間のデータ転送を管理するように構成されている。
【００２８】
ＩＥＥＥ１１４９．１バスコントロール
ＩＥＥＥ１１４９．１バスコントロール２０８（図２参照）は、Ｉ／Ｏインターフェース２０６からパラレルデータおよび制御信号を受信すること、並びにこれらの信号をシリアルＩＥＥＥ１１４９．１プロトコルに変換して、ＩＥＥＥ１１４９．１バス１０８を通して目標回路１０６（図１参照）へ出力するように構成された回路を含んでいる。ＩＥＥＥ１１４９．１バスコントロール２０８の回路は更に、結果のシリアルデータを目標回路１０６からＩＥＥＥ１１４９．１バス１０８を通して受信すること、並びにこのシリアルデータをパラレルデータに変換してからＩ／Ｏインターフェース２０６へ送信するように構成されている。
【００２９】
ＰＲＯＭコントロール
ＰＲＯＭコントロール２０４（図２参照）は、Ｉ／Ｏインターフェース２０６からパラレルデータおよび制御信号を受信すること、並びにそのデータおよび制御信号を好適な２線式シリアルプロトコルに変換して、ＳＣＬＫ（シリアルクロック）ラインを使用したＳＤＡ（シリアルデータ／アドレス）バスを通してシリアルＰＲＯＭ２０２へ送信するように構成されている。ＰＲＯＭコントロール２０４は更に、ＳＤＡを通してシリアルＰＲＯＭ２０２から戻されるシリアルデータを受信すること、並びにこのシリアルデータをパラレルに変換してＩ／Ｏインターフェース２０６へ送信するように構成されている。
【００３０】
シリアルＰＲＯＭ
好ましい実施形態では、シリアルＰＲＯＭ２０２（図２参照）は、コア電子回路設計を認可するためにデータを記憶するように構成された不揮発性メモリを備えている。例えば、シリアルＰＲＯＭ２０２は、シリアルな電気的消去書込み可能読み出し専用メモリ（ＳＥＥＰＲＯＭ）または他の好適な形態の不揮発性リード／ライトメモリを備えることもできる。シリアルＰＲＯＭ２０２は、上述した２線式シリアルプロトコルを使用して、ＰＲＯＭコントロール２０４に対するインターフェースをとる。具体的には、シリアルＰＲＯＭ２０２は、シリアルクロック信号ＳＣＬＫを受信する。この信号は、ＰＲＯＭコントロール２０４との間で、双方向データ／アドレスバスＳＤＡ上でのデータおよびアドレス転送の同期をとることに使用される。例えば、シリアルＰＲＯＭ２０２は、４０９６通りのアドレス可能メモリ位置を含むこと、並びにバイト幅のデータを与えるように構成することができる。
【００３１】
しかしながら、ここで理解されるべき点は、認可コントローラ１０４が他の好ましいタイプのデータストレージを使用してもよいこと、そして他の好ましい通信プロトコルを使用するように構成され得るということである。例えば、認可コントローラ１０４は、パラレルフラッシュメモリや、ＩＥＥＥ１１４９．１プロトコルを使用するシリアルＰＲＯＭを使用することができる。さらに、認可コントローラ１０４は、認可システム１００から分離されて実施されるデータストレージを使用することができる。例えば、図３はネットワークベースの認可マネージャ構成３００の例証用実施形態を図示している。この構成は、ネットワーク３０８と、コンピュータ３０６と、ネットワーク３０８に接続された認可システム３２０〜３２１とを含んでいる。この例証用実施形態では、認可システム３２０〜３２１の各々は、認可システム１００（図１参照）と同様であるが、認可された回路設計に関連したデータが、認可コントローラ３２４および／または３２５に記憶されることに代わって（あるいは加えて）、コンピュータ３０６に含まれたデータストレージ３１２、例えばディスクに記憶されている点が異なる。このようにして、認可システム３２０〜３２１は、システム３２０〜３２１から分離されて記憶された認可された回路設計データに、例えばネットワーク３０８を通して認可システム３２０〜３２１からアクセス可能にディスク３１２に記憶された認可データに、アクセスするように構成できる。ここで理解される点は、この構成では、コンピュータ３０６に含まれたデータストレージ３１２が、認可コントローラ３２４〜３２５に含まれた不揮発性ストレージとほぼ同じ機能を果たすということである。
【００３２】
認可マネージャ
上述したように、図３はネットワークベースの認可マネージャ構成３００を図示している。この例証用実施形態では、ネットワークベースの認可マネージャ３００は、ネットワーク３０８と、認可システム３２０〜３２１と、ネットワーク３０８に接続されたコンピュータ３０２，３０４および３０６とを含んでいる。例えば、ネットワーク３０８は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、または他の好ましいネットワークを備えることができる。また、コンピュータ３０２，３０４および３０６は、好ましい汎用コンピュータを備えることができる。
【００３３】
図３のネットワークベースの認可マネージャ３００は、以下の例証例を参照することによって、よりよく理解される。この例は、例証用認可特徴ファイル３１０を使用する（図３のファイル３１０の拡大図を参照）。このファイルは、コンピュータ３０４（「サーバＸ」）に記憶されたテキストファイルを備える。図３に示されるように、認可特徴ファイル３１０は、目標回路３２６および／または３２７に引渡または適用される回路設計に対して、３つの「ＩＰＬ」認可を含んでいる。ＩＰＬ認可は、認可特徴ファイル１１０（図１参照）を参照して先に説明されたように、各特別な回路設計認可に対する適切な属性およびキーを含む。認可特徴ファイル３１０（図３参照）は、ネットワーク３０８上のコンピュータ３０２，３０４，３０６および３２２〜３２３の各々によってアクセスされ得る。この例では、コンピュータ３２２は、認可コントローラ３２４に接続され、認可されたベクターは、このコントローラ３２４を通して目標回路３２６に適用される。同様に、コンピュータ３２３は、認可コントローラ３２５に接続され、認可されたベクターは、このコントローラ３２５を通して目標回路３２７に適用される。ここで認められるべき点は、ネットワーク３０８が、ネットワーク上のコンピュータに取り付けられた１以上の認可コントローラを有することができるということである。認可特徴ファイル、例えばファイル１１０（図１参照）や３１０（図３参照）、並びにシリアルＰＲＯＭ２０２（図２参照）のフォーマットは、後続するセクションにおいて更に説明される。
【００３４】
認可特徴ファイル
図４は、ネットワークベースの認可マネージャ３００（図３参照）と関連して使用され得る認可特徴ファイル４１０の例証用実施形態を図示している。図４に示されるように、認可特徴ファイル４１０は、複数ラインのテキストを含んだテキストファイルを備える。例えば、各ラインは、特別なコア電子回路設計に対する認可属性を記述した製品ラインを備えることができる。この認可特徴ファイル４１０では、各製品ラインは、次のフォーマットを有する。
LICENSE_NAME: <Issue> <Product> <Version> <+/- Licenses>
<Expiration> <Vendor> <Customer> <IPLC_SN> <Key>
この場合、認可＿名称(LICENSE_NAME)フィールドは、ＩＰプロバイダによって提供される認可の名称を含んでいる。また残りのフィールドは、図１を参照して先に説明された認可特徴ファイル１１０の対応するフィールドと同様である。
【００３５】
図４に示されるように、認可特徴ファイル４１０の第３〜７ラインは、認可＿名称(LICENSE_NAME)が“ＩＰＬ”であることを示している。これは、目標回路３２６または３２７（図３参照）に引渡または適用されるコア回路設計に対する認可の名称である。ここで開示されている実施形態では、認可特徴ファイル４１０の上から初めの２ラインは、それらの境界をオプションのコメントラインとして定める“＃”で開始する。具体的には、第１ラインは、第３〜５ラインおよび第７ラインのフィールドのフォーマットを記述するために含まれている。例えば、第３ラインでは、発行(Issue)番号は“１”であり、製品(Product)コードは“ａｂ１”であり、バージョン(Version)コードは“１”であり、追加される認可(Licenses)の数は“１００００”であり、満了(Expiration)コードは“１２３１２００２”であり、ベンダー(Vendor)コードは“２”であり、顧客(Customer)コードは“ｆ１”であり、ＩＰ認可コントローラのシリアル番号ＩＰＬＣ＿ＳＮは“１”である。さらに、第７ラインでは、発行番号は“１”であり、製品コードは“ｄｄ０”であり、バージョンコードは“７”であり、追加される認可の数は“３５００”であり、満了コードは“００００００００”であり、ベンダーコードは“Ａ”であり、顧客コードは“ｆ１”であり、ＩＰＬＣ＿ＳＮは“１２７１”である。
【００３６】
ここで留意される点は、シリアル番号１２７０は認可コントローラ３２４に対応し、またシリアル番号１２７１は認可コントローラ３２５に対応しているということである（図３参照）。さらに、同じ製品コードに対して複数のラインがある場合、発行番号は、追加の認可を追跡することに使用され得る。例えば、認可特徴ファイル４１０（図４参照）の第５ラインは、製品コードａｂ１に対する認可の第２の発行(Issue 2）である。このラインは、ファイル４１０の第３ラインに示されているように、発行１(Issue 1）によって与えられた１０，０００の認可に３００の認可を加える。認可の最終発行（例えば、最終発行番号５１２．２、図５参照）は、シリアルＰＲＯＭ２０２（図２参照）に記憶される。この結果、認可システムは、新たに認可が発行されたときを容易に決定することができる。シリアルＰＲＯＭ２０２は続いて更新され、これら新たに発行された認可に対して課金する。同様の手法で、認可は、認可特徴ファイル４１０から削除されるか、あるいは１つの認可システムの認可特徴ファイルからもう１つの認可システムの認可特徴ファイルへと転送される。
【００３７】
ここで留意されるべき点は、キー(“Key”)フィールドは、ＩＰプロバイダによって生成され、そして安全に暗号化されたキーを有するということである。この認可キー値は、対応する製品ライン内の情報と、他のベンダー固有のデータを考慮する。ここで開示されている実施形態では、製品ライン３〜７（図４参照）はＩＰユーザによっては修正できない。これは、そのようにすると、（初めにＩＰプロバイダによって生成された）認可キー値が、ファイル内の製品ラインデータと不一致にさせられてしまうからである。認可ファイル内の特徴や他のデータの何れかを変化させるために、ＩＰユーザは典型的に、新しい認可特徴ファイル４１０をＩＰプロバイダから獲得する。このことが確実にするものは、コア回路設計が特定の認可コントローラと共に、そして認可の必要条件に従って使用される点である。
【００３８】
異なる実施形態において、認可特徴ファイル４１０の製品ラインは、認可特徴ファイル４１０のライン６に示されるように、１以上の暗号化されたフィールドを有することができる。ライン６内の暗号化された値は、認可されている特別な電子回路設計の属性と、認可キーとを表す。製品ラインのこの形態は、分離されたフィールドを有しないが、それは認可システムによって解釈されるので、安全性を提供する。
【００３９】
シリアルＰＲＯＭフォーマット
ここで開示されている実施形態では、シリアルＰＲＯＭ２０２（図２参照）は、認可データを記憶して、認可特徴ファイル（例えば、ファイル１１０（図１参照）および３１０（図３参照））によって提供される認可情報を補うように構成されている。シリアルＰＲＯＭ２０２に記憶された認可データは、認可特徴情報と共に使用されて、認可された回路設計の引渡を追跡および管理する。
【００４０】
図５は、認可データをシリアルＰＲＯＭ２０２（図２参照）に記憶するための例証用フォーマット５００を図示している。このデータ記憶フォーマット５００は、アドレス位置０〜ｎ−１に複数バイトのデータストレージを設けている。具体的には、シリアルＰＲＯＭに記憶された認可データは、認可コントローラシリアル番号５０２と、ＰＲＯＭバージョン５０４と、ＰＲＯＭサイズ５０６と、ＰＲＯＭ署名５１０とを含んでいる。このＰＲＯＭ署名は、シリアルＰＲＯＭに記憶されたデータの完全性チェックを与えるように維持される。ここで開示されている実施形態では、認可コントローラ１０４のベンダーだけが、ＰＲＯＭ署名５１０の発生および維持に使用されるアルゴリズムを知っている。このことにより、電子回路設計の認可に大きな保護を与える。何故ならば、ＩＰユーザは、ＰＲＯＭ署名５１０を、記憶されている認可データと不一致にさせることなしに、シリアルＰＲＯＭに記憶された認可データを変更できないからである。ＰＲＯＭ署名５１０は、シリアルＰＲＯＭが回路設計認可についてアクセスされる毎に確認されることが好ましい。更にＰＲＯＭ署名５１０は、シリアルＰＲＯＭに記憶されている認可データが更新されるときは必ず再生および更新される。
【００４１】
図５に示されるように、ＩＰユーザに対して発行された認可、例えば認可１即ち５１２および認可２即ち５１４は、位置「認可アドレス」から開始してシリアルＰＲＯＭに記憶される。認可５１２および５１４の各々は、シリアルＰＲＯＭに記憶されている多数のバイトから構成されている。図５に拡大して示されるように、認可１即ち５１２は、認可特徴ファイルの製品ラインに設けられているように、ベンダー指示５１２．１と、顧客指示５１２．２と、製品指示５１２．３と、少なくとも１つのＩＰバージョンコード５１２．４とを含んでいる。この情報は、認可１即ち５１２がシリアルＰＲＯＭに存在していることを示す。認可１即ち５１２は更に、最終発行番号５１２．５と、未使用認可の数（「＃未使用認可」）５１２．６とを含んでいる。情報５１２．１〜５１２．６は更新され、そして各認可された回路設計の追跡を維持することに使用され得る。ここで認められるべき点は、上述した認可データが、認可システム１００から分離されて実現された好ましいデータストレージ媒体に記憶され得るということである。例えば、認可データは、認可システム１００がローカルバスやネットワークを通してアクセス可能なディスクに記憶され得る。具体的には、認可情報は、コンピュータ３０６に含まれたストレージデバイス３１２に記憶され得る。このデバイスは、認可システム３２０〜３２１がネットワーク３０８（図３参照）を通してアクセス可能である。このことにより、認可された電子回路設計の集中課金が、ネットワーク３０８上の複数の認可コントローラ３２４〜３２５にわたって可能になる。
【００４２】
識別および機密保護ＩＰコード
認可システム１００は、どのコア電子回路設計が目標回路内でプログラム可能に構成されているかを識別することに、またプログラムされた回路設計を機密保護して、それが解読および逆行分析されたり、不注意に修正または消去されないようにすることに使用できる。
【００４３】
特別なコア電子回路設計を識別する１つの方法は、容易にアクセスおよび問い合わせできるレジスタ内に回路設計のバージョン、タイプおよび／または製造元を符号化する。例えば、１ＥＥＥ１１４９．１および１５３２規格は、２つのデータレジスタ（ＤＲ）、即ちユーザコードＤＲとＩＤコードＤＲを特定する。これらは、３２ビットの標準フォーマットを有し、電子回路設計のバージョン、タイプおよび製造元を特定することに使用できる。
【００４４】
プログラム可能回路設計用に与えられる機密保護の特徴は、典型的にはリード保護、プログラム保護、および消去保護用の機構を含む。これらは、通常は好ましい組み合わせで使用できる。更に、これらの保護機構は、通常ＴＡＰコントローラ命令を使用して可能にされ、そして命令、データパターンまたは双方の特別なシーケンスを介して不能にされる。ある回路設計においては、リードおよびプログラム保護は、目標回路のプログラムされた内容を最初に消去することによって不能にされる。この理由により、あるプログラム可能回路は、ユーザ定義可能キー、例えば保護機構をアンロックすることに使用できる個人識別番号（ＰＩＮ）を準備している。ユーザ定義可能キーのアプローチは、逆行分析や不注意な修正／消去に対して保護を与える機密保護方法を提供する。あるプログラム可能回路はまた、恒久的ロックを準備しているので、保護機構は不能にされない。ここで開示されている実施形態では、認可システム１００は保護キーを生成し、そしてそのキーを認可コントローラ１０４のシリアルＰＲＯＭ２０２（図１〜２参照）に記憶するので、コントローラ１０４だけが目標回路１０６内に構成された回路設計をリード／プログラム／消去できる。
【００４５】
１つの代替実施形態では、目標回路１０６（図１参照）は、回路１０６が認可された回路設計のバージョンで既にプログラムされているか否かを決定するために、構成に先だって問い合わされる。例えば、目標回路１０６が認可１即ち５１２（図５参照）に関連した回路設計で既にプログラムされている場合、未使用認可の数５１２．６はデクリメントされない。そして、プログラミング動作は、目標回路１０６内における回路設計の初回のプログラム可能な構成に対して課金される代わりに、更新（即ち、回路設計の新バージョンによる目標回路の再プログラミング）として取り扱われる。しかしながら、ユーザコードＤＲはプログラム可能であるから、この方法は、現在の回路設計をプログラミング前に識別するには比較的信頼性が低い。この理由によって、ここで開示されている認可システム１００の実施形態は、ＩＤ署名レジスタ（ＩＤＳＲ）７０４（図７ａ参照）を使用して、目標回路内で実現されている現在の回路設計を識別する。
【００４６】
図７ａは、目標回路１０６（図１参照）内で実現され得るテストアクセスポート（ＴＡＰ）アーキテクチャ７００の例証用実施形態を図示している。この例証用実施形態では、ＴＡＰアーキテクチャ７００は、ＩＥＥＥ１１４９．１ＴＡＰコントローラのようなＴＡＰコントローラ７０２と、命令レジスタ（ＩＲ）７０６と、ＴＡＰコントローラ７０２およびＩＲ７０６に接続されたＩＤＳＲ７０４とを含む。ＩＤＳＲ７０４は、ユーザ定義ＤＲであり、目標回路１０６のプログラミング中にテストデータ入力（ＴＤＩ）（図１および７参照）に関するデータの署名を生成することが可能にされている。具体的には、ＩＤＳＲ７０４は、認可された回路設計がＴＤＩを介して目標回路１０６へ引渡されるときに、その署名を生成して記憶するように構成されている。それからＩＤＳＲ７０４は、目標回路１０６内に現在プログラムされている認可された回路設計を識別するために、認可コントローラ１０４によって選択され、そしてテストデータ出力（ＴＤＯ）（図１および７参照）からスキャンされる。このようにして、認可された回路設計は、目標回路１０６をプログラミングまたは再プログラミングする前に、安全且つ信頼性高く識別される。
【００４７】
非プログラム可能目標回路、例えばＡＳＩＣやＲＡＭ内で実現された認可された電子回路設計を識別および機密保護する能力を有することも望ましい。そのために、ここで開示されている実施形態は、認可された回路設計の機能的動作を可能にするようにプログラム可能に構成され得るイネーブルキーを提供する。このイネーブルキーは、認可された回路設計に対する適切な課金がなされるまで、この認可された回路設計の使用を防止する。
【００４８】
図７ｂは、認可された回路設計の機能的動作を非プログラム可能目標回路内で可能にするために上述したイネーブルキーを使用する例証用回路構成７２０を図示している。この例証用実施形態では、回路構成７２０は、イネーブルキーの表示を記憶するためのイネーブルキー更新／メモリ（Ｕ／Ｍｅｍ）レジスタ７２４を含んでいる。例えば、イネーブルキーＵ／Ｍｅｍレジスタ７２４は、比較的小さい（例えば、３２〜１２８ビットの）プログラム可能回路または不揮発性メモリを備えることがある。更には、回路構成７２０は、認可された回路設計から分離されているか、その一部として、目標回路内に実現され得る。この代わりに、回路構成７２０は、ＴＡＰコントローラの一部として目標回路内に実現され得る。
【００４９】
具体的に、イネーブルキーの表示は、目標回路のＴＤＩ入力を介して、イネーブルキーシフト／キャプチャ（Ｓ／Ｃ）レジスタ２７６（図７ｂ参照）に対してシリアルに与えられる。例えば、イネーブルキーＳ／Ｃレジスタ２７６は、ＴＡＰコントローラのＴＤＩおよびＴＤＯピン（図７ａ参照）の間でアクセス可能なユーザ定義データレジスタ（ＤＲ）を備えることができる。さらに、イネーブルキーＳ／Ｃレジスタ２７６は、通常のＤＲと実質的に同じ手法で動作する。但し、Ｓ／Ｃレジスタ２７６が更新されるときに、その内容がイネーブルキーＵ／Ｍｅｍレジスタ７２４に記憶される点は異なる。次に、イネーブルキーＵ／Ｍｅｍレジスタ７２４は、イネーブルキーを、後続の復号用にイネーブルキーデコーダ回路７２２に与える。復号後にイネーブルキーが有効であると見られる場合、デコーダ回路７２２は、ＩＰ＿イネーブル信号（図７ｂ参照）を表明する。この信号は、認可された回路設計の機能的動作を可能にすることに使用される。
【００５０】
ここで開示されている実施形態では、認可された回路設計の機能的動作を可能にするイネーブルキーの値は、ＩＰプロバイダによって予め決定され、そして認可された回路設計が認可システムによってテストされる前または後にプログラム可能に構成される。例えば、認可システム１００（図１参照）は、イネーブルキーを認可コントローラ１０４のシリアルＰＲＯＭに記憶することができる。認可された回路設計が認可システム１００によって適切に課金された後に、認可システム１００は、イネーブルキーを使用して、目標回路上で実現された認可された回路設計の機能的動作を可能にする。
【００５１】
ここで理解されることは、上述したイネーブルキーが、認可システム１００（図１参照）内で他の目的に対しても使用できるという点である。例えば、イネーブルキーは、目標回路内のサポート回路の機能的動作、例えば認可された回路設計のテストを助けるように構成された「ヘルパー」回路の機能的動作を可能にすることに使用できる。さらに、このヘルパー回路は、認可された回路設計のテストを可能にし、および／または加速するように構成され得る。ヘルパー回路は、認可された回路設計から分離されるか、その一部として、目標回路内で実現され得る。
【００５２】
ここで認められるべき点は、認可システムは、非プログラム可能回路内の認可された回路設計を識別および機密保護することに使用されるイネーブルキーに加えて、他の回路情報を生成できるということである。例えば、ＩＰシリアル番号（ＩＰＳＮ）、ＩＤコード、および／またはテストおよび修理ステータスのような回路情報は、認可システムによって生成され、認可コントローラのシリアルＰＲＯＭに記憶され、そして目標回路内でプログラム可能に構成され得る。ここで留意される点は、認可された回路設計を追跡するために、ＩＰＳＮもまた使用され得るということである。認可システムは、この回路情報にアクセスして、認可された回路設計が以前に課金され、テストされ、および／またはイネーブルキーを通して可能にされたか否かを決定すること、並びに認可された回路設計のテストおよび修理ステータスにアクセスすることができる。
【００５３】
ここで開示されている実施形態では、ＩＰＳＮの表示は、ＩＰＳＮシフト／キャプチャ（Ｓ／Ｃ）レジスタ７２８（図７ｂ参照）に対し目標回路のＴＤＩ入力を介してシリアルに与えられる。イネーブルキーＳ／Ｃレジスタ７２６と同様に、ＩＰＳＮのＳ／Ｃレジスタ７２８は、ＴＡＰコントローラのＴＤＩおよびＴＤＯピン（図７ａ参照）間でアクセス可能なユーザ定義ＤＲを備えることができる。さらに、ＩＰＳＮのＳ／Ｃレジスタ７２８は、通常のＤＲと実質的に同じ手法で動作する。但し、Ｓ／Ｃレジスタ７２８が更新されるときに、その内容はＩＰＳＮのＵ／Ｍｅｍレジスタ７３０に記憶される。このＵ／Ｍｅｍレジスタ７３０は、比較的小さい（例えば、３２〜１２８ビットの）プログラム可能回路または不揮発性メモリを備えることがある。図７ｂに示されるように、例証用回路構成７２０は更に、Ｓ／Ｃレジスタ７２６および７２８とＴＤＯラインとの間に配置され、選択的にイネーブルキーまたはＩＰＳＮをＴＤＯラインに与えるように構成されたマルチプレクサ７３２を含む。
【００５４】
認可システムの応用および動作
認可されたコア電子回路設計およびベクターを認可システム１００（図１参照）を使用して安全に引渡／適用する方法が、図８を参照して説明される。ここで留意される点は、認可システム１００の方法は、コンピュータ１０２にインストールされた認可設備と、認可コントローラ１０４（図１参照）のシリアルＰＲＯＭ（図２参照）に記憶された認可データとを使用して行われるということである。ステップ８０２に示されているように、与えられたコア電子回路設計に対する認可されたベクターファイルが、ＩＰプロバイダによって提供される。この認可されたベクターファイルは、回路設計に対するプログラムおよび／またはテストデータと、ベクター内で認可されたそれぞれの回路設計に対するベンダー、顧客および製品コードとを含んでいる。次に、ステップ８０４に示されるように、認可特徴ファイルが読み出され、回路設計特徴が現在認可されているか否かが判定される。それから、ステップ８０６に示されるように、シリアルＰＲＯＭ２０２に含まれた情報が読み出される。
【００５５】
次に、ステップ８０８に示されるように、シリアルＰＲＯＭ２０２に記憶された情報の完全性が、シリアルＰＲＯＭに記憶された署名について検証される。それから、ステップ８１０に示されるように、記憶されているＰＲＯＭ情報がＰＲＯＭ署名と一致するか否かについて決定される。記憶されているＰＲＯＭ情報がＰＲＯＭ署名と不一致の場合、シリアルＰＲＯＭの内容が不適切に変更されていることを示しているので、ステップ８１１に示されるように、コンピュータ１０２を経由してＩＰユーザに対してエラーが発行され、またベクターは適用されない。そうでない場合には、ステップ８１２に示されるように、それぞれの認可コントローラ１０４に対し割り当てられる認可が決定される。具体的には、ＰＲＯＭ情報に含まれる認可コントローラのシリアル番号（即ち、ＩＰＬＣ＿ＳＮ）が認可特徴ファイルのそれぞれの製品ラインと比較され、そして認可コントローラのシリアル番号と一致する製品ラインは、この認可コントローラに割り当てられた認可であると判定される。
【００５６】
次に、ステップ８１４に示されるように、回路設計認可は（シリアルＰＲＯＭから読み出されたときに）、そのベンダー、顧客および製品コードを媒介として識別される。それから、ステップ８１６に示されるように、この認可は、認可コントローラ１０４に割り当てられた認可特徴について検証される。次に、ステップ８１８に示されるように、シリアルＰＲＯＭ２０２に含まれていない認可特徴ファイル内に回路設計認可があるか否かについて決定がなされる。認可特徴ファイルには含まれているが、シリアルＰＲＯＭには含まれていない回路設計認可がある場合、この認可は新しい認可とみなされ、そしてステップ８２０に示されるように、対応する認可情報が、新たに生成されたＰＲＯＭ署名を伴ってシリアルＰＲＯＭに追加される。
【００５７】
それから、ステップ８２２に示されるように、回路設計認可情報は検証され、シリアルＰＲＯＭ２０２に記憶された認可データに対し、更なる更新がなされる必要があるかを見る。具体的には、シリアルＰＲＯＭ内の認可データは、更新され得る。これは、未使用の回路設計認可の数に加算／減算し、認可を除去し、もう１つの認可コントローラに対して認可を再割り当てし、あるいはＩＰバージョンを更新するためである。回路設計認可が検証された後に、ステップ８２４に示されるように、シリアルＰＲＯＭ認可データに対して、新たに生成されたＰＲＯＭ署名を伴って、全ての必要な更新がなされる。
【００５８】
回路設計認可を検証し、また必要な更新をシリアルＰＲＯＭ２０２内にプログラムした後に、ステップ８２５に示されるように、認可されたベクターファイルが読み出されて、そのベクターに適用する必要のある回路設計認可を決定する。次に、ステップ８２６に示されるように、プログラム／テスト環境（即ち、認可された回路設計を含んだ目標回路１０６）が検証されて、環境の完全性が確認され、またＩＰプロバイダによって許可された手法で回路設計がアクセスされていることを確認する。環境が期待されたものではない場合は、ステップ８２８に示されるように、コンピュータ１０２を介してＩＰユーザに対しエラーが発行され、ベクターは適用されない。プログラム／テスト環境の検証に続いて、ステップ８３０に示されるように、認可された回路設計の各々について目標回路１０６上で識別チェックが行われる。例えば、目標回路に応じて、１以上のユーザコード、ＩＤコード、またはＩＤＳＲ値が検証される。目標回路１０６が識別チェックに失敗した場合、即ち認可されたベクターにとって目標回路が間違った部品または回路であると判定された場合、ステップ８２８に示されるように、コンピュータ１０２を介してＩＰユーザに対しエラーが発行され、そのベクターは適用されない。そうでない場合、ステップ８３２に示されるように、認可されたベクターは、認可コントローラ１０４およびＩＥＥＥ１１４９．１バス１０８を経由して、目標回路１０６に適用される。
【００５９】
認可システム１００（図１参照）を使用して、認可された回路設計／ベクターを目標回路に対し高い信頼性で課金する方法が、図９を参照して説明される。ステップ９０２に示されるように、認可された回路設計をプログラム可能に構成またはテストすることに、認可されたベクターが使用されるか否かについて判定される。認可されたベクターがプログラム用である場合、上述した識別チェック（図８のステップ８３０）が使用され、ステップ９０４に示されるように、目標回路１０６が現在（例えば、回路設計の古いバージョンで）プログラムされているか、あるいは目標回路内で未だにプログラムされていないかを判定する。目標回路１０６が回路設計の古いバージョンでプログラムされている場合、ステップ９０６に示されるように、ベクターは回路に適用される。しかしながら、シリアルＰＲＯＭ２０２内の未使用認可値の数はデクリメントされない。これは、目標回路が（多分新しいバージョンではなく）同じ回路設計で再プログラムされているためである。ここで認められる点は、この回路設計に対する認可は、回路設計の古いバージョンが目標回路内に最初にプログラムされたときに、課金されているということである。目標回路１０６がプログラムされていなかったり、認可された回路設計以外の回路設計でプログラムされている場合は、ステップ９０８に示されるように、目標回路はプログラムされ、そしてステップ９１０に示されるように、未使用認可値の数はデクリメントされる。一度ベクター内の認可された回路設計の全てがプログラムまたは再プログラムされたら、ステップ９１２に示されるように、シリアルＰＲＯＭデータはＰＲＯＭ署名を含んで更新される。
【００６０】
認可されたベクターがテスト用である場合は、ステップ９１４に示されるように、このベクターは目標回路１０６内の回路設計に適用される。それから、ステップ９１６に示されるように、目標回路内の回路設計がテストに合格したか否かについて判定がなされる。目標回路１０６がテストに合格した場合、ステップ９１８に示されるように、ベクター内の認可された回路設計に対する未使用認可値の数はデクリメントされる。次に、ステップ９１２に示されるように、シリアルＰＲＯＭ２０２はＰＲＯＭ署名を伴って更新される。目標回路１０６がテストに失敗した場合、失敗した回路設計に対する未使用認可値の数はデクリメントされない。このようにして、ＩＰユーザは、例えば回路内の製造欠陥故に、テストに合格しない認可された回路設計については支払いをしない。
【００６１】
当業者によって更に認められる点は、上述した回路設計認可システムおよび方法に対する修正および変化が、ここに開示された発明の概念を逸脱することなくなされるということである。従って、この発明は、添付の請求の範囲の精神および範囲による以外は制限されるものではないとみなされるべきである。
【図面の簡単な説明】
【００６２】
【図１】本発明に係る認可システムのブロック図である。
【図２】図１のシステムに含まれる認可コントローラのブロック図である。
【図３】本発明に係るネットワークベースの認可システムのブロック図である。
【図４】図１の認可システムで使用される認可特徴ファイルを示す。
【図５】図１の認可システムによって使用されるメモリフォーマットを示す図である。
【図６】図１の認可システムが使用される環境のブロック図である。
【図７ａ】図１の認可システムに含まれるＩＤ署名レジスタを有したテストアクセスポートアーキテクチャーのブロック図である。
【図７ｂ】認可された回路設計の機能的動作を可能にするために図１の認可システムで使用される回路構成のブロック図である。
【図８】図１の認可システムを使用する目標回路に対して認可された回路設計を引き渡す方法を示すフロー図である。
【図９】図１の認可システムを使用する目標回路に引き渡された認可された回路設計に対し課金する方法を示すフロー図である。
【図１】
2005516288.tif 000003
【図２】
2005516288.tif 000004
【図３】
2005516288.tif 000005
【図４】
2005516288.tif 000006
【図５】
2005516288.tif 000007
【図６】
2005516288.tif 000008
【図７ａ】
2005516288.tif 000009
【図７ｂ】
2005516288.tif 000010
【図８】
2005516288.tif 000011
【図９】
2005516288.tif 000012
【国際調査報告】
2005516288.tif 000013