JP2019028952A - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- JP2019028952A JP2019028952A JP2017151089A JP2017151089A JP2019028952A JP 2019028952 A JP2019028952 A JP 2019028952A JP 2017151089 A JP2017151089 A JP 2017151089A JP 2017151089 A JP2017151089 A JP 2017151089A JP 2019028952 A JP2019028952 A JP 2019028952A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error
- circuit
- code
- storage device
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
Description
本発明の実施形態は、記憶装置に関する。 Embodiments described herein relate generally to a storage device.
記憶装置を制御するコントローラにはSoC(System on a Chip)な
どの半導体集積回路が用いられることが多い。近年、半導体集積回路を製造する半導体プ
ロセスは微細化が進んでおり、外部環境(例えば環境中のα線などの放射線)の影響を受
けやすくなっている。このため、半導体集積回路中のデータパスにおいてデータの誤りが
発生する可能性が高まっている。
A semiconductor integrated circuit such as a SoC (System on a Chip) is often used as a controller for controlling a storage device. In recent years, a semiconductor process for manufacturing a semiconductor integrated circuit has been miniaturized and is easily affected by an external environment (for example, radiation such as α rays in the environment). For this reason, there is an increased possibility of data errors in the data path in the semiconductor integrated circuit.
本発明が解決しようとする課題は、データパスにおけるデータの誤りを検出することが
できる記憶装置を提供することにある。
An object of the present invention is to provide a storage device that can detect an error in data in a data path.
上記課題を達成するために、実施形態の記憶装置は、データを記憶する不揮発性記憶媒
体と、コントローラと、を具備する。コントローラは、第1データについての誤り検出が
可能な第1誤り検出符号を生成し、複数の第1データを含む第2データついて、第2デー
タに含まれる複数の第1データのうちの少なくとも1つの第1データから、第1誤り検出
符号に基づいて誤りを検出したかどうかを示す第1フラグを生成し、第2データと第1フ
ラグとを含むデータについての誤り訂正が可能な第1誤り訂正符号を生成し、第2データ
と、第1フラグと、第1誤り訂正符号とを不揮発性記憶媒体に記憶させる。
In order to achieve the above object, a storage device according to an embodiment includes a nonvolatile storage medium that stores data and a controller. The controller generates a first error detection code capable of detecting an error for the first data, and at least one of the plurality of first data included in the second data for the second data including the plurality of first data. A first flag that indicates whether or not an error has been detected based on the first error detection code from the first data, and that can correct the error of the data including the second data and the first flag A correction code is generated, and the second data, the first flag, and the first error correction code are stored in the nonvolatile storage medium.
以下、実施形態の記憶装置を、図面を参照して説明する。なお、以下の説明において、
同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
Hereinafter, a storage device according to an embodiment will be described with reference to the drawings. In the following explanation,
Components having the same function and configuration are denoted by common reference numerals.
[第1の実施形態]
図1は、第1の実施形態の記憶装置の構成を説明するブロック図である。
[First embodiment]
FIG. 1 is a block diagram illustrating the configuration of the storage device according to the first embodiment.
記憶装置1は、ホスト2と通信可能である。記憶装置1は、コントローラ10と、不揮
発性記憶媒体20と、バッファ30と、を含む。
The
コントローラ10は、ホスト2と通信し、記憶装置1全体の動作を制御する。コントロ
ーラ10は、例えばSoC(System on a Chip)として構成される半導
体集積回路である。
The
本実施形態の説明では、ホスト2はSATA(Serial ATA)規格のインタフ
ェースをサポートするコンピュータであるが、その他の規格、例えばSAS(Seria
l Attached SCSI)規格やNVMe(NVM Express)(登録商
標)規格のインタフェースをサポートするコンピュータであってもよい。
In the description of the present embodiment, the
It may be a computer that supports an interface of l Attached SCSI) standard or NVMe (NVM Express) (registered trademark) standard.
不揮発性記憶媒体20は、データを不揮発的に(永続的に)記憶する。本実施形態の不
揮発性記憶媒体20はNAND型フラッシュメモリであるが、これに限定されるものでは
ない。例えば、3次元構造フラッシュメモリ、NOR型フラッシュメモリ、MRAM(M
agnetoresistive Random Access Memory)などの
半導体メモリや、磁気ディスク、光ディスクなどのディスク媒体であってもよい。以下の
説明においては、不揮発性記憶媒体20をNANDメモリ20と表記することがある。
The nonvolatile storage medium 20 stores data in a nonvolatile manner (permanently). The nonvolatile storage medium 20 of the present embodiment is a NAND flash memory, but is not limited to this. For example, 3D structure flash memory, NOR type flash memory, MRAM (M
It may be a semiconductor memory such as an anisotropic random access memory) or a disk medium such as a magnetic disk or an optical disk. In the following description, the nonvolatile storage medium 20 may be referred to as a NAND memory 20.
バッファ30は、データを揮発的に(一時的に)に記憶する。バッファ30に記憶され
るデータには、(1)ホスト2から受信したユーザデータ、(2)NANDメモリ20か
ら読み出したユーザデータ、(3)コントローラ10が記憶装置1を制御するにあたり必
要な情報、などがある。本実施形態のバッファ30はDRAM(Dynamic Ran
dom Access Memory)であるが、SRAM(Static Rando
m Access Memory)など他の種類の揮発性半導体メモリでもよい。バッフ
ァ30は、コントローラ10に内蔵されていてもよい。
The buffer 30 stores data volatilely (temporarily). The data stored in the buffer 30 includes (1) user data received from the
dom Access Memory), but SRAM (Static Rando)
Other types of volatile semiconductor memories, such as m Access Memory). The buffer 30 may be built in the
コントローラ10は、CPU(Central Processing Unit)4
0と、ホストインタフェース(IF)制御部50と、バッファ制御部60と、メモリイン
タフェース(IF)制御部70と、を含む。
The
0, a host interface (IF)
CPU40は、FW(Firmware)に基づき記憶装置1全体の制御を行う。図2
は、CPU40がFWを実行することによって実現する各種機能部を示す図である。CP
U40は、記憶装置1全体を制御する処理部42として機能する。処理部42は、ホスト
処理部44と、バッファ処理部46と、メモリ処理部48と、を含む。ホスト処理部44
は、ホストIF制御部50を主に制御する。バッファ処理部46は、バッファ制御部60
を主に制御する。メモリ処理部48は、メモリIF制御部70を主に制御する。CPU4
0は、コントローラ10に内蔵せず、別個の半導体集積回路としてもよい。また、以下の
説明においてFWにより実行される機能の一部、又は、全部は専用のHW(Hardwa
re)によっても実行可能であり、HWにより実行される機能の一部、又は、全部をFW
によって実行することも可能である。
The
These are figures which show the various function parts implement | achieved when CPU40 performs FW. CP
The
Mainly controls the
The main control. The
0 may not be built in the
re), and a part or all of the functions executed by the HW can be executed by the FW
It is also possible to execute by.
図1に戻って説明を続ける。 Returning to FIG.
ホストIF制御部50は、ホスト2から受信したコマンドの解釈や実行などを行う。
The host IF
バッファ制御部60は、バッファ30へのデータの書き込み、読み出しの制御、及び、
バッファ30の空き領域の管理などを行う。
The
Management of free space in the buffer 30 is performed.
メモリIF制御部70は、NAND制御部80を含む。NAND制御部80は、NAN
Dメモリ20へのデータの書き込み、読み出し、消去等の動作を制御する。
The memory IF control unit 70 includes a
It controls operations such as writing, reading, and erasing data in the D memory 20.
NAND制御部80は、ECC制御部100を含む。ECC制御部100は、NAND
メモリ20へ書き込まれるデータに対して、誤り訂正符号を付加する。また、ECC制御
部100は、NANDメモリ20から読み出されたデータに対して、誤り訂正符号に基づ
いたエラー訂正処理を行う。誤り訂正符号としては、エラー訂正時に、データ中のエラー
位置が特定できるものであれば任意の符号を採用可能である。例えば、RS(Reed
Solomon)符号、BCH(Bose Chaudhuri Hocquenghe
m)符号を用いることができる。LDPC(Low Density Parity C
heck)符号を用いる場合には、エラー訂正前のデータとエラー訂正後のデータとを比
較することにより、データ中のエラー位置を特定することができるようにECC制御部1
00を構成すれば、本実施形態に採用可能である。
The
An error correction code is added to the data written to the memory 20. In addition, the
Solomon) code, BCH (Bose Chaudhuri Hocquenge)
m) A code can be used. LDPC (Low Density Parity C
In the case of using a (hex) code, the
If 00 is configured, this embodiment can be adopted.
[ライトデータパス]
以下、図3〜図7を参照して、本実施形態におけるライトデータパスについて説明する
。
[Write data path]
Hereinafter, the write data path in this embodiment will be described with reference to FIGS.
図3は、コントローラ10内のライトデータパスを説明する図である。
FIG. 3 is a diagram for explaining a write data path in the
ホストIF制御部50は、CRC検査回路52と、E2E生成回路54と、を含む。
The host IF
ホスト2から受信するユーザデータには、インタフェース規格に基づき、所定のデータ
量(例えば4kB)ごとに誤り検出符号が付加されている。誤り検出符号は例えばCRC
(Cyclic Redundancy Check)である。CRC検査回路52は、
誤り検出符号を検査し、ユーザデータの正当性を検証する。CRC検査回路52の出力は
、例えば64ビット(すなわち8B)のデータ幅を有する。CRC検査回路52は、1サ
イクルあたり8Bのユーザデータ(図4Aに示すデータD1)を出力する。
An error detection code is added to user data received from the
(Cyclic Redundancy Check). The CRC inspection circuit 52
Check the error detection code and verify the validity of the user data. The output of the CRC check circuit 52 has a data width of, for example, 64 bits (that is, 8B). The CRC check circuit 52
データD1は、図3に示すように、E2E生成回路54に入力される。E2E生成回路
54は、データD1に対し、End−to−Endデータ保護パリティ(以下、E2E_
Pと称する)を生成する。E2E生成回路54は、データD1に対しE2E_Pを付加し
、図4Bに示すようなデータD2を生成する。E2E生成回路54は、図5に示すように
、データD1に対して例えば排他的論理和(XOR)演算を行うことにより、E2E_P
を生成する。図3に示すように、E2E生成回路54は、データD2を出力する。E2E
生成回路54の出力は、例えば65ビットのデータ幅を有する。E2E生成回路は、1サ
イクルあたり1ビット+8BのデータD2を出力する。
The data D1 is input to the
P)). The
Is generated. As shown in FIG. 3, the
The output of the
バッファ制御部60は、データD2をバッファ30に格納する。バッファ制御部60は
、データD2をバッファ30から読み出し、NAND制御部80に入力する。なお、バッ
ファ制御部60は、データD2をバッファ30に格納する際に、より強力な誤り検出符号
(例えばCRC)を付加してもよい。
The
NAND制御部80は、E2E検査回路81と、圧縮パリティ生成回路82と、を含む
。
The
E2E検査回路81は、バッファ制御部60から入力されたデータD2に対して、E2
E_Pを検査することにより、データD2の正当性を検証する。E2E_Pの検査結果、
及び、データD2中のユーザデータは、圧縮パリティ生成回路82に入力される。
The
The validity of the data D2 is verified by checking E_P. E2E_P test result,
The user data in the data D2 is input to the compressed
図6は、E2E検査回路81によるE2E_Pの検査、及び、圧縮パリティ生成回路8
2による圧縮パリティの生成を説明する図である。E2E検査回路81は、データD2(
1ビット+8B)に対して例えばXOR演算(以下、E2E検査と称する)を行うことに
より、データD2の正当性を検査する。データD2にエラーが無ければ、E2E検査の結
果(以下、E2E検査結果と称する)は0となる。データD2にエラーが有れば、E2E
検査結果は1となる。
FIG. 6 shows the E2E_P check by the
2 is a diagram for explaining generation of compressed parity by 2. FIG. The
For example, an XOR operation (hereinafter referred to as E2E check) is performed on 1 bit + 8B) to check the validity of the data D2. If there is no error in the data D2, the result of the E2E inspection (hereinafter referred to as the E2E inspection result) is zero. If there is an error in data D2, E2E
The inspection result is 1.
圧縮パリティ生成回路82は、データラッチ83と、データラッチ84と、論理和回路
85と、を含む。データラッチ83とデータラッチ84はそれぞれ、複数(例えば64)
のデータD2に対するE2E検査結果と、対応するユーザデータとを保持する。データラ
ッチ83が保持したE2E検査結果は、64個分ごとに論理和回路85に入力され、論理
和(OR)演算される。OR演算の結果は、圧縮パリティCMP_Pとなる。前述したよ
うに、データD2にエラーが無ければ、E2E検査結果は0である。従って、64個分の
データD2のすべてにエラーが無ければCMP_Pも0になる。一方、64個分のデータ
D2のどれか一つにでもエラーが有る場合は、CMP_Pは1となる。圧縮パリティ生成
回路82は、CMP_P及びデータラッチ84が保持した64個分のデータD2に対応す
るユーザデータを、データD3として出力する。データD3は、図4Cに示すように、1
ビット+512Bの大きさを有する。
The compressed
The E2E inspection result for the data D2 and the corresponding user data are held. The E2E test results held by the data latch 83 are input to the OR circuit 85 every 64 pieces, and ORed (ORed). The result of the OR operation is the compressed parity CMP_P. As described above, the E2E inspection result is 0 if there is no error in the data D2. Therefore, if there is no error in all 64 pieces of data D2, CMP_P is also 0. On the other hand, if any one of the 64 pieces of data D2 has an error, CMP_P becomes 1. The compressed
It has a size of bit + 512B.
図3に示すように、圧縮パリティ生成回路82から出力されたデータD3は、ECC制
御部100に入力される。
As shown in FIG. 3, the data D3 output from the compressed
ECC制御部100は、ECC生成回路101を含む。ECC生成回路101は、図7
に示すように、データラッチ102と、符号生成回路103と、を含む。データラッチ1
02は、複数個(例えば8個)のデータD3を保持する。データラッチ102が保持した8
個のデータD3は、符号生成回路103に入力される。符号生成回路103は、例えば3
12Bの誤り訂正符号ECCを生成する。ECC生成回路101は、ECC及びデータラ
ッチ102が保持した8個のデータD3を、データD4として出力する。データD4は、
図4Dに示すように、例えば312B+8ビット+4kBの大きさを有する。
The
As shown in FIG. 2, the
02 holds a plurality (for example, 8) of data D3. 8 held by the
The pieces of data D3 are input to the
A 12B error correction code ECC is generated. The ECC generation circuit 101 outputs the eight data D3 held by the ECC and data latch 102 as data D4. Data D4 is
As shown in FIG. 4D, for example, it has a size of 312B + 8 bits + 4 kB.
データD4は、図3に示すように、NANDメモリ20に記憶される。 The data D4 is stored in the NAND memory 20 as shown in FIG.
[リードデータパス]
以下、図8〜図14を参照して、本実施形態におけるリードデータパスについて説明す
る。
[Read data path]
Hereinafter, the read data path in the present embodiment will be described with reference to FIGS.
図8は、コントローラ10内のリードデータパスを説明する図である。
FIG. 8 is a diagram for explaining a read data path in the
NAND制御部80は、圧縮パリティ固定回路86と、E2E生成回路87と、を含む
。
The
NAND制御部80は、NANDメモリ20からデータD5を読み出す。データD5は
、圧縮パリティ固定回路86に入力される。データD5は、図9Aに示すように、例えば
312B+8ビット+4kBの大きさを有する。データD5は、ライトデータパスにおけ
るデータD4と同等であるが、エラーを含む場合がある。
The
圧縮パリティ固定回路86は、図10に示すように、データD5中の圧縮パリティCM
P_Pを、固定パリティFIX_Pに変換する。FIX_Pは、例えば0に固定された値
である。圧縮パリティ固定回路86は、データD5中のECCと、FIX_Pと、データ
D5中のユーザデータとをあわせ、データD6として出力する。データD6は、図9Bに
示すように、例えば312B+8ビット+4kBの大きさを有する。データD6は、図8
に示すように、ECC制御部100に入力される。
As shown in FIG. 10, the compressed parity fixing circuit 86 is connected to the compressed parity CM in the data D5.
P_P is converted to fixed parity FIX_P. FIX_P is a value fixed to 0, for example. The compressed parity fixing circuit 86 combines the ECC in the data D5, FIX_P, and the user data in the data D5, and outputs it as data D6. As shown in FIG. 9B, the data D6 has a size of 312B + 8 bits + 4 kB, for example. Data D6 is shown in FIG.
As shown in FIG.
ECC制御部100は、ECC訂正回路104を含む。ECC訂正回路104は、図1
1に示すように、誤り訂正回路105と、データラッチ106と、を含む。誤り訂正回路
105は、データD6中の誤り訂正符号ECCに基づき、データD6のエラー訂正を行う
。誤り訂正回路105は、前述のとおり、データD6中のエラー位置を特定することがで
きる。誤り訂正回路105は特に、データD6中のFIX_Pのどこからエラーが検出さ
れたかを特定することができる。
The
As shown in FIG. 1, an
図12に示すように、データD3中の圧縮パリティCMP_Pは、データD3に対応す
るすべてのデータD2についてエラーが無かった場合は0である。また、データD3中の
圧縮パリティCMP_Pは、データD3に対応する少なくとも一つのデータD2について
エラーが有った場合は1である。
As shown in FIG. 12, the compressed parity CMP_P in the data D3 is 0 when there is no error for all the data D2 corresponding to the data D3. The compressed parity CMP_P in the data D3 is 1 when there is an error for at least one data D2 corresponding to the data D3.
一方でデータD6中のFIX_Pは、前述のとおり0に固定されている。従って、誤り
訂正回路105は、データD4中の圧縮パリティCMP_Pが0だった場合、これに対応
するデータD6のFIX_Pにエラーを検出しない。また、誤り訂正回路105は、デー
タD4中の圧縮パリティCMP_Pが1だった場合、これに対応するデータD6のFIX
_Pに必ずエラーを検出する。
On the other hand, FIX_P in the data D6 is fixed to 0 as described above. Therefore, when the compressed parity CMP_P in the data D4 is 0, the
An error is always detected in _P.
従って、E2E検査においてエラーが検出されたデータD2を少なくとも一つ含むデー
タD3に対応するデータD6のFIX_Pからはエラーが検出される。E2E検査におい
てエラーが検出されたデータD2を一つも含まないデータD3に対応するデータD6のF
IX_Pからはエラーが検出されない。
Accordingly, an error is detected from FIX_P of data D6 corresponding to data D3 including at least one data D2 in which an error is detected in the E2E inspection. F of data D6 corresponding to data D3 not including any data D2 in which an error is detected in the E2E inspection
No error is detected from IX_P.
図11に示すように、データラッチ106は、エラー訂正がされたユーザデータを51
2Bずつ保持する。また、データラッチ106は、当該512Bのユーザデータに対応す
るFIX_Pにエラーが検出されたかどうかのフラグ(以下、誤りフラグと称する)を保
持する。誤りフラグは、FIX_Pにエラーが検出された時は1である。誤りフラグは、
FIX_Pにエラーが検出されなかった時は0である。
As shown in FIG. 11, the data latch 106
Hold 2B at a time. Further, the data latch 106 holds a flag (hereinafter referred to as an error flag) indicating whether or not an error is detected in the FIX_P corresponding to the 512B user data. The error flag is 1 when an error is detected in FIX_P. The error flag is
It is 0 when no error is detected in FIX_P.
ECC訂正回路104は、データラッチ106が保持するエラー訂正がされたユーザデ
ータを512Bごとに、これに対応する誤りフラグとともに、データD7として出力する
。データD7は、図9Cに示すように、1ビット+512Bの大きさを有する。
The
図8に示すように、データD7は、E2E生成回路87に入力される。
As shown in FIG. 8, the data D <b> 7 is input to the
E2E生成回路87は、図13に示すように、データラッチ88と、排他的論理和回路
89と、論理反転回路90と、選択回路91と、を含む。
As shown in FIG. 13, the
データラッチ88は、入力されたデータD7を保持する。排他的論理和回路89は、デ
ータラッチ88が保持するデータD7中のユーザデータを8Bずつ、排他的論理和(XO
R)演算をする。論理反転回路90は、排他的論理和回路89の出力に対して、論理反転
演算を行う。
The data latch 88 holds the input data D7. The exclusive OR
R) Calculate. The
選択回路91は、排他的論理和回路89の出力と、論理反転回路90との出力を、デー
タラッチ88が保持するデータD7中の誤りフラグに基づいて選択し、出力する。具体的
には、誤りフラグが0の時は、排他的論理和回路89の出力を選択する。誤りフラグが1
の時は、論理反転回路90の出力を選択する。選択回路91の出力は、後述するデータD
8に付加されるEnd−to−Endデータ保護パリティ(E2E_P)となる。
The
In this case, the output of the
8 becomes an end-to-end data protection parity (E2E_P).
E2E生成回路87は、選択回路91の出力(すなわちE2E_P)、及び、データラ
ッチ88が保持するユーザデータを8Bずつ、データD8として出力する。E2E生成回
路87の出力は、例えば65ビットのデータ幅を有する。E2E生成回路87は、1つの
データD7に対応する64個のデータD8を、64サイクルかけて出力する。データD8
は、図9Dに示すように、1ビット+8Bの大きさを有する。
The
Has a size of 1 bit + 8B, as shown in FIG. 9D.
バッファ制御部60は、図8に示すように、データD8をバッファ30に格納する。バ
ッファ制御部60は、バッファ30からデータD8を読み出し、ホストIF制御部50に
入力する。なお、バッファ制御部60は、データD8をバッファ30に格納する際に、よ
り強力な誤り検出符号(例えばCRC)を付加してもよい。
The
ホストIF制御部50は、E2E検査回路56と、CRC生成回路58と、を含む。
The host IF
E2E検査回路56は、図14に示すように、データD8(1ビット+8B)に対して
例えばXOR演算(以下、E2E検査と称する)を行うことにより、データD8の正当性
を検査する。データD8にエラーが無ければ、E2E検査の結果(以下、E2E検査結果
と称する)は0となる。データD8にエラーが有れば、E2E検査結果は1となる。
As shown in FIG. 14, the
前述したように、データD7中の誤りフラグが0の時は、データD8に付加されるE2
E_Pは、排他的論理和回路89の出力である。従って、データD7中の誤りフラグが0
の時は、当該データD7に含まれるすべてのユーザデータに対応するデータD8に対する
E2E検査からは、エラーが検出されない。
As described above, when the error flag in the data D7 is 0, E2 added to the data D8
E_P is an output of the exclusive OR
In this case, no error is detected from the E2E inspection on the data D8 corresponding to all the user data included in the data D7.
また、データD7中の誤りフラグが1の時は、データD8に付加されるE2E_Pは、
論理反転回路90の出力である。従って、データD7中の誤りフラグが1の時は、当該デ
ータD7に含まれるすべてのユーザデータに対応するデータD8に対するE2E検査から
は、エラーが検出される。なお、データD7中の誤りフラグが1の時、当該データD7に
含まれるユーザデータに対応する少なくとも一つのデータD8に対するE2E検査からエ
ラーが検出されるように選択回路91が構成されていてもよい。
When the error flag in the data D7 is 1, E2E_P added to the data D8 is
This is the output of the
E2E検査結果が1の場合(すなわちエラーが検出された場合)、ホストIF制御回路
50は、当該データD8をホスト2へ送信せずに、破棄する。これにより、ライトデータ
パス、リードデータパスのいずれかで誤りが発生したユーザデータがホスト2に送信され
ることが防止できる。
When the E2E inspection result is 1 (that is, when an error is detected), the host IF
E2E検査結果が0の場合(すなわちエラーが検出されなかった場合)、ホストIF制
御回路50は、当該データD8のE2E_Pを除去し、データD9を生成する。
When the E2E test result is 0 (that is, when no error is detected), the host IF
データD9は、図8に示すように、CRC生成回路58に入力される。CRC生成回路
58は、インタフェース規格に基づき、データD9に対し、所定のデータ量(例えば4k
B)ごとに誤り検出符号(例えばCRC)を付加し、ホスト2に送信する。
The data D9 is input to the
An error detection code (for example, CRC) is added every B) and transmitted to the
なお、E2E検査結果が1の場合、データD8を破棄する代わりに、当該データD8に
対応するデータD9から誤り検出符号を生成する際に、エラーが検出されるように誤り検
出符号を生成してもよい。
When the E2E inspection result is 1, instead of discarding the data D8, an error detection code is generated so that an error is detected when an error detection code is generated from the data D9 corresponding to the data D8. Also good.
以上では、ユーザデータの保護について説明したが、本実施形態の記憶装置1によって
保護可能なデータはこれに限られない。例えば、管理データなどのシステムデータを、上
述したユーザデータの保護と同じように保護することができる。
Although the protection of user data has been described above, the data that can be protected by the
また、以上の説明では、図15Aに示すように、データD2に対するE2E検査でエラ
ーが検出されなかった場合に、これに対応するデータD3中のCMP_Pを0にし、デー
タD2に対するE2E検査でエラーが検出された場合に、これに対応するデータD3中の
CMP_Pを1にした。また、データD6中のFIX_Pは0に固定された。本実施形態
の記憶装置1は、以下に説明するような構成にしてもよい。
In the above description, as shown in FIG. 15A, when no error is detected in the E2E inspection for the data D2, CMP_P in the corresponding data D3 is set to 0, and an error is detected in the E2E inspection for the data D2. When it was detected, CMP_P in the data D3 corresponding to this was set to 1. In addition, FIX_P in the data D6 is fixed to 0. The
[第1の変形例]
第1の変形例の記憶装置1では、図15Bに示すように、データD2に対するE2E検
査でエラーが検出されなかった場合に、これに対応するデータD3中のCMP_Pを0に
し、データD2に対するE2E検査でエラーが検出された場合に、これに対応するデータ
D3中のCMP_Pを1にする。また、データD6中のFIX_Pは1に固定される。こ
の場合、データD2に対するE2E検査でエラーが検出されなかったユーザデータに対応
するデータD7中の誤りフラグは1になる。また、データD2に対するE2E検査でエラ
ーが検出されたユーザデータに対応するデータD7中の誤りフラグは0になる。
[First Modification]
In the
第1の変形例の記憶装置1における選択回路91は、誤りフラグが1の時は、排他的論
理和回路89の出力を選択し、誤りフラグが0の時は、論理反転回路90の出力を選択す
る。
The
[第2の変形例]
第2の変形例の記憶装置1では、図15Cに示すように、データD2に対するE2E検
査でエラーが検出されなかった場合に、これに対応するデータD3中のCMP_Pを1に
し、データD2に対するE2E検査でエラーが検出された場合に、これに対応するデータ
D3中のCMP_Pを0にする。これは、例えば、論理和回路85の出力を論理反転演算
した結果をCMP_Pとすることにより実現される。また、データD6中のFIX_Pは
0に固定される。この場合、データD2に対するE2E検査でエラーが検出されなかった
ユーザデータに対応するデータD7中の誤りフラグは1になる。また、データD2に対す
るE2E検査でエラーが検出されたユーザデータに対応するデータD7中の誤りフラグは
0になる。
[Second Modification]
In the
第2の変形例の記憶装置1における選択回路91は、誤りフラグが1の時は、排他的論
理和回路89の出力を選択し、誤りフラグが0の時は、論理反転回路90の出力を選択す
る。
The
[第3の変形例]
第3の変形例の記憶装置1では、図15Dに示すように、データD2に対するE2E検
査でエラーが検出されなかった場合に、これに対応するデータD3中のCMP_Pを1に
し、データD2に対するE2E検査でエラーが検出された場合に、これに対応するデータ
D3中のCMP_Pを0にする。これは、例えば、論理和回路85の出力を論理反転演算
した結果をCMP_Pとすることにより実現される。また、データD6中のFIX_Pは
1に固定される。この場合、データD2に対するE2E検査でエラーが検出されなかった
ユーザデータに対応するデータD7中の誤りフラグは0になる。また、データD2に対す
るE2E検査でエラーが検出されたユーザデータに対応するデータD7中の誤りフラグは
1になる。
[Third Modification]
In the
第3の変形例の記憶装置1における選択回路91は、誤りフラグが0の時は、排他的論
理和回路89の出力を選択し、誤りフラグが1の時は、論理反転回路90の出力を選択す
る。
The
以上説明した第1の実施形態によれば、記憶装置はEnd−to−Endデータ保護パ
リティから圧縮パリティを生成し、ユーザデータ及び誤り訂正符号とともに不揮発性記憶
媒体に記憶させる。また、記憶装置は不揮発性記憶媒体から読み出した圧縮パリティ部分
を固定値にしてから誤り訂正を行うことにより、圧縮パリティにエラーが有ったかを検出
できる。これにより、記憶装置はデータパス中のデータの誤りを検出することができる。
According to the first embodiment described above, the storage device generates a compressed parity from the end-to-end data protection parity, and stores it in the nonvolatile storage medium together with the user data and the error correction code. The storage device can detect whether there is an error in the compressed parity by performing error correction after setting the compressed parity portion read from the nonvolatile storage medium to a fixed value. As a result, the storage device can detect an error in the data in the data path.
[第2の実施形態]
第1の実施形態の記憶装置では、End−to−Endデータ保護パリティ(E2E_
P)として、8Bあたり1ビットのエラーが検出可能な1ビットパリティを用いた。これ
に対し本実施形態の記憶装置では、E2E_Pとして、例えば8Bあたり1ビットのエラ
ーが訂正可能かつ2ビットのエラーが検出可能な誤り検出符号(例えば8ビットのハミン
グ符号)を用いる。以下の説明に置いては、第1の実施形態と異なる箇所のみを説明する
。
[Second Embodiment]
In the storage device of the first embodiment, the end-to-end data protection parity (E2E_
As P), 1-bit parity capable of detecting an error of 1 bit per 8B was used. On the other hand, in the storage device of this embodiment, for example, an error detection code (for example, an 8-bit Hamming code) capable of correcting a 1-bit error and detecting a 2-bit error per 8B is used as E2E_P. In the following description, only different points from the first embodiment will be described.
[ライトデータパス]
以下、図16〜図18を参照して、本実施形態におけるライトデータパスについて説明
する。
[Write data path]
Hereinafter, the write data path in the present embodiment will be described with reference to FIGS.
図16A〜図16Dは、ライトデータパス中の各データの形式を説明する図である。図
16A〜図16Dは、第1の実施形態の図4A〜図4Dにそれぞれ対応する。図16Bに
示すデータD2のみが、図4Bに示すデータD2と異なる。すなわち、データD2に含ま
れるE2E_Pは、8ビットのハミング符号(HM符号)であり、データD2は8ビット
+8Bの大きさを有する。
16A to 16D are diagrams illustrating the format of each data in the write data path. 16A to 16D correspond to FIGS. 4A to 4D of the first embodiment, respectively. Only data D2 shown in FIG. 16B is different from data D2 shown in FIG. 4B. That is, E2E_P included in the data D2 is an 8-bit Hamming code (HM code), and the data D2 has a size of 8 bits + 8B.
図17は、本実施形態のE2E生成回路54Aの構成を説明する図である。図17は、
第1の実施形態の図5に対応する。本実施形態のE2E生成回路54Aは、HM符号生成
回路55を含む。HM符号生成回路55の構成は当業者に周知であるので詳細な説明は省
略する。HM符号生成回路55は、8BのデータD1に対して1ビットのエラーが訂正可
能かつ2ビットのエラーが検出可能な、8ビットのHM符号を生成する。HM符号生成回
路55は、データD1に対し、E2E_PとしてHM符号を付加し、データD2を出力す
る。
FIG. 17 is a diagram illustrating the configuration of the E2E generation circuit 54A of the present embodiment. FIG.
This corresponds to FIG. 5 of the first embodiment. The E2E generation circuit 54A of the present embodiment includes an HM
図18は、本実施形態のE2E検査回路81Aの構成を説明する図である。図18は、
第1の実施形態の図6に対応する。本実施形態のE2E検査回路81Aは、HM符号検査
回路92を含む。HM符号検査回路92の構成は当業者に周知であるので詳細な説明は省
略する。HM符号検査回路92は、データD2に対して、E2E_Pすなわち8ビットの
HM符号を検査することにより、データD2の正当性を検証する。データD2から2ビッ
トのエラーが検出された場合、E2E検査回路81Aは、E2E検査結果として1を出力
する。データD2からエラーが検出されなかった場合、または、1ビットのエラーを訂正
した場合、E2E検査回路81Aは、E2E検査結果として0を出力する。E2E検査結
果は、第1の実施形態と同様に、1ビットの圧縮パリティCMP_Pにまとめられる。デ
ータD2中のユーザデータは、HM符号検査回路92によりエラーが訂正された後、デー
タラッチ84によって保持される。
FIG. 18 is a diagram illustrating the configuration of the E2E inspection circuit 81A of the present embodiment. FIG.
This corresponds to FIG. 6 of the first embodiment. The E2E inspection circuit 81A of this embodiment includes an HM
[リードデータパス]
次に、図19〜図21を参照して、本実施形態におけるリードデータパスについて説明
する。
[Read data path]
Next, the read data path in the present embodiment will be described with reference to FIGS.
図19A〜図19Dは、リードデータパス中の各データの形式を説明する図である。図
19A〜図19Dは、第1の実施形態の図9A〜図9Dにそれぞれ対応する。図19Dに
示すデータD8のみが、図9Dに示すデータD8と異なる。すなわち、データD8に含ま
れるE2E_Pは、8ビットのハミング符号(HM符号)であり、データD8は8ビット
+8Bの大きさを有する。
19A to 19D are diagrams for explaining the format of each data in the read data path. 19A to 19D correspond to FIGS. 9A to 9D of the first embodiment, respectively. Only data D8 shown in FIG. 19D is different from data D8 shown in FIG. 9D. That is, E2E_P included in the data D8 is an 8-bit Hamming code (HM code), and the data D8 has a size of 8 bits + 8B.
図20は、本実施形態のE2E生成回路87Aの構成を説明する図である。図20は、
第1の実施形態の図13に対応する。本実施形態のE2E生成回路87Aは、HM符号生
成回路93を含む。HM符号生成回路93の構成は当業者に周知であるので詳細な説明は
省略する。HM符号生成回路93は、データラッチ88が保持するデータD7中の8Bの
ユーザデータに対して1ビットのエラーが訂正可能かつ2ビットのエラーが検出可能な、
8ビットのHM符号を生成する。論理反転回路90は、HM符号生成回路93の出力の少
なくとも2ビット、すなわちHM符号によるエラー検出能力以上のビット数に対して、論
理反転演算を行う。
FIG. 20 is a diagram illustrating the configuration of the E2E generation circuit 87A of the present embodiment. FIG.
This corresponds to FIG. 13 of the first embodiment. The E2E generation circuit 87A of this embodiment includes an HM
An 8-bit HM code is generated. The
図21は、本実施形態のE2E検査回路56Aの構成を説明する図である。図21は、
第1の実施形態の図14に対応する。本実施形態のE2E検査回路56Aは、HM符号検
査回路57を含む。HM符号検査回路57の構成は当業者に周知であるので詳細な説明は
省略する。HM符号検査回路57は、データD8に対して、E2E_Pすなわち8ビット
のHM符号を検査することにより、データD8の正当性を検証する。データD8から2ビ
ットのエラーが検出された場合、E2E検査回路56Aは、当該データD8を破棄する。
データD8からエラーが検出されなかった場合、または、1ビットのエラーを訂正した場
合、E2E検査回路56Aは、当該データD8のE2E_Pを除去し、データD9を生成
する。データD8中のユーザデータは、HM符号検査回路57によりエラーが訂正された
後、データD9として出力される。
FIG. 21 is a diagram illustrating the configuration of the
This corresponds to FIG. 14 of the first embodiment. The
When no error is detected from the data D8 or when a 1-bit error is corrected, the
以上説明した第2の実施形態の記憶装置によれば、End−to−Endデータ保護パ
リティとして、複数ビットのエラーを検出可能な誤り検出符号を用いるので、データの保
護をより強力にすることができる。
According to the storage device of the second embodiment described above, an error detection code capable of detecting a multi-bit error is used as the end-to-end data protection parity, so that data protection can be further strengthened. it can.
以上説明した少なくとも1つの実施形態によれば、記憶装置はEnd−to−Endデ
ータ保護パリティから圧縮パリティを生成し、ユーザデータ及び誤り訂正符号とともに不
揮発性記憶媒体に記憶させる。また、記憶装置は不揮発性記憶媒体から読み出した圧縮パ
リティ部分を固定値にしてから誤り訂正を行うことにより、圧縮パリティにエラーが有っ
たかを検出できる。これにより、記憶装置はデータパス中のデータの誤りを検出すること
ができる。
According to at least one embodiment described above, the storage device generates a compressed parity from the end-to-end data protection parity and stores it in the nonvolatile storage medium together with the user data and the error correction code. The storage device can detect whether there is an error in the compressed parity by performing error correction after setting the compressed parity portion read from the nonvolatile storage medium to a fixed value. As a result, the storage device can detect an error in the data in the data path.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その
他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の
省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や
要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる
。
Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1…記憶装置、2…ホスト、10…コントローラ、20…不揮発性記憶媒体、30…バ
ッファ、40…CPU、42…処理部、44…ホスト処理部、46…バッファ処理部、4
8…メモリ処理部、50…ホストインタフェース制御部、52…CRC検査回路、54…
E2E生成回路、55…HM符号生成回路、56…E2E検査回路、57…HM符号検査
回路、58…CRC生成回路、60…バッファ制御部、70…メモリインタフェース制御
部、80…NAND制御部、81…E2E検査回路、82…圧縮パリティ生成回路、83
…データラッチ、84…データラッチ、85…論理和回路、86…圧縮パリティ固定回路
、87…E2E生成回路、88…データラッチ、89…排他的論理和回路、90…論理反
転回路、91…選択回路、92…HM符号検査回路、93…HM符号生成回路、100…
ECC制御部、101…ECC生成回路、102…データラッチ、103…符号生成回路
、104…ECC訂正回路、105…誤り訂正回路、106…データラッチ
DESCRIPTION OF
8 ... Memory processing unit, 50 ... Host interface control unit, 52 ... CRC check circuit, 54 ...
E2E generation circuit, 55... HM code generation circuit, 56... E2E check circuit, 57... HM code check circuit, 58... CRC generation circuit, 60 ... Buffer control unit, 70 ... Memory interface control unit, 80 ... NAND control unit, 81 ... E2E check circuit, 82 ... compressed parity generation circuit, 83
... Data latch, 84 ... Data latch, 85 ... OR circuit, 86 ... Compressed parity fixing circuit, 87 ... E2E generation circuit, 88 ... Data latch, 89 ... Exclusive OR circuit, 90 ... Logic inversion circuit, 91 ... Selection Circuit, 92... HM code inspection circuit, 93... HM code generation circuit, 100.
ECC control unit 101 ...
Claims (6)
第1データについての誤り検出が可能な第1誤り検出符号を生成し、
複数の前記第1データを含む第2データついて、
前記第2データに含まれる前記複数の第1データのうちの少なくとも1つの前記第1デー
タから、前記第1誤り検出符号に基づいて誤りを検出したかどうかを示す第1フラグを生
成し、
前記第2データと前記第1フラグとを含むデータについての誤り訂正が可能な第1誤り訂
正符号を生成し、
前記第2データと、前記第1フラグと、前記第1誤り訂正符号とを前記不揮発性記憶媒体
に記憶させる
コントローラと、
を具備する記憶装置。 A non-volatile storage medium for storing data;
Generating a first error detection code capable of error detection for the first data;
For second data including a plurality of the first data,
Generating a first flag indicating whether an error has been detected based on the first error detection code from at least one of the plurality of first data included in the second data;
Generating a first error correction code capable of error correction for data including the second data and the first flag;
A controller for storing the second data, the first flag, and the first error correction code in the nonvolatile storage medium;
A storage device comprising:
誤り訂正符号に基づいてデータに含まれる誤りの位置を特定することが可能な第1誤り訂
正回路を含み、
前記コントローラは、
前記不揮発性記憶媒体から読み出された前記第2データに対応する第3データと、
前記第1フラグに対応し、固定値を有する固定フラグと、
前記不揮発性記憶媒体から読み出された前記第1誤り訂正符号に対応する第2誤り訂正
符号と、
を前記第1誤り訂正回路に入力する
請求項1に記載の記憶装置。 The controller is
Including a first error correction circuit capable of specifying a position of an error included in the data based on the error correction code;
The controller is
Third data corresponding to the second data read from the nonvolatile storage medium;
A fixed flag corresponding to the first flag and having a fixed value;
A second error correction code corresponding to the first error correction code read from the nonvolatile storage medium;
The storage device according to claim 1, wherein the first error correction circuit is input to the first error correction circuit.
前記第3データを複数の第4データに分割し、
前記第1誤り訂正回路が、前記第3データに対応する前記固定フラグに誤りを検出した場
合、
前記第3データに対応する少なくとも1つの前記第4データについて、前記第4データが
誤っていることを示す第2誤り検出符号を生成する、
請求項2に記載の記憶装置。 The controller is
Dividing the third data into a plurality of fourth data;
When the first error correction circuit detects an error in the fixed flag corresponding to the third data,
Generating at least one fourth data corresponding to the third data a second error detection code indicating that the fourth data is incorrect;
The storage device according to claim 2.
ホストからの要求に基づいて前記不揮発性記憶媒体からデータを読み出し、
前記第2誤り検出符号に基づいて前記第4データについて誤りを検出した場合、
前記第4データを前記ホストに送信しない
請求項3に記載の記憶装置。 The controller is
Read data from the non-volatile storage medium based on a request from the host,
When an error is detected for the fourth data based on the second error detection code,
The storage device according to claim 3, wherein the fourth data is not transmitted to the host.
前記第1データを構成する各ビットに対して排他的論理和演算をすることによって前記第
1誤り検出符号を生成する
請求項1乃至4のいずれか1項に記載の記憶装置。 The controller is
5. The storage device according to claim 1, wherein the first error detection code is generated by performing an exclusive OR operation on each bit constituting the first data. 6.
前記第1データに対するハミング符号を前記第1誤り検出符号として生成する
請求項1乃至4のいずれか1項に記載の記憶装置。 The controller is
The storage device according to claim 1, wherein a Hamming code for the first data is generated as the first error detection code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017151089A JP2019028952A (en) | 2017-08-03 | 2017-08-03 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017151089A JP2019028952A (en) | 2017-08-03 | 2017-08-03 | Storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019028952A true JP2019028952A (en) | 2019-02-21 |
Family
ID=65476287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017151089A Pending JP2019028952A (en) | 2017-08-03 | 2017-08-03 | Storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019028952A (en) |
-
2017
- 2017-08-03 JP JP2017151089A patent/JP2019028952A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8671250B2 (en) | Data storage device generating redundancy for data path protection of a parity sector | |
TWI674767B (en) | Turbo product codes for nand flash | |
CN105788648B (en) | NVM bad block identification processing and error correction method and system based on heterogeneous hybrid memory | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
US9424126B2 (en) | Memory controller | |
TWI612527B (en) | Decoding method, memory storage device and memory control circuit unit | |
KR20160024966A (en) | Circuits, apparatuses, and methods for correcting data errors | |
JP2015018451A (en) | Memory controller, storage device, and memory control method | |
TW201944738A (en) | Decoding method and storage controller | |
WO2014164134A2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
JP2011198272A (en) | Semiconductor storage device and control method thereof | |
TWI640865B (en) | Decoding method, memory storage device and memory control circuit unit | |
KR20130027138A (en) | Method of correcting errors and memory device using the same | |
JPWO2016013285A1 (en) | Memory controller and control method of memory controller | |
US20160132384A1 (en) | Data reading method, memory storage device and memory controlling circuit unit | |
JP2010500699A (en) | Allowable bit errors for each sector in the memory device | |
US9431132B2 (en) | Data managing method, memory control circuit unit and memory storage apparatus | |
JP2010079856A (en) | Storage device and memory control method | |
TWI640997B (en) | Data protecting method, memory control circuit unit and memory storage apparatus | |
TWI670725B (en) | Memory control method, memory storage device and memory control circuit unit | |
WO2020107301A1 (en) | Encoding method, decoding method, and storage controller | |
TWI575533B (en) | Data correcting method, memory control circuit unit and memory storage device | |
TWI607452B (en) | Decoding method, memory storage device and memory control circuit unit | |
US10025652B2 (en) | Error location pointers for non volatile memory | |
JP2012003569A (en) | Memory controller, flash memory system including memory controller, and method of controlling flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180907 |
|
RD07 | Notification of extinguishment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7427 Effective date: 20180907 |