JP4946249B2 - Eccのコード長が変更可能な半導体メモリ装置 - Google Patents

Eccのコード長が変更可能な半導体メモリ装置 Download PDF

Info

Publication number
JP4946249B2
JP4946249B2 JP2006214080A JP2006214080A JP4946249B2 JP 4946249 B2 JP4946249 B2 JP 4946249B2 JP 2006214080 A JP2006214080 A JP 2006214080A JP 2006214080 A JP2006214080 A JP 2006214080A JP 4946249 B2 JP4946249 B2 JP 4946249B2
Authority
JP
Japan
Prior art keywords
parity
bit
bits
data
syndrome
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.)
Expired - Fee Related
Application number
JP2006214080A
Other languages
English (en)
Other versions
JP2008041171A (ja
Inventor
康弘 大西
俊哉 三代
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2006214080A priority Critical patent/JP4946249B2/ja
Priority to US11/878,867 priority patent/US8001450B2/en
Priority to KR1020070078458A priority patent/KR100894464B1/ko
Priority to CN2007101526404A priority patent/CN101123123B/zh
Publication of JP2008041171A publication Critical patent/JP2008041171A/ja
Application granted granted Critical
Publication of JP4946249B2 publication Critical patent/JP4946249B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (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)
  • Error Detection And Correction (AREA)

Description

本発明は,記憶データの誤り訂正が可能な半導体メモリ装置に関し,特に,誤り訂正のためのECC(誤り訂正符号)のコード長を変更することができる半導体メモリ装置に関する。
DRAMなどの半導体メモリ装置は,大容量化に伴って不良ビットの救済がますます重要になっている。従来から不良ビットの救済には冗長メモリセルアレイを設けて,不良のあるメモリセルを冗長メモリセルに置き換える冗長構成の半導体メモリ装置が普及している。
近年において,冗長メモリセルとの置換を行うのではなく,記憶データの誤り訂正が可能な半導体メモリ装置が提案されている。例えば,特許文献1などである。
この記憶データの誤り訂正が可能な半導体メモリ装置は,データを記憶するメモリセルアレイに加えて,書込データから生成したパリティビットを記憶するパリティメモリセルアレイを設け,書き込み時は,入力データからパリティビットを生成し,入力データとパリティデータとを記憶し,読み出し時は,読み出しデータからパリティビットを生成し,記憶済みのパリティビットと比較し,誤りビット情報を有するシンドロームデータを生成し,そのシンドロームデータに基づいて誤りビットを訂正し訂正された読み出しデータを出力する。
このECCでは,あるハミングコードによれば,8ビットのデータに対して4ビットのパリティビットを利用して,8ビットのデータの1ビットの誤りを訂正することができる。また,16ビットのデータに対して5ビットのパリティビットを利用することで,16ビット中の1ビットの誤りを訂正することができる。そして,一般化すると,2のN乗(2N)ビットのデータに対してN+1ビットのパリティビットを利用することで,2のN乗ビット中の1ビットの誤りを訂正することができる。
特開2005−44386号公報
上記のとおり,メモリセルアレイにデータの領域に加えてパリティの領域を設け,周辺回路としてパリティ生成回路と誤り訂正回路とを設けることで,不良ビットに対する誤り訂正が可能になり,歩留まり向上とそれに伴うコストダウンを実現できる。
しかしながら,ECCのコード長に依存して誤り訂正能力が異なり,誤り訂正能力に応じて歩留まりも異なる。前述した2のN乗ビットのデータに対してN+1ビットのパリティビットを利用する。よって,Nが小さいほどメモリセルアレイの冗長性が高くなり,欠陥密度が低い場合には高い冗長性がチップ面積を増大させコストアップを招くが,欠陥密度が高い場合には救済確率が高くなりコストアップを抑制できる。一方で,Nが大きいほどメモリセルアレイの冗長性が低くなり,欠陥密度が低い場合にはコストアップを抑制できるが,欠陥密度が高くなると低い誤り訂正能力により救済確率が低下して逆にコストアップを招く。
すなわち,ECCのコード長に関しては,コード長を長くすることによるエラー訂正確率の向上と歩留まりの向上の可能性と,コード長を長くすることによるパリティビット用メモリセルアレイ領域の増大とそれに伴うチップの肥大化とは,トレードオフの関係にある。しかも,それらは欠陥密度に依存して変動する。
したがって,半導体メモリ装置を設計する際に,どの程度の欠陥密度になるかを予測して,最適なECCのコード長を決定する必要がある。しかし,この予測と判断は必ずしも容易ではない。
そこで,本発明の目的は,ECCのコード長を最適化できる半導体メモリ装置を提供するにある。
また,本発明の別の目的は,ECCのコード長を欠陥密度に応じて最適化できる半導体メモリ装置を提供することにある。
さらに,本発明の別の目的は,ECCのコード長に応じてパリティメモセルアレイの一部を任意に変更できる半導体メモリ装置を提供することにある。
上記の目的を達成するために,本発明の第1の側面によれば,メモリセルアレイ内のデータメモリセルアレイとパリティメモリセルアレイを,複数のECCのコード長に対応した構成にし,書き込みデータからパリティを生成する入力側パリティ生成回路と,読み出しデータからパリティを生成する出力側パリティ生成回路と,読み出しパリティビットと生成パリティビットから誤りビットを示すシンドロームビットを生成するシンドローム生成回路とを,複数のECCのコード長に応じて切り替え可能に構成する。
好ましい態様によれば,入力側パリティ生成回路と出力側パリティ生成回路とは,同じ回路構成であるので共有化して,書き込み時と読み出し時で入出力を切り替えて使用することができる。また,シンドローム生成回路をパリティ生成回路と一体に構成することもできる。よって,これらの回路を共通化し,書き込み時と読み出し時で入出力を切り替えると共に,ECCのコード長に応じて一部の構成を切り替えるようにする。これにより,異なるECCのコード長に切り替え可能な半導体メモリ装置を提供することができる。
上記の目的を達成するために,本発明の第2の側面によれば,誤り訂正機能を有する半導体メモリ装置において,
複数のメモリセルを有し,ワードの選択に応答して2のI乗ビット(Iは2以上の整数)のデータをデータバスに対して入出力するデータメモリセルアレイと,
複数のメモリセルを有し,前記ワードの選択に応答して前記2のI乗ビットのデータに対応するビット数のパリティビットをパリティバスに対して入出力するパリティメモリセルアレイと,
データ入出力端子と,
前記データ入出力端子から入力される2のI乗ビットの書込データから,前記パリティビットを生成して,前記パリティバスに出力するパリティ生成回路と,
前記データメモリセルアレイから前記データバスに読み出される2のI乗ビットの読み出しデータと前記パリティメモリセルアレイから前記パリティバスに読み出されるパリティビットとから,前記読み出されたデータの誤りビット位置を示すシンドロームビットを生成するシンドローム生成回路と,
前記シンドロームビットに基づいて前記読み出しデータの誤りを訂正する誤り訂正回路とを有し,
前記パリティ生成回路及びシンドローム生成回路が,2のI乗ビットのデータとI+1ビットのパリティビットとからなる第1のECCと,2のI−J乗ビット(I>J,Jは1以上の整数)のデータとI−J+1ビットのパリティビットとを2のJ乗グループ含む第2のECCとのいずれかに切り替え可能に構成されていることを特徴とする。
上記の目的を達成するために,本発明の第3の側面によれば,誤り訂正機能を有する半導体メモリ装置において,
複数のメモリセルを有し,ワードの選択に応答して2のI乗ビット(Iは2以上の整数)のデータをデータバスに入出力するデータメモリセルアレイと,
複数のメモリセルを有し,前記ワードの選択に応答して前記2のI乗ビットのデータに対応するビット数のパリティビットをパリティバスに入出力するパリティメモリセルアレイと,
データ入出力端子と,
前記データ入出力端子から入力される2のI乗ビットの書込データから,前記パリティビットを生成して,前記パリティバスに出力する入力側パリティ生成回路と,
前記データメモリセルアレイから前記データバスに読み出される2のI乗ビットの読み出しデータから,前記パリティビットを生成する出力側パリティ生成回路と,
前記出力側パリティ生成回路が生成したパリティビットと前記パリティメモリセルアレイから前記パリティバスに読み出されるパリティビットとから,前記読み出されたデータの誤りビット位置を示すシンドロームビットを生成するシンドローム生成回路と,
前記シンドロームビットに基づいて前記読み出しデータの誤りを訂正する誤り訂正回路とを有し,
前記入力側パリティ生成回路と出力側パリティビット生成回路とシンドローム生成回路とが,2のI乗ビットのデータとそれに対応するビット数のパリティビットとからなる第1のECCと,2のI−J乗ビット(I>J,Jは1以上の整数)のデータとそれに対応するビット数のパリティビットとを2のJ乗グループ含む第2のECCとのいずれかに切り替え可能に構成されていることを特徴とする。
本発明によれば,複数のECCのコード長の構成に切り替え可能な半導体メモリ装置を提供することができる。
以下,図面にしたがって本発明の実施の形態について説明する。但し,本発明の技術的範囲はこれらの実施の形態に限定されず,特許請求の範囲に記載された事項とその均等物まで及ぶものである。
図1は,誤り訂正可能な半導体メモリ装置の構成図である。この半導体メモリ装置では,メモリセルアレイが,データを記憶するメモリセルアレイD−MCAと,パリティビットを記憶するメモリセルアレイP−MCAとを有する。そして,書き込まれる入力データDinと読み出される出力データDoutとは,共通の入出力端子から入出力される。
書き込み時において,入力データDinはそのままデータメモリセルアレイD−MCAに書き込まれると共に,パリティ生成回路10に供給される。パリティ生成回路10は,入力データDinの誤りを検出し訂正可能な符号のパリティビットを生成し,上記書き込まれた入力データDinと関連付けてパリティメモリセルアレイP−MCAにパリティビットを書き込む。一般的には,共通のワード線選択に対応して,入力データDinが書込データDwとして,パリティ生成回路10で生成されたパリティビットが書込パリティPwとして,それぞれデータメモリセルアレイD−MCAとパリティメモリセルアレイP−MCAとに記憶される。
そして,読み出し時において,共通のワード線選択に応答して,データメモリセルアレイC−MCAから読み出しデータDrが出力され,パリティメモリセルアレイP−MCAから読み出しパリティビットPrが出力される。そして,誤り訂正ユニット12は,読み出しデータDrから新たなパリティビットを生成し,読み出したパリティビットPrとの比較により誤りビットの位置を示すシンドロームビットを生成し,そのシンドロームビットに基づいて読み出しデータDrの誤りビットを訂正し,出力データDoutとして出力する。
本実施の形態では,メモリセルアレイの構成を変更することなく(または一部を変更するだけで),パリティ生成回路10と誤り訂正ユニット12とを,異なるECCのコード長に対応して切り替え可能にする。これにより,同じ半導体メモリ装置において,製造後にまたは製造の最終段階で,最適なECCのコード長を選択し,生成回路10と誤り訂正ユニット12とをその選択されたECCのコード長に対応する構成に切り替えることができる。したがって,製品の製造ラインの欠陥密度などに対応した最適のECCのコード長に設定することができ,その時点で最小のコスト且つ最大の歩留まりを実現することができる。また,試験工程において,任意のECCコード長に設定して動作試験を行うことができ,任意の条件下で信頼性試験を行うことができる。
図2は,ECCの3つのコード長でのデータとパリティの関係を示す図である。この図2では,1メガビット容量のメモリ装置を前提にして,ECCのコード長が,8ビットデータ・4ビットパリティの8−4タイプと,16ビットデータ・5ビットパリティの16−5タイプと,32ビットデータ・6ビットパリティの32−6タイプの場合のメモリセルアレイの構成を示す。
ハミングコードによれば,8ビットのデータから1ビットの不良を訂正するためには4ビットのパリティビットが必要である。この8ビットのデータと4ビットのパリティとがECCであり,このECCから不良ビットの検出に必要なシンドロームビットが生成される。よって,8−4タイプのECCのコード長は,12ビットで,データが8ビット,パリティが4ビットになる。
同様に,16ビットのデータから1ビットの不良を訂正するためには5ビットのパリティビットが必要である。したがって,このECCのコード長は,21ビットで,データが16ビット,パリティが5ビットである。さらに,32ビットのデータから1ビットの不良を訂正するためには6ビットのパリティビットが必要である。このECCのコード長は,38ビットで,データが32ビット,パリティが6ビットである。
これを一般式で示すと,2のJ乗ビットのデータから1ビットの不良を訂正するためにはJ+1ビットのパリティビットが必要になる。つまり,ECCは,2のJ乗ビットのデータと,J+1ビットのパリティの組合せになる。
そして,1メガビットのメモリ装置を前提にすると,8−4タイプのECCでは,1ワードが8ビットデータからなり,131072ワードで合計1メガビットになる。この1メガビットのデータに対して,パリティビットは,1ワードが4ビットからなり,131072ワード必要であるので,合計で0.5メガビットになる。つまり,メモリセルアレイの容量は1.5メガビットが必要になる。
同様に,16−5タイプのECCでは,1ワードが16ビットデータからなり,65536ワードで合計1メガビットになる。この1メガビットのデータに対して,パリティビットは,1ワードが5ビットからなり,65536ワード必要であるので,合計で約0.31メガビットになる。つまり,メモリセルアレイの容量は1.31メガビットが必要になる。
同様に,32−6タイプのECCでは,1ワードが32ビットデータからなり,32768ワードで合計1メガビットになる。この1メガビットのデータに対して,パリティビットは,1ワードが6ビットからなり,32768ワード必要であるので,合計で約0.19メガビットになる。つまり,メモリセルアレイの容量は1.19メガビットが必要になる。
上記のとおり,ECCのコード長が長くなるにしたがって,冗長なパリティビットの容量は小さくなり,チップサイズを小さくすることができる。しかし,ECCのコード長が長くなると,1ビットの救済単位(1ワード)のビット数が多くなるので,救済確率は低くなる。つまり,8−4タイプでは,8ビットのデータから1ビットが救済可能であり,16−5タイプでは,16ビットのデータから1ビットが救済可能であり,32−6タイプでは,32ビットのデータから1ビットが救済可能である。よって,3種類のうち,8−4タイプが最も救済確率が高く,32−6タイプが最も救済確率が低い。
ただし,8−4タイプは冗長なパリティビットが最も多く,最も大きなメモリ容量を必要とし,32−6タイプは冗長なパリティビットが最も少なく,最も小さなメモリ容量になる。したがって,救済確率と必要なメモリ容量とはトレードオフの関係になっている。
図1に示した,誤り訂正可能な半導体メモリ装置では,図2に示したような異なるECCのコード長のうち,最適なものを選択して,メモリのセルアレイや,パリティ生成回路やシンドローム生成回路の設計が行われる。
図3は,ECCのコード長に対応した平均欠陥密度と歩留まり及びコストデメリットとの関係を示すグラフ図である。図3のグラフAは,横軸が1Mbitあたりの欠陥数を示す平均欠陥密度であり,縦軸がECC救済による歩留まりである。なお,単一の不良ビットがランダムに発生することを前提にしてパアソン分布の不良ビットを用いた確率計算により求めている。横軸の欠陥密度が0,1,10であれば,ECCにより誤り訂正可能であるので,いずれのECCタイプであってもほぼ歩留まりは100%である。しかし,欠陥密度が高くなると,8−4タイプが最も救済確率が高いので歩留まりも高くなり,32−6タイプが最も救済確率が低いので歩留まりも低くなる。
図3のグラフBは,横軸が平均欠陥密度であり,縦軸がコストでメリットの影響度の指標である。ここでは,1枚のウエハあたりのチップ搭載数がメモリセルアレイの容量の逆数で決まると仮定した製造効率とグラフAの歩留まりとに基づいて,コストデメリットの影響度を求めた。縦軸の数値が低いほど低コスト,高いほど高コストになる。グラフBからわかることは,欠陥密度が10以下の場合と100以上の場合とで,ECCタイプ別のコストが逆転していることである。つまり,欠陥密度が10以下では,グラフAに示したとおり歩留まりがほぼ100%であるので,チップのコストは1枚のウエハあたりのチップ搭載数に依存する。よって,32−6タイプが最もメモリ容量が小さいのでコストも最小になり,8−4タイプが最もメモリ容量が大きいのでコストも最大になる。しかし,欠陥密度が100以上になると,32−6タイプの歩留まりが8−4タイプよりも大きく低下するので,それによるコストデメリットの割合が大きくなる。よって,より高い欠陥密度では,8−4タイプが最も低コストであり,32−6タイプが最も高コストである。
図3のグラフから理解できるとおり,欠陥密度が高い製造能力のもとでは,ECCを8−4タイプにすることが最も低コストにつながるのに対して,欠陥密度が低い製造能力のもとでは,ECCを32−6タイプにすることが最も低コストにつながる。つまり,欠陥密度が高い場合はECCのコード長を短くし,欠陥密度が低い場合はECCのコード長を長くすることが望ましい。
しかしながら,製造ラインの欠陥密度を予測することは困難であるとともに,製造ラインの欠陥密度は,習熟曲線によって逐一変動することが多い。また,製造ラインによっても欠陥密度が異なることもある。したがって,最適なECCを選択することは容易ではない。
[具体例]
図4は,本実施の形態における半導体メモリ装置の構成図である。このメモリ装置では,データを記憶するデータメモリセルアレイD−MCAと,パリティビットを記憶するパリティメモリセルアレイP−MCAとを有し,メモリセルアレイ内には,ワード線WLとビット線BLとの交差部にセルCを有する。そして,共通のワード選択回路22により1本のワード線WLが選択されると,データメモリセルアレイD−MCAとパリティメモリセルアレイP−MCAとで同時に書込または読み出しが行われる。よって,メモリセルアレイには書き込み用と読み出し用の増幅器24が設けられている。
この増幅器24は,データとパリティビットのバス25を介して,ECC演算回路26に接続される。また,データの入力端子29にはデータ入力バッファ28が,データの出力端子31にはデータ出力バッファ30がそれぞれ接続される。データ入力端子29と出力端子31とは,同じ入出力端子で構成されてもよい。図4の例では,データ入力端子29と出力端子31とは,それぞれ8ビット端子であるが,端子数はそれに限定されない。
メモリセルアレイD−MCA,P−MCAでは,1本のワード線の選択に応答して,所定ビットのデータとそれに対応するパリティビットが書き込み又は読み出しされる。そして,ECCのコード長(またはタイプ)が異なっても,メモリセルアレイの構成は固定である。但し,パリティメモリセルアレイP−MCAは,後述するとおり,ECCのコード長に応じて不要な領域が存在するので,必要に応じて不要領域を削除してチップサイズの縮小化を図ることも可能である。不要なパリティの領域を無視すれば,データメモリセルアレイD−MCAもパリティメモリセルアレイP−MCAも固定された構成になり,増幅器24も固定された構成になる。
それに伴ってバス25も,ECCのコード長に依存することなく,同じビット数のデータのバスとパリティビットのバスで構成される。ただし,バス25のどのビットをECC演算回路26に接続するかは,ECCのコード長に依存して切り替えられる。
そして,ECC演算回路26は,図1のパリティ生成回路とシンドローム生成回路及び誤り訂正回路とを有する。これらの回路構成は,ECCのコード長に依存して,切り替え可能な構成を有する。したがって,ECC演算回路26が切り替え制御信号CNTに応答してその構成が切り替えられる。しかし,その切り替えは,入出力の組合せの切り替えであるので,スイッチ群により実現可能であり,演算回路を構成する回路要素の切り替えは必要ない。
周辺回路20は,入力コマンドを解釈してリード動作とライト動作の制御信号を生成し,選択されたECCのコード長に応じて切り替え制御信号を生成し,試験モードにおいて選択されたECCのコード長に応じて試験用の切り替え制御信号を生成する。これらの制御信号CNTに応じて,ECC演算回路のスイッチ群が切り替え制御される。
データ入力バッファ28は,データ入力端子から入力されるデータをECC演算回路26に供給し,データ出力バッファ30は,ECC演算回路26から出力される訂正済みデータをデータ出力端子31から出力する。これらのバッファは,データバス25のビット数と入出力端子30,31のビット数との整合をとるためのシリアル・パラレル変換回路及びパラレル・シリアル変換回路を有しても良い。または,入出力端子30,31のビット数がデータバス25のビット数と等しくてもよい。
図5は,本実施の形態におけるECCのコード長に応じたメモリセルアレイの構成を示す図である。ECCのコード長は,前述のとおり8−4タイプ,16−5タイプ,32−6タイプの3種類が示されている。以下の実施の形態では,一例として,ECCのコード長として上記3種類のコード長に適宜切り替え可能な構成を示す。しかし,これ以外のタイプのECCのコード長にも適用できることは明らかである。
メモリセルアレイは,データメモリセルアレイD−MCAと,パリティメモリセルアレイP−MCAとを有する。今仮に,データ容量を1Mbitとすると,データメモリセルアレイD−MCAは,32768word×32bitで構成される。つまり,32ビットとは,ワード線の選択に応答してデータメモリセルアレイD−MCAに入出力されるビット数であり,図5中の1平面W1内に格納されるビット数である。そして,この32ビットの平面(または1ワード)W1〜W32768が,32768面(またはワード)に論理的に分離されている。従って,論理アドレスをデコードすることにより,32768ワードのうち1ワード(32ビット)がデータメモリセルアレイD−MCAに対して入出力される。つまり,データバス25は32本設けられることになる。そして,32ビットのデータが同時に入出力される場合は,データ入出力端子は32ビットであり,32ビットのデータがN回に分けて時分割で入出力される場合は,データ入出力端子は32/Nビットである。時分割入出力するためには,入出力バッファにシリアル/パラレル変換,パラレル/シリアル変換回路が設けられる。
上記のように,行アドレスをデコードしてワード線が選択されて,32ビットのデータと16,10または6ビットのパリティビットが同時にバスに入出力される。あるいは,行アドレスをデコードしてワード線が選択されて,2のN乗グループの32ビットのデータと16,10または6ビットのパリティビットがセンスアンプに出力され,さらに列アドレスで2のN乗分の1が選択されて,最終的に32ビットのデータと16,10または6ビットのパリティビットが同時にバスに入出力されてもよい。
8−4タイプの場合は,データが8(=2の3乗)ビット単位であるので,ワード線の選択に対応して,4グループの8ビットデータが,データメモリセルアレイD−MCAに対して同時に入出力される。16−5タイプの場合は,データが16(2の4乗)ビット単位であるので,ワード線の選択に対応して,2グループの16ビットデータが,データメモリセルアレイD−MCAに対して同時に入出力される。32−6タイプの場合は,データが32(2の5乗)ビット単位であるので,1グループの32ビットデータが同時に入出力される。
一方,パリティメモリセルアレイP−MCAは,32768word×16bitで構成される。つまり,ワード線の選択に応答してパリティメモリセルアレイP−MCAに対して入出力される最大ビット数が16ビットである。そして,16ビットの平面(または1ワード)W1〜W32768が,32768面(またはワード)に論理的に分離されている。よって,パリティバス25は16本設けられることになる。
8−4タイプの場合は,8ビットデータに対して4ビットのパリティビットが生成される。よって,ワード線の選択に対応して,図中ボールド線の枠で示すとおり,4グループの8ビットデータにそれぞれ対応する4グループの4ビットパリティビットが,パリティメモリセルアレイP−MCAに対して入出力される。16−5タイプの場合は,16ビットデータに対して5ビットのパリティビットが生成される。よって,ワード線の選択に対応して,2グループの16ビットデータにそれぞれ対応する2グループの5ビットパリティビットが,パリティメモリセルアレイP−MCAに対して入出力される。したがって,パリティメモリセルアレイP−MCAには,6ビットの不使用セル(網掛け部分)が存在する。32−6タイプの場合は,32ビットデータに対して6ビットのパリティビットが生成される。よって,ワード線の選択に対応して,1グループの32ビットデータにそれぞれ対応する1グループの6ビットパリティビットが,パリティメモリセルアレイP−MCAに対して入出力される。よって,パリティメモリセルアレイP−MCAには,10ビットの不使用セル(網掛け部分)が存在する。
上記のように,異なるECCのコード長に対応できるように,データメモリセルアレイD−MCAでは,最長コード長に対応して,2のI乗ビットを1ワードとする構成にして,2のI−J乗(I>J,J=1,2,3...)ビットのデータの単位に対応可能にする。一方,パリティメモリセルアレイP−MCAでは,最短コード長に対応して,I−J+1ビット×2のJ乗グループ(Jは選択可能な最大値)のビットを1ワードとする構成にする。
そして,ECCのコード長が最短長では,パリティメモリセルアレイP−MCAは全てのメモリセルが使用され,ECCのコード長が長くなるにしたがい,一部のメモリセルしか使用されなくなる。つまり,不使用メモリセル数が増大する。
このような構成にすることで,ワード線選択回路22や増幅器24やバス25を含めてメモリセルアレイの構成を,ECCのコード長にかかわらず固定的な構成にすることができる。したがって,ECCのコード長を切り替え可能なメモリ装置に適用可能である。
図6は,本実施の形態におけるECC演算回路の概略構成図である。書き込み時では,入力されるデータDinは,書込データD<N:0>としてデータメモリセルアレイに記憶されるとともに,入力側パリティ生成回路260に入力される。入力側パリティ生成回路260は,書込データに対応するビット数のパリティビットP<L:0>を生成し,パリティメモリセルアレイP−MCAに記憶する。
一方,読み出し時では,読み出しデータD<N:0>と読み出しパリティビットP<L:0>とが,シンドローム生成回路262に入力される。シンドローム生成回路262は,具体的には,読み出しデータからそれに対応するパリティビットを生成する出力側パリティ生成回路と,そこで生成されたパリティビットと,読み出しパリティビットとからシンドロームビットを生成するシンドローム生成回路とを有する。ただし,パリティビットの生成は,XOR回路によりデータのXOR論理を生成することで行われ,シンドロームビットの生成も,XOR回路により両パリティビットのXOR論理を生成することで行われる。したがって,出力側パリティ生成回路とシンドローム生成回路とはXOR回路で共通化することが可能である。
そして,シンドロームデコーダ264は,シンドローム生成回路262が生成したシンドロームビットS<L:0>をデコードして,どのビットに誤りが存在するかを示す誤りビット信号EC<L:0>を生成する。最後に,誤り訂正回路266が,誤りビット信号EC<L:0>に基づいて,読み出しデータD<N:0>の誤りビットを訂正(ビット反転)して,誤り訂正された読み出しデータが出力データDoutとして出力される。前述した出力側パリティ生成回路とシンドローム生成回路とを有するシンドローム生成回路262と,シンドロームデコーダ264とを合わせて,シンドローム生成回路と称しても良い。
さらに,入力側パリティ生成回路260は,XOR回路を有し,入力データDinのうち選択された一部のデータのXOR論理を生成して,パリティビットを生成する。つまり,入力側パリティ生成回路260もXOR回路で構成できる。よって,入力側パリティ生成回路260とシンドローム生成回路262とは,共通のXOR回路群で構成可能であり,書き込み時と読み出し時とで,入力端子及び出力端子をスイッチで切り替えることが好ましい構成である。
次に,一般的なハミングコードに基づくパリティビットについて説明する。この説明により,後述するECC演算回路のECCのコード長に応じた切り替え構造の理解が容易になる。
図7は,本実施の形態におけるパリティチェックマトリクスの具体例を示す図である。図7には,図5で示した1ワード,32ビットのデータDに対するパリティビットp0〜p5の例を示している。8−4タイプのECCシステムの場合は,4つのグループ(0)〜(3)が,16−5タイプのECCシステムの場合は,2つのグループ(0)(1)が,32−6タイプのECCシステムの場合は1つのグループが示される。
パリティビットの生成は次の通りである。8−4タイプの場合,図中100で示すデータD0〜D7のうちクロスXの5ビットのXOR論理が,データ100に対するパリティビットp0になる。他のパリティビットp1〜p3も同様にクロスXが付された5ビットのXOR論理になる。このパリティビットに対するクロスXの位置は,各データビットD0〜D7について見ると(図7の縦方向),重複しない組合せになっている。つまり,データD0に対してはパリティビットp0,p2にクロスXが配置され,この組合せp0,p2は,他のデータD1〜D7には存在しない。重複しない組合せになっていればよいので他の組合せでも良い。
8−4タイプの場合,上記クロスXの配置は,4つのグループ(0)〜(3)において共通化されている。
16−5タイプの場合のパリティビットの生成も同様であり,データD0〜D15のうちクロスXが配置されている10ビットのXOR論理が,それぞれのパリティビットp0〜p4になる。そして,クロスXの組合せは,パリティビットp0〜p3においては,8−4タイプと同じになっている。これがECCのコード長に対応する切り替え構造を簡単にすることに寄与している。そして,パリティビットp4に対するクロスXの位置は,いずれもデータD8〜D15に配置されている。
32−6タイプの場合のパリティビットの生成も同様に,データD0〜D31のうちクロスXが配置されている20ビットのXOR論理が,それぞれのパリティビットp0〜p5になる。そして,クロスXの組合せは,パリティビットp0〜p3においては,8−4タイプと同じになっていて,ECCのコード長に対応する切り替え構造を簡単にすることに寄与している。また,パリティビットp4に対するクロスXの位置は,データD8〜D15,D24〜D31に配置され,パリティビットp5に対するクロスXの位置は,データD16〜D31に配置されている。
上記のとおり,最長のECCのコード長である8−4タイプのパリティビットp0〜p3を生成するデータの組合せ(クロスXの組合せ)を,他のECCのコード長と同じにすることで,いずれのECCのコード長であっても,パリティビットp0〜p3を生成するXOR回路を同じ構成にすることができる。
次に,誤り訂正について説明する。8−4タイプを例にすると,読み出しデータD0〜D7から,図7のマトリクスに応じてXOR論理を生成して新たなパリティビットp0〜p3を生成する。今仮に,書込データD0〜D7が全て「0」と仮定すると,書き込み時に生成されるパリティビットp0〜p3は「0000」になる。XOR論理は,2ビットであれば2ビットデータが排他的な場合に「1」,同じ場合に「0」になるが,3ビット以上の場合は,データ「1」が奇数の場合に「1」,偶数の場合に「0」になる。したがって,書込データが全て「0」であれば,全てのパリティビットp0〜p3は「0」になる。
そして,仮に読み出しデータD0〜D7から生成されたパリティビットp0〜p3が「1010」になったとする。この場合,読み出されたパリティビット「0000」と新たに生成されたパリティビット「1010」とを比較し,不一致のビットはp0,p2である。つまり,この比較をXOR論理の生成で行うと,得られる比較結果コードは「1010」である。この比較結果コード「1010」を図7のマトリクスのクロスXの組合せと照合すると,データD0のクロスXの組合せが一致することが判明する。したがって,データD0に誤りがあることが検出される。つまり,読み出しデータD0〜D7は「10000000」であり,それから生成したパリティビットp0〜p3は「1010」だったわけである。
なお,新たに生成されたパリティビットが「0000」の場合は,新旧のパリティビットが一致するので,誤りは存在しないことが判明する。
このように,書込データD0〜D7のうち,一部のビットのユニークな組合せのXOR論理によりパリティビットp0〜p3を生成しておき,読み出しデータD0〜D7から再度新たにパリティビットp0〜p3を生成し,新旧のパリティビットを比較して不一致のビットの組合せから,読み出しデータD0〜D7のどのビットに誤りがあるかを検出することができる。
上記の説明で理解できるとおり,入力側パリティ生成回路も,出力側パリティ生成回路も,いずれもXOR論理回路で構成可能である。また,両パリティビットを比較するシンドローム生成回路もXOR論理回路で構成可能である。そして,出力側パリティ生成回路とシンドローム生成回路を同じXOR論理回路で構成可能である。よって,入力側と出力側パリティ生成回路とシンドローム生成回路とを全て共通のXOR論理回路で構成し,書き込み時と読み出し時で読み出しパリティビットを入力するか否かを切り替え,ECCのコード長に応じてどのデータ群のXOR論理出力をパリティビットまたはシンドロームビットとして出力するかを切り替えることで,ECC演算回路を最小回路規模にすることができる。
図8,図9は,本実施の形態におけるECC論理回路の構成図である。このECC論理回路では,入力側パリティ生成回路260と出力側パリティ生成回路及びシンドローム生成回路262が,共通のXOR回路で構成されている。以下,この共通化されたXOR回路をパリティ/シンドローム生成回路と称する。また,図8には,ECCのコード長に応じて切り替えるための制御信号CNTCNT,書き込みと読み出しとで切り替えるための制御信号CNTを生成する制御信号生成回路CONTが示されている。
図7で説明したとおり,各パリティビットp0〜p6は,データD0〜D7,D0〜D15,D0〜D31のクロスXの組合せから生成される。したがって,パリティ/シンドローム生成回路は,パリティビットp0〜p6をそれぞれ生成する6つの回路P0/S0〜P5/S5で構成される。図中S<N>はシンドロームビットを示す。
データメモリセルアレイD−MCAは,32ビットのデータバス25Dに接続され,パリティメモリセルアレイP−MCAは,16ビットのパリティバス25Pに接続され,これらのバス25D,25Pが接続網NET1を介して,パリティ/シンドローム生成回路P0/S0〜P5/S5の入力端子に,それぞれ対応する組合せで接続される。そして,各パリティ/シンドローム生成回路P0/S0〜P5/S5は,パリティビットP<L>またはシンドロームビットS<L>を出力する。これらのうちパリティビットP<5:0>,2組のP<4:0>,または4組のP<3:0>は,パリティセルアレイP−MCAに供給され,シンドロームビットS<5:0>,2組のS<4:0>,または4組のS<3:0>は,接続網NET2を介して,図9のシンドロームデコーダ2640〜2643に供給される。
図9には,4つのシンドロームデコーダ2640〜2643と,誤り訂正回路266とが示されている。シンドロームデコーダは,各シンドロームビットS<5:0>,2組のS<4:0>,または4組のS<3:0>を,図7のパリティチェックマトリクスを格納したROM28のクロスXの位置と照合し,一致するビットを示す誤り訂正コードECを生成し,誤り訂正回路266に与える。図9については,後で再度詳述する。
パリティ/シンドローム生成回路P0/S0は,32ビットの書込データDwまたは読み出しデータDrのうち,20ビットを入力し,それらのXOR論理を生成して,パリティビットP<0>を生成する。20ビットの組合せは,図7のクロスXに示されるとおりであり,ECCのデータ長に依存することなく共通になっている。また,生成されるパリティビットP<0>は,8−4タイプなら4つのパリティビットP<0>が,16−5タイプなら2つのパリティビットP<0>が,31−6タイプなら1つのパリティビットP<0>が生成される。この切り替えが,切り替え制御信号CNTに応じて,出力側のスイッチ群SWoutにより行われる。
パリティ/シンドローム生成回路P0/S0は,読み出し時において,読み出しデータDrのうち20ビットのXOR論理に加えて,読み出されたパリティビットP<0>とのXOR論理も生成して,シンドロームビットS<0>を生成する。入力されるパリティビットP<0>は,8−4タイプなら4つのパリティビットP<0>,16−5タイプなら2つのパリティビットP<0>,31−6タイプなら1つのパリティビットP<0>になり,出力されるシンドロームビットS<0>も,同様にタイプ別に4つ,2つ,1つのビットになる。これらの切り替えが,切り替え制御信号CNTに応じて,入力側スイッチ群SWinと出力側スイッチ群SWoutとで行われる。
パリティ/シンドローム生成回路P1/S1〜P3/S3も,上記のパリティ/シンドローム生成回路P0/S0と同じ構成である。
図10〜図16は,パリティ/シンドローム生成回路P0/S0〜P3/S3の3つのECCのタイプ別の回路図である。3つのタイプそれぞれに,パリティ生成回路の構成と,シンドローム生成回路の構成とが示される。図16は,それら6つの回路構成を切り替え可能にするスイッチ群を含めた図である。
図10は,32−6タイプの場合のパリティ生成回路である。この回路は,8つの3入力のXOR回路2601〜2608を入力側に設け,24ビットの入力端子に接続している。そして,3入力XOR回路の出力が,4つの2入力XOR回路2609〜2612に入力され,それらの出力が2つの2入力XOR回路2613,2614に入力され,その出力が最終段の2入力XOR回路2615に入力され,その出力がパリティビットP<L>となる。このパリティビットは,P<0>〜P<3>のいずれかになる。
上記のように,XOR回路を階層化した構成にすることで,後で説明するとおり,異なるECCのコード長にも切り替え可能にすることができる。
24ビットの入力端子は,4グループに分けられ,各グループには,5ビットのデータが入力され,残りの1ビットはグランド端子GNDに接続されて論理「0」にされる。論理「0」はXOR論理に何らの影響も与えない。4グループの5ビットデータは,図7に示したとおり,32ビットのデータD0〜D31からクロスXが配置された20ビットのデータの組合せである。したがって,パリティ/シンドローム回路P0/S0〜P3/S3それぞれに,図7で示した組合せの20ビットのデータを入力することで,パリティビットP<0>〜P<3>をそれぞれ生成する。
図11は,32−6タイプの場合のシンドローム生成回路である。この回路も,図10と同様に24ビットの入力端子と,8つの3入力XOR回路と,7つの2入力XOR回路と,1ビットの出力端子とで構成される。そして,4グループに分けられた入力端子には,3グループでは5ビットデータが入力され,残りの1ビットがグランド端子に接続される。もう1つのグループでは,図中矢印200に示すとおり,5ビットデータと1ビットの読み出しパリティビットとが入力される。つまり,20ビットの読み出しデータと1ビットのパリティビットのXOR論理が,シンドロームビットS<L>として出力される。つまり,図11の回路は,図10とは矢印200の入力端子に,グランドGNDの論理「0」を入力するか,読み出したパリティビットP<L>を入力するかが異なるだけである。よって,書き込みと読み出しを区別する制御信号によりこれらの切り替えが行われればよい。
図12は,16−5タイプの場合のパリティ生成回路である。この回路では,24ビットの入力端子と,8つの3入力XOR回路XOR3と,6つの2入力XOR回路XOR2と,2ビットの出力端子P<L>とで構成される。つまり,最後段の2入力XOR回路の部分210は使用されない。そして,図7に示されるとおり,16−5タイプの場合は,2グループのデータに対してそれぞれパリティビットP<L>が生成されるので,図中水平破線で分離された上下のXOR回路群によりそれぞれのグループのXOR論理が生成される。つまり,1グループ目のデータD<15:0>−0のうちの10ビットから,パリティビットP<L>−0が生成され,2グループ目のデータD<15:0>−1のうちの10ビットから,パリティビットP<L>−1が生成される。
図13は,16−5タイプの場合のシンドローム生成回路である。図12と同様に,24ビットの入力端子と,8つの3入力XOR回路XOR3と,6つの2入力XOR回路XOR2と,2ビットの出力端子S<L>とで構成され,最後段の2入力XOR回路の部分210は使用されない。そして,図12とは,矢印220の入力端子の位置に,パリティビットP<L>−0,P<L>−1が入力されることで異なっていて,出力がシンドロームビットであることでも異なっている。入力されるデータD<15:0>の組合せは図12と同じである。よって,書き込み時と読み出し時とでは,矢印220の部分が切り替えられる。
図14は,8−4タイプの場合のパリティ生成回路である。この回路では,24ビットの入力端子と,8つの3入力XOR回路XOR3と,4つの2入力XOR回路XOR2と,4ビットの出力端子P<L>とで構成される。つまり,最後段の3つの2入力XOR回路の部分230は使用されない。そして,図7に示されるとおり,8−4タイプの場合は,4グループのデータに対してそれぞれパリティビットP<L>が生成されるので,図中水平破線で分離された4つのXOR回路群によりそれぞれのグループのXOR論理が生成される。つまり,1グループ目のデータD<7:0>−0のうち5ビットから,パリティビットP<L>−0が生成され,2グループ目のデータD<7:0>−1のうち5ビットから,パリティビットP<L>−1が生成され,3,4グループ目も同様にパリティビットP<L>−2,P<L>−3が生成される。
図15は,8−4タイプの場合のシンドローム生成回路である。図14と同様に,24ビットの入力端子と,8つの3入力XOR回路と,4つの2入力XOR回路と,4ビットの出力端子S<L>とで構成され,最後段の3つの2入力XOR回路の部分230は使用されない。そして,図14とは,矢印240の入力端子の位置に,パリティビットP<L>−0,P<L>−1,P<L>−2,P<L>−3が入力されることで異なり,出力がシンドロームビットであることでも異なっている。入力されるデータD<7:0>の組合せは図14と同じである。したがって,書き込み時と読み出し時とでは,矢印240の部分が切り替えられる。
図16は,3つのECCのコード長に切り替え可能なパリティ/シンドローム生成回路P0/S0〜P3/S3を示す図である。図10〜図15に示したとおり,各ECCのタイプにおいて,矢印200,220,240の入力端子で書き込み時と読み出し時で切り替えが必要である。そして,3つのECCのタイプに応じて,入力端子に入力すべきパリティビットを,出力端子に出力すべきパリティビットまたはシンドロームビットを,それぞれ切り替えることが必要である。
図16には,図8の入力側のスイッチ群SWinとしてスイッチSW1,SW2,SW3,SW4が示され,出力側のスイッチ群SWoutとしてスイッチSW11,SW12が示されている。これらのスイッチの切り替えは,以下の通りであり,このように切り替えることで,図10〜図15に示した回路が実現される。
SW1:書き込み時はGNDに,読み出し時は8−4ではパリティP<L>−0に,16−4,32−5ではGNDに接続される。
SW2:書き込み時はGNDに,読み出し時は8−4ではパリティP<L>−1に,16−4ではパリティP<L>−0に,32−5ではGNDに接続される。
SW3:書き込み時はGNDに,読み出し時は8−4ではパリティP<L>−2に,16−4,32−5ではGNDに接続される。
SW4:書き込み時はGNDに,読み出し時は8−4ではパリティP<L>−3に,16−4ではパリティP<L>−1に,32−5ではパリティP<L>に接続される。
SW11:書き込み時と読み出し時のいずれも,端子8−4,16−5,32−6のいずれかに接続される。但し,書き込み時はパリティビットP<L>として,読み出し時はシンドロームビットS<L>として出力される。
SW12:書き込み時と読み出し時のいずれも,端子8−4,16−5のいずれかに接続され,32−6ではこの出力端子は不使用。
以上のように,出力端子は,8−4タイプなら4ビット出力,16−5タイプなら2ビット出力,32−6タイプなら1ビット出力になる。逆にいえば,32−6タイプなら3つの出力端子は不使用,16−5タイプなら2つの出力端子が不使用になる。これらのスイッチの制御は,書き込みと読み出し,ECCのコード長(8−4,16−5,32−6)に応じて生成される切り替え制御信号CNTにより行われる。また,入力端子へのデータバスからの入力は,切り替える必要はない。
図8に戻り,パリティ/シンドローム生成回路P4/S4は,図7に示されるとおり,書き込み時には,32ビットのデータD<L>のうち16ビットを入力して,パリティビットP<4>を必要ビット生成する。そして,読み出し時には,同回路は,32ビットのデータD<L>のうち16ビットを入力し,さらに読み出されたパリティビットP<4>を必要ビット入力して,シンドロームビットS<4>を必要ビット出力する。
パリティ/シンドローム生成回路P4/S4は,8−4タイプでは必要なく,16−5タイプと32−6タイプで使用される。16−5タイプの場合は,2グループのデータD<15:0>のうちの8ビットから,それぞれ,2グループのパリティビットP<4>またはシンドロームビットS<4>が生成され,32−6タイプの場合は,1グループのデータD<31:0>のうち16ビットから,単一のパリティビットP<5>またはシンドロームビットS<5>が生成される。したがって,これらの入力側スイッチ群SWinへの切り替え制御信号CNTは,書き込みと読み出し,及び16−5か32−6かに対応して生成される。また,出力側スイッチ群SWoutへの切り替え制御信号CNTは,16−5か32−6かに対応して生成される。
図17〜図21は,パリティ/シンドローム生成回路P4/S4の2つのECCのタイプ別の回路図である。2つのタイプそれぞれに,パリティ生成回路の構成と,シンドローム生成回路の構成とが示される。図21は,それら4つの回路構成を切り替え可能にするスイッチ群を含めた図である。
図17は,32−6タイプの場合のパリティ生成回路である。この回路は,8つの3入力のXOR回路XOR3を入力側に設け,24ビットの入力端子に接続している。そして,7つの3入力XOR回路XOR3の出力が3階層に構成され,最終段の2入力XOR回路XOR2の出力がパリティビットP<4>となる。入力段の1対のXOR3の6ビット入力のうち,4ビットにデータが入力され,2ビットがグランドGNDに接続されて論理「0」になっている。そして,データD<31:0>のうち,図7のクロスXが付された16ビットのデータD<31:16>が入力される。
図18は,32−6タイプの場合のシンドローム生成回路である。この回路も,図17と同様に,8つの3入力のXOR回路XOR3を入力側に設け,24ビットの入力端子に接続し,7つの3入力XOR回路XOR3の出力が3階層に構成され,最終段の2入力XOR回路XOR2の出力がシンドロームビットS<4>となる。入力段の1対のXOR3の6ビット入力のうち,4ビットにデータが入力され,2ビットがグランドGNDに接続されて論理「0」になっている。つまり,データD<31:0>のうち16ビットのデータD<31:16>が入力される。さらに,矢印250で示した入力端子には,読み出されたパリティビットP<4>が入力される。つまり,矢印250の接続が図17と異なる。
図19は,16−5タイプの場合のパリティ生成回路である。この回路は,8つの3入力のXOR回路XOR3を入力側に設け,24ビットの入力端子に接続し,6つの3入力XOR回路XOR3の出力が2階層に構成され,2グループのパリティビットP<4>−0,P<4>−1が出力される。最終段の2入力XOR回路XOR2の部分260は使用されない。入力段の1対のXOR3の6ビット入力のうち,4ビットにデータが入力され,2ビットがグランドGNDに接続されて論理「0」になっている。そして,図中水平破線で分離され,2グループのデータD<15:0>のうち8ビットのデータD<15:8>が,各グループの10ビット入力端子に入力される。
図20は,16−5タイプの場合のシンドローム生成回路である。この回路は,図19と同様に,8つの3入力のXOR回路XOR3を入力側に設け,24ビットの入力端子に接続し,6つの3入力XOR回路XOR3の出力が2階層に構成され,2グループのシンドロームビットS<4>−0,S<4>−1が出力される。最終段の2入力XOR回路XOR2の部分280は使用されない。そして,入力端子では,矢印270の端子にそれぞれ読み出しパリティビットP<4>−0,P<4>−1がそれぞれ入力される。それ以外の入力端子は,図19と同じである。
図21は,2つのECCのコード長32−6,16−5に切り替え可能なパリティ/シンドローム生成回路P4/S4を示す図である。図17〜図19に示したとおり,各ECCのタイプにおいて,矢印250,270の入力端子で書き込み時と読み出し時で切り替えが必要である。そして,2つのECCのタイプに応じて,入力端子に入力すべきパリティビットを,出力端子に出力すべきパリティビットまたはシンドロームビットを,それぞれ切り替えることが必要である。
図21には,図8の入力側のスイッチ群SWinとしてスイッチSW21,SW22が示され,出力側のスイッチ群SWoutとしてスイッチSW31が示されている。これらのスイッチの切り替えは,以下の通りであり,このように切り替えることで,図17〜図19に示した回路が実現される。
SW21:書き込み時はGNDに,読み出し時は16−5ではパリティP<4>−0に,32−5ではGNDに接続される。
SW22:書き込み時はGNDに,読み出し時は16−4ではパリティP<4>−1に,32−5ではパリティP<4>に接続される。
SW31:書き込み,読み出しいずれも16−5,32−6のいずれかに接続される。但し,書き込み時はパリティビットP<4>として,読み出し時はシンドロームビットS<4>として出力される。
以上のように,出力端子は,16−5タイプなら2ビット出力,32−6タイプなら1ビット出力になる。これらのスイッチの制御は,書き込みと読み出しに応じて,そして,ECCのコード長(16−5,32−6)に応じて,それぞれ生成される切り替え制御信号CNTにより行われる。また,データバスから入力端子へのの入力は,切り替える必要はない。
図8に戻り,最後のパリティ/シンドローム回路P5/S5について説明する。パリティ/シンドローム回路P5/S5は,図7に示されるとおり,書き込み時には,32ビットのデータD<L>のうち16ビットのデータD<31:16>を入力して,パリティビットP<5>を1ビット生成する。そして,読み出し時には,同回路は,32ビットのデータD<L>のうち16ビットのデータD<31:16>を入力し,さらに読み出されたパリティビットP<5>を入力して,シンドロームビットS<5>を1ビット出力する。
パリティ/シンドローム生成回路P5/S5は,8−4タイプ,16−5タイプでは必要なく,32−6タイプでのみ使用される。したがって,これらの入力側スイッチ群SWinへの切り替え制御信号CNTは,書き込みと読み出しに対応して生成される。また,出力側スイッチ群SWoutはない。
図22〜図24は,パリティ/シンドローム生成回路P5/S5の書き込み時と読み出し時別の回路図である。図24は,それら2つの回路構成を切り替え可能にするスイッチ群を含めた図である。
図22は,32−6タイプのパリティ生成回路である。8つの3入力XOR回路XOR3と,7つの2入力XOR回路XOR2とで構成され,24ビットの入力端子のうち16ビットにはデータD<31:16>が入力され,残りの8ビットはグランドGNDに接続されて論理「0」にされている。
図23は,32−6タイプのシンドローム生成回路である。XOR回路構成は,図22と同じであり,入力端子において,矢印290に読み出しパリティビットP<5>が入力されることを除いては,図22と同じである。また,出力端子にはシンドロームビットS<5>が出力される。
図24は,32−6タイプのパリティ/シンドローム回路P5/S5の回路図であり,入力側スイッチ群SWinとしてスイッチSW41が示されている。つまり,スイッチSW41は,書き込み時にグランドGND側に,読み出し時にパリティビットP<5>側に接続される。よって,スイッチSW41は,書き込みか読み出しかに応じて切り替えられる。出力端子には,読み出し時にパリティビットP<5>が出力され,書き込み時にシンドロームビットS<5>が出力される。
図8に戻り,パリティ/シンドローム回路P0/S0〜P3/S3は,3タイプのECCのコード長に対応し,且つ書き込み時と読み出し時でそのスイッチ群SWin,SWoutが切り替えられ,6種類の回路に切り替わる。同様に,パリティ/シンドローム回路P4/S4は,2タイプのECCのコード長32−6,16−5に対応し,且つ書き込み時と読み出し時でそのスイッチ群SWin,SWoutが切り替えられ,4種類の回路に切り替わる。そして,パリティ/シンドローム回路P5/S5は,ECCのコード長32−6の時に使用され,書き込み時と読み出し時でそのスイッチ群SWinが切り替えられ,2種類の回路に切り替わる。そして,それらの切り替わりが,制御信号CNTにより行われる。
図8において,32ビットのデータバス25Dのうち図7のパリティp0に示した組合せの20ビットがパリティ/シンドローム回路P0/S0に,パリティp1に示した組合せの20ビットがパリティ/シンドローム回路P1/S1に,パリティp2に示した組合せの20ビットがパリティ/シンドローム回路P2/S2に,パリティp3に示した組合せの20ビットがパリティ/シンドローム回路P3/S3に,それぞれ入力される。しかし,これらの入力への接続は,3タイプのECCのコード長にかかわらず固定である。同様に,32ビットのデータバス25Dのうち図7のパリティp4,p5に示した組合せの16ビットが,パリティ/シンドローム回路P4/S4,P5/S5に入力され,これらの入力への接続も固定である。
そして,上記パリティ/シンドローム回路に入力される読み出しパリティビットの組合せが,ECCのコード長のタイプに応じて切り替えられるが,それは入力側スイッチ群SWinで行われる。さらに,上記パリティ/シンドローム回路の出力であるパリティビットまたはシンドロームビットは,ECCのコード長に応じて切り替えられるが,それは出力側スイッチ群SWoutで行われる。
図8の接続網NET2により,各パリティ/シンドローム回路P0/S0〜P5/S5が生成するシンドロームビットのうち,第1グループの1ビットをそれぞれから選択して得られるシンドロームビットS<5:0>が,シンドロームデコーダ2640に入力され,第2グループの1ビットをそれぞれから選択して得られるシンドロームビットS<4:0>が,シンドロームデコーダ2641に入力され,同様に,第3,4グループの1ビットをそれぞれから選択して得られるシンドロームビットS<3:0>が,シンドロームデコーダ2642,2643にそれぞれ入力される。
ECCのコード長が32−6タイプなら,シンドロームビットS<5:0>が入力されるシンドロームデコーダ2640のみが動作し,16−5タイプならシンドロームビットS<4:0>が入力されるシンドロームデコーダ2640,2641のみが動作し,8−4タイプならシンドロームビットS<3:0>が入力されう4つのシンドロームデコーダにが動作する。よって,各シンドロームデコーダには,切り替え用の制御信号CNTが供給される。
各シンドロームデコーダ回路2640〜2643は,入力されたシンドロームビットとパリティチェックマトリクス28内のクロスXの情報とを照合し,一致するビットを「1」とし不一致のビットを「0」とする誤り訂正コードECを生成する。前述の例であれば,データD0に誤りがあるので,EC<7:0>=10000000が出力される。
そして,誤り訂正回路266が,読み出されたデータD<31:0>,D<15:0>×2,D<7:0>×4を誤り訂正コードECに基づいて訂正する。具体的には,誤り訂正コードECが「1」のビットを反転する。そして,誤り訂正されたデータD<31:0>,D<15:0>×2,D<7:0>×4が出力される。
図25は,本実施の形態におけるメモリセルアレイの構成例を示す図である。図25には,ECCのコード長が32−6タイプのものを示している。図5と同様に,データメモリセルアレイD−MCAには,1ワード(平面)あたり32ビットのセルが含まれ,それに対応してパリティメモリセルアレイP−MCAには1ワード(平面)あたり5ビットのセルが含まれる。図5でも説明したとおり,パリティメモリセルアレイP−MCAは,8−4タイプにも対応できるように1ワード(平面)あたり16ビットの容量を有する。よって,32−6タイプの場合は,使用しないセル(図中網掛け)が存在する。
そこで,本実施の形態では,パリティメモリセルアレイP−MCA内に不良箇所FAが存在する場合は,使用するセルの領域を不良箇所が存在しない領域に変更できるようにする。図25において,パリティメモリセルアレイP−MCA(1)では,使用セル領域内に不良箇所FAが存在するが,パリティメモリセルアレイP−MCA(2)では,不良箇所FAのない領域のセルを使用している。また,パリティメモリセルアレイP−MCA(3)では,使用するセルを分散させて配置している。
このように,本実施の形態では,パリティメモリセルアレイP−MCAにおいて,32−6タイプや16−5タイプの場合に,使用されるセル領域と使用されないセル領域とが存在するので,不良箇所に対応して使用されるセル領域を選択することが望ましい。
図26は,本実施の形態におけるメモリセルアレイのレイアウト例を示す図である。図26には,ECCのコード長が8−4タイプ,16−5タイプ,32−6タイプの3種類におけるメモリセルアレイのレイアウトが示されている。この例によれば,メモリセルアレイの中央部に,1ワードあたり32ビットのメモリセルを配置したデータメモリセルアレイD−MCAが配置され,その両側にパリティメモリセルアレイP−MCAが2分割して配置される。パリティメモリセルアレイP−MCAは,左右合わせて,1ワードあたり16ビットのメモリセルが配置されている。
図26のメモリセルアレイは,水平方向にワード線が延びるように配置され,垂直方向にビット線が延びるように配置される。そして,ワード線選択回路は,データメモリセルアレイの中央部に配置される。よって,1つのワード線を選択すると,データメモリセルアレイ側では32本のビット線から32ビットのデータが出力される。また,パリティセルアレイ側では,16本,10本,6本のビット線から16ビット,10ビット,6ビットのデータが出力される。
8−4タイプの場合は,パリティメモリセルアレイP−MCA(10)(11)内の全てのメモリセルが使用される。16−5タイプと32−6タイプの場合は,パリティメモリセルアレイP−MCA内の一部のメモリセルが使用される。そこで,左右に分割されたパリティメモリセルアレイP−MCA(12)(13)(14)(15)を,中央のデータメモリセルアレイD−MCA側に寄せるようにし,不使用のメモリセル群が両端に位置するようにレイアウトする。
このようにすることで,常に不使用のメモリセル群を,メモリセルアレイの両端に配置することができる。通常,チップの周辺領域に不良発生確率が高くなる傾向にあるので,このようにメモリセルアレイをレイアウトすることで,不良箇所の使用確率を下げることができる。
図27は,本実施の形態におけるメモリセルアレイの変更例を示す図である。図3で説明したとおり,製造ラインの習熟度に応じて平均欠陥密度が徐々に低下していく場合,欠陥密度が高い場合は,ECCのコード長を8−4タイプにして欠陥の救済確率を上げることが全体のコストダウンになるが,欠陥密度が低くなると,ECCのコード長を32−6タイプにしてデータ長に対するパリティビット長を短くしてセルアレイサイズを小さくすることがコストダウンにつながる。
そこで,図27に示した32−6タイプのメモリセルアレイの場合,図26のように中央部にデータメモリセルアレイD−MCAを配置し,左右にパリティメモリセルアレイP−MCA(14)(15)を分割して配置し,さらに両端の領域300の不使用領域をメモリから削除することで,メモリのサイズを小さくすることができる。両端の領域300を削除されたメモリは,チップサイズまたはマクロサイズ(ASIC内にメモリが埋め込まれる場合)が小さくなり,コストダウンに寄与することができる。
以上説明したとおり,上記の実施の形態によれば,ECCのコード長を適宜変更することができるので,製造ラインの欠陥密度に対応して,最適なコード長を選択してコストを下げることができる。
コード長に対応する切替は,図8の切替制御信号CNTを生成する切替制御回路内にヒューズROMを設け,そのヒューズROMにコード長に対応する情報を書き込むことで行うことが出来る。または,マスクオプションにより切り替えることもできる。MOSトランジスタのゲート酸化膜を破壊して短絡するヒューズ形式の場合は,パッケージに組み込んだ後に切り替えることもできる。
また,ECCのコード長に対応して切り替え可能にしているので,試験工程において,32−6タイプに切り替えて良否判定試験を行い,試験をパスした後に8−4タイプに切り替えて出荷することもできる。具体的には,図8の切替制御回路に試験工程でどのタイプに切り替えるかを示す信号を与えて,所望のタイプに切り替えて動作試験を行う。このようにすれば,救済確率の低い状態で動作試験を実行できるので,出荷されるメモリの信頼性を格段に向上させることができる。
上記の実施の形態では,あるハミングコードにしたがって,2のI乗のデータに対してI+1ビットのパリティビットを生成して1ビットの誤りを訂正可能にしている。本発明はそれ以外のハミングコードでも同様に適用可能である。たとえば,2ビットまたはそれ以上の複数ビットの誤りを訂正可能にするハミングコードにおいても,ECCのコード長を異ならせて救済確率を変更させることができる。本発明は,そのようなハミングコードに基づく場合でも適用可能である。
さらに,上記の実施の形態では,入力側,出力側のパリティ生成回路とシンドローム生成回路とを共通のXOR回路で構成したが,それらを個別のXOR回路で構成してもよい。その場合,各XOR回路の入力側スイッチや出力側スイッチが,ECCのコード長に応じて切り替えられる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
誤り訂正機能を有する半導体メモリ装置において,
複数のメモリセルを有し,ワードの選択に応答して2のI乗ビット(Iは2以上の整数)のデータをデータバスに対して入出力するデータメモリセルアレイと,
複数のメモリセルを有し,前記ワードの選択に応答して前記2のI乗ビットのデータに対応するビット数のパリティビットをパリティバスに対して入出力するパリティメモリセルアレイと,
データ入出力端子と,
前記データ入出力端子から入力される2のI乗ビットの書込データから,前記パリティビットを生成して,前記パリティバスに出力するパリティ生成回路と,
前記データメモリセルアレイから前記データバスに読み出される2のI乗ビットの読み出しデータと前記パリティメモリセルアレイから前記パリティバスに読み出されるパリティビットとから,前記読み出されたデータの誤りビット位置を示すシンドロームビットを生成するシンドローム生成回路と,
前記シンドロームビットに基づいて前記読み出しデータの誤りを訂正する誤り訂正回路とを有し,
前記パリティ生成回路及びシンドローム生成回路が,2のI乗ビットのデータとI+1ビットのパリティビットとからなる第1のECCと,2のI−J乗ビット(I>J,Jは1以上の整数)のデータとI−J+1ビットのパリティビットとを2のJ乗グループ含む第2のECCとのいずれかに切り替え可能に構成されていることを特徴とする半導体メモリ装置。
(付記2)
付記1において,
前記パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
前記XOR回路群は,
前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データからI+1ビットのパリティビットを生成し,読み出し時において,2のI乗ビットの読み出しデータとI+1ビットの読み出しパリティビットとから前記シンドロームビットを生成し,
前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データからI−J+1ビットのパリティビットを2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータとI−J+1ビットの読み出しパリティビットとから前記シンドロームビットを2のJ乗グループ生成し,
前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチと,前記生成されたパリティビットまたはシンドロームビットの出力を切り替える出力スイッチとを有することを特徴とする半導体メモリ装置。
(付記3)
付記1において,
前記パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
前記XOR回路群は,
前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データのうち選択されたビットのXORを前記I+1ビットのパリティビットとして生成し,読み出し時において,2のI乗ビットの読み出しデータのうち選択されたビットと前記読み出しパリティビットとのXORを前記シンドロームビットとして生成し,
前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データのうち選択されたビットのXORを前記I−J+1ビットのパリティビットとして2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータのうち選択されたビットと前記読み出しパリティビットとのXORを前記シンドロームビットとして2のJ乗グループ生成し,
前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチと,前記生成されたパリティビットまたはシンドロームビットの出力を切り替える出力スイッチとを有することを特徴とする半導体メモリ装置。
(付記4)
付記2または3において,
前記XOR回路群の入力スイッチと出力スイッチとは,前記書き込み時と読み出し時とに対応する切り替え制御信号に応答して,切り替えられることを特徴とする半導体メモリ装置。
(付記5)
付記2または3において,
前記XOR回路群は,I+1ビットのパリティビットまたはシンドロームビットの各ビットをそれぞれ生成するI+1個のXOR回路を有し,
前記第1のECCに切り替えられた場合は,当該I+1個のXOR回路からI+1ビットのパリティビットまたはシンドロームビットが出力され,
前記第2のECCに切り替えられた場合は,前記I−J+1個のXOR回路からI−J+1ビットのパリティビットまたはシンドロームビットが出力されることを特徴とする半導体メモリ装置。
(付記6)
付記5において,
前記I+1個のXOR回路のうち,I−J+1個のXOR回路は,2のI−J乗ビットのデータうち共通の組み合わせのデータを2のJ乗グループ入力することを特徴とする半導体メモリ。
(付記7)
付記1において,
さらに,前記パリティ生成回路及びシンドローム生成回路の切り替えを制御する切り替え制御信号を生成する切り替え制御部を有し,
試験時において,前記切り替え制御信号を前記第1または第2のECCに対応する信号に切り替え可能であることを特徴とする半導体メモリ装置。
(付記8)
付記1において,
前記ワードの選択に応答して前記パリティメモリセルアレイに入出力されるパリティビットが,
前記第1のECCに切り替えられた場合はI+1ビットのパリティビットであり,前記第2のECCに切り替えられた場合はI−J+1ビットのパリティビットを2のJ乗グループ有するパリティビットである
ことを特徴とする半導体メモリ装置。
(付記9)
付記7において,
前記データメモリセルアレイとパリティメモリセルアレイとは同じ数のワード線で構成され,前記ワード線の選択に応答して,選択されたワード線に対応するデータとパリティビットとが書込または読み出しされることを特徴とする半導体メモリ装置。
(付記10)
付記8において,
前記パリティメモリセルアレイが,前記第1のECCに切り替えられた場合は第1の容量を有し,前記第2のECCに切り替えられた場合は前記第1の容量より大きい第2の容量を有することを特徴とする半導体メモリ装置。
(付記11)
付記10において,
前記パリティメモリセルアレイが,半導体メモリ装置の外周部に配置され,
前記第1のECCに切り替えられた場合は,前記パリティメモリセルアレイが第1の面積を専有し,前記第2のECCに切り替えられた場合は,前記パリティメモリセルアレイが前記第1の面積よりも広い第2の面積を専有することを特徴とする半導体メモリ装置。
(付記12)
付記1において,
前記パリティ生成回路及びシンドローム生成回路が,さらに,2のI−K乗ビット(I>K>J,Kは1以上の整数)のデータとI−K+1ビットのパリティビットとを2のK乗グループ含む第3のECCにも切り替えられることを特徴とする半導体メモリ装置。
(付記13)
誤り訂正機能を有する半導体メモリ装置において,
複数のメモリセルを有し,ワードの選択に応答して2のI乗ビット(Iは2以上の整数)のデータをデータバスに入出力するデータメモリセルアレイと,
複数のメモリセルを有し,前記ワードの選択に応答して前記2のI乗ビットのデータに対応するビット数のパリティビットをパリティバスに入出力するパリティメモリセルアレイと,
データ入出力端子と,
前記データ入出力端子から入力される2のI乗ビットの書込データから,前記パリティビットを生成して,前記パリティバスに出力する入力側パリティ生成回路と,
前記データメモリセルアレイから前記データバスに読み出される2のI乗ビットの読み出しデータから,前記パリティビットを生成する出力側パリティ生成回路と,
前記出力側パリティ生成回路が生成したパリティビットと前記パリティメモリセルアレイから前記パリティバスに読み出されるパリティビットとから,前記読み出されたデータの誤りビット位置を示すシンドロームビットを生成するシンドローム生成回路と,
前記シンドロームビットに基づいて前記読み出しデータの誤りを訂正する誤り訂正回路とを有し,
前記入力側パリティ生成回路と出力側パリティビット生成回路とシンドローム生成回路とが,2のI乗ビットのデータとそれに対応するビット数のパリティビットとからなる第1のECCと,2のI−J乗ビット(I>J,Jは1以上の整数)のデータとそれに対応するビット数のパリティビットとを2のJ乗グループ含む第2のECCとのいずれかに切り替え可能に構成されていることを特徴とする半導体メモリ装置。
(付記14)
付記13において,
前記入力側及び出力側パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
前記XOR回路群は,
前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データからそれに対応するビット数のパリティビットを生成し,読み出し時において,2のI乗ビットの読み出しデータとそれに対応する読み出しパリティビットとから前記シンドロームビットを生成し,
前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データからそれに対応するビット数のパリティビットを2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータとそれに対応する読み出しパリティビットとから前記シンドロームビットを2のJ乗グループ生成し,
前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチを有することを特徴とする半導体メモリ装置。
(付記15)
付記13において,
前記入力側及び出力側パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
前記XOR回路群は,
前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データのうち選択されたビットのXORを前記I+1ビットのパリティビットとして生成し,読み出し時において,2のI乗ビットの読み出しデータのうち選択されたビットと前記読み出しパリティビットとのXORを前記シンドロームビットとして生成し,
前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データのうち選択されたビットのXORを前記I−J+1ビットのパリティビットとして2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータのうち選択されたビットと前記読み出しパリティビットとのXORを前記シンドロームビットとして2のJ乗グループ生成し,
前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチと,前記生成されたパリティビットまたはシンドロームビットの出力を切り替える出力スイッチとを有することを特徴とする半導体メモリ装置。
(付記16)
付記14または15において,
前記XOR回路群の入力スイッチと出力スイッチとは,前記書き込み時と読み出し時とに対応する切り替え制御信号に応答して,切り替えられることを特徴とする半導体メモリ装置。
(付記17)
付記14または15において,
前記XOR回路群は,I+1ビットのパリティビットまたはシンドロームビットの各ビットをそれぞれ生成するI+1個のXOR回路を有し,
前記第1のECCに切り替えられた場合は,当該I+1個のXOR回路からI+1ビットのパリティビットまたはシンドロームビットが出力され,
前記第2のECCに切り替えられた場合は,前記I−J+1個のXOR回路からI−J+1ビットのパリティビットまたはシンドロームビットが出力されることを特徴とする半導体メモリ装置。
誤り訂正可能な半導体メモリ装置の構成図である。 ECCの3つのコード長でのデータとパリティの関係を示す図である。 ECCのコード長に対応した平均欠陥密度と歩留まり及びコストデメリットとの関係を示すグラフ図である。 本実施の形態における半導体メモリ装置の構成図である。 本実施の形態におけるECCのコード長に応じたメモリセルアレイの構成を示す図である。 本実施の形態におけるECC演算回路の概略構成図である。 本実施の形態におけるパリティチェックマトリクスの具体例を示す図である。 本実施の形態におけるECC論理回路の構成図である。 本実施の形態におけるECC論理回路の構成図である。 32−6タイプの場合のパリティ生成回路である。 32−6タイプの場合のシンドローム生成回路である。 16−5タイプの場合のパリティ生成回路である。 16−5タイプの場合のシンドローム生成回路である。 8−4タイプの場合のパリティ生成回路である。 8−4タイプの場合のシンドローム生成回路である。 3つのECCのコード長に切り替え可能なパリティ/シンドローム生成回路P0/S0〜P3/S3を示す図である。 16−5タイプの場合のパリティ生成回路である。 16−5タイプの場合のシンドローム生成回路である。 8−4タイプの場合のパリティ生成回路である。 8−4タイプの場合のシンドローム生成回路である。 2つのECCのコード長に切り替え可能なパリティ/シンドローム生成回路P4/S4を示す図である。 32−6タイプの場合のパリティ生成回路である。 32−6タイプの場合のシンドローム生成回路である。 32−6タイプのパリティ/シンドローム回路P5/S5の回路図である。 本実施の形態におけるメモリセルアレイの構成例を示す図である。 本実施の形態におけるメモリセルアレイのレイアウト例を示す図である。 本実施の形態におけるメモリセルアレイの変更例を示す図である。
符号の説明
D−MCA:データメモリセルアレイ P−MCA:パリティメモリセルアレイ
25:データバス,パリティバス 26:ECC演算回路
29:データ入力端子 31:データ出力端子

Claims (10)

  1. 誤り訂正機能を有する半導体メモリ装置において,
    複数のメモリセルを有し,ワードの選択に応答して2のI乗ビット(Iは2以上の整数)のデータをデータバスに対して入出力するデータメモリセルアレイと,
    複数のメモリセルを有し,前記ワードの選択に応答して前記2のI乗ビットのデータに対応するビット数のパリティビットをパリティバスに対して入出力するパリティメモリセルアレイと,
    データ入出力端子と,
    前記データ入出力端子から入力される2のI乗ビットの書込データから,前記パリティビットを生成して,前記パリティバスに出力するパリティ生成回路と,
    前記データメモリセルアレイから前記データバスに読み出される2のI乗ビットの読み出しデータと前記パリティメモリセルアレイから前記パリティバスに読み出されるパリティビットとから,前記読み出されたデータの誤りビット位置を示すシンドロームビットを生成するシンドローム生成回路と,
    前記シンドロームビットに基づいて前記読み出しデータの誤りを訂正する誤り訂正回路とを有し,
    前記パリティ生成回路及びシンドローム生成回路が,2のI乗ビットのデータとI+1ビットのパリティビットとからなる第1のECCと,2のI−J乗ビット(I>J,Jは1以上の整数)のデータとI−J+1ビットのパリティビットとを2のJ乗グループ含む第2のECCとのいずれかに切り替え可能に構成されていることを特徴とする半導体メモリ装置。
  2. 請求項1において,
    前記パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
    前記XOR回路群は,
    前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データからI+1ビットのパリティビットを生成し,読み出し時において,2のI乗ビットの読み出しデータとI+1ビットの読み出しパリティビットとから前記シンドロームビットを生成し,
    前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データからI−J+1ビットのパリティビットを2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータとI−J+1ビットの読み出しパリティビットとから前記シンドロームビットを2のJ乗グループ生成し,
    前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチと,前記生成されたパリティビットまたはシンドロームビットの出力を切り替える出力スイッチとを有することを特徴とする半導体メモリ装置。
  3. 請求項1において,
    前記パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
    前記XOR回路群は,
    前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データのうち選択されたビットのXORを前記I+1ビットのパリティビットとして生成し,読み出し時において,2のI乗ビットの読み出しデータのうち選択されたビットと前記読み出しパリティビットとのXORを前記シンドロームビットとして生成し,
    前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データのうち選択されたビットのXORを前記I−J+1ビットのパリティビットとして2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータのうち選択されたビットと前記読み出しパリティビットとのXORを前記シンドロームビットとして2のJ乗グループ生成し,
    前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチと,前記生成されたパリティビットまたはシンドロームビットの出力を切り替える出力スイッチとを有することを特徴とする半導体メモリ装置。
  4. 請求項2または3において,
    前記XOR回路群は,I+1ビットのパリティビットまたはシンドロームビットの各ビットをそれぞれ生成するI+1個のXOR回路を有し,
    前記第1のECCに切り替えられた場合は,当該I+1個のXOR回路からI+1ビットのパリティビットまたはシンドロームビットが出力され,
    前記第2のECCに切り替えられた場合は,前記I−J+1個のXOR回路からI−J+1ビットのパリティビットまたはシンドロームビットが出力されることを特徴とする半導体メモリ装置。
  5. 請求項1において,
    さらに,前記パリティ生成回路及びシンドローム生成回路の切り替えを制御する切り替え制御信号を生成する切り替え制御部を有し,
    試験時において,前記切り替え制御信号を前記第1または第2のECCに対応する信号に切り替え可能であることを特徴とする半導体メモリ装置。
  6. 請求項1において,
    前記ワードの選択に応答して前記パリティメモリセルアレイに入出力されるパリティビットが,
    前記第1のECCに切り替えられた場合はI+1ビットのパリティビットであり,前記第2のECCに切り替えられた場合はI−J+1ビットのパリティビットを2のJ乗グループ有するパリティビットである
    ことを特徴とする半導体メモリ装置。
  7. 請求項6において,
    前記データメモリセルアレイとパリティメモリセルアレイとは同じ数のワード線で構成され,前記ワード線の選択に応答して,選択されたワード線に対応するデータとパリティビットとが書込または読み出しされることを特徴とする半導体メモリ装置。
  8. 請求項6において,
    前記パリティメモリセルアレイが,前記第1のECCに切り替えられた場合は第1の容量を有し,前記第2のECCに切り替えられた場合は前記第1の容量より大きい第2の容量を有することを特徴とする半導体メモリ装置。
  9. 誤り訂正機能を有する半導体メモリ装置において,
    複数のメモリセルを有し,ワードの選択に応答して2のI乗ビット(Iは2以上の整数)のデータをデータバスに入出力するデータメモリセルアレイと,
    複数のメモリセルを有し,前記ワードの選択に応答して前記2のI乗ビットのデータに対応するビット数のパリティビットをパリティバスに入出力するパリティメモリセルアレイと,
    データ入出力端子と,
    前記データ入出力端子から入力される2のI乗ビットの書込データから,前記パリティビットを生成して,前記パリティバスに出力する入力側パリティ生成回路と,
    前記データメモリセルアレイから前記データバスに読み出される2のI乗ビットの読み出しデータから,前記パリティビットを生成する出力側パリティ生成回路と,
    前記出力側パリティ生成回路が生成したパリティビットと前記パリティメモリセルアレイから前記パリティバスに読み出されるパリティビットとから,前記読み出されたデータの誤りビット位置を示すシンドロームビットを生成するシンドローム生成回路と,
    前記シンドロームビットに基づいて前記読み出しデータの誤りを訂正する誤り訂正回路とを有し,
    前記入力側パリティ生成回路と出力側パリティビット生成回路とシンドローム生成回路とが,2のI乗ビットのデータとそれに対応するビット数のパリティビットとからなる第1のECCと,2のI−J乗ビット(I>J,Jは1以上の整数)のデータとそれに対応するビット数のパリティビットとを2のJ乗グループ含む第2のECCとのいずれかに切り替え可能に構成されていることを特徴とする半導体メモリ装置。
  10. 請求項9において,
    前記入力側及び出力側パリティ生成回路とシンドローム生成回路とが,共通のXOR回路群で構成され,
    前記XOR回路群は,
    前記第1のECCに切り替えられた場合は,書き込み時において,2のI乗ビットの書込データからそれに対応するビット数のパリティビットを生成し,読み出し時において,2のI乗ビットの読み出しデータとそれに対応する読み出しパリティビットとから前記シンドロームビットを生成し,
    前記第2のECCに切り替えられた場合は,書き込み時において,2のI−J乗ビットの書込データからそれに対応するビット数のパリティビットを2のJ乗グループ生成し,読み出し時において,2のI−J乗ビットの読み出しデータとそれに対応する読み出しパリティビットとから前記シンドロームビットを2のJ乗グループ生成し,
    前記XOR回路群は,切り替え制御信号に応答して,前記読み出しパリティビットの入力を切り替える入力スイッチを有することを特徴とする半導体メモリ装置。
JP2006214080A 2006-08-07 2006-08-07 Eccのコード長が変更可能な半導体メモリ装置 Expired - Fee Related JP4946249B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006214080A JP4946249B2 (ja) 2006-08-07 2006-08-07 Eccのコード長が変更可能な半導体メモリ装置
US11/878,867 US8001450B2 (en) 2006-08-07 2007-07-27 Semiconductor memory device capable of changing ECC code length
KR1020070078458A KR100894464B1 (ko) 2006-08-07 2007-08-06 Ecc의 코드 길이를 변경할 수 있는 반도체 메모리 장치
CN2007101526404A CN101123123B (zh) 2006-08-07 2007-08-06 能够改变纠错码码长的半导体存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006214080A JP4946249B2 (ja) 2006-08-07 2006-08-07 Eccのコード長が変更可能な半導体メモリ装置

Publications (2)

Publication Number Publication Date
JP2008041171A JP2008041171A (ja) 2008-02-21
JP4946249B2 true JP4946249B2 (ja) 2012-06-06

Family

ID=39030686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006214080A Expired - Fee Related JP4946249B2 (ja) 2006-08-07 2006-08-07 Eccのコード長が変更可能な半導体メモリ装置

Country Status (4)

Country Link
US (1) US8001450B2 (ja)
JP (1) JP4946249B2 (ja)
KR (1) KR100894464B1 (ja)
CN (1) CN101123123B (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008041123A (ja) * 2006-08-01 2008-02-21 Toshiba Corp 半導体記憶装置
KR20110050404A (ko) 2008-05-16 2011-05-13 퓨전-아이오, 인크. 결함 있는 데이터 저장소를 검출하고 교체하는 장치, 시스템 및 프로그램 제품
US8627169B2 (en) * 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
US8327223B2 (en) * 2009-02-05 2012-12-04 Infineon Technologies Ag System and method for constructing multi-write error correcting code
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8327249B2 (en) * 2009-08-20 2012-12-04 Broadcom Corporation Soft error rate protection for memories
JP5353681B2 (ja) * 2009-12-22 2013-11-27 富士通セミコンダクター株式会社 メモリインターフェース回路
JP5343921B2 (ja) * 2010-05-07 2013-11-13 富士通セミコンダクター株式会社 半導体メモリ、システムおよび半導体メモリの製造方法
JP5682253B2 (ja) * 2010-11-22 2015-03-11 富士通株式会社 プログラムおよび通信装置
KR20130021633A (ko) * 2011-08-23 2013-03-06 삼성전자주식회사 오류정정부호를 이용한 데이터의 은닉과 검출 방법 및 장치
US8954825B2 (en) * 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
MX345372B (es) * 2012-11-07 2017-01-27 Koninklijke Philips Nv Dispositivo de computo que almacena tablas de consulta para calculo de una funcion.
US11416340B1 (en) * 2013-01-04 2022-08-16 Pure Storage, Inc. Storage system with multiple storage types in a vast storage network
KR101862379B1 (ko) 2013-04-19 2018-07-05 삼성전자주식회사 Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치
KR101524535B1 (ko) * 2013-05-28 2015-06-01 중소기업은행 Ecc 내장 메모리의 메인 어레이 및 ecc 셀-어레이 테스트 방법
KR20150028118A (ko) * 2013-09-05 2015-03-13 삼성전자주식회사 메모리 장치의 동작 방법, 이를 이용한 데이터 기입 방법 및 데이터 독출 방법
US9201728B2 (en) 2013-09-12 2015-12-01 Seagate Technology Llc Memory device with variable code rate
KR102133209B1 (ko) * 2013-12-13 2020-07-14 에스케이하이닉스 주식회사 데이터 복호화 장치 및 데이터 복호화 방법
JP6212396B2 (ja) * 2014-01-08 2017-10-11 ルネサスエレクトロニクス株式会社 データ処理装置
KR102204390B1 (ko) 2014-09-12 2021-01-18 삼성전자주식회사 빠른 불량 셀 구제 동작의 메모리 장치
KR20170096079A (ko) * 2016-02-15 2017-08-23 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN107168816B (zh) * 2016-03-07 2021-03-23 北京忆恒创源科技有限公司 Ecc帧长调整方法及其装置
US10613924B2 (en) * 2017-05-17 2020-04-07 Rambus Inc. Energy-efficient error-correction-detection storage
US10229052B2 (en) 2017-05-31 2019-03-12 Seagate Technology Llc Reverse map logging in physical media
US10284231B2 (en) 2017-06-01 2019-05-07 Seagate Technology, Llc Adaptive outer code for consistent overprovisioning (OP) level
US10276259B2 (en) 2017-07-05 2019-04-30 Winbond Electronics Corp. Memory testing method and memory apparatus therefor
US10289486B2 (en) * 2017-07-13 2019-05-14 Omnivision Technologies, Inc. Memory with pattern oriented error correction code
US10621035B2 (en) * 2017-10-18 2020-04-14 Intel Corporation Techniques for correcting data errors in memory devices
WO2019090657A1 (zh) * 2017-11-10 2019-05-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
CN108021467B (zh) * 2017-11-10 2021-07-16 深圳先进技术研究院 一种存储器容错保护方法、装置、设备及存储介质
US10691533B2 (en) * 2017-12-12 2020-06-23 Micron Technology, Inc. Error correction code scrub scheme
US10644727B2 (en) 2018-01-11 2020-05-05 Western Digital Technologies, Inc. Code rate switching mechanism for flash memory
KR20190086936A (ko) * 2018-01-15 2019-07-24 삼성전자주식회사 메모리 장치
US11138069B2 (en) 2018-06-11 2021-10-05 Seagate Technology, Llc Providing additional parity for non-standard sized parity data sets
US10896002B2 (en) 2018-06-29 2021-01-19 Seagate Technology Llc Reverse directory structure in a garbage collection unit (GCU)
TWI705453B (zh) * 2019-07-05 2020-09-21 華邦電子股份有限公司 半導體記憶體裝置
CN112289365B (zh) * 2019-07-24 2024-02-23 华邦电子股份有限公司 半导体存储器装置
US11010243B2 (en) * 2019-09-09 2021-05-18 Winbond Electronics Corp. Memory apparatus with error bit correction in data reading period
US11587637B1 (en) * 2021-08-19 2023-02-21 Micron Technology, Inc. Apparatuses, systems, and methods for error correction of selected bit pairs
US11934263B2 (en) * 2022-03-29 2024-03-19 Ampere Computing Llc Parity protected memory blocks merged with error correction code (ECC) protected blocks in a codeword for increased memory utilization

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3836957A (en) 1973-06-26 1974-09-17 Ibm Data storage system with deferred error detection
US4404673A (en) 1981-02-09 1983-09-13 National Semiconductor Corporation Error correcting network
JPS61338A (ja) * 1984-05-16 1986-01-06 株式会社 モルテン 部分床義歯
JPS62116019A (ja) * 1985-11-15 1987-05-27 Nippon Hoso Kyokai <Nhk> 符号化および復号処理のためのディジタル共用回路
JPS62173821A (ja) * 1986-01-27 1987-07-30 Sony Corp 積符号の符号化若しくは復号化方法
JP2881773B2 (ja) * 1988-07-30 1999-04-12 ソニー株式会社 誤り訂正装置
JPH04213734A (ja) * 1990-12-12 1992-08-04 Nec Ic Microcomput Syst Ltd 半導体集積回路
JPH0799454A (ja) * 1993-09-28 1995-04-11 Sharp Corp 回路共用型誤り訂正符号処理回路
JP3693728B2 (ja) * 1995-12-20 2005-09-07 富士通株式会社 通信制御装置
JP2005018983A (ja) * 1996-12-03 2005-01-20 Sony Corp 半導体不揮発性記憶装置およびメモリシステム
JPH11125662A (ja) 1997-10-23 1999-05-11 Oki Electric Ind Co Ltd 半導体集積回路及びフルスキャン実行方法
KR100322542B1 (ko) 1999-08-11 2002-03-18 윤종용 파이프 라인상의 고속동작을 구현하는 ecc 회로를 구비하는동기식 반도체 메모리장치 및 이 동기식 반도체 메모리장치의 에러 체크 및 정정방법
US6799287B1 (en) * 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes
JP3981281B2 (ja) 2002-02-14 2007-09-26 松下電器産業株式会社 半導体集積回路の設計方法及びテスト方法
JP2005044386A (ja) 2003-07-22 2005-02-17 Renesas Technology Corp 半導体記憶装置及びマイクロコンピュータ
US7810017B2 (en) * 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment

Also Published As

Publication number Publication date
US8001450B2 (en) 2011-08-16
KR100894464B1 (ko) 2009-04-22
CN101123123B (zh) 2012-03-07
CN101123123A (zh) 2008-02-13
JP2008041171A (ja) 2008-02-21
KR20080013755A (ko) 2008-02-13
US20080034270A1 (en) 2008-02-07

Similar Documents

Publication Publication Date Title
JP4946249B2 (ja) Eccのコード長が変更可能な半導体メモリ装置
US7096406B2 (en) Memory controller for multilevel cell memory
US20090089646A1 (en) Semiconductor storage device
US8091010B2 (en) Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
KR100455792B1 (ko) Ecc 방식 에러 복구 회로를 갖는 반도체 메모리 장치
US7107507B2 (en) Magnetoresistive solid-state storage device and data storage methods for use therewith
US7408824B2 (en) Ferroelectric memory with spare memory cell array and ECC circuit
JPH071640B2 (ja) 半導体記憶装置の欠陥救済装置
TWI466127B (zh) 記憶體裝置控制器以及存取記憶體方法
US20030086306A1 (en) Semiconductor memory device equipped with error correction circuit
US20050138537A1 (en) Method and system to encode and decode wide data words
US20140281794A1 (en) Error correction circuit
CN110309014B (zh) 一种全行编解码sram编码器数据读写结构及数据读写方法
JPH01158698A (ja) 半導体メモリ
JP5283989B2 (ja) メモリシステム及びメモリアクセス方法
JP2738363B2 (ja) 連想記憶装置
JP5617776B2 (ja) メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
US11442810B2 (en) Memory and operation method of memory
US20020174397A1 (en) Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
JP2000132995A (ja) 半導体装置
JP4099844B2 (ja) メモリ装置
US8856613B2 (en) Semiconductor storage device, memory control device, and control method of semiconductor memory
US20240177793A1 (en) Memory device including error correction device
US12100466B2 (en) Memory device including error correction device
JPH11212876A (ja) 符号化方法およびそれを利用したメモリ装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120220

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees