JP2010079856A - Storage device and memory control method - Google Patents

Storage device and memory control method Download PDF

Info

Publication number
JP2010079856A
JP2010079856A JP2008250763A JP2008250763A JP2010079856A JP 2010079856 A JP2010079856 A JP 2010079856A JP 2008250763 A JP2008250763 A JP 2008250763A JP 2008250763 A JP2008250763 A JP 2008250763A JP 2010079856 A JP2010079856 A JP 2010079856A
Authority
JP
Japan
Prior art keywords
data
read
nonvolatile semiconductor
memory control
semiconductor memories
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008250763A
Other languages
Japanese (ja)
Inventor
Yuzuru Takahashi
譲 高橋
Yoshihiro Nakano
義弘 中野
Hiroaki Fukumaru
広昭 福丸
Takashi Umehara
敬 梅原
Hiroki Nakamura
裕樹 中村
Mamoru Ichimura
守 市村
Yoshimi Fujimata
芳巳 藤又
Hiroshige Kashiwabara
広茂 柏原
Katsuhiro Obara
克裕 小原
Miki Abe
幹 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information and Control Systems Inc, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2008250763A priority Critical patent/JP2010079856A/en
Publication of JP2010079856A publication Critical patent/JP2010079856A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To achieve the efficient mirroring of data processing by using a non-volatile semiconductor memory. <P>SOLUTION: In a storage device 6, when receiving the write-in instruction of data from a host device 3, a memory control part 1 writes the data in both two non-volatile semiconductor memories 2, and when receiving the readout instruction of the data from the host device 3, the memory control part 1 reads the corresponding data from one of the two semiconductor memories 2, and checks whether or not there exists an error in the read data, and when deciding that there exists the error in the read data, the memory control part 1 reads the corresponding data from the other semiconductor memory 2. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、不揮発性半導体メモリを用いたミラーリング(同一データを複数の記憶デバイスに保存して利用すること)の技術に関する。   The present invention relates to a technique of mirroring (storing and using the same data in a plurality of storage devices) using a nonvolatile semiconductor memory.

近年、情報機器の補助記憶装置として、磁気ディスク記憶装置のほかに、耐振性やアクセス速度の面で優れた半導体メモリを記憶媒体とする記憶装置が用いられるようになってきている。その中で、特に、フラッシュメモリなどのEEPROM(Electrically Erasable Programmable Read Only Memory)のような、電気的に消去可能で再書き込み可能な不揮発性半導体メモリを用いたものが、情報機器の補助記憶装置の主流となってきている。   In recent years, as an auxiliary storage device for information equipment, in addition to a magnetic disk storage device, a storage device using a semiconductor memory excellent in vibration resistance and access speed as a storage medium has been used. Among them, in particular, those using an electrically erasable and rewritable nonvolatile semiconductor memory such as an EEPROM (Electrically Erasable Programmable Read Only Memory) such as a flash memory is an auxiliary storage device of information equipment. It has become mainstream.

一般に、不揮発性半導体メモリに記憶させたデータの信頼性は、その素子の特性上、充分高いとは言えない。つまり、不揮発性半導体メモリを用いた記憶装置では、初期段階において、あるいは書き換え回数の増加にともなって、ビット化け(「0」→「1」、あるいは「1」→「0」)によるデータの破損が生じることがある。   In general, the reliability of data stored in a nonvolatile semiconductor memory cannot be said to be sufficiently high due to the characteristics of the element. That is, in a storage device using a nonvolatile semiconductor memory, data is damaged due to bit corruption (“0” → “1” or “1” → “0”) at an initial stage or with an increase in the number of rewrites. May occur.

そこで、このような不揮発性半導体メモリの欠点を補うためには、ミラーリングが有効な手段の1つである。ミラーリングによって同じデータを例えば2箇所に保存しておけば、一方のデータが破損しても、他方のデータが破損していなければ、その破損していないデータを用いることで何も問題がないからである。   Therefore, mirroring is one of the effective means to make up for the drawbacks of such a nonvolatile semiconductor memory. For example, if the same data is stored in two places by mirroring, even if one data is damaged, if the other data is not damaged, there is no problem by using the non-damaged data. It is.

例えば、特許文献1では、2つのフラッシュメモリを用いてミラーリングを行い、データを読み出すときは、両方のフラッシュメモリから該当するデータを読み出して比較し、それらが一致すれば正常(データ破損なし)、一致しなければ異常(データ破損あり)と判定することでデータの信頼性を高める技術が開示されている。
特開2007−257547号公報
For example, in Patent Document 1, mirroring is performed using two flash memories, and when data is read, the corresponding data is read from both flash memories and compared, and if they match, normal (no data corruption), A technique is disclosed that increases the reliability of data by determining an abnormality (with data corruption) if they do not match.
JP 2007-257547 A

しかしながら、特許文献1の技術では、データを読み出すときは、必ず両方のフラッシュメモリから該当するデータを読み出し、さらに、読み出した2つのデータが一致するか比較しなければならないので、データ処理の効率がよくないという問題があった。   However, in the technique of Patent Document 1, when data is read out, it is necessary to read out the corresponding data from both flash memories and compare whether the two read out data match. There was a problem that it was not good.

そこで、本発明は、前記問題に鑑みてなされたものであり、不揮発性半導体メモリを用いてデータ処理の効率のよいミラーリングを実現することを課題とする。   Therefore, the present invention has been made in view of the above problems, and an object of the present invention is to realize efficient data processing mirroring using a nonvolatile semiconductor memory.

前記課題を解決するために、本発明は、記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う2つの不揮発性半導体メモリと、外部のホスト装置からの指示に従い、2つの不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、を具備する記憶装置である。
メモリ制御部は、ホスト装置からデータの書き込み指示を受けた場合、2つの不揮発性半導体メモリの両方に対して当該データを書き込み、ホスト装置からデータの読み出し指示を受けた場合、2つの不揮発性半導体メモリの一方から対応するデータを読み出し、その読み出したデータにエラーがあるかチェックを行い、その読み出したデータにエラーがあると判定したとき、2つの不揮発性半導体メモリの他方から対応するデータを読み出すことを特徴とする。その他の手段については後記する。
In order to solve the above-mentioned problem, the present invention provides two nonvolatile semiconductors that perform data writing to a storage area in a predetermined unit and erase data in units of physical blocks having a larger data amount than the predetermined unit. A storage device includes a memory and a memory control unit that controls writing and reading of data to and from two nonvolatile semiconductor memories in accordance with instructions from an external host device.
When receiving a data write instruction from the host device, the memory control unit writes the data to both of the two nonvolatile semiconductor memories, and when receiving a data read instruction from the host device, the two nonvolatile semiconductors Read the corresponding data from one of the memories, check if there is an error in the read data, and read the corresponding data from the other of the two nonvolatile semiconductor memories when it is determined that there is an error in the read data It is characterized by that. Other means will be described later.

本発明によれば、不揮発性半導体メモリを用いてデータ処理の効率のよいミラーリングを実現することができる。   According to the present invention, efficient mirroring of data processing can be realized using a nonvolatile semiconductor memory.

以下、本発明を実施するための最良の形態(以下、実施形態という。)について、図面を参照(言及図以外の図も適宜参照)しながら説明する。図1は、本実施形態の記憶装置のハードウェア構成を含む説明図である。   Hereinafter, the best mode for carrying out the present invention (hereinafter referred to as an embodiment) will be described with reference to the drawings (refer to drawings other than the referenced drawings as appropriate). FIG. 1 is an explanatory diagram including the hardware configuration of the storage device of this embodiment.

図1に示すように、記憶装置6は、ホスト装置3からの指示に基づいてデータの記憶を行う装置であり、ホスト装置3とデータバス4を介してアクセス可能に接続される。データバス4としては、例えばSCSI(Small Computer System Interface)やATA(Advanced Technology Attachment)などが用いられるが、USB(Universal Serial Bus)などの他のデータバスであってもよい。   As shown in FIG. 1, the storage device 6 is a device that stores data based on an instruction from the host device 3, and is connected to the host device 3 via the data bus 4 so as to be accessible. As the data bus 4, for example, a small computer system interface (SCSI) or an advanced technology attachment (ATA) is used, but another data bus such as a USB (Universal Serial Bus) may be used.

記憶装置6は、メモリ制御部1と、ミラーリングのためのペアをなす2つの不揮発性の半導体メモリ2(2a,2b)とから構成される。なお、以下、2つの半導体メモリ2を区別して表現するときは「半導体メモリ(A系)2a」、「半導体メモリ(B系)2b」と表記し、2つの半導体メモリ2を区別せずに(共通または両方に関して)表現するときは「半導体メモリ2」と表記する。   The storage device 6 includes a memory control unit 1 and two nonvolatile semiconductor memories 2 (2a, 2b) that form a pair for mirroring. Hereinafter, when the two semiconductor memories 2 are distinguished from each other, they are expressed as “semiconductor memory (A system) 2a” and “semiconductor memory (B system) 2b” without distinguishing the two semiconductor memories 2 ( When expressed in terms of (common or both), it is expressed as “semiconductor memory 2”.

半導体メモリ2とメモリ制御部1とのデータのやり取りは、データバス5を介して行われる。半導体メモリ2は、例えばフラッシュメモリであり、その場合、データの書き込みと読み出しはページ単位(所定の単位)で行われ、データの消去は複数ページからなるブロック単位で行われる。なお、ブロックには、例えば、すでにデータが格納されているデータブロック、データが未格納で待機中の交替ブロック、データの消去を待っている状態の消去待ちブロックなどがあるが、以下、それらを区別した詳細な説明を省略する場合もある。   Data exchange between the semiconductor memory 2 and the memory control unit 1 is performed via the data bus 5. The semiconductor memory 2 is, for example, a flash memory. In this case, data writing and reading are performed in units of pages (predetermined units), and data is erased in units of blocks composed of a plurality of pages. The blocks include, for example, a data block in which data has already been stored, a replacement block in which data is not stored and is waiting, and an erasure waiting block in a state waiting for data erasure. In some cases, the detailed description that has been distinguished is omitted.

メモリ制御部1は、マイクロプロセッサ11と、メモリI/F(インターフェース)制御部12と、ホストI/F制御部13と、メモリ14とを有している。   The memory control unit 1 includes a microprocessor 11, a memory I / F (interface) control unit 12, a host I / F control unit 13, and a memory 14.

マイクロプロセッサ11は、ホスト装置3からの指示に従い、2つの半導体メモリ2に対するデータの書き込みおよび読み出しを制御する。   The microprocessor 11 controls writing and reading of data to and from the two semiconductor memories 2 in accordance with instructions from the host device 3.

メモリI/F制御部12は、マイクロプロセッサ11からの指示により半導体メモリ2とのアクセス制御を行う。なお、マイクロプロセッサ11から半導体メモリ2を直接制御可能であれば、メモリI/F制御部12は必ずしも必要ではない。   The memory I / F control unit 12 performs access control with the semiconductor memory 2 according to an instruction from the microprocessor 11. Note that the memory I / F control unit 12 is not necessarily required if the microprocessor 11 can directly control the semiconductor memory 2.

ホストI/F制御部13は、ホスト装置3からのデータの書き込みおよび読み出し要求(指示)に従って、ホスト装置3とのデータの送受信を制御する。なお、ホスト装置3からのデータの書き込みおよび読み出し要求は、半導体メモリ2に関して構築される論理的記憶領域に対して行われる(詳細は後記)。   The host I / F control unit 13 controls data transmission / reception with the host device 3 in accordance with data write / read requests (instructions) from the host device 3. Note that data write and read requests from the host device 3 are made to a logical storage area constructed with respect to the semiconductor memory 2 (details will be described later).

メモリ14は、論理・物理変換テーブル141を有している。論理・物理変換テーブル141は、ホスト装置3からのアクセス時に示される論理アドレスと2つの半導体メモリ2上の物理アドレスとの対応付けを行うテーブルである(詳細は図3で後記)。   The memory 14 has a logical / physical conversion table 141. The logical / physical conversion table 141 is a table for associating a logical address indicated at the time of access from the host device 3 with a physical address on the two semiconductor memories 2 (details will be described later in FIG. 3).

なお、メモリ14は、このほかに、ブロックごとに次回の書き込みページを管理するためのテーブル、交替ブロックのリストを記憶するテーブル、ブロックごとの消去回数を管理するためのテーブル、消去待ちブロックを管理するためのテーブルなどを有していてもよいが、それらは本発明の特徴と直接関係がないので、図示や詳細な説明を省略する。なお、論理・物理変換テーブル141などのテーブルの内容は、記憶装置6自体の初期化時にマイクロプロセッサ11が設定するものとする。   The memory 14 also manages a table for managing the next write page for each block, a table for storing a list of replacement blocks, a table for managing the number of times of erasure for each block, and a block waiting for erasure. However, since they are not directly related to the features of the present invention, illustrations and detailed descriptions are omitted. The contents of tables such as the logical / physical conversion table 141 are set by the microprocessor 11 when the storage device 6 itself is initialized.

メモリ14としては、例えば、フラッシュメモリ以外の、SRAM(Static Random Access Memory)、DRAM(Dynamic RAM)、MRAM(Magneto-resistive RAM)などのメモリ素子を使用することができる。   As the memory 14, for example, a memory element such as an SRAM (Static Random Access Memory), a DRAM (Dynamic RAM), or an MRAM (Magneto-resistive RAM) other than the flash memory can be used.

図2は、本実施形態の半導体メモリの内部構成を示した図である。図2では、半導体メモリ2に関する論理的記憶領域を示している。図1に示したホスト装置3は、記憶装置6に関して、この論理的記憶領域を認識する。   FIG. 2 is a diagram showing an internal configuration of the semiconductor memory according to the present embodiment. FIG. 2 shows a logical storage area related to the semiconductor memory 2. The host device 3 shown in FIG. 1 recognizes this logical storage area with respect to the storage device 6.

ブロック21は、データ消去の最小単位である。ページ211は、データの読み出しおよび書き込みの単位である。図2において、半導体メモリ2の論理的記憶領域は、複数のブロック21で構成されており、ブロック21は複数のページ211により構成されている。すなわち、半導体メモリ2の論理的記憶領域は、ブロック1からブロックm(整数)までのm個の各ブロック21を有し、それぞれのブロックは、ページ1からページn(整数)までのn個のページを有している。   The block 21 is a minimum unit for erasing data. The page 211 is a unit for reading and writing data. In FIG. 2, the logical storage area of the semiconductor memory 2 is composed of a plurality of blocks 21, and the block 21 is composed of a plurality of pages 211. That is, the logical storage area of the semiconductor memory 2 has m blocks 21 from block 1 to block m (integer), and each block includes n blocks from page 1 to page n (integer). Has a page.

図3は、論理・物理変換テーブルの構成例を示した図である。論理・物理変換テーブル141は、ホスト装置3からのアクセス時に示される論理アドレスと、半導体メモリ(A系)2aの物理ブロックと、半導体メモリ(B系)2bの物理ブロックと、この2つの物理ブロックに共通となるページ番号とから構成される。なお、本実施形態において、「ブロック」と「物理ブロック」は同義である。   FIG. 3 is a diagram showing a configuration example of the logical / physical conversion table. The logical / physical conversion table 141 includes a logical address indicated at the time of access from the host device 3, a physical block of the semiconductor memory (A system) 2a, a physical block of the semiconductor memory (B system) 2b, and the two physical blocks. And a common page number. In the present embodiment, “block” and “physical block” are synonymous.

これらのうち、論理アドレスの値は原則として初期設定状態から不変であるが、半導体メモリ(A系)2aの物理ブロックと、半導体メモリ(B系)2bの物理ブロックと、ページ番号の値は、メモリ制御部1による半導体メモリ2に対する書き込み動作などに応じて書き換えられる。つまり、論理アドレスと物理アドレス(ブロック番号とページ番号)の対応関係は随時変化し、その対応関係を論理・物理変換テーブル141で管理する。   Among these, the value of the logical address remains unchanged from the initial setting in principle, but the physical block of the semiconductor memory (A system) 2a, the physical block of the semiconductor memory (B system) 2b, and the page number values are: Rewriting is performed according to a write operation to the semiconductor memory 2 by the memory control unit 1. That is, the correspondence relationship between the logical address and the physical address (block number and page number) changes at any time, and the correspondence relationship is managed by the logical / physical conversion table 141.

図3の論理・物理変換テーブル141からわかるように、ページ番号を、半導体メモリ(A系)2aの物理ブロックと、半導体メモリ(B系)2bの物理ブロックとで共通とすることで、論理・物理変換テーブル141のデータサイズを減らすことができ、それにより、マイクロプロセッサ11による論理・物理変換テーブル141の書き換えや参照の動作を高速化することができる。   As can be seen from the logical / physical conversion table 141 of FIG. 3, by making the page number common to the physical block of the semiconductor memory (A system) 2a and the physical block of the semiconductor memory (B system) 2b, The data size of the physical conversion table 141 can be reduced, and thereby the speed of rewriting and referring to the logical / physical conversion table 141 by the microprocessor 11 can be increased.

次に、図4を参照して、論理・物理変換テーブル141において2つの物理ブロックに対しページ番号を共通とするための、マイクロプロセッサ11による半導体メモリ2に対する動作の概要について説明する。図4は、その動作の概要の説明図である。   Next, with reference to FIG. 4, an outline of the operation of the microprocessor 11 on the semiconductor memory 2 to make the page number common to two physical blocks in the logical / physical conversion table 141 will be described. FIG. 4 is an explanatory diagram of the outline of the operation.

ここで、半導体メモリ(A系)2aのある物理ブロックにおいてページ5が不良であり、半導体メモリ(B系)2bのある物理ブロックにおいて全ページに不良がないものとする。これらの2つの物理ブロックに対してデータ(1)〜(6)を書き込む場合、2つの物理ブロックに対しページ番号を共通とするため、双方の物理ブロックのページ5は使用せず、双方の物理ブロックのページ1〜4にデータ(1)〜(4)を書き込み、ページ6,7にデータ(5),(6)を書き込む。このようにすれば、2つの物理ブロックに対しページ番号を共通とすることができる。   Here, it is assumed that page 5 is defective in a physical block having the semiconductor memory (A system) 2a, and all pages are not defective in a physical block having the semiconductor memory (B system) 2b. When data (1) to (6) is written to these two physical blocks, the page number is shared between the two physical blocks, so page 5 of both physical blocks is not used and both physical blocks are used. Data (1) to (4) are written to pages 1 to 4 of the block, and data (5) and (6) are written to pages 6 and 7. In this way, the page number can be made common to the two physical blocks.

続いて、図5を参照して、半導体メモリ2に対する書き込み処理について説明する。図5は、半導体メモリに対する書き込み処理を示したフローチャートである。なお、メモリI/F制御部12とホストI/F制御部13の動作については説明を省略する。   Subsequently, a writing process to the semiconductor memory 2 will be described with reference to FIG. FIG. 5 is a flowchart showing a writing process to the semiconductor memory. Note that description of the operations of the memory I / F control unit 12 and the host I / F control unit 13 is omitted.

まず、マイクロプロセッサ11は、ホスト装置3から書き込み指示(論理アドレス、データ、データサイズ)を受信する(ステップS501)。
次に、マイクロプロセッサ11は、ステップS501で受信したデータにCRC(Cyclic Redundancy Check)符号を付加する(ステップS502)。CRC符号は、エラー(誤り)検出のための符号であり、データを所定の生成多項式で除算した剰余がエラー検出用の数値として用いられる。なお、このCRC符号を用いれば、データのエラー検出ができるが、エラー検出時にデータを復旧することはできない。
First, the microprocessor 11 receives a write instruction (logical address, data, data size) from the host device 3 (step S501).
Next, the microprocessor 11 adds a CRC (Cyclic Redundancy Check) code to the data received in step S501 (step S502). The CRC code is a code for error (error) detection, and a remainder obtained by dividing data by a predetermined generator polynomial is used as a numerical value for error detection. If this CRC code is used, error detection of data can be performed, but data cannot be recovered when an error is detected.

続いて、マイクロプロセッサ11は、ステップS502でCRC符号を付加したデータに、リードソロモン符号を付加する(ステップS503)。リードソロモン符号は、ガロア体の概念を利用したエラー(誤り)訂正符号の一つである。このリードソロモン符号を用いれば、エラー検出ができ、さらに、エラー検出時には高確率でデータを復旧することができる。   Subsequently, the microprocessor 11 adds a Reed-Solomon code to the data to which the CRC code is added in step S502 (step S503). The Reed-Solomon code is one of error (error) correction codes using the Galois field concept. If this Reed-Solomon code is used, error detection can be performed, and data can be recovered with high probability when an error is detected.

次に、マイクロプロセッサ11は、書き込み対象となる半導体メモリ2の物理アドレスを特定するために論理・物理変換テーブル141を参照し、半導体メモリ(A系)2aの所定ブロックと半導体メモリ(B系)2bの所定ブロックに対して、ステップS503でリードソロモン符号を付加したデータをそれぞれのブロックの同じページに書き込む(ステップS504)。なお、ステップS504において、マイクロプロセッサ11は、特定した各ブロック内のページの空き容量が十分であるかの確認や、その空き容量が十分でない場合に書き込み対象を別のブロックとするブロック交替処理や、書き込みエラーにともなうブロック交替処理などを行うが、それらの詳細な説明は省略する。   Next, the microprocessor 11 refers to the logical / physical conversion table 141 in order to specify the physical address of the semiconductor memory 2 to be written, and the predetermined block of the semiconductor memory (A system) 2a and the semiconductor memory (B system). The data to which the Reed-Solomon code is added in step S503 is written to the same page of each block for the predetermined block 2b (step S504). In step S504, the microprocessor 11 confirms whether the free space of the page in each specified block is sufficient, and if the free space is insufficient, the microprocessor 11 performs a block replacement process in which the writing target is another block. The block replacement process associated with the write error is performed, but detailed description thereof is omitted.

続いて、マイクロプロセッサ11は、ステップS504での処理内容に応じて論理・物理変換テーブル141の内容を更新し(ステップS505)、ホスト装置3に書き込み終了を通知し(ステップS506)、処理を終了する。   Subsequently, the microprocessor 11 updates the contents of the logical / physical conversion table 141 in accordance with the processing contents in step S504 (step S505), notifies the host device 3 of the end of writing (step S506), and ends the processing. To do.

次に、図6A,6Bを参照して、半導体メモリ2に対する読み出し処理について説明する。図6A,6Bは、半導体メモリに対する読み出し処理を示したフローチャートである。なお、メモリI/F制御部12とホストI/F制御部13の動作については説明を省略する。   Next, read processing for the semiconductor memory 2 will be described with reference to FIGS. 6A and 6B. 6A and 6B are flowcharts showing a read process for the semiconductor memory. Note that description of the operations of the memory I / F control unit 12 and the host I / F control unit 13 is omitted.

まず、マイクロプロセッサ11は、ホスト装置3から読み出し指示(論理アドレス)を受信する(ステップS601)。
次に、マイクロプロセッサ11は、論理・物理変換テーブル141を参照し、一方の半導体メモリ2、例えば半導体メモリ(A系)2aから該当するデータを読み出す(ステップS602)。このステップS602で読み出す対象の半導体メモリ2は、例えば、半導体メモリ(A系)2aと半導体メモリ(B系)2bを交互としてもよいし、他の基準により決定してもよい。
First, the microprocessor 11 receives a read instruction (logical address) from the host device 3 (step S601).
Next, the microprocessor 11 refers to the logical / physical conversion table 141 and reads out the corresponding data from one semiconductor memory 2, for example, the semiconductor memory (A system) 2a (step S602). The semiconductor memory 2 to be read in step S602 may be, for example, alternating between the semiconductor memory (A system) 2a and the semiconductor memory (B system) 2b, or may be determined according to other criteria.

続いて、マイクロプロセッサ11は、ステップS602で読み出したデータをリードソロモン復号化し(ステップS603)、エラーがあるか否かを判定する(ステップS604)。   Subsequently, the microprocessor 11 performs Reed-Solomon decoding on the data read in step S602 (step S603), and determines whether there is an error (step S604).

エラーがないと判定された場合(ステップS604でNo)、ステップS607に進む。エラーがあると判定された場合(ステップS604でYes)、マイクロプロセッサ11は、そのエラーの訂正が可能か否かを判定する(ステップS605)。   If it is determined that there is no error (No in step S604), the process proceeds to step S607. If it is determined that there is an error (Yes in step S604), the microprocessor 11 determines whether or not the error can be corrected (step S605).

エラー訂正が可能でないと判定された場合(ステップS605でNo)、ステップS609に進む(ステップS609の処理については後記する)。エラー訂正が可能であると判定された場合(ステップS605でYes)、マイクロプロセッサ11は、リードソロモンによるエラー訂正を行い(ステップS606)、ステップS607に進む。なお、ステップS606では、半導体メモリ2の性能劣化を回避するために、エラー訂正したデータを他のブロックに書き込み、読み出したデータを消去するブロック交替処理を行うのが好ましい。   If it is determined that error correction is not possible (No in step S605), the process proceeds to step S609 (the process in step S609 will be described later). If it is determined that error correction is possible (Yes in step S605), the microprocessor 11 performs error correction by Reed-Solomon (step S606), and proceeds to step S607. In step S606, in order to avoid performance degradation of the semiconductor memory 2, it is preferable to perform block replacement processing in which error-corrected data is written to another block and the read data is erased.

ステップS607において、マイクロプロセッサ11は、CRC復号化とそれによるエラーチェックを行う。
次に、マイクロプロセッサ11は、CRCチェックによるエラーがあるか否かを判定し(ステップS608)、当該エラーがないと判定した場合(No)ステップS618に進み、当該エラーがあると判定した場合(Yes)そのブロックからは有効なデータの読み出しができなかったことになるので論理・物理変換テーブル141において当該ブロックを異常(不使用)と登録する(ステップS609)。
In step S607, the microprocessor 11 performs CRC decoding and error check based on the CRC decoding.
Next, the microprocessor 11 determines whether or not there is an error due to the CRC check (step S608). When it is determined that there is no error (No), the microprocessor 11 proceeds to step S618 and when it is determined that there is the error ( Yes) Since valid data could not be read from the block, the block is registered as abnormal (not used) in the logical / physical conversion table 141 (step S609).

ステップS609の後、マイクロプロセッサ11は、論理・物理変換テーブル141を参照し、他方の半導体メモリ2、例えば半導体メモリ(B系)2bから該当するデータを読み出す(ステップS610)。ステップS611〜S617の処理は、ステップS603〜S609の処理と同様なので、説明を省略する。   After step S609, the microprocessor 11 refers to the logical / physical conversion table 141, and reads the corresponding data from the other semiconductor memory 2, for example, the semiconductor memory (B system) 2b (step S610). Since the processing of steps S611 to S617 is similar to the processing of steps S603 to S609, the description thereof is omitted.

ステップS618において、マイクロプロセッサ11は、ホスト装置3にデータを送信し(ステップS618)、必要に応じてバックグラウンド(空き時間)でミラーリング復旧(エラー発生部分のデータを他の箇所に移動させるなど)を行い(ステップS619)、処理を終了する。   In step S618, the microprocessor 11 transmits data to the host device 3 (step S618), and mirroring is restored in the background (free time) as necessary (data of the error occurrence portion is moved to another location). (Step S619), and the process ends.

ステップS617の後、ここでは両方の半導体メモリ2から必要なデータを読み出せなかったので、マイクロプロセッサ11は、ホスト装置3に読み出しエラー通知を行い(ステップS620)、処理を終了する。   After step S617, necessary data could not be read from both the semiconductor memories 2 here, so the microprocessor 11 sends a read error notification to the host device 3 (step S620) and ends the process.

このように、本実施形態の記憶装置6によれば、データを読み出す際、2つの半導体メモリ2のうちまず一方のみから読み出し、その読み出したデータにエラーがあるかチェックを行い、その読み出したデータにエラーがあると判定したときに、他方の半導体メモリ2から対応するデータを読み出すことで、データ処理の効率のよいミラーリングを実現することができる。   As described above, according to the storage device 6 of the present embodiment, when data is read, the data is first read from only one of the two semiconductor memories 2, and the read data is checked for errors, and the read data is read out. When it is determined that there is an error, reading the corresponding data from the other semiconductor memory 2 makes it possible to realize mirroring with efficient data processing.

また、論理・物理変換テーブル141において、ページ番号を、2つの半導体メモリ2の所定のブロックに対して共通とすることで、論理・物理変換テーブル141のデータサイズを減らすことができ、それにより、マイクロプロセッサ11による論理・物理変換テーブル141の書き換えや参照の動作を高速化することができる。   Further, by making the page number common to a predetermined block of the two semiconductor memories 2 in the logical / physical conversion table 141, the data size of the logical / physical conversion table 141 can be reduced. The rewrite and reference operations of the logical / physical conversion table 141 by the microprocessor 11 can be speeded up.

さらに、読み出したデータのエラーチェックに、CRC符号を用いることで、例えばパリティチェック方式のエラーチェックに比べると冗長度に比較して高い誤り検出能力を持つという利点や、バースト誤り(誤りが集中して発生する現象)に強いなど利点を有することができる。また、読み出したデータのエラーチェックに、リードソロモン符号を用いることで、高いエラー訂正機能を実現することができる。   Furthermore, by using a CRC code for error checking of read data, for example, there is an advantage that it has a higher error detection capability compared to the redundancy check compared to the error check of the parity check method, and burst errors (errors are concentrated). It is possible to have advantages such as being strong against In addition, a high error correction function can be realized by using Reed-Solomon codes for error checking of read data.

以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、ページ番号を2つの半導体メモリ2の所定のブロックに対して共通とする方式を採用しなくても、本発明に係るデータ処理の効率のよいミラーリングを実現することができる。その他、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。   As mentioned above, although embodiment of this invention was described, this invention is not limited to this, It can implement in the range which does not change the meaning. For example, efficient mirroring of data processing according to the present invention can be realized without adopting a method in which page numbers are common to predetermined blocks of two semiconductor memories 2. In addition, specific configurations of hardware and software can be appropriately changed without departing from the gist of the present invention.

本実施形態の記憶装置のハードウェア構成を含む説明図である。It is explanatory drawing containing the hardware constitutions of the memory | storage device of this embodiment. 本実施形態の半導体メモリの内部構成を示した図である。It is the figure which showed the internal structure of the semiconductor memory of this embodiment. 論理・物理変換テーブルの構成例を示した図である。It is the figure which showed the structural example of the logical / physical conversion table. 2つの半導体メモリに対する動作の概要の説明図である。It is explanatory drawing of the outline | summary of operation | movement with respect to two semiconductor memories. 半導体メモリに対する書き込み処理を示したフローチャートである。5 is a flowchart showing a writing process to a semiconductor memory. 半導体メモリに対する読み出し処理を示したフローチャートである。It is the flowchart which showed the read-out process with respect to a semiconductor memory. 半導体メモリに対する読み出し処理を示したフローチャートである。It is the flowchart which showed the read-out process with respect to a semiconductor memory.

符号の説明Explanation of symbols

1 メモリ制御部
2 半導体メモリ
2a 半導体メモリ(A系)
2b 半導体メモリ(B系)
3 ホスト装置
4 データバス
5 データバス
6 記憶装置
11 マイクロプロセッサ
12 メモリI/F制御部
13 ホストI/F制御部
14 メモリ
21 ブロック
141 論理・物理変換テーブル
211 ページ
DESCRIPTION OF SYMBOLS 1 Memory control part 2 Semiconductor memory 2a Semiconductor memory (A system)
2b Semiconductor memory (B system)
3 Host device 4 Data bus 5 Data bus 6 Storage device 11 Microprocessor 12 Memory I / F control unit 13 Host I / F control unit 14 Memory 21 block 141 Logical / physical conversion table 211 pages

Claims (6)

記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う2つの不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記2つの不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、
を具備する記憶装置であって、
前記メモリ制御部は、
前記ホスト装置からデータの書き込み指示を受けた場合、前記2つの不揮発性半導体メモリの両方に対して当該データを書き込み、
前記ホスト装置からデータの読み出し指示を受けた場合、前記2つの不揮発性半導体メモリの一方から対応するデータを読み出し、その読み出したデータにエラーがあるかチェックを行い、その読み出したデータにエラーがあると判定したとき、前記2つの不揮発性半導体メモリの他方から対応するデータを読み出す
ことを特徴とする記憶装置。
Two nonvolatile semiconductor memories that perform writing of data to the storage area in a predetermined unit and erase data in units of physical blocks having a data amount larger than the predetermined unit;
A memory control unit that controls writing and reading of data to and from the two nonvolatile semiconductor memories in accordance with instructions from an external host device;
A storage device comprising:
The memory control unit
When receiving a data write instruction from the host device, the data is written to both of the two nonvolatile semiconductor memories,
When receiving a data read instruction from the host device, the corresponding data is read from one of the two nonvolatile semiconductor memories, the read data is checked for errors, and the read data has errors. When it is determined, the corresponding data is read from the other of the two nonvolatile semiconductor memories.
前記メモリ制御部は、
前記ホスト装置からデータの書き込み指示を受けて前記2つの不揮発性半導体メモリの両方に対して当該データを書き込む場合、一方の前記不揮発性半導体メモリの所定の前記物理ブロックと、他方の前記不揮発性半導体メモリの所定の前記物理ブロックとに対し、前記所定の単位の同じアドレスに同じデータを書き込むように制御する
ことを特徴とする請求項1に記載の記憶装置。
The memory control unit
When receiving the data write instruction from the host device and writing the data to both of the two nonvolatile semiconductor memories, the predetermined physical block of one of the nonvolatile semiconductor memories and the other nonvolatile semiconductor The storage device according to claim 1, wherein the same data is written to the same address in the predetermined unit with respect to the predetermined physical block of the memory.
前記メモリ制御部は、
前記読み出したデータにエラーがあるかチェックを行うとき、CRC(Cyclic Redundancy Check)符号およびリードソロモン符号の少なくともいずれかを用いる
ことを特徴とする請求項1または請求項2に記載の記憶装置。
The memory control unit
3. The storage device according to claim 1, wherein when checking whether there is an error in the read data, at least one of a CRC (Cyclic Redundancy Check) code and a Reed-Solomon code is used.
記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きな物理ブロックの単位でデータの消去を行う2つの不揮発性半導体メモリと、
外部のホスト装置からの指示に従い、前記2つの不揮発性半導体メモリに対するデータの書き込みおよび読み出しを制御するメモリ制御部と、
を具備する記憶装置によるメモリ制御方法であって、
前記メモリ制御部は、
前記ホスト装置からデータの書き込み指示を受けた場合、前記2つの不揮発性半導体メモリの両方に対して当該データを書き込み、
前記ホスト装置からデータの読み出し指示を受けた場合、前記2つの不揮発性半導体メモリの一方から対応するデータを読み出し、その読み出したデータにエラーがあるかチェックを行い、その読み出したデータにエラーがあると判定したとき、前記2つの不揮発性半導体メモリの他方から対応するデータを読み出す
ことを特徴とするメモリ制御方法。
Two nonvolatile semiconductor memories that perform writing of data to the storage area in a predetermined unit and erase data in units of physical blocks having a data amount larger than the predetermined unit;
A memory control unit that controls writing and reading of data to and from the two nonvolatile semiconductor memories in accordance with instructions from an external host device;
A memory control method using a storage device comprising:
The memory control unit
When receiving a data write instruction from the host device, the data is written to both of the two nonvolatile semiconductor memories,
When receiving a data read instruction from the host device, the corresponding data is read from one of the two nonvolatile semiconductor memories, the read data is checked for errors, and the read data has errors. When it is determined that the corresponding data is read out from the other of the two non-volatile semiconductor memories, a memory control method.
前記メモリ制御部は、
前記ホスト装置からデータの書き込み指示を受けて前記2つの不揮発性半導体メモリの両方に対して当該データを書き込む場合、一方の前記不揮発性半導体メモリの所定の前記物理ブロックと、他方の前記不揮発性半導体メモリの所定の前記物理ブロックとに対し、前記所定の単位の同じアドレスに同じデータを書き込むように制御する
ことを特徴とする請求項4に記載のメモリ制御方法。
The memory control unit
When receiving the data write instruction from the host device and writing the data to both of the two nonvolatile semiconductor memories, the predetermined physical block of one of the nonvolatile semiconductor memories and the other nonvolatile semiconductor 5. The memory control method according to claim 4, wherein control is performed so that the same data is written to the same address in the predetermined unit with respect to the predetermined physical block of the memory.
前記メモリ制御部は、
前記読み出したデータにエラーがあるかチェックを行うとき、CRC(Cyclic Redundancy Check)符号およびリードソロモン符号の少なくともいずれかを用いる
ことを特徴とする請求項4または請求項5に記載のメモリ制御方法。
The memory control unit
6. The memory control method according to claim 4, wherein when checking whether there is an error in the read data, at least one of a CRC (Cyclic Redundancy Check) code and a Reed-Solomon code is used.
JP2008250763A 2008-09-29 2008-09-29 Storage device and memory control method Pending JP2010079856A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008250763A JP2010079856A (en) 2008-09-29 2008-09-29 Storage device and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008250763A JP2010079856A (en) 2008-09-29 2008-09-29 Storage device and memory control method

Publications (1)

Publication Number Publication Date
JP2010079856A true JP2010079856A (en) 2010-04-08

Family

ID=42210180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008250763A Pending JP2010079856A (en) 2008-09-29 2008-09-29 Storage device and memory control method

Country Status (1)

Country Link
JP (1) JP2010079856A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203642A (en) * 2011-03-25 2012-10-22 Mega Chips Corp Memory system
WO2013057825A1 (en) * 2011-10-20 2013-04-25 トヨタ自動車株式会社 Information processing device, data management method, data management program
JP2013191174A (en) * 2012-03-15 2013-09-26 Toshiba Corp Semiconductor storage device and program
JP2014063299A (en) * 2012-09-20 2014-04-10 Fujitsu Ltd Memory controller, information processor, and memory control method
CN104036823A (en) * 2013-03-08 2014-09-10 飞思卡尔半导体公司 Symmetrical Data Replication For Failure Management In Non-volatile Memory Systems
US9875170B2 (en) 2014-12-03 2018-01-23 Samsung Electronics Co., Ltd. Data storage device for self-detecting error and logging operation and method of operating the same
KR20190032839A (en) * 2017-09-20 2019-03-28 삼성전자주식회사 Storage device, method for operating the same storage system including the storage device
US10353852B2 (en) 2015-08-28 2019-07-16 Toshiba Memory Corporation Memory system that stores data redundantly

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078853A (en) * 1996-09-05 1998-03-24 Hitachi Ltd Storage device
JPH10143207A (en) * 1996-11-08 1998-05-29 Matsushita Seiko Co Ltd Controller
JP2004139503A (en) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd Storage device and its control method
JP2005242903A (en) * 2004-02-27 2005-09-08 Sony Corp Memory device, and memory control method and device
JP2007257547A (en) * 2006-03-24 2007-10-04 Toshiba Corp Memory system and bus splitter

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078853A (en) * 1996-09-05 1998-03-24 Hitachi Ltd Storage device
JPH10143207A (en) * 1996-11-08 1998-05-29 Matsushita Seiko Co Ltd Controller
JP2004139503A (en) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd Storage device and its control method
JP2005242903A (en) * 2004-02-27 2005-09-08 Sony Corp Memory device, and memory control method and device
JP2007257547A (en) * 2006-03-24 2007-10-04 Toshiba Corp Memory system and bus splitter

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203642A (en) * 2011-03-25 2012-10-22 Mega Chips Corp Memory system
WO2013057825A1 (en) * 2011-10-20 2013-04-25 トヨタ自動車株式会社 Information processing device, data management method, data management program
JP2013191174A (en) * 2012-03-15 2013-09-26 Toshiba Corp Semiconductor storage device and program
JP2014063299A (en) * 2012-09-20 2014-04-10 Fujitsu Ltd Memory controller, information processor, and memory control method
CN104036823A (en) * 2013-03-08 2014-09-10 飞思卡尔半导体公司 Symmetrical Data Replication For Failure Management In Non-volatile Memory Systems
US9875170B2 (en) 2014-12-03 2018-01-23 Samsung Electronics Co., Ltd. Data storage device for self-detecting error and logging operation and method of operating the same
US10353852B2 (en) 2015-08-28 2019-07-16 Toshiba Memory Corporation Memory system that stores data redundantly
KR20190032839A (en) * 2017-09-20 2019-03-28 삼성전자주식회사 Storage device, method for operating the same storage system including the storage device
KR102369402B1 (en) 2017-09-20 2022-03-02 삼성전자주식회사 Storage device, method for operating the same storage system including the storage device

Similar Documents

Publication Publication Date Title
US8732392B2 (en) Systems and methods for determining the status of memory locations in a non-volatile memory
KR101730510B1 (en) Non-regular parity distribution detection via metadata tag
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
KR102571747B1 (en) Data storage device and operating method thereof
JP5492679B2 (en) Storage device and memory controller
CN107957959B (en) Memory system with file level secure erase and method of operating the same
US20060248434A1 (en) Non-systematic coded error correction
US11204846B2 (en) Memory system and method for operating the same
JP2010079856A (en) Storage device and memory control method
US20110202818A1 (en) Non-volatile memory device and operation method using the same
JP2015018451A (en) Memory controller, storage device, and memory control method
US20160224419A1 (en) Device and method
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
US20100287448A1 (en) Flash memory device with rectifiable redundancy bit and method of controlling the same
KR102504178B1 (en) Memory device
JP2009064238A (en) Memory system
US10289328B2 (en) Memory controller and method for handling host request based on data character
JP4956230B2 (en) Memory controller
US20130047056A1 (en) Flash memory device with rectifiable redundancy and method of controlling the same
JP2009157515A (en) Semiconductor memory controller and semiconductor memory
KR20210152738A (en) Apparatus and method for accessing data in stripe form
US10922025B2 (en) Nonvolatile memory bad row management
JP2010128697A (en) Memory system
JP4582078B2 (en) Memory controller, flash memory system, and flash memory control method
US10073685B2 (en) Methods of system optimization by over-sampling read

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130129