(57)【要約】      （修正有）【課題】ＳｏＣ（ＳｙｓｔｅｍーоｎーＣｈｉｐ）上のリソースのセーフかつセキュアな保護を可能とする。【解決手段】ＳｏＣは、セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、セキュアマスタと非セキュアマスタとによって共有されるように設定されているリソースと、ステートマシンの特定の状態へのリソースの遷移がセキュアマスタだけに許可され、かつステートマシンの別の特定の状態へのリソースの遷移が非セキュアマスタだけに許可されることによって、リソースが保護されるように設定されているステートマシンと、を有する。【選択図】図１
2020205050.tif 000002
【特許請求の範囲】
【請求項１】
ＳｏＣ（System on Chip）であって、前記ＳｏＣは、
セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、
前記セキュアマスタと前記非セキュアマスタとによって共有されるように設定されているリソースと、
ステートマシンであって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアマスタだけに許可され、かつ、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアマスタだけに許可されることによって、前記リソースが保護されるように設定されているステートマシンと、
を有するＳｏＣ。
【請求項２】
前記非セキュアマスタは、セーフティソフトウェアを実行するように設定されたセーフマスタである、
請求項１記載のＳｏＣ。
【請求項３】
前記セキュアマスタは、バストランザクションの一部として、前記リソースに前記セキュアマスタとして名乗り出るように設定されている、
請求項１記載のＳｏＣ。
【請求項４】
前記セキュアマスタまたは前記非セキュアマスタは、バストランザクションの一部でありかつ前記リソースに格納された設定可能な、または、ハードコーディングされた参照マスタ識別子に相当するマスタ識別子によって識別可能である、
請求項１記載のＳｏＣ。
【請求項５】
設定可能な前記参照マスタ識別子は、書き込み保護されている、
請求項４記載のＳｏＣ。
【請求項６】
前記参照マスタ識別子に合致する前記マスタ識別子によって識別可能な前記セキュアマスタまたは前記非セキュアマスタだけに、前記参照マスタ識別子の変更が許可され、前記複数のプロセッサコアのうちの別の１つを前記セキュアマスタまたは前記非セキュアマスタとしてそれぞれ識別する、
請求項５記載のＳｏＣ。
【請求項７】
前記セキュアマスタは、前記バストランザクションの一部として、側波帯信号を介し、前記セキュアマスタとしてのその識別子をリソース保護レジスタに伝送するように設定されている、
請求項３記載のＳｏＣ。
【請求項８】
前記リソースは、レジスタである、
請求項１記載のＳｏＣ。
【請求項９】
前記ＳｏＣは、さらに、
複数のリソースと、
複数のステートマシンと、
を有し、各ステートマシンは、前記複数のリソースのうちのそれぞれ１つに対応する、
請求項１記載のＳｏＣ。
【請求項１０】
前記ステートマシンは、実行状態から設定状態への前記リソースの遷移を前記非セキュアマスタだけに許可するように設定されており、設定状態中は、前記非セキュアマスタだけに前記リソースの再設定が許可される、
請求項１記載のＳｏＣ。
【請求項１１】
前記再設定では、前記セキュアマスタによってチェックされる前に、許可されない設定がアクティブにならないようにするために、新たな設定データがシャドウレジスタに書き込まれる、
請求項１０記載のＳｏＣ。
【請求項１２】
前記ステートマシンは、設定状態からチェック状態への前記リソースの遷移が前記セキュアマスタだけに許可されるように設定されており、チェック状態中は、前記リソースまたは前記リソースのシャドウレジスタの設定は、変更不可であり、かつチェックされる、
請求項１記載のＳｏＣ。
【請求項１３】
前記ステートマシンは、前記チェック状態から実行状態への前記リソースの遷移が前記セキュアマスタだけに許可されるように設定されており、実行状態中は、前記リソースは、通常に、チェックされた前記設定でセキュアに動作する、
請求項１２記載のＳｏＣ。
【請求項１４】
前記リソースは、メモリへのアクセスを制御するように構成されているバスメモリ保護ユニット（ＭＰＵ：Memory Protection Unit）である、
請求項１記載のＳｏＣ。
【請求項１５】
ＳｏＣ（System on Chip）であって、前記ＳｏＣは、
セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンおよび非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンを含む複数のバーチャルマシンを有するマスタを含む複数のプロセッサコアと、
前記セキュアバーチャルマシンと前記非セキュアバーチャルマシンとによって共有されるように設定されているリソースと、
ステートマシンあって、前記ステートマシンの特定の状態への前記リソースの遷移が前記セキュアバーチャルマシンだけに許可され、前記ステートマシンの別の特定の状態への前記リソースの遷移が前記非セキュアバーチャルマシンだけに許可されることにより、前記リソースが保護されるように設定されているステートマシンと、
を有するＳｏＣ。
【請求項１６】
前記セキュアバーチャルマシンは、バストランザクションの一部でありかつ前記リソースに格納された設定可能な、または、ハードコーティングされた参照識別子に相当するセキュアバーチャルマシン識別子によって識別可能である、
請求項１５のＳｏＣ。
【請求項１７】
前記セキュアバーチャルマシンは、バストランザクションの一部として、前記リソースに前記セキュアバーチャルマシンとして名乗り出るように設定されている、
請求項１５記載のＳｏＣ。
【請求項１８】
ＳｏＣ（System on Chip）であって、前記ＳｏＣは、
セキュリティソフトウェアを実行するように設定されているセキュアマスタを含む複数のプロセッサコアと、
ステートマシンであって、前記ステートマシンの特定の状態へのリソースの遷移が前記セキュアマスタだけに許可されることにより、前記リソースが保護されるように設定されているステートマシンと、
を有するＳｏＣ。
【請求項１９】
前記セキュアマスタは、ＨＳＭ（Hardware Security Module）である、
請求項１８記載のＳｏＣ。
【発明の詳細な説明】
【技術分野】
【０００１】
背景技術
ＳｏＣ（System-on-Chip）には、プロセッサコアによってアクセス可能なリソースが含まれている。ＳｏＣはマイクロコントローラであってよい。プロセッサコアは、ＣＰＵ（Central Processing Unit）であってよい。リソースには、メモリ、メモリ内の設定可能なアドレス範囲、周辺装置または周辺副機能（例えばクロック制御システム）が含まれていてよい。ＳｏＣがセーフかつセキュアであるためには、そのリソースのアクセスおよび制御がセーフかつセキュアでなければならない。
【０００２】
ハードウェアおよびソフトウェアが異なれば、セーフティ特性およびセキュリティ特性およびリスクが異なり得る。セキュアかつ保護されたハードウェア上で動作するセキュアソフトウェアは、一般に、セキュアであるがセーフではない。セーフなハードウェア（例えばロックステップＣＰＵ）上で動作するセーフなソフトウェアは、セーフではあるが、悪意的であることがある。ＳｏＣが脆弱（compromised）である場合、他のすべてのソフトウェアは、悪意的であり得る。ＳｏＣリソースの保護は、ＳｏＣ上で動作するソフトウェアのセーフ特性、セキュア特性および悪意的な特性を考慮すると、セーフかつセキュアであるべきである。
【図面の簡単な説明】
【０００３】
【図１】本開示の複数の態様によるＳｏＣ（System on Chip）を示す図である。
【図２】本開示の複数の態様にしたがい、ステートマシン遷移図を示す図である。
【図３】本開示の複数の態様にしたがい、ステートマシンのハードウェア実装を示す図である。
【図４Ａ】本開示の複数の態様にしたがい、リソース保護レジスタのビットフィールドを示す図である。
【図４Ｂ】本開示の複数の態様にしたがった、図４Ａのリソース保護レジスタのビットフィールド定義の表である。
【図５Ａ】本開示の複数の態様によるリソース保護方法のフローチャートである。
【図５Ｂ】本開示の複数の態様による別のリソース保護方法のフローチャートである。
【発明を実施するための形態】
【０００４】
本開示は、ＳｏＣ（System on Chip）上のリソースのセーフかつセキュアな保護を対象としている。
【０００５】
リソース保護は、例えば２つのレベルの保護を有する。第１レベルが定めるのは、リソース保護の設定の変更が、どのバスマスタ（セーフまたはセキュアバスマスタ）に許可されるかである。第２レベルは、セーフバスマスタおよびセキュアバスマスタ間の相互作用を制御することによるリソースそれ自体のための保護である。本開示の対象ではない２つ以上の付加的な保護レベルが存在することもある。
【０００６】
保護メカニズムは、ステートマシンによって制御され、ここでは特定の状態遷移は、セーフバスマスタだけによって行うことができ、他の遷移はセキュアバスマスタによって行うことができる。ステートマシンによって保証されるのは、保護される各リソースが、設定中にセーフかつセキュアな状態にあり、セキュアバスマスタがこの設定をチェックしている間はリソースがもはや変更できないことである。この説明全体にわたって、バスマスタは、一般に、より簡単にマスタと称される。
【０００７】
図１には、本開示の複数の態様によるＳｏＣ１００が示されている。
【０００８】
ＳｏＣは、コンピュータまたは他の電子システムのすべてのコンポーネントを一体化する集積回路である。これらのコンポーネントは、常ではないが一般に、ＣＰＵ（Central Processing Unit）、メモリ、入出力ポートおよび２次記憶装置のすべてを単一の基板またはチップ上に含んでいる。ＳｏＣは、デジタル信号、アナログ信号、ミックスト・シグナル、またアプリケーションに応じて多くの場合に高周波信号処理機能を含んでいてよい。
【０００９】
ＳｏＣ１００は、複数のプロセッサコア１１０、リソース１２０、ステートマシン１３０、バス／インターコネクト１４０、複数のインタフェース１５０、グローバルメモリ１６０、オプションの保護レジスタ１７０、およびオプションの側波帯信号路１８０を有する。
【００１０】
この実施例における複数のプロセッサコア１１０は、ＣＰＵであり、またプロセッサコア１１０−０（ＣＰＵ０）、プロセッサコア１１０−１（ＣＰＵ１）、プロセッサコア１１０−２（ＣＰＵ２）、プロセッサコア１１０−３（ＣＰＵ３）、およびプロセッサコア１１０−ｃｓ（ＣＰＵｃｓ）を含んでいる。プロセッサコア１１０は、択一的には、携帯電話用のベースバンドプロセッサであってよい。複数のプロセッサコア１１０の各プロセッサコアは、それぞれのマスタインタフェース１５０（１５０−０、１５０−１、１５０−２、１５０−３および１５０−ｃｓ）によってバス１４０に接続されている。メモリ１６０、リソース１２０、ステートマシン１３０、およびオプションの保護レジスタ１７０は、スレーブインタフェース１５０−２を介してバス１４０に接続されている。
【００１１】
プロセッサコア１１０−ｃｓは、セキュリティソフトウェアを実行するように設定されているセキュアマスタとして指定されている。この開示全体にわたり、「ｃｓ」は、サイバーセキュリティを意味する。セキュアマスタ１１０−ｃｓは、例えば、ＨＳＭ（Hardware Security Module）であってよい。プロセッサコア１１０−０は、この実施例において、非セキュリティソフトウェアを実行するように設定されている非セキュアマスタとして指定されている。この非セキュアマスタ１１０−０は、セーフティソフトウェアを実行するように設定されているセーフマスタとして指定されていてよい。この説明全体にわたり、非セキュアマスタ１１０−０は、セーフマスタとして説明されるが、この本開示は、この点において必ずしも限定されないことは明らかである。
【００１２】
リソース１２０は、セキュアマスタ１１０−ｃｓと非セキュアマスタ１１０−０とで共有されるように設定されている。共有されるリソース１２０は、レジスタ、メモリ、状態、入力信号、出力信号などであってよい。択一的には、リソース１２０は、セーフティ上の観点からも、またセキリュティ上の観点からも適切に設定されるべきであるクロックシステムであってよい。
【００１３】
リソース１２０は、この実施例において、バスメモリ保護ユニット（ＭＰＵ： Memory Protection Unit）である。バスＭＰＵには、メモリ１６０の特定の範囲への書込みアクセスを制限することなどによって、メモリ１６０へのアクセスを制御するように設定されているレジスタの集合が含まれる。メモリ１６０は、例えば、ＲＡＭ（Random Access memory）であってよいが、本開示はこの点において限定されない。
【００１４】
ステートマシン１３０は、ステートマシン１３０の特定の状態へのリソース１２０の遷移がセキュアマスタ１１０−ｃｓだけに許可され、かつステートマシン１３０の別の特定の状態へのリソース１２０の遷移がセーフマスタ１１０−０だけに許可されることによって、リソース１２０が保護される、ように設定されている。このことを以下で、さらに詳細に説明する。
【００１５】
セキュアマスタ１１０−ｃｓまたはセーフマスタ１１０−０は、マスタ識別子により、リソース１２０に、それぞれのセキュアマスタまたはセーフマスタとして名乗り出るように設定可能であり、このマスタ識別子は、バストランザクションの一部でありかつリソース１２０に格納された設定可能な、またはハードコーディングされた参照マスタ識別子に相当する。オプションの保護レジスタ１７０は、この設定可能な、またはハードコーディングされた参照マスタ識別子を格納するように構成されており、保護レジスタ１７０は書込み保護可能である。リソース１２０には、どのマスタがセキュアマスタ１１０−ｃｓであるかについてのローカルな知識は不要であり、これにより、セキュアマスタアクティビティのトレースの回避が単純化される。保護レジスタ１７０は、任意のマスタにより、任意の時点に読み出し可能である。セーフマスタ１１０−０またはセキュアマスタ１１０−ｃｓとは別のマスタによる保護レジスタ１７０への書込みにより、アラームがトリガされ得る。同様に、有効でないステートマシン遷移を表す、セーフマスタ１１０−０またはセキュアマスタ１１０−ｃｓの保護レジスタ１７０への書き込みの試みは、なにもせずに無視され得る。セーフマスタ１１０−０はまた、第２保護レジスタを使用して定義できることを理解されたい。
【００１６】
バス１４０ルートとは択一的に、セキュアマスタ１１０−ｃｓは、バストランザクションの一部として、側波帯信号路１８０上の側波帯信号を介し、セキュアマスタ１１０−ｃｓとしてのその識別子をリソース保護レジスタ１７０に伝送するように構成可能である。側波帯信号は、ハードコーディングされるため、この信号がセキュアマスタ１１０−ｃｓからであることは明らかである。保護レジスタ１７０により、セキュアマスタ１１０−ｃｓおよび／またはセーフマスタ１１０−０の定義が許可され、またこの保護レジスタ１７０は、４つまでのステートマシン１３０の制御ビットを有し得る。
【００１７】
図示した実施例のセキュアマスタ１１０−ｃｓは、バストランザクションの一部であることにより、側波帯信号によって定義される。択一的にはセキュアマスタ１１０−ｃｓは、第２保護レジスタ１７０を用い、セーフティマスタ１１０−０と同様の仕方で定義可能である。
【００１８】
複数のプロセッサコア１１０のうちの別の１つをセキュアマスタまたはセーフマスタとしてそれぞれ識別するために、参照マスタ識別子に合致するマスタ識別子によって識別可能なセキュアマスタ１１０−ｃｓまたはセーフマスタ１１０−０だけに、参照マスタ識別子の変更が許可される。
【００１９】
セキュアマスタ１１０−ｃｓは、オプションとして、複数のバーチャルマシン１１０−ｃｓ−ｖｍを有していてよい。これらのバーチャルマシン１１０−ｃｓ−ｖｍには、セキュリティソフトウェアを実行するように設定されたセキュアマスタ１１０−ｃｓ−ｖｍｃｓに指定されたバーチャルマシンと、オプションとして、セーフソフトウェアを実行するように設定されたセーフバーチャルマシン１１０−ｃｓ−ｖｍ０と、が含まれていてよい。セーフバーチャルマシン１１０−ｃｓ−ｖｍ０は、セーフソフトウェアを実行するように設定されたセーフマスタとして指定可能である。
【００２０】
セキュアマスタおよび／またはセーフマスタがバーチャルマシンであることは、上記のように、プロセッサコアであることと同様である。リソース１２０は、セキュアバーチャルマシン１１０−ｃｓ−ｖｍｃｓとセーフバーチャルマシン１１０−ｃｓ−ｖｍ０とによって共有されるように構成可能である。ステートマシン１３０は、ステートマシン１３０の特定の状態へのリソース１２０の遷移がセキュアバーチャルマシン１１０−ｃｓ−ｖｍｃｓだけに許可され、ステートマシン１３０の別の特定の状態へのリソース１２０の遷移がセーフバーチャルマシン１１０−ｃｓ−ｖｍ０だけに許可されることにより、リソース１２０が保護される、ように構成可能である。セキュアバーチャルマシンは、セキュアバーチャルマシン識別子によって識別可能であり、このセキュアバーチャルマシン識別子は、バストランザクションの一部でありかつ保護レジスタ１７０などのようなリソース１２０に格納された設定可能な、またはハードコーディングされた参照識別子に相当する。
【００２１】
ＳｏＣは、複数のリソース１２０（図示せず）および複数のステートマシン１３０（図示せず）を有してよい。各リソース１２０は、それ自体のステートマシン１３０を有していてよい。
【００２２】
図２には、本開示の複数の態様にしたがって、ステートマシン遷移図２００が示されている。
【００２３】
ステートマシン遷移図２００は、図１のステートマシン１３０の遷移図である。ステートマシン遷移図２００には、特定のリソース１２０のリソース保護が示されている。この実施例において、ステートマシン遷移図２００は、７つの状態、すなわち、初期状態２１０、実行状態２２０、設定状態２３０、実行ロック状態２４０、セキュア実行状態２５０、セキュア設定状態２６０およびセキュアチェック状態２７０を有する。
【００２４】
ステートマシン１３０の基本的な動作は、すべての設定が、セーフマスタＭ（１１０−０）によって実行されることである。このことは、リソース１２０それ自体だけに当てはまるのではなく、リソース１２０の保護メカニズムの制御についても当てはまる。唯一の例外は、純粋にセキュアなリソースであり、ここでは、セキュアマスタＣＳＭ（Cyber Security Master；１１０−ｃｓ）が、意図せずにセーフリソースに影響を及ぼし得ないことが一旦保証されれば、すべての動作は、セキュアマスタＣＳＭによって処理可能である。
【００２５】
設定のようなクリティカルな動作は、通常の動作状態とは異なる特定の状態においてのみ実行可能である。これらのクリティカルな状態には、セキュアマスタＣＳＭ（１１０−ｃｓ）またはセーフマスタＭ（１１０−０）のような、認証されたマスタだけによって実行可能な遷移によってのみ到達可能である。各状態遷移は、セーフマスタＭまたはセキュアマスタＣＳＭのいずれかである単一のマスタだけによって実行可能である。唯一の例外は、初期状態２１０から実行ロック状態２４０への遷移であり、この遷移は、セキュアマスタＣＳＭ（１１０−ｃｓ）またはセーフマスタＭ（１１０−０）のいずれかによって実行可能である。
【００２６】
共有され、セーフであり、かつセキュアであるリソース１２０についての基本的なコンセプトは、設定がセーフマスタＭ（１１０−０）によって実行され、次に、リソース１２０がアクティブになる前に、セキュアマスタＣＳＭ（１１０−ｃｓ）によってチェックされることである。このコンセプトは、セキュア実行状態２５０、セキュア設定状態２６０およびセキュアチェック状態２７０を有する、ステートマシン遷移図２００の右側によって示されている。
【００２７】
基本的に、セーフマスタＭ（１１０−０）は、セーフティ上の観点からセキュアマスタＣＳＭ（１１０−ｃｓ）を信頼することができず、セキュアマスタＣＳＭ（１１０−ｃｓ）は、セキュリティ上の観点からセーフマスタＭ（１１０−０）を信頼することができない。それゆえに共有リソース１２０については、再設定がセーフマスタＭ（１１０−０）によって実行され、セキュアマスタＣＳＭ（１１０−ｃｓ）がこれを監督する。
【００２８】
以下では、図２のステートマシン遷移図２００を参照して、ステートマシン１３０の状態および遷移をより詳細に説明する。
【００２９】
ステートマシン１３０の状態および遷移により、リソース１２０の操作および設定が、セーフかつセキュアに可能になる。リセット後、すべてのリソース１２０は、何らの制限なしにリソース１２０が設定可能な初期状態２１０にある。この初期状態２１０は、信頼されたセーフかつセキュアなソフトウェアだけが動作しているという仮定の下で、初期スタートアップフェーズにおいてのみ使用される。
【００３０】
純粋にセーフなリソースは、セーフでないセキュアマスタＣＳＭ（１１０−ｃｓ）によって設定してはならない。共有リソース１２０は、セーフマスタＭ（１１０−０）によって設定される。というのは、結果的に、より単純なシステム設計が得られるからである。通常に動作するＳｏＣ１００は、任意のアプローチで処理可能である。しかしながら、２つのクリティカルなケースは、セキュアマスタＣＳＭ（１１０−ｃｓ）が、セーフでない仕方で振る舞っている場合、およびセーフマスタが悪意的である場合である。２つのケースは、セキュア実行状態２５０、セキュア設定状態２６０およびセキュアチェック状態２７０を有する、ステートマシン遷移図２００の右側によって取り扱われる。
【００３１】
初期状態２１０：
初期状態２１０は、リセット後に発生する。リソース１２０にとって、この状態は、設定状態２３０と同様である。初期状態２１０と設定状態２３０との違いは、初期状態２１０では、セキュア実行状態２５０または実行ロック状態２４０への状態遷移がなおも可能であることである。
【００３２】
実行ロック状態２０４：
実行ロック状態２４０は、すべてのリソース１２０がセーフかつセキュアにロックされた状態である。アプリケーションは、使用するすべてのリソース１２０を設定し、次に初期化完了信号「ｉｎｉｔ＿ｄｏｎｅ」信号をトリガする。このｉｎｉｔ＿ｄｏｎｅ信号は、中枢機構を使用して、いまなお初期状態２１０にあるすべてのリソース１２０を実行ロック状態２４０に遷移させる。これは、必要でないものも含めてすべてリソース１２０を強制的にセーフかつセキュアな実行ロック状態２４０にするのに都合のよい仕方である。この場合、次のリセットの前にリソース設定を変更することはできない。
【００３３】
実行状態２２０および設定状態２３０：
実行状態２２０は、リソース１２０の通常の動作状態である。一般的なアプローチは、初期状態２１０における初期スタートアップフェーズにおいて、セーフマスタＭ（１１０−０）だけがセットされ、この特定のセーフマスタＭ（１１０−０）により、後の設定状態２３０中にリソース設定が制御される、ことである。実行状態２２０から設定状態２３０への変更は、主に、ソフトウェアによる単一の、意図しない書き込みにより、クリティカルなリソースが変更されてはならないというセーフティ面を満足する。ステートマシン１３０を使用することにより、付加的な前提条件は、セーフマスタＭ（１１０−０）により、実行状態２２０から設定状態２３０へのリソース１２０の遷移がローカルに制御されることである。というのは、個別のリソース１２０だけが影響を受け、リソース状態のグローバルな制御のような一般的なタイムアウトメカニズムは、不要であるためである。
【００３４】
セキュア実行状態２５０、セキュア設定状態２６０およびセキュアチェック状態２７０：
これらの状態の間、セーフマスタＭ（１１０−０）は、セキュアマスタＣＳＭ（１１０−ｃｓ）と相互に影響し合う。というのはリソース１２０が、セーフティとセキュリティとの間で共有されるからである。このことは、左側に類似して、図２の右側に示されている。より具体的にいうと、セキュア実行状態２５０およびセキュア設定状態２６０は、実行状態２２０および設定状態２３０にそれぞれ類似している。違いは、付加的なセキュアチェック状態２７０と、右側の遷移のうちのいくつかが、異なるマスタ、すなわちセーフマスタＭ（１１０−０）ではなくセキュリティマスタＣＳＭ（１１０−ｃｓ）によって制御されることとである。セーフティ的にクリティカルな遷移は、セーフマスタＭ（１１０−０）によって制御され、セキュリティ的にクリティカルな遷移は、セキュアマスタＣＳＭ（１１０−ｃｓ）によって制御される。
【００３５】
これらの状態においてセキュアマスタＣＳＭ（１１０−ｃｓ）は、側波帯信号によって定義可能であるか、または、セーフティマスタＭ（１１０−０）を定義するための１つのレジスタと、セキュアマスタＣＳＭ（１１０−ｃｓ）を定義するための別の１つのレジスタと、の２つの保護レジスタが存在する。
【００３６】
セキュア実行状態２５０からセキュア設定状態２６０へ：
ステートマシン１３０は、セキュア実行状態２５０からセキュア設定状態２６０へのリソース１２０の遷移をセーフマスタＭ（１１０−０）だけに許可するように設定されている。というのは、この設定は、安全性に関連しているからである。これは、実行設定状態ビットを保護レジスタ１７０に格納するセーフマスタＭ（１１０−０）によって行われる。
【００３７】
セキュア設定状態２６０は、セキュアかつセーフな状態である。セーフマスタＭ（１１０−０）が悪意的である場合、いずれにせよ安全性は保証されない。セキュア設定状態２６０中、リソース１２０の再設定は、セーフマスタＭ（１１０−０）だけに許可される。このリソース１２０がクリティカルであると仮定されるため、新たな設定は、直ちに有効にはならない。クリティカルなリソースは、例えばクロックシステムである。セキュアマスタＣＳＭ（１１０−ｃｓ）は、以下で考察するセキュアチェック状態２７０中に新たな設定をチェックする機会を有する。
【００３８】
セキュア設定状態２６０には、セキュアマスタＣＳＭ（１１０−ｃｓ）によってチェックされる前に、許容されない設定がアクティブにならないようにするために、シャドウレジスタ（図示せず）に新たな設定データを書き込むことが含まれる。
【００３９】
セキュア設定状態２６０からセキュアチェック状態２７０へ：
ステートマシン１３０は、セキュア設定状態２６０からセキュアチェック状態２７０へのリソース１２０の遷移がキュアマスタＣＳＭ（１１０−ｃｓ）だけに許可されるように設定されている。セキュアチェック状態２７０中、新たな設定は、もはや変更できないが、まだアクティブではない可能性がある。これにより、セキュアマスタＣＳＭ（１１０−ｃｓ）は、セキュアチェック状態２７０からセキュア実行状態２５０へと遷移することによって新たな設定がアクティブ化される前に、この新たな設定をチェックすることができる。このチェックは、セキュアマスタＣＳＭ（１１０−ｃｓ）を使用することによって行われるが、択一的にはセーフマスタ１１０−０または別のマスタ１１０によって実行可能である。
【００４０】
セキュア設定状態２６０およびセキュアチェック状態２７０によって保証されるのは、リソース１２０の考えられ得る任意の悪意的な設定が、攻撃を検出して対処するセキュアマスタＣＳＭ（１１０−ｃｓ）の能力に影響を及ぼすことがないようにすることである。
【００４１】
セキュアチェック状態２７０からセキュア実行状態へ：
ステートマシン１３０は、セキュアチェック状態２７０からセキュア実行状態２５０へのリソース１２０の遷移をセキュアマスタＣＳＭ（１１０−ｃｓ）だけに許可するように構成されており、セキュア実行状態２５０中、リソース１２０は、通常に、チェックされた設定でセキュアに動作する。
【００４２】
セキュアチェック状態２７０からセキュア実行状態２５０へのこの遷移１２０により、設定状態から実行状態への「ｃ２ｒ」遷移信号がアクティブ化され、この信号により、複数のシャドウレジスタから実際の制御レジスタへの並列転送がトリガされる。ｃ２ｒ遷移信号は、設定状態２３０から実行状態２２０への、またはセキュアチェック状態２７０からセキュア実行状態２５０への遷移中の１クロックサイクルの間、アクティブである。これらのシャドウレジスタは、単一のレジスタでないこともあり、むしろ好ましくは個別に書き込みできない複数のレジスタである。これらのレジスタが個別に書き込める場合、これらのレジスタの一部が旧い設定を有し、別の一部分が新しい設定を有する期間が存在することになってしまう。
【００４３】
オプションのサイバーセキュリティ保護信号（「ｃｓｐｒｏｔ」）は、強いセキュリティ要求で、リソース１２０をセーフかつセキュアな状態にする中央制御信号である。このようなリソース１２０は、例えば、上記のバスＭＰＵであってよい。クロックグリッチまたは電圧攻撃のような攻撃をハードウェアが検出した場合、このハードウェア（例えばイベント管理ユニット）は、リソース１２０を直接的にセキュア設定状態２６０に遷移させるサイバーセキュリティ保護信号を生成する。
【００４４】
図３には、本開示の複数の態様にしたがい、ステートマシン３３０のハードウェア実装が示されている。
【００４５】
ステートマシン３３０のこのハードウェア実装には、タグ識別フィルタ（ＴＩＦ）３１０．Ｍ、ＴＩＦ３１０．Ｒｘ、保護レジスタ３２０、ステートマシン３３０、インバータ、書き込みイネーブルゲート３４０、書き込みイネーブルゲート３５０、ＴＩＦ３６０、ＴＩＦ３７０、アクセスイネーブルレジスタ３８０、およびリソース３９０が含まれている。
【００４６】
ＴＩＦ３１０．Ｍは、アクセスイネーブル信号から、リソース１２０の再設定が可能な、セキュアマスタＣＳＭ（１１０−ｃｓ）の識別子をフィルタリングする。ＴＩＦ３１０．Ｒｘは、アクセス信号から、ステートマシン１３０用の制御ビットをフィルタリングする。
【００４７】
保護レジスタ３２０は、図１の保護レジスタ１７０に相当する。この実施例において、保護レジスタ３２０は、２つの部分、すなわちセキュアマスタＣＳＭ（１１０−ｃｓ）の識別子を格納するＰＲＯＴ．Ｍと、制御ビットを格納するＰＲＯＴ．Ｒｘと、を有する。この実施例のレジスタ３２０は、単一のレジスタであるが、択一的には複数のレジスタを有していてよい。
【００４８】
ステートマシン３３０は、図１のステートマシン１３０に相当する。上述のように、ステートマシン３３０は、状態遷移がセーフマスタだけによって行われ得るか、またはセキュアマスタだけによって行われ得るか、またはその両方であるかを制御することによってリソースを保護する。ステートマシン３３０は、フリップフロップによって実装可能であり、複数のレジスタを有する。
【００４９】
ステートマシン３３０は、２つの出力信号、すなわちｃｏｎｆｉｇ＿ｓｔａｔｅ信号およびｃｓ＿ｃｏｎｆｉｇ＿ｓｔａｔｅ信号を有するように図示されている。ｃｏｎｆｉｇ＿ｓｔａｔｅ信号は、設定状態２３０、セキュア設定状態２６０および初期状態２１０の間、アクティブであり、書き込みゲート３４０をイネーブルする。ｃｓ＿ｃｏｎｆｉｇ＿ｓｔａｔｅ信号は、サイバーセキュリティに固有であり、セキュアマスタＣＳＭ（１１０−ｃｓ）またはバスＭＰＵのような強いセキュリティ要求を有するリソースに対してセキュア状態を強制し、この信号により、例えば、再構成中にインバータおよび書き込みイネーブルゲート３５０を介するリソースアクセスが行われないようにする。
【００５０】
アクセスイネーブルレジスタ３８０は、例えば３２ビットを有する。それぞれのビットは、１つのマスタを表し、したがってマスタの任意の組み合わせを設定可能である。アクセスイネーブルレジスタ３８０は、セキュアチェック状態２７０中に非アクティブ化可能である。ステートマシン３３０により、セキュア実行状態２５０からセキュア設定状態２６０へのリソース３９０の遷移が、セーフマスタＭ（１１０−０）に許可される場合、セーフマスタＭ（１１０−０）は、アクセスイネーブルレジスタ３８０をアクティブ化し、セキュアマスタＣＭＳ（１１０−ｃｓ）に通知する。アクセスイネーブルレジスタ（ＡＣＣＥＮ）３８０の書き込みアクセスは、ＴＩＦ３７０によって特定のマスタに制限可能である。またアクセスイネーブルレジスタ３８０それ自体は、周辺装置またはメモリ範囲についての保護である。
【００５１】
リソース３９０は、図１のリソース１２０に相当する。リソース３９０は、例えば、ＲＡＭ（Random Access Memory）であってよい。リソース３９０へのアクセスは、ＡＣＣＥＮ３８０およびＴＩＦ３６０によって、特定のマスタまたはマスタの集合に制限可能である。
【００５２】
図４Ａには、本開示の複数の態様にしたがい、リソース保護レジスタ１７０のビットフィールド４００Ａが示されている。図４Ｂには、本開示の複数の態様にしたがい、図４Ａのリソース保護レジスタ１７０のビットフィールド定義の表４００Ｂが示されている。
【００５３】
リソース保護レジスタ１７０のビットフィールド４００Ａの上側部分には、以下のビットフィールドを有するマスタプロセッサコア１１０が定義されている。すなわち、ＶＭ（バーチャネルマシン（ＶＭ）用の３ビット）と、ＶＭＥ（ＶＭのイネーブル用の１ビット）と、ＰＲＳ（PRotection Set用の３ビット）と、ＰＲＳＥ（ＰＲＳのイネーブル用の１ビット）と、ＴＡＧ＿ＩＤ（マスタを識別するタグ識別子用の６ビット）と、ＭＥＮ（マスタ設定がイネーブルされていることを示す１ビット、セットされていない場合、初期状態２１０中のように、任意のマスタがイネーブルされている）と、Ｍ＿Ｐ（保護レジスタ１７０が書き込まれる場合、１でなければならない１ビット）と、が定義されている。
【００５４】
リソース保護レジスタ１７０のビットフィールド４００Ａの下側部分には、４つのリソース１２０（Ｒ０、Ｒ１、Ｒ２、Ｒ３）用の保護（Ｒ０＿Ｐ、Ｒ１＿Ｐ、Ｒ２＿Ｐ、Ｒ３＿Ｐ、Ｒ４＿Ｐ）が定義されている。ステート制御毎に４つのビットを有する４つのステート制御フィールド（ｘ＝０…３）が設けられている。これらのステート制御フィールドにより、１つのマスタを共通に有する異なるリソース１２０について、異なるステートマシン１３０が可能になる。ステート制御フィールド（Ｒ０、Ｒ１、Ｒ２、Ｒ３）毎に、状態は３ビットで識別される。７つの状態、すなわち０（０００、初期状態）、１（００１、実行状態）、２（０１０、設定状態）、４（１００、実行ロック状態）、５（１０１、セキュア実行状態）、６（１１０、セキュア設定状態）および７（１１１、セキュアチェック状態）が設けられている。それぞれの保護は、１つの保護ビット（Ｒ０＿Ｐ、Ｒ１＿Ｐ、Ｒ２＿Ｐ、Ｒ３＿Ｐ）によって識別され、この保護ビットは、この実施例において、読み出しについては０に、書き込みについては１にセットされる。
【００５５】
図４Ｂの表４Ｂには、図４Ａに示したリソース保護レジスタ１７０のフィールド、ビット、タイプおよび説明が含まれている。簡略にするため、この情報をここでは繰り返さない。
【００５６】
図５Ａには、本開示の複数の態様によるリソース保護方法５００Ａのフローチャートが示されている。
【００５７】
ステップ５１０Ａでは、セキュリティソフトウェアを実行するように設定されているセキュアマスタ１１０−ｃｓになるように、複数のプロセッサコア１１０のうちの１つのプロセッサコアを指定する。
【００５８】
ステップ５２０Ａでは、セーフソフトウェアを実行するように設定されているセーフマスタ１１０−０になるように、複数のプロセッサコア１１０のうちの別の１つのプロセッサコアを指定する。このセーフマスタ１１０−０は、セーフソフトウェアを実行するように設定されているセーフマスタであってよい。
【００５９】
ステップ５３０Ａでは、ステートマシン１３０の特定の状態へのリソース１２０の遷移をこのセキュアマスタ１１０−ｃｓだけに許可し、かつステートマシン１３０の別の特定の状態へのリソース１２０の遷移をこのセーフマスタ１１０−０だけに許可することによって、ステートマシン１３０により、セキュアマスタ１１０−ｃｓとセーフマスタ１１０−０とによって共有されるように設定されているリソース１２０を保護する。
【００６０】
図５Ｂには、本開示の複数の態様による別のリソース保護方法５００Ｂのフローチャートが示されている。
【００６１】
ステップ５１０Ｂでは、セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシン１１０−ｃｓ−ｖｍｃｓになるように、複数のプロセッサコア１１０のうちの１つのプロセッサコアの１つのマスタの複数のバーチャルマシン１１０−ｃｓ−ｖｍのうちの１つのバーチャルマシンを指定する。
【００６２】
ステップ５２０Ｂでは、セーフソフトウェアを実行するように設定されているセーフバーチャルマシン１１０−ｃｓ−ｖｍ０になるように、複数のバーチャルマシン１００−ｃｓ−ｖｍのうちの別の１つのバーチャルマシンを指定する。このセーフマスタ１１０−ｃｓ−ｖｍ０は、セーフソフトウェアを実行するように設定されたセーフマスタであってよい。
【００６３】
ステップ５３０Ｂでは、ステートマシン１３０の特定の状態へのリソース１２０の遷移をこのセキュアバーチャルマシン１１０−ｃｓ−ｖｍｃｓだけに許可し、かつステートマシン１３０の別の特定の状態へのリソース１２０の遷移をこのセーフバーチャルマシン１１０−ｃｓ−ｖｍ０だけに許可することによって、ステートマシン１３０により、セキュアバーチャルマシン１１０−ｃｓ−ｖｍｃｓとセーフバーチャルマシン１１０−ｃｓ−ｖｍ０とによって共有されるように設定されているリソース１２０を保護する。
【００６４】
本開示の技術はまた、以下の実施例においても説明可能である。
【００６５】
実施例１．ＳｏＣ（System on Chip）であって、ＳｏＣは、セキュリティソフトウェアを実行するように設定されているセキュアマスタおよび非セキュリティソフトウェアを実行するように設定されている非セキュアマスタを含む複数のプロセッサコアと、セキュアマスタと非セキュアマスタとによって共有されるように設定されているリソースと、ステートマシンの特定の状態へのリソースの遷移がセキュアマスタだけに許可され、かつステートマシンの別の特定の状態へのリソースの遷移が非セキュアマスタだけに許可されることによって、リソースが保護されるように設定されているステートマシンと、を有する。
【００６６】
実施例２．非セキュアマスタは、セーフティソフトウェアを実行するように設定されたセーフマスタである、実施例１のＳｏＣ。
【００６７】
実施例３．セキュアマスタは、バストランザクションの一部として、リソースにセキュアマスタとして名乗り出るように設定されている、実施例１〜２の任意の組み合わせのＳｏＣ。
【００６８】
実施例４．セキュアマスタまたは非セキュアマスタは、バストランザクションの一部でありかつリソースに格納された設定可能な、またはハードコーディングされた参照マスタ識別子に相当するマスタ識別子によって識別可能である、実施例１〜３の任意の組み合わせのＳｏＣ。
【００６９】
実施例５．設定可能な参照マスタ識別子は、書き込み保護されている、実施例１〜４の任意の組み合わせのＳｏＣ。
【００７０】
実施例６．複数のプロセッサコアのうちの別の１つをセキュアマスタまたは非セキュアマスタとしてそれぞれ識別するために、参照マスタ識別子に合致するマスタ識別子によって識別可能なセキュアマスタまたは非セキュアマスタだけに、参照マスタ識別子の変更が許可される、実施例１〜５の任意の組み合わせのＳｏＣ。
【００７１】
実施例７．セキュアマスタは、バストランザクションの一部として、側波帯信号を介し、セキュアマスタとしてのその識別子をリソース保護レジスタに伝送するように設定されている、実施例１〜６の任意の組み合わせのＳｏＣ。
【００７２】
実施例８．リソースはレジスタである、実施例１〜７の任意の組み合わせのＳｏＣ。
【００７３】
実施例９．さらに、複数のリソースと複数のステートマシンとを有し、各ステートマシンは、複数のリソースのうちのそれぞれ１つのリソースに対応する、実施例１〜８の任意の組み合わせのＳｏＣ。
【００７４】
実施例１０．ステートマシンは、実行状態から設定状態へのリソースの遷移を非セキュアマスタだけに許可するように設定されており、設定状態中は、非セキュアマスタだけにリソースの再設定が許可される、実施例１〜９の任意の組み合わせのＳｏＣ。
【００７５】
実施例１１．再設定では、セキュアマスタによってチェックされる前に、許可されない設定がアクティブにならないようにするために、新たな設定データがシャドウレジスタに書き込まれる、実施例１〜１０の任意の組み合わせのＳｏＣ。
【００７６】
実施例１２．ステートマシンは、設定状態からチェック状態へのリソースの遷移をセキュアマスタだけに許可するように設定されており、チェック状態中は、リソースまたはリソースのシャドウレジスタの設定は、変更不可であり、かつチェックされる、実施例１〜１１の任意の組み合わせのＳｏＣ。
【００７７】
実施例１３．ステートマシンは、チェック状態から実行状態へのリソースの遷移をセキュアマスタだけに許可するように設定されており、実行状態中は、リソースは、通常に、チェックされた設定でセキュアに動作する、実施例１〜１２の任意の組み合わせのＳｏＣ。
【００７８】
実施例１４．リソースは、メモリへのアクセスを制御するように構成されているバスメモリ保護ユニット（ＭＰＵ：Memory Protection Unit）である、実施例１〜１３の任意の組み合わせのＳｏＣ。
【００７９】
実施例１５．ＳｏＣ（System on Chip）であって、ＳｏＣは、セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンおよび非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンを含む複数のバーチャルマシンを有するマスタを含む複数のプロセッサコアと、セキュアバーチャルマシンと非セキュアバーチャルマシンとによって共有されるように設定されているリソースと、ステートマシンの特定の状態へのリソースの遷移がセキュアバーチャルマシンだけに許可され、ステートマシンの別の特定の状態へのリソースの遷移が非セキュアバーチャルマシンだけに許可されることにより、リソースが保護されるように設定されているステートマシンと、を有する。
【００８０】
実施例１６．バストランザクションの一部でありかつリソースに格納された設定可能な、またはハードコーティングされた参照識別子に相当するセキュアバーチャルマシン識別子によってセキュアバーチャルマシンが識別可能である、実施例１５のＳｏＣ。
【００８１】
実施例１７．セキュアバーチャルマシンは、バストランザクションの一部として、リソースにセキュアバーチャルマシンとして名乗り出るように設定されている、実施例１５〜１６の任意の組み合わせのＳｏＣ。
【００８２】
実施例１８．ＳｏＣ（System on Chip）であって、ＳｏＣは、セキュリティソフトウェアを実行するように設定されているセキュアマスタを含む複数のプロセッサコアと、ステートマシンの特定の状態へのリソースの遷移がセキュアマスタだけに許可されることにより、リソースが保護されるように設定されているステートマシンと、を有するＳｏＣ（System on Chip）。
【００８３】
実施例１９．セキュアマスタは、ＨＳＭ（Hardware Security Module）である、実施例１８のＳｏＣ。
【００８４】
実施例２０．リソース保護方法であって、リソース保護方法では、複数のプロセッサコアのうちの１つのプロセッサコアが、セキュリティソフトウェアを実行するように構成されているセキュアマスタになるように指定し、複数のプロセッサコアのうちの別の１つのプロセッサコアが、非セキュリティソフトウェアを実行するように構成されている非セキュアマスタになるように指定し、ステートマシンの特定の状態へのリソースの遷移をこのセキュアマスタだけに許可し、かつステートマシンの別の特定の状態へのリソースの遷移をこの非セキュアマスタだけに許可することにより、セキュアマスタと非セキュアマスタとによって共有されるように設定されているリソースをステートマシンによって保護する、リソース保護方法。
【００８５】
実施例２１．非セキュアマスタは、セーフティソフトウェアを実行するように設定されたセーフティマスタである、実施例２０のリソース保護方法。
【００８６】
実施例２２．さらに、セキュアマスタは、バストランザクションの一部として、リソースにセキュアマスタとして名乗り出る、実施例２０〜２１の任意の組み合わせのリソース保護方法。
【００８７】
実施例２３．セキュアマスタまたは非セキュアマスタは、バストランザクションの一部であるマスタ識別子によって識別可能であり、さらに、この方法では、マスタ識別子と、リソースに格納された設定可能な、またはハードコーティングされた参照マスタ識別子と、を比較する、実施例２０〜２２の任意の組み合わせのリソース保護方法。
【００８８】
実施例２４．さらに、設定可能な参照マスタ識別子を書き込み保護する、実施例２０〜２３の任意の組み合わせのリソース保護方法。
【００８９】
実施例２５．さらに、複数のプロセッサコアのうちの別の１つをセキュアマスタまたは非セキュアマスタとしてそれぞれ識別するために、参照マスタ識別子に合致するマスタ識別子によって識別可能なセキュアマスタまたは非セキュアマスタだけに、参照マスタ識別子の変更を許可する、実施例２０〜２４の任意の組み合わせのリソース保護方法。
【００９０】
実施例２６．さらに、セキュアマスタにより、バストランザクションの一部として、側波帯信号を介し、セキュアマスタとしてのその識別子をリソース保護レジスタに伝送する、実施例２０〜２６の任意の組み合わせのリソース保護方法。
【００９１】
実施例２７．リソースは、レジスタである、実施例２０〜２６の任意の組み合わせのリソース保護方法。
【００９２】
実施例２８．さらに、複数のステートマシンにより、複数のそれぞれのリソースを保護する、実施例２０〜２７の任意の組み合わせのリソース保護方法。
【００９３】
実施例２９．さらに、ステートマシンにより、実行状態から設定状態へのリソースの遷移を非セキュアマスタだけに許可し、設定状態中は、非セキュアマスタだけにリソースの再設定を許可する、実施例２０〜２８の任意の組み合わせのリソース保護方法。
【００９４】
実施例３０．再設定では、セキュアマスタによってチェックされる前に、許可されない設定がアクティブにならないようにするために、新たな設定データをシャドウレジスタに書き込む、実施例２０〜２９の任意の組み合わせのリソース保護方法。
【００９５】
実施例３１．さらに、ステートマシンにより、設定状態からチェック状態へのリソースの遷移をセキュアマスタだけに許可し、チェック状態中は、リソース、またはリソースのシャドウレジスタの設定は、変更不可であり、かつチェックされる、実施例２０〜３０の任意の組み合わせのリソース保護方法。
【００９６】
実施例３２．さらに、ステートマシンにより、チェック状態から実行状態へのリソースの遷移をセキュアマスタだけに許可し、実行状態中は、リソースは、通常に、チェックされた設定でセキュアに動作する、実施例２０〜３１の任意の組み合わせのリソース保護方法。
【００９７】
実施例３３．さらに、リソースであるバスＭＰＵ（Memory Protection Unit）によってメモリへのアクセスを制御する、実施例２０〜３２の任意の組み合わせのリソース保護方法。
【００９８】
実施例３４．リソース保護方法であって、リソース保護方法では、複数のプロセッサコアのうちの１つのプロセッサコアのマスタの複数のバーチャルマシンのうちの１つのバーチャルマシンを、セキュリティソフトウェアを実行するように設定されているセキュアバーチャルマシンに指定し、複数のバーチャルマシンのうちの別の１つのバーチャルマシンを、非セキュリティソフトウェアを実行するように設定されている非セキュアバーチャルマシンに指定し、ステートマシンの特定の状態へのリソースの遷移をこのセキュアバーチャルマシンだけに許可し、かつステートマシンの別の特定の状態へのリソースの遷移をこの非セキュアバーチャルマシンだけに許可することによって、セキュアバーチャルマシンと非セキュアバーチャルマシンとによって共有されるように設定されているリソースをステートマシンによって保護する、リソース保護方法。
【００９９】
実施例３５．セキュアバーチャルマシンは、バストランザクションの一部であるセキュアバーチャルマシン識別子によって識別可能であり、この方法ではさらに、セキュアバーチャルマシン識別子と、リソースに格納された設定可能な、またはハードコーティングされた参照識別子と、を比較する、実施例３４のリソース保護方法。
【０１００】
実施例３６．セキュアバーチャルマシンは、バストランザクションの一部として、リソースにセキュアバーチャルマシンとして名乗り出るように設定されている、実施例３４〜３５の任意の組み合わせのリソース保護方法。
【０１０１】
実施例３７．セキュリティソフトウェアを実行するように設定されたセキュアマスタとして、複数のプロセッサコアのうちの１つのプロセッサコアを指定し、ステートマシンの特定の状態へのリソースの遷移をセキュアマスタだけに許可することにより、リソースをステートマシンによって保護するリソース保護方法。
【０１０２】
実施例３８．セキュアマスタは、ＨＳＭ（Hardware Security Module）である、実施例３７のリソース保護方法。上述のことは、例示的な実施形態に関連して説明されているが、「例示的」という語は、最善または最適ではなく、単なる例を意味することは明らかである。したがって本開示は、本開示の範囲内に含まれ得る択一的な形態、変更形態および等価形態を含むことを意図している。
【０１０３】
ここでは特定の実施形態を例示しかつ説明して来たが、多種多様な択一的かつ／または等価的な実装により、本開示の範囲を逸脱することなく、ここに示しかつ説明した特定の実施形態が置き換えられ得ることを当業者は理解されたい。本開示は、ここで説明した特定の実施形態の任意の適合化または変化形態を含むことを意図している。
【図１】
2020205050.tif 000003
【図２】
2020205050.tif 000004
【図３】
2020205050.tif 000005
【図４Ａ】
2020205050.tif 000006
【図４Ｂ】
2020205050.tif 000007
【図５Ａ】
2020205050.tif 000008
【図５Ｂ】
2020205050.tif 000009
【外国語明細書】
2020205050.tif 000010
2020205050.tif 000011
2020205050.tif 000012
2020205050.tif 000013
2020205050.tif 000014
2020205050.tif 000015
2020205050.tif 000016
2020205050.tif 000017
2020205050.tif 000018
2020205050.tif 000019
2020205050.tif 000020
2020205050.tif 000021
2020205050.tif 000022
2020205050.tif 000023
2020205050.tif 000024
2020205050.tif 000025
2020205050.tif 000026
2020205050.tif 000027
2020205050.tif 000028
2020205050.tif 000029
2020205050.tif 000030
2020205050.tif 000031
2020205050.tif 000032
2020205050.tif 000033
2020205050.tif 000034
2020205050.tif 000035
2020205050.tif 000036
2020205050.tif 000037
2020205050.tif 000038
2020205050.tif 000039