(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023032889
(43)【公開日】2023-03-09
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G06F 11/10 20060101AFI20230302BHJP
【FI】
G06F11/10 668
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2021139249
(22)【出願日】2021-08-27
(71)【出願人】
【識別番号】520041932
【氏名又は名称】ナノブリッジ・セミコンダクター株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】根橋 竜介
(72)【発明者】
【氏名】阪本 利司
(72)【発明者】
【氏名】宮村 信
(72)【発明者】
【氏名】白 旭
(72)【発明者】
【氏名】船橋 一訓
(57)【要約】
【課題】不揮発性メモリへのメモリアクセスのレイテンシを短縮できるようにする。
【解決手段】半導体装置100は、不揮発性メモリ10と、第1エラー訂正回路20と、
第2エラー訂正回路30と、シリアルインターフェース回路40とを備える。第1エラー訂正回路20は、第1データD1と、第1パリティデータP1とが入力されてから、第1デコード時間経過後に、第1デコードデータDD1の少なくとも1ビット以上のデータを出力する。第2エラー訂正回路30は、第2データD2と、第2パリティデータP2とが入力されてから、第1デコード時間より長い第2デコード時間経過後に、第2デコードデータDD2の少なくとも1ビット以上のデータを出力する。外部からのページデータ単位での読み出し要求を受け付け、第1デコードデータDD1を先にシリアルインターフェース回路40から出力し、続いて第2デコードデータDD2を出力する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
第1エラー訂正回路と、
第2エラー訂正回路と、
シリアルインターフェース回路とを備え、
前記不揮発性メモリは、第1データと、第1パリティデータと、第2データと、第2パリティデータとから構成されるページデータを記憶し、
前記第1エラー訂正回路は、前記第1データと、前記第1パリティデータとが入力されてから、第1デコード時間経過後に、第1エラー訂正コードに基づき、第1デコードデータの少なくとも1ビット以上のデータを出力し、
前記第2エラー訂正回路は、前記第2データと、前記第2パリティデータとが入力されてから、前記第1デコード時間より長い第2デコード時間経過後に、第2エラー訂正コードに基づき、第2デコードデータの少なくとも1ビット以上のデータを出力し、
外部からのページデータ単位での読み出し要求を受け付け、前記第1デコードデータを先に前記シリアルインターフェース回路から出力し、前記第1デコードデータに続いて前記第2デコードデータを前記シリアルインターフェース回路から出力することを特徴とする半導体装置。
【請求項2】
請求項1に記載の半導体装置であって、
前記第1データはNdata1ビットから構成され、
前記第2データはNdata2ビットから構成され、
Ndata1は、Ndata2に比べて小さいことを特徴とする半導体装置。
【請求項3】
請求項2に記載の半導体装置であって、
前記第1パリティデータはNparity1ビットから構成され、
前記第2パリティデータはNparity2ビットから構成され、
前記第1エラー訂正回路は(Ne1 - 1)ビット(Ne1は2以上の整数である。)のエラー訂正が可能であり、
前記第2エラー訂正回路は(Ne2 - 1)ビット(Ne2は2以上の整数である。)のエラー訂正が可能であり、
前記不揮発性メモリの書換劣化がないと仮定したときの前記不揮発性メモリのビットエラーレートがPbであり、
前記第1デコードデータのエラー訂正にフェイルする確率の近似値Pw1に比べ、前記第2デコードデータのエラー訂正にフェイルする確率の近似値Pw2は小さいか、もしくは、前記近似値Pw1と前記近似値Pw2とが対応していることを特徴とする半導体装置。
ただし、
Pw1=C(Ndata1+Nparity1, Ne1) * PbNe1
Pw2=C(Ndata2+Nparity2, Ne2) * PbNe2
であり、C(m,n)は、m個のうちn個を選択したときの組み合わせの数を表す。
【請求項4】
請求項3に記載の半導体装置であって、
第1パリティ生成回路と、
第2パリティ生成回路とを更に備え、
外部からの書き込みアクセス要求を受け付け、
前記第1パリティ生成回路は、書き込みデータの一部が前記第1データとして入力されてから、第1エンコード時間経過後に、前記第1エラー訂正コードに基づき、前記第1パリティデータの少なくとも1ビット以上のデータを出力し、
前記第2パリティ生成回路は、書き込みデータの残りが前記第2データとして入力されてから、前記第1エンコード時間より長い第2エンコード時間経過後に、前記第2エラー訂正コードに基づき、前記第2パリティデータの少なくとも1ビット以上のデータを出力し、
前記第1データと、前記第1パリティデータと、前記第2データと、前記第2パリティデータとを前記書き込みアクセス要求があったアドレスに書き込むことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、半導体装置に係り、特に、単体の不揮発性メモリやシステムオンチップ上の混載の不揮発性メモリといった半導体装置に関するものである。
【背景技術】
【0002】
誤り訂正符号を利用して、冗長ビットを付加してメモリへデータを書き込み、データの信頼性を向上する技術が知られている。誤り訂正符号として、1ビットの誤りを訂正し、2ビットの誤りを検出するSECDED(Single Error Correction, Double Error Detection)が広く用いられている。
【0003】
特許文献1には、本体データと冗長データで構成されるワードデータを記憶し、当該ワードデータ単位で読み出し可能なメモリが開示されている。本体データは、複数の部分ワードに分割され、冗長データは、本体データ全体から生成された誤り訂正付加ビットであり、かつ、複数の部分ワードにそれぞれ対応する複数のパリティビットである。
【0004】
特許文献1に開示されているメモリは、部分ワードにエラーがあるかをパリティビットにより検出し、アクセス要求された部分ワードにエラーがないと判定されたときには、該当する部分ワードを高速に出力することができる。1ビットエラーが稀である場合には、特許文献1のメモリの平均的なアクセス速度は、エラーがない場合の遅延によって支配的に規定されるため、全体としてのメモリアクセス性能を向上することができる。
【0005】
フラッシュメモリをはじめとする不揮発性メモリのいくつかは、より多くのエラーを救済できるBCH符号を利用している。このような不揮発性メモリは、符号長を大きくすることにより、冗長ビットのオーバーヘッドを減少しつつ、多くのエラーを救済することができる。
【0006】
また、BCH符号でのアクセス時間には、読み出しのアクセス時間と、書き込みのアクセス時間がある。読み出しのアクセス時間は、メモリアレイからのデータの読み出しと、BCHデコード回路のデコード時間から主に構成される。書き込みのアクセス時間は、リード・モディファイ・ライトの場合、メモリアレイからのデータの読み出しと、BCHデコード回路のデコード時間と、BCHエンコード回路のエンコード時間から主に構成される。デコード時間が長いため、下記はデコード時間について述べる。
【0007】
BCH符号のデコード時間は、回路構成によって異なる。ビットシリアルな演算を行う回路は、演算時間はかかるが、回路面積はコンパクトになる。ビットパラレルな演算を行う回路は、ビットシリアルな演算を行う回路に比べ、演算時間は短縮されるが、回路面積は大きくなる。ここではコンパクトなビットシリアルな演算を行う回路を想定する。
【0008】
BCHのデコード方法の一つとして、シンドロームの生成、BMAアルゴリズム、及びチェン検索の3つのステップが知られている。BMAアルゴリズムのサイクル数は、シンドロームの生成とチェン検索のビットシリアル演算に比べ、それほど大きくないため、シンドロームの生成とチェン検索について述べる。
【0009】
シンドロームの生成は、符号長nとした場合、例えば、線形帰還シフトレジスタをn回シフトすることで計算できる。したがって、符号長が長いほど演算時間が長くなる。
【0010】
チェン検索は、符号長nとした場合、誤り位置多項式にガロア体の元を逐次代入して、エラーの有無をn回評価する。したがって、符号長が長いほど演算時間が長くなる。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献1のメモリは、エラーの発生率が高いメモリに適用した場合、平均的なメモリアクセス性能が悪化する懸念がある。
【0013】
フラッシュメモリをはじめとする不揮発性メモリが利用するBCH符号は、より多くのエラーを救済できるものの、上述したように符号長が大きいほどアクセス時間は大きくなる課題があった。
【0014】
本発明は、上記の課題を解決するためになされたもので、不揮発性メモリへのメモリアクセスのレイテンシを短縮できる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【0015】
上記の目的を達成するために本発明に係る半導体装置は、不揮発性メモリと、第1エラー訂正回路と、第2エラー訂正回路と、シリアルインターフェース回路とを備え、前記不揮発性メモリは、第1データと、第1パリティデータと、第2データと、第2パリティデータとから構成されるページデータを記憶し、前記第1エラー訂正回路は、前記第1データと、前記第1パリティデータとが入力されてから、第1デコード時間経過後に、第1エラー訂正コードに基づき、第1デコードデータの少なくとも1ビット以上のデータを出力し、前記第2エラー訂正回路は、前記第2データと、前記第2パリティデータとが入力されてから、前記第1デコード時間より長い第2デコード時間経過後に、第2エラー訂正コードに基づき、第2デコードデータの少なくとも1ビット以上のデータを出力し、外部からのページデータ単位での読み出し要求を受け付け、前記第1デコードデータを先に前記シリアルインターフェース回路から出力し、前記第1デコードデータに続いて前記第2デコードデータを前記シリアルインターフェース回路から出力する。
【0016】
本発明に係る半導体装置によれば、外部からのページデータ単位での読み出し要求を受け付けると、第1エラー訂正回路は、前記第1データと、前記第1パリティデータとが入力されてから、第1デコード時間経過後に、第1エラー訂正コードに基づき、第1デコードデータの少なくとも1ビット以上のデータを出力する。第2エラー訂正回路は、前記第2データと、前記第2パリティデータとが入力されてから、第1デコード時間より長い第2デコード時間経過後に、第2エラー訂正コードに基づき、第2デコードデータの少なくとも1ビット以上のデータを出力する。そして、前記第1デコードデータを先に前記シリアルインターフェース回路から出力し、前記第1デコードデータに続いて前記第2デコードデータを前記シリアルインターフェース回路から出力する。
【0017】
このように、第1エラー訂正回路は、前記第1データと、前記第1パリティデータとが入力されてから、第1デコード時間経過後に、第1デコードデータの少なくとも1ビット以上のデータを出力し、第2エラー訂正回路は、前記第2データと、前記第2パリティデータとが入力されてから、第1デコード時間より長い第2デコード時間経過後に、第2デコードデータの少なくとも1ビット以上のデータを出力し、前記第1デコードデータに続いて前記第2デコードデータを前記シリアルインターフェース回路から出力する。これにより、不揮発性メモリへのメモリアクセスのレイテンシを短縮できる。
【0018】
本発明の前記第1データはNdata1ビットから構成され、前記第2データはNdata2ビットから構成され、Ndata1は、Ndata2に比べて小さいようにすることができる。
【0019】
本発明の前記第1パリティデータはNparity1ビットから構成され、前記第2パリティデータはNparity2ビットから構成され、前記第1エラー訂正回路は(Ne1 - 1)ビット(Ne1は2以上の整数である。)のエラー訂正が可能であり、前記第2エラー訂正回路は(Ne2 - 1)ビット(Ne2は2以上の整数である。)のエラー訂正が可能であり、前記不揮発性メモリの書換劣化がないと仮定したときの前記不揮発性メモリのビットエラーレートがPbであり、前記第1デコードデータのエラー訂正にフェイルする確率の近似値Pw1に比べ、前記第2デコードデータのエラー訂正にフェイルする確率の近似値Pw2は小さいか、もしくは、前記近似値Pw1と前記近似値Pw2とが対応しているようにすることができる。ただし、
Pw1=C(Ndata1+Nparity1, Ne1) * PbNe1
Pw2=C(Ndata2+Nparity2, Ne2) * PbNe2
であり、C(m,n)は、m個のうちn個を選択したときの組み合わせの数を表す。
【0020】
本発明に係る半導体装置は、第1パリティ生成回路と、第2パリティ生成回路とを更に備え、外部からの書き込みアクセス要求を受け付け、前記第1パリティ生成回路は、書き込みデータの一部が前記第1データとして入力されてから、第1エンコード時間経過後に、前記第1エラー訂正コードに基づき、前記第1パリティデータの少なくとも1ビット以上のデータを出力し、前記第2パリティ生成回路は、書き込みデータの残りが前記第2データとして入力されてから、前記第1エンコード時間より長い第2エンコード時間経過後に、前記第2エラー訂正コードに基づき、前記第2パリティデータの少なくとも1ビット以上のデータを出力し、前記第1データと、前記第1パリティデータと、前記第2データと、前記第2パリティデータとを前記書き込みアクセス要求があったアドレスに書き込むようにすることができる。
【発明の効果】
【0021】
以上説明したように、本発明の半導体装置によれば、不揮発性メモリへのメモリアクセスのレイテンシを短縮できる、という効果が得られる。
【図面の簡単な説明】
【0022】
【
図1】本発明の実施形態に係る半導体装置の読み出し関連部分の回路を示すブロック図である。
【
図2】本実施形態の半導体装置の読み出し動作を説明するための各信号の波形の模式図である。
【
図4】本発明の実施形態の半導体装置の書き込み部分の回路を示すブロック図である。
【
図5】組織符号を利用した場合の運用時間に対するビットエラーレートの変化の一例を示すグラフである。
【発明を実施するための形態】
【0023】
以下、図面を参照して、本発明の好適な実施の形態について説明する。
【0024】
図1は、本発明の実施形態の半導体装置100の読み出し関連部分の回路を示すブロック図である。半導体装置100は、不揮発性メモリ10と、第1エラー訂正回路20と、第2エラー訂正回路30と、シリアルインターフェース回路40とを備える。簡単のため、データ部分とパリティ部分が分かれた組織符号を用いた場合を例に説明する。
【0025】
不揮発性メモリ10は、第1データD1と、第1パリティデータP1と、第2データD2と、第2パリティデータP2とから構成されるページデータDを記憶する。不揮発性メモリ10は、図示を省略するが、メモリセルアレイ、読み出し関連回路(センスアンプ)、書き込み関連回路(書き込みドライバ)、及びワード線やビット線の選択回路を含む。
【0026】
半導体装置100は、外部からページデータ単位での読み出し要求を受け付け、読み出し要求に含まれるページアドレスAに対応したページデータDを不揮発性メモリ10から読み出し、ページデータDの第1データD1と、第1パリティデータP1とを第1エラー訂正回路20に出力し、ページデータDの第2データD2と、第2パリティデータP2とを第2エラー訂正回路30に出力する。
【0027】
第1エラー訂正回路20は、第1データD1と、第1パリティデータP1が入力されてから、第1デコード時間経過後に、第1エラー訂正コードに基づき、第1デコードデータDD1の少なくとも1ビット以上のデータを出力する。
【0028】
第2エラー訂正回路30は、第2データD2と、第2パリティデータP2が入力されてから、第1デコード時間より長い第2デコード時間経過後に、第2エラー訂正コードに基づき、第2デコードデータDD2の少なくとも1ビット以上のデータを出力する。
【0029】
シリアルインターフェース回路40は、第1デコードデータDD1及び第2デコードデータDD2を順に出力し、出力データQとする。簡単のため、1クロックに1ビットのデータを出力するシリアルインターフェース回路を用いて説明する。尚、シリアルインターフェースとして、1クロックに複数ビットのデータを出力するシリアルインターフェース回路を用いてもよい。
【0030】
第1エラー訂正コードは(Ne1 - 1)ビット(Ne1は2以上の整数である。)のエラー訂正が可能である。第1エラー訂正コードとして、ハミング符号、リードソロモン符号、BCH符号、LDPC、ゴレイ符号等を用いてもよい。第1エラー訂正コードは、組み合わせ回路とフリップフロップから構成されてもよい。特に、組み合わせ回路のみから構成される場合、第1デコード時間は組み合わせ回路の遅延時間で決定され、高速にデコードできるため、好適である。
【0031】
第2エラー訂正コードは(Ne2 - 1)ビット(Ne2は2以上の整数である。)のエラー訂正が可能である。第2エラー訂正コードとして、ハミング符号、リードソロモン符号、BCH符号、LDPC、ゴレイ符号等を用いてもよい。第2エラー訂正コードは、組み合わせ回路とフリップフロップから構成されてもよい。特に、第2デコード時間の制約は第1デコード時間に比べ緩和できるため、回路面積を小さくしやすい。従って、第2エラー訂正コードは、組み合わせ回路とフリップフロップを用いた構成が好適である。
【0032】
図2は、本実施形態の半導体装置100の読み出し動作を説明するための各信号の波形の模式図である。簡単のため、下記の場合を例示している。デコードデータDD1は2ビットの場合を例示している。また、不揮発性メモリ10からページデータD全体が一度に読み出される場合を例示している。また、第1デコードデータDD1のシリアル出力が終了する前に、第2デコード時間が完了する場合を例示している。また、出力データQの形式がLSB(least significant bit)を先に出力する場合を例示しており、かつ、ページデータD内でデコードデータDD1がデコードデータDD2よりLSB側に配置している場合を例示している。
【0033】
時刻T0に、外部からのアクセス要求を受けて、ページアドレスAをラッチし、不揮発性メモリ10の読み出しを開始する。時刻T1に、ページデータDが読み出され、第1エラー訂正回路20に、第1データD1及び第1パリティデータP1が入力され、第2エラー訂正回路30に、第2データD2及び第2パリティデータP2が入力されることが完了する。そして、第1エラー訂正回路20は、デコードを開始し、かつ、第2エラー訂正回路30は、デコードを開始する。
【0034】
時刻T2に、第1デコードデータDD1の出力が開始される。時刻T3に、第1デコードデータDD1のシリアル出力が開始される。時刻T4に、第2デコードデータDD2の出力が開始される。そして、時刻T5に、第2デコードデータDD2のシリアル出力が開始される。
【0035】
このように、第2デコード時間に比べ、第1デコード時間は短いため、第1デコードデータDD1を先にシリアルインターフェース回路40から出力し、第2デコードデータDD2を続いてシリアルインターフェース回路40から出力する。これにより、不揮発性メモリ10へのメモリアクセスのレイテンシを短縮できる。
【0036】
図3はページデータDのビット構成を示す図である。ページデータDは、第1データD1と、第1パリティデータP1と、第2データD2と、第2パリティデータP2とから構成される。出力データQの形式がLSBを先に出力する場合を例示しており、かつ、ページデータD内で第1データD1が第2データD2よりLSB側に配置されている場合を例示している。
【0037】
第1データD1はNdata1ビットから構成される。第2データD2はNdata2ビットから構成される。第1パリティデータP1はNparity1ビットから構成される。第2パリティデータP2はNparity2ビットから構成される。
【0038】
本実施形態において、第1データD1のビット数Ndata1は、第2データD2のビット数Ndata2に比べ、小さい。第1データD1と第2データD2では、同じ符号を用いてもよいし、異なる符号を用いてもよい。
【0039】
ここで、エラー訂正回路のデコード時間は、符号長が小さいほど短くなる傾向にあるため、第1エラー訂正回路20の第1デコード時間を短く設定できる。
【0040】
また、符号長が大きいほど、パリティビット数を低減しやすい傾向にあるため、第2パリティデータP2のビット数Nparity2を低減できる。
【0041】
また、第1データD1に対する第1パリティデータP1のビット数Nparity1の比率は大きいものの、第1データD1のNdata1がページデータD全体のビット数に占める割合が小さいため、第1パリティデータP1のオーバーヘッドも緩和できる。
【0042】
このように、不揮発性メモリ10へのメモリアクセスのレイテンシを短縮しつつ、パリティビットのオーバーヘッドを低減できる。
【0043】
第1エラー訂正回路20は、(Ne1 - 1)ビットエラー訂正可能であり、第2エラー訂正回路30は(Ne2 - 1)ビットエラー訂正可能である。
【0044】
不揮発性メモリ10のビットエラーレートは、書き換えにより増加する傾向にある。書換劣化のほぼない状態でのビットエラーレートをPbとすると、第1デコードデータDD1のエラー訂正にフェイルする確率の近似値Pw1は、C(Ndata1+Nparity1, Ne1) * PbNe1 となる。ここで、C(n,k)はn個の要素からk個の要素を重複なく選択する組み合わせの数である。また、第2デコードデータDD2のエラー訂正にフェイルする確率の近似値Pw2は、C (Ndata2+Nparity2, Ne2) * PbNe2となる。ページデータDにフェイルする確率の近似値はPw1+Pw2となる。Pw1とPw2のどちらか一方の値が十分大きいとページデータDのフェイル率は大きいほうのフェイル率で律速されてしまうため、Pw1とPw2はほぼ同等であることが望ましい。さらに、第2エラー訂正回路30は、レイテンシの制約は緩く、符号長を大きくとることができるため、Pw2を低減できる。そのため、Pw2はPw1に比べ、ほぼ同等か、小さいことが好適である。
【0045】
なお、Ndata1、Ndata2、Nparity1、Nparity2、Ne1、Ne2、Pbは、全て設計段階で決定される。また、Pbについては、メモリ素子の製造工程における不良の発生率や、メモリ素子の書き換えの実験結果を基にしたビットエラーレートの予測値が、設計段階で決定される。
【0046】
このように、不揮発性メモリ10へのメモリアクセスのレイテンシを短縮しつつ、パリティビットのオーバーヘッドを低減し、かつ、データの信頼性を向上できる。
【0047】
図4は、本発明の実施形態の半導体装置100の書き込み部分の回路を示すブロック図である。半導体装置100は、さらに、第1パリティ生成回路50と、第2パリティ生成回路60とを備える。簡単のため、組織符号の場合を例に説明する。
【0048】
半導体装置100は、第1データD1と第2データD2から構成される入力データをページアドレスAに書き込むための、外部からのページデータ単位の書き込みアクセスを受け付ける。
【0049】
第1パリティ生成回路50は、入力データの一部が第1データD1として入力されてから、第1エンコード時間経過後に、第1エラー訂正コードに基づき、第1パリティデータP1の少なくとも1ビット以上のデータを出力する。
【0050】
第2パリティ生成回路60は、入力データの残りが第2データD2として入力されてから、第1エンコード時間より長い第2エンコード時間経過後に、第2エラー訂正コードに基づき、第2パリティデータP2の少なくとも1ビット以上のデータを出力する。
【0051】
そして、半導体装置100は、第1データD1と、第1パリティデータP1と、第2データD2と、第2パリティデータP2とを、書き込みアクセスの要求のあったページアドレスAに書き込む。
【0052】
第1エンコード時間は、第2エンコード時間に比べて短く設定する。その場合、第1データD1と第1パリティデータP1を先に不揮発性メモリ10へ書き込み、その後、第2データD2と第2パリティデータP2を、不揮発性メモリ10へ書き込む。
【0053】
このように、不揮発性メモリ10への書き込みアクセスのレイテンシを短縮できる。
【0054】
図5は、組織符号を利用した場合の運用時間に対するビットエラーレートの変化の一例を示すグラフである。ページデータD内の一部のワードの書き込みがランダムに発生した場合を仮定している。簡単のため、第1データD1のビット数Ndata1と、第1パリティデータP1のビット数Nparity1と、第2パリティデータP2のビット数Nparity2は、ワードのビット数Nwordと同じであり、第2データD2のビット数Ndata2がNwordに比べ大きいとした。第2データD2の書き込みのたびに第2パリティデータP2を更新する必要があるため、第2パリティデータP2の書き換え回数は多い傾向にある。そのため、
図5に示すように、運用時間に対し、第2パリティデータP2部分の不揮発性メモリ10は早くに劣化し、ビットエラーレートが悪化する。
【0055】
なお、第2データD2のビットエラーレートが悪化しない。これは、第2データD2のビット数が大きく、レートとして悪化しないからである。アドレス全体に一様にアクセスした場合を想定し、例えば、Ndata1=Nparity1=Nparity2=32、Ndata2=320とした場合、32bit毎のアクセスが本ページデータに100回あったとすると、第1データD1は約9回(=100*32/(32+320))更新があり、第2データD2全体は約91回(=100*320/(32+320))更新があることになる。第2データD2の各32ビットは約9回(=91*32/320)更新があることになる。一方、第2パリティデータP2は約91回更新がある。
【0056】
劣化を見越して、第2デコードデータDD2のエラー訂正にフェイルする確率の近似値Pw2を低く設定するとよい。第2エラー訂正回路30は、レイテンシの制約は緩く、符号長を大きくとることができるため、Pw2を低減できる。
【0057】
例えば、t個の誤りを訂正できる(n,k)BCH符号のパラメタt,n,kを選択することにより、近似値Pw2を設定する。nは符号長、kは情報ビット長、n-kがパリティビット長である。情報ビット長の一部をデータビットとして利用するので、Ndata2≦kの関係がある。パリティビットはNparity2=n-kの関係がある。従って、誤り訂正数tや、符号長nを大きくすると、Pw2を低く設定できる。
【0058】
このように、不揮発性メモリ10へのメモリアクセスのレイテンシを短縮しつつ、パリティビットのオーバーヘッドを低減し、かつ、データの信頼性を向上できる。
【0059】
ここで、データの信頼性を一定に保ったまま、符号長nを大きくすると、パリティビットのオーバーヘッドを低減できる傾向にある。また、パリティビットのオーバーヘッドを一定に保ったまま、符号長nを大きくすると、データの信頼性を向上できる傾向にある。
したがって、符号長nを大きくすることが望ましいが、副作用として、メモリアクセスのレイテンシが増大する。そこで、デコード時間が短い第1エラー訂正回路20を利用することで、大きい符号長nの第2エラー訂正回路30を利用しても、第2エラー訂正回路30の長いデコード時間を隠ぺいすることができる。
【0060】
以上説明したように、本実施形態に係る半導体装置100によれば、第1エラー訂正回路20は、第1データD1と、第1パリティデータP1とが入力されてから、第1デコード時間経過後に、第1デコードデータDD1の少なくとも1ビット以上のデータを出力し、第2エラー訂正回路30は、第2データD2と、第2パリティデータP2とが入力されてから、第1デコード時間より長い第2デコード時間経過後に、第2デコードデータDD2の少なくとも1ビット以上のデータを出力し、第1デコードデータDD1に続いて第2デコードデータDD2をシリアルインターフェース回路40から出力する。これにより、不揮発性メモリ10へのメモリアクセスのレイテンシを短縮できる。
【0061】
また、第1パリティ生成回路50は、書き込みデータの一部が第1データD1として入力されてから、第1エンコード時間経過後に、第1パリティデータP1の少なくとも1ビット以上のデータを出力し、第2パリティ生成回路60は、書き込みデータの残りが第2データD2として入力されてから、第1エンコード時間より長い第2エンコード時間経過後に、第2パリティデータP2の少なくとも1ビット以上のデータを出力し、第1データD1と、第1パリティデータP1と、第2データD2と、第2パリティデータP2とを書き込みアクセス要求があったアドレスに書き込む。これにより、不揮発性メモリ10へのメモリアクセスのレイテンシを短縮できる。
【0062】
なお、ページデータの一部のワード単位で書き込みアクセスを受け付けるように変更してもよい。その場合、回路内部でリード・モディファイ・ライト動作を実施すればよい。具体的には、該当ページデータを読み出し、エラー訂正回路でデコードデータを取得し、変更部分のデータを更新し、パリティ生成回路でパリティデータを生成し、不揮発性メモリへ書き込むようにすればよい。
【0063】
例えば、不揮発性メモリ10から、第1データD1と、第1パリティデータP1と、第2データD2と、第2パリティデータP2が出力される。第1エラー訂正回路20は、第1データD1と、第1パリティデータP1が入力されると、第1デコードデータDD1を出力する。第2エラー訂正回路30は、第2データD2と、第2パリティデータP2が入力されると、第2デコードデータDD2を出力する。
【0064】
次に、第1デコードデータDD1と第2デコードデータDD2の内、一部のワードを所望の値に更新する。更新した第1デコードデータDD1と第2デコードデータDD2を、上記
図4の第1データD1と第2データD2として利用する。第1パリティ生成回路50は、第1データD1が入力されると、第1パリティデータP1を出力する。第2パリティ生成回路60は、第2データD2が入力されると、第2パリティデータP2を出力する。不揮発性メモリ10では、第1データD1と第1パリティデータP1と第2データD2と第2パリティデータP2が入力され、メモリセルへデータが書き込まれる。
【符号の説明】
【0065】
10 不揮発性メモリ
20 第1エラー訂正回路
30 第2エラー訂正回路
40 シリアルインターフェース回路
50 第1パリティ生成回路
60 第2パリティ生成回路
100 半導体装置