(57)【特許請求の範囲】
【請求項１】
集積回路と、
前記集積回路とデータバスで接続されている中央処理部と、
を有するデータバス診断機能を備えた制御装置であって、
前記集積回路は、
前記中央処理部からアクセスされ、所定の安全関連部の動作状態を規定するデータを記憶する安全関連記憶部と、
前記中央処理部からアクセスされ、所定の非安全関連部の動作状態を規定するデータを記憶する非安全関連記憶部と、
データバス診断記憶部と、
バス診断アドレス判定部と、を備え、
前記バス診断アドレス判定部は、前記中央処理部のアクセス先のアドレスに基づき、前記中央処理部のアクセス先が前記安全関連記憶部であるときは、前記データバス診断記憶部にバス診断信号を供給し、前記中央処理部のアクセス先が前記非安全関連記憶部であるときは、前記データバス診断記憶部にバス診断信号を供給せず、
前記バス診断アドレス判定部から前記バス診断信号を受けた前記データバス診断記憶部は、前記安全関連記憶部に格納されたデータを格納し、
前記データバス診断記憶部に前記安全関連記憶部に格納されたデータが格納された後、前記中央処理部は、前記データバス診断記憶部に格納されたデータ及び前記安全関連部に格納されたデータを読み出し、前記データバス診断記憶部に格納されたデータと前記安全関連記憶部に格納されたデータを比較することでデータバス上の転送エラーを検出する
ことを特徴とするデータバス診断機能を備えた制御装置。
【請求項２】
請求項１記載のデータバス診断機能を備えた制御装置であって、
前記集積回路の前記データバス診断記憶部は、前記中央処理部の割込レベルの数に対応して複数設けられ、
前記集積回路はさらに、
前記中央処理部が前記安全関連記憶部にアクセスする際の割込レベルを示すデータを格納する割込レベル記憶部と、
前記割込レベル記憶部に格納されたデータに基づいて、複数の前記データバス診断記憶部からいずれか１つを選択し、選択された１つのデータバス診断記憶部に、前記バス診断アドレス判定部から供給された前記バス診断信号を供給する選択回路と、
を備えることを特徴とするデータバス診断機能を備えた制御装置。
【請求項３】
集積回路と、
前記集積回路とアドレスバスで接続されている中央処理部と、
を有するアドレスバス診断機能を備えた制御装置であって、
前記集積回路は、
前記中央処理部からアクセスされ、所定の安全関連部の動作状態を規定するデータを記憶する安全関連記憶部と、
前記中央処理部からアクセスされ、所定の非安全関連部の動作状態を規定するデータを記憶する非安全関連記憶部と、
アドレスバス診断記憶部と、
バス診断アドレス判定部と、を備え、
前記バス診断アドレス判定部は、前記中央処理部のアクセス先のアドレスに基づき、前記中央処理部のアクセス先が前記安全関連記憶部であるときは、前記アドレスバス診断記憶部にバス診断信号を供給し、前記中央処理部のアクセス先が前記非安全関連記憶部であるときは、前記アドレスバス診断記憶部にバス診断信号を供給せず、
前記バス診断アドレス判定部から前記バス診断信号を受けた前記アドレスバス診断記憶部は、前記中央処理部から供給される前記安全関連記憶部のアドレスを格納し、
前記アドレスバス診断記憶部に前記安全関連記憶部のアドレスが格納された後、前記中央処理部は、前記アドレスバス診断記憶部に格納されたアドレスを読み出し、前記アドレスバス診断記憶部に格納されたアドレスと前記安全関連記憶部のアドレスを比較することでアドレスバス上の転送エラーを検出する
ことを特徴とするアドレスバス診断機能を備えた制御装置。
【請求項４】
請求項３記載のアドレスバス診断機能を備えた制御装置であって、
前記集積回路の前記アドレスバス診断記憶部は、前記中央処理部の割込レベルの数に対応して複数設けられ、
前記集積回路はさらに、
前記中央処理部が前記安全関連記憶部にアクセスする際の割込レベルを示すデータを格納する割込レベル記憶部と、
前記割込レベル記憶部に格納されたデータに基づいて、複数の前記アドレスバス診断記憶部からいずれか１つを選択し、選択された１つのアドレスバス診断記憶部に、前記バス診断アドレス判定部から供給された前記バス診断信号を供給する選択回路と、
を備えることを特徴とするアドレスバス診断機能を備えた制御装置。
【請求項５】
集積回路と、
前記集積回路とデータバス及びアドレスバスで接続されている中央処理部と、
を有するデータバス及びアドレスバス診断機能を備えた制御装置であって、
前記集積回路は、
前記中央処理部からアクセスされ、所定の安全関連部の動作状態を規定するデータを記憶する安全関連記憶部と、
前記中央処理部からアクセスされ、所定の非安全関連部の動作状態を規定するデータを記憶する非安全関連記憶部と、
データバス診断記憶部と、
アドレスバス診断記憶部と、
バス診断アドレス判定部と、を備え、
前記バス診断アドレス判定部は、前記中央処理部のアクセス先のアドレスに基づき、前記中央処理部のアクセス先が前記安全関連記憶部であるときは、前記データバス診断記憶部及びアドレスバス診断記憶部にバス診断信号を供給し、前記中央処理部のアクセス先が前記非安全関連記憶部であるときは、前記データバス診断記憶部及びアドレスバス診断記憶部にバス診断信号を供給せず、
前記バス診断アドレス判定部から前記バス診断信号を受けた前記データバス診断記憶部は、前記安全関連記憶部に格納されたデータを格納し、
前記バス診断アドレス判定部から前記バス診断信号を受けた前記アドレスバス診断記憶部は、前記中央処理部から供給される前記安全関連記憶部のアドレスを格納し、
前記データバス診断記憶部に前記安全関連記憶部に格納されたデータが格納され、前記アドレスバス診断記憶部に前記安全関連記憶部のアドレスが格納された後、前記中央処理部は、前記データバス診断記憶部に格納されたデータ、前記アドレスバス診断記憶部に格納されたアドレス及び前記安全関連部に格納されたデータを読み出し、前記データバス診断記憶部に格納されたデータと前記安全関連記憶部に格納されたデータを比較することでデータバス上の転送エラーを検出し、前記アドレスバス診断記憶部に格納されたアドレスと前記安全関連記憶部のアドレスを比較することでアドレスバス上の転送エラーを検出する
ことを特徴とするデータバス及びアドレス診断機能を備えた制御装置。
【請求項６】
請求項５記載のデータバス及びアドレスバス診断機能を備えた制御装置であって、
前記集積回路の前記データバス診断記憶部及び前記アドレスバス診断記憶部は、前記中央処理部の割込レベルの数に対応して複数設けられ、
前記集積回路はさらに、
前記中央処理部が前記安全関連記憶部にアクセスする際の割込レベルを示すデータを格納する割込レベル記憶部と、
前記割込レベル記憶部に格納されたデータに基づいて、複数の前記データバス診断記憶部からいずれか１つを選択し、複数の前記アドレスバス診断記憶部からいずれか１つを選択し、選択された１つのデータバス診断記憶部とアドレスバス診断記憶部との組に、前記バス診断アドレス判定部から供給された前記バス診断信号を供給する選択回路と、
を備えることを特徴とするデータバス及びアドレスバス診断機能を備えた制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス診断機能を備えた制御装置に関し、特に安全関連部と非安全関連部が混在する制御装置においての、バス上の転送エラー検出をする技術に関する。
【背景技術】
【０００２】
安全関連部を有する制御装置において、中央処理部と集積回路が安全関連部に含まれる場合には、両者の間で授受される安全関連データに誤転送が発生したことで危険な動作が発生することを防止するため、中央処理部のデータバスに、パリティビットやＥＣＣビットを付加し、データ転送誤りを診断するのが一般的である。このような診断を行うためには、中央処理部内にパリティチェック等の診断機能を有する必要があるのに対し、近年開発された高性能な組み込み用途の中央処理部は、ほとんどの品種が外部データバスにパリティチェック等の診断機能を持たないので、この手法をとることができない。なお、安全関連部とは、故障や誤操作によりシステムが誤動作をすることで使用者に危険な機械動作が発生しないようにする機能安全を実行する回路ならびにソフトウェア部分のことである。
【０００３】
図６は、中央処理部であるＣＰＵ１ｂのＩＣパッケージ内にＣＰＵバスのパリティ処理回路を備えた従来の制御装置の構成例を示すブロック図である。この例ではＣＰＵ１ｂのパッケージ内に、外部デバイスである集積回路６ｃにデータを書き込む際にデータバス２上のデータの全ビットに対するパリティ３１を演算するためのパリティ生成回路３０と、集積回路６ｃからデータを読み出した際に、データバス２上のデータとパリティ３１との整合性がとれているかをチェックし、異常時にエラーをＣＰＵコアに知らせるためのパリティエラー検出回路３２を備えている。このようなパリティチェック機能を内蔵したＣＰＵでは、図６に示すように、集積回路６ｃ内に、入出力バッファ７を通過したデータバス２とパリティ３１からパリティエラーを検出する、パリティエラー検出回路３３を設け、書込制御信号ＷＲＮ４が有効時にレジスタ群３４に対して、誤ったデータが書き込まれるのを防止する。また、レジスタ群３４の値をＣＰＵ１ｂが読み出す際には、レジスタ群３４から出力されたデータからパリティを演算するパリティ生成回路３５を設け、ＣＰＵ１ｂは、レジスタ群３４からのデータを読み出す際に、パリティエラー検出回路３２でエラーが検出されなかったことを確認することで、データ転送時にエラーが無く、正しくレジスタ内容が読み出せたことを確認する。なお、エラーが発生した場合は、リトライを行うか、制御が正常に行えないと判断し、危険回避のための処理に移行する。
【０００４】
図７は、本発明の目的とするデータバス及びアドレスバスの転送エラー検出ではなく、集積回路内の回路故障または一過性のデータのエラーを検出するための従来技術の一実施例を示すブロック図である。この例は、レジスタ群３４に含まれるレジスタは、ＲＡＭのようにＣＰＵ１ｃから書き込まれたデータを保持し、読み出し時にその値を出力する。レジスタ群３４は、ＣＰＵ１ｃからの書き込みデータと合わせて、パリティ生成回路３６が演算したパリティを記憶し、読み出し時には記憶したデータとパリティの整合性をパリティエラー検出回路３７がチェックし、異常がある場合は、ＣＰＵ１ｃに対して、割込要求３８を行うことで、エラー発生を伝達する。ＣＰＵ１ｃは、割込処理において、レジスタでの誤り発生を検知し、安全を確保するための適切な処理を実行する。
【０００５】
図７と同様に、集積回路内の故障を検出する従来技術としては、特許文献１、２に示す技術が公開されている。また、特許文献３においては、ディジタル入力信号の遠隔伝送部のビット誤りを検出するために、ディジタル入力信号を反転して転送し、未反転データと比較して誤り検出する技術が開示されている。特許文献４の請求項５においては、２つのバスを介して送られるデータと、ビット反転データを出力デバイス側で比較して出力許可する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２７２０８９号公報
【特許文献２】特開平７−１２１３９８号公報
【特許文献３】特開平３−２８８９４９号公報
【特許文献４】特開平８−３２８６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図６に示すような従来の制御装置においては、ＣＰＵの内部にパリティ生成回路及びパリティエラー検出回路が必要であるが、近年の高性能な組込用のＣＰＵは、データバス及びアドレスバスに、パリティビットやＥＣＣビットを付加しないＣＰＵが大部分であり、一般的な組込用のＣＰＵを用いてデータバス及びアドレスバス上の転送エラー検出を行うことは困難になっている。一方、特許文献１から特許文献４には、ＣＰＵとデータバス及びアドレスバスにより接続される集積回路内にデータバス及びアドレスバス上の転送エラー検出のための回路を付加することによりデータバス及びアドレスバス上の転送エラーを検出する実施例が記載されているが、これらの例では、当該転送エラー検出のための回路が、安全関連部か、非安全関連部かを区別することなく動作するため、ＣＰＵの処理ルーチンに非安全関連部に係る処理が混在するシステムでは、ＣＰＵが、安全関連部に係る処理を行う際にデータバス及びアドレスバスの転送エラーの検出を行い、非安全関連部に係る処理を行う際はデータバス及びアドレスバスの転送エラーの検出を行わないということができなかった。
【０００８】
本発明の目的は、安全関連部に属するレジスタである安全関連レジスタ及び非安全関連部に属する通常レジスタを有する集積回路と、中央処理部を有する制御装置において、中央処理部が安全関連レジスタにアクセスしたときについてのみ、データバス及びアドレスバス上の転送エラーを、検知することができる制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
（１）本発明は、集積回路と、前記集積回路とデータバスで接続されている中央処理部と、を有するデータバス診断機能を備えた制御装置であって、前記集積回路は、前記中央処理部からアクセスされ、所定の安全関連部の動作状態を規定するデータを記憶する安全関連記憶部と、前記中央処理部からアクセスされ、所定の非安全関連部の動作状態を規定するデータを記憶する非安全関連記憶部と、データバス診断記憶部と、バス診断アドレス判定部と、を備え、前記バス診断アドレス判定部は、前記中央処理部のアクセス先のアドレスに基づき、前記中央処理部のアクセス先が前記安全関連記憶部であるときは、前記データバス診断記憶部にバス診断信号を供給し、前記中央処理部のアクセス先が前記非安全関連記憶部であるときは、前記データバス診断記憶部にバス診断信号を供給せず、前記バス診断アドレス判定部から前記バス診断信号を受けた前記データバス診断記憶部は、前記安全関連記憶部に格納されたデータを格納し、前記データバス診断記憶部に前記安全関連記憶部に格納されたデータが格納された後、前記中央処理部は、前記データバス診断記憶部に格納されたデータ及び前記安全関連部に格納されたデータを読み出し、前記データバス診断記憶部に格納されたデータと前記安全関連記憶部に格納されたデータを比較することでデータバス上の転送エラーを検出することを特徴とする。
【００１０】
（２）上記（１）のデータバス診断機能を備えた制御装置であって、前記集積回路の前記データバス診断記憶部は、前記中央処理部の割込レベルの数に対応して複数設けられ、前記集積回路はさらに、前記中央処理部が前記安全関連記憶部にアクセスする際の割込レベルを示すデータを格納する割込レベル記憶部と、前記割込レベル記憶部に格納されたデータに基づいて、複数の前記データバス診断記憶部からいずれか１つを選択し、選択された１つのデータバス診断記憶部に、前記バス診断アドレス判定部から供給された前記バス診断信号を供給する選択回路と、を備えることが好ましい。
【００１１】
（３）また、本発明は、集積回路と、前記集積回路とアドレスバスで接続されている中央処理部と、を有するアドレスバス診断機能を備えた制御装置であって、前記集積回路は、前記中央処理部からアクセスされ、所定の安全関連部の動作状態を規定するデータを記憶する安全関連記憶部と、前記中央処理部からアクセスされ、所定の非安全関連部の動作状態を規定するデータを記憶する非安全関連記憶部と、アドレスバス診断記憶部と、バス診断アドレス判定部と、を備え、前記バス診断アドレス判定部は、前記中央処理部のアクセス先のアドレスに基づき、前記中央処理部のアクセス先が前記安全関連記憶部であるときは、前記アドレスバス診断記憶部にバス診断信号を供給し、前記中央処理部のアクセス先が前記非安全関連記憶部であるときは、前記アドレスバス診断記憶部にバス診断信号を供給せず、前記バス診断アドレス判定部から前記バス診断信号を受けた前記アドレスバス診断記憶部は、前記中央処理部から供給される前記安全関連記憶部のアドレスを格納し、前記アドレスバス診断記憶部に前記安全関連記憶部のアドレスが格納された後、前記中央処理部は、前記アドレスバス診断記憶部に格納されたアドレスを読み出し、前記アドレスバス診断記憶部に格納されたアドレスと前記安全関連記憶部のアドレスを比較することでアドレスバス上の転送エラーを検出することを特徴とする。
【００１２】
（４）上記（３）のアドレスバス診断機能を備えた制御装置であって、前記集積回路の前記アドレスバス診断記憶部は、前記中央処理部の割込レベルの数に対応して複数設けられ、前記集積回路はさらに、前記中央処理部が前記安全関連記憶部にアクセスする際の割込レベルを示すデータを格納する割込レベル記憶部と、前記割込レベル記憶部に格納されたデータに基づいて、複数の前記アドレスバス診断記憶部からいずれか１つを選択し、選択された１つのアドレスバス診断記憶部に、前記バス診断アドレス判定部から供給された前記バス診断信号を供給する選択回路と、を備えることが好ましい。
【００１３】
（５）また、本発明は、集積回路と、前記集積回路とデータバス及びアドレスバスで接続されている中央処理部と、を有するデータバス及びアドレスバス診断機能を備えた制御装置であって、前記集積回路は、前記中央処理部からアクセスされ、所定の安全関連部の動作状態を規定するデータを記憶する安全関連記憶部と、前記中央処理部からアクセスされ、所定の非安全関連部の動作状態を規定するデータを記憶する非安全関連記憶部と、データバス診断記憶部と、アドレスバス診断記憶部と、バス診断アドレス判定部と、を備え、前記バス診断アドレス判定部は、前記中央処理部のアクセス先のアドレスに基づき、前記中央処理部のアクセス先が前記安全関連記憶部であるときは、前記データバス診断記憶部及びアドレスバス診断記憶部にバス診断信号を供給し、前記中央処理部のアクセス先が前記非安全関連記憶部であるときは、前記データバス診断記憶部及びアドレスバス診断記憶部にバス診断信号を供給せず、前記バス診断アドレス判定部から前記バス診断信号を受けた前記データバス診断記憶部は、前記安全関連記憶部に格納されたデータを格納し、前記バス診断アドレス判定部から前記バス診断信号を受けた前記アドレスバス診断記憶部は、前記中央処理部から供給される前記安全関連記憶部のアドレスを格納し、前記データバス診断記憶部に前記安全関連記憶部に格納されたデータが格納され、前記アドレスバス診断記憶部に前記安全関連記憶部のアドレスが格納された後、前記中央処理部は、前記データバス診断記憶部に格納されたデータ、前記アドレスバス診断記憶部に格納されたアドレス及び前記安全関連部に格納されたデータを読み出し、前記データバス診断記憶部に格納されたデータと前記安全関連記憶部に格納されたデータを比較することでデータバス上の転送エラーを検出し、前記アドレスバス診断記憶部に格納されたアドレスと前記安全関連記憶部のアドレスを比較することでアドレスバス上の転送エラーを検出することを特徴とする。
【００１４】
（６）上記（５）のデータバス及びアドレスバス診断機能を備えた制御装置であって、前記集積回路の前記データバス診断記憶部及び前記アドレスバス診断記憶部は、前記中央処理部の割込レベルの数に対応して複数設けられ、前記集積回路はさらに、前記中央処理部が前記安全関連記憶部にアクセスする際の割込レベルを示すデータを格納する割込レベル記憶部と、前記割込レベル記憶部に格納されたデータに基づいて、複数の前記データバス診断記憶部からいずれか１つを選択し、複数の前記アドレスバス診断記憶部からいずれか１つを選択し、選択された１つのデータバス診断記憶部とアドレスバス診断記憶部との組に、前記バス診断アドレス判定部から供給された前記バス診断信号を供給する選択回路と、を備えることが好ましい。
【００１５】
上記構成によれば、バス診断アドレス判定部にアドレスが予め登録された安全関連記憶部に対して、中央処理部がアクセスした際の安全関連記憶部に格納された値及びアドレスバスの値が、データバス診断レジスタ及びアドレスバス診断レジスタそれぞれに格納される。その後、データバス診断レジスタに格納された値及び当該安全関連レジスタに格納された値を読み出し比較することで、データバス上の転送エラーを検知することができる。また、同様に、アドレスバス診断レジスタに格納された値及び当該安全関連部のアドレス値を比較することで、アドレスバス上の転送エラーを検知することができる。
【００１６】
また、上記構成によれば、割込レベル毎に異なるデータバス診断レジスタ及びアドレスバス診断レジスタが使用され、複数の割込レベルにおいて、独立して安全関連部の診断処理を行うことができるため、複数の割込レベルでデータバス及びアドレスバス上の転送エラーを検出しようとする際に、他の割込レベルの処理内容を考慮することなく、診断処理のプログラムを容易に作成することができる。
【発明の効果】
【００１７】
本発明によれば、安全関連部に属する安全関連記憶部及び非安全関連部に属する非安全記憶部を有する集積回路と、中央処理部を有する制御装置において、中央処理部が安全関連記憶部にアクセスしたときについてのみ、データバス及びアドレスバス上の転送エラーを検知することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係るデータバス及びアドレスバス診断機能を備えた制御装置の一例を示す図である。
【図２】図１に示す実施形態における、ＣＰＵ処理のフローチャートの一例を示す図である。
【図３】本発明の他の実施形態に係るデータバス及びアドレスバス診断機能を備えた制御装置の一例を示す図である。
【図４】図３に示されたＣＰＵバス診断レジスタ群の詳細構成の一例を示す図。
【図５】図３に示す実施形態における、ＣＰＵ処理のフローチャートの一例を示す図である。
【図６】従来のバス診断回路の一例を示す図である。
【図７】従来のレジスタ故障診断回路の一例を示す図である。
【発明を実施するための形態】
【００１９】
図１は、本実施形態に係るデータバス及びアドレスバス診断機能を備えた制御装置の一例を示す図である。
【００２０】
本実施形態に係るデータバス及びアドレスバス診断機能を備えた制御装置は、中央処理部であるＣＰＵ１ａ、データバス２、アドレスバス３、集積回路６ａを備え、集積回路６ａは、データバス診断記憶部としてのデータバス診断レジスタ１２、アドレスバス診断記憶部としてのアドレスバス診断レジスタ１３、バス診断アドレス判定部１４、安全関連記憶部としての安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）までのＮ個のレジスタ、非安全関連記憶部としての通常レジスタ１から通常レジスタＭ（符号９１から９Ｍ）までのＭ個のレジスタ、入出力される値を一時的に記憶する入出力バッファ７、アドレスバスの値からアクセス先のレジスタを選択するアドレスデコーダ１０、複数の入力信号のうち一つを選択して出力するデータセレクタ１１を備える。
【００２１】
ＣＰＵ１ａと、安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）、通常レジスタ１から通常レジスタＭ（符号９１から９Ｍ）、データバス診断レジスタ１２及びデータセレクタ１１は、入出力バッファ７を介し、データバス２により夫々接続される。また、データバス診断レジスタ１２とデータセレクタ１１も同様に、データバス２により接続される。
【００２２】
ＣＰＵ１ａと、アドレスデコーダ１０、バス診断アドレス判定部１４及びアドレスバス診断レジスタ１３は、アドレスバス３により夫々接続される。また、ＣＰＵ１ａとバス診断アドレス判定部１４及びアドレスデコーダ１０は、アドレスバス３で接続される他、書込制御信号（ＷＲＮ）４及び読込制御信号（ＲＤＮ）５を送るための制御線で夫々接続される。
【００２３】
バス診断アドレス判定部１４とデータバス診断レジスタ１２及びアドレスバス診断レジスタ１３は、バス診断信号（ＣＨＫＢＵＳ）１５を送るための制御線で夫々接続される。
【００２４】
アドレスデコーダ１０と、安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）及び通常レジスタ１から通常レジスタＭ（符号９１から９Ｍ）は、アドレスデコーダ１０の出力（ＷＲＳ１〜ＷＲＳＮ、ＷＲＮ１〜ＷＲＮＭ）を各レジスタに送るための制御線で夫々接続される。また、アドレスデコーダ１０とデータセレクタ１１は、データセレクタ１１の入力の複数の入力のうちいずれか１つを選択するためのレジスタ選択信号（ＲＥＧＳＥＬ）１６を送るための制御線で接続される。
【００２５】
データセレクタ１１と、安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）及び通常レジスタ１から通常レジスタＭ（符号９１から９Ｍ）は、各レジスタの出力がデータセレクタ１１に入力されるように、データバス２により夫々接続される。
【００２６】
バス診断アドレス判定部１４は、安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）のアドレスを内部に記憶し、安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）のいずれかに対しての書込制御信号（ＷＲＮ）４又は読込制御信号（ＲＤＮ）５をＣＰＵ１ａから受けたときに、データバス診断レジスタ１２及びアドレスバス診断レジスタ１３に対しバス診断信号（ＣＨＫＢＵＳ）１５を出力する。バス診断アドレス判定部１４は、通常レジスタ１から通常レジスタＭ（符号９１から９Ｍ）に対しての書込制御信号（ＷＲＮ）４又は読込制御信号（ＲＤＮ）５をＣＰＵ１ａから受けたときは、データバス診断レジスタ１２とアドレスバス診断レジスタ１３に対しバス診断信号（ＣＨＫＢＵＳ）１５を出力しない。なお、バス診断アドレス判定部１４が、ＣＰＵ１ａから読込制御信号（ＲＤＮ）５を受けたときのみバス診断信号（ＣＨＫＢＵＳ）１５を出力することでデータバス及びアドレスバス上の転送エラーを検出することが可能になるが、ＣＰＵ１ａから書込制御信号（ＷＲＮ）４を受けた時にもバス診断信号（ＣＨＫＢＵＳ）１５を出力することによって、ＣＰＵ１ａが安全関連レジスタにデータを書き込む際のデータバス及びアドレスバス上の転送エラーを検出するにあたって、ＣＰＵ１ａが保持している安全関連レジスタに書き込んだ値を利用できるため、ＣＰＵ１ａが安全関連レジスタに格納されている値を読み出す処理１回分を短縮することができる。
【００２７】
データバス診断レジスタ１２は、バス診断アドレス判定部１４からバス診断信号（ＣＨＫＢＵＳ）１５を受け取ったときに、データセレクタ１１の出力データＤＢＯＵＴを格納するレジスタとして機能するものである。本実施形態では、データバス診断レジスタ１２は、格納したＤＢＯＵＴの値を全ビット反転して出力するように構成されている。また、アドレスバス診断レジスタ１３は、バス診断アドレス判定部１４からバス診断信号（ＣＨＫＢＵＳ）１５を受け取ったときに、ＣＰＵ１ａから入力されるアドレス値を格納するレジスタとして機能するものである。
【００２８】
データセレクタ１１は、アドレスデコーダ１０から送られるレジスタ選択信号（ＲＥＧＳＥＬ）１６を参照し、データセレクタ１１の複数の入力のうちいずれか１つを選択し、出力する機能を有するものである。
【００２９】
なお、バス診断アドレス判定部１４が、書込制御信号（ＷＲＮ）４を受けたときだけでなく、読込制御信号（ＲＤＮ）５を受けたときにもバス診断信号（ＣＨＫＢＵＳ）１５をデータバス診断レジスタ１２に出力するのは、安全関連レジスタには入力専用レジスタが含まれ、集積回路６ａ内の他の回路や、集積回路６ａ外の回路からアクセスされる虞があり、ＣＰＵ１ａが特定の安全関連レジスタに書き込み処理を行わなくても、異なる時間に当該特定の安全関連レジスタから読み込んだ値は同一とならない虞があるためである。
【００３０】
図２は、本実施形態における、ＣＰＵ１ａの処理のフローチャートの一例を示す図である。図２のステップＳ２１９からＳ２２３に示すように、本実施形態では、ＣＰＵ１ａ上で割込レベルの異なる２つの割込処理が動作するようになっている。安全関連レジスタ１から安全関連レジスタＮ（符号８１から８Ｎ）に対するデータ入出力処理である、安全入出力処理１から安全入出力処理Ｎは、割込レベル１側でのみ実施されている。割込の優先順位は、レベル１よりレベル２の方が高く、割込レベル１の処理中に割込レベル２の処理が発生した場合は、割込レベル２の処理を優先的に行うが、割込レベル２の処理中に割込レベル１の処理が発生しても、割込レベル２の処理が終えるまで割込レベル１の処理は開始されない。安全入出力処理１の詳細な実施手順については、ステップＳ２０１からＳ２１８に示す。以下、安全入出力処理１の詳細な実施手順について、図１及び図２に基づいて説明する。
【００３１】
まず、図２に示す安全入出力処理１のステップＳ２０１からＳ２１８の概略を説明する。ステップＳ２０１からＳ２０３では、安全関連レジスタの異常を検出する。ステップＳ２０４からＳ２０６では、ＣＰＵ１ａが安全関連レジスタ１（符号８１）にデータを書き込む際のデータバス２上の転送エラーを検出する。ステップＳ２０７からＳ２０９では、ＣＰＵ１ａが安全関連レジスタ１（符号８１）にデータを書き込む際のアドレスバス３上の転送エラーを検出する。ステップＳ２１０からＳ２１３では、ＣＰＵ１ａが安全関連レジスタ１（符号８１）からデータを読み出す際のデータバス２上の転送エラーを検出する。ステップＳ２１４からＳ２１６では、ＣＰＵ１ａが安全関連レジスタ１（符号８１）からデータを読み出す際のアドレスバス３上の転送エラーを検出する。以下、各ステップを詳細に説明する。
【００３２】
ステップＳ２０１では、ＣＰＵ１ａが、安全関連レジスタ１（符号８１）にＣＰＵ１ａの出力ポートＳＯＵＴ１の値（ａａａとする）を書き込む。このとき、バス診断アドレス判定部１４は、ＣＰＵ１ａから書込制御信号（ＷＲＮ）４を受け、内部に記憶された安全関連レジスタ１からＮ（符号８１から８Ｎ）のアドレスと、ＣＰＵ１ａから送られた書き込み先のレジスタのアドレスである安全関連レジスタ１（符号８１）のアドレスとを比較し、安全関連部のレジスタへのデータの書き込みであると判断して、データバス診断レジスタ１２とアドレスバス診断レジスタ１３に対し、バス診断信号（ＣＨＫＢＵＳ）１５を出力する。
【００３３】
また、アドレスデコーダ１０は、ＣＰＵ１ａから送られた書き込み先のレジスタのアドレスである安全関連レジスタ１（符号８１）のアドレスを参照し、データセレクタ１１に対し、安全関連レジスタ１（符号８１）からの入力を選択し、出力することを指示するレジスタ選択信号（ＲＥＧＳＥＬ）１６を出力する。レジスタ選択信号（ＲＥＧＳＥＬ）１６を受けたデータセレクタ１１は、その指示の通り、安全関連レジスタ１（符号８１）からの入力を選択し、出力する。
【００３４】
データバス診断レジスタ１２は、バス診断アドレス判定部１４からバス診断信号（ＣＨＫＢＵＳ）１５を受けると、データセレクタ１１から出力される値である、安全関連レジスタ１（符号８１）に格納されているＳＯＵＴ１の値（ａａａ）が格納される。また、アドレスバス診断レジスタ１３は、バス診断アドレス判定部１４からバス診断信号（ＣＨＫＢＵＳ）１５を受けると、ＣＰＵ１ａから送られる安全関連レジスタ１（符号８１）のアドレス（ＡＡＡとする）が格納される。
【００３５】
ステップＳ２０２では、ＣＰＵ１ａが、安全関連レジスタ１（符号８１）に格納されている値（ａａａ）をデータセレクタ１１及び入出力バッファ７を介して読み出し、ＣＰＵ１ａ内のレジスタＲ１に格納する。このとき、ステップＳ２０１における処理と同様に、バス診断アドレス判定部１４は、ＣＰＵ１ａから読込制御信号（ＲＤＮ)５を受け、データバス診断レジスタ１２とアドレスバス診断レジスタ１３に対し、バス診断信号（ＣＨＫＢＵＳ）１５を出力し、データバス診断レジスタ１２に安全関連レジスタ１（符号８１）に格納されている値（ａａａ）が、アドレスバス診断レジスタ１３に安全関連レジスタ１（符号８１）のアドレス（ＡＡＡ）が格納される。ステップＳ２０３では、ＣＰＵ１ａが、ＳＯＵＴ１の値とＲ１に格納された値が同一であるか否かを確認する。ＳＯＵＴ１の値とＲ１に格納された値が同一である場合は、安全関連レジスタ１（符号８１）が正常であるとして、ステップＳ２０４に進む。ＳＯＵＴ１の値とＲ１に格納された値が異なる場合には、安全関連レジスタ１（符号８１）に異常があると判断して、リトライや危険回避処理等を行う異常時処理１（ステップＳ２１７）に移行する。
【００３６】
ステップＳ２０４では、ＣＰＵ１ａが、ステップＳ２０１においてデータバス診断レジスタ１２に格納された値（ａａａ）をデータセレクタ１１及び入出力バッファ７を介して読み出し、ＣＰＵ１ａ内のレジスタＲ２に格納する。本実施形態では、データバス診断レジスタ１２は格納された値を全ビット反転させて出力するため、Ｒ２に格納される値は、データバス診断レジスタ１２に格納された値を全ビット反転させたものになる。Ｒ２に格納された値をデータバス診断レジスタ１２に格納されていた値と同じ値にするために、ステップＳ２０５において、ＣＰＵ１ａは、Ｒ２に格納された値を全ビット反転させる。
【００３７】
ステップＳ２０６では、ＣＰＵ１ａが、ＣＰＵ１ａ内のレジスタＲ１に格納された値とＣＰＵ１ａ内のレジスタＲ２に格納された値が同一であるか否かを確認する。ここで、レジスタＲ１に格納された値とレジスタＲ２に格納された値が同じであれば、ＣＰＵ１ａが安全関連レジスタ１（符号８１）にデータを書き込む際に、データバス２上で転送エラーが無かったとしてステップＳ２０７に進む。レジスタＲ１に格納された値とレジスタＲ２に格納された値が異なる場合には、データバス２上で転送エラーがあったと判断し、異常時処理１（ステップＳ２１７）に移行する。
【００３８】
ステップＳ２０７では、ＣＰＵ１ａは、安全関連レジスタ１（符号８１）のアドレス（ＡＡＡ）をＣＰＵ１ａのレジスタＲ１に格納する。ステップＳ２０８において、ＣＰＵ１ａは、ステップＳ２０１においてアドレスバス診断レジスタ１３に格納された安全関連レジスタ１（符号８１）のアドレス（ＡＡＡ）をＣＰＵ１ａのレジスタＲ２に格納する。
【００３９】
ステップＳ２０９では、ＣＰＵ１ａは、ＣＰＵ１ａ内のレジスタＲ１に格納された値とレジスタＲ２に格納された値が同一であるか否かを確認する。ここで、レジスタＲ１に格納された値とレジスタＲ２に格納された値が同じであれば、ＣＰＵ１ａが安全関連レジスタ１（符号８１）にデータを書き込む際に、アドレスバス３上で転送エラーが無かったとしてステップＳ２１０に進む。レジスタＲ１に格納された値とレジスタＲ２に格納された値が異なる場合には、アドレスバス３上で転送エラーがあったと判断し、異常時処理１（ステップＳ２１７）に移行する。
【００４０】
ステップＳ２１０では、ＣＰＵ１ａが、安全関連レジスタ２（符号８２）に格納されている値（ｂｂｂとする）を読み出し、ＣＰＵ１ａの入力ポートＳＩＮ１にその値を格納する。このとき、ステップＳ２０１と同様の処理により、データバス診断レジスタ１２に安全関連レジスタ２（符号８２）に格納された値（ｂｂｂ）が格納され、アドレスバス診断レジスタ１３に安全関連レジスタ２（符号８２）のアドレス（ＢＢＢとする）が格納される。
【００４１】
ステップＳ２１１では、ＣＰＵ１ａが、ステップＳ２１０においてデータバス診断レジスタ１２に格納された値（ｂｂｂ）を読み出し、ＣＰＵ１ａ内のレジスタＲ２に格納する。本実施形態では、データバス診断レジスタ１２は格納された値を全ビット反転させて出力するため、Ｒ２に格納される値は、データバス診断レジスタ１２に格納された値を全ビット反転させたものになる。Ｒ２に格納された値をデータバス診断レジスタ１２に格納されていた値と同じ値にするために、ステップＳ２１２において、ＣＰＵ１ａは、Ｒ２に格納された値を全ビット反転させる。
【００４２】
ステップＳ２１３では、ＣＰＵ１ａが、ＣＰＵ１ａ内のレジスタＲ１に格納された値とレジスタＲ２に格納された値が同一であるか否かを確認する。ここで、レジスタＲ１に格納された値とレジスタＲ２に格納された値が同じであれば、ＣＰＵ１ａが安全関連レジスタ２（符号８２）からデータを読み出す際に、データバス２上で転送エラーが無かったとして、ステップＳ２１４に進む。レジスタＲ１に格納された値とレジスタＲ２に格納された値が異なる場合には、データバス２上で転送エラーがあったと判断し、異常時処理２（ステップＳ２１８）に移行する。
【００４３】
ステップＳ２１４では、ＣＰＵ１ａが、安全関連レジスタ２（符号８２）のアドレス（ＢＢＢ）をＣＰＵ１ａのレジスタＲ１に格納する。ステップＳ２１５において、ＣＰＵ１ａは、ステップＳ２１０においてアドレスバス診断レジスタ１３に格納された安全関連レジスタ２（符号８２）のアドレス（ＢＢＢ）をＣＰＵ１ａのレジスタＲ２に格納する。
【００４４】
ステップＳ２１６では、ＣＰＵ１ａが、ＣＰＵ１ａ内のレジスタＲ１に格納された値とレジスタＲ２に格納された値が同一であるか否かを確認する。ここで、レジスタＲ１に格納された値とレジスタＲ２に格納された値が同じであれば、ＣＰＵ１ａが安全関連レジスタ２（符号８２）からデータを読み出す際に、アドレスバス３上で転送エラーが無かったとして、ステップＳ２２０に進む。レジスタＲ１に格納された値とレジスタＲ２に格納された値が異なる場合には、アドレスバス３上で転送エラーがあったと判断し、異常時処理２（ステップＳ２１８）に移行する。
【００４５】
ステップＳ２１６の処理が終了すると、安全入出力処理１が終了し、ステップＳ２２０に進む。
【００４６】
ステップＳ２２０において、ＣＰＵ１ａが非安全関連部のレジスタである通常レジスタ１（符号９１）に値を書き込んだときは、バス診断アドレス判定部１４には通常レジスタ１のアドレスは記憶されていないため、バス診断アドレス判定部１４はデータバス診断レジスタ１２及びアドレスバス診断レジスタ１３に対してバス診断信号（ＣＨＫＢＵＳ）１５を出力しない。このため、データバス診断レジスタ１２及びアドレスバス診断レジスタ１３には通常レジスタ１（符号９１）に書き込まれた値及びそのアドレスは格納されず、データバス２及びアドレスバス３の診断は行わないことになる。
【００４７】
このように、本実施形態によれば、ＣＰＵ１ａが非安全関連部のレジスタにアクセスしたときは、データバス２及びアドレスバス３上の転送エラーを診断することはなく、安全関連部のレジスタにアクセスしたときのみデータバス２及びアドレスバス３上の転送エラーを診断するため、安全関連部と非安全関連部が混在している集積回路及びＣＰＵの処理ルーチンに安全関連部と非安全関連部の処理が混在しているＣＰＵを用いたときであっても、ＣＰＵが安全関連部のレジスタにアクセスしたときのみ、データバス及びアドレスバス上の転送エラーを検出することができる。
【００４８】
本実施形態では、データバス及びアドレスバス上の転送エラーを検出するものであるが、本実施形態の構成からアドレスバス診断レジスタ１３を省略し、データバス上の転送エラーのみを検出する構成にしてもよい。また、本実施形態の構成からデータバス診断レジスタ１２を省略し、アドレスバス上の転送エラーのみを検出する構成にしてもよい。
【００４９】
さらに、本実施形態では、安全入出力処理を割込優先順位の低い、割込レベル１にて実施しているが、割込レベル２で実施してもよい。但し、両方の割込レベルで安全入出力処理を行う場合、割込レベル１の安全入出力処理において各診断レジスタに格納した値が、割込レベル２の安全入出力処理の際に重ね書きされてしまうため、本実施形態では、両方の割込レベルに安全入出力処理を配置することはできない。
【００５０】
図３は、他の実施形態に係るデータバス及びアドレスバス診断機能を備えた制御装置の一例を示す図である。後述するＣＰＵバス診断レジスタ群２１と割込レベルレジスタ２０を備えること以外の構成要素については、上述の実施形態と同様であるので、重複する説明は省略する。
【００５１】
図３に示す集積回路６ｂは、図１に示す集積回路６ａが備えるものに加え、ＣＰＵバス診断レジスタ群２１、ＣＰＵ１ａの現在の割込レベルを示す値を記憶する割込レベル記憶部としての割込レベルレジスタ２０を備える。図１に示す集積回路６ａが備えるデータバス診断レジスタ１２及びアドレスバス診断レジスタ１３は、後述するように、ＣＰＵバス診断レジスタ群２１の中に含まれる。
【００５２】
図４は、ＣＰＵバス診断レジスタ群２１の構成の一例を示す図である。図４に示すＣＰＵバス診断レジスタ２１の構成は、ＣＰＵ１ａの割込レベルの数が４つの場合についての例である。
【００５３】
ＣＰＵバス診断レジスタ群２１は、割込レベルレジスタ２０の値を読み込み、復号して出力するデコーダ２１０とＣＰＵ１ａの割込レベルの数と同数のＡＮＤゲート２１１から２１４とからなる選択回路２２、ＣＰＵ１ａの割込レベルの数と同数のデータバス診断レジスタ１からデータバス診断レジスタ４（符号２２０から２２３）、ＣＰＵ１ａの割込レベルの数と同数のアドレスバス診断レジスタ１からアドレスバス診断レジスタ４（符号２１５から２１８）、データセレクタ１（符号２２４）、データセレクタ２（符号２１９）を備える。
【００５４】
選択回路２２とデータバス診断レジスタ１からデータバス診断レジスタ４（符号２２０から２２３）及びアドレスバス診断レジスタ１からアドレスバス診断レジスタ４（符号２１５から２１８）は、バス診断信号（ＣＨＫＢＵＳ）１５を送るための制御線で夫々接続される。
【００５５】
データセレクタ１（符号２２４）とデータバス診断レジスタ１からデータバス診断レジスタ４（符号２２０から２２３）は、各レジスタの出力がデータセレクタ１（符号２２４）に入力されるように、データバス２により接続される。また、データセレクタ２（符号２１９）とアドレスバス診断レジスタ１からアドレスバス診断レジスタ４（符号２１５から２１８）は、各レジスタの出力がデータセレクタ２（符号２１９）に入力されるように、データバス２により接続される。
【００５６】
割込レベルレジスタ２０と選択回路２２及びデータセレクタ１（符号２２４）及びデータセレクタ２（符号２１９）は、ＣＰＵの現在の割込レベル数を送るための制御線で夫々接続される。
【００５７】
選択回路２２は、割込レベルレジスタ２０から送られるＣＰＵ１ａの現在の割込レベルの値を参照し、データバス診断レジスタ２２０から２２３のうちいずれか１つ、及びアドレスバス診断レジスタ２１５から２１８のうちいずれか１つを選択して、バス診断アドレス判定部１４から受け取ったバス診断信号（ＣＨＫＢＵＳ）１５を、選択されたデータバス診断レジスタ及びアドレスバス診断レジスタに送る機能を有する。例えば、ＣＰＵ１ａの割込レベルが１であるとき、選択回路２２は、データバス診断レジスタ１とアドレスバス診断レジスタ１とを選択し、ＣＰＵ１ａの割込レベルが２であるとき、選択回路２２は、データバス診断レジスタ２とアドレスバス診断レジスタ２とを選択する。このように、データバス診断レジスタとアドレスバス診断レジスタは、ＣＰＵ１ａの現在の割込レベルに対応する組となって選択される。
【００５８】
データセレクタ１（符号２２４）及びデータセレクタ２（符号２１９）は、割込レベルレジスタ２０から送られるＣＰＵ１ａの現在の割込レベルの値を参照し、データセレクタ１（符号２２４）及びデータセレクタ２（符号２１９）の複数の入力からいずれか１つの選択し、出力する機能を有する。例えば、ＣＰＵ１ａの割込レベルが１であるとき、データセレクタ１（符号２２４）及びデータセレクタ２（符号２１９）は、データバス診断レジスタ１及びアドレスバス診断レジスタ１から入力される値を選択して出力し、ＣＰＵ１ａの割込レベルが２であるとき、データセレクタ１（符号２２４）及びデータセレクタ２（符号２１９）は、データバス診断レジスタ２及びアドレスバス診断レジスタ２から入力される値を選択して出力する。
【００５９】
図５は、本実施形態における、ＣＰＵ１ａの処理のフローチャートの一例を示す図である。図５に示す、ステップ５０１からＳ５１７及びステップＳ５２０からＳ５３１につき、図２に基づいて説明した内容と異なる部分について説明する。なお、本実施形態においては、割込レベル１においてのステップＳ５０１が終了した時点で、ＣＰＵ１ａにレベル２の割込処理が発生した場合について説明する。
【００６０】
割込レベル１においてのステップＳ５０１では、ＣＰＵ１ａが、安全関連レジスタ１（符号８１）にＣＰＵ１ａの出力ポートＳＯＵＴ１の値（ｃｃｃとする）を書き込む。このとき、バス診断アドレス判定部１４はＣＰＵ１ａから安全関連レジスタ１（符号８１）に対しての書込制御信号（ＷＲＮ）４を受け、ＣＰＵバス診断レジスタ群２１内の選択回路２２に対して、バス診断信号（ＣＨＫＢＵＳ）１５を出力する。選択回路２２は、割込レベルレジスタ２０からＣＰＵ１ａの現在の割込レベル（レベル１）を示す値を読み込み、復号して出力することにより、データバス診断レジスタ１（符号２２０）及びアドレスバス診断レジスタ１（符号２１５）を選択する。選択されたデータバス診断レジスタ１（符号２２０）及びアドレスバス診断レジスタ１（符号２１５）にバス診断信号（ＣＨＫＢＵＳ）１５が供給され、データバス診断レジスタ１（符号２２０）にＳＯＵＴ１の値（ｃｃｃ）が格納され、アドレスバス診断レジスタ１（符号２１５）に安全関連レジスタ１（符号８１）のアドレス（ＣＣＣとする）が格納される。
【００６１】
割込レベル１においてのステップＳ５０１が終了した後、ＣＰＵ１ａにレベル２の割込処理が発生すると、レベル２の割込処理が開始される（ステップＳ５２６からＳ５３１）。
【００６２】
ステップＳ５２６では、レベル２の割込処理を終えた後に、元の割込レベルの処理に戻れるようにするために、レベル２の割込処理が発生した時点での割込レベルの値をスタックに格納する。本実施形態では、レベル２の割込処理が発生した時点での割込レベルは１であるから、スタックに割込レベル１を示す値を格納する。ステップＳ５２７では、割込レベルレジスタ２０に、ＣＰＵ１ａの現在の割込レベルが２であることを示す値が格納される。
【００６３】
ステップＳ５２８において、安全入出力処理５が開始される。安全入出力処理５の処理内容は、安全入出力処理１と同様である。割込レベル２においてのステップＳ５０１では、ＣＰＵ１ａが、安全関連レジスタ５（符号８５）にＣＰＵ１ａの出力ポートＳＯＵＴ１の値（ｄｄｄとする）を書き込む。このとき、バス診断アドレス判定部１４はＣＰＵ１ａから安全関連レジスタ５（符号８５）に対しての書込制御信号（ＷＲＮ）４を受け、ＣＰＵバス診断レジスタ群２１内の選択回路２２に対して、バス診断信号（ＣＨＫＢＵＳ）１５を出力する。選択回路２２は、割込レベルレジスタ２０からＣＰＵ１ａの現在の割込レベル（レベル２）の値を読み込み、復号して出力することにより、データバス診断レジスタ２（符号２２１）及びアドレスバス診断レジスタ２（符号２１６）を選択する。選択されたデータバス診断レジスタ２（符号２２１）及びアドレスバス診断レジスタ２（符号２１６）にバス診断信号（ＣＨＫＢＵＳ）１５が供給され、データバス診断レジスタ２（符号２２１）にＳＯＵＴ１の値（ｄｄｄ）が格納され、アドレスバス診断レジスタ２（符号２１６）に安全関連レジスタ５（符号８５）のアドレス（ＤＤＤ）が格納される。
【００６４】
このように、ＣＰＵ１ａの割込レベルが２であるときは、データバス診断レジスタ２（符号２２１）にＣＰＵ１ａの出力ポートＳＯＵＴ１の値が格納され、アドレスバス診断レジスタ２（符号２１６）に安全関連レジスタ５（符号８５）のアドレスの値が格納され、データバス診断レジスタ１（符号２２０）及びアドレスバス診断レジスタ２（符号２１５）の値は書き換わらない。
【００６５】
以後、ステップＳ５１６までの処理は、図２に基づいて説明した内容と同様であるため、説明は省略するが、割込レベル２においての安全入出力処理においては、ＣＰＵ１ａはデータバス診断レジスタ２（符号２２１）及びアドレスバス診断レジスタ２（符号２１６）以外のデータバス診断レジスタ及びアドレスバス診断レジスタにはアクセスしない。そのため、データバス診断レジスタ１（符号２２０）及びアドレスバス診断レジスタ１（符号２１５）に格納された値は書き換わらない。安全入出力処理５が終了し、割込レベル２の処理がステップＳ５３１まで進むと、割込レベル２の処理は終了し、割込レベル１の処理が再開する。
【００６６】
上述のとおり、割込レベル１においてのステップＳ５０１においてデータバス診断レジスタ１（符号２２０）及びアドレスバス診断レジスタ１（符号２１５）に格納された値は書き換えられず残っているため、割込レベル１において、割込レベル２の処理が始まる前に途中まで処理した安全入出力処理１を引き続き処理することができる。このように、本実施形態では、複数の割込レベルにおいて、独立して安全入出力処理を行うことができる。
【００６７】
本実施形態においても、本実施形態の構成からアドレスバス診断レジスタ１から４（符号２１５から２１８）を省略し、データバス上の転送エラーのみを検出する構成にしてもよい。また、本実施形態の構成からデータバス診断レジスタ１から４（符号２２０から２２３）を省略し、アドレスバス上の転送エラーのみを検出する構成にしてもよい。
【符号の説明】
【００６８】
１ａ，１ｂ，１ｃ  ＣＰＵ、２  データバス、３  アドレスバス、４  書込制御信号（ＷＲＮ）、５  読込制御信号（ＲＤＮ）、６ａ，６ｂ，６ｃ，６ｄ  集積回路、７  入出力バッファ、８１  安全関連レジスタ１、８Ｎ  安全関連レジスタＮ、９１  通常レジスタ１、９Ｍ  通常レジスタＭ、１０  アドレスデコーダ、１１  データセレクタ、１２  データバス診断レジスタ、１３  アドレスバス診断レジスタ、１４  バス診断アドレス判定部、１５  バス診断信号（ＣＨＫＢＵＳ）、１６  レジスタ選択信号（ＲＥＧＳＥＬ）、２０  割込レベルレジスタ、２１  ＣＰＵバス診断レジスタ群、２２  選択回路、３０，３５，３６  パリティ生成回路、３２，３３，３７  パリティエラー検出回路、３４  レジスタ群、２１０  デコーダ、２１１〜２１４  ＡＮＤゲート、２１５〜２１８  アドレスバス診断レジスタ、２２０〜２２３  データバス診断レジスタ、２１９，２２４  データセレクタ。
【図１】
0005632804.tif 000002
【図２】
0005632804.tif 000003
【図３】
0005632804.tif 000004
【図４】
0005632804.tif 000005
【図５】
0005632804.tif 000006
【図６】
0005632804.tif 000007
【図７】
0005632804.tif 000008