JP6813513B2 - プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置 - Google Patents

プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置 Download PDF

Info

Publication number
JP6813513B2
JP6813513B2 JP2017566340A JP2017566340A JP6813513B2 JP 6813513 B2 JP6813513 B2 JP 6813513B2 JP 2017566340 A JP2017566340 A JP 2017566340A JP 2017566340 A JP2017566340 A JP 2017566340A JP 6813513 B2 JP6813513 B2 JP 6813513B2
Authority
JP
Japan
Prior art keywords
address
program counter
counter structure
interruption
request
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
JP2017566340A
Other languages
English (en)
Other versions
JP2018525712A (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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2018525712A publication Critical patent/JP2018525712A/ja
Application granted granted Critical
Publication of JP6813513B2 publication Critical patent/JP6813513B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0715Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、独立請求項の上位概念に記載されている装置又は方法に基づく。本発明の構成要件は、コンピュータプログラムでもある。
プロセッサはしばしば、外部の、いわゆる中断要求(interrupt requests(割り込み要求),IRQ)によって通常のプログラムフローを中断するのを許可し、これによって他の、重要な、場合によっては時間的に重大でもあるタスクが優先的に処理される。ここでは、中断優先度の遵守、及び、中断要求に属する中断ルーチン(Interrupt-Service-Routine(割り込みサービスルーチン),ISR)の処理の成功が重要である。
国際公開第2013136114号(WO2013136114A1)は、発生している割り込みの監視、又は、割り込みコントローラ(ICO)による割り込みの正しい処理の監視を可能にするシステムを記載している。
国際公開第2013136114号
発明の開示
これを背景にして、本願に提示されているアプローチによって、中断要求の際にプロセッサシステムのプログラムカウンタ構造を保護する方法、中断要求の処理を監視する方法、さらに、これらの方法を使用する装置、最後に、独立請求項に記載されている対応するコンピュータプログラムが提示される。従属請求項に記載されている措置によって、独立請求項に記載されている装置の有利な発展形態及び改善が可能である。
特に、安全に関して重大な用途に対しては、中断要求の処理におけるエラーを識別するのは重要である。
中断要求に応答して、プロセッサによって処理されるアドレスで、エラーが存在しているのか否かが識別される。ここで、エラーの無いことが、基準アドレスとの比較によって示されるものとするとよい。なぜなら、中断ルーチンのアドレス、いわゆる割り込みベクトル又は中断ルーチン自体が格納されている記憶場所が既知だからである。
中断要求の際にプロセッサシステムのプログラムカウンタ構造を保護する方法が提示される。このプロセッサシステムは、少なくとも、プログラムカウンタ構造と、中断制御機構と、メモリとを含んでいる。この中断制御機構は、この中断要求に応答して、この中断要求に属するアドレスをプログラムカウンタ構造へ供給するように構成されており、このプログラムカウンタ構造は、メモリインタフェースを介してメモリに対してアドレスを出力するように構成されており、この方法は、
メモリインタフェースからアドレスを読み込むステップと、
比較結果を得るために、中断要求に割り当てられている目標アドレスとこのアドレスとを比較するステップと、
この比較結果を用いて、一致信号を供給するステップと、
を有している。
上述したアドレスは、割り込みベクトル、中断ルーチンの開始アドレス又は中断ルーチン自体も格納されているアドレスであるものとするとよい。前者は、典型的には、割り込みベクトルテーブルの使用の際に必要であり、従って、このアドレスは、割り込みベクトルテーブルの範囲内に位置している。以下では、中断ルーチンのアドレスも、割り込みベクトルのアドレス自体も使用可能な場合であっても、単にアドレスとする。重要なのはそれぞれ、検査のために使用される、メモリに加えられるアドレスである。
このようにして、中断ルーチンの最初の命令を実行する前又は実行時に、既にアドレスが、メモリインタフェースから読み込まれ、比較のステップにおいて比較されるものとするとよい。
伝達のステップにおいて、中断要求の処理の開始が成功したことが、一致信号を用いて伝達されるものとするとよい。これは、プログラムカウンタ構造を保護するために用いられる。なぜなら、中断要求に属する中断ルーチンの正しい開始が検査可能だからである。これはさらに、中断要求の処理の監視にも使用可能である。従って、これは例えば、この中断要求の優先度の遵守の監視のために、又は、中断要求に属する中断ルーチン(割り込みサービスルーチン)の正しい処理の監視の一部としても、使用可能である。
プログラムカウンタ構造は、アドレスに論理的に後続する後続アドレスをメモリインタフェースに供給するように構成されているものとするとよい。読み込みのステップでは、次に、付加的にこの後続アドレスが読み込まれてもよく、又は、この後続アドレスのみが読み込まれてもよい。次に、比較のステップにおいて、この後続アドレスが、目標アドレスに論理的に後続する後続目標アドレスと比較されるものとするとよく、これによって、比較結果が得られる。後続アドレスは、中断要求に全く関連していない情報が格納されているメモリ内の記憶場所を示すことがある。後続目標アドレスが、単に、目標アドレス上でのプログラムカウンタ構造の論理演算の使用によって得られるものとするとよい。従って、後続目標アドレスは、目標アドレスと同じように、常に既知であり、装置内に格納可能である。アドレスに従って、プログラムカウンタ構造によって処理された後続アドレスを検査することによって、プログラムカウンタ構造を、より確実に監視することができる。プログラムカウンタは、この場合に、むしろ、さらに確実に監視されてもよい。なぜなら、後続アドレスの作成のために必要な構造/モジュールも保護されるからである。
目標アドレス又は後続目標アドレスは、監視部によって読み込まれ、検証されるものとするとよい。目標アドレスも、後続目標アドレスも既知である。例えば、目標アドレスは、中断ルーチンのアドレスが格納されている、割り込みベクトルテーブルからのアドレスであるものとするとよい。後続目標アドレスは、例えば、増分によって作成され、また、通常動作において、場合によってはそうでなくとも作成される目標アドレス+1であるものとするとよい。
中断要求の処理を監視する方法は、
プログラムカウンタ構造を保護する上述した方法のステップを実施するステップと、
一致信号を用いて、中断要求の処理を監視するステップと、
を有している。
これは、中断要求の処理の監視の一部としてのプログラムカウンタ構造の監視を可能にする。従って、これは例えば、この中断要求の優先度の遵守の監視のために、又は、中断要求に属する中断ルーチンの正しい処理の監視の一部としても、使用可能である。
この方法は、例えば、ソフトウェアによって又はハードウェアによって又はソフトウェアとハードウェアとの混合形態によって、例えば、制御機器内に実装されているものとするとよい。
さらに、中断要求の際にプロセッサシステムのプログラムカウンタ構造を保護する装置が提示される。このプロセッサシステムは、少なくとも、プログラムカウンタ構造と、中断制御機構と、メモリとを含んでおり、この中断制御機構は、この中断要求に応答して、この中断要求に属するアドレスをプログラムカウンタ構造へ供給するように構成されており、このプログラムカウンタ構造は、メモリインタフェースを介してメモリに対してアドレスを出力するように構成されており、この装置は、
メモリインタフェースからアドレスを読み込むインタフェースと、
比較結果を得るために、中断要求に属する目標アドレスとこのアドレスとを比較する比較機構と、
この比較結果を用いて、一致信号を供給する出力機構と、
を備えていることを特徴とする。
装置とは、ここでは、センサ信号を処理し、これに関連して制御信号及び/又はデータ信号を出力する電気的な機器であると理解されてよい。この装置は、ハードウェアの形式で及び/又はソフトウェアの形式で構成され得るインタフェースを有しているものとするとよい。ハードウェアの形式で構成されている場合には、このインタフェースは例えば、装置の種々の機能を含んでいるいわゆるシステムASICの一部であるものとするとよい。しかし、インタフェースが固有の集積回路であっても、又は、少なくとも部分的に、離散した構成要素から成っていてもよい。ソフトウェアの形式で構成されている場合には、インタフェースは、例えばマイクロコントローラ上に、別のソフトウェアモジュールの隣に設けられているソフトウェアモジュールであるものとするとよい。
さらに、少なくとも、中断制御機構と、プログラムカウンタ構造と、メモリと、本願に提示されたアプローチに対応する、プログラムカウンタ構造を保護する装置とを有しているプロセッサシステムが提示される。この中断制御機構は、中断要求に応答して、この中断要求に属するアドレスをプログラムカウンタ構造へ供給するように構成されており、このプログラムカウンタ構造は、メモリに対するメモリインタフェースへ、アドレスを出力するように構成されており、この装置は、メモリインタフェースからアドレスを読み込むように構成されており、中断要求に割り当てられている目標アドレスとアドレスとを比較するように構成されており、さらに、この比較の比較結果を用いて、一致信号を供給するように構成されている。
プログラムカウンタ構造は、プロセッサコアの一部であるものとするとよく、このプロセッサコアは、プログラムカウンタ構造の他に、電子計算機構及び/又はさらなる別のモジュールを含んでいる。しかし、監視モジュールは、プロセッサ自体に関連しておらず、基本的には、既知のプロセッサアーキテクチャと関連しても使用可能である。後者は例えば、メモリアドレスを単に読み込むことによって行うことができ、この際に、プロセッサが変更される必要はない。
プロセッサシステムは、集積回路として実現されているものとするとよい。この場合に、これは、プログラミング可能な集積回路、いわゆるプログラミング可能なICであるものとするとよい。
プログラムコードを有するコンピュータプログラム製品又はコンピュータプログラムも有利であり、これは、機械可読の担体又は記録媒体、例えば半導体メモリ、ハードディスクストレージ又は光学的なメモリに格納されているものとするとよく、特に、このプログラム製品又はプログラムがコンピュータ又は装置上で実行されるときに、上述した実施形態のうちの1つに従ったこの方法のステップの実施、実装及び/又は駆動制御のために使用される。
本発明の実施例を図示し、以降の説明において詳細に説明する。
本発明の実施例に即した保護装置のブロック回路図。 本発明の実施例に即した保護装置の図。 本発明の実施例に即したプロセッサシステムの図。 本発明の実施例に即したプロセッサシステムの図。 本発明の実施例に即した保護方法のフローチャート。 本発明の実施例に即した中断ルーチンの保護の際のフローチャート。
本発明の有利な実施例の以降の説明では、異なる図面に示され、類似の作用を有する要素には、同一又は類似の参照符号が使用されている。これらの要素の繰り返しの説明は、省略されている。
図1は、本発明の実施例に即した、中断要求106の際にプロセッサシステム104のプログラムカウンタ構造102を保護する装置100のブロック回路図を示している。ここでは、プロセッサシステム104は少なくとも、プログラムカウンタ構造102と、中断制御機構108と、メモリ110とを含んでいる。割り込みコントローラとも称される中断制御機構108は、中断要求106に応答して、一般的に割り込み要求と称される中断要求106に属するアドレス112をプログラムカウンタ構造102へ供給するように構成されている。プログラムカウンタ構造102は、メモリインタフェース114を介してメモリ110に対して、このアドレス112又は後続アドレスを出力するように構成されている。
装置100は、アドレス112又は後続アドレスをメモリインタフェース114から読み込むインタフェース116と、このアドレス112又は後続アドレスを、この中断要求106に割り当てられている目標アドレス120と比較する比較機構118と、出力機構122とを有している。この出力機構122は、比較機構118によって供給された、目標アドレス120と読み込まれたアドレス112又は後続アドレスとの間の比較結果126を用いて、一致信号124を供給するように構成されている。
アドレス112又は後続アドレスを目標アドレス120と比較することによって、プログラムカウンタ構造102が検査されるものとするとよい。なぜなら、アドレス112又は後続アドレスが、プログラムカウンタ構造102の種々のサブシステムによって正しく伝達されている場合には、プログラムカウンタ構造102が規定どおりに機能していることを想定することができるからである。
一般的に、提示された方法は、中断機構を設けるプログラミング可能なIC104の中断操作の監視及び保護にも適している。
図2は、本発明の実施例に対応する、保護装置100の図を示している。ある実施例では、読み込まれたアドレスと、全ての理論的に有効な、中断要求に属する目標アドレス又は後続目標アドレスとの、持続的な並行する比較が実行可能である。
別の実施例では、目標アドレス120と実際に加えられるアドレス112との比較の開始は、事前に中断要求が発生している場合にのみ行われる。対応する比較定数204を選択するために、それと共に、同時に実行される比較の数を低減するために、付加的に同一の信号及び/又は別の信号が使用されるものとするとよい。これは、電流消費に関して有利な実装であり得る。
単に例示的に、図2は後者の実施例を示しており、ここでは、装置100は、目標アドレス120を作成する機構200を有している。この作成機構200内で、目標アドレス120が選択される。これは、中断要求の識別情報202を用いて行われる。これは同様に、マルチプレクサ206を制御する。このために、作成機構200は、比較定数のためのメモリ204を有している。ある実施形態では、メモリ204は固定配線されている。目標アドレス120は、比較機構118に対して供給される。
さらに、装置100は、別のマルチプレクサ208を有している。この別のマルチプレクサ208は、入力信号として、アドレス112、エラー値210を有しており、さらに、制御のためにトリガ信号212を有している。トリガ信号212は、例えば、アドレス112が本当に検査されるべき場合に、プログラムカウンタ構造102によって供給されるものとするとよい。トリガ信号212が別のマルチプレクサ208の入力を解除する場合に、これによって、検査されるべきアドレス112が比較機構118に対して供給される。そうでない場合には、エラー値210が供給され、このエラー値210は比較機構118において、確実に、誤った比較結果を生起させる。即ち、この実施例では、検査されるべきアドレス112が重要であり、さらに中断要求にも適合する場合にのみ、肯定的な比較結果が与えられるものとするとよい。
この際に、比較ロジック118のエネルギー効率の良い実施では、例えば図1に示されたコンセプトの実装のために、識別情報202が使用されるものとするとよい。これは、対応する比較定数204を選択するために、最後に受け取られた中断要求を識別する。この比較定数204は、各中断要求に対する目標アドレス又は後続目標アドレスの理論値を表している。例えば、プログラムカウンタモジュール内の有限状態機械によって作成されたトリガ信号212が、検査を開始させるために使用され得る。エラー値210は、アドレスを表しており、このアドレスは、理論的に可能な目標アドレス又は後続目標アドレスのセットの一部ではなく、例えばゼロである。
図3aは、本発明の実施例に即したプロセッサシステム104の図を示している。このプロセッサシステム104は、実質的に、図1のプロセッサシステムに相当する。ここではプログラムカウンタ102は、プロセッサ300の一部であり、特に、制御機構350の一部である。この制御機構350はプログラムカウンタ102の他に、少なくとも有限オートマン302を有している。
割り込みコントローラとも称される中断制御機構108、メモリ110及び保護装置100は、プロセッサコア300外に配置されている。この実施例では、この装置は、アドレス比較を実行するように構成されている。
外部モジュール308は、中断要求106を中断制御機構108へ供給し、任意選択的に、中断制御機構108から受信確認307と処理信号319も受信するように構成されている。中断制御機構108は、開始信号310とアドレス112とを有限オートマン302に供給し、中断コード312をプロセッサ300から受信するように構成されている。プログラムカウンタ102は、信号を有限オートマン302から受信し、アドレス352をメモリ110及び装置100へ供給するように構成されている。このアドレス352は例えば、割り込みベクトルの意味でのアドレスベクトル又はこれが格納されているアドレスであってもよい。装置100は、このアドレス352を目標アドレスと比較し、この比較に関連して一致信号124を中断要求監視ユニット324へ供給するように構成されている。中断要求監視ユニット324は、一致信号124の他に、中断制御機構108から、中断要求モニタリング信号354及び処理モニタリング信号356を受信するように構成されている。
図3aには、制御機構350を有するプロセッサ300及び制御機構350の一部としてのプログラムカウンタ102の図が示されている。
中断コード312は、同じ性質でなくてもよい処理モニタリング信号356及び処理信号319を生成するために、中断制御機構108によって使用されるものとするとよい。
中断コード312はここでは、例えば中断要求の処理の監視のために中断ルーチンの処理の成功を確認するために使用されるものとするとよい。中断コード312は、ここではハードウェアによって、例えばプログラムカウンタ102によって作成されてもよく、又は、選択的に、ソフトウェアベースで、例えば、中断ルーチンの終端のポートを介した対応するデータの出力を介して作成されてもよい。
外部モジュールに伝達される受信確認307及び処理信号319は、基本的には任意選択的であり、監視ユニットに供給される対応する信号のように同じ性質でなくてもよい。例えば、処理信号319を、中断コード信号312をベースに作成してもよいが、中断コード312が直に使用されてもよい。
比較又は検査に使用可能な、あり得るアドレス、目標アドレス又は後続目標アドレスは、明示されていない。
アドレス比較118は必ずしも、プロセッサの内部信号を頼りにしているのではないので、これは基本的には、既存のプロセッサの監視の拡張のためにも使用可能である。
プログラムカウンタ102がどのように実装されているのかは、記載されたアプローチにとっては重要でない。プログラムカウンタの、監視可能な構造の割り当て分のみが、プログラムカウンタの実装に応じて変えられ得る。従って、以降で、図3bに基づいて示される構成は、単に例示的なものであると理解されたい。
図3bは、本発明の実施例に即した、プロセッサシステム104の単に例示的な図を示している。このプロセッサシステム104は実質的に、図3aのプロセッサシステムに対応している。ここでも、プログラムカウンタ構造102は、プロセッサコア300の一部である。プログラムカウンタ構造102は少なくとも加算器構造304と、マルチプレクサ305と、プログラムカウンタレジスタ306とから成る。
中断制御機構108、メモリ110及び保護装置100は、プロセッサコア300外に配置されている。
中断要求106が要求作成モジュール308から中断制御機構108に送信されると、この中断要求106は、中断制御機構108によって区分けされ、その優先度に対応して処理される。中断のトリガ時には、中断制御機構108は開始信号310を有限オートマン302に送信し、任意選択的に、受信確認307も作成モジュール308に送信する。さらに、中断制御機構108から、アドレスが、有限オートマン302に出力される。この有限オートマン302は、このアドレスを次に、プログラムカウンタレジスタ306に供給する。中断の処理の開始時に、マルチプレクサ305によって、有限オートマン302によって制御されて、アドレス112が選択されて、対応するアドレスがプログラムカウンタレジスタ306内に記入される。これによってプログラムカウンタレジスタ306によって、メモリ110のアドレス352が駆動制御される。メモリ110内のアドレス352には、例えば、割り込みベクトル、中断ルーチンの最初の命令のアドレス、又は、ルーチン自体も格納されているものとするとよい。
メモリ110とプログラムカウンタ306との間で、アドレス352は保護装置100によってタップされる。
中断要求の処理は、アドレス352において、例えば、ルーチン自体の最初の命令に飛ぶことによって、又は、既に直接的に、ルーチンの実行によって始まる。中断ルーチンの終了時又は終了後に、最終的に、中断コード312によって、処理の成功が、中断制御機構に伝達される。このコードに基づいて、次に、中断ルーチンの処理の成功が、監視ユニット324に、及び、任意選択的に作成モジュール308にも、伝達される。
計算ユニット318は、演算装置を含んでいてよく、さらに類似の、典型的にはプロセッサにおいて使用されるモジュールを含んでいるものとするとよい。
ある実施例では、プログラムカウンタレジスタ306内にあるこのアドレス112が再度、加算器構造304に供給される。このアドレス112に基づいて、後続アドレスが作成される。アドレス112は、後続アドレスを作成するために、例えば+1だけ増分される。上述した、+1だけの増分は、例示的に選択されたに過ぎない。後続アドレスは、次に再び、プログラムカウンタレジスタ306内に書き込まれ、次に、メモリ110に加えられる。
メモリ110とプログラムカウンタ306との間で、これによって、後続アドレスが、保護装置100によってタップされる。保護装置100内では次に、一致信号124が、さらに、後続目標アドレスと後続アドレスの比較を用いて求められる。
本願で提示されたアプローチでは、プロセッサ300の重大な部分が、監視される構造に加えられ、これによって、中断要求の監視の適用範囲が大きくなる。ここでは、プロセッサ300への中断要求106の正しい転送に対して付加的に、中断要求106の処理の一部が、プロセッサ300によって検査される。
従って、有限オートマン302並びに加算器構造304、マルチプレクサ305及びプログラムカウンタレジスタ306が監視される。
中断要求モニタリング信号354、処理モニタリング信号356及び一致信号124は、中断要求監視ユニット324において評価されるものとするとよく、これによって、中断要求の処理が監視される。ここでは、優先度、種々の要求の処理の順番、及び、要求の処理の際の正しいシーケンス自体が監視可能である。
換言すれば、図3bには、プログラムカウンタモジュール102の部分の付加的な監視を伴う中断監視のためのコンセプトの簡略化された図が示されている。
従って、比較的少ないハードウェアコストで、重複及び照合無しに、例えば一時的な、不変の、優先度エラー等が、割り込みの処理の際に発生しているか否かを監視することができる。
制御機構の一部として、典型的には、プログラムフローと種々の命令タイプの処理とを制御する有限オートマン302が設けられている。この有限オートマン302は、ここで特に、中断要求106が存在する場合の正しいフローに対する責任を負う。中断要求106が存在している場合には、中断が行われるであろう次の可能な時点で、中断要求106に属するアドレス112が、例えば割り込みベクトルテーブルのアドレス領域において作成され、この箇所に加えられたデータが読まれる。このデータは同様に、例えば、割り込みベクトル、中断ルーチン自体が格納されているアドレスであるものとするとよい。割り込みベクトルテーブルは、ここでは、種々の形式で、メモリ、例えばROM又はRAMによって格納されているものとするとよい。
理論的にこの中断に属している目標アドレスとの比較による、割り込みベクトルテーブルのアドレス領域内のアドレス112のリクエストの検査は、次のことのために使用される。即ち、通常のプログラムフローの元来の中断、それと共に、プログラムカウンタ102内の有限オートマン302の一部、並びに、正しいアドレスの作成及びメモリ110への印加、ひいては中断要求106に適した中断ルーチンの開始を検査するために使用される。
本願で提示されたアプローチは、さらに、これを超える保護を表している。割り込みベクトルテーブルが、プログラムカウンタ102によってアドレッシングされた、例えばクロック制御されるメモリ110内に存在している場合には、典型的には、パイプラインを有するプロセッサ300の場合と同様に、これに続く後続アドレスが付加的にメモリに加えられてもよく、又は、これに続く後続アドレスのみがメモリに加えられてもよい。このようにして、付加的に、プログラムカウンタレジスタの増分に使用された、プログラムカウンタ102内の加算器構造304が検査可能であり、さらに、プログラムカウンタレジスタ306自体が、正しい、相違するデータでの2回の上書きの成功によって検査され、さらに、プログラムカウンタレジスタ306の増分が行われたことに基づいて、プログラムフローを制御する有限オートマン302の別の部分が検査され、及び、プログラムカウンタレジスタ306の入力を選択するマルチプレクサ305が検査される。マルチプレクサは、先ずは、アドレス112への正しい切り換えによって検査され、次に、加算器出口又は後続アドレスへの正しい切り換えによって検査される。
後続アドレスは、実施の範囲では、例えばプログラムカウンタのリニア又はグレイのようにカウント形式に関連せずに、論理的に後続するアドレスを表している。後者は、提案されたコンセプトへの影響を有していない。なぜなら、各対応する目標アドレスは、常に既知だからである。
図4は、本発明の実施例に即した、中断要求の際にプロセッサシステムのプログラムカウンタ構造を保護する方法400のフローチャートを示している。この方法は、例えば図1〜3に示されている装置上で実施可能である。このプロセッサシステムは、少なくとも、プログラムカウンタ構造と、中断制御機構と、メモリとを有している。中断制御機構は、中断要求に応答して、中断要求に属するアドレスをプログラムカウンタ構造へ供給するように構成されている。プログラムカウンタ構造は、メモリインタフェースを介してメモリに対してアドレスを出力するように構成されている。この方法400は、読み込みのステップ402と、比較のステップ406と、供給のステップ408とを有している。読み込みのステップ402では、アドレスがメモリインタフェースから読み込まれる。比較のステップ406では、このアドレスが、中断要求に割り当てられている目標アドレスと比較され、これによって比較結果が得られる。供給のステップ408では、この比較結果を用いて、一致信号が供給される。
換言すれば、中断要求の発生時におけるプログラムカウンタ構造の監視が提示される。これはさらに、プログラムカウンタ構造の保護を伴った中断要求の処理の監視にも使用され得る。
図5は、本発明の実施例に即した中断ルーチンの保護の際の、信号500、502、504の時間的経過の図を例示的な実施手法として示している。第1の信号500は、クロック信号である。例示的に、立ち上がり信号エッジを伴うパルシングが、順次連続する6つのクロックパルスに対して示されている。信号504は、プログラムカウンタレジスタ306の内容を表している。クロックパルス2において、アドレスn及びn−1での命令の読み込みの後に処理され得る中断要求502が位置していることが想定されると、クロックパルス3において既に、プログラムカウンタレジスタが、例えば割り込みベクトル316のアドレス122で書き込まれる。割り込みベクトルのこのアドレスは、この実施例では、メモリに加えられ、アドレス比較100によって検査されるアドレスでもある。これによって、対応する中断ルーチンの開始の成功が監視可能である。
クロックパルス4においても後続アドレス322がメモリに加えられるようにプログラムカウンタモジュールが設計されている場合、これが付加的に検査されてもよく、又は、これだけが検査されてもよく、それと共に、プログラムカウンタ構造の大部分が監視される。
最後にクロックパルス5において、割り込みベクトル316ひいては中断ルーチンの最初の命令のアドレスが、プログラムカウンタレジスタ内に記入され、メモリに加えられ、ルーチンの処理自体で開始される。
換言すれば、図5は、中断ルーチンの開始の際のフローを明確にするための例示的なタイミングダイヤグラムを示している。中断要求106の発生時には、その処理がプロセッサによって開始される。次に、アドレス122及び322が加えられる。これらのアドレスは、中断検査のために利用可能である。
実施例が、「及び/又は」による結合を第1の特徴と第2の特徴との間に含んでいる場合、これは次のように読まれるべきである。即ち、この実施例が、ある実施形態では、第1の特徴も第2の特徴も有しており、別の実施形態では、第1の特徴だけ又は第2の特徴だけを有していると読まれるべきである。

Claims (9)

  1. 中断要求(106)の処理の際にプロセッサシステム(104)のプログラムカウンタ構造(102)を保護する方法(400)であって、
    前記プロセッサシステム(104)は、少なくとも、プログラムカウンタ構造(102)と、中断制御機構(108)と、メモリ(110)とを含んでおり、
    前記中断制御機構(108)は、前記中断要求(106)に応答して、前記中断要求(106)に属するアドレス(112)を前記プログラムカウンタ構造(102)へ供給するように構成されており、
    前記プログラムカウンタ構造(102)は、メモリインタフェース(114)を介して前記メモリ(110)に対してアドレスを出力するように構成されており、
    前記方法(400)は、
    前記メモリインタフェース(114)からアドレス(352)を読み込むステップ(402)と、
    比較結果(126)を得るために、前記中断要求(106)に割り当てられている目標アドレス(120)と前記アドレス(352)とを比較するステップ(406)と、
    前記比較結果(126)を用いて、一致信号(124)を供給するステップ(408)と、
    を有しており、
    前記プログラムカウンタ構造(102)は、前記アドレス(352)に論理的に後続する後続アドレスを前記メモリインタフェース(114)に供給するように構成されており、
    前記読み込みステップ(402)では、さらに、前記後続アドレスが読み込まれ、前記比較ステップ(406)では、前記比較結果(126)を得るために、前記目標アドレス(120)に論理的に後続する後続目標アドレスと前記後続アドレスとを比較する、
    中断要求(106)の処理の際にプロセッサシステム(104)のプログラムカウンタ構造(102)を保護する方法(400)。
  2. 前記一致信号(124)を用いて、前記中断要求の前記処理の開始の成功を伝達するステップを有している、請求項1に記載の方法(400)。
  3. 中断要求(106)の処理を監視する方法であって、
    請求項1又は2に記載の、プログラムカウンタ構造(102)を保護する方法のステップ(402,406,408)を実施するステップと、
    前記一致信号(124)を用いて、前記中断要求(106)の前記処理を監視するステップと、
    を有している、
    中断要求(106)の処理を監視する方法。
  4. 中断要求(106)の処理の際にプロセッサシステム(104)のプログラムカウンタ構造(102)を保護する装置(100)であって、
    前記プロセッサシステム(104)は、少なくとも、プログラムカウンタ構造(102)と、中断制御機構(108)と、メモリ(110)とを含んでおり、
    前記中断制御機構(108)は、前記中断要求(106)に応答して、前記中断要求(106)に属するアドレス(112)を前記プログラムカウンタ構造(102)へ供給するように構成されており、
    前記プログラムカウンタ構造(102)は、前記メモリ(110)に対するメモリインタフェース(114)へ、アドレス(352)を出力するように構成されており、
    前記装置(100)は、
    前記メモリインタフェース(114)からアドレス(352)を読み込むインタフェース(116)と、
    比較結果(126)を得るために、前記中断要求(106)に割り当てられている目標アドレス(120)と前記アドレス(352)とを比較する比較機構(118)と、
    前記比較結果(126)を用いて、一致信号(124)を供給する出力機構(122)と、
    を備えており、
    前記プログラムカウンタ構造(102)は、前記アドレス(352)に論理的に後続する後続アドレスを前記メモリインタフェース(114)に供給するように構成されており、
    前記アドレス(352)を読み込む前記インタフェース(116)は、さらに、前記後続アドレスを読み込むように構成されており、
    前記比較機構(118)は、前記比較結果(126)を得るために、前記目標アドレス(120)に論理的に後続する後続目標アドレスと前記後続アドレスとを比較するように構成されている、
    ことを特徴とする、
    中断要求(106)の処理の際にプロセッサシステム(104)のプログラムカウンタ構造(102)を保護する装置(100)。
  5. プロセッサシステム(104)であって、
    前記プロセッサシステム(104)は、少なくとも、中断制御機構(108)と、プログラムカウンタ構造(102)と、メモリ(110)と、請求項に記載された、前記プログラムカウンタ構造(102)を保護する装置(100)とを含んでおり、
    前記中断制御機構(108)は、中断要求(106)に応答して、前記中断要求(106)に属するアドレス(112)を前記プログラムカウンタ構造(102)へ供給するように構成されており、
    前記プログラムカウンタ構造(102)は、前記メモリ(110)に対するメモリインタフェース(114)へ、アドレス(352)を出力するように構成されており、
    前記装置(100)は、
    前記メモリインタフェース(114)から前記アドレス(352)を読み込み、前記中断要求(106)に割り当てられている目標アドレス(120)と当該アドレス(352)とを比較し、当該比較の比較結果(126)を用いて、一致信号(124)を供給するように構成されており、
    前記プログラムカウンタ構造(102)は、前記アドレス(352)に論理的に後続する後続アドレスを前記メモリインタフェース(114)に供給するように構成されており、
    前記装置(100)は、
    さらに、前記後続アドレスを読み込み、前記比較結果(126)を得るために、前記目標アドレス(120)に論理的に後続する後続目標アドレスと前記後続アドレスとを比較するように構成されている、
    プロセッサシステム(104)。
  6. 前記プログラムカウンタ構造(102)は、プロセッサコア(300)の一部であり、当該プロセッサコア(300)は、前記プログラムカウンタ構造(102)の他に、少なくとも電子計算機構(318)を含んでいる、請求項に記載のプロセッサシステム(104)。
  7. 集積回路として実現されている、請求項に記載のプロセッサシステム(104)。
  8. コンピュータ又は装置上で実行されるときに、請求項1乃至のいずれか一項に記載の方法を実施するために構成されている、
    コンピュータプログラム。
  9. 請求項に記載のコンピュータプログラムが格納されている、
    機械可読記録媒体。
JP2017566340A 2015-06-22 2016-05-04 プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置 Active JP6813513B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102015211458.9 2015-06-22
DE102015211458.9A DE102015211458A1 (de) 2015-06-22 2015-06-22 Verfahren und Vorrichtung zum Absichern einer Programmzählerstruktur eines Prozessorsystems und zum Überwachen der Behandlung einer Unterbrechungsanfrage
PCT/EP2016/060010 WO2016206847A1 (de) 2015-06-22 2016-05-04 Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage

Publications (2)

Publication Number Publication Date
JP2018525712A JP2018525712A (ja) 2018-09-06
JP6813513B2 true JP6813513B2 (ja) 2021-01-13

Family

ID=55948825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017566340A Active JP6813513B2 (ja) 2015-06-22 2016-05-04 プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置

Country Status (6)

Country Link
US (1) US11113099B2 (ja)
EP (1) EP3311273A1 (ja)
JP (1) JP6813513B2 (ja)
KR (1) KR102603835B1 (ja)
DE (1) DE102015211458A1 (ja)
WO (1) WO2016206847A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6862747B2 (ja) * 2016-10-11 2021-04-21 ブラザー工業株式会社 液体吐出装置
KR102260820B1 (ko) * 2019-07-08 2021-06-07 숭실대학교산학협력단 대칭적 인터페이스 기반 인터럽트 신호 처리 장치 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
JPS63208130A (ja) * 1987-02-24 1988-08-29 Mitsubishi Electric Corp Cpu誤動作検出装置
JPH0792764B2 (ja) * 1988-05-25 1995-10-09 日本電気株式会社 マイクロプロセッサ
EP0510244A1 (en) * 1991-04-22 1992-10-28 Acer Incorporated Method and apparatus for protecting a computer system from computer viruses
JPH0764822A (ja) * 1993-08-26 1995-03-10 Mitsubishi Electric Corp マイクロコンピュータ
FR2764716B1 (fr) * 1997-06-13 2001-08-17 Bull Cp8 Procede de modification de sequences de code et dispositif associe
US6996677B2 (en) * 2002-11-25 2006-02-07 Nortel Networks Limited Method and apparatus for protecting memory stacks
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
IT1391785B1 (it) 2008-11-21 2012-01-27 St Microelectronics Srl Sistema elettronico per il rilevamento di un guasto
JP5335634B2 (ja) * 2009-09-29 2013-11-06 レノボ・シンガポール・プライベート・リミテッド システム管理モードの特権レベルを保護するコンピュータ
JP2011154459A (ja) * 2010-01-26 2011-08-11 Renesas Electronics Corp コンピュータシステムのプログラム異常動作検出装置
US9547546B2 (en) * 2012-03-12 2017-01-17 Nxp Usa, Inc. Interrupt supervision system, processing system and method for interrupt supervision
KR101666398B1 (ko) * 2012-10-30 2016-10-17 한국전자통신연구원 Arinc 653 기반 운영체제에서의 모니터링 방법 및 장치
JP6433191B2 (ja) * 2014-08-18 2018-12-05 ルネサスエレクトロニクス株式会社 マイクロコンピュータ

Also Published As

Publication number Publication date
KR102603835B1 (ko) 2023-11-21
KR20180019594A (ko) 2018-02-26
DE102015211458A1 (de) 2016-12-22
US11113099B2 (en) 2021-09-07
WO2016206847A1 (de) 2016-12-29
EP3311273A1 (de) 2018-04-25
JP2018525712A (ja) 2018-09-06
US20180181433A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
JP6289778B2 (ja) テストケース生成装置及びテストケース生成プログラム
US5640508A (en) Fault detecting apparatus for a microprocessor system
JP5904989B2 (ja) 制御装置を調整するための方法および調整ユニット
JP2008009721A (ja) 評価システム及びその評価方法
US9384109B2 (en) Processor with debug pipeline
JP6813513B2 (ja) プロセッサシステムのプログラムカウンタ構造を保護する方法及び装置並びに中断要求の処理を監視する方法及び装置
US20150046759A1 (en) Semiconductor integrated circuit device
EP3486811A1 (en) Simulation device, simulation system, simulation method and simulation program
JP2016038599A (ja) マイクロコンピュータ及びマイクロコンピュータシステム
JP2006344087A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
US20050060690A1 (en) Microprocessor system with software emulation processed by auxiliary hardware
US20100287426A1 (en) Memory checking system and method
US20190340112A1 (en) Test device, test method, and computer readable medium
JP5537140B2 (ja) 安全制御装置、及びその安全制御プログラム
CN107423029B (zh) 计算单元
JP2008262557A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
CN110825017A (zh) 包括安全逻辑的装置和操作该装置的方法
JP2008152665A (ja) 半導体集積回路の動作解析方法
CN112424753A (zh) 多核系统
US20240045854A1 (en) Method for checking a processing of payload data
JP2616542B2 (ja) 疑似障害発生システム
KR102318088B1 (ko) 2진 코드 데이터를 처리하기 위한 방법 및 장치
JP2006236234A (ja) 割込み処理回路
CN118821248A (zh) 芯片总线数据的传输校验系统、方法、装置及相关设备
JP4842036B2 (ja) 半導体装置と、タイミング制御回路の異常検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190419

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190917

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200115

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200907

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200928

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20201104

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20201207

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20201207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201217

R150 Certificate of patent or registration of utility model

Ref document number: 6813513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250