JP4893427B2 - マイクロコンピュータシステム - Google Patents
マイクロコンピュータシステム Download PDFInfo
- Publication number
- JP4893427B2 JP4893427B2 JP2007096634A JP2007096634A JP4893427B2 JP 4893427 B2 JP4893427 B2 JP 4893427B2 JP 2007096634 A JP2007096634 A JP 2007096634A JP 2007096634 A JP2007096634 A JP 2007096634A JP 4893427 B2 JP4893427 B2 JP 4893427B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- cpu
- runaway
- address register
- area
- 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.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0715—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Description
また、特許文献1には、命令コードの一部に判定用のデータを埋め込むようにして、CPUがフェッチした命令が現在実行すべきタスクの命令か否かを識別する技術が開示されている。
本発明は上記事情に鑑みてなされたものであり、その目的は、命令コードの一部を使用することなく、タスクの暴走を迅速に検知することができるマイクロコンピュータシステムを提供することにある。
加えて、CPUは、最重要タスクの各実行周期毎に、当該タスクで管理する監視カウンタの値を「1」ずつ変化させ、最重要タスク以外のタスクにおいては、一定の処理手順毎に各タスクが共通にアクセス可能な共有データ領域に監視カウンタのクリア要求フラグをセットする。そして、最重要タスクでは、共有データ領域にクリア要求フラグがセットされたことを確認すると監視カウンタの値を初期値にクリアし、監視カウンタの値が予め設定された限界値を超えた場合に暴走を検知する。
即ち、上記のように暴走を検知する方式は「ウォッチドッグタイマ」に類似したものであるが、本発明では、CPUにより複数のタスクが時分割並行的に実行されることを前提としているので、最重要タスクとそれ以外のタスクとの処理を組み合わせることで、CPUが最重要タスクにおいて、それ以外のタスクによる挙動が正常かどうかを監視することができる。
また、一般的なウォッチドッグタイマの場合、そのタイムアップ時間は、プログラムによるクリア間隔に対して長めに設定されることが多いので冗長性が高く、暴走が検知させるまでに時間がかかってしまう。これに対して、本発明の方式によれば、監視カウンタ値の変更は最重要タスクにおいて行なわれると共に、そのカウンタ値の変化もCPUが最重要タスクを実行することで監視するので、その他のタスクにおいてクリア要求がセットされなかった場合に、暴走を極めて短時間で検出することができる。
以下、本発明をワンチップマイクロコンピュータに適用した場合の第1実施例について図1乃至図5を参照して説明する。図1は、マイクロコンピュータの構成を本発明の要旨に係る部分について示す機能ブロック図である。マイコン(マイクロコンピュータシステム)1は、CPU2,内蔵メモリ3,暴走検知部4などから構成されており、これらは、アドレスバス5,データバス6を介して互いに接続されている。
1:出力アドレスがタスクS領域内
2:ライトアクセス
3:CPU2より与えられるタスク情報がタスクX
の3条件が同時に成立した場合であり、マイコン1の動作状態が正常であれば成立しない条件である。
1:出力アドレスがタスクS領域外
2:命令フェッチサイクル
3:CPU2より与えられるタスク情報がタスクS
の3条件が同時に成立した場合であり、やはり、マイコン1の動作状態が正常であれば成立しない条件である。
そして、暴走検知部4は、タスク情報信号がアクティブである場合に、領域判定部13による判定結果がタスクSの実行領域外であることを示すと暴走を検知するので、タスクSのアドレスが何らかの理由により誤って出力されている場合に、暴走を確実に検知することができる。
図6は、本発明をマルチCPUシステムに適用した場合の第2実施例を示すものである。第2実施例のマルチCPUシステム(マイクロコンピュータシステム)31では、複数のCPU32(0,1,・・・,n)を備えており、それらによりメモリ33に記憶されている複数のタスクプログラムを並列的に実行可能となっている。
以上のように第2実施例によれば、複数のCPU32を備えて構成されるマルチCPUシステム31についても、本発明を同様に適用することができる。
図7乃至図10は本発明の第3実施例を示すものであり、第1実施例と異なる部分のみ説明する。第1実施例では、マイコン1の暴走検知部4が、タスクSのプログラム領域について領域判定を行うことで暴走を検知したが、第3実施例では、タスクSのデータ領域についても同様の領域判定に基づく暴走検知を行う。
図8には、アドレスマップを示す。但し、第1実施例の図5に示すアドレスマップとは領域設定が異なっている。第3実施例では、0x2E00〜0x2FFFがタスクSのデータ領域に設定されており(領域(1))、0xF000〜0xFFFFがタスクSのプログラム領域に設定されている(領域(2))。
従って、データ領域及びプログラム領域の上限は、ユーザプログラムによって設定する必要はなく、データ領域の下限は、0x2C00〜0x2FF0の範囲でのみユーザプログラムによる設定が可能となっている。また、プログラム領域の下限は、0xF000〜0xFFF0の範囲でのみユーザプログラムによる設定が可能となっている。
1:出力アドレスがタスクSのデータ領域内
2:ライトアクセス
3:(CPU2に替わる)CPU2A(図示せず)より与えられる
タスク情報がタスクX
の3条件が同時に成立した場合であり、やはり、マイコン41の動作状態が正常であれば成立しない条件である。また、ANDゲート15については、第1実施例と同様である。
また、CPU2Aは、例外処理においてレジスタ44,12Aにアドレスデータを再設定するので、暴走が発生した場合でも、処理が正常に実行されるように復帰させることができる。
図11は本発明の第4実施例を示すものである。図11(a)は、例えばCPU2Aによる各タスクの実行状態を示す。タスクSと、それ以外のタスク(X等)とは、基本的に(例外処理が発生しない状態では)一定の周期(処理間隔)tで交互に実行されるようになっている。そして、タスクSは、図11(b)に示すように、自身の処理内でウォッチドックタイマ(ソフトウエアタイマ,監視カウンタ)を操作するようになっている。即ち、周期tで自身の処理を実行する毎にタイマ値をインクリメントする。
これに対して、上記の方式によれば、ウォッチドッグタイマ値のインクリメントはCPU2AがタスクSにおいてて行うと共に、タイマ値の変化もCPU2AがタスクSにおいて監視するので、その他のタスクX等においてクリア要求がセットされなかった場合は、暴走を極めて短時間で検出することができる。
第1実施例において、暴走検知部4のANDゲート14,15は、何れか一方のみを備えても良い。
また、ANDゲート14は、「ライトアクセス」に替えて「リードアクセス」の場合に(入力端子にNOTゲートを追加)暴走検知を行なうようにしても良い。
また、第1実施例において、並列に実行するタスクの数は「3」以上であっても良い。
暴走を検知した場合は、CPUに例外処理を実行させるものに限らず、CPU,或いはマイコン全体にハードウエア的にリセットをかけるようにしても良い。
図4(b)において、ステップS14,S15における例外処理内容が同一である場合は、両者を1つにまとめれば良い。
また、第2実施例において、CPU32(0)がバスアクセスを行っていることを示す信号は、例えば、複数のCPU32によるバスアクセスの調停を行うアービタ(信号出力部)が出力するバスアクセス許可(バスグラント)信号であっても良い。
第3実施例の構成に、第1実施例のANDゲート14を追加しても良い。
データ領域,プログラム領域を規定するアドレスレジスタについては、上限側,下限側の何れか一方だけ、データビットを予め固定しても良い。またその場合、少なくともMSB,LSB側の何れかについて、一部のビットだけを固定しても良い。
また、下限レジスタの全ビットを固定しても良い。
2つのタスクを並列的に実行する方式については、特許文献1と同様の構成を採用しても良い。
システムとして最重要タスクのプログラム領域が固定である場合は、上限,下限レジスタによって付与されるアドレス値を、予めハードウエアにより固定的に設定しても良い。
CPUのビットサイズは16ビットに限ることなく、8ビットや32ビット、或いは64ビット以上であっても良い。
Claims (6)
- 複数のタスクを時分割並行的に実施可能であると共に、それらの内1つのタスクは、システム上の重要度が最高に設定されている最重要タスクであり、
CPUが前記最重要タスクを実行している期間に、タスク実行信号を出力する信号出力部と、
前記最重要タスクのプログラムが格納されているメモリ領域の開始アドレス,終了アドレスを書込み設定するための開始アドレスレジスタ並びに終了アドレスレジスタと、
これらのアドレスレジスタの設定値と、前記CPUが実行中のアドレスとを比較することで、前記最重要タスクのプログラム領域であるか否かを判定するプログラム領域判定部と、
前記最重要タスクのデータが格納されているメモリ領域の開始アドレス,終了アドレスを書込み設定するための開始アドレスレジスタ並びに終了アドレスレジスタと、
これらのアドレスレジスタの設定値と、前記CPUが実行中のアドレスとを比較することで、前記最重要タスクのデータ領域であるか否かを判定するデータ領域判定部と、
前記プログラム領域判定部による判定結果と前記タスク実行信号の出力状態とを参照して、双方が不一致である場合に暴走を検知し、また、前記データ領域判定部による判定結果と前記タスク実行信号の出力状態とを参照して、双方が不一致である場合に暴走を検知する暴走検知部とを備え、
前記暴走検知部は、前記タスク実行信号がアクティブである場合に、前記領域判定部による判定結果が前記最重要タスクの領域外であることを示すと暴走を検知し、前記タスク実行信号がインアクティブである場合に、前記領域判定部による判定結果が前記最重要タスクの領域内であることを示すと暴走を検知し、
前記最重要タスクは、前記CPUによる実行間隔が基本的に一定となるように設定されており、
前記CPUは、
前記最重要タスクの各実行周期毎に、当該タスクにおいて管理する監視カウンタの値を「1」ずつ変化させ、
前記最重要タスク以外のタスクにおいては、一定の処理手順毎に、各タスクが共通にアクセス可能な共有データ領域に前記監視カウンタのクリア要求フラグをセットし、
前記最重要タスクにおいて、前記共有データ領域に、前記クリア要求フラグがセットされたことを確認すると、前記監視カウンタの値を初期値にクリアすると共に、前記監視カウンタの値が予め設定された限界値を超えると暴走を検知することを特徴とするマイクロコンピュータシステム。 - 前記開始アドレスレジスタ,前記終了アドレスレジスタの少なくとも何れか一方は、MSB(Most Significant Bit)側より1つ以上のビットが予め固定されていることを特徴とする請求項1記載のマイクロコンピュータシステム。
- 前記開始アドレスレジスタ,前記終了アドレスレジスタの少なくとも何れか一方は、LSB(Least Significant Bit)側より1つ以上のビットも予め固定されていることを特徴とする請求項2記載のマイクロコンピュータシステム。
- 前記開始アドレスレジスタ,前記終了アドレスレジスタの少なくとも何れか一方は、全ビットが固定されていることを特徴とする請求項2または3記載のマイクロコンピュータシステム。
- 前記暴走検知部は、暴走を検知すると前記開始アドレスレジスタ,前記終了アドレスレジスタをリセットすると共に、前記CPUに対して割り込みを発生させ、
前記CPUは、前記暴走の検知に基づく例外処理を実行することを特徴とする請求項1乃至4の何れかに記載のマイクロコンピュータシステム。 - 前記CPUは、前記例外処理において、前記開始アドレスレジスタ,前記終了アドレスレジスタにアドレスデータを再設定することを特徴とする請求項5記載のマイクロコンピュータシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007096634A JP4893427B2 (ja) | 2006-06-30 | 2007-04-02 | マイクロコンピュータシステム |
US11/819,555 US8127183B2 (en) | 2006-06-30 | 2007-06-28 | Microcomputer system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006181510 | 2006-06-30 | ||
JP2006181510 | 2006-06-30 | ||
JP2007096634A JP4893427B2 (ja) | 2006-06-30 | 2007-04-02 | マイクロコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008033890A JP2008033890A (ja) | 2008-02-14 |
JP4893427B2 true JP4893427B2 (ja) | 2012-03-07 |
Family
ID=38950712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007096634A Expired - Fee Related JP4893427B2 (ja) | 2006-06-30 | 2007-04-02 | マイクロコンピュータシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8127183B2 (ja) |
JP (1) | JP4893427B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5053109B2 (ja) * | 2008-01-23 | 2012-10-17 | 株式会社日立製作所 | 制御装置 |
DE102008010233A1 (de) * | 2008-02-21 | 2009-08-27 | Robert Bosch Gmbh | Anordnung zur Überprüfung eines Programmspeichers einer Recheneinheit |
CN102656568B (zh) * | 2009-10-15 | 2015-09-02 | 株式会社雷捷电子科技 | 微计算机及其动作方法 |
JP5987723B2 (ja) * | 2013-02-18 | 2016-09-07 | 株式会社デンソー | 通信用スレーブ |
US11182208B2 (en) * | 2019-06-29 | 2021-11-23 | Intel Corporation | Core-to-core start “offload” instruction(s) |
US11321144B2 (en) | 2019-06-29 | 2022-05-03 | Intel Corporation | Method and apparatus for efficiently managing offload work between processing units |
US11372711B2 (en) | 2019-06-29 | 2022-06-28 | Intel Corporation | Apparatus and method for fault handling of an offload transaction |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
JPS61107456A (ja) * | 1984-10-30 | 1986-05-26 | Toshiba Corp | 割込制御方式 |
JPS63280345A (ja) * | 1987-05-13 | 1988-11-17 | Fujitsu Ltd | プログラム異常検出方法 |
JPH05189255A (ja) * | 1992-01-14 | 1993-07-30 | Matsushita Electric Ind Co Ltd | プログラム暴走検知方法 |
US6304957B1 (en) | 1993-02-26 | 2001-10-16 | Nippondenso Co., Ltd. | Multitask processing unit |
US5889988A (en) * | 1995-01-03 | 1999-03-30 | Intel Corporation | Debugger for debugging tasks in an operating system virtual device driver |
JPH08292901A (ja) | 1995-04-21 | 1996-11-05 | Hitachi Ltd | ウォッチドッグタイマ及びこれを用いたコンピュータシステム |
US5983355A (en) * | 1996-05-20 | 1999-11-09 | National Semiconductor Corporation | Power conservation method and apparatus activated by detecting specific fixed interrupt signals indicative of system inactivity and excluding prefetched signals |
JP3684831B2 (ja) * | 1998-03-31 | 2005-08-17 | セイコーエプソン株式会社 | マイクロコンピュータ、電子機器及びデバッグシステム |
JP2003099293A (ja) * | 2001-09-21 | 2003-04-04 | Denso Corp | 携帯端末およびコンピュータプログラム |
EP1331539B1 (en) * | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
TW591525B (en) * | 2003-03-07 | 2004-06-11 | Novatek Microelectronics Corp | Interrupt-processing system for shortening interrupt latency in microprocessor |
US7013383B2 (en) * | 2003-06-24 | 2006-03-14 | Via-Cyrix, Inc. | Apparatus and method for managing a processor pipeline in response to exceptions |
US7359834B2 (en) * | 2004-08-13 | 2008-04-15 | Sun Microsystems, Inc. | Monitoring system-calls to identify runaway processes within a computer system |
JP4522799B2 (ja) * | 2004-09-08 | 2010-08-11 | ルネサスエレクトロニクス株式会社 | 半導体回路装置及び暴走検出方法 |
JP2007323631A (ja) * | 2006-05-01 | 2007-12-13 | Shinko Electric Ind Co Ltd | Cpu暴走判定回路 |
-
2007
- 2007-04-02 JP JP2007096634A patent/JP4893427B2/ja not_active Expired - Fee Related
- 2007-06-28 US US11/819,555 patent/US8127183B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080016509A1 (en) | 2008-01-17 |
JP2008033890A (ja) | 2008-02-14 |
US8127183B2 (en) | 2012-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4893427B2 (ja) | マイクロコンピュータシステム | |
KR100578437B1 (ko) | 다수의 스레드의 병행 실행을 지원하는 컴퓨터 시스템에서의 인터럽트 처리 메커니즘 | |
JP2007249323A (ja) | マイクロコンピュータ | |
JP2013250980A (ja) | プロセッサ資源および実行保護の方法および装置 | |
JP5703378B2 (ja) | アラインメント制御 | |
JP2009157542A (ja) | 情報処理装置及びそのスタックポインタ更新方法 | |
JP2014063258A (ja) | 半導体集積回路装置及びマイクロコントローラ | |
JP2013161299A (ja) | 情報処理装置、インタフェースアクセス方法 | |
JP2013225208A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5999216B2 (ja) | データ処理装置 | |
JP2018067047A (ja) | 制御装置 | |
US20080010426A1 (en) | Processor system and processing method for operating system program in processor system | |
JP2006221606A (ja) | データプロセッサ | |
Farrall et al. | Hardware and software support for mixed-criticality multicore systems | |
JP4856023B2 (ja) | リアルタイムウォッチ装置及びその方法 | |
US20120265904A1 (en) | Processor system | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP5703505B2 (ja) | バスパーティション構造を備えるコンピュータ | |
JP6645467B2 (ja) | マイクロコンピュータ | |
JP2017208058A (ja) | 情報処理装置 | |
JP4543505B2 (ja) | マイクロコンピュータの制御方法及び異常監視装置 | |
JP4702004B2 (ja) | マイクロコンピュータ | |
JPH01180656A (ja) | メモリ保護装置 | |
JPH0287239A (ja) | マイクロプログラム処理装置 | |
JP3129873B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111031 |
|
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: 20111122 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111205 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4893427 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150106 Year of fee payment: 3 |
|
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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |