JP2023042175A - メモリシステム及びメモリシステムの制御方法 - Google Patents
メモリシステム及びメモリシステムの制御方法 Download PDFInfo
- Publication number
- JP2023042175A JP2023042175A JP2021149340A JP2021149340A JP2023042175A JP 2023042175 A JP2023042175 A JP 2023042175A JP 2021149340 A JP2021149340 A JP 2021149340A JP 2021149340 A JP2021149340 A JP 2021149340A JP 2023042175 A JP2023042175 A JP 2023042175A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- data
- memory
- volatile memory
- capacitor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 239000003990 capacitor Substances 0.000 claims abstract description 118
- 230000036541 health Effects 0.000 claims description 74
- NGVDGCNFYWLIFO-UHFFFAOYSA-N pyridoxal 5'-phosphate Chemical group CC1=NC=C(COP(O)(O)=O)C(C=O)=C1O NGVDGCNFYWLIFO-UHFFFAOYSA-N 0.000 abstract description 206
- 230000007423 decrease Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 15
- 230000004913 activation Effects 0.000 description 10
- 230000000052 comparative effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000005259 measurement Methods 0.000 description 9
- 230000009467 reduction Effects 0.000 description 8
- 239000000758 substrate Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 238000003745 diagnosis Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 229920001940 conductive polymer Polymers 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/141—Battery and back-up supplies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/143—Detection of memory cassette insertion or removal; Continuity checks of supply or ground lines; Detection of supply variations, interruptions or levels ; Switching between alternative supplies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
- Memory System (AREA)
Abstract
【課題】PLPキャパシタの性能が劣化してもPLP機能を実現することができるメモリシステム及びメモリシステムの制御方法を提供すること。【解決手段】実施形態によれば、メモリシステムは不揮発性メモリと揮発性メモリへの書き込みを制御するコントローラと、不揮発性メモリ、揮発性メモリ及びコントローラに接続され、外部からの電圧を用いて複数の電圧を生成し、複数の電圧を不揮発性メモリ、揮発性メモリ及びコントローラに供給する電源回路と、複数の電圧の中のいずれかの電圧により充電されるキャパシタとを具備する。電源回路はシャットダウンに因らず外部からの電圧が低下した時、キャパシタの出力電圧を用いて複数の電圧を生成し、複数の電圧を不揮発性メモリ、揮発性メモリ及びコントローラに供給可能とする。コントローラはキャパシタの静電容量に応じて揮発性メモリの記憶可能データサイズを可変とする。【選択図】図13
Description
本発明の実施形態は、不揮発性メモリを備えるメモリシステムに関する。
不揮発性メモリを備えるメモリシステムの一例としてSSD(Solid State Drive)が知られている。SSDでは、外部のホストから供給されるデータは、バッファメモリである揮発性メモリに一旦書き込まれ、このバッファメモリに書き込まれたデータが不揮発性メモリに書き込まれる。SSDは、ホストからシャットダウンを指令するコマンド(以下、シャットダウンコマンドとも称する)を受信すると、バッファメモリ内に書き込まれた全てのデータを不揮発性メモリに書き込んでから電源を遮断する。ここで、揮発性メモリは、例えば、DRAM等が用いられ、不揮発性メモリは、例えば、NAND型フラシュメモリ等が用いられる。
SSDには、シャットダウンを指令するコマンドによる電源の遮断ではなく、停電等の意図しない電源遮断時にバッファメモリ内のデータが消失しないようにするためのパワーロスプロテクション(Power Loss Protection)機能(PLP機能とも称する)を備えるものがある。PLP機能は、バックアップ電源を必要とする。バックアップ電源の一例としてはキャパシタ(PLPキャパシタとも称する)が用いられる。PLPキャパシタはキャパシタに電荷を蓄積させることにより所定電圧まで充電することが可能となっている。ここで、電源が何らかの原因で意図せずに遮断された場合、PLPキャパシタに蓄積された電荷が放出され、充電されていた電圧が放電される。SSDは、このキャパシタからの放電電圧を用いて、所定時間、動作することができる。例えば、ホストからのデータがバッファメモリに記憶されている途中で電源が意図せずに遮断された場合、PLPキャパシタに充電されていた電圧を用いてバッファメモリに記憶されている途中のデータ不揮発性メモリに書き込むことができる。このような機能をPLP機能と呼ぶ。
PLPキャパシタは経年劣化等により電荷の蓄積が可能なキャパシタの容量(静電容量)が減少する場合がある。経年劣化等によりキャパシタの容量が減少してしまうと、例えば、バッファメモリに書き込まれたデータを不揮発性メモリへ書込むために必要な電圧レベルまで充電できず、PLPキャパシタとしての機能を実現できない。
本発明の目的は、PLPキャパシタの性能が劣化してもPLP機能を実現することができるメモリシステム及びメモリシステムの制御方法を提供することである。
実施形態によれば、メモリシステムは、不揮発性メモリと、揮発性メモリと、不揮発性メモリへのデータの書き込みと揮発性メモリへのデータの書き込みを制御するコントローラと、不揮発性メモリ、揮発性メモリ、及びコントローラに接続され、外部から供給される電圧を用いて複数の電圧を生成し、生成した複数の電圧を不揮発性メモリ、揮発性メモリ、及びコントローラに供給する電源回路と、複数の電圧の中のいずれかの電圧により充電されるキャパシタと、を具備する。電源回路は、シャットダウンに因らず外部から供給される電圧が低下した時、キャパシタの電圧を用いて複数の電圧を生成し、生成した複数の電圧を不揮発性メモリ、揮発性メモリ、及びコントローラに供給可能とする。コントローラは、キャパシタの静電容量を検出し、キャパシタの静電容量に応じて揮発性メモリの記憶可能データサイズを可変とする。
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介した接続も含む場合もある。
図1は、第1実施形態に係るメモリシステム4と、メモリシステム4と接接続可能なホストデバイス(以下、単にホストと称する)2を含む情報処理システム1の一例を示すブロック図である。メモリシステム4は、不揮発性メモリ16にデータを書き込む、又は不揮発性メモリ16からデータを読み出すように構成されたストレージデバイスである。本願では、メモリシステム4は、例えば、SSDとである。不揮発性メモリの例は、NAND型フラッシュメモリ、NOR型フラッシュメモリ、MRAM(Magneto-resistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)等である。本願の説明において、不揮発性メモリ16は、例えば、NAND型フラッシュメモリ(以下、単にNANDメモリと称する)である。
このように、情報処理システム1は、ホスト2と、ホスト2に接続されたSSD4を含む。
このように、情報処理システム1は、ホスト2と、ホスト2に接続されたSSD4を含む。
ホスト2は、SSD4にアクセスする外部機器としての情報処理装置である。ホスト2は、大量且つ多様なデータをSSD4に保存するサーバ(ストレージサーバ)であってもよい。ホスト2は、パーソナルコンピュータであってもよい。SSD4は、データセンター等のサーバに組み込まれるビジネスユース向けのSSDであってもよい。SSD4はパーソナルコンピュータに組み込まれるパーソナルユース向けのSSDであってもよい。
SSD4は、コネクタ12、コントローラ14、NANDメモリ16、DRAM(Dynamic Random Access Memory)20、電源回路24、バックアップ電源30等を備える。SSD4は、ホスト2のメインストレージとして使用され得る。SSD4は、ホスト2に内蔵されてもよいし、ホスト2の外部に設けられ、ホスト2にケーブルまたはネットワークを介して接続されてもよい。
コントローラ14は、ホスト2から送信されるコマンド(要求)に従って、NANDメモリ16にデータを書き込み、又は、NANDメモリ16からデータを読み出す。さらに、コントローラ14は、ホスト2から送信されるコマンドや電源回路24から送信される種々の情報に従って、電源回路24が発生する電圧の値を制御する制御信号を生成する。コントローラ14は、生成した制御信号を電源回路24に送信する。この制御信号を受信すると、コントローラ14は、SSD4の各デバイス(例えばNANDメモリ16、コントローラ14、DRAM20)へ供給される複数の電圧を制御する。また、コントローラ14は、PLP機能の実行も制御する。コントローラ14は、SoC(System on a Chip)のような回路によって構成され得る。
電源回路24は、SSD4の各デバイスで必要な複数の電圧を、外部から供給される単一、又は複数の電圧から発生する。外部から供給される電圧の電源は内部電源であっても、外部電源であってもよい。外部電源はホスト2の電源であってもよい。なお、図1では、電源はホスト2の電源とするが、電源ラインは図示されていない。電源回路24は、SSD4の各デバイスで必要な複数の電圧を、バックアップ電源30から供給される電圧から発生することもできる。電源回路24は単一、又は複数の集積回路(Integrated Circuit:IC)から構成されてもよい。電源回路24の種々の状態を示す情報が所定の通信規格に従ってコントローラ14に送信される。所定の通信規格は、シリアル通信規格でもよい。シリアル通信規格の一例は、I2C方式である。本願では、電源回路24とコントローラ14との間の通信規格はI2C方式に従うとする。
DRAM20は、揮発性メモリの一例である。DRAM20は、例えばDDR3L(Double Data Rate 3 Low voltage)規格のDRAMである。DRAM20はバッファメモリ22を含む。バッファメモリ22は、ライトバッファ22a、リードバッファ22b、管理情報バッファ22cを含む。ホスト2からSSD4に供給され、NANDメモリ16に書き込まれている途中あるいは未書き込みのデータがライトバッファ22aに記憶される。NANDメモリ16から読み出され、ホスト2に転送中のデータあるいは未転送のデータがリードバッファ22bに記憶される。ルックアップテーブルやSSD4の動作中に用いられる各種のテーブルや各種の値が管理情報バッファ22cに記憶される。各種の値の一例は、PLP機能により不揮発化したブロックのアドレスである。ルックアップテーブルは、ホスト2が指定する論理アドレスとNANDメモリ16の物理アドレスとの間の対応を示す。
揮発性メモリとしてのDRAM20は、コントローラ14の外部に設けるのだけではなく、コントローラ14の内部に設けてもよい。なお、揮発性メモリとしては、DRAM20の代わりに、より高速アクセスが可能なSRAM(Static Random Access Memory)を用いてもよい。
NANDメモリ16は、複数(例えば、16個)のNANDチップ18を含んでいてもよい。各NANDチップ18は、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含んでもよい。NANDチップ18は、二次元構造のメモリセルアレイで構成されたチップでもよいし、三次元構造のメモリセルアレイで構成されたチップでもよい。
メモリセルアレイは、複数のブロックを含む。各々のブロックは複数のページを含む。ブロックは、データ消去動作の最小の単位として機能する。複数のページの各々は、同一ワード線に接続された複数のメモリセルを含む。ページは、データ書き込み動作及びデータ読み出し動作の単位である。
1ページのデータが、書き込み単位のデータ、又は読み出し単位のデータとしてライトバッファ22a、リードバッファ22bに格納される。書き込みの場合は、ライトバッファ22aから読み出された1ページの書き込み単位のデータがNANDメモリ16に書き込まれる。そのため、書き込み途中で、シャットダウンコマンドの発行による電源の遮断ではなく、意図しない電源の遮断が生じ、電源回路24が電圧を発生しない状態になると、ライトバッファ22a内の書き込み途中のデータが失われる。この時、リードバッファ22b、管理情報バッファ22c内のデータも、ライトバッファ22a内のデータと同様に失われる。尚、シャットダウンコマンドが発行された場合は、コントローラ14はバッファメモリ22内の不揮発化したいデータをNANDメモリ16に書き込んでから、電源回路24を動作停止する。
第1実施形態では、バックアップ電源30が用意されている。意図しない電源の遮断時に、コントローラ14はバックアップ電源30を用いて、バッファメモリ22内の書き込み途中のデータをNANDメモリ16に書き込み、書き込み途中のデータを不揮発化することができる。
コントローラ14は、ホスト2から送信されるコマンド(要求)、及び電源回路24から送信される種々の情報に従って、電源回路24が発生する電圧の値を制御する制御信号を生成する。コントローラ14は、生成した制御信号を電源回路24に送信する。これによりSSD4の各デバイスへ供給される複数の電圧がコントローラ14により制御される。
電源回路24にバックアップ電源30が接続されている。バックアップ電源30は、シャットダウンコマンドの発行による電源の遮断ではなく意図しない電源の遮断が生じた場合、書き込み途中のデータ保護のための電圧を電源回路24に供給する。バックアップ電源30は、例えば、並列に接続された複数のPLPキャパシタ(図3の説明にて後述する)から構成される。PLPキャパシタの例としては、電気二重層キャパシタ、導電性高分子アルミ電解キャパシタ、導電性高分子タンタル固体電解キャパシタなどがある。
電源回路24は、シャットダウンコマンドによる電源の遮断ではなく、意図しない電源の遮断が生じたとしても、バックアップ電源30を用いて、NANDメモリ16、コントローラ14、及びDRAM20に対して、ある時間電圧を供給し続けるPLP機能を備える。コントローラ14は、意図しない電源の遮断が生じると、電源回路24にPLP機能を実行させるコマンドを送信する。
バックアップ電源30を構成する複数のPLPキャパシタが蓄積する合成静電容量(総静電容量)は、電源の遮断後に電源回路24がNANDメモリ16、コントローラ14、及びDRAM20に対してPLP機能を実行するための電圧を供給する時間(バックアップ時間)に対応して設定される。この合成静電容量(以降の説明では単にPLPキャパシタの容量とも呼ぶ場合がある)は、バッファ22に記憶されているNANDメモリ16へ書き込み途中のデータがこの電圧供給時間内にNANDメモリ16へ書き込み完了、すなわち不揮発化完了するような容量より多少多く設定されている。これは、PLPキャパシタの容量に余裕を持たせておけば、経年劣化等によりPLPキャパシタの容量が多少減少したとしても、この電圧供給時間内にバッファメモリ22に記憶されているデータの不揮発化が完了できる、すなわちPLP機能を実現できるからである。
コントローラ14は、CPU32、ホストインタフェース(ホストI/F)回路34、NANDインターフェース(NAND I/F)回路36、DRAMインターフェース(DRAM I/F)回路38等を備える。CPU32、ホストI/F回路34、NAND I/F回路36、DRAM I/F回路38はバスライン40に接続される。直接的に図示されていないが、電源回路24もバスライン40に接続される。
CPU32は、NANDメモリ16に記憶されているファームウェアを実行し、種々の機能を実現する。種々の機能の例は、バックアップ電源30の充電制御や電源回路24によるPLP機能の制御がある。
ホストI/F回路34はコネクタ12を介してホスト2に電気的に接続され、NAND I/F回路36はNANDメモリ16に電気的に接続され、DRAM I/F回路38はDRAM20に電気的に接続される。
ホスト2とSSD4とを電気的に接続するホストI/F回路34は、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)、ATA(AT Attachment)、SATA(Serial ATA)、PCIe(PCI Express)TM、EthernetTM、Fibre channelTM、NVMe(NVM Express)TM、USB(Universal Serial Bus)TM、UART(Universal Asynchronous Receiver/Transmitter)TM等の規格に準拠する。
コントローラ14とNANDメモリ16とを電気的に相互接続するNAND I/F回路36は、Toggle DDR、ONFI(Open NAND Flash Interface)等の規格に準拠する。NAND I/F回路36は、複数(例えば、18個)のチャンネルを介してNANDメモリ16に接続される。
図2は、第1実施形態に係るSSD4の外観の一例を示す平面図である。SSD4は、ケース44内に配置される。ケース44の一端にはノッチ46が設けられる。ノッチ46には、コネクタ12が設けられる。コネクタ12は信号ピン、電源ピンを含む多数のピン12aを含む。ケース44は、上ケース44aと下ケース(図示しない)を有する。上ケース44aと下ケースはネジにより一体化される。
図3は第1実施形態に係るSSD4の構成部品の配置の一例を示す平面図である。図3(a)はSSD4の基板52の表面(上ケース44aに対向する面)を示す。基板52の形状は、4つの辺52a、2b、52c、52dを有する矩形である。短辺の一つの辺52aにコネクタ12が設けられる。コネクタ12のピン12aは基板52の表面に配置される。コントローラ14、DRAM20、電源回路24、バックアップ電源30が基板52の表面に配置される。図3(b)はSSD4の基板52の裏面(下ケースに対向する面)を示す。NANDチップ18が基板52の裏面に配置される。
コントローラ14は、コネクタ12を介して入力、又は出力される高速な信号を処理するので、コネクタ12の近傍に配置されている。具体的には、コントローラ14は、長辺52cと52dのそれぞれの中点を結ぶ線とコネクタ12側の短辺52aとの間に配置される。DRAM20はコントローラ14の近傍に配置される。
バックアップ電源30を構成する複数のPLPキャパシタ28は、基板52の長辺52cと52dのそれぞれの中点を結ぶ線とコネクタ12と反対側の短辺52bとの間に集中的に配置される。コントローラ14は、基板52上の部品の中では最も大きい発熱源である。PLPキャパシタ28は熱により劣化するが、PLPキャパシタ28はコントローラ14から出来るだけ離間されて配置されているので、熱による劣化が最小化される。
NANDチップ18もPLPキャパシタ28と同様に熱に対する耐性が低い。NANDチップ18はコントローラ14やPLPキャパシタ28が配置される面の反対側の面に設けられる。例えば、NANDチップ18は基板52の長辺52cと52dのそれぞれの中点を結ぶ線とコネクタ12と反対側の短辺52bとの間に集中的に配置される。このようにNANDチップ18はコントローラ14から出来るだけ離間されて配置されているので、NANDチップ18が熱による影響を受けることが防止される。
尚、NANDチップ18は、コントローラ14と比べてPLPキャパシタ28へ与える影響は小さいものの多少の発熱は生じる。そのため、PLPキャパシタ28は、図示されたようにNANDチップ18からも離間した位置に配置されていることが望ましい。このようにSSD4内の構成部品間で熱的影響を考慮したレイアウト設計を行っていたとしても、他の外的要因等によって、PLPキャパシタ28が劣化しPLP機能が適正に動作しない場合も生じ得る。そこで、本実施形態では、以下に詳述するような電源システムを備える。
図4は、第1実施形態に係る電源回路24、PLPキャパシタ28を有するバックアップ電源30、及びヘルス値測定回路74を含む電源システムの構成の一例を示すブロック図である。
電源回路24は、ヒューズ62、ロードスイッチ64、LDO(Low Dropout)レギュレータ66、DC/DCコンバータ68、コントロールロジック70、I2C I/F回路72及びADC(AD変換器)76を含む。図示しない電源は、電圧、例えばDC12Vの電圧を発生する。電圧に応じた大きさの電流がヒューズ62及びロードスイッチ64を直列に介してLDOレギュレータ66及びDC/DCコンバータ68に供給される。なお、ホスト2が電源を含み、電圧に応じた電流がホスト2から電源回路24に供給されてもよい。電源回路24を構成する単一、又は複数のICは電源管理IC(Power Management IC:PMIC)と称されることもある。
ヒューズ62は、一定電流以上の過電流が流れると溶断される金属ヒューズから構成される。ヒューズ62が溶断されると、ヒューズを交換しない限り、電圧はロードスイッチ64へ供給されない。なお、ヒューズ62は金属ヒューズに限らず、過電流が検出されると非導通となる電子ヒューズから構成されてもよい。
ロードスイッチ64は、オン/オフスイッチであり、通常はオン状態である。オン状態において、ロードスイッチ64は、供給された電圧からドロップアウト電圧を減じた電圧を出力する。ヒューズ62と同様に、ロードスイッチ64は、一定電流以上の過電流が流れると、オフ状態となる。オフ状態において、ロードスイッチ64は0Vを出力する。ヒューズ62が溶断される過電流の値は、ロードスイッチ64がオン状態からオフ状態に変化する過電流の値より高くても低くても良いし、同じでも良い。ヒューズ62とロードスイッチ64によりLDOレギュレータ66、DC/DCコンバータ68へ過電流が供給されることが二重に防止される。
LDOレギュレータ66は、小電流を必要とするSSD4のデバイスの電圧を出力する回路である。DC/DCコンバータ68は、大電流を必要とするSSD4のデバイスの電圧を出力する回路である。LDOレギュレータ66、DC/DCコンバータ68は個別のICから構成されても良いし、単一のICから構成されても良い。
LDOレギュレータ66は、ロードスイッチ64から出力される電圧を降圧する。LDOレギュレータ66の出力される電圧はコントローラ14に供給される。
DC/DCコンバータ68は、ロードスイッチ64の出力電圧を昇圧、又は降圧してSSD4内の各デバイス(コントローラ14、NANDメモリ16、DRAM20等)が必要とする複数の電圧を発生する。DC/DCコンバータ68は複数の電圧をそれぞれ昇圧、又は降圧する複数のDC/DCコンバータユニットから構成されている。
昇圧用のDC/DCコンバータユニットは、ロードスイッチ64の出力電圧を昇圧し、昇圧電圧を並列接続された複数のPLPキャパシタ28に充電電圧として供給する。複数のPLPキャパシタ28がバックアップ電源30を構成する。
降圧用のDC/DCコンバータユニットは、ロードスイッチ64の出力電圧を降圧して複数の電圧を発生する。降圧用のDC/DCコンバータユニットで発生した電圧は、前述したNANDメモリ16、DRAM20、及びコントローラ14へと供給される。
コントロールロジック70は、ロードスイッチ64の出力電圧を監視し、出力電圧が所定電圧、例えば0Vまで低下したことを検出すると、検出結果をコントローラ14へ送信する。コントローラ14は、シャットダウンコマンドを受信していないにも関わらず、ロードスイッチ64の出力電圧が0Vになったことが通知されると、シャットダウンに因らない意図しない電源の遮断が生じたと判断し、PLPコマンドをコントロールロジック70に送信する。
コントロールロジック70は、PLPコマンドを受信すると、PLPキャパシタ28で充電された電圧(出力電圧)をDC/DCコンバータ68内の降圧用のDC/DCコンバータユニットに入力させる。これにより、意図せずに電源が遮断された後暫くの間、降圧用のDC/DCコンバータユニットは、PLPキャパシタ28からの出力電圧を降圧し、降圧電圧をNANDメモリ16、DRAM20、及びコントローラ14にも供給するとともに、LDOレギュレータ66に供給する。これにより、DC/DCコンバータ68とLDOレギュレータ66は、意図せずに電源が遮断された後暫くの間、PLPキャパシタ28の出力電圧を降圧して生成した電圧をNANDメモリ16、DRAM20、及びコントローラ14に供給することができる。PLPキャパシタ28の出力電圧を用いることにより、バッファメモリ22内のデータがNANDメモリ16に書き込まれ、不揮発化されるという、PLP機能が実現される。
I2C I/F回路72は、コントロールロジック70及びコントローラ14のバスライン40に接続され、コントロールロジック70から送信される制御信号に応じてコントローラ14と通信を行う。コントローラ14からの制御信号はI2C I/F回路72を介してコントロールロジック70に供給される。
ヘルス値測定回路74が複数のPLPキャパシタ28に対して並列に接続される。ヘルス値測定回路74は、並列に接続された複数のPLPキャパシタ28の合成静電容量を測定し、測定結果をPLPキャパシタ28のヘルス値として出力する。ヘルス値は、複数のPLPキャパシタ28がPLP機能を実現するための電圧を出力できる時間、言い換えると、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズに応じている。ヘルス値が或る閾値以上である場合、PLP機能は実現できると判断できる。ヘルス値が或る閾値未満である場合、PLP機能が実現できず、SSD4は故障と判断することができる。ヘルス値測定回路74は一定周期でヘルス値を測定し、出力する。ヘルス値測定回路74から出力されたヘルス値はADC76を介してコントロールロジック70に供給される。
次に、PLP機能について説明する。
先ず、比較例のPLP機能について説明する。比較例のハードウェア構成は図1乃至図4に示した第1実施形態と同じである。PLP機能に関するコントローラ14の制御動作が第1実施形態とは異なる。
比較例では、PLPキャパシタ28の劣化を判断するためのヘルス値の閾値として1つの故障閾値が設定される。故障閾値は、バッファメモリ22の記憶可能データ(以下、PLP対象データと称される)のサイズに対応して設定されている。PLPキャパシタ28が劣化すると、バッファメモリに格納されている全てのデータを不揮発性メモリに書き込むために必要な所定電圧まで充電することができず、PLPキャパシタとしての機能を実現できない場合がある。PLPキャパシタとしての機能を実現できないことを予測するために、コントローラ14は、ヘルス値測定回路74で測定された複数のPLPキャパシタ28のヘルス値を故障閾値と比較する。
図5は、ヘルス値が故障閾値以上である場合の比較例のPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ102のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは大きい。そのため、PLP対象データ102はPLP機能により全てNANDメモリ16に書き込むこと(不揮発化)ができる。
図6は、ヘルス値が故障閾値未満である場合の比較例のPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ106のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは小さい。そのため、PLP対象データ106の中のヘルス値に応じたPLP対象データの一部106aはPLP機能によりNANDメモリ16に書き込むこと(不揮発化)ができるが、残りのデータ106bはPLP機能によりNANDメモリ16に書き込むことができず(不揮発化不可)、SSD4は故障とみなされる。
このように比較例では、ヘルス値が故障閾値未満になると、SSD4は故障とみなされる。
次に、第1実施形態に係るSSD4が備えるPLP機能について説明する。第1実施形態では、PLPキャパシタ28の劣化を判断するためのヘルス値の閾値として故障閾値と、故障閾値より大きい少なくとも1つの閾値が設定される。ここでは、故障閾値以上の第2閾値と、第2閾値以上の第1閾値という2つの閾値が設定される。しかし、故障閾値以外の閾値として第1閾値のみが設定されてもよいし、3つ以上の閾値が設定されてもよい。比較例では、ヘルス値の閾値は1つの故障閾値だけであり、バッファメモリ22が記憶可能なPLP対象データのサイズは固定であったが、第1実施形態では複数の閾値が設定され、PLP対象データのサイズ(バッファメモリ22の有効サイズとも称される)は可変である。バッファメモリ22の有効サイズは、バッファメモリ22の最大記憶可能サイズのうち、データを実効的に記憶可能とするサイズである。データはホスト2からSSD4に転送されるデータ、ユーザデータのログデータ、ECCのためのデータ、ルックアップテーブルに関するデータ等を含む。バッファメモリ22は物理的なメモリに限らず、論理(Virtual)バッファにより実現されてもよい。
コントローラ14は、バッファメモリ22の記憶データが有効サイズ以上にならないようにバッファメモリ22の書き込みを制御する。例えば、コントローラ14は、バッファメモリ22の記憶データが有効サイズ以上になりそうな場合は、バッファメモリ22の記憶データの一部をNANDメモリ16に書き込んだ後、一部のデータを削除して、バッファメモリ22の記憶データのサイズを減少する。
当初、コントローラ14は、バッファメモリ22の有効サイズを第1閾値以上のヘルス値に対応したサイズに設定する。コントローラ14は、ヘルス値測定回路74で測定されたPLPキャパシタ28のヘルス値を第1閾値と比較する。
図7は、ヘルス値が第1閾値以上である場合の第1実施形態に係るSSD4が備えるPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ112のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは大きい。そのため、バッファメモリ22内のPLP対象データ112はPLP機能により全てNANDメモリ16に書き込むこと(不揮発化)ができ、PLP機能は正常に動作する。
図8は、ヘルス値が第1閾値未満で第2閾値以上である場合の第1実施形態に係るSSD4が備えるPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ114のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは小さく、バッファメモリ22内のPLP対象データ114の全てをPLP機能によりNANDメモリ16に書き込むこと(不揮発化)ができなくなる。このため、コントローラ14は、バッファメモリ22の有効サイズを第1閾値に対応していたサイズから第2閾値に対応したサイズに変更する。すなわち、コントローラ14は、バッファメモリ22の有効サイズを縮小する。この縮小化により、PLP対象データ114もその一部であるPLP対象データ114aに縮小される。結果的に、縮小化されたPLP対象データ114aのサイズに対して、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは大きくなる。従って、PLP対象データ114aを全てNANDメモリ16に書き込むこと(不揮発化)が可能となる。
バッファメモリ22の有効サイズの縮小化に先立ち、コントローラ14は、縮小前のPLP対象データ114と縮小後のPLP対象データ114aとの差分のデータ114bをNANDメモリ16に書き込む(不揮発化する)。不揮発化される差分のデータの例は、ライトバッファ22aに記憶されているNANDメモリ16に書き込まれている途中あるいは未書き込みのデータである。あるいは、差分のデータの例は、バッファメモリ22に書き込まれているデータの中の書き込み時間が最新のデータを含む一定サイズのデータである。
図9は、ヘルス値が第1閾値未満で第2閾値以上である場合の第1実施形態に係るSSD4が備えるPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ118のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは大きいそのため、バッファメモリ22内のPLP対象データ118はPLP機能により全てNANDメモリ16に書き込むこと(不揮発化)ができ、PLP機能は正常に動作する。
図10は、ヘルス値が第2閾値未満で故障閾値以上である場合の第1実施形態に係るSSD4が備えるPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ122のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは小さく、バッファメモリ22内のPLP対象データ122の全てをPLP機能によりNANDメモリ16に書き込むこと(不揮発化)ができなくなる。このため、コントローラ14は、バッファメモリ22の有効サイズを第2閾値に対応していたサイズから故障閾値に対応したサイズに変更する。すなわち、コントローラ14は、バッファメモリ22の有効サイズを縮小する。この縮小化により、PLP対象データ122もその一部であるPLP対象データ122aに縮小される。結果的に、縮小化されたPLP対象データ122aのサイズに対して、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは大きくなる。従って、PLP対象データ122aを全てNANDメモリ16に書き込むこと(不揮発化)が可能となる。
バッファメモリ22の有効サイズの縮小化に先立ち、コントローラ14は、縮小前のPLP対象データ122と縮小後のPLP対象データ122aとの差分のデータ122bをNANDメモリ16に書き込む(不揮発化する)。不揮発化される差分のデータの例は、ライトバッファ22aに記憶されているNANDメモリ16に書き込まれている途中あるいは未書き込みのデータ、あるいは、バッファメモリ22に書き込まれているデータの中の書き込み時間が最新のデータを含む一定サイズのデータである。
図11は、ヘルス値が第2閾値未満で故障閾値以上である場合の第1実施形態に係るSSD4が備えるPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ126のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは大きい。そのため、バッファメモリ22内のPLP対象データ126はPLP機能により全てNANDメモリ16に書き込むこと(不揮発化)ができ、PLP機能は正常に動作する。
図12は、ヘルス値が故障閾値未満である場合の第1実施形態に係るSSD4が備えるPLP機能を説明するための図である。この場合、バッファメモリ22内のPLP対象データ128のサイズに対し、PLPキャパシタ28の出力電圧により不揮発化を可能とするデータのサイズは小さい。そのため、PLP対象データ128の中のヘルス値に応じたPLP対象データの一部128aはPLP機能によりNANDメモリ16に書き込むこと(不揮発化)ができるが、残りのデータ128bはPLP機能によりNANDメモリ16に書き込むことができず(不揮発化不可)、PLP機能が正常に動作できず、SSD4は故障とみなされる。
図13は、図7乃至図12に示した第1実施形態に係るSSD4が備えるPLP機能を実行するコントローラ14の処理の一例を示すフローチャートである。
ステップS102で、コントローラ14はホスト20からブートコマンドを受信したか判定する。コントローラ14はブートコマンドを受信するまでステップS102の判定を繰り返す。第1閾値、第2閾値及び故障閾値はSSD4で設定されていてもよいし、ホスト2がSSD4に設定してもよい。ホスト2がSSD4にこれらの閾値を設定する場合、ホスト2はブートコマンドとともに閾値をSSD4に通知してもよい。
ブートコマンドを受信すると(S102のYES)、ステップS104で、コントローラ14はPLPキャパシタ28の診断を行う。具体的には、コントローラ14はヘルス値測定回路74で測定されたヘルス値を受信する。
ステップS106で、コントローラ14はヘルス値が第1閾値以上であるかを判定する。ヘルス値が第1閾値以上である場合(S106のYES)、ステップS108で、コントローラ14はPLP発動タイミングになったかを判定する。コントローラ14は、シャットダウンコマンドを受信していないにも関わらず、コントロールロジック70からロードスイッチ64の出力電圧が0Vになったことが通知されると、PLP発動タイミングになったと判断する。
コントローラ14はPLP発動タイミングになるまでステップS108の判定を繰り返す。PLP発動タイミングになると(S108のYES)、ステップS112で、コントローラ14はPLP機能を実行する。この場合、図7に示すように、PLP対象データ112は全て不揮発化される。
ステップS106でヘルス値が第1閾値未満であると判定された場合(S106のNO)、ステップS114で、コントローラ14はヘルス値が第2閾値以上であるかを判定する。ヘルス値が第2閾値以上である場合(S114のYES)、ヘルス値は第1閾値未満であり第2閾値以上であるので、ステップS116で、図8に示すように、コントローラ14はバッファメモリ22の有効サイズを縮小する。
ステップS118で、コントローラ14はPLP発動タイミングになったかを判定する。コントローラ14はPLP発動タイミングになるまでステップS118の判定を繰り返す。PLP発動タイミングになると(S118のYES)、ステップS122で、コントローラ14はPLP機能を実行する。この場合、図9に示すように、PLP対象データ118は全て不揮発化される。
ステップS114でヘルス値が第2閾値未満であると判定された場合(S114のNO)、ステップS124で、コントローラ14はヘルス値が故障閾値以上であるかを判定する。ヘルス値が故障閾値以上である場合(S124のYES)、ヘルス値は第2閾値未満であり故障閾値以上であるので、ステップS126で、図10に示すように、コントローラ14はバッファメモリ22の有効サイズを縮小する。
ステップS128で、コントローラ14はPLP発動タイミングになったかを判定する。コントローラ14はPLP発動タイミングになるまでステップS128の判定を繰り返す。PLP発動タイミングになると(S128のYES)、ステップS132で、コントローラ14はPLP機能を実行する。この場合、図11に示すように、PLP対象データ126は全て不揮発化される。
ステップS124でヘルス値が故障閾値未満であると判定された場合(S124のNO)、ステップS134で、コントローラ14は故障処理を実行する。故障処理の例は、コントローラ14がホスト2に、PLPキャパシタ28の性能が劣化しているためPLP機能が正常に動作しない、すなわちSSD4が故障していることを通知することがある。
図14は、図7乃至図12に示した第1実施形態に係るSSD4が備えるPLP機能を実行するコントローラ14の処理の他の例を示すフローチャートである。
ステップS152で、コントローラ14はホスト2からシャットダウンコマンドを受信したか判定する。コントローラ14はシャットダウンコマンドを受信するまでステップS152の判定を繰り返す。ホスト2は、シャットダウンコマンドとともに第1閾値、第2閾値及び故障閾値をSSD4に通知してもよい。
シャットダウンコマンドを受信すると(S152のYES)、ステップS154で、コントローラ14はPLPキャパシタ28の診断を行う。この後は、図13に示した処理と同様に、ステップS106で、コントローラ14はヘルス値が第1閾値以上であるかを判定する。この後、場合によっては、バッファメモリ22の有効サイズが変更される。変更後の有効サイズはNANDメモリ16に不揮発的に記憶される。
図13は、PLPキャパシタ28の診断をブート時に行う例であり、図14はPLPキャパシタ28の診断をシャットダウン時に行う例である。PLPキャパシタ28の診断とバッファメモリ22の有効サイズの変更は、これら以外の時に行ってもよい。例えば、ホスト2のコマンド処理が少ない時や一定期間毎に行ってもよい。
第1実施形態によれば、PLPキャパシタ28の性能が劣化し、PLPキャパシタ28の合成静電容量が減少した場合、直ちにPLP機能の停止と判断せずに、バッファメモリ22の有効サイズ、すなわちPLP対象データサイズを縮小して、PLP機能の動作を継続させる。バッファメモリ22の有効サイズが縮小すると、バッファメモリ22への書き込みが出来なくなる頻度が高くなり、バッファメモリ22からNANDメモリ16へデータを移動させるSSD4の内部処理の実行頻度が高くなる。このため、ホスト2からのコマンドに対するSSD4の処理能力が多少落ちるが、PLP機能が停止しSSD4が最終的に故障となる時間を遅らせことができる。つまり、SSD4の稼働可能期間を延長させることができる。
図15は第2実施形態に係るPLP機能を実行するコントローラ14の処理の一例を示すフローチャートである。第2実施形態のハードウェア構成は図1乃至図4に示した第1実施形態と同じである。PLP機能に関するコントローラ14の制御動作が第1実施形態とは異なる。
ステップS202で、コントローラ14はホスト20からブートコマンドを受信したか判定する。コントローラ14はブートコマンドを受信するまでステップS102の判定を繰り返す。ホスト2はブートコマンドとともに第1閾値、第2閾値、故障閾値をSSD4に通知してもよい。
ブートコマンドを受信すると(S202のYES)、ステップS204で、コントローラ14はPLPキャパシタ28の診断を行う。
ステップS206で、コントローラ14はホスト20からPLPモード指定コマンドを受信したか判定する。第2実施形態では、PLPモードとして、比較例のようにヘルス値の閾値は故障閾値のみである単数閾値モードと、第1実施形態のようにヘルス値の閾値は故障閾値以外に少なくとも1つの閾値がある複数閾値モードが備えられている。
ホスト2はSSD4にブートコマンドを送信後、単数閾値モードか複数閾値モードを指定するPLPモード指定コマンドを送信する。コントローラ14はPLPモード指定コマンドを受信するまでステップS206の判定を繰り返す。
ホスト2はSSD4にブートコマンドを送信後、単数閾値モードか複数閾値モードを指定するPLPモード指定コマンドを送信する。コントローラ14はPLPモード指定コマンドを受信するまでステップS206の判定を繰り返す。
PLPモード指定コマンドを受信すると(S206のYES)、ステップS208で、コントローラ14はPLPモード指定コマンドが単数閾値モードを指定するか複数閾値モードを指定するかを判定する。複数閾値モードを指定する場合は、第1実施形態と同様に、ステップS106で、コントローラ14はヘルス値が第1閾値以上であるかを判定する。この後、場合によっては、バッファメモリ22の有効サイズが変更される。
単数閾値モードを指定する場合は、ステップS212で、コントローラ14はヘルス値が故障閾値以上であるかを判定する。ヘルス値が故障閾値以上である場合(S212のYES)、コントローラ14は、PLP発動タイミングになったかを判定する。コントローラ14はPLP発動タイミングになるまでステップS214の判定を繰り返す。PLP発動タイミングになると(S214のYES)、ステップS216で、コントローラ14はPLP機能を実行する。この場合、図5に示すように、PLP対象データ102は全て不揮発化される。単数閾値モードの故障閾値は、複数閾値モードの故障閾値とは異なる値に設定される。例えば、単数閾値モードの故障閾値は、複数閾値モードの第1閾値に設定されてもよい。
ステップS212でヘルス値が故障閾値未満であると判定された場合(S212のNO)、ステップS218で、コントローラ14は故障処理を実行する。
ホスト2がPLPモード指定コマンドを送信するタイミングは、シャットダウンコマンドの送信後でもよいし、ホスト2のコマンド処理が少ない時や一定期間毎でもよい。
第2実施形態によれば、SSD4は、PLPモードとして、PLP機能の故障を判定するためのPLPキャパシタ28のヘルス値の閾値が一つの単数閾値モードと、閾値が複数の複数閾値モードを備えており、ホスト2がPLPモードを選択することができる。
図16は第3実施形態に係るPLP機能を実行するコントローラ14の処理の一例を示すフローチャートである。第3実施形態のハードウェア構成は図1乃至図4に示した第1実施形態と同じである。PLP機能に関するコントローラ14の制御動作が第1実施形態とは異なる。図16のフローチャートにおいて、図13と同じ処理には同じステップ番号を付す。
コントローラ14は、ブートコマンドを受信し(ステップS102)、PLPキャパシタ28の診断を行い(ステップ104)、ヘルス値が第1閾値以上であるかを判定する(ステップS106)。
ヘルス値が第1閾値未満である場合(S106のNO)、ステップS302で、コントローラ14はPLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズをホスト2に通知する。この時、バッファメモリ22の有効サイズは当初のサイズのままである。この後、ステップS114で、コントローラ14はヘルス値が第2閾値以上であるかを判定する。
ヘルス値が第2閾値未満である場合(S114のNO)、ステップS304で、コントローラ14はPLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズの少なくとも1つをホスト2に通知する。この時、バッファメモリ22の有効サイズは当初のサイズのままか、ステップS116で縮小されたサイズである。この後、ステップS124で、コントローラ14はヘルス値が故障閾値以上であるかを判定する。
第3実施形態では、ホスト2は、PLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズを知ることができる。ホスト2は、PLPキャパシタ28のヘルス値の変化から、PLP機能の停止によりSSD4が故障するまでの時間を予測することができる。あるいは、ホスト2は、バッファメモリ22の有効サイズの低下率(=(C-B)/C)、Cはバッファメモリ22の有効サイズの初期値、Bは縮小後のバッファメモリ22の有効サイズ)から、PLP機能の停止によりSSD4が故障するまでの時間を予測することができる。
第1実施形態でPLPキャパシタ28の診断はシャットダウンコマンドを受信した後に行う変形例(図14)を説明したが、第3実施形態でもPLPキャパシタ28の診断はシャットダウンコマンドを受信した後に行ってもよい。その場合、コントローラ14がPLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズをホスト2に通知するタイミングは、シャットダウンコマンドの受信後の、PLPキャパシタ28の診断後である。
図17は第4実施形態に係るPLP機能を実行するコントローラ14の処理の一例を示すフローチャートである。第4実施形態のハードウェア構成は図1乃至図4に示した第1実施形態と同じである。PLP機能に関するコントローラ14の制御動作が第1実施形態とは異なる。
ステップS312で、コントローラ14はホスト20から通知要求コマンドを受信したか判定する。コントローラ14は他の処理の実行中にバックグランドでステップS312の処理を実行する。ホスト20は、コントローラ14からPLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズに関する通知を必要とするタイミングで、通知要求コマンドをコントローラ14へ送信する。コントローラ14は通知供給コマンドを受信するまでステップS132の判定を繰り返す。
通知要求コマンドを受信すると(S312のYES)、ステップS314で、コントローラ14はPLPキャパシタ28の診断を行う。
ステップS316で、コントローラ14はPLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズをホスト2に通知する。
第4実施形態によれば、ホスト2は必要なタイミングでPLPキャパシタ28のヘルス値とバッファメモリ22の有効サイズを知ることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
2…ホスト、4…SSD、14…コントローラ、16…NANDメモリ、22…バッファメモリ、24…電源回路、30…バックアップ電源
Claims (18)
- 不揮発性メモリと、
揮発性メモリと、
前記不揮発性メモリへのデータの書き込みと前記揮発性メモリへのデータの書き込みを制御するコントローラと、
前記不揮発性メモリ、前記揮発性メモリ、及び前記コントローラに接続され、外部から供給される電圧を用いて複数の電圧を生成し、前記生成した複数の電圧を前記不揮発性メモリ、前記揮発性メモリ、及び前記コントローラに供給する電源回路と、
前記複数の電圧の中のいずれかの電圧により充電されるキャパシタと、
を具備し、
前記電源回路は、シャットダウンに因らず前記外部から供給される電圧が低下した時、前記キャパシタの出力電圧を用いて前記複数の電圧を生成し、前記生成した複数の電圧を前記不揮発性メモリ、前記揮発性メモリ、及び前記コントローラに供給可能とし、
前記コントローラは、前記キャパシタの静電容量に応じて前記揮発性メモリの記憶可能データサイズを可変とする、メモリシステム。 - 前記コントローラは、前記キャパシタの静電容量が第1閾値未満の場合、前記揮発性メモリに書き込まれているデータの中の第1データを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記第1データのサイズだけ縮小する、請求項1記載のメモリシステム。
- 前記コントローラは、外部機器から第1閾値を受信し、前記キャパシタの静電容量が前記第1閾値未満の場合、前記揮発性メモリに書き込まれているデータの中の第1データを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記第1データのサイズだけ縮小する、請求項1記載のメモリシステム。
- 前記コントローラは、前記揮発性メモリの記憶可能データサイズを縮小した後、前記キャパシタの静電容量が前記第1閾値未満の第2閾値未満の場合、前記揮発性メモリに書き込まれているデータの中の第2データを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記第2データのサイズだけ縮小する、請求項2記載のメモリシステム。
- 前記コントローラは、外部機器から前記第1閾値未満の第2閾値を受信し、前記揮発性メモリの記憶可能データサイズを縮小した後、前記キャパシタの静電容量が前記第2閾値未満の場合、前記揮発性メモリに書き込まれているデータの中の第2データを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記第2データのサイズだけ縮小する、請求項2記載のメモリシステム。
- 前記コントローラは、前記キャパシタの静電容量が前記第2閾値未満の第3閾値未満の場合、前記キャパシタの静電容量に応じた情報を外部機器に送信する、請求項3記載のメモリシステム。
- 前記コントローラは、外部機器から前記第2閾値未満の第3閾値を受信し、前記キャパシタの静電容量が前記第3閾値未満の場合、前記キャパシタの容量に応じた情報を前記外部機器に送信する、請求項3記載のメモリシステム。
- 前記不揮発性メモリは、
前記不揮発性メモリに書き込まれている途中あるいは未書き込みのデータを記憶するライトバッファと、
前記不揮発性メモリから読み出され、外部機器に送信中のデータあるいは未送信のデータを記憶するリードバッファと、
前記不揮発性メモリへのデータの書き込みのための管理データを記憶する管理データバッファと、を備え、
前記コントローラは、前記キャパシタの静電容量が前記第1閾値未満の場合、前記ライトバッファのデータを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記ライトバッファのサイズだけ縮小する、請求項2記載のメモリシステム。 - 前記コントローラは、前記揮発性メモリの記憶可能データサイズを縮小した後、前記キャパシタの静電容量が第1閾値未満の第2閾値未満の場合、前記ライトバッファのデータを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記ライトバッファのサイズだけさらに縮小する、請求項8記載のメモリシステム。
- 前記コントローラは、前記キャパシタの静電容量が前記第1閾値未満の場合、前記揮発性メモリに書き込まれているデータの中の書き込み時間が最新のデータを含む一定サイズのデータを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記一定サイズだけ縮小する、請求項2記載のメモリシステム。
- 前記コントローラは、前記揮発性メモリの記憶可能データサイズを縮小した後、前記キャパシタの静電容量が第1閾値未満の第2閾値未満の場合、前記揮発性メモリに書き込まれているデータの中の書き込み時間が最新のデータを含む一定サイズのデータを前記不揮発性メモリに書き込み、前記揮発性メモリの記憶可能データサイズを前記一定サイズだけさらに縮小する、請求項10記載のメモリシステム。
- 前記コントローラは前記キャパシタの静電容量と前記揮発性メモリの記憶可能データサイズの少なくとも一方を外部機器へ送信する、請求項1記載のメモリシステム。
- 前記コントローラは、前記揮発性メモリの記憶可能データサイズを縮小すると、前記キャパシタの静電容量と前記揮発性メモリの記憶可能データサイズの少なくとも一方を前記外部機器へ送信する、請求項12記載のメモリシステム。
- 前記コントローラは、前記外部機器から通知要求を受信すると、前記キャパシタの静電容量と前記揮発性メモリの記憶可能データサイズの少なくとも一方を前記外部機器へ送信する、請求項12記載のメモリシステム。
- 前記電源回路は外部機器からシャットダウンコマンドを受信しない時に前記外部から供給される電圧が第1電圧未満になると、前記キャパシタの出力電圧に応じた電圧を前記不揮発性メモリと前記揮発性メモリと前記コントローラに供給する、請求項1記載のメモリシステム。
- 不揮発性メモリと、
揮発性メモリと、
前記不揮発性メモリへのデータの書き込みと前記揮発性メモリへのデータの書き込みを制御するコントローラと、
前記不揮発性メモリ、前記揮発性メモリ、及び前記コントローラに接続され、外部から供給される電圧を用いて複数の電圧を生成し、前記生成した電圧を前記不揮発性メモリ、前記揮発性メモリ、及び前記コントローラに供給する電源回路と、
前記複数の電圧の中のいずれかの電圧により充電されるキャパシタと、
を具備し、
前記電源回路は、シャットダウンに因らず前記外部から供給される電圧が低下した時、前記キャパシタの出力電圧を用いて前記複数の電圧を生成し、前記生成した複数の電圧を前記不揮発性メモリ、前記揮発性メモリ、及び前記コントローラに供給可能とし、
前記コントローラは、第1動作モードでは、前記キャパシタの静電容量が第1閾値未満の場合、前記揮発性メモリの記憶可能データサイズを可変とし、前記キャパシタの静電容量が前記第1閾値未満の第2閾値未満の場合、前記キャパシタの静電容量を外部機器へ送信し、第2動作モードでは、前記キャパシタの静電容量が第3閾値未満の場合、前記キャパシタの静電容量を前記外部機器へ送信する、メモリシステム。 - 前記コントローラは、前記外部機器から前記第1動作モード又は前記第2動作モードを指定するモード指定情報を受信する、請求項16記載のメモリシステム。
- 不揮発性メモリと、
揮発性メモリと、
前記不揮発性メモリへのデータの書き込みと前記揮発性メモリへのデータの書き込みを制御するコントローラと、
前記不揮発性メモリ、前記揮発性メモリ、及び、前記コントローラに接続され、外部から供給される電圧を用いて複数の電圧を生成し、前記揮発性メモリ、前記不揮発性メモリ、及び前記コントローラに前記生成した電圧を供給する電源回路と、
前記複数の電圧の中のいずれかの電圧により充電され、出力電圧を前記電源回路に供給するキャパシタと、
前記キャパシタの静電容量を測定するヘルス値測定回路と、
を具備する、メモリシステムの制御方法であって、
前記電源回路は、シャットダウンに因らず前記外部から供給される電圧が低下した時、前記キャパシタの出力電圧を用いて前記複数の電圧を生成し、前記生成した電圧を、前記不揮発性メモリ、前記揮発性メモリ、及び、前記コントローラに供給可能であり、
前記コントローラは、前記キャパシタの静電容量に応じて前記揮発性メモリの記憶可能データサイズを可変とする、メモリシステムの制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021149340A JP2023042175A (ja) | 2021-09-14 | 2021-09-14 | メモリシステム及びメモリシステムの制御方法 |
TW111105273A TWI834118B (zh) | 2021-09-14 | 2022-02-14 | 記憶體系統及記憶體系統的控制方法 |
US17/651,309 US12046272B2 (en) | 2021-09-14 | 2022-02-16 | Memory system and control method of memory system |
CN202210208507.0A CN115810369A (zh) | 2021-09-14 | 2022-03-04 | 存储系统及存储系统的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021149340A JP2023042175A (ja) | 2021-09-14 | 2021-09-14 | メモリシステム及びメモリシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023042175A true JP2023042175A (ja) | 2023-03-27 |
Family
ID=85482202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021149340A Pending JP2023042175A (ja) | 2021-09-14 | 2021-09-14 | メモリシステム及びメモリシステムの制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US12046272B2 (ja) |
JP (1) | JP2023042175A (ja) |
CN (1) | CN115810369A (ja) |
TW (1) | TWI834118B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12007821B2 (en) * | 2022-04-08 | 2024-06-11 | Monolithic Power Systems, Inc. | Power loss prevention circuit with mitigation for failed energy storage banks |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8325554B2 (en) * | 2008-07-10 | 2012-12-04 | Sanmina-Sci Corporation | Battery-less cache memory module with integrated backup |
US20120221891A1 (en) * | 2011-02-14 | 2012-08-30 | Mitsubishi Electric Corporation | Programmable controller |
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
US20150279463A1 (en) * | 2014-03-31 | 2015-10-01 | Dell Products, L.P. | Adjustable non-volatile memory regions of dram-based memory module |
US20160254031A1 (en) * | 2015-02-26 | 2016-09-01 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
TWI678622B (zh) | 2018-06-15 | 2019-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置的開發系統以及產品化方法 |
US10656848B2 (en) * | 2018-06-17 | 2020-05-19 | International Business Machines Corporation | Data loss avoidance in multi-server storage systems |
JP2020030875A (ja) * | 2018-08-23 | 2020-02-27 | キオクシア株式会社 | メモリシステム |
JP2020154431A (ja) * | 2019-03-18 | 2020-09-24 | キオクシア株式会社 | 電子機器及び電子機器の情報記録方法 |
KR102678655B1 (ko) * | 2019-07-05 | 2024-06-27 | 에스케이하이닉스 주식회사 | 메모리 인터페이스, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 |
JP2021044037A (ja) * | 2019-09-10 | 2021-03-18 | キオクシア株式会社 | メモリシステム及び電源回路 |
-
2021
- 2021-09-14 JP JP2021149340A patent/JP2023042175A/ja active Pending
-
2022
- 2022-02-14 TW TW111105273A patent/TWI834118B/zh active
- 2022-02-16 US US17/651,309 patent/US12046272B2/en active Active
- 2022-03-04 CN CN202210208507.0A patent/CN115810369A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202311969A (zh) | 2023-03-16 |
US20230091384A1 (en) | 2023-03-23 |
US12046272B2 (en) | 2024-07-23 |
CN115810369A (zh) | 2023-03-17 |
TWI834118B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314422B2 (en) | Non-volatile memory storage for multi-channel memory system | |
KR101876001B1 (ko) | 장치 내의 전력 관리를 위한 자원 할당 및 할당해제 | |
US11216367B2 (en) | Power-supply device and electronic device including the same | |
US10824344B2 (en) | Solid-state drive with non-volatile random access memory | |
US20150279463A1 (en) | Adjustable non-volatile memory regions of dram-based memory module | |
US20150153799A1 (en) | Startup Performance and Power Isolation | |
KR20170028096A (ko) | 보조 전원 검사 방법 및 이를 적용한 전자 장치 | |
KR20110015273A (ko) | 보조 전원 장치를 포함하는 사용자 장치 | |
TWI754871B (zh) | 記憶體系統及電源電路 | |
CN110781029A (zh) | 断电保护方法及系统 | |
JP2023042175A (ja) | メモリシステム及びメモリシステムの制御方法 | |
US11495290B2 (en) | Memory system and power supply circuit with power loss protection capability | |
KR102669752B1 (ko) | 호스트를 이용해 비정상 셧다운을 핸들링하기 위한 ssd 보조 배터리 전력 | |
JP2022165536A (ja) | メモリシステム |