(57)【要約】【課題】記憶部に記憶されたデータに２ビット以上のエラーが発生した際にも安全を維持することができる半導体装置を提供することである。【解決手段】半導体装置は、記憶部と、ＥＣＣデコーダと、選択部とを有する。記憶部は、データを記憶する。ＥＣＣデコーダは、記憶部から出力されたデータの１ビットのエラーを訂正し、２ビット以上のエラーを検出することができる。選択部は、ＥＣＣデコーダで２ビット以上のエラーを検出したか否かを示す検出信号に応じて、ＥＣＣデコーダから出力されたデータと、予め設定された固定値との一方を選択して出力する。【選択図】図１
2019164472.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶部と、
前記記憶部から出力された前記データの１ビットのエラーを訂正し、２ビット以上のエラーを検出することができるＥＣＣデコーダと、
前記ＥＣＣデコーダで前記２ビット以上のエラーを検出したか否かを示す検出信号に応じて、前記ＥＣＣデコーダから出力された前記データと、予め設定された固定値との一方を選択して出力する選択部と、
を有することを特徴とする半導体装置。
【請求項２】
前記固定値を記憶するレジスタをさらに備えることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記レジスタを多重化し、
多重化された前記レジスタのそれぞれから出力された前記固定値のうち最も多い前記固定値を前記選択部に出力する多数決回路をさらに有することを特徴とする請求項２に記載の半導体装置。
【請求項４】
割り込み処理を実行するためのベクタアドレスを記憶する記憶部と、
前記記憶部から出力された前記ベクタアドレスの１ビットのエラーを訂正し、２ビット以上のエラーを検出することができるＥＣＣデコーダと、
前記ＥＣＣデコーダで前記２ビット以上のエラーを検出したか否かを示す検出信号に応じて、前記ＥＣＣデコーダから出力された前記ベクタアドレスと、予め設定された処理を行うためのベクタアドレスとの一方を選択して出力する選択部と、
を有することを特徴とする半導体装置。
【請求項５】
前記設定された処理を行うためのベクタアドレスを記憶するレジスタをさらに備えることを特徴とする請求項４に記載の半導体装置。
【請求項６】
前記レジスタを多重化し、
多重化された前記レジスタのそれぞれから出力された前記処理を行うためのベクタアドレスのうち最も多い前記設定された処理を行うためのベクタアドレスを前記選択部に出力する多数決回路をさらに有することを特徴とする請求項５に記載の半導体装置。
【請求項７】
ＤＭＡコントローラの命令コードを記憶する記憶部と、
前記記憶部から出力された前記命令コードの１ビットのエラーを訂正し、２ビット以上のエラーを検出することができるＥＣＣデコーダと、
前記ＥＣＣデコーダで前記２ビット以上のエラーを検出したか否かを示す検出信号に応じて、前記ＥＣＣデコーダから出力された前記命令コードと、予め設定された処理を行うための命令コードとの一方を選択して出力する選択部と、
を有することを特徴とする半導体装置。
【請求項８】
前記設定された処理を行うための命令コードを記憶するレジスタをさらに備えることを特徴とする請求項７に記載の半導体装置。
【請求項９】
前記レジスタを多重化し、
多重化された前記レジスタのそれぞれから出力された前記安全な処理を行うための命令コードのうち最も多い前記安全な処理を行うための命令コードを前記選択部に出力する多数決回路をさらに有することを特徴とする請求項８に記載の半導体装置。
【請求項１０】
前記記憶部は、ＳＲＡＭ、ＲＯＭ、または、ＮＡＮＤ型のフラッシュメモリであることを特徴とする請求項１から９のいずれか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施の形態は、半導体装置に関する。
【背景技術】
【０００２】
近年、プロセスの進化に伴いＳＲＡＭの急激な微細化が進んでおり、例えば、宇宙等からの放射線、回路内部のノイズ、または、ＳＲＡＭ自身の故障等によって、ＳＲＡＭにおけるデータの誤りの増加が顕著化している。
【０００３】
そのため、ＳＲＡＭを備えた半導体装置は、ＥＣＣエンコーダ及びＥＣＣデコーダを備え、ＳＲＡＭにおけるデータの誤りを訂正することで安全性を高めている。このような半導体装置で実行される一般的な誤り訂正は、１ビットのエラーを訂正し、２ビット以上のエラーを検出することができる。
【０００４】
しかしながら、このような半導体装置は、２ビット以上のエラーを検出した場合でも誤りを訂正することができないため、予期しない動作を行ってしまう虞がある。特に、車載分野や宇宙分野等で使用される機器では、機能安全性能を要求されるため、２ビット以上のエラーが検出された際にも安全性を維持することが重要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−２８２２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態の課題は、記憶部に記憶されたデータに２ビット以上のエラーが発生した際にも安全を維持することができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態の半導体装置は、記憶部と、ＥＣＣデコーダと、選択部とを有する。記憶部は、データを記憶する。ＥＣＣデコーダは、記憶部から出力されたデータの１ビットのエラーを訂正し、２ビット以上のエラーを検出することができる。選択部は、ＥＣＣデコーダで２ビット以上のエラーを検出したか否かを示す検出信号に応じて、ＥＣＣデコーダから出力されたデータと、予め設定された固定値との一方を選択して出力する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る半導体装置の構成を示すブロック図である。
【図２】第１の実施形態の変形例に係る半導体装置の構成を示すブロック図である。
【図３】第２の実施形態に係る半導体装置の構成を示すブロック図である。
【図４】第２の実施形態の変形例に係る半導体装置の構成を示すブロック図である。
【図５】第３の実施形態に係る半導体装置の構成を示すブロック図である。
【図６】第３の実施形態の変形例に係る半導体装置の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施形態について詳細に説明する。  
（第１の実施形態）
まず、図１に基づき、第１の実施形態に係る半導体装置の構成について説明する。図１は、第１の実施形態に係る半導体装置の構成を示すブロック図である。
【００１０】
第１の実施形態の半導体装置１は、ＥＣＣエンコーダ１１と、ＳＲＡＭ１２と、ＥＣＣデコーダ１３と、レジスタ１４ａと、マルチプレクサ１５と、ＣＰＵ１６と、エラー情報レジスタ１７とを有して構成されている。ＳＲＡＭ１２は、データ記憶部１２ａ及びＥＣＣ記憶部１２ｂと有して構成されている。
【００１１】
ＥＣＣエンコーダ１１には、ＳＲＡＭ１２に記憶されるデータが入力される。ＥＣＣエンコーダ１１は、入力されたデータを符号化し、データ及びＥＣＣ（誤り訂正符号）をＳＲＡＭ１２に出力する。
【００１２】
記憶部としてのＳＲＡＭ１２は、ＥＣＣエンコーダ１１からのデータをデータ記憶部１２ａに記憶し、ＥＣＣをＥＣＣ記憶部１２ｂに記憶する。ＳＲＡＭ１２に記憶されたデータが読み出されると、データ記憶部１２ａに記憶されたデータ及びＥＣＣ記憶部１２ｂに記憶されたＥＣＣがＥＣＣデコーダ１３に入力される。なお、本実施形態では、記憶部としてＳＲＡＭ１２を用いているが、これに限定されることなく、記憶部は、例えば、ＲＯＭ、あるいは、ＮＡＮＤ型のフラッシュメモリ等であってもよい。
【００１３】
ＥＣＣデコーダ１３は、データの１ビットのエラーを訂正でき、２ビットのエラーを検出することができる。ＥＣＣデコーダ１３は、ＳＲＡＭ１２から入力されたデータ及びＥＣＣを復号する。
【００１４】
ＥＣＣデコーダ１３は、ＳＲＡＭ１２からのデータをマルチプレクサ１５に出力する。このとき、ＥＣＣデコーダ１３は、ＳＲＡＭ１２からのデータにエラーがない場合、エラーがないデータをマルチプレクサ１５に出力し、ＳＲＡＭ１２からのデータに１ビットのエラーがあった場合、１ビットのエラーを訂正したデータをマルチプレクサ１５に出力する。一方、ＥＣＣデコーダ１３は、ＳＲＡＭ１２からのデータに２ビット以上のエラーがあった場合、エラー訂正ができないため、２ビット以上のエラーがあったデータをマルチプレクサ１５に出力する。
【００１５】
また、ＥＣＣデコーダ１３は、ＳＲＡＭ１２からのデータに１ビット以上エラーがあった場合、エラー情報をエラー情報レジスタ１７に出力する。エラー情報レジスタ１７に保持されたエラー情報は、例えばＣＰＵ１６によって読み出すことができる。
【００１６】
さらに、ＥＣＣデコーダ１３は、２ビット以上エラーの検出信号をマルチプレクサ１５に出力する。ＥＣＣデコーダ１３は、例えば、ＳＲＡＭ１２からのデータに２ビット以上エラーがなかった場合、検出信号として「０」をマルチプレクサ１５に出力し、ＳＲＡＭ１２からのデータに２ビット以上エラーがあった場合、検出信号として「１」をマルチプレクサ１５に出力する。
【００１７】
レジスタ１４ａには、半導体装置１を安全な状態にするための値である固定値（予め設定された固定値）が記憶されている。レジスタ１４ａに記憶されている固定値は、マルチプレクサ１５に入力される。
【００１８】
選択部としてのマルチプレクサ１５は、２ビット以上エラーの検出信号に応じて、ＥＣＣデコーダ１３からのデータと、レジスタ１４ａからの固定値との一方を選択してＣＰＵ１６に出力する。より具体的には、マルチプレクサ１５は、ＳＲＡＭ１２からのデータに２ビット以上エラーがなく、検出信号として「０」が入力された場合、ＥＣＣデコーダ１３からのデータをＣＰＵ１６に出力する。一方、マルチプレクサ１５は、ＳＲＡＭ１２からのデータに２ビット以上エラーがあり、検出信号として「１」が入力された場合、レジスタ１４ａからの固定値をＣＰＵ１６に出力する。
【００１９】
これにより、ＳＲＡＭ１２からのデータに２ビット以上のエラーがない場合、ＳＲＡＭ１２からのエラーのないデータ、あるいは、１ビットのエラーが訂正され、エラーがなくなったデータがＣＰＵ１６に出力される。
【００２０】
一方、ＳＲＡＭ１２からのデータに２ビット以上のエラーがあり、エラー訂正ができない場合、レジスタ１４ａに保持されている半導体装置１を安全な状態にするための固定値がＣＰＵ１６に出力される。
【００２１】
この結果、半導体装置１は、ＳＲＡＭ１２からのデータに２ビット以上のエラーがあった場合でも、安全を維持することができる。
【００２２】
（変形例）
次に、第１の実施形態の変形例について説明する。  
図２は、第１の実施形態の変形例に係る半導体装置の構成を示すブロック図である。なお、図２において、図１と同様の構成については同一の符号を付して説明を省略する。
【００２３】
図２に示すように、半導体装置１ａは、図１の半導体装置１に対して、レジスタ１４ｂ、レジスタ１４ｃ、及び、多数決回路１８が追加されて構成されている。すなわち、半導体装置１ａは、図１の半導体装置１のレジスタ１４ａを多重化（図２の例では３重化）している。なお、半導体装置１ａは、図１の半導体装置１のレジスタ１４ａを３重化しているが、これに限定されることなく、４重化以上にしてもよい。
【００２４】
レジスタ１４ａ、１４ｂ及び１４ｃには、半導体装置１を安全な状態にするための値である固定値が記憶されている。レジスタ１４ａ、１４ｂ及び１４ｃに記憶されている固定値は、多数決回路１８に入力される。
【００２５】
多数決回路１８は、レジスタ１４ａ、１４ｂ及び１４ｃから入力された固定値のうち、最も多かった固定値を多数決で決定し、多数決で決定した固定値をマルチプレクサ１５に出力する。その他の構成は第１の実施形態と同様である。
【００２６】
レジスタ１４ａに保持されている固定値が、例えばレジスタ１４ａの故障、あるいは、ノイズ等により、意図しない固定値に書き替えられる虞がある。第１の実施形態の半導体装置１は、レジスタ１４ａに保持されている固定値が意図しない固定値に書き替えられた場合、半導体装置１の安全を維持できない可能性がある。
【００２７】
これに対し、変形例の半導体装置１ａは、レジスタ１４ａに保持されている固定値が意図しない固定値に書き替えられた場合でも、レジスタ１４ｂ及び１４ｃから半導体装置１ａを安全な状態にするための固定値が多数決回路１８に入力される。そして、多数決回路１８による多数決により、半導体装置１を安全な状態にするための固定値が選択されてマルチプレクサ１５に出力されることになる。
【００２８】
よって、変形例の半導体装置１ａによれば、第１の実施形態の半導体装置１よりも、より安全を維持することができる。
【００２９】
（第２の実施形態）
次に、第２の実施形態について説明する。  
第２の実施形態では、第１の実施形態のＥＣＣエンコーダ１１、ＳＲＡＭ１２、ＥＣＣデコーダ１３を割り込みコントローラによって選択されるベクタアドレス（割り込み処理のジャンプ先のアドレス）を保持するメモリ部に適用した例について説明する。
【００３０】
図３は、第２の実施形態に係る半導体装置の構成を示すブロック図である。なお、図３において、図１と同様の構成については同一の符号を付して説明を省略する。
【００３１】
半導体装置１ｂは、図１の半導体装置１に対して、バス２１と、ベクタアドレスを保持するメモリ部２２と、割り込みコントローラ２３とをさらに備えて構成されている。割り込みコントローラ２３は、割り込み選択部２４を有している。
【００３２】
ベクタアドレスを保持するメモリ部２２は、ＥＣＣエンコーダ１１、ＳＲＡＭ１２、ＥＣＣデコーダ１３を備えている。バス２１を介してＥＣＣエンコーダ１１にベクタアドレスが入力される。ＥＣＣエンコーダ１１は、入力されたベクタアドレスを符号化し、ベクタアドレス及びＥＣＣをＳＲＡＭ１２に出力する。これにより、ＳＲＡＭ１２には、複数のベクタアドレスが記憶されることになる。
【００３３】
割り込みコントローラ２３の割り込み選択部２４には、複数の割り込み要因２５ａ、２５ｂ、・・・、が入力される。割り込み選択部２４は、複数の割り込み要因２５ａ、２５ｂ、・・・、のうち、優先度の最も高い割り込み処理を実行するように、割り込み信号をＣＰＵ１６に出力する。さらに、割り込み選択部２４は、優先度の最も高い割り込み処理を実行するベクタアドレスを選択するためのアドレス選択信号をメモリ部２２に出力する。この結果、ＳＲＡＭ１２から選択されたベクタアドレス及びＥＣＣがＥＣＣデコーダ１３に入力される。
【００３４】
ＥＣＣデコーダ１３は、ＳＲＡＭ１２から入力されたベクタアドレス及びＥＣＣを復号する。ＥＣＣデコーダ１３は、ＳＲＡＭ１２からのベクタアドレスにエラーがない場合、エラーがないベクタアドレスをマルチプレクサ１５に出力し、ＳＲＡＭ１２からのベクタアドレスに１ビットのエラーがあった場合、１ビットのエラーを訂正したベクタアドレスをマルチプレクサ１５に出力する。一方、ＥＣＣデコーダ１３は、ＳＲＡＭ１２からのベクタアドレスに２ビット以上のエラーがあった場合、エラー訂正ができないため、２ビット以上のエラーがあったベクタアドレスをマルチプレクサ１５に出力する。
【００３５】
さらに、ＥＣＣデコーダ１３は、２ビット以上エラーの検出信号をマルチプレクサ１５に出力する。ＥＣＣデコーダ１３は、例えば、ＳＲＡＭ１２からのベクタアドレスに２ビット以上エラーがなかった場合、検出信号として「０」をマルチプレクサ１５に出力し、ＳＲＡＭ１２からのベクタアドレスに２ビット以上エラーがあった場合、検出信号として「１」をマルチプレクサ１５に出力する。
【００３６】
レジスタ１４ａは、バス２１を介して入力された、安全な処理を行うためのベクタアドレス（予め設定された処理を行うためのベクタアドレス）を記憶する。レジスタ１４ａに記憶された安全な処理を行うためのベクタアドレスは、マルチプレクサ１５に入力される。
【００３７】
マルチプレクサ１５は、２ビット以上エラーの検出信号に応じて、ＥＣＣデコーダ１３からのベクタアドレスと、レジスタ１４ａからの安全な処理を行うためのベクタアドレスとの一方を選択してＣＰＵ１６に出力する。より具体的には、マルチプレクサ１５は、ＳＲＡＭ１２からのベクタアドレスに２ビット以上エラーがなく、検出信号として「０」が入力された場合、ＥＣＣデコーダ１３からのベクタアドレスをＣＰＵ１６に出力する。一方、マルチプレクサ１５は、ＳＲＡＭ１２からのベクタアドレスに２ビット以上エラーがあり、検出信号として「１」が入力された場合、レジスタ１４ａからの安全な処理を行うためのベクタアドレスをＣＰＵ１６に出力する。
【００３８】
これにより、ＳＲＡＭ１２からのベクタアドレスに２ビット以上のエラーがない場合、ＳＲＡＭ１２からのエラーのないベクタアドレス、あるいは、１ビットのエラーが訂正され、エラーがなくなったベクタアドレスがＣＰＵ１６に出力される。
【００３９】
一方、ＳＲＡＭ１２からのベクタアドレスに２ビット以上のエラーがあり、エラー訂正ができない場合、レジスタ１４ａに保持されている安全な処理を行うためのベクタアドレスがＣＰＵ１６に出力される。
【００４０】
ＥＣＣデコーダ１３から出力された２ビット以上のエラーがあるベクタアドレスがＣＰＵに入力された場合、ＣＰＵ１６が暴走する可能性がある。これに対して、本実施形態の半導体装置１ｂは、ＳＲＡＭ１２に記憶されたベクタアドレスに２ビット以上のエラーがある場合、レジスタ１４ａに保持された安全な処理を行うためのベクタアドレスがマルチプレクサ１５によって選択され、ＣＰＵ１６に入力される。
【００４１】
この結果、半導体装置１ｂは、ＳＲＡＭ１２からのベクタアドレスに２ビット以上のエラーがあった場合でも、安全を維持することができる。
【００４２】
（変形例）
次に、第２の実施形態の変形例について説明する。  
図４は、第２の実施形態の変形例に係る半導体装置の構成を示すブロック図である。なお、図４において、図３と同様の構成については同一の符号を付して説明を省略する。
【００４３】
図４に示すように、半導体装置１ｃは、図３の半導体装置１ｂに対して、レジスタ１４ｂ、レジスタ１４ｃ、及び、多数決回路１８が追加されて構成されている。すなわち、半導体装置１ｃは、図３の半導体装置１ｂのレジスタ１４ａを多重化（図４の例では３重化）している。なお、半導体装置１ｃは、図３の半導体装置１ｂのレジスタ１４ａを３重化しているが、これに限定されることなく、４重化以上にしてもよい。
【００４４】
レジスタ１４ａ、１４ｂ及び１４ｃには、バス２１を介して入力された安全な処理を行うためのベクタアドレスが記憶されている。レジスタ１４ａ、１４ｂ及び１４ｃに記憶されている安全な処理を行うためのベクタアドレスは、多数決回路１８に入力される。
【００４５】
多数決回路１８は、レジスタ１４ａ、１４ｂ及び１４ｃから入力されたベクタアドレスのうち、最も多かったベクタアドレスを多数決で決定し、多数決で決定したベクタアドレスをマルチプレクサ１５に出力する。その他の構成は第２の実施形態と同様である。
【００４６】
レジスタ１４ａに保持されている安全な処理を行うためのベクタアドレスが、例えばレジスタ１４ａの故障、あるいは、ノイズ等により、意図しないベクタアドレスに書き替えられる虞がある。第２の実施形態の半導体装置１ｂは、レジスタ１４ａに保持されている安全な処理を行うためのベクタアドレスが意図しないベクタアドレスに書き替えられた場合、例えばＣＰＵ１６が暴走し、半導体装置１ｂの安全を維持できない可能性がある。
【００４７】
これに対し、変形例の半導体装置１ｃは、レジスタ１４ａに保持されている安全な処理を行うためのベクタアドレスが意図しないベクタアドレスに書き替えられた場合でも、レジスタ１４ｂ及び１４ｃから安全な処理を行うためのベクタアドレスが多数決回路１８に入力される。そして、多数決回路１８による多数決により、安全な処理を行うためのベクタアドレスが選択されてマルチプレクサ１５に出力されることになる。
【００４８】
よって、変形例の半導体装置１ｃによれば、第２の実施形態の半導体装置１ｂよりも、より安全を維持することができる。
【００４９】
（第３の実施形態）
次に、第３の実施形態について説明する。  
第３の実施形態では、第１の実施形態のＥＣＣエンコーダ１１、ＳＲＡＭ１２、ＥＣＣデコーダ１３をＤＭＡコントローラ（以下、ＤＭＡＣという）の命令コードを保持するメモリ部に適用した例について説明する。
【００５０】
図５は、第３の実施形態に係る半導体装置の構成を示すブロック図である。なお、図５において、図１及び図３と同様の構成については同一の符号を付して説明を省略する。
【００５１】
半導体装置１ｄは、図１の半導体装置１に対して、バス２１、ＤＭＡＣ３１と、ＤＭＡＣ３１の命令コード（コマンド列）を保持するメモリ部３２と、転送元デバイス３３と、転送先デバイス３４とをさらに備えて構成されている。
【００５２】
命令コードを保持するメモリ部３２は、ＥＣＣエンコーダ１１、ＳＲＡＭ１２、ＥＣＣデコーダ１３を備えている。ＥＣＣエンコーダ１１は、バス２１を介して入力された命令コードを符号化し、命令コード及びＥＣＣをＳＲＡＭ１２に出力する。これにより、ＳＲＡＭ１２には、ＤＭＡＣ３１の複数の命令コード及びＥＣＣが記憶される。
【００５３】
ＥＣＣデコーダ１３は、ＳＲＡＭ１２から読み出された命令コード及びＥＣＣを復号する。ＥＣＣデコーダ１３は、ＳＲＡＭ１２からの命令コードにエラーがない場合、エラーがない命令コードをマルチプレクサ１５に出力し、ＳＲＡＭ１２からの命令コードに１ビットのエラーがあった場合、１ビットのエラーを訂正した命令コードをマルチプレクサ１５に出力する。一方、ＥＣＣデコーダ１３は、ＳＲＡＭ１２からの命令コードに２ビット以上のエラーがあった場合、エラー訂正ができないため、２ビット以上のエラーがあった命令コードをマルチプレクサ１５に出力する。
【００５４】
さらに、ＥＣＣデコーダ１３は、２ビット以上エラーの検出信号をマルチプレクサ１５に出力する。ＥＣＣデコーダ１３は、例えば、ＳＲＡＭ１２からの命令コードに２ビット以上エラーがなかった場合、検出信号として「０」をマルチプレクサ１５に出力し、ＳＲＡＭ１２からの命令コードに２ビット以上エラーがあった場合、検出信号として「１」をマルチプレクサ１５に出力する。
【００５５】
レジスタ１４ａは、バス２１を介して入力された、安全な処理を行うための命令コード（予め設定された処理を行うための命令コード）を記憶する。レジスタ１４ａに記憶された安全な処理を行うための命令コードは、マルチプレクサ１５に入力される。
【００５６】
マルチプレクサ１５は、２ビット以上エラーの検出信号に応じて、ＥＣＣデコーダ１３からの命令コードと、レジスタ１４ａからの安全な処理を行うための命令コードとの一方を選択してＣＰＵ１６に出力する。より具体的には、マルチプレクサ１５は、ＳＲＡＭ１２からの命令コードに２ビット以上エラーがなく、検出信号として「０」が入力された場合、ＥＣＣデコーダ１３からの命令コードをＣＰＵ１６に出力する。一方、マルチプレクサ１５は、ＳＲＡＭ１２からの命令コードに２ビット以上エラーがあり、検出信号として「１」が入力された場合、レジスタ１４ａからの安全な処理を行うための命令コードをＣＰＵ１６に出力する。
【００５７】
ＤＭＡＣ３１は、メモリ部３２のＳＲＡＭ１２からの命令コードを処理することで、転送元デバイス３３からのデータをバス２１を介して転送先デバイス３４に直接転送するように制御することができる。ただし、２ビット以上のエラーがあった場合、マルチプレクサ１５によってレジスタ１４ａに記憶されている安全な処理を行う命令コードが選択され、ＤＭＡＣ３１に入力される。ＤＭＡＣ３１は、入力された安全な処理を行う命令コードを実行し、データの誤転送を防止することができる。
【００５８】
この結果、半導体装置１ｄは、ＳＲＡＭ１２からの命令コードに２ビット以上のエラーがあった場合でも、安全を維持することができる。
【００５９】
（変形例）
次に、第３の実施形態の変形例について説明する。  
図６は、第３の実施形態の変形例に係る半導体装置の構成を示すブロック図である。なお、図６において、図５と同様の構成については同一の符号を付して説明を省略する。
【００６０】
図６に示すように、半導体装置１ｅは、図５の半導体装置１ｄに対して、レジスタ１４ｂ、レジスタ１４ｃ、及び、多数決回路１８が追加されて構成されている。すなわち、半導体装置１ｅは、図５の半導体装置１ｄのレジスタ１４ａを多重化（図６の例では３重化）している。なお、半導体装置１ｅは、図５の半導体装置１ｄのレジスタ１４ａを３重化しているが、これに限定されることなく、４重化以上にしてもよい。
【００６１】
レジスタ１４ａ、１４ｂ及び１４ｃには、バス２１を介して入力された安全な処理を行うための命令コードが記憶されている。レジスタ１４ａ、１４ｂ及び１４ｃに記憶されている安全な処理を行うための命令コードは、多数決回路１８に入力される。
【００６２】
多数決回路１８は、レジスタ１４ａ、１４ｂ及び１４ｃから入力された命令コードのうち、最も多かった命令コードを多数決で決定し、多数決で決定した命令コードをマルチプレクサ１５に出力する。その他の構成は第２の実施形態と同様である。
【００６３】
レジスタ１４ａに保持されている安全な処理を行うための命令コードが、例えばレジスタ１４ａの故障、あるいは、ノイズ等により、意図しない命令コードに書き替えられる虞がある。第３の実施形態の半導体装置１ｄは、レジスタ１４ａに保持されている安全な処理を行うための命令コードが意図しない命令コードに書き替えられた場合、例えばＤＭＡＣ３１によってデータの誤転送が発生し、半導体装置１ｄの安全を維持できない可能性がある。
【００６４】
これに対し、変形例の半導体装置１ｅは、レジスタ１４ａに保持されている安全な処理を行うための命令コードが意図しない命令コードに書き替えられた場合でも、レジスタ１４ｂ及び１４ｃから安全な処理を行うための命令コードが多数決回路１８に入力される。そして、多数決回路１８による多数決により、安全な処理を行うための命令コードが選択されてマルチプレクサ１５に出力されることになる。
【００６５】
よって、変形例の半導体装置１ｅによれば、第３の実施形態の半導体装置１ｄよりも、より安全を維持することができる。
【００６６】
発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６７】
１、１ａ、１ｂ、１ｃ、１ｄ、１ｅ…半導体装置、１１…ＥＣＣエンコーダ、１２…記憶部、１２ａ…データ記憶部、１２ｂ…ＥＣＣ記憶部、１３…ＥＣＣデコーダ、１４ａ、１４ｂ、１４ｃ…レジスタ、１５…マルチプレクサ、１６…ＣＰＵ、１７…エラー情報レジスタ、１８…多数決回路、２１…バス、２２…メモリ部、２３…コントローラ、２４…割り込み選択部、３１…ＤＭＡＣ、３２…メモリ部、３３…転送元デバイス、３４…転送先デバイス。
【図１】
2019164472.tif 000003
【図２】
2019164472.tif 000004
【図３】
2019164472.tif 000005
【図４】
2019164472.tif 000006
【図５】
2019164472.tif 000007
【図６】
2019164472.tif 000008