JP2013218565A - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- JP2013218565A JP2013218565A JP2012089442A JP2012089442A JP2013218565A JP 2013218565 A JP2013218565 A JP 2013218565A JP 2012089442 A JP2012089442 A JP 2012089442A JP 2012089442 A JP2012089442 A JP 2012089442A JP 2013218565 A JP2013218565 A JP 2013218565A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- control unit
- chip
- write data
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、記憶装置の技術に関する。 The present invention relates to a storage device technology.
フラッシュメモリを備える記憶装置が存在する。しかし、フラッシュメモリは、構造上、読み出したデータに誤りが含まれる可能性がある。そこで、フラッシュメモリデバイスから読み出すデータ内容の誤りを検出及び訂正する技術がある。例えば、フラッシュメモリに書き込むデータに誤り訂正符号(ECC(Error Correcting Code))を付加して書き込み、フラッシュメモリからデータを読み出す場合にその誤り訂正符号を用いてデータ内容の誤りを訂正する技術がある。また、例えば、2つのフラッシュメモリを用いてミラーリング構成を作り、各フラッシュメモリデバイスからデータを読み出す際、それら2つのデータを比較し、一致した場合にそのデータを正常なデータと判断する技術がある(特許文献1)。 There are storage devices with flash memory. However, due to the structure of the flash memory, there is a possibility that the read data includes an error. Therefore, there is a technique for detecting and correcting an error in data content read from the flash memory device. For example, there is a technique in which an error correction code (ECC (Error Correcting Code)) is added to data to be written in a flash memory and the error is corrected using the error correction code when data is read from the flash memory. . In addition, for example, there is a technique of creating a mirroring configuration using two flash memories and comparing the two data when reading data from each flash memory device, and determining that the data is normal if they match. (Patent Document 1).
フラッシュメモリ等の不揮発性メモリを複数備える記憶装置の場合、上述のように読み出したデータ内容に誤りが含まれる可能性に加えて、次のような障害が発生する可能性が考えられる。つまり、複数の不揮発性メモリを備える記憶装置において、選択した不揮発性メモリにデータを書き込む場合に、障害により、別の不揮発性メモリにもそのデータが誤って書き込まれてしまう可能性がある。もしこのような障害が発生すると、記憶装置の別の不揮発性メモリからデータを読み出した場合に、その誤って書き込まれたデータが正しいデータとして読み出されてしまう虞がある。 In the case of a storage device including a plurality of non-volatile memories such as a flash memory, in addition to the possibility that an error is included in the read data content as described above, the following failure may occur. That is, in a storage device including a plurality of nonvolatile memories, when data is written to a selected nonvolatile memory, the data may be erroneously written to another nonvolatile memory due to a failure. If such a failure occurs, when data is read from another nonvolatile memory of the storage device, the erroneously written data may be read as correct data.
本発明の目的は、不揮発性メモリから読み出すデータの信頼性を高める記憶装置を提供することにある。本発明の他の目的は、不揮発性メモリから読み出したデータが、誤って書き込まれたデータであるか否かを検知する記憶装置を提供することにある。 An object of the present invention is to provide a storage device that improves the reliability of data read from a nonvolatile memory. Another object of the present invention is to provide a storage device that detects whether or not data read from a nonvolatile memory is erroneously written data.
記憶装置は、複数の不揮発性メモリと、複数の不揮発性メモリを制御するメモリ制御部と、を備える。メモリ制御部と複数の不揮発性メモリとは、共通のアドレス/データバスで結ばれている。メモリ制御部と複数の不揮発性メモリの各々とは、複数の不揮発性メモリの中からいずれか所定の不揮発性メモリを選択するための選択用信号線でそれぞれ個別に接続されている。メモリ制御部は、ホストから受領した第1ライトデータを書き込む場合、選択用信号線を用いて複数の不揮発性メモリの中から書き込み先の不揮発性メモリを選択し、選択した書き込み先の不揮発性メモリを識別するための識別情報を含む冗長データを第1ライトデータに付加して第2ライトデータを生成し、第2ライトデータを共通のアドレス/データバスを介して書き込み先の不揮発性メモリに書き込む。 The storage device includes a plurality of nonvolatile memories and a memory control unit that controls the plurality of nonvolatile memories. The memory control unit and the plurality of nonvolatile memories are connected by a common address / data bus. The memory control unit and each of the plurality of nonvolatile memories are individually connected by a selection signal line for selecting any one of the plurality of nonvolatile memories. When writing the first write data received from the host, the memory control unit selects a write destination nonvolatile memory from the plurality of nonvolatile memories using the selection signal line, and selects the selected write destination nonvolatile memory. Redundant data including identification information for identifying the first write data is added to the first write data to generate second write data, and the second write data is written to the write destination nonvolatile memory via the common address / data bus .
本実施形態は、複数の不揮発性半導体メモリの或る1つの不揮発性半導体メモリからデータを読み出す際、そのデータが正しい不揮発性半導体メモリから読み出されたものであるか否かを判定できるようにすることを特徴とする。以下、本発明に係る一実施形態を、図面を用いて説明する。 In the present embodiment, when data is read from one nonvolatile semiconductor memory among a plurality of nonvolatile semiconductor memories, it can be determined whether or not the data is read from the correct nonvolatile semiconductor memory. It is characterized by doing. Hereinafter, an embodiment according to the present invention will be described with reference to the drawings.
図1は、記憶装置11のハードウェア構成の一例を示すブロック図である。記憶装置11は、コンピュータプログラム(以下「プログラム」という)を実行するMPU(Micro Processing Unit)20と、ホスト10との通信を制御するホストI/F(Interface)制御部22とを備える。記憶装置11は、プログラムを格納するプログラム格納用メモリ23と、プログラム実行時にデータを保持するメインメモリ24とを備える。記憶装置11は、記憶媒体としてデータを記憶する複数のFM(Flash Memory)チップ25と、複数のFMチップ25との通信を制御するメモリI/F制御部21とを備える。
FIG. 1 is a block diagram illustrating an example of a hardware configuration of the
ホストI/F制御部22と、MPU20と、プログラム格納用メモリ23と、メモリI/F制御部21と、メインメモリ24とは、双方向にデータ伝送可能な制御用バス32で結ばれている。制御用バス32は、シリアルバス及びパラレルバスの何れであっても良い。
The host I /
メモリI/F制御部21と複数のFMチップ25a、25b、25cとは、双方向にデータ伝送可能な共通のアドレス/データバスであるFMチップ用バス30で結ばれている。FMチップ用バス30は、シリアルバス及びパラレルバスの何れであっても良い。パラレルバスの場合、アドレスとデータを別のバスで伝送する構成であっても、アドレスとデータを共通のバスで伝送する構成であっても良い。FMチップ25a、25b、25cをまとめてFMチップ25ということがある。
The memory I /
メモリI/F制御部21と、各FMチップ25a、25b、25cとは、それぞれ独立したCE信号線(FMチップ25の選択用の信号線)29a、29b、29cで結ばれている。CE信号線29a,29b,29cをまとめてCE信号線29ということがある。CE信号線29が有効(アクティブ)な状態にあることをアサートと言い、無効(インアクティブ)な状態にあることをネゲートと言う。CE信号線29は、電圧レベルの高い状態をアサート、電圧レベルの低い状態をネゲートと設定されても良いし、逆に、電圧レベルの低い状態をアサート、電圧レベルの高い状態をネゲートと設定されても良い。
The memory I /
ホストI/F制御部22は、記憶装置11の外部のホスト10と、双方向にデータ伝送可能なホスト用バス12で結ばれている。ホスト用バス12は、シリアルバス及パラレルバスの何れであっても良い。
The host I /
プログラム格納用メモリ23には、MPU20で実行されるプログラムが格納される。プログラム格納用メモリ23は、例えば、EEPROM(Electrically Erasable And Programmable Read−only Memory)又はFMチップ等の不揮発性半導体メモリで構成される。
A program to be executed by the MPU 20 is stored in the
メインメモリ24は、MPU20においてプログラムが実行される際に、ワークメモリとして使用される。メインメモリ24は、例えば、DRAM(Dynamic Random Access Memory)等の揮発性半導体メモリで構成される。 The main memory 24 is used as a work memory when a program is executed in the MPU 20. The main memory 24 is configured by a volatile semiconductor memory such as a DRAM (Dynamic Random Access Memory), for example.
MPU20は、記憶装置11全体の制御を行う。MPU20は、プログラム格納用メモリ23からプログラムを読み出して実行する。
The MPU 20 controls the
ホストI/F制御部22は、ホスト10と記憶装置11との間でホスト用バス12を介して伝送されるデータを制御する。ホストI/F制御部22は、例えば、次のような処理をする。ホストI/F制御部22は、ホスト用バス12を介して、ホスト10からデータを受信すると、その旨をMPU20に通知する。MPU20は、ホストI/F制御部22の所定のレジスタを確認してホスト10からの要求を解釈し、その解釈に基づいてホストI/F制御部22に指示を出す。
The host I /
ホストI/F制御部22は、例えば、MPU20からデータの読み出し指示を受けた場合、メモリI/F制御部21に対して、そのデータの読み出し指示を出す。メモリI/F制御部21は、その読み出し指示を受けて、FMチップ25からデータを読み出す。そして、ホストI/F制御部22は、メモリI/F制御部21が読み出したデータを、ホスト用バス12を介して、ホスト10に送信する。
For example, when receiving a data read instruction from the
ホストI/F制御部22は、例えば、MPU20からデータの書き込み指示を受けた場合、メモリI/F制御部21に対して、そのデータの書き込み指示を出す。メモリI/F制御部21は、その書き込み指示を受けて、FMチップ25にデータを書き込む。メモリI/F制御部21は、書き込みの成否をホストI/F制御部22に返す。ホストI/F制御部22は、その成否応答を、ホスト用バス12を介して、ホスト10に送信する。
For example, when receiving a data write instruction from the MPU 20, the host I /
FMチップ25は、不揮発性半導体メモリで構成され、電力が供給されない状態であってもデータを保持することができる。FMチップ25は、当該FMチップ25がメモリI/F制御部21に選択された場合のみデータの書き込み、読み出し及び消去をする。以下、書き込み、読み出し及び消去をまとめて「書き込み等」という場合がある。つまり、FMチップ25は、当該FMチップ25に結ばれているCE信号線29がアサートされた場合のみ、データの書き込み等をする。FMチップ25に対する書き込み等の処理については後述する。本実施形態は、NAND型のFMチップ25を想定している。しかし、FMチップ25は、他の構成(例えば、NOR型)であっても良い。
The FM chip 25 is composed of a nonvolatile semiconductor memory, and can retain data even when power is not supplied. The FM chip 25 writes, reads, and erases data only when the FM chip 25 is selected by the memory I /
メモリI/F制御部21は、MPU20の指示に従って、ホストI/F制御部22及びプログラム格納用メモリ23及びメインメモリ24と、複数のFMチップ25との間のデータの送受信を制御する。メモリI/F制御部21と、複数のFMチップ25とは、共通のFMチップ用バス30で接続されている。つまり、メモリI/F制御部21から送信されたデータは、共通のFMチップ用バス30に接続されている全てのFMチップ25に到達する。したがって、メモリI/F制御部21は、データの書き込み等の対象のFMチップ25を選択する。つまり、メモリI/F制御部21は、データの書き込み等の対象のFMチップ25に接続されているCE信号線29をアサートする。これにより、アサートされたFMチップ25のみが書き込み等を行う。次に、書き込み等の処理について更に説明する。
The memory I /
メモリI/F制御部21が、或るFMチップ25に記憶されている記憶データ70を読み出す場合について説明する。記憶データ70は、後に図3で説明するように、論理ブロック71と冗長データ72とを含む。メモリI/F制御部21は、記憶データ70を保持するFMチップ25に接続されているCE信号線29をアサートする。
A case where the memory I /
そして、メモリI/F制御部21は、FMチップ用バス30を介して、読み出しを要求するデータ(以下「読み出し要求」という)を送信する。この送信された読み出し要求は、FMチップ用バス30に接続されている全てのFMチップ25に到達する。アサートされているFMチップ25は、この読み出し要求を実行する。アサートされていないFMチップ25は、この読み出し要求を実行しない。つまり、アサートされているFMチップ25は、読み出し要求が示す記憶データ70を自己のFMチップ25から読み出し、FMチップ用バス30を介して、メモリI/F制御部21に送信する。
Then, the memory I /
これにより、メモリI/F制御部21は、FMチップ25から所望の記憶データ70を読み出すことができる。メモリI/F制御部21は、記憶データ70に含まれる冗長データ72についてECC処理及びCRC処理等を実行し、論理ブロック71を抽出する。メモリI/F制御部21は、読み出した論理ブロック71を復元してメインメモリ24に格納する。メモリI/F制御部21は、復元したデータをホストI/F制御部22に転送する旨の指示をMPU20から受けると、メインメモリ24に格納した復元データをホストI/F制御部22に転送する。
Thereby, the memory I /
メモリI/F制御部21が、或るFMチップ25の記憶データ70を消去する場合は、上述の読み出し要求を送信する代わりに、消去を要求するデータを送信することによって、アサートされたFMチップ25の所定の領域のデータが消去される。
When the memory I /
メモリI/F制御部21が、或るFMチップ25にデータを書き込む場合について説明する。ここでは、書き込み用のデータがメインメモリ24に格納された後からの処理を説明する。メモリI/F制御部21は、メインメモリ24から書き込み用のデータを読み出す。メモリI/F制御部21は、CRC処理及びECC処理等を実行して、論理ブロック71に冗長データ72を付加した記憶データ70を生成する。メモリI/F制御部21は、記憶データ70を書き込みたいFMチップ25のCE信号線29をアサートする。
A case where the memory I /
そして、メモリI/F制御部21は、FMチップ用バス30を介して、書き込みを要求するデータ(以下「書き込み要求」という)と、記憶データ70を送信する。この書き込み要求及び記憶データ70は、FMチップ用バス30に接続されている全てのFMチップ25に到達する。アサートされているFMチップ25は、この書き込み要求を実行する。アサートされていないFMチップ25は、この書き込み要求を実行しない。つまり、アサートされているFMチップ25のみが、書き込み要求と共に送信された記憶データ70を自己のFMチップ25に書き込む。
Then, the memory I /
メモリI/F制御部21は、CRC(Cyclic Redundancy Check)回路213を備える。CRC回路213は、CRC75の生成処理と、CRC75を用いた誤り検出処理を行う。CRC75は、誤り検出情報と言っても良い。メモリI/F制御部21は、FMチップ25にデータを書き込む際、CRC回路213を用いてCRCを生成し、冗長データ72に含ませる。メモリI/F制御部21は、FMチップ25からデータを読み出す際、冗長データ72からCRCを抽出し、CRC回路213を用いてデータの誤りを検出する。
The memory I /
メモリI/F制御部21は、ECC回路212を備える。ECC回路212は、ECC76の生成処理と、ECC76を用いた誤り訂正処理を行う。ECC76は、誤り訂正情報と言っても良い。メモリI/F制御部21は、FMチップ25にデータを書き込む際、ECC回路212を用いてECC76を生成し、冗長データ72に含ませる。メモリI/F制御部21は、FMチップ25からデータを読み出す際、冗長データ72からECCを抽出し、ECC回路212を用いてデータ誤りを訂正する。
The memory I /
この図1に示すような構成において、或る問題が発生し得る。以下、その問題について説明する。 In the configuration as shown in FIG. 1, a certain problem may occur. The problem will be described below.
図2は、FMチップ25からデータを読み出す際に発生し得る問題を説明するための模式図である。図2は、障害によってCE信号線29cが短絡している状態である。つまり、図2に示すFMチップ25cは、常に選択状態(アサート状態)となっている。
FIG. 2 is a schematic diagram for explaining a problem that may occur when data is read from the FM chip 25. FIG. 2 shows a state where the
図2(a)は、CE信号線29cが短絡しているときに、FMチップ25aの所定領域のデータを消去する場合の動作である。メモリI/F制御部21は、CE信号線29aをアサートした後、FMチップ用バス30に所定領域の消去要求を送信する。しかし、CE信号線29cが障害によりアサートされているため、その所定領域の消去要求は、FMチップ25aだけでなく、FMチップ25cでも実行されてしまう。つまり、FMチップ25cにおいて、本来消去されるべきでない所定領域のデータが消去されてしまう。
FIG. 2A shows an operation when erasing data in a predetermined area of the
図2(b)は、上記図2(a)の後、FMチップ25aの消去した所定領域に新たにデータを書き込む場合の動作である。メモリI/F制御部21は、CE信号線29aをアサートした後、FMチップ用バス30に所定領域への書き込み要求を送信する。しかし、CE信号線29cが障害によりアサートされているため、その所定領域への書き込み要求は、FMチップ25aだけでなく、FMチップ25cでも実行されてしまう。つまり、FMチップ25cに、本来書き込まれるべきでない誤ったデータが所定領域に書き込まれてしまう。
FIG. 2B shows the operation when new data is written in the predetermined erased area of the
図2(c)は、上記図2(b)においてFMチップ25cの誤ったデータが書き込まれている所定領域からデータを読み出す場合の動作である。メモリI/F制御部21は、CE信号線29cをアサートした後、FMチップ25c用バスに、所定領域からの読み出し要求を送信する。この場合、メモリI/F制御部21は、FMチップ25cの所定領域から誤ったデータを読み出してしまう。なぜなら、FMチップ25cの所定領域に本来存在すべき正しいデータは、上記図2(a)によって誤って消去されており、その所定領域には上記図2(b)において誤ったデータが書き込まれてしまっているからである。
FIG. 2C shows an operation when data is read from a predetermined area where erroneous data is written in the
この図2(c)において読み出された誤ったデータは、ECC回路212でもCRC回路213でもそのデータが誤ったものであることを検出できない。なぜなら、読み出したデータの値に誤りが存在しているわけではないからである。したがって、上述のようなCE信号線29の短絡の障害が発生した記憶装置11は、ホスト10に本来の正しいデータとは全く異なる誤ったデータを返してしまう虞がある。そこで、以下に、この問題を解決する本発明に係る実施形態を説明する。
The erroneous data read in FIG. 2C cannot be detected by either the
図3は、FMチップ25に記憶されるデータ構成の一例を示すデータ構成図である。FMチップ25に書き込まれる「第2ライトデータ」としての記憶データ70は、論理ブロックデータ(以下「論理ブロック」という)71と冗長データ72とから構成される。
FIG. 3 is a data configuration diagram illustrating an example of a data configuration stored in the FM chip 25. The
ホスト10から書き込み要求された「第1ライトデータ」としてのライトデータは、所定のサイズ(例えば、512byte)の論理ブロック71を1つ以上含む。図3では、1つの論理ブロックのみ示す。ライトデータを構成するデータ単位とFMチップ25への書込み単位とは、異なる。例えば、FMチップ25は、複数のブロック(論理ブロックとは異なる)を有し、各ブロックは複数のページを有し、それらページ単位でデータを読み書きできるようになっている。データの消去は、複数ページから成るブロックの単位で行われる。
The write data as “first write data” requested to be written by the
冗長データ72は、論理ブロック71毎に付与される所定のサイズのデータである。冗長データ72は、CE信号線29の短絡をチェックするためのCE短絡チェックコード73と、論理ブロック71を管理するための相対LBA(Logical Block Address)74と、CRC75と、ECC76とから構成される。
The
CE短絡チェックコード73は、上記図2において説明したように、CE信号線29の短絡をチェックするためのコードである。CE短絡チェックコード73は、各FMチップ25を識別するための識別情報を保持する。つまり、メモリI/F制御部21は、データを書き込む際に、書き込み先のFMチップ25に対応する識別情報をCE短絡チェックコード73に保持させる。そして、メモリI/F制御部21は、データを読み出す際に、読み出し先として選択(アサート)したFMチップ25に対応する識別情報と、読み出したデータのCE短絡チェックコード73に保持されている識別情報とを比較して、読み出したデータが正しいFMチップ25に書き込まれたものであるか否かを判定する。メモリI/F制御部21は、識別情報が一致する場合は、読み出したデータは正しいFMチップ25から読み出したデータであると判定し、識別情報が不一致の場合は、読み出したデータは誤った(つまり、障害によりアサートされた)FMチップ25から読み出したデータであると判定する。
The CE short circuit check code 73 is a code for checking the short circuit of the CE signal line 29 as described in FIG. The CE short check code 73 holds identification information for identifying each FM chip 25. That is, when writing data, the memory I /
CE短絡チェックコード73は、例えば、各FMチップ25に対応するビットフラグ列77で構成される。つまり、ビットフラグ列77の各ビットフラグ78a,78b,78cにそれぞれ、FMチップ25a、25b、25cを対応付ける。例えば、メモリI/F制御部21は、FMチップ25aにデータを書き込む際に、書き込み先として選択(アサート)したFMチップ25aに対応するビットフラグ78aのみに「1」を設定し、他のビットフラグ78b及び78cに「0」を設定してデータを書き込む。メモリI/F制御部21は、FMチップ25aからデータを読み出す際、読み出し先として選択したFMチップ25aに対応するビットフラグ78aのみに「1」が設定されているか否かを判定する。メモリI/F制御部21は、この判定が肯定的な場合は、読み出したデータは正しいFMチップ25から読み出したデータであると判断し、この判定が否定的な場合は、読み出したデータは誤ったFMチップ25から読み出したデータであると判定する。なお、各FMチップ25を区別できる限り、CE短絡チェックコード73はどのようなデータ構成であっても良い。例えば、CE短絡チェックコード73に、FMチップ25に割り当てた番号等を記憶させても良い。
The CE short-circuit check code 73 is composed of a bit flag string 77 corresponding to each FM chip 25, for example. That is, the
相対LBA74は、論理ブロック71を管理するための情報である。つまり、相対LBA74は、論理ブロック71からホスト10に提供するデータを復元する際に用いられる。
The
CRC75は、データの誤りを検出するために用いられるコードである。CRC回路213は、論理ブロック71、CE短絡チェックコード73、及び相対LBA74に対するCRC75を生成する。つまり、CRC回路213は、論理ブロック71、CE短絡チェックコード73、及び相対LBA74におけるデータの誤りを検出することができる。
CRC75 is a code used to detect data errors. The
ECC76は、データの誤りを訂正するために用いられるコードである。ECC回路212は、論理ブロック71、CE短絡チェックコード73、相対LBA74、及びCRC75に対するECC76を生成する。つまり、ECC回路212は、論理ブロック71、CE短絡チェックコード73、相対LBA74、及びCRC75におけるデータの所定のビット誤りを訂正することができる。
The
図4は、FMチップ25にデータを書き込む処理を示すフローチャートである。 FIG. 4 is a flowchart showing a process for writing data to the FM chip 25.
メモリI/F制御部21は、相対LBA74を作成する(S101)。メモリI/F制御部21は、CE短絡チェックコード73を作成する。つまり、書き込み先として選択したFMチップ25に対応するビットフラグ78に「1」を設定する(S102)。
The memory I /
メモリI/F制御部21は、CRC回路213を用いて、CRC75を作成する(S103)。メモリI/F制御部21は、ECC回路212を用いて、ECC76を作成する(S104)。
The memory I /
メモリI/F制御部21は、冗長データ72を論理ブロック71に付加した記憶データ70を生成する(S105)。
The memory I /
メモリI/F制御部21は、書き込み先のFMチップ25のCE信号線29をアサートする(S106)。メモリI/F制御部21は、書き込み要求と記憶データ70を、FMチップ用バス30に出力する(S107)。
The memory I /
以上の処理により、CE信号線29のアサートによって選択されたFMチップ25に、記憶データ70が書き込まれる。
Through the above processing, the
図5は、FMチップ25からデータを読み出す際のデータチェック処理を示すフローチャートである。 FIG. 5 is a flowchart showing a data check process when reading data from the FM chip 25.
メモリI/F制御部21は、読み出し先のFMチップ25のCE信号線29をアサートする(S201)。メモリI/F制御部21は、読み出し要求をFMチップ用バス30に出力する(S202)。そして、メモリI/F制御部21は、FMチップ用バス30を介して、記憶データ70を受け取る(S203)。
The memory I /
メモリI/F制御部21は、ECC回路212を用いて、ECC76の処理を実行し(S204)、データの内容に誤りが有るか否かを判定する(S205)。このステップS205において、データの内容に誤りが有ると判定した場合(S205:YES)、メモリI/F制御部21は、ECC回路212を用いて、誤り訂正処理を実行(S206)した後、ステップS207の処理に進む。ステップS205において、データの内容に誤りが無いと判定した場合(S205:NO)、メモリI/F制御部21は、そのままステップS207の処理に進む。
The memory I /
ステップS207において、メモリI/F制御部21は、CRC回路213を用いて、CRC75の処理を実行し(S207)、データの内容に誤りが有るか否かを判定する(S208)。このステップS208において、データの内容に誤りが有ると判定した場合(S208:YES)、メモリI/F制御部21は、CRC75が異状である(データの内容に誤りが有る)と判定し(S209)、当該処理を終了する。
In step S207, the memory I /
ステップS208において、データの内容に誤りが無いと判定した場合(S208:NO)、メモリI/F制御部21は、次に、CE短絡チェックコード73は正しいか否かを判定する(S210)。つまり、メモリI/F制御部21は、選択したFMチップ25の識別情報と、CE短絡チェックコード73に含まれる識別情報とが一致するか否かを判定する。このステップS210において、CE短絡チェックコード73は正しいと判定した場合(S210:YES)、メモリI/F制御部21は、読み出したデータは正常であると判断し(S211)、当該処理を終了する。ステップS210において、CE短絡チェックコード73は正しくないと判定した場合(S210:NO)、メモリI/F制御部21は、CE信号線29の短絡異状と判断し(S212)、当該処理を終了する。
If it is determined in step S208 that there is no error in the data contents (S208: NO), the memory I /
記憶装置11は、ホスト10からの読み出し要求に対して、上記ステップS211において正常と判断したデータのみを返す。つまり、記憶装置11は、データの内容に誤りが無く、且つデータの読み出し先にも誤りが無いと判断したデータのみをホスト10に返す
In response to the read request from the
本実施形態によれば、例えば、以下のような効果を奏する。
(1)或るCE信号線29が障害によって短絡した場合に発生し得る、誤ったFMチップ25から誤ったデータを読み出してホスト10に返してしまうという問題を防止できる。つまり、記憶装置11の信頼性を高めることができる。
According to the present embodiment, for example, the following effects can be obtained.
(1) It is possible to prevent a problem that erroneous data is read from the erroneous FM chip 25 and returned to the
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。 The above-described embodiments of the present invention are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to those embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.
11…記憶装置 21…メモリI/F制御部 25…フラッシュメモリ用バス CE信号線29 73…CE短絡チェックコード
DESCRIPTION OF
Claims (5)
前記メモリ制御部と前記複数の不揮発性メモリとは、共通のアドレス/データバスで結ばれており、
前記メモリ制御部と前記複数の不揮発性メモリの各々とは、前記複数の不揮発性メモリの中からいずれか所定の不揮発性メモリを選択するための選択用信号線でそれぞれ個別に接続されており、
前記メモリ制御部は、ホストから受領した第1ライトデータを不揮発性メモリに書き込む場合、前記選択用信号線を用いて前記複数の不揮発性メモリの中から書き込み先の不揮発性メモリを選択し、選択した前記書き込み先の不揮発性メモリを識別するための識別情報を含む冗長データを前記第1ライトデータに付加して第2ライトデータを生成し、前記第2ライトデータを前記共通のアドレス/データバスを介して前記書き込み先の不揮発性メモリに書き込む
記憶装置。
A storage device comprising: a plurality of nonvolatile memories; and a memory control unit that controls the plurality of nonvolatile memories,
The memory control unit and the plurality of nonvolatile memories are connected by a common address / data bus,
The memory control unit and each of the plurality of nonvolatile memories are individually connected by a selection signal line for selecting any one of the plurality of nonvolatile memories, respectively.
When writing the first write data received from the host to the non-volatile memory, the memory control unit selects and selects the non-volatile memory to be written from among the plurality of non-volatile memories using the selection signal line. Redundant data including identification information for identifying the write destination nonvolatile memory is added to the first write data to generate second write data, and the second write data is used as the common address / data bus. A storage device that writes to the non-volatile memory at the write destination via the storage device.
請求項1記載の記憶装置。
When reading the second write data from the non-volatile memory, the memory control unit selects a read-out non-volatile memory using the selection signal line, and A) reads the read destination through the common address / data bus. It is determined whether or not the identification information included in the redundant data of the second write data acquired from the non-volatile memory selected as the same as the identification information of the non-volatile memory selected as the read destination. 2. The storage device according to claim 1, wherein the second write data is determined to be normal if they match, and the second write data is determined to be abnormal if the determination does not match.
前記メモリ制御部は、B)前記誤り検出情報を用いて前記第1ライトデータ及び前記識別情報を含むデータに誤りが有るか否かを判定し、当該判定において誤りが無いと判定された場合に、上記A)を実行する
請求項2記載の記憶装置。
The redundant data further includes error detection information for detecting an error in the data including the first write data and the identification information,
The memory control unit determines whether or not there is an error in the data including the first write data and the identification information using the error detection information, and if it is determined that there is no error in the determination The storage device according to claim 2, wherein A) is executed.
前記メモリ制御部は、前記誤り訂正情報を用いて前記第1ライトデータと前記識別情報と前記誤り検出情報とを含むデータの誤りを訂正した後に、上記B)を実行する
請求項3記載の記憶装置。
The redundant data further includes error correction information for correcting an error of data including the first write data, the identification information, and the error detection information,
The storage device according to claim 3, wherein the memory control unit executes the step B) after correcting an error in data including the first write data, the identification information, and the error detection information using the error correction information. apparatus.
前記メモリ制御部は、前記第1ライトデータを不揮発性メモリに書き込む場合、書き込み先に選択した不揮発性メモリに対応するビットフラグのみを有効にした識別情報を生成し、
前記メモリ制御部は、前記第2ライトデータを不揮発性メモリから読み出す場合、上記A)において、前記共通のアドレス/データバスを通じて取得した前記識別情報の有効ビットフラグが、読み出し先として選択した不揮発性メモリに対応するビットフラグであるか否かを判定する
請求項2乃至4の何れかに記載の記憶装置。
The identification information is a string of bit flags corresponding to each of the plurality of nonvolatile memories,
The memory control unit generates identification information in which only the bit flag corresponding to the nonvolatile memory selected as the write destination is enabled when writing the first write data to the nonvolatile memory,
When the memory control unit reads the second write data from the non-volatile memory, in the above A), the valid bit flag of the identification information acquired through the common address / data bus selects the non-volatile The storage device according to claim 2, wherein it is determined whether or not the bit flag corresponds to a memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012089442A JP2013218565A (en) | 2012-04-10 | 2012-04-10 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012089442A JP2013218565A (en) | 2012-04-10 | 2012-04-10 | Storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013218565A true JP2013218565A (en) | 2013-10-24 |
Family
ID=49590573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012089442A Pending JP2013218565A (en) | 2012-04-10 | 2012-04-10 | Storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013218565A (en) |
-
2012
- 2012-04-10 JP JP2012089442A patent/JP2013218565A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078149B (en) | Memory management method, memory storage device and memory control circuit unit | |
US8453021B2 (en) | Wear leveling in solid-state device | |
JP4901987B1 (en) | Storage device, electronic device, and error data correction method | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
KR20160066019A (en) | Data memory device and controller with interface error detection and handling logic | |
US10860247B2 (en) | Data writing method and storage controller | |
JP2008287404A (en) | Apparatus for detecting and recovering data corruption in reading in non-access memory cell, and method thereof | |
KR20150029402A (en) | Data storing system and operating method thereof | |
TWI591482B (en) | Data protecting method, memory control circuit unit and memory storage device | |
CN111028877B (en) | Data access method, memory storage device and memory control circuit unit | |
JP2010079856A (en) | Storage device and memory control method | |
CN111078146B (en) | Memory management method, memory storage device and memory control circuit unit | |
US8607123B2 (en) | Control circuit capable of identifying error data in flash memory and storage system and method thereof | |
US9990152B1 (en) | Data writing method and storage controller | |
JP2009064238A (en) | Memory system | |
JP2007310916A (en) | Memory card | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
JP2013171343A (en) | Storage device | |
US20190325981A1 (en) | Data storage apparatus and method for preventing data error using the same | |
TWI651650B (en) | Memory management method and storage controller using the same | |
TWI550625B (en) | Memory management method, memory storage device and memory controlling circuit unit | |
US10824368B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
CN114822664B (en) | Risk assessment method based on data priority, storage device and control circuit | |
CN108108118B (en) | Data writing method and storage controller | |
JP2010128697A (en) | Memory system |