JP2015531521A - リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 - Google Patents
リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 Download PDFInfo
- Publication number
- JP2015531521A JP2015531521A JP2015536071A JP2015536071A JP2015531521A JP 2015531521 A JP2015531521 A JP 2015531521A JP 2015536071 A JP2015536071 A JP 2015536071A JP 2015536071 A JP2015536071 A JP 2015536071A JP 2015531521 A JP2015531521 A JP 2015531521A
- Authority
- JP
- Japan
- Prior art keywords
- program block
- segment
- memory
- program
- exception
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44552—Conflict resolution, i.e. enabling coexistence of conflicting executables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本発明は、例えば自動車における安全関連システムの複数の機能を実行するように構成されている、複数のリンクされたプログラムブロック(20〜24)の別々の実行を制御するための方法に関する。この方法では、プロセッサ(140)上で複数のプログラムブロックのうちの第1プログラムブロック(20)が実行され、この第1プログラムブロック(20)は、メモリ(130)の第1セグメント(10,110)内にある。プロセッサ(140)はメモリ(130)にアクセスする。第1プログラムブロック(20)を実行中に、複数のプログラムブロックのうちの第2プログラムブロック(22)を呼び出される。第2プログラムブロック(22)は、メモリ(130)の第1セグメント(10,110)とは異なる第2セグメント(12,112)内にある。ここでは、メモリ保護装置(150)によってメモリ(130)へのアクセスを監視し、このメモリ保護装置(150)は、このアクセスの監視時にメモリ保護装置(150)により、第1プログラムブロック(20)を実行中に、第2プログラムブロック(22)が呼び出されることが検出された場合、前記メモリ保護装置(150)によって例外をトリガする。この例外が発生した場合、例外ハンドラ(160)により、第1セグメント(10,110)をディスエーブルし、かつ、第2セグメント(12,112)の実行をイネーブルする。有利にはデータへのアクセスも、殊に書き込みアクセスも、メモリ保護装置(150)により、例外およびこれに伴うディスエーブルおよびイネーブルを用いて制御される。さらに本発明は、この方法を実行するための制御装置に関する。
Description
本発明は、プロセッサを用いて自動車における複数の安全関連システムを制御することに関しており、殊に上記の複数の安全関連システムの複数の機能を実行する、リンクされた複数のプログラムブロックの別々の実行を制御することに関する。
従来の技術
データ処理装置を用いて安全関連機能を実現すること、殊に原動機制御部の機能を実現することは公知であり、ここではこのデータ処理装置のプロセッサにより、このプロセッサ上で実行可能なプログラムが処理される。誤りを有する機能は、車両の安全性に直接的な影響を及ぼすため、上記のプログラムセクションを記述する際には、安全に関する複数の対策が講じられる。異なるプログラムセクションは、異なる安全レベルに属することもあり得るため、異なるプログラムセクションないしはサブプログラムは、異なるクラスに対応付けられる。ISO26262規格では、自動車に対して全部で5つの異なるレベル分けが行われており、これらは、ASIL A〜DまたはQMと称されている。プロセッサ上で実行する際にも各プログラムセクションの安全レベルを保証できるようにするためには、安全分類の異なる複数のプログラムセクションが、実行中に互いに影響を及ぼし合わないようにすることが必要である。
データ処理装置を用いて安全関連機能を実現すること、殊に原動機制御部の機能を実現することは公知であり、ここではこのデータ処理装置のプロセッサにより、このプロセッサ上で実行可能なプログラムが処理される。誤りを有する機能は、車両の安全性に直接的な影響を及ぼすため、上記のプログラムセクションを記述する際には、安全に関する複数の対策が講じられる。異なるプログラムセクションは、異なる安全レベルに属することもあり得るため、異なるプログラムセクションないしはサブプログラムは、異なるクラスに対応付けられる。ISO26262規格では、自動車に対して全部で5つの異なるレベル分けが行われており、これらは、ASIL A〜DまたはQMと称されている。プロセッサ上で実行する際にも各プログラムセクションの安全レベルを保証できるようにするためには、安全分類の異なる複数のプログラムセクションが、実行中に互いに影響を及ぼし合わないようにすることが必要である。
この実行の分離を保証するため、上位の実行制御の明示的な複数の切り換え命令が使用されるかまたはこれらが最下位のシステムレベルの個々のプロセス(タスク)として実行される。別の公知のアプローチによれば、複数のプロセッサコアが使用され、各コアは所定の安全クラスに対応付けられているため、所定の安全分類のサブプログラムだけが所定の1つのコア上で実行され、別の複数のコア上では実行されない。これらのアプローチは非効率的である。なぜならば、これらのアプローチには付加的に計算コストないしはコストのかかるプロセッサアーキテクチャが必要だからである。
したがって本発明の課題は、安全分類の異なる複数のサブプログラムが、効率的に別々に実行できるようにする手法を示すことである。
発明の開示
上記の課題は、独立請求項に記載した方法および制御装置によって解決される。別の有利な様相は、従属請求項の特徴部分に記載されている。
上記の課題は、独立請求項に記載した方法および制御装置によって解決される。別の有利な様相は、従属請求項の特徴部分に記載されている。
従来技術において提案されているような、複数のタスク、プロセッサコアにだけに基づく、または上位プログラムによる非効率的な切り換えを用いて上記のような不確実な切り離しを行う代わりに本発明では、複数のリンクされたプログラムブロックの実行をメモリ監視によって切り離すことである。切り離すべき複数のプログラムブロックまたはデータは、メモリのまったく異なる部分に設けられる。ここではプログラムブロックがメモリのいわゆるセグメントに設けられるのに対し、データはメモリの固有のラベルが付されたデータセグメントに設けられる。上記の切り離しは、実行ないしはアクセスを分離すべきプログラムブロックないしはデータが異なるセグメントに設けられることによって行われる。メモリ監視により、殊にメモリ保護装置により、つねに実際に実行しているセグメントないしは実際のデータセグメントだけがイネーブルされるのに対し、別のセグメントないしはデータセグメントのアクセスがディスエーブルされる。例えば、上記のメモリ監視により、データへの書き込みアクセスだけがディスエーブルされるのに対し、メモリ監視により、読み出しアクセスが可能になり得るのである。したがってデータについては、上記のディスエーブルは、書き込みのディスエーブルになり得るのである。セグメントを跨いで別のプログラムブロックが呼び出されるないしは、データセグメントを跨いでデータにアクセスが行われる場合、上記のメモリ監視により、例外がトリガされる。この例外により、上記の読み出される側の新たなプログラムブロックに属する上記のセグメントないしはデータセグメントがイネーブルされ、かつ、呼び出し側のプログラムブロックに属する前のセグメントないしはデータセグメントがディスエーブルされるのである。
したがってここで説明しているメカニズムは、本来は切り離すべき複数のプログラムブロックないしは複数のデータの跨がりを検出して例外処理をトリガするメモリ保護装置を使用することに基づいているのである。この例外により、例外ハンドラは、イネーブルないしディスエーブル状態を変更するため、別のデータないしはプログラムブロックがアクセス可能になるかないしは実行可能になる。つまりこの例外ハンドラにより、つねに1つのタイプのプログラムブロックまたはデータだけがアクティブ化されるのであり、ここでこれは、関連するセグメントないしはデータセグメントをイネーブルする一方で別のセグメントをディスエーブルすることによって行われる。安全レベルについて上記のデータないしはプログラムブロックを区別するため、これらのデータないしはプログラムセグメントは、その安全レベルにしたがい、異なるデータセグメントないしはセグメントに格納される。
上記の複数のプログラムブロックないしはデータの、異なる複数のセグメントないしはデータセグメントへの切り離しは、区別のための指標として、上記のメモリ監視に使用され、このメモリ監視により、上記の異なる安全レベルが検出される。上記の実行およびアクセスについての切り離しは、発生した上記の例外により、上記のイネーブルおよびディスエーブルによって実現される。
したがって本発明では、リンクされた複数のプログラムブロックの別々の実行を制御するための方法が開示されるのである。別々の実行が制御される上記の複数のプログラムブロックは、1つのプログラムブロックの枠内で、複数のプログラムブロックのうちの別の1つのプログラムブロックが呼び出されることによってリンクされる。例えば、1つのプログラムブロック内で、別のプログラムブロックがサブプログラムとして呼び出される。例えば、呼び出し側のプログラムブロックの部分であるかまたは割り込みである関数としてまたはプロシージャとして呼び出されるのである。プログラムブロックを関数として呼び出す際には、呼び出し側プログラムブロックから、呼び出される側のプログラロムブロックに複数のパラメタをわたすことできる。これらのプログラムブロックは、呼び出し側のプログラムブロックおよび呼び出される側のプログラムブロックと称され、この呼び出し側のプログラムブロックは第1プログラムブロックと、上記の呼び出される側のプログラムブロックは第2プログラムブロックと称することもできる。しかしながら最後の対応付けは、上記の呼び出しの実際に状況に依存して変わり得る。呼び出し側のプログラムブロックは、例えば複数のプログラムブロックを呼び出すこともできるため、処理的には1つまたは複数の第2プログラムブロックが存在する。さらに1つまたは複数のプログラムブロックを呼び出す互いに異なる複数の呼び出し側のプログラムブロックも存在し得る。したがって1つまたは複数の第1プログラムブロックが存在するのである。
ここではインタラプト、すなわち割り込みを1つのプログラムブロックまたは(ここで記載したような)サブプログラムとみなすことができる。このことは、インタラプトとして設けられたプログラムブロックまたはインタラプトとして設けられたサブプログラムが明示的に呼び出されるのではなく、別の仕方で実行されるかまたはトリガされる場合にも当てはまる。
第1プログラムブロックによって呼び出されるプログラムブロックも、1つまたは複数の別のプログラムブロックを呼び出すことができる。したがって呼び出し側のプログラムブロック、呼び出される側のプログラムブロック、第1プログラムブロックおよび第2プログラムブロックの属性は、それぞれ状況に応じており、また呼び出し状況に対する2つのプログラムブロック間の階層関係を表す。別の呼び出し状況に対しては、この(相対的な)階層関係は別の階層関係となることがあるため、上記の呼び方もこれに相応し、呼び出し状況に応じて変化し得るのである。
上記の複数のプログラムブロックは、自動車における安全関連システムの複数の機能を実行するように構成されている。殊にこれらのプログラムブロックは、パワートレイン分野における機能もしくはパワートレインの機能、または、操舵システムまたは車両もしく搭乗者安全システムのような別の車両特定応用分野の機能を実行するために構成されている。これらは、例えば、自動車のトラクションに使用される内燃機関、電動モータ、自動車の電気式、電気機械式または機械式の制動装置、または電子式操舵駆動器などである。別の機能は、冒頭に挙げた機能の状態のような動作状態の光学的または音響的な表示に関する機能である。
上記の複数のプログラムブロックによって実行される上記のような複数の機能はさらに、例えば、自動車の内燃機関の燃料量、空気量、燃料セットアップ、噴射時点および/または点火時点の制御である。別の複数の機能は、車両の運動エネルギの回生に使用される電動モータの回生時間および回生出力であり、および/または、トラクションに使用される電動モータの転流であり、殊に転流時点、励磁電流強度および場合によっては励磁電流強度と、電動モータに印加される電圧との間の位相のずれなどである。
上記の方法では、上記の複数のプログラムブロックのうちの第1プログラムブロックが1つのプロセッサ上で実行されるようにする。実行用のこのプロセッサは、1つまたは複数のプロセッサコアを有し得る。このプロセッサは有利にはマイクロコントローラであり、殊に安全にクリティカルなシステム用に構成されたマイクロコントローラ、例えばエンジン制御用に構成されたマイクロコントローラである。以下に詳しく説明するように、上記の実行用のプロセッサには、例えば、メモリ保護装置を有しており、有利には例外ハンドラも有している。実行用のこのプロセッサには、例えば、メモリまたはメモリを接続するための少なくとも1つのインタフェースが含まれている。
本発明では、上記の方法の開始とみなすことが可能な事前ステップを設けることができる。この事前ステップは、例えば、ここで説明している制御装置または方法を開始する間に実行される。この事前ステップでは、メモリ保護装置が、ここで説明している方法をサポートする仕様にしたがって構成設定されるようにする。殊にこのメモリ保護装置は、殊にアクセス権について上記のメモリの上記のセグメントを定める仕様にしたがって構成設定される。したがって上記の事前ステップでは、アクセス監視の構成設定と、殊に上記のセグメントおよび/またはプログラムブロックのアクセス権の構成設定とが行われるのである。さらに上記の事前ステップでは、どのプログラムブロックをどのセグメントに格納するか、また殊にこのプログラムブロックまたはセグメントがどのようなアクセス権を有するかを定めることができる。上記の事前ステップでは、上記の複数のプログラムブロックもしくこれらのプログラムブロックのうちの少なくとも1つを開始することもできるか、または、これらのプログラムブロックが呼び出される上位のプログラムを介して開始することができる。この開始は有利には、上記の構成設定の後に実行される。
上記のプロセッサによって実行される第1プログラムブロックは、上記のメモリ第1セグメント内にある。このプロセッサは、第1プログラムブロックを実行するためにこのメモリにアクセスする。このプロセッサは、第1プログラムブロックを実行する際には認証されて、第1セグメントに読み出しおよび書き込みアクセスを行う。上記のプロセッサは、第1プログラムブロックを実行する際に、例えば認証され、第1セグメント内にあるプログラムを実行する。この第1プログラムブロックにはさらに、上記のプロセッサによる実行を許容する実行権限が付与されている。
第1プログラムブロックの実行中、上記の複数のプログラムブロックのうちの第2プログラムブロックが呼び出される。この呼び出しは、例えばプロシージャコールまたは関数コールの枠内で行うことができる。この関連において上記の第2プログラムブロックは、第1プログラムブロックのサブプログラムまたは割り込みとみなすことができる。第2プログラムブロックは、上記のメモリの第2セグメント内に配置されている。第2セグメントは、上記のメモリの第1セグメントとは異なる。メモリ内にある異なる複数のセグメントは互いに重なり合わない。
上記のメモリへのアクセスは、殊にこのメモリに格納されているプログラムの実行(開始)の枠内におけるメモリへのアクセスは、メモリ保護装置によって監視される。上記のアクセスを監視するメモリ保護装置は、殊に上記のプロセッサの一部であり、ハードウェアとして構成することできる。択一的にはこのメモリ保護装置の一部分は、上記のプロセッサ上でまたはこのプロセッサに接続されているメモリ監視装置上で動作するソフトウェアとして構成される。このメモリ保護装置は、例えば、上記のプロセッサに属するかまたはこれに組み込まれているメモリインタフェースの一部とすることが可能である。メモリ保護装置は、メモリ保護によってアクセスを監視している際に、第1プログラムブロック(すなわち上記の複数のプログラムブロックのうちの第1プログラムブロック)の実行中に、第2プログラムブロック(すなわち上記の複数のプログラムブロックのうちの第2プログラムブロック)が配置されている第2セグメントにアクセスが行われることが検出される場合、例外をトリガする。このようにしてこのメモリ保護装置は、上記のメモリを分割した複数のセグメントへのアクセスを監視する。アクセスは、殊に読み出しアクセスのことであり、有利には上記のプロセッサによる実行の枠内での読み出しアクセスのことである。しかしながらアクセスは、書き込みアクセスとすることも可能であり、または書き込みおよび読み出しアクセスとすることも可能である。有利な実施形態において上記のアクセスは、メモリ内にあるプログラムブロック(サブプログラムまたは関数)を実行するための上記のプロセッサによるメモリへのアクセスである。したがってこのアクセスは、プログラムブロックの実行または実行のための準備になり得るのである。
上記の複数のプログラムブロックは、異なる複数のセグメントに分けられているため、上記の監視によって検出できるのは、呼び出されるプログラムブロックが、これを呼び出していたプログラムブロックとは異なるセグメントにある場合である。
例外が発生した場合、上記の例外ハンドラにより、上記のメモリの第1セグメントがディスエーブルされる。ここでは、ディスエーブルされる複数の第1セグメントを設けることも可能である。このディスエーブルは、例えば、使用されるアクセスタイプに関連しており、有利にはその実行に、すなわち、実行を目的とした読み出しに関連するものである。上記の例外ハンドラは、上記の例外が発生した場合、上記の第2セグメントを実行のためにイネーブルする。このイネーブルは、上記のディスエーブルないしはアクセス(読み出し、書き込む)など同じ動作に関連して、殊にその実行に関連している。
殊に上記の例外ハンドラは、上記の第2セグメントの読み出しをイネーブルし、有利には実行をイネーブルする。これにより、例外ハンドラは、実行可能なプログラムブロックが存在するセグメントと、実行がイネーブルされていないセグメントとを変更するのである。
上記のディスエーブルないしはイネーブルを行う例外ハンドラは、ハードウェアの形態で設けることができ、殊に上記のプロセッサ内のハードウェアとして、またはこのプロセッサに接続されているハードウェアとして設けることができる。さらにこの例外ハンドラは一部分をソフトウェアとするかまたは完全にソフトウェアとすることができ、これは上記のプロセッサ上で動作するか、またはプロセッサ内の、またはプロセッサと接続されているプロセッサ外の例外処理装置上で動作する。上記のメモリ保護装置ならびに例外ハンドラを実現する上記のハードウェアは、殊にメモリ監視装置または例外処理装置は、プロセッサに固定に接続されており、殊にこれに直接接続されており、これによって故意ではない不正の操作が回避される。例えば、メモリ管理ユニット(MMU memory management unit)のメモリ保護装置ならびに例外ハンドラが設けられており、このメモリ管理ユニットは有利には、それ自体がプロセッサの一部分であるかまたはプロセッサに対応付けられるハードウェアとして設けることができる。
第2プログラムブロックは、第1プログラムブロックの実行中にタスクマネージャによって呼び出すことができる。しかしながら有利には第2プログラムブロックは、第1プログラムブロックの1つの命令により、殊に第1プログラムブロックの関数呼び出しまたはプロシージャ呼び出しによって呼び出される。
第2プログラムブロックの実行の終了時にはリターンジャンプが行われる。このリターンジャンプは、例えば、第2プログラムブロックのリターンジャンプ命令により、ないしは、第2プログラムブロックを表す複数の命令の終了によってトリガされる。
上記のリターンジャンプにより、上記の第2セグメントがディスエーブルされ、第1セグメントが再度イネーブルされる。アクセス権のこの変更は、上記のリターンジャンプによってトリガされる別の例外によって行うことが可能である。択一的には上記の実行の終了時に上位のハードウェアまたはソフトウェアにより、別の例外を行うことができる。上記の例外ハンドラは、この別の例外が発生した際、ないしはこの別の例外が処理される際、第2セグメントをディスエーブルする。さらに例外ハンドラは、この別の例外が発生した際ないしは処理がされる際には第1セグメントの実行をイネーブルする。セグメントをディスエーブルすることにより、上記のプロセッサは、関連するセグメントにあるプログラムブロックの処理が阻止される。殊に1つのセグメントをディスエーブルすることにより、このセグメントにおけるコードの実行がディスエーブルされる。上記のイネーブルにより、プロセッサは、関連するセグメントにアクセスして実行することができる。
本発明の別の様相によれば、第1または第2プログラムブロックの実行中、少なくとも1つの別のプログラムブロックが呼び出される。さらに上記のメモリ保護装置は、この別のプログラムブロックが呼び出される場合、例外をトリガする。殊にメモリ保護装置は、呼び出し側のプログラムブロック(すなわち、第1または第2プログラムブロック)が、上記の別のプログラムブロックもあるこのメモリの別のセグメントにアクセスする場合に例外をトリガする。イネーブルされていないセグメントへのこのアクセスにより、上記の例外がメモリ保護装置によってトリガされる。この例外が発生する場合、例外ハンドラは、呼び出し側のプログラムブロックが存在する、上記のメモリのセグメントをディスエーブルする。上記の例外ハンドラは、この例外処理が発生した際には、呼び出された側のプログラムブロックがある、メモリの上記のセグメントをイネーブルする。このイネーブルの後、上記の呼び出された側のプログラムブロックがプロセッサによって実行される。有利にはこの実行は、関連するセグメントがイネーブルされた直後に開始される。
これにより、互いに影響を及ぼし得ない2つ以上の階層レベルを定めることができる。なぜならば、上記のメモリのただ1つのセグメントだけが、プロセッサの実行のためにイネーブルされ、それ以上はイネーブルされないからである。
別の一様相によれば、第1プログラムブロックが実行される間中、第2セグメントへの上記のアクセスが連続的にディスエーブルされる。ここでこのアクセスは、メモリ保護装置によってディスエーブルされる。また第2プログラムブロックが実行される間中、第1セグメントへのアクセスが連続的にディスエーブルされる。ここでもメモリ保護装置により、上記のセグメントに対するアクセスがディスエーブルされる。ここでこのアクセスは、例えばプログラムブロックを実行するためのアクセスである。最終的には上記のディスエーブルにより、上記のメモリのディスエーブルされたセグメントへの書き込みアクセスが、上記のメモリ保護装置によってディスエーブルされる。
本発明で開示した方法の別の一様相は、データへのアクセス権に関連しているのに対し、これとは異なり、上記の複数の段落は実質的に、複数のプログラムブロックがある複数のセグメントに関連していた。有利な一方法は、ハードウェア構造内で実行され、このハードウェア構造では上記のメモリの、複数のプログラムブロックが記憶されている複数のセグメントと、上記のメモリの、データがある複数のセグメントとがわかれている。このような分離が行われない場合には、上記の説明は、プログラムブロックだけではなく、これに属するデータも存在する複数のセグメントに関連する。さらに、プログラムブロックに関連して開示した事項はデータにも当てはまり、その逆も当てはまる。
第1プログラムブロックには、データ用の第1データセグメントが対応付けられており、これらのデータは、第1プログラムブロックによって記憶され、読み出される。第2プログラムブロック(および別の各プログラムブロック)には、少なくとも1つの第2の、第1セグメントとは異なるデータ用のデータセグメントが対応付けられており、このデータは、第2プログラムブロックによって記憶され、読み出される。これらのプログラムブロックには、複数の第1のまたは複数の第2のデータセグメントを対応付けることもできる。これらのデータセグメントは、上記のプログラムブロックがある上記のセグメントと同じメモリに設けることができる。特定の実施形態によれば、複数のメモリを設けることができ、1つのメモリは、プログラムブロックにおける複数のセグメントだけを含み、これとは異なる別の1つのメモリはデータセグメントだけを含む。
プログラムブロックが記憶されているセグメントとは、またデータセグメントとは、例えば物理的なセグメントまたはページにマッピングされる上記のメモリの論理的なグループまたはセクションのことである。論理的なグループまたはセクションは、サイズ可変のメモリのセクションのことであり、殊に種々異なるプログラムブロック(またはセグメントまたはグループ)に対するサイズは異なり得る。
さらにデータセグメントの上記のサイズは、上記のプログラムブロックのある上記のセグメントのサイズとは異なり得る。またデータセグメントの位置は、上記のプログラムブロックがあるセグメントの位置と異なり得る。
上記の例外ハンドラは、第1プログラムブロックによる第2プログラムブロックの呼び出しによって例外がトリガされる場合、第1データセグメントをディスエーブルする。この例外ハンドラは、第2プログラムブロックによる第1プログラムブロックの呼び出しによって例外がトリガされる場合、第2データセグメントをディスエーブルする。さらに、呼び出し側のプログラムブロックに対応付けられているデータセグメントがディスエーブルされる。この際には、呼び出されるプログラムブロックに対応するデータセグメントがイネーブルされる。
本発明の別の一様相によれば、第1プログラムブロックには、第2プログラムブロックとは異なる別の安全レベルが対応付けられる。同様に、第1および第2データブロックに対応付けられる安全レベルは異なる。安全レベルは、有利にはISO26262規格に則る。殊に上記のプログラムブロックは、ISO26262記載にしたがって構成される。さらに上記のプログラムブロックは、レベル分けASIL A〜DまたはQMにしたがって分類される。上記の第1および第2プログラムブロックは分類が異なる。
例えば、1つのセグメントにはつねに、同じ分類の複数のプログラムブロックだけ存在する。データセグメントにもつねに、同じ分類の1つまたは複数のプログラムブロックだけが対応付けられる。このようにして上記の分類に基づく上記のような区別により、簡単なメモリ保護手段を用いて、関連するプログラムブロックないしはデータを分けることができ、これによって異なる安全クラスのプログラムブロックないしはデータおよびを互いに影響を及ぼし合うことなく分けることができる。ISO26262規格による例示的な分類に加えて、例えば較正データであるかまたは読み出し専用メモリに対応付けられる、関数に関連するデータないしはプログラムブロックを、他のプログラムブロックまたはデータから影響なしに分離することができ、ここでは上記のデータないしプログラムブロックには上記の規格が当てはまらずひいては別の安全レベル分けが行われる。上記の分類は、例えば、以下の1つまたは複数の判定基準を含むことできる。すなわち、
(a) コードが、あらかじめ設定した開発プロセスにしたがって開発されているか否か、
(b) コードが、あらかじめ定められた開発者またはメーカのグループに作成されているか否か、
(c) 妥当性検査が実行時に実行されるか否か、
(d) データチックが実行時に実行されるか否か、
(e) 場合によっては個別の命令の実行によってコードおよびデータ入出力が形式的に検査されるか否か、
(f) コードが別の装置によってチェックされるか否か、
(g) 制限されたポインタ利用か否か、
(h) コードが統計的に分析されるか否か、
(i) コードに対するモデル検査が実行されるか否か、
(j) 制御の流れが監視されるか否か、
(k) モデルとコードとの間の相互の照合が行われるか否か、
(l) コードが異なるソフトウェア設計によって作成されているか否か、
(m) 監視ユニットが設けられている否か、
(n) 別々の並行の冗長性が設けられているか否か、
(o) 誤り挿入テストが実行されるか否か、
(p) 資源利用テストが行われるか否か、
(q) 較正データの冗長な記憶が行われるか否か、
(r) 誤り識別コードおよび/または誤り補正コードが設けられているか否か、
を含むことができるのである。
(a) コードが、あらかじめ設定した開発プロセスにしたがって開発されているか否か、
(b) コードが、あらかじめ定められた開発者またはメーカのグループに作成されているか否か、
(c) 妥当性検査が実行時に実行されるか否か、
(d) データチックが実行時に実行されるか否か、
(e) 場合によっては個別の命令の実行によってコードおよびデータ入出力が形式的に検査されるか否か、
(f) コードが別の装置によってチェックされるか否か、
(g) 制限されたポインタ利用か否か、
(h) コードが統計的に分析されるか否か、
(i) コードに対するモデル検査が実行されるか否か、
(j) 制御の流れが監視されるか否か、
(k) モデルとコードとの間の相互の照合が行われるか否か、
(l) コードが異なるソフトウェア設計によって作成されているか否か、
(m) 監視ユニットが設けられている否か、
(n) 別々の並行の冗長性が設けられているか否か、
(o) 誤り挿入テストが実行されるか否か、
(p) 資源利用テストが行われるか否か、
(q) 較正データの冗長な記憶が行われるか否か、
(r) 誤り識別コードおよび/または誤り補正コードが設けられているか否か、
を含むことができるのである。
別の一様相によれば、上記の例外処理は、いわゆる割り込みまたはいわゆるエクセプションであり、殊にハードウェア割り込みまたはソフトウェア割り込みである。さらに上記の割り込みは、上記のプロセッサの内部または外部でトリガおよび/または処理することができる。この割り込みは、マスク可とするかまたはマスク不可とすることができる。
さらに、特有な一実施形態として、プログラムブロックが、別の安全レベルを有するプログラムブロックを、殊により高い安全レベルを有するプログラムブロックを呼び出す場合にトリガされる例外は、プログラムブロックが、別の安全レベルを有するプログラムブロックを、殊により低い安全レベルを有するプログラムブロックを呼び出す場合にトリガされる例外とは、異なる優先度で処理される。上記の例外ハンドラは、この優先度にしたがって上記の例外処理を処理する。したがってこの例外の処理の優先度は、呼び出されるプログラムブロックの安全レベルに依存するのである。呼び出されるプログラムブロックの安全レベルが低ければ低いほど、例外ハンドラを用いてトリガされる例外処理の優先度は小さくなる。この実施形態は、上記のメモリ保護装置が、複数の例外を処理し、これによってさらにすでに1つの例外がトリガされているが、これがまだ処理されていない場合にも、1つの例外が発生するかまたはこれをトリガすることができるように構成されている特別なケースに関するものである。
さらに本発明には、データ処理装置を有する制御装置が、殊に車両用またはここで説明する別の応用分野用の制御装置が記載されている。このデータ処理装置には、メモリと、プロセッサと、メモリ保護装置とが含まれている。この制御装置は、上記の方法に基づき、上で説明した複数の機能を実現するのに適している。したがって、殊にこの制御装置は、変速器制御部、例えばハイブリッド車両用のパワートレイン、例えばエンジン制御ユニット(ECU engine control unit)のような、内燃機関用のエンジン制御装置などである。上記のメモリ、プロセッサおよびメモリ保護装置は、上記の方法の枠内で示したように上記の制御装置を構成することができる。
上記のメモリは、プロセッサに接続されているため、プロセッサは、複数のプログラムブロックおよび/またはデータをメモリから読み出し、呼び出し、またはこれに格納することができる。第1プログラムブロックおよび第2プログラムブロックは、上記のメモリの第1セグメントおよび第2セグメントに格納されている。このメモリの第1および第2セグメントは互いに異なる。これらのセグメントには1つまたは複数の第1プログラムブロックないしは1つまたは複数の第2プログラムブロックが格納されており、これらの第1プログラムブロックは、第2プログラムブロックとは異なるセグメントに格納されている。上記の第1プログラムブロックと、上記の少なくとも1つの第2プログラムブロックとは互いにリンクされている。例えば、上記の第1プログラムブロックには、少なくとも1つの第2プログラムブロックの呼び出しが含まれている。
上記のデータ処理装置には、メモリ保護装置が含まれており、上記の複数のセグメントのうちの第1セグメントに格納されている第1プログラムブロックが、第2セグメントに格納されている第2プログラムブロックを呼び出す場合、上記のメモリ保護装置のプログラミングまたは上記のメモリとのその接続により、上記のメモリ保護回路がトリガされて例外処理が起動される。このために、方法の枠内において上述したように、上記のメモリ保護装置は、ハードウェア、ソフトウェアまたはこれらの組み合わせで実現することができる。上記のデータ処理装置はさらに、例外ハンドラを有しており、これは、上記の例外を受信するためにメモリ保護装置に接続されている。この例外ハンドラは、上記のメモリに接続されており、また、上記の例外を受信した際には、このメモリの第1セグメントとプロセッサとの間の論理的なリンクをディスエーブルするように構成されている。この例外ハンドラはさらに、上記の例外を受信した際には、上記のメモリの第2セグメントとプロセッサとの間の論理的なリンクをイネーブルして、プロセッサ上での第2プログラムブロックを実行するように構成されている。この例外ハンドラもハードウェア、ソフトウェアまたはこれらの組み合わせとして構成することが可能である。
有利にはこの例外ハンドラもデータ処理装置も共に上記のプロセッサの一部とするかまたはこのプロセッサに直接接続されるハードウェアコンポーネントによって構成される。
上記の例外ハンドラは、例えば、上記のプロセッサとメモリのデータセグメントとの間の論理的なリンクをディスエーブルおよびイネーブルするように構成することが可能である。これは、上で方法に基づいて説明したとおりである。
ここで開示した制御装置の別の様相によれば、第1プログラムブロックは、第2プログラムブロックとは異なる安全レベルを有する。殊にこれらのプログラムブロックは、ISO26262規格にしたがって構成される。これらのプログラムブロックはさらに、レブルASIL A〜DまたはQMにしたがって分類される。第1および第2プログラムブロックは、分類が異なる。
上記のメモリには、同じ安全レベルの複数のプログラムブロックを設けることができる。これは、方法に基づいて上述した通りである。さらに上記のメモリに格納される第1および/または第2プログラムブロックには、関連する呼び出し側のプログラムブロックとは異なる安全レベルに属する複数のプログラムブロックの複数の呼び出しが含まれ得る。
上記のメモリ保護装置は、メモリ保護ユニット(MPU memory protection unit)と称することも可能である。このメモリ保護装置は、MMU(Memory Management Unit)とも称されるメモリ管理ユニットの一部とすることが可能である。例えば、ここではメモリ保護レジスタが設けられており、このレジスタには、上記のメモリの複数のセグメントないしはデータセグメントの境界を定める複数のアドレスが格納されている。このためには、例えば出口アドレスおよびオフセットを格納することができる。上記のメモリ保護レジスタは、メモリ保護装置に接続されているかこのメモリ保護得装置の一部である。これによってメモリ保護レジスタは、実行ないしはアクセスについて互いに分かれている複数のセグメントを定め、これらを跨ぐような呼び出しまたはアクセス時には例外処理がトリガされる。この例外により、アクティブなセグメントの変更が、すなわちイネーブルされるセグメントが変更されるのである。それゆえ上記の例外より、ディスエーブルされた複数のセグメントも変更されるのである。上記のメモリ保護レジスタに格納されるデータは、上記の複数のプログラムブロックを形成する枠内で実行されるリンカによって定められる。このリンカないしはこのリンカを動作させる制御情報は、上記のセグメントを定め、これによって本発明の実質的な部分を実現する。上記のメモリ保護レジスタは、複数の固有の保護モード用に1つまたは複数のアドレス領域を有し得る。保護モードには、リードオンリイネーブル、ライトオンリイネーブル、およびアクセスディスエーブルが含まれる。上記のプログラムブロックが格納されるセグメントを定めるため、上記のデータセグメント用のレジストとは異なる下位レジスタを使用することができ、この下位レジスタは上記のメモリ保護レジスタに属する。さらに、上記の複数の保護モードが格納されている下位レジスタを設けることができる。例えば、これらの保護モードは、データおよびプログラムブロックに対して別々に格納することが可能である。
プログラムブロックとは、論理的に関連するコードのことであるが、このコードは、ただ1つの順序で上記のメモリに格納されている必要はない。むしろプログラムブロックを実行するため、ただ1つのプログラムブロックとの論理的な関係を表すメモリ管理ユニットが提供されるのであれば、この1つのプログラムブロックは、物理的に、上記のメモリの異なる複数の部分セグメントに格納することができる。
上記のメモリないしはデータメモリは、一回だけ書き込み可能なメモリとするかまたは複数回書き込み可能メモリとすることが可能である。殊に上記のメモリは、リードオンリメモリとすることが可能である。このような1つまたは複数のメモリは、例えばハードウェアメモリであり、有利に少なくとも一部を上記のプロセッサに組み込むことができる。このプロセッサは、例えば、インフィニオン社のAurixファミリのマイクロコントローラとするかまたはフリースケール社のMPC57xxファミリのマイクロコントローラすることが可能である。
図面の詳細な説明
図1に示したメモリは、3つのセグメント10,12および14に分割されている。これらのセグメントには、プログラムブロック20,22,22’,24が格納されている。各セグメント10〜14にはそれぞれ、特定の分類を有するプログラムブロックが格納されている。
図1に示したメモリは、3つのセグメント10,12および14に分割されている。これらのセグメントには、プログラムブロック20,22,22’,24が格納されている。各セグメント10〜14にはそれぞれ、特定の分類を有するプログラムブロックが格納されている。
例えば、セグメント10のすべてのプログラムブロック、すなわちプログラムブロック20が第1安全レベルに対応付けられているのに対し、セグメント12のプログラムブロック22,22’は別の安全レベルに対応付けられており、セグメント14のプログラムブロック24それ自体は、プログラムブロック20,22,22’とは異なるさらに別の安全レベルに対応付けられている。まず最初にプログラムブロック20が実行される。これは、第1プログラムブロックないしは呼び出し側のプログラムブロックと称することできる。プログラムブロック20内には呼び出し30があり、この呼び出しにより、セグメント12のプログラムブロック22が呼び出される。呼び出し30は、例えば関数呼び出しであり、プログラムブロック22中にこの関数が実現されている。呼び出し30により、セグメント10とは異なるセグメント12へのアクセスが行われる。
この呼び出しにより、(図2に詳しく示した)メモリ保護装置によって例外がトリガされる。このメモリ保護装置は、図1に示したメモリを監視し、これにより、目下実行されているプログラム(この具体的なケースではプログラムブロック20)が実行されているセグメントとは異なるセグメントへのアクセスが行われる場合、セグメントを跨いだアクセスが検出され、また場合によって例外がトリガされる。
(図2に詳しく示した)例外ハンドラは、この例外を検出して、第1セグメント10をディスエーブルする。さらにこの例外ハンドラは有利には上記のディスエーブルと共にまたはその後に、セグメント12のアクセスをイネーブルにし、殊に(図2に詳しく示した)プロセッサによる実行を可能にする。
プログラムブロック22のあるセグメント12はイネーブルされているため、これが実行される。したがってプログラムブロック22は、第2プログラムブロックと、ないしは、呼び出された側のプログラムブロックと称することができる。
第2プログラムブロック22の実行の終わりにはリターンジャンプ32があり、このリターンジャンプも呼び出しとみなすことができる。呼び出し32は再度、第1プログラムブロック20を呼び出す。この状況では第2プログラムブロック22が呼び出し側のプログラムブロックであり、プログラムブロック20が、呼び出される側のプログラムブロックである。メモリ保護装置は、セグメントを跨ぐこの呼び出しを検出し、例外をトリガし、これによって例外ハンドラは、そこに記憶されているプログラムブロックのセグメント12の実行ないしは呼び出しをディスエーブルし、セグメント10およびそこに記憶されているプログラムブロック20の実行ないしはアクセスをイネーブルする。これに続いて、リターンジャンプ命令として機能する、呼び出し32のリターンアドレスにしたがい、プロセッサにより、プログラムブロック20が引き続いて実行される。
矢印40,42はプログラムブロック20および22の流れを、しかもその順次の実行を説明している。矢印40が示しているのは、呼び出し30によって実行がプログラムブロック22に移行することである。矢印42が示しているのは、リターンジャンプ命令32の後、プログラムブロック20が続いて実行されること、すなわち、プログラムブロック20内の、呼び出し30の後に続くコードで実行されることである。矢印40,42が示しているのは、1つのセグメントのプログラムブロックから、別の1つのセグメントのプログラムブロックにどのように切り換えが行われるかである。矢印40は、メインプログラムによるサブプログラムの呼び出しを示しており、ここでこのメインプログラムはプログラムブロック20であり、またサブプログラムはプログラムブロック22である。
別のオプションのコンポーネントないしは方法ステップは、破線で示されている。プログラムブロック20の呼び出し30’は、プログラムブロック20内の別の呼び出しである。これは、(図示しない)別の複数のプログラムブロックを呼び出すことができる。
さらにここに示されているのは、サブプログラムとしてのプログラムブロック22が、別のセグメント14の別のコードブロック24を呼び出す別のサブプログラム32’を有し得ることである。矢印40’および42’は、実行すべきプログラムブロックの切り換えを示し、ひいては実行のためにイネーブルされるセグメントの切り換えを示す。矢印40’によって示されるのは、セグメント12のイネーブルがセグメント14に換わることであり、これに対し、セグメント12がディスエーブルされ、セグメント14のディスエーブルが終了することである。矢印42’が示しているのは、プログラムブロック24を実行した後、プログラムブロック22の呼び出し32’にリターンジャンプすることである。したがって上記の切り換えは、メモリの2つ以上のセグメントを越えて実行できることができるであり、この切り換えは本発明にしたがって行われる。
図1の例に示した第1の切り換えは矢印40によって示されており、第2の切り換えは矢印40’によって示されており、第3の切り換えは矢印42’によって示されており、第4の切り換えは矢印42によって示されている。矢印42,42’は、リターンジャンプ命令によって行われ、該当するプログラムブロックが終わりまで実行された場合、これらのリターンジャンプ命令は、プログラムブロックの一部とすることができるか、または実行制御部によって実行することができる。矢印40,40’は、セグメントを跨ぐプログラムブロックの呼び出しによるものであり、プログラムブロックの(開始の)呼び出しによって発生する切り換えを表し、すなわちプロシージャ呼び出しまたは関数呼び出しによる切り換えを表す。
例えばプログラムブロック22’は、同じ1つのセグメントに複数のプログラムブロックが設けられること、すなわちプログラムブロック22および22’が設けられることを示している。プログラムブロック22が、プログラムブロック22’を呼び出す場合(図示せず)には上記のメモリ保護装置によって例外はトリガされない。なぜならばこの呼び出しは、セグメントを跨ぐ呼び出しではないからである。
図2には、ここで開示している制御装置100の一実施形態がシンボリックに示されている。制御装置100にはデータ処理装置120が含まれている。データ処理装置120には、例えば図1のメモリのように構成することが可能なメモリ130が含まれている。メモリ130は、セグメント110,112および114に分割されており、これらのセグメントにはそれぞれ異なる安全レベルを対応付けることができる。例えば、これらのセグメント内の複数のプログラムブロックには、セグメント毎に同じ1つの安全レベルを付与することができ、セグメント110〜114が異なれば、これらのプログラムブロックの安全レベルが異なる。
データ処理装置120にはさらに上記のメモリにアクセスするプロセッサ140が含まれている。このアクセスをシンボリックに表す論理的なリンクは、リンク170,172(点線)によって表されている。
制御装置100のデータ処理装置120にはさらに、メモリ保護装置150が含まれている。これにはメモリ保護レジスタ152が備え付けられており、このメモリ保護レジスタは、メモリ130の上記の複数のセグメントを設定し、殊にこれらの境界を設定する。
メモリ保護レジスタ152は、メモリ保護装置150の外部に、有利には上記のデータ処理装置内にレジスタとして設けることもでき、このレジスタは、メモリ保護装置150に間接または直接に接続されている。
データ処理装置120にはさらに例外ハンドラ160が含まれている。機能が異なることにより、コンポーネント140,150,160は個々のブロックとして示されているが、これらは少なくとも部分的に互いに統合することが可能である。殊にメモリ保護装置および/または例外ハンドラはプロセッサ140に組み込むことができる。このことは、メモリ130にも当てはまる。択一的にはメモリ130をプロセッサの外部に設けることができる。
プロセッサ140は、メモリ130に読み出しおよび書き込みアクセスを行う。このアクセスは、プロセッサ130同様に組み込むことが可能なメモリ管理ユニット154を介して行われる。これによってメモリ管理ユニット154により、対応するアクセスによって使用される論理的なリンク170,172が実現される。ここからはプロセッサがメモリ130の異なる2つのセグメント110,112を170,172に示したようにアクセスすることもわかる。論理なリンク170が存在する場合、上記のメモリ保護装置により、ないしは、上記のメモリ保護装置150が設けられているメモリ管理ユニット154により、プロセッサ140による第2のセグメント112へのアクセスがディスエーブルされるため、論理的なリンク172が切断される。
図1に基づいて説明したように、例えば、図1において参照符号30によって示したような呼び出しによって、第2のセグメント112がイネーブルされ、かつ、第1のセグメント110がディスエーブルされると、論理的なリンク170が非アクティブ化されるかまたディスエーブルされ、かつ、論理的なリンク172がイネーブルされる。このディスエーブルおよびイネーブルは、メモリ保護装置150ないしはメモリ管理ユニット154によって実行される。
セグメント112に記憶されているプログラムブロックの実行が終了すると、リターンジャンプが実行される。これについては図1の矢印42を参照されたい。これによって論理的なリンク172がディスエーブルされ、論理的なリンク170がイネーブルされる。この場合にセグメント110に記憶されているプログラムブロックが引き続いて実行される。
上記のディスエーブルおよびイネーブルは、メモリ保護装置150によって実行される。このメモリ保護装置は、メモリ保護レジスタ152を用いて、メモリ130の複数のセグメント110〜114のうちのいずれのアクセスが現在イネーブルされているか、またいずれのアクセスがイネーブルされていないかを識別する。
第1のセグメント110におけるプログラムブロックが、第2のセグメント112におけるプログラムブロックにアクセスする場合、このことはメモリ保護装置により、殊にメモリ保護レジスタ152と、そこに記憶されているそのアドレスデータに基づいて識別され、例外がトリガされる。この例外は、例外ハンドラ160に転送される。
これにより、例外ハンドラ160は、第1の論理的なリンク170をディスエーブルしかつ第2の論理的なリンク172をイネーブルすることにより、第1のセグメントをディスエーブルにする。このイネーブルおよびディスエーブルは、例外ハンドラ160の対応する複数の信号によって行われ、これらの信号はメモリ管理ユニット154に、また殊にメモリ保護装置150に転送される。
10,12,14 メモリ130のセグメント、 20,22,22’,24 プログラムブロック、 30,30’,32,32’ 例えばプログラムブロックの呼び出し(このプログラムブロックは、呼び出される側のプログラムブロックとは異なるセグメント内にある)、 40,40’,42,42’ 呼び出しないしはリターンジャンプ命令、 100 制御装置、 120 データ処理装置、 130 メモリ、 110,112,114 メモリ130のセグメント、 140 プロセッサ、 150 メモリ保護装置、 152 メモリ保護レジスタ、 154 メモリ管理ユニット、 160 例外ハンドラ、 170,172 メモリ管理ユニットないしはメモリ保護装置によってディスエーブルまたはイネーブルされる、プロセッサとメモリとの間の論理的なリンク
Claims (10)
- 有利には自動車における安全関連システムの複数の機能を実行するように構成されている、リンクされた複数のプログラムブロック(20〜24)の別々の実行を制御するための方法において、
当該方法は、
前記複数のプログラムブロックのうちの第1プログラムブロック(20)をプロセッサ(140)上で実行するステップを有しており、
当該第1プログラムブロック(20)は、前記プロセッサ(140)がアクセスするメモリ(130)の第1セグメント(10,110)内にあり、
前記第1プログラムブロック(20)の実行中に、前記複数のプログラムブロックのうちの第2プログラムブロック(22)が呼び出され、ただし当該第2プログラムブロック(22)は、前記メモリ(130)の前記第1セグメント(10,110)とは異なる第2セグメント(12,112)内にあり、
前記方法はさらに、
メモリ保護装置(150)によって前記メモリ(130)へのアクセスを監視するステップを有しており、
前記アクセスの監視時に前記メモリ保護装置(150)により、前記複数のプログラムブロックのうちの前記第1プログラムブロック(20)の実行中に、前記複数のプログラムブロックのうちの前記第2プログラムブロック(22)が呼び出されることが検出された場合、前記メモリ保護装置(150)によって例外をトリガし、
前記例外が発生した場合、例外ハンドラ(160)により、前記第1セグメント(10,110)をディスエーブルし、かつ、前記第2セグメント(12,112)の実行をイネーブルする、
ことを特徴とする方法。 - 請求項1に記載の方法において、
前記第2セグメント(12,112)をイネーブルした後、前記第2プログラムブロック(22)を実行し、当該第2プログラムブロック(22)の実行終了時にリターンジャンプ(42)を行い、当該リターンジャンプ(42)により、前記第2セグメント(12,112)が前記例外ハンドラ(160)によってディスエーブルされ、前記第1セグメント(10,11)は前記例外ハンドラ(160)によって実行がイネーブルされ、
殊に前記リターンジャンプ(42)によって別の例外がトリガされ、前記例外ハンドラ(160)は、当該別の例外が発生した際には前記第2セグメント(12,112)をディスエーブルし、かつ、前記第1セグメント(10,110)の実行をイネーブルする、
ことを特徴とする方法。 - 請求項1または2に記載の方法において、
前記第1または第2プログラムブロック(20,22)を実行中に、当該第1および第2プログラムブロック(20,22)の前記両セグメント(10,110,12,112)とは異なる、前記メモリ(130)のあるセグメント(14)内にある少なくとも1つの別のプログラムブロック(24)を呼び出し、
前記別のプログラムブロック(24)が呼び出された場合に前記メモリ保護装置(150)は例外をトリガし、
前記例外ハンドラ(160)は、前記例外が発生した際には、前記呼び出し側のプログラムブロック(22)内にある、前記メモリ(30)のセグメント(12)をディスエーブルし、前記呼び出された側のプログラムブロック(24)内にある、前記メモリ(130)の前記セグメント(14,114)をイネーブルし、
前記イネーブルの後、前記呼び出された側のプログラムブロック(24)を前記プロセッサ(130)によって実行する、
ことを特徴とする方法。 - 請求項1から3までのいずれか1項に記載の方法において、
前記第1プログラムブロック(20)が実行される間中、前記第2セグメント(12,112)へのアクセスを連続的にディスエーブルし、
前記第2プログラムブロック(22)が実行される間中、前記第1セグメント(10,110)へのアクセスを連続的にディスエーブルする、
ことを特徴とする方法。 - 請求項1から4までのいずれか1項に記載の方法において、
前記第1プログラムブロックによって記憶されかつ殊に読み出しも行われるデータ用に対応する第1データセグメントを前記第1プログラムブロックは有し、
前記第2プログラムブロックによって記憶されかつ殊に読み出しも行われるデータ用に対応する、前記第1データセグメントとは異なる第2データセグメントを前記第2プログラムブロックは有し、
前記第1プログラムブロックによる前記第2プログラムブロックの呼び出しによって例外がトリガされる場合、前記例外ハンドラにより、前記第1データセグメントがディスエーブルされ、
前記第2プログラムブロックによる前記第1プログラムブロックの呼び出しによって例外がトリガされる場合、前記例外ハンドラにより、前記第2データセグメントがディスエーブルされる、
ことを特徴とする方法。 - 請求項1から5までのいずれか1項に記載の方法において、
前記第1プログラムブロック(20)には、前記第2プログラムブロック(22)とは異なる安全レベルが対応付けられており、殊に前記プログラムブロック(20〜24)は、ISO26262規格にしたがって構成されており、レベル分けASIL A〜DまたはQMにしたがって分類されており、
前記第1および第2プログラムブロック(20,24)は分類が異なる、
ことを特徴とする方法。 - 請求項1から6までのいずれか1項に記載の方法において、
前記例外は、割り込みまたはエクセプションであり、殊にハードウェア割り込みまたはソフトウェア割り込みであり、
前記割り込みは、前記プロセッサの内部または外部でトリガされ、および/または、処理され、
当該割り込みは、マスク可またはマスク不可であり、または
当該割り込みは、トラップ例外または障害例外に対応する、
ことを特徴とする方法。 - 請求項1から7までのいずれか1項に記載の方法において、
プログラムブロック(20)が、別の安全レベルを有するプログラムブロック(22)を、殊により高い安全レベルを有するプログラムブロック(22)を呼び出す場合にトリガされる例外は、プログラムブロック(20)が、別の安全レベルを有するプログラムブロック(22)を、殊により低い安全レベルを有するプログラムブロック(22)を呼び出す場合にトリガされる例外とは異なる優先度で、殊により高い優先度で前記例外ハンドラ(160)によって処理される、
ことを特徴とする方法。 - メモリ(130)と、プロセッサ(140)と、メモリ保護装置(150)とを含むデータ処理装置(120)を有する、殊に車両用の制御装置(100)において、
前記メモリ(130)は、前記プロセッサ(140)に接続されており、
第1および少なくとも1つの第2プログラムブロック(20,22)は、前記メモリ(130)の第1および第2の、互いに異なるセグメント(10,110;12,112)に配置されており、
前記第1および少なくとも1つの第2プログラムブロック(20,22)は互いにリンクされており、さらに、
前記メモリ保護装置(150)は、プログラミングされているかまたは前記メモリ(130)との接続を有するように構成されており、
前記第1セグメント(110)に配置されている第1プログラムブロック(20)が、前記第2セグメント(112)に配置されている第2プログラムブロック(22)を呼び出す場合に、前記プログラミングまたは接続は、例外をトリガするように前記メモリ保護装置(150)を促し、
前記データ処理装置(120)はさらに、前記例外を受け取るために前記メモリ保護装置(150)に接続されている例外ハンドラ(160)を有しており、
前記例外ハンドラ(160)は、前記メモリ保護装置(150)に接続されており、かつ、前記例外を受け取った際には、前記メモリ(130)の前記第1セグメント(10,110)と、前記プロセッサ(140)との間の論理的なリンク(170)がディスエーブルされ、かつ、前記メモリ(130)の前記第2セグメント(12,112)と、前記プロセッサ(140)との間の論理的なリンク(172)がイネーブルされて、前記第2プログラムブロック(22)の前記プロセッサ(140)上での実行がイネーブルされるように構成されている、
ことを特徴とする制御装置(100)。 - 請求項9に記載の制御装置(100)において、
前記第1プログラムブロック(20)は、前記第2プログラムブロック(22)とは異なる安全レベルを有しており、
殊に前記プログラムブロック(22〜24)は、ISO26262規格にしたがって構成されており、かつ、レベルASIL A〜DまたはQMにしたがって分類されており、
前記第1および第2プログラムブロック(20;22)は分類が異なる、
ことを特徴とする制御装置(100)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102012218363.9 | 2012-10-09 | ||
DE102012218363.9A DE102012218363A1 (de) | 2012-10-09 | 2012-10-09 | Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät |
PCT/EP2013/070696 WO2014056794A1 (de) | 2012-10-09 | 2013-10-04 | Verfahren zur steuerung eines getrennten ablaufs von verknüpften programmblöcken und steuergerät |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015531521A true JP2015531521A (ja) | 2015-11-02 |
Family
ID=49326655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015536071A Pending JP2015531521A (ja) | 2012-10-09 | 2013-10-04 | リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150268974A1 (ja) |
EP (1) | EP2907072B1 (ja) |
JP (1) | JP2015531521A (ja) |
CN (1) | CN104685509B (ja) |
DE (1) | DE102012218363A1 (ja) |
WO (1) | WO2014056794A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215725A (ja) * | 2018-06-13 | 2019-12-19 | 株式会社デンソー | 電子制御装置及びソフトウエア生成方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104732139A (zh) * | 2015-02-04 | 2015-06-24 | 深圳市中兴移动通信有限公司 | 一种内存监控方法及终端 |
CN108025685B (zh) * | 2015-09-30 | 2020-12-01 | 日立汽车***株式会社 | 车载控制装置 |
IT201700050153A1 (it) * | 2017-05-09 | 2018-11-09 | St Microelectronics Srl | Modulo hardware di sicurezza, relativo sistema di elaborazione, circuito integrato e dispositivo |
EP3470985A1 (en) * | 2017-10-13 | 2019-04-17 | CODESYS Holding GmbH | Method and system for modifying an industrial control program |
US11070621B1 (en) * | 2020-07-21 | 2021-07-20 | Cisco Technology, Inc. | Reuse of execution environments while guaranteeing isolation in serverless computing |
CN114912138A (zh) * | 2020-12-28 | 2022-08-16 | M·伦佩尔 | 使用硬件安全等级的安全计算的体系结构、***及其方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5027317A (en) * | 1989-03-17 | 1991-06-25 | Allen-Bradley Company, Inc. | Method and circuit for limiting access to a RAM program memory |
JPH06149593A (ja) * | 1992-11-10 | 1994-05-27 | Matsushita Electric Ind Co Ltd | マルチタスク実行装置 |
JP2004005679A (ja) * | 2002-05-29 | 2004-01-08 | Samsung Electronics Co Ltd | コンピュータシステム、メモリ構造、および、プログラムを実行する方法 |
JP2006004280A (ja) * | 2004-06-18 | 2006-01-05 | Toshiba Kyaria Kk | マイクロコンピュータおよび電気機器 |
JP2006018705A (ja) * | 2004-07-05 | 2006-01-19 | Fujitsu Ltd | メモリアクセストレースシステムおよびメモリアクセストレース方法 |
JP2006092495A (ja) * | 2004-09-27 | 2006-04-06 | Toshiba Kyaria Kk | マイクロコンピュータのデータ記憶方法 |
JP2009025907A (ja) * | 2007-07-17 | 2009-02-05 | Toshiba Corp | 半導体集積回路装置及びその信号処理方法 |
JP2009093344A (ja) * | 2007-10-05 | 2009-04-30 | Denso Corp | マイクロコンピュータ、その使用方法、及び電子制御装置 |
US20100125427A1 (en) * | 2008-11-17 | 2010-05-20 | Martin Gaiser | Field Device with Separated Memory Areas |
JP2010267064A (ja) * | 2009-05-14 | 2010-11-25 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム及びコンピュータ・システムの制御方法 |
JP2011146030A (ja) * | 2009-12-15 | 2011-07-28 | Canon Inc | メモリ保護方法および情報処理装置 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6577334B1 (en) * | 1998-02-18 | 2003-06-10 | Kabushikikaisha Equos Research | Vehicle control |
US8290762B2 (en) * | 2001-08-14 | 2012-10-16 | National Instruments Corporation | Graphically configuring program invocation relationships by creating or modifying links among program icons in a configuration diagram |
DE10204345A1 (de) * | 2002-02-01 | 2003-08-14 | Systemonic Ag | Verfahren zur Befehlsbearbeitung |
WO2003085677A1 (fr) * | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
JP4578795B2 (ja) * | 2003-03-26 | 2010-11-10 | 富士通テン株式会社 | 車両制御装置、車両制御方法および車両制御プログラム |
JP2005178626A (ja) * | 2003-12-19 | 2005-07-07 | Toyota Motor Corp | 車両の統合制御システム |
US7418568B2 (en) * | 2005-01-05 | 2008-08-26 | Sap Ag | Memory management technique |
EP1754621B1 (en) * | 2005-08-18 | 2009-10-14 | Honda Research Institute Europe GmbH | Driver assistance system |
US20070174910A1 (en) * | 2005-12-13 | 2007-07-26 | Zachman Frederick J | Computer memory security platform |
CN101346703B (zh) * | 2005-12-21 | 2012-11-21 | Nxp股份有限公司 | 具有可块擦除单元的非易失性存储器 |
US9390031B2 (en) * | 2005-12-30 | 2016-07-12 | Intel Corporation | Page coloring to associate memory pages with programs |
JP4862630B2 (ja) * | 2006-11-27 | 2012-01-25 | 株式会社デンソー | 車間距離制御装置 |
KR100842403B1 (ko) * | 2007-03-08 | 2008-07-01 | 삼성전자주식회사 | 메모리 모듈 및 메모리 모듈 시스템 |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
JP5110356B2 (ja) * | 2007-07-10 | 2012-12-26 | オムロン株式会社 | 検出装置および方法、並びに、プログラム |
DE102007045398A1 (de) * | 2007-09-21 | 2009-04-02 | Continental Teves Ag & Co. Ohg | Integriertes Mikroprozessorsystem für sicherheitskritische Regelungen |
US8037235B2 (en) * | 2008-12-18 | 2011-10-11 | Mosaid Technologies Incorporated | Device and method for transferring data to a non-volatile memory device |
JP5200926B2 (ja) * | 2008-12-26 | 2013-06-05 | トヨタ自動車株式会社 | 運転支援装置 |
KR101559843B1 (ko) * | 2009-03-25 | 2015-10-15 | 삼성전자 주식회사 | 저항체를 이용한 비휘발성 메모리 장치 |
JP4893771B2 (ja) * | 2009-03-30 | 2012-03-07 | アイシン・エィ・ダブリュ株式会社 | 車両操作診断装置、車両操作診断方法及びコンピュータプログラム |
KR101001142B1 (ko) * | 2009-05-15 | 2010-12-17 | 주식회사 하이닉스반도체 | 커맨드 처리회로 및 그를 이용한 상변화 메모리 장치 |
US8650438B2 (en) * | 2009-08-11 | 2014-02-11 | Marvell World Trade Ltd. | Controller for reading data from non-volatile memory |
US8209510B1 (en) * | 2010-01-13 | 2012-06-26 | Juniper Networks, Inc. | Secure pool memory management |
DE102011086530A1 (de) * | 2010-11-19 | 2012-05-24 | Continental Teves Ag & Co. Ohg | Mikroprozessorsystem mit fehlertoleranter Architektur |
DE102011089590A1 (de) * | 2011-01-31 | 2012-08-02 | Continental Automotive Gmbh | Verfahren zur Funktionsüberwachung einer Sicherheitsüberwachung einer Steuereinheit |
JP5977243B2 (ja) * | 2011-09-08 | 2016-08-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 計算機システム、計算機システム制御方法、計算機システム制御プログラム、及び集積回路 |
TWI486765B (zh) * | 2012-06-11 | 2015-06-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
TWI486767B (zh) * | 2012-06-22 | 2015-06-01 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
-
2012
- 2012-10-09 DE DE102012218363.9A patent/DE102012218363A1/de not_active Withdrawn
-
2013
- 2013-10-04 WO PCT/EP2013/070696 patent/WO2014056794A1/de active Application Filing
- 2013-10-04 EP EP13774395.1A patent/EP2907072B1/de active Active
- 2013-10-04 CN CN201380052831.7A patent/CN104685509B/zh active Active
- 2013-10-04 JP JP2015536071A patent/JP2015531521A/ja active Pending
- 2013-10-04 US US14/434,175 patent/US20150268974A1/en not_active Abandoned
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5027317A (en) * | 1989-03-17 | 1991-06-25 | Allen-Bradley Company, Inc. | Method and circuit for limiting access to a RAM program memory |
JPH06149593A (ja) * | 1992-11-10 | 1994-05-27 | Matsushita Electric Ind Co Ltd | マルチタスク実行装置 |
JP2004005679A (ja) * | 2002-05-29 | 2004-01-08 | Samsung Electronics Co Ltd | コンピュータシステム、メモリ構造、および、プログラムを実行する方法 |
JP2006004280A (ja) * | 2004-06-18 | 2006-01-05 | Toshiba Kyaria Kk | マイクロコンピュータおよび電気機器 |
JP2006018705A (ja) * | 2004-07-05 | 2006-01-19 | Fujitsu Ltd | メモリアクセストレースシステムおよびメモリアクセストレース方法 |
JP2006092495A (ja) * | 2004-09-27 | 2006-04-06 | Toshiba Kyaria Kk | マイクロコンピュータのデータ記憶方法 |
JP2009025907A (ja) * | 2007-07-17 | 2009-02-05 | Toshiba Corp | 半導体集積回路装置及びその信号処理方法 |
JP2009093344A (ja) * | 2007-10-05 | 2009-04-30 | Denso Corp | マイクロコンピュータ、その使用方法、及び電子制御装置 |
US20100125427A1 (en) * | 2008-11-17 | 2010-05-20 | Martin Gaiser | Field Device with Separated Memory Areas |
JP2010267064A (ja) * | 2009-05-14 | 2010-11-25 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム及びコンピュータ・システムの制御方法 |
JP2011146030A (ja) * | 2009-12-15 | 2011-07-28 | Canon Inc | メモリ保護方法および情報処理装置 |
Non-Patent Citations (1)
Title |
---|
"クルマの電子安全始まる ISO 26262を越えて", 日経エレクトロニクス, vol. 第1047号, JPN6016015425, 10 January 2011 (2011-01-10), JP, pages 46 - 57, ISSN: 0003304227 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215725A (ja) * | 2018-06-13 | 2019-12-19 | 株式会社デンソー | 電子制御装置及びソフトウエア生成方法 |
JP7172155B2 (ja) | 2018-06-13 | 2022-11-16 | 株式会社デンソー | 電子制御装置及びソフトウエア生成方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2907072B1 (de) | 2017-05-10 |
WO2014056794A1 (de) | 2014-04-17 |
DE102012218363A1 (de) | 2014-04-10 |
EP2907072A1 (de) | 2015-08-19 |
CN104685509A (zh) | 2015-06-03 |
CN104685509B (zh) | 2018-03-13 |
US20150268974A1 (en) | 2015-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015531521A (ja) | リンクされた複数のプログラムブロックの別々の実行を制御するための方法および制御装置 | |
JP6077728B2 (ja) | 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法 | |
Nunes et al. | {APEX}: A verified architecture for proofs of execution on remote devices under full software compromise | |
US8234476B2 (en) | Information processing apparatus and method of updating stack pointer | |
CN104866762B (zh) | 安全管理程序功能 | |
JP2009524140A (ja) | 領域保護装置、命令セット、及びメモリ領域を保護する方法 | |
CN108351840B (zh) | 车辆控制装置 | |
TWI678615B (zh) | 在資料處理裝置中進行除錯 | |
JP2009541636A (ja) | 内燃機関のエンジン制御部の機能を監視するための方法および装置 | |
JP7147947B2 (ja) | 電子制御装置及びプログラム | |
JP2013143095A (ja) | 電子制御装置、メモリ検査方法 | |
JPH08503802A (ja) | マイクロコンピュータ | |
JP2015035121A (ja) | 半導体集積回路装置 | |
JP2019049928A (ja) | 電子制御装置及び電子制御装置の制御方法 | |
JP2020159344A (ja) | 制御装置および制御方法 | |
JP5942778B2 (ja) | 情報処理装置 | |
JP6229637B2 (ja) | 車載制御装置 | |
US9284908B2 (en) | Method for performing a number of injections | |
JP2023510122A (ja) | インタフェースを備える装置およびインタフェースを備える装置の動作方法 | |
JP2009080566A (ja) | 車両制御用プログラムおよびプログラム生成方法、プログラム生成装置、及び自動車用制御装置 | |
Gligor | Analysis of the Hardware Verification of the Honeywell SCOMP | |
JP2017107394A (ja) | 車両用制御装置 | |
Goebel et al. | Performance and Freedom From Interference-a contradiction in embedded automotive multi-core applications? | |
Kim et al. | Secure Boot Implementation for Hard Real-Time Powertrain System | |
JP2023009818A (ja) | 車両用電子制御装置及び車両用電子制御装置による制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160425 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160704 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161017 |