(57)【要約】      （修正有）【課題】エラー訂正処理の有効と無効との切り換えを効率良く行うプロセッサシステムを提供する。【解決手段】命令フェッチ制御部１０がフェッチした命令をデコードして、演算指示及び演算指示に対応するプログラムカウント値を生成する命令デコード部１１と、演算指示に基づく演算を実行する演算実行部１２と、演算命令に対応するプログラムカウント値が特定コード領域の範囲内である場合に特定コード領域判定信号をイネーブル状態とする特定コード領域判定部１６と、システムバスを介して他の装置とデータの送受信を行うバス制御部１５と、を有し、バス制御部１５は、特定コード領域判定信号に応じて、アクセス先を示すアドレスとデータとの少なくとも一方に施すエラー訂正処理を簡略化するか否かを切り換える。【選択図】図２
2013196466.tif 000002
【特許請求の範囲】
【請求項１】
命令メモリから命令をフェッチする命令フェッチ制御部と、
前記命令フェッチ制御部がフェッチした命令をデコードして、演算指示及び前記演算指示に対応するプログラムカウント値を生成する命令デコード部と、
前記演算指示に基づく演算を実行する演算実行部と、
前記演算実行部から実行した演算命令に対応する前記プログラムカウント値を得て、前記プログラムカウント値が特定コード領域の範囲内である場合に前記プログラムカウント値が前記特定コード領域の範囲内であることを示す特定コード領域判定信号をイネーブル状態とする特定コード領域判定部と、
前記演算実行部からの指示に基づき、システムバスを介して他の装置とデータの送受信を行うバス制御部と、を有し、
前記バス制御部は、前記特定コード領域判定信号がイネーブル状態である場合はアクセス先を示すアドレスと前記データとの少なくとも一方にエラー訂正処理を施して前記データの送受信を行い、前記特定コード領域判定信号がディスネーブル状態である場合は前記アドレスと前記データとの少なくとも一方に施される前記エラー訂正処理を簡略化して前記データの送受信を行うプロセッサシステム。
【請求項２】
前記他の装置は、前記システムバスに接続され、前記データを格納するデータメモリと、前記システムバスを介してアクセスされ、装置内のレジスタに前記データを格納する周辺装置との少なくとも一方を含み、
前記データメモリ及び前記周辺装置は、前記エラー訂正処理により生成された第１のエラー訂正コードが前記データに付加されている場合、前記第１のエラー訂正コードに基づき前記データのエラーを検出する第１のエラー検出回路を有し、前記第１のエラー検出回路によりエラーが検出された場合、アクセスが失敗したことを示すエラー応答を返信する請求項１に記載のプロセッサシステム。
【請求項３】
前記第１のエラー訂正コードは、ＥＣＣコードとパリティとのいずれか一方の方式のコードである請求項２に記載のプロセッサシステム。
【請求項４】
前記他の装置は、前記システムバスに接続され、前記データを格納するデータメモリと、前記システムバスを介してアクセスされ、装置内のレジスタに前記データを格納する周辺装置との少なくとも一方を含み、
前記データメモリ及び前記周辺装置は、前記エラー訂正処理に基づき生成された第２のエラー訂正コードが前記アドレスに付加されている場合、前記第２のエラー訂正コードに基づき前記アドレスのエラーを検出する第２のエラー検出回路を有し、前記第２のエラー検出回路によりエラーが検出された場合、アクセスが失敗したことを示すエラー応答を返信する請求項１乃至３のいずれか１項に記載のプロセッサシステム。
【請求項５】
前記第２のエラー訂正コードは、ＥＣＣコードとパリティとのいずれか一方の方式のコードである請求項４に記載のプロセッサシステム。
【請求項６】
前記他の装置は、前記システムバスに接続され、前記データを格納するデータメモリと、前記システムバスを介してアクセスされ、装置内のレジスタに前記データを格納する周辺装置との少なくとも一方を含み、
前記データメモリ及び前記周辺装置は、前記エラー訂正処理により前記データに付加されたエラー訂正コードと前記データとを１つのデータとして格納する請求項１乃至５のいずれか１項に記載のプロセッサシステム。
【請求項７】
前記バス制御部は、前記特定コード領域判定信号がディスネーブル状態である場合は前記エラー訂正処理を省略して前記データの送受信を行う請求項１乃至６のいずれか１項に記載のプロセッサシステム。
【請求項８】
前記バス制御部は、前記特定コード領域判定信号が第１の値である場合は第１のレベルのエラー訂正処理を施して前記データの送受信を行い、前記特定コード領域判定信号が第２の値である場合は第２のレベルのエラー訂正処理を施して前記データの送受信を行う請求項１乃至７のいずれか１項に記載のプロセッサシステム。
【請求項９】
前記特定コード領域は、高信頼タスクに関する前記命令に対応するプログラムカウント値の範囲を示す請求項１乃至８のいずれか１項に記載のプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサシステムに関し、特に１つの演算部において高い信頼性が要求される高信頼タスクと高い信頼性を要求しない通常タスクとを切り換えて実行するプロセッサシステムに関する。
【背景技術】
【０００２】
プロセッサシステムにおいては、演算処理を実行するプロセッサエレメントと、処理対象のデータを格納するデータメモリとの間でデータの送受信が行われる。このとき、送受信するデータのエラーを防止して、処理の信頼性を高めることが行われる。データのエラーを防止する方法としては、ＥＣＣ（Error Correction Code）等のエラー訂正コードの付加、パリティビットの付加などの方法が用いられる。エラー訂正コード又はパリティビットを用いてエラーのエラーを防止する技術が特許文献１〜９に開示されている。
【０００３】
特許文献１〜３に記載の技術では、ＣＰＵにおいてデータを入出力する際に、エラー訂正コードのエンコード又はデコードを行うことで、メモリにエラー訂正コードを含むデータを格納する。特許文献４に記載の技術では、機能モジュール単位でデータに付加するパリティの付加の有無を設定する。そして、特許文献４では、パリティを付加してデータを出力する機能モジュールからのデータに対してはバスコントローラにおいてパリティ検査を行う。特許文献５に記載の技術では、プロセッサとバスとを接続するバス制御部において、パリティ検査を行うことでデータのエラーを検出する。特許文献６では、メモリに対するデータの書き込み及び読み出しを制御するメモリコントローラにおいて、データに対するパリティチェック及びパリティ生成がなされる。
【０００４】
上記特許文献１〜６に記載の技術では、データに対するエラー訂正処理又はパリティ検査が常に行われる。そのため、特許文献１〜６に記載の技術では、エラー訂正処理又はパリティ検査を省略することでデータの信頼性を低くし、処理を高速化することができない。そこで、特許文献７〜９では、エラー訂正処理の有効と無効とを切り換える技術が開示されている。特許文献７では、メモリのうち誤り訂正省略可能領域のアドレスをプリセットしておき、メモリの特定の領域に対するアクセスがあった場合には誤り訂正処理を機能させ、誤り訂正省略可能領域に対するアクセスがあった場合にはパリティ検査のみを実行する。特許文献８では、メモリ制御モジュールにおいて、記憶領域に対する有効なエラー訂正と検出情報が利用可能でない場合、例えば、リセット又は電源投入イベント後、エラー処理が無効になるように設定する。つまり、特許文献８では、特定の条件において一時的にメモリ制御モジュールのエラー処理を無効にすることを可能にする。特許文献９では、チェックビットとデータとが格納されるメモリ装置と、メモリ装置に対するデータ読み出し及びデータの書き込みを制御するＥＣＣ回路と、を有する。そして、特許文献９では、外部から入力される制御信号に基づきＥＣＣ回路の誤り訂正機能の有効と無効とを切り換える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−７５９３６号公報
【特許文献２】特開平０６−１９５２３５号公報
【特許文献３】特開２００８−１９２１０８号公報
【特許文献４】特開平０８−１１０８６２号公報
【特許文献５】特開昭６３−２６８０５３公報
【特許文献６】特開２００１−１２５８３５号公報
【特許文献７】特開平０５−２０４７７２号公報
【特許文献８】特表２００９−５２７８２０号公報
【特許文献９】特開２０００−１６３２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献７〜９では、エラー訂正処理又はパリティ処理の有効と無効とを切り換えることができる。しかしながら、特許文献７〜９に記載の技術において、プロセッサで実行されるタスク毎にエラー訂正処理又はパリティ処理の有効と無効とを切り換えた場合、プログラムの誤り等により高い信頼性が要求される高信頼タスクがエラー訂正処理又はパリティ処理が無効な状態で実行される問題がある。
【０００７】
この問題を解決するためには、例えば、高い信頼性が要求されない通常タスクから高信頼タスクへのタスク切り換えを行う際に、ＯＳ（Operating System）等の特権モードの処理においてエラー訂正処理又はパリティ処理を無効状態から有効状態に切り換える等の処理が必要になる。このようにＯＳの処理を介在させることで、タスクが意図しない動作をすることを防止することができる。
【０００８】
しかしながら、ＯＳを介在させてタスクの切り換え行った場合、ＯＳの処理にかかる時間が追加的に必要になり、処理性能が低下する問題がある。つまり、従来の技術では、エラー訂正処理等を必要とする高信頼タスクがエラー訂正処理を有効にした状態で実行されることを保証しつつ、処理能力の低下を防止することができない問題があった。
【課題を解決するための手段】
【０００９】
本発明にかかるプロセッサシステムの一態様は、命令メモリから命令をフェッチする命令フェッチ制御部と、前記命令フェッチ制御部がフェッチした命令をデコードして、演算指示及び前記演算指示に対応するプログラムカウント値を生成する命令デコード部と、前記演算指示に基づく演算を実行する演算実行部と、前記演算実行部から実行した演算命令に対応する前記プログラムカウント値を得て、前記プログラムカウント値が特定コード領域の範囲内である場合に前記プログラムカウント値が前記特定コード領域の範囲内であることを示す特定コード領域判定信号をイネーブル状態とする特定コード領域判定部と、前記演算実行部からの指示に基づき、システムバスを介して他の装置とデータの送受信を行うバス制御部と、を有し、前記バス制御部は、前記特定コード領域判定信号がイネーブル状態である場合はアクセス先を示すアドレスと前記データとの少なくとも一方にエラー訂正処理を施して前記データの送受信を行い、前記特定コード領域判定信号がディスネーブル状態である場合は前記アドレスと前記データとの少なくとも一方に施される前記エラー訂正処理を簡略化して前記データの送受信を行う。
【００１０】
本発明にかかるプロセッサシステムによれば、実行中の演算命令に対応するプログラムカウント値が特定コード領域内であるか否かに応じて当該演算命令に伴う処理に対するエラー訂正処理の有効と無効とを切り換える。これにより、本発明にかかるプロセッサシステムによれば、実行中のタスクに応じて演算命令に伴う処理に対するエラー訂正処理の有効と無効とを切り換えることができる。このとき、本発明かかるプロセッサシステムでは、エラー訂正処理の有効と無効との切り換えを、ＯＳの処理を介在させることなく、タスク中に含まれる演算命令に対応するプログラムカウント値に応じて行うことができる。
【発明の効果】
【００１１】
本発明にかかるプロセッサシステムによれば、エラー訂正処理等を必要とする高信頼タスクがエラー訂正処理を有効にした状態で実行されることを保証しつつ、処理能力の低下を防止することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明にかかるプロセッサシステムのブロック図である。
【図２】実施の形態１にかかるプロセッサエレメントの詳細なブロック図である。
【図３】実施の形態１にかかるプロセッサシステムにおける特定コード領域の概念を説明するための図である。
【図４】実施の形態１にかかるバス制御部のブロック図である。
【図５】実施の形態１にかかるプロセッサシステムが非特定コード領域のストア命令を実行した場合の動作を示すタイミングチャートである。
【図６】実施の形態１にかかるプロセッサシステムが非特定コード領域のロード命令を実行した場合の動作を示すタイミングチャートである。
【図７】実施の形態１にかかるプロセッサシステムが特定コード領域のストア命令を実行した場合の動作を示すタイミングチャートである。
【図８】実施の形態１にかかるプロセッサシステムが特定コード領域のロード命令を実行した場合の動作を示すタイミングチャートである。
【図９】図７で示した動作においてエラー応答がエラーの発生を通知した場合のプロセッサエレメントの動作を示すタイミングチャートである。
【図１０】図８で示した動作においてエラー応答がエラーの発生を通知した場合のプロセッサエレメントの動作を示すタイミングチャートである。
【図１１】実施の形態１にかかるプロセッサエレメントにおいて命令情報の読み出し元が非特定コード領域から特定コード領域に切り替わった場合のプロセッサエレメントの動作を示すタイミングチャートである。
【図１２】ＥＣＣモード信号に基づくＥＣＣコードの有効・無効を切り換えを行わなかった場合において命令情報の読み出し元が非特定コード領域から特定コード領域に切り替わった時のプロセッサエレメントの動作を示すタイミングチャートである。
【図１３】実施の形態２にかかるバス制御部のブロック図である。
【図１４】実施の形態２にかかるプロセッサシステムが特定コード領域のストア命令を実行した場合の動作を示すタイミングチャートである。
【図１５】実施の形態２にかかるプロセッサシステムが特定コード領域のロード命令を実行した場合の動作を示すタイミングチャートである。
【図１６】図１４で示した動作においてエラー応答がエラーの発生を通知した場合のプロセッサエレメントの動作を示すタイミングチャートである。
【図１７】図１５で示した動作においてエラー応答がエラーの発生を通知した場合のプロセッサエレメントの動作を示すタイミングチャートである。
【図１８】実施の形態３にかかるプロセッサシステムにおける特定コード領域の概念を説明するための図である。
【図１９】実施の形態３にかかるバス制御部のブロック図である。
【図２０】実施の形態４にかかるバス制御部のブロック図である。
【発明を実施するための形態】
【００１３】
実施の形態１
本発明の詳細な実施の形態を説明する前に、本発明が適用されるプロセッサシステムの概要について説明する。なお、本発明は、以下で説明するプロセッサシステムに適用されるものではあるが、説明するプロセッサシステムは一例であり、他のプロセッサシステムに本発明を適用することも可能である。
【００１４】
本発明が適用されるプロセッサシステムの概略図を図１に示す。図１に示すように、本発明にかかるプロセッサシステムは、複数のＰＥ（Processing Element）を用いることにより処理性能の向上を実現するものである。また、本発明にかかるプロセッサシステムでは、ＰＥによる機能ブロックの分類とは別に３つのサブシステムによる機能の分類を行う。図１に示すように、本発明にかかるプロセッサシステムでは、メインＰＥ（Processing Element）サブシステム、ＩＯ（Input Output）サブシステム、ＨＳＭ（Hardware Security Module）サブシステムを有する。
【００１５】
メインＰＥサブシステムでは、予め内部に記憶されたプログラム又は外部から読み込んだプログラムに基づくプロセッサシステムに求められる具体的な処理を行う。ＩＯサブシステムでは、メインＰＥサブシステム又はＨＳＭサブシステムにより用いられる周辺装置が動作するための各種処理を行う。ＨＳＭサブシステムは、プロセッサシステムにおいて行われている処理のセキュリティ確認処理を行う。また、本発明にかかるプロセッサシステムでは、各サブシステムにクロック信号ＣＬＫａ、ＣＬＫｂ、ＣＬＫｃ、ＣＬＫｐが供給される。図１に示す例では、メインＰＥサブシステムにはクロック信号ＣＬＫａが供給され、ＩＯサブシステムにはクロック信号ＣＬＫｂ、ＣＬＫｐが供給され、ＨＳＭサブシステムにはクロック信号ＣＬＫｃが供給される。これらのクロック信号ＣＬＫａ、ＣＬＫｂ、ＣＬＫｃは、システム全体構成の仕様に応じて、同一の周波数であっても、異なる周波数であっても良い。また、クロック信号ＣＬＫｐは、周辺装置に与えられ、ＩＯサブシステムに与えられるクロック信号ＣＬＫｂとは非同期のクロック信号である。
【００１６】
続いて、より具体的に各サブシステムについて説明する。メインＰＥサブシステムは、メインＰＥａ、メインＰＥｂ、第１の命令メモリ、データメモリ、システムバスを有する。メインＰＥサブシステムでは、メインＰＥａ、メインＰＥｂ、命令メモリ及びデータメモリは、システムバスを介して互いに接続される。第１の命令メモリは、プログラムを格納する。データメモリは、外部から読み込んだプログラム及びプロセッサシステム内で処理されたデータを一時的に記憶する。メインＰＥａ及びメインＰＥｂは、それぞれ命令メモリ、データメモリ等を利用しながらプログラムを実行する。なお、メインＰＥａは、冗長動作が可能なように構成される。冗長動作とは、ソフトウェア的には１つのプロセッサエレメントとして動作するが、ハードウェアとしては多重化された構成又は検査回路等が付加された構成により高信頼な動作を行う動作である。冗長動作の一例として、クロック毎に多重化された回路の出力結果が同一であるか否かを比較するロックステップ動作がある。
【００１７】
ＩＯサブシステムは、周辺バス、ＩＯＰＥ、周辺装置を有する。ＩＯＰＥは、周辺装置を利用する上で必要な処理を行う。なお、ＩＯＰＥはメインＰＥシステムの第１の命令メモリに記憶されているプログラムに基づき動作しても良く、他の記憶領域に記憶されているプログラムに基づき動作しても良い。周辺バスは、ＩＯＰＥ及び周辺装置を互いに接続する。
【００１８】
図１では、周辺装置として、ＣＡＮユニット、ＦＬＥＸＲＡＹユニット、ＳＰＩユニット、ＵＡＲＴユニット、ＡＤＣユニット、ＷＤユニット、タイマを例示した。ＣＡＮユニットは、自動車の車内通信規格の１つであるＣＡＮ（Controller Area Network）に基づく通信を行う。ＦＬＥＸＲＡＹユニットは、自動車の車内通信規格の１つであるFlex Ray規格に基づく通信を行う。ＳＰＩユニットは、３線又は４線のシリアル通信であるＳＰＩ（System Packet Interface）規格の通信を行う。ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）ユニットは、調歩同期方式によるシリアル信号をパラレル信号に変換し、また、その逆方向の変換を行う。ＡＤＣ（Analog to Digital Converter）ユニットは、センサ等から与えられるアナログ信号をデジタル信号に変換する。ＷＤ（Watch Dog）ユニットは、所定の期間が経過したことを検出するウォッチドックタイマ機能を提供する。タイマは、時間の計測、波形生成などを行う。図１の例では、上記ユニットを周辺装置としたが、他の機能を有するユニットを含むことも可能であり、また、一部のユニットのみを有する場合も考えられる。
【００１９】
ＨＳＭサブシステムは、セキュリティＰＥと、第２の命令メモリとを有する。セキュリティＰＥは、システムバスに接続される。セキュリティＰＥは、メインＰＥサブシステムで実行されているプログラムの正当性又はプログラムを実行して得られるデータの正当性を判断する。第２の命令メモリには、プログラムを格納する。また、第２の命令メモリは、セキュリティＰＥのみがアクセスできるメモリである。第２の命令メモリは、第１の命令メモリと共に１つの記憶領域として設けられていても良いが、セキュリティＰＥのみがアクセス可能な領域としてアクセス制御されていることが必要である。
【００２０】
上記説明の通り、本発明が適用されるプロセッサシステムでは、複数のＰＥにより処理能力を向上させながら、予期しない故障、予期しないプログラムの改変等の不具合に対して高い耐性を実現するものである。なお、ここまでに説明したプロセッサシステムは、本発明が適用されるプロセッサシステムの一例を示したものであり、例えば、命令メモリ及びデータメモリの配置及びシステム中の個数は、そのシステムのアーキテクチャにより種々考えられる。また、メモリと各プロセッサエレメントとの接続は、例えば、複数のバスを介して接続される構成であっても良く、バスを介さずにプロセッサエレメントと接続される構成であっても良く、アーキテクチャの設計により種々の構成が考えられ得る。
【００２１】
上記したプロセッサシステムの説明は、本発明が適用されるプロセッサシステムの全体的な構成を説明するためのものである。しかし、本発明の実施の形態の説明では、上記のプロセッサシステムの説明において説明しなかった構成要素についても適宜追加する。また、追加した当該構成要素についての説明も加える。
【００２２】
前述したプロセッサシステムでは、メインＰＥａ、メインＰＥｂ、セキュリティＰＥ、ＩＯＰＥを備えるが、本発明にかかる特徴は、いずれのプロセッサエレメントに対しても適用可能であり、かつ、一つのプロセッサエレメントに対して適用するのみであっても効果を生じるものである。そこで、以下の説明では、メインＰＥａ、メインＰＥｂ、セキュリティＰＥ、ＩＯＰＥの総称としてプロセッサエレメントＰＥとの語を用いる。また、本発明の実施の形態１では、本発明の特徴を明確にするために、プロセッサシステムに備えられるプロセッサエレメントを一つとした例について説明する。
【００２３】
実施の形態１にかかるプロセッサシステムのブロック図を図２に示す。図２に示すように、実施の形態１にかかるプロセッサシステムは、プロセッサエレメントＰＥ、システムバス、第１の命令メモリ、データメモリ、周辺バスブリッジ、周辺バス、Ｉ／Ｏ（Input / Output）、ＷＤユニット、タイマを有する。ここで、システムバス、第１の命令メモリ、データメモリ、周辺バス、ＷＤユニット、タイマについては、図１に示したブロック図において説明したものと同じであるためここでは説明を省略する。また、図２のＩ／Ｏは、図１で示したＣＡＮユニット、ＦＬＥＸＲＡＹユニット、ＳＰＩユニット、ＵＡＲＴユニット、ＡＤＣユニットを含むものとする。
【００２４】
実施の形態１にかかるプロセッサエレメントＰＥは、特定プログラムを含むプログラムを実行して周辺装置へのアクセス要求を出力すると共に、第１の設定値を参照して実行したプログラムが特定プログラムであるか否かを判断する。この第１の設定値は、特定プログラムが格納された特定コード領域のアドレス範囲に対応する設定値である。実施の形態１では、プロセッサエレメントＰＥが第１の設定値を保持する特定コード領域設定レジスタを有するものとする。
【００２５】
また、実施の形態１にかかる周辺装置は、特定プログラムが利用する特定データを格納する特定データ格納領域を有する。実施の形態１では、周辺装置には、第１の命令メモリ、データメモリ、Ｉ／Ｏ、ＷＤユニット、タイマを含むものとする。
【００２６】
また、実施の形態１にかかるプロセッサエレメントＰＥは、アクセス要求が特定プログラムの実行結果によるものである場合は周辺装置との間で送受信するデータ及びアドレスの少なくとも１つにエラー訂正符号情報を付加する。そして、実施の形態１にかかるプロセッサエレメントＰＥは、当該エラー訂正符号情報により、周辺装置との間で送受信されるデータの信頼性を向上させる。なお、周辺バスとシステムバスは、周辺バスブリッジを介して接続される。周辺バスブリッジは、周辺バスに接続される周辺装置へのアクセス要求の調停処理を行う。
【００２７】
上記説明のようなエラー訂正付加情報に基づくエラー訂正処理又はエラー検出処理を行うために、プロセッサエレメントＰＥ及び周辺装置は、エラー訂正処理又はエラー検出処理を行うための構成を有する。そこで、以下では、プロセッサエレメントＰＥ及び周辺装置についてさらに詳細に説明を行う。
【００２８】
プロセッサエレメントＰＥは、コード判定部１、演算部２を有する。演算部２は、プログラムを実行する演算コアである。コード判定部１は、第１の設定値を参照し、演算部２が実行しているプログラムのコードに基づき生成するプログラムカウント値が特定プログラムものであるか否かを判断する。そして、コード判定部１は、演算部２が実行しているプログラムが特定プログラムである場合は、プロセッサエレメントＰＥが出力する特定コード領域判定信号（以下、ＥＣＣモード信号ＥＣＣ＿ＲＱと称す）をイネーブル状態とする。
【００２９】
図２に示すように、演算部２は、命令フェッチ制御部１０、命令デコード部１１、演算実行部１２、ライトバック制御部１３、レジスタファイル１４、バス制御部１５を有する。図２に示す例では、レジスタファイル１４には、演算実行部１２の処理により更新されたプログラムカウント値ＰＣが格納される。
【００３０】
命令フェッチ制御部１０は、レジスタファイル１４に格納されたプログラムカウント値ＰＣを参照してフェッチアドレスを生成する。命令フェッチ制御部１０は、このフェッチアドレスによりバス制御部１５を介して第１の命令メモリへのアクセスを行う。そして、命令フェッチ制御部１０は、第１の命令メモリのフェッチアドレスに対応する領域からプログラムのコードをフェッチする。命令フェッチ制御部１０は、フェッチした命令を命令デコード部１１に対して発行する。なお、以下の説明では、フェッチした命令を命令情報と称す。
【００３１】
命令デコード部１１は、命令フェッチ制御部１０が発行した命令情報をデコードして演算命令を生成する。また、命令デコード部１１は、演算命令のデコードと合わせて、当該演算命令のプログラムカウント値ＰＣを生成する。そして、命令デコード部１１は、演算命令と当該演算命令に対応したプログラムカウント値ＰＣを演算実行部１２に出力する。また、命令デコード部１１は、レジスタファイルに出力する演算命令において利用されるデータがある場合は、当該データを演算実行部１２に出力する。なお、命令デコード部１１は、演算実行部１２に出力する演算命令が利用するデータについて、当該データのレジスタファイル１４中の位置を示すレジスタアドレスを出力しても良い。
【００３２】
演算実行部１２は、命令デコード部１１が出力した演算命令に基づき演算処理を実行する。また、演算実行部１２は、実行中の演算命令に対応したプログラムカウント値ＰＣをコード判定部１に出力する。
【００３３】
ライトバック制御部１３は、演算実行部１２の実行結果をレジスタファイル１４に書き込む。このとき、ライトバック制御部１３は、演算実行部１２における処理で新たに生成されたプログラムカウント値ＰＣを実行結果と共にレジスタファイルに書き込む。レジスタファイル１４は、演算実行部１２の処理結果のデータ及び演算実行部１２により生成されたプログラムカウント値ＰＣを格納する。
【００３４】
バス制御部１５は、演算実行部１２からの指示に基づき、システムバスを介して周辺装置とデータの送受信を行う。例えば、バス制御部１５は、演算実行部１２が処理した演算命令がリード命令であった場合、アクセス要求ＲＱとしてリード命令を出力し、このリード命令と共にリードするデータの位置を示すアクセスアドレスＡＤＤを出力する。そして、周辺装置がアクセス要求に応じて出力したリードデータを受信すると、当該リードデータを演算実行部１２に渡す。また、バス制御部１５は、演算実行部１２が処理した演算命令がライト命令であった場合、アクセス要求ＲＱとしてライト命令を出力し、このライト命令と共にデータの書き込み位置を示すアクセスアドレスＡＤＤと、書き込み対象のデータを出力する。さらに、バス制御部１５は、演算実行部１２を介して得たＥＣＣモード信号ＥＣＣ＿ＲＱをアクセス要求ＲＱと共に出力する。
【００３５】
コード判定部１は、特定コード領域判定部１６、特定コード領域設定レジスタ１７を有する。特定コード領域判定部１６は、演算実行部１２から実行中の演算命令に関するプログラムカウント値ＰＣを受け取り、当該プログラムカウント値ＰＣが第１の設定値で示される特定プログラムカウント範囲値ＳＣの範囲内の値であるか否かを判断する。そして、特定コード領域判定部１６は、プログラムカウント値ＰＣが特定プログラムカウント範囲値の範囲内である場合、演算実行部１２で実行されている演算命令は、特定プログラムのものである判断し、演算実行部１２を介してイネーブル状態のＥＣＣモード信号ＥＣＣ＿ＲＱを出力する。一方、特定コード領域判定部１６は、プログラムカウント値ＰＣが特定プログラムカウント範囲値の範囲外である場合、演算実行部１２で実行されている演算命令は、特定プログラム以外のプログラムのものである判断し、演算実行部１２を介してディスイネーブル状態のＥＣＣモード信号ＥＣＣ＿ＲＱを出力する。
【００３６】
特定コード領域設定レジスタ１７は、第１の設定値を保持する。この第１の設定値は、特定プログラムが格納される特定コード領域のアドレス範囲に対応する値である。実施の形態１では、演算実行部１２で実行中の演算命令が特定プログラムに属するものであるか否かを判断するため、この第１の設定値として特定コード領域のアドレス範囲に対応するプログラムカウント値ＰＣの範囲を設定する。特定コード領域設定レジスタ１７は、特定プログラムに対応するプログラムカウント値ＰＣの範囲を示す値として特定プログラムカウント範囲値ＳＣを出力する。なお、実施の形態１では、第１の設定値がアドレス範囲を示すものであるため、特定コード領域設定レジスタ１７は、アドレス範囲の上位側のアドレスを格納する第１のレジスタと下位側のアドレスを格納する第２のレジスタとを有する。なお、特定コード領域設定レジスタ１７は、プロセッサエレメントＰＥとは異なる領域に配置されていても良い。
【００３７】
また、実施の形態１にかかるプロセッサシステムでは、特定コード領域設定レジスタ１７への第１の設定値の格納処理は、プロセッサエレメントＰＥをリセットした後の初期値設定処理中に行う。
【００３８】
ここで、実施の形態１にかかるプロセッサシステムにおける特定コード領域を説明するための概念図を図３に示す。図３に示すように、特定コード領域は、メモリ空間マップに対応する領域として定義される。特定コード領域判定部１６は、プログラムカウント値ＰＣを基準としたメモリ空間マップを有する。そして、特定コード領域は、例えば、第１の命令メモリの特定コード領域に格納された命令情報をデコードした演算命令に対応するプログラムカウント値ＰＣの範囲として規定される。実施の形態１にかかるプロセッサシステムでは、この特定コード領域を定義するプログラムカウント値ＰＣとして、高い信頼性が要求される高信頼タスク関する演算命令に対応するプログラムカウント値ＰＣを用いる。
【００３９】
続いて、実施の形態１にかかるプロセッサシステムのバス制御部１５と周辺機器との詳細について説明する。周辺機器は、機能が異なるが、本発明において重要なシステムバスを介してデータを送受信する構成については共通であるため、以下の説明では、周辺装置の代表例として第１の命令メモリについて説明する。図４に、実施の形態１にかかるプロセッサシステムのバス制御部１５と周辺機器との詳細なブロック図を示す。図４に示すように、バス制御部１５は、バスインタフェース２０、セレクタ２１、第１のエラー訂正処理部（例えば、ＥＣＣエンコーダ２２）、ＥＣＣ訂正回路２３を有する。
【００４０】
バスインタフェース２０は、システムバスに対するデータ及びアドレスの出力処理及びシステムバスからのデータの入力処理を行う。このとき、バスインタフェース２０は、演算実行部１２又は命令フェッチ制御部１０からアクセスアドレスＡＤＤの入力があった場合、当該アドレスの入力に応じてシステムバスにアクセス要求ＲＱを出力する。また、バスインタフェース２０は、アクセスアドレスＡＤＤと共にライトデータＷｄａｔが入力された場合は、アクセス要求ＲＱと共に書き込み制御信号ＷＲを出力し、アクセスアドレスＡＤＤと共にライトデータＷｄａｔの入力がなかった場合は、アクセス要求ＲＱと共に読み出し制御信号ＲＤを出力する。また、バスインタフェース２０は、アクセス要求ＲＱと共に演算実行部１２を介して得たＥＣＣモード信号ＥＣＣ＿ＲＱ及びライトデータＷｄａｔとＥＣＣエンコーダ２２が出力する第１のエラー訂正コード（例えば、ＥＣＣコードＥＣＣ＿Ｗｄａｔ）を出力する。一方、バスインタフェース２０は、システムバスを介してアクセス先の周辺装置から応答があった場合、当該応答をＥＣＣ訂正回路２３に伝達する。
【００４１】
セレクタ２１は、命令フェッチ制御部１０が出力する選択信号ＳＥＬに応じて命令フェッチ制御部１０が出力するアクセスアドレスＡＤＤ１と演算実行部１２が出力するアクセスアドレスＡＤＤ２とのいずれか一方を選択してバスインタフェース２０に出力する。選択信号ＳＥＬは、第１の状態（例えば、１）を基本的な値として有し、命令フェッチ制御部１０が命令情報をフェッチする期間のみ第２の状態（例えば、０）となる信号である。
【００４２】
ＥＣＣエンコーダ２２は、ライトデータＷｄａｔの入力があった場合に、入力されたライトデータＷｄａｔに対応するＥＣＣコードＥＣＣ＿Ｗｄａｔを生成する。このＥＣＣコードＥＣＣ＿Ｗｄａｔは、ＥＣＣモード信号ＥＣＣ＿ＲＱがディスイネーブル状態（例えば、０）である場合、アクセス側の周辺装置で破棄される。一方、ＥＣＣコードＥＣＣ＿Ｗｄａｔは、ＥＣＣモード信号ＥＣＣ＿ＲＱがイネーブル状態（例えば、１）である場合、アクセス先の周辺装置においてライトデータＷｄａｔと共に記憶される。また、アクセス先の周辺装置では、ＥＣＣモード信号ＥＣＣ＿ＲＱがイネーブル状態である場合、ライトデータＷｄａｔと共にＥＣＣモード信号ＥＣＣ＿ＲＱの値も記憶される。
【００４３】
ＥＣＣ訂正回路２３は、バスインタフェース２０から与えられた応答に基づき、命令フェッチ制御部１０又は演算実行部１２にリードデータ及びエラー信号を出力する。より具体的には、本実施の形態では、応答には、エラー応答ＥＲＲ＿ＲＥＳ、リードデータＲｄａｔ、応答ＥＣＣコードＥＣＣ＿Ｒｄａｔ及び応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳが含まれる。なお、応答ＥＣＣコードＥＣＣ＿Ｒｄａｔ及び応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳは、リードデータＲｄａｔと共にアクセス先の周辺装置に記憶されているものである。
【００４４】
ＥＣＣ訂正回路２３は、応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳがイネーブル状態であった場合、応答ＥＣＣコードＥＣＣ＿Ｒｄａｔに基づきリードデータＲｄａｔのエラーの訂正を行う。このとき、ＥＣＣ訂正回路２３は、リードデータＲｄａｔにエラーが存在していた場合、エラー信号ＥＲＲを出力する。また、ＥＣＣ訂正回路２３は、アクセス要求ＲＱがアクセス先の周辺装置において拒絶されたことをエラー応答ＥＲＲ＿ＲＥＳが示す場合、エラー信号ＥＲＲを出力する。
【００４５】
続いて、周辺装置の１つである第１の命令メモリについて説明する。図４に示すように、第１の命令メモリは、データ格納部３０、ＥＣＣエラー検出回路３１、エラー制御回路３２を有する。
【００４６】
データ格納部３０は、第１の命令メモリにおいて命令情報及びその他データを格納するメモリである。このデータ格納部３０では、アクセスアドレスＡＤＤにより指定された領域にライトデータＷｄａｔ、ＥＣＣコードＥＣＣ＿Ｗｄａｔ及びＥＣＣモード信号ＥＣＣ＿ＲＱの値を一組のデータとして格納する。また、データ格納部３０は、読み出し要求ＲＤに応じてライトデータＷｄａｔ、ＥＣＣコードＥＣＣ＿Ｗｄａｔ及びＥＣＣモード信号ＥＣＣ＿ＲＱの値を一組のデータとして出力する。
【００４７】
ＥＣＣエラー検出回路３１は、ＥＣＣモード信号ＥＣＣ＿ＲＱがイネーブル状態を示す場合、ＥＣＣコードＥＣＣ＿Ｗｄａｔに基づきライトデータＷｄａｔのエラーを検出する。そして、ＥＣＣエラー検出回路３１は、ライトデータＷｄａｔにエラーが存在した場合、検出信号ＤＥＴ１を出力する。
【００４８】
エラー制御回路３２は、検出信号ＤＥＴ１がライトデータＷｄａｔにエラーが存在していることを示す場合、エラー応答ＥＲＲ＿ＲＥＳを生成する。このエラー応答ＥＲＲ＿ＲＥＳは、システムバスを介してプロセッサエレメントＰＥに送信される。
【００４９】
続いて、実施の形態１にかかるプロセッサエレメントＰＥで実行される演算命令と、当該演算命令に対応したバスアクセス処理について説明する。実施の形態１にかかるプロセッサエレメントＰＥでは、バスアクセスが発生する処理は、主にストア命令ＳＴとロード命令ＬＤである。そこで、以下の説明では、ストア命令ＳＴと、ロード命令ＬＤが実行された場合にバス制御回路１５に入出力されるデータについて説明する。
【００５０】
ここで、プロセッサエレメントＰＥがストア命令ＳＴと、ロード命令ＬＤとを実行した場合の動作を示すタイミングチャートを図５〜図１０に示す。なお、図５〜図１０においては、実行ステージの上段にバス制御部１５以外のブロックの実行ステージを示し、下段にバス制御部１５の実行ステージを示した。
【００５１】
図５〜図１０に示すように、プロセッサエレメントＰＥがストア命令ＳＴとロード命令ＬＤを実行した場合、処理サイクルＣ０、Ｃ１の処理（ＩＦ、ＩＤステージ）は同じ動作となる。そして、ＥＸステージの処理結果は実行する命令に応じて異なるため、プロセッサエレメントＰＥの処理サイクルＣ２以降の実行処理が異なる。
【００５２】
なお、処理サイクルＣ０のＩＦステージでは、プロセッサエレメントＰＥは、命令フェッチ制御部１０においてストア命令情報をフェッチする。処理サイクルＣ１のＩＤステージでは、プロセッサエレメントＰＥは、命令デコード部１１においてストア命令情報をデコードして演算命令を生成する。また、ＩＤステージでは、命令デコード部１１が、生成した演算命令に対応するプログラムカウント値ＰＣを生成する。以下の説明では、演算命令毎に対応する図面を参照して処理サイクルＣ２以降のプロセッサエレメントＰＥの動作について説明する。
【００５３】
図５は、非特定コード領域に格納されるストア命令（通常タスクに属するストア命令）をプロセッサエレメントＰＥが実行した場合のプロセッサエレメントＰＥの処理を示すタイミングチャートである。通常タスクに属すストア命令ＳＴを実行する場合、処理サイクルＣ２のＥＸステージでは、プロセッサエレメントＰＥは、演算実行部１２において演算命令を実行する。また、このＥＸステージでは、実行した演算命令に対応したプログラムカウント値ＰＣを特定コード領域判定部１６に与える。そして、図５に示す例では、ストア命令ＳＴが非特定コード領域に格納されていたものであるため、特定コード領域判定部１６が演算実行部１２を介してディスイネーブル状態（例えば、０）のＥＣＣモード信号ＥＣＣ＿ＲＱを出力する。また、処理サイクルＣ２のＥＸステージでは、演算実行部１２は、ストア命令を実行し、ストアすべきライトデータＷｄａｔ（例えば、ライトデータＤ０）が格納される領域を指定するアクセスアドレスＡＤＤ（例えば、アクセスアドレスＡ０）を生成する。
【００５４】
続いて、処理サイクルＣ３のＤＴステージでは、演算実行部１２は、アクセスアドレスＡ０、ライトデータＤ０及びＥＣＣモード信号ＥＣＣ＿ＲＱをバス制御部１５に伝達する。そして、処理サイクルＣ３のＲＱステージでは、バス制御部１５が受信したアクセスアドレスＡ０、ライトデータＤ０及びＥＣＣモード信号ＥＣＣ＿ＲＱをバスに出力する。また、ＲＱステージでは、バスインタフェース２０がアクセスアドレスＡ０、ライトデータＤ０及びＥＣＣモード信号ＥＣＣ＿ＲＱを受信したことに応じて、アクセスモードを書き込みモードＷＲとしたバスリクエストＲＱをバスに出力する。
【００５５】
そして、処理サイクルＣ４のＤＦ１ステージにおいて、バス制御部１５は、ＲＱステージで発行したバスアクセスに対応した応答を受信する。図５に示す例では、応答にディスイネーブル状態（例えば、０）の応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳと、アクセス成功を示す値（例えば、Ｆｉｎ）を有するエラー応答ＥＲＲ＿ＲＥＳと、が含まれる。従って、ＤＦ１ステージでは、バス制御部１５のＥＣＣ訂正回路２３が、これら応答に基づきアクセスの正常完了を示すエラー信号ＥＲＲを生成する。そして、処理サイクルＣ４のＤＦ２ステージにおいて、演算実行部１２は、バス制御部１５からエラー信号ＥＲＲを受信する。続いて、処理サイクルＣ５のＷＢステージにおいて、演算実行部１２は、ライトバック制御部１３を介してレジスタファイルにアクセスが正常に完了したことを格納する。
【００５６】
図６は、非特定コード領域に格納されるロード命令（通常タスクに属するロード命令）をプロセッサエレメントＰＥが実行した場合のプロセッサエレメントＰＥの処理を示すタイミングチャートである。通常タスクに属すロード命令ＬＤを実行する場合、処理サイクルＣ２のＥＸステージでは、プロセッサエレメントＰＥは、演算実行部１２において演算命令を実行する。また、このＥＸステージでは、実行した演算命令に対応したプログラムカウント値ＰＣを特定コード領域判定部１６に与える。そして、図６に示す例では、ロード命令ＬＤが非特定コード領域に格納されていたものであるため、特定コード領域判定部１６が演算実行部１２を介してディスイネーブル状態（例えば、０）のＥＣＣモード信号ＥＣＣ＿ＲＱを出力する。また、処理サイクルＣ２のＥＸステージでは、演算実行部１２は、ロード命令を実行し、ロードすべきリードデータＲｄａｔ（例えば、リードデータＤ１）が格納される領域を指定するアクセスアドレスＡＤＤ（例えば、アクセスアドレスＡ１）を生成する。
【００５７】
続いて、処理サイクルＣ３のＤＴステージでは、演算実行部１２は、アクセスアドレスＡ１及びＥＣＣモード信号ＥＣＣ＿ＲＱをバス制御部１５に伝達する。そして、処理サイクルＣ３のＲＱステージでは、バス制御部１５が受信したアクセスアドレスＡ１及びＥＣＣモード信号ＥＣＣ＿ＲＱをバスに出力する。また、ＲＱステージでは、バスインタフェース２０がアクセスアドレスＡ１及びＥＣＣモード信号ＥＣＣ＿ＲＱを受信したことに応じて、アクセスモードを読み出しモードＲＤとしたバスリクエストＲＱをバスに出力する。
【００５８】
そして、処理サイクルＣ４のＤＦ１ステージにおいて、バス制御部１５は、ＲＱステージで発行したバスアクセスに対応した応答を受信する。図６に示す例では、応答にリードデータＤ１と、ディスイネーブル状態（例えば、０）の応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳと、アクセス成功を示す値（例えば、Ｆｉｎ）を有するエラー応答ＥＲＲ＿ＲＥＳと、が含まれる。従って、ＤＦ１ステージでは、バス制御部１５のＥＣＣ訂正回路２３が、これら応答に基づきアクセスの正常完了を示すエラー信号ＥＲＲを生成する。また、図６に示す例では、ＥＣＣ訂正回路２３は、受信したリードデータＤ１を演算実行部１２に伝達する。そして、処理サイクルＣ４のＤＦ２ステージにおいて、演算実行部１２は、バス制御部１５からエラー信号ＥＲＲ及びリードデータＤ１を受信する。続いて、処理サイクルＣ５のＷＢステージにおいて、演算実行部１２は、ライトバック制御部１３を介してレジスタファイルにアクセスが正常に完了したこと、及び、リードデータＤ１を格納する。
【００５９】
図７は、特定コード領域に格納されるストア命令（高信頼タスクに属するストア命令）をプロセッサエレメントＰＥが実行した場合のプロセッサエレメントＰＥの処理を示すタイミングチャートである。高信頼タスクに属すストア命令ＳＴを実行する場合、処理サイクルＣ２のＥＸステージでは、プロセッサエレメントＰＥは、演算実行部１２において演算命令を実行する。また、このＥＸステージでは、実行した演算命令に対応したプログラムカウント値ＰＣを特定コード領域判定部１６に与える。そして、図７に示す例では、ストア命令ＳＴが特定コード領域に格納されていたものであるため、特定コード領域判定部１６が演算実行部１２を介してイネーブル状態（例えば、１）のＥＣＣモード信号ＥＣＣ＿ＲＱを出力する。また、処理サイクルＣ２のＥＸステージでは、演算実行部１２は、ストア命令を実行し、ストアすべきライトデータＷｄａｔ（例えば、ライトデータＤ２）が格納される領域を指定するアクセスアドレスＡＤＤ（例えば、アクセスアドレスＡ２）を生成する。
【００６０】
そして、高信頼タスクに属するストア命令を実行した場合、ＤＴステージに２処理サイクルを要する。高信頼タスクに属するストア命令を実行する場合、まず、処理サイクルＣ３のＥＮＣステージにおいて、バス制御部１５のＥＣＣ訂正回路２３がイネーブル状態のＥＣＣモード信号ＥＣＣ＿ＲＱに応じてライトデータＤ２に対応するＥＣＣコードＥＣＣ＿Ｗｄａｔを生成する。続いて、処理サイクルＣ４のＤＴステージにおいて、演算実行部１２は、アクセスアドレスＡ２、ライトデータＤ２及びＥＣＣモード信号ＥＣＣ＿ＲＱをバス制御部１５に伝達する。そして、処理サイクルＣ４のＲＱステージでは、バス制御部１５が受信したアクセスアドレスＡ２、ライトデータＤ２、ＥＣＣモード信号ＥＣＣ＿ＲＱ及びＥＣＣコードＥＣＣ＿Ｗｄａｔをバスに出力する。また、ＲＱステージでは、バスインタフェース２０がアクセスアドレスＡ２、ライトデータＤ２、ＥＣＣモード信号ＥＣＣ＿ＲＱ及びＥＣＣコードＥＣＣ＿Ｗｄａｔを受信したことに応じて、アクセスモードを書き込みモードＷＲとしたバスリクエストＲＱをバスに出力する。
【００６１】
そして、処理サイクルＣ５のＤＦ１ステージにおいて、バス制御部１５は、ＲＱステージで発行したバスアクセスに対応した応答を受信する。図７に示す例では、応答にディスイネーブル状態（例えば、０）の応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳと、アクセス成功を示す値（例えば、Ｆｉｎ）を有するエラー応答ＥＲＲ＿ＲＥＳと、が含まれる。従って、ＤＦ１ステージでは、バス制御部１５のＥＣＣ訂正回路２３が、これら応答に基づきアクセスの正常完了を示すエラー信号ＥＲＲを生成する。そして、処理サイクルＣ５のＤＦ２ステージにおいて、演算実行部１２は、バス制御部１５からエラー信号ＥＲＲを受信する。続いて、処理サイクルＣ６のＷＢステージにおいて、演算実行部１２は、ライトバック制御部１３を介してレジスタファイルにアクセスが正常に完了したことを格納する。
【００６２】
図８は、特定コード領域に格納されるロード命令（高信頼タスクに属するロード命令）をプロセッサエレメントＰＥが実行した場合のプロセッサエレメントＰＥの処理を示すタイミングチャートである。高信頼タスクに属すロード命令ＬＤを実行する場合、処理サイクルＣ２のＥＸステージでは、プロセッサエレメントＰＥは、演算実行部１２において演算命令を実行する。また、このＥＸステージでは、実行した演算命令に対応したプログラムカウント値ＰＣを特定コード領域判定部１６に与える。そして、図８に示す例では、ロード命令ＬＤが特定コード領域に格納されていたものであるため、特定コード領域判定部１６が演算実行部１２を介してイネーブル状態（例えば、１）のＥＣＣモード信号ＥＣＣ＿ＲＱを出力する。また、処理サイクルＣ２のＥＸステージでは、演算実行部１２は、ロード命令を実行し、ロードすべきリードデータＲｄａｔ（例えば、リードデータＤ３）が格納される領域を指定するアクセスアドレスＡＤＤ（例えば、アクセスアドレスＡ３）を生成する。
【００６３】
続いて、処理サイクルＣ３のＤＴステージでは、演算実行部１２は、アクセスアドレスＡ３及びＥＣＣモード信号ＥＣＣ＿ＲＱをバス制御部１５に伝達する。そして、処理サイクルＣ３のＲＱステージでは、バス制御部１５が受信したアクセスアドレスＡ３及びＥＣＣモード信号ＥＣＣ＿ＲＱをバスに出力する。また、ＲＱステージでは、バスインタフェース２０がアクセスアドレスＡ１及びＥＣＣモード信号ＥＣＣ＿ＲＱを受信したことに応じて、アクセスモードを読み出しモードＲＤとしたバスリクエストＲＱをバスに出力する。なお、実施の形態１にかかるプロセッサエレメントＰＥでは、ロード命令を実行した場合にＥＣＣモード信号ＥＣＣ＿ＲＱが生成されるが、このＥＣＣモード信号ＥＣＣ＿ＲＱは実行した命令が高信頼タスクに属するか否かを示すのみで、アクセス先の周辺装置ではこのＥＣＣモード信号ＥＣＣ＿ＲＱに応じて特に処理は発生しない。
【００６４】
そして、高信頼タスクに属するロード命令を実行した場合、ＤＦステージに２処理サイクルを要する。高信頼タスクに属するロード命令を実行する場合、まず、処理サイクルＣ４のＤＦ１ステージにおいて、バスインタフェース２０がアクセス先の周辺装置からリードデータＤ３、応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳ、応答ＥＣＣコードＥＣＣ＿Ｒｄａｔ、エラー応答ＥＲＲ＿ＲＥＳを受信する。そして、図８に示す例では、応答ＥＣＣモード信号ＥＣＣ＿ＲＥＳがイネーブル状態（例えば、１）を示すため、処理サイクルＣ５のＤＥＣステージにおいて、ＥＣＣ訂正回路２３が応答ＥＣＣコードＥＣＣ＿Ｒｄａｔを用いてリードデータＤ３に対してエラー検出処理及びエラー訂正処理を行う。図８の例は、エラー応答ＥＲＲ＿ＲＥＳがアクセスの正常終了を示し、かつ、リードデータＲｄａｔにエラーがない場合を示すものであるため、処理サイクルＣ５においてリードデータＥ３が生成される。従って、ＤＥＣステージでは、バス制御部１５のＥＣＣ訂正回路２３が、これら応答に基づきアクセスの正常完了を示すエラー信号ＥＲＲとリードデータＥ３を生成する。また、図８に示す例では、ＥＣＣ訂正回路２３は、生成したリードデータＥ３を演算実行部１２に伝達する。そして、処理サイクルＣ５のＤＦ２ステージにおいて、演算実行部１２は、バス制御部１５からエラー信号ＥＲＲ及びリードデータＤ１を受信する。続いて、処理サイクルＣ６のＷＢステージにおいて、演算実行部１２は、ライトバック制御部１３を介してレジスタファイルにアクセスが正常に完了したこと、及び、リードデータＥ３を格納する。
【００６５】
続いて、図９に、図７に示した動作においてエラー応答ＥＲＲ＿ＲＥＳがアクセスの失敗したことを示す値（例えば、Ｅｒｒ）であった場合のプロセッサエレメントＰＥの動作を示す。
【００６６】
図９に示す例では、処理サイクルＣ５において、アクセスが失敗したことを示すエラー応答ＥＲＲ＿ＲＥＳをバス制御部１５が受信する。そのため、図９に示す例では、処理サイクルＣ５のＤＦ１ステージにおいて、ＥＣＣ訂正回路２３がエラー信号ＥＲＲによりアクセスが失敗したことを演算実行部１２に通知する。そして、処理サイクルＣ５のＤＦ２ステージにおいて、演算実行部１２がリトライ処理を開始する。このリトライ処理は、図７で説明した処理サイクルＣ３〜Ｃ５の処理を処理サイクルＣ６〜Ｃ８において行うものである。
【００６７】
そして、図９に示す例では、処理サイクルＣ８において、アクセスが正常終了したことを示すエラー応答ＥＲＲ＿ＲＥＳをバス制御部１５が受信する。そして、処理サイクルＣ８で受信したエラー応答ＥＲＲ＿ＲＥＳに応じて、プロセッサエレメントＰＥは、図７の処理サイクルＣ５、Ｃ６の処理を処理サイクルＣ８、Ｃ９で行うことでストア命令の実行を完了する。
【００６８】
また、図１０に、図８に示した動作においてエラー応答ＥＲＲ＿ＲＥＳがアクセスの失敗したことを示す値（例えば、Ｅｒｒ）であった場合のプロセッサエレメントＰＥの動作を示す。
【００６９】
図１０に示す例では、処理サイクルＣ５において、アクセスが失敗したことを示すエラー応答ＥＲＲ＿ＲＥＳをバス制御部１５が受信する。そのため、図１０に示す例では、処理サイクルＣ５のＤＥＣステージにおいて、ＥＣＣ訂正回路２３がエラー信号ＥＲＲによりアクセスが失敗したことを演算実行部１２に通知する。そして、処理サイクルＣ６のＤＦ２ステージにおいて、演算実行部１２がリトライ処理を開始する。このリトライ処理は、図８で説明した処理サイクルＣ３〜Ｃ５の処理を処理サイクルＣ６〜Ｃ８において行うものである。
【００７０】
そして、図１０に示す例では、処理サイクルＣ８において、アクセスが正常終了したことを示すエラー応答ＥＲＲ＿ＲＥＳをバス制御部１５が受信する。そして、処理サイクルＣ８で受信したエラー応答ＥＲＲ＿ＲＥＳに応じて、プロセッサエレメントＰＥは、図８の処理サイクルＣ５、Ｃ６の処理を処理サイクルＣ８、Ｃ９で行うことでロード命令の実行を完了する。
【００７１】
続いて、特定コード領域のコードを含む高信頼タスクと、非特定コード領域のコードのみから構成される通常タスクと、を切り替えながら処理を実行した場合のプロセッサエレメントＰＥの動作について説明する。図１１に、高信頼タスクと通常タスクとの切り替え動作を含むプロセッサエレメントＰＥの動作を示すタイミングチャートを示す。
【００７２】
図１１に示す例では、最初に通常タスクに属するロード命令ＬＤ１、ＬＤ２が実行された後、通常タスクに属するストア命令ＳＴ３、ＳＴ４が実行される。そして、ストア命令ＳＴ４が実行された直後に高信頼タスクに属するロード命令ＬＤ５、ＬＤ６が実行され、ロード命令ＬＤ６に続けて高信頼タスクに属するストア命令ＳＴ７、ＳＴ８が実行される。プロセッサエレメントＰＥでは、このように、実行するタスクを通常タスクから高信頼タスクに切り替えた際にタスクの流れを止めることなく、バスアクセスの処理にＥＣＣコードに基づくエラー訂正処理を追加し、高信頼タスクの信頼性を高めることができる。
【００７３】
ここで、比較例として、実施の形態１にかかる特定コード領域判定部１６を有していないプロセッサエレメントＰＥ１により図１１と同じ処理を行った場合のタイミングチャートを図１２に示す。図１２に示すように、この場合、通常タスクから高信頼タスクへの切り換えの際にＯＳによるタスク切り換え処理が行われる。タスク切り換え処理では、通常タスクのコンテキストの退避、エラー訂正処理の無効から有効への切り換え、高信頼タスクのコンテキストの設定等の処理が行われる。このタスク切り換え処理には数ｍｓｅｃの処理時間を有する。
【００７４】
上述したように、実施の形態１にかかるプロセッサエレメントでは、高信頼タスクに属する演算命令に対応するプログラムカウント値ＰＣを特定コード領域内に定義する。これにより、プロセッサエレメントＰＥは、プログラムカウント値ＰＣに応じて高信頼タスクに対してはエラー訂正処理を有効にしてシステムバスへのアクセスが可能になる。さらに、プロセッサエレメントＰＥは、プログラムカウント値ＰＣに応じて通常タスクに対してはエラー訂正処理を無効にすることができる。つまり、実施の形態１にかかるプロセッサエレメントＰＥではプロセッサシステムでは、エラー訂正処理の有効と無効との切り換えのための処理を要しない。このようなことから、実施の形態１にかかるプロセッサエレメントＰＥでは、通常タスクと高信頼タスクとの切り換えを行う際にパイプラインの処理が途切れることなく行われる。
【００７５】
なお、エラー訂正処理を施してライトデータをデータメモリ、周辺回路のレジスタ等に格納する場合、実施の形態１では、エラー訂正コードとライトデータを含むデータを１つのデータとして格納する。また、エラー訂正処理を行うリードデータは、エラー訂正データを含むデータとして読み出される。
【００７６】
上記説明より、実施の形態１にかかるプロセッサシステムでは、プロセッサエレメントＰＥの特定コード領域判定部１６が現在実行されている演算命令が高信頼タスクに属するものであるか否かをプログラムカウント値ＰＣに基づき判定し、当該判定結果に基づきＥＣＣモード信号ＥＣＣ＿ＲＱの状態を切り換える。そして、バス制御部１５は、ＥＣＣモード信号ＥＣＣ＿ＲＱがイネーブル状態である場合はエラー訂正処理を有効にし、ＥＣＣモード信号ＥＣＣ＿ＲＱがディスイネーブル状態である場合はエラー訂正処理を無効にする。つまり、実施の形態１にかかるプロセッサシステムでは、エラー訂正処理の有効と無効とが実行されているタスクの種類に応じて自動的に切り替わるため、エラー訂正処理の有効と無効との切り換えに当たりＯＳによるタスク切り換え処理を介在させる必要がない。このことから、実施の形態１にかかるプロセッサシステムでは、エラー訂正処理の有効と無効との切り換えを行うことによる処理能力の低下を防止することができる。
【００７７】
このように、ＯＳを介在させることなく、エラー訂正処理の有効と無効とを切り換えることで、高信頼タスクを実行している途中で、割り込み処理が発生した場合に、エラー訂正処理を即座に無効状態とし、高速処理により割り込み処理を実行することができる。このような処理を行うことで、プロセッサシステムにおいて不具合が拡大することを防止し、システムの信頼性を向上させることができる。
【００７８】
また、実施の形態１にかかるプロセッサシステムでは、演算実行部１２において実行されている演算命令が特定コード領域に規定されたプログラムカウント値ＰＣであるか否かによりエラー訂正処理の有効と無効とを切り換える。そのため、この特定コード領域に規定するプログラムカウント値ＰＣを高信頼タスクに対応するものとすることで、実施の形態１にかかるプロセッサシステムでは、高信頼タスクに対してエラー訂正処理を施したデータ転送を保証することができる。さらに、実施の形態１にかかるプロセッサシステムでは、通常タスクに対しては、エラー訂正処理を無効にした処理を行うことを保証することができる。
【００７９】
なお、特定コード領域判定部１６において規定される特定コード領域の設定は、ＯＳ等の特権モードのプログラムのみが設定を変更できる構成とすることで、特権モード以外のタスクが設定を改竄することを防止することができる。
【００８０】
なお、実施の形態１にかかるプロセッサシステムでは、モードレジスタ（不図示）に格納された値に応じて、プログラムカウント値ＰＣの値によらず特定コード領域判定部１６が指定するＥＣＣモード信号ＥＣＣ＿ＲＱの状態をディスイネーブル状態とすることができるように構成することができる。このような処理により、例えば、起動時等においてＯＳ以外のタスクが起動していない状態において高信頼タスクを含む処理が行われたとしても、処理を高速化することができる。
【００８１】
実施の形態２
実施の形態２では、バス制御部１５及び周辺装置の変形例となるバス制御部１５ａ及び周辺装置について説明する。実施の形態２にかかるバス制御部１５ａ及び周辺装置のブロック図を図１３に示す。図１３に示すように、実施の形態２にかかるバス制御部１５ａは、アクセスアドレスＡＤＤに対応する第２のエラー訂正コード（例えば、ＥＣＣコードＥＣＣ＿ＡＤ）を生成する第２のエラー訂正処理部（例えば、ＥＣＣエンコーダ２４）を、実施の形態１で説明したバス制御部１５に追加したものである。また、実施の形態２にかかる周辺装置は、実施の形態１にかかる周辺装置にＥＣＣエラー検出回路３３を追加し、エラー制御回路３２をエラー制御回路３２ａに置き換えてものである。なお、図１３に示した周辺装置は、第１の命令メモリを示すものであるが、他の周辺装置もエラー制御回路３２ａ及びＥＣＣエラー検出回路３３を有する。
【００８２】
ＥＣＣエンコーダ２４は、セレクタ２１とバスインタフェース２０との間に設けられる。そして、ＥＣＣエンコーダ２４は、セレクタ２１が出力したアクセスアドレスＡＤＤのＥＣＣコードＥＣＣ＿ＡＤを生成する。バスインタフェース２０は、ＥＣＣモード信号ＥＣＣ＿ＲＱ、ＥＣＣコードＥＣＣ＿Ｗｄａｔ、ライトデータＷｄａｔ及びアクセスアドレスＡＤＤに加えて、ＥＣＣコードＥＣＣ＿ＡＤを出力する。
【００８３】
ＥＣＣエラー検出回路３３は、アクセスアドレスＡＤＤとＥＣＣコードＥＣＣ＿ＡＤとを受信する。そして、ＥＣＣエラー検出回路３３は、ＥＣＣモード信号ＥＣＣ＿ＲＱがイネーブル状態である場合にＥＣＣコードＥＣＣ＿ＡＤを利用してアクセスアドレスＡＤＤのエラーを検出する。そして、ＥＣＣエラー検出回路３３は、アクセスアドレスＡＤＤのエラーが検出された場合にはエラー検出信号ＤＥＴ２を出力する。エラー制御回路３２ａは、エラー検出信号ＤＥＴ１と、エラー検出信号ＤＥＴ２と、の少なくとも一方がエラーが検出されたことを示す場合にエラー応答ＥＲＲ＿ＲＥＳをアクセスが失敗したことを示す値（例えば、Ｅｒｒ）とする。
【００８４】
つまり、実施の形態２にかかるプロセッサエレメントＰＥは、アクセスアドレスＡＤＤに対してもＥＣＣコードＥＣＣ＿ＡＤを付して周辺装置にアクセスを行う。そこで、実施の形態２にかかるプロセッサエレメントＰＥがストア命令ＳＴ及びロード命令ＬＤを実行した場合の動作について説明する。なお、実施の形態２においても、非特定コード領域に格納されるストア命令ＳＴ及びロード命令ＬＤに関するプロセッサエレメントＰＥの動作は、実施の形態１にかかるプロセッサエレメントＰＥと同じであるため、ここでは、特定コード領域に格納されるストア命令ＳＴ及びロード命令を実行した場合のプロセッサエレメントＰＥの動作について説明する。
【００８５】
図１４に、図７に示したストア命令ＳＴを実施の形態２にかかるプロセッサエレメントＰＥで実行した場合のプロセッサエレメントＰＥの動作を示すタイミングチャートを示す。図１４に示すように、実施の形態２では、処理サイクルＣ３のＥＮＣステージにおいて、アクセスアドレスＡ２に対応するＥＣＣコードＥＣＣ＿ＡＤが生成される。このＥＣＣコードＥＣＣ＿ＡＤは、処理サイクルＣ４のＲＱステージにおいて、バスインタフェース２０からアクセスアドレスＡＤＤと共に出力される。そして、図１４に示す例では、アクセスアドレスＡＤＤが正常に周辺装置に到達するため、処理サイクルＣ５において返信されるエラー応答ＥＲＲ＿ＲＥＳはアクセスが成功したことを示すＦｉｎを示す。
【００８６】
続いて、図１５に、図８に示したロード命令ＬＤを実施の形態２にかかるプロセッサエレメントＰＥで実行した場合のプロセッサエレメントＰＥの動作を示すタイミングチャートを示す。図１５に示すように、実施の形態２では、ロード命令ＬＤにおいても、ＤＴステージに２処理サイクルを要する。まず、処理サイクルＣ３のＥＮＣステージにおいて、アクセスアドレスＡ２に対応するＥＣＣコードＥＣＣ＿ＡＤが生成される。このＥＣＣコードＥＣＣ＿ＡＤは、処理サイクルＣ４のＲＱステージにおいてバスインタフェース２０からアクセスアドレスＡＤＤと共に出力される。そして、図１５に示す例では、アクセスアドレスＡＤＤが正常に周辺装置に到達するため、処理サイクルＣ５において返信されるエラー応答ＥＲＲ＿ＲＥＳはアクセスが成功したことを示すＦｉｎを示す。
【００８７】
また、図１６及び図１７に、図１４及び図１５において、エラー応答ＥＲＲ＿ＲＥＳがアクセスの失敗を示す場合のプロセッサエレメントＰＥの動作を示すタイミングチャートを示す。図１６及び図１７に示すように、エラー応答ＥＲＲ＿ＲＥＳがアクセスの失敗（例えば、Ｅｒｒ）を示す場合、プロセッサエレメントＰＥは、図９及び図１０で示した例のようにリトライ動作を行う。そして、プロセッサエレメントＰＥは、リトライ動作を行う毎にアクセスアドレスＡＤＤに対応するＥＣＣコードＥＣＣ＿ＡＤを出力する。
【００８８】
上記説明より、実施の形態２にかかるバス制御部１５ａを用いることで、アドレスについてもエラーの検出及び訂正を行うことができる。また、バス制御部１５ａでは、アドレスに対するエラー訂正処理の有効と無効との切り換えを、リードデータ及びライトデータと同じ処理により行うため、この処理を追加しても、プロセッサシステムの処理能力の低下の防止及びタスク毎のエラー訂正処理の有無の保証を実現することができる。
【００８９】
また、実施の形態２にかかるプロセッサシステムでは、ＥＣＣエラー検出回路３３においてアクセスアドレスＡＤＤのエラーが検出された場合には、リトライ処理を行う。これにより、実施の形態１にかかるプロセッサシステムでは、一の周辺装置に他の周辺装置に対するバスアクセスが誤って伝達された場合に、当該誤ったアクセスにより伝達されたライトデータＷｄａｔを一の周辺装置に誤って書き込むことを防止することができる。
【００９０】
実施の形態３
実施の形態３では、複数の特定コード領域を有し、複数の特定コード領域に異なるレベルの信頼性が要求されている構成に対応するプロセッサエレメントＰＥについて説明する。まず、実施の形態３にかかるプロセッサエレメントＰＥが扱う特定コード領域を説明するための概念図を図１８に示す。
【００９１】
図１８に示す例では、第１の命令メモリに対応するメモリ空間に第１の特定コード領域と第２の特定コード領域とを有する。そして、第２の特定コード領域は、第１の特定コード領域よりも高い信頼性が要求されているものとする。
【００９２】
実施の形態３にかかるプロセッサエレメントＰＥは、図１８に示す第１の特定コード領域に属する演算命令と第２の特定コード領域に属する演算命令とのいずれに対してもＥＣＣモード信号ＥＣＣ＿ＲＱをイネーブル状態とする。この時、実施の形態３にかかるプロセッサエレメントＰＥでは、ＥＣＣモード信号ＥＣＣ＿ＲＱに、実行した演算命令が第１の特定コード領域のものであるか、第２の特定コード領域のものであるか、を識別する信号を含む。例えば、実施の形態３にかかるＥＣＣモード信号ＥＣＣ＿ＲＱは、２ビットの信号であり、第１の値（例えば、２'ｂ０１）を示す場合は、第１の特定コード領域に属する演算命令が実行されたことを示す。また、実施の形態３にかかるＥＣＣモード信号ＥＣＣ＿ＲＱは、第２の値（例えば、２'ｂ１０）を示す場合は、第２の特定コード領域に属する演算命令が実行されたことを示す。実施の形態３にかかるプロセッサエレメントＰＥは、このようなＥＣＣモード信号ＥＣＣ＿ＲＱを生成する構成を有する、バス制御部以外の構成については実施の形態１にかかるプロセッサエレメントＰＥと基本的な構成は同じであるため、ここでは説明を省略する。
【００９３】
続いて、実施の形態３にかかるプロセッサエレメントＰＥのバス制御部１５ｂのブロック図を図１９に示す。このバス制御部１５ｂは、実施の形態１にかかるバス制御部１５の変形例を示すものである。
【００９４】
図１９に示すように、バス制御部１５ｂは、実施の形態１にかかるバス制御部１５にＥＣＣエンコーダ２５及びセレクタ２６を追加したものである。ＥＣＣエンコーダ２５は、ライトデータＷｄａｔに対応するＥＣＣコードＥＣＣ＿Ｗｄａｔを生成する。ＥＣＣエンコーダ２５が生成するＥＣＣコードＥＣＣ＿Ｗｄａｔは、２ビット分のエラーの検出と訂正とを行いうるものである。つまり、ＥＣＣエンコーダ２５は、第２のレベルのエラー訂正処理を行う。一方、ＥＣＣエンコーダ２２が生成するＥＣＣコードＷｄａｔは、１ビット分のエラーの検出と訂正とを行いうるものである。つまり、ＥＣＣエンコーダ２２は、第１のレベルのエラー訂正処理を行うものである。セレクタ２１は、ＥＣＣモード信号ＥＣＣ＿ＲＱが第１の値を示すものであるときはＥＣＣエンコーダ２２が生成するＥＣＣコードＥＣＣ＿Ｗｄａｔを選択する。また、セレクタ２１は、ＥＣＣモード信号ＥＣＣ＿ＲＱが第２の値を示すものであるときはＥＣＣエンコーダ２２が生成するＥＣＣコードＥＣＣ＿Ｗｄａｔを選択する。
【００９５】
つまり、バス制御部１５ｂは、エラー訂正処理によるエラー訂正能力のレベルを演算命令が属する特定コード領域に基づき切り換える。このバス制御部１５ｂを用いることで、送受信するデータに対するエラー訂正処理の訂正能力を切り換えることができる。例えば、バス制御部１５ｂを用いることで、高信頼タスクについては、高いエラー訂正能力を有するエラー訂正処理を施してデータ転送を行い、通常タスクについては低いエラー訂正能力を有するエラー訂正処理を施してデータ転送を行うことができる。ここで、実施の形態３にかかるバス制御部１５ｂにおいても、実施の形態１にかかるバス制御部１５と同様にＥＣＣモード信号ＥＣＣ＿ＲＱに基づきエラー訂正能力の切り換えを行う。そのため、実施の形態３にかかるバス制御部１５ｂを用いても、実施の形態１と同様に、プロセッサシステムの処理能力の低下の防止及びタスク毎のエラー訂正処理の有無の保証を実現することができる。
【００９６】
実施の形態４
実施の形態４では、バス制御部１５及び周辺装置の変形例となるバス制御部１５ｃ及び周辺装置について説明する。実施の形態４にかかるバス制御部１５ｃ及び周辺装置のブロック図を図２０に示す。図２０に示すように、実施の形態４にかかるバス制御部１５ｃは、アクセスアドレスＡＤＤに対応する第２のエラー訂正コード（例えば、パリティＰＡＲ＿ＡＤ）を生成する第２のエラー訂正処理部（例えば、パリティ付加部２７）を、実施の形態１で説明したバス制御部１５に追加したものである。また、実施の形態４にかかる周辺装置は、実施の形態１にかかる周辺装置にパリティエラー検出３４を追加し、エラー制御回路３２をエラー制御回路３２ａに置き換えてものである。なお、図２０に示した周辺装置は、第１の命令メモリを示すものであるが、他の周辺装置もエラー制御回路３２ａ及びパリティエラー検出回路３４を有する。
【００９７】
パリティ付加部２７は、セレクタ２１とバスインタフェース２０との間に設けられる。そして、パリティ付加部２７は、セレクタ２１が出力したアクセスアドレスＡＤＤのパリティＰＡＲ＿ＡＤを生成する。バスインタフェース２０は、ＥＣＣモード信号ＥＣＣ＿ＲＱ、ＥＣＣコードＥＣＣ＿Ｗｄａｔ、ライトデータＷｄａｔ及びアクセスアドレスＡＤＤに加えて、パリティＰＡＲ＿ＡＤを出力する。
【００９８】
パリティエラー検出回路３４は、アクセスアドレスＡＤＤとパリティＰＡＲ＿ＡＤとを受信する。そして、パリティエラー検出回路３４は、ＥＣＣモード信号ＥＣＣ＿ＲＱがイネーブル状態である場合にパリティＰＡＲ＿ＡＤを利用してアクセスアドレスＡＤＤのエラーを検出する。そして、パリティエラー検出回路３４は、アクセスアドレスＡＤＤのエラーが検出された場合にはエラー検出信号ＤＥＴ２を出力する。エラー制御回路３２ａは、エラー検出信号ＤＥＴ１と、エラー検出信号ＤＥＴ２と、の少なくとも一方がエラーが検出されたことを示す場合にエラー応答ＥＲＲ＿ＲＥＳをアクセスが失敗したことを示す値（例えば、Ｅｒｒ）とする。
【００９９】
つまり、実施の形態４にかかるプロセッサエレメントＰＥは、アクセスアドレスＡＤＤに対してもＥＣＣコードＥＣＣ＿ＡＤの代わりにパリティＰＡＲ＿ＡＤを付して周辺装置にアクセスを行う。このように、アクセスアドレスＡＤＤ、或いは、送受信するデータのエラーを検出するための手段は、ＥＣＣコードのみならず、他の手法を用いることも可能である。
【０１００】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、バス制御部の構成については、複数の実施例の構成を組み合わせて新たな構成とすることは当業者であれば容易に想到できる。
【符号の説明】
【０１０１】
ＰＥ  プロセッサエレメント
１  コード判定部
２  演算部
１０  命令フェッチ制御部
１１  命令デコード部
１２  演算実行部
１３  ライトバック制御部
１４  レジスタファイル
１５、１５ａ〜１５ｃ  バス制御部
１６  特定コード領域判定部
１７  特定コード領域設定レジスタ
２０  バスインタフェース
２１  セレクタ
２２  ＥＣＣエンコーダ
２３  ＥＣＣ訂正回路
２４  ＥＣＣエンコーダ
２５  ＥＣＣエンコーダ
２６  セレクタ
２７  パリティ付加部
３０  データ格納部
３１  ＥＣＣエラー検出回路
３２  エラー制御回路
３２ａ  エラー制御回路
３３  ＥＣＣエラー検出回路
３４  パリティエラー検出回路
【図１】
2013196466.tif 000003
【図２】
2013196466.tif 000004
【図３】
2013196466.tif 000005
【図４】
2013196466.tif 000006
【図５】
2013196466.tif 000007
【図６】
2013196466.tif 000008
【図７】
2013196466.tif 000009
【図８】
2013196466.tif 000010
【図９】
2013196466.tif 000011
【図１０】
2013196466.tif 000012
【図１１】
2013196466.tif 000013
【図１２】
2013196466.tif 000014
【図１３】
2013196466.tif 000015
【図１４】
2013196466.tif 000016
【図１５】
2013196466.tif 000017
【図１６】
2013196466.tif 000018
【図１７】
2013196466.tif 000019
【図１８】
2013196466.tif 000020
【図１９】
2013196466.tif 000021
【図２０】
2013196466.tif 000022