JP3600561B2 - 誤り訂正検出回路と半導体記憶装置 - Google Patents
誤り訂正検出回路と半導体記憶装置 Download PDFInfo
- Publication number
- JP3600561B2 JP3600561B2 JP2001249333A JP2001249333A JP3600561B2 JP 3600561 B2 JP3600561 B2 JP 3600561B2 JP 2001249333 A JP2001249333 A JP 2001249333A JP 2001249333 A JP2001249333 A JP 2001249333A JP 3600561 B2 JP3600561 B2 JP 3600561B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- byte
- error
- circuit
- error correction
- 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 - Lifetime
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Description
【発明の属する技術分野】
本発明は、ビットデータに対するビット誤りを検出したり訂正したりする誤り訂正検出回路と、これを用いた半導体記憶装置に関する。
【0002】
【従来の技術】
従来、誤り訂正検出の方式としては、行列方式(IEEE Journal of Solid−State Circuit,vol.24,pp50,1989)と多項式方式(Peterson and Weldon 著のError−Correcting Codes. second edition)の二つが知られている。図23は、これら両方式における、深さ512ビット×幅8ビットのデータに対する、1ビット誤り訂正符号の構成例である。
【0003】
従来の半導体記憶装置では、誤り訂正処理時間が第一優先とされているため、データ入出力の際にデータ書き込みにおける誤り検査ビットの発生やデータ読出し時における誤り訂正に時間ロスの少ない行列方式(a)が用いられてきた。このとき、8ビットデータに対して冗長な検査ビットが4ビット必要である、即ち、メモリ領域は50%増であった。一方、多項式方式(b)の場合には、512ビットデータに対して検査ビットは10ビットでよく、冗長度は2%程度である。但し、誤りを訂正するのに522ビット長の遅延時間がかかってしまう。
【0004】
誤り訂正符号を付加しない時のメモリの信頼性が要求されるそれより悪く、かつ512ビットデータ中の1ビット誤りを訂正する符号を付加する時のメモリの信頼性が要求されるそれより良くなり、さらに誤り訂正のための処理時間よりメモリ領域の増加率を優先するならば、行列方式に比べ多項式方式が適当である。しかしながら、誤り訂正回路の規模では逆に、多項式方式の方が行列方式より大きくなることがある。というのは、多項式方式の場合、誤り訂正回路は主に、検査データ部を含むデータの深さに等しいシフトレジスタ(上の例では522ビット×8組)から構成される遅延回路と、検査ビット数に等しいシフトレジスタ(上の例では10ビット×8組)からなるシンドローム計算回路で構成されている、一方、行列方式では5入力排他的論理和が4組とこれらの出力のロジックのみで構成されるからである。
【0005】
以上から分かるように、多項式方式は行列方式に比べメモリ領域の増加率を極めて小さくできるものの、誤り訂正回路規模は逆に大きくなってしまうため、メモリチップの増加率を抑える効果は小さかった。
【0006】
また、行列方式では8ビット並列に処理する必要があるため、その誤り訂正回路は、メモリセルとビット線制御回路の間若しくは全IO線が集まっているところに配置しなければならず、レイアウト上の自由度が小さかった。
【0007】
以下、従来の誤り訂正検出回路の構成及び問題点を具体的説明する。
【0008】
(従来例1)
図24は、第1の従来例に係わる誤り訂正検出回路を示すブロック図である。を表す。これは、前述した文献(Peterson and Weidon 著のError−Correcting Codes. Second Edition)に開示されている。
【0009】
入力データは、シンドローム計算回路(検査ビット発生回路)1と遅延回路4に入力される。入力データに誤りがない場合シンドロームは零、誤りがある場合シンドロームは非零のある値を持ち、その値は誤りの位置と大きさを計算する誤り位置大きさ計算回路2に入力される。
【0010】
入力されたシンドロームが零の場合、誤り位置大きさ計算回路2は零を出力し、遅延回路4に入力されたデータは、変更されずに誤り訂正回路3を通ってそのまま出力される。シンドロームが非零のある値を持つときは、誤り位置大きさ計算回路2によって誤りの位置と大きさが計算され、遅延回路4に入力されたデータは、誤り訂正回路3で誤りの訂正が行われて出力される。即ち、誤りのあるデータが出力されるときにのみ誤り訂正回路3による誤りの訂正が行われ、正しいデータが出力される。
【0011】
しかしながら、この種の構成にあっては次のような問題があった。即ち、遅延回路4は入力データと同じ長さのシフトレジスタから構成され、特に長い符号長の場合に誤り訂正回路全体に占める遅延回路4の割合が大きくなる。そしてこれが、誤り訂正回路規模増大の原因となっていた。
【0012】
(従来例2)
図25は、第2の従来例に係わる誤り訂正検出回路を示すブロック図である。これは、1バイトがbビットで構成された(2b −3)バイト以下の情報データのうち1バイトの誤りを訂正する、いわゆる1バイト誤り訂正符号に関する。単一バイト誤り訂正回路14は、入力された情報データから2バイトの検査データを作り(符号化)、かつ情報データと検査データから1バイトの誤りを訂正し(復号化)、正しい情報データを出力する。
【0013】
ところで、最大データ長は1バイトの大きさbによって(2b −3)に限定されるため、(2b −3)バイトよりも長い情報データを扱おうとする場合には、情報データを(2b −3)以下の長さのブロックに分けなければならない。そして、情報データを連続的に誤り訂正回路14に入力する場合では、図26に示すように、それぞれのブロックに対して単一バイト誤り訂正回路14が必要となる。このため、誤り訂正回路の規模が大きくなってしまうという問題があった。
【0014】
また、単一の誤り訂正回路14のみを有する場合では、ブロック化された情報データ毎に符号化・復号化するため、情報データを連続的に誤り訂正回路に入出力することができないという問題があった。
【0015】
(従来例3)
図27は、第3の従来例に係わる誤り訂正検出回路を備えた半導体記憶装置を示すブロック図である。この半導体記憶装置13は、電気的書き替え可能なメモリセルがマトリクス状に配置されたメモリセルアレイ6と、このメモリセルアレイ内のメモリセルのデータや書き替えデータを記憶するデータ回路8と、外部からの書き替えデータの入力とメモリセルの読み出しデータの出力を行う複数のデータ入出力バッファ12と、入力された書き替えデータから誤りの訂正や検出を行うための検査データを発生し、読み出しデータを出力する際に読み出しデータと検査データから読み出しデータの誤りの訂正や検出を行う誤り訂正検出回路11と、メモリセルのアドレスが入力され、カラムアドレスとロウアドレスを出力するアドレスバッファ10と、カラムアドレスをデコードし、データ回路8のデータを入出力を制御するカラムデコーダ9と、ロウアドレスをデコードするロウデコーダ7と、メモリセルのデータの書き替えと読み出しの制御信号を出力する書き込み読み出し制御回路5を備えている。
【0016】
このような半導体記憶装置13は、前述した文献(IEEE Jounal of Solid−Srate Circuits,vol.24,pp50,1989)に開示されている。本従来例では、符号化・復号化を行うための処理時間を最小にするために、誤り訂正符号は並列に処理される。この符号は、並列処理可能のため、データ入出力線毎の1ビット又は複数ビットの情報データとこの情報データから得られる検査データからなっている。
【0017】
情報データのビット数が2倍になる毎に検査データのビット数はおよそ1ビット多く必要になるので、情報データのビット数の増加とともに情報データのビット数に対する検査データのビット数の割合は減る。一方、符号化・復号化のための排他的論理和の数は、情報データのビット数におおよそ比例するので、情報データのビット数の増加とともに符号化・復号化回路の規模は大きくなる。従って、誤り訂正検出を行うための冗長なメモリセルの面積と符号化・復号化回路面積の和の最小値があり、それを与える情報データのビット数の最適値がある。
【0018】
一方、誤り訂正検出回路には、排他的論理和で実現される上記のタイプ以外にシフトレジスタ列で実現されるタイプがある。後者の場合には、検査データのビット数に等しい数のシフトレジスタ列と情報データのビット数と検査データのビット数の和に等しい数のシフトレジスタ列で実現される遅延回路が必要である。従って、必要なシフトレジスタの数は、情報データのビット数が2倍になる毎におよそ2ビット増える。このため、情報データのビット数の増加とともに単位情報データ当りの符号化・復号化回路の規模は減少するものの、特に長い符号長の場合に誤り訂正回路全体に占める遅延回路の割合が大きくなり、これが誤り訂正回路規模増大の原因となっていた。さらに、この誤り訂正検出回路を用いる場合には、復号化に情報データのビット数と検査データのビット数の和に比例した遅延時間が必要となってしまうという問題があった。
【0019】
また、図28に本従来例におけるメモリセルアレイ6と各回路8,11,12及び入出力パッド100等のレイアウトを示す。この図から分かるように、誤り訂正検出回路11はメモリセルアレイ6とデータ回路8の間若しくは全IO線が集まっているところに配置される必要があるため、これらのレイアウト上の柔軟性がないという問題があった。
【0020】
また、バースト誤りが発生したときにそのデータが符号語となり、バースト誤りを検出できない場合があった。即ち、バースト誤りが発生したときにそのデータの“1”が全て“0”になり、全“0”となってしまうと、この全“0”データは誤りがないと判定されてしまうためバースト誤りを知ることはできない。
【0021】
【発明が解決しようとする課題】
このように従来、多項式方式の誤り訂正検出回路においては、長い符号長の場合に誤り訂正回路全体に占める遅延回路の割合が大きくなり、これが誤り訂正回路規模増大の原因となっていた。
【0022】
また、単一のバイト誤り訂正回路しか有しない場合は情報データを連続的に入出力することができず、情報データを連続的に誤り訂正回路に入力するには、それぞれのブロックに対して単一バイト誤り訂正回路が必要となり、誤り訂正回路の規模が大きくなってしまう。
【0023】
また、シフトレジスタ列で実現されるタイプの場合には、特に長い符号長の場合に誤り訂正回路全体に占める遅延回路の割合が大きくなり、これが誤り訂正回路規模増大の原因となっていた。
【0024】
また、誤り訂正検出回路はメモリセルアレイとデータ回路の間若しくは全IO線が集まっているところに配置される必要があるため、これらのレイアウト上の柔軟性がないという問題があった。
【0025】
本発明は、上記事情を考慮してなされたもので、その目的とするところは、情報データを連続的に誤り訂正回路に入出力する場合であっても誤り訂正回路の規模を小さくできる誤り訂正検出回路を提供することにある。
【0026】
また、本発明の他の目的は、誤り訂正検出回路のレイアウトの自由度を増すことができる半導体記憶装置を提供することにある。
【0027】
【課題を解決するための手段】
(構成)
上記課題を解決するために本発明は、次のような構成を採用している。
【0028】
即ち本発明は、ROM等の情報データを連続的に入出力する誤り訂正検出回路において、1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする。
【0029】
また本発明は、EEPROM等の情報データを連続的に入出力する誤り訂正検出回路において、1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するための検査バイトを発生する検査バイト発生回路と、前記バイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする。
【0030】
また本発明は、上記の誤り訂正検出回路をメモリセルアレイを有する半導体装置に用いたことを特徴とする。
【0031】
(作用)
本発明によれば、1バイト誤り検出符号において、1バイトを構成するビット数を並列に入出力される単位から複数単位とすることによって、符号長を大きくすることが可能となる。従って、長い情報データであってもこれをブロック分けする必要がなくなり、誤り訂正回路の規模を小さくできる。
【0032】
また本発明によれば、各データ(入)出力バッファ毎又は複数のデータ(入)出力バッファ毎に、誤り訂正回路をデータ(入)出力バッファ付近に設けることによって、レイアウトの自由度を増すことができる。さらに、バースト誤りが検出できる位置で符号化復号化を行うことにより、データ書き替え時のバースト誤り発生を検出できる。
【0033】
【発明の実施の形態】
以下、本発明の詳細を図示の実施形態によって説明する。
【0034】
(第1の実施形態)
図1は、本発明の第1の実施例に係わる多項式方式の誤り訂正検出回路を示すブロック図である。基本的な構成は前記図24に示した回路と同じであるが、本実施例では遅延回路を省略し、その代わりに入力側にスイッチS1,S2を設けている。そして、入力データを2度繰り返すようにしている。
【0035】
第1の入力時には、スイッチS1はオンし、スイッチS2はオフする。第1のデータが全て入力されると同時にシンドローム計算回路1によるシンドローム計算が終了し、誤り位置大きさ計算の実行が開始される。このとき、スイッチS2をオンし、スイッチS1をオフする。従って第2の入力データは、誤り訂正回路3に入力される。
【0036】
このようにして、従来に比べ誤り訂正回路の回路規模を縮小、特に長い符号長の場合に誤り訂正回路の回路規模を大幅に縮小できるだけでなく、遅延時間の増加なしに正しいデータが出力される。なお、入力対象として用いるメモリがNAND型EEPROMのように符号長に等しい数のデータラッチ回路を有するものでは、入力データを2度繰り返すために新たに回路を付加する必要はない。
【0037】
(第2の実施形態)
図2は、本発明の第2の実施例に係わる多項式方式の誤り訂正検出回路を示すブロック図である。符号長拡大回路(符号長拡大回路)15は、連続して入力されたm個のbビット/バイトを1個のmbビット/バイトにして出力する。この出力は単一mbビット/バイト誤り訂正回路16に入力される。この誤り訂正回路16は、単一のmbビット/バイト誤りを訂正する。
【0038】
この場合には、単一の誤り訂正回路16に対して最大データ長をm×(2mb−3)バイト(1バイト=bビット)とできるばかりでなく、必要な検査データを2mバイト(1バイト=bビット)と小さくできる。
【0039】
従来では、最大データ長をm×(2mb−3)バイト(1バイト=bビット)としようとする場合、情報データを連続的に誤り訂正回路に入力する場合、単一バイト誤り訂正回路14はm×(2mb−3)/(2b−3)個、検査データは2m×(2mb−3)/(2b−3)個必要であった(図26)。下記の(表1)にこれらの数字をまとめる。
【0040】
【表1】
【0041】
(第3の実施形態)
図3は本発明の第3の実施例に係わる半導体記憶装置を示すブロック図で、図4は同装置におけるレイアウト図である。前記図27と比較して分かるように本実施例は、メモリセルアレイ6とデータ回路8との間に誤り訂正回路11を設けるのではなく、データ入出力バッファ12の1つ毎に誤り訂正検出回路11を設けている。誤り訂正検出回路11は、入力された書き替えデータから誤りの訂正又は検出を行うための検査データを発生し、かつ読み出しデータを出力する際に読み出しデータと検査データから読み出しデータの誤りの訂正又は検出を行うものである。
【0042】
本実施例では、2048ビット構成の情報データは、8個のデータ入出力パッドを通じて並列に入出力される。即ち、各データ入出力パッド当り256ビットの情報データが入出力される。ここで、情報データ256ビット中の1ビット誤りを訂正し、偶数ビット誤りを検出する拡大ハミング符号(266、256)が用いられる。
【0043】
図5〜図7は、本実施例における符号化・復号化回路を表し、図8、図9は、それぞれ書き込み時、読み出し時の制御信号のタイミングを表す。
【0044】
初めに、書き込み時の説明をする。
【0045】
信号DINがハイの間データ入出力パッドから書き込み情報データDINiに(i=1、…、8)が入力され、図5(a)(b)の符号化回路に入力される。このとき、信号DINOUTBはローとされ、DINSi=DINiがデータ回路8に送られる。同時に、信号SLINBはロー、信号DIVはハイとされているため、書き込み情報データDINiはシフトレジスタSL1とシフトレジスタ列SL2、…、10に入力され、検査ビット生成のための計算が実行される。シフトレジスタのクロックは、入力データDINiのクロックと同期される。信号SLOUT1B、SLOUT2Bはハイとされているので、シフトレジスタSL1〜10の出力はDINSiに出力されない。
【0046】
書き込み情報データDINiの入力が終了すると、信号DINOUTBはハイ、信号DIVはロー、信号SLINBはハイ、信号SLOUT1Bはローに変わり、シフトレジスタSL1のクロックはストップする。このとき、シフトレジスタ列SL2、…、10の状態は9個の検査ビットを表し、入力はローに固定されることによって、CINSiに出力される。その後、信号SLOUT1Bはハイ、信号SLOUT2Bはローにされ、1個の検査ビットであるシフトレジスタSL1の状態がDINSiに出力される。信号DINSがローになり、信号SLOUT2Bがハイになるとデータ回路8への入力が終了する。
【0047】
このようにして、データ回路8に入力される書き込みデータは256ビット情報データと10ビット検査データとなる。
【0048】
その後、書き込みデータ2048ビット(=256ビット×8組)は、信号PRGがハイの間にメモリセルに書き込まれる。
【0049】
さらにその後、信号BEREADがハイの間にバースト誤りがあったか否かの検出を行う。信号BEREADがハイになると、書き込んだデータをDINSiに出力された順番にDINiに読み出す。このとき、信号DIVはハイ、信号SLINBはローとされ、シフトレジスタSL1とシフトレジスタ列SL2、…、10に入力され、シンドロームを計算する。
【0050】
読み出しデータに誤りがある場合、シフトレジスタの状態L1i〜L10iのうち一つ以上がハイとなる。従って、シンドローム計算が終了した後に信号DETEがハイになると信号ERDETiがハイとなる。そして、全てのiに対して信号ERDETiがハイとなった場合に、バースト誤りが発生したことを信号BSTERRが伝える。
【0051】
一般に、誤り訂正検出回路の入力データは、書き込み入力データとその反転データのいずれでも可能であるが、ここではバースト誤りが発生したときにそのデータが符号語とならないようなデータとしている。即ち、バースト誤りが発生したときにそのデータの“1”が全て“0”になり、全“0”となってしまうと、この全“0”データは誤りがないと判定されてしまうためバースト誤りを知ることはできない。しかしながら、バースト誤りが発生したときにそのデータの“0”が全て“1”になり、全“1”となるようにしておけば誤りが検出されるためバースト誤りを知ることが可能となる。
【0052】
次に、読み出し時の説明をする。
【0053】
読み出しは2サイクル、即ちシンドロームの計算を行う第1サイクル(信号ECCREADがハイである期間)と誤り訂正をしながら誤りが訂正された正しいデータを外部に出力するための第2のサイクル(信号DATAOUTがハイである期間)とから構成される。第1サイクルでは信号DIVがハイ、信号SLINBはローとなり、読み出されたデータはDINiに出力され、シフトレジスタ列に入力される。全データが入力され終わると、誤り検出のための信号DETEがハイにされる。このとき、誤りがあった場合にはシフトレジスタの状態は少なくとも一つはハイになるため、誤りが検出されたことを知らせる信号ERDETiがハイとなる。このとき、さらに偶数個の誤りがあった場合には、それを知らせる信号2ERDETiがハイになる。これで第1のサイクルは終了する。
【0054】
続いて、第2サイクルでは信号COREがハイとなり、誤り訂正をしながら誤りが訂正された正しいデータを外部に出力していく。データはあるクロックに同期して出力されていくが、それと同時に入力を出力に等しくされたシフトレジスタ列の状態は、信号SLINBをハイとしたままそのクロックに同期してシフトしていく。誤りの訂正は、シフトレジスタ列がある特定の状態になるときに出力されるデータを反転することによって行われる。誤りの訂正が行われたとき、信号CORRECTiはハイとなる。しかし、もし誤りが検出されたことを知らせる信号ERDETiがハイとなったにも拘らず、信号CORRECTiがローのままである、即ち誤りの訂正が行われなかった場合には、信号NOTCORiがハイになる。
【0055】
このようにして、各データ入出力バッファ毎に誤り訂正検出回路を設け、復号すべき入力データを2サイクル繰り返し読み出す方法によって、従来に比べ遅延時間なしに復号を行うことができ、遅延回路を省略できる。従って、特に長い符号長の場合に誤り訂正回路の回路規模を縮小できる。
【0056】
さらに、本実施例の場合、図3や図4に示されるように誤り訂正回路11は、メモリセルアレイ6とデータ回路8の間に配置する必要がないため、周辺部、即ち各データ入出力バッファ12の付近に配置することができ、レイアウト上の柔軟度を増すことが可能となる。
【0057】
(第4の実施形態)
図10は本発明の第4の実施例に係わる半導体記憶装置を示すブロック図で、図11は同装置におけるレイアウト図である。本実施例が先に説明した第3の実施例と異なる点は、データ入出力バッファ12の複数個(2つ)毎に誤り訂正検出回路11を設けたことである。
【0058】
本実施例では、2048ビット構成の情報データは、8個のデータ入出力ピンIOi(i=1、…、8)を通じて並列に入出力される、即ち、各データ入出力ピン当り256ビットの情報データが入出力される。レイアウト上、データ入出力ピンはチップの左端に4個(IO1〜4)、右端に4個(IO5〜8)、それぞれ配置されているものとする。ここで、8個のデータ入出力ピンを2組(IO1〜4、IO5〜8)に分ける。各組の各データは、あるクロックに同期して並列に入出力されるが、第1クロックで入出力される4ビットと第2クロックで入出力される4ビットで1バイト(=8ビット)を構成し、以下同様に奇数番目のクロックで入出力される4ビットと偶数番目のクロックで入出力される4ビットで1バイトを構成していく(図19(a)(b))。
【0059】
このようにして、各組は、128バイト=1024ビットの情報データで構成される。本実施例で用いられる誤り訂正符号は、128バイト中の1バイト誤り訂正する、リードソロモン符号(130、128)である。
【0060】
図12〜図20に本実施例に用いた誤り訂正回路の具体的な回路構成を示し、図21,図22にはそれぞれ書き込み、読み出し時の制御信号のタイミング図を示す。
【0061】
初めに、書き込み時の説明をする。
【0062】
信号DINがハイの間データ入出力ピンから書き込み情報データDINm−i(m=1、2、i=1、…、8)が入力され、図12(a)〜(c)の符号化回路に入力される。このとき、信号DINOUTBはローとされ、DINSm−i=DINm−iがデータ回路8に送られる。同時に、信号DIVはハイとされているため、書き込み情報データDINm−iは8ビットシフトレジスタSL1に入力され、検査ビット生成のための計算が実行される。シフトレジスタのクロックは、入力データDINm−iのクロックと同期される。信号SLOUTBはハイとされているので、8ビットシフトレジスタSL2の出力SLOUTm−iはDINSm−iに出力されない。
【0063】
書き込み情報データDINm−iの入力が終了すると、信号DINOUTBはハイ、信号DIVはロー、信号SLOUTBはローに変わり、入力SLINm−iがローに固定されることによって、8ビットシフトレジスタSL1,2の状態がDINSm−iに出力される。その後、信号DINSがロー、信号SLOUTBがハイになると書き込みデータの入力が終了する。
【0064】
このようにして、データ回路8に入力される書き込みデータは、128バイト情報データと2バイト検査データとで構成される2つの符号語となる。
【0065】
その後、この書き込みデータは、信号PRGがハイの間にメモリセルに書き込まれる。
【0066】
さらにその後、信号BEREADがハイの間にバースト誤りがあったか否かの検出を行う。信号BEREADがハイになると、書き込んだデータをDINSm−iに出力された順番にDOUTm−iに読み出す。このとき、信号CCRBはローとされ、シフトレジスタSL3,4に入力され、シンドロームを計算する。読み出しデータに誤りがある場合、S0 m−iのうち一つ以上がハイとなる。従って、シンドローム計算が終了した後に信号DETEがハイになると信号ERDETmBがハイとなる。そして、m=1、2に対して信号ERDETmBがともにローとなった場合に、バースト誤りが発生したことを信号BSTERRが伝える。
【0067】
一般に、誤り訂正検出回路の入力データは、書き込み入力データとその反転データのいずれでも可能であるが、ここではバースト誤りが発生したときにそのデータが符号語とならないようなデータとしている。即ち、バースト誤りが発生したときにそのデータの“1”が全て“0”になり、前記“0”となってしまうと、この全“0”データは誤りがないと判定されてしまうためバースト誤りを知ることはできない。しかしながら、バースト誤りが発生したときにそのデータの“0”が全て“1”になり、全“1”となるようにしておけば誤りが検出されるためバースト誤りを知ることが可能となる。
【0068】
次に、読み出し時の説明をする。
【0069】
読み出しは2サイクル、即ち、シンドロームの計算を行う第1サイクル(信号ECCREADがハイである期間)と誤り訂正をしながら誤りが訂正された正しいデータを外部に出力するための第2のサイクル(信号DATAOUTがハイである期間)とから構成される。第1サイクルでは信号ECCRBがローとなり、読み出されたデータはDOUTm−iに出力され、8ビットシフトレジスタSL3,4,8,9に入力される。全データが入力され終わると、誤り検出のための信号DETEがハイにされる。このとき、誤りがあった場合にはシフトレジスタの状態は少なくとも一つはハイになるため、誤りが検出されたことを知らせる信号ERDETmBがローとなる。これで第1のサイクルは終了する。
【0070】
続いて、第2サイクルでは信号OUTEBがローとなり、誤り訂正をしながら誤りが訂正された正しいデータを外部に出力していく。データはあるクロックに同期して出力されていくが、それと同時に入力がローである8ビットシフトレシスタSL5,10の出力はそのクロックに同期してシフトし、フィードバックしていく。誤りの訂正は、8ビットシフトレジスタSL5,10の出力がシンドロームSm−iと一致するときに出力されるデータを反転することによって行われる。誤りの訂正が行われたとき、信号CORRECTiはハイとなる。しかし、もし、誤りが検出されたことを知らせる信号ERDETiがハイとなったにもかかわらず、信号CORRECTiがローのままである、即ち誤りの訂正が行われなかった場合には、信号NOTCORiがハイになる。
【0071】
このようにして、データ入出力バッファの組毎に誤り訂正検出回路を設け、復号すべき入力データを2サイクル繰り返し読み出す方法によって、従来に比べ遅延時間なしに復号を行うことができ、遅延回路を省略できる。従って、特に長符号長の場合に誤り訂正回路の回路規模を縮小できる。
【0072】
また、バイト当りのビット数を4ビットから8ビットに拡張することによって、最大符号長を拡大できる。
【0073】
さらに、本実施例の場合、図4や図5に示されるように誤り訂正回路11は、メモリセルアレイ6とデータ回路8の間に配置する必要がないため、周辺部、即ち各データ入出力バッファ12の付近に配置することができ、レイアウト上の柔軟度を増すことが可能となる。
【0074】
なお、本発明は上述した各実施例に限定されるものではなく、その要旨を逸脱しない範囲で、種々変形して実施することができる。
【0075】
【発明の効果】
以上詳述したように本発明によれば、1バイト誤り検出符号において、1バイトを構成するビット数を並列に入出力される単位から複数単位とすることによって、バイト長を大きくすることが可能となる。
【0076】
また、バースト誤りが検出できる位置で符号化復号化を行うことにより、データ書き替え時のバースト誤り発生を検出できる。さらに、各データ(入)出力バッファ毎又は複数のデータ(入)出力バッファ毎に、誤り訂正回路をデータ(入)出力バッファ付近に設けることによって、レイアウトの自由度を増すことができる。
【図面の簡単な説明】
【図1】第1の実施例に係わる多項式方式の誤り訂正検出回路を示すブロック図。
【図2】第2の実施例に係わる多項式方式の誤り訂正検出回路を示すブロック図。
【図3】第3の実施例に係わる半導体記憶装置を示すブロック図。
【図4】第3の実施例におけるメモリセルアレイと各回路及び入出力パッド等のレイアウト図。
【図5】第3の実施例装置における符号化・復号化回路を示す図。
【図6】第3の実施例装置における符号化・復号化回路を示す図。
【図7】第3の実施例装置における符号化・復号化回路を示す図。
【図8】第3の実施例装置における書き込み時、読み出し時の制御信号のタイミングを示す図。
【図9】第3の実施例装置における書き込み時、読み出し時の制御信号のタイミングを示す図。
【図10】第4の実施例に係わる半導体記憶装置を示すブロック図。
【図11】第4の実施例におけるメモリセルアレイと各回路及び入出力パッド等のレイアウト図。
【図12】誤り訂正回路の具体的な回路構成を示す図。
【図13】誤り訂正回路の具体的な回路構成を示す図。
【図14】誤り訂正回路の具体的な回路構成を示す図。
【図15】誤り訂正回路の具体的な回路構成を示す図。
【図16】誤り訂正回路の具体的な回路構成を示す図。
【図17】誤り訂正回路の具体的な回路構成を示す図。
【図18】誤り訂正回路の具体的な回路構成を示す図。
【図19】誤り訂正回路の具体的な回路構成を示す図。
【図20】誤り訂正回路の具体的な回路構成を示す図。
【図21】誤り訂正回路の具体的な回路構成を示す図。
【図22】誤り訂正回路の具体的な回路構成を示す図。
【図23】行列方式と多項式方式における1ビット誤り訂正符号の構成例を示す図。
【図24】第1の従来例に係わる誤り訂正検出回路を示すブロック図。
【図25】第2の従来例に係わる誤り訂正検出回路を示すブロック図。
【図26】第2の従来例において、複数の単一バイト誤り訂正回路を設けた例を示す図。
【図27】第3の従来例に係わる誤り訂正検出回路を備えた半導体記憶装置を示すブロック図。
【図28】第3の従来例におけるメモリセルアレイと各回路及び入出力パッド等のレイアウトを示す図。
【符号の説明】
1…シンドローム計算回路
2…誤り位置大きさ計算回路
3…誤り訂正回路
4…遅延回路
5…書き込み・読み出し制御回路
6…メモリセルアレイ
7…ロウデコーダ
8…データ回路
9…カラムデコーダ
10…アドレスバッファ
11…誤り訂正検出回路
12…データ入出力バッファ
13…半導体記憶装置
14…単一バイト誤り訂正回路
15…符号長拡大回路
16…単一mbビット/バイト誤り訂正回路
100…データ入出力パッド
101…IO線
Claims (10)
- 1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする誤り訂正検出回路。
- 1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するための検査バイトを発生する検査バイト発生回路と、前記バイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする誤り訂正検出回路。
- 前記バイト誤り訂正回路は、メモリセルの所定アドレスに対するアクセスによる第1のサイクルで入力された情報データと検査データからシンドロームを生成するシンドローム計算回路と、このシンドローム計算回路で得られたシンドロームから誤りの位置と大きさを計算する誤り位置大きさ計算回路と、この誤り位置大きさ計算回路で得られた誤りの位置と大きさに基づいて、前記メモリセルの同一アドレスに対するアクセスによる第2のサイクルで入力された前記情報データと同一な情報データから、誤りの訂正された情報データを出力する誤り訂正回路とを具備してなることを特徴とする請求項1又は2記載の誤り訂正検出回路。
- メモリセルがマトリクス状に配置されたメモリセルアレイと、このメモリセルアレイに対しデータの出力を行う複数のデータ出力バッファと、前記データ出力バッファの1つ毎又は複数毎に、読み出しデータの誤りの訂正又は検出を行う誤り訂正検出回路とを備えた半導体記憶装置であって、
前記誤り訂正検出回路は、1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする半導体記憶装置。 - 電気的書き替え可能なメモリセルがマトリクス状に配置されたメモリセルアレイと、このメモリセルアレイに対し外部からの書き替えデータの入力とメモリセルの読み出しデータの出力を行う複数のデータ入出力バッファと、前記データ入出力バッファの1つ毎又は複数毎に、入力された書き替えデータから誤りの訂正又は検出を行うための検査データを発生し、かつ読み出しデータを出力する際に読み出しデータと検査データから読み出しデータの誤りの訂正又は検出を行う誤り訂正検出回路とを備えた半導体記憶装置であって、
前記誤り訂正検出回路は、1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする半導体記憶装置。 - メモリセルがマトリクス状に配置されたメモリセルアレイと、このメモリセルアレイに対しデータの出力を行う複数のデータ出力バッファと、前記データ出力バッファの1つ毎又は複数毎に、読み出しデータの誤りの訂正又は検出を行う誤り訂正検出回路とを備えた半導体記憶装置であって、
前記誤り訂正検出回路は、1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するための検査バイトを発生する検査バイト発生回路と、前記バイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする半導体記憶装置。 - 電気的書き替え可能なメモリセルがマトリクス状に配置されたメモリセルアレイと、このメモリセルアレイに対し外部からの書き替えデータの入力とメモリセルの読み出しデータの出力を行う複数のデータ入出力バッファと、前記データ入出力バッファの1つ毎又は複数毎に、入力された書き替えデータから誤りの訂正又は検出を行うための検査データを発生し、かつ読み出しデータを出力する際に読み出しデータと検査データから読み出しデータの誤りの訂正又は検出を行う誤り訂正検出回路とを備えた半導体記憶装置であって、
前記誤り訂正検出回路は、1バイトがbビットであるm個の情報データを1バイトがmbビットである1個の情報データに変換するバイト長拡大回路と、このバイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するための検査バイトを発生する検査バイト発生回路と、前記バイト長拡大回路の出力からmbビット構成のバイト誤りを訂正するバイト誤り訂正回路とを具備してなることを特徴とする半導体記憶装置。 - 前記誤り訂正検出回路は、前記メモリセルアレイが配置されるコア領域ではなく、前記バッファが配置される周辺領域に配置されていることを特徴とする請求項4〜7の何れかに記載の半導体記憶装置。
- データの書き替え時に、バースト誤りが発生した際に誤り訂正検出回路の入力データが全て“0”とはならない位置で、バースト誤り訂正検出のための演算を行うことを特徴とする請求項5又は7記載の半導体記憶装置。
- 前記バイト誤り訂正回路は、メモリセルの所定アドレスに対するアクセスによる第1のサイクルで入力された情報データと検査データからシンドロームを生成するシンドローム計算回路と、このシンドローム計算回路で得られたシンドロームから誤りの位置と大きさを計算する誤り位置大きさ計算回路と、この誤り位置大きさ計算回路で得られた誤りの位置と大きさに基づいて、前記メモリセルの同一アドレスに対するアクセスによる第2のサイクルで入力された前記情報データと同一な情報データから、誤りの訂正された情報データを出力する誤り訂正回路とを具備してなることを特徴とする請求項4〜7の何れかに記載の半導体記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001249333A JP3600561B2 (ja) | 2001-08-20 | 2001-08-20 | 誤り訂正検出回路と半導体記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001249333A JP3600561B2 (ja) | 2001-08-20 | 2001-08-20 | 誤り訂正検出回路と半導体記憶装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08345995A Division JP3272903B2 (ja) | 1995-03-16 | 1995-03-16 | 誤り訂正検出回路と半導体記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002140898A JP2002140898A (ja) | 2002-05-17 |
JP3600561B2 true JP3600561B2 (ja) | 2004-12-15 |
Family
ID=19078351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001249333A Expired - Lifetime JP3600561B2 (ja) | 2001-08-20 | 2001-08-20 | 誤り訂正検出回路と半導体記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3600561B2 (ja) |
-
2001
- 2001-08-20 JP JP2001249333A patent/JP3600561B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002140898A (ja) | 2002-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3272903B2 (ja) | 誤り訂正検出回路と半導体記憶装置 | |
US8099651B2 (en) | Subsystem and method for encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use in a 76-bit memory module | |
US4402045A (en) | Multi-processor computer system | |
JP4071940B2 (ja) | メモリ設計のための共有式誤り訂正 | |
JP3234130B2 (ja) | 誤り訂正符号復号化方法およびこの方法を用いる回路 | |
JP2001175542A (ja) | 記録再生装置および半導体メモリ | |
JP2008165808A (ja) | 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
JPH06324951A (ja) | 誤り検査/訂正機能を有するコンピュータ・システム | |
JP3039455B2 (ja) | 半導体メモリ装置テスト方法及び半導体メモリ装置 | |
US8527834B2 (en) | Information processing device and information processing method | |
US7656322B2 (en) | Semiconductor memory device having error correction function | |
JP5134569B2 (ja) | メモリ装置 | |
US5691996A (en) | Memory implemented error detection and correction code with address parity bits | |
JPS6349245B2 (ja) | ||
JP2020195007A (ja) | メモリシステム | |
JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
JP3600561B2 (ja) | 誤り訂正検出回路と半導体記憶装置 | |
JP3600562B2 (ja) | 半導体記憶装置 | |
KR101355988B1 (ko) | 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치 | |
JP3654655B2 (ja) | データ処理システム | |
JP2014137834A (ja) | 半導体記憶装置 | |
JPH07226687A (ja) | 誤り訂正処理装置 | |
KR102021560B1 (ko) | 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치 | |
JP4921216B2 (ja) | メモリ制御回路、記憶システム、情報処理装置、および、メモリ制御方法 | |
JP4829376B2 (ja) | 情報処理装置および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040409 |
|
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: 20040914 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040916 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070924 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120924 Year of fee payment: 8 |