JP2010521014A - 情報処理装置及び不揮発性半導体メモリドライブ - Google Patents

情報処理装置及び不揮発性半導体メモリドライブ Download PDF

Info

Publication number
JP2010521014A
JP2010521014A JP2009503771A JP2009503771A JP2010521014A JP 2010521014 A JP2010521014 A JP 2010521014A JP 2009503771 A JP2009503771 A JP 2009503771A JP 2009503771 A JP2009503771 A JP 2009503771A JP 2010521014 A JP2010521014 A JP 2010521014A
Authority
JP
Japan
Prior art keywords
data
information processing
semiconductor memory
processing apparatus
write
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
JP2009503771A
Other languages
English (en)
Other versions
JP4987962B2 (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009503771A priority Critical patent/JP4987962B2/ja
Publication of JP2010521014A publication Critical patent/JP2010521014A/ja
Application granted granted Critical
Publication of JP4987962B2 publication Critical patent/JP4987962B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories

Abstract

情報処理装置は、情報処理装置本体と、不揮発性半導体メモリドライブとを備える。半導体メモリドライブは、不揮発性半導体メモリに対するデータのリードおよびライトの実行を、所定数のセクタ群を単位として制御する制御手段を含む。制御手段は、前記情報処理装置本体からのライトデータのデータサイズが前記所定数のセクタ群のデータサイズ未満である場合、前記ライトデータが書き込まれるべきセクタを含む所定数のセクタ群内のデータを前記不揮発性半導体メモリからリードし、前記リードされたデータにエラーが検出された場合、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を管理テーブルに格納する。

Description

本発明は、情報処理装置及び不揮発性半導体メモリドライブに関する。
従来、複数のビットからなるクラスタを複数有する半導体メモリがある。この半導体メモリを管理するシステムとしては、例えば、特許文献1に記載された管理システムが知られている。この管理システムは、クラスタ毎に全てのビットが正常であるか否かを判別する判別手段と、判別手段による判別結果に基づいて正常であるビットを有するクラスタ、及び不良であるビットを有するクラスタを示す識別情報を生成する管理手段とを備えている。
この管理システムは、正常なビットと不良なビットを識別して管理することができるので、正確な記憶、及び再生を要求されるデータには全てのビットが正常であるクラスタを割り当て、正確な記憶、及び再生を要求されないデータには不良であるビットを含むクラスタを優先的に割り当てることができる。したがって、品質保証されていない安価な半導体メモリを使用することができるので、製品コストを抑えることができる。
特開平6−202962号公報
しかし、この管理システムにおいては、識別情報の作成は半導体メモリの工場出荷時に行われる。したがって、出荷後に、全てのビットが正常であるクラスタに不良が発生しても、その不良を判別することができず、データの正確な記憶、及び再生が行えなくなる可能性があった。
本発明の目的は、データの正確な書込み、及びデータの正確な読出しを行うことができる情報処理装置及び不揮発性半導体メモリドライブを提供することにある。
本発明の一態様によれば、情報処理装置本体と、前記情報処理装置本体内に収容される不揮発性半導体メモリドライブであって、複数のセクタを有する不揮発性半導体メモリと、前記不揮発性半導体メモリに対するデータのリードおよびライトの実行を所定数のセクタ群を単位として制御する制御手段であって、前記情報処理装置本体からのライトデータのデータサイズが前記所定数のセクタ群のデータサイズ未満である場合、前記ライトデータが書き込まれるべきセクタを含む所定数のセクタ群内のデータを前記不揮発性半導体メモリからリードし、前記リードされたデータにエラーが検出された場合、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を管理テーブルに格納する制御手段とを含む不揮発性半導体メモリドライブとを具備する情報処理装置が提供される。
この情報処理装置によれば、データの正確な書込み、及びデータの正確な読出しを行うことがきる。
図1は本発明の一実施形態に係る情報処理装置の外観の例を示す斜視図である。 図2は同実施形態の情報処理装置の概略構成の例を示すブロック図である。 図3は同実施形態の情報処理装置に適用されるSSDの概略構成の例を示すブロック図である。 図4は図3に示されるSSDの記憶容量及び記憶領域の例を示す概略図である。 図5は図3に示されるSSD内に設けられるNANDメモリの構成例を示す概略構成図である。 図6は図3に示されるSSDにおいて使用されるBCTの例を示す概略構成図である。 図7は図3に示されるSSDの動作の例を概略的に示すフローチャートである。
以下、図面を参照して、本発明の情報処理装置の実施形態を説明する。
<情報処理装置の構成>
図1は、本発明の一実施形態に係る情報処理装置の外観を示す斜視図である。
この情報処理装置1は、図1に示すように、情報処理装置本体2と、この本体2に取り付けられた表示ユニット3とから構成されている。
本体2は、箱状の筐体4を有し、その筐体4は、上壁4a、周壁4b及び下壁4cを備える。筐体4の上壁4aは、情報処理装置1を操作するユーザに近い側から順にフロント部40、中央部41及びバック部42を有する。下壁4cは、この情報処理装置1が置かれる設置面に対向する。周壁4bは、前壁4ba、後壁4bb及び左右の側壁4bc、4bdを有する。
フロント部40は、ポインティングデバイスであるタッチパッド20と、パームレスト21と、情報処理装置1の各部の動作に連動して点灯する発光ダイオード(LED)22とを備える。
中央部41は、文字情報等を入力可能なキーボード23aが取り付けられるキーボード載置部23を備える。
バック部42は、着脱可能に取り付けられたバッテリパック24を備えている。バッテリパック24の右側には、情報処理装置1の電源を投入するための電源スイッチ25が設けられている。バッテリパック24の左右には、表示ユニット3を回転可能に支持する一対のヒンジ部26a、26bが設けられている。
筐体4の左の側壁4bcには、筐体4内から外部に対して風を排出する排出口(図示せず)が設けられている。また、右の側壁4bdには、例えば、DVD等の光記憶媒体にデータを読み書き可能なODD(光ディスクドライブ)27と、各種のカードが出し入れされるカードスロット28とが配置されている。
筐体4は、周壁4bの一部及び上壁4aを含む筐体カバーと、周壁4bの一部及び下壁4cを含む筐体ベースとにより形成されている。筐体カバーは、筐体ベースに対して着脱自在に組み合わされ、筐体ベースとの間に収容空間を形成する。この収容空間には、例えば、不揮発性半導体メモリドライブとして機能するSSD(ソリッドステートドライブ)10が収容される。
なお、SSD10の詳細は後述する。
表示ユニット3は、開口部30aを有するディスプレイハウジング30と、表示画面31aに画像を表示可能なLCD等からなる表示装置31とを備える。表示装置31はディスプレイハウジング30に収容され、表示画面31aは開口部30aを通じてディスプレイハウジング30の外部に露出している。
筐体4内には、上述のSSD10、バッテリパック24、ODD27及びカードスロット28の他に、図示しないメイン回路基板、拡張モジュール及びファン等が収容されている。
図2は、情報処理装置1のシステム構成を概略的に示すブロック図である。
この情報処理装置1は、図2に示すように、上述のSSD10、拡張モジュール12、ファン13、タッチパッド20、LED22、キーボード23a、電源スイッチ25、ODD27、カードスロット28及び表示装置31の他に、EC(組み込みコントローラ)111と、BIOS(Basic Input Output System)112aを格納するフラッシュメモリ112と、サウスブリッジ113と、ノースブリッジ114と、CPU(中央処理装置)115と、GPU(Graphic Processing Unit)116と、メインメモリ117とを備えている。
EC(組み込みコントローラ)111は各部を制御する組込システムである。ノースブリッジ114は、CPU115、GPU116、メインメモリ117及び各種バスそれぞれとの間の接続を制御するLSIである。CPU115は各種信号を演算処理するプロセッサであり、SSD10からメインメモリ117にロードされるオペレーティングシステムおよび各種アプリケーションプログラムを実行する。GPU116は映像信号を演算処理して表示制御を実行する表示コントローラである。
拡張モジュール12は、拡張回路基板と、この拡張回路基板に設けられたカードソケットと、このカードソケットに挿入された拡張モジュール基板とを備える。カードソケットは、例えば、Mini−PCI等の規格に対応している。拡張モジュール基板の例としては、3G(第3世代)モジュール、テレビチューナー、GPSモジュール、及びWimax(登録商標)モジュール等が挙げられる。
ファン13は、筐体4内を送風に基づいて冷却する冷却部であり、筐体4内の空気を排出口(図示せず)を介して風として外部に排出する。
なお、EC111、フラッシュメモリ112、サウスブリッジ113、ノースブリッジ114、CPU115、GPU116及びメインメモリ117は、メイン回路基板に実装された電子部品である。
<SSDの構成>
図3は、本実施形態の情報処理装置1に適用されるSSDの概略構成を示すブロック図である。SSD10は、ハードディスクの代わりに本情報処理装置1の外部記憶装置として使用される不揮発性半導体メモリドライブである。このSSD10は、図3に示すように、コネクタ102と、制御部103と、NANDメモリ(NAND型フラッシュEEPROM)104A〜104Hと、DRAM(メモリ)105と、電源回路106と、を備えて概略構成されている。SSD10は、データやプログラムを格納し、且つ電源を供給しなくても記憶内容が消えない外部記憶装置である。SSD10は、ハードディスクドライブとは異なり、磁気ディスクやヘッド等の駆動機構を持たないが、不揮発性半導体メモリであるNANDメモリの記憶領域に、OS(オペレーティングシステム)等のプログラムと、ユーザやソフトウエアに基づいて作成されたデータとを、読み書き可能に長期的に保存でき、情報処理装置1の起動ドライブとして動作することのできるドライブである。
制御部103は、コネクタ102、8つのNANDメモリ104A〜104H、DRAM105、及び電源回路106にそれぞれ接続されている。また、制御部103は、コネクタ102を介してホスト装置8に接続され、必要に応じて外部装置9に接続される。
電源7は、バッテリパック24又は図示しないACアダプタであり、例えば、DC3.3Vがコネクタ102を介して電源回路106に供給される。また、電源7は、情報処理装置1全体に対して電力を供給する。
ホスト装置8は、本実施形態においては、情報処理装置本体2(本体2のメイン回路基板)である。メイン回路基板に実装されたサウスブリッジ113はコネクタ102を介して制御部103に接続される。サウスブリッジ113と制御部103との間は、例えば、シリアルATA等の規格に基づいてデータの送受信が行われる。
外部装置9は、情報処理装置1とは異なる他の情報処理装置である。外部装置9は、情報処理装置1から取り外されたSSD10に対して、例えば、RS−232C等の規格に基づいて制御部103に接続され、NANDメモリ104A〜104Hに記憶されたデータを読み出す機能を有する。
SSD10が実装される基板は、例えば、1.8インチタイプ又は2.5インチタイプのHDD(ハードディスクドライブ)と同等の外形サイズを有する。なお、本実施の形態では、1.8インチタイプと同等である。
制御部103は、NANDメモリ104A〜104Hに対するデータのリードおよびライトを制御する。具体的には、制御部103は、ホスト装置8として機能する情報処理装置本体2からの要求(リードコマンド、ライトコマンド、等)に応じて、NANDメモリ104A〜104Hに対するデータのリードおよびライトの実行を制御する。各NANDメモリは複数のセクタを有している。NANDメモリ104A〜104Hに対するデータのリードおよびライトの実行の制御は、クラスタと称される所定数のセクタ群の単位で実行される。データの転送速度は、例えば、データ読出し時で100MB/Sec、書込み時で40MB/Secである。
NANDメモリ104A〜104Hの各々は、例えば記憶容量が16GBの不揮発性半導体メモリである。NANDメモリ104A〜104Hの各々は、例えば、1つのメモリセルに2ビットを記録可能なMLC(マルチレベルセル)−NANDメモリ(多値NANDメモリ)から構成されている。MLC−NANDメモリは、SLC(シングルレベルセル)−NANDメモリに比較して書き換え可能回数は少ないが、SLC(シングルレベルセル)−NANDメモリよりも記憶容量の大容量化は容易であるという特徴を有している。
DRAM105は、制御部103の制御によりNANDメモリ104A〜104Hに対するデータの読出し、書込みが行われる際に一時的にデータが格納されるバッファである。このDRAM105は、ホスト装置8として機能する情報処理装置本体2からのライトデータを一時的に格納するライトキャッシュとして機能する。
コネクタ102は、シリアルATA等の規格に基づいた形状を有する。なお、制御部103及び電源回路106は、別々のコネクタによりホスト装置8及び電源7にそれぞれ接続されていてもよい。
電源回路106は、電源7から供給されたDC3.3Vを、例えば、DC1.8V、1.2V等に変換するとともに、それら3種類の電圧をSSD10の各部の駆動電圧に合わせて各部に供給する。
<SSDの記憶容量>
図4は、SSD10の記憶容量及び記憶領域を示す概略図である。
SSD10の制御部103は、図4に示す、7種類の記憶容量104a〜104gを管理する。
記憶容量104aは、NAND Capacityであり、すべてのNANDメモリ104A〜104Hの記憶領域を用いた最大の記憶容量である。つまり、記憶容量104aは、NANDメモリ104A〜104Hそれぞれの物理記憶容量の合計値である。例えば、NANDメモリ104A〜104Hの記憶容量がそれぞれ16GBであるとき、記憶容量104aは、128GBである。記憶容量104a、つまりNAND Capacityは、例えば、UART(Universal Asynchronous Receiver Transmitter)の製造情報書込みコマンドのNAND構成情報で与えられる。
記憶容量104bは、Max Logical Capacityであり、論理ブロックアドレス(LBA)でアクセスできる最大記憶容量である。
記憶容量104cは、S.M.A.R.Tログ領域開始LBAであり、記憶容量104bと以下に説明する記憶容量104dとを分割するために設けられる。S.M.A.R.Tログ領域開始LBAは、ログデータを格納する記憶領域の先頭LBAを示す。
記憶容量104dは、Vender Native Capacityであり、ユーザ使用領域として与えられる最大の記憶容量である。記憶容量104dは、例えば、ATA特殊コマンドの初期Identify Deviceデータで与えられる。また、記憶容量104dは、IDEMA(The International Disk Drive Equipment and Materials Association)標準に基づき、製造元(Vender)においてSSD10の設計段階で決定され、以下の式で表される。
LBA = 97,696,368 + (1,953,504,× ((Capacity in GB) - 50))
記憶容量104eは、OEM Native Capacityであり、OEM(Original Equipment Manufacturer)の要求により製造時に決定する記憶容量である。記憶容量104eは、例えば、ATA特殊コマンドの固有情報書込みで与えられる。また、記憶容量104eは、Device Configuration Overlay Feature Setがサポートされたとき、Device Configuration Identifyコマンドで返される値である。
記憶容量104fは、Native Capacityであり、初期値は記憶容量104eと同値である。Feature setがサポートされたときは、Device Configuration Setコマンドで変更することができる値である。また、記憶容量104fは、Read Native Max Address(EXT)コマンドで返される値である。
記憶容量104gは、Current Capacityであり、ユーザの使用中における記憶容量で、初期値は記憶容量104fと同値である。Set Max Addressコマンドで変更することができる。Identify DeviceコマンドのWord61:60、Word103:100で返される値である。
また、SSD10の記憶領域は、各記憶容量104a〜104gの間にそれぞれ存在する。
記憶容量104aと104bとの間の記憶領域(管理領域)には、SSD10を動作させるための管理データ107aと、アドレス変換テーブル(論理/物理テーブル)108aと、後述するバッドクラスタテーブル(BCT)109aとが格納される。アドレス変換テーブル(論理/物理テーブル)108aは、クラスタ単位で論理ブロックアドレスLBAそれぞれとNANDメモリ104A〜104Hの物理アドレスそれぞれとの対応関係を管理するテーブルである。各クラスタは、上述したように所定数のセクタ群から構成されている。NANDメモリ104A〜104Hの各々は複数のセクタを有している。セクタはNANDメモリ104A〜104Hの記憶単位である。例えば、1つのクラスタが8個のセクタから構成されている場合には、アドレス変換テーブル(論理/物理テーブル)108aは、クラスタ毎(NANDメモリ104A〜104Hの記憶領域の4KB境界毎)に、そのクラスタの例えば先頭セクタの論理ブロックアドレスLBAと、当該先頭セクタが割り当てられたNANDメモリ104A〜104H内のある記憶領域を示す物理アドレスとを保持し得る。
本実施形態では、1MBのデータサイズを有するクラスタも使用できる。1MBのクラスタが割り当てられたNANDメモリ104A〜104H内の記憶領域に対するリードおよびライトは1MB単位で制御される。4KBのクラスタが割り当てられたNANDメモリ104A〜104H内の記憶領域に対するリードおよびライトは4KB単位で制御される。
このように、データのリード/ライトは、クラスタ単位(所定数のセクタ群単位)で実行される。
管理データ107a、論理/物理テーブル108a、及びBCT109aの各々は、NANDメモリ104A〜104H内の固定領域に記録されるデータである。管理データ107a、論理/物理テーブル108a、及びBCT109aの各々には、LBAは割り当てられていない。したがって、管理データ107a、論理/物理テーブル108a、及びBCT109aの各々を、LBAをキーとしてアクセスすることはできない。制御部103は管理データ107a、論理/物理テーブル108a、及びBCT109aの各々をアクセスするための固定アクセスパスを有しており、この固定アクセスパスを介して管理データ107a、論理/物理テーブル108a、及びBCT109aの各々に対するアクセスを実行する。
記憶容量104bと記憶容量104cとの間の記憶領域には、S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)ログデータ107bが格納される。S.M.A.R.T.ログデータ107bは、例えば、温度情報等の統計情報である。また、S.M.A.R.T.ログデータ107bに割り当てられたLBAは、制御部103内で実行されるファームウエアがS.M.A.R.T.ログデータ107bをアクセスするためにローカルに使用されるものである。制御部103内で実行されるファームウエアはS.M.A.R.T.ログデータ107bをLBAをキーにしてアクセスことができるが、ホスト装置8は通常のRead又はWriteコマンドでS.M.A.R.T.ログデータ107bをアクセスすることはできない。
記憶容量104cと104dとの間の記憶領域には、例えば、記憶容量2MBの未使用の記憶領域が設定される。これは、LBAの最小記憶単位が8セクタであり、4KBに相当する記憶単位(大きな記憶単位は1MB)であるのに対して、実際のデータの最小記録単位は当然1セクタであるため、記憶容量104cと104dとの間に1MB以上の記憶容量の空き記憶領域を設けることで、S.M.A.R.T.ログデータ107bと、記憶容量104d以下に記録されるデータとをそれぞれ独立して扱うためである。
記憶容量104dと104eとの間の記憶領域は、未使用であり特別な場合を除いて記憶容量104dと104eは同値である。
記憶容量104eと104fとの間の記憶領域は、OEMによって使用される記憶領域であり、上述したようにOEMの要求で決定される固有情報107eが書き込まれる。
記憶容量104fと104gとの間の記憶領域は、OEM又はユーザによって使用される記憶領域であり、OEM又はユーザの設定によりデータの書込みが行われる。
記憶容量104gの記憶領域は、ユーザによって使用される記憶領域であり、ユーザの設定によりデータの書込みが行われる。
なお、記憶容量104a〜104gは、以下の式で表される関係を満たす。
記憶容量104a>記憶容量104b>記憶容量104c>記憶容量104d≧記憶容量104e≧記憶容量104f≧記憶容量104g
製造元(Vender)からの出荷時、記憶容量104d〜104gは同値となる。
<NANDメモリの構成>
図5は、本実施形態で使用されるNANDメモリの概略構成図である。NANDメモリ104A〜104Hは、同じ機能及び構成を有しているので、ここでは、NANDメモリ104Aについて説明する。なお、クラスタ1041及びセクタ1042の左に付された0〜7の番号は、クラスタ番号及びセクタ番号を示すものとする。
NANDメモリ104Aは、複数のブロック(複数の消去ブロック)1040から構成されている。また、各ブロック1040は、複数のクラスタ、例えば1024個のクラスタ1041から構成されている。各クラスタ1041は、所定個数のセクタ群、例えば8つのセクタ1042から構成されている。8つのセクタから各クラスタが構成されている場合、各クラスタのデータサイズは4KBである。また、本実施形態では、上述のように、1MBのデータサイズを有するクラスタも使用できる。データのリード/ライトは、クラスタ単位(所定数のセクタ群単位)で実行される。
SSD10の制御部103は、ホスト装置8からのライトコマンドに応答して、ホスト装置8からのライトデータをNANDメモリ104Aにライトするためのライト処理を実行する。データライトはクラスタ単位で実行される。
したがって、1つのクラスタ1041のデータサイズに満たないライトデータの書込みを行うとき、制御部103は、管理データ107aに基づいて、クラスタ1041を構成する所定数(例えば8つ)のセクタ1042の読出しを行ってそれらセクタのデータを一時的にDRAM105に格納する。そして、制御部103は、DRAM105上において、読出しを行ったクラスタにライトデータの書込みを行い、ライトデータが書き込まれたクラスタをDRAM105から該当するNANDメモリのクラスタ1041に書込む。
具体的には、SSD10の制御部103は、論理/物理テーブル108aを用いて、NANDメモリ104A内のセクタそれぞれに対するLBAの割り当てをクラスタ毎に管理し、NANDメモリ104Aに対するデータのリードおよびライトをクラスタ毎に制御する。ホスト装置8(情報処理装置本体2)からのライトデータのデータサイズがクラスタのデータサイズ(例えば、4KBまたは1MB)未満である場合、制御部103は、ライトデータが書き込まれるべきセクタを含むクラスタ(例えば8セクタ)に格納されたデータをNANDメモリ104Aからリードする。そして、制御部103は、リードされたデータとライトデータとをマージし、これによって1クラスタ(例えば8セクタ)のデータサイズを有する新たなライトデータを生成し、この生成したライトデータをNANDメモリ104Aにライトする。
<BCTの構成>
図6は、本実施形態で用いられるバッドクラスタテーブル(BCT)の概略構成図である。BCT(管理テーブル)109aは、複数のエントリ1090からなるテーブルである。1エントリ1090は、クラスタアドレス(4バイト)とクラスタ内ビットマップ(1バイト)の計5バイトである。1ブロック(1Kクラスタ)の不良が発生しても動作できるように、BCT(管理テーブル)109aには4K個程度のエントリが確保されている。
図6に示すBCT109aには、一例として、2つの不良セクタ(不良記憶単位)1045及び1046が登録されている。BCT109aは、SSD10のリフレッシュ時に制御部103によって作成され、管理データ107aの中に記憶される。また、SSD10のフラッシュ時(データ書込み時)に行われるセクタからのデータリードにおいて、リードエラーが発生したとき、リードエラーが発生したセクタ(不良セクタ)を示す不良セクタ情報がBCT109aに制御部103によって格納される。
制御部103は、一例として図5及び6に示すように、誤り訂正処理によって誤りの訂正ができない不良セクタ1045を含むクラスタ1041、又はフラッシュ時においてリードエラーが発生した不良セクタ1045を含むクラスタ1041を、不良クラスタ1044として、BCT109aに登録する。
BCT109aにおいては、一例として、不良クラスタの情報が格納されていないエントリ1090を空エントリ1091と呼ぶものとする。
また、制御部103は、一例として、不良クラスタ1044にデータの書込みが正常に行われたとき、BCT109aの該当するエントリ1090を削除するものとする。これ
は、不良クラスタ1044は、データの読込みが不良であっても、データの書込みが正常に終了した場合、その後はデータの読出しを正常に行うことができるからである。よって不良クラスタ1044は再利用されるので、情報処理装置1及びSSD10の本来の機能を長期間にわたって利用することができる。
BCT109aへの不良セクタ情報の格納は、ライト時においてデータのリードエラーが発生した場合に実行される。上述したように、ホスト装置8(情報処理装置本体2)からのライトデータのデータサイズがクラスタのデータサイズ未満である場合、制御部103は、ライトデータが書き込まれるべきセクタを含むクラスタ内のデータをNANDメモリ104Aからリードする。ライトデータが書き込まれるべきセクタは、ホスト装置8からのライトコマンドに含まれる論理ブロックアドレスLBAによって指定される。
もちろん、必ずしも、ライトデータが書き込まれるべきセクタを含むクラスタ内に属する8セクタそれぞれに格納されている全てのデータをリードする必要はなく、ライトデータが書き込まれるべきセクタ以外の他のセクタに格納されているデータ(欠落データ)のみをNANDメモリ104Aからリードしてもよい。そして、制御部103は、例えば、リードされたデータ(欠落データ)とライトデータとをマージすることによって、1クラスタ(8セクタ)分のデータサイズを有する新たなライトデータを生成する。そして、制御部103は、1クラスタ分のデータサイズを有する新たなライトデータをNANDメモリ104Aにライトする。この場合、新たなライトデータは、例えば、NANDメモリ104A上に用意された空きクラスタにライトされ、元のクラスタ内のデータは無効化される。
欠落データをリードした時、制御部103は、リードされた欠落データのエラー検出を行う。もしリードされた欠落データにエラー(ECCエラー)の発生が検出されたならば、制御部103は、エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を、BCT109aの空きエントリに格納する。
リードされた欠落データにエラーが検出された場合には、正しい1クラスタ分のライトデータを生成することは出来ない。しかし、本実施形態では、ECCエラーが発生したデータが格納されていた不良セクタを示す不良セクタ情報がBCT109aに格納され、ECCエラーが発生したデータとホスト装置8からのライトデータとをマージすることによって得られる1クラスタ分の新たなライトデータがNANDメモリ104Aの空きクラスタにライトされる。したがって、後に、ECCエラーが発生した欠落データのLBAを指定するホスト装置8からのリードコマンドを受けた場合には、制御部103は、確実にリードエラーをホスト装置8に返すことが出来、誤った内容のデータがホスト装置8に送られることを防止することが出来る。よって、ライト処理時に実行される欠落データのリード時にたとえそのリードデータにECCエラーが発生しても、ライト処理をアボートすることなく、そのライト処理を正常終了することができ、ホスト装置8からのライトデータをNANDメモリ104Aにライトすることができる。よって、ホスト装置8からのライトデータの正確な書込み、及びデータの正確な読出しを行うことができる。
BCT109aへの不良セクタ情報の格納は、ライト時のみならず、ウェアレベリング処理時にも実行される。すなわち、制御部103は、NANDメモリ104A内のブロックそれぞれの書き替え回数を平準化するためのウェアレベリング処理を実行する。ウェアレベリング処理においては、データの移動が行われる。ウェアレベリング処理の実行時に、NANDメモリ104Aからリードされるデータにエラー(ECCエラー)が検出された場合、制御部103は、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を、BCT109aの空きエントリに格納する。
BCT109aの不良セクタ情報は、上述したように、ホスト装置8に対してリードエラーを通知するために使用される。すなわち、制御部103は、ホスト装置8からのリードコマンドの受信に応答して、BCT109aを参照する。そして、制御部103は、リードコマンドに含まれるLBAによって指定されるリード対象セクタが不良セクタであるか否か、つまりリード対象セクタを示す不良セクタ情報がBCT109aに格納されているか否かを判別する。リード対象セクタを示す不良セクタ情報がBCT109aに格納されている場合、制御部103は、エラーの発生をホスト8に通知し、リード対象セクタをNANDメモリ104Aから実際にリードする処理は実行しない。よって、誤った内容のデータがホスト8に送られてしまうことを防止することが出来る。
また、制御部103は、BCT109aに格納された不良セクタ情報によって識別されるセクタへのデータのライトが成功した場合、その不良セクタ情報をBCT109aから削除する。例えば、あるLBAnが不良セクタ情報としてBCT109aに格納されている状態で、このLBAnを指定するライトコマンドをホスト8装置から受信した時、制御部103は、このLBAnが割り当てられたセクタを含むクラスタに対するライト処理を実行する。このライト処理が成功したならば、LBAnが割り当てられたセクタのデータは正しく更新される。よって、もはやLBAnは不良セクタではなくなる。
<動作>
以下に、情報処理装置1の動作を各図を参照しつつ説明する。
(BCTの容量に基づいたSSDの動作モード切替)
図7は、本実施形態に係るSSD動作モード切替処理の手順を示すフローチャートである。
まず、ユーザが電源スイッチ25を押下すると、その電源スイッチ25の押下を検出したEC111は、電源7から情報処理装置1の各部に電力の供給を開始する。そして、EC111は、BIOS112aに基づいて情報処理装置1の起動を行う。
情報処理装置1の起動が完了すると、ユーザは表示装置31の表示画面31aを視認しながら、タッチパッド20及びキーボード23aを用いて情報処理装置1に対する操作を行う。
情報処理装置1は、ユーザによる操作を受け付けると、その操作に応じて所定の動作を行う。例えば、情報処理装置1のCPU15が、SSD10に記憶されたデータを表示装置31に表示する操作を受け付けた場合には、CPU115は、SSD10に対してデータの読出しを指示するリードコマンドをSSD10に送出する。リードコマンドに応答して、SSD10の制御部103は、NANDメモリ104A〜104Hからデータの読出しを行い、そのデータをサウスブリッジ113及びノースブリッジ114を介して、GPU116に送る。そして、GPU116は、そのデータを表示装置31に画像として表示する。
ユーザが、例えばアプリケーションの操作によって画像の加工を行い、表示画面31aに表示された加工された画像の保存をタッチパッド20及びキーボード23aを用いて指示したとき(S1)、CPU115は、SSD10に対して加工された画像の画像データの書き込みを指示するライトコマンドをSSD10に送出する。
SSD10の制御部103は、CPU115からのライトコマンドをコネクタ102を介して受信すると、画像データをNANDメモリ104A〜104Hに記憶するため、各NANDメモリ104A〜104Hの管理データ107aを参照し、画像データを記憶させるNANDメモリを決定する。
制御部103は、管理データ107aに基づいて、例えば、図5に示すブロック104
0に対して画像データ(以下、「データ」という。)の書込みを行うため、BCT109aを参照し、BCT109aの容量(空き容量)を確認する(S2)。
制御部103は、BCT109aの空エントリ1091つまりBCT109aの空き容量が、BCT109aの容量の1/8未満(第1の容量)であったとき、ライトスルーモード(WTモード)で動作し(S3)、ライトコマンドに対応するコマンド処理をWTモードで実行し、コマンド処理の完了時にホスト装置8に対してライト完了を通知する(S7)。
ここで、WTモードの動作とは、データの書込みを行うブロック1040をデータとともにDRAM105に記憶させ、DRAM105内において、読出しを行ったブロック1040にデータの書込みを行い、DRAM105から該当するNANDメモリ104Aのブロック1040にデータの書込みを行ってから、ホスト装置8に正常にデータの書込みが終了したことを示す応答を返す動作のことである。つまり、WTモードにおいては、制御部103は、ライトコマンドに応答してライトデータをNANDメモリ104A〜104Hのいずれかにライトし、ライトデータがNANDメモリ104A〜104Hに実際にライトされた後に、ホスト装置8にライト完了を通知する。
WTモードにおいて、ホスト装置8からのライトデータが1クラスタ分のデータサイズ未満である場合、制御部103は、1クラスタ分のライトデータを生成するために、ライトコマンドに含まれるLBAによって指定されるセクタを含むクラスタ内のデータをNANDメモリ104A〜104Hのいずれかからリードして、DRAM105に格納する。このリード時には、上述したように、リードデータのECCエラーを検出する処理、および不良セクタ情報をBCT109aに格納する処理が実行される。リードデータとホスト装置8からのライトデータとをマージすることによって1クラスタ分のライトデータが生成される。そして、1クラスタ分のライトデータがNANDメモリ104A〜104Hのいずれかにライトされた後に、制御部103は、ライト完了をホスト装置8に通知する。
また、制御部103は、BCT109aの空エントリ1091の容量つまりBCT109aの空き容量が、BCT109aの容量の1/8未満の状態から1/8以上の状態に遷移したとき、制御部103の動作モードを、WTモードからライトバックモード(WBモード)に切り換え(S4)、ライトコマンドに対応するコマンド処理をWBモードで実行し、コマンド処理の完了時にホスト装置8に対してライト完了を通知する(S7)。
ここで、WBモードの動作とは、SSD10の残記憶容量が多いときに行われる動作であり、ライトデータをDRAM105に記憶させたのち、ホスト装置8に正常にデータの書込みが終了したことを示すレスポンスを返す動作のことである。すなわち、WBモードにおいては、制御部103は、ホスト装置8からのライトデータがライトキャッシュとしてのDRAM105にライトされた時点で、ホスト装置8にライト完了を通知する。ライトキャッシュのライトデータをNANDメモリ104A〜104Hにライトする処理(キャッシュフラッシュ)は、ホスト装置8からのフラッシュコマンドの受信に応答して、またはライトコマンドの受信から所定時間経過した時に、実行される。ライトデータが1クラスタ分のデータサイズ未満である場合、キャッシュフラッシュ時に、制御部103は、1クラスタ分のライトデータを生成するために、ライトコマンドに含まれるLBAによって指定されるセクタを含むクラスタ内のデータをNANDメモリ104A〜104Hのいずれかからリードする。このリード時には、上述したように、リードデータのECCエラーを検出する処理、および不良セクタ情報をBCT109aに格納する処理が実行される。リードデータとライトデータとをマージすることによって1クラスタ分のライトデータが生成される。そして、1クラスタ分のライトデータがNANDメモリ104A〜104Hのいずれかにライトされる。
このWBモードの動作は、SSD10の残記憶容量が多いときに有効な動作である。なぜなら、SSD10の残記憶容量が多い場合には、DRAM105に記憶させたデータを確実にNANDメモリ104A〜104Hに記憶させることができるからである。
制御部103は、BCT109aの空き容量が1/8程度であるとき、SSD10の残記憶容量が少ないとして、確実にデータを記憶することができるWT動作をまず行い、残記憶容量に余裕が生じたところで通常のWB動作に戻す。なお、制御部103は、BCT109aの容量が1/8を超えたところでWB動作へと動作の切換えを行ったが、WT動作を継続し、BCT109aの空き容量が十分になったところで、WB動作に戻るようにしても良い。また、制御部103は、WT動作の継続中に情報処理装置1の電源が切断され、その後電源が再投入されたとき、WT動作からWB動作へと動作の切換えを行うものとする。
このように、本実施形態においては、BCT109aの空き容量が1/8にまで低下すると、制御部103の動作モードはWBモードからWTモードに遷移される。WBモードにおいては、ライトキュッシュにライトデータがライトされた時点でライトコマンドの完了がホスト装置8に通知され、欠落データのリードはキャッシュフラッシュ時に実行される。したがって、BCT109aの空きエントリ数が減少した場合には、不良セクタ情報をBCT109aに格納できないという不具合が発生する可能性がある。これに対し、WTモードにおいては、たとえ不良セクタ情報を書き込むための空きエントリがBCT109aに存在しなくなっても、ライト処理の中でエラーの発生をホスト装置8に通知することができる。
また、制御部103は、BCT109aの空エントリ1091が、BCT109aの容量の1/16以下(第2の容量)になったとき、RO(リードオンリー)モードに移行し(S5)、ライトコマンドを送信したホスト装置8に対して書き込み保護(Write Protect)エラーを返信する(S7)。なお、制御部103は、読出しが不良であるセクタ1042が3回連続増加した場合にも、ROモードに移行する。
ここでROモードとは、データの書込みができず、データの読出しのみが行えるモードのことである。つまり、ROモードにおいては、制御部103は、ホスト装置8によるNANDメモリ104A〜104Hへのライトアクセスを禁止し、且つホスト装置8によるNANDメモリ104A〜104Hへのリードアクセスのみを許可する。
さらに制御部103は、BCT109aの空エントリ1091が無くなってしまったとき、故障モードに移行し(S6)、リード/ライトコマンドを送信したホスト装置8にAbortエラーを返信する(S7)。
ここで、故障モードとは、ホスト装置8からのデータの読込み及びデータの書込みを行うことができないモードのことであり、修理を要する状態を表している。つまり、BCT109aの空き容量が無くなった場合、制御部103は、ホスト装置8によるNANDメモリ104A〜104Hへのリードアクセスおよびライトアクセスを禁止する故障モードで動作する。
ここで、従来の不揮発性半導体メモリドライブでは、データの書込みが行われる空クラスタ1043は、データの読出しによって読出し不良が発生する不良クラスタ1044ではないため、データの書込みを正常に終了していた。しかし、従来の不揮発性半導体メモリドライブでは、不良クラスタ1044を含むブロック1040のデータの書込みが正常に終了しているため、例えば、当該ブロック1040に記憶されたデータの再生が行われたとき、不良クラスタ1044の読出しによって再生に不都合が生じる恐れがある。
しかし、本実施の形態における情報処理装置1に搭載されたSSD10は、BCT109aの空き容量に基づいて動作モードの切替えを行うことができるので、不良クラスタ1044に起因する問題を回避することができ、SSD10としての本来の機能を長期間にわたって利用することができる。
上記した実施形態によると、ライト処理時に行われる欠落データのリードでECCエラーが検出された場合には、その欠落データが格納されていた不良セクタを示す不良セクタ情報がBCT109aに格納される。よって、ライト処理時に実行される欠落データのリード時にたとえそのリードデータにECCエラーが発生しても、ライト処理をアボートすることなく、そのライト処理を正常終了することができ、ホスト装置8からのライトデータをNANDメモリ104Aにライトすることができる。また、後に、ECCエラーが発生した欠落データのLBAを指定するホスト装置8からのリードコマンドを受けた場合には、制御部103は、確実にリードエラーをホスト装置8に返すことが出来、誤った内容のデータがホスト装置8に送られることを防止することが出来る。よって、ホスト装置8からのライトデータの正確な書込み、及びデータの正確な読出しを行うことができる。
また、本実施形態では、BCT109aの空き容量に基づいてWTモード、WBモード、ROモード、及び故障モードとの間で動作モードの切替えを行うことができ、さらに、不良であるクラスタ1041を再利用することができるので、SSD10を効率良く制御することができ、正確なデータの書込み、データの読出し、及びSSD10の本来の機能を長期間にわたって利用することができる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。

Claims (14)

  1. 情報処理装置本体と、
    前記情報処理装置本体内に収容される不揮発性半導体メモリドライブであって、複数のセクタを有する不揮発性半導体メモリと、前記不揮発性半導体メモリに対するデータのリードおよびライトの実行を所定数のセクタ群を単位として制御する制御手段であって、前記情報処理装置本体からのライトデータのデータサイズが前記所定数のセクタ群のデータサイズ未満である場合、前記ライトデータが書き込まれるべきセクタを含む所定数のセクタ群内のデータを前記不揮発性半導体メモリからリードし、前記リードされたデータにエラーが検出された場合、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を管理テーブルに格納する制御手段とを含む不揮発性半導体メモリドライブとを具備する情報処理装置。
  2. 前記制御手段は、前記リードされたデータと前記ライトデータとをマージすることによって得られる、前記所定数のセクタ群のデータサイズを有する新たなライトデータを、前記不揮発性半導体メモリにライトする請求項1に記載の情報処理装置。
  3. 前記不揮発性半導体メモリドライブは前記情報処理装置本体からのライトデータを一時的に記憶するライトキャッシュを含み、
    前記制御手段は、前記管理テーブルの空き容量が第1の容量以上である場合、前記情報処理装置本体からのライトデータが前記ライトキャッシュにライトされた時点で前記情報処理装置本体にライト完了を通知するライトバックモードで動作し、前記管理テーブルの空き容量が前記第1の容量未満である場合、前記ライトデータが前記不揮発性半導体メモリにライトされた後に前記情報処理装置本体にライト完了を通知するライトスルーモードで動作する請求項1に記載の情報処理装置。
  4. 前記制御手段は、前記管理テーブルの空き容量が前記第1の容量よりも小さい第2の容量以下である場合、前記情報処理装置本体による前記不揮発性半導体メモリへのライトアクセスを禁止し且つ前記情報処理装置本体による前記不揮発性半導体メモリへのリードアクセスを許可するリードオンリーモードで動作する請求項3に記載の情報処理装置。
  5. 前記不揮発性半導体メモリは複数のブロックからなり、前記ブロックの各々は1024個のクラスタで構成され、前記クラスタの各々は8個のセクタを含む請求項1に記載の情報処理装置。
  6. 前記制御手段は、前記不揮発性半導体メモリのブロックそれぞれの書き替え回数を平準化するためのウェアレベリング処理を実行し、前記ウェアレベリング処理の実行時に、前記不揮発性半導体メモリからリードされるデータにエラーが検出された場合、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を前記管理テーブルに格納する請求項1に記載の情報処理装置。
  7. 前記制御手段は、
    前記管理テーブルに格納された不良セクタ情報によって識別されるセクタへのデータのライトが成功した場合、前記不良セクタ情報を前記管理テーブルから削除する請求項1に記載の情報処理装置。
  8. 前記制御手段は、前記管理テーブルの空き容量が無くなった場合、前記情報処理装置本体による前記不揮発性半導体メモリへのリードアクセスおよびライトアクセスを禁止する故障モードで動作する請求項1に記載の情報処理装置。
  9. 前記制御手段は、前記情報処理装置本体からのリードコマンドの受信に応答して、前記リードコマンドによって指定されるセクタを示す不良セクタ情報が前記管理テーブルに格納されているか否かを判別し、前記リードコマンドによって指定されるセクタを示す不良セクタ情報が前記管理テーブルに格納されている場合、エラーの発生を前記情報処理装置本体に通知する請求項1に記載の情報処理装置。
  10. 情報処理装置の外部記憶装置として使用される不揮発性半導体メモリドライブであって、
    複数のセクタを有する不揮発性半導体メモリと、
    前記不揮発性半導体メモリに対するデータのリードおよびライトの実行を所定数のセクタ群を単位として制御する制御手段であって、前記情報処理装置からのライトデータのデータサイズが前記所定数のセクタ群のデータサイズ未満である場合、前記ライトデータが書き込まれるべきセクタを含む所定数のセクタ群内のデータを前記不揮発性半導体メモリからリードし、前記リードされたデータにエラーが検出された場合、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を管理テーブルに格納する制御手段とを具備する不揮発性半導体メモリドライブ。
  11. 前記制御手段は、前記リードされたデータと前記ライトデータとをマージすることによって得られる、前記所定数のセクタ群のデータサイズを有する新たなライトデータを、前記不揮発性半導体メモリにライトする請求項10に記載の不揮発性半導体メモリドライブ。
  12. 前記情報処理装置からのライトデータを一時的に記憶するライトキャッシュをさらに具備し、
    前記制御手段は、前記管理テーブルの空き容量が第1の容量以上である場合、前記情報処理装置からのライトデータが前記ライトキャッシュにライトされた時点で前記情報処理装置にライト完了を通知するライトバックモードで動作し、前記管理テーブルの空き容量が前記第1の容量未満である場合、前記ライトデータが前記不揮発性半導体メモリにライトされた後に前記情報処理装置にライト完了を通知するライトスルーモードで動作する請求項10に記載の不揮発性半導体メモリドライブ。
  13. 前記制御手段は、前記管理テーブルの空き容量が前記第1の容量よりも小さい第2の容量以下である場合、前記情報処理装置による前記不揮発性半導体メモリへのライトアクセスを禁止し且つ前記情報処理装置による前記不揮発性半導体メモリへのリードアクセスを許可するリードオンリーモードで動作する請求項10に記載の不揮発性半導体メモリドライブ。
  14. 前記制御手段は、前記不揮発性半導体メモリのブロックそれぞれの書き替え回数を平準化するためのウェアレベリング処理を実行し、前記ウェアレベリング処理の実行時に、前記不揮発性半導体メモリからリードされるデータにエラーが検出された場合、当該エラーが検出されたデータが格納されているセクタを示す不良セクタ情報を前記管理テーブルに格納する請求項10に記載の不揮発性半導体メモリドライブ。
JP2009503771A 2008-02-29 2008-11-07 情報処理装置及び不揮発性半導体メモリドライブ Active JP4987962B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009503771A JP4987962B2 (ja) 2008-02-29 2008-11-07 情報処理装置及び不揮発性半導体メモリドライブ

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008050808 2008-02-29
JP2008050808 2008-02-29
JP2009503771A JP4987962B2 (ja) 2008-02-29 2008-11-07 情報処理装置及び不揮発性半導体メモリドライブ
PCT/JP2008/070721 WO2009107286A1 (en) 2008-02-29 2008-11-07 Information processing apparatus and nonvolatile semiconductor memory drive

Publications (2)

Publication Number Publication Date
JP2010521014A true JP2010521014A (ja) 2010-06-17
JP4987962B2 JP4987962B2 (ja) 2012-08-01

Family

ID=41015694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009503771A Active JP4987962B2 (ja) 2008-02-29 2008-11-07 情報処理装置及び不揮発性半導体メモリドライブ

Country Status (2)

Country Link
JP (1) JP4987962B2 (ja)
WO (1) WO2009107286A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211230A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2009217603A (ja) * 2008-03-11 2009-09-24 Toshiba Corp メモリシステム
JP2012008739A (ja) * 2010-06-23 2012-01-12 Toshiba Corp データ記憶装置及びデータ書き込み方法
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
JP2013538409A (ja) * 2010-09-17 2013-10-10 シマンテック コーポレーション 障害処理システム及び方法
EP2667305A1 (en) 2012-05-23 2013-11-27 Fujitsu Limited Information processing apparatus, and control method
US8631191B2 (en) 2011-03-10 2014-01-14 Kabushiki Kaisha Toshiba Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
JP2014063511A (ja) * 2008-10-13 2014-04-10 Micron Technology Inc ソリッドステート記憶装置におけるトランスレーションレイヤ
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US9460813B2 (en) 2013-03-14 2016-10-04 Kabushiki Kaisha Toshiba Memory system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5377182B2 (ja) * 2009-09-10 2013-12-25 株式会社東芝 制御装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235028A (ja) * 1995-02-28 1996-09-13 Toshiba Corp フラッシュメモリカードのデータ管理方法およびそのデータ管理方法を使用したデータ処理装置
JP2002358246A (ja) * 2001-05-31 2002-12-13 Hitachi Ltd 不揮発性記憶システム
JP2003323352A (ja) * 2002-02-26 2003-11-14 Hitachi Ltd メモリ装置
JP2004118407A (ja) * 2002-09-25 2004-04-15 Renesas Technology Corp 不揮発性半導体記憶装置
JP2004127185A (ja) * 2002-10-07 2004-04-22 Renesas Technology Corp メモリカード
JP2008009944A (ja) * 2006-06-30 2008-01-17 Toshiba Corp メモリコントローラ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235028A (ja) * 1995-02-28 1996-09-13 Toshiba Corp フラッシュメモリカードのデータ管理方法およびそのデータ管理方法を使用したデータ処理装置
JP2002358246A (ja) * 2001-05-31 2002-12-13 Hitachi Ltd 不揮発性記憶システム
JP2003323352A (ja) * 2002-02-26 2003-11-14 Hitachi Ltd メモリ装置
JP2004118407A (ja) * 2002-09-25 2004-04-15 Renesas Technology Corp 不揮発性半導体記憶装置
JP2004127185A (ja) * 2002-10-07 2004-04-22 Renesas Technology Corp メモリカード
JP2008009944A (ja) * 2006-06-30 2008-01-17 Toshiba Corp メモリコントローラ

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176816B2 (en) 2008-03-01 2015-11-03 Kabushiki Kaisha Toshiba Memory system configured to control data transfer
US8751901B2 (en) 2008-03-01 2014-06-10 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory system configured to control data transfer
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
US11409442B2 (en) 2008-03-01 2022-08-09 Kioxia Corporation Memory system
US10901625B2 (en) 2008-03-01 2021-01-26 Toshiba Memory Corporation Memory system
JP2009211230A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US9201717B2 (en) 2008-03-01 2015-12-01 Kabushiki Kaisha Toshiba Memory system
JP2009217603A (ja) * 2008-03-11 2009-09-24 Toshiba Corp メモリシステム
JP4643671B2 (ja) * 2008-03-11 2011-03-02 株式会社東芝 メモリシステム
JP2014063511A (ja) * 2008-10-13 2014-04-10 Micron Technology Inc ソリッドステート記憶装置におけるトランスレーションレイヤ
JP2012008739A (ja) * 2010-06-23 2012-01-12 Toshiba Corp データ記憶装置及びデータ書き込み方法
US8583968B2 (en) 2010-06-23 2013-11-12 Kabushiki Kaisha Toshiba Data storage apparatus and method for writing data
JP2013538409A (ja) * 2010-09-17 2013-10-10 シマンテック コーポレーション 障害処理システム及び方法
US9785494B2 (en) 2011-03-10 2017-10-10 Toshiba Memory Corporation Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US8631191B2 (en) 2011-03-10 2014-01-14 Kabushiki Kaisha Toshiba Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US11880267B2 (en) 2011-03-10 2024-01-23 Kioxia Corporation Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US8683117B2 (en) 2011-03-10 2014-03-25 Kabushiki Kaisha Toshiba Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US9201602B2 (en) 2011-03-10 2015-12-01 Kabushiki Kaisha Toshiba Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US8667216B2 (en) 2011-03-10 2014-03-04 Kabushiki Kaisha Toshiba Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US11544131B2 (en) 2011-03-10 2023-01-03 Kioxia Corporation Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US8756367B2 (en) 2011-03-10 2014-06-17 Kabushiki Kaisha Toshiba Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US10338985B2 (en) 2011-03-10 2019-07-02 Toshiba Memory Corporation Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US10936394B2 (en) 2011-03-10 2021-03-02 Toshiba Memory Corporation Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
JP2013246479A (ja) * 2012-05-23 2013-12-09 Fujitsu Ltd 処理装置,処理方法,処理プログラム及び管理装置
EP2667305A1 (en) 2012-05-23 2013-11-27 Fujitsu Limited Information processing apparatus, and control method
US9176813B2 (en) 2012-05-23 2015-11-03 Fujitsu Limited Information processing apparatus, control method
US9460813B2 (en) 2013-03-14 2016-10-04 Kabushiki Kaisha Toshiba Memory system

Also Published As

Publication number Publication date
WO2009107286A1 (en) 2009-09-03
JP4987962B2 (ja) 2012-08-01

Similar Documents

Publication Publication Date Title
JP4987962B2 (ja) 情報処理装置及び不揮発性半導体メモリドライブ
US7870446B2 (en) Information processing apparatus and nonvolatile semiconductor memory drive
JP4825789B2 (ja) 情報処理装置及び不揮発性半導体メモリドライブ
US8504762B2 (en) Flash memory storage device with data interface
US8037232B2 (en) Data protection method for power failure and controller using the same
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US20090228641A1 (en) Information processing apparatus and non-volatile semiconductor memory drive
US20090228640A1 (en) Information processing apparatus and non-volatile semiconductor memory drive
US20090222613A1 (en) Information processing apparatus and nonvolatile semiconductor memory drive
JP4886846B2 (ja) 情報処理装置および不揮発性半導体メモリドライブ
US8099544B2 (en) Information processing apparatus and nonvolatile semiconductor memory drive
US8364930B2 (en) Information processing apparatus and storage drive adapted to perform fault analysis by maintenance of tracing information
US20090228762A1 (en) Inforamtion Precessing Apparatus and Non-Volatile Semiconductor Memory Drive
US20090222615A1 (en) Information Processing Apparatus and Nonvolatile Semiconductor Memory Drive
US20090222614A1 (en) Information processing apparatus and nonvolatile semiconductor memory drive
JP2010513993A (ja) 情報処理装置および不揮発性半導体メモリドライブ
JP4875148B2 (ja) 情報処理装置および記憶メディアドライブ
JP5296171B2 (ja) 情報処理装置
JP2010518463A (ja) 情報処理装置及び不揮発性半導体メモリドライブ
JP2010513994A (ja) 情報処理装置および不揮発性半導体メモリドライブ
JP2010511208A (ja) 情報処理装置及び不揮発性半導体メモリドライブ
JP2010512559A (ja) 情報処理装置及び不揮発性半導体メモリドライブ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

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: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120425

R151 Written notification of patent or utility model registration

Ref document number: 4987962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350