JP2014215618A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2014215618A JP2014215618A JP2013089330A JP2013089330A JP2014215618A JP 2014215618 A JP2014215618 A JP 2014215618A JP 2013089330 A JP2013089330 A JP 2013089330A JP 2013089330 A JP2013089330 A JP 2013089330A JP 2014215618 A JP2014215618 A JP 2014215618A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register group
- stored
- circuit
- register
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】回路規模の増大を抑制しつつ、不揮発性メモリより転送されたデータを保持するレジスタ群のデータ異常を検出できる半導体装置を提供する。【解決手段】複数のレジスタ群4には、データ転送回路3によって、不揮発性メモリ2に記憶されているデータが転送されて格納される。そして、データ監視回路6は、レジスタ群4に格納されているデータのうち、少なくとも何れか1ビットのデータ値が転送された直後から変化したか否かを監視し、変化があれば異常検出信号を出力する。【選択図】図1
Description
本発明は、不揮発性メモリに記憶されているデータの誤りを検出する機能を有する半導体装置に関する。
不揮発性メモリに記憶されているデータを、例えばクロック信号や動作電圧を生成するための内部回路について、調整値として用いるICがある。このようなICでは、電源が投入された際に不揮発性メモリよりデータを読み出して、レジスタに格納することで内部回路の調整に使用する。しかしながら、レジスタに格納されたデータについては、ノイズや宇宙線等によるソフトエラーにより変化することがある。内部回路の調整値が変化すると、ICの誤動作に繋がるため、例えば所定時間毎に不揮発性メモリからデータを読み出してレジスタに再度格納するリフレッシュ動作を行うなどしている。
ところが、レジスタに格納されているデータが実際に変化したか否かに関わらず、周期的リフレッシュ動作を行うと、余分な処理負荷や消費電力が発生することになる。また、不揮発性メモリからの読み出しを繰り返すことで、リードディスターブの発生が問題となる。
上記のようなデータの変化に対応するため、例えば特許文献1には、不揮発性メモリより読み出したデータを誤り訂正符号に符号化し、符号化したデータをラッチに格納しておき、復号化回路が誤り訂正符号を復号してデータの誤りを検出した場合に、不揮発性メモリよりデータを再ロードする技術が開示されている。また、特許文献2には、同じデータを3つのラッチに並行して格納し、それらの多数決により誤りを検出する技術が開示されている。
しかしながら、特許文献1,2に開示されている技術では、実際にデータが変化する確率はそれ程高くないにもかかわらず、誤り訂正符号を格納するラッチや、同一のデータを並行して保持するラッチ等を設けており、回路規模が大きくなるという問題がある。
本発明は上記事情に鑑みてなされたものであり、その目的は、回路規模の増大を抑制しつつ、不揮発性メモリより転送されたデータを保持するレジスタ群のデータ異常を検出できる半導体装置を提供することにある。
請求項1記載の半導体装置によれば、レジスタ群には、データ転送回路によって、不揮発性メモリに記憶されているデータが転送されて格納される。そして、データ監視回路は、レジスタ群に格納されているデータのうち、少なくとも何れか1ビットのデータ値が転送された直後から変化したか否かを監視し、変化があれば異常検出信号を出力する。したがって、極めて簡単な異常検出原理に基いた簡単な構成の回路により、レジスタ群に格納されているデータを常時監視してデータの異常を検出できる。
請求項2記載の半導体装置によれば、データ監視回路は、パリティを用いてデータの監視を行う。すなわち、パリティを用いれば複数のデータの1ビットが変化したことを検出できるので、データ監視回路の構成が極めて簡単になる。
請求項3記載の半導体装置によれば、データ監視回路は、レジスタ群に格納されている監視範囲対象とするデータについて、排他的論理和をとるEXORゲートを複数段用いて、最終的に1つのEXORゲート(最終ゲート)に信号をまとめる。そして、信号出力用ゲートの入力端子の一方を最終ゲートの出力端子に直接接続し、入力端子の他方を最終ゲートの出力端子に遅延回路を介して接続する。
ここで、信号出力用ゲートを例えばEXORゲートとすると、監視範囲対象とするデータの何れか1ビットの値が変化すれば、最終ゲートの出力信号のレベルが変化する。そして、遅延回路を介して出力される信号のレベルは、遅延時間が経過した後に変化するので、両者のレベル変化の時間差に相当する期間だけ、信号出力用ゲートの出力信号はハイレベルを示す。したがって、パリティにより何れか1ビットのデータ値が変化したことを検出できる。
請求項9記載の半導体装置によれば、CPUは、不揮発性メモリからレジスタ群へのデータ転送を最初に行った際に、当該データについて誤り検出を行うための演算を行うと、その演算結果データを記憶手段に記憶させる。そして、以降にレジスタ群からデータを読み出すと、当該データについて誤り検出演算を行い、その演算結果データが記憶手段に記憶させた演算結果データと異なれば異常を検出する。すなわち、CPUが誤り訂正回路としての動作をソフトウェアにより実行するので、誤り訂正回路を別途設けずともレジスタ群のデータ異常を検出できる。
(第1実施形態)
図1に示すように、メモリシステム1(半導体装置)は、例えばフラッシュメモリからなる不揮発性メモリ2,データ転送回路3,レジスタ群4,制御回路5,データ監視回路6で構成されている。データ転送回路3は、外部からの転送トリガ信号が与えられると、不揮発性メモリ2からデータを読み出してレジスタ群4に格納する。レジスタ群4は、ここでは1ビットごとのレジスタ4(1)〜(8),…の集合である。レジスタ群4に格納されたデータは、例えば4ビット毎に配置されている制御回路5に入力される。制御回路5は、入力されたデータ値に基づいて、例えばクロック信号の発振周波数を制御したり、動作電源電圧を制御したりといった、図示しない内部回路の調整を行う。
図1に示すように、メモリシステム1(半導体装置)は、例えばフラッシュメモリからなる不揮発性メモリ2,データ転送回路3,レジスタ群4,制御回路5,データ監視回路6で構成されている。データ転送回路3は、外部からの転送トリガ信号が与えられると、不揮発性メモリ2からデータを読み出してレジスタ群4に格納する。レジスタ群4は、ここでは1ビットごとのレジスタ4(1)〜(8),…の集合である。レジスタ群4に格納されたデータは、例えば4ビット毎に配置されている制御回路5に入力される。制御回路5は、入力されたデータ値に基づいて、例えばクロック信号の発振周波数を制御したり、動作電源電圧を制御したりといった、図示しない内部回路の調整を行う。
データ監視回路6も、4ビットごとに配置されている。データ監視回路6は、レジスタ群4に格納されている4ビットデータが変化したか否かを監視する回路であり、4ビットのうち何れか1ビットのデータ値が変化すると、異常検出信号を外部に出力する。尚、この監視動作は、外部より入力されるイネーブル信号がアクティブである期間に行われる。上記異常検出信号が出力されると、例えば、メモリシステム1を含む上位のシステムをリセットしたり、上位システムを管理しているCPUに割り込みを発生させるなどする。
図2に示すように、データ監視回路6は、例えば4つのEXORゲート7〜10と、遅延回路11と、ANDゲート12とで構成されている。2つのEXORゲート7,8は初段に配置され、これらの入力端子には4ビットデータが入力される。EXORゲート7,8の出力端子は、次段のEXORゲート9(最終ゲート)の入力端子に接続されており、EXORゲート9の出力端子は、次段のEXORゲート10(信号出力用ゲート)の入力端子の一方に直接、他方に遅延回路11を介して接続されている。EXORゲート10の出力端子は、ANDゲート12の入力端子の一方に接続されており、入力端子の他方には監視イネーブル信号が与えられている。
データ監視回路6は、いわゆるパリティを用いてデータの監視を行う。最終段のEXORゲート10が出力する信号のレベルは、4ビットデータに変化がない限りローである。図3に示すように、例えば4ビットの各データの初期値が何れも「0」であるとして、ある時点で、それらのうち第3ビットのデータ値が「1」に変化したとする。すると、EXORゲート10の出力端子レベルは、遅延回路11が付与する遅延時間の間だけハイレベルに変化する。これにより、各データ値が変化したか否かを監視する。
尚、データ転送回路3が最初に不揮発性メモリ2からレジスタ群4にデータ転送を行う際には、データ監視回路6の監視動作をディスエーブルするため、データ転送回路3がデータ転送を行う期間に併せて監視イネーブル信号をローレベルにし、ANDゲート12により異常検出信号の出力を阻止する。
尚、データ転送回路3が最初に不揮発性メモリ2からレジスタ群4にデータ転送を行う際には、データ監視回路6の監視動作をディスエーブルするため、データ転送回路3がデータ転送を行う期間に併せて監視イネーブル信号をローレベルにし、ANDゲート12により異常検出信号の出力を阻止する。
以上のように本実施形態によれば、レジスタ群4には、データ転送回路3によって、不揮発性メモリ2に記憶されているデータが転送されて格納される。そして、データ監視回路6は、レジスタ群4に格納されているデータのうち、少なくとも何れか1ビットのデータ値が転送された直後から変化したか否かを監視し、変化があれば異常検出信号を出力する。したがって、極めて簡単な検出原理に基づいた簡単な構成の回路で、レジスタ群4に格納されているデータを常時監視してデータの異常を検出できる。
この場合、データ監視回路6は、パリティを用いてデータの監視を行う。具体的には、4ビットのデータに対してEXORゲート7〜9を用い、最終的にEXORゲート9に信号をまとめる。そして、EXORゲート10の入力端子の一方をEXORゲート9の出力端子に直接接続し、入力端子の他方は遅延回路11を介して接続する。これにより、4ビットデータの何れか1ビットのデータ値が変化すれば、EXORゲート10の出力信号は、遅延回路11により付与される遅延時間だけハイレベルを示す。したがって、パリティにより何れか1ビットのデータ値が変化したことを検出でき、データ監視回路6の構成が極めて簡単になる。
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図4に示すように、第2実施形態のメモリシステム21は、第1実施形態の構成にリフレッシュ制御回路22(データ転送回路)を追加したものである。リフレッシュ制御回路22には、データ監視回路6A,6Bからの異常検出信号が入力されており、何れかの異常検出信号がアクティブになると、データ転送回路3に転送指令信号を出力する。すると、データ転送回路3は、不揮発性メモリ2よりデータを読み出してレジスタ群4に格納し、再転送(リフレッシュ)を行う。
尚、上記転送指令信号がアクティブになる期間も、データ監視回路6による監視動作をディスエーブルするように制御する。また、データの再転送は、少なくとも異常が検出されたレジスタ群4について行えば良い。
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図4に示すように、第2実施形態のメモリシステム21は、第1実施形態の構成にリフレッシュ制御回路22(データ転送回路)を追加したものである。リフレッシュ制御回路22には、データ監視回路6A,6Bからの異常検出信号が入力されており、何れかの異常検出信号がアクティブになると、データ転送回路3に転送指令信号を出力する。すると、データ転送回路3は、不揮発性メモリ2よりデータを読み出してレジスタ群4に格納し、再転送(リフレッシュ)を行う。
尚、上記転送指令信号がアクティブになる期間も、データ監視回路6による監視動作をディスエーブルするように制御する。また、データの再転送は、少なくとも異常が検出されたレジスタ群4について行えば良い。
以上のように第2実施形態によれば、データ転送回路3は、異常検出信号が出力されると、リフレッシュ制御回路22からの転送指令を受けて異常が検知されたレジスタ群4のデータを不揮発性メモリ2から再転送するので、レジスタ群4のデータを正常な状態に復帰させることができる。そして、正常なデータを維持するために不要な再転送を繰り返す必要がないので、リードディスターブの発生を抑制する共に、消費電力の増加も抑制できる。
(第3実施形態)
図5に示すように、第3実施形態のメモリシステム31は、8ビットのデータに対して1つのデータ監視回路6を配置し、データ監視回路6に入力する4ビットデータをセレクタ32(マルチプレクサ,データ監視回路)により選択して切り替える。すなわち、制御回路5Aに対応する4つのレジスタ4(1)〜4(4)をレジスタ群4A,制御回路5Bに対応する4つのレジスタ4(5)〜4(8)をレジスタ群4Bとすると、セレクタ32の入力端子A,Bには、それぞれレジスタ群4A,4Bの4ビットデータが与えられている。
図5に示すように、第3実施形態のメモリシステム31は、8ビットのデータに対して1つのデータ監視回路6を配置し、データ監視回路6に入力する4ビットデータをセレクタ32(マルチプレクサ,データ監視回路)により選択して切り替える。すなわち、制御回路5Aに対応する4つのレジスタ4(1)〜4(4)をレジスタ群4A,制御回路5Bに対応する4つのレジスタ4(5)〜4(8)をレジスタ群4Bとすると、セレクタ32の入力端子A,Bには、それぞれレジスタ群4A,4Bの4ビットデータが与えられている。
セレクタ32は、内蔵されているタイマ(図示せず)により切り替え周期を計時しており、切り替え周期ごとに入力端子A側,B側を交互に選択してデータ監視回路6に出力する。したがって、データ監視回路6は、レジスタ群4A,4Bのデータ監視を交互に行う。ただし、監視対象とするレジスタ群を切り替える際には、入力データの切替えに伴う異常検出をマスクするため、監視を所定期間だけディスエーブルする必要がある。尚、データ監視回路6が3つ以上のレジスタ群を監視対象としても良いことは言うまでもない。
また、監視対象データの重要度に応じて、監視時間比率や監視頻度を変化させても良い(例えば、システムクロックの周波数を設定するためのデータは、異常があるとシステムの挙動に大きな影響を及ぼすため、重要度が高い)。例えば、重要度が高いデータは1秒毎に監視し、重要度が低いデータは10秒毎に監視するなどしても良い。
以上のように第3実施形態によれば、複数のレジスタ群4A,4Bに対して、データ監視回路6を1つだけ備え、セレクタ32によりレジスタ群4A,4Bに格納されているデータを切り換えてデータ監視回路6に出力する。そして、データ監視回路6は、セレクタ32が切り換え制御を行うことでレジスタ群4A,4Bに格納されているデータの監視を交互に行う。したがって、監視対象とするレジスタ群の数が多い場合に、データ監視回路6の数を削減してメモリシステム31を小型に構成できる。
(第4実施形態)
図6に示すように、第4実施形態のメモリシステム33は、第3実施形態のメモリシステム31に第2実施形態のリフレッシュ制御回路22を組み合わせたもので、リフレッシュ制御回路22は、データ監視回路6からの異常検出信号がアクティブになると、データ転送回路3に転送指令信号を出力して、データ転送回路3に不揮発性メモリ2からレジスタ群4にデータを再転送させる。
図6に示すように、第4実施形態のメモリシステム33は、第3実施形態のメモリシステム31に第2実施形態のリフレッシュ制御回路22を組み合わせたもので、リフレッシュ制御回路22は、データ監視回路6からの異常検出信号がアクティブになると、データ転送回路3に転送指令信号を出力して、データ転送回路3に不揮発性メモリ2からレジスタ群4にデータを再転送させる。
尚、この場合、セレクタ22が内部で使用している切り替え制御信号を、破線で示すように、リフレッシュ制御回路22又はデータ転送回路3に入力することで、異常が検出されたレジスタ群についてのみデータの再転送を行うようにしても良い。以上のように構成される第4実施形態によれば、第2及び第3実施形態と同様の効果が得られる。
(第5実施形態)
図7に示すように、第5実施形態のメモリシステム41は、CPU42,ROM43を備えており、これらと不揮発性メモリ2及びレジスタ群44とはアドレスバス及びデータバス45により相互に接続されている。また、レジスタ群44においては、データ4ビット毎に、パリティデータ格納用のレジスタ4PA,4PB,…(記憶手段)が配置されている。そして、データ監視回路6は設けられておらず、それに替えてCPU42が、ソフトウェア動作によってデータ監視を行う。
図7に示すように、第5実施形態のメモリシステム41は、CPU42,ROM43を備えており、これらと不揮発性メモリ2及びレジスタ群44とはアドレスバス及びデータバス45により相互に接続されている。また、レジスタ群44においては、データ4ビット毎に、パリティデータ格納用のレジスタ4PA,4PB,…(記憶手段)が配置されている。そして、データ監視回路6は設けられておらず、それに替えてCPU42が、ソフトウェア動作によってデータ監視を行う。
次に、第5実施形態の作用について説明する。図8において、CPU42は、不揮発性メモリ2からレジスタ群44にデータのロードを行うと(S1)、そのロードしたデータに基づいて異常発生監視用データ(パリティデータ)の生成を行う(S2)。それからタイマを初期化して(S3)タイマ割り込み要求をクリアすると(S4)、タイマ割り込みを許可する(S5)。ここまでが初期設定であり、以降にメインルーチンを実行する(S6)。
ステップS1における不揮発性メモリ2からのデータロードは、図9に示すように、先ずポインタnに「1」をセットして(S11)、不揮発性メモリ2からn番目のレジスタ群4に対応するデータを読み出す(S12)。そして、読み出したデータをn番目のレジスタ群4に書き込む(S13)。続いて、ポインタnの値がレジスタ群の総数Nに等しいか否かを判断し(S14)、等しくなければ(NO)ポインタnをインクリメントして(S15)ステップS12に移行する。一方、ポインタnの値がNに等しければ(S14:YES)サブルーチンを終了する。
ステップS2における異常発生監視用データの生成は、図10に示すように、ポインタnに「1」をセットして(S21)、n番目のレジスタ群4からデータを読み出す(S22)。そして、読み出したデータに基づいてパリティを計算すると(S23,誤り検出演算)、計算したパリティデータをn番目のレジスタ群4に対応するパリティデータ格納用のレジスタ4Pに書き込む(S24)。続くステップS25,S26は、ステップS14,S15と同等である。
タイマ割り込みが発生すると、図11に示すように、CPU42は、先ず割り込み要求をクリアする(S31)。次に、ポインタnに「1」をセットすると(S32)、n番目のレジスタ群44からデータ及び対応するパリティデータを読み出し(S33)、データより演算したパリティ値と読み出したパリティデータ値とを比較(確認)する(S34)。両者が一致して異常がなければ(S35:YES)、ステップS36,S37(S14,S15と同じ)を実行する。
一方、データより演算したパリティ値と読み出したパリティデータ値とが不一致であれば(S35:NO)、続くステップS38〜S41において、ステップS12,S13,S23,S24と同じ処理を実行する。つまり、異常が検出されたレジスタ群のデータをリフレッシュする。それから、ステップS36に移行する。
以上のように第5実施形態によれば、CPU42は、不揮発性メモリ2よりレジスタ群44へのデータ転送を最初に行った際に、当該データについて誤り検出を行うためのパリティ演算を行うと、その演算結果データをレジスタ4Pに記憶させ、以降にレジスタ群44からデータを読み出すと、当該データについてパリティ演算を行い、その演算結果データがレジスタ4Pに記憶させたパリティデータと異なれば異常を検出する。すなわち、CPU42が誤り訂正回路としての動作をソフトウェアにより実行するので、誤り訂正回路を別途設けずともレジスタ群44のデータ異常を検出できる。
(第6実施形態)
図12に示すように、第6実施形態のメモリシステム51では、レジスタ群52の使用形態が異なっている。レジスタ群52には、レジスタ4(1),4(5)に格納されている2ビットデータについての排他的論理和(XOR=EXOR)値,つまりパリティ値がレジスタ4P(1)に格納され、レジスタ4(2),4(6)に格納されている2ビットデータについての排他的論理和値がレジスタ4P(2)に格納される。
図12に示すように、第6実施形態のメモリシステム51では、レジスタ群52の使用形態が異なっている。レジスタ群52には、レジスタ4(1),4(5)に格納されている2ビットデータについての排他的論理和(XOR=EXOR)値,つまりパリティ値がレジスタ4P(1)に格納され、レジスタ4(2),4(6)に格納されている2ビットデータについての排他的論理和値がレジスタ4P(2)に格納される。
次に、第6実施形態の作用について説明する。図13に示すように、CPU42は、ステップS21,S22を実行すると、ポインタnが「1」か否かを判断し(S27)、「1」であれば(YES)、1番目のレジスタ群4AのデータをXOR値格納レジスタ群4Pに格納する(S28)。それから、ステップS26に移行する。
一方、ポインタnが「1」でなければ(S27:NO)、ここで、n=2とすると、レジスタ群4Bのデータと、XOR値格納レジスタ群4Pに格納されているレジスタ群4AのデータとXOR値を求め(S29,誤り検出演算)、それらのXOR値をXOR値格納レジスタ群4Pに書き戻す(S30)。それから、ステップS25に移行する。
タイマ割り込みが発生すると、図14に示すように、CPU42は、ステップS31を実行し、次に、XOR値格納レジスタ群4Pに格納されているデータを読み出して、図示しないRAMに一時保存する(S42)。続いてステップS32を実行し、n番目のレジスタ群4からデータを読み出す(S43)。そして、読み出したデータとRAMに一時保存したデータとでXOR演算を行い(S44)、その演算結果をRAMに上書きする(S45)。続いてステップS36,S37を実行する。
ステップS36で「YES」と判断すると、その時点で、ステップS45で書き込んだRAM上の演算結果が全て「0」であるか否かを判断する(S46)。全て「0」であれば(YES)レジスタ群52に格納されているデータに異常はないので割り込みルーチンを終了する。一方、RAM上の演算結果が全て「0」でなければ(S46:NO)、レジスタ群52に格納されているデータに異常があるので、不揮発性メモリ2からレジスタ群52にデータをロードして(S47)、異常発生監視用データを生成する(S48)。すなわち、図13に示す処理を実行する。
以上のように第6実施形態によれば、CPU42は、レジスタ4(1),4(5)に格納されている2ビットデータ,レジスタ4(2),4(6)に格納されている2ビットデータについてのXOR値をそれぞれ求め、求めたXOR値をレジスタ群52のレジスタ4Pに格納し、そのXOR値を用いてデータの異常検出を行う。したがって、第5実施形態と同様の効果が得られる。
(第7実施形態)
図15に示すように、第7実施形態のメモリシステム53では、レジスタ群54において、第6実施形態におけるXOR値格納レジスタ群4Pをレジスタ群4PAとすると、レジスタ群4PAに格納されているデータのコピー(バックアップ)を、レジスタ群4PBに格納して保持している。
図15に示すように、第7実施形態のメモリシステム53では、レジスタ群54において、第6実施形態におけるXOR値格納レジスタ群4Pをレジスタ群4PAとすると、レジスタ群4PAに格納されているデータのコピー(バックアップ)を、レジスタ群4PBに格納して保持している。
次に、第7実施形態の作用について説明する。図16に示すように、ステップS27〜S30Aまでの処理は、実質的に第6実施形態と同様に行われる。そして、ステップS25で「YES」と判断すると、レジスタ群4PAに格納されているデータを読み出して、レジスタ群4PBに格納してコピーする(S51)。
また、図17に示すように、ステップS31を実行すると、レジスタ群4PA,4PBに格納されているデータをそれぞれ読み出して比較し(S52)、両者のデータ値が一致すれば(S53:YES)、レジスタ群4PAのデータをRAMに一時保存し、以降は第6実施形態と同様に処理を実行する。一方、両者のデータ値が一致しなければ(S53:NO)、ステップS47に移行する。
以上のように第7実施形態によれば、CPU42は、誤り検出演算の演算結果データであるXOR値を、レジスタ群4PA,4PBの複数箇所に記憶させ、これらのレジスタ群4PA,4PBに記憶させたXOR値を照合して両者が一致すれば、そのXOR値を、対応するレジスタ群4Aから読み出したデータより得られたXOR値と照合する。したがって、レジスタ群4Pに格納したXOR値についてバックアップをとることで、データの異常検出をより確実に行うことができる。
(第8実施形態)
図18に示すように、第8実施形態のメモリシステム55では、レジスタ群56において、レジスタ群4Pに格納されている4ビットのXOR値について求めたパリティデータがレジスタ4PPに格納されている。続いて、第8実施形態の作用について説明する。図19に示すように、ステップS27〜S30までの処理は第6実施形態と同様に行われる。そして、ステップS25で「YES」と判断すると、レジスタ群4Pに格納されているデータを読み出してパリティ値を計算し(S54)、そのパリティ値をレジスタ4PPに格納する(S55)。
図18に示すように、第8実施形態のメモリシステム55では、レジスタ群56において、レジスタ群4Pに格納されている4ビットのXOR値について求めたパリティデータがレジスタ4PPに格納されている。続いて、第8実施形態の作用について説明する。図19に示すように、ステップS27〜S30までの処理は第6実施形態と同様に行われる。そして、ステップS25で「YES」と判断すると、レジスタ群4Pに格納されているデータを読み出してパリティ値を計算し(S54)、そのパリティ値をレジスタ4PPに格納する(S55)。
また、図20に示すように、ステップS31を実行すると、レジスタ群4Pに格納されているデータを読み出してパリティ値を計算し、レジスタ4PPに格納されているパリティ値と一致するか確認する(S56)。そして、両者のデータ値が一致すれば(S57:YES)ステップS42に移行し、一致しなければステップS47に移行する。
以上のように第8実施形態によれば、CPU42は、レジスタ群4Pに格納されている4ビットのXOR値について求めたパリティデータをレジスタ4PPに格納し、レジスタ群4A,4Bについて異常検出を行う場合には、レジスタ群4Pに格納されているXOR値より求めたパリティ値と、レジスタ4PPに格納されているパリティ値とが一致すれば、前記XOR値を異常検出に使用する。したがって、第8実施形態の場合も、レジスタ群4Pに格納されているXOR値が正しいことを確認した上で、データの異常検出をより確実に行うことができる。
(第9実施形態)
第9実施形態は、データ監視回路の異なる構成例を示す。図21に示すように、データ監視回路61は、EXORゲート9,10の間に、遅延回路に替えて、直列に接続されるDフリップフロップ62及び63(パリティデータ保持回路)を配置している。EXORゲート10の入力端子は、Dフリップフロップ62,63の出力端子Qにそれぞれ接続されている。
第9実施形態は、データ監視回路の異なる構成例を示す。図21に示すように、データ監視回路61は、EXORゲート9,10の間に、遅延回路に替えて、直列に接続されるDフリップフロップ62及び63(パリティデータ保持回路)を配置している。EXORゲート10の入力端子は、Dフリップフロップ62,63の出力端子Qにそれぞれ接続されている。
Dフリップフロップ62,63のクロック端子CKには、共通のシフトクロック信号が与えられる。このシフトクロック信号は、データ転送回路3が不揮発性メモリ2からレジスタ群4へのデータ転送が実行される毎に入力される。ただし、初回の転送(ロード)時のみシフトクロックパルスを2回入力して、EXORゲート9の出力データを、Dフリップフロップ63の出力端子Qに伝達させる。尚、Dフリップフロップ63を「遅延回路」として見ることもできる。
次に、第9実施形態の作用について説明する。図22に示すように、レジスタ群4に最初にデータがロードされ、Dフリップフロップ62,63にシフトクロックパルスを2回入力した後にデータの異常検出が可能になる。図22(a)に示すように、レジスタ群4に格納されたデータに異常がなければ、2回目以降にデータをロードしてパリティデータをDフリップフロップ62,63に順次格納しても、そのデータ値は変わらない。
一方、図22(b)に示すように、例えば、2回目にデータをロードした際にレジスタ群4に格納されたデータに変化があると、EXORゲート9が出力するデータ値が変化する。すると、EXORゲート10の2つの入力端子に与えられるデータ値が異なり、出力信号がハイレベルに変化する(異常検出信号)。したがって、レジスタ群4に格納されたデータの異常を検出できる。
以上のように第9実施形態によれば、データ転送回路3が、不揮発性メモリ2からデータを転送した際に生成されるパリティを、転送の2回分について保持するDフリップフロップ62及び63を備え、データ監視回路61は、Dフリップフロップ62及び63により保持されている、2回分のパリティデータの値の何れかに変化が生じると異常検出信号を出力する。したがって、小規模な回路でデータの異常を検出できる。
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
異常発生用監視用データについては、パリティに限ることなく、チェックサムやCRC(Cyclic Redundancy Check)符号,ハミング符号,拡大ハミング符号などを用いても良い。尚、8ビットデータについて、ハミング符号は4ビット,拡大ハミング符号は5ビットが必要となる。また、監視対象となるデータの重要度に応じて、複数種類の監視用データを同時に使用しても良いし、監視対象データそのものを監視用データとしても良い(すなわち、データの二重化)。
1つのデータ監視回路により、5ビット以上のデータについて変化を監視しても良い。
第9実施形態において、フリップフロップを3直列以上接続しても良い。
異常発生用監視用データについては、パリティに限ることなく、チェックサムやCRC(Cyclic Redundancy Check)符号,ハミング符号,拡大ハミング符号などを用いても良い。尚、8ビットデータについて、ハミング符号は4ビット,拡大ハミング符号は5ビットが必要となる。また、監視対象となるデータの重要度に応じて、複数種類の監視用データを同時に使用しても良いし、監視対象データそのものを監視用データとしても良い(すなわち、データの二重化)。
1つのデータ監視回路により、5ビット以上のデータについて変化を監視しても良い。
第9実施形態において、フリップフロップを3直列以上接続しても良い。
図面中、1はメモリシステム(半導体装置)、2は不揮発性メモリ、3はデータ転送回路、4はレジスタ群、6はデータ監視回路、7〜10はEXORゲート、11は遅延回路を示す。
Claims (11)
- 不揮発性メモリ(2)と、
この不揮発性メモリに記憶されているデータが転送されて格納される複数のレジスタからなるレジスタ群(4)と、
不揮発性メモリから前記レジスタ群へのデータ転送を行うデータ転送回路(3,22)と、
前記レジスタ群に格納されているデータのうち、少なくとも何れか1ビットのデータ値が転送された直後から変化したか否かを監視し、変化があれば異常検出信号を出力するデータ監視回路(6,32,61)とを備えたことを特徴とする半導体装置。 - 前記データ監視回路(6)は、前記データの監視を、パリティを用いて行うように構成されていることを特徴とする請求項1記載の半導体装置。
- 前記データ監視回路は、前記レジスタ群に格納されている監視範囲対象とするデータについて、排他的論理和をとるEXORゲート(7〜10)を複数段用いて、最終的に1つのEXORゲート(最終ゲートと称す;9)に信号をまとめるように構成され、
入力端子の一方が前記最終ゲートの出力端子に直接接続され、入力端子の他方が前記最終ゲートの出力端子に遅延回路(11)を介して接続されることで前記異常検出信号を出力する信号出力用ゲート(10)を備えることを特徴とする請求項2記載の半導体装置。 - 前記データ転送回路は、前記異常検出信号が出力されると、当該異常が検知されたレジスタのデータを、前記不揮発性メモリから再転送することを特徴とする請求項1記載の半導体装置。
- 前記データ転送回路は、前記異常検出信号が出力されると、当該異常が検知されたレジスタのデータを、前記不揮発性メモリから再転送することを特徴とする請求項2又は3記載の半導体装置。
- 前記データ転送回路が、前記不揮発性メモリからデータを転送した際に生成されるパリティを、前記転送の複数回分について保持するパリティデータ保持回路(62,63)を備え、
前記データ監視回路(61)は、前記パリティデータ保持回路により保持されている複数回分のパリティデータの値の何れか1つに変化が生じると、前記異常検出信号を出力することを特徴とする請求項5記載の半導体装置。 - 前記複数のレジスタ群に対して、前記データ監視回路を1つだけ備え、
前記複数のレジスタ群に格納されているデータを切り換えて、前記データ監視回路に出力するマルチプレクサ(32)を備え、
前記データ監視回路は、前記マルチプレクサの切り換え制御を行うことでデータの監視を行うことを特徴とする請求項1から6の何れか一項に記載の半導体装置。 - 前記データ監視回路は、前記複数のレジスタ群に格納されているデータの重要度に応じて、前記マルチプレクサを介して監視する各データの監視頻度に差を設けることを特徴とする請求項7項に記載の半導体装置。
- 不揮発性メモリ(2)と、
この不揮発性メモリに記憶されているデータが転送されて格納される複数のレジスタからなるレジスタ群(44,52,54,56)と、
不揮発性メモリから前記レジスタ群へのデータ転送を行うCPU(42)とを備え、
前記CPUは、前記レジスタ群へのデータ転送を最初に行った際に、当該データについて誤り検出を行うための演算(誤り検出演算と称す)を行うと、その演算結果データを記憶手段(4PA,4PB,4PP)に記憶させ、
以降に前記レジスタ群からデータを読み出すと、当該データについて前記誤り検出演算を行い、その演算結果データが記憶手段に記憶させた演算結果データと異なれば、異常を検出することを特徴とする半導体装置。 - 前記CPUは、前記誤り検出演算の演算結果データを、複数箇所(4PA,4PB)に記憶させ、
前記複数箇所に記憶させた演算結果データを照合し、両者が一致すれば、前記演算結果データを、対応するレジスタ群から読み出したデータの誤り検出演算結果と照合することを特徴とする請求項9記載の半導体装置。 - 前記CPUは、前記レジスタ群へのデータ転送を最初に行った際に、当該データについて前記誤り検出演算を行うと、
その演算結果データについても前記誤り検出演算を行い、その演算結果データを前記記憶手段(4PP)に記憶させ、
以降に前記レジスタ群からデータを読み出した際に行った誤り検出演算の演算結果データについても、前記記憶手段に記憶させた演算結果データと比較して異常を検出することを特徴とする請求項9又は10記載の半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013089330A JP2014215618A (ja) | 2013-04-22 | 2013-04-22 | 半導体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013089330A JP2014215618A (ja) | 2013-04-22 | 2013-04-22 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014215618A true JP2014215618A (ja) | 2014-11-17 |
Family
ID=51941367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013089330A Pending JP2014215618A (ja) | 2013-04-22 | 2013-04-22 | 半導体装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014215618A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10260905A (ja) * | 1997-03-18 | 1998-09-29 | Fujitsu Ltd | 電子機器 |
JP2003050750A (ja) * | 2001-08-06 | 2003-02-21 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
JP2007058467A (ja) * | 2005-08-23 | 2007-03-08 | Fujitsu Ltd | レジスタ監視回路、デバイス及びレジスタ監視方法 |
JP2009187049A (ja) * | 2008-02-01 | 2009-08-20 | Fujitsu Ltd | 装置 |
-
2013
- 2013-04-22 JP JP2013089330A patent/JP2014215618A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10260905A (ja) * | 1997-03-18 | 1998-09-29 | Fujitsu Ltd | 電子機器 |
JP2003050750A (ja) * | 2001-08-06 | 2003-02-21 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
JP2007058467A (ja) * | 2005-08-23 | 2007-03-08 | Fujitsu Ltd | レジスタ監視回路、デバイス及びレジスタ監視方法 |
JP2009187049A (ja) * | 2008-02-01 | 2009-08-20 | Fujitsu Ltd | 装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372531B2 (en) | Error-correcting code memory | |
US7299400B2 (en) | Error correction circuit | |
US9703633B2 (en) | Circuits, apparatuses, and methods for correcting data errors | |
US9146809B2 (en) | ECC method for double pattern flash memory | |
JP5010271B2 (ja) | エラー訂正コード生成方法、およびメモリ制御装置 | |
US9081678B2 (en) | Voltage control | |
US20160266964A1 (en) | Programmable logic circuit device and error detection method therefor | |
US7480847B2 (en) | Error correction code transformation technique | |
US9252778B2 (en) | Robust flexible logic unit | |
KR20210076195A (ko) | 결함 탐지를 가진 오류 정정 하드웨어 | |
JP2006004560A (ja) | 半導体記憶装置及びその誤り訂正方法 | |
KR20190132238A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
JP2003059290A5 (ja) | ||
JP2014215618A (ja) | 半導体装置 | |
US9043655B2 (en) | Apparatus and control method | |
JP6332134B2 (ja) | メモリ診断回路 | |
JP7107696B2 (ja) | 半導体装置及び半導体メモリの故障検出方法 | |
US10522237B2 (en) | Low power VLSI designs using circuit failure in sequential cells as low voltage check for limit of operation | |
JP3895118B2 (ja) | シングルイベントアップセット補償回路 | |
US9542266B2 (en) | Semiconductor integrated circuit and method of processing in semiconductor integrated circuit | |
JP4921216B2 (ja) | メモリ制御回路、記憶システム、情報処理装置、および、メモリ制御方法 | |
TWI723515B (zh) | 記憶體裝置及其資料存取方法 | |
JP2015201813A (ja) | プログラマブルゲートアレイ | |
JP2010140132A (ja) | メモリシステム及びメモリコントローラ | |
CN112289366A (zh) | 存储器存储装置及数据存取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150713 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160510 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161108 |