JP6453415B2 - システムオンチップの完全性検証の方法及びシステム - Google Patents

システムオンチップの完全性検証の方法及びシステム Download PDF

Info

Publication number
JP6453415B2
JP6453415B2 JP2017195727A JP2017195727A JP6453415B2 JP 6453415 B2 JP6453415 B2 JP 6453415B2 JP 2017195727 A JP2017195727 A JP 2017195727A JP 2017195727 A JP2017195727 A JP 2017195727A JP 6453415 B2 JP6453415 B2 JP 6453415B2
Authority
JP
Japan
Prior art keywords
soc
register value
value set
register
registers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017195727A
Other languages
English (en)
Other versions
JP2018077835A (ja
Inventor
ヴァルン クマール,
ヴァルン クマール,
スミット カンデルウォール,
スミット カンデルウォール,
プニーシャ ムカルジー,
プニーシャ ムカルジー,
サンディープ ナドゥヴァラマネ,
サンディープ ナドゥヴァラマネ,
ユルゲン シェーファー,
ユルゲン シェーファー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2018077835A publication Critical patent/JP2018077835A/ja
Application granted granted Critical
Publication of JP6453415B2 publication Critical patent/JP6453415B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2289Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Description

本明細書に記載の実施形態は、全般的には、起動時及び/又は実行時の完全性検証を含む、システムの完全性検証の方法及び装置に関する。
添付図面は、本明細書に組み込まれて、本明細書の一部を成し、本開示の実施形態を図解しており、本明細書と併せて参照されることにより、実施形態の原理を説明すること、並びに当業者による実施形態の作成及び使用を可能にすることに一層役立つ。
本開示の一例示的実施形態によるシステムオンチップ(SOC)を示す。 本開示の例示的実施形態によるSOC完全性検証システムを示す。 本開示の一例示的実施形態によるSOC完全性検証システムの動作例を示す。 本開示の一例示的実施形態によるSOC完全性検証システムの動作例を示す。 本開示の一例示的実施形態による完全性検証方法のフローチャートを示す。 本開示の一例示的実施形態によるコンピュータシステムの一例を示す。
本開示の例示的実施形態について、添付図面を参照しながら説明する。各要素の初出図面を、典型的には、その対応する参照符号の左端の桁で示す。
以下の説明では、本開示の実施形態が十分に理解されるように、様々な具体的詳細を記載する。しかしながら、これらの具体的詳細がない場合でも、構造、システム、及び方法を含むそれらの実施形態が実施可能であることは、当業者であれば明らかだろう。本明細書で用いられる記述や表現は、当業者が自らの仕事の本質を他の当業者に最も効果的に伝達する為に使用する一般的な手段である。一方、よく知られている方法、手順、構成要素、及び回路については、本開示の実施形態が不必要に曖昧になることのないように、詳細には説明していない。
概要を述べると、マイクロコントローラなどのシステムオンチップ(SOC)の起動時(立ち上げ時とも呼ばれる)、且つアプリケーションソフトウェアの実行前に、起動ソフトウェアが実行される。起動ソフトウェアは、概して、関連付けられたシステムのハードウェア、例えば、マイクロコントローラに接続された1つ以上の周辺装置などに関連する。起動ソフトウェアの実行中にマイクロコントローラの状態が変化すると、これが原因で、後に実行されるアプリケーションソフトウェアに悪影響が及ぶ可能性がある。マイクロコントローラの状態変化としては、例えば、マイクロコントローラの制御レジスタ及び状態レジスタの変化があってよい。
マイクロコントローラの状態の検証は、直接影響フラグ又は直接影響レジスタを照合して行うことが可能である。1つ以上の例示的実施形態では、1つ以上のレジスタ、例えば、特殊機能レジスタ(SFR)をチェックすることにより、間接的影響を検証することが可能であり、一部又は全ての実施形態では、全てのSFRがチェックされる。例えば、SFRをチェックして、各SFRがそれぞれの対応する期待値に戻っているかどうかを検証することにより、後に実行されるアプリケーションソフトウェアに関するアプリケーション問題を軽減するか、且つ/又は防ぐことが可能である。動作時には、SFRは、SOC(例えば、マイクロコントローラ)と接続された(且つ、これによって制御される)1つ以上の周辺装置に関連付けられることが可能である。SFRは、関連付けられた周辺装置を構成する為に使用可能である。例えば、SOCと対応する周辺装置との間の通信のデータレートを指定するように、SFRを構成することが可能である。SFRの検証は、1つ以上のメモリ組み込み自己テスト(MBIST)及び/又はロジック組み込み自己テスト(LBIST)に追加して、又はこれらの代替として行われてよい。更に、SFRの完全性を用いて、例えば、自動車安全性要求レベル(ASIL)アプリケーションの検証をサポートすることが可能である。
図1は、本開示の一例示的実施形態によるシステムオンチップ(SOC)100を示す。SOC100は、制御装置115と、1つ以上のメモリユニット135と、1つ以上のレジスタ120.1から120.Mとを含んでよい。SOC100は、1つ以上の周辺装置130.1から130.Nに接続されてよい。一例示的実施形態では、SOC100はマイクロコントローラであるが、これに限定されない。メモリ135は、データ及び/又は命令を記憶する、任意のよく知られた揮発性及び/又は不揮発性メモリであってよく、例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、磁気記憶媒体、光ディスク、消去可能プログラム可能読み出し専用メモリ(EPROM)、プログラム可能読み出し専用メモリ(PROM)などであってよい。メモリは、非リムーバブル、リムーバブル、又は非リムーバブルとリムーバブルの組み合わせであってよい。図示されていないが、1つ以上の例示的実施形態では、SOC100は、周辺装置130.1から130.Nに加えて、又はこれらの代替として、1つ以上の(内蔵)周辺装置をSOC100内に含んでよい。
一例示的実施形態では、レジスタ120のうちの1つ以上が特殊機能レジスタ(SFR)である。レジスタ120のうちの1つ以上が、周辺装置130のうちの対応する周辺装置130に関連付けられてよく、レジスタ120は、対応する周辺装置130の1つ以上のパラメータを指定するように構成されてよい。例えば、レジスタ120.1のレジスタ値は、SOC100と周辺装置130との間のデータレートを指定してよい。別の例では、レジスタ120.1のレジスタ値は、例えば、周辺装置名、シリアル番号、ハードウェアのバージョン、ソフトウェアのバージョン、ファームウェアのバージョン、及び/又は他の1つ以上の、当業者であれば理解されるだろうパラメータを指定してよい。SOC100が1つ以上の内蔵周辺装置を含む一例示的実施形態では、SOC100は、各内蔵周辺装置に関連付けられた1つ以上の対応するレジスタ120を含んでよい。
一例示的実施形態では、制御装置115は、SOC100の完全性をチェックする為の1つ以上の完全性検証動作を実施するように構成されてよい。一例示的実施形態では、制御装置115は、その、SOC100の完全性をチェックする為の1つ以上の完全性検証動作を実施するように構成されたプロセッサ回路を含んでよい。
制御装置115は、SOC100の起動時及び/又は実行時に完全性検証動作を実施するように構成されてよい。例えば、制御装置115は、SOC100の起動時(立ち上げ時とも呼ばれる)、且つアプリケーションソフトウェアの実行前に、SOC100の完全性をチェックすることが可能である。一例示的実施形態では、制御装置115は、起動ソフトウェアが実行された後で、且つ、ソフトウェアアプリケーションの実行前に、SOC100の完全性をチェックするように構成されてよい。動作時には、制御装置115は、起動ソフトウェアの実行時の(その実行の結果として起こる)SOC100の状態変化を特定するように構成されてよい。SOC100の状態変化としては、例えば、SOC100の制御レジスタ及び状態レジスタの変化があってよい。SOC100の状態変化を特定することにより、SOC100の状態変化に起因して起こりうる、後で実行されるアプリケーションソフトウェアへの悪影響を低減するか、且つ/又は無くすことが可能である。
一例示的実施形態では、制御装置115は、レジスタ120.1から120.Nのうちの1つ以上から、対応するレジスタ値を取得するように構成されてよい。制御装置115は、レジスタ120からレジスタ値を読み取って、そのレジスタ値をSOC100の1つ以上のメモリ135に記憶させることが可能である。実施形態によっては、制御装置115は、1つ以上の内蔵メモリを含んでおり、メモリ135に加えて、又はメモリ135の代替として、その1つ以上の内蔵メモリにレジスタ値を記憶させるように構成されてよい。
一例示的態様では、制御装置115は、1つ以上の起動アプリケーションを含む、SOC100の1つ以上の起動動作の実行前にレジスタ値を取得してよい。この例では、これらのレジスタ値は、実行前レジスタ値と呼ばれてよい。本開示では、アプリケーションは、対応する制御装置115によって実行された場合に、対応するアプリケーションの1つ以上の機能を実施するように制御装置115を制御する、1つ以上の命令を有するコンピュータプログラムを含んでよい。
一例示的実施形態では、制御装置115は、取得されたレジスタ値のうちの1つ以上に基づいて、1つ以上のレジスタ値セットを生成するように構成されてよい。これらのレジスタ値セットは、メモリ135、及び/又は制御装置115の1つ以上の内蔵メモリに記憶されてよい。
レジスタ値の取得後(又は取得された値からレジスタ値セットが生成された後)に、制御装置115は、SOC100の1つ以上のプロセスを実行してよく、これには、SOC100の1つ以上の起動動作(例えば、起動ソフトウェアの実行)が含まれてよい。制御装置115は、対応する起動機能を実施する命令が「ハードコーディング」されてよく、或いは、制御装置115は、制御装置115の内蔵メモリ、及び/又はメモリ135に記憶されていて、制御装置115によって実行された場合に対応する起動機能を実施する命令を取り出すために、制御装置115の内蔵メモリ、及び/又はメモリ135にアクセスするように構成されてよい。
又、制御装置115は、レジスタ120.1から120.Nのうちの1つ以上から対応するレジスタ値を再度取得するように構成されてもよい。制御装置115は、レジスタ120からレジスタ値を読み取って、このレジスタ値を、SOC100の1つ以上のメモリ135、及び/又は制御装置115の内蔵メモリに記憶させてよい。一例示的態様では、制御装置115は、1つ以上の起動アプリケーションを含む、SOC100の1つ以上の起動動作の実行後にレジスタ値を取得してよい。この例では、これらのレジスタ値は、実行後レジスタ値と呼ばれてよい。
一例示的実施形態では、制御装置115は、実行後レジスタ値に基づいて、1つ以上の追加レジスタ値セットを生成するように構成されてよい。これらのレジスタ値セットは、メモリ135、及び/又は制御装置115の1つ以上の内蔵メモリに記憶されてよい。この例では、このレジスタ値セットは、実行後レジスタ値セットと呼ばれてよい。
一例示的実施形態では、制御装置115は、実行前レジスタ値/レジスタ値セットと実行後レジスタ値/レジスタ値セットとを比較するように構成されてよい。例えば、制御装置115は、実行前レジスタ値/レジスタ値セットと実行後レジスタ値/レジスタ値セットとを比較するように構成されてよい。制御装置115は、この比較結果に基づいて、実行前と実行後のレジスタ値/レジスタ値セットの間に相違があるかどうかを判定するように構成されてよい。
一例示的実施形態では、制御装置115は、実行前と実行後のレジスタ値/レジスタ値セットの間の相違を分析して、制御装置115が1つ以上のアクションを実施すべきかどうかを判定するように構成されてよい。これらのアクションは、例えば、SOC100の動作モードを変更すること(例えば、セーフモードに切り替えること)、SOC100のリセットを実施すること(例えば、パワーオンリセット)、1つ以上のレジスタ120を所定値(例えば、デフォルト値)に戻すこと、SOC100の動作に影響を及ぼしかねない相違であるという警告を生成すること、及び/又は当業者であれば理解されるだろう1つ以上の他のアクションなどであってよい。
制御装置115は、実行前と実行後のレジスタ値/レジスタ値セットに基づく1つ以上のデータベースと、それらの値/値セットの間に相違があるかどうかの判定とを生成すること、或いは生成するようにSOC100を制御することを行うように構成されてよい。データベースは、例えば、レジスタ名、レジスタアドレス(例えば、0xf0000000)、実行前レジスタ値、実行後レジスタ値、実行前と実行後の値の間に相違があるかどうかを示す1つ以上のインジケータ/フラグ、制御装置115、及び/又はSOC100の1人以上のユーザによる分析、制御装置115、及び/又はSOC100の1人以上のユーザによって実施されたアクション又は実施されるべきアクション、及び/又は、当業者であれば理解されるだろう他の1つ以上のパラメータ及び/又は情報を含んでよい。データベースは、1つ以上のメモリユニット、例えば、メモリ135に記憶されてよい。
一例示的実施形態では、制御装置115は、実行前と実行後のレジスタ値/レジスタ値セットの比較結果に基づいてレポートを生成するように構成されてよい。このレポートは、実行前と実行後のレジスタ値/レジスタ値セットの分析結果、及び/又は制御装置115によって実施されたアクション又は実施されるべきアクションを含んでよい。制御装置115は、生成されたレポートをSOC100の1つ以上の構成要素に供給すること、又は供給するようにSOC100を制御すること、レポートを1つ以上の外部機器(例えば、周辺装置130)に供給すること、レポートを1つ以上の通信ネットワークを介して送信すること、レポートを1つ以上のディスプレイに表示するようにSOC100を制御すること、及び/又は、生成されたレポートに関する他の1つ以上の、当業者であれば理解されるだろうアクションを実施することを行うように構成されてよい。
一例示的実施形態では、制御装置115は、実行前と実行後の値の間に相違があることを示す通知を生成すること、又は通知を生成するようにSOC100及び/又は1つ以上の外部構成要素を制御することを行うように構成されてよい。通知としては、その相違を他の1つ以上の構成要素に通知する為の、それらの構成要素に対する信号、可聴信号、可視信号、又は別の、当業者であれば理解されるだろう通知があってよい。一例示的実施形態では、制御装置115は、SOC100のアプリケーションソフトウェア及び/又は1つ以上の外部構成要素のアプリケーションソフトウェアに対して、実行前と実行後の値の間の1つ以上の相違に基づく通知を行うこと(及び/又は、通知を行うようにSOC100及び/又は1つ以上の外部構成要素を制御すること)を行うように構成されてよい。
図2は、本開示の一例示的実施形態によるシステムオンチップ(SOC)完全性検証システム200を示す。SOC完全性検証システム200は、図1を参照して説明した例示的実施形態と同様の、1つ以上の周辺装置130に接続されるように構成されてよいSOC100を含んでよい。一例示的実施形態では、評価装置205が、例えば、処理装置(例えば、プロセッサ)又はコンピュータ(例えば、図6を参照して説明されるコンピュータシステム600)として実施され、これらに限定されない。
一例示的実施形態では、SOC完全性検証システム200は、SOC100に(無線及び/又は有線)接続された評価装置205を含む。評価装置205は、制御装置210、及び制御装置210に接続されたメモリ220を含んでよい。メモリ220は、データ及び/又は命令を記憶する、任意のよく知られた揮発性及び/又は不揮発性メモリであってよく、例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、磁気記憶媒体、光ディスク、消去可能プログラム可能読み出し専用メモリ(EPROM)、プログラム可能読み出し専用メモリ(PROM)などであってよい。メモリは、非リムーバブル、リムーバブル、又は非リムーバブルとリムーバブルの組み合わせであってよい。
一例示的実施形態では、制御装置210は、SOC100の完全性をチェックする為に1つ以上の完全性検証動作を実施するように構成されてよい。一例示的実施形態では、制御装置210は、SOC100の完全性をチェックする為に1つ以上の完全性検証動作を実施するように構成されたプロセッサ回路を含んでよい。
図1を参照して既に説明したように、制御装置115は、レジスタ120.1から120.Nのうちの1つ以上から、対応するレジスタ値を取得するように構成されてよい。制御装置115は、レジスタ120からレジスタ値を読み取って、そのレジスタ値をSOC100の1つ以上のメモリ135、及び/又は制御装置115の1つ以上の内蔵メモリに記憶させることが可能である。一例示的態様では、制御装置115は、1つ以上の起動アプリケーションを含む、SOC100の1つ以上の起動動作の実行前にレジスタ値(例えば、実行前レジスタ値)を取得してよい。制御装置115は、取得されたレジスタ値のうちの1つ以上に基づいて、1つ以上のレジスタ値セットを生成してよい。
レジスタ値の取得後(又は取得された値からレジスタ値セットが生成された後)に、制御装置115は、SOC100の1つ以上のプロセスを実行してよく、これには、SOC100の1つ以上の起動動作(例えば、起動ソフトウェアの実行)が含まれてよい。制御装置115は、レジスタ120.1から120.Nのうちの1つ以上から、対応するレジスタ値(例えば、実行後レジスタ値)を再度取得(及び記憶)してよい。制御装置115は、取得されたレジスタ値のうちの1つ以上(例えば、実行後レジスタ値セット)に基づいて、1つ以上の追加レジスタ値セットを生成(及び記憶)するように構成されてよい。一例示的実施形態では、評価装置205の制御装置210は、レジスタ値の取得、及び/又はSOC100の1つ以上のプロセスの実行を行うように制御装置115を制御するように構成される。
一例示的実施形態では、制御装置115は、実行前と実行後のレジスタ値及び/又はレジスタ値セットを評価装置205に供給するように構成されてよい。一例示的実施形態では、評価装置205は、SOC100から値/値セットの取得/読み取りを行うことが可能である。評価装置205は、値又は値セットを、メモリ220、及び/又は制御装置210の1つ以上の内蔵メモリに記憶させてよい。一例示的実施形態では、SOC100と評価装置205との間の接続は、シリアル接続、ユニバーサルシリアルバス(USB)接続、赤外線接続、光ファイバ接続、ファイヤワイヤ(IEEE1394)、eSATA接続、有線及び/又は無線ネットワーク接続(例えば、WLAN、LAN、イーサネット)、及び/又は当業者であれば理解されるだろう別の接続タイプである。
一例示的実施形態では、制御装置210は、実行前レジスタ値と実行後レジスタ値とを比較するように構成されてよい。例えば、制御装置210は、実行前レジスタ値セットと実行後レジスタ値セットとを比較するように構成されてよい。制御装置210は、この比較結果に基づいて、実行前と実行後のレジスタ値/レジスタ値セットの間に相違があるかどうかを判定するように構成されてよい。
一例示的実施形態では、制御装置210は、実行前と実行後のレジスタ値/レジスタ値セットの間の相違を分析し、制御装置115及び/又は制御装置210が1つ以上のアクションを実施すべきかどうかを判定するように構成されてよい。これらのアクションは、例えば、SOC100の動作モードを変更すること(例えば、セーフモードに切り替えること)、SOC100のリセットを実施すること(例えば、パワーオンリセット)、1つ以上のレジスタ120を所定値(例えば、デフォルト値)に戻すこと、SOC100の動作に影響を及ぼしかねない相違であるという警告を生成すること、及び/又は当業者であれば理解されるだろう1つ以上の他のアクションなどであってよい。
制御装置210は、実行前と実行後のレジスタ値/レジスタ値セットに基づく1つ以上のデータベースと、それらの値/値セットの間に相違があるかどうかの判定とを生成すること、或いは生成するようにSOC100(例えば、制御装置115)を制御することを行うように構成されてよい。上述のように、このデータベースは、例えば、レジスタ名、レジスタアドレス(例えば、0xf0000000)、実行前レジスタ値、実行後レジスタ値、実行前と実行後の値の間に相違があるかどうかを示す1つ以上のインジケータ/フラグ、制御装置210、制御装置115、及び/又はSOC100の1人以上のユーザによる分析、制御装置210、制御装置115、及び/又はSOC100のユーザによって実施されたアクション又は実施されるべきアクション、及び/又は、当業者であれば理解されるだろう他の1つ以上のパラメータ及び/又は情報を含んでよい。このデータベースは、1つ以上のメモリユニット、例えば、メモリ220及び/又はメモリ135に記憶されてよい。
一例示的実施形態では、制御装置210は、実行前と実行後のレジスタ値/レジスタ値セットの比較結果に基づいてレポートを生成するように構成されてよい。このレポートは、実行前と実行後のレジスタ値/レジスタ値セットの分析結果、及び/又は、制御装置210及び/又は制御装置115によって実施されたアクション又は実施されるべきアクションを含んでよい。制御装置210は、生成されたレポートをSOC100の1つ以上の構成要素に供給すること、又は供給するようにSOC100を制御すること、レポートを1つ以上の外部機器(例えば、周辺装置130)に供給すること、レポートを1つ以上の通信ネットワークを介して送信すること、レポートを1つ以上のディスプレイに表示すること、レポートを1つ以上のディスプレイに表示するようにSOC100を制御すること、及び/又は、生成されたレポートに関する他の1つ以上の、当業者であれば理解され得るアクションを実施することを行うように構成されてよい。
一例示的実施形態では、制御装置210は、実行前と実行後の値の間に相違があることを示す通知を生成すること、又は通知を生成するようにSOC100及び/又は1つ以上の外部構成要素を制御することを行うように構成されてよい。通知としては、その相違を他の1つ以上の構成要素に通知する為の、それらの構成要素に対する信号、可聴信号、可視信号、又は別の、当業者であれば理解され得る通知があってよい。
一例示的実施形態では、制御装置210及び制御装置115は、協調的に動作して1つ以上の完全性検証動作を実施してよい。この例では、制御装置115によって実施される機能及び動作の任意の組み合わせが制御装置210によって実施されてよく、制御装置210によって実施される機能及び動作の任意の組み合わせが制御装置115によって実施されてよい。例えば、制御装置115は、値の取得、値の記憶、値の比較、値の分析、データベースの生成、通知、及び/又はレポートのうちの一部分を実施してよく、制御装置210は、それらの動作のうちの制御装置115によって実施されない残りの部分を実施する。
図3は、本開示の一例示的実施形態によるSOC完全性検証システムの動作例300を示す。図1及び図2を参照しながら、動作300について説明する。
一例示的実施形態では、1つ以上のレジスタ(例えば、レジスタ120)が識別可能である(例えば、名前、アドレス、及び/又は他の識別情報)。それらのレジスタの識別情報は、レジスタからレジスタ値を読み取るように構成された1つ以上のソフトウェアアプリケーションとともに使用されてよい。例えば、アプリケーションプログラミングインタフェース(API)を使用して、1つ以上のレジスタからレジスタ値を取得するように構成された1つ以上のソフトウェアアプリケーション(例えば「PrintRegs()」命令)を作成することが可能である。読み取り動作(例えば、「PrintRegs()」命令)はSOC100に実装されてよく、制御装置115は、レジスタ120からレジスタ値を読み取る命令を実行するように構成されてよい。動作時には、SOC100の制御装置は、SOC100の1つ以上の起動動作(例えば、「Start−up Exec()」命令)の実行前にレジスタ値を取得するように構成されてよい。
制御装置115は、実行前のレジスタ値/レジスタ値セットの取得後に、1つ以上の起動動作(例えば、「Start−up Exec()」命令)を実行してよい。起動動作が実行された後(実施形態によっては、それらの動作が完了した後)、制御装置115は、再度、レジスタからレジスタ値を読み取ってよい(例えば、「PrintRegs()」命令)。
その後、実行前と実行後のレジスタ値/レジスタ値セットの比較及び分析が行われてよい。一例示的実施形態では、制御装置115は、実行前のレジスタ値と実行後のレジスタ値とを比較するように構成されてよい。制御装置115は、この比較結果に基づいて、実行前と実行後のレジスタ値/レジスタ値セットの間に相違があるかどうかを判定するように構成されてよい。
一例示的実施形態では、制御装置115は、実行前と実行後のレジスタ値/レジスタ値セットの間の相違を分析して、制御装置115が1つ以上のアクションを実施すべきかどうかを判定するように構成されてよい。
一例示的実施形態では、実行前と実行後のレジスタ値/レジスタ値セットの比較結果に基づいてレポートが生成されてよい。例えば、制御装置115は、実行前と実行後のレジスタ値/レジスタ値セットの比較結果に基づいてレポートを生成するように構成されてよい。このレポートは、実行前と実行後のレジスタ値/レジスタ値セットの分析結果、及び/又は制御装置115によって実施されたアクション又は実施されるべきアクションを含んでよい。制御装置115は、生成されたレポートをSOC100の1つ以上の構成要素に供給すること、又は供給するようにSOC100を制御すること、レポートを1つ以上の外部機器(例えば、周辺装置130)に供給すること、レポートを1つ以上の通信ネットワークを介して送信すること、レポートを1つ以上のディスプレイに表示するようにSOC100を制御すること、及び/又は、生成されたレポートに関する他の1つ以上の、当業者であれば理解されるだろうアクションを実施することを行うように構成されてよい。
実行前と実行後のレジスタ値/レジスタ値セット、対応する分析結果、相違の判定結果、及び/又は他の情報が、SOC100、及び/又は1つ以上の外部機器に記憶されてよい。例えば、制御装置115は、実行前と実行後のレジスタ値/レジスタ値セット、対応する分析結果、及びそれらの値/値セットの間に相違があるかどうかの判定を、例えば、メモリ135に記憶させるように構成されてよい。制御装置115は、実行前と実行後のレジスタ値/レジスタ値セットに基づく1つ以上のデータベースと、それらの値/値セットの間に相違があるかどうかの判定とを生成すること、或いは生成するようにSOC100を制御することを行うように構成されてよい。
追加又は代替として、実行前と実行後のレジスタ値/レジスタ値セットの比較、分析、相違の判定、レポートの生成、通知、及び/又は他の動作が、図2に示されている評価装置205のような外部機器によって実施されてよい。これらの外部動作について、図4を参照しながら詳細に説明する。
図4は、本開示の一例示的実施形態によるSOC完全性検証システムの動作例400を示す。動作400は、図3に示された動作300とよく似ているが、評価装置205などの外部構成要素によって実施される動作を含む。
例えば、上述のように、1つ以上のレジスタ(例えば、レジスタ120)が識別可能であり、識別情報は、レジスタからレジスタ値を読み取るように構成された1つ以上のソフトウェアアプリケーションとともに使用されてよい。読み取り動作(例えば、「PrintRegs()」命令)はSOC100に実装されてよく、制御装置115は、レジスタ120からレジスタ値を読み取る命令を実行するように構成されてよい。動作時には、SOC100の制御装置は、SOC100の1つ以上の起動動作(例えば、「Start−up Exec()」命令)の実行前にレジスタ値を取得するように構成されてよい。
制御装置115は、実行前のレジスタ値/レジスタ値セットの取得後に、1つ以上の起動動作(例えば、「Start−up Exec()」命令)を実行してよい。起動動作が実行された後(実施形態によっては、それらの動作が完了した後)、制御装置115は、再度、レジスタからレジスタ値を読み取ってよい(例えば、「PrintRegs()」命令)。
その後、実行前と実行後のレジスタ値/レジスタ値セットが評価装置205に供給されてよく、或いは評価装置205によってSOC100から取得されてよい。
一例示的実施形態では、評価装置205は、SOC100からの値/値セットの受け取り、及び/又は取得/読み取りを行ってよい。評価装置205は、値又は値セットを、メモリ220、及び/又は制御装置210の1つ以上の内蔵メモリに記憶させてよい。
その後、実行前と実行後のレジスタ値/レジスタ値セットの比較が行われる。この比較結果に基づいて、実行前と実行後のレジスタ値/レジスタ値セットの間に相違があるかどうかが判定されてよい。一例示的実施形態では、評価装置205の制御装置210は、実行前レジスタ値と実行後レジスタ値とを比較するように構成されてよい。制御装置210は、この比較結果に基づいて、実行前と実行後のレジスタ値/レジスタ値セットの間に相違があるかどうかを判定するように構成されてよい。
実行前と実行後のレジスタ値/レジスタ値セットの分析、及び/又は相違の判定結果の分析が行われてよい。評価装置205は、その分析結果に基づいて、1つ以上のアクション(例えば、動作モードの調節、SOC100のリセットなど)を実施すべきかどうかを判定してよい。一例示的実施形態では、制御装置210は、実行前と実行後のレジスタ値/レジスタ値セットの相違を分析して、制御装置115及び/又は制御装置210が1つ以上のアクションを実施すべきかどうかを判定するように構成されてよい。
一例示的動作では、1つ以上のデータベースが生成されてよい。例えば、制御装置210は、実行前と実行後のレジスタ値/レジスタ値セットに基づく1つ以上のデータベースと、それらの値/値セットの間に相違があるかどうかの判定とを生成すること、或いは生成するようにSOC100(例えば、制御装置115)を制御することを行うように構成されてよい。非限定的な一例では、データベースは、値の表、スプレッドシート(例えば、XLS文書)、又は他の、当業者であれば理解されるだろうデータ構造であってよい。
上述のように、データベースは、例えば、レジスタ名、レジスタアドレス(例えば、0xf0000000)、実行前レジスタ値、実行後レジスタ値、実行前と実行後の値の間に相違があるかどうかを示す1つ以上のインジケータ/フラグ、制御装置210、制御装置115、及び/又はSOC100の1人以上のユーザによる分析、制御装置210、制御装置115、及び/又はSOC100の1人以上のユーザによって実施されたアクション又は実施されるべきアクション、及び/又は、当業者であれば理解され得る他の1つ以上のパラメータ及び/又は情報を含んでよい。データベースは、1つ以上のメモリユニット、例えば、メモリ220及び/又はメモリ135に記憶されてよい。
引き続き図4を参照すると、実行前のレジスタ値/レジスタ値セット、実行後のレジスタ値/レジスタ値セット、相違の判定結果、実行前と実行後のレジスタ値/レジスタ値セットの分析結果、SOC100及び/又は評価装置205によって実施されたアクション又は実施されるべきアクション、及び/又は他の、当業者であれば理解されるだろう情報に基づいて、レポートが生成されてよい。
一例示的実施形態では、制御装置210は、レポートを生成するように構成されてよい。制御装置210は、レポートをSOC100の1つ以上の構成要素に供給すること、レポートを1つ以上の外部機器(例えば、周辺装置130)に供給すること、レポートを1つ以上の通信ネットワークを介して送信すること、レポートを1つ以上のディスプレイに表示すること、レポートを1つ以上のディスプレイに表示するようにSOC100を制御すること、及び/又は、生成されたレポートに関する他の1つ以上の、当業者であれば理解されるだろうアクションを実施することを行うように構成されてよい。
一例示的実施形態では、制御装置210は、実行前と実行後の値の間に相違があることを示す通知を生成すること、又は通知を生成するようにSOC100及び/又は1つ以上の外部構成要素を制御することを行うように構成されてよい。通知としては、その相違を他の1つ以上の構成要素に通知する為の、それらの構成要素に対する信号、可聴信号、可視信号、又は別の、当業者であれば理解されるだろう通知があってよい。
図5は、本開示の一例示的実施形態による完全性検証方法のフローチャート500を示す。このフローチャートについては、図1から図4を引き続き参照しながら説明する。本方法の各ステップは、以下で説明される順序に限定されず、様々なステップが様々な順序で実施されてよい。更に、本方法の2つ以上のステップが、互いに同時に実施されてよい。
フローチャート500の方法はステップ505から始まり、ステップ510に進み、そこでは、1つ以上のレジスタから1つ以上のレジスタ値の取得/読み取りが行われて、第1のレジスタ値セットが生成される。一例示的実施形態では、SOC100(例えば、制御装置115)は、レジスタ120のうちの1つ以上からレジスタ値の取得/読み取りを行うように構成される。一例示的実施形態では、評価装置205は、レジスタ120からレジスタ値の取得/読み取りを行うようにSOC100を制御するように構成される。一例示的実施形態では、SOC100は、取得されたレジスタ値に基づいて第1のレジスタ値セットを生成するように構成されてよい。値及び/又は値セットは、例えば、メモリ135及び/又はメモリ220に記憶されてよい。
ステップ510の後、フローチャート500はステップ515に進み、そこでは、1つ以上のプロセス、例えば、1つ以上の起動プロセスが実行される。一例示的実施形態では、SOC100の制御装置115は、1つ以上のプロセスを実行すること、又は実行するようにSOC100の他の1つ以上の構成要素を制御することを行うように構成され、これらのプロセスは、SOC100の1つ以上の起動動作を含んでよい。
ステップ515の後、フローチャート500はステップ520に進み、そこでは、1つ以上のレジスタから1つ以上のレジスタ値の取得/読み取りが再度行われて、第2のレジスタ値セットが生成される。一例示的実施形態では、SOC100(例えば、制御装置115)は、レジスタ120のうちの1つ以上からレジスタ値の取得/読み取りを行うように構成される。一例示的実施形態では、評価装置205は、レジスタ120からレジスタ値の取得/読み取りを行うようにSOC100を制御するように構成される。一例示的実施形態では、SOC100は、取得されたレジスタ値に基づいて第2のレジスタ値セットを生成するように構成されてよい。値及び/又は値セットは、例えば、メモリ135及び/又はメモリ220に記憶されてよい。
ステップ520の後、フローチャート500はステップ525に進み、そこでは、第1のレジスタ値セットと第2のレジスタ値セットとが比較されて、第1のレジスタ値セットと第2のレジスタ値セットとの間で1つ以上のレジスタ値同士の間に相違があるかどうかが判定される。一例示的実施形態では、SOC100の制御装置115、及び/又は評価装置205の制御装置210は、第1のレジスタ値セットと第2のレジスタ値セットとを比較するように構成される。
1つ以上の値に相違がある場合(ステップ525の「はい」)、フローチャート500はステップ530に進む。そうでない場合(ステップ525の「いいえ」)、フローチャート500はステップ540に進み、そこでフローチャートは終了する。
ステップ530では、第1のレジスタ値セットと第2のレジスタ値セットとの間の相違が分析される。この分析結果に基づき、相違に応じて1つ以上のアクションを実施すべきかどうかが判定される。一例示的実施形態では、SOC100の制御装置115、及び/又は評価装置205の制御装置210は、第1のレジスタ値セットと第2のレジスタ値セットとの間の相違を分析するように構成される。制御装置115及び/又は制御装置210は、分析結果に基づいて、1つ以上のアクションを実施すべきかどうかを判定する。一例示的実施形態では、SOC100のユーザは、相違を分析して、1つ以上のアクションを実施すべきかどうかを判定するように構成されてよい。例えば、ユーザは、相違に基づいて生成されたレポートを分析して、1つ以上のアクションを実施すべきかどうかを判定してよい。
1つ以上のアクションを実施すべきである場合(ステップ530の「はい」)、フローチャート500はステップ535に進む。そうでない場合(ステップ530の「いいえ」)、フローチャート500はステップ540に進み、そこでフローチャートは終了する。
ステップ535では、第1のレジスタ値セットと第2のレジスタ値セットとの間の相違の分析結果に応じて、1つ以上のアクションが実施される。これらのアクションは、例えば、SOC100の動作モードを変更/調節すること(例えば、セーフモードに切り替えること)、SOC100のリセットを実施すること(例えば、パワーオンリセット)、1つ以上のレジスタ120を所定値(例えば、デフォルト値)に戻すこと、SOC100の動作に影響を及ぼしかねない相違であるという警告を生成すること、及び/又は当業者であれば理解されるだろう1つ以上の他のアクションなどであってよい。一例示的実施形態では、SOC100の制御装置115、及び/又は評価装置205の制御装置210は、これらのアクションを実施すること、又はこれらのアクションを実施するようにSOC100を制御することを行うように構成される。
ステップ535の後、フローチャート500はステップ540に進み、そこでフローチャートは終了する。フローチャート500は、1回以上繰り返されてよい。例えば、フローチャート500は、SOC100の実行時の間ずっと実施されてよい。非限定的な例として、この完全性検証方法は、実行時の間に、1つ以上の外部構成要素からの要求に応じて、且つ/又は、外部構成要素がSOC100に接続されたこと、及び/又は外部構成要素がSOC100から切り離されたことに応じて、且つ/又は、ユーザの要求に応じて、且つ/又は、特定のタイミングで、且つ/又は定期的に、実施されてよい。
コンピュータシステム例
本明細書に記載の様々な例示的実施形態が、例えば、1つ以上のコンピュータシステム、例えば、図6に示されるコンピュータシステム600を使用して実施されてよい。コンピュータシステム600は、本明細書に記載の機能を実施することが可能なコンピュータであってよい。一例示的実施形態では、評価装置205は、コンピュータシステム600として実施される。
コンピュータシステム600は、1つ以上のプロセッサ(中央処理装置(CPU)とも呼ばれる)、例えば、プロセッサ604を含む。プロセッサ604は、通信インフラストラクチャ又はバス606と接続される。
1つ以上のプロセッサ604は、それぞれがグラフィックス処理装置(GPU)であってよい。一実施形態では、GPUは、電子機器上で数学的集約型アプリケーションを高速処理するように設計された専用電子回路であるプロセッサである。GPUは、コンピュータグラフィックスアプリケーション、画像、及び映像に共通する数学的集約型データのような大規模データブロックの並列処理に関して効率的である高度並列構造を有してよい。
コンピュータシステム600は又、モニタ、キーボード、ポインティングデバイスなどのようなユーザ入出力装置603を含んでよく、これらは、ユーザ入出力インタフェース602を介して通信インフラストラクチャ606と通信する。
コンピュータシステム600は、ランダムアクセスメモリ(RAM)などの主メモリ又は一次メモリ608を含んでよい。主メモリ608は、1以上のレベルのキャッシュを含んでよい。主メモリ608は、制御ロジック(即ち、コンピュータソフトウェア)及び/又はデータを記憶している。
コンピュータシステム600は又、1つ以上の二次記憶装置又はメモリ610を含んでよい。二次メモリ610は、例えば、ハードディスクドライブ612及び/又はリムーバブル記憶装置又はドライブ614を含んでよい。リムーバブル記憶ドライブ614は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光記憶装置、テープバックアップ装置、及び/又は他の任意の記憶装置/ドライブであってよい。
リムーバブル記憶ドライブ614は、リムーバブル記憶ユニット618と対話してよい。リムーバブル記憶ユニット618は、コンピュータソフトウェア(制御ロジック)及び/又はデータを記憶しているコンピュータで使用可能な、又はコンピュータ可読な記憶装置を含む。リムーバブル記憶ユニット618は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光記憶ディスク、及び/又は他の任意のコンピュータデータ記憶装置であってよい。リムーバブル記憶ドライブ614は、リムーバブル記憶ユニット618に対する読み出し及び/又は書き込みを、よく知られた方式で行う。
一例示的実施形態によれば、二次メモリ610は、コンピュータプログラム及び/又は他の命令及び/又はデータがコンピュータシステム600によってアクセスされることを可能にする他の手段又は他の方式を含んでよい。そのような手段又は他の方式として、例えば、リムーバブル記憶ユニット622及びインタフェース620があってよい。リムーバブル記憶ユニット622及びインタフェース620の例として、プログラムカートリッジ及びカートリッジインタフェース(例えば、ビデオゲーム装置で見られるもの)、リムーバブルメモリチップ(例えば、EPROM又はPROM)及び対応ソケット、メモリスティック及びUSBポート、メモリカード及び対応メモリカードスロット、及び/又は他の任意のリムーバブル記憶ユニット及び対応インタフェースがあってよい。
コンピュータシステム600は更に、通信インタフェース又はネットワークインタフェース624を含んでよい。通信インタフェース624は、コンピュータシステム600が、リモート機器、リモートネットワーク、リモートエンティティなどの任意の組み合わせ(個別に、且つまとめて参照符号628で参照される)と通信及び対話することを可能にする。例えば、通信インタフェース624は、コンピュータシステム600が通信路626を介してリモート機器628と通信することを可能にしてよく、通信路626は、有線及び/又は無線であってよく、LAN、WAN、インターネットなどの任意の組み合わせを含んでよい。通信路626を介して、コンピュータシステム600との間で制御ロジック及び/又はデータのやりとりの伝送が行われてよい。
一例示的実施形態では、制御ロジック(ソフトウェア)が記憶されている、有形の、コンピュータで使用可能な、又はコンピュータ可読な媒体を含む、有形の装置又は製造物が、本明細書では、コンピュータプログラム製品又はプログラム記憶装置とも呼ばれている。これは、コンピュータシステム600、主メモリ608、二次メモリ610、及びリムーバブル記憶ユニット618及び622、並びにこれらの任意の組み合わせを実施する有形製造物を含み、これらに限定されない。そのような制御ロジックは、1つ以上のデータ処理装置(例えば、コンピュータシステム600)で実行された場合には、本明細書に記載の動作をそのようなデータ処理装置に行わせる。
本開示に含まれる教示に基づけば、図6に示されたもの以外のデータ処理装置、コンピュータシステム、及び/又はコンピュータアーキテクチャを使用して本発明を作成及び使用する方法が、当業者であれば明らかだろう。具体的には、各実施形態は、本明細書に記載されたもの以外のソフトウェア、ハードウェア、及び/又はオペレーティングシステムの実施態様でも動作可能である。
結論
上述の特定実施形態の説明は、本開示の一般的性質を十分に明らかにするものである為、当業者であれば、必要以上の実験をしなくても、且つ、本開示の一般概念から逸脱することなく、そのような特定実施形態に対し、様々な用途に向けた修正及び/又は適応を容易に行うことが可能である。従って、そのような適応及び修正は、本明細書において示された教示及び手引に基づく、本開示の実施形態の等価物の意味および範囲に含まれるものとする。本明細書における言い回し又は術語は限定ではなく説明を目的としており、従って、本明細書の術語又は言い回しは、当業者が教示及び手引に照らして解釈すべきであることを理解されたい。
本明細書における「一実施形態(one embodiment)」、「一実施形態(an embodiment)」、「一例示的実施形態」などへの言及は、記載された実施形態が特定の特徴、構造、又は特性を含んでよいが、全ての実施形態がそれらの特定の特徴、構造、又は特性を必ずしも含まなくてよいことを示している。更に、そのような言い回しは、必ずしも同じ実施形態に言及しているわけではない。更に、特定の特徴、構造、又は特性が一実施形態に関連して記載されている場合、これは、明示的に記載されているかどうかにかかわらず、当業者の知識の範囲において、そのような特徴、構造、又は特性が他の実施形態との関連でも作用することを意味する。
本明細書に記載の例示的実施形態は、限定ではなく例示を目的として提示されている。別の例示的実施形態も可能であり、これらの例示的実施形態に対して修正が施されてよい。従って、本明細書は、本開示の限定を意図するものではない。もっと正確に言えば、本開示の範囲は、後述の特許請求の範囲及びそれらの等価物に従う形でのみ規定される。
各実施形態は、ハードウェア(例えば、回路)、ファームウェア、ソフトウェア、又はこれらの任意の組み合わせの形で実施されてよい。各実施形態は、1つ以上のプロセッサによる読み取り及び実行が可能な、機械可読媒体に記憶された命令として実施されてもよい。機械可読媒体は、機械(例えば、コンピューティング装置)によって可読な形態の情報を記憶又は伝送する任意の機構を含んでよい。例えば、機械可読媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気、光、音響、又は他の形式の伝搬信号(例えば、搬送波、赤外信号、デジタル信号など)などを含んでよい。更に、本明細書では、ファームウェア、ソフトウェア、ルーチン、命令が、特定のアクションを実施するものとして記述されている場合がある。しかしながら、そのような記述は便宜的なものに過ぎないこと、並びに、そのようなアクションは、実際には、ファームウェア、ソフトウェア、ルーチン、命令などを実行するコンピューティング装置、プロセッサ、コントローラ、又は他の装置によってもたらされるものであることを理解されたい。更に、実施態様のいずれの変形形態も、汎用コンピュータによって実施可能である。
本説明の便宜上、「プロセッサ回路」という用語は、回路、プロセッサ、ロジック、又はこれらの組み合わせとして理解されたい。例えば、回路は、アナログ回路、デジタル回路、状態機械ロジック、他の構造的電子ハードウェア、又はこれらの組み合わせなどであってよい。プロセッサは、マイクロプロセッサ、デジタル信号プロセッサ(DSP)などのハードウェアプロセッサであってよい。プロセッサは、本明細書に記載の実施形態に従って、対応する機能を実施する命令により「ハードコーディング」されてよい。或いは、プロセッサは、内蔵メモリ及び/又は外部メモリに記憶されている命令を取り出す為にそれらのメモリにアクセスしてよく、これらの命令は、プロセッサによって実行された場合に、プロセッサに関連付けられた対応する機能、及び/又は、プロセッサが含まれている構成要素の動作に関連する1つ以上の機能及び/又は動作を実施する。
本明細書に記載の例示的実施形態のうちの1つ以上において、プロセッサ回路は、データ及び/又は命令を記憶するメモリを含んでよい。メモリは、任意のよく知られた揮発性及び/又は不揮発性メモリであってよく、例えば、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリ、磁気記憶媒体、光ディスク、消去可能プログラム可能読み出し専用メモリ(EPROM)、プログラム可能読み出し専用メモリ(PROM)などであってよい。メモリは、非リムーバブル、リムーバブル、又は非リムーバブルとリムーバブルの組み合わせであってよい。
100 システムオンチップ(SOC)
115 制御装置
120.1〜120.M レジスタ
130.1〜130.N 周辺装置
135 メモリユニット
200 SOC完全性検証システム
205 評価装置
210 制御装置
220 メモリ
600 コンピュータシステム
602 ユーザ入出力インタフェース
603 ユーザ入出力装置
604 プロセッサ
606 通信インフラストラクチャ
608 主メモリ
610 二次メモリ
612 ハードディスクドライブ
614 リムーバブル記憶ドライブ
618 リムーバブル記憶ユニット
620 インタフェース
622 リムーバブル記憶ユニット
624 通信インタフェース
626 通信路
628 リモート機器

Claims (20)

  1. 制御装置及び1つ以上のレジスタを有するシステムオンチップ(SOC)の完全性をチェックする方法であって、
    第1の時点において前記1つ以上のレジスタから1つ以上のレジスタ値を取得して第1のレジスタ値セットを生成するステップと、
    前記第1の時点の後の第2の時点において前記SOCの1つ以上のプロセスを前記制御装置によって実行するステップと、
    前記第2の時点の後の第3の時点において前記1つ以上のレジスタから前記1つ以上のレジスタ値を取得して第2のレジスタ値セットを生成するステップと、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとを比較するステップと、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較の結果に基づいて前記SOCの動作モードを調節するステップと、
    を含む方法。
  2. 前記第1のレジスタ値セット、前記第2のレジスタ値セット、及び前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果に基づいてデータベースを生成するステップ
    を更に含む、請求項1に記載の方法。
  3. 前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果に基づいて、前記1つ以上のレジスタの前記1つ以上のレジスタ値を、対応する1つ以上の所定値に自動的に戻すステップ
    を更に含む、請求項1に記載の方法。
  4. 前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果と、前記動作モードの前記調節 とに基づいてレポートを生成するステップと、
    前記レポートを、前記SOC、又は前記SOCと通信している1つ以上の周辺装置に供給するステップと、
    を更に含む、請求項1に記載の方法。
  5. 前記1つ以上のレジスタは特殊機能レジスタである、請求項1に記載の方法。
  6. 前記1つ以上のレジスタ値は、前記SOCと通信している1つ以上の周辺装置に関連付けられている、請求項1に記載の方法。
  7. 前記SOCの前記動作モードを調節する前記ステップは、
    前記SOCの前記動作モードをセーフモードに設定すること、又は
    前記SOCをリセットすること
    を含む、請求項1に記載の方法。
  8. 前記第1の時点は、前記SOCの1つ以上の起動動作の実行前であり、前記第3の時点は、前記1つ以上の起動動作の実行後である、請求項1に記載の方法。
  9. 前記第1の時点は、1つ以上の起動動作の実行前であり、前記第3の時点は、前記SOCの前記1つ以上の起動動作の実行後であり、且つ、前記SOCの通常動作中である、請求項1に記載の方法。
  10. システムオンチップ(SOC)であって、
    1つ以上のレジスタ値を記憶するように構成された1つ以上のレジスタと、
    制御装置であって、
    第1の時点において前記1つ以上のレジスタから前記1つ以上のレジスタ値を取得して第1のレジスタ値セットを生成するステップと、
    前記第1の時点の後の第2の時点において前記SOCの1つ以上のプロセスを実行するステップと、
    前記第2の時点の後の第3の時点において前記1つ以上のレジスタから前記1つ以上のレジスタ値を取得して第2のレジスタ値セットを生成するステップと、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとを比較するステップと、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較の結果に基づいて前記SOCの動作モードを調節するステップと、を実施するように構成された前記制御装置と、
    を含むSOC。
  11. 前記制御装置は更に、
    前記第1のレジスタ値セット、前記第2のレジスタ値セット、及び前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果に基づいてデータベースを生成するステップ
    を実施するように構成されている、請求項10に記載のSOC。
  12. 前記制御装置は更に、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果に基づいて、前記1つ以上のレジスタの前記1つ以上のレジスタ値を、対応する1つ以上の所定値に自動的に戻すステップ
    を実施するように構成されている、請求項10に記載のSOC。
  13. 前記制御装置は更に、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果と、前記動作モードの前記調節とに基づいてレポートを生成するステップと、
    前記レポートを、前記SOCと通信している1つ以上の周辺装置に供給するステップと、
    を実施するように構成されている、請求項10に記載のSOC。
  14. 前記1つ以上のレジスタは特殊機能レジスタである、請求項10に記載のSOC。
  15. 前記1つ以上のレジスタ値は、前記SOCと通信している1つ以上の周辺装置に関連付けられている、請求項10に記載のSOC。
  16. 前記SOCの前記動作モードを調節する前記ステップは、
    前記SOCの前記動作モードをセーフモードに設定すること、又は
    前記SOCをリセットすること
    を含む、請求項10に記載のSOC。
  17. 前記第1の時点は、前記SOCの1つ以上の起動動作の実行前であり、前記第3の時点は、前記1つ以上の起動動作の実行後である、請求項10に記載のSOC。
  18. 前記第1の時点は、1つ以上の起動動作の実行前であり、前記第3の時点は、前記SOCの前記1つ以上の起動動作の実行後であり、且つ、前記SOCの通常動作中である、請求項10に記載のSOC。
  19. システムオンチップ(SOC)及び評価装置を含む完全性チェックシステムであって、
    前記システムオンチップ(SOC)は、
    1つ以上のレジスタ値を記憶するように構成された1つ以上のレジスタと、
    制御装置であって、
    第1の時点において前記1つ以上のレジスタから前記1つ以上のレジスタ値を取得して第1のレジスタ値セットを生成するステップと、
    前記第1の時点の後の第2の時点において前記SOCの1つ以上のプロセスを実行するステップと、
    前記第2の時点の後の第3の時点において前記1つ以上のレジスタから前記1つ以上のレジスタ値を取得して第2のレジスタ値セットを生成するステップと、を実施するように構成された前記制御装置と、を含み、
    前記評価装置は、
    前記SOCから前記第1及び前記第2のレジスタ値セットを受け取るステップと、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとを比較するステップと、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較の結果に基づいて前記SOCの動作モードを調節することを前記SOCに指示するステップと、を実施するように構成されている、
    完全性チェックシステム。
  20. 前記評価装置は更に、
    前記第1のレジスタ値セットと前記第2のレジスタ値セットとの前記比較結果と、前記動作モードの前記調節とに基づいてレポートを生成するステップと、
    前記レポートを、前記SOCと通信している1つ以上の周辺装置に供給するステップと、
    を実施するように構成されている、請求項19に記載の完全性チェックシステム。
JP2017195727A 2016-10-07 2017-10-06 システムオンチップの完全性検証の方法及びシステム Active JP6453415B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/288,434 2016-10-07
US15/288,434 US10198332B2 (en) 2016-10-07 2016-10-07 System on chip integrity verification method and system

Publications (2)

Publication Number Publication Date
JP2018077835A JP2018077835A (ja) 2018-05-17
JP6453415B2 true JP6453415B2 (ja) 2019-01-16

Family

ID=61695658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017195727A Active JP6453415B2 (ja) 2016-10-07 2017-10-06 システムオンチップの完全性検証の方法及びシステム

Country Status (3)

Country Link
US (1) US10198332B2 (ja)
JP (1) JP6453415B2 (ja)
DE (1) DE102017123054A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10372545B2 (en) * 2017-03-13 2019-08-06 Infineon Technologies Ag Safe reset techniques for microcontroller systems in safety related applications
IT201700050166A1 (it) 2017-05-09 2018-11-09 St Microelectronics Srl Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
US11003153B2 (en) * 2017-11-17 2021-05-11 Intel Corporation Safety operation configuration for computer assisted vehicle
US11352133B2 (en) 2017-12-28 2022-06-07 Intel Corporation Systems, cableless drone swarm systems, method and apparatus
US11340978B2 (en) * 2017-12-28 2022-05-24 Intel Corporation Methods, systems and apparatus for functional safety implementation
US11308791B2 (en) * 2018-12-28 2022-04-19 Intel Corporation Methods, systems and apparatus to use audio return path for functional safety validation
US11814080B2 (en) 2020-02-28 2023-11-14 International Business Machines Corporation Autonomous driving evaluation using data analysis
US11702101B2 (en) 2020-02-28 2023-07-18 International Business Machines Corporation Automatic scenario generator using a computer for autonomous driving
US11644331B2 (en) 2020-02-28 2023-05-09 International Business Machines Corporation Probe data generating system for simulator

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332744A (ja) 1993-05-19 1994-12-02 Nec Corp 情報処理装置の試験方法
JPH0728663A (ja) 1993-07-09 1995-01-31 Fujitsu Ltd 情報処理装置の試験装置
JP3320570B2 (ja) 1994-09-26 2002-09-03 船井電機株式会社 システム異常からの復帰方法
EP1008928A4 (en) 1996-04-11 2007-08-08 Hitachi Ltd DISK UNIT AND CALCULATOR
KR101375171B1 (ko) * 2006-12-30 2014-03-18 삼성전자주식회사 시스템 온 칩 모델 검증 방법 및 장치
US9767319B2 (en) * 2007-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus of secure authentication for system on chip (SoC)
JP5447874B2 (ja) 2011-01-13 2014-03-19 ブラザー工業株式会社 情報処理装置
KR20130101927A (ko) * 2012-03-06 2013-09-16 한국전자통신연구원 디버깅 기능을 가지는 멀티코어 SoC
JP6102235B2 (ja) 2012-12-12 2017-03-29 日本電気株式会社 Bios復旧制御装置及びその復旧制御方法、情報処理装置、並びにコンピュータ・プログラム
US9507680B2 (en) * 2014-03-24 2016-11-29 Freescale Semiconductor, Inc. Verification system and method for automated verification of register information for an electronic system
US9836373B2 (en) * 2014-11-26 2017-12-05 Texas Instruments Incorporated On-chip field testing methods and apparatus
US9594623B2 (en) * 2015-03-24 2017-03-14 Nxp Usa, Inc. System on chip and method of updating program code on a system on chip

Also Published As

Publication number Publication date
JP2018077835A (ja) 2018-05-17
US20180101458A1 (en) 2018-04-12
DE102017123054A1 (de) 2018-04-12
US10198332B2 (en) 2019-02-05

Similar Documents

Publication Publication Date Title
JP6453415B2 (ja) システムオンチップの完全性検証の方法及びシステム
US9747192B2 (en) Automated operating system installation on multiple drives
EP3002677A1 (en) System and method for managing multiple bios default configurations
CN104185836B (zh) 用于在系统改变之后验证计算设备的适当操作的方法和系统
US10146657B2 (en) Initialization trace of a computing device
EP3163441A1 (en) Computer device and memory starting method for computer device
US20160246612A1 (en) Network bios management
US10430222B2 (en) Cloud based platform simulation for management controller development
US9239684B2 (en) Electronic device and method for testing redundant array of independent disks level
US10866881B1 (en) Firmware debug trace capture
US9639345B2 (en) Methods and apparatuses for providing framework for selective execution of application features
WO2016062146A1 (zh) 序列号信息的更新方法、装置及终端
CN106598637B (zh) 节点内的部件的选择性加载方法
US20190303172A1 (en) Information processing apparatus, device assignment method, and computer readable medium
US7725806B2 (en) Method and infrastructure for recognition of the resources of a defective hardware unit
US10838737B1 (en) Restoration of memory content to restore machine state
JP2013050839A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US10699033B2 (en) Secure enablement of platform features without user intervention
US9442831B1 (en) Automated testing of program code for processing a simple boot flag data structure
US20140019093A1 (en) Incrementally increasing system test workload
JP2015191606A (ja) 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
JP2015172807A (ja) 起動制御装置、起動制御方法、及び起動制御プログラム
CN109426506B (zh) 选用只读存储器的加载方法
US10613850B1 (en) Performant and secure storage and retrieval of firmware variables
JP6926921B2 (ja) コンパイルプログラム、コンパイル方法及び並列処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181212

R150 Certificate of patent or registration of utility model

Ref document number: 6453415

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250