(57)【要約】      （修正有）【課題】バスを介して周辺デバイスを安全にアクセスする装置を提供する。【解決手段】システム２０において、バスを介して周辺デバイスを安全にアクセスするための安全装置３６は、インターフェースとプロセッサーとを含む。インタフェースは、バスを介して通信するように設定される。プロセッサー４４は、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、バスの少なくとも１つのラインに強制的に１つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させるように設定される。【選択図】図１
2019023896.tif 000002
【特許請求の範囲】
【請求項１】
インターフェースを介して、プロセッサーを備える安全装置をバスに接続するステップと、
バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、前記プロセッサーを介して前記バスの少なくとも１つのラインに強制的に１つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部の前記トランザクションを中断させるステップと、
を備えることを特徴とする、バスを介して周辺デバイスを安全にアクセスするための方法。
【請求項２】
前記バスは、デフォルト論理値を有するオープンドレインまたはオープンコレクタを備え、及び前記プロセッサーを介して前記バスの少なくとも１つのラインにデフォルト論理値に相反するダミー値を強制的に書き込むステップを備えることを特徴とする、請求項１に記載の方法。
【請求項３】
ダミー値を強制的に書き込むステップは、前記プロセッサーを介して前記バスマスタデバイスまたは前記周辺デバイスによって少なくとも１つのラインに書き込まれた対応値を上書きするステップを備えることを特徴とする、請求項１に記載の方法。
【請求項４】
ダミー値を強制的に書き込むステップは、前記バスマスタデバイスと前記周辺デバイスの間の通信に使用される前記バスの既存のラインのみに実行されることを特徴とする、請求項１に記載の方法。
【請求項５】
前記プロセッサーを介して、前記バスを監視することによって、中断させるべきトランザクションを検出するステップを備えることを特徴とする、請求項１に記載の方法。
【請求項６】
前記プロセッサーを介して、前記バスの外部にある補助インタフェースを介して前記バスマスタデバイスと通信することによって、中断させるべきトランザクションを検出するステップを備えることを特徴とする、請求項１に記載の方法。
【請求項７】
前記トランザクションが中断された後に、前記プロセッサーを介して前記バスの正常動作を再開するステップを備えることを特徴とする、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１５年６月８日に出願された米国仮特許出願第６２／１７２，２９８号の利益を主張し、上記出願の開示全体を参照により本明細書に組み込まれる。
【０００２】
本発明は一種の電子システムセキュリティーに関わり、特に周辺デバイスへの安全なアクセスを確保するの方法及びシステムに関する。
【背景技術】
【０００３】
電子システムは、ホストデバイスと周辺デバイスの間に通信するために、様々のバスインターフェースを使用する。バスインターフェースの例としては、Ｉ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ−Ｃｉｒｃｕｉｔ）バス及びＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスが含まれる。Ｉ２Ｃバスのスペックは、例えば「Ｉ２Ｃバス仕様およびユーザマニュアル（Ｉ２Ｃ  ｂｕｓ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ａｎｄ  ｕｓｅｒ  ｍａｎｕａｌ）」、ＵＭ１０２０４、ＮＸＰ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒｓ、バージョン６、２０１４年４月４日という文献に記載され、その文献を参照により本明細書に組み込まれる。
【発明の概要】
【０００４】
本発明で説明される実施例は、インターフェースおよびプロセッサーを含む装置を提供する。そのインターフェースは、バスを介して通信するように構成され、プロセッサーは、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、バスの少なくとも１つのラインに強制的に１つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させるように設定される。
【０００５】
１つの実施例では、プロセッサーは、バスのデータラインにダミー値を強制的に書き込むことによって、データラインを介して周辺デバイスに送信または周辺デバイスから受信されたそれぞれのデータ値の転送を中断させるように設定される。追加的または代替的に、プロセッサーは、バスのクロックラインにダミー値を強制的に書き込むことによって、トランザクションにおいて使用されるクロック信号を中断させるように設定される。さらに追加的または代替的に、プロセッサーは、バスのチップ選択ライン上にダミー値を強制的に書き込むことによって、バスマスタデバイスによる周辺デバイスの選択を中断するように設定される。
【０００６】
一部の実施例では、バスは、デフォルト論理値を有するオープンドレインまたはオープンコレクタを備え、且つプロセッサーは、バスの少なくとも１つのラインにデフォルト論理値と相反するダミー値を強制的に書き込むように設定される。
【０００７】
一部の実施例では、プロセッサーは、ダミー値を強制的に書き込むことによって、バスマスタデバイスまたは前記周辺デバイスの少なくとも１つのラインに書き込まれた対応値を上書きするように設定される。１つの例示的な実施例では、プロセッサーは、バスマスタデバイスまたは周辺デバイスの駆動強度より強い駆動強度で、少なくとも１つのラインを駆動することによって、バスマスタデバイスまたは周辺デバイスによって書き込まれた前記対応値を上書きするように設定される。もう１つの実施例では、装置は、少なくとも１つの抵抗器を有し、その抵抗器は、少なくとも１つのラインに挿入され、バスマスタデバイスまたは周辺デバイスによって書き込まれた値を、ダミー値に応じて減衰させるように設定される。
【０００８】
一部の実施例では、プロセッサーは、バスマスタデバイスと周辺デバイスの間の通信に使用されるバスの既存のラインのみにダミー値を強制的に書き込むように設定される。一部の実施例では、プロセッサーは、バスを監視することによって、中断させるべきトランザクションを検出するように設定される。１つの実施例では、プロセッサーは、バスの外部にある補助インターフェースを介してバスマスタデバイスと通信することによって、中断させるべきトランザクションを検出するように設定される。
【０００９】
開示された１つの実施例では、プロセッサーは、装置がリセットされるまで、無制限にダミー値を強制的に書き込むように設定される。もう１つの実施例では、プロセッサーは、トランザクションを検出した後に、一定期間内にダミー値を強制的に書き込むように設定される。また１つの実施例では、プロセッサーは、トランザクションが中断された後に、前記バスの正常動作を再開するように設定される。
【００１０】
本発明で説明される実施例は、さらに周辺デバイスと安全装置を備えるシステムを提供する。その周辺デバイスは、バスを介して１つまたは複数のバスマスタデバイスにアクセス可能であり、安全装置は、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、バスの少なくとも１つのラインに強制的に１つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させるように設定される。
【００１１】
実施例によって、本発明はさらに１つの方法を提供する。その方法は、バスに接続された安全装置を使用し、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、トランザクションを中断させることを決定することと、バスの少なくとも１つのラインに強制的に１つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させることを含む。
【００１２】
本発明は、以下の実施例に対する詳細な説明を、図面と合わせて、より完全に理解されるであろう。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施例による、複数のデバイスがＩ２Ｃバスを介して通信する安全なシステムを概略的に示すブロック図である。
【図２】図２は、本発明の実施例による、Ｉ２Ｃバスを介して周辺デバイスへのアクセスを保護する方法を概略的に示すフローチャートである。
【図３】図３は、本発明の代替の実施例による、複数のデバイスがＳＰＩバスを介して通信する安全なシステムを概略的に示す的ブロック図である。
【図４】図４は、本発明の代替の実施例による、複数のデバイスがＳＰＩバスを介して通信する安全なシステムを概略的に示す的ブロック図である。
【発明を実施するための形態】
【００１４】
本発明で説明される実施例は、バスインターフェースを介して周辺デバイスへのアクセスを確保するための改良された方法および装置を提供する。周辺デバイスは、例えば、暗号エンジン、機密データを格納するメモリデバイス、またはバスを介してアクセス可能な他の適切なデバイスを含むことができる。
【００１５】
開示された一部の実施例では、安全装置は、バス上のトランザクションを監視し、ホストデバイスまたはバスマスタデバイスが無許可に周辺デバイスにアクセスを試みるトランザクションを検出する。トランザクションは、任意の適切な基準または方針を使用して、許可または無許可なものとして分類することができる。
【００１６】
無許可なトランザクションを検出する時、安全装置は、トランザクションと並行して、意図的にバスの１つ以上のラインまたは信号の値を、あるダミー値に強制的に書き込むことによって、トランザクションを中断させる。ダミー値を強制的に書き込むのことは、例えば、クロック信号、データ信号及び／またはチップセレクト（Ｃｈｉｐ−Ｓｅｌｅｃｔ）信号で実行することができる。
【００１７】
バス上にダミー値を強制的に書き込むことによるトランザクションの中断は、Ｉ２Ｃなどのオープンドレインまたはオープンコレクタバス、ＳＰＩなどのプッシュプルバスなどに適している。トランザクションに並行してバス上にダミー値を強制的に書き込むことは、周辺デバイスへの及び／または周辺デバイスからの通信を中断し、及び／またはそれぞれのクロック信号を中断する。
【００１８】
ここでは、Ｉ２ＣおよびＳＰＩバス上の無許可なトランザクションを中断するためのいくつかの技術について説明する。そして中断後の正常動作を正常に再開するための技術についても説明する。一部の実施例では、安全装置は、バス上でトランザクションを検出することなく、またはバスを監視なしにトランザクションを中断することができる。例えば、安全装置は、このホストが許可されるまで、またはこのホストが許可されない限り、特定のホストのチップセレクトライン上にダミー値を強制的に書き込むことができる。
【００１９】
開示された技術は、事務レベル（ｔｒａｎｓａｃｔｉｏｎ−ｂｙ−ｔｒａｎｓａｃｔｉｏｎ  ｌｅｖｅｌ）で、リアルタイムで周辺デバイスに対する安全な選択的なアクセスを提供する。本明細書で説明される技術の大部分では、トランザクションの識別および中断の両方が、バスの既存の信号を用いてのみ実行される。したがって、開示された技術は、追加のピンまたは相互接続を必要とせず、それによってシステム全体のサイズ及びコストを低減する。
【００２０】
[Ｉ２Ｃバスで周辺デバイスへのアクセスを保護する]
【００２１】
図１は、本発明の実施例の安全なシステム２０を概略的に示すブロック図である。本発明の実施例では、システム２０は、Ｉ２Ｃバス３２に接続されたホストデバイス２４及び周辺デバイス２８を備える。ホストデバイス２４及び周辺デバイス２８は、簡潔するためにホスト及び周辺（ｐｅｒｉｐｈｅｒａｌ）とも記載される。ホスト２４はまた、バスマスタデバイスと呼ばれることもある。
【００２２】
安全装置３６は、Ｉ２Ｃバス上のトランザクションを監視し、ホスト２４またはバスマスタ機能を有する他のデバイスが無許可に周辺デバイスにアクセスを試みるトランザクションを防止することによって、周辺デバイス２８へのアクセスを保護する。安全装置３６は、制御装置またはＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と記載されることもある。本発明の実施例では、安全装置３６は、インターフェース４０と、プロセッサー４４と、メモリー４８とを備え、インターフェース４０は、Ｉ２Ｃバス３２に接続する。プロセッサー４４は、本発明の技術を実行するように設定される。メモリー４８は、１つまたは複数のプロセッサー４４が実行する安全方針を格納するように構成される。
【００２３】
プロセッサー４４は、所定または設定された任意の方針（ｐｏｌｉｃｙ）に従って、トランザクションを無許可なものに分類することができる。無許可なトランザクションは、周辺デバイス２８へのデータの書き込み、周辺デバイス２８からのデータの読み取り、周辺デバイス２８を設定または周辺デバイス２８に命令を送信し、または他の適切な方法による周辺装置へのアクセスを試みることができる。安全装置３６が実行する方針は、ポジティブ方針（例えば、ホワイトリスト）、ネガティブ方針（例えば、ブラックリスト）、デバイスアドレスまたはレジスタのオフセット（ｒｅｇｉｓｔｅｒ  ｏｆｆｓｅｔ）に依存する方針、または他のタイプの方針を含むことができる。
【００２４】
例えば、安全装置３６は、ホストの周辺デバイス２８へのアクセスが許可される前に、ホスト２４のアイデンティティ（ｉｄｅｎｔｉｔｙ）に対する認証を要求することができる。無許可なホストによって実行されたトランザクションは、無許可のトランザクションに判断される。その認証は、例えば、ホストと安全装置の間の応答式プロセス（ｃｈａｌｌｅｎｇｅ−ｒｅｓｐｏｎｓｅ  ｐｒｏｃｅｓｓ）を使用して実行することができる。追加的または代替的に、ホストは、他の適切な方法で自分のアイデンティティを証明し、または安全なブートプロセスを完成することが要求されることがある。
【００２５】
さらに追加的または代替的に、幾つかのタイプのトランザクション（例えば、読み取りトランザクション）は許可されたものとして判断され、他のタイプのトランザクション（例えば、書き込みトランザクション）は無許可なものとして判断されることができる。さらにもう１つの実施例では、周辺デバイスの選択されたアドレスへのアクセスは許可されたものとして判断され、他のアドレスへのアクセスは無許可なものとして判断されることができる。別の実施例として、バス上のビットシーケンス（ｂｉｔ  ｓｅｑｕｅｎｃｅｓ）は無許可なトランザクションとして判断されることができる。
【００２６】
一般的に、プロセッサー４４は、許可されたトランザクションと無許可なトランザクションとを任意の適切な方法で判断することができる。メモリー４８は、トランザクションが許可されているかを判断するための１つまたは複数の方針が格納されている。
【００２７】
Ｉ２Ｃバス３２は、シリアルデータ信号を伝達するシリアルデータ（ＳＤＡ）ラインと、シリアルクロック信号を伝達するシリアルクロック（ＳＣＬ）ラインとを備える。用語“ライン”及び“信号”は、本明細書では交換可能に使用される。ＳＤＡライン及びＳＣＬラインを監視することによって、プロセッサー４４はＩ２Ｃバス上のすべてのトランザクションを監視することができ、且つ無許可なトランザクションを検出することができる。
【００２８】
無許可なトランザクションを検出した後、プロセッサー４４は、Ｉ２Ｃバス３２上のＳＤＡライン及び／またはＳＣＬラインに１つまたは複数のダミー値を強制的に書き込むことによってそのトランザクションを中断する。この機構は、Ｉ２Ｃバスのオープンドレイン／オープンコレクタ構造によって実現されることができる。通常的に、ＳＤＡライン及びＳＣＬラインの両方は、プルアップ抵抗器を使用して、デフォルトで論理的な“１”の状態にプルアップされる。どのデバイスも、他のデバイスによって同時に書き込まれた値にかかわらず、いつでも“０”値を書き込むことによって、ＳＤＡラインまたはＳＣＬラインの論理値を強制的に“０”に変わることができる。
【００２９】
よって、一部の実施例では、無許可なトランザクションを検出すると、安全装置３６中のプロセッサー４４は、インターフェース４０を介して、Ｉ２Ｃバス３２のＳＤＡラインまたはＳＣＬライン上に論理値“０”（デフォルト論理値“１”と相反する値）を強制的に書き込む。本明細書では、“０”値はダミー値と見なされる。ＳＤＡラインに強制的に書き込まれた“０”値は、ホスト２４から周辺デバイス２８への値、またはホスト２４が周辺デバイス２８から読み出された値、若しくはデフォルト論理値“１”などのすべてのデータ値を上書きする。ＳＣＬラインに強制的に書き込まれた“０”値は、クロック信号を停止する。上述のどちらの場合も、トランザクションは中断される。
【００３０】
一部の実施例では、プロセッサー４４は、例えば装置のパワーアップリセットが実行されるまで、無制限に“０”値を強制的に書き込みを続ける。他の実施例では、プロセッサー４４、中断から正常な回復を可能にする、即ち、ホスト２４及び周辺デバイス２８が中断されたトランザクションから回復して正常動作を再開することを可能にする。一部のホスト及び／または周辺デバイス２８は、クロック停止から回復できない。よって、シンプルなホストや周辺デバイス２８でも正常な回復が必要な場合は、ＳＣＬラインではなくＳＤＡラインにダミー値を強制的に書き込むの方が良い。
【００３１】
１つの実施例では、トランザクションが中断された後に通常の動作を再開するため、プロセッサー４４は、バス上でＩ２Ｃ停止（Ｉ２Ｃ  ＳＴＯＰ）またはＩ２Ｃ再起動（Ｉ２Ｃ  ＲＥＳＴＡＲＴ）状態を生成する。本明細書では、Ｉ２Ｃ停止またはＩ２Ｃ再起動状態は、バスがトランザクション開始可能であることを対象デバイスに示すバス信号値の任意のシーケンスを含むことができる。
【００３２】
プロセッサー４４、中断されたトランザクションからの正常に回復を可能にするために様々な技術を使用することができる。１つの実施例では、プロセッサー４４は、一定時間内に強制的に“０”値を書き込み続けることは、無許可なトランザクションを中断するのに充分であると見なされる。任意の長さの予定時間も使用されることができる。例えば、ＳＭバス仕様ではタイムアウトが２５ｍｓと定義される。したがって、ＳＭバスとＩ２Ｃとの応用では、タイムアウトをトリガするために、定義済みの持続時間を少なくとも２５ｍｓに設定するのが理にかなっている。
【００３３】
別の実施例では、プロセッサー４４は、ＳＣＬラインの論理値がハイ（即ち、トグルしていない（ｎｏｔ  ｔｏｇｇｌｉｎｇ））に検出されるまで、一定時間内にＳＤＡライン上に“０”値を強制的に書き込みを続ける。この状態は、ホストがトランザクションを終了または中止したことを示すことができる。プロセッサー４４は、ＳＤＡラインを解放し、場合によってはＩ２Ｃ停止条件を生成することができる。
【００３４】
周辺デバイス２８から読み取ったトランザクションを中断させるのに有用なもう１つ実施例では、安全装置３６を周辺デバイス２８と同様なアドレスを有するＩ２Ｃスレーブとして構成されること。安全装置３６中のプロセッサー４４は、“０”データを使用して、無許可の読み取り要求に応答する。周辺デバイス２８は、プロセッサー４４と平行的にこれらの読み取り要求に応答するが、そのデータ値は、安全装置３６が送信された“０”値によって上書きされる。このプロセスは、例えば停止条件によってホストがトランザクションを中断するまで続く。注意すべきは、Ｉ２Ｃ仕様に従って、Ｉ２Ｃスレーブはデータ送信する時にＡＣＫ／ＮＥＧＡＣＫビットを駆動しない。
【００３５】
読み取りトランザクションと書き込むトランザクションの両方を中断するのに有用な他の実施例では、プロセッサー４４がＳＤＡライン上に強制的に“０”値を書き込むことである。次に、ホスト２４がこれを中断として識別していない場合に、ことトランザクションは、周辺デバイス２８から送信されたデータではなく、バス上の“０”値を介して通常に停止する。ホスト２４がこの中断を検出し、（例えば、Ｉ２Ｃマルチマスタアービトレーション（ｍｕｌｔｉ−ｍａｓｔｅｒ  ａｒｂｉｔｒａｔｉｏｎ）に対応する）且つこのトランザクションを中止する場合、プロセッサー４４は、一般的に、ＳＣＬライン上で追加のクロックサイクルを生成することによって、ホスト２４によって中断されたトランザクションを引き続くことができる。プロセッサー４４は、転送されている現在のバイトを補完し、停止状態を発行することによってトランザクションを中止することができる。  
【００３６】
上述中断及び回復の技術は、単純に例として示されている。代替の実施例では、安全装置３６のプロセッサー４４は、他の任意の適切な技術を介して、トランザクションを中断する及び／または中断から回復することもできる。
【００３７】
上述の実施例では、無許可なトランザクションを検出、中断、及び中断からの回復の全ては、バスの既存のラインを介して実現される。代替の実施例では、安全装置３６及びホスト２４は、バス３２の外部にある補助インターフェースによって接続する。例えば、安全装置３６及びホスト２４が同じＩＣに統合され、ＩＣのＳＤＡピンとＳＣＬピンを共有する場合に実現可能である。
【００３８】
これらの実施例では、安全装置３６及びホスト２４は、補助インターフェースを介して他のホストデバイスが周辺デバイス２８にアクセスしないことを検証する。例示的な実施例では、ホスト２４が周辺デバイス２８にアクセスする時、ホスト２４は補助インターフェースを介して安全装置３６に通知する。その通知に応じて、プロセッサー４４は、バスにダミー値“０”を書き込まない、且つトランザクションを実行させる。周辺デバイス２８にアクセスするが、補助インターフェース上で報告されていないトランザクションを検出する時、プロセッサー４４は、そのトランザクションが無許可なホストから送信されたものと見なし、強制的に“０”値を書き込むことによってそのトランザクションを中止する。
【００３９】
図２は、本発明の実施例による、Ｉ２Ｃバスを介して周辺デバイスへのアクセスを保護する方法を概略的に示すフローチャートである。この方法は、監視ステップ５０において、安全装置３６のプロセッサー４４がインターフェース４０を使用して、Ｉ２Ｃバス３２上のトランザクションを監視することから始まる。  
【００４０】
トランザクション検出ステップ５４において、プロセッサー４４は、ホスト２４が周辺デバイス２８にアクセスしようとするトランザクションを識別する。チェックステップ５８において、プロセッサー４４は、トランザクションが許可されたのかをチェックする。例えば、プロセッサー４４は、このトランザクションがメモリー４８に格納された安全方針に違反しているかをチェックすることができる。
【００４１】
このトランザクションが許可されていれば、プロセッサー４４は、許可ステップ６２でトランザクションを正常に進める、そうでなければ、トランザクションが無許可であると判断された場合、プロセッサー４４は、ステップ６６でダミー値“０”をＩ２ＣバスのＳＣＬ及び／またはＳＤＡラインに強制的に書き込むことによってこのトランザクションを中断する。
【００４２】
[ＳＰＩバス上で周辺デバイスへのアクセスを保護する]
【００４３】
図３は、本発明の代替の実施例による、安全なシステム７０を概略的に示す的ブロック図である。図３に示されるように、システム７０は、すべてＳＰＩバス８２に接続するホストデバイス７４と、周辺デバイス７８と安全装置８６とを含む。
【００４４】
ホスト７４が無許可に周辺デバイス７８にアクセスしようとする時、安全装置８６はそのトランザクションを識別して中断する。本発明の実施例では、安全装置８６は、ＳＰＩバス８２に接続するインターフェース９０と、開示された技術を実行するように構成されたプロセッサー９４と、１つまたは複数のプロセッサー９４によって実行される安全方針を格納するように構成されたメモリー９８とを含む。
【００４５】
許可されたトランザクションと無許可なトランザクションとを区別する安全方針、及び安全装置８６のプロセッサー９４が無許可なトランザクションを識別する方法は、上述したシステム２０と本質的に同様である。以下で説明される技術と上述で説明された技術との区別は、安全装置８６が無許可なトランザクションを中断するために、バス８２上にダミー値を強制的に書き込むことである。
【００４６】
ＳＰＩバス８２は、クロック（ＣＬＫ）ラインと、ＭＯＳＩ（Ｍａｓｔｅｒ−Ｏｕｔ  Ｓｌａｖｅ−Ｉｎ）及びＭＩＳＯ（Ｍａｓｔｅｒ−Ｉｎ  Ｓｌａｖｅ−Ｏｕｔ）と呼ばれる２本のデータラインを含む。ＣＬＫ、ＭＩＳＯ及びＭＯＳＩラインは、すべてのデバイス（本実施例中ではデバイス７４、７８及び８６）に共通である。また、各スレーブデバイスは、専用のチップセレクトラインを使用して選択可能である。本実施例では、ホスト７４は、ＣＳ２＃に示されるＣＳラインを使用して周辺デバイス７８を選択し、且つＣＳ１＃に示されるＣＳラインを使用して安全装置８６を選択する。
【００４７】
マスタであるホスト７４は、すべてのＣＳラインに接続する。一方、周辺デバイス７８はスレーブであるため、各周辺デバイス７８は専用のＣＳラインのみに接続される。一般的には、ホスト７４は、それぞれのＣＳラインを使用して、所要の周辺デバイス７８を選択することによってトランザクションを開始し、次にＣＬＫ、ＭＯＳＩ及びＭＩＳＯラインを使用してデバイスと通信する。ＭＯＳＩラインは、ホスト７４から周辺デバイス７８への送信に使用され、ＭＩＳＯラインは、周辺デバイス７８からホスト７４への送信に使用される。
【００４８】
安全装置８６と通常のＳＰＩスレーブと異なり、スレーブとして定義されたことにもかかわらず、すべてのＣＳラインを駆動することができる。図３に示すように、安全装置８６のインターフェース９０は、ホストデバイス７４と並列的にＣＳ２＃ラインを駆動するように構成される。システム７０がそれぞれのＣＳラインを有する周辺デバイス７８を含む場合、安全装置８６は、ホスト７４と並列的にいずれかのＣＳラインを駆動するように構成される。
【００４９】
一部の実施例では、システム７０は、ホスト７４及び安全装置８６が相反する論理値でＣＳラインを起動する時、安全装置８６によって駆動された論理値がホスト７４によって駆動された論理値を上書きするように設定される。換言すれば、ホスト７４及び安全装置８６が相反する論理値出ＣＳラインを駆動する時、周辺デバイス７８は安全装置８６によって駆動される論理値を受信し動作する。
【００５０】
ＣＳライン（の信号）を上書きすることは、バス上のトランザクションを中断することによって、ホスト７４と周辺デバイス７８の間の無許可なトランザクションを中断するもう１つの例である。上述の上書き機構は、様々な方法で実行することができる。以下の説明は、周辺デバイス７８を選択する時使用されるＣＳ２＃ラインに関するが、複数の周辺デバイス７８及びそれぞれのＣＳラインを使用する場合、同じ機構も適用する。
【００５１】
１つの実施例では、安全装置８６によってインターフェース９０内のＣＳ２＃ラインを駆動するラインドライバは、ホスト７４によってＣＳ２＃ラインを駆動するラインドライバより強い。代替的な実施例では、直列抵抗器１００は、ホスト７４の出力でＣＳ２＃ラインに挿入されてもよい。抵抗器１００は、安全装置８６のＣＳ２＃ラインドライバの出力に対して、ホスト７４のＣＳ２＃ラインドライバの出力を減衰させる。さらに代替的には、安全装置８６は、任意の他の適切な方法でＣＳ２＃ラインを駆動するホスト７４（の信号）を上書きするように構成することができる。
【００５２】
安全装置８６のプロセッサー９４は、ＳＰＩバス８２のＣＳ＃ライン、ＣＬＫ、ＭＩＳＯ及び／またはＭＯＳＩラインを監視することによって、任意の適切な方法で無許可なトランザクションを識別することができる。一部の実施例では、ホスト７４が無許可である周辺デバイス７８にアクセスのトランザクションを識別する時、安全装置８６のプロセッサー９４は、周辺デバイス７８のＣＳラインを無効にすることによってトランザクションを中断する。安全装置８６は、ホスト７４がＣＳ２＃ラインにの駆動を上書きするように構成されるので、周辺デバイス７８は選択解除され、トランザクションは中断される。一方、トランザクションが許可されることを確定すると、プロセッサー９４は自分のＣＳ２＃ドライバを停止し、それによってホスト７４が中断することなく周辺デバイス７８にアクセス可能になる。
【００５３】
図３は、本発明の代替の実施例による、安全なシステム１１０を概略的に示す的ブロック図である。システム１１０はまた、図３のシステム７０と同様に、ＳＰＩバス８２に基づいている。しかしながら、システム１１０では、ＣＳライン（の信号）を上書きすることを代わりに、安全装置８６は、ＣＬＫライン、ＭＩＳＯライン及び／またはＭＯＳＩライン上にダミー値を強制的に書き込むことによって、無許可なトランザクションを中断する。
【００５４】
本実施例では、システム１１０は、安全装置８６がＣＬＫライン、ＭＩＳＯラインＭ及び／またはＭＯＳＩラインを駆動する時、ホスト７４（の信号）を上書きするように構成される。図面に示されるように、この目的を達成するため、直列抵抗器１００をＣＬＫライン、ＭＩＳＯライン及びＭＯＳＩラインに挿入される。本実施例でのＣＳ２＃ライン（の信号）は上書きされてないため、ＣＳ２＃ラインに直列抵抗器を挿入しない。
【００５５】
代替の実施例では、安全装置８６内のＣＬＫライン、ＭＩＳＯライン及び／またはＭＯＳＩラインのラインドライバをホスト７４内の対応するラインドライバより強くすることによって、その上書き機構を実行することができる。
【００５６】
他の実施例では、同時にＣＳライン（図３に参照）及びＣＬＫライン、ＭＩＳＯライン及び／またはＭＯＳＩライン（図４に参照）（の信号）を上書きする混合方案も実現可能である。
【００５７】
図１、３及び４に示されたシステム２０、７０及び１１０の構成は、安全装置３６、８６及びバス３２、８２など様々な構成要素で、概念的明瞭性のために純粋に示された構成例である。代替の実施形態では、任意の他の適切な構成を使用することができる。
【００５８】
例えば、図面は明確にするために、単一の周辺デバイスと単一のホストデバイスのみを示している。一部の実施例では、システムは、２つ以上の周辺デバイス及び／または２つ以上のホストデバイスを備えることができる。本明細書で説明する実施例は、例としてのＩ２ＣおよびＳＰＩバスを参照する。代替の実施例では、開示された技術は、必要に応じて他の任意の適切なタイプのバスで実行することができる。
【００５９】
システム２０、７０及び１１０の異なる要素は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）またはＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの任意の適切なハードウェアを使用して実行することができる。一部の実施例では、安全装置３６及び８６の幾つかの構成要素、例えば、プロセッサー４４またはプロセッサー９４は、ソフトウェアを使用して、またはハードウェア要素とソフトウェア要素の組み合わせを使用して実行することができる。メモリー４８及び９８は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）またはフラッシュメモリー（Ｆｌａｓｈ  ｍｅｍｏｒｙ）などの任意の適切なタイプのメモリデバイスを使用して実行することができる。
【００６０】
一部の実施例では、プロセッサー４４及び／またはプロセッサー９４は、本明細書で説明する機能を実行するようにソフトウェアでプログラムされた汎用プログラマブルプロセッサーを備える。ソフトウェアは、例えば、ネットワークを介して電子形式でプロセッサーにダウンロードすることができ、あるいは、磁気的、光学的、または電子的メモリーなどの非一時的な有形の媒体に提供及び／または格納することができる。
【００６１】
上述の実施例では、安全装置はまずバスを監視することによって無許可なトランザクションを検出し、その後トランザクションを中断する。代替的な実施例では、安全装置は、バス上で最初にそのトランザクションを検出することなく、またはバスを全く監視することなく、トランザクションを中断することができる。例えば、安全装置はこのホストが許可されるまで、またはそのホストが許可されない限り、特定のホストのチップセレクトラインを無効にすることができる。この許可は、必ずしも同じバスを使用するではなく、任意の適切な方法で実行することができる。
【００６２】
非限定的な例として、本明細書に記載の方法及びシステムは、安全メモリーアプリケーション、ＩｏＴ（Ｉｎｔｅｒｎｅｔ−ｏｆ−Ｔｈｉｎｇｓ）アプリケーション、組み込みアプリケーション（ｅｍｂｅｄｄｅｄ  ａｐｐｌｉｃａｔｉｏｎ）または自動車アプリケーション（ａｕｔｏｍｏｔｉｖｅ  ａｐｐｌｉｃａｔｉｏｎ）などの様々なアプリケーションで使用することができる。
【００６３】
よって、理解されるべきことは、上述実施例として引用されたものであり、本発明は、上に特に示され説明されたものに限定されないことである。むしろ、本発明の範囲は、上述した様々な特徴の組み合わせ及び部分的な組み合わせ、ならびに前述の説明を読むことによって当業者に想到し得る変形および修正の両方を含む。本特許出願において参照により援用される文書は、本明細書において明示的または暗示的になされた定義と矛盾するとき、これらの組み込まれた文書で定義される用語を除いて、本明細書の定義を参考にする必要がある。
【符号の説明】
【００６４】
２０、７０、１１０：システム
２４、７４：ホスト
２８、７８：周辺デバイス
３２：Ｉ２Ｃバス
３６、８６：安全装置
４０、９０：インターフェース
４４、９４：プロセッサー
４８、９８：メモリー
５０：監視ステップ
５４：検出ステップ
５８：検査ステップ
６２：許可ステップ
６６：中断ステップ
８２：ＳＰＩバス
１００：直列抵抗器
ＣＳ１＃、ＣＳ２＃：チップセレクトライン
ＣＬＫ：クロックライン
ＭＯＳＩ：マスタアウトスレーブインライン
ＭＩＳＯ：マスタスインレーブアウトライン
【図１】
2019023896.tif 000003
【図２】
2019023896.tif 000004
【図３】
2019023896.tif 000005
【図４】
2019023896.tif 000006