JP2019053616A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2019053616A
JP2019053616A JP2017178224A JP2017178224A JP2019053616A JP 2019053616 A JP2019053616 A JP 2019053616A JP 2017178224 A JP2017178224 A JP 2017178224A JP 2017178224 A JP2017178224 A JP 2017178224A JP 2019053616 A JP2019053616 A JP 2019053616A
Authority
JP
Japan
Prior art keywords
controller
activation request
memory system
ssd
issued
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017178224A
Other languages
English (en)
Inventor
裕康 中塚
Hiroyasu Nakatsuka
裕康 中塚
実喜也 黒須
Mikiya Kurosu
実喜也 黒須
靖雄 工藤
Yasuo Kudo
靖雄 工藤
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.)
Kioxia Corp
Original Assignee
Toshiba Memory 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 Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2017178224A priority Critical patent/JP2019053616A/ja
Priority to US15/991,111 priority patent/US10795772B2/en
Publication of JP2019053616A publication Critical patent/JP2019053616A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/2015Redundant power supplies
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 低コストで信頼性の高い電源喪失保護が可能なメモリシステムを提供する。【解決手段】 メモリシステム30は、揮発性メモリ37と、不揮発性メモリ35と、第2コントローラ36を具備する。不揮発性メモリ35は、揮発性メモリ35上のデータを格納する。第2コントローラ36は、情報処理装置の第1コントローラによりメモリシステムへの電力の供給が停止されるであろうことが検出された場合、電力の供給が停止する前に、第1コントローラから発行された起動要求を受ける。第2コントローラ36は、起動要求が発行された後、キャンセル可能期間の経過後に揮発性メモリ37上のデータを不揮発性メモリ35に格納する不揮発化処理を開始させ、不揮発化処理が終了した場合、終了通知を第1コントローラ22に送信する。【選択図】図1

Description

本発明の実施形態は、例えば情報処理装置に適用され、不揮発性メモリを備えるメモリシステムに関する。
メモリシステムの一つとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。SSDは、様々なコンピューティングデバイスのメインストレージとして使用されている。
SSDにおいて、例えばフラッシュメモリへのデータの記録の途中でSSDへ供給される電力が喪失した場合、記録中のデータを喪失するリスクがある。このため、SSDは、例えばバックアップ用のコンデンサを具備し、SSDへ供給される電力が喪失した際、コンデンサに蓄えられた電力を利用することにより、記録途中のデータをフラッシュメモリに記録し、不揮発化する必要がある。
以下、電源喪失時に不揮発化されていないデータを保護することを電源喪失保護(power loss protection)と称し、PLPと略記することもある。
米国特許出願公開2015/0263518号公報 米国特許第9195293号公報 特開2017−49965号公報
しかし、廉価なシステムにおいて、電源喪失保護のために、バックアップ用のコンデンサを用いることは難しい。
本実施形態は、低コストで信頼性の高い電源喪失保護が可能なメモリシステムを提供しようとするものである。
実施形態のメモリシステムは、情報処理装置内に搭載することが可能なメモリシステムであって、揮発性メモリと、前記揮発性メモリ上のデータを格納する不揮発性メモリと、前記情報処理装置の第1コントローラにより前記メモリシステムへの電力の供給が停止されるであろうことが検出された場合、前記電力の供給が停止する前に、前記第1コントローラから発行された起動要求を受ける第2コントローラとを具備し、前記第2コントローラは、前記起動要求が発行された後、キャンセル可能期間の経過後に前記揮発性メモリ上のデータを前記不揮発性メモリに格納する不揮発化処理を開始させ、前記不揮発化処理が終了した場合、終了通知を前記第1コントローラに送信する。
本実施形態が適用されるメモリシステムを含む情報処理装置の一例を示す構成図。 第1実施形態に係るメモリシステムの動作を示すタイミングチャート。 第1実施形態に係るメモリシステムの動作を示すフローチャート。 本実施形態に適用されるメモリシステムがサポートする属性や能力の一例を示す図。 本実施形態に適用されるメモリシステムに設定される機能の一例を示す図。 本実施形態に適用されるメモリシステムに記録されるログの一例を示す図。 第2実施形態に係るメモリシステムの動作を示すタイミングチャート。 第3実施形態に係るメモリシステムの動作を示すタイミングチャート。 第3実施形態に係るメモリシステムの動作を示すフローチャート。 第4実施形態に係るメモリシステムの動作を示すタイミングチャート。 第4実施形態に係るメモリシステムの動作を示すフローチャート。 第5実施形態に係るメモリシステムの動作を示すタイミングチャート。 第5実施形態に係るエンベデッドコントローラの動作を示すフローチャート。 第6実施形態に係るメモリシステムの構成を示す構成図。 第7実施形態に係るメモリシステムの構成を示すものであり、図14の変形例を示す構成図。 第8実施形態に係るメモリシステムの構成を示すものであり、図15の変形例を示す構成図。 第9実施形態に係るメモリシステムの動作を示すタイミングチャート。 第10実施形態に係るメモリシステムの動作を示すタイミングチャート。
以下、実施の形態について、図面を参照して説明する。図面において、同一部分には同一符号を付している。
(構成)
図1は、各実施形態が適用されるメモリシステムを含む情報処理装置10の一例を示している。情報処理装置10は、例えばバッテリにより駆動されるノートブックコンピュータやタブレットコンピュータなどにより構成され、図示せぬディスプレイやキーボードを含んでいてもよい。
メモリシステムは、不揮発性メモリにデータを書き込み、不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスである。このメモリシステムは、例えば、NANDフラッシュメモリ35を備えたソリッドステートドライブ(SSD)30として実現される。
情報処理装置10は、ホスト20とSSD30とを含み、ホスト20は、メインコントローラ21とエンベデッドコントローラ(第1コントローラ)22、及びバッテリ23などを含んでいる。SSD30は、情報処理装置10の例えばメインストレージとして使用され、ホスト20によりアクセスされる。
ホスト20は、情報処理装置10の全体的な制御を行うものであり、例えばメインコントローラ21、エンベデッドコントローラ22、バッテリ23、電源スイッチ24を具備している。さらに、ホスト20は、図示せぬWi−Fiなどの通信装置を具備していてもよい。
メインコントローラ21は、例えばオペレーティングシステムやアプリケーションプログラムに従って情報を処理する。メインコントローラ21は、読み出し要求、又は書き込み要求などに応じてSSD30をアクセスするため、論理アドレスとしてのLBA(logical block address)を含むライトコマンドやリードコマンドなどのホストインターフェース(I/F)コマンドを発行する。
メインコントローラ21は、ライトコマンドを発行する場合、ライトコマンドとともに記録すべきデータをSSD30に供給し、リードコマンドを発行した場合、SSD30から供給されるデータを受信する。
メインコントローラ21は、ライトコマンドやリードコマンドを発行した後、例えばSSD30から書き込み処理や読み出し処理の完了通知(completion)を受ける。
エンベデッドコントローラ22は、例えばCPU22aを有し、エンベデッドコントローラ22の動作は、CPU22aにより制御される。
エンベデッドコントローラ22は、情報処理装置10の電源を制御する。すなわち、エンベデッドコントローラ22は、バッテリ23の残量を検出し、電源スイッチ24の操作を検出してホスト20の各部やSSD30への電力供給を制御する。
さらに、エンベデッドコントローラ22は、電源喪失を検出すると、後述する電源喪失保護(PLP)処理を起動するための起動(initiate)要求(I)をSSD30に供給する。さらに、エンベデッドコントローラ22は、起動要求(I)をSSD30に発行した後、SSD30から供給されるフィードバック(feedback)信号(F)を受け、フィードバック信号(F)がPLP処理の終了を示す場合、バッテリ23からSSD30への電力の供給を停止する。
ここで、電源喪失とは、図示せぬ外部電源や電源としてのバッテリ23からSSD30に電力が供給されなくなる可能性があることを言う。
電源喪失に至る原因は、情報処理装置10の電源の正常なシャットダウン及び不正なシャットダウンを含む。不正なシャットダウンは、ユーザによる不意の電源スイッチ操作によるシャットダウンを含む。
エンベデッドコントローラ22は、情報処理装置10の電源の正常なシャットダウン及び不正なシャットダウンに拘らず、電源スイッチ24の操作や、バッテリ23の電力低下に基づき、電源喪失を検出すると、SSD30への電力供給を停止する前に、SSD30に対してPLP処理を起動するための起動要求(I)を発行する。
バッテリ23は、例えばリチウム・イオン・バッテリであり、図示せぬ外部電源により充電される。バッテリ23は、ホスト20の各部及びSSD30に電力を供給する。
ホスト20の構成は、これに限定されるものではなく、変形可能である。
一方、SSD30は、ホスト20から電力が供給され、ホスト20の要求に応じて動作する。
SSD30は、メインコントローラ21から論理アドレスにより指定されたユーザデータの読み出し要求、又は書き込み要求などを受け付ける。SSD30は、書き込み要求の場合、メインコントローラ21から受けたデータを、ライトバッファ33cを介してNANDフラッシュメモリ35に保存し、読み出し要求の場合、NANDフラッシュメモリ35に保存されたデータを、リードバッファ33dを介してメインコントローラ21に送信する。
SSD30は、例えばホストインターフェース(以下、ホストI/Fと称す)31、フロントエンド32、バックエンド33、NANDコントローラ34、NANDフラッシュメモリ35、PLPコントローラ(第2コントローラ)36を具備している。
ホストI/F31、フロントエンド32、バックエンド33、NANDコントローラ34、PLPコントローラ36は、例えばコントローラ39に含まれていても良い。コントローラ39は、例えばSoC(System on a Chip)により構成される。
ホストI/F31は、ホスト20とSSD30とを接続するためのインターフェースであり、例えばSCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)(登録商標)、Ethernet(登録商標)、Fibre channel、NVM Express(NVMe)(登録商標)等の規格に準拠したインターフェースを適用することが可能である。
フロントエンド32は、ホストI/F31を介してメインコントローラ21との間で、ホストI/Fコマンドを受信処理し、データを送受信する。フロントエンド32は、例えばCPU32a及びコマンドキュー32bを含み、主としてホストI/Fコマンドを処理する。フロントエンド32の機能は、CPU32a上で実行されるソフトウェア(ファームウエア)によって実現される。フロントエンド32の機能は、ハードウェアにより実現することも可能である。
コマンドキュー32bは、複数のコマンドを蓄積可能なキュー構造を有し、メインコントローラ21からホストI/Fコマンドを受け取り、コマンドの種類がユーザデータの読み出し要求、又は書き込み要求である場合、コマンドをバックエンド33に転送する。また、フロントエンド32のCPU32aは、バックエンド33のCPU33aと協動して、ライトバッファ33cとメインコントローラ21との間、及びリードバッファ33dとメインコントローラ21との間においてデータを転送する。
バックエンド33は、例えばCPU33a、コマンドキュー33b、揮発性メモリとしての例えばダイナミック・ランダム・アクセス・メモリ(DRAM)37、及び揮発性メモリにより構成されたライトバッファ33c及びリードバッファ33dを含んでいる。
バックエンド33の機能は、CPU33a上で実行されるファームウエアにより実現される。バックエンド33の機能は、ハードウェアにより実現することも可能である。バックエンド33は、ホストI/FコマンドをNANDフラッシュメモリ35に対するコマンドに変換して各種処理を実行する制御部として機能する。
バックエンド33は、例えば次のような処理を実行する。
・メインコントローラ21から供給される書き込み要求、読み出し要求等の各種コマンドへの応答。
・NANDフラッシュメモリ35内の不要な領域を整理するガベージコレクションによるデータの読み出しと書き込み。
・メインコントローラ21から供給される論理アドレスをNANDフラッシュメモリ35の物理アドレスへ変換。
・DRAM37内のアドレス変換テーブル37aなどの管理情報の更新。
・SSD30への電力の供給が停止される際、DRAM37において更新され、NANDフラッシュメモリ35において更新されていないデータ(例えばアドレス変換テーブル)、及びホスト20に完了通知が送信され、NANDフラッシュメモリ35に保存されていないライトバッファ33c内のデータをNANDフラッシュメモリ35に保存する不揮発化処理。
さらに、バックエンド33は、本実施形態に係る次の機能を含んでいる。
PLP処理の内容は、不揮発化処理とほぼ同様であり、さらに、後述する実施形態で説明する処理を含む。
DRAM37は、例えばアドレス変換テーブル37aなどを格納する。アドレス変換テーブル37aは、メインコントローラ21から供給される論理アドレスとしてのLBAと、NANDフラッシュメモリ35上に記録されたデータの位置(ブロックアドレス+ブロック内のページアドレス)との対応を示すテーブルである。
DRAM37は、CPU33aにより、管理される。アドレス変換テーブル37aは、SSD30への電力の供給が停止されるとき、NANDフラッシュメモリ35に保存される。SSD30が起動されると、アドレス変換テーブル37aは、NANDフラッシュメモリ35からDRAM37に読み出される。DRAM37上のアドレス変換テーブル37aは、定期的に又は電力の供給停止時に、NANDフラッシュメモリ35に退避され、保存される。
コマンドキュー33bは、複数のコマンドを蓄積可能なキュー構造を有している。CPU33aは、フロントエンド32から受け取ったコマンドに関して、DRAM37上のアドレス変換テーブル37aを用いて、LBAをNANDフラッシュメモリ35上の物理アドレスに変換する。変換された物理アドレスを含むコマンドキュー33b内のリードコマンド又はライトコマンドは、順次NANDコントローラ34に供給される。
NANDコントローラ34は、バックエンド33から発行されたコマンドに基づき、NANDフラッシュメモリ35への書き込み、読み出し、及び消去を制御する。
NANDフラッシュメモリ35は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有している。個々のメモリセルは上位ページ及び下位ページを使用して多値データを記憶することが可能である。データの書き込み及び読み出しは、ページ単位に実行される。NANDフラッシュメモリ35は、複数のブロックにより構成され、ブロックは、複数のページによって構成されている。ブロックは、データの消去単位である。また、1ページは、複数のセクタデータにより構成されている。セクタは、ホストによる最小のアクセス単位である。
NANDフラッシュメモリ35は、2次元構造であってもよいし、3次元構造であってもよい。
PLPコントローラ36は、例えばCPU36aを有し、CPU36aによりPLPコントローラの動作が制御される。
PLPコントローラ36は、エンベデッドコントローラ22から発行される起動(initiate)信号(I)を受け、バックエンド33に電源喪失保護(PLP)処理の開始を指示する。起動要求(I)は、電源喪失が検出された場合、エンベデッドコントローラ22から発行される。
PLPコントローラ36は、PLP処理の開始及び終了をフィードバック信号(F)により、エンベデッドコントローラ22に通知する。
PLP処理が終了するまで、ホスト20のバッテリ23からSSD30に電力が供給される。このため、SSD30は、バックアップ用のコンデンサを具備する必要がなく、低コスト化が可能である。
起動要求(I)及びフィードバック信号(F)は、SSD30に設けられたピン38−1、38−2を用いて通信される。ピン38−1、38−2は、SSD30に設けられた複数のピンのうち、例えばインターフェース規格では規定されていないピンで良い。起動要求(I)及びフィードバック信号(F)に使用されるピンは、後述するように、ホスト20により割り当てられる。
SSD30の構成は、図1に限定されるものではない。例えばPLPコントローラ36は、例えばバックエンド33に含めることが可能であり、NANDコントローラ34もバックエンド33に含めることが可能である。DRAM37は、バックエンド33と別体としてもよい。また、揮発性メモリは、DRAM37に限定されるものではなく、スタティック・ランダム・アクセス・メモリ(SRAM)などのメモリを適用することも可能である。さらに、不揮発性メモリは、NANDフラッシュメモリ35に限定されるものではなく、抵抗変化メモリや磁気ランダム・アクセス・メモリ(MRAM)などのメモリを適用することも可能である。
(第1実施形態)
図2は、第1実施形態に係るPLPコントローラ36の動作を示すタイミングチャートである。図2において、起動要求(I)は、例えばハイアクティブ、フィードバック信号(F)は、例えばローアクティブである。起動要求(I)の極性、及びフィードバック信号(F)が出力されるピンの属性は、後述するように、ホスト20により設定され、変更可能である。
図3は、PLPコントローラ36に設けられたCPU36aの動作の一例を示している。
図2、図3を参照して第1実施形態の動作について説明する。
エンベデッドコントローラ22は、電源喪失を検出すると、図2に示すように、PLP処理を起動するための起動要求(I)をSSD30に発行する。すなわち、起動要求(I)をローレベル‘L’からハイレベル‘H’に変化させる。
SSD30のPLPコントローラ36は、図3に示すように、起動要求(I)が発行されたことを検出すると(S11、YES)、キャンセル可能期間、例えば1msが経過したかどうかを判断する(S12)。このキャンセル可能期間は、後述するように、例えば最大値又は最小値の範囲内でホスト20により設定され、変更可能である。
PLPコントローラ36により、キャンセル可能期間が経過したものと判断された場合(S12、YES)、PLPコントローラ36は、起動要求(I)が発行されているかどうかを判断する(S13)。
この結果、起動要求(I)が発行されている場合(S13、YES)、PLPコントローラ36は、フィードバック信号(F)をハイレベルからローレベル“L”に下げ、エンベデッドコントローラ22に送信し、バックエンド33にPLP処理を指示する(S14)。
バックエンド33は、PLPコントローラ36からの指示に基づき、PLP処理を実行する。
PLP処理が終了すると(S15、YES)、PLPコントローラ36は、図2に示すように、フィードバック信号(F)をローレベル“L”からハイレベル“H”に上げ、エンベデッドコントローラ22に送信する(S16)。
エンベデッドコントローラ22は、フィードバック信号(F)がハイレベル“H”となると、図2に示すように、バッテリ23を切り、SSD30への電力の供給を停止する。
(実装例)
上記PLP処理を可能とするための実装例について説明する。この実装例は、例えばNVMe規格に従ったものであり、例えば他のインターフェースを用いた実装も可能である。
図4は、例えばリストとして記録されるSSD30がサポートする属性や能力(capability)を示している。
・PLP処理のサポートの有無
・キャンセル可能期間の設定可能な最大値及び最小値
・PLP処理に必要な時間の典型値及びワースト値(最大値)
PLP処理に必要な時間は、SSDに応じて様々である。このため、殆どのケースで当てはまる通常的な値が典型値として、また、最悪のケースを想定したワースト値が設定されている。
ホスト20は、例えばIdentifyコマンドを用いて、SSD30が備えるこれらの機能を知ることができる。
図5は、SSD30に設定される機能を示している。
ホスト20は、例えばSetFeatureコマンドを用いて、SSD30に対して、図5に示す次の機能を設定することができる。
・PLP処理のオン又はオフの設定、及びPLP処理モードの設定
・起動要求(I)を受けるピンの割り当ての設定
・起動要求(I)極性の設定
・フィードバック信号(F)のピンの割り当ての設定
・フィードバック信号(F)を出力するピンの属性の設定
・キャンセル可能期間の設定
すなわち、ホスト20は、Identifyコマンドを用いてSSD30から取得したPLP処理をサポートしているかどうかを示す表示に基づき、PLP処理をオン又はオフに設定することにより、PLP処理を利用するかしないかを設定することができる。
また、PLP処理を利用する場合においては、PLP処理モードを選択することもできる。すなわち、例えばPLP処理時間が長い第1モードと、PLP処理時間が短い第2モードを選択できる。第1モードにおいては、例えば、不揮発化するデータについて、読み出し時に読み出しやすいようにデータの整理を行ってから不揮発化を行う。この場合、SSD30に電力が再度供給されるようになった後、当該データの読み出しを高速に行うことができる。第2モードにおいては、例えば、不揮発化処理にかかる時間を短くすることを優先するため、不揮発化するデータの整理を行わない。この場合、SSD30に電力が再度供給されるようになった後、当該データの読み出しには第1モードよりも時間がかかる場合がある。ホスト20はSetFeatureコマンドで、これらのモードを選択することができる。
ホスト20は、SSD30において、起動要求(I)、及びフィードバック信号(F)に使用するピンを割り当てることができる。
ホスト20は、起動要求(I)の極性を、ハイアクティブ又はローアクティブに設定することができる。
ホスト20は、フィードバック信号(F)を出力するピンの属性を、オープン・ドレイン又はプッシュプルに設定することができる。
ホスト20は、Identifyコマンドを用いてSSD30から取得した最大値と最小値の範囲内で、適正なキャンセル可能期間を設定することができる。
さらに、図6に示すように、SSD30は、例えばPLP処理が完了(complete)した回数及び未完了(incomplete)の回数を、例えばNANDフラッシュメモリ35内にログ(log)として記録してもよい。
ホスト20は、例えばGetLogコマンドを用いて、NANDフラッシュメモリ35に記録されたログを取得することができる。PLP処理の未完了の回数が多い場合、PLP処理が終了する以前に電力の供給が停止されているため、PLP処理が失敗したと見做すことができ、PLPが有効に機能していないことが分る。
この場合、起動要求(I)の発行タイミングを調整することにより、PLP処理が失敗する回数を低減することができ、情報処理装置10の安定な動作を担保することができる。具体的には、ホスト20は、例えばIdentifyコマンドを用いて、SSD30から図4に示すPLP処理時間のワースト値を取得し、起動要求(I)の発行からSSD30への電力の供給が停止されるまでがワースト値以上あるように、起動要求(I)の発行タイミングを制御することができる。
(第1実施形態の効果)
上記第1実施形態によれば、エンベデッドコントローラ22は、電源喪失を検知した場合、SSD30への電力供給を遮断する前に、PLP処理の起動要求(I)を発行する。起動要求(I)を受けたSSD30は、キャンセル可能期間が経過した後、起動要求(I)が継続して発行されている場合、PLP処理を開始する。このため、SSD30内において、不揮発化されていないデータをNANDフラッシュメモリ35に書き込むことができる。したがって、SSD30及びSSD30が適用される情報処理装置10の信頼性を向上することができる。
しかも、エンベデッドコントローラ22により電源喪失が検出された場合、SSD30は、PLP処理が終了するまで、ホスト20から電力供給を受けている。このため、SSD30はバックアップ用のコンデンサを具備する必要がなく、電源喪失保護のために追加コストを必要としない。したがって、低コストで信頼性の高いSSD30を提供できる。
また、起動要求(I)及びフィードバック信号(F)は、ホスト20からSetFeatureコマンドを用いて、SSD30のピンに割り当てることができる。このため、SSD30が適用されるシステムに合わせて、ピンの割り当てを変更することができる。したがって、容易にシステムを構築することができる。
さらに、起動要求(I)の極性は、ホスト20からSetFeatureコマンドを用いて、変更可能とされている。したがって、SSD30が適用されるシステムに合わせて、起動要求(I)の極性を容易に変更することが可能である。
また、起動要求(I)の発行タイミングは、PLP処理時間のワースト値を確認して、調整することが可能である。このため、SSD30への電力の供給が停止するまでに確実にPLP処理を終了することが可能である。
さらに、NANDフラッシュメモリ35のログに記録されたPLP処理の未完了の回数に基づき、起動要求(I)の発行タイミングを調整することが可能とされている。このため、PLP処理の未完了の回数を低減でき、SSD30が適用されるシステムを安定に保つことができる。
(第2実施形態)
図7は、第2実施形態の動作を示している。
第1実施形態においては、起動要求(I)が発行された後、キャンセルがされていないときの態様が示された。
第2実施形態においては、エンベデッドコントローラ22が起動要求(I)を発行した後、キャンセル可能期間内で、起動要求(I)がキャンセルされる場合の態様が示される。ホスト20は、Identifyコマンドを発行することにより、図4に示すキャンセル可能期間の最大値及び最小値を取得することができる。エンベデッドコントローラ22は、取得したキャンセル可能期間の最大値と最小値の範囲内でキャンセル可能期間を設定し、発行した起動要求(I)をキャンセルすることができる。
図7、図3を参照して第2実施形態の動作について説明する。
図7に示すように、エンベデッドコントローラ22は、電源喪失を検出すると、起動要求(I)を発行し、PLPコントローラ36に供給する。しかし、例えば電源スイッチ24の操作時間が規定値に達しない等の場合、外部電源や電源としてのバッテリ23からSSD30に電力が供給されなくなる可能性が低い。このため、エンベデッドコントローラ22は、一度はSSD30に電力が供給されなくなる可能性があると判断するに至ったが、その後、SSD30への電力の供給が停止されなくなったと判断し、起動要求(I)をハイレベルからローレベルに下げてキャンセルする。起動要求(I)のキャンセルは、キャンセル可能期間内に行われる。
SSD30のPLPコントローラ36は、図3に示すように、起動要求(I)が発行され(S11、YES)、キャンセル可能期間が経過しとき(S12、YES)、起動要求(I)がハイレベルかどうか判断する(S13)。この結果、起動要求(I)がローレベルであるである場合(図3、S13、NO)、起動要求(I)がキャンセルされたと判断する。このため、PLPコントローラ36は、PLP処理を起動せず、フィードバック信号(F)は、ハイレベルに保持される。したがって、エンベデッドコントローラ22は、情報処理装置10の電源を保持するため、情報処理装置10は、動作状態を維持する。
(第2実施形態の効果)
上記第2実施形態によれば、エンベデッドコントローラ22は、SSD30に電力が供給されなくなる可能性があると判断するに至ったが、その後、SSD30への電力の供給が停止されなくなったと判断した場合、発行した起動要求(I)をキャンセル可能期間内にキャンセル可能としている。このため、無用なPLP処理を回避することができ、情報処理装置10の動作状態を維持することが可能である。
(第3実施形態)
図8、図9は、第3実施形態の動作を示している。
上記第2実施形態は、起動要求(I)を発行した後、キャンセル可能期間内に起動要求(I)をキャンセル可能としている。
第3実施形態は、キャンセルした起動要求(I)をキャンセル可能期間内に再度発行可能とする。
図8、図9を参照して第3実施形態の動作について説明する。
エンベデッドコントローラ22は、SSD30に電力が供給されなくなる可能性があること判断するに至ったが、その後、SSD30への電力の供給が停止されなくなったと判断した場合、起動要求(I)をキャンセルした。しかし、再度、電源喪失を予告すべき要因が発生した場合などにおいて、エンベデッドコントローラ22は、図8に示すように、キャンセルした起動要求(I)を、キャンセル可能期間内で再度発行する。
図9に示すように、PLPコントローラ36は、起動要求(I)が発行された後(S11、YES)、キャンセル可能期間が経過したかどうかを判断する(S21)。この結果、キャンセル可能期間が経過していない場合(S21、NO)、起動要求(I)が発行されているかが判別される(S22)。この結果、起動要求(I)が発行されていない(キャンセルされた)と判断された場合(S22、NO)、例えば起動要求(I)がキャンセルされたことを示すフラグがセットされ(S23)、再度キャンセル可能期間が経過したかどうかが判断される(S21)。
S22において、起動要求(I)が発行されていると判断された場合(S22、YES)、フラグがセットされているかどうかが判断される(S24)。この結果、S24において、フラグがセットされていると判断された場合(S24、YES)、フラグをクリアし(S25)、キャンセル可能期間の測定をリセットする(S26)。この後、再度キャンセル可能期間が経過したかどうかが判断される(S21)。
一方、フラグがセットされていない場合(S24、NO)、再度キャンセル可能期間が経過したかどうかが判断される(S21)。この結果、キャンセル可能期間が経過した場合(S21、YES)、起動要求(I)が発行されているかどうかが判別される(S13)。この結果、起動要求(I)が発行されている場合(S13、YES)、フィードバック信号(F)がローレベルとされ、PLP処理が開始される(S14)。以降の動作、及びS13、NOの場合の動作は、第2実施形態と同様である。
(第3実施形態の効果)
上記第3実施形態によれば、起動要求(I)を発行した後、キャンセル可能期間内に再度起動要求(I)が発行された場合、PLP処理が開始される。このため、エンベデッドコントローラ22により、起動要求(I)がキャンセルされた後、再発行された場合においても、PLP処理を確実に実行することが可能である。したがって、情報処理装置10の信頼性を向上することが可能である。
(第4実施形態)
図10、図11は、第4実施形態の動作を示している。
第3実施形態は、発行された起動要求(I)が、キャンセル可能期間内にキャンセルされ、その後、キャンセル可能期間内に起動要求(I)が再度発行される場合について説明した。
第4実施形態は、発行した起動要求(I)をキャンセル可能期間内にキャンセルした場合において、キャンセル可能期間が経過した後、電源喪失が再度検出された場合、起動要求(I)を再度発行可能としている。
図10に示すように、エンベデッドコントローラ22により起動要求(I)が発行され、キャンセル可能期間が経過する前に、起動要求(I)をキャンセルした場合、エンベデッドコントローラ22は、キャンセル可能期間が経過した後、起動要求(I)を再度発行することができる。
図11を参照して、キャンセル可能期間内にキャンセルされた起動要求(I)がキャンセル可能期間の経過後に再度発行された場合の動作について説明する。
図11に示すように、SSD30のPLPコントローラ36は、エンベデッドコントローラ22から起動要求(I)が発行されると(S11、YES)、キャンセル可能期間が経過したかどうかを判断する(S21)。キャンセル可能期間(S21、NO)内に起動要求(I)がキャンセルされた場合(S22、NO)、起動要求(I)がキャンセルされたことを示すフラグをセットする(S23)。
S21において、キャンセル可能期間が経過したと判断された場合(S21、YES)、フラグがセットされているかどうかが判断される(S27)。この結果、フラグがセットされている場合(S27、YES)、フラグをクリアし(S28)、制御がS11に移行され、起動要求(I)が発行されたかどうかが再度判断される。この結果、起動要求(I)が発行されている場合(S11、YES)、再度、キャンセル可能期間が経過しているかどうかが判断される(S21)。以降の動作は、第2実施形態及び第3実施形態と同様である。
(第4実施形態の効果)
上記第4実施形態によれば、SSD30に起動要求(I)を発行して、電源喪失を予告したが、予告すべき要因が誤りであったと判明し、キャンセル可能期間内に起動要求(I)がキャンセルされた場合において、キャンセル可能期間を経過した後、再度、電源喪失を予告すべき要因が発生した場合、起動要求(I)が再度発行される。このように、起動要求(I)が再度発行された場合においても、PLP処理を可能としている。このため、確実にPLP処理を起動させることができ、情報処理装置10の信頼性を向上することが可能である。
(第5実施形態)
図12、図13は、第5実施形態の動作を示している。
上記第3実施形態及び第4実施形態は、電源喪失に起因して起動要求(I)を再発行する場合について説明した。
第5実施形態は、ホスト20から起動要求(I)が発行された後、SSD30の原因により、PLP処理が開始できなかった場合、起動要求(I)が再発行される場合について説明する。
図12に示すように、エンベデッドコントローラ22から起動要求(I)が発行され、キャンセル可能期間が経過してもフィードバック信号(F)がハイレベルのままである場合、エンベデッドコントローラ22は、SSD30において、PLP処理が開始されていないことを知ることができる。この場合、エンベデッドコントローラ22は、発行した起動要求(I)をキャンセルし、再度、起動要求(I)を発行する。
図13に示すように、エンベデッドコントローラ22は、起動要求(I)を発行すると(S31)、キャンセル可能期間が経過したかどうかを判断する(S32)。この結果、キャンセル可能期間が経過した場合(S32、YES)、フィードバック信号がローレベルであるかどうかを判断する(S33)。フィードバック信号がローレベルではない場合(S33、NO)、起動要求(I)がキャンセルされ(S35)、起動要求(I)が再度発行される(S31)。
一方、S33において、フィードバック信号がローレベルであると判断された場合(S33、YES)、フィードバック信号がハイレベルであるかどうかが判別される(S34、NO)。フィードバック信号がハイレベルである場合(S34、YES)、SSD30への電力の供給を停止する(S36)。
SSD30のPLPコントローラ36は、最初に発行された起動要求(I)を受け付けたもののPLP処理を実行できなかった場合、又は、最初に発行された起動要求(I)を受け付けることができなかった場合、再度発行された起動要求(I)に従って、例えば図9に示すような動作に従って、PLP処理を実行する。
(第5実施形態の効果)
上記第5実施形態によれば、SSD30の原因により、発行された起動要求(I)に対してPLP処理を開始できなかった場合、エンベデッドコントローラ22により、起動要求(I)を再度発行している。このため、電源喪失時、確実にPLP処理を実行することができ、情報処理装置10の信頼性を向上することが可能である。
(第6実施形態)
上記各実施形態は、起動要求(I)をキャンセルする場合、起動要求(I)をハイレベルからローレベルに切換えた。しかし、これに限らず、起動要求(I)をハイレベルとした後、ホスト20から起動要求(I)のキャンセルを示すキャンセル要求(C)をSSD30に供給してもよい。SSD30は、キャンセル要求(C)を受けた場合、PLP処理が実行されないように実装することも可能である。
図14は、第6実施形態の構成を示している。
第6実施形態において、情報処理装置10は、例えば3つのSSD30−1、30−2、30−3を具備している。SSDの数は、3つに限定されるものではなく、1つ又は2つ或は4つ以上であってもよい。さらに、全てSSDである必要はなく、SSDと例えばハードディスクドライブ(HDD)などの組み合わせであってもよい。
図12において、エンベデッドコントローラ22から発行された起動要求(I)は、例えば配線41に供給される。配線41には配線42、43が接続されており、起動要求(I)は、配線41、42、43を用いてSSD30−1、30−2、30−3にそれぞれ送信される。
SSD30−1、30−2、30−3のそれぞれから配線51、52、53を用いて出力されるフィードバック信号(F)は、例えば配線51に集められ、エンベデッドコントローラ22に送信される。すなわち、配線51、52、53は、例えばワイヤード・オア回路を構成し、配線51のフィードバック信号(F)は、ワイヤード・オア回路の出力信号としてエンベデッドコントローラ22に送信される。
SSD30−1、30−2、30−3の配線51、52、53が接続されるピン38−2の属性は、例えばオープン・ドレイン(open-drain)に設定されている。
配線51は、プルアップ抵抗61によりハイレベルに保持されており、配線51、52、53の少なくとも1つがローレベルとなると、配線51によりエンベデッドコントローラ22へ、ローレベルのフィードバック信号(F)を送信することができる。
ピンの属性としてのオープン・ドレイン(open-drain)、又はプッシュ・プル(push-pull)は、ホスト20から例えばSetFeatureコマンドを用いて設定することができる。
さらに、例えばホスト20とSSD30−1、30−2、30−3は、配線71、72、73により接続される。配線71、72、73は、SSD30−1、30−2、30−3の例えば空きピン38−3に接続される。
起動要求(I)をキャンセルするためのキャンセル要求(C)は、専用の配線71、72、73を用いて、SSD30−1、30−2、30−3に送信される。キャンセル要求(C)は、例えばPCIeコマンド、又はSMBus(System Management Bus)コマンドを用いて発行される。
キャンセル要求(C)は、エンベデッドコントローラ22から発行してもよいし、メインコントローラ21から発行してもよい。
図14は、SSD30−1、30−2、30−3への電力の供給が選択的に制御可能とされており、例えばSSD30−1の電力の供給が停止され、SSD30−2、SSD30−3は、バッテリ23から電力が継続して供給される場合を想定している。
電源喪失が検知された場合、起動要求(I)は、電力の供給が停止されるSSD30−1だけではなく、SSD30−2、SSD30−3にも送信される。電力が継続して供給されるSSD30−2、SSD30−3は、PLP処理の必要がない。このため、起動要求(I)をキャンセルするためのキャンセル要求(C)がSSD30−2、SSD30−3に送信され、SSD30−1には、キャンセル要求(C)が送信されない。
キャンセル要求(C)を受けたSSD30−2及びSSD30−3は、起動要求(I)がキャンセルされたものと判断し、キャンセル可能期間が経過し、起動要求(I)がハイレベルであっても、PLP処理を実行しない。
一方、キャンセル要求(C)を受けないSSD30−1は、キャンセル可能期間が経過したとき、起動要求(I)がハイレベルである。このため、配線51のフィードバック信号(F)をローレベルとして、PLP処理を実行する。
SSD30−1は、PLP処理が終了すると、配線51のフィードバック信号(F)のローレベル維持を解除する。
エンベデッドコントローラ22は、フィードバック信号(F)をモニタすることにより、SSD30−1、SSD30−2、SSD30−3の少なくとも1つにおいて、PLP処理が開始されたこと、及びSSD30−1、SSD30−2、SSD30−3の全てにおいて、PLP処理が終了状態にあることを検知できる。
(第6実施形態の効果)
上記第6実施形態によれば、起動要求(I)のキャンセルを、起動要求(I)とは別のキャンセル要求(C)により行っている。このため、複数のSSD30−1、30−2、30−3が実装され、これらSSD30−1、30−2、30−3に共通に起動要求(I)を発行する場合において、PLP処理を実行するSSDと実行しないSSDを選択的に指定することができる。
また、SSD30−1、30−2、30−3のフィードバック信号(F)は、配線51に集められ、配線51を用いてホスト20に通知される。このため、複数のSSD30−1、30−2、30−3を用いる場合において、ホスト20とSSD30−1、30−2、30−3との間の配線数を削減できる。
(第7実施形態)
図15は、第7実施形態の構成を示している。
第7実施形態は、第6実施形態の変形例を示している。第6実施形態において、エンベデッドコントローラ22から発行された起動要求(I)は、配線41に供給され、配線41、及び配線41に接続された配線42、配線43を用いてSSD30−1、30−2、30−3に送信された。
これに対して、第7実施形態において、配線41、配線42、配線43は、それぞれエンベデッドコントローラ22とSSD30−1、30−2、30−3の間に接続されている。エンベデッドコントローラ22から発行された起動要求(I)は、配線41、配線42、配線43を用いてSSD30−1、30−2、30−3にそれぞれ送信される。その他の構成は、第6実施形態と同様である。
尚、第7実施形態において、キャンセル要求(C)は、必須の構成ではなく、省略することも可能である。
(第7実施形態の効果)
上記第7実施形態によれば、エンベデッドコントローラ22は、SSD30−1、30−2、30−3に起動要求(I)を選択的に発行することができ、キャンセル要求(C)をSSD30−1、30−2、30−3に選択的に発行することができる。このため、複数のSSD30−1、30−2、30−3が実装される場合において、PLP処理を実行すべきSSDと、PLP処理を実行しないSSDを選択的に指定することができる。
しかも、例えば電源喪失時、SSD30−1、30−2、30−3の全てにPLP処理を実行する必要がある場合、SSD30−1、30−2、30−3に起動要求(I)を選択的に発行することができる。このため、SSD30−1、30−2、30−3それぞれのPLP処理時間のワースト値に従って起動要求(I)を発行すべきSSD30−1、30−2、30−2を選択することも可能である。
さらに、SSD30−1、30−2、30−3それぞれのPLP処理に要する時間を考慮して、起動要求(I)を発行すべきSSD30−1、30−2、30−3を選択することも可能である。例えばバッテリ23の残量が少ない場合、PLP処理を短時間で実行できるSSDにのみ起動要求(I)を発行し、PLP処理に長時間を要するSSDにはPLP処理をさせることをあきらめ、起動要求(I)を発行しないように制御することが可能である。PLP処理に要する時間は、ホスト20からIdentifyコマンドを発行し、図4に示すPLP処理のワースト値を取得すればよい。
(第8実施形態)
図16は、第8実施形態の構成を示している。
第8実施形態は、第7実施形態の変形例を示している。第7実施形態において、SSD30−1、30−2、30−3から出力されるフィードバック信号(F)は、配線51、52、53により構成されたワイヤード・オア回路を通り、配線51によりエンベデッドコントローラ22に送信された。
これに対して、第8実施形態において、配線51、配線52、配線53は、それぞれエンベデッドコントローラ22とSSD30−1、30−2、30−3の間に接続されている。SSD30−1、30−2、30−3から出力されたフィードバック信号(F)は、配線51、配線52、配線53を用いてエンベデッドコントローラ22にそれぞれ送信される。配線51、配線52、配線53には、それぞれプルアップ抵抗61が接続されている。
尚、ピンの属性がプッシュプルの場合、プルアップ抵抗61は、省略することが可能である。その他の構成は、第7実施形態と同様である。
(第8実施形態の効果)
上記第8実施形態によれば、SSD30−1、30−2、30−3から出力されたフィードバック信号(F)は、配線51、配線52、配線53を用いてエンベデッドコントローラ22にそれぞれ送信することができる。このため、複数のSSD30−1、30−2、30−3が実装される場合において、エンベデッドコントローラ22は、SSD30−1、30−2、30−3から出力されるフィードバック信号(F)により、SSD30−1、30−2、30−3のPLP処理の実行状況をそれぞれ検知することができる。したがって、確実に情報処理装置10の電源をシャットダウンすることが可能である。
(第9実施形態)
図17は、第9実施形態の動作を示している。
通常、SSD30への電力の供給が停止される場合、SSD30の揮発性メモリ内のデータを迅速に不揮発化する必要がある。一方、ホスト20への電力の供給が停止される時、ホスト20の揮発性メモリ内のデータをSSD30に保存する必要もある。
図17に示す第9実施形態において、ホスト20は、ホスト20の揮発性メモリ内のデータをSSD30に保存するため、キャンセル可能期間内に、例えばシステム保持に必要な最低限のデータを書き込むことを明示したライト要求(システムライト要求と称す)を発行する。
システムライト要求は、例えば次のようなライトである。
・ブート・パーティション・ライト(Boot Partition Write)
・FUA(Force Unit Access)付きで高優先度付きのライト
・PCIeのBAR(Base Address Register)で定義した特別な領域へのライト
SSD30のPLPコントローラ36は、キャンセル可能期間内にホスト20からシステムライト要求を受信した場合、PLP処理において、システムライト要求を実行する。システムライト要求を含むPLP処理が終了した場合、フィードバック信号(F)をハイレベルとして、ホスト20にPLP処理の終了を通知する。
(第9実施形態の効果)
上記第9実施形態によれば、エンベデッドコントローラ22から起動要求(I)が発行された後、キャンセル可能期間内にホスト20からシステムライト要求が発行された場合、SSD30のPLPコントローラ36は、PLP処理において、システムライト要求に係るデータをPLP処理の対象データとしている。このため、ホスト20への電力の供給が停止される時に、ホスト20の揮発性メモリ内のデータをSSD30に保存することが可能である。したがって、情報処理装置10の信頼性を向上することが可能である。
(第10実施形態)
図18は、第10実施形態の動作を示している。
SSD30は、例えばユーザデータを書き込むためのライト要求やシステムライト要求を受け付け、ライトバッファ33cにデータを受信し終わると、ホスト20に書き込みが完了したことを示す完了通知(completion)を送信する。しかし、この時点において、NANDフラッシュメモリ35へのデータの書き込みが完了しているとは限らない。このため、NANDフラッシュメモリ35へのデータの書き込みが完了する以前にSSD30への電力の供給が停止されると、データの不整合が生じる。したがって、完了通知をホスト20に通知したライト要求は、不揮発化処理の対象とされ、PLP処理によってNANDフラッシュメモリ35へのデータの書き込みが完了される。
一方、SSD30によりライト要求を受け付けたものの、完了通知をホスト20に通知していないライト要求は、不揮発化処理の対象とされていなかった。
第10実施形態は、エンベデッドコントローラ22から起動要求(I)が発行された後、キャンセル可能期間内にホスト20から発行されたライト要求は、完了通知の送信、未送信に関わらず、PLP処理の対象に含めるようにしている。
図18に示すように、SSD30は、エンベデッドコントローラ22から起動要求(I)が発行された後、キャンセル可能期間内にホスト20から発行されたライト要求を受付けた場合、SSD30は、PLP処理の対象に含め、ライト要求を実行し、完了通知(completion)を送信する。ライト要求を含むPLP処理が終了した場合、フィードバック信号(F)をハイレベルとして、ホスト20にPLP処理の終了を通知する。
(第10実施形態の効果)
上記第10実施形態によれば、エンベデッドコントローラ22から起動要求(I)が発行された後、キャンセル可能期間内にホスト20から発行されたライト要求は、完了通知の送信、未送信に関わらず、PLP処理の対象に含めるようにしている。このため、SSD30への電力の供給が停止される時に、起動要求(I)が発行される前には不揮発化の対象ではなかったデータをNANDフラッシュメモリ35に保存することが可能である。したがって、情報処理装置10の信頼性を向上することが可能である。
上記第1実施形態乃至第10実施形態は、ノートブックコンピュータやタブレットコンピュータを例として説明した。しかし、これに限定されるものではなく、SSDやHDDなどの記録装置を搭載する他の電子機器に適用することが可能である。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
10…情報処理装置、20…ホスト、22…エンベデッドコントローラ(第1コントローラ)、23…バッテリ、30…SSD(メモリシステム)、36…PLP(電源喪失保護)コントローラ(第2コントローラ)、35…NANDフラッシュメモリ(不揮発性メモリ)、37…DRAM(揮発性メモリ)。

Claims (12)

  1. 情報処理装置内に搭載することが可能なメモリシステムであって、
    揮発性メモリと、
    前記揮発性メモリ上のデータを格納する不揮発性メモリと、
    前記情報処理装置の第1コントローラにより前記メモリシステムへの電力の供給が停止されるであろうことが検出された場合、前記電力の供給が停止する前に、前記第1コントローラから発行された起動要求を受ける第2コントローラと、
    を具備し、
    前記第2コントローラは、前記起動要求が発行された後、キャンセル可能期間の経過後に前記揮発性メモリ上のデータを前記不揮発性メモリに格納する不揮発化処理を開始させ、前記不揮発化処理が終了した場合、終了通知を前記第1コントローラに送信することを特徴とするメモリシステム。
  2. 前記第2コントローラは、前記第1コントローラから発行された前記起動要求のキャンセルを受けることを特徴とする請求項1記載のメモリシステム。
  3. 前記第2コントローラは、前記第1コントローラから発行された前記起動要求が前記キャンセル可能期間の経過前になされたキャンセルを受けることを特徴とする請求項2記載のメモリシステム。
  4. 前記第2コントローラは、前記第1コントローラから発行された前記起動要求が前記キャンセル可能期間の経過後になされたキャンセルを受けることを特徴とする請求項2記載のメモリシステム。
  5. 前記第2コントローラは、前記第1コントローラにより前記起動要求がキャンセルされた後、再度発行された起動要求を受けることを特徴とする請求項2記載のメモリシステム。
  6. 前記第2コントローラは、前記起動要求を受けた後、前記キャンセル可能期間内に前記情報処理装置から受けた書き込み要求を前記不揮発化処理において実行することを特徴とする請求項1記載のメモリシステム。
  7. 前記書き込み要求で書かれるデータは、少なくともブート・パーティション・ライト(Boot Partition Write)、FUA(Force Unit Access)付きで高優先度付きのライト、及びPCIeのBAR(Base Address Register)で定義した特別な領域へのライトのうちの1つにより書かれるデータを含むことを特徴とする請求項6記載のメモリシステム。
  8. 前記第1コントローラから発行された前記起動要求をキャンセルするためのキャンセル要求を受ける専用の配線を具備することを特徴とする請求項1記載のメモリシステム。
  9. 前記第2コントローラは、前記不揮発化処理の開始及び終了を示すフィードバック信号を前記第1コントローラに送信することを特徴とする請求項1記載のメモリシステム。
  10. 前記キャンセル可能期間は、変更可能であることを特徴とする請求項1記載のメモリシステム。
  11. 前記第2コントローラは、前記前記不揮発化処理の典型値又は最大値を有することを特徴とする請求項1記載のメモリシステム。
  12. 前記第2コントローラは、前記不揮発化処理において、不揮発化処理時間は長いが電源復旧後の起動時間は短い、不揮発化処理時間は短いが電源復旧後の起動時間は長い、の動作を選択して実行することを特徴とする請求項1記載のメモリシステム。
JP2017178224A 2017-09-15 2017-09-15 メモリシステム Pending JP2019053616A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017178224A JP2019053616A (ja) 2017-09-15 2017-09-15 メモリシステム
US15/991,111 US10795772B2 (en) 2017-09-15 2018-05-29 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017178224A JP2019053616A (ja) 2017-09-15 2017-09-15 メモリシステム

Publications (1)

Publication Number Publication Date
JP2019053616A true JP2019053616A (ja) 2019-04-04

Family

ID=65720238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017178224A Pending JP2019053616A (ja) 2017-09-15 2017-09-15 メモリシステム

Country Status (2)

Country Link
US (1) US10795772B2 (ja)
JP (1) JP2019053616A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI670601B (zh) * 2018-07-30 2019-09-01 慧榮科技股份有限公司 斷電保護方法及系統
JP2022138595A (ja) 2021-03-10 2022-09-26 キオクシア株式会社 メモリシステムおよび制御方法
US20240103722A1 (en) * 2022-09-26 2024-03-28 Lemon Inc. Metadata management for transparent block level compression

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10263422B2 (en) 2012-02-23 2019-04-16 Cyber Power Systems Inc. Shutdown controlling method for power system
JP5906881B2 (ja) * 2012-03-27 2016-04-20 富士通株式会社 情報処理装置及び情報処理装置の制御方法
US9195293B1 (en) 2013-05-03 2015-11-24 Western Digital Technologies, Inc. User controlled data storage device power and performance settings
US10198061B2 (en) 2015-09-01 2019-02-05 Toshiba Memory Corporation Storage and storage system
US10431305B2 (en) * 2017-12-14 2019-10-01 Advanced Micro Devices, Inc. High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)

Also Published As

Publication number Publication date
US10795772B2 (en) 2020-10-06
US20190087275A1 (en) 2019-03-21

Similar Documents

Publication Publication Date Title
US10592143B2 (en) Data storage device and data storage method thereof
KR101986872B1 (ko) 메모리 칩 전력 관리
JP5495074B2 (ja) 論理ユニット動作
US8151036B2 (en) Memory controller, memory system, and access control method of flash memory
US9645769B2 (en) Performance acceleration during shutdown of a data storage device
JP2017079050A (ja) 保護されたデータとは別個のパリティデータの記憶
US20090300277A1 (en) Devices and methods for operating a solid state drive
KR101547317B1 (ko) 스토리지 테스트 장치에서 로직 블록 어드레스와 데이터 버퍼 주소를 이용한 불량 블록 검출 시스템
US8489805B2 (en) Memory devices operated within a communication protocol standard timeout requirement
CN102054534A (zh) 包括响应电源故障信号而刷新写入数据的电源故障电路的非易失性半导体存储器
US9824777B2 (en) Storage system managing run-time bad cells
TW201732832A (zh) 數據儲存裝置及其操作方法
US10795772B2 (en) Memory system
US10191533B2 (en) Method of enabling sleep mode, memory control circuit unit and storage apparatus
US20220214970A1 (en) Power loss protection in memory sub-systems
KR20210147696A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102474937B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8417839B1 (en) Concurrent actions for data storage
US11593242B2 (en) Method of operating storage device for improving reliability, storage device performing the same and method of operating storage using the same
KR20220045342A (ko) 호스트 장치, 데이터 저장 장치, 데이터 처리 시스템 및 데이터 처리 방법
KR20150044654A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
CN111143255A (zh) 存储装置及其操作方法
KR20200109682A (ko) 메모리 시스템, 메모리 장치 및 그 동작 방법
US8732414B2 (en) Control device, controller module, and control method
KR20110037092A (ko) 램 및 플래시 인터페이스를 가지는 하이브리드 메모리 구조 및 데이터 저장 방법

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830