(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-10
(45)【発行日】2022-06-20
(54)【発明の名称】バスを介した周辺装置への安全アクセス
(51)【国際特許分類】
G06F 13/36 20060101AFI20220613BHJP
G06F 13/362 20060101ALI20220613BHJP
G06F 13/38 20060101ALI20220613BHJP
G06F 21/85 20130101ALI20220613BHJP
【FI】
G06F13/36 310E
G06F13/362 520B
G06F13/38 350
G06F21/85
【外国語出願】
(21)【出願番号】P 2019078917
(22)【出願日】2019-04-17
【審査請求日】2019-08-07
(32)【優先日】2018-04-18
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】100102923
【氏名又は名称】加藤 雄二
(72)【発明者】
【氏名】ジヴ ハーシュマン
(72)【発明者】
【氏名】モシェ アロン
(72)【発明者】
【氏名】ダン モラヴ
(72)【発明者】
【氏名】オレン タナミ
【審査官】松平 英
(56)【参考文献】
【文献】特表2014-514651(JP,A)
【文献】特開平05-204768(JP,A)
【文献】特開2016-206891(JP,A)
【文献】特表2008-524740(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/14
13/20-13/42
21/10
21/60-21/88
(57)【特許請求の範囲】
【請求項1】
バスを介して周辺装置に安全にアクセスするための安全装置において、
一もしくは複数個の周辺装置にサービスを提供するバスに連接するのに用いるインタフェースと、
一もしくは複数個の該周辺装置に連接することに加えて該バスにも連接し、バスマスター装置には応答するが、一もしくは複数個の周辺装置には回答しない方式で、特定の周辺装置へアクセスしようとする該バスマスター装置のトランザクションを中断するプロセッサと、
を含むことと、
前記インタフェースは前記バスで通信するように設定し、前記プロセッサは前記バスマスター装置が未承認で前記周辺装置にアクセスしようとする時、前記バスの少なくとも一本のライン上へ一個もしくは複数個のダミー値を強制的に並行書込みして少なくとも一部の前記トランザクションを中断する、
前記ダミー値を強制書き込みすることによって、前記プロセッサは前記バスマスター装置もしくは前記周辺装置に書き込まれた少なくとも一ラインの対応値をオーバーレイするように設定される、
前記プロセッサは前記バスマスター装置もしくは前記周辺装置よりも大きな駆動強度の少なくとも一ラインを駆動することによって、前記バスマスター装置もしくは前記周辺装置上に書き込まれた少なくとも一ラインの前記対応値をオーバーレイするように設定されること
を特徴とするバスを介して周辺装置に安全アクセスするための安全装置。
【請求項2】
前記バスの伝送は、(i)相互に対応する一もしくは複数個の周辺装置にそれぞれ専用する一もしくは複数個の専用信号と、(ii)該バスによってサービスされる一もしくは複数個の周辺装置の間で共有される一もしくは複数個の共有信号と、を含み、
そのうち、該プロセッサは、(i)該特定の周辺装置と相互に関連する該専用信号を中断することと、(ii)該専用信号が中断された時該バスマスター装置に応答することによって、該トランザクションを中断することを特徴とする請求項1記載の安全装置。
【請求項3】
前記プロセッサは、トランザクションにおいて特定の周辺装置からバスマスター装置に戻されるデータに基づき、特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを識別するように設定されることを特徴とする請求項1記載の安全装置。
【請求項4】
前記プロセッサは、該トランザクションにおいて使用されるコマンドコードに基づいて該特定の周辺装置にアクセスしようとするバスマスター装置の該トランザクションを識別するように設定されることを特徴とする請求項1記載の安全装置。
【請求項5】
バスを介して周辺装置に安全にアクセスするための方法において、
安全装置を使用してバスを介して通信し、そのうち該安全装置は、該バスに連接し、且つ一もしくは複数個の周辺装置以外の付属装置となるステップと、
該安全装置を使用してバスマスター装置に応答するが特定の周辺装置に応答せず、それによって、該バス上に於いて、該特定の周辺装置へアクセスしようとする該バスマスター装置のトランザクションを中断するステップと、
インタフェースは前記バスで通信するように設定し、プロセッサは前記バスマスター装置が未承認で前記周辺装置にアクセスしようとする時、前記バスの少なくとも一本のライン上へ一個もしくは複数個のダミー値を強制的に並行書込みして少なくとも一部の前記トランザクションを中断するステップを含む、
前記ダミー値を強制書き込みすることによって、前記プロセッサは前記バスマスター装置もしくは前記周辺装置に書き込まれた少なくとも一ラインの対応値をオーバーレイするように設定される、
前記プロセッサは前記バスマスター装置もしくは前記周辺装置よりも大きな駆動強度の少なくとも一ラインを駆動することによって、前記バスマスター装置もしくは前記周辺装置上に書き込まれた少なくとも一ラインの前記対応値をオーバーレイするように設定されることを特徴とするバスを介して周辺装置に安全にアクセスするための方法。
【請求項6】
前記バスの伝送は、(i)相互に対応する一もしくは複数個の該周辺装置にそれぞれ専用する一もしくは複数個の専用信号と、(ii)該バスによってサービスされる一もしくは複数個の該周辺装置の間で共有される一もしくは複数個の共有信号を含み、
そのうち該トランザクションを中断するステップは、(i)該特定の周辺装置と関連する該専用信号を中断するステップと、(ii)該専用信号が中断された時に該バスマスター装置に応答するステップを含むことを特徴とする請求項
5記載の方法。
【請求項7】
該トランザクションに於いて、該特定の周辺装置から該バスマスター装置に戻されるデータに基づき、該特定の周辺装置にアクセスしようとする該バスマスター装置の該トランザクションを識別するステップを更に含むことを特徴とする請求項
5記載の方法。
【請求項8】
該トランザクションにおいて、使用されるコマンドコードに基づいて、該特定の周辺装置にアクセスしようとする該バスマスター装置の該トランザクションを識別するステップを更に含むことを特徴とする請求項
5記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願を参照
【0002】
本出願は2016年3月21日に出願された米国特許出願第15/075,219の一部継続出願(CIP:Continuation-In-Part)であり、それは2015年6月8日に出願された米国仮特許出願62/172,298号に基づくもので、その開示内容を本明細書に援用する。
【0003】
本発明は、電子システムの安全に関し、特に周辺装置に安全アクセスして保護するための方法とシステムに係る。
【背景技術】
【0004】
電子システムは、ホスト装置と周辺装置との間で通信するために各種バスインタフェースを使用する。例として、バスインタフェースは内部にI2C(Inter-Integrated-Circuit)バス及びシリアル・ペリフェラル・インタフェース(SPI)バスを含む。I2Cバスの関連内容は、例として「I2Cバス仕様及びユーザーマニュアル」UM10204、NXPセミコンダクターズ、改訂第6版、2014年4月4日に記載されており、本明細書に援用する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【0006】
本発明に於ける実施例として、インタフェースとプロセッサを含む安全装置を提供する。インタフェースは、一もしくは複数個の周辺装置にサービスするバスに連接するために設定される。バスの伝送は(i)相互対応する一もしくは複数個の周辺装置にそれぞれ専用する一もしくは複数個の専用信号と、(ii)バスによってサービスされる一もしくは複数個の周辺装置の間で共有する一もしくは複数個の共有信号を含む。プロセッサはバスに接続されて一もしくは複数個の周辺装置以外の付属装置として機能し、且つ特定の周辺装置と関連する専用信号を中断することによって、バス上に於いて特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを中断する。
【0007】
一実施例に於いて、プロセッサがトランザクションを中断する時、バス上の共有信号を維持して中断しない。一実施例に於いて、インタフェースは、(i)バスマスター装置から専用信号を受信するのに用いる入力部と、(ii)該専用信号を特定の周辺装置へ出力するのに用いる出力部を含み、更にプロセッサは受信した専用信号が該出力部から発信されるのを防止し、それによってトランザクションが中断される。一実施例に於いて、プロセッサは専用信号が中断された時、バスマスター装置に応答するが特定の周辺装置に応答しないように設定される。例示としての実施例に於いて、専用信号はチップセレクト信号を含む。
【0008】
開示された実施例において、プロセッサはバスを監視することによって中断するトランザクションを検出する。代替実施例に於いて、プロセッサはバス外部の補助インタフェースを介してバスマスター装置と通信して中断するトランザクションを検出する。
【0009】
一実施例に於いて、プロセッサはリセット信号が出現するまで専用信号を中断し続けるように設定される。別の実施例に於いて、プロセッサはトランザクションを検出した後の有限時間内に専用信号を中断するように設定される。一実施例に於いて、トランザクションを中断することによって、プロセッサは一もしくは複数個の周辺装置箇所でトランザクションアボートを発生させるように設定される。一実施例に於いて、プロセッサはトランザクション中断後にバスの正常動作を回復させるように設定される。
【0010】
本発明の実施例に基づき、インタフェースとプロセッサを含む安全装置を提供する。インタフェースは一もしくは複数個の周辺装置にサービスを提供するバスに連接するのに用いる。プロセッサは、一もしくは複数個の周辺装置に加えてバスに連接し、更にバスマスター装置に応答するが一もしくは複数個の周辺装置に応答しない方式で、特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを中断する。
【0011】
一実施例に於いて、バスの伝送は、(i)相互対応する一もしくは複数個の周辺装置にそれぞれ専用する一もしくは複数個の専用信号と、(ii)バスによってサービスされる一もしくは複数個の周辺装置の間で共有される一もしくは複数個の共有信号を含む。そのうちプロセッサは(i)特定の周辺装置と関連する専用信号を中断し、(ii)専用信号が中断された時に該バスマスター装置に応答することによってトランザクションを中断する。
【0012】
一実施例に於いて、特定の周辺装置は記憶装置を含む。そのうちプロセッサは、トランザクションにおいて、該記憶装置からデータを読み取るためのバスマスター装置からの要求を識別し、安全装置に格納されている代替データで該要求に応答するように設定される。例示としての実施例に於いて、プロセッサはバスマスター装置が記憶装置内の定義済アドレス領域へのアクセス要求を識別した時、トランザクションを中断して代替データで応答するように設定される。
【0013】
別の実施例に於いて、プロセッサはトランザクションの中で、特定の周辺装置からバスマスター装置に戻されるデータに基づき、特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを識別するように設定される。また別の実施例において、プロセッサはトランザクションの中で使用されるコマンドコードに基づいて特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを識別するように設定する。
【0014】
本発明の実施例は、更にバスを介して周辺装置に安全にアクセスするための方法を提供し、それは安全装置を使用しバスを介して通信し、そのうち安全装置は、バスへ連接し、且つ一もしくは複数個の周辺装置以外の付属装置となり、そのうちバスの伝送は、(i)相互対応する一もしくは複数個の周辺装置にそれぞれ専用する一もしくは複数個の専用信号と、(ii)バスによってサービスされる一もしくは複数個の周辺装置の間で共有される一もしくは複数個の共有信号を含み、該安全装置を使用し、特定の周辺装置と関連する専用信号を中断することによってバス上に於いて特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを中断する。
【0015】
本発明の実施例に基づき、バスを介して周辺装置に安全アクセスするための方法を提供する。安全装置を使用しバスを介して通信し、安全装置はバスに連接し、且つ一もしくは複数個の周辺装置以外の付属装置となる。そして安全装置を使用し、バスマスター装置に応答するが特定の周辺装置に応答しない方式で、バス上で特定の周辺装置にアクセスしようとするバスマスター装置のトランザクションを中断する。
【0016】
別の実施例に於いて、インタフェースとプロセッサを含む装置を提供する。インタフェースはバスで通信するように設定し、プロセッサはバスマスター装置が未承認で周辺装置にアクセスしようとする時、バスの少なくとも一本のライン上へ一個もしくは複数個のダミー値を強制的に並行書込みして少なくとも一部のトランザクションを中断する。
【0017】
一実施例に於いて、プロセッサはバス上のデータラインにダミー値を強制書き込みしてデータラインで周辺装置のそれぞれのデータ値を受信もしくは伝送するのをブロックするように設定する。追加的もしくは代替的に、プロセッサはダミー値をバス上のクロックラインへ強制書き込みして、トランザクションに使用するクロック信号を中断するように設定する。更に追加的もしくは代替的に、プロセッサはダミー値をバス上のチップセレクトラインへ強制書き込みして、バスマスター装置が選択した周辺装置を中断するように設定される。
【0018】
一実施例に於いて、バスは事前設定の論理値を有するオープンコレクタバスもしくはオープンドレインバスを備え、且つプロセッサはバス上の少なくとも一ラインへ事前設定の論理値と相反するダミー値を強制的に書き込むように設定される。
【0019】
一実施例に於いて、ダミー値を強制書き込みすることによって、プロセッサはバスマスター装置もしくは周辺装置に書き込まれた少なくとも一ラインの対応値をオーバーレイするように設定される。例示としての実施例において、プロセッサはバスマスター装置もしくは周辺装置よりも大きな駆動強度の少なくとも一ラインを駆動することによって、バスマスター装置もしくは周辺装置上に書き込まれた少なくとも一ラインの対応値をオーバーレイするように設定される。別の実施例に於いて、装置は少なくとも一抵抗器を有し、それは少なくとも一ライン上に設定される。抵抗器はバスマスター装置もしくは周辺装置に書き込まれた値をプロセッサによって書きこまれたダミー値よりも弱くして減衰するように設定される。
【0020】
一実施例に於いて、プロセッサはバスマスター装置と周辺装置間の通信に使用されるバスの既存の一ラインのみを通してダミー値を強制書き込みするように設定される。一実施例に於いて、プロセッサはバスを監視することによって中断するトランザクションを検出するように設定される。一実施例に於いて、プロセッサはバスマスター装置外部の補助インタフェース上でバスマスター装置と通信することによって、中断するトランザクションを検出するように設定される。
【0021】
開示された一実施例において、プロセッサは当装置がリセットされるまで無制限にダミー値を強制書き込みするように設定される。別の実施例に於いて、プロセッサはトランザクションが検出された時、有限時間内にダミー値を強制書き込みするように設定される。一実施例に於いて、プロセッサはトランザクションが中断されると、バスの正常動作を適切に再開するように設定される。
【0022】
本発明の実施例に基づき、更に周辺装置と安全装置を含むシステムを提供する。周辺装置は、バスによって、一個もしくは複数個のバスマスター装置にアクセスする。当安全装置はバスマスター装置が周辺装置に未承認でアクセスしようとすると、一個もしくは複数個のダミー値をバスの少なくとも一本のラインへ強制的に並行書込みを行い、少なくとも一部のトランザクションを中断する。
【0023】
実施例に基づき、本発明は更に、バスに接続された安全装置を用いて、周辺装置に未承認でアクセスしようとするバスマスター装置のトランザクションを中断するか否かを決定し、一個もしくは複数個のダミー値をバスの少なくとも一本のラインへ強制的に並行書き込みして少なくとも一部のトランザクションを中断することを含む方法を提供する。
【図面の簡単な説明】
【0024】
【
図1】本発明実施例で、複数個の装置がI
2Cバスを介して通信する安全なシステムのブロック図である。
【
図2】本発明実施例で、I
2Cバスを介して周辺装置へのアクセスを保護する方法のフローチャートである。
【
図3】本発明の一代替実施例で、複数個の装置がSPIバスで通信する安全なシステムのブロック図である。
【
図4】本発明の一代替実施例で、複数個の装置がSPIバスで通信する安全なシステムのブロック図である。
【
図5】本発明の一代替実施例で、複数個の装置がSPIバスで通信する安全なシステムのブロック図である。
【
図6】本発明の実施例の安全装置のブロック図である。
【
図7】本発明の実施例で、ホスト装置に用いるセキュアブート(secure booting)の方法のフローチャートである。
【発明を実施するための形態】
【0025】
本発明を全面的に理解するため、下述において、図式を示しながら実施例を挙げて詳細に説明する。
【実施例】
【0026】
概述
【0027】
本発明の実施例は、バスインタフェースを介して周辺装置へのアクセスをどのように保護するかの改善の方法と装置を提供する。周辺装置は暗号エンジン、取扱注意データを保存するストレージデバイス、もしくはバスを介してアクセスする任意の装置を含む。
【0028】
いくつかの開示された実施例に於いて、安全装置はバスのトランザクションを監視し、更にホスト装置もしくはその他バスマスター装置が未承認で周辺装置にアクセスしようとする時、それを識別する。トランザクションは各種適する基準もしくはポリシーによって承認もしくは未承認に分類される。
【0029】
未承認のトランザクションを識別した時、安全装置は並行してバスの一本もしくは複数本のラインを通して、データもしくは信号をいくつかのダミー値へ強制書き込みして、それを中断する。ダミー値を強制書き込みするのは、例としてクロック信号、データ信号及び/もしくはチップセレクト(Chip-Select)信号に於いて実行できる。
【0030】
ダミー値を強制書き込みするのは、I2Cバスなどのようなオープンドレインもしくはオープンコレクタのバス、もしくはSPIバスのようなプッシュプルバスなどのバス上の信号を中断するのに適している。バス上のトランザクションと並行してダミー値を強制書き込みして周辺装置との通信を中断し、且つ/もしくはそれぞれのクロック信号を中断する。
【0031】
本明細書では、I2CとSPIバス上の未承認のトランザクションを中断するのに用いる数種の技術範例を説明しているが、更に中断後に正常操作を再開させるのに用いる技術についても説明する。一実施例に於いて、安全装置はトランザクションを中断できるが、予めバス上でこのトランザクションを検出する必要がなく、もしくはバスを全く監視しなくてもよい。例として安全装置は、あるホスト装置が承認されるまで、もしくは承認されない限り、該ホスト装置のチップセレクト(CS)ライン上のダミー値を強制入力できる。
【0032】
一実施例に於いて、例えば、SPIでは、安全装置によって保護されるバスの伝送は、(i)相互に対応する周辺装置に専用される一もしくは複数個の専用信号と、(ii)バスによってサービスされる周辺装置間に於いて共有される一もしくは複数個の共有信号を含む。共有信号の例としてデータとクロック信号とする。専用信号の例としてCS信号とする。一実施例に於いて、安全装置はバス上の共有信号を維持して中断せず、保護されている周辺装置と関連する専用信号を中断することでトランザクションを中断する。注意すべきは、例えばI2Cバスではすべての信号が共有信号であるように、すべてのバスに専用信号があるわけではないことである。
【0033】
その他実施例に於いて、安全装置は保護された周辺装置に応答せず、未承認のホスト装置に応答する方式により、トランザクションを中断する。例示としての実施例に於いて、周辺装置はフラッシュメモリを含む。フラッシュメモリはキー、セットアップデータ及び/もしくはブートコードのような取扱注意データの保存に用いるために割り当てられた一もしくは複数個のアドレス領域を含む。安全装置は、フラッシュメモリのCS信号を選択的に駆動することによって、フラッシュメモリに於けるデータへのアクセスを駆動することができる。反対に、安全装置は安全装置内部に保存されているデータを用いてホスト装置に応答する。ここではこの種のセキュアブートプロセスを説明する。
【0034】
ここで開示する技術は、トランザクション毎の処理レベル(transaction-by-transaction level)で周辺装置への即時安全選択的アクセスを提供する。本明細書に於いて説明するほとんどの技術では、バスの既存の信号だけでトランザクションの識別と中断を実行する。よって、開示された技術は規定外のピンもしくは相互接続を必要とせず、そのためシステム全体のサイズとコストが低下する。
【0035】
I2Cバスを介して周辺装置に対してデータに安全にアクセスする。
【0036】
図1は本発明実施例の安全システム20のブロック図である。本発明の実施例に於いて、システム20はホスト装置24及び周辺装置28を有し、且つすべてがI
2Cバス32に連結する。簡潔にするため、ホスト装置24と周辺装置28は、ここではホストと周辺と称されることもあり、ホスト装置24はバスマスター装置と称されることもある。
【0037】
安全装置36はI2Cバス32上のデータ交換を監視することによって周辺装置28へのデータアクセスを保護し、ホスト装置24もしくはバスマスター機能を備えるその他装置が周辺装置28へ未承認でアクセスするのを回避する。安全装置36は制御装置もしくはトラステッドプラットフォームモジュール(TPM)とも称される。本発明の実施例に於いて、安全装置36は、I2Cバス32へ連結するのに用いるインタフェース40と、本発明の技術を実行するために設置するプロセッサ44と、プロセッサ44によって実行される一もしくは複数個のセキュリティポリシーを保存するのに用いるメモリ48を含む。
【0038】
プロセッサ44は、任意の定義済、もしくは設定されたポリシーに拠ってトランザクションを未承認として分類できる。通常、未承認のトランザクションは、周辺装置28のデータをオーバーレイすること、周辺装置28のデータを読み取ること、周辺装置28にコマンドを設定もしくは送信すること、もしくはその他適する方法で周辺装置28にアクセスすることを試みることが多い。安全装置36によって実施するポリシーは、肯定的なポリシー(例:ホワイトリスト)、否定的なポリシー(例:ブラックリスト)、デバイスアドレスもしくはレジスタオフセット(register offset)に拠って決まるポリシー、もしくはその他任意の形式のポリシーを含む。
【0039】
例として、安全装置36は、ホスト装置に対して、周辺装置28へのアクセスが承認される前に、ホスト装置24の身分を認証することを要求することができる。未承認のホスト装置によって試されたトランザクションは未承認だとみなすことができる。その認証はホスト装置と安全装置間で、チャレンジレスポンスプロセス(challenge-response process)を行うことで実行できる。追加的もしくは選択的に、ホスト装置に対して、その他ある種適する方法でその身分を証明する、もしくはセキュアブートプロセスが成功裏に完了することを要求することができる。
【0040】
その他、追加的もしくは代替的に、いくつかのタイプのトランザクション(例として読取りトランザクション)は承認されたとみなし、またその他タイプのトランザクション(例として書込みトランザクション)は未承認とみなすことができる。更に別の一実施例に於いては、選定された周辺装置へのアドレスアクセスに対して承認されたとみなすことができ、その他アドレスへのアクセスは未承認とみなすことができる。別の実施例として、バス上のビットシーケンス(bit sequences)は未承認のトランザクションとして表示される。
【0041】
通常、プロセッサ44は、任意の適切な方法でトランザクションが承認されているか否かを判定することができる。メモリ48はトランザクションが承認されているか否かを判断するために一個もしくは複数個のポリシーを保存する。
【0042】
I2Cバス32は、シリアルデータ(SDA)信号を有するシリアルデータラインと、シリアルクロック信号(SCL)を有するシリアルクロックラインを含む。用語の「ライン」と「信号」は本明細書に於いて、互換的に使用される。SDAライン及びSCLラインの監視によって、プロセッサ44はI2Cバス32上のすべてのトランザクションを監視し、未承認のトランザクションを識別することができる。
【0043】
未承認のトランザクションを識別すると、プロセッサ44は一個もしくは複数個のダミー値をI2Cバス32上のSDAライン及び/もしくはSCLラインへ強制的に書き込むことでトランザクションを中断する。このメカニズムはI2Cバスがオープンドレイン/オープンコレクタ構造を備えることで実現する。通常SDAラインとSCLラインはどちらもプルアップ抵抗を使用することで論理「1」の状態へ事前設定でプルアップされる。その他装置が同時に書き込む可能性のある値に関係なく、どの装置でもすべてSDAラインもしくはSCLライン上に論理「0」値をいつでも書込める。
【0044】
一実施例に於いて、未承認のトランザクションを識別した時、安全装置36のプロセッサ44は、インタフェース40を介してI2Cバス32のSDAラインもしくはSCLライン上に於いて論理値「0」(事前設定の論理値「1」の反対値)を強制的に入力する。本明細書に於いて、「0」値はダミー値とみなす。SDAライン上に於いて強制書込みした「0」値は、ホスト装置24から周辺装置28へ送られた値、もしくはホスト装置24によって周辺装置28から読み出された値、もしくは事前設定の論理値「1」を上書きする。強制的に「0」値をSCLライン上に書き込むとクロック信号が停止し、上述の如何なる状況に於いてもトランザクションは中断される。
【0045】
一実施例に於いて、プロセッサ44は装置がリセットされるまで、「0」値の強制書込みを継続する。その他実施例に於いて、プロセッサ44は中断からの適度な再開を許可し、即ちホスト装置24と周辺装置28が中断中のトランザクションを再開して通常動作を再開することを許可する。一部のホスト装置及び/もしくは周辺装置はタイマーの一時停止から再開できない。よって仮に後でホスト装置及び周辺装置を適切に再開させる必要がある時、SCLライン上ではなく、SDAライン上に於いてダミー値を強制書込みするのがよい。
【0046】
一実施例に於いて、トランザクションを中断した後に通常動作に戻るため、プロセッサ44はバス上に於いてI2Cの停止、もしくはI2Cの再始動条件を生成する。本明細書において、I2Cの停止もしくはI2Cの再始動条件は任意のバス信号値シーケンスを含み、それは装置バスに於いてアイドル状態であり且つトランザクションを開始できることを示す。
【0047】
プロセッサ44は、各種技術を利用して、トランザクションが中断された後に適切に再開することを許可することができる。一実施例に於いて、プロセッサ44は予定時間の長さに於いて、「0」値の強制書込みを継続する。これは未承認のトランザクションを中断するのに十分であるとみなす。如何なる予定時間の長さでも使用できる。例えば、SMバスの一時停止の長さは25mSと定義する。よって、SMバスに於いてI2Cを応用する時、予め定義する継続時間は一時停止をしやすくするためにも少なくとも25mSに設定するのがよい。
【0048】
別の実施例に於いて、プロセッサ44はSCLラインが論理高値(即ちトグリングしない(not toggling))であることが検出されるまで、予定時間内、SDAライン上に於いて「0」値の強制書込みを続ける。この条件は、ホスト装置にトランザクションを中止もしくは破棄するように指示することができる。プロセッサ44はSDAラインを解放することができ、更にI2C停止条件を発生させる可能性がある。
【0049】
更に別の一実施例に於いて、安全装置36を周辺装置28と同じアドレスを備えるI2Cスレーブ装置として設置することによって、周辺装置から読み取ったトランザクションを中断するのは有用である。安全装置36内のプロセッサ44は「0」データ値で任意の未承認の読取り要求に応答する。周辺装置28も同様にこれらの読取り要求をプロセッサ44へ並行して応答するが、そのデータ値は安全装置36によって伝送された「0」値によってオーバーレイされる。このプロセスは、例えば停止条件を介して、ホスト装置がトランザクションを中止するまで継続する。注意すべきは、I2C基準に基づき、I2Cスレーブ装置はデータを送信する時、ACK/NEGACKビットを駆動しない。
【0050】
別の実施例に於いて、同時にトランザクションの読取り、書込みを中断するのに有用なものとして、プロセッサ44によりSDAラインにおいて「0」値を強制書き込みする。続いて、仮にホスト装置24がこの中断を識別できない時、このトランザクションは周辺装置28から送信したデータではなく、バス上の「0」データを介して正常中止する。仮にホスト装置24がこの中断(例として、I2Cマルチマスターのアービトレーション(multi-master arbitration)支持)を検出してトランザクションを破棄すると、プロセッサ44は通常SCLラインで生成した追加のクロックサイクルを介して、ホスト装置24が破棄したトランザクションを引き継ぐ。プロセッサ44は、続いて伝送された現在のバイトを完成させ、停止条件を発信することによって、このトランザクションを中止する。
【0051】
上述の中断と再開技術は、実施例の説明のためのものに過ぎない。代替実施例に於いて、安全装置36のプロセッサ44は任意のその他技術によってトランザクションを中断する及び/もしくは中断から再開へ進む事ができる。
【0052】
上述実施例に於いて、バスの既存ラインだけを使用して未承認のトランザクションの検出、中断及び中断後の再開を実現する。代替実施例に於いて、安全装置36とホスト装置24もバス32外部の補助インタフェースで連接し、例として安全装置36とホスト装置24が同一集積回路(IC)に統合され、且つICのSDAとSCLピンを共有する時、この種のメカニズムは実行できる。
【0053】
これら実施例において、安全装置36とホスト装置24は、補助インタフェースを使用してその他ホスト装置が周辺装置28にアクセスしていないことをバリデーションする。見本となる実施例において、ホスト装置24が周辺装置28にアクセスした時、ホスト装置24は補助インタフェースを介して安全装置36に通知する。該通知に応答するため、プロセッサ44はダミー値「0」をバスへ強制書込みせず、トランザクションの実行を許可する。周辺装置28にアクセスするが、補助インタフェース上でまだ報告されていないトランザクションを検出した時、プロセッサ44は該トランザクションがいくつかの未承認のホスト装置から発行されたと仮定し、「0」値の強制書込みをすることによってそれを中断する。
【0054】
図2は、本発明実施例がI
2Cバス32を介して周辺装置28にアクセスするのを保護する方法のフローチャートである。該方法は、監視ステップ50に於いて始動し、安全装置36上のプロセッサ44はインタフェース40を介してI
2Cバス32上のトランザクションを監視する。
【0055】
トランザクションの検出ステップ54において、プロセッサ44はホスト装置24が周辺装置28のトランザクションにアクセスしようとしていることを識別する。検査ステップ58において、プロセッサ44はトランザクションが承認を経ているか否かを検査する。例として、プロセッサ44はこのトランザクションがメモリ48に格納されているセキュリティポリシーに違反しているか否かをテストすることができる。
【0056】
仮にトランザクションが承認された場合、許可ステップ62において、プロセッサ44はトランザクションが正常に進むことを許可し、仮に該トランザクションが未承認であることを検出した場合、中断ステップ66において、プロセッサ44は、該トランザクションを中断するために、ダミー値「0」をI2Cバス32のSCL及び/もしくはSDAラインへ強制的に書込みする。
【0057】
SPIバスを介して周辺装置に安全にアクセスする。
【0058】
図3は、本発明の代替実施例で、安全システム70のブロック図である。
図3に示すとおり、システム70はホスト装置74、周辺装置78及び安全装置86を含み、すべてSPIバス82に連結する。
【0059】
ホスト装置74が周辺装置78に未承認でアクセスしようとすると、安全装置86はこのトランザクションを識別して中断する。本発明の実施例に於いて、安全装置86はSPIバス82に連接するインタフェース90と、本発明を実行するための技術を設定するプロセッサ94と、プロセッサ94によって実行するために格納した一個もしくは複数個のセキュリティポリシーを設置したメモリ98を含む。
【0060】
承認と未承認のトランザクションを区別するためのセキュリティポリシー、及び安全装置86のプロセッサ94が未承認のトランザクションを識別する方法は、基本的に上述システム20と同じである。後述技術と上述技術の異なる点は、安全装置86がバス82上でダミー値の強制書き込みをして未承認のトランザクションを中断する点である。
【0061】
SPIバス82は、クロック(CLK)ライン、及びマスタアウトスレーブインライン(MOSI)とマスタインスレーブアウトライン(MISO)と称される二本のデータ伝送ラインを含む。CLK、MISOとMOSIラインは、すべての装置(本実施例に於いてホスト装置74、78と86とする)に対して共通である。この他、各スレーブ装置は専用のチップセレクトラインで選択する。本実施例に於いて、ホスト装置74はCS2#と標記されたCSラインを使用して周辺装置78を選び、更にCS1#と標記されたCSラインで安全装置86を選択する。
【0062】
マスター装置としてのホスト装置74は、すべてのCSラインに連接する。一方、周辺装置78はスレーブ機器であるため、各周辺装置78は自身のCSラインにだけ連接される。通常、ホスト装置74は対応するCSラインを使用して要求する周辺装置78を選択し、トランザクションを起動する。その後、使用CLK、MOSIとMISOラインを使用して装置と通信する。MOSIラインはホスト装置74から周辺装置78へ信号を送信するのに用い、MISOラインは周辺装置78からホスト装置74へ信号を送るのに使用する。
【0063】
安全装置86は、スレーブ装置と定義されるが、すべてのCSラインを駆動できるという点で、一般的なSIPスレーブ装置と異なる。
図3に示すとおり、安全装置86のインタフェース90は、ホスト装置74と並行してCS2#ラインを駆動するために設置する。システム70が、相互に対応するCSラインを備えた複数個の周辺装置78を含む時、安全装置86は通常、ホスト装置74に接続された任意のCSラインを並行して駆動するために設置する。
【0064】
一実施例に於いて、システム70は、ホスト装置74と安全装置86が反対の論理値でCSラインを駆動すると、安全装置86によって駆動される論理値がホスト装置74によって駆動される論理値をオーバーレイするように設計されている。それは、ホスト装置74と安全装置86がCSライン上で反対の論理値を駆動した時、周辺装置78は安全装置86によって駆動された論理値を受信して実行するとも言える。
【0065】
CSラインのオーバーライドは、バス上のトランザクションを止めることで、ホスト装置と周辺装置78の間の未承認トランザクションを中断する別の一範例である。上述のオーバーライドの仕組みは、様々な方法で実現できる。下記の説明は周辺装置78を選択するためのCS2#ラインに係るものであるが、複数個の周辺装置78及び複数個の相対するCSラインを使用する時、同様の仕組みを使用しなければならない。
【0066】
一実施例に於いて、安全装置86のインタフェース90を介してCS2#ラインを駆動するラインドライブは、ホスト装置74がCS2#ラインを駆動するラインドライブよりも強い。代替実施例に於いて、直列抵抗100はホスト装置74の出力箇所でCS2#ライン内に挿入することができる。安全装置86に対するCS2#のラインドライブの出力部に対し、直列抵抗100はホスト装置74のCS2#に対するラインドライブの出力を弱める。その他、安全装置86はその他任意の適切な方法で、CS2#ラインを駆動するホスト装置74の信号をオーバーライドするように設定する。
【0067】
安全装置86のプロセッサ94は、SPIバス82のCS#ライン、CLK、MISO及び/もしくはMOSIラインを監視し、任意の適する方法で未承認のトランザクションを識別する。一実施例に於いて、或る周辺装置78へ未承認でアクセスしようとするホスト装置74のトランザクションを識別すると、安全装置86のプロセッサ94は周辺装置78のCSラインを失効させることによって、トランザクションを中断する。安全装置86はホスト装置74のCS2#ラインへの駆動をオーバーレイするように設定されているので、周辺装置78は選択を取り消され、トランザクションが中断する。一方、トランザクションが承認されたのが確定されると、プロセッサ94は自身のCS2#ドライブを停止し、それによってホスト装置の周辺装置78へのアクセスが中断されなくなる。
【0068】
図4は、本発明の別の実施例における安全システム110のブロック図である。システム110は、
図3のシステム70と同様にSPIバス82に基づいている。しかし、システム110において、安全装置86はCLKライン、MISOライン及び/もしくはMOSIライン上にダミー値を強制書き込みすることで未承認のトランザクションを破壊し、CSラインをオーバーレイしない。
【0069】
本実施例に於いて、システム110は、安全装置86がCLKライン、MISOライン及び/もしくはMOSIラインを駆動する時にホスト装置74より優先するように設定される。図に示すとおり、当該目的を達成するため、直列抵抗100をCLKライン、MISOライン及びMOSIラインに挿入する。本実施例のCS2#ラインはオーバーレイされないので、CS2#ラインに直列抵抗100を挿入しない。
【0070】
代替実施例に於いて、オーバーレイの仕組みは、安全装置86の中のCLKライン、MISOライン及び/もしくはMOSIラインのラインドライブを更に強くすることで実現する。
【0071】
その他実施例に於いて、同時にCSラインをオーバーレイする(
図3参照)及びCLKライン、MISOライン及び/もしくはMOSIライン(
図4参照)をオーバーレイする混合方案を使用することも可能である。
【0072】
オーバーライド専用のP2P信号で周辺装置へのアクセスを保護する。
【0073】
バス(例としてSPI)の信号は共有信号と専用信号に分けられる。共有信号はバス上の複数個の(例として、すべて)周辺装置と並列に接続する信号である。共有SPI信号の例は、データ(MOSIとMISO)とクロック(CLK)信号である。専用信号は特定の周辺装置専用の信号である。バスの一部の専用信号の例はチップセレクト(Chip-Select)信号である。他に、バスは例としてライトプロテクト信号(Write Protect signal)(周辺装置に記憶装置が含まれる時)のような帯域外の(out-of-band)専用信号で増強できる。専用信号はP2P(PTP:point to point)ラインとも呼ばれる。
【0074】
一実施例に於いて、一もしくは複数個の専用信号は、周辺装置に到達する前に安全装置86を通過する。反対に、共有信号は通常周辺装置にルーティングされ、安全装置を通過しない。この種の相互接続方式は、以下に説明するとおり、安全装置によって周辺装置を有効に保護する。
【0075】
図5は、本発明の代替実施例に依る安全システム130を示すブロック図である。当システムは
図3のシステム70に類似する。しかしながら、本実施例に於いて、CS2#信号は周辺装置78の入力部を直接駆動しない。反対にホスト装置74からのCS2#ラインは安全装置86に入力され、安全装置86はCS2_O#と表示される信号を駆動し、それは周辺装置78の入力部に連接する。
【0076】
本実施例に於いて、CS2#信号が専用PTP信号に用いられる例として、それは途中で安全装置を通過し保護された周辺装置にルーティングされる。図からわかるように、共有信号(MOSI、MISOとCLK)はホスト装置74と周辺装置78の間で途切れない。
【0077】
安全装置86は、CS2#信号を周辺装置に到達させるか、もしくはCS2#信号を周辺装置に到達させないことを選択することで、ホスト装置74と周辺装置78の間のトランザクションを中断するように設定される。
図5の例では、MASK_CS2#として表示された制御信号をアサートするか、もしくはアサート取消するかを通じて、選択を実行する。
【0078】
図6は、本発明実施例の
図5で説明したシステム130に基づいた安全装置86のブロック図である。本実施例に於いて、安全装置86は、SPIバス82に連接するインタフェース90と、開示された技術を実行するために設置されたプロセッサ94と、プロセッサ94によって強制実行する一もしくは複数個のセキュリティポリシーを格納するために設置されたメモリ98とを含む。プロセッサ94はスレーブインターフェースロジック(slave interface logic)91とインターフェースモニターロジック(IML:interface monitor logic)92を含む。安全装置86とホスト装置74の間の通信はスレーブインターフェースロジック91によって処理される。インターフェースモニターロジック92は、ホスト装置74の周辺装置78へのアクセスを監視し、制御し、並びに選択的にオーバーライドする。
【0079】
一実施例に於いて、安全装置86は未承認でSPIバス82上の周辺装置78へアクセスしようとするホスト装置74のトランザクションを識別して中断する。
図5と
図6からわかるように、
図3に示すシステム内で可能な任意の安全機能は
図5のシステム内でも任意に実現できる。
【0080】
上述実施例に於いて、安全装置はバスに連接し、スレーブ設備を追加するように設定される。しかしながら、その他実施例に於いて、安全装置はマスター装置として連接して設置することができる。例として、この種の実装はマルチマスター(multi-master)機能をサポートするバスプロトコルに適用する。
【0081】
安全装置は未承認のトランザクションから保護するために周辺装置に代わって応答する。
【0082】
別の実施例に於いて、安全装置86は、周辺装置78に代わり、選択されたホスト装置トランザクションに応答する。以下の説明は、主に
図5と
図6の設定に係り、簡単な例を挙げる。通常、開示された技術は該特定のシステム設定に制限されず、更に例として
図3もしくは
図4の設定のように任意のその他設定でも応用できる。
【0083】
図5と
図6の設定に示す実施例において、周辺装置78のアドレス空間内のあるアドレス領域から読取りコマンドを検出した時、インターフェースモニターロジック92はCS2_O#を「高」として強制設定でき、安全装置のメモリ98内部からホスト装置読取りコマンド(もしくは読取りコマンドの一部)を提供する。ホスト装置74は通常、応答が周辺装置からのものでないことがわからない。一実施例に於いて、このようなシーンは例として安全装置がMISO信号をオーバーライドする時のような、
図4のシステム110に適用する。
【0084】
この種の仕組みの使用例は一種のシステムである。そのうち、周辺装置78はSPIフラッシュメモリ装置を含み、更に安全装置86は一部のフラッシュメモリアドレス空間をオーバーライドするように設定され、またこの種の方法によって、アドレス領域で安全なフラッシュメモリエミュレーション(emulation)を提供する。例として、安全装置86は、インターフェースモニターロジック92で初期ホストブートコードを含むフラッシュメモリアドレス領域(スタート時にホスト装置によって引き出された最初の起動コマンド)をオーバーライドするTPMを含む。TPMはセルフコンテインド型身分認証した初期ブートコードで当フラッシュメモリアドレス領域をオーバーライドする。例として、コードにジャンプする前に、残りのコードに対し認証する。
【0085】
一実施例に於いて、安全装置86は、更にSPIフラッシュメモリ装置へのメインインタフェースを含む。他に、安全装置86は、SPIフラッシュメモリ装置にアクセスする時にホスト装置74をリセットしたままにするための適したインタフェースと回路を含むこともでき、それは通常システムスタートプロセスの一部である。安全装置86は例として組み込みコントローラ(EC)、Super I/O(SIO)もしくはベースボード管理コントローラ(BMC)装置でもよい。
【0086】
図7に示すのは、本発明の実施例で、セキュアブートプロセスの例であるフローチャートである。該方法は、起動から始まり、それはシステムパワーをアサートすることである。リセット維持ステップ102に於いて、安全装置86は、ホスト装置74をリセット状態で維持し、更に選択的にSPIフラッシュメモリ(周辺装置78)から起動する。(任意の)初期読取りステップ104において、安全装置86はSPIフラッシュメモリからデータブロックを読取り、データブロックの認証を検査し、それをメモリ98内に格納する。
【0087】
オーバーライドステップ108において、安全装置86は、SPIフラッシュメモリ内の少なくとも一つの定義済アドレス領域(本実施例では周辺装置78とする)へのアクセスをオーバーライドするためにインターフェースモニターロジック92を設定する。問題のアドレス領域は例として一個もしくは複数個のキー、セットアップデータ及び/もしくはホスト装置74の初期ブートブロックを含むことができる。
【0088】
リセット解除ステップ112において、安全装置86はホスト装置のリセットを解除する。したがって、起動ステップ116において、ホスト装置74はその起動プロセスをスタートする。起動プロセスの一部として、領域アクセスサブステップ120において、安全装置86は内部のメモリ98から定義済アドレス領域へのアクセスをサービスする。
【0089】
このような方式によって、安全装置からキー、セットアップデータ及び/もしくは初期ブートコード類の取扱注意データを安全に提供する。ホスト装置74は該データがSPIフラッシュメモリからではなく、安全装置から提供されたことを知ることはできない。
【0090】
図7の方法は、安全装置が周辺装置の定義済アドレス領域へのアクセスをどのようにオーバーライドするかを示した例である。代替実施例において、その目的のため、任意のその他適する方法を用いることができる。SPIフラッシュメモリ装置として成りすます代替方案として、安全装置は任意のその他適切な未承認のトランザクションをオーバーライド及び/もしくは中断することによって、フラッシュメモリ装置(もしくはその他周辺装置)を保護する。
【0091】
その他、未承認のトランザクションのオーバーライドは、特定の定義済アドレス領域の保護に限定されない。例として、保護された外部設備からの戻りデータもしくはSPIのコマンドコードに基づき、オーバーライドを作動させる。例として、安全装置はセキュリティポリシーを実施でき、それはフラッシュメモリ装置に対してプログラム、消去、書込み起動、状態/設定及び/もしくは任意のその他コマンドもしくは機能を使用禁止にする。SPIフラッシュメモリオーダーとコマンドに依る規範例として、2015年8月24日に、Winbond Electronics Corporationに依る「SPIフラッシュメモリ-デュアル/クワッドを備えたSPIとQPIの3Vシリアルフラッシュメモリ(SPI Flash - 3V Serial Flash Memory with Dual/Quad SPI and QPI)」に於いて指定した。
【0092】
別の例として、
図7の方法において、取扱注意データは常にフラッシュメモリ装置の中に存在し、更に起動プロセスの一部として、安全装置が読み取る。代替実施例に於いて、取扱注意データは、先ず安全装置内に保存しても良い(フラッシュメモリ以外、もしくはフラッシュメモリに保存しない)。このような実施例に於いて、該データをフラッシュメモリ装置から安全装置へ読み取らなくてもよい。
【0093】
また別の例として、
図7の方法はSPIバスを参考として説明される。代替実施例に於いて、安全装置は、任意の専用信号(仮に有れば)及び/もしくはバスの共有信号でその他バスとプロトコル内の周辺装置の定義済アドレス領域へのアクセスをオーバーライドする。例として、I
2Cバスはプルアップ双方向バス(pull-up bidirectional bus)であり、それらは複数個のスレーブ装置と複数個のマスター装置をサポートすることを目的としている。よって、組込み式メカニズムを備えるプロトコルによって、設備間のコンテンション(contention)を処理する。例としてI
2C設備が「1」(プルアップ)を設定しようとした時にSDAラインに於いて「0」を検出すると、装置はコンテンション中であると仮定し、次のトランザクションまでバスを解除する。一実施例に於いて、I
2C安全装置(例として、
図1の安全装置36とする)は、他の周辺スレーブ装置(例として、
図1の周辺装置28とする)のアドレス空間の一部とオーバーラップするように(overlap)設定する。安全装置は、例として、その他周辺装置と同じデータに応答するように設定する。仮に安全装置がデータの不一致を検出した場合(例として「1」をプルアップしようとしているが、SDAライン上では「0」を検出する)、安全装置は応答動作を起こす(例として、停止の条件として、一本もしくは複数本のデータライン上で「0」に駆動し、エンドレスクロックストレッチするか(endless clock stretching)、もしくは任意のその他適切な動作を設定する)。該技術は、従来のI
2Cスレーブユニットを用い(物理層内にハードウエアの変更はない)、設備をデータレベル(data level)まで監視する。
【0094】
更に一実施例に於いて、安全装置86は(インターフェースモニターロジック92を使用する)更にSPIアドレスのデータフェイズ(data phase)を監視する。データの不一致を識別した時、安全装置は、トランザクションの中断、システムのリセット、キーへのアクセスのロック、もしくは任意のその他適切な動作などの応答動作を開始する。
【0095】
例示的な状況において、安全装置86はSPIフラッシュメモリ中に格納されている特定コードセグメントの署名もしくはダイジェストを保存する。安全装置は、署名もしくはバックグランド内のコード部分のキャッシュ値を計算する時にホスト装置74のSPIフラッシュメモリへのアクセスを監視する。仮に間違った署名、キャッシュ値もしくはSPI取得シーケンスを検出した場合、安全装置86は適切な応答動作を開始する。
【0096】
更に一実施例に於いて、安全装置は、バス82上の一個より多い周辺装置78を監視でき、例として異なる設備へのアクセス順序が予定どおりであることを認証する。
【0097】
更に一実施例に於いて、安全装置86は、一個もしくは複数個の信号(CS以外)を用いて、周辺装置78へのアクセスを制限するか、もしくは周辺装置78への承認トランザクションを検出する時に、あるシステム状態の実行を強制する。この種の信号の非限定的な例は、以下を含む。
【0098】
・
図4のようなシステムで説明する任意の信号。
・フラッシュメモリ内のライトプロテクト信号。
・リセット制御信号。
・電源管理制御信号。
・電源を制御する一個もしくは複数個の装置。
・システムを停止する通信(例としてネットワーク停止インタフェースコントローラ)。
・システムリセット。
【0099】
図1及び
図3から
図6に示すシステム20、70、110及び130の配置、並びに安全装置36、86及びバス32、82のような各種システム部品は、すべて説明を明確にするための概略図であるが一代替実施例に於いて、任意のその他適する配置を使用してもよい。
【0100】
例として、明確にするため、図面では、一個の周辺装置と一個のホスト装置だけを示す。一実施例に於いて、システムは二個もしくは更に多くの周辺装置及び/もしくは二個もしくは更に多くのホスト装置を含むことができる。ここで示す実施例はI2C及びSPIバスを使用した実施例を参考としている。代替実施例に於いて、開示された技術はその他適切な種類のバスにおいて必要な修正を加えて使用することができる。
【0101】
システム20、70、110及び130の異なる部品は、例えば、特定用途向け集積回路(ASIC:Application-Specific Integrated Circuit)もしくはフィールド・プログラマブル・ゲート・アレイ(FPGA:Field-Programmable Gate Array)のような任意の適切なハードウエアで実行できる。一実施例に於いて、安全装置36と86の一部部品(例としてプロセッサ44もしくはプロセッサ94)は、ソフトウェアもしくはハードウエアとソフトウェア部品の組合せで実現する。メモリ48及び98は、任意の適切なタイプの記憶装置、例としてランダムアクセスメモリ(RAM:Random Access Memory)もしくはフラッシュメモリ(Flash memory)を使用できる。
【0102】
一実施例に於いて、プロセッサ44及び/もしくはプロセッサ94は、本明細書に記載の機能を実行するためにソフトウェア内にプログラムされた汎用のプログラマブルプロセッサを含む。ソフトウェアは、ネットワークを介して電子形式でプロセッサへダウンロードでき、もしくは磁気、光学、電子メモリ保存のような持続性の有形媒体(non-transitory tangible media)に追加、もしくは置き換えできる。
【0103】
上述実施例に於いて、安全装置は先ずバスを監視することで未承認のトランザクションを検出し、続いてトランザクションを中断する。一代替実施例に於いて、安全装置はトランザクションを中断するのに、先にトランザクションを検出する必要がなく、更にはバスを監視する必要もない。例として、安全装置は該ホスト装置が承認されるまでもしくは承認されない限り、或るホスト装置のチップセレクト(CS)ラインをオーバーレイできる。承認は任意の適する方法で実行し、同じバスを使用する必要がない。
【0104】
非限定的な実施例として、本明細書に記載の方法とシステムは、ここではいくつかの例しか挙げないが安全メモリのアプリケーション、モノのインターネット(IoT)のアプリケーション、組込み式アプリケーションもしくは自動車アプリケーションなど各種アプリケーションに使用することができる。
【0105】
理解すべき点として、上述の実施例は、実施例の方式で引用されており、本発明は上述の具体提示と詳細な内容に制限されない。更には本発明の範囲は、上記の様々な特徴の組み合わせ及び部分的組み合わせ、並びに当領域に習熟した技術者が説明を読んだ後に思いつくことができる未開示の技術も含む。本願で援用した文書は、本願の一部であり、これらの援用された文書内の用語の定義が本明細書と明確に矛盾する又は矛盾を暗に含む場合には、本明細書の定義を参考とする。
【符号の説明】
【0106】
20 システム
24 ホスト装置
28 周辺装置
32 I2Cバス
36 安全装置
40 インタフェース
44 プロセッサ
48 メモリ
50 監視ステップ
54 検出ステップ
58 検査ステップ
62 許可ステップ
66 中断ステップ
70 システム
74 ホスト装置
78 周辺装置
82 SPIバス
86 安全装置
90 インタフェース
91 スレーブインターフェースロジック
92 インターフェースモニターロジック
94 プロセッサ
98 メモリ
110 システム
130 システム
100 直列抵抗
102 リセット維持ステップ
104 初期読取りステップ
108 オーバーライドステップ
112 リセット解除ステップ
116 起動ステップ
120 領域アクセスサブステップ
CS1# チップセレクトライン
CS2# チップセレクトライン
CLK クロックライン
MASK_CS2# 制御信号
MOSI マスタアウトスレーブインライン
MISO マスタインスレーブアウトライン