(57)【要約】      （修正有）【課題】選択的な遅延クロック信号を用いてバスを介してトランザクションを監視してホスト機器と周辺機器間のセキュリティ保護された通信を実現するセキュリティ装置、方法及びシステムを提供する。【解決手段】セキュリティ保護されたシステムにおける方法は、ホスト機器と周辺機器を接続するバスに結合されたバスインターフェース及びバスインターフェースを介してバスのクロック信号を受信し、クロック信号に対して遅延クロック信号を生成し、クロック信号を用いて、ホスト機器と周辺機器間で通信されるトランザクションを監視し、所与のトランザクションの一部がクロック信号に対して予め定義された時間遅延によって遅延されると予期される所与のトランザクションを識別することに応答し、遅延クロック信号を用いて所与の送信の一部をサンプリングし、所与のトランザクションのセキュリティポリシー違反を識別したことに応答してセキュリティ対策を講じる。【選択図】図４
2022002390.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器と周辺機器を接続するバスに結合されたバスインターフェース、および
前記バスインターフェースを介して前記バスのクロック信号を受信し、前記クロック信号に対して遅延クロック信号を生成し、
前記クロック信号を用いて、前記ホスト機器と前記周辺機器間で通信されるトランザクションを監視し、
所与のトランザクションの一部が前記クロック信号に対して予め定義された時間遅延によって遅延されると予期される所与のトランザクションを識別することに応答して、前記遅延クロック信号を用いて前記所与の送信の一部をサンプリングし、且つ
前記サンプリングされた部分に基づいて、前記所与のトランザクションがセキュリティポリシーに違反していることを識別したことに応答して、セキュリティ対策を講じるように構成された回路を含むセキュリティ装置。
【請求項２】
前記回路は、前記クロック信号を用いて、前記ホスト機器から前記周辺機器に送信された前記所与のトランザクションの要求部をサンプリングし、前記遅延クロック信号を用いて、前記周辺機器から前記ホスト機器に送信された前記所与のトランザクションの応答部をサンプリングするように構成される請求項１に記載のセキュリティ装置。
【請求項３】
前記回路は遅延線（ＤＬ）を含み、前記回路は、前記ＤＬを用いて前記クロック信号を遅延させることによって前記遅延クロック信号を生成するように構成される請求項１に記載のセキュリティ装置。
【請求項４】
前記ＤＬは、選択可能な出力を備えた複数の遅延素子のチェーンを含む遅延ロックループ（ＤＬＬ）を含む請求項３に記載のセキュリティ装置。
【請求項５】
前記ＤＬは、複数のそれぞれの時間遅延値に対応する複数の選択可能な設定をサポートし、前記回路は、前記遅延クロック信号と前記クロック信号間の実際の時間遅延が予め定義された時間遅延に最も近いように、選択された設定を前記設定の中から選択し、前記選択された設定に前記ＤＬを設定するように構成される請求項３に記載のセキュリティ装置。
【請求項６】
前記ＤＬを校正するために、前記回路は、前記ＤＬをリングオシレータモードで動作させ、前記ＤＬによって生成された周波数を前記リングオシレータモードで測定し、前記測定された周波数に基づいて前記実際の時間遅延を計算するように構成される請求項３に記載のセキュリティ装置。
【請求項７】
前記回路は、前記遅延クロックを用いてサンプリングを必要とするトランザクションが予想されない期間中に前記ＤＬを校正するように構成される請求項３に記載のセキュリティ装置。
【請求項８】
前記回路はもう１つのＤＬを含み、前記回路は、前記もう１つのＤＬを校正して、前記予め定義された時間遅延に基づいて校正された遅延クロック信号を生成し、前記遅延クロック信号でなく前記校正された遅延クロック信号を選択するように構成される請求項３に記載のセキュリティ装置。
【請求項９】
前記バスは、シリアルペリフェラルインターフェース（ＳＰＩ）バスを含み、前記周辺機器は、読み出しのときに遅延データを提供するＳＰＩフラッシュメモリを含み、前記所与のトランザクションは、前記ＳＰＩフラッシュメモリからの読み出し操作を含み、前記回路は、前記遅延クロック信号を用いて前記ＳＰＩフラッシュメモリから取得した遅延データをサンプリングするように構成される請求項１に記載のセキュリティ装置。
【請求項１０】
前記所与のトランザクションがセキュリティポリシーに違反していることを識別するために、前記回路は、（ｉ）前記周辺機器の保護されたアドレス領域へのアクセスの試みを検出する、または（ｉｉ）前記ホスト機器に送信されたデータが無効であることを識別するように構成される請求項１に記載のセキュリティ装置。
【請求項１１】
セキュリティ装置でホスト機器と周辺機器を接続するバスに結合されたバスインターフェースを含み、
前記バスインターフェースを介して前記バスのクロック信号を受信し、前記クロック信号に対して遅延クロック信号を生成するステップ、
前記クロック信号を用いて、前記ホスト機器と前記周辺機器間で通信されるトランザクションを監視するステップ、
所与のトランザクションの一部が前記クロック信号に対して予め定義された時間遅延によって遅延されると予期される所与のトランザクションを識別することに応答して、前記遅延クロック信号を用いて前記所与の送信の一部をサンプリングするステップ、および
前記サンプリングされた部分に基づいて、前記所与のトランザクションがセキュリティポリシーに違反していることを識別したことに応答して、セキュリティ対策を講じるステップを含むデータセキュリティの方法。
【請求項１２】
前記回路は、前記クロック信号を用いて、前記ホスト機器から前記周辺機器に送信された前記所与のトランザクションの要求部をサンプリングし、前記遅延クロック信号を用いて、前記周辺機器から前記ホスト機器に送信された前記所与のトランザクションの応答部をサンプリングするステップを含む請求項１１に記載の方法。
【請求項１３】
前記遅延クロック信号を生成するステップは、前記セキュリティ装置の遅延線（ＤＬ）を用いて前記クロック信号を遅延させるステップを含む請求項１１に記載の方法。
【請求項１４】
前記ＤＬは、選択可能な出力を備えた複数の遅延素子のチェーンを含む遅延ロックループ（ＤＬＬ）を含む請求項１３に記載の方法。
【請求項１５】
前記ＤＬは、複数のそれぞれの時間遅延値に対応する複数の選択可能な設定をサポートし、且つ
前記遅延クロック信号を生成するステップは、前記遅延クロック信号と前記クロック信号間の実際の時間遅延が予め定義された時間遅延に最も近いように、選択された設定を前記設定の中から選択し、前記選択された設定に前記ＤＬを設定するステップを含む請求項１３に記載の方法。
【請求項１６】
前記遅延信号を生成するステップは、前記ＤＬをリングオシレータモードで動作させて前記ＤＬを校正するステップ、前記ＤＬによって生成された周波数を前記リングオシレータモードで測定するステップ、前記測定された周波数に基づいて前記実際の時間遅延を計算するステップを含む請求項１３に記載の方法。
【請求項１７】
前記遅延クロックを生成するステップは、
前記遅延クロックを用いてサンプリングを必要とするトランザクションが予想されない期間中に前記ＤＬを校正するステップを含む請求項１３に記載の方法。
【請求項１８】
前記セキュリティ装置は、もう１つのＤＬを含み、前記遅延クロックを生成するステップは、前記もう１つのＤＬを校正して、前記予め定義された時間遅延に基づいて校正された遅延クロック信号を生成し、前記遅延クロック信号でなく前記校正された遅延クロック信号を選択するステップを含む請求項１３に記載の方法。
【請求項１９】
前記バスは、シリアルペリフェラルインターフェース（ＳＰＩ）バスを含み、前記周辺機器は、読み出しのときに遅延データを提供するＳＰＩフラッシュメモリを含み、前記所与のトランザクションは、前記ＳＰＩフラッシュメモリからの読み出し操作を含み、前記遅延クロック信号を用いて前記ＳＰＩフラッシュメモリから取得した遅延データをサンプリングするステップを含む請求項１１に記載の方法。
【請求項２０】
前記所与のトランザクションがセキュリティポリシーに違反していることを識別するステップは、（ｉ）前記周辺機器の保護されたアドレス領域へのアクセスの試みを検出する、または（ｉｉ）前記ホスト機器に送信されたデータが無効であることを識別するステップを含む請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子システムのセキュリティに関するものであり、特に、選択的な遅延クロック信号を用いてバスを介してトランザクションを監視することにより、ホスト機器と周辺機器間のセキュリティ保護された通信を実現する方法およびシステムに関するものである。
【背景技術】
【０００２】
電子システムは、さまざまなタイプのバスインターフェースを用いてホスト機器と周辺機器間の通信をしている。バスインターフェースの一例は、シリアルペリフェラルインターフェース（ＳＰＩ）バスである。ＳＰＩをサポートする周辺機器は、例えばシリアルフラッシュメモリデバイスを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
選択的な遅延クロック信号を用いてバスを介してトランザクションを監視することにより、ホスト機器と周辺機器間のセキュリティ保護された通信を実現する方法およびシステムを提供する。
【課題を解決するための手段】
【０００４】
本明細書で説明される実施形態は、バスインターフェースおよび回路を含むセキュリティ装置を提供する。バスインターフェースは、ホスト機器と周辺機器を接続するバスに結合される。回路は、バスインターフェースを介してバスのクロック信号を受信し、クロック信号に対して遅延クロック信号を生成するように構成される。回路はクロック信号を用いて、ホスト機器と周辺機器間で通信されるトランザクションを監視し、所与のトランザクションの一部がクロック信号に対して予め定義された時間遅延によって遅延されると予期される所与のトランザクションを識別することに応答して、遅延クロック信号を用いて所与の送信の一部をサンプリングし、且つサンプリングされた部分に基づいて、所与のトランザクションがセキュリティポリシーに違反していることを識別したことに応答して、セキュリティ対策を講じるようにさらに構成される。
【０００５】
いくつかの実施形態では、回路は、クロック信号を用いて、ホスト機器から周辺機器に送信された所与のトランザクションの要求部をサンプリングし、遅延クロック信号を用いて、周辺機器からホスト機器に送信された所与のトランザクションの応答部をサンプリングするように構成される。他の実施形態では、回路は遅延線（ＤＬ）を含み、回路は、ＤＬを用いてクロック信号を遅延させることによって遅延クロック信号を生成するように構成される。さらに他の実施形態では、ＤＬは、選択可能な出力を備えた複数の遅延素子のチェーンを含む遅延ロックループ（ＤＬＬ）を含む。
【０００６】
一実施形態では、ＤＬは、複数のそれぞれの時間遅延値に対応する複数の選択可能な設定をサポートし、回路は、遅延クロック信号とクロック信号間の実際の時間遅延が予め定義された時間遅延に最も近いように、選択する設定を設定の中から選択し、選択された設定にＤＬを設定するように構成される。他の実施形態では、ＤＬを校正するために、回路は、ＤＬをリングオシレータモードで動作させ、ＤＬによって生成された周波数をリングオシレータモードで測定し、測定された周波数に基づいて実際の時間遅延を計算するように構成される。さらに他の実施形態では、回路は、遅延クロックを用いてサンプリングを必要とするトランザクションが予想されない期間中にＤＬを校正するように構成される。
【０００７】
いくつかの実施形態では、回路はもう１つのＤＬを含み、回路は、もう１つのＤＬを校正して、予め定義された時間遅延に基づいて校正された遅延クロック信号を生成し、遅延クロック信号でなく校正された遅延クロック信号を選択するように構成される。他の実施形態では、バスは、シリアルペリフェラルインターフェース（ＳＰＩ）バスを含み、周辺機器は、読み出しのときに遅延データを提供するＳＰＩフラッシュメモリを含み、所与のトランザクションは、ＳＰＩフラッシュメモリからの読み出し操作を含み、回路は、遅延クロック信号を用いてＳＰＩフラッシュメモリから取得した遅延データをサンプリングするように構成される。さらに他の実施形態では、所与のトランザクションがセキュリティポリシーに違反していることを識別するために、回路は、（ｉ）周辺機器の保護されたアドレス領域へのアクセスの試みを検出するか、または（ｉｉ）ホスト機器に送信されたデータが無効であることを識別するように構成される。
【０００８】
本明細書に記載される実施形態によれば、データセキュリティの方法が更に提供されており、セキュリティ装置でホスト機器と周辺機器を接続するバスに結合されたバスインターフェースを含み、バスインターフェースを介してバスのクロック信号を受信し、クロック信号に対して遅延クロック信号を生成するステップを含む。クロック信号を用いて、ホスト機器と周辺機器間で通信されるトランザクションが監視される。所与のトランザクションの一部がクロック信号に対して予め定義された時間遅延によって遅延されると予期される所与のトランザクションを識別することに応答して、遅延クロック信号を用いて所与の送信の一部がサンプリングされる。サンプリングされた部分に基づいて、所与のトランザクションがセキュリティポリシーに違反していることを識別したことに応答して、セキュリティ対策を講じる。
【０００９】
本発明は、添付の図面を参照しながら以下の詳細な説明から、より完全に理解することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本明細書で説明された実施形態による、セキュリティ保護されたシステムを概略的に示すブロック図である。
【図２】図２は、本明細書で説明された他の実施形態による、セキュリティ保護されたシステムを概略的に示すブロック図である。
【図３】図３は、本明細書で説明された実施形態による、読み込みトランザクション中に生成されるさまざまなバスおよびクロック信号を概略的に示すタイミング図である。
【図４】図４は、本明細書で説明された実施形態による、選択的な遅延クロック信号を用いてバスを介してトランザクションを監視することにより、セキュリティ保護されたバス通信を実現する方法を概略的に示すフローチャートである。
【図５】図５は、本明細書で説明された実施形態による、調整可能な遅延線（ＤＬ）の校正方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【００１１】
本明細書に記載された実施形態は、選択的な遅延クロック信号を用いてバスを介してトランザクションを監視することにより、ホストと周辺機器間のセキュリティ保護された通信を実現する、改善された方法および装置を提供する。周辺機器は、例えば、暗号化エンジン、機密データを格納するメモリデバイス、またはバスを介してアクセス可能な任意の他の適切な装置を含み得る。
【００１２】
いくつかの開示された実施形態では、セキュリティ装置はバス上のトランザクションを監視し、システムセキュリティに違反するトランザクションを識別する。ホスト機器や他のバスマスタ装置が、許可なく周辺機器にアクセスしようとすると、セキュリティ違反が発生する可能性がある。もう１つのタイプのセキュリティ違反では、攻撃者がバス上に無効なデータを強制的に送信する可能性がある。バス上のトランザクションは、任意の適切な基準またはポリシーを用いて、違反しているか、違反していないかを分類することができる。システムセキュリティに違反するトランザクションを検出したことに応答して、セキュリティ装置は適切なセキュリティ対策を講じて対応する。
【００１３】
いくつかの実施形態では、ホスト機器と周辺機器間を接続するバスは、シリアルペリフェラルインターフェース（ＳＰＩ）バス、または任意の他の適切なバスを含む。ＳＰＩバスは、ＳＰＩクロック信号、および１つのバス構成でマスターアウトスレーブイン（ＭＯＳＩ）とマスターインスレーブアウト（ＭＩＳＯ）と呼ばれる２つのデータラインを含む。ＳＰＩバスは、各スレーブペリフェラルデバイスを選択する専用のチップセレクト（ＣＳ）ラインを更に含む。
【００１４】
ＳＰＩバス上のトランザクションは、通常、コマンドと、場合によりアドレスおよび／またはデータを含む。周辺機器が、例えばフラッシュメモリデバイスを含む場合、ホスト機器は、ＭＯＳＩラインを介してコマンドを送信し、次いでアドレスを送信し（本明細書では要求部とも呼ばれる）、ＭＩＳＯラインを介して読み出したデータを受信する（本明細書では応答部とも呼ばれる）ことでフラッシュメモリデバイスからデータを読み出す。ホストは、ＳＰＩクロック信号と同期したコマンド部とアドレス部を送信する。しかしながら、反対方向では、フラッシュメモリデバイスによってホスト機器に送信されたデータは、例えば、フラッシュメモリデバイスの応答時間が長いために、ＳＰＩクロック信号に対して遅延する可能性がある。
【００１５】
原則的には、セキュリティ装置は、ＳＰＩクロック信号に基づいてＭＯＳＩおよびＭＩＳＯラインを介してトランザクションを監視することができる。しかしながら、ＳＰＩクロック信号を用いて遅延データをサンプリングすると、誤ったデータとなり、システムのセキュリティレベルを低下させる可能性がある。
【００１６】
いくつかの実施形態では、遅延データを補償するために、セキュリティ装置は、ＳＰＩクロックに対して時間シフトされた遅延クロックを用いて遅延データをサンプリングする。セキュリティ装置は、周辺機器のタイプと基礎となるトランザクションのコマンドに応じて、ＳＰＩクロックまたは遅延クロックを用いて、異なる時間間隔でＭＩＳＯラインを監視することを決定することができる。
【００１７】
いくつかの実施形態では、セキュリティ装置は、遅延線（ＤＬ）を用いて、ＳＰＩクロックから遅延クロック信号を導出する。セキュリティ装置は、ＳＰＩクロック信号に対して遅延が予期されるトランザクション部のトランザクションをサンプリングする遅延クロック信号を選択する。一実施形態では、ＤＬは、複数の選択可能な遅延素子のチェーンを含む遅延ロックループ（ＤＬＬ）を含む。
【００１８】
いくつかの実施形態では、ＤＬは、複数の遅延値に対応する複数の選択可能な時間遅延設定をサポートする。ＤＬを必要な時間遅延に校正するために、セキュリティ装置は、必要な時間遅延に最も近いように遅延時間設定のうちの１つを選択し、選択された遅延設定にＤＬを制御する。必要な時間遅延は、例えば、周辺機器のベンダーによって定められることができる。セキュリティ装置は、ＤＬがリングオシレータモードで動作するように構成し、リングオシレータモードでＤＬによって生成された周波数を測定し、測定された周波数に基づいて実際の時間遅延を計算することにより、ＤＬを校正し、実際の時間遅延を推定することができる。
【００１９】
セキュリティ装置は、例えば、電源投入時またはリセット時に一度、定期的に、および／または例えば、温度と供給電圧などの環境と動作条件の変化に応じて条件付きで、ＤＬ校正を行うことができる。
【００２０】
いくつかの実施形態では、セキュリティ装置は、サンプリングがＤＬ遅延クロックを必要とするトランザクションが予期されない「安全」な期間にＤＬを校正する。他の実施形態では、任意の所望の時間に校正するために、セキュリティ装置は２つのＤＬを含み、任意の所与の時間に、１つのＤＬが遅延クロックを生成し、もう１つのＤＬが校正されることができる。校正可能なＤＬを校正した後、２つのＤＬは、役割を交換することができる。
【００２１】
セキュリティ装置は、所定のトランザクションがさまざまな方法でセキュリティポリシーに違反することを識別することができる。いくつかの実施形態では、セキュリティ装置は、（ｉ）周辺機器の保護されたアドレス領域へのアクセスの試みを検出することによって、または（ｉｉ）ホスト機器に送信されたデータが無効であることを識別することによって、システムのセキュリティ違反を識別する。
【００２２】
開示された技術では、セキュリティ装置は、例えば、ＤＬを用いて、ＳＰＩクロック信号から導出された遅延クロック信号を用いて、遅延しているトランザクション部をサンプリングする。装置のタイプに基づいて、場合によってはトランザクションのコマンド部に基づいて、セキュリティ装置は、特定のトランザクション、およびＳＰＩバスクロックに対して遅延すると予期されるトランザクションの一部に対してのみ、ＳＰＩクロックでなく遅延クロックを選択する。セキュリティ装置は、ＤＬを必要な時間遅延に校正し、環境と動作条件が変化した場合でも、遅延部が正確にサンプリングされることができるようにする。開示された技術を用いることで、セキュリティ装置は、全てのトランザクションを確実に監視し、システムのセキュリティ違反を検出したときにセキュリティ対策を講じることができる。
【００２３】
［システム記述］
図１は、本明細書で説明された実施形態による、セキュリティ保護されたシステム２０を概略的に示すブロック図である。図１の例では、セキュリティ保護されたシステム２０は、ホスト機器２４、周辺機器２８、およびセキュリティ装置３２を含み、全てＳＰＩバス３６に接続される。この例では、周辺機器２８は、ＳＰＩフラッシュメモリデバイスを含む。あるいは、他の適切な周辺機器が用いられることもできる。
【００２４】
セキュリティ装置３２は、システムセキュリティに違反するトランザクションを識別する。システムセキュリティに違反するトランザクションは、ホスト機器２４、周辺機器２８、および／またはＳＰＩバス３６の制御を奪取した攻撃者によって引き起こされる可能性がある。トランザクションは、例えば、ホスト機器２４が許可なしに周辺機器２８にアクセスしようと試みたとき、システムセキュリティに違反する可能性がある。別の例として、周辺機器または攻撃者は、バスを介してホスト機器に無効なデータを提供しようと試みる可能性がある。
【００２５】
この例では、セキュリティ装置３２は、ＳＰＩバス３６に接続するためのバスインターフェース４０、開示された技術のいくつかを実行するように構成されたプロセッサ４４、およびプロセッサ４４によって実行される１つ以上のセキュリティポリシーを格納するように構成されたメモリ４８を含む。
【００２６】
図１では、ＳＰＩバス３６は、クロック（ＣＬＫ）ライン、およびマスターアウトスレーブイン（ＭＯＳＩ）とマスターインスレーブアウト（ＭＩＳＯ）と呼ばれる２つのデータラインを含む。ＣＬＫ、ＭＯＳＩ、およびＭＩＳＯラインは、バスに結合された全ての周辺機器（本実施例では周辺機器２８のみ）に共通である。さらに、各スレーブ装置は専用のチップセレクト（ＣＳ）ラインを用いて選択することができる。この例では、ホスト機器２４は、ＣＳと表示されるＣＳラインを用いて周辺機器２８を選択する。
【００２７】
一般に、マスターであるホスト機器２４は、全ての周辺機器のＣＳラインに接続される。一方、周辺機器はスレーブであるため、各周辺機器はその自身のＣＳラインにのみ接続される。一般的には、ホスト機器２４は、それぞれのＣＳラインを用いて所望の周辺機器を選択することによってトランザクションを開始し、次いでＣＬＫ、ＭＯＳＩ、およびＭＩＳＯラインを用いてデバイスと通信する。ＭＯＳＩラインはホスト機器から周辺機器への送信に用いられ、ＭＩＳＯラインは周辺機器からホスト機器への送信に用いられる。
【００２８】
セキュリティ装置３２は、出力サンプラー５２および入力サンプラー５６を用いて、ＳＰＩバス３６を介したトランザクションを監視する。出力サンプラー５２は、ＳＰＩバスのＣＬＫ信号を受信し、ＣＬＫ信号を用いて、ＭＯＳＩラインを介してホスト機器より送信されたシリアル情報をサンプリングする。出力サンプラー５２は、ＭＯＳＩラインを介してホスト機器２４から周辺機器に送信された、書き込まれるべきコマンド、アドレス、およびデータをサンプリングする。入力サンプラー５６は、ＭＩＳＯラインを介して周辺機器からホスト機器に送信されたデータをサンプリングする。
【００２９】
一部のトランザクションでは、周辺機器は、ＳＰＩ  ＣＬＫに対して多少遅延したＭＩＳＯラインにデータを送信する。これは、例えば、ＳＰＩフラッシュメモリを読み出すときに、フラッシュデバイスの応答時間が比較的長いために生じる可能性がある。その結果、入力サンプラーは、最適でない時間インスタンス（ｔｉｍｅ  ｉｎｓｔａｎｃｅ）で読み取られたデータをサンプリングし、その結果、誤ったデータとなる可能性がある。このような場合、入力サンプラー５６は、トランザクションのデータフェーズ中に、ＳＰＩ  ＣＬＫ信号の遅延バージョンを含むクロック信号を用いて、ＭＩＳＯラインをサンプリングし、それによって遅延データを補償する。遅延クロックは、データをサンプリングするための十分なセットアップ時間（ｓｅｔｕｐ  ｔｉｍｅ）を提供するように調整される必要がある。
【００３０】
図１の例では、セレクタ６０は、入力サンプラークロック信号５８（ＩＳ＿ＣＬＫと表示される）を入力サンプラー５６に提供する。セレクタ６０は、（遅延していない）ＳＰＩ  ＣＬＫ信号、およびＤＬ＿ＣＬＫとＩＮＶ＿ＣＬＫとそれぞれ示される２つのクロック信号６６および６８の中から選び、それぞれがＳＰＩ  ＣＬＫ信号の遅延バージョンを含む。遅延線（ＤＬ）７０はＤＬ＿ＣＬＫ信号を生成し、インバータ論理ゲート７２はＩＮＶ＿ＣＬＫ信号を生成する。
【００３１】
いくつかの実施形態では、複数の選択可能な時間遅延設定をサポートする調整可能なＤＬ７０を含み、各設定は、異なる遅延値に対応する。以下に詳述するように、ＤＬ７０は、必要な時間遅延に最も近い選択可能な時間遅延設定のうちの１つを選ぶことによって校正されることができる。必要な遅延は、例えば、周辺機器のベンダーまたは製造業者によって定められることができる。いくつかの実施形態では、ＤＬ７０は、複数の選択可能な遅延素子のチェーンを含む遅延ロックループ（ＤＬＬ）を含む。ＤＬＬは、遅延素子の１つの出力を選択することによって校正されることができる。ＤＬ校正対策（ｃａｌｉｂｒａｔｉｏｎ  ｓｔｒａｔｅｇｉｅｓ）については、以下で詳しく説明する。
【００３２】
インバータ論理ゲート７２は、ＳＰＩ  ＣＬＫ信号に対して半サイクル期間、遅延したＩＮＶ＿ＣＬＫ信号を生成する。ＩＮＶ＿ＣＬＫ信号は、例えば、必要な時間遅延がＣＬＫサイクル期間の半分に近く、ＤＬ設定のいずれにもサポートされていない場合に用いられることができる。
【００３３】
図１の例では、セレクタ６０は、出力サンプラー５２によって生成された（２ビット）ＣＬＫ＿ＳＥＬＥＣＴ信号６２（ＣＬＫ＿ＳＥＬＥＣＴと表示される）によって制御される。あるいは、ＣＬＫ＿ＳＥＬＥＣＴ信号６２は、プロセッサ４４またはプロセッサ４４と出力サンプラー５２との組み合わせによって、あるいはセキュリティ装置の任意の適切な構成要素によって生成されてもよい。いくつかの実施形態では、ＣＬＫ＿ＳＥＬＥＣＴ信号６２は、セレクタに、ほとんどのトランザクションにＳＰＩ  ＣＬＫ信号を出力させ、トランザクションの一部がＳＰＩ  ＣＬＫに対して遅延している期間に、選択されたトランザクションに遅延クロック信号６６および６８のいずれかを選択させるようにさせる。出力サンプラー５２は、トランザクションコマンドをサンプリングし、コマンドタイプに基づいて、遅延クロック信号（ある場合）を用いてサンプリングを必要とするトランザクションのサイクルを決定する。例えば、ＳＰＩフラッシュデバイスの読み出しでは、ＣＬＫ＿ＳＥＬＥＣＴ信号は、ＭＩＳＯラインのデータフェーズ中に遅延クロック６６を選択する。
【００３４】
プロセッサ４４は、出力サンプラー５２および入力サンプラー５６によってサンプリングされたトランザクション情報を受信する。プロセッサ４４は、任意の予め定義または構成されたポリシーに従って、トランザクションを違反または非違反のシステムセキュリティとして分類することができる。いくつかの実施形態では、違反のトランザクションと非違反のトランザクションを区別するための１つまたは複数のポリシーは、メモリ４８に格納される。
【００３５】
一般に、システムセキュリティに違反するトランザクションは、周辺機器へのデータの書き込み、周辺機器からのデータの読み出し、周辺機器へのコマンドの設定または送信、または任意のその他の適切な方法での周辺機器へのアクセスを試みる可能性がある。一例として、違反のトランザクションは、周辺機器のセキュリティ保護されたアドレス領域にアクセスを試みる可能性がある。他の例として、トランザクションのアドレス部は許可されるが、メモリデバイスから読み出されたデータは無効である可能性がある。
【００３６】
システムセキュリティに違反するトランザクションを識別すると、プロセッサ４４は適切なセキュリティ対策を行う。例示的な実施形態では、セキュリティ対策は、トランザクションと並行して、バスの１つ以上のラインまたは信号の値をいくつかのダミー値に意図的に強制することによってトランザクションを中断することを含む。ＳＰＩおよび他のバスの許可されていないトランザクションの中断に対する技術は、例えば、２０１９年８月１日の米国特許出願公開第２０１９／００２３６２８１号に記載されており、参考文献としてここに併記する。
【００３７】
［デュアル／クワッドＳＰＩバスを用いたセキュリティシステム］
図２は、本明細書で説明された他の実施形態による、セキュリティ保護されたシステム１００を概略的に示すブロック図である。
【００３８】
セキュリティ保護されたシステム１００とセキュリティ保護されたシステム２０は類似しており、同じ原理で動作する。後述のように、システム１００とシステム２０の主な違いは、システム２０ではＳＰＩバスがシングルモードで動作し、システム１００ではＳＰＩバスがデュアルモードまたはクアッドモードで動作することである。基本的に、セキュリティ保護されたシステム１００は、セキュリティ保護されたシステム２０と同じ要素を含み、これらは、デュアルモードおよびクアッドモードをサポートするように変えられている。
【００３９】
セキュリティ保護されたシステム１００では、ホスト機器１２４、周辺機器１２８、およびセキュリティ装置１３２は全て、デュアルＳＰＩおよびクアッドＳＰＩ半二重動作モードをサポートするＳＰＩバス１３６に接続される。
【００４０】
ＳＰＩデュアルモードでは、ＭＯＳＩおよびＭＩＳＯラインはＳＩＯ０およびＳＩＯ１と表示されるシリアルＩ／Ｏ（ＳＩＯ）ラインとして用いられ、単一のクロックサイクルで周辺機器からホスト機器に２ビットを転送する。ホストは、ＭＯＳＩラインを介して周辺機器にコマンドを送信することでトランザクションを開始する。ホスト機器は、ＭＯＳＩラインのみを介してトランザクションアドレスのサイクルごとに１ビットを送信するか、ＭＯＳＩラインとＭＩＳＯラインの両方を介してクロックサイクルごとに２アドレスビットを送信する。デュアルモードを用いると、ホスト機器１２４は、セキュリティ保護されたシステム２０のシングルモードＳＰＩバスでサポートされたデータレートの２倍のレートで周辺機器（例えば、ＳＰＩフラッシュデバイス）からデータを読み出すことができる。
【００４１】
ＳＰＩクアッドモードでは、ＳＩＯ２およびＳＩＯ３と表示される２つのＩ／Ｏラインが追加で用いられるため、単一のクロックサイクルで周辺機器からホスト機器に４データビットを転送するようにサポートする。ホスト機器１２４は、ＭＯＳＩラインのみを介してコマンド、アドレス、またはその両方のサイクルごとに１ビットを送信するか、または２つまたは４つのラインを介してサイクルごとに２または４ビットを送信することができる。クアッドモードを用いると、ホスト機器１２４は、セキュア保護されたシステム２０のシングルモードＳＰＩバスと比較してデータレートの４倍のレートでフラッシュデバイスからデータを読み出すことができる。
【００４２】
セキュリティ装置１３２は、出力サンプラー１５２および入力サンプラー１５６を含む。図２の例では、ホスト機器１２４は、ＭＯＳＩラインを介して周辺機器１２８にコマンド、アドレス、およびデータを送信し、デュアルモードでＳＩＯ０とＳＩＯ１ライン介し、クアッドモードでＳＩＯ０〜ＳＩＯ３ラインを介して、周辺機器からデータを受信するものとされる。この構成では、出力サンプラー１５２はバスインターフェース１４０を介してＭＯＳＩラインを受信し、入力サンプラー１５６は、デュアルモードでバスインターフェースを介してラインＳＩＯ０とＳＩＯ１を受信するか、クアッドモードで全てのＳＩ０〜ＳＩ３を受信する。他の実施形態では、出力サンプラー１５２は、ＳＩ０〜ＳＩ３ラインを受信し、デュアルモードで２つのＳＩ０およびＳＩ１ライン、またはクアッドモードで全てのＳＩＯ０〜ＳＩＯ３ラインをサンプリングする。
【００４３】
一般に、出力サンプラー１５２および入力サンプラー１５６は、同じトランザクションに対してデュアルモードとクアッドモードで異なるサンプリングシーケンスを実行する。したがって、入力サンプラーと出力サンプラーは、デュアルモードとクアッドモードに応じて、トランザクションシーケンスに従い、関連するラインを介してコマンド、アドレス、およびデータをサンプリングするようになる。
【００４４】
入力サンプラー１５２は、ＩＳ＿ＣＬＫと表示されるクロック信号５８を用いて、トランザクションの関連部分で関連するバスラインをサンプリングする。サンプリングされたコマンドおよび／またはアドレスに基づいて、出力サンプラー１５２は、ＣＬＫ＿ＳＥＬＥＣＴ信号１６２を生成し、ＳＰＩ  ＣＬＫ信号、ＤＬ＿ＣＬＫと表示される遅延クロック信号１６６、およびＩＮＶ＿ＣＬＫと表示される反転クロック信号１６８のうちの１つをＩＳ＿ＣＬＫ１５８に出力するようにセレクタ１６０を制御する。ＤＬ＿ＣＬＫおよびＩＮＶ＿ＣＬＫは、それぞれＤＬ１７０およびインバータ論理ゲート１７２を用いて、ＳＰＩ  ＣＬＫから生成される。
【００４５】
セキュリティ保護されたシステム１００は、セキュリティ保護されたシステム２０のプロセッサ４４と同様に機能するプロセッサ１４４を含む。プロセッサ１４４は、出力サンプラー１５２および入力サンプラー１５６からトランザクション情報を受信し、トランザクションが、例えば、メモリ１４８に格納されたセキュリティポリシーの中の、セキュリティポリシーに違反するかどうかを判定する。トランザクション違反の検出に応答して、プロセッサ１４４は、上記のように、適切なセキュリティ対策を講じる。
【００４６】
図１および図２のセキュリティ保護されたシステム２０と１００、ホスト機器２４と１２４、周辺機器２８と１２８、およびセキュリティ装置３２と１３２の構成は、概念を明確にするために選択された構成例である。他の実施形態では、任意の他の適切なセキュリティ保護されたシステム、ホスト機器、周辺機器、およびセキュリティ装置の構成も用いられることができる。
【００４７】
様々なインターフェース、アドレス指定回路、タイミングシーケンス（ｔｉｍｉｎｇ  ａｎｄ  ｓｅｑｕｅｎｃｉｎｇ）回路、およびデバッグ回路など、本発明の原理を理解するために必要ではない要素は、明確にするために図面から省略されている。
【００４８】
セキュリティデバイス３２および１３２の種々の要素は、１つ以上の特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの任意の適切なハードウェアを用いて実装されることができる。いくつかの実施形態では、セキュリティ装置デバイス３２および１３２のいくつかの要素は、ソフトウェア要素を用いて、またはハードウェア要素とソフトウェア要素の組み合わせを用いて実装されることができる。
【００４９】
図１のメモリ４８および図２のメモリ１４８は、例えば、ランダムアクセスメモリ（ＲＡＭ）または不揮発性メモリなどの任意の適切な技術の任意の適切なストレージを含むことができる。
【００５０】
一般に、プロセッサ４４および１４４のそれぞれは、本明細書に記載の機能を実行するようにソフトウェアでプログラムされた汎用プロセッサを含む。ソフトウェアは、例えば、ネットワークを介して、電子形式で関連するプロセッサにダウンロードされてもよく、あるいは、代替的または追加的に、磁気、光学、または電子メモリなどの非一時的な有形媒体に提供および／または格納されてもよい。
【００５１】
本開示および特許請求の範囲において、それぞれのバスインターフェース４０および１４０を除く、セキュリティ装置３２およびセキュリティ装置１３２の全ての要素は、総称して「回路」と呼ばれる。図１（図２）では、回路は、プロセッサ４４（１４４）、メモリ４８（１４８）、出力サンプラー５２（１５２）、入力サンプラー５６（１５６）、セレクタ６０（１６０）、ＤＬ７０（１７０）、およびインバータ論理ゲート７２（１７２）を含む。
【００５２】
［遅延クロックを用いたトランザクションのタイミング図］
図３は、本明細書で説明された実施形態による、読み込みトランザクション中に生成されるさまざまなバスおよびクロック信号を概略的に示すタイミング図である。
【００５３】
図３では、読み出しトランザクションは、図１のセキュリティ保護されたシステム２０のＳＰＩバス３６を介して実行される。読み出しトランザクションは、ホスト機器２４により開始され、ＳＰＩバス３６を介してＳＰＩフラッシュデバイス（２８）からデータを読み出す。セキュリティ装置３２は、読み出しトランザクションの間、ＭＯＳＩおよびＭＩＳＯバスラインを監視する。
【００５４】
図３では、ホスト機器２４は、チップセレクト（ＣＳ）信号２００を生成し、フラッシュデバイス２８を選択する。ホスト機器２４はＳＰＩ  ＣＬＫ信号２０４をさらに生成し、フラッシュデバイス２８とシリアル通信する。
【００５５】
図３の例では、ホスト機器２４は、ＭＯＳＩラインを介してフラッシュデバイス２８に、ＣＯＭＭＡＮＤと表示されるコマンド２０８と、ＡＤＤＲＥＳＳと表示されるアドレス２１２を送信する。この例では、コマンド２０８は、フラッシュデバイスにアドレス２１２から読み出すように指示する読み取りコマンドを含む。フラッシュデバイスは、要求されたデータ２１６（ＤＡＴＡと表示される）を要求し、それをＭＩＳＯ回線を介してホストデ機器２４に送信する。
【００５６】
この例では、コマンド２０８は８ビットを含むことができ、アドレス２１２は３２ビットを含むことができ、データ２１６は「ｎ」ビットを含むことができる。データビットの数ｎは、８ビットの任意の適切な整数倍、例えば、ｎ＝３２ビットを含み得る。また、他の適切なコマンド、アドレス、およびデータ長も用いることができる。図３では、ホスト機器は、ＳＰＩ  ＣＬＫ信号２０４の立ち上がりエッジと同期して、コマンド２０８およびアドレス２１２のビットを送信する。出力サンプラー５２は、ＳＰＩ  ＣＬＫ信号２０４の立ち下がりエッジでコマンド２０８およびアドレス２１２のビットをサンプリングする。
【００５７】
周辺機器によってＭＩＳＯラインを介してホスト機器に送信されたデータ２１６のビットは、通常、ＳＰＩ  ＣＬＫ信号２０４の立ち上がりエッジに同期されると予期される。データビットは、ＳＰＩ  ＣＬＫの立ち下がりエッジに応答してプッシュされる。確実にサンプリングするために、ＳＰＩ  ＣＬＫ信号２０４の立ち上がりエッジは、中央ビットインスタンス（ｍｉｄ−ｂｉｔ  ｉｎｓｔａｎｃｅ）に最適に位置合わせされるべきである。これは、クロック信号の立ち上がりエッジが十分なセットアップ時間の後に発生する必要があることを意味する。しかしながら、図3では、ＳＰＩ  ＣＬＫの立ち上がりエッジ（２２０）は、セットアップ時間の要件を満たしていない。ＳＰＩ  ＣＬＫを遅延期間２２４、遅延させることにより、データビットは十分なセットアップ時間でサンプリングされることができる。いくつかの実施形態では、遅延期間２２４の長さは、予め定義されており、例えば、周辺機器のベンダーによって提供される情報から推測される。この遅延は、アドレスを受信してからＭＩＳＯラインに第１のデータビットを出力するまでの間のフラッシュデバイスで生じた応答時間を反映している。
【００５８】
データ２１６を確実にサンプリングするために、セキュリティ装置３２は、その立ち上がりエッジがデータ２１６の中央ビットインスタンスに位置合わせされている遅延クロック信号２２８（ＤＬ＿ＣＬＫと表示される）を用いてデータ２１６をサンプリングする。図に示されるように、ＤＬ＿ＣＬＫ２２８の立ち上がりエッジ２３２は、データ２１６の第１の中央ビット時間に位置合わせされる。図３のＤＬ＿ＣＬＫ２２８は、図１のＤＬ＿ＣＬＫ６６（および図２のＤＬ＿ＣＬＫ１６６）と見なされることができる。
【００５９】
図３では、ＣＬＫ＿ＳＥＬＥＣＴ信号２３６は、上記の図１で説明したように、３つのクロック源を区別する２ビット信号である。この例では、ＣＬＫ＿ＳＥＬＥＣＴ信号は、コマンドおよびアドレス情報のサンプリングがＳＰＩ  ＣＬＫに基づいている期間と、読み出しデータのサンプリングがＤＬ＿ＣＬＫ６６に基づいている期間とを区別する。図３のＣＬＫ＿ＳＥＬＥＣＴ信号２３６は、図１のＣＬＫ＿ＳＥＬＥＣＴ信号６２（および図２のＣＬＫ＿ＳＥＬＥＣＴ信号１６２）と見なされることができる。
【００６０】
図３は、図１のセキュリティ保護されたシステム２０のバス信号とクロック信号を示しているが、同様の動作が、２つまたは４つのデータビットがホスト機器に送信（遅延）されて、遅延クロックを用いて確実にサンプリングされる図２のセキュリティ保護されたシステム１００にも用いられる。
【００６１】
［選択的な遅延クロック信号を用いてバストランザクションを監視することによるセキュリティ保護されたバス通信の方法］
図４は、本明細書で説明された実施形態による、選択的な遅延クロック信号を用いてバスを介してトランザクションを監視することにより、セキュリティ保護されたバス通信を実現する方法を概略的に示すフローチャートである。
【００６２】
この方法は、セキュリティ保護されたシステム２０のセキュリティ装置３２によって実行されるものとして説明される。しかしながらこの方法は、セキュリティ保護されたシステム１００のセキュリティ装置１３２にも同様に適用可能である。
【００６３】
この方法を説明する際に、ホスト機器２４がフラッシュデバイス２８と通信するものとされる。この例では、明確にするために、ホストは、フラッシュデバイスの特定のアドレスにデータを書き込むための書き込みトランザクションを開始、またはフラッシュデバイスの特定のアドレスに格納されたデータを読み出すための読み出しトランザクションを開始することができる。
【００６４】
書き込みトランザクションでは、セキュリティ装置３２は、ＳＰＩ  ＣＬＫを用いて、ＭＯＳＩラインを介して書き込まれるコマンド、アドレス、およびデータをサンプリングする。読み出しトランザクションでは、セキュリティ装置は、遅延クロック（例えば、ＤＬ＿ＣＬＫ６６）を用いて、ＭＯＳＩラインを介して読み出されたデータをサンプリングする。
【００６５】
この方法は、ＳＰＩ  ＣＬＫ選択ステップ３００において、出力サンプラー５２がセレクタ６０を制御して、入力サンプラー５６によってＳＰＩバス３６のＭＩＳＯラインを介してトランザクションを監視するために用いられる、ＳＰＩ  ＣＬＫ信号を選択することから始まる。コマンドサンプリングステップ３０４において、出力サンプラー５２は、ＳＰＩバスのＭＯＳＩラインを（ＳＰＩ  ＣＬＫを用いて）監視し、トランザクションのコマンド部をサンプリングする。
【００６６】
コマンドタイプ（この例では、コマンドタイプはメモリ読み出しまたはメモリ書き込みとすることができる）に基づいて、出力サンプラー５２は、トランザクションがアドレス部、データ部、またはその両方を含むかどうかを決定する。さらに、コマンドタイプに基づいて、出力サンプラーは基になるトランザクションの順序とタイミングを決定する。例えば、予め保存されたトランザクション情報を用いて、出力サンプラーは、トランザクションのアドレス部とデータ部に関連付けられたクロックサイクルを識別する。この例では、トランザクションは書き込みコマンドまたは読み出しコマンドで構成され、いずれも後にアドレス部が続く。
【００６７】
アドレス監視ステップ３０８において、出力サンプラー５２は、ＭＯＳＩラインを介してトランザクションのアドレス部を（ＳＰＩ  ＣＬＫを用いて）サンプリングする。プロセッサ４４は、出力サンプラーからサンプリングされたアドレスを受信し、メモリ４８の１つ以上のセキュリティポリシーを用いて、サンプリングされたアドレスがシステムセキュリティに違反するかどうか、例えば、フラッシュデバイスの保護されたアドレス領域にアクセスすることによって判定する。
【００６８】
ステップ３０８においてアドレス違反が発生しない場合、本方法はクロッククエリステップ３１２に進み、ステップ３１２で出力サンプラー５２は、トランザクションのデータ部のサンプリングが遅延クロックを必要とするかどうかをチェックする。一実施形態では、ステップ３１２での決定は、コマンドタイプに基づく。例えば、出力サンプラーは、フラッシュデバイスからデータを読み出し、遅延クロックを用いてＭＩＳＯラインを介してデータをサンプリングするトランザクションを決定することができる。
【００６９】
ステップ３１２において、遅延クロックが必要であるとの検出に応答して、出力サンプラーは、クロック選択ステップ３１６において、セレクタ６０が遅延クロック（例えば、ＤＬ＿ＣＬＫ６６またはＩＮＶ＿ＣＬＫ６８）を出力するように制御する。そうでなければ、出力サンプラーは、セレクタ６０がＳＰＩ  ＣＬＫを出力し続けるように制御する。
【００７０】
データ監視ステップ３２０において、入力サンプラー５６は、トランザクションのデータ部をサンプリングする。読み出しトランザクションのデータ部をサンプリングし、メモリ読み出しコマンドを比較するために、セレクタ６０は、上述のように、遅延クロックを選択する。任意の他のコマンドタイプには、入力サンプラー５６がＳＰＩクロックを用いてデータ部をサンプリングする。プロセッサ４４は、入力サンプラー５６（読み出しコマンド）または出力サンプラー５２（書き込みコマンド）からサンプリングされたデータを受信し、メモリ４８のセキュリティポリシーを用いて、そのデータが有効であるか無効であるかを判定する。
【００７１】
ステップ３２０で、プロセッサ４４がデータ違反がないことを検出すると、本方法は、ステップ３００に戻り、ＳＰＩバス３６のその後のトランザクションを監視する。ステップ３２０でデータが無効である場合、またはステップ３０８においてアドレスが無許可であることが判明した場合、本方法はセキュリティアプリケーションステップ３２４に進み、ステップ３２４でプロセッサ４４は任意の適切なセキュリティ対策を講じる。ステップ３２４の後、本方法はステップ３００に戻る。
【００７２】
図４の方法では、周辺機器は、書き込みおよび読み出しトランザクションをサポートするＳＰＩフラッシュデバイスが含まれているものとされる。他の実施形態では、ＳＰＩフラッシュデバイスは、追加のコマンド、例えば、構成およびステータス読み出しコマンドをサポートすることができる。さらに、周辺機器は、ＳＰＩフラッシュデバイス以外の別のタイプまたはデバイスを含んで他のタイプのコマンドをサポートすることもできる。このような場合、図４の方法を状況に応じて拡張することができる。
【００７３】
［遅延線の校正］
図５は、本明細書で説明された実施形態による、調整可能な遅延線（ＤＬ）の校正方法を概略的に示すフローチャートである。
【００７４】
いくつかの実施形態では、本方法は、セキュリティ装置３２または１３２で用いられて、ＤＬ７０または１７０をそれぞれ校正する。この方法は、プロセッサ４４によって実行されるものとして説明されるが、同様にプロセッサ１４４によって実行されてもよい。
【００７５】
本方法を説明するにあたり、ＤＬ７０は複数の選択可能な遅延設定をサポートし、各遅延設定は対応する遅延値に関連付けられているものとされる。所定のＤＬ設定に関連付けられた実際の遅延は、供給電圧や温度などの環境の変化によって変化する可能性があることに留意されたい。
【００７６】
さらに、ＤＬは遅延線モードまたはリングオシレータモードで動作するように構成されることができるものとされる。遅延線モードでは、ＤＬは選択された遅延設定に従って入力信号にタイムシフトを提供する。リングオシレータモードでは、ＤＬの出力は、フィードバックされ、入力に論理的に反転される。リングオシレータモードに設定される場合、ＤＬは、デューティサイクル２Ｔの方形波信号を出力するリングオシレータとして動作する。ここでのＴはＤＬの時間遅延を表している。さらに、ＤＬ（またはセキュリティ装置の他の適切な構成要素）は、リングオシレータモードで生成された方形波の周波数を測定する処理ロジックを含むものとされる。
【００７７】
この方法は、プロセッサ４４が、遅延要件ステップ３４０において、Ｄｒｅｑと表示される必要な遅延値を受信することから開始し、この遅延値は、通常、周辺機器２８のタイプによって決まる。必要な遅延は、セキュリティ装置に予めプログラムされるか、または例えばホスト機器２４によってプロセッサに提供されることができる。先の校正が行われている場合、必要な遅延は、先の校正で決定されたように、ＤＬの所定の遅延設定に対応する必要がある。
【００７８】
リングオシレータモード設定ステップ３４４において、プロセッサ４４は、ＤＬがリングオシレータモードで動作するように構成する。リングオシレータモードでは、プロセッサは１つ以上のＤＬ遅延設定をテストし、対応するＤＬ遅延値を測定する。プロセッサは、必要な遅延Ｄｒｅｑに最も近い実際の遅延値となる遅延設定を選択する。
【００７９】
初期遅延設定ステップ３４８において、プロセッサは、ＤＬをサポートされている遅延設定の１つに構成する。例えば、プロセッサは、最小または最大の遅延値、または中間の遅延値に対応する遅延設定を選択することができる。他の実施形態では、プロセッサは、先の校正セッションで必要な遅延値に最も近い遅延設定で開始することができる。
【００８０】
遅延推定ステップ３５２において、ＤＬは、まず、リングオシレータモードで生成された方形波の周波数（ＦＲＱと表示される）を測定する。プロセッサ４４は、測定されたＦＲＱ値を受け取り、Ｔｅ＝１／（２・ＦＲＱ）として、Ｔｅで表示される推定遅延値を計算する。
【００８１】
終了チェックステップ３６０において、プロセッサ１０は、推定遅延値Ｔｅが必要な遅延値Ｄｒｅｑに十分に近いかどうかをチェックする。例示的な実施形態では、プロセッサは、ＴｅとＤｒｅｑ間の時間差が予め定義された時間制限より小さいかどうかをチェックする。
【００８２】
ステップ３６０の結果が「はい」の場合、プロセッサは、遅延線設定ステップ３６４において、ＤＬが遅延線モードで動作するように構成し、ＤＬの遅延をＴｅに対応するテスト済みの最近の遅延設定に構成し校正が成功して完了し、本方法を終了する。そうでない場合、プロセッサ４４はループ終了ステップ３６８に進み、ステップ３６８においてプロセッサは、サポートされている全ての遅延設定がテストされたかどうかをチェックする。
【００８３】
ステップ３６８の結果が「いいえ」の場合、プロセッサは、ステップ３４８に戻り、ＤＬ（まだリングオシレータモードにある）を、現在の校正セッションでまだテストされていない遅延設定の１つに構成する。プロセッサは、例えば、順次選択または二分探索アプローチを使用するなど、任意の適切な方法を使用して、後続の遅延設定を選択することができる。プロセッサは、任意の適切な方法、例えば、順次選択を用いて、または二分検索法を用いて、後続の遅延設定を選択することができる。
【００８４】
ステップ３６８の結果が「はい」の場合、サポートされている全ての遅延設定がテストされたが、対応する遅延値のいずれも、必要な遅延値Ｄｒｅｑに十分に近いものではなかった。この場合、プロセッサは、エラー報告ステップ３７６においてエラーを発し、本方法は終了する。
【００８５】
いくつかの実施形態では、プロセッサは、電源投入時またはリセット時に一度だけ図５の方法を用いてＤＬ７０を校正する。また他の実施形態では、例えば、温度や供給電圧などの環境条件または動作条件の変化により、電源投入時の校正でＤＬが構成された遅延が不正確になり、誤った監視やシステムセキュリティのレベルの低下を招く可能性がある。これらの実施形態では、図５の方法は、随時、例えば定期的に、または環境／動作条件の著しい変化の検出に基づいて実行されることができる。例えば、先の校正以降、温度（および／または供給電圧）が予め定義された制限を超えて変化したとき、再校正を実行する。
【００８６】
ＤＬの校正はリングオシレータモードで実行されるため、ＤＬは校正期間中、監視用の遅延線として機能できない。高いレベルのシステムセキュリティを維持するために、プロセッサは、ＤＬにより生成された遅延クロックを用いて監視されるトランザクションが予期されないときに、ＤＬを校正するように構成される。例えば、プロセッサは、トランザクションが予期されないとき、書き込みトランザクションのみが予期されるとき、または低速のクロック読み出しトランザクションが予期されるときに、ＤＬを校正することができる。
【００８７】
いくつかの実施形態では、任意の所望の時間にＤＬの校正をサポートするために、セキュリティ装置は２つのＤＬモジュールを含む。１つのＤＬ（ＤＬ１）が監視に用いられたとき、もう１つのＤＬ（ＤＬ２）が校正に用いられることができる。プロセッサは、ＤＬ２の校正を決定し、次いで、２つのＤＬの役割を交換し、最近校正調整されたＤＬ２が監視に用いられ、ＤＬ１が校正に用いられることができるようになることができる。その後の適切な時間において、プロセッサはＤＬ１を再校正することを決定し、ＤＬの役割を再度交換する可能性がある。いくつかの実施形態では、プロセッサは、安全な期間の間に、ＤＬ１およびＤＬ２の役割を交換し、ＤＬが用いられていれない間、例えば、ＣＳラインが周辺機器を選択していないときに、ＤＬ１とＤＬ２間の役割を交換する。
【００８８】
上記の実施形態は例として与えられており、他の適切な実施形態も用いることができる。例えば、上記の実施形態では、特定のタスクパーティションが、出力サンプラー５２、入力サンプラー５６、およびプロセッサ４４の間にあるものとされるが、例えば、入力および出力サンプラーは主に信号サンプリングおよびクロック選択を実行し、プロセッサ４０は主にトランザクション違反を検出し、それに応じてセキュリティ対策を講じる。このタスクパーティションは必須ではなく、他の適切なパーティションも用いることができる。
【００８９】
上記の実施形態では、セキュリティ装置３２（および１３２）は、単一のＤＬを含む。他の実施形態では、セキュリティ装置は、複数のＤＬを含み、それぞれが異なる必要な時間遅延に校正されることができる。これは、例えば、異なるトランザクションが確実にサンプリングするために、異なるそれぞれの時間遅延を必要とするときに役立つ可能性がある。
【００９０】
上記の実施形態は、主に、ＳＰＩバスの信号を監視することに関するものである。他の実施形態では、例えば、データラインおよびクロックラインのみを含むＩ２Ｃバスなどの他の適切なバスも用いることができる。
【００９１】
上述の実施形態は、例として引用されており、以下の特許請求の範囲は、上述に具体的に開示および記載された内容に限定されないことに留意されたい。むしろ、この範囲は、上述の様々な特徴のコンビネーションおよびサブコンビネーションの両方、ならびに前述の説明を読んで当業者が知るであろう、先行技術に開示されていないその変形および修正を含む。参照することにより本特許出願に組み込まれた文書は、組み込まれた文書の用語の定義が本明細書で明示的または暗黙的になされた定義と矛盾する場合を除いて、本出願の不可欠な部分と見なされ、本明細書の定義のみが考慮されるべきである。
【符号の説明】
【００９２】
ＣＳ  チップセレクト
ＣＬＫ、ＳＰＩ  ＣＬＫ  クロック
ＭＯＳＩ  マスターアウトスレーブイン
ＭＩＳＯ  マスターインスレーブアウト
ＤＬ  遅延線
ＤＬ＿ＣＬＫ  遅延クロック信号
ＩＮＶ＿ＣＬＫ  反転クロック信号
ＩＳ＿ＣＬＫ  入力サンプラークロック信号
ＣＬＫ＿ＳＥＬＥＣＴ  セレクト信号
ＭＯＳＩ／ＳＩＯ０  マスターアウトスレーブイン
ＭＩＳＯ／ＳＩＯ１  マスターインスレーブアウト
ＳＩＯ２、ＳＩＯ３  シリアルＩ／Ｏライン
２０  セキュリティ保護されたシステム
２４  ホスト機器
２８  周辺機器
３２  セキュリティ装置
３６  ＳＰＩバス
４０  バスインターフェース
４４  プロセッサ
４８  メモリ
５２  出力サンプラー
５６  入力サンプラー
５８  入力サンプラークロック信号
６０  セレクタ
６２  ＣＬＫ＿ＳＥＬＥＣＴ信号
６６  クロック信号
６８  クロック信号
７０  遅延線
７２  インバータ論理ゲート
１００  セキュリティ保護されたシステム
１２４  ホスト機器
１２８  周辺機器
１３２  セキュリティ装置
１３６  ＳＰＩバス
１４０  バスインターフェース
１４４  プロセッサ
１４８  メモリ
１５２  出力サンプラー
１５６  入力サンプラー
１５８  入力サンプラークロック信号
１６０  セレクタ
１６２  ＣＬＫ＿ＳＥＬＥＣＴ信号
１６６  遅延クロック信号
１６８  反転クロック信号
１７０  遅延線
１７２  インバータ論理ゲート
２００  チップセレクト（ＣＳ）信号
２０４  ＳＰＩ  ＣＬＫ信号
２０８  コマンド
２１２  アドレス
２１６  データ
２１８  セットアップ時間
２２０  立ち上がりエッジ
２２４  遅延期間
２２８  遅延クロック信号
２３２  立ち上がりエッジ
２３６  ＣＬＫ＿ＳＥＬＥＣＴ信号
３００、３０４、３０８、３１２、３１６、３２０、３２４  ステップ
３４０、３４４、３４８、３５２、３６０、３６４、３６８、３７６  ステップ
【図１】
2022002390.tif 000003
【図２】
2022002390.tif 000004
【図３】
2022002390.tif 000005
【図４】
2022002390.tif 000006
【図５】
2022002390.tif 000007