[go: up one dir, main page]

JPH10207726A - 半導体ディスク装置 - Google Patents

半導体ディスク装置

Info

Publication number
JPH10207726A
JPH10207726A JP9024437A JP2443797A JPH10207726A JP H10207726 A JPH10207726 A JP H10207726A JP 9024437 A JP9024437 A JP 9024437A JP 2443797 A JP2443797 A JP 2443797A JP H10207726 A JPH10207726 A JP H10207726A
Authority
JP
Japan
Prior art keywords
data
ecc
bank
error correction
error
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
Application number
JP9024437A
Other languages
English (en)
Inventor
Atsushi Beppu
敦 別府
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP9024437A priority Critical patent/JPH10207726A/ja
Priority to TW087100770A priority patent/TW364093B/zh
Priority to PCT/JP1998/000266 priority patent/WO1998033112A1/ja
Priority to KR10-1998-0706840A priority patent/KR100369273B1/ko
Priority to US09/155,497 priority patent/US6256762B1/en
Publication of JPH10207726A publication Critical patent/JPH10207726A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【解決手段】 バッファメモリ13には、1セクタ分の
データが格納される。これが、セパレータ16でいくつ
かのバンクに分割され、各バンク毎にエラー訂正コード
データが付加される。記憶媒体4から読み出されたデー
タはバンク毎にエラーチェックと必要な訂正が行われ
る。 【効果】 1セクタ毎のエラー訂正では訂正できないよ
うな、1セクタあたり数ビット以上のエラーが訂正でき
る。また、エラーチェックの対象データが短くなり、チ
ェックや訂正が高速化する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、記憶されたデータ
を読み出したとき、エラー箇所を検出してそれを訂正す
る機能を持つ半導体ディスク装置に関する。
【0002】
【従来の技術】半導体ディスク装置は、磁気ディスク等
と比較すると、記憶容量やコストの面でやや不利な点が
あるものの、アクセスの高速性や小型化を図る上で有利
であるという特徴を備える。半導体ディスク装置にデー
タを書き込む場合、データはセクタという単位で一括し
て書き込まれ読み出される。書き込まれるデータは、例
えば512バイトのデータ部にそのデータに関する属性
情報等を備えたヘッダ部を付加し、更にエラー訂正のた
めのECC(エラー訂正コード)データを付加して構成
される。ホストから転送された1セクタ分のデータは、
半導体ディスク装置に例えば、8ビットあるいは16ビ
ットずつパラレルに転送され格納される。このとき、同
時に1セクタ分のデータがECC制御部に転送されてエ
ラー訂正コードデータが生成される。従って、データの
転送終了後、続いてエラー訂正コードデータが半導体デ
ィスク装置に書き込まれる。
【0003】こうして格納されたデータとエラー訂正コ
ードデータとは、半導体ディスク装置から1セクタ分と
して一括して読み出される。その後、ECC制御部はエ
ラーの有無の計算を行う。1セクタ内にエラーが存在し
ない場合、そのデータはそのままホストへ転送される。
一方、エラーが存在する場合、ECC制御部あるいはフ
ァームウェアによって、訂正可能なエラーが訂正され、
ホストへデータが送られる。
【0004】
【発明が解決しようとする課題】ところで、上記のよう
な従来の半導体ディスク装置には次のような解決すべき
課題があった。半導体ディスク装置から読み出されたエ
ラー訂正コードデータを、ECC制御部が解析してエラ
ーが存在すると判断した場合、1セクタ分の全ビットに
ついてエラーの有無を判断してその訂正を行う。しかし
ながら、例えば1ビットのエラー検出のために、512
バイト即ち512×8ビットのデータ全体を確認する処
理が必要となり、ECC制御部の負担が比較的大きいと
いう問題があった。
【0005】更に、1セクタ内のエラー発生数が例えば
1ビットの場合には、ゲート回路等のハードウェアで構
成されたECC制御部がその訂正をする。一方、2ビッ
トあるいは3ビット程度の誤りがある場合には、ファー
ムウェアによる訂正が行われる。従って、エラー発生数
が2ビット以上の場合、ファームウェアの負担が大きく
なり、ハードウェアよりも訂正処理に時間がかかる。こ
のため、エラー訂正のスループットが低下するという問
題があった。
【0006】また、通常、ファームウェアによってエラ
ーを訂正する場合でも、1セクタ分のデータに対して4
ビット以上のエラーが存在する場合には訂正が不能にな
る。従って、半導体ディスク装置への読み書きの最小単
位であるセクタを構成するデータ数が増えれば、誤りビ
ットの含まれる確率も高まり、訂正不能なデータも増え
るという問題がある。半導体ディスク装置は、一定回数
以上データの書き込みや消去を繰り返すと、エラーの発
生率が急激に増大するという特徴を持つ。従って、エラ
ーが頻繁に発生した場合には、まずそのエラーを訂正し
て、プログラムを正常に動作させて終了させる一方、エ
ラーが生じたセクタ分の記憶領域を使用禁止にし、他の
領域即ち代替トラックを設定するといった処理を行う。
こうした点でも、代替トラック設定処理が終了する前の
セクタについてデータの読み書きを行う場合には、プロ
グラムが異常終了することがないようなシステムが好ま
しい。
【0007】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉記憶媒体に向けて転送するための単位量のデ
ータを保持するバッファメモリと、このバッファメモリ
から記憶媒体に転送される単位量のデータを所定数のバ
ンクに分割し、各バンク毎にエラー訂正コードデータを
生成して記憶媒体中のデータに付加するとともに、上記
記憶媒体から読み出されたデータに含まれるエラー訂正
コードデータにより、各バンク毎にデータエラーの有無
判断と必要なエラー訂正を行うECC〈エラー訂正コー
ド〉制御部とを備えたことを特徴とする半導体ディスク
装置。
【0008】〈構成2〉構成1において、ECC制御部
は、バンク毎のエラー訂正コードデータをデータの各バ
ンクの末尾に付加して記憶媒体に記憶させることを特徴
とする半導体ディスク装置。
【0009】〈構成3〉構成1において、ECC制御部
は、バンク毎のエラー訂正コードデータをまとめて単位
量のデータの末尾に付加して記憶媒体に記憶させること
を特徴とする半導体ディスク装置。
【0010】〈構成4〉記憶媒体に向けて転送するため
の単位量のデータを保持するバッファメモリと、このバ
ッファメモリから記憶媒体に転送される単位量のデータ
を複数のデータバンクに分割し、各バンク毎に上記単位
量のデータ長に満たない部分に無効データを連結して、
それぞれ別々の後記ECC制御部に転送するスイッチ部
と、それぞれこのスイッチ部からデータを受け入れてエ
ラー訂正コードデータを生成して記憶媒体中のデータに
付加するとともに、上記記憶媒体から読み出されたデー
タに含まれるエラー訂正コードデータによりデータエラ
ーの有無判断と必要なエラー訂正を行う複数のECC
〈エラー訂正コード〉制御部とを備えたことを特徴とす
る半導体ディスク装置。
【0011】〈構成5〉構成4において、スイッチ部
は、バッファメモリから記憶媒体に転送される単位量の
データを複数のデータバンクに分割し、相互に隣接しな
いバンクを組み合わせたバンク群を設定し、各バンク群
毎に上記単位量のデータ長に満たない部分に無効データ
を連結して、それぞれ別々のECC制御部に転送するこ
とを特徴とする半導体ディスク装置。
【0012】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例1〉図1は、具体例1の半導体ディスク装置を
示すブロック図である。この装置は、コントローラ部1
が、半導体から構成された記憶媒体4に対してデータを
読み書き制御するものである。コントローラ部1は、マ
イクロコントローラ部2とディスクコントローラ部3に
より構成される。また、記憶媒体4は、任意の数のフラ
ッシュメモリ5から構成される。このフラッシュメモリ
5は、不揮発性の半導体記憶装置を構成している。マイ
クロコントローラ部2は、データに誤りビットが数ビッ
ト以上ある場合に、ファームウェアを用いてその訂正処
理をするための部分である。ファームウェア6は、この
ような訂正用プログラムで、マイクロプロセッサ7がそ
のプログラムを読み取ってデータの訂正処理を実行す
る。
【0013】ディスクコントローラ部3には、マイクロ
コントローラインタフェース11、ホストインタフェー
ス12、バッファメモリ13、P/S(パラレル・シリ
アル)変換部14、ECC制御部15、セパレータ16
及びメモリインタフェース17が設けられている。ホス
トインタフェース12は、図示しないホストと接続さ
れ、記憶媒体4に記憶するデータを受け入れたり、記憶
媒体4から読み出されたデータをホストに送信する役割
を持つ。バッファメモリ13は、記憶媒体4に1回で書
き込みを行う単位量のデータを一時格納するメモリであ
る。従って、例えば1セクタ分のデータが書き込みある
いは読み出しの際にここに一時格納される。1セクタが
何バイトで構成されるかは装置の設計による。
【0014】P/S変換部14は、バッファメモリ13
に格納されたデータをシリアルにメモリインタフェース
17の側に転送するための変換器である。ECC制御部
15は、よく知られたエラー訂正コードデータを生成し
たり、あるいはこのエラー訂正コードデータを参照して
データのエラーの有無を判断し必要な訂正をする動作を
行う部分である。セパレータ16は、これから説明する
本発明に従って、入力するデータを所定数のバンクに分
割して、ECC制御部15やメモリインタフェース17
に転送する制御を行う部分である。マイクロコントロー
ラインタフェース11は、マイクロコントローラ部2と
バッファメモリ13との間のデータ転送を制御する部分
で、ここを介してマイクロコントローラ部2がバッファ
メモリ13に格納されたデータをアクセスし、その訂正
処理等が行われる。
【0015】また、メモリインタフェース17は、ディ
スクコントローラ部3から記憶媒体4のフラッシュメモ
リ5に格納されるべきデータを転送しあるいは記憶媒体
4から読み出されたデータをディスクコントローラ部3
に受け入れるための役割を果たす。また、メモリインタ
フェース17はヘッダ制御部17−1にも接続されてい
る。このヘッダ制御部17−1は、ヘッダ部を保持する
レジスタを持ち、ヘッダ部に対するエラー訂正コードの
生成及びエラーの有無の計算を行う。また、必要に応じ
て、ヘッダ部のエラー訂正を行う。
【0016】図2には、具体例1による格納データの説
明図を示す。この図を用いて、本発明の図1に示したよ
うな装置によって記憶媒体4に格納されるデータの構成
を説明する。図1に示した装置は、フラッシュメモリ5
に格納するデータの構成をこの図に示すように組み立て
る。このデータは、図2(a)に示すように、ヘッダ部
Hに続いて、データ部とECCデータ部とが交互に繰り
返し続く構成とされている。
【0017】図2の(b)に示すデータは、従来の構成
のデータであり、これと比較しながら本発明のデータ構
成を説明する。即ち、図2の(b)に示すように、従来
はヘッダ部Hとデータ部DとECCデータ部DEによっ
てメモリに格納されるデータが構成されていた。ヘッダ
部Hは、この構成には限定されないが、例えば、フラグ
部H1、カウンタ部H2、リザーブH3及びECCデー
タ部HEから構成される。データ部Dは実際にユーザが
使用するデータである。ヘッダ部Hは、このデータを管
理するためのフラグをフラグ部H1に、書き換え回数を
表示するカウンタをカウンタ部H2に格納している。ま
た、ECCデータ部HEにはヘッダ制御部17−1によ
って生成されるヘッダ部Hに対するエラー訂正コードが
格納されている。データ部Dは、そのエラー訂正のため
に別途ECCデータ部DEを備えている。
【0018】図(a)に示した具体例においては、デー
タ部をn個のバンクに分割する。そのバンク名をバンク
B1,B2,…Bnと表示した。例えば、データ部が5
12バイトで構成される場合、8個のバンクに分解する
と、それぞれ64バイトのバンクを構成する。そして、
その後ろに各バンクのエラー訂正に使用されるECCデ
ータ部E0,E1,…Enが付加される。
【0019】図1の装置は、バッファメモリ13に単位
量即ち1セクタ分のデータを保持する。そして、P/S
変換部14は、このデータをシリアルにセパレータ16
に向けて転送する。このデータは、1バンク分ずつEC
C制御部15とメモリインタフェース17に向けて転送
される。メモリインタフェース17に転送されたデータ
はフラッシュメモリ5にそのまま順番に書き込まれる。
一方、ECC制御部15に転送されたデータは、ECC
データ生成に使用される。
【0020】ECC制御部15はデータを受け入れる
と、直ちに、生成したECCデータをセパレータ16及
びメモリインタフェース17を介してフラッシュメモリ
5に転送する。これによって、図2(a)に示すよう
に、バンクB0の次にECCデータ部E0が付加され
る。同様にしてバンクB1,バンクB2,…についても
その、データ転送直後にECCデータ部E1,E2,…
が付加されて、最終的にデータ部とECCデータ部を組
み合わせたデータがフラッシュメモリ5に格納されるこ
とになる。
【0021】図3には、従来の装置による比較例のデー
タ転送タイミングチャートを示す。また、図4には、具
体例1のデータ転送タイミングチャートを示す。上記図
2(b)に示した比較例のデータの場合、例えば図3に
示すような要領でデータが転送され最終的にフラッシュ
メモリ5に格納される。図3(a)は、バッファメモリ
13からデータが読み出されて転送されるタイミングを
示す。また、図3(b)は、ECC制御部15からEC
Cデータが転送されるタイミングを示し、図3(c)に
はメモリインタフェース17から記憶媒体4へ転送され
るデータを示す。
【0022】図3の(a)に示すように、ヘッダ制御部
17−1によってヘッダ部用のECCが付加されたヘッ
ダ部Hがヘッダ制御部17−1からメモリインタフェー
スに向けて転送されると、メモリインタフェースはヘッ
ダ部Hをフラッシュメモリ5に書き込む。ヘッダ部Hの
転送が終了すると、バッファメモリからは今度はデータ
部DがECC制御部やメモリインタフェースに向かって
転送される。ECC制御部はこのデータを受け入れ、デ
ータ受け入れ完了時にECCデータ部DEを生成して、
その後メモリインタフェースに対しECCデータ部DE
を転送する。メモリインタフェースでは、この図に示す
ように、ヘッダ部H、データ部D、データ用のECCデ
ータ部DEを順番に転送する。こうして、図2(b)の
構成のデータがフラッシュメモリ5に格納される。
【0023】図1に示した本発明の装置では、図2
(a)に示すように、データが複数のバンクB0〜Bn
に分割され、それぞれのバンクのデータ転送に続いて、
それぞれのバンクのエラー訂正を行うためのECCデー
タ部E0〜Enが付加されるようメモリインタフェース
に転送される。図4の(a)、(b)、(c)は、図3
と同様の要領で作成したタイミングチャートである。即
ち、図4(a)において、バッファメモリから順に、デ
ータのバンクB0,バンクB1,バンクB2,バンクB
nが、所定のタイミングで所定の間隔を空けて出力され
る。
【0024】ECC制御部にバンクB0,B1,B2が
送り込まれると、同様にしてこれらのエラー訂正のため
のECCデータ部E0,E1,E2を生成し、これを対
応するデータに付加するように、メモリインタフェース
に向けて転送する。その結果、メモリインタフェースに
はこの図4(c)に示すように、ヘッダ部H、バンクB
0、バンクB0用のECCデータ部E0、バンクB1、
…というように連続的にデータが生成され転送されて、
フラッシュメモリ5に書き込まれる。上記のようにして
書き込まれたデータを読み出した場合に、エラー検出と
エラー訂正処理が、次のようにして実行される。
【0025】図5は、エラー訂正処理の動作フローチャ
ートである。まず、フラッシュメモリ5から1セクタ分
のデータが読み出される(ステップS1)。このデータ
はバッファメモリ13に一時格納される。続いて、EC
CデータがECC制御部15に読み取られる。そして、
エラー有無の計算が行われる(ステップS2)。この計
算は既知のECC制御部と変わらない。次に、エラーが
あるかどうかの判断がされる(ステップS3)。エラー
がない場合にはステップS9までジャンプし、バッファ
メモリ13に格納されたデータがそのままホストインタ
フェース3を介してホストに転送される。一方、エラー
が検出された場合にはステップS4に進み、1ビットエ
ラーかどうかが判断される。1ビットエラーの場合には
ステップS6に進み、ECC制御部15によるハードウ
ェア処理に基づく訂正が行われる。このハードウェア処
理に基づく訂正は極めて高速処理が可能である。
【0026】一方、ステップS4で2ビット以上のエラ
ーと判断されるとステップS5に進む。そして、2ビッ
トあるいは3ビットエラーの場合にはステップS5から
ステップS7に進み、ファームウェア訂正が行われる。
即ち、訂正処理が図1に示すマイクロコントローラ部2
に渡されて、ファームウェア6によってバッファメモリ
13に格納されたデータの内容が訂正される。4ビット
以上のエラーについては、この例では訂正できないエラ
ーと判断する。従って、ステップS5からステップS8
に進み、訂正不能処理が行われる。エラーが訂正できた
場合には、いずれの場合にも、訂正後のデータがホスト
インタフェース3を介してホストに転送される。
【0027】〈具体例1の効果〉図6を用いて、本発明
の効果を具体的に説明する。図6の(a)、(b)、
(c)は、従来の通り、1セクタ分のデータについてエ
ラーを生じた場合の処理を示す。また、図6(d)は、
具体例1によってデータを例えば4つのバンクB0〜B
3に分割した場合のエラー訂正処理を示す。(a)に示
したものは、1セクタに1ビットのエラーがある場合の
例である。このような場合、ECCデータに基づいてエ
ラー訂正が可能である。しかも、1ビットエラーである
から、ECC制御部によるハードウェア訂正が可能とな
る。なお、この場合、1セクタ512バイトのデータ全
てについて訂正位置の探索を行うことから、処理を高速
に行おうとすれば複雑なハードウェアを必要とする。1
セクタを構成するデータ量が多くなれば、更にハードウ
ェアの負担が増える。
【0028】図6(b)は、1セクタ中に2ビットのエ
ラーが存在した場合を示す。この場合にも、従来の装置
により訂正が可能である。なお、この場合は、ファーム
ウェアによってエラー訂正を行うことから、ハードウェ
アによる訂正の場合よりも若干処理に時間がかかる。図
6(c)は、1セクタのデータに対し4ビットのエラー
が生じた例を示す。この場合、上記の例ではファームウ
ェアを用いても訂正が不可能となる。なお、ハードウェ
アもファームウェアも設計により訂正可能なビット数は
増減する。
【0029】一方、図6(d)に示すように、複数のバ
ンクにデータ部を分割すると、バンクB0,B1,B
2,B3を見た場合に、エラー箇所が分散していると、
各バンクには1ビットあるいは2ビットまでのエラーし
か存在しない。従って、バンク毎にECCデータを生成
しておけば、図に示すように、バンクB0,バンクB
1,バンクB3はエラー訂正が可能で、バンクB2はエ
ラーが無いということになる。
【0030】本発明では、このように複数のバンクにデ
ータを分割することによって、単位量のデータ全体を見
た場合に、訂正不可能なビット数のエラーが存在したと
しても、訂正が可能になるという効果がある。しかも、
複数のバンクそれぞれを見ると、例えば図6(d)のバ
ンクB0とB1については、それぞれ1ビットエラーの
ためハードウェアによるスピーディな訂正が可能であ
る。しかも、訂正の対象となるバンクのデータビット数
は少ないことから、訂正作業も高速に行うことができ
る。その結果、全体としてファームウェアにかかる負担
が軽くなり、エラー訂正の高速化が実現できる。
【0031】例えば、1セクタのデータを4096ビッ
トとした場合に、512ビットのバンクを8個設ける。
4096ビットのデータに対しては90ビット程度のE
CCデータが必要となる。これを512ビットずつ8バ
ンクに分割した場合、各バンク毎に10ビットあるいは
十数ビットのECCデータを付加すればよい。従って、
データ長自体は全体として著しく長くなるわけではな
い。しかも、そのデータをシリアルに転送しながらエラ
ーチェックや訂正を行うことから、ECCデータの部分
が増加したとしても、システム的に訂正が複雑になった
り訂正等の時間が大幅に増加することはない。従って、
上記のような効果を得ることができる。
【0032】図7には、具体例1の変形例による格納デ
ータ説明図を示す。図2(a)のように、データ部のバ
ンクとそのECCデータとを交互に配列すると、ハード
ウェアの構成は従来とほぼ同様で、エラー訂正の対象と
なるデータ幅を少なくするだけで対応が可能である。一
方、この図に示すように、データの前半に全てバンクB
0〜Bnを集中させ、データの末尾に各バンクに対応す
るECCデータ部E0〜Enを連結するという構成も可
能である。即ち、この例では、バンクB0,B1,B
2,…Bnをヘッダ部Hの末尾に付加し、更にその末尾
にECCデータ部E0,E2,…Enを付加した構成に
した。こうしても、従来訂正不可能であったエラーにつ
いての対応が可能となる。書き込み回数が一定以上を越
えるといろいろな箇所でエラーが発生しやすくなる半導
体ディスク装置には、こうしたエラー訂正システムが極
めて有効である。
【0033】〈具体例2〉図8に、具体例2の半導体デ
ィスク装置ブロック図を示す。上記の具体例では、EC
C制御部がECCデータを生成する対象となるデータの
ビット幅がバンク単位になることから、新たなECC制
御部の設計が必要となる。この具体例2では、ECC制
御部の構成は従来通りにし、ECC制御部を複数設ける
ことによって、具体例1と同様の効果を得るようにして
いる。図8はその実現のための装置構成を示す。即ち、
図8のディスクコントローラ部3には、P/S変換部1
4の出力側にスイッチ部18を設け、これによって2個
のECC制御部20,21にデータを振り分ける構成と
なっている。ECC制御部はバンクB0用ECC制御部
20と、バンクB1用ECC制御部21という2個の回
路により構成する。いずれも従来通りの1セクタ分のデ
ータについてECCデータを生成し、あるいはデータを
訂正する機能を持つ回路とする。その他の部分の構成
は、具体例1と変わるところはない。
【0034】図9には、具体例2の装置のデータ転送タ
イミングチャートを示す。この具体例は、バンクB0用
ECC制御部20とバンクB1用ECC制御部21に受
け入れられるデータの内容に特徴がある。従って、この
図を用いてその特徴を説明する。図9(a)は、バンク
B0用ECC制御部20に送り込まれるデータの内容を
示している。図9(b)は、バンクB1用ECC制御部
21に送り込まれるデータの内容を示している。図9
(c)は、メモリインタフェースを通じてメモリに記憶
されるデータの内容を示している。まず、この図に示す
時刻t1からデータの転送が開始される。なお、この前
に、図8に示すバッファメモリ13に1セクタ分のデー
タが格納されているものとする。
【0035】時刻t1からデータの転送が開始され、時
刻t2までにバンクB0についてのデータが転送され
る。これはスイッチ部18を介してバンクB0用ECC
制御部20とメモリインタフェースに同時に送り込まれ
る。これによって、メモリにはバンクB0のデータが格
納される。また、バンクB0用ECC制御部20には、
丁度1セクタの2分の1のデータ、即ち1セクタ512
バイトならば256バイトのデータが格納される。次
に、時刻t2で、スイッチ部18がスイッチを切り換え
てバンクB1用ECC制御部21に対しバンクB0のデ
ータを転送する。同時に、メモリインタフェースに対し
ても同じバンクB1のデータが転送される。
【0036】なお、バンクB0用ECC制御部20に対
しては、時刻t2から時刻t3の間、全て0のデータが
送り込まれる。一方、バンクB1用ECC制御部21に
対しては、時刻t1から時刻t2の間、全て0のデータ
が送り込まれているものとする。従って、時刻t1から
時刻t3の間に、バンクB0にもバンクB1にも1セク
タ分のデータが格納されることになる。ただし、バンク
B0用ECC制御部20にはバンクB0のデータが前半
に含まれたものが送り込まれ、バンクB1用ECC制御
部21にはバンクB1のデータが後半に含まれたものが
送り込まれる。バンクB0用ECC制御部20は、バン
クB0のためのECCデータを生成する。時刻t3から
このバンクB0用ECCデータが、バンクB0用ECC
制御部20から出力される。これは、メモリインタフェ
ースを介してメモリに送り込まれる。時刻t4になる
と、今度はバンクB1用ECC制御部21からバンクB
1用ECCデータが出力される。従って、メモリインタ
フェースには時刻t4から時刻t5までの間、バンクB
1用ECCデータが供給され、これがフラッシュメモリ
5に格納される。
【0037】フラッシュメモリにはこのように、バンク
B0とバンクB1のデータが順に格納され、その後に続
いてバンクB0用ECCデータ部E0とバンクB1用E
CCデータ部E1とが格納される。なお、この例では、
バンクB0用ECC制御部20もバンクB1用ECC制
御部21も、いずれも1セクタ分のデータに対するEC
Cデータを出力することが特徴である。
【0038】〈具体例2の効果〉図10には、具体例2
の効果説明図を示す。図10(a)には、バンクB0用
ECC制御部により処理されるデータの内容を示す。図
に示すように、前半にバンクB0用のデータが格納さ
れ、後半はオール0のデータとなっている。具体例1と
同様に、前半と後半にバンクを振り分けたため、エラー
が分散している場合には全体として訂正できなかった4
ビット以上のエラーも訂正できる。また、2ビットエラ
ーの場合、従来はファームウェア訂正であったのに対
し、バンク分けにより分散されることでハードウェア訂
正となる。即ち、図の(c)に示すように、バンクB0
とバンクB1に、それぞれ2ビットずつエラーが生じて
いるような場合でも訂正が可能であり、高速なエラー訂
正も可能である。この場合に、従来と全く同様の構成の
ECC制御部を使用することができ、設計も容易であ
る。
【0039】なお、例えば、図10の(d)に示すよう
に、1ビットエラーがバンクB0とバンクB1の境界部
分に集中しているとする。この場合、いずれのバンクも
3ビット程度のエラーならば修正が可能となる。しかし
ながら、エラーの集中する箇所は必ずしもバンクB0と
バンクB1の境界部分とは限らない。従って、複数箇所
にエラーが集中している場合でも、具体例2と同様の効
果を得るために、次のような変形が可能である。
【0040】図10(e)には、ハッチングを付した部
分とハッチングを付していない部分を交互に配置したデ
ータを示す。ここに、図10に示すように1ビットエラ
ーが複数箇所存在するものとする。ここで、図10の
(f)、(g)に示すように、ハッチングを付した部分
はバンクB0用のデータとし、ハッチングを付していな
い部分はバンクB1用のデータとする。そして、それぞ
れをバンクB0用ECC制御部20及びバンクB1用E
CC制御部21に処理させる。このとき、図10(a)
や図10(b)に示した場合と同様に、単位量即ち1セ
クタ分のデータ長に満たない部分にはオール0のような
無効データを連結する。このため、図10(f)、図1
0(g)に示すように、バンクB0用ECC制御部20
にもバンクB1用ECC制御部21にも1セクタ分の長
さのデータが入力する。
【0041】しかしながら、その処理対象は図10に示
すように、破線部分に実質的にオール0の無効データを
含むから、この部分を除外した1セクタの2分の1とな
る。このため、図10(a)や図10(b)を用いて説
明した場合と同様にして、各ECC制御部の処理負担が
軽減され、処理速度が向上する。また、図10の(e)
に示したように、集中してエラーの生じる部分がデータ
全体に分散しているような場合、この具体例によって訂
正可能になるケースもある。なお、この図10(f)、
図10(g)に示した例では、2個のECC制御部にデ
ータを格納する構成としたが、4個あるいは8個のEC
C制御部を設け、データを分散するようにしてもよい。
こうすれば、具体例1と同様にデータが分散され、従来
訂正不可能であったデータの訂正が可能となる。また、
ハードウェア訂正可能なケースが増えるから処理速度が
向上するという効果もある。
【0042】上記の具体例では、例えばハードウェアに
よるエラー訂正が1ビット、ファームウェアによるエラ
ー訂正が2ビットあるいは3ビット、4ビット以上は訂
正不可能と説明したが、これは装置の設計により変更す
ることもできる。従って、ハードウェアにより数ビット
まで訂正できるようにすれば、エラー訂正の処理が高速
化され、しかも多くのエラーが生じている場合もデータ
の訂正が可能となることから、半導体ディスク装置の信
頼性を向上させ、その品質の維持が可能となる。
【図面の簡単な説明】
【図1】具体例1の半導体ディスク装置を示すブロック
図である。
【図2】(a)は具体例1による格納データ、(b)は
比較例の格納データ説明図である。
【図3】比較例のデータ転送タイミングチャートであ
る。
【図4】具体例1のデータ転送タイミングチャートであ
る。
【図5】エラー訂正処理の動作フローチャートである。
【図6】具体例1の効果説明図である。
【図7】具体例1の変形例による格納データの説明図で
ある。
【図8】具体例2の半導体ディスク装置ブロック図であ
る。
【図9】具体例2の装置のデータ転送タイミングチャー
トである。
【図10】具体例2の効果説明図である。
【符号の説明】
1 コントローラ部 2 マイクロコントローラ部 3 ディスクコントローラ部 4 記憶媒体 5 フラッシュメモリ 6 ファームウェア 7 マイクロプロセッサ 13 バッファメモリ 15 ECC制御部 16 セパレータ 17 メモリインタフェース

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 記憶媒体に向けて転送するための単位量
    のデータを保持するバッファメモリと、 このバッファメモリから記憶媒体に転送される単位量の
    データを所定数のバンクに分割し、各バンク毎にエラー
    訂正コードデータを生成して記憶媒体中のデータに付加
    するとともに、前記記憶媒体から読み出されたデータに
    含まれるエラー訂正コードデータにより、各バンク毎に
    データエラーの有無判断と必要なエラー訂正を行うEC
    C(エラー訂正コード)制御部とを備えたことを特徴と
    する半導体ディスク装置。
  2. 【請求項2】 請求項1において、 ECC制御部は、バンク毎のエラー訂正コードデータを
    データの各バンクの末尾に付加して記憶媒体に記憶させ
    ることを特徴とする半導体ディスク装置。
  3. 【請求項3】 請求項1において、 ECC制御部は、バンク毎のエラー訂正コードデータを
    まとめて単位量のデータの末尾に付加して記憶媒体に記
    憶させることを特徴とする半導体ディスク装置。
  4. 【請求項4】 記憶媒体に向けて転送するための単位量
    のデータを保持するバッファメモリと、 このバッファメモリから記憶媒体に転送される単位量の
    データを複数のデータバンクに分割し、各バンク毎に前
    記単位量のデータ長に満たない部分に無効データを連結
    して、それぞれ別々の後記ECC制御部に転送するスイ
    ッチ部と、 それぞれこのスイッチ部からデータを受け入れてエラー
    訂正コードデータを生成して記憶媒体中のデータに付加
    するとともに、前記記憶媒体から読み出されたデータに
    含まれるエラー訂正コードデータによりデータエラーの
    有無判断と必要なエラー訂正を行う複数のECC(エラ
    ー訂正コード)制御部とを備えたことを特徴とする半導
    体ディスク装置。
  5. 【請求項5】 請求項4において、 スイッチ部は、バッファメモリから記憶媒体に転送され
    る単位量のデータを複数のデータバンクに分割し、相互
    に隣接しないバンクを組み合わせたバンク群を設定し、
    各バンク群毎に前記単位量のデータ長に満たない部分に
    無効データを連結して、それぞれ別々のECC制御部に
    転送することを特徴とする半導体ディスク装置。
JP9024437A 1997-01-23 1997-01-23 半導体ディスク装置 Pending JPH10207726A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP9024437A JPH10207726A (ja) 1997-01-23 1997-01-23 半導体ディスク装置
TW087100770A TW364093B (en) 1997-01-23 1998-01-21 A semiconductor disk unit
PCT/JP1998/000266 WO1998033112A1 (fr) 1997-01-23 1998-01-23 Dispositif de disque a semiconducteur
KR10-1998-0706840A KR100369273B1 (ko) 1997-01-23 1998-01-23 반도체디스크장치
US09/155,497 US6256762B1 (en) 1997-01-23 1998-01-23 Semiconductor disk device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9024437A JPH10207726A (ja) 1997-01-23 1997-01-23 半導体ディスク装置

Publications (1)

Publication Number Publication Date
JPH10207726A true JPH10207726A (ja) 1998-08-07

Family

ID=12138135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9024437A Pending JPH10207726A (ja) 1997-01-23 1997-01-23 半導体ディスク装置

Country Status (5)

Country Link
US (1) US6256762B1 (ja)
JP (1) JPH10207726A (ja)
KR (1) KR100369273B1 (ja)
TW (1) TW364093B (ja)
WO (1) WO1998033112A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434658B1 (en) 1999-04-05 2002-08-13 Mitsubishi Denki Kabushiki Kaisha Memory device operable with a small-capacity buffer memory and having a flash memory
JP2007094639A (ja) * 2005-09-28 2007-04-12 Tdk Corp メモリコントローラ及びフラッシュメモリシステム
US7509566B2 (en) 1999-06-28 2009-03-24 Kabushiki Kaisha Toshiba Flash memory
JP2011507066A (ja) * 2007-12-06 2011-03-03 サンディスク アイエル リミテッド メモリアレイにおけるエラー訂正
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
US8418029B2 (en) 2009-06-29 2013-04-09 Fujitsu Limited Storage control device and storage control method
US8910017B2 (en) 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
JP2015135676A (ja) * 2014-01-13 2015-07-27 シーゲイト テクノロジー エルエルシー 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975021B1 (en) * 1999-09-03 2005-12-13 Micron Technology, Inc. Carrier for substrate film
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
JP3955712B2 (ja) * 2000-03-03 2007-08-08 株式会社ルネサステクノロジ 半導体装置
JP2001256003A (ja) * 2000-03-10 2001-09-21 Hitachi Ltd ディスクアレイ制御装置、そのディスクアレイ制御ユニットおよびその増設方法
JP2001297038A (ja) * 2000-04-11 2001-10-26 Toshiba Corp データ記憶装置および記録媒体並びに記録媒体制御方法
JP4059472B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
TW566008B (en) * 2001-11-28 2003-12-11 Univ Nat Chiao Tung Apparatus for solving key equation polynomials in decoding error correction codes
WO2004036440A1 (ja) * 2002-10-16 2004-04-29 Matsushita Electric Industrial Co., Ltd. Icカード、データ転送装置、データ転送方法及びデータ転送方法のプログラム
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
KR100546348B1 (ko) * 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
CN100524535C (zh) * 2004-06-22 2009-08-05 群联电子股份有限公司 防止产生纠错码错误的转换电路
TWI248617B (en) * 2004-08-13 2006-02-01 Prolific Technology Inc Data storage device
JP4261462B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 不揮発性メモリシステム
GB2428496A (en) * 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
JP4863681B2 (ja) * 2005-10-04 2012-01-25 ルネサスエレクトロニクス株式会社 半導体記憶装置およびメモリコントローラ
JP4846384B2 (ja) * 2006-02-20 2011-12-28 株式会社東芝 半導体記憶装置
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US9885739B2 (en) 2006-12-29 2018-02-06 Electro Industries/Gauge Tech Intelligent electronic device capable of operating as a USB master device and a USB slave device
US9063181B2 (en) * 2006-12-29 2015-06-23 Electro Industries/Gauge Tech Memory management for an intelligent electronic device
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US20110004728A1 (en) * 2009-07-02 2011-01-06 Ocz Technology Group, Inc. On-device data compression for non-volatile memory-based mass storage devices
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US20130297840A1 (en) 2009-12-01 2013-11-07 Electro Industries/Gaugetech Intelligent electronic device capable of operating as a usb master device and a usb slave device
JP5346354B2 (ja) * 2011-05-17 2013-11-20 シャープ株式会社 不揮発性半導体記憶装置
CN103197985B (zh) * 2011-11-08 2018-07-13 索尼公司 存储控制装置
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US8984368B2 (en) * 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US9189327B2 (en) 2013-11-19 2015-11-17 International Business Machines Corporation Error-correcting code distribution for memory systems
US9927470B2 (en) 2014-05-22 2018-03-27 Electro Industries/Gauge Tech Intelligent electronic device having a memory structure for preventing data loss upon power loss
KR102766573B1 (ko) * 2018-09-21 2025-02-12 삼성전자주식회사 복수의 에러 정정 기능을 갖는 메모리 장치 및 메모리 시스템과 그 동작 방법
USD939988S1 (en) 2019-09-26 2022-01-04 Electro Industries/Gauge Tech Electronic power meter

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5884354A (ja) * 1981-11-16 1983-05-20 Nec Corp デ−タ処理装置
US4525838A (en) * 1983-02-28 1985-06-25 International Business Machines Corporation Multibyte error correcting system involving a two-level code structure
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5459742A (en) * 1992-06-11 1995-10-17 Quantum Corporation Solid state disk memory using storage devices with defects
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JPH07302175A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
US5467361A (en) * 1994-06-20 1995-11-14 International Business Machines Corporation Method and system for separate data and media maintenance within direct access storage devices
JPH08328762A (ja) * 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
US5754567A (en) * 1996-10-15 1998-05-19 Micron Quantum Devices, Inc. Write reduction in flash memory systems through ECC usage

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434658B1 (en) 1999-04-05 2002-08-13 Mitsubishi Denki Kabushiki Kaisha Memory device operable with a small-capacity buffer memory and having a flash memory
US7509566B2 (en) 1999-06-28 2009-03-24 Kabushiki Kaisha Toshiba Flash memory
US7908529B2 (en) 1999-06-28 2011-03-15 Kabushiki Kaisha Toshiba Flash memory
US8365025B2 (en) 1999-06-28 2013-01-29 Kabushiki Kaisha Toshiba Flash memory
US9053043B2 (en) 1999-06-28 2015-06-09 Kabushiki Kaisha Toshiba Method of error correction of a memory
JP2007094639A (ja) * 2005-09-28 2007-04-12 Tdk Corp メモリコントローラ及びフラッシュメモリシステム
JP2011507066A (ja) * 2007-12-06 2011-03-03 サンディスク アイエル リミテッド メモリアレイにおけるエラー訂正
US8418029B2 (en) 2009-06-29 2013-04-09 Fujitsu Limited Storage control device and storage control method
JP2013029882A (ja) * 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
US9164831B2 (en) 2011-07-26 2015-10-20 Kabushiki Kaisha Toshiba Memory controller, semiconductor storage device, and decoding method
US8910017B2 (en) 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
JP2015135676A (ja) * 2014-01-13 2015-07-27 シーゲイト テクノロジー エルエルシー 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置

Also Published As

Publication number Publication date
WO1998033112A1 (fr) 1998-07-30
KR100369273B1 (ko) 2003-05-17
TW364093B (en) 1999-07-11
KR20000064542A (ko) 2000-11-06
US6256762B1 (en) 2001-07-03

Similar Documents

Publication Publication Date Title
JPH10207726A (ja) 半導体ディスク装置
JP3982639B2 (ja) マルチレベルセルを有するメモリからデータを読み取る方法
US6363511B1 (en) Device and method for decoding data streams from storage media
US7600177B2 (en) Delta syndrome based iterative Reed-Solomon product code decoder
CN101473308A (zh) 非易失性存储器纠错系统和方法
JPS63197123A (ja) エラ−訂正及びチエツク装置
KR20010080966A (ko) 에러 정정 및 검출용 신호 프로세서
US6108812A (en) Target device XOR engine
JPH03501660A (ja) 記憶装置への部分書き込み操作における誤り検出
KR100509137B1 (ko) 에러 정정 장치
US5996107A (en) Error correction decoder including an address generation circuit
JP2605270B2 (ja) エラー訂正及びチエツク装置
US7665009B2 (en) Device, data sector, method of processing data, and signal-bearing medium embodying program of device
US12373142B2 (en) Method for updating stored information and apparatus
JPS6048769B2 (ja) ロ−デイング方式
JP3123855B2 (ja) メモリ装置のパトロール制御回路
JP2518333B2 (ja) 記憶装置
JPH08166910A (ja) データ修復方法
JPH0520215A (ja) 情報処理装置
JP3259688B2 (ja) データ処理回路
JP3600562B2 (ja) 半導体記憶装置
JPS6351299B2 (ja)
JPH05108496A (ja) パトロール制御方式
JPS6128145B2 (ja)
JPS61110247A (ja) 記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060912

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703