JP2014099174A - メモリ装置に保存された部分データを変更するメモリコントローラ及びその部分データを変更する方法 - Google Patents
メモリ装置に保存された部分データを変更するメモリコントローラ及びその部分データを変更する方法 Download PDFInfo
- Publication number
- JP2014099174A JP2014099174A JP2013235041A JP2013235041A JP2014099174A JP 2014099174 A JP2014099174 A JP 2014099174A JP 2013235041 A JP2013235041 A JP 2013235041A JP 2013235041 A JP2013235041 A JP 2013235041A JP 2014099174 A JP2014099174 A JP 2014099174A
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- memory device
- partial
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2942—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【解決手段】ホストから部分データを変更するための要求信号を受信する段階と、エラー検出コード(EDC)を利用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、メモリ装置から読み取られた部分データにエラーがない場合、ホストから提供される新しいデータDnewとメモリ装置から読み取られた部分データ(Dold、既存のデータと言う)との差を求め、データの差Ddifとメモリ装置から読み取られた既存のパリティPoldとを使用して、新しいパリティPnewを計算する段階と、新しいデータと新しいパリティをメモリ装置に保存する段階を含む。本発明によれば、変更しようとする一部のデータにエラーがある場合にエラーを早期に検出し、訂正することによって新しいパリティのエラーが発生することを防止する。
【選択図】 図20
Description
半導体メモリ装置は、DRAMやSRAMなどの揮発性メモリ装置(Volatile Memory Device)とフラッシュメモリやMRAM(Magnetic RAM)のような不揮発性メモリ装置(Nonvolatile Memory Device)を含む。
メモリ装置にデータを保存するとき、エラー訂正のためのパリティ(parity)もデータと共にメモリ装置に保存される。メモリ装置に保存されたデータの一部が変更された場合、新たなパリティを生成するためにはパリティと共に保存されたすべてのデータの読み取りをしなければならない。これは、データの読み取り時間と消費電力が増加する原因になる。
また、本発明はメモリ装置に保存された部分データ(partial data)のエラーを検出または訂正し、新たなパリティを生成するメモリコントローラの部分データを変更する方法を提供する。
図1は本発明の実施形態によるメモリシステムを示すブロック図である。図1を参照すると、メモリシステム1000はメモリ装置1100、メモリコントローラ1200、ホスト1300を備える。
続いて、図1を参照すると、メモリコントローラ1200はECCエンコーダ1270を有する。ECCエンコーダ1270はメモリ装置1100に提供されるデータに対してECCエンコード(encoding)を実行してパリティ(parity)が付加された符号化データDATA_Cを生成する。ECCエンコーダ1270はパリティを使用してエラーを訂正する。
メモリセルアレイ1110は、ワード線WLを介してアドレスデコーダ1120に接続され、ビット線BLを介してデータ入出力回路1130に接続される。メモリセルアレイ1110は複数のメモリセルを備える。行(row)方向に配列されるメモリセルはワード線WLに接続される。列(column)方向に配列されるメモリセルはビット線BLに接続される。1つのメモリセルに1つ以上のデータを保存できる。
制御ロジック1140はアドレスデコーダ1120とデータ入出力回路1130に接続される。制御ロジック1140はメモリコントローラ1200からコマンドCMDと制御信号CTRLが受信され、メモリ装置1100の諸動作(例えば、読み取りや書き込みの動作など)を制御する。
ビット線BL1〜BLnとメモリセルMC1〜MCmとの間にストリング選択トランジスタSSTが接続されている。ストリング選択トランジスタSSTはストリング選択ラインSSLに接続される。共通ソースラインCSLとメモリセルMC1〜MCmとの間に接地選択トランジスタGSTが接続される。接地選択トランジスタGSTは接地選択ラインGSLに接続される。
メモリセルがSTT−MRAM(Spin transfer torque magneto Resistive random access memory)セルで具現されている場合、セルトランジスタ及び磁性体を有する磁気トンネル接合素子(magnetic tunnel junction、以下にMTJ素子と称する)を備える。MTJ素子は相変化物質を利用するPRAM(Phase Change Random Access Memory)、複合金属酸化物(Complex Metal oxide)などの可変抵抗物質を利用したRRAM(Resistive Random Access Memory)などの抵抗素子に代替できる。
図5は図1に示したメモリコントローラを示すブロック図である。図5を参照すると、メモリコントローラ1200は、システムバス1210、制御ユニット1220、RAM1230、ホストインターフェース1240、メモリインターフェース1250、そしてECCエンコーダ1270を備える。
ECCエンコーダ1270はホスト1300から受信されるデータをECCエンコード(ECC encoding)して、符号化データ(DATA_C;coded data)とパリティをメモリ装置1100に提供する。ここで、符号化データはECCデータとも呼ばれる。メモリ装置1100に保存されるデータをD1、D2、D3、D4と仮定すると、パリティPは、数式1によって計算できる。
データの位置識別器1261はホスト1300から入力される新しいデータDnewの位置を識別し、位置信号LOCをデータ差の計算機1262とパリティ計算機1263に提供する。ここで、新しいデータの位置はメモリ装置1100に保存されたデータの中から新しいデータに変更されるデータの位置を意味する。
一方、図6に示された新しいパリティジェネレータの構成と動作原理は次のような数学的な原理に基づいている。メモリ装置1100にデータD1old、D2old、D3old、D4oldとパリティPoldが保存されていると仮定する。
Pold=D1old+D2old+D3old+D4old ・・・・式(1)
ここで、D1oldとD2oldがD1newとD2newに変わると、Poldも変わることになる。メモリ装置1100に保存されたデータの中から一部のデータが変わると、従来のメモリシステムはメモリ装置1100からのすべてのデータD1old、D2old、D3old、D4oldを読み取りし、データを変更した後に新しいパリティPnewを生成しなければならない。
Pnew=D1new+D2new+D3old+D4old ・・・・式(2)
式(2)から式(1)を減算すると、次のようになる。
Pnew−Pold=(D1old+D2old+D3old+D4old)
−(D1new+D2new+D3old+D4old)。
Pnewは次のように計算することができる。
Pnew=Pold+(D1new+D2new+D3old+D4old)
−(D1old+D2old+D3old+D4old)。
Pnew=Pold+(D1new+D2new)−
(D1old+D2old)。
Pnew=Pold+(D1new−D1old)+
(D2new−D2old) ・・・・式(3)
図7の図表を参照すると、メモリ装置1100には4つの既存のデータDoldと1つの既存のパリティPが保存されていると仮定する。d1〜d4の位置にある既存のデータDoldはそれぞれ0、0、1、1である。即ち、D1oldは0であり、D2oldは0であり、D3oldは1であり、D4oldは1である。式(1)にD1old〜D4oldを代入するとPoldはXOR演算によって0になる。
Pnew=Pold+D1dif+D2dif=Pold+(D1new−
D1old)+(D2new−D2old) ・・・・式(3)
S110段階で、メモリコントローラ(図1参照、1200)はメモリ装置(図1参照、1100)から既存のデータDoldと既存のパリティPoldを読み取る。S120段階で、メモリコントローラ1200はホスト(図1参照、1300)から新しいデータDnewを受信する。S130段階で、メモリコントローラ1200は新しいデータDnewと、既存のデータDoldの差Ddifを計算する。S140段階で、メモリコントローラ1200は既存のパリティPoldとデータの差Ddifを利用して新しいパリティPnewを計算する。
P0=d0+d1+d2+d3+...+d53+d56+d57+d58
・・・・式(4)
式(4)と同様の方法で、第2から第8行R2〜R8でのパリティP1〜P7を求めることができる。下記の表1は各行のパリティを求める式を示す。
P0new=P0old+D0dif+D1dif+D2dif+D3dif+D4dif+D5dif+D6dif+D7dif・・・・式(4)
ここで、D1dif=D1new−D1oldである。領域別に新しいパリティジェネレータは式(4)を通じて設計される。図15に示すように、領域別にパリティ生成動作がバイト単位で実行されるとECCエンコーダ1270はバイトマスキング動作(byte−masking operation)を実行する。
前述した式(4)を再び参照すると、第1領域(section1)のデータが変更される場合、新しいパリティP0newは次のようになる。
P0new=P0old+D0dif+D1dif+D2dif+D3dif+D4dif+D5dif+D6dif+D7dif・・・・式(4)
式(4)で変更しようとする第1領域(section1)のデータにエラーがあれば新しいパリティP0newにもエラーが発生する。
図16及び図17は、部分データのエラー検出や訂正のためのデータ構造を示す図表である。図16は部分データのエラーを検出するためのデータ構造であり、図17は部分データのエラーを訂正するためのデータ構造である。
図18を参照すると、全データ(whole data、110)は、n(nは自然数)個の部分データ領域(partial DATA1〜partial DATAn)に分けられる。それぞれの部分データに対して部分データのエンコード動作が実行される。ここで、部分データのエンコードのときエラー検出及び訂正のためのパリティが生成される。
S220段階で、メモリコントローラ1200はメモリ装置(図1参照、1100)から読み取った部分データのためのEDCを使用してエラーを検査する。ここで、メモリ装置1100から読み取った部分データは既存のデータ(Dold、olddata)である。メモリ装置1100には既存のデータDoldとEDCのためのパリティPoldが保存されている。
S240段階でエラーがないか、S245段階でエラーが訂正された場合、S250段階でメモリコントローラ1200は部分データの読み取りを実行し、新しいパリティPnewを生成する。すなわち、図12で説明したように、新しいデータDnewと既存のデータDoldのデータの差Ddifと既存のパリティPoldを利用して新しいパリティPnewを生成する。
S260段階で、新しい部分データ(new partial data)と新しいパリティPnewをメモリ装置1100に保存する。
S320段階で、メモリ装置1100から読み取った部分データのためのECCを使用してエラーを検査する。メモリ装置1100には既存のデータDoldとECCのためのパリティPoldが保存されている。
S330段階でエラーがないか、S340段階でエラーが訂正された場合、S350段階で、メモリコントローラ1200は部分データの読み取りを実行し、新しいパリティを生成する。S360段階で、新しい部分データ(new partial data)と新しいパリティPnewをメモリ装置1100に保存する。
図22は、図1に示されたメモリシステムの応用例を示すブロック図である。図22を参照すると、メモリシステム2000はメモリ装置2100とコントローラ2200を備える。メモリ装置2100は複数のメモリチップを備える。複数のメモリチップは複数のグループに分割される。複数のメモリチップの各グループは1つの共通チャネルを介してコントローラ2200と通信できるように構成される。例示的に、複数のメモリチップは第1から第kチャンネルCH1〜CHkを介してコントローラ2200と通信できる。
コネクタ3300はメモリカード3000とホストを電気的に接続する。メモリカード3000はPCカード(PCMCIA、personal computer memory card international association)、コンパクトフラッシュ(登録商標)カード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS−MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュメモリ(UFS)などのメモリカードで構成される。
バス5100はコンピューティングシステム5000の構成要素の間にチャンネルを提供する。プロセッサ5200はコンピューティングシステム5000の諸動作を制御し、論理演算を実行する。メモリシステム5300は本発明の実施形態によるメモリシステム1000または2000を備える。
メモリシステム5300が動作メモリとして提供されるとき、コンピューティングシステム5000は他のストレージをさらに備えることができる。メモリシステム5300がストレージとして提供されるとき、コンピューティングシステム5000は他の動作メモリをさらに備えることができる。モデム5400は外部と有線または無線通信を行う。
コンピューティングシステム5000はスマートフォン、スマートパッドなどのモバイルマルチメディア機器、スマートテレビ、スマートモニタ、コンピュータ、ラップトップコンピュータなどのマルチメディアデバイスで構成される。
1100、2100・・・メモリ装置
1200、2200・・・コントローラ
1110・・・メモリセルアレイ
1120・・・アドレスデコーダ
1130・・・読み取りと書き込み回路
1140・・・制御ロジック
1210・・・システムバス
1220・・・制御ユニット
1230・・・ランダムアクセスメモリ
1240・・・ホストインターフェース
1250・・・メモリインターフェース
1260・・・ECCエンコーダ
Claims (30)
- ホストから部分データを変更するための要求信号を受信する段階と、
エラー検出コード(EDC)を利用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、
前記メモリ装置から読み取られた部分データにエラーがない場合には、前記ホストから提供される新しいデータDnewと前記メモリ装置から読み取られた部分データ(Dold、既存のデータと言う)との差を求め、前記データの差Ddifと前記メモリ装置から読み取られた既存のパリティPoldとを使用して、新しいパリティPnewを計算する段階と、
前記新しいデータと前記新しいパリティを前記メモリ装置に保存する段階を含むことを特徴とするメモリコントローラの部分データを変更する方法。 - 前記既存のデータにエラーがある場合には、前記メモリ装置から全データの読み取りを実行し、エラー訂正コード(ECC)を使用して、前記既存のデータのエラーを訂正する段階をさらに含み、
前記既存のデータのエラーはエラー検出コードを使用して、検出され、前記データの差を計算する段階は前記既存のデータにエラーが無い場合に遂行されることを特徴とする請求項1に記載のメモリコントローラの部分データを変更する方法。 - 前記既存のデータのエラーを訂正した後に、前記ホストから提供される新しいデータと前記エラーを訂正した既存のデータとの差を求め、前記データの差Ddifと前記メモリ装置から読み取られた既存のパリティPoldとを利用して、新しいパリティPnewを計算することを特徴とする請求項2に記載のメモリコントローラの部分データを変更する方法。
- 前記メモリ装置に保存される全データを複数の部分データに分割し、それぞれの部分データのEDCのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階とをさらに含むことを特徴とする請求項3に記載のメモリコントローラの部分データを変更する方法。
- 前記部分データのエンコード段階を実行した後に、部分符号化データ全体のECCのためのパリティを生成する全データのエンコード段階をさらに含むことを特徴とする請求項4に記載のメモリコントローラの部分データを変更する方法。
- 前記メモリ装置に保存される全データのECCのためのパリティを生成する全データのエンコード段階をさらに含むことを特徴とする請求項2に記載のメモリコントローラの部分データを変更する方法。
- 前記全データのエンコード段階を実行した後に、前記メモリ装置に保存される全データを複数の部分データに分割し、全データのEDCのためのパリティを生成する段階をさらに含むことを特徴とする請求項6に記載のメモリコントローラの部分データを変更する方法。
- それぞれの部分データのEDCのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階をさらに含むことを特徴とする請求項7に記載のメモリコントローラの部分データを変更する方法。
- 前記部分データのエンコード段階で、前記全データのエンコード段階で生成された全データの符号化パリティを生成することを特徴とする請求項8に記載のメモリコントローラの部分データを変更する方法。
- ホストから部分データを変更するための要求信号を受信する段階と、
エラー訂正コード(ECC)を使用して、メモリ装置から読み取られた部分データのエラーを検出する段階と、
検出の結果、前記メモリ装置から読み取られた部分データにエラーがある場合にエラーを訂正し、前記ホストから提供される新しいデータDnewと前記エラーが訂正された部分データ(Dold、既存のデータと言う)との差を求め、前記データの差Ddifと前記メモリ装置から読み取られた既存のパリティPoldとを使用して、新しいパリティPnewを計算する段階を含むことを特徴とするメモリコントローラの部分データを変更する方法。 - 前記新しいデータと前記新しいパリティを前記メモリ装置に保存する段階を含むことを特徴とする請求項10に記載のメモリコントローラの部分データを変更する方法。
- 前記メモリ装置に保存される全データを複数の部分データに分割し、それぞれの部分データのECCのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階と、
前記部分データのエンコード段階を実行した後に、部分符号化データ全体のECCのためのパリティを生成する全データのエンコード段階とをさらに含むことを特徴とする請求項10に記載のメモリコントローラの部分データを変更する方法。 - 前記メモリ装置に保存される全データのECCのためのパリティを生成する全データのエンコード段階と、
前記全データのエンコード段階を実行した後に、前記メモリ装置に保存される全データを複数の部分データに分割し、全データのECCのためのパリティを生成する段階とをさらに含むことを特徴とする請求項10に記載のメモリコントローラの部分データを変更する方法。 - それぞれの部分データのECCのためのパリティを生成し、部分符号化データを作成する部分データのエンコード段階をさらに含むことを特徴とする請求項13に記載のメモリコントローラの部分データを変更する方法。
- 前記部分データのエンコード段階で、前記全データのエンコード段階で生成された全データの符号化パリティを生成することを特徴とする請求項14に記載のメモリコントローラの部分データを変更する方法。
- 検出結果、前記メモリ装置から読み取られた部分データにエラーがない場合に、前記ホストから提供される新しいデータDnewと前記メモリ装置から読み取られた部分データDoldとの差を求め、前記データの差Ddifと前記メモリ装置から読み取られた既存のパリティPoldとを使用して、新しいパリティPnewを計算する段階をさらに含むことを特徴とする請求項10に記載のメモリコントローラの部分データを変更する方法。
- 前記メモリ装置は、揮発性メモリ装置であることを特徴とする請求項10に記載のメモリコントローラの部分データを変更する方法。
- 前記メモリ装置は、不揮発性メモリ装置であることを特徴とする請求項10に記載のメモリコントローラの部分データを変更する方法。
- メモリ装置のデータの一部が変更される場合に新しいパリティを生成するメモリコントローラにおいて、
前記変更される一部のデータの位置を識別するためのデータの位置識別器と、
前記データの位置識別器から前記変更される一部のデータの位置情報を受信して、ホストから入力される新しいデータDnewと前記メモリ装置から入力される既存のデータDoldとのデータの差Ddifを計算するデータ差の計算機と、
前記メモリ装置に保存されている既存のパリティPoldと前記データの差Ddifとを利用して、新しいパリティPnewを計算するパリティ計算機を含むことを特徴とするメモリコントローラ。 - 前記データの位置識別器、前記データ差の計算機、前記パリティ計算機は新しいパリティジェネレータを構成することを特徴とする請求項19に記載のメモリコントローラ。
- 前記データ差の計算機は前記メモリ装置に保存されたデータのうち変更されていないデータをすべて0として処理し、前記新しいデータDnewと前記既存のデータDoldとのデータの差Ddifを計算することを特徴とする請求項19に記載のメモリコントローラ。
- 前記データ差の計算機は前記変更される一部のデータを複数の領域に分割し、各領域からの新しいデータと既存のデータとのデータの差を計算することを特徴とする請求項19に記載のメモリコントローラ。
- 前記データ差の計算機は前記新しいデータと前記既存のデータとのデータの差をXOR演算で計算することを特徴とする請求項19に記載のメモリコントローラ。
- データとパリティPoldを保存するメモリ装置と、
前記メモリ装置に保存されたデータの一部を変更するための新しいデータDnewと位置情報を提供するホストと、
前記ホストから新しいデータと位置情報を受信して、前記ホストから提供される新しいデータと前記メモリ装置から入力される既存のデータとのデータの差Ddifを計算し、前記メモリ装置に保存されている既存のパリティPoldと前記データの差Ddifとを利用して、新しいパリティPnewを生成するメモリコントローラを含むことを特徴とするメモリシステム。 - 前記メモリコントローラは、
前記変更される一部のデータの位置を識別するためのデータの位置識別器と、
前記データの位置識別器から前記変更される一部のデータの位置情報を受信して、前記ホストから入力される新しいデータDnewと前記メモリ装置から入力される既存のデータDoldとのデータの差Ddifを計算するデータ差の計算機と、
前記既存のパリティPoldと前記データの差Ddifとを利用して、新しいパリティPnewを計算するパリティ計算機を備えることを特徴とする請求項24に記載のメモリシステム。 - 前記データ差の計算機は前記メモリ装置に保存されたデータのうち変更されていないデータをすべて0として処理し、前記新しいデータDnewと前記既存のデータDoldとのデータの差Ddifを計算することを特徴とする請求項24に記載のメモリシステム。
- 前記データ差の計算機は前記変更される一部のデータを複数の領域に分割し、各領域からの新しいデータと既存のデータとのデータの差を計算することを特徴とする請求項24に記載のメモリシステム。
- メモリコントローラで第1パリティを決定し、前記第1パリティはメモリ装置に格納された第1データの全体に該当するパリティであり、前記第1データは第1及び第2部分を含む段階と、
前記第1部分を新しいデータに取り替えるように要請される段階と、
前記メモリコントローラで、前記新しいデータと前記第1部分とに基づいたデータ差値を生成する段階と、
前記メモリコントローラで、前記データ差と前記第1パリティに基づいて、前記第1データの新しいパリティを生成することによって、前記第1パリティをアップデートする段階と、
前記メモリ装置で前記新しいデータと前記新しいパリティとを格納することによって、前記第1データの第1部分を前記新しいデータに取り替える段階とを含むメモリコントローラパリティ情報をアップデートするためのメモリコントローラの動作方法。 - 前記メモリコントローラは前記データ差を発生する動作を遂行し、前記新しいパリティを生成することは前記第2部分を使用しなく遂行され、前記新しいパリティは前記新しいデータと前記第2部分とを含む前記第1データの全体に該当する請求項28に記載のメモリコントローラパリティ情報をアップデートするためのメモリコントローラの動作方法。
- 前記第1部分は前記第1データの隣接するビットを含み、前記第2部分は前記第1データの隣接するビットを含み、前記第1及び第2部分は互いにオーバーラップされない請求項28に記載のメモリコントローラパリティ情報をアップデートするためのメモリコントローラの動作方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0129549 | 2012-11-15 | ||
KR1020120129549A KR102041874B1 (ko) | 2012-11-15 | 2012-11-15 | 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법 |
KR10-2012-0129548 | 2012-11-15 | ||
KR1020120129548A KR102002044B1 (ko) | 2012-11-15 | 2012-11-15 | 새 패러티를 생성하기 위한 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러와 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014099174A true JP2014099174A (ja) | 2014-05-29 |
Family
ID=50555968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013235041A Pending JP2014099174A (ja) | 2012-11-15 | 2013-11-13 | メモリ装置に保存された部分データを変更するメモリコントローラ及びその部分データを変更する方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9311181B2 (ja) |
JP (1) | JP2014099174A (ja) |
CN (1) | CN103824599B (ja) |
DE (1) | DE102013112195A1 (ja) |
TW (1) | TWI627535B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6414497B2 (ja) * | 2015-03-25 | 2018-10-31 | アイシン・エィ・ダブリュ株式会社 | メモリコントローラ |
JP2016184372A (ja) * | 2015-03-27 | 2016-10-20 | 富士通株式会社 | ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法 |
DE102015104841B4 (de) * | 2015-03-30 | 2024-08-14 | Infineon Technologies Ag | Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors |
US10176040B2 (en) | 2016-04-05 | 2019-01-08 | Micron Technology, Inc. | Error correction code (ECC) operations in memory |
KR20170121798A (ko) * | 2016-04-26 | 2017-11-03 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US20170324425A1 (en) * | 2016-05-06 | 2017-11-09 | Infineon Technologies Ag | Embedded parity matrix generator |
CN107068194A (zh) * | 2017-04-20 | 2017-08-18 | 聚辰半导体(上海)有限公司 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
US10585749B2 (en) * | 2017-08-10 | 2020-03-10 | Samsung Electronics Co., Ltd. | System and method for distributed erasure coding |
KR20190031787A (ko) | 2017-09-18 | 2019-03-27 | 삼성전자주식회사 | 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100107036A1 (en) * | 2008-10-28 | 2010-04-29 | Micron Technology, Inc. | Error correction in multiple semiconductor memory units |
US20110239081A1 (en) * | 2010-03-23 | 2011-09-29 | Kabushiki Kaisha Toshiba | Semiconductor storage device and method for controlling a semiconductor storage device |
US20120254694A1 (en) * | 2011-04-03 | 2012-10-04 | Anobit Technologies Ltd. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06342405A (ja) | 1993-06-01 | 1994-12-13 | Nec Corp | ファイル・システム |
JP3270959B2 (ja) | 1993-10-05 | 2002-04-02 | 株式会社日立製作所 | ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置 |
JPH11212877A (ja) | 1998-01-28 | 1999-08-06 | Nec Kofu Ltd | 記憶装置 |
KR100300175B1 (ko) | 1998-09-17 | 2001-10-27 | 서평원 | 인쇄회로기판에다운로드하는방법 |
JP2000259496A (ja) | 1999-03-08 | 2000-09-22 | Nec Kofu Ltd | 記憶装置 |
JP2001337759A (ja) | 2000-05-24 | 2001-12-07 | Fuji Xerox Co Ltd | ディスクアレイ装置 |
JP4877894B2 (ja) * | 2001-07-04 | 2012-02-15 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
KR100423812B1 (ko) | 2001-12-20 | 2004-03-22 | 한국전자통신연구원 | 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법 |
US7100097B2 (en) | 2002-07-16 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Detection of bit errors in maskable content addressable memories |
JP4336168B2 (ja) | 2003-09-08 | 2009-09-30 | 株式会社ルネサステクノロジ | Ecc機能付き半導体記憶装置 |
US7191379B2 (en) | 2003-09-10 | 2007-03-13 | Hewlett-Packard Development Company, L.P. | Magnetic memory with error correction coding |
US7188303B2 (en) * | 2003-12-29 | 2007-03-06 | Intel Corporation | Method, system, and program for generating parity data |
KR100634414B1 (ko) | 2004-09-06 | 2006-10-16 | 삼성전자주식회사 | 에러 검출용 패러티 발생기를 구비한 낸드 플래시 메모리 장치 및 그것의 에러 검출 방법 |
US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
JP4643334B2 (ja) * | 2005-03-31 | 2011-03-02 | 富士通セミコンダクター株式会社 | 半導体記憶装置 |
US7467335B2 (en) | 2005-07-01 | 2008-12-16 | Alcatel-Lucent Usa Inc. | Method and apparatus for synchronizing data channels using an alternating parity deskew channel |
TWI309768B (en) * | 2005-09-06 | 2009-05-11 | Realtek Semiconductor Corp | Error correction apparatus capable of raising memory bandwidth utilization efficiency and related method thereof |
US7954034B1 (en) * | 2005-09-30 | 2011-05-31 | Emc Corporation | Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme |
JP4469783B2 (ja) * | 2005-11-28 | 2010-05-26 | 株式会社東芝 | メモリ保護装置、メモリ保護システムおよびメモリ保護方法 |
JP4643479B2 (ja) * | 2006-03-22 | 2011-03-02 | 株式会社東芝 | アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法 |
US7945840B2 (en) | 2007-02-12 | 2011-05-17 | Micron Technology, Inc. | Memory array error correction apparatus, systems, and methods |
KR100855979B1 (ko) | 2007-02-13 | 2008-09-02 | 삼성전자주식회사 | 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법 |
KR101472797B1 (ko) * | 2007-07-16 | 2014-12-15 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
JP2010123156A (ja) | 2008-11-17 | 2010-06-03 | Elpida Memory Inc | 半導体記憶装置及びその制御方法 |
US8769188B2 (en) * | 2009-11-18 | 2014-07-01 | Mediatek Inc. | Nonvolatile memory controller and method for writing data to nonvolatile memory |
KR101079367B1 (ko) | 2010-01-13 | 2011-11-02 | 성균관대학교산학협력단 | 플래시 메모리를 사용하는 raid 저장 장치에서 패리티 데이터 관리 방법 및 그 장치 |
KR101623119B1 (ko) | 2010-02-01 | 2016-05-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 에러 제어 방법 |
JP4940322B2 (ja) | 2010-03-16 | 2012-05-30 | 株式会社東芝 | 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法 |
JP2012022422A (ja) | 2010-07-13 | 2012-02-02 | Panasonic Corp | 半導体記録再生装置 |
KR20120129549A (ko) | 2011-05-20 | 2012-11-28 | 송권호 | 향기가 배출되는 의자 |
KR101249956B1 (ko) | 2011-05-20 | 2013-04-03 | 한밭대학교 산학협력단 | 세탁물 건조장치 및 건조방법 |
US9444496B2 (en) * | 2012-04-04 | 2016-09-13 | University Of Southern California | Correctable parity protected memory |
CN104205059B (zh) * | 2012-04-27 | 2017-07-14 | 株式会社日立制作所 | 存储系统和存储控制装置 |
US9619318B2 (en) * | 2013-02-22 | 2017-04-11 | Intel Deutschland Gmbh | Memory circuits, method for accessing a memory and method for repairing a memory |
KR101750662B1 (ko) * | 2013-06-24 | 2017-06-23 | 마이크론 테크놀로지, 인크. | 데이터 에러 교정용 회로, 장치, 및 방법 |
-
2013
- 2013-11-05 US US14/071,771 patent/US9311181B2/en active Active
- 2013-11-06 DE DE102013112195.0A patent/DE102013112195A1/de active Pending
- 2013-11-06 TW TW102140195A patent/TWI627535B/zh active
- 2013-11-13 JP JP2013235041A patent/JP2014099174A/ja active Pending
- 2013-11-15 CN CN201310575217.0A patent/CN103824599B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100107036A1 (en) * | 2008-10-28 | 2010-04-29 | Micron Technology, Inc. | Error correction in multiple semiconductor memory units |
WO2010062655A2 (en) * | 2008-10-28 | 2010-06-03 | Micron Technology, Inc. | Error correction in multiple semiconductor memory units |
JP2012507104A (ja) * | 2008-10-28 | 2012-03-22 | マイクロン テクノロジー, インク. | 複数の半導体メモリユニットにおけるエラー訂正 |
US20110239081A1 (en) * | 2010-03-23 | 2011-09-29 | Kabushiki Kaisha Toshiba | Semiconductor storage device and method for controlling a semiconductor storage device |
JP2011198272A (ja) * | 2010-03-23 | 2011-10-06 | Toshiba Corp | 半導体記憶装置および半導体記憶装置の制御方法 |
US20120254694A1 (en) * | 2011-04-03 | 2012-10-04 | Anobit Technologies Ltd. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
Also Published As
Publication number | Publication date |
---|---|
TWI627535B (zh) | 2018-06-21 |
US9311181B2 (en) | 2016-04-12 |
US20140136920A1 (en) | 2014-05-15 |
DE102013112195A1 (de) | 2014-05-15 |
CN103824599B (zh) | 2018-06-05 |
TW201432458A (zh) | 2014-08-16 |
CN103824599A (zh) | 2014-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014099174A (ja) | メモリ装置に保存された部分データを変更するメモリコントローラ及びその部分データを変更する方法 | |
US10002652B1 (en) | Memory system and method for operating the same | |
US9602134B2 (en) | Operating method of error correction code decoder and memory controller including the error correction code decoder | |
US10120585B2 (en) | Memory system of optimal read reference voltage and operating method thereof | |
US10484008B2 (en) | Memory system with on-the-fly error detection and termination and operating method thereof | |
KR20180060524A (ko) | 메모리 시스템 및 그의 동작 방법 | |
KR20120123985A (ko) | 메모리 시스템 및 에러 정정 방법 | |
US20120124449A1 (en) | Method and apparatus to perform concurrent read and write memory operations | |
KR20180058328A (ko) | 메모리 시스템 및 그의 동작 방법 | |
KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
US20160334999A1 (en) | Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks | |
US11182243B2 (en) | Memory system with adaptive information propagation and method of operating such memory | |
US10289328B2 (en) | Memory controller and method for handling host request based on data character | |
US10348335B2 (en) | Miscorrection avoidance for turbo product codes | |
KR102041874B1 (ko) | 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법 | |
US11281381B2 (en) | Storage node of distributed storage system and method of operating the same | |
US11023388B2 (en) | Data path protection parity determination for data patterns in storage devices | |
US11062758B2 (en) | Memory system to process multiple word line failures with limited storage and method of operating such memory system | |
US11115062B2 (en) | Memory system with adaptive threshold decoding and method of operating such memory system | |
KR102002044B1 (ko) | 새 패러티를 생성하기 위한 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러와 메모리 시스템 | |
KR20180058327A (ko) | 컨트롤러, 메모리 시스템 및 그의 동작 방법 | |
US9996412B2 (en) | Enhanced chip-kill schemes by using sub-trunk CRC | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器系统及其操作方法 | |
US10922222B2 (en) | Data processing system and operating method for generating physical address update history | |
CN108073469A (zh) | 用于通用产品代码的数据映射方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160815 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20161222 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20161228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20171226 |