JPWO2014083811A1 - 半導体記憶装置およびその制御方法 - Google Patents

半導体記憶装置およびその制御方法 Download PDF

Info

Publication number
JPWO2014083811A1
JPWO2014083811A1 JP2014549804A JP2014549804A JPWO2014083811A1 JP WO2014083811 A1 JPWO2014083811 A1 JP WO2014083811A1 JP 2014549804 A JP2014549804 A JP 2014549804A JP 2014549804 A JP2014549804 A JP 2014549804A JP WO2014083811 A1 JPWO2014083811 A1 JP WO2014083811A1
Authority
JP
Japan
Prior art keywords
data
memory
mirror
unit
error
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.)
Granted
Application number
JP2014549804A
Other languages
English (en)
Other versions
JP6327714B2 (ja
Inventor
竹内 健
健 竹内
周平 田中丸
周平 田中丸
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.)
Chuo University
Original Assignee
Chuo University
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 Chuo University filed Critical Chuo University
Publication of JPWO2014083811A1 publication Critical patent/JPWO2014083811A1/ja
Application granted granted Critical
Publication of JP6327714B2 publication Critical patent/JP6327714B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Read Only Memory (AREA)

Abstract

信頼性を高め、かつ、1つの階層でSSDを効率的に制御する。本発明に係る半導体記憶装置は、プライマリメモリ3と、プライマリメモリ3に格納されるデータに対応するデータが格納されるミラーメモリ4と、バッファメモリ5とのうちの少なくとも1つのメモリと、少なくとも1つのメモリを制御して、少なくとも1つのメモリにデータを格納し、少なくとも1つのメモリからデータを読み出す制御装置2とを備える。

Description

関連出願へのクロスリファレンス
本出願は、日本国特許出願2012−263033号(2012年11月30日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
本発明は、半導体記憶装置およびその制御方法に関し、特に、不揮発性メモリを備える半導体記憶装置およびその制御方法に関するものである。
近年、ビッグデータを取り扱う企業などにおいて、高速、低消費電力という特徴を有するSSD(Solid State Drive)をストレージシステムに採用することの需要が高まっている。
従来のストレージシステムは、図32に示す例のように、サーバ、ディスクアレイ、SSDおよびNANDフラッシュメモリなど、多くの階層を有する構成となっており、それぞれの階層で、データに冗長性を持たせ、また、エラー訂正を行うことにより、信頼性を向上させていた。
また、複数の記憶装置を組み合わせて信頼性を向上させる技術として、様々な種類のRAID(Redundant Arrays of Independent Disks)が提案されている(例えば、非特許文献1参照)。
Mike Ault, "Oracle and RAID Usage", [online], [平成24年11月22日検索], インターネット<URL: http://www.dba-oracle.com/oracle_tips_raid_usage.htm>
ビッグデータを取り扱うストレージシステムにおいては、階層を超えてデータをコピーすることが多い。しかしながら、従来のストレージシステムは多くの階層を有し、各階層に存在するコントローラが独立して、データの冗長性やエラー訂正を最適化していたため、重複している部分が多く効率の悪いシステムとなっているものが多かった。
したがって、かかる点に鑑みてなされた本発明の目的は、信頼性が高く、かつ、1つの階層でSSDを効率的に制御することができる半導体記憶装置およびその制御方法を提供することにある。
上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリと、前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納し、前記少なくとも1つのメモリからデータを読み出す制御装置とを備える。
また、本発明に係る半導体記憶装置において、前記制御装置は、ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページRAID部と、前記ページRAID部から受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データの順番を変更して格納する逆ミラー部と、前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、前記プライマリメモリからデータを読み出して第1のデータとし、前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部と、前記エラー低減部から受け取ったデータをエラー訂正復号するエラー訂正復号部と、前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、前記エラー位置情報を前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリに格納し、前記エラー訂正復号部がデータをエラー訂正復号する際に、前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリから前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部とを備えることが好ましい。
また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する制御装置であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データを格納するページを所定の規則に基づいて制御して、前記データを格納する制御装置とを備える。
また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データの順番を変更してデータを格納する逆ミラー部とを備える。
また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納するシフトミラー部であって、前記プライマリメモリには受け取った前記データをそのまま格納し、前記ミラーメモリには、受け取った前記データを格納するページをシフトさせて格納するシフトミラー部とを備える。
また、上記課題を解決するため、本発明に係る半導体記憶装置は、プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、前記プライマリメモリからデータを読み出して第1のデータとし、前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部とを備える。
また、上記課題を解決するため、本発明に係る半導体記憶装置は、バッファメモリと、ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するRAID部とを備える。
また、上記課題を解決するため、本発明に係る半導体記憶装置は、受け取ったデータをエラー訂正復号するエラー訂正復号部と、前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、前記エラー位置情報を前記メモリに格納し、前記エラー訂正復号部がデータをエラー訂正復号する際に、前記メモリから以前の前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部とを備える。
また、上記課題を解決するため、本発明に係る半導体記憶装置の制御方法は、プライマリメモリと、当該プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリを備える半導体記憶装置の制御方法であって、前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納する格納ステップと、前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリからデータを読み出す読み出しステップとを含む。
本発明によれば、信頼性が高く、かつ、1つの階層でSSDを効率的に制御することができる半導体記憶装置およびその制御方法を提供することができる。
本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。 本発明の一実施形態に係る逆ミラー部の概略構成を示す図である。 NANDフラッシュメモリの構成の一例を示す図である。 書き込みBERの上位ページ/下位ページへの依存性を示すグラフである。 データ保持BERのページ番号への依存性を示すグラフである。 プライマリメモリおよびミラーメモリにデータを格納する様子の一例を示す図である。 書き込みエラー主因条件におけるデータの読み出し方法の一例である。 データ保持エラー主因条件におけるデータの読み出し方法の一例である。 書き込みエラー主因条件において、逆ミラーリングを適用した場合にBERが改善する様子を示すグラフである。 データ保持エラー主因条件において、逆ミラーリングを適用した場合にBERが改善する様子を示すグラフである。 本発明の一実施形態に係るエラー低減部の概略構成を示す図である。 NANDフラッシュメモリの書き込みBERにおけるエラー方向の非対称性を示す図である。 本発明の一実施形態に係るエラー低減部の処理を示すフローチャートである。 本発明の一実施形態に係るエラー低減部が出力を判定する様子の例を示す図である。 逆ミラーリングおよびエラー低減を適用した場合にBERが改善する様子を示すグラフである。 書き込みBERの書き換え回数への依存性を比較したグラフである。 書き込みBERの書き換え回数への依存性を比較したグラフである。 データ保持BERの書き換え回数への依存性を比較したグラフである。 データ保持BERの書き換え回数への依存性を比較したグラフである。 本発明の他の実施形態に係る半導体記憶装置の概略構成を示す図である。 図16のシフトミラー部の概略構成を示す図である。 シフトミラーリングによりプライマリメモリおよびミラーメモリにデータを格納する様子の一例を示す図である。 シフトミラーリングによりプライマリメモリおよびミラーメモリにデータを格納する処理の一例を示す図である。 書き込みBERのワーストのシフト数への依存性を示す図である。 データ保持BERのワーストのシフト数への依存性を示す図である。 シフトミラーリングを適用した場合に書き込みBERが改善する様子を示すグラフである。 シフトミラーリングを適用した場合にデータ保持BERが改善する様子を示すグラフである。 本発明の一実施形態に係るページRAID部がビット線方向にパリティビットを生成する様子を示す図である。 ユーザメモリに対して必要なバッファ比のバッファメモリの許容書き換え回数への依存性を示す図である。 エラー訂正後のBERのエラー訂正前のBERへの依存性を比較したグラフである。 NANDフラッシュメモリにおけるデータ保持エラーの発生の様子の一例を示す図である。 本発明の一実施形態に係る制御装置の書き込みシーケンスのフローチャートである。 本発明の一実施形態に係る制御装置のエラーマスキングシーケンスのフローチャートである。 本発明の一実施形態に係るエラーマスキング部がエラー位置情報を圧縮する様子の一例を示す図である。 BERのデータ保持時間への依存性を比較したグラフである。 データ保持BERのデータ保持時間への依存性を示すグラフである。 書き込みBERの書き換え回数への依存性を示すグラフである。 本発明による効果をまとめた表である。 従来のストレージシステムの構成の一例である。
以下、本発明に係る実施形態について、図面を参照して説明する。
[全体構成]
図1は、本発明の一実施形態に係る半導体記憶装置の概略構成を示す図である。図1に示すように、半導体記憶装置は、ホスト装置1、制御装置2、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5を備える。
なお、図1においては、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5について簡略化し、それぞれ1つずつ示したが、これは簡略化した図であり、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5は、それぞれ複数個であってよい。
図1に示すように、本発明の一実施形態に係る半導体記憶装置においては、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5は階層構造を持たない。そのため、制御装置2は、同一の機能を重複させることなく、プライマリメモリ3、ミラーメモリ4およびバッファメモリ5を一括して制御することができる。
データ書き込み時においては、制御装置2は、ホスト装置1から受け取ったデータに対してエラー訂正符号化などの処理を行い、プライマリメモリ3に格納する。また、制御装置2は、データを冗長に格納するため、プライマリメモリ3に格納するデータに対応するデータをミラーメモリ4に格納する。制御装置2が行うエラー訂正符号化以外の処理については後述する。
データ読み出し時においては、制御装置2は、プライマリメモリ3およびミラーメモリ4からデータを読み出す。制御装置2は、受け取ったデータに対して、エラー訂正復号などの処理を行い、ホスト装置1にエラー訂正復号などの処理をしたデータを提供する。制御装置2が行うエラー訂正復号以外の処理については後述する。
プライマリメモリ3およびミラーメモリ4は、不揮発性のメモリであり、例えばNANDフラッシュメモリである。信頼性を高めるため、プライマリメモリ3とミラーメモリ4の両方に対応するデータが格納される。
バッファメモリ5は、一時的にデータを格納する際に用いられるメモリである。バッファメモリ5は、制御装置2によってデータの書き込み/読み出しが頻繁に行われる。したがって、バッファメモリ5には、書き込み/読み出し時間が短く、書き換え可能回数が多いという特性を有する抵抗変化型メモリ(ReRAM:Resistance Random Access Memory)などを用いることが好ましい。しかしながら、ReRAMであることは必須ではなく、バッファメモリ5としては、NANDフラッシュメモリ、DRAM(Dynamic Random Access Memory)、磁気抵抗メモリ(MRAM:Magnetoresistive Random Access Memory)、相変化メモリ(PCRAM:Phase Change Random Access Memory)、強誘電体メモリ(FeRAM:Ferroelectric Random Access Memory)など、様々なメモリを用いることができる。
また、この実施形態では、バッファメモリ5として、プライマリメモリ3およびミラーメモリ4とは別のメモリを用いているが、プライマリメモリ3、および/または、ミラーメモリ4内の一部の領域をバッファメモリとして使用することも可能である。
制御装置2は、エラー訂正符号化部10、ページRAID部20、逆ミラー部30、エラー低減部40、エラー訂正復号部50およびエラーマスキング部60を備える。
データ書き込み時においては、エラー訂正符号化部10は、ホスト装置1から受け取ったデータをエラー訂正符号化する。続いて、ページRAID部20は、排他的論理和(XOR)の演算によってパリティビットを生成する。逆ミラー部30は、データを逆ミラーリングして、元のデータと逆ミラーリングしたデータとを、それぞれ、プライマリメモリ3とミラーメモリ4とに格納する。「逆ミラーリング」の技術的意味については後述する。なお、ページRAID部20が、排他的論理和の演算によってパリティビットを生成するのは一例であり、その他の演算方法によってパリティビットを生成してもよい。
データ読み出し時においては、エラー低減部40は、プライマリメモリ3およびミラーメモリ4からデータを読み出す。続いて、エラー訂正復号部50は、エラー訂正復号を実行する。また、エラー訂正復号部50は、エラー訂正復号時に取得したエラー位置情報をエラーマスキング部60に提供する。また、エラー訂正復号部50は、エラーマスキング部60から、以前の読み出し時におけるエラー位置情報を受け取り、エラー位置におけるデータを訂正する。
制御装置2内の各ブロックの機能の詳細について、以下に詳述する。
[逆ミラーリング]
図2は、本発明の一実施形態に係る逆ミラー部30の概略構成を示す図である。図2に示すように、逆ミラー部30は、入力部31、プライマリ出力部32、変換部33およびミラー出力部34を備える。
入力部31は、データを受け取ると、プライマリ出力部32およびバッファメモリ5にデータを提供する。プライマリ出力部32は、受け取ったデータをそのままプライマリメモリ3に格納する。
変換部33は、バッファメモリ5からデータの順番を逆にして読み出してミラー出力部34へデータを提供する。ミラー出力部34は、逆の順番となったデータをミラーメモリ4へ格納する。なお、変換部33が、バッファメモリ5を介して入力部31からデータを受け取るものとして説明したが、バッファメモリ5は必須ではなく、変換部33は、入力部31から直接データを受け取りデータの順番を逆にしてもよい。
以下、変換部33がデータの順番を逆にすることにより、プライマリメモリ3とミラーメモリ4に格納されるデータの順番が逆になることの技術的意味を説明する。
図3は、1メモリセルあたり2ビットのMLC(Multiple Level Cell)のNANDフラッシュメモリの構成の一例を示す図である。図3に示すように、1メモリセルあたり2ビットのMLCのNANDフラッシュメモリは、各メモリセルが下位ページと上位ページを有し2ビット分のデータを格納する。図3に示す例では、ビット線方向に128個のメモリセルがあるため、その2倍の256個のページがあり、256ビットのデータを格納する。以下、特に断らない限り、プライマリメモリ3およびミラーメモリ4は、1メモリセルあたり2ビットのMLCのNANDフラッシュメモリであり、0から255までのページ番号を有するものとして説明する。
図4は、ページ番号を横軸、データを所定の回数だけ書き換えた後に書き込んだデータのBER(Bit Error Rate)(以下、「書き込みBER」と称する)を縦軸としたグラフである。図4は、書き換え回数が10k回(10ラ103回)の場合のBERの測定結果である。
図4に示すように、NANDフラッシュメモリにおいては、上位ページに書き込まれたデータの書き込みBERの方が下位ページに書き込まれたデータの書き込みBERよりも小さい。したがって、全てのデータが上位ページから読み出せることが好ましい。
図5は、ページ番号を横軸、データを所定の回数だけ書き換えた後に高温で所定の時間を経過した時点のBER(以下、「データ保持BER」と称する)を縦軸としたグラフである。図5は、10k回書き換えた後に85℃で10時間経過した時点のBERの測定結果である。
図5に示すように、NANDフラッシュメモリにおいては、ページ番号が大きくなるにつれてデータ保持BERが劣化する傾向がある。したがって、全てのデータがページ番号の小さい側のページから読み出せることが好ましい。
図6に、プライマリメモリ3とはデータの順番を逆にして、データをミラーメモリ4に格納する様子を示す。図6に示すように、データ0からデータ255は、ミラーメモリ4においては、データ255からデータ0の順でページ0からページ255に格納される。これにより、プライマリメモリ3では下位ページに記載されていたデータをミラーメモリ4では上位ページに格納することができる。例えば、データ0は、プライマリメモリ3では下位ページ(ページ0)に格納されるが、ミラーメモリ4では上位ページ(ページ255)に格納される。
また、プライマリメモリ3ではページ番号の大きいページに記載されていたデータをミラーメモリ4ではページ番号の小さいページに格納することができる。例えば、データ255は、プライマリメモリ3ではページ255に格納されるが、ミラーメモリ4ではページ0に格納される。
図7Aに、書き込みエラーが主因となる条件(以下、「書き込みエラー主因条件」と称する)において、ワーストBERを改善させる読み出し方法の例を示す。ここで、ワーストBERとは、全てのページ番号の中で最も大きいBERのことである。図7Aに示すように、奇数番号のデータ(データ1、データ3・・・)はプライマリメモリ3から読み出し、偶数番号のデータ(データ0、データ2・・・)はミラーメモリ4から読み出すことにより、全てのデータを上位ページから読み出すことができワーストBERが改善する。
図7Bに、データ保持エラーが主因となる条件(以下、「データ保持エラー主因条件」と称する)において、ワーストBERを改善させる読み出し方法の例を示す。図7Bに示すように、データ0から127はプライマリメモリ3から読み出し、データ128から255はミラーメモリ4から読み出すことにより、全てのデータをページ番号の小さい側のページから読み出すことができワーストBERが改善する。
図8Aに、書き込みエラー主因条件において、書き込みBERを、従来の場合と、逆ミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングを適用した測定結果を示す。図8Aに示すように、逆ミラーリングを適用することにより、ワーストBERが69%改善した。
図8Bに、データ保持エラー主因条件において、データ保持BERを、従来の場合と、逆ミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングを適用した測定結果を示す。図8Bに示すように、逆ミラーリングを適用することにより、ワーストBERが41%改善した。
このように逆ミラーリングを適用し、全てのデータを上位ページから読み出す、または、ページ番号の小さい側から読み出すことによって、ワーストBERを改善させることができる。どちらの読み出し方を選択するかは、書き込みエラーまたはデータ保持エラーのいずれを改善させるかに応じて決定することができる。
なお、上記で説明した、ミラーメモリ4にデータの順番を逆にして格納する方法は、あくまで例示であって、これに限るものではない。最適なデータの格納方法は、プライマリメモリ3およびミラーメモリ4の特性によって変わり得る。逆ミラー部30は、プライマリメモリ3およびミラーメモリ4の特性に応じて、最適な順番になるようにデータの順番を変更し、ミラーメモリ4にデータを格納する。
また、上記で説明した、上位ページのみからデータを読み出す方法、および、ページ番号の小さい側のみからデータを読み出す方法は、あくまで例示であって、これに限るものではない。最適なデータの読み出し方法は、プライマリメモリ3およびミラーメモリ4の特性によって変わり得る。例えば、プライマリメモリ3およびミラーメモリ4が、ページ番号が大きい方でBERが小さいという特性を有する場合は、ページ番号の大きい側からデータを読み出すことが好ましい場合もあり得る。
また、本実施形態では、変換部33は、後述するエラー低減部40と協働して、ワーストBERを低減する場合は、データの順番を逆にするだけでなく、さらにビットを反転させてデータをミラーメモリ4に格納する。ここで、ビットを反転とは、”0”のデータを”1”とし、”1”のデータを”0”とすることを意味する。変換部33がビットを反転させることの技術的意味については、エラー低減部40の説明において詳述する。
[エラー低減]
図9は、本発明の一実施形態に係るエラー低減部40の概略構成を示す図である。図9に示すように、エラー低減部40は、プライマリ入力部41、ミラー入力部42、ビット再反転部43および判定部44を備える。
プライマリ入力部41は、プライマリメモリ3からデータを読み出して判定部44にデータを提供する。
ミラー入力部42は、ミラーメモリ4からデータを読み出してビット再反転部43にデータを提供する。
ビット再反転部43は、ミラー入力部42から受け取ったデータのビットを反転させ、反転させたデータを判定部44に提供する。ここで、ビット再反転部43がビットを反転させるのは、逆ミラー部30が、ビットを反転させてミラーメモリ4に格納したデータを、再反転させて元のデータに戻すためである。エラー低減部40が逆ミラー部30と協働してBERを低減する際に、逆ミラー部30がビットを反転してミラーメモリ4に格納し、エラー低減部40がミラーメモリ4から読み出したデータのビットを再反転して元に戻すことの技術的意味については後述する。
判定部44は、プライマリ入力部41およびビット再反転部43から受け取ったデータを比較して正しいと推定されるデータを判定し、推定したデータを出力する。判定部44が、どのようにして正しいと推定されるデータを判定するかについては、図11のフローチャートの説明において詳述する。
以下、逆ミラー部30によるビット反転、および、エラー低減部40によるビット再反転の技術的意味を説明する。
図10は、NANDフラッシュメモリの書き込みBERにおけるエラー方向の非対称性を示す図である。図10に示すように、下位ページでは、”1”が”0”となるエラー方向が支配的であり、上位ページでは、”0”が”1”となるエラー方向が支配的である。
逆ミラー部30は、プライマリメモリ3とミラーメモリ4とで上位ページと下位ページがペアになるようにデータを格納する。したがって、プライマリメモリ3で下位ページ(上位ページ)に格納されているデータは、ミラーメモリ4では上位ページ(下位ページ)に格納されている。
そうすると、逆ミラー部30がビット反転せずにミラーメモリ4にデータを格納した場合、例えば、プライマリメモリ3で下位ページに格納されたデータと、ミラーメモリ4で上位ページに格納されたデータとでは、支配的なエラー方向が反対となる。この場合、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合に、正しいデータが”0”と”1”のどちらであるかが推定できない。
そこで、逆ミラー部30がミラーメモリ4に格納するデータをビット反転させることにより、プライマリメモリ3とミラーメモリ4とで支配的なエラー方向が一致する。これにより、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合に、プライマリメモリ3とミラーメモリ4のいずれかで、支配的な方向のエラーが発生したと推定することにより、正しいデータが”0”と”1”のどちらであるかを推定できるようになる。
この場合、逆ミラー部30がビットを反転させてミラーメモリ4にデータを格納するため、エラー低減部40はビットを再反転させてデータを元に戻す。
上記のように、NANDフラッシュメモリの書き込みBERにおけるエラー方向に強い非対称性があることから、エラー低減部40は、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合に、正しいデータを推定することができる。図11のフローチャートに従って、エラー低減部40が正しいデータを推定する手順を示す。
プライマリ入力部41は、プライマリメモリ3からデータを読み出す(ステップS101)。ミラー入力部42は、対応するデータをミラーメモリ4から読み出す(ステップS102)。なお、ステップS101とS102とは、逆の順番であっても構わないし、同時であっても構わない。
ビット再反転部43は、ミラー入力部42から受け取ったデータのビットを再反転させて判定部44に提供する(ステップS103)。
判定部44は、プライマリ入力部41から受け取ったデータとビット再反転部43から受け取ったデータが一致しているか否かを判定する(ステップS104)。
ステップS104にて、データが一致していると判定した場合は、判定部44は、プライマリメモリ3とミラーメモリ4のいずれにおいてもエラーが発生しなかったものと推定し、プライマリメモリ3に格納されていたデータを出力する(ステップS105)。
ステップS104にて、データが一致していないと判定した場合は、判定部44は、さらに、プライマリメモリ3から読み出したデータが、下位ページと上位ページのいずれから読み出したデータであるかを判定する(ステップS106)。
ステップS106にて、プライマリメモリ3の下位ページから読み出したデータであると判定した場合は、判定部44は、”1”が正しいデータであると推定して、データ”1”を出力する(ステップS107)。
ステップS106にて、プライマリメモリ3の上位ページから読み出したデータであると判定した場合は、判定部44は、”0”が正しいデータであると推定して、データ”0”を出力する(ステップS108)。
図12は、エラー低減部40の処理のいくつかの具体例を示す表である。図12は、プライマリメモリ3の下位ページ、および、ミラーメモリ4の上位ページからデータを読み出した場合の例である。
ケース1は、プライマリメモリ3の下位ページデータが”1”で、ミラーメモリ4の上位ページデータ(ビット再反転後のデータ、以下同様)が”1”である場合である。この場合、データが一致しているので、エラー低減部40は、”1”が正しいデータであると推定し”1”を出力する。
ケース2は、プライマリメモリ3の下位ページデータが”1”で、ミラーメモリ4の上位ページデータが”1”から”0”へのエラー(ビット再反転前は、”0”から”1”へのエラー)を起こした場合を示す。この場合、データが一致しておらず、プライマリメモリ3のデータは下位ページから読み出したデータであるので、エラー低減部40は、”1”が正しいデータであると推定し”1”を出力する。この推定は正しい。
ケース3は、プライマリメモリ3の下位ページデータが”1”から”0”へのエラーを起こし、ミラーメモリ4の上位ページデータが”1”である場合を示す。この場合、データが一致しておらず、プライマリメモリ3のデータは下位ページから読み出したデータであるので、エラー低減部40は、”1”が正しいデータであると推定し”1”を出力する。この推定は正しい。
ケース4は、プライマリメモリ3の下位ページデータが”1”から”0”へのエラーを起こし、ミラーメモリ4の上位ページデータも”1”から”0”へのエラー(ビット再反転前は、”0”から”1”へのエラー)を起こした場合を示す。この場合、データが一致しているので、エラー低減部40は、”0”が正しいデータであると推定し”0”を出力する。この推定は正しくない。このように、プライマリメモリ3とミラーメモリ4の両方でエラーが発生した場合は、エラー低減部40は正しい値を推定することができない。しかしながら、プライマリメモリ3とミラーメモリ4の両方で同時にエラーが発生する確率は非常に小さいため、この場合に正しく推定できないことの影響は小さい。
ケース5は、プライマリメモリ3の下位ページデータが”0”で、ミラーメモリ4の上位ページデータが”0”である場合を示す。この場合、データが一致しているので、エラー低減部40は、”0”が正しいデータであると推定し”0”を出力する。
なお、上記説明においては、逆ミラー部30とエラー低減部40とで協働してBERを低減する場合を例に挙げて説明したが、エラー低減部40のみを独立して採用してもよい。逆ミラーリングを採用しない場合は、エラー低減部40におけるビット再反転は実行しない。また、逆ミラーリングを採用しない場合は、逆ミラー部30は、バッファメモリ5を必要としない。
また、上記説明においては、支配的なエラー方向が図10に示す方向である場合を例に挙げて説明したが、これはあくまで一例である。例えば、支配的なエラー方向が図10に示す方向と逆の場合であっても、同様の考え方で正しいデータを推定することにより、本願発明は適用可能である。
[逆ミラーリングおよびエラー低減の効果]
図13に、書き込みエラー主因条件において、書き込みBERを、通常のミラーリングを採用する従来技術の場合と、上記の逆ミラーリングおよびエラー低減を適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角が逆ミラーリングおよびエラー低減を適用した測定結果を示す。図13に示すように、逆ミラーリングおよびエラー低減を適用することにより、ワーストBERが91%改善した。
図14A、14B、15Aおよび15Bに、通常のミラーリングを採用する従来技術の場合と、上記の逆ミラーリングを適用した場合と、上記の逆ミラーリングおよびエラー低減を適用した場合とを比較する測定結果を示す。黒四角が従来の測定結果、白三角が逆ミラーリングを適用した場合の測定結果、白四角が逆ミラーリングおよびエラー低減を適用した場合の測定結果を示す。
図14Aおよび14Bは、横軸が書き換え回数、縦軸がブロック内のワースト書き込みBERである。図14Aは、サイズが2Xnmのメモリセルに対する測定結果である。図14Bは、サイズが1Xnmのメモリセルに対する測定結果である。ここで、サイズが2Xnmとはサイズが20〜30nm程度であることを意味する。また、サイズが1Xnmとはサイズが10〜20nm程度であることを意味する。以下の説明においても同様である。
図14Aに示されるように、書き換え回数が10k回の場合、従来技術に対して逆ミラーリングを適用することでBERが69%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが91%改善した。
また、図14Bに示されるように、書き換え回数が6k回の場合、従来技術に対して逆ミラーリングを適用することでBERが45%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが85%改善した。
図15Aおよび15Bは、横軸が書き換え回数、縦軸がブロック内のワーストデータ保持BERである。図15Aは、サイズが2Xnmのメモリセルに対して、横軸で指定する書き換え回数だけ書き換えた後に、85℃で506時間経過させた後の測定結果である。図15Bは、サイズが1Xnmのメモリセルに対して、横軸で指定する書き換え回数だけ書き換えた後に、85℃で194時間経過させた後の測定結果である。
図15Aに示されるように、書き換え回数が10k回の場合、従来技術に対して逆ミラーリングを適用することでBERが41%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが56%改善した。
また、図15Bに示されるように、書き換え回数が6k回の場合、従来技術に対して逆ミラーリングを適用することでBERが14%改善し、逆ミラーリングにさらにエラー低減を適用することで、従来技術に対してBERが30%改善した。
[シフトミラーリング]
上述した「逆ミラーリング」の代わりに、「シフトミラーリング」を採用する実施形態を以下に説明する。図16は、シフトミラーリングを採用した実施形態に係る半導体記憶装置の概略構成を示す図である。図1に示した「逆ミラーリング」を採用する半導体記憶装置とは、制御装置2が逆ミラー部30の代わりにシフトミラー部70を備える点、および、シフトミラー部70がバッファメモリ5に接続されていない点で異なる。
図17は、本発明の一実施形態に係るシフトミラー部70の概略構成を示す図である。図17に示すように、シフトミラー部70は、入力部71、プライマリ出力部72およびシフト出力部73を備える。
入力部71は、データを受け取ると、プライマリ出力部72およびシフト出力部73にデータを提供する。プライマリ出力部72は、受け取ったデータをそのままプライマリメモリ3に格納する。
シフト出力部73は、データを格納するページを、プライマリ出力部72がプライマリメモリ3に格納するページから、シフト数i(iは整数)だけシフトさせて、受け取ったデータをミラーメモリ4に格納する。
以下、シフト出力部73が、データを格納するページを、シフト数iだけシフトさせることについて詳細に説明する。
図18に、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページから、所定のシフト数だけシフトさせる様子の一例を示す。以下、図18に示すようなビット線方向の128個のメモリセルからなる単位を「ブロック」と称することとする。図18に示すように、プライマリメモリ3のブロックn(n番目のブロック)においては、ページ0からページ255に、データn_0からデータn_255が格納されている。一方、ミラーメモリ4のブロックnにおいては、対応するデータが、所定のシフト数だけシフトさせたページに格納されている。例えば、データn_0からデータn_128が、ページ127からページ255に格納されている。また、データn_129からデータn_255は、図示していないミラーメモリ4のブロックn+1に格納されている。また、ミラーメモリ4のブロックnにおける、ページ0からページ126には、プライマリメモリ3のブロックn−1において、ページ129からページ255に格納されているデータn−1_129からデータn−1_255が格納されている。
図19に、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページからシフトさせて格納する処理の一例を示す。プライマリメモリ3のブロック0において、データ0_0をページ0に格納する際、ミラーメモリ4においては、ブロック0のページ255−iにデータ0_0を格納する。また、プライマリメモリ3のブロック0において、データ0_iをページiに格納する際、ミラーメモリ4においては、ブロック0のページ255にデータ0_iを格納する。また、プライマリメモリ3のブロック0において、データ0_i+1をページi+1に格納する際、ミラーメモリ4においては、ブロック1のページ0にデータ0_i+1を格納する。また、プライマリメモリ3のブロック0において、データ0_255をページ255に格納する際、ミラーメモリ4においては、ブロック1のページ254−iにデータ0_255を格納する。
図19に示すように、シフトミラー部70は、同一のデータをプライマリメモリ3とミラーメモリ4に同時に書き込むことが可能であるため、バッファメモリ5が不要である。
シフト数iは任意の値に設定可能であり、プライマリメモリ3およびミラーメモリ4の特性に応じて適切な値を設定することができる。
図20Aに、書き込みBERのワーストを、従来の場合と、逆ミラーリングを適用した場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。横軸はシフト数であり、シフトミラーリングを適用した場合の書き込みBERのワーストは、シフト数に依存して周期的に変化している。シフトミラーリングを適用した場合、シフト数として、書き込みBERのワーストが低くなる値を選択することにより、書き込みBERのワーストが逆ミラーリングを適用した場合と同等の程度まで改善させることができる。
図20Bに、データ保持BERのワーストを、従来の場合と、逆ミラーリングを適用した場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。横軸はシフト数であり、シフトミラーリングを適用した場合のデータ保持BERのワーストは、シフト数に依存して変化している。図20Bに示すように、シフトミラーリングを適用した場合、シフト数が110〜144程度の範囲において、データ保持BERのワーストが逆ミラーリングを適用した場合と同等の程度まで改善した。
図21Aに、書き込みBERを、従来の場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角がシフトミラーリングを適用した測定結果を示す。図21Aに示すように、シフトミラーリングを適用することにより、ワーストBERが57%改善した。
図21Bに、データ保持BERを、従来の場合と、シフトミラーリングを適用した場合とで比較したグラフを示す。黒四角が従来の測定結果を示し、白四角がシフトミラーリングを適用した測定結果を示す。図21Bに示すように、シフトミラーリングを適用することにより、ワーストBERが41%改善した。
このようにシフトミラーリングを適用し、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページから、適切なシフト数iだけシフトさせることによって、バッファメモリ5を用いることなくワーストBERを改善させることができる。
なお、ミラーメモリ4にデータを格納するページを、プライマリメモリ3にデータを格納するページからシフトする際は、必ずしも一律にページをシフトさせなくてもよい。最適なデータの格納方法は、プライマリメモリ3およびミラーメモリ4の特性によって変わり得るからである。例えば、最適にデータを格納するため、ミラーメモリ4にデータを格納するページを、一律にシフトさせたものから一部順番を変更させてもよい。
[ページRAID]
図22に、ページRAID部20により、ビット線(BL:Bit Line)方向にパリティビットを付加する様子を示す。
図22に示すように、ページRAID部20は、従来のワード線(WL:Word Line)方向のエラー訂正符号に加えて、ビット線方向についても、各メモリセルのデータについて排他的論理和を演算することにより、パリティビットを算出する。ページRAID部20は、算出したパリティビットをバッファメモリ5に格納する。
ページRAID部20は、ユーザデータがページ単位でエラー訂正符号化部10に書き込まれる度に、ビット線方向のパリティビットを算出し、算出したパリティビットをバッファメモリ5に格納する。バッファメモリ5は、少なくとも1ページ分の容量を有し、1ページ分のパリティビットを更新して格納する。バッファメモリ5には、書き換え可能回数が多いReRAMを用いることが好ましい。
ページRAID部20は、ユーザデータの書き込みが完了すると、バッファメモリ5に格納しているパリティビットを書き込みが完了したユーザデータの後のページに書き込む。パリティビットは、最後のページ(一番ページ番号の大きいページ)に書き込まれる場合もあるが、最後のページに限るものではなく、最後から2番目のページやその他のページに書き込まれる場合もある。また、パリティビットの書き込みは1ページに限るものではなく、複数のページにパリティビットを書き込んでもよい。
ページRAID部20は、ユーザデータの書き込みを完了するまでに、バッファメモリ5を、最大で(ページ数−1)回更新する。ここで、ページ数とは、ブロック内におけるページの数である。図22に示す例においては、1つのビット線にメモリセルが128個あり、それぞれのメモリセルが2ページずつのページを有するため、ページ数は256である。
NANDブロックが4k回書き換え可能である場合、バッファメモリ5は、4kラ255≒106回程度の書き換えが可能であることを要求されるが、バッファメモリ5にReRAMを採用すれば、ReRAMは書き換え可能回数が多いため対応可能である。
また、ページRAID部20は、頻繁にバッファメモリ5への書き込みをするため、書き込みアクセス時間の観点から、書き込み速度が速いことが好ましい。この点からも、バッファメモリ5にReRAMを採用することが好ましい。
図23Aは、横軸をバッファメモリ5の許容書き換え回数、縦軸をユーザメモリに対して必要とされるバッファメモリ5の比としたグラフである。図23Aに示すように、ReRAMは、SLC NANDに比べて、書き換え可能回数が約100倍であるので、必要とされるバッファ比が約100分の1である。また、バッファメモリ5にReRAMを採用した場合、ユーザメモリに対して必要とされる容量は0.1%以下である。
図23Bは、横軸をエラー訂正前のBER、縦軸をエラー訂正後のBERとしたグラフである。図23Bに示すように、エラー訂正後のBERとして市場で要求されるレベルは、10−15である。1kバイトあたり40ビットを訂正するという前提で検討すると、ページRAIDを適用することにより、許容できるBERが45%増大する。ここで、許容できるBERとは、エラー訂正後に10−15のBERを達成可能なエラー訂正前のBERである。
[エラーマスキング]
図24に、NANDフラッシュメモリにおいてデータ保持エラーが発生する様子を示す。データ保持エラーは、フローティングゲートから電子が漏れ出すことなどにより発生する。図24に示す例においては、データの書き込みから100日経過すると、左から3番目および右から3番目のメモリセルにおいて、もともと”0”であったデータが”1”になるというエラーが発生している。一旦エラーが発生した位置においては、エラーが回復することはないため、200日経過後においても左から3番目のメモリセルと右から3番目のメモリセルは、エラーが発生した状態のままである。図24に示す例においては、200日経過後に、さらに、右から2番目のデータも”0”であったデータが”1”になるというエラーが発生している。
制御装置2は、NANDフラッシュメモリの上記のようなデータ保持エラーの特性を鑑みて、エラー訂正復号を効率的に実行する。エラーマスキングにおいては、制御装置2は、エラー書き込みシーケンスとエラーマスキングシーケンスの2つのシーケンスを実行する。それぞれのシーケンスについて、以下に説明する。
図25は、エラー書き込みシーケンスのフローチャートである。
エラー訂正復号部50は、エラー訂正符号化されたデータを読み出す(ステップS201)。エラー訂正復号部50は、読み出したデータに対しエラー訂正復号を実行し、エラー訂正復号後のデータを出力する。この際、エラー訂正復号部50は、どの位置のメモリセルでエラーが起こったかの情報(以下、「エラー位置情報」と称する)を取得する(ステップS202)。
エラーマスキング部60は、エラー訂正復号部50からエラー位置情報を取得し、取得したエラー位置情報を圧縮する(ステップS203)。エラーマスキング部60が実行する圧縮方法の一例については後述する。なお、エラーマスキング部60は、他の方法でエラー位置情報を取得することもできる。例えば、エラーマスキング部60は、信頼性の高いメモリ(例えば、バッファメモリ5)に、別途、書き込んだデータと、プライマリメモリ3またはミラーメモリ4などから読み出したデータとを比較することによりエラー位置情報を取得することもできる。
エラーマスキング部60は、圧縮したエラー位置情報をバッファメモリ5に格納する(ステップS204)。
図26は、エラーマスキングシーケンスのフローチャートである。
エラーマスキング部60は、バッファメモリ5から圧縮された以前のエラー位置情報を読み出す(ステップS301)。エラーマスキング部60は、圧縮されているエラー位置情報を解凍する(ステップS302)。
エラー訂正復号部50は、エラー位置情報をエラーマスキング部60から取得し、データ内のエラーを削除する(ステップS303)。エラー訂正復号部50は、エラー訂正復号を実行する(ステップS304)。エラー訂正復号部50は、エラー訂正復号したデータを出力する(ステップS305)。
制御装置2は、エラー書き込みシーケンスとエラーマスキングシーケンスとを適切なタイミングで実行することにより、エラーマスキングを効果的に実行することができる。例えば、データ書き込み後、所定の時間までのデータ読み出し時においては、エラー書き込みシーケンスを実行し、所定の時間後のデータ読み出し時においては、エラーマスキングシーケンスを実行することとしてもよい。また、制御装置2は、所定の時間後のデータ読み出し時においては、エラー書き込みシーケンスとエラーマスキングシーケンスを両方実行することとしてもよい。
図27に、エラーマスキング部60がエラー位置情報を圧縮する一例を示す。通常、メモリセルにおいてエラーが発生する確率は小さいため、エラーマスキング部60は、これを利用して効率的にエラー位置情報を圧縮することができる。エラー位置情報は、例えば、エラーのない位置を”0”、エラーの発生している位置を”1”とするテーブルであるが、通常、エラーの発生率は低いため、エラー位置情報は、ほとんどの位置で”0”となり、稀に、”1”となる。
エラーマスキング部60は、このように特定の情報が連続して続くようなエラー位置情報を、例えばランレングス圧縮(Run Length Encoding)により圧縮することで効率的に圧縮することができる。例えば、BERが1%の場合、ランレングス圧縮によりデータ量を16%に低減することができる。なお、ランレングス圧縮は一例であり、他の圧縮方法を用いてもよい。
図28に、BERについて、エラーマスキングを適用した場合と、エラーマスキングを適用しない場合とを比較したグラフを示す。図28に示すように、エラーマスキングシーケンスにおいて、エラーマスキングを適用することにより、85℃にしてから200時間経過後の比較でBERが67%改善し、85℃にしてから350時間経過後の比較でBERが55%改善した。
なお、エラーマスキング部60は、エラー位置情報を圧縮するものとして説明したが、これは必須ではない。エラーマスキング部60は、エラー位置情報を圧縮せずにバッファメモリ5に格納してもよい。
また、上記説明においては、エラー位置情報がバッファメモリ5に格納されるものとして説明したが、これは一例である。エラー位置情報は、プライマリメモリ3やミラーメモリ4など他のメモリに格納してもよい。
[測定結果]
本願で説明した逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキングを適用すると、データ保持BERにおいて、許容できるBER(ABER:Acceptable BER)が6.2倍になる。図29に示すように、これは、許容できる書き換え回数が2倍になったこと、および、許容できるデータ保持時間が34倍になったことに相当する。
また、本願で説明した逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキングを適用すると、書き込みBERにおいて、許容できるBERが32倍になる。図30に示すように、これは、許容できる書き換え回数が4.2倍になったことに相当する。
図31に、図29および30で説明した数値を表にまとめて示す。
上述したように、本発明に係る半導体記憶装置は、許容できるBERを改善することにより、信頼性を高め、かつ、1つの階層でSSDを効率的に制御し信頼性を向上させることができる。
また、本発明に係る半導体記憶装置は、逆ミラーリングを適用し、プライマリメモリ3とミラーメモリ4のうちの、BERが小さいメモリからデータを読み出すことにより、ワーストBERを改善することができる。
また、本発明に係る半導体記憶装置は、エラー低減を適用し、プライマリメモリ3とミラーメモリ4から読み出したデータが一致しない場合は、NANDフラッシュメモリにおけるエラー方向の非対称性を利用して正しいデータを推定することにより、ワーストBERを改善することができる。
また、本発明に係る半導体記憶装置は、ページRAIDを適用し、ビット線方向にもパリティビットを付加することにより、誤り訂正能力を向上させることができる。
また、本発明に係る半導体記憶装置は、エラーマスキングを適用し、以前にデータを読み出した際のエラー位置情報を利用することにより、ワーストBERを改善することができる。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。
例えば、本発明の実施形態はNANDフラッシュメモリを例に挙げて説明したが、本発明はこれに限るものではなく、同様の特性を示すメモリであれば他のメモリであってもよい。
また、NANDフラッシュメモリとして、1メモリセルあたり2ビットのMLCでページ番号が0から255のNANDフラッシュメモリを例に挙げて説明したが、本発明はこれに限るものではなく、他の構成のNANDフラッシュメモリであってもよい。
また、逆ミラーリング、エラー低減、ページRAIDおよびエラーマスキング全てを適用可能な装置構成とし、全てを適用した場合を例として説明してきたが、本発明は、いずれか1つまたは2つ以上を適用可能な装置構成とし、いずれか1つまたは2つ以上を適用する制御としてもよい。この場合、当業者であれば技術常識にしたがって不要なブロックを省略することができる。例えば、ページRAIDのみを適用する場合は、ミラーリングは必須ではないため、ミラーメモリ4は省略することができる。また、エラーマスキングのみを適用する場合も同様に、ミラーリングは必須ではないため、ミラーメモリ4は省略することができる。
また、本発明は、1つの階層でSSDを制御することができるが、複数の階層で構成される構成に対しても適用可能である。
1 ホスト装置
2 制御装置
3 プライマリメモリ
4 ミラーメモリ
5 バッファメモリ
10 エラー訂正符号化部
20 ページRAID部
30 逆ミラー部
31 入力部
32 プライマリ出力部
33 変換部
34 ミラー出力部
40 エラー低減部
41 プライマリ入力部
42 ミラー入力部
43 ビット再反転部
44 判定部
50 エラー訂正復号部
60 エラーマスキング部
70 シフトミラー部
71 入力部
72 プライマリ出力部
73 シフト出力部

Claims (9)

  1. プライマリメモリと、前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリと、
    前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納し、前記少なくとも1つのメモリからデータを読み出す制御装置と
    を備える半導体記憶装置。
  2. 請求項1に記載の半導体記憶装置において、前記制御装置は、
    ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、
    ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページRAID部と、
    前記ページRAID部から受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、
    前記プライマリメモリには受け取った前記データをそのまま格納し、
    前記ミラーメモリには、受け取った前記データの順番を変更して格納する逆ミラー部と、
    前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、
    前記プライマリメモリからデータを読み出して第1のデータとし、
    前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、
    前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、
    前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部と、
    前記エラー低減部から受け取ったデータをエラー訂正復号するエラー訂正復号部と、
    前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、
    前記エラー位置情報を、前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリに格納し、
    前記エラー訂正復号部がデータをエラー訂正復号する際に、前記バッファメモリ、前記プライマリメモリまたは前記ミラーメモリから前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部と
    を備える半導体記憶装置。
  3. プライマリメモリと、
    前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
    受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する制御装置であって、
    前記プライマリメモリには受け取った前記データをそのまま格納し、
    前記ミラーメモリには、受け取った前記データを格納するページを所定の規則に基づいて制御して、前記データを格納する制御装置と
    を備える半導体記憶装置。
  4. プライマリメモリと、
    前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
    受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納する逆ミラー部であって、
    前記プライマリメモリには受け取った前記データをそのまま格納し、
    前記ミラーメモリには、受け取った前記データの順番を変更して格納する逆ミラー部と
    を備える半導体記憶装置。
  5. プライマリメモリと、
    前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
    受け取ったデータを前記プライマリメモリおよび前記ミラーメモリに格納するシフトミラー部であって、
    前記プライマリメモリには受け取った前記データをそのまま格納し、
    前記ミラーメモリには、受け取った前記データを格納するページをシフトさせて格納するシフトミラー部と
    を備える半導体記憶装置。
  6. プライマリメモリと、
    前記プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、
    前記プライマリメモリおよび前記ミラーメモリからデータを読み出すエラー低減部であって、
    前記プライマリメモリからデータを読み出して第1のデータとし、
    前記ミラーメモリから、前記第1のデータに対応するデータを読み出して第2のデータとし、
    前記第1のデータと前記第2のデータとが一致する場合は、前記第1のデータを出力し、
    前記第1のデータと前記第2のデータとが一致しない場合は、前記第1のデータと前記第2のデータのいずれかで、支配的な方向のビットエラーが発生したものと推定して得られるデータを出力するエラー低減部と
    を備える半導体記憶装置。
  7. バッファメモリと、
    ホスト装置から受け取ったデータをエラー訂正符号化するエラー訂正符号化部と、
    ページ単位のデータが前記エラー訂正符号化部に書き込まれる度に、ビット線方向のパリティビットを算出して前記バッファメモリに格納するページRAID部と
    を備える半導体記憶装置。
  8. 受け取ったデータをエラー訂正復号するエラー訂正復号部と、
    前記エラー訂正復号部から、エラー訂正復号の際に取得されたエラー位置情報を受け取るエラーマスキング部であって、
    前記エラー位置情報をメモリに格納し、
    前記エラー訂正復号部がデータをエラー訂正復号する際に、前記メモリから以前の前記エラー位置情報を読み出して、前記エラー訂正復号部に提供するエラーマスキング部とを備える半導体記憶装置。
  9. プライマリメモリと、当該プライマリメモリに格納されるデータに対応するデータが格納されるミラーメモリと、バッファメモリとのうちの少なくとも1つのメモリを備える半導体記憶装置の制御方法であって、
    前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリにデータを格納する格納ステップと、
    前記少なくとも1つのメモリを制御して、前記少なくとも1つのメモリからデータを読み出す読み出しステップと
    を含む半導体記憶装置の制御方法。
JP2014549804A 2012-11-30 2013-11-21 半導体記憶装置およびその制御方法 Expired - Fee Related JP6327714B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012263033 2012-11-30
JP2012263033 2012-11-30
PCT/JP2013/006852 WO2014083811A1 (ja) 2012-11-30 2013-11-21 半導体記憶装置およびその制御方法

Publications (2)

Publication Number Publication Date
JPWO2014083811A1 true JPWO2014083811A1 (ja) 2017-01-05
JP6327714B2 JP6327714B2 (ja) 2018-05-23

Family

ID=50827472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014549804A Expired - Fee Related JP6327714B2 (ja) 2012-11-30 2013-11-21 半導体記憶装置およびその制御方法

Country Status (5)

Country Link
US (1) US9684464B2 (ja)
JP (1) JP6327714B2 (ja)
KR (1) KR101700057B1 (ja)
CN (1) CN104969202B (ja)
WO (1) WO2014083811A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529672B2 (en) * 2014-09-25 2016-12-27 Everspin Technologies Inc. ECC word configuration for system-level ECC compatibility
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
JP6700082B2 (ja) * 2016-03-29 2020-05-27 ラピスセミコンダクタ株式会社 半導体装置、電池監視システム、及びデータ読み出し方法
US10567006B2 (en) * 2016-08-05 2020-02-18 Sandisk Technologies Llc Data relocation
US10691533B2 (en) * 2017-12-12 2020-06-23 Micron Technology, Inc. Error correction code scrub scheme
US10789126B2 (en) * 2018-10-09 2020-09-29 Micron Technology, Inc. Multiple memory devices having parity protection

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6063651A (ja) * 1983-09-17 1985-04-12 Nippon Telegr & Teleph Corp <Ntt> 記憶装置
JPS61272851A (ja) * 1985-05-28 1986-12-03 Mitsubishi Electric Corp 記憶装置
JPH06282449A (ja) * 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JPH07281961A (ja) * 1994-04-08 1995-10-27 N T T Data Tsushin Kk メモリ故障検出装置及び計算機
WO1997030454A1 (fr) * 1996-02-19 1997-08-21 Citizen Watch Co., Ltd. Memoire remanente a semi-conducteurs
JP2002244932A (ja) * 2001-02-15 2002-08-30 Ricoh Co Ltd 制御装置
JP2006163811A (ja) * 2004-12-07 2006-06-22 Denso Corp 不揮発性メモリのデータ制御方法
JP2009294869A (ja) * 2008-06-04 2009-12-17 Toshiba Corp メモリシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0306211A3 (en) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronized twin computer system
JPH0663651A (ja) * 1992-08-19 1994-03-08 Kaidate Sangyo Kk パイプ用端部加工方法
WO2008101316A1 (en) * 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US9021188B1 (en) * 2013-03-15 2015-04-28 Virident Systems Inc. Small block write operations in non-volatile memory systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6063651A (ja) * 1983-09-17 1985-04-12 Nippon Telegr & Teleph Corp <Ntt> 記憶装置
JPS61272851A (ja) * 1985-05-28 1986-12-03 Mitsubishi Electric Corp 記憶装置
JPH06282449A (ja) * 1993-03-29 1994-10-07 Nec Corp メモリコントローラ
JPH07281961A (ja) * 1994-04-08 1995-10-27 N T T Data Tsushin Kk メモリ故障検出装置及び計算機
WO1997030454A1 (fr) * 1996-02-19 1997-08-21 Citizen Watch Co., Ltd. Memoire remanente a semi-conducteurs
JP2002244932A (ja) * 2001-02-15 2002-08-30 Ricoh Co Ltd 制御装置
JP2006163811A (ja) * 2004-12-07 2006-06-22 Denso Corp 不揮発性メモリのデータ制御方法
JP2009294869A (ja) * 2008-06-04 2009-12-17 Toshiba Corp メモリシステム

Also Published As

Publication number Publication date
US20150309744A1 (en) 2015-10-29
KR20150079917A (ko) 2015-07-08
US9684464B2 (en) 2017-06-20
CN104969202B (zh) 2018-04-03
WO2014083811A1 (ja) 2014-06-05
KR101700057B1 (ko) 2017-01-26
JP6327714B2 (ja) 2018-05-23
CN104969202A (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
US10459794B2 (en) Memory systems having extended product lifetime and methods of operating the same
CN111081308B (zh) 用于混合非易失性存储系统的系统和方法
JP6327714B2 (ja) 半導体記憶装置およびその制御方法
US10228990B2 (en) Variable-term error metrics adjustment
TWI407446B (zh) 記憶體裝置內錯誤更正的動態資料儲存系統及方法
US9164830B2 (en) Methods and devices to increase memory device data reliability
US20150019933A1 (en) Memory controller, storage device, and memory control method
US11861195B2 (en) TLC data programming with hybrid parity
KR102407659B1 (ko) 메모리 내 데이터 복원 작업의 수행
JP2013522776A (ja) マルチレベルセルのセルフraidフラッシュデータ保護
US9870830B1 (en) Optimal multilevel sensing for reading data from a storage medium
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
US20240086282A1 (en) Multi-layer code rate architecture for copyback between partitions with different code rates
JP2007058940A (ja) 記憶装置、ファイル記憶装置、およびコンピュータシステム
WO2021196620A1 (zh) 读写方法及存储器装置
US10922025B2 (en) Nonvolatile memory bad row management
WO2021196623A1 (zh) 读写方法及存储器装置
US20240054046A1 (en) Error-handling management during copyback operations in memory devices
US11994947B2 (en) Multi-layer code rate architecture for special event protection with reduced performance penalty
US11568938B2 (en) QLC data programming
WO2021196621A1 (zh) 读写方法及存储器装置
US12007837B2 (en) Redundancy metadata schemes for rain protection of large codewords
US11556261B2 (en) Memory stripe coding management
US11507304B1 (en) Diagonal page mapping in memory systems
WO2021196619A1 (zh) 读写方法及存储器装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180413

R150 Certificate of patent or registration of utility model

Ref document number: 6327714

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees