説明

プロセッサシステム

【課題】従来のプロセッサシステムでは、プログラムが利用するデータの信頼性を十分に確保できない問題があった。
【解決手段】本発明のプロセッサシステムは、特定プログラムが格納された特定コード領域のアドレス範囲に対応する第1の設定値を保持する特定コード領域設定レジスタ17と、特定プログラムが利用する特定データを格納する特定データ格納領域を有する周辺装置と、特定プログラムを含むプログラムを実行して周辺装置へのアクセス要求を出力すると共に、第1の設定値を参照して実行したプログラムが特定プログラムであるか否かを判断するプロセッサエレメントPEと、アクセス要求が特定プログラムの実行結果によるものであるか否かに応じて特定データ格納領域へのアクセスを制御するセイフティガード20〜22と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はプロセッサシステムに関し、特に複数のプログラムを動作させた場合に一のプログラムが利用するデータを他のプログラムが意図外に変更することを防止する構成を有するプロセッサシステムに関する。
【背景技術】
【0002】
近年、一のプロセッサシステム上で複数のプログラムを実行することが多く行われている。このように、一のプロセッサシステム上で複数のプログラムを実行する場合、一のプログラムが利用するデータを他のプログラムが意図外に変更してしまった場合、一のプログラムの動作に不具合が生じるため問題である。
【0003】
そこで、特許文献1では、プロセッサシステムで行われる処理のうち高い信頼性を要求する処理については、複数のプロセッサで同じ処理を行い、その処理結果を比較することで処理自体の信頼性を向上させる例が開示されている。しかし、特許文献1では、プロセッサシステム上で動作するプログラム間のデータの改ざんを防止する構成を有していないため、プログラム間のデータの改ざんを回避することはできない。
【0004】
そこで、一のプロセッサシステム上で複数のプログラムを実行する場合に一のプログラムが利用するデータを他のプログラムが意図外に変更することを防止する構成を有する例が特許文献2に開示されている。特許文献2では、プロセッサシステムの例として4つのCPU(Central Processing Unit)を有するマルチプロセッサシステムが記載されている。特許文献2のマルチプロセッサシステムでは、メモリの複数の所定領域に対する各プロセッサのアクセス権限に関する情報を保持するアクセス権限情報保持手段と、アクセス権限に関する情報に基づいて各プロセッサによるメモリへのアクセスを管理するメモリ管理手段と、を備える。つまり、特許文献2に記載のプロセッサシステムでは、プロセッサのアクセス権限に関する情報に基づき、メモリの所定領域毎にアクセス可能なプロセッサを制限する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−11639号公報
【特許文献2】特開2008−123031号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献2では、一の所定領域にアクセスが許可されるプロセッサを規定する設定値については、いずれのプロセッサ(又はプログラム)であっても変更可能である。つまり、特許文献2では、一の所定領域にアクセスが許可されるプロセッサを規定する設定値が意図外に改ざんされた場合、一の所定領域に格納されるデータが意図外のプロセッサ(又はプログラム)から改ざんされることを防ぐことができない問題がある。
【課題を解決するための手段】
【0007】
本発明にかかるプロセッサシステムの一態様は、特定プログラムが格納された特定コード領域のアドレス範囲に対応する第1の設定値を保持する特定コード領域設定レジスタと、前記特定プログラムが利用する特定データを格納する特定データ格納領域を有する周辺装置と、前記特定プログラムを含むプログラムを実行して前記周辺装置へのアクセス要求を出力すると共に、前記第1の設定値を参照して実行したプログラムが前記特定プログラムであるか否かを判断するプロセッサエレメントと、前記アクセス要求が前記特定プログラムの実行結果によるものである場合は前記特定データ格納領域へのアクセスの許可し、前記アクセス要求が前記特定プログラム以外のプログラムの実行結果によるものである場合は前記特定データ格納領域へのアクセスを無効とするセイフティガードと、を有する。
【0008】
本発明にかかるプロセッサシステムでは、保護対象となる特定データに対してアクセス動作を行う特定プログラムは予め決められたアドレス範囲の特定コード領域に格納されたものである。また、本発明にかかるプロセッサシステムでは、実行したプログラムが特定プログラムであるか否かを実行したプログラムが格納されていたプログラム可能領域のアドレスに基づき判断する。そして、本発明にかかるプロセッサシステムでは、特定プログラム以外のプログラムが意図外に特定データにアクセス要求を発行した場合には、当該アクセス要求をセイフティガードにおいて無効とする。これにより、本発明にかかるプロセッサシステムでは、特定プログラム以外のプログラムが意図外に特定データを改ざんすることを防止することができる。
【発明の効果】
【0009】
本発明にかかるプロセッサシステムによれば、特定データが意図外のプログラムにより改ざんされることを防止することができる。
【図面の簡単な説明】
【0010】
【図1】本発明にかかるプロセッサシステムの全体を示すブロック図である。
【図2】実施の形態1にかかるプロセッサシステムのブロック図である。
【図3】実施の形態1にかかるプロセッサシステムのセイフティガードのブロック図である。
【図4】実施の形態1にかかるプロセッサシステムにおける特定コード領域と特定データ領域を示すメモリ空間マップの概略図である。
【図5】実施の形態2にかかるプロセッサシステムのブロック図である。
【図6】実施の形態2にかかるプロセッサシステムのセイフティガードのブロック図である。
【図7】実施の形態2にかかるプロセッサシステムにおける特定コード領域と特定データ領域を示すメモリ空間マップの概略図である。
【図8】実施の形態2にかかるプロセッサシステムの第1のプロセッサエレメントに固有のメモリ空間マップの詳細を示すメモリ空間マップの概略図である。
【図9】実施の形態2にかかるプロセッサシステムの第2のプロセッサエレメントに固有のメモリ空間マップの詳細を示すメモリ空間マップの概略図である。
【図10】実施の形態2にかかるプロセッサシステムの第3のプロセッサエレメントに固有のメモリ空間マップの詳細を示すメモリ空間マップの概略図である。
【図11】実施の形態3にかかるプロセッサシステムのブロック図である。
【図12】実施の形態4にかかるプロセッサシステムのブロック図である。
【図13】実施の形態4にかかるプロセッサシステムのシステムコントローラの動作を示すフローチャートである。
【発明を実施するための形態】
【0011】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。本発明の詳細な実施の形態を説明する前に、本発明が適用されるプロセッサシステムの概要について説明する。なお、本発明は、以下で説明するプロセッサシステムに適用されるものではあるが、説明するプロセッサシステムは一例であり、他のプロセッサシステムに本発明を適用することも可能である。
【0012】
本発明が適用されるプロセッサシステムの概略図を図1に示す。図1に示すように、本発明にかかるプロセッサシステムは、複数のPE(Processing Element)を用いることにより処理性能の向上を実現するものである。また、本発明にかかるプロセッサシステムでは、PEによる機能ブロックの分類とは別に3つのサブシステムによる機能の分類を行う。図1に示すように、本発明にかかるプロセッサシステムでは、メインPE(Processing Element)サブシステム、IO(Input Output)サブシステム、HSM(Hardware Security Module)サブシステムを有する。
【0013】
メインPEサブシステムでは、予め内部に記憶されたプログラム又は外部から読み込んだプログラムに基づくプロセッサシステムに求められる具体的な処理を行う。IOサブシステムでは、メインPEサブシステム又はHSMサブシステムにより用いられる周辺装置が動作するための各種処理を行う。HSMサブシステムは、プロセッサシステムにおいて行われている処理のセキュリティ確認処理を行う。また、本発明にかかるプロセッサシステムでは、各サブシステムにクロック信号CLKa、CLKb、CLKc、CLKpが供給される。図1に示す例では、メインPEサブシステムにはクロック信号CLKaが供給され、IOサブシステムにはクロック信号CLKb、CLKpが供給され、HSMサブシステムにはクロック信号CLKcが供給される。これらのクロック信号CLKa、CLKb、CLKcは、システム全体構成の仕様に応じて、同一の周波数であっても、異なる周波数であっても良い。また、クロック信号CLKpは、周辺装置に与えられ、IOサブシステムに与えられるクロック信号CLKbとは非同期のクロック信号である。
【0014】
続いて、より具体的に各サブシステムについて説明する。メインPEサブシステムは、メインPEa、メインPEb、第1の命令メモリ、データメモリ、システムバスを有する。メインPEサブシステムでは、メインPEa、メインPEb、命令メモリ及びデータメモリは、システムバスを介して互いに接続される。第1の命令メモリは、プログラムを格納する。データメモリは、外部から読み込んだプログラム及びプロセッサシステム内で処理されたデータを一時的に記憶する。メインPEa及びメインPEbは、それぞれ命令メモリ、データメモリ等を利用しながらプログラムを実行する。なお、メインPEaは、冗長動作が可能なように構成される。冗長動作とは、ソフトウェア的には一つのプロセッサエレメントとして動作するが、ハードウェアとしては多重化された構成又は検査回路等が付加された構成により高信頼な動作を行う動作である。冗長動作の一例として、クロック毎に多重化された回路の出力結果が同一であるか否かを比較するロックステップ動作がある。
【0015】
IOサブシステムは、周辺バス、IOPE、周辺装置を有する。IOPEは、周辺装置を利用する上で必要な処理を行う。なお、IOPEはメインPEシステムの第1の命令メモリに記憶されているプログラムに基づき動作しても良く、他の記憶領域に記憶されているプログラムに基づき動作しても良い。周辺バスは、IOPE及び周辺装置を互いに接続する。
【0016】
図1では、周辺装置として、CANユニット、FLEXRAYユニット、SPIユニット、UARTユニット、ADCユニット、WDユニット、タイマを例示した。CANユニットは、自動車の車内通信規格の一つであるCAN(Controller Area Network)に基づく通信を行う。FLEXRAYユニットは、自動車の車内通信規格の一つであるFlex Ray規格に基づく通信を行う。SPIユニットは、3線又は4線のシリアル通信であるSPI(System Packet Interface)規格の通信を行う。UART(Universal Asynchronous Receiver Transmitter)ユニットは、調歩同期方式によるシリアル信号をパラレル信号に変換し、また、その逆方向の変換を行う。ADC(Analog to Digital Converter)ユニットは、センサ等から与えられるアナログ信号をデジタル信号に変換する。WD(Watch Dog)ユニットは、所定の期間が経過したことを検出するウォッチドックタイマ機能を提供する。タイマは、時間の計測、波形生成などを行う。図1の例では、上記ユニットを周辺装置としたが、他の機能を有するユニットを含むことも可能であり、また、一部のユニットのみを有する場合も考えられる。
【0017】
HSMサブシステムは、セキュリティPEと、第2の命令メモリとを有する。セキュリティPEは、システムバスに接続される。セキュリティPEは、メインPEサブシステムで実行されているプログラムの正当性又はプログラムを実行して得られるデータの正当性を判断する。第2の命令メモリには、プログラムを格納する。また、第2の命令メモリは、セキュリティPEのみがアクセスできるメモリである。第2の命令メモリは、第1の命令メモリと共に一つの記憶領域として設けられていても良いが、セキュリティPEのみがアクセス可能な領域としてアクセス制御されていることが必要である。
【0018】
上記説明の通り、本発明が適用されるプロセッサシステムでは、複数のPEにより処理能力を向上させながら、予期しない故障、予期しないプログラムの改変等の不具合に対して高い耐性を実現するものである。なお、ここまでに説明したプロセッサシステムは、本発明が適用されるプロセッサシステムの一例を示したものであり、例えば、命令メモリ及びデータメモリの配置及びシステム中の個数は、そのシステムのアーキテクチャにより種々考えられる。また、メモリと各プロセッサエレメントとの接続は、例えば、複数のバスを介して接続される構成であっても良く、バスを介さずにプロセッサエレメントと接続される構成であっても良く、アーキテクチャの設計により種々の構成が考えられ得る。
【0019】
上記したプロセッサシステムの説明は、本発明が適用されるプロセッサシステムの全体的な構成を説明するためのものである。しかし、本発明の実施の形態の説明では、上記のプロセッサシステムの説明において説明しなかった構成要素についても適宜追加する。また、追加した当該構成要素についての説明も加える。
【0020】
前述したプロセッサシステムでは、メインPEa、メインPEb、セキュリティPE、IOPEを備えるが、本発明にかかる特徴は、いずれのプロセッサエレメントに対しても適用可能であり、かつ、一つのプロセッサエレメントに対して適用するのみであっても効果を生じるものである。そこで、以下の説明では、メインPEa、メインPEb、セキュリティPE、IOPEの総称としてプロセッサエレメントPEとの語を用いる。また、本発明の実施の形態1では、本発明の特徴を明確にするために、プロセッサシステムに備えられるプロセッサエレメントを一つとした例について説明する。
【0021】
実施の形態1にかかるプロセッサシステムのブロック図を図2に示す。図2に示すように、実施の形態1にかかるプロセッサシステムは、プロセッサエレメントPE、システムバス、セイフティガード20〜22、第1の命令メモリ、データメモリ、周辺バスブリッジ23、周辺バス、I/O(Input / Output)、WDユニット、タイマを有する。ここで、システムバス、第1の命令メモリ、データメモリ、周辺バス、WDユニット、タイマについては、図1に示したブロック図において説明したものと同じであるためここでは説明を省略する。また、図2のI/Oは、図1で示したCANユニット、FLEXRAYユニット、SPIユニット、UARTユニット、ADCユニットを含むものとする。
【0022】
実施の形態1にかかるプロセッサエレメントPEは、特定プログラムを含むプログラムを実行して周辺装置へのアクセス要求を出力すると共に、第1の設定値を参照して実行したプログラムが特定プログラムであるか否かを判断する。この第1の設定値は、特定プログラムが格納された特定コード領域のアドレス範囲に対応する設定値である。実施の形態1では、プロセッサエレメントPEが第1の設定値を保持する特定コード領域設定レジスタを有するものとする。
【0023】
また、実施の形態1にかかる周辺装置は、特定プログラムが利用する特定データを格納する特定データ格納領域を有する。実施の形態1では、周辺装置には、第1の命令メモリ、データメモリ、I/O、WDユニット、タイマを含むものとする。
【0024】
また、実施の形態1にかかるセイフティガード20〜22は、アクセス要求が特定プログラムの実行結果によるものである場合は特定データ格納領域へのアクセスの許可し、アクセス要求が特定プログラムの実行結果によるものである場合は特定データ格納領域へのアクセスを無効とする。なお、図2に示す例では、セイフティガード20が第1の命令メモリに対して設けられ、セイフティガード21がデータメモリに対して設けられ、セイフティガード22が周辺バスに接続される周辺装置に対して設けられる。また、図2に示す例では、周辺バスとシステムバスは、周辺バスブリッジ23を介して接続され、セイフティガード22は、周辺バスブリッジ23とシステムバスとの間に設けられる。周辺バスブリッジは、周辺バスに接続される周辺装置へのアクセス要求の調停処理を行う。
【0025】
以下では、プロセッサエレメントPE、セイフティガード20〜22についてさらに詳細に説明を行う。
【0026】
プロセッサエレメントPEは、コード判定部1、演算部2を有する。演算部2は、プログラムを実行する演算コアである。コード判定部1は、第1の設定値を参照し、演算部2が実行しているプログラムのコードに基づき生成するプログラムカウント値が特定プログラムものであるか否かを判断する。そして、コード判定部1は、演算部2が実行しているプログラムが特定プログラムである場合は、プロセッサエレメントPEが出力する特定コード領域識別信号をイネーブル状態とする指示を演算部2に出力する。
【0027】
図2に示すように、演算部2は、命令フェッチ制御部10、命令デコード部11、演算実行部12、ライトバック制御部13、レジスタファイル14、バス制御部15を有する。図2に示す例では、レジスタファイル14には、演算実行部12の処理により更新されたプログラムカウント値PCが格納される。
【0028】
命令フェッチ制御部10は、レジスタファイル14に格納されたプログラムカウント値PCを参照してフェッチアドレスを生成する。命令フェッチ制御部10は、このフェッチアドレスによりバス制御部15を介して第1の命令メモリへのアクセスを行う。そして、命令フェッチ制御部10は、第1の命令メモリのフェッチアドレスに対応する領域からプログラムのコードをフェッチする。命令フェッチ制御部10は、フェッチした命令を命令デコード部11に対して発行する。なお、以下の説明では、フェッチした命令を命令情報と称す。
【0029】
命令デコード部11は、命令フェッチ制御部10が発行した命令情報をデコードして演算命令を生成する。また、命令デコード部11は、演算命令のデコードと合わせて、当該演算命令のプログラムカウント値PCを生成する。そして、命令デコード部11は、演算命令と当該演算命令に対応したプログラムカウント値PCを演算実行部12に出力する。また、命令デコード部11は、レジスタファイルに出力する演算命令において利用されるデータがある場合は、当該データを演算実行部12に出力する。なお、命令デコード部11は、演算実行部12に出力する演算命令が利用するデータについて、当該データのレジスタファイル14中の位置を示すレジスタアドレスを出力しても良い。
【0030】
演算実行部12は、命令デコード部11が出力した演算命令に基づき演算処理を実行する。また、演算実行部12は、実行中の演算命令に対応したプログラムカウント値PCをコード判定部1に出力する。
【0031】
ライトバック制御部13は、演算実行部12の実行結果をレジスタファイル14に書き込む。このとき、ライトバック制御部13は、演算実行部12における処理で新たに生成されたプログラムカウント値PCを実行結果と共にレジスタファイルに書き込む。レジスタファイル14は、演算実行部12の処理結果のデータ及び演算実行部12により生成されたプログラムカウント値PCを格納する。
【0032】
バス制御部15は、演算実行部12からの指示に基づき、システムバスを介して周辺装置とデータの送受信を行う。例えば、バス制御部15は、演算実行部12が処理した演算命令がリード命令であった場合、アクセス要求RQとしてリード命令を出力し、このリード命令と共にリードするデータの位置を示すアクセスアドレスADDを出力する。そして、周辺装置がアクセス要求に応じて出力したリードデータを受信すると、当該リードデータを演算実行部12に渡す。また、バス制御部15は、演算実行部12が処理した演算命令がライト命令であった場合、アクセス要求RQとしてライト命令を出力し、このライト命令と共にデータの書き込み位置を示すアクセスアドレスADDと、書き込み対象のデータを出力する。さらに、バス制御部15は、演算実行部12からの指示に基づきアクセス要求RQと共に出力する特定コード領域識別信号CIDをイネーブル状態とディスイネーブル状態とのいずれかの状態とする。
【0033】
コード判定部1は、特定コード領域判定部16、特定コード領域設定レジスタ17を有する。特定コード領域判定部16は、演算実行部12から実行中の演算命令に関するプログラムカウント値PCを受け取り、当該プログラムカウント値PCが第1の設定値で示される特定プログラムカウント範囲値SCの範囲内の値であるか否かを判断する。そして、特定コード領域判定部16は、プログラムカウント値PCが特定プログラムカウント範囲値の範囲内である場合、演算実行部12で実行されている演算命令は、特定プログラムのものである判断し、演算実行部12に特定コード領域識別信号CIDをイネーブル状態とする指示を行う。一方、特定コード領域判定部16は、プログラムカウント値PCが特定プログラムカウント範囲値の範囲外である場合、演算実行部12で実行されている演算命令は、特定プログラム以外のプログラムのものである判断し、演算実行部12に特定コード領域識別信号CIDをディスイネーブル状態とする指示を行う。
【0034】
特定コード領域設定レジスタ17は、第1の設定値を保持する。この第1の設定値は、特定プログラムが格納される特定コード領域のアドレス範囲に対応する値である。実施の形態1では、演算実行部12で実行中の演算命令が特定プログラムに属するものであるか否かを判断するため、この第1の設定値として特定コード領域のアドレス範囲に対応するプログラムカウント値PCの範囲を設定する。特定コード領域設定レジスタ17は、特定プログラムに対応するプログラムカウント値PCの範囲を示す値として特定プログラムカウント範囲値SCを出力する。なお、実施の形態1では、第1の設定値がアドレス範囲を示すものであるため、特定コード領域設定レジスタ17は、アドレス範囲の上位側のアドレスを格納する第1のレジスタと下位側のアドレスを格納する第2のレジスタとを有する。なお、特定コード領域設定レジスタ17は、プロセッサエレメントPEとは異なる領域に配置されていても良い。
【0035】
また、実施の形態1にかかるプロセッサシステムでは、特定コード領域設定レジスタ17への第1の設定値の格納処理は、プロセッサエレメントPEをリセットした後の初期値設定処理中に行う。
【0036】
続いて、セイフティガード20〜22の詳細について説明する。セイフティガード20〜22は、同じ構成である。そのため、ここではセイフティガード20を例に説明する。セイフティガード20のブロック図を図3に示す。図3では、セイフティガード20が保護するアクセス対象回路として第1の命令メモリを示した。図3に示すように、セイフティガード20は、特定データ領域設定レジスタ30、特定データ領域判定部31、アクセス制御回路32を有する。
【0037】
特定データ領域設定レジスタ30は、第2の設定値を格納する。この第2の設定値は、特定プログラムが利用する特定データが格納される特定データ格納領域のアドレス範囲を規定する値である。特定データ領域設定レジスタ30は、第2の設定値により示されるアドレス範囲を特定データ領域信号AS1として出力する。また、特定データ領域設定レジスタ30は、第2の設定値が未格納な状態(例えば、プロセッサシステムがリセット動作を行った後の状態)では、イネーブル信号EN1をディスイネーブル状態とし、第2の設定値が格納された後にイネーブル信号EN1をイネーブル状態とする。なお、特定データ領域設定レジスタ30は、アクセス対象回路の一部として構成されていても良い。
【0038】
特定データ領域判定部31は、イネーブル信号EN1がイネーブル状態のときに有効になるブロックである。特定データ領域判定部31は、アクセス要求RQと共にプロセッサエレメントPEが出力する特定コード領域識別信号CIDを受信する。そして、特定データ領域判定部31は、特定コード領域識別信号CIDがイネーブル状態、かつ、アクセス対象回路に対するアクセスアドレスADDが特定データ領域信号AS1で示されるアドレス範囲の範囲内である場合、検出信号DETをイネーブル状態とする。また、特定データ領域判定部31は、特定コード領域識別信号CIDがイネーブル状態、かつ、アクセスアドレスADDが特定データ領域信号AS1で示されるアドレス範囲の範囲外である場合、検出信号DETをディスイネーブル状態とする。また、特定データ領域判定部31は、特定コード領域識別信号CIDがディスイネーブル状態、かつ、アクセスアドレスADDが特定データ領域信号AS1で示されるアドレス範囲の範囲外である場合、検出信号DETをイネーブル状態とする。なお、特定データ領域判定部31は、イネーブル信号EN1がディスイネーブル状態である場合、検出信号DETをディスイネーブル状態とする。
【0039】
アクセス制御回路32は、検出信号DETがイネーブル状態である場合は、アクセス要求RQをアクセス対象回路に伝達する。一方、アクセス制御回路32は、検出信号DETがディスイネーブル状態である場合、アクセス要求RQに対してエラー応答信号ERRを出力し、当該アクセス要求を無効とする。つまり、アクセス制御回路32は、検出信号DETがディスイネーブル状態である場合、アクセス対象回路に対するアクセス要求RQを無効とすることでプロセッサエレメントPEからアクセス対象回路へのアクセスを遮断する。
【0040】
上記説明より、セイフティガード20〜22は、特定データ格納領域のアドレス範囲を規定する第2の設定値を格納する特定データ領域設定レジスタ30を有する。そして、セイフティガード20〜22は、アクセス要求RQと共にプロセッサエレメントPEから出力されるアクセスアドレスADDと第2の設定値とを比較してアクセス要求RQが特定データ格納領域をアクセス対象とするものか否かを判断する。また、セイフティガード20〜22は、特定コード領域識別信号CIDがイネーブル状態であるか否かに応じてアクセス要求RQが特定プログラムの実行結果に基づくものであるか否かを判断する。そして、セイフティガード20〜22は、特定プログラムの実行結果に基づいて特定データ領域に対するアクセス要求RQがあった場合には当該アクセス要求RQをアクセス対象回路に与える。また、セイフティガード20〜22は、特定プログラム以外のプログラムの実行結果に基づいて特定データ領域に対するアクセス要求RQがあった場合には当該アクセス要求RQを無効として特定データ領域に格納された特定データを保護する。また、セイフティガード20〜22は、特定プログラム以外のプログラムの実行結果に基づいて特定データ領域以外のデータ領域に対するアクセス要求RQがあった場合には当該アクセス要求RQをアクセス対象回路に与える。
【0041】
上記説明より、実施の形態1にかかるプロセッサシステムでは、特定データ領域に対するアクセスを許可するか否かをアクセス要求RQを発行したプログラムが特定コード領域に格納されたものか否かにより制御する。そこで、特定データ領域と特定コード領域とについてより詳細に説明する。図4に実施の形態1にかかるプロセッサシステムにおける特定コード領域と特定データ領域とを示すメモリ空間マップの概略図を示す。
【0042】
図4に示すように、実施の形態1にかかるプロセッサシステムでは、周辺装置においてプログラム及びデータが格納される格納領域をメモリ空間マップの概念を利用して管理している。
【0043】
実施の形態1にかかるプロセッサシステムでは、メモリ空間マップ上で、第1の設定値として規定される特定プログラムカウント範囲値に対応するアドレス範囲に特定コード領域が規定される。この特定コード領域には、特定プログラムに属する特定コードが格納される。この特定プログラムは、詳細な動作検証がなされた信頼済みのプログラムである。詳細な動作検証なされたプログラムとは、例えば、その動作がレジスタレベルで検証されており、不具合が取り除かれたプログラムである。また、特定プログラムは、その動作のエラーを検出する仕組みを有するプログラムであっても良い。
【0044】
また、実施の形態1にかかるプロセッサシステムでは、メモリ空間マップ上で、第2の設定値として規定されるアドレス範囲に特定データ領域が規定される。この特定データは、特定プログラムによってアクセスされるデータである。特定データには、特定プログラムが演算に利用するデータ以外にも、WDユニットの設定値を含むこともできる。プロセッサエレメントPEが暴走した場合、プログラムの実行時間が延びるため、WDユニットでこのプログラムの実行時間を計測することでプロセッサエレメントPEの暴走を検出することができる。このとき、特定データにWDユニットの設定値を含めておくことで、プロセッサエレメントPEが暴走した場合にWDユニットの設定値が意図外に更新されることを防止して、プロセッサシステムの信頼性を向上させることができる。
【0045】
上記説明より、実施の形態1にかかるプロセッサシステムでは、プロセッサエレメントPEにおいて実行されるプログラムが特定コード領域に格納された特定プログラムであるか否かを判断する。そして、セキュリティガードが、プロセッサエレメントPEが発行したアクセス要求RQが特定プログラムの処理結果によるものか否かにより特定データ領域に対するアクセスを許可するか否かを制御する。これにより、実施の形態1にかかるプロセッサシステムは、特定プログラム以外のプログラムが特定データにアクセスすることを防止し、信頼性を向上させることができる。
【0046】
従来のプロセッサシステムにおいては、アクセス権限に基づく特定データへのアクセス制御がなされる場合があるが、検証が不十分な信頼済みでないプログラムが意図外に特定データへのアクセス権限を有ししまう場合もあり、信頼性を十分に確保できない問題がある。しかしながら、実施の形態1にかかるプロセッサシステムでは、利用者が第1の設定値として設定したアドレス範囲で規定される特定コード領域に特定プログラムを格納することができる。このようなプログラムの配置が可能であるため、実施の形態1にかかるプロセッサシステムでは、特定コード領域以外のアドレス範囲に配置される信頼済みでないプログラムが特定データにアクセスすることを確実に防止し、信頼性を向上させることができる。
【0047】
実施の形態2
実施の形態2では、複数のプロセッサエレメントPEを有するプロセッサシステムに本発明の構成を適用した場合について説明する。そこで、実施の形態2にかかるプロセッサシステムのブロック図を図5に示す。なお、実施の形態2の説明において、実施の形態1において説明した構成要素については、同じ符号を付して説明を省略する。また、図5に示すプロセッサシステムのブロック図では、プロセッサエレメント毎に個別にWDユニットとタイマとが備えられる例を示した。
【0048】
図5に示すように、実施の形態2にかかるプロセッサシステムでは、プロセッサエレメントPEa〜PEcを有する。そして、プロセッサエレメントPEaのみがコード判定部1を有する。つまり、実施の形態2ではプロセッサエレメントPEaが実施の形態1にかかるプロセッサエレメントPEと同じ構成を有する。一方、実施の形態2にかかるプロセッサエレメントPEb、PEcは、コード判定部1を有していないため、特定データへのアクセスを行うことができない。なお、プロセッサエレメントPEa〜PEcは、アクセス要求RQと共に、自プロセッサエレメントを特定するプロセッサエレメント識別信号PEIDを出力するものとする。
【0049】
また、図5に示すように、実施の形態2にかかるプロセッサシステムでは、セイフティガード20〜22に代えてセイフティガード24〜26が設けられる。セイフティガード24〜26は、セイフティガード20〜22にプロセッサエレメントガード(以下PEガードと称す)を追加したものである。PEガードは、アクセスが許可されるデータ格納領域のアドレス範囲をプロセッサエレメント毎に規定する第3の設定値を格納する格納するPE固有領域設定レジスタを備え、第3の設定値とプロセッサエレメント識別信号PEIDとを参照して、一のプロセッサエレメントに対してアクセスが許可されるアドレス範囲に対する他のプロセッサエレメントからのアクセス要求を無効とする。
【0050】
ここで、セイフティガード24〜26の詳細な構成について説明する。セイフティガード24〜26は同じ構成であるため、ここでは、セイフティガード24を例にセイフティガードの詳細について説明する。図6に実施の形態2にかかるセイフティガード24のブロック図を示す。
【0051】
図6に示すように、セイフティガード24は、アクセス制御回路32に代えてアクセス制御回路40を有する。アクセス制御回路40は、アクセス制御回路32の機能にPEガード41が出力する検出信号DETa〜DETcの状態を考慮してアクセス制御を行う機能を追加したものである。
【0052】
また、セイフティガード24は、PEガード41を有する。PEガード41は、PEa固有領域設定レジスタ42、PEa固有領域判定部43、PEb固有領域設定レジスタ44、PEb固有領域判定部45、PEc固有領域設定レジスタ46、PEc固有領域判定部47を有する。図6に示す例では、PEa固有領域設定レジスタ42、PEb固有領域設定レジスタ44、PEc固有領域設定レジスタ46は、固有の領域に配置される例について示したが、これらレジスタは、アクセス対象回路に内蔵される構成としても良い。
【0053】
PEa固有領域設定レジスタ42は、プロセッサエレメントPEaがアクセス可能なデータ格納領域のアドレス範囲を規定する第3の設定値(以下、PEa固有領域設定値と称す)を格納する。PEa固有領域設定レジスタ42は、PEa固有領域設定値により示されるアドレス範囲をPEa固有領域信号ASaとして出力する。また、PEa固有領域設定レジスタ42は、PEa固有領域設定値が未格納な状態(例えば、プロセッサシステムがリセット動作を行った後の状態)では、イネーブル信号ENaをディスイネーブル状態とし、PEa固有領域設定値が格納された後にイネーブル信号ENaをイネーブル状態とする。
【0054】
PEa固有領域判定部43は、イネーブル信号ENaがイネーブル状態のときに有効になるブロックである。PEa固有領域判定部43は、アクセス要求RQと共にプロセッサエレメントが出力するプロセッサエレメント識別信号PEIDを受信する。そして、PEa固有領域判定部43は、プロセッサエレメント識別信号PEIDがプロセッサエレメントPEaであることを示し、かつ、アクセス対象回路に対するアクセスアドレスADDがPEa固有領域信号ASaで示されるアドレス範囲の範囲内である場合、検出信号DETaをイネーブル状態とする。また、PEa固有領域判定部43は、プロセッサエレメント識別信号PEIDがプロセッサエレメントPEa以外のプロセッサエレメントを示し、かつ、アクセスアドレスADDがPEa固有領域信号ASaで示されるアドレス範囲の範囲外である場合、検出信号DETaをディスイネーブル状態とする。なお、PEa固有領域判定部43は、イネーブル信号ENaがディスイネーブル状態である場合、検出信号DETaをディスイネーブル状態とする。
【0055】
PEb固有領域設定レジスタ44は、プロセッサエレメントPEbがアクセス可能なデータ格納領域のアドレス範囲を規定する第3の設定値(以下、PEb固有領域設定値と称す)を格納する。PEb固有領域設定レジスタ44は、PEb固有領域設定値により示されるアドレス範囲をPEb固有領域信号ASbとして出力する。また、PEb固有領域設定レジスタ44は、PEb固有領域設定値が未格納な状態(例えば、プロセッサシステムがリセット動作を行った後の状態)では、イネーブル信号ENbをディスイネーブル状態とし、PEb固有領域設定値が格納された後にイネーブル信号ENbをイネーブル状態とする。
【0056】
PEb固有領域判定部45は、イネーブル信号ENbがイネーブル状態のときに有効になるブロックである。PEb固有領域判定部45は、アクセス要求RQと共にプロセッサエレメントが出力するプロセッサエレメント識別信号PEIDを受信する。そして、PEb固有領域判定部45は、プロセッサエレメント識別信号PEIDがプロセッサエレメントPEbであることを示し、かつ、アクセス対象回路に対するアクセスアドレスADDがPEb固有領域信号ASbで示されるアドレス範囲の範囲内である場合、検出信号DETbをイネーブル状態とする。また、PEb固有領域判定部45は、プロセッサエレメント識別信号PEIDがプロセッサエレメントPEb以外のプロセッサエレメントを示し、かつ、アクセスアドレスADDがPEb固有領域信号ASbで示されるアドレス範囲の範囲外である場合、検出信号DETbをディスイネーブル状態とする。なお、PEb固有領域判定部45は、イネーブル信号ENbがディスイネーブル状態である場合、検出信号DETbをディスイネーブル状態とする。
【0057】
PEc固有領域設定レジスタ46は、プロセッサエレメントPEcがアクセス可能なデータ格納領域のアドレス範囲を規定する第3の設定値(以下、PEc固有領域設定値と称す)を格納する。PEc固有領域設定レジスタ46は、PEc固有領域設定値により示されるアドレス範囲をPEc固有領域信号ASbとして出力する。また、PEc固有領域設定レジスタ46は、PEc固有領域設定値が未格納な状態(例えば、プロセッサシステムがリセット動作を行った後の状態)では、イネーブル信号ENcをディスイネーブル状態とし、PEc固有領域設定値が格納された後にイネーブル信号ENcをイネーブル状態とする。
【0058】
PEc固有領域判定部47は、イネーブル信号ENcがイネーブル状態のときに有効になるブロックである。PEc固有領域判定部47は、アクセス要求RQと共にプロセッサエレメントが出力するプロセッサエレメント識別信号PEIDを受信する。そして、PEc固有領域判定部47は、プロセッサエレメント識別信号PEIDがプロセッサエレメントPEcであることを示し、かつ、アクセス対象回路に対するアクセスアドレスADDがPEc固有領域信号AScで示されるアドレス範囲の範囲内である場合、検出信号DETcをイネーブル状態とする。また、PEc固有領域判定部47は、プロセッサエレメント識別信号PEIDがプロセッサエレメントPEc以外のプロセッサエレメントを示し、かつ、アクセスアドレスADDがPEc固有領域信号AScで示されるアドレス範囲の範囲外である場合、検出信号DETcをディスイネーブル状態とする。なお、PEc固有領域判定部47は、イネーブル信号ENcがディスイネーブル状態である場合、検出信号DETcをディスイネーブル状態とする。
【0059】
実施の形態2にかかるプロセッサシステムでは、プロセッサエレメントPEaのみが特定データ領域へのアクセスできる。そのため、実施の形態2にかかるアクセス制御回路40は、検出信号DETがイネーブル状態、かつ、検出信号DETaがイネーブル状態である場合に、特定データへのアクセスを許可する。アクセス制御回路40は、検出信号DETがイネーブル状態、かつ、検出信号DETaがディスイネーブル状態である場合に、特定データを除くPEa固有領域へのアクセスを許可する。アクセス制御回路40は、検出信号DETbがディスイネーブル状態である場合に、PEb固有領域へのアクセスを許可する。アクセス制御回路40は、検出信号DETcがディスイネーブル状態である場合に、PEc固有領域へのアクセスを許可する。
【0060】
アクセス制御回路40が上記のようなアクセス制御を行うのは、実施の形態2にかかるプロセッサシステムが、第3の設定値により、図7に示すようなアドレス空間マップを設定しているためである。図7に示すように、実施の形態2にかかるプロセッサシステムでは、プロセッサエレメントPEa固有領域に特定コード領域と特定データ領域とを配置する。また、プロセッサエレメントPEa固有領域、プロセッサエレメントPEb固有領域、プロセッサエレメントPEc固有領域は、それぞれの固有領域が互いに重ならないように設定される。
【0061】
ここで、実施の形態2にかかるプロセッサシステムにおけるプロセッサエレメントPEa固有領域、プロセッサエレメントPEb固有領域、プロセッサエレメントPEc固有領域の設定方法について説明する。
【0062】
まず、プロセッサエレメントPEa固有領域のメモリ空間マップの概略図を図8に示す。図8に示すように、プロセッサエレメントPEa固有領域には、特定コード領域と特定データ領域が配置される。そして、特定データ領域には、WDユニット(WDa)の設定値と第3の設定値の情報が含まれる。また、プロセッサエレメントPEa固有領域の特定データ領域と特定データ領域以外の領域にタイマaとI/Oの設定値が配置される。
【0063】
次いで、プロセッサエレメントPEb固有領域のメモリ空間マップの概略図を図9に示す。図9に示すように、プロセッサエレメントPEb固有領域には、特定コード領域と特定データ領域は配置されない。そして、プロセッサエレメントPEb固有領域の任意の位置にWDユニット(WDb)、タイマb及びI/Oの設定値が配置される。
【0064】
次いで、プロセッサエレメントPEc固有領域のメモリ空間マップの概略図を図10に示す。図10に示すように、プロセッサエレメントPEc固有領域には、特定コード領域と特定データ領域は配置されない。そして、プロセッサエレメントPEc固有領域の任意の位置にWDユニット(WDc)、タイマc及びI/Oの設定値が配置される。
【0065】
上記説明より、実施の形態2にかかるプロセッサシステムでは、第1の設定値を参照して実行したプログラムが特定プログラムであるか否かを判断する管理プロセッサエレメント(例えば、プロセッサエレメントPEa)を一つに限定し、他のプロセッサエレメントを第1の設定値を参照して実行したプログラムが特定プログラムであるか否かを判断する処理を行わない通常プロセッサエレメント(例えば、プロセッサエレメントPEb、PEc)とする。このような構成とすることで、通常プロセッサエレメントが、誤って特定データにアクセスすることを防止することができる。
【0066】
また、実施の形態2にかかるプロセッサシステムでは、特定コード領域及び特定データ領域へのアクセスを管理プロセッサエレメントに限定すると共に、それぞれのプロセッサエレメントがアクセス可能なデータ可能領域の範囲を規定する第3の設定値を特定データ内に配置する。これにより、実施の形態2にかかるプロセッサシステムでは、PEガードの保護領域の設定(第3の設定値)が通常プロセッサエレメントの誤動作により変更されることを防ぐことができる。さらに、実施の形態2にかかるプロセッサシステムでは、特定コード領域に配置されたプログラムのみに特定データ領域へのアクセスを許可するため、管理プロセッサエレメントが意図外にPEガードの保護領域の設定(第3の設定値)を変更することを防止することができる。従って、実施の形態2にかかるプロセッサエレメントによれば、管理プロセッサエレメントの誤動作及び通常プロセッサエレメントの誤動作のいずれに対しても第3の設定値の変更を防止して、プロセッサシステムの信頼性を向上させることができる。
【0067】
実施の形態3
実施の形態3では、実施の形態2にかかるプロセッサシステムをさらに変形させた例について説明する。図11に実施の形態3にかかるプロセッサシステムのブロック図を示す。なお、実施の形態3の説明において、実施の形態1、2において説明した構成要素については、同じ符号を付して説明を省略する。
【0068】
図11に示すように、実施の形態3にかかるプロセッサシステムでは、プロセッサエレメントPEaが、冗長動作が可能なように構成される。冗長動作とは、ソフトウェア的には一つのプロセッサエレメントとして動作するが、ハードウェアとしては多重化された構成又は検査回路等が付加された構成により高信頼な動作を行う動作である。そして、実施の形態3にかかるプロセッサシステムでは、プロセッサエレメントPEaの冗長動作の結果を比較する比較部3を有する。比較部3は、冗長動作による2つの演算結果を比較して、2つの演算結果が不一致である場合にエラー信号を出力する。つまり、実施の形態3にかかるプロセッサシステムは、管理プロセッサエレメントとして動作するプロセッサエレメントPEaが、実行したプログラムのエラーを検出するエラー検出構成を有する。
【0069】
さらに、実施の形態3にかかるプロセッサシステムは、管理プロセッサエレメント(例えば、プロセッサエレメントPEa)においてエラーが検出された場合に、エラーが検出された管理プロセッサエレメントPEaを停止するシステムコントローラ51を有する。図11に示す例では、システムコントローラ51は、比較部3がエラー信号を出力した場合に、プロセッサエレメントPEa〜PEcに出力するストップ信号STPをイネーブル状態とする。そして、プロセッサエレメントPEa〜PEcは、ストップ信号STPがイネーブル状態となったことに応じて、動作を停止する。また、システムコントローラ51は、プロセッサシステムの外部にエラーが発生したことを通知する構成を有する。
【0070】
上記説明より、実施の形態3にかかるプロセッサシステムは、管理プロセッサエレメントで不具合或いはプログラムの改ざんがなされた等の事象が生じた場合に、当該事象をエラーとして検出し、プロセッサシステムの動作を停止することができる。このように、エラー発生時にプロセッサシステムを停止することで、エラーに起因する被害が拡大することを防止することができる。
【0071】
実施の形態4
実施の形態4では、実施の形態3にかかるプロセッサシステムをさらに変形させた例について説明する。図12に実施の形態4にかかるプロセッサシステムのブロック図を示す。なお、実施の形態4の説明において、実施の形態1〜3において説明した構成要素については、同じ符号を付して説明を省略する。
【0072】
実施の形態4にかかるプロセッサシステムでは、複数のプロセッサエレメントのいずれか一つを管理プロセッサエレメントとするが、管理プロセッサエレメントに不具合が生じた場合には管理プロセッサエレメントとして設定するプロセッサエレメントを他のプロセッサエレメントに移行させる。このような動作を行うために、実施の形態4にかかるプロセッサシステムでは、システムコントローラ51に代えてシステムコントローラ52を有する。
【0073】
図12に示すように、実施の形態4にかかるプロセッサシステムでは、プロセッサエレメントPEa〜PEcがそれぞれコード判定部4、6、8を有する。また、プロセッサエレメントPEa、PEcは、冗長動作が可能なように構成される。また、このプロセッサエレメントPEa、PEcに対応して比較部5、7が設けられる。比較部5、7は、冗長動作による2つの演算結果を比較して、2つの演算結果が不一致である場合にエラー信号を出力する。つまり、実施の形態4にかかるプロセッサシステムは、プロセッサエレメントPEa、PEcが、実行したプログラムのエラーを検出するエラー検出構成を有する。
【0074】
また、コード判定部4、6、8は、実施の形態1にかかるコード判定部1と実質的に同じ動作をするが、システムコントローラ52が出力するセーフモード信号SMa〜SMcにより動作の有効状態と無効状態とが制御される。
【0075】
システムコントローラ52は、セーフモード信号SMa〜SMcと、ストップ信号STPa〜STPcを出力する。このとき、システムコントローラ52は、セーフモード信号SMa〜SMcのいずれか一つをイネーブル状態とする。そして、システムコントローラ52は、イネーブル状態のセーフモード信号を与えたプロセッサエレメントがエラー信号を出力した場合、エラーを通知したプロセッサエレメントに対するストップ信号をイネーブル状態として、エラーを通知したプロセッサエレメントを停止させる。その後、システムコントローラ52は、動作を停止したプロセッサエレメント以外のプロセッサエレメントの一つに出力するセーフモード信号をイネーブル状態とする。これにより、プロセッサシステムは、管理プロセッサエレメントとして設定するプロセッサエレメントに不具合が生じた場合には、管理プロセッサエレメントとして設定するプロセッサエレメントを他のプロセッサエレメントに移す。
【0076】
ここで、システムコントローラ52の動作の一例についてさらに詳細に説明する。システムコントローラ52の動作の一例を示すフローチャートを図13に示す。図13に示すように、実施の形態4のプロセッサシステムでは、動作を開始すると、まず、システムコントローラ52がセーフモード信号SMaをイネーブル状態(例えば、1)とし、セーフモード信号SMb、SMcをディスイネーブル状態(例えば、0)とする(ステップS1)。これにより、実施の形態4のプロセッサシステムではプロセッサエレメントPEaが管理プロセッサエレメントとして動作し、プロセッサエレメントPEb、PEcを通常プロセッサエレメントとして動作する(ステップS2)。
【0077】
続いて、プロセッサエレメントPEaにおいてエラーが検出された場合、システムコントローラ52は、ブロック内部で保持している故障検出ビットDFaを1、故障検出ビットDFb、DFcを0とし、プロセッサエレメントPEaに対するストップ信号STPaをイネーブル状態とし、ストップ信号STPb、STPcをディスイネーブル状態とする(ステップS3)。これにより、プロセッサエレメントPEaは、動作を停止する(ステップS4)。
【0078】
続いて、システムコントローラ52は、セーフモード信号SMbをイネーブル状態とし、セーフモード信号SMa、SMcをディスイネーブル状態とする(ステップS5)。これにより、実施の形態4のプロセッサシステムではプロセッサエレメントPEcが管理プロセッサエレメントとして動作し、プロセッサエレメントPEbを通常プロセッサエレメントとして動作する(ステップS6)。
【0079】
続いて、プロセッサエレメントPEcにおいてエラーが検出された場合、システムコントローラ52は、ブロック内部で保持している故障検出ビットDFa、DFcを1、故障検出ビットDFcを0とし、プロセッサエレメントPEcに対するストップ信号STPcをイネーブル状態とし、ストップ信号STPcをディスイネーブル状態とする(ステップS7)。これにより、プロセッサエレメントPEcは、動作を停止する(ステップS8)。
【0080】
続いて、システムコントローラ52は、セーフモード信号SMcをイネーブル状態とし、セーフモード信号SMa、SMbをディスイネーブル状態とする(ステップS9)。これにより、実施の形態4のプロセッサシステムではプロセッサエレメントPEbが管理プロセッサエレメントとして動作する(ステップS10)。
【0081】
このように、動作可能なプロセッサエレメントが一つになってしまった場合、プロセッサシステムが搭載されるシステム全体の動作を正常に動作する処理のみを行って、処理の完了後にシステム全体を停止させることが好ましい。エラーを検出する機構を有しないプロセッサエレメントは、処理の信頼性が低いため、このようなプロセッサエレメントにより動作を継続した場合、システム全体の信頼性が損なわれる危険性があるためである。
【0082】
また、図13に示すフローチャートでは説明を省略したが、管理プロセッサエレメントとして設定するプロセッサエレメントを変更した場合、プロセッサシステムに対してリセット処理を行わせて、コード判定部、セイフティガード、PEガードの動作を行うための設定値を再設定することが好ましい。これは、コード判定部において判定される特定コード領域のアドレス範囲及びセイフティガードが保護する特定データ領域は、変更前の管理プロセッサが利用するプロセッサエレメント固有領域に配置されているため、この設定を変更後の管理プロセッサエレメントに合わせて変更する必要があるためである。
【0083】
上記説明より、実施の形態4にかかるプロセッサシステムでは、管理プロセッサエレメントにおいてエラーが生じた場合には、管理プロセッサエレメントとして設定するプロセッサエレメントを他のプロセッサエレメントに移す。これにより、管理プロセッサエレメントとして設定される一つのプロセッサエレメントに故障が生じた場合などにプロセッサシステムを完全に停止させることなく、継続することができる。
【0084】
また、実施の形態4にかかるプロセッサシステムでは、エラーを検出する機構を有するプロセッサエレメント(このようなプロセッサエレメントを高信頼プロセッサエレメントと称す)が複数ある場合、管理プロセッサエレメントとして設定するプロセッサエレメントを高信頼プロセッサエレメントから優先して選択する。これにより、プロセッサシステムの信頼性を維持しながら、動作を継続することが可能になる。
【0085】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記説明における第1〜第3の設定値の設定手順については、詳細には説明しなかったが、第1〜第3の設定値は、プロセッサシステムのリセット動作の後の初期値設定処理で行うことが好ましい。また、PEガードの設定値である第3の設定値については、管理プロセッサエレメントにより値を変更できる構成であることが好ましい。プロセッサシステムのメモリ空間マップを柔軟に変更し、プロセッサシステムの構成の柔軟性を高めることができるためである。
【符号の説明】
【0086】
1、4、6、8 コード判定部
2 演算部
3、5、7 比較部
10 命令フェッチ制御部
11 命令デコード部
12 演算実行部
13 ライトバック制御部
14 レジスタファイル
15 バス制御部
16 特定コード領域判定部
17 特定コード領域設定レジスタ
20〜22、24〜26 セイフティガード
23 周辺バスブリッジ
30 特定データ領域設定レジスタ
31 特定データ領域判定部
32、40 アクセス制御回路
41 PEガード
42、44、46 固有領域設定レジスタ
43、45、47 固有領域判定部
51、52 システムコントローラ
ADD アクセスアドレス
AS1 特定データ領域信号
ASa〜ASc 固有領域信号
CID 特定コード領域識別信号
DET、DETa〜DETc 検出信号
EN1、ENa〜ENc イネーブル信号
ERR エラー応答信号
PC プログラムカウント値
PEID プロセッサエレメント識別信号
PE、PEa〜PEc プロセッサエレメント
RQ アクセス要求
SC 特定プログラムカウント範囲値
SMa〜SMc セーフモード信号
STP、STPa〜STPc ストップ信号

【特許請求の範囲】
【請求項1】
特定プログラムが格納された特定コード領域のアドレス範囲に対応する第1の設定値を保持する特定コード領域設定レジスタと、
前記特定プログラムが利用する特定データを格納する特定データ格納領域を有する周辺装置と、
前記特定プログラムを含むプログラムを実行して前記周辺装置へのアクセス要求を出力すると共に、前記第1の設定値を参照して実行したプログラムが前記特定プログラムであるか否かを判断するプロセッサエレメントと、
前記アクセス要求が前記特定プログラムの実行結果によるものである場合は前記特定データ格納領域へのアクセスの許可し、前記アクセス要求が前記特定プログラム以外のプログラムの実行結果によるものである場合は前記特定データ格納領域へのアクセスを無効とするセイフティガードと、
を有するプロセッサシステム。
【請求項2】
前記セイフティガードは、前記特定データ格納領域のアドレス範囲を規定する第2の設定値を格納する特定データ領域設定レジスタを有し、
前記アクセス要求と共に前記プロセッサエレメントから出力されるアクセスアドレスと前記第2の設定値とを比較して前記アクセス要求が前記特定データ格納領域をアクセス対象とするものか否かを判断する請求項1に記載のプロセッサシステム。
【請求項3】
前記プロセッサエレメントは、実行したプログラムが前記特定プログラムである場合にイネーブル状態となる特定コード領域識別信号を出力し、
前記セイフティガードは、前記特定コード領域識別信号がイネーブル状態であるか否かに応じて前記アクセス要求が前記特定プログラムの実行結果に基づくものであるか否かを判断する請求項1又は2に記載のプロセッサシステム。
【請求項4】
前記プロセッサエレメントは、実行したプログラムが格納された前記特定コード領域のアドレスを示す値としてプログラムカウント値を生成し、
前記特定コード領域設定レジスタは、前記第1の設定値として前記特定プログラムが格納された前記特定コード領域に対応するアドレス範囲を示す値として特定プログラムカウント範囲値を有し、
前記プロセッサエレメントは、前記プログラムカウント値が前記特定プログラムカウント範囲値の範囲内である場合に前記特定コード領域識別信号をイネーブル状態とする特定コード判定部を有する請求項3に記載のプロセッサシステム。
【請求項5】
前記周辺装置は、前記プロセッサエレメントが実行する前記プログラムの実行時間をプログラム毎に管理するウォッチドックタイマを有し、
前記特定データには前記ウォッチドックタイマの設定値が含まれる請求項1乃至4のいずれか1項に記載のプロセッサシステム。
【請求項6】
複数の前記プロセッサエレメントを有し、
複数の前記プロセッサエレメントの一つのプロセッサエレメントは、前記第1の設定値を参照して実行したプログラムが前記特定プログラムであるか否かを判断する管理プロセッサエレメントとして機能し、
複数の前記プロセッサエレメントの他のプロセッサエレメントは、前記第1の設定値を参照して実行したプログラムが前記特定プログラムであるか否かを判断する処理を行わない通常プロセッサエレメントとして機能する請求項1乃至5のいずれか1項に記載のプロセッサシステム。
【請求項7】
複数の前記プロセッサエレメントは、自プロセッサエレメントを特定するプロセッサエレメント識別信号を前記アクセス要求と共に出力し、
前記セイフティガードは、
アクセスが許可されるデータ格納領域のアドレス範囲を前記プロセッサエレメント毎に規定する第3の設定値を格納する格納する特定データ領域設定レジスタを備え、前記第3の設定値と前記プロセッサエレメント識別信号とを参照して、一のプロセッサエレメントに対してアクセスが許可されるアドレス範囲に対する他のプロセッサエレメントからのアクセス要求を無効とするプロセッサエレメントガードを有する請求項6に記載のプロセッサシステム。
【請求項8】
前記第3の設定値は、前記特定データ格納領域に配置され、
前記第3の設定値を操作する特定プログラム及び前記特定データ格納領域は、前記通常プロセッサエレメントがアクセスできないアドレス範囲のデータ格納領域に配置される請求項7に記載のプロセッサシステム。
【請求項9】
前記管理プロセッサエレメントは、実行したプログラムのエラーを検出するエラー検出構成を有する請求項6乃至8のいずれか1項に記載のプロセッサエレメント。
【請求項10】
前記管理プロセッサエレメントにおいて前記エラーが検出された場合、複数の前記プロセッサエレメントの動作を停止するシステムコントローラを有する請求項6乃至9のいずれか1項に記載のプロセッサシステム。
【請求項11】
前記管理プロセッサエレメントにおいて前記エラーが検出された場合、前記エラーが検出された管理プロセッサエレメントを停止し、前記通常プロセッサエレメントの一つを前記管理プロセッサエレメントとするシステムコントローラを有する請求項6乃至9のいずれか1項に記載のプロセッサシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−8145(P2013−8145A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−139582(P2011−139582)
【出願日】平成23年6月23日(2011.6.23)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】