JP2013137708A - メモリコントローラ、データ記憶装置およびメモリ制御方法 - Google Patents
メモリコントローラ、データ記憶装置およびメモリ制御方法 Download PDFInfo
- Publication number
- JP2013137708A JP2013137708A JP2011289074A JP2011289074A JP2013137708A JP 2013137708 A JP2013137708 A JP 2013137708A JP 2011289074 A JP2011289074 A JP 2011289074A JP 2011289074 A JP2011289074 A JP 2011289074A JP 2013137708 A JP2013137708 A JP 2013137708A
- Authority
- JP
- Japan
- Prior art keywords
- error detection
- data
- memory
- host
- code
- 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
-
- 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
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/2906—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 using block codes
Abstract
【課題】データが入力されてからホストに出力されるまでの全経路について誤り検出を可能とするメモリコントローラを得ること。
【解決手段】メモリコントローラであって、ホストから受信したデータに対する第1の誤り検出符号を生成する第1の誤り検出符号生成部と、データと第1の誤り検出符号とをメモリへ書き込むよう制御し、読み出し要求があった場合にメモリからデータと第1の誤り検出符号を読み出す制御部と、メモリから読み出されたデータと第1の誤り検出符号に基づいて誤り検出処理を行う誤り検出部と、メモリから読み出したデータに基づいて第2の誤り検出符号を生成する第2の誤り検出符号生成部と、データに誤りがあることを示す不整合符号を生成する不整合符号生成部と、ホストへ送信するデータに対して、第2の誤り検出符号と不整合符号とのうちいずれか一方を誤り検出処理によるエラー検出結果に基づいて選択して付加する。
【選択図】図4
【解決手段】メモリコントローラであって、ホストから受信したデータに対する第1の誤り検出符号を生成する第1の誤り検出符号生成部と、データと第1の誤り検出符号とをメモリへ書き込むよう制御し、読み出し要求があった場合にメモリからデータと第1の誤り検出符号を読み出す制御部と、メモリから読み出されたデータと第1の誤り検出符号に基づいて誤り検出処理を行う誤り検出部と、メモリから読み出したデータに基づいて第2の誤り検出符号を生成する第2の誤り検出符号生成部と、データに誤りがあることを示す不整合符号を生成する不整合符号生成部と、ホストへ送信するデータに対して、第2の誤り検出符号と不整合符号とのうちいずれか一方を誤り検出処理によるエラー検出結果に基づいて選択して付加する。
【選択図】図4
Description
本実施形態は、メモリコントローラ、データ記憶装置およびメモリ制御方法に関する。
近年の半導体プロセスは微細化が進み、宇宙線などの影響によるソフトエラーが顕在
化しつつあり、不揮発性半導体メモリを用いたSSD(Solid State Drive)などのコンシューマー向けデータ記憶装置においてもエラーに対する対策が求められている。
化しつつあり、不揮発性半導体メモリを用いたSSD(Solid State Drive)などのコンシューマー向けデータ記憶装置においてもエラーに対する対策が求められている。
NANDフラッシュメモリなどのメディア部に対しては従来からECC(Error Check and Correct)によるデータ保護は一般的に行われてきた。しかし、データがホストから入力されてからECCによる誤り訂正符号を生成するまでの経路は、上述のECCでは保護されない。このため、保護されていない区間でエラーが発生した場合、エラーを検出することができず、データ記憶装置は、実際には不正なデータをエラーのないデータとしてホストに送信してしまうことになる。
本実施形態は、ホストからデータ記憶装置にデータが入力されてから、メディア部への書き込みおよび読み出しの後にホストに出力されるまでの全経路についてエラーを検出することが可能なメモリコントローラ、データ記憶装置およびメモリ制御方法を提供する。
本願発明の一態様によれば、データを不揮発に記憶するメモリを制御するメモリコントローラであって、ホストから受信したデータに対する第1の誤り検出符号を生成する第1の誤り検出符号生成部と、データと第1の誤り検出符号とを前記メモリへ書き込むよう制御する。また、ホストからデータの読み出し要求があった場合にメモリからデータと第1の誤り検出符号とを読み出し、メモリから読み出されたデータと第1の誤り検出符号とに基づいて誤り検出処理を行う誤り検出部と、メモリから読み出したデータに基づいて第2の誤り検出符号を生成する第2の誤り検出符号生成部と、メモリから読み出したデータに誤りがあることを示す不整合符号を生成する不整合符号生成部と、を備え、ホストへ送信するデータに対して、第2の誤り検出符号と不整合符号とのうちいずれか一方を誤り検出処理によるエラー検出結果に基づいて選択して付加する。
以下に添付図面を参照して、実施形態にかかるメモリコントローラ、データ記憶装置およびメモリ制御方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
図1は、実施の形態にかかるデータ記憶装置の構成例を示すブロック図である。図1に示すように、本実施の形態のデータ記憶装置1は、メモリコントローラ2とNANDメモリ(メモリ)3を備える。データ記憶装置1は、ホスト4とホストバス5を介して接続されている。ホスト4は、例えば、パーソナルコンピュータ、携帯端末などの電子機器である。図1において、太線と細線の組み合わせで示した接続線はデータバスを示し、細線だけで示した接続線は制御バスを示す。
メモリコントローラ2は、MPU(Micro Processing Unit)(制御部)21、ホスト制御部22、RAM(Random Access Memory)制御部(RAMC)23、NAND制御部(NANDC)24およびRAM25を備える。ホスト制御部22とRAMC23、RAMC23とNANDC24、RAMC23とRAM25は、それぞれデータバスである内部バス26で接続されている。
ホスト制御部22は、ホスト4との間のインタフェース規格に従った処理を実施し、ホストバス5経由でホスト4から受信した命令、データなどを内部バス26に出力する。また、ホスト制御部22は、内部バス26経由で入力されたデータ、MPU21からの応答などをホストバス5経由でホスト4へ送信する。
ホスト4とデータ記憶装置1との間のインタフェース規格としては、例えば、SATA(Serial Advanced Technology Attachment)を用いることができる。SATAでは、FIS(Frame Information Structure)と呼ばれる転送単位でデータの転送を行う。FISには、転送対象のデータの後に当該データに対するCRC(Cyclic Redundancy Check)が格納される。このCRCにより、ホストバス5におけるエラーを検出することができる。なお、ここでは、ホスト4とデータ記憶装置1との間のインタフェース規格としてSATAを用いる例を説明するが、ホスト4とデータ記憶装置1との間のインタフェース規格は、これに限定されない。例えば、PCI(Peripheral Component Interconnect) Expressを用いる場合には、TLP(Transaction Layer Packet)と呼ばれる転送単位でデータの転送を行う。TLP内には、転送対象のデータの後に当該データに対するECRC(Transaction Layer end−to−end 32bit CRC)を格納する機能が用意されている。このECRCにより、ホストバス5におけるエラーを検出することができる。
MPU21は、データ記憶装置1の各構成要素を統括的に制御する制御部である。ここでは、制御部としてMPUを用いる例を説明するが、制御部はMPUに限定されず演算機能を有するユニットであればよい。MPU21は、ホスト4からホスト制御部22経由で命令を受けた場合に、その命令に従った制御を行う。例えば、MPU21は、ホスト4からの命令に従って、NANDメモリ3へのデータの書き込み、NANDメモリ3からのデータの読み出しなどを、NANDC24へ指示する。
RAM25は、メモリコントローラ2がホスト4から受信したデータをNANDメモリ3へ記憶するまでに一時格納したり、NANDメモリ3から読み出したデータをホスト4へ送信するまでに一時格納したりするために使用されるメモリである。データ記憶装置1において、データに対して誤り検出符号や誤り訂正符号が付加される場合に、これらの符号もRAM25に格納されることもある。RAMC23は、MPU21からの指示に従って、RAM25へのデータ格納およびデータ読み出しを制御する。
なお、図1に示したデータ記憶装置1の構成は一例であり、図1の構成に限定されない。また、NANDメモリ3の代わりに磁気ディスク等の他の記憶手段を用いてもよい。
次に、本実施の形態のNANDメモリ3への書き込み動作について説明する。図2は、書き込み動作に関するホスト制御部22の詳細構成例を示す図である。書き込み処理部221は、ホスト制御部22において、NANDメモリ3への書き込み時の処理を行うブロックである。書き込み処理部221は、FIS CRCエラー検出部(FIS CRC Checker)222とEE CRC生成部(EE CRC generator)223を備える。なお、図2では、データの流れをわかりやすくするために、図1に記載したブロックのうちの一部の図示を省略している。また、接続関係は簡略化して示している。
ホスト4は、FIS内にデータと当該データに対応するCRC(以下、FIS CRCという)とを格納してデータ記憶装置1へ送信する。なお、FIS内には、データとFIS CRC以外に格納される情報もあり、これらの情報についても送受信されるが、これらの送受信動作は従来と同様であるため説明は省略する。
本実施の形態では、データ記憶装置1がホスト4からデータを受信してから、メディア部への書き込みおよび読み出しの後にホストに送信されるまでの全経路について、エラーを検出可能とするためにEnd−to−Endでの誤り検出符号を生成する。この誤り検出符号を本実施の形態では、EE CRC(第1の誤り検出符号)とよび、FIS CRC(第2の誤り検出符号)と区別する。
ホスト制御部22は、ホスト4からデータの書き込みを指示する書き込みコマンドを受信すると、書き込みコマンドをMPU21へ通知する。ホスト制御部22のFIS CRCエラー検出部222は、ホスト4から書き込みデータを受信すると、書き込みデータと当該書き込みデータに対応するFIS CRCとを用いてエラー検出を行う。エラーが検出されなかったデータは、RAM25に格納される。FIS CRCエラー検出部222によりエラーが検出された場合は、ホスト4へエラーを通知するなどインタフェース規格に従ったエラー処理を実施する。
また、ホスト制御部22のEE CRC生成部223は、FIS CRCエラー検出部222のチェックと並行して、ホスト4から受信した書き込みデータに基づいてEE CRCを生成し、生成したEE CRCをRAM25へ格納する。ここでは、EE CRCとしてCRC32を用いる例を説明するが、EE CRCとしては誤り検出符号であればどのような符号を用いてもよい。
MPU21は、RAMC23に対して、RAM25に格納された書き込みデータと当該書き込みデータに対応するEE CRCとをRAM25から読み出してNANDC24へ転送するよう指示する。また、MPU21は、NANDC24に対して転送されたデータのNANDメモリ3への書き込みを指示する。MPU21は、ホストから受け取った書き込みデータの論理アドレスとNANDメモリ3上のアドレス(物理アドレス)との対応を管理する。
図3は、NANDメモリ3へのデータ格納フォーマットの一例を示す図である。ここでは、EE CRCを1データブロック(512Byte)のデータに対して生成することとし、図3に示すように、1データブロックごとにEE CRCが付加される。なお、ここでは、1データブロックは512Byteとしているが、1データブロックは2048Byteや32Byteなどでもよく、512Byteに限定されない。また、EE CRCを生成するデータは、1データブロックに限定されず、複数データブロックであってもよいし、1データブロックより少ないデータであってもよい。
このように、EE CRCはデータとともにNANDメモリ3へ書き込まれるため、EE CRCの生成からNANDメモリ3までの経路がEE CRCにより保護される。すなわち、EE CRCの生成からNANDメモリ3までの経路上で生じたエラーを検出可能となる。また、通常と同様に、ホスト4からFIS CRCエラー検出部222までは、FIS CRCにより保護されている。このため、本実施の形態では、書き込み動作において、図2に示すように、ホスト4からNANDメモリ3までの全経路が保護されることになる。
次に、本実施の形態のNANDメモリ3からの読み出し動作について説明する。図4は、読み出し動作に関するホスト制御部22の詳細構成例を示す図である。読み出し処理部224は、ホスト制御部22において、NANDメモリ3からの読み出し時の処理を行うブロックである。読み出し処理部224は、FIS CRC生成部(FIS CRC generator)225(第2の誤り符号生成部)とEE CRC生成部(EE CRC generator)226と比較器227とビット反転部(不整合符号生成部)228とセレクタ(Sel)229とを備える。EE CRC生成部226としては、書き込み処理部221のEE CRC生成部223を用いてもよい。なお、図4では、データの流れをわかりやすくするために、図1に記載したブロックのうちの一部の図示を省略している。また、接続関係は簡略化して示している。
図5は、本実施の形態のメモリコントローラ2における読み出し動作の一例を示すフローチャートである。まず、メモリコントローラ2のホスト制御部22は、ホスト4からデータの読み出しを指示する読み出しコマンドを受信したか否かを判断する(ステップS1)。なお、読み出しコマンドでは、読み出し対象のアドレスが指定されている。
データの読み出しコマンドを受信した場合(ステップS1 Yes)、ホスト制御部22は、読み出しコマンドをMPU21へ通知し、MPU21は、ホスト4から指示された読み出し対象データと対応するEE CRCとをNANDメモリ3から読み出すようNANDC24へ指示する(ステップS2)。NANDC24は、NANDメモリ3から読み出したデータとEE CRCとをRAM25へ格納する。
ホスト制御部22は、RAM25に格納されたデータ(NANDメモリ3から読み出されたデータ)に基づいてFIS CRCを生成するとともに、RAM25に格納されたデータおよびEE CRC(NANDメモリ3から読み出されたデータおよびEE CRC)に基づいてエラー検出(EE CRC チェック)を行う(ステップS3)。
具体的には、RAM25から読み出されたデータは、ホスト制御部22のFIS CRC生成部225およびEE CRC生成部226に入力されるとともにホスト4へ出力される。これと並行して、ホスト制御部22のFIS CRC生成部225は、RAM25から読み出されたデータに対するFIS CRCを生成してセレクタ229へ出力する。ホスト制御部22のEE CRC生成部226は、RAM25に格納されたデータに基づいてEE CRCを生成して比較器227へ入力する。RAM25から読み出されたEE CRCは、比較器227に入力される。比較器227は、EE CRC生成部226が生成したEE CRCとRAM25から読み出されたEE CRCとを比較し一致するか否かを判定して、判定結果をセレクタ229に出力する。EE CRC生成部226に入力されたデータにエラーが無い場合は、比較器227の判定結果は、「一致」という結果になり、EE CRC生成部226に入力されたデータにエラーがある場合には、比較器227の判定結果は、「一致しない」という結果になる。従って、比較器227の判定結果が、「一致しない」という結果であった場合、EE CRC生成部226に入力されたデータ、すなわち、書き込み時にEE CRC生成部223に入力されてから、読み出し時にEE CRC生成部226に入力されるまでの経路のどこかでエラーが生じたことになる。このように、EE CRC生成部226および比較器227が、EE CRCによるエラー検出を行うEE CRC Checker(誤り検出部)を構成する。
比較器227による判定結果によりエラーの有無が判定され(ステップS4)、エラー無し(比較器227の比較結果が「一致」)であった場合(ステップS4 No)、FIS CRCとデータをホストへ送信する(ステップS5)。具体的には、セレクタ229は、比較器227の判定結果に応じて、FIS CRC生成部225から入力されるFIS CRCと、ビット反転部228から出力されるビット反転後のFIS CRCと、のうちのいずれか一方を選択して出力する。比較器227の判定結果が「一致」の場合、セレクタ229は、FIS CRC生成部225から入力されるFIS CRCを選択して出力する。なお、データは、上述のとおり、FISのフォーマットに従ってホスト4へ送信されている。
そして、ホスト制御部22は、ホスト4からの応答に基づいて転送したデータにエラーが有るか否かを判定する(ステップS6)。エラーが無かった場合(ステップS6 No)、MPU21またはホスト制御部22は、全読み出し対象のデータのホスト4への送信が終了したか否かを判定し(ステップS7)、終了した場合(ステップS7 Yes)は読み出し処理を終了する。全読み出し対象のデータのホスト4への送信が終了していない場合(ステップS7 No)、ステップS2へ戻る。なお、ここでは、ステップS6では、ホスト4が、受信したデータおよびFIS CRCに基づいて誤りがあるか否かを判定し、ホスト制御部22は、この判定結果を受信することにより誤りがあるか否かを判定しているが、ステップS6でのエラーの判定は、これに限定されない。例えば、ステップS4の判定結果や再度ホスト制御部22が再度転送したデータについて誤り検出をした結果等を用いてもよいし、これらの判定結果の組み合わせを用いてもよい。
一方、ステップS4でエラー有り(比較器227の比較結果が「一致しない」)であった場合(ステップS4 Yes)、ホスト制御部22は、FIS CRC生成部225が生成したFIS CRCの値を、対応するデータにエラーがあることを示す値に変更して(ステップS8)、ステップS5へ進む。具体的には、ビット反転部228が、FIS CRC生成部225が生成したFIS CRCのビットを反転させてセレクタ229へ出力する。セレクタ229は、比較器227の判定結果が「一致しない」であった場合はビット反転部228から出力されるビット反転後のFIS CRCを選択して出力する。
また、ステップS6でエラー有り(ステップS6 Yes)の場合、ホスト制御部22は、エラーステータスと割り込みをホスト4へ送信し(ステップS9)、処理を終了する。具体的には、SATAの場合、エラーステータスと割り込みをRegister FIS Device to Host(RegD2H FIS)とよばれるFISにより送信する。ここでは、エラーが発生した場合、読み出し対象データが残っていてもその後のデータを送信しないようにしているが、エラー発生時にその後の読み出し対象データをホスト4へ送信するか否か等のエラー発生時の処理の内容はこれに限定されない。
また、ステップS6でエラー無し(ステップS6 No)であった場合にも、ステータス(エラーの無いことを示す)と割り込みをホストへ送信してもよい。
なお、ホスト制御部22は、RAM25から読み出されたデータ、セレクタ229から出力されるFIS CRC(またはビット反転後のFIS CRC)をFISのフォーマットに従ってホスト4へ転送するよう制御する。ビット反転させたFIS CRCは、エラーが検出されたデータに対応するFIS CRCとしてホスト4へ送信される。
このように、本実施の形態では、比較器227の判定結果が「一致しない」であった場合、すなわちデータにエラーが生じている場合には、FIS CRCを、ビット反転することによりデータと整合しない符号に変更してホスト4へ送信する。これにより、ホスト4は、データ記憶装置1から受信したデータにエラーがあることを認識することができる。
NANDメモリ3からEE CRC生成部226までの経路は、EE CRCにより保護され、FIS CRC生成部225からホスト4までは、FIS CRCにより保護されている。このため、読み出し動作において、図4に示すように、NANDメモリ3からホスト4までの全経路が保護されることになる。また、上述のように、書き込み動作で説明したとおり、ホスト4からNANDメモリ3までの全経路も保護されており、NANDメモリ3にデータが格納されている間も含めて、ホスト4からデータを受信してNANDメモリ3に格納しNANDメモリ3から読み出してホスト4へ送信するまでの全経路を保護することができる。
また、本実施の形態では、ホスト4へデータを送信しつつ、データに対応するEE CRCをチェックして、エラーが検出された場合に、FIS CRCを、ビット反転するようにしている。従って、EE CRCを用いたチェックを行わない場合と同等のホスト4への転送速度を維持しつつ、ホスト4へ送信する間際までのエラーの検出を行うことができる。なお、本実施の形態では、FIS CRCを反転することにより、ホスト4へエラーを通知したが、比較器227の判定結果によるエラー検出結果を、別の方法でホスト4へ通知するようにしてもよい。
また、本実施の形態では、NANDメモリ3へのデータが格納されている間に生じるエラーを訂正する誤り訂正処理(以下、NANDメモリ3に対する誤り訂正処理という)については述べていないが、NANDメモリ3に対する誤り訂正処理を追加してもよい。このNANDメモリ3に対する誤り訂正処理を行う場合には、EE CRCを付加したデータに対して誤り訂正符号を生成し、EE CRCを付加したデータと誤り訂正符号とをNANDメモリ3へ格納する。そして、読み出し時には、誤り訂正符号に基づく誤り訂正処理を行った後のEE CRCおよびデータをホスト制御部22への入力とすればよい。
図6、7は、本実施の形態の効果を説明するための図である。図6は、データパスのエラーに対する比較例の保護方法を示し、図7は、本実施の形態のデータパスのエラーに対する保護方法を示している。図6、7では、NANDメモリ3に対する誤り訂正処理を行う場合の例を示している。
図6に示すように、比較例は、書き込み時に、ホストからFIS CRCが付加されたデータを受信して、FIS CRCを用いたエラー検出(FIS CRC−Check)を行い、その後、内部データパス保護機構により誤り訂正符号(ECC)が生成され、データとECCがNANDメモリに格納される。読み出し時には、NANDメモリからデータとECCが読み出され、ECCを用いた誤り訂正処理後に、データに対してFIS CRCが生成され(FIS CRC−Gen)、データとFIS CRCがホストへ送信される。このため、内部データパス保護機構による誤り訂正処理を行ったとしても、図6に示すように、FIS CRCを用いたエラー検出と内部データパス保護機構による誤り訂正符号の生成までの間と、内部データパス保護機構により誤り訂正処理がされてからFIS CRCが生成されるまでの間と、が非保護区間となる。NANDメモリ3に対する誤り訂正処理を行わない場合は、さらに、内部データパス保護機構とNANDメモリ3の間も非保護区間となる。
これに対し、本実施の形態では、図7に示すように、FIS CRCを用いたエラー検出と並行してホストから入力されたデータに対してEE CRCを生成し(EE CRC−Gen)、EE CRCはデータとともにNANDメモリに格納される。そして、読み出し時には、ECCを用いた誤り訂正処理後のEE CRCとデータに基づいて、EE CRCを用いたエラー検出(EE CRC−Check)が実施される。これにより、End−to−Endのデータ保護を実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 データ記憶装置、2 メモリコントローラ、3 NANDメモリ、4 ホスト、21 MPU、22 ホスト制御部、24 NANDC、222 FIS CRC Checker、223,226 EE CRC generator、225 FIS CRC generator、227 比較器、228 ビット反転部。
Claims (7)
- 不揮発性メモリを制御するメモリコントローラであって、
ホストから受信したデータに対する第1の誤り検出符号を生成する第1の誤り検出符号生成部と、
前記データと該データに対応する前記第1の誤り検出符号とを前記メモリへ書き込むよう制御し、前記ホストからデータの読み出し要求があった場合に前記メモリからデータと該データに対応する前記第1の誤り検出符号とを読み出す制御部と、
前記メモリから読み出されたデータと該データに対応する前記第1の誤り検出符号とに基づいて誤り検出処理を行う誤り検出部と、
前記メモリから読み出したデータに基づいて第2の誤り検出符号を生成する第2の誤り検出符号生成部と、
前記メモリから読み出したデータに誤りがあることを示す不整合符号を生成する不整合符号生成部と、
を備え、
前記ホストへ送信する前記メモリから読み出したデータに対して、前記第2の誤り検出符号と前記不整合符号とのうちいずれか一方を前記誤り検出処理によるエラー検出結果に基づいて選択して付加することを特徴とするメモリコントローラ。 - 前記ホストへ送信するデータに対応する前記誤り検出処理によるエラー検出結果が、誤りの無いことを示す結果であった場合に前記第2の誤り検出符号を選択して付加し、前記ホストへ送信するデータに対応する前記誤り検出処理によるエラー検出結果が、誤りの有ることを示す結果であった場合に前記不整合符号を選択して付加することを特徴とする請求項1に記載のメモリコントローラ。
- 前記ホストへデータを送信した後に、該データに付加した前記第2の誤り検出符号または前記不整合符号を前記ホストへ送信することを特徴とする請求項1または2に記載のメモリコントローラ。
- 前記ホストとの間でシリアルATA規格に準拠した転送を行い、前記第2の誤り検出符号または前記不整合符号をFISにおけるCRCとして前記ホストへ送信することを特徴とする請求項1、2または3に記載のメモリコントローラ。
- 前記不整合符号生成部は、前記第2の誤り検出符号をビット反転させることにより前記不整合符号を生成することを特徴とする請求項1乃至4のいずれか一項に記載のメモリコントローラ。
- 不揮発性メモリと、
ホストから受信したデータに対する第1の誤り検出符号を生成する第1の誤り検出符号生成部と、
前記データと該データに対応する前記第1の誤り検出符号とを前記メモリへ書き込むよう制御し、前記ホストからデータの読み出し要求があった場合に前記メモリからデータと該データに対応する前記第1の誤り検出符号とを読み出す制御部と、
前記メモリから読み出されたデータと該データに対応する前記第1の誤り検出符号とに基づいて誤り検出処理を行う誤り検出部と、
前記メモリから読み出したデータに基づいて第2の誤り検出符号を生成する第2の誤り検出符号生成部と、
前記メモリから読み出したデータに誤りがあることを示す不整合符号を生成する不整合符号生成部と、
を備え、
前記ホストへ送信する前記メモリから読み出したデータに対して、前記第2の誤り検出符号と前記不整合符号とのうちいずれか一方を前記誤り検出処理によるエラー検出結果に基づいて選択して付加することを特徴とするデータ記憶装置。 - 不揮発性メモリを制御するメモリ制御方法であって、
ホストから受信したデータに対する第1の誤り検出符号を生成するステップと、
前記データと該データに対応する前記第1の誤り検出符号とを前記メモリへ書き込むよう制御するステップと、
前記ホストからデータの読み出し要求があった場合に前記メモリからデータと該データに対応する前記第1の誤り検出符号とを読み出すステップと、
前記メモリから読み出されたデータと該データに対応する前記第1の誤り検出符号とに基づいて誤り検出処理を行うステップと、
前記メモリから読み出したデータに基づいて第2の誤り検出符号を生成するステップと、
前記メモリから読み出したデータに誤りがあることを示す不整合符号を生成するステップと、
前記ホストへ送信する前記メモリから読み出したデータに対して、前記第2の誤り検出符号と前記不整合符号とのうちいずれか一方を前記誤り検出処理によるエラー検出結果に基づいて選択して付加するステップと、
を含むことを特徴とするメモリ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011289074A JP2013137708A (ja) | 2011-12-28 | 2011-12-28 | メモリコントローラ、データ記憶装置およびメモリ制御方法 |
US13/693,360 US9191030B2 (en) | 2011-12-28 | 2012-12-04 | Memory controller, data storage device, and memory controlling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011289074A JP2013137708A (ja) | 2011-12-28 | 2011-12-28 | メモリコントローラ、データ記憶装置およびメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013137708A true JP2013137708A (ja) | 2013-07-11 |
Family
ID=48695961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011289074A Pending JP2013137708A (ja) | 2011-12-28 | 2011-12-28 | メモリコントローラ、データ記憶装置およびメモリ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9191030B2 (ja) |
JP (1) | JP2013137708A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016118945A (ja) * | 2014-12-22 | 2016-06-30 | ソニー株式会社 | メモリコントローラ、記憶装置、および、情報処理システム |
JP2017059278A (ja) * | 2015-09-14 | 2017-03-23 | ラピスセミコンダクタ株式会社 | 半導体メモリ及び半導体メモリのベリファイ方法 |
US9921772B2 (en) | 2015-12-04 | 2018-03-20 | Toshiba Memory Corporation | Semiconductor memory device that randomizes data and randomizer thereof |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015215675A (ja) * | 2014-05-08 | 2015-12-03 | 富士通株式会社 | 制御装置、制御方法、及び制御プログラム |
JP6799262B2 (ja) * | 2017-03-03 | 2020-12-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
KR20200092036A (ko) * | 2019-01-24 | 2020-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US20210181990A1 (en) * | 2019-12-16 | 2021-06-17 | Micron Technology, Inc. | Interrupt signaling for a memory device |
US11611589B2 (en) * | 2020-06-05 | 2023-03-21 | Seagate Technology Llc | Data storage system with powered move attack protection |
US11720258B2 (en) * | 2020-07-01 | 2023-08-08 | Micron Technology, Inc. | Memory bypass for error detection and correction |
JP2022144469A (ja) * | 2021-03-19 | 2022-10-03 | キオクシア株式会社 | メモリシステム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007310803A (ja) * | 2006-05-22 | 2007-11-29 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書き込み方法および読み出し方法 |
US20100211834A1 (en) * | 2009-02-18 | 2010-08-19 | Micron Technology, Inc. | Data integrity in memory controllers and methods |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137763A (ja) * | 1994-11-04 | 1996-05-31 | Fujitsu Ltd | フラッシュメモリ制御装置 |
JP2001297038A (ja) * | 2000-04-11 | 2001-10-26 | Toshiba Corp | データ記憶装置および記録媒体並びに記録媒体制御方法 |
TWI269968B (en) * | 2004-04-22 | 2007-01-01 | Mediatek Inc | Method for processing the noise in the SATA |
US20060218467A1 (en) * | 2005-03-24 | 2006-09-28 | Sibigtroth James M | Memory having a portion that can be switched between use as data and use as error correction code (ECC) |
US7562285B2 (en) * | 2006-01-11 | 2009-07-14 | Rambus Inc. | Unidirectional error code transfer for a bidirectional data link |
US7861138B2 (en) * | 2006-12-05 | 2010-12-28 | Qimonda Ag | Error correction in memory devices |
JP2008159152A (ja) | 2006-12-22 | 2008-07-10 | Toshiba Corp | 記憶装置 |
US9471418B2 (en) * | 2007-06-19 | 2016-10-18 | Samsung Electronics Co., Ltd. | Memory system that detects bit errors due to read disturbance and methods thereof |
KR101466694B1 (ko) * | 2007-08-28 | 2014-11-28 | 삼성전자주식회사 | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 |
JP2012113466A (ja) * | 2010-11-24 | 2012-06-14 | Fujitsu Ltd | メモリコントローラ及び情報処理システム |
-
2011
- 2011-12-28 JP JP2011289074A patent/JP2013137708A/ja active Pending
-
2012
- 2012-12-04 US US13/693,360 patent/US9191030B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007310803A (ja) * | 2006-05-22 | 2007-11-29 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書き込み方法および読み出し方法 |
US20100211834A1 (en) * | 2009-02-18 | 2010-08-19 | Micron Technology, Inc. | Data integrity in memory controllers and methods |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016118945A (ja) * | 2014-12-22 | 2016-06-30 | ソニー株式会社 | メモリコントローラ、記憶装置、および、情報処理システム |
JP2017059278A (ja) * | 2015-09-14 | 2017-03-23 | ラピスセミコンダクタ株式会社 | 半導体メモリ及び半導体メモリのベリファイ方法 |
US9921772B2 (en) | 2015-12-04 | 2018-03-20 | Toshiba Memory Corporation | Semiconductor memory device that randomizes data and randomizer thereof |
US10430101B2 (en) | 2015-12-04 | 2019-10-01 | Toshiba Memory Corporation | Semiconductor memory device that randomizes data and randomizer thereof |
Also Published As
Publication number | Publication date |
---|---|
US20130173986A1 (en) | 2013-07-04 |
US9191030B2 (en) | 2015-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013137708A (ja) | メモリコントローラ、データ記憶装置およびメモリ制御方法 | |
JP5107880B2 (ja) | データ転送処理装置及び方法 | |
TWI625620B (zh) | 非揮發性記憶體裝置及其讀取方法 | |
US9015553B2 (en) | Data integrity in memory controllers and methods | |
JP2007300619A (ja) | 異なるデータ保護方法間で切換えにおいてデータの完全性を維持する方法、装置及びプログラム | |
KR20120064462A (ko) | 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템 | |
CN107918571B (zh) | 测试储存单元的方法以及使用该方法的装置 | |
JP2018535494A5 (ja) | ||
CN101772807A (zh) | 在多通道大容量存储装置中的ecc功能块布局 | |
KR20130086887A (ko) | 메모리 버퍼, 이를 포함하는 장치들 및 이의 데이터 처리 방법 | |
US9396079B2 (en) | Semiconductor memory device and semiconductor system including the same | |
TWI571884B (zh) | 資料錯誤檢查電路,資料錯誤檢查方法,使用資料錯誤檢查功能之資料傳輸方法,半導體記憶體裝置與使用資料錯誤檢查功能之記憶體系統 | |
US9431132B2 (en) | Data managing method, memory control circuit unit and memory storage apparatus | |
US8738989B2 (en) | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page | |
JP2008090442A (ja) | メモリ制御装置 | |
TWI686812B (zh) | 記憶體測試方法及其記憶體裝置 | |
JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
US10379926B2 (en) | Method and device for monitoring data error status in a memory | |
US20170116060A1 (en) | Error location pointers for nvm | |
US20140006880A1 (en) | Apparatus and control method | |
JP6332134B2 (ja) | メモリ診断回路 | |
JP2014191372A (ja) | 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム | |
TW201616511A (zh) | 資料輸出方法 | |
JP2010140132A (ja) | メモリシステム及びメモリコントローラ | |
JP2013205853A (ja) | フラッシュメモリディスク装置、フラッシュメモリディスク装置におけるデータ記憶制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140811 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140819 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141216 |