(57)【要約】  本発明は、計算ユニットのプログラムメモリ（９）を検査するための装置に関し、検査モジュール（１１）を備えている。計算ユニットは、検査モジュール（１１）と接続されているコマンドカウンタから成る。このコマンドカウンタはレジスタ（１）を有しており、このレジスタ（１）は、レジスタ内容をセットする第１の切換スイッチ（３）と接続されている。完全なプログラムメモリのコマンドアドレスの検査を行うことができるこの装置では、コマンドカウンタ（８）は、プログラムコードに依存せずに、通常作動の間に、プログラムメモリ（９）のコマンドアドレス空間の間でカウントする補助カウンタ（２、６、７）を含んでいる。この補助カウンタは前記レジスタ（１）と接続されている。
2011512603.tif 000002
【特許請求の範囲】
【請求項１】
計算ユニットのプログラムメモリを検査するための装置であって
検査モジュールを備えており、
前記計算ユニットは、前記プログラムメモリと接続されているコマンドカウンタから成り、当該コマンドカウンタはレジスタを有しており、当該レジスタは、レジスタ内容をセットする第１の切換スイッチと接続されている形式のものにおいて、
前記コマンドカウンタ（８）は、プログラムコードに依存せずに、通常作動の間に、前記プログラムメモリ（９）のコマンドアドレス空間の間でカウントする補助カウンタ（２、６、７）を含んでおり、当該補助カウンタは前記レジスタ（１）と接続されている、
ことを特徴とする、計算ユニットのプログラムメモリを検査するための装置。
【請求項２】
前記補助カウンタ（２、６、７）は、データを緩衝メモリ（７）とレジスタ（１）との間で交換する第２の切換スイッチ（６）を有しており、当該第２の切換スイッチは前記緩衝メモリ（７）を介して前記レジスタ（１）と接続されている、請求項１記載の装置。
【請求項３】
前記プログラムメモリ（９）を検査するために、目下のプログラム経過に相応する前記レジスタ（１）の内容は、前記第２の切換スイッチ（６）によって前記緩衝メモリ（７）内にロード可能であり、
前記レジスタ（１）は、検査されるべきコマンドアドレスによって上書き可能である、請求項２記載の装置。
【請求項４】
前記プログラムメモリ（９）の検査が終了した後、前記目下のプログラム経過に相応する内容が、前記緩衝メモリ（７）から前記レジスタ（１）へ伝送されて戻される、請求項３記載の装置。
【請求項５】
前記レジスタ（１）は、前記検査の終了後に、検査されるべきコマンドアドレスを、設定された値だけ高める加算器（２）に通じており、
当該加算器は前記第２の切換スイッチ（６）と接続されており、当該第２の切換スイッチは、前記所定の値だけ高められたコマンドアドレスを緩衝メモリ（７）内に格納する、請求項３記載の装置。
【請求項６】
前記第１の切換スイッチ（５）および／または前記第２の切換スイッチ（６）は、時間マルチプレックス方法における前記プログラム経過を可能にする、請求項２、３または５記載の装置。
【請求項７】
前記コマンドカウンタ（８）は、検査されるべきコマンドアドレスを伝送するために、信号線路（１６）を介して、前記外部検査モジュール（１１）と接続されている、請求項１記載の装置。
【請求項８】
前記外部検査モジュール（１１）は、前記プログラムメモリ（９）の開始および終了を検出する、請求項７記載の装置。
【請求項９】
前記信号線路は双方向に構成されている、請求項７記載の装置。
【請求項１０】
前記コマンドカウンタ（８）は、前記プログラムメモリ検査の開始および終了を検出する、請求項７記載の装置。
【請求項１１】
前記プログラムメモリ検査の開始および終了は、コマンドカウンタ（８）から前記検査モジュール（１１）に、前記信号線路（１６）を介して伝送される、請求項１０記載の装置。
【請求項１２】
前記コマンドカウンタ（８）は、前記プログラム検査を制御するコマンドデコーダ（１０）と接続されている、請求項１記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査モジュールを備えた計算ユニットのプログラムメモリを検査するための装置に関する。ここで、この計算ユニットは、プログラムメモリと接続されたコマンドカウンタから成る。コマンドカウンタはレジスタを有しており、このレジスタは、レジスタの内容をセットする第１の切換スイッチと接続されている。
【０００２】
自動車技術分野において、安全に対してクリチカルなアプリケーションの数は絶えず増加している。これと同時に、複雑さも、自動車技術において使用されるスイッチング回路への安全性の要求も高まっている。これは殊に、ハードウェア特有のスイッチング回路（ＡＳＩＣ）にも当てはまる。ここでは、安全に関連する構成部材の検査に対する要求が増大している。従って、スイッチング回路内に集積されており、または外部メモリ内に格納されており、安全に関連するアプリケーションを処理するために使用されるプログラムコードも検査されなければならない。
【０００３】
条件付きで実行可能なジャンプコマンドが計算ユニット、有利にはコンピューターコア内のプログラム経過に影響を与え得るので、プログラムメモリの出力側でのコマンドフローは常には確定されていない。すなわち、入力データと出力データとの間に一義的な関係はない。従って、プログラムメモリの特定のコマンドアドレスは常に問い合わされ、他のコマンドアドレスは特定のモードにおいてのみ問い合わされる。従って、プログラムコードが正しいことを、効果的なデータブロックベースまたはデータフィローベースの検査メカニズムによって証明することはできない。
【０００４】
従って本発明の課題は、完全なプログラムメモリのコマンドアドレスを検査することができる装置を提供することである。
【０００５】
本発明の利点は、外部検査モジュールが、事前に定められた既知の順番で、プログラムメモリの全内容をエラー検出方法によって検査することができる、ということである。ここでコマンドカウンタは、プログラムメモリのコマンドアドレス空間の間で通常作動時にプログラムコードに依存しないでカウントする補助的なカウンタを含んでいる。ここでこの補助カウンタは、レジスタと接続されている。提案された構造によって効果的に、通常作動時に、プログラムメモリの全内容を監視することができる。必要な場合には、この監視が定期的に行われてもよい。検査が行われるべき時間期間を任意に変えることができる。本発明は、種々異なるエラー検出方法で作動することができる。
【０００６】
プログラムメモリの全てのコマンドアドレスが検査される。通常のプログラム経過においては特定のモードにおいてしか問い合わされず、特定のモードにない場合には飛ばされてしまうコマンドアドレスも検査される。
【０００７】
コンピューターコア内の既存の幾つかの構造、例えば、メモリのアドレスデコーダーおよび出力駆動部が再利用されるので、これらも間接的に、エラーがあるかについてテストされる。
【０００８】
有利には補助カウンタは、緩衝メモリとレジスタとの間でデータを交換する第２の切換スイッチを有している。この第２の切換スイッチは、緩衝メモリを介してレジスタと接続されている。コマンドカウンタを単に拡張させているだけなので、チップ面でのハードウェアコストは最小に低減される。なぜなら、既存のコマンドカウンタ部分が、補助カウンタに対しても使用されるからである。
【０００９】
本発明の発展形態では、プログラムメモリを検査するために、目下のプログラム経過に相応するレジスタ内容が、第２の切換スイッチによって、緩衝メモリ内にロードされる。ここでレジスタは、検査されるべきコマンドアドレスによって、上書き可能である。レジスタと緩衝メモリの内容を交換することによって容易に、通常のプログラム経過を中断して、検査モードを開始することができる。ここで通常のプログラム経過時に得られるレジスタの目下の値が緩衝記憶される。従って、検査時にはプログラム経過が中断されるが、変えられることはない。
【００１０】
１つの実施形態では、目下のプログラム経過に相応する内容を検査した後に、緩衝メモリからレジスタ内に再び伝送される。通常のプログラム経過の緩衝記憶された値をレジスタ内にロードして戻すことによって、プログラムは、中断された箇所で続行される。
【００１１】
発展形態ではレジスタは、検査が終了した後に、検査されるべきコマンドアドレスを所定の値だけ高める加算器に通じている。この加算器は、第２の切換スイッチと接続されている。これは、所定の値だけ高くされたコマンドアドレスを緩衝メモリ内に格納する。これは次のような利点を有している。すなわち、加算器による、通常のプログラム経過の目下の値によるレジスタの上書きと並行して、緩衝メモリ内に格納される、検査されることが望まれている次のコマンドアドレスが選択される、という利点を有している。加算器によって選択された値はここで線形に選択される、または所定の別の規定に従って選択される。
【００１２】
別の検査を開始させるための次のコマンドが上述のように発生すると、通常のプログラム経過が中断され、プログラムメモリの検査されるべき次のコマンドアドレスが緩衝メモリからレジスタ内にロードされる。加算器はここで、通常のプログラムコードの処理時にも、プログラムメモリのコマンドアドレスに対する検査モードにおいても使用される装置エレメントである。
【００１３】
有利には、拡張されたコマンドカウンタによって、時間マルチプレックス方法における上述した経過が行われる。この構造が時間マルチプレックス方法で作動するので、簡単かつ低コストのメモリモジュール、例えば「シングルポート」メモリモジュールが使用される。このようなメモリモジュールは、１つのアドレス入力側と１つのデータ出力側しか有していない。これは、上述の経過には十分である。なぜなら、プログラムコードの通常の処理および検査は時間的に相前後して行われるからである。
【００１４】
１つの実施形態では、検査されるべきコマンドアドレスを伝送するためにコマンドカウンタは、外部検査モジュールと、信号線路を介して接続されている。従って特に有利には本発明の構造は、プログラムメモリがデータバスが接続されていないコンピュータアーキテクチャに適している。なぜなら、コマンドカウンタと検査モジュールとの間の通信には簡単な信号線路で足りるからである。
【００１５】
プログラムメモリの完全な検査の経過をコントロールするために、外部検査モジュールは、プログラムメモリの検査の開始と終了を検出する。これは、加えられているコマンドアドレスと、検査モジュール内に格納されている値とを比較することによって行われる。
【００１６】
プログラムメモリの大きさが、２のべき乗でない場合、完全な検査の後、中間レジスタは再び、初期値に初期化されなければならない。このために、外部検査モジュールとコマンドカウンタとの間の信号線路は双方向に構成される。
【００１７】
択一的にコマンドカウンタは、プログラムメモリの検査の開始および終了を検出する。プログラムメモリの完全な検査の開始および終了は次に、検査モジュールに、信号線路を介して伝えられる。外部検査モジュールにおけるコマンドアドレスの検査は省かれる。従って、有利なチップ表面が省かれる。
【００１８】
本発明の発展形態において、コマンドカウンタは、メモリ検査を制御するコマンドデコーダと接続される。プログラムメモリ検査のアドレス内容（記憶場所）の検査の制御は、特別なソフトウェアコマンドによって開始され、コマンドデコーダのコントロール下で自動的に経過する。これによって、プログラムメモリの内容の完全な検査に対する持続時間を可変的にしておくことが容易に可能である。持続時間の区別は、具体的なアプリケーションの安全に関連する要求に依存し得る。別の観察では、初期化フェーズにおいて次のことが必要である。すなわち、スタートされるアプリケーションが確実に作動することを保証するために、プログラムメモリの検査が数マイクロ秒においてのみ実施されることが必要である。このような状況において、プログラムメモリの検査を開始するためのソフトウェアコマンドが頻繁に繰り返される。検査が複数秒の枠においてのみ行われる場合には、初期化フェーズが終了した後、これで十分である。この場合にはこの方法は、プロセッサの能力を十分に利用することに向けられる。他方ではこれは、電流消費をできる限り低くすることにも向けられる。
【００１９】
本発明では、多数の実施形態が可能である。このうちの１つを、図に基づいてより詳細に説明する。
【図面の簡単な説明】
【００２０】
【図１】従来技術のコマンドカウンタ
【図２】コマンドカウンタの本発明による実施例
【図３】本発明による装置のシステム図
【実施例】
【００２１】
同じ特徴には同じ参照番号が付与されている。
【００２２】
図１には、従来技術に従った、コンピューターコア内で既知のコマンドカウンタが示されている。コマンドカウンタは、ビット幅Ｎを有するレジスタ１から成る。レジスタ１の内容は、プログラムメモリ内のアドレスとして用いられる。レジスタ１は、加算器２と接続されている。この加算器は、レジスタ１の内容を各命令後に１つだけ高める。加算器２はおよび、図１には詳細に示されていない外部コマンドデコーダーモジュール１は第１のマルチプレクサ３につながっている。第１のマルチプレクサは、同じようにレジスタ１と接続されている。プログラム経過を制御するために、加算器２によって１つだけ高められたレジスタ内容は、第１のマルチプレクサ３を介して再びレジスタ１に供給される。レジスタ内容は、外部から、外部コマンドデコーダーモジュールによってもセットされる。これは、第１のマルチプレクサ３での入力側４によって表されている。この制御も第１のマルチプレクサ３を介して行われる。
【００２３】
プログラムメモリを検査するために、完全なアドレス空間の間で一度、カウントされなければならない。プログラム経過は、外部から生じるジャンプコマンドによって影響され得るので、補助カウンタが使用される。この補助カウンタは、アドレス空間の間で、検査されるべきプログラムメモリのプログラムコードに依存せずに、線形の規則または予め定められるべき別の規則に従ってカウントする。補助カウンタを実現するために、従来技術に従って公知の、コマンドカウンタが拡張されるので、既存のハードウェア素子のうちの幾つかが使用される。
【００２４】
拡張されたコマンドカウンタが図２に示されている。レジスタ１は、一方では加算器２を介して第１のマルチプレクサ３と接続されている。この第１のマルチプレクサは、第２のマルチプレクサ５を介してレジスタ１に戻る。他方ではレジスタ１は、第３のマルチプレクサ６と接続されており、この第３のマルチプレクサは、緩衝メモリ７につながっている。緩衝メモリ７は再び、第２のマルチプレクサ５を介して、レジスタ１とつながっている。加算器２は、付加的に第３のマルチプレクサ６と接続されている。
【００２５】
この装置でもレジスタ内容が、第１のマルチプレクサ３への入力側４によって表されている外部のコマンドデコーダーモジュールによって、第１のマルチプレクサ３および第２のマルチプレクサ５を介してセットされることがある。第１のマルチプレクサ３および第３のマルチプレクサ６では有利には２つのＮビット２：１マルチプレクサが使用される。
【００２６】
プログラムメモリのコマンドの検査はここで典型的に３つの周期を含む：
まずは、プログラムメモリのメモリアドレスの検査を開始させるためのコマンドが、復号化される。このコマンドは、通常のプログラムコードのソフトウェア内に含まれており、これによって、計算ユニットの通常動作時に読み出される。
【００２７】
このコマンドの復号化の後、通常のプログラム作動は停止される。目下経過しているプログラムのメモリアドレスを含んでいるレジスタ１の内容は、第３のマルチプレクサ６を介して緩衝メモリ７内にロードされる。従って、プログラム経過の目下の状態は格納されたままになる。同時に、プログラムメモリの検査されるべきメモリアドレスに相応する緩衝メモリ７の内容がレジスタ１内にロードされる。
【００２８】
次のステップでは、加算器２を通じて、１だけ高められたレジスタ１の内容が第３のマルチプレクサ６を介して再び、緩衝メモリ７内に格納される。同時に、緩衝メモリ７の内容が第２のマルチプレクサ５を介してレジスタ１内にロードされる。この内容は、目下経過しているプログラムが中断された箇所であるコマンドコードのメモリアドレスに相応するので、通常のプログラム経過をここで再び続けることができる。
【００２９】
再び緩衝メモリ７内にロードされた、１だけ高められたレジスタ１の内容はここで、検査されるべきプログラムメモリの次のメモリアドレスに相応する。これは、メモリアドレスの検査を開始するための次のコマンドの際に検査される。このプロシージャーの後、拡張されたコマンドカウンタ８は通常作動とプログラムメモリ検査モードとの間を切り替える。
【００３０】
説明される、拡張されたコマンドカウンタ８を備えたシステム図が図３に示されている。検査されるべきプログラムメモリ９は、コマンドデコーダ１０および外部監視モジュール１１と接続されている。コマンドデコーダ１０は同じように、直接的に外部監視モジュール１１および格調されたコマンドカウンタ８に続いている。さらにコマンドデコーダ１０は別のモジュール１２と接続されている。これは例えば、メモリユニットＲＡＭおよびＲＯＭまたはプロセッサの算術論理演算ユニット（arithmetisch-logischen Einheit:ALU）であり、コマンドデコーダ１０はこのモジュール１２に信号線路１３を介して制御信号を送出する。
【００３１】
まずは、システムは通常プログラムの処理状態にある。このプログラムは、プログラムメモリ内に格納されているプログラムコードによって設定される。プログラムコード内で次のコマンドとして、プログラムメモリ９のメモリアドレスの検査を開始するためのコマンドが呼び出されると、このコマンドはコマンドデコーダ１０によって復号化される。信号線路１４を介してコマンドデコーダ１０はこの情報を検査モジュール１１に伝達する。さらに、信号線路１５を介してこれが、拡張されたコマンドカウンタ８にも伝えられる。プログラム経過は、拡張されたコマンドカウンタ８によって中断される。拡張されたコマンドカウンタ８は、上述のように作動する。これはコマンドカウンタ８が内容をレジスタ１と緩衝メモリ７との間で交換することによって行われる。レジスタ１内の検査されるべきメモリアドレスは、外部監視モジュール１１に、信号線路１６を介して伝達される。検査されるべきメモリアドレスがここで、プログラムメモリ内容に対して付加的に、検査されるべき値として使用されてもよい。さらに、プログラムメモリ９は、このメモリアドレスに属するコマンドを呼び出すように促される。信号線路１７を介して、このコマンドがコマンドデコーダ１０に伝送され、信号線路１８を介して検査モジュール１１に伝送される。検査モジュール１１は、この時点で加えられるべき、検査されるべきコマンドを引き受け、これをエラー検出プログラムによって比較する。このコマンド自体がエラーに関して検査可能でなく、全体のメモリまたはメモリ領域のみが検査可能である場合には、メモリがコントロールされる。一般に行われている検査方法はメモリ全体にわたったチェックサムの形成である。
【００３２】
検査が終了し、レジスタ１と緩衝メモリ７の内容が再度交換されると、ここで再び、通常プログラムに相応するメモリ内容がレジスタ１内に存在し、通常のプログラム経過が再び開始される。
【００３３】
この過程は常に繰り返される。これは、この過程が、プログラムメモリ９のコマンドアドレスの検査を開始するためのさらなるコマンドによって、再び呼び出されることによって行われる。このようにして、この過程は、プログラムメモリ９の完全なアドレス空間の間でカウントされ、全てのメモリ場所が調査されるまで頻繁に繰り返される。次にこの検証の結果がコマンドデコーダ１０から、上位の、詳細には図示されていない制御機器へ転送され、そこで評価される。
【００３４】
プログラムメモリ９の完全な検査の開始および終了の確認は、外部検査モジュール１１内で行われる。このためには外部検査モジュール１１は、加えられたメモリアドレスを、検査モジュール１１内に格納されている値と比較する。これは検査過程がアクティブである場合には常に行われる。ここで第１の値はプログラムメモリ９の第１のアドレス、すなわち検査の開始を識別し、第２の値はプログラムメモリ９の最後のアドレス、ひいてはプログラムメモリ９のアドレス空間の完全な検査の終端を識別する。
【００３５】
メモリの大きさが２のべき乗である場合には、プログラムメモリの完全な検査の開始および終了の確認を完全に省くことができる。緩衝メモリの値がアドレス空間の終端に達する場合には、オーバーフローが生じる。次の検査周期では緩衝メモリの値は、このオーバーフローによって自動的に０に初期化される。
【００３６】
プログラムメモリ９の大きさが２のべき乗でない場合には、緩衝メモリ７はプログラムメモリのアドレス空間の完全な検査の後に再び、初期値に初期化されなければならない。これは検査モジュール１１から、拡張されたコマンドカウンタ８への信号線路１９を介して行われる。プログラムメモリ９の大きさが２のべき乗に相応する場合には、緩衝メモリ７の初期化は必要ではなく、この信号線路を省くことができる。
【００３７】
説明したソリューションは、特に、回転率センサ加速度センサのための評価回路に適している。
【図１】
2011512603.tif 000003
【図２】
2011512603.tif 000004
【図３】
2011512603.tif 000005
【国際調査報告】
2011512603.tif 000006
2011512603.tif 000007
2011512603.tif 000008
2011512603.tif 000009
2011512603.tif 000010
2011512603.tif 000011