IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

<>
  • 特開-メモリシステム及び制御方法 図1
  • 特開-メモリシステム及び制御方法 図2
  • 特開-メモリシステム及び制御方法 図3
  • 特開-メモリシステム及び制御方法 図4
  • 特開-メモリシステム及び制御方法 図5
  • 特開-メモリシステム及び制御方法 図6
  • 特開-メモリシステム及び制御方法 図7
  • 特開-メモリシステム及び制御方法 図8
  • 特開-メモリシステム及び制御方法 図9
  • 特開-メモリシステム及び制御方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022096898
(43)【公開日】2022-06-30
(54)【発明の名称】メモリシステム及び制御方法
(51)【国際特許分類】
   G11C 5/14 20060101AFI20220623BHJP
   G06F 12/00 20060101ALI20220623BHJP
   G06F 12/06 20060101ALI20220623BHJP
   G11C 5/04 20060101ALI20220623BHJP
   G06F 1/26 20060101ALI20220623BHJP
【FI】
G11C5/14 100
G06F12/00 597U
G06F12/06 524
G11C5/04 210
G06F1/26
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020210149
(22)【出願日】2020-12-18
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】特許業務法人スズエ国際特許事務所
(72)【発明者】
【氏名】小林 弘樹
【テーマコード(参考)】
5B011
5B160
【Fターム(参考)】
5B011DA13
5B011EB01
5B011GG06
5B160MM06
5B160MM09
(57)【要約】
【課題】PLPコンデンサの充電を好適に制御するメモリシステム及び制御方法を提供することである。
【解決手段】実施形態によれば、メモリシステムは、不揮発性メモリと、不揮発性メモリにデータを書き込み、不揮発性メモリからデータを読み出すコントローラと、電源回路と、を具備する。電源回路はコンデンサを具備する。電源回路は、外部電源を利用して少なくとも不揮発性メモリとコントローラへ電源を供給し、外部電源が遮断された後はコンデンサのエネルギを利用して少なくとも不揮発性メモリとコントローラへ電源を供給する。コントローラは、不揮発性メモリの消費電流が第1電流より小さい場合、コンデンサを充電させるように電源回路を制御する。
【選択図】図10
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すコントローラと、
コンデンサを具備し、外部電源を利用して少なくとも前記不揮発性メモリと前記コントローラへ電源を供給し、前記外部電源が遮断された後は前記コンデンサのエネルギを利用して少なくとも前記不揮発性メモリと前記コントローラへ電源を供給する電源回路と、
を具備するメモリシステムであって、
前記コントローラは、前記不揮発性メモリの消費電流が第1電流より小さい場合、前記コンデンサを充電させるように前記電源回路を制御する、メモリシステム。
【請求項2】
前記コントローラは、前記不揮発性メモリの消費電流が前記第1電流より小さい場合、前回の充電から第1時間が経過した時に前記コンデンサを充電させるように前記電源回路を制御する、請求項1記載のメモリシステム。
【請求項3】
前記コントローラは、前記不揮発性メモリの消費電流が前記第1電流より小さくない場合、前回の充電から前記第1時間より長い第2時間が経過した時に前記コンデンサを充電させるように前記電源回路を制御する、請求項2記載のメモリシステム。
【請求項4】
前記コントローラは、一定時間毎に前記不揮発性メモリの消費電流が第1電流より小さいか否かを判定し、前記不揮発性メモリの消費電流が第1電流より小さい場合、前記コンデンサを充電させるように前記電源回路を制御する、請求項1記載のメモリシステム。
【請求項5】
前記コントローラは、
前記不揮発性メモリへ第1コマンドを発行する場合、前記不揮発性メモリが少なくとも1つの第2コマンドを実行することにより前記不揮発性メモリが消費する電流と、前記不揮発性メモリが前記第1コマンドを実行したことにより前記不揮発性メモリが消費する電流の合計が第2電流より小さい場合、前記第1コマンドを発行する、請求項1記載のメモリシステム。
【請求項6】
前記コントローラは、
前記第1コマンド及び前記第2コマンドを含む複数のコマンドと、前記複数のコマンドのそれぞれの実行により前記不揮発性メモリが消費する電流の時間変化を示す重み関数との対応関係を記憶し、
前記不揮発性メモリが実行中の前記第2コマンドに対応する重み関数と、前記第1コマンドに対応する重み関数との合計に基づいて、前記合計が第2電流より小さいか否かを判定する、請求項5記載のメモリシステム。
【請求項7】
不揮発性メモリと、
コンデンサを具備し、外部電源を利用して少なくとも前記不揮発性メモリへ電源を供給し、前記外部電源が遮断された後は前記コンデンサのエネルギを利用して少なくとも前記不揮発性メモリへ電源を供給する電源回路と、
を具備するメモリシステムの制御方法であって、
前記不揮発性メモリの消費電流が第1電流より小さい場合、前記コンデンサを充電させるように前記電源回路を制御する、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、不揮発性メモリを制御するメモリシステム及び制御方法に関する。
【背景技術】
【0002】
不揮発性メモリを備えるメモリシステムの一例として、ソリッドステートドライブ(Solid State Drive:SSD)が知られている。
【0003】
ある種のSSDは、外部から供給される電源の停電等の意図しない遮断時に、書き込み途中のデータが消失しないためのパワーロスプロテクション(Power Loss Protection:PLP)機能を備える。PLP機能は、バックアップ電源を必要とする。バックアップ電源の一例は、コンデンサがある。電源の電圧の低下が検出されると、PLP機能が作動し、コンデンサに充電されている電気エネルギ(以下、単にエネルギと称される)を利用して、書き込み途中のデータ及び不揮発に記憶すべきデータが不揮発性メモリに書き込まれる。
【0004】
PLP機能の作動時以外の時も、自然放電によりコンデンサのエネルギは減少するので、コンデンサを定期的に充電する必要がある。コンデンサの充電タイミングがSSDの消費電流が大きいタイミングと重なると、SSDの消費電流が一時的に大きくなり、ピーク電流がSSDの許容電流値を超えてしまう。これを防ぐためには、SSDの消費電流を小さくしておく必要があるが、SSDの性能が犠牲になる。
【0005】
このように、従来のPLP機能を備えるメモリシステムでは、ピーク電流要求と性能要求を両立させることが困難であった。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2016-115171号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、PLPコンデンサの充電を好適に制御するメモリシステム及び制御方法を提供することである。
【課題を解決するための手段】
【0008】
実施形態によれば、メモリシステムは、不揮発性メモリと、不揮発性メモリにデータを書き込み、不揮発性メモリからデータを読み出すコントローラと、電源回路と、を具備する。電源回路はコンデンサを具備する。電源回路は、外部電源を利用して少なくとも不揮発性メモリとコントローラへ電源を供給し、外部電源が遮断された後はコンデンサのエネルギを利用して少なくとも不揮発性メモリとコントローラへ電源を供給する。コントローラは、不揮発性メモリの消費電流が第1電流より小さい場合、コンデンサを充電させるように電源回路を制御する。
【図面の簡単な説明】
【0009】
図1】実施形態に係るメモリシステムを含む情報処理システムの構成の一例を示すブロック図。
図2】電源回路の構成の一例を示すブロック図。
図3】電源回路内の昇圧用のDC/DCコンバータと降圧用のDC/DCコンバータの構成の一例を示す回路図。
図4】外部電源電圧によりSSDに供給される消費電流波形の一例を示す図。
図5】スロットリング制御の電源回路内の昇圧用のDC/DCコンバータと降圧用のDC/DCコンバータの概要を示す図。
図6】重みテーブルが格納する重みの一例を示す図。
図7】コマンドの実行によりNANDチップが消費する電流波形と重みの関係の一例を示す図。
図8】スロットリング制御を行うNANDコントローラの各々の処理の一例を示すフローチャート。
図9】スロットリング制御を行うNANDデマンドマネージャの処理の一例を示すフローチャート。
図10】PLPコンデンサの充電制御を行うコントローラの処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成要素の構造、形状、配置、材質等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各要素のサイズ、厚み、平面寸法、又は形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、互いの寸法の関係や比率が異なる要素が含まれることもある。複数の図面において、対応する要素には同じ参照数字を付して重複する説明を省略する場合もある。いくつかの要素に複数の呼称を付す場合があるが、これら呼称の例はあくまで例示であり、これらの要素に他の呼称を付すことを否定するものではない。また、複数の呼称が付されていない要素についても、他の呼称を付すことを否定するものではない。なお、以下の説明において、「接続」は直接接続のみならず、他の要素を介して接続されることも意味する。
【0011】
以下、図面を参照しながら本実施の形態について詳細に説明する。
【0012】
(システム構成)
図1は、実施形態に係るメモリシステムを含む情報処理システムの構成の一例を示すブロック図である。メモリシステムは、不揮発性メモリにデータを書き込むように、及び不揮発性メモリからデータを読み出すように構成されたストレージデバイスである。本願では、メモリシステムは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)等である。本願では、不揮発性メモリは、NAND型フラッシュメモリ(以下、単にNANDメモリと称される)であるとする。
【0013】
情報処理システム10は、ホストデバイス(以下、単にホストと称される)12とSSD14を含む。
【0014】
ホスト12は、SSD14にアクセスする外部機器としての情報処理装置である。ホスト12は、大量且つ多様なデータをSSD14に保存するサーバ(ストレージサーバ)であってもよい。ホスト12は、パーソナルコンピュータであってもよい。SSD14は、データセンター等のサーバに組み込まれるビジネスユース向けのSSDであってもよい。SSD14はパーソナルコンピュータに組み込まれるパーソナルユース向けのSSDであってもよい。
【0015】
SSD14は、NANDメモリ16、コントローラ18、DRAM(Dynamic Random Access Memory)20、電源回路22、PLPコンデンサ24等を備える。SSD14は、ホスト12のメインストレージとして使用され得る。SSD14は、ホスト12に内蔵されてもよいし、ホスト12の外部に設けられ、ホスト12にケーブルまたはネットワークを介して接続されてもよい。
【0016】
コントローラ18は、ホスト12から送信される要求に従って、NANDメモリ16にデータを書き込み、又はNANDメモリ16からデータを読み出す。さらに、コントローラ18は、ホスト12から送信される要求や電源回路22から送信される種々の情報に従って、電源回路22が生成する電圧の値を制御する制御信号を生成する。コントローラ18は、生成した制御信号を電源回路22に送信する。これにより、コントローラ18は、SSD14の各デバイス(例えばNANDメモリ16、コントローラ18、DRAM20)へ印加される複数の電圧の生成を制御する。コントローラ18は、SoC(system on a chip)のような回路によって構成され得る。
【0017】
DRAM20は、揮発性メモリの一例である。DRAM20は、例えばDDR3L(Double Data Rate 3 Low voltage)規格のDRAMである。DRAM20には、ライトバッファと、リードバッファと、ルックアップテーブル(LUT)のキャッシュ領域と、システム管理情報の格納領域とが設けられてもよい。ライトバッファは、NANDメモリ16に書き込まれるデータを一時的に格納するためのバッファ領域である。リードバッファは、NANDメモリ16から読み出したデータを一時的に格納するためのバッファ領域である。LUTのキャッシュ領域は、アドレス変換テーブル(論理アドレス/物理アドレス変換テーブルとも称する)をキャッシュする領域である。LUTは、ホスト12が指定する論理アドレスそれぞれと、NANDメモリ16の物理アドレスそれぞれとの間の対応が管理される情報である。システム管理情報の格納領域は、SSD14の動作中に用いられる各種の値や各種のテーブル等を格納する領域である。
【0018】
揮発性メモリとしてのDRAM20は、コントローラ18の外部に設けるのだけではなく、コントローラ18の内部に設けてもよい。なお、揮発性メモリとしては、DRAM20の代わりに、より高速アクセスが可能なSRAM(Static Random Access Memory)を用いてもよい。
【0019】
NANDメモリ16は、複数(例えば、144個)のNANDチップ16-i(i=1~144)を含んでいてもよい。各NANDチップ16-iは、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含んでもよい。NANDチップ16-iは、二次元構造のメモリチップであってもよいし、三次元構造のメモリチップであってもよい。
【0020】
メモリセルアレイは、複数のブロックを含む。各々のブロックは複数のページを含む。ブロックは、最小のデータ消去動作の単位として機能する。ページの各々は、同一ワード線に接続された複数のメモリセルを含む。ページは、データ書き込み動作及びデータ読み出し動作の最小の単位である。1ページのデータが、書き込み単位のデータ、又は読み出し単位のデータであり、DRAM20に格納される。書き込みの場合は、DRAM20から読み出された1ページの書き込み単位のデータがNANDメモリ16に書き込まれる。そのため、書き込み途中で意図せずに外部電源が遮断された場合、バックアップ電源が存在しないと、DRAM20内の書き込み途中のデータが失われる。実施形態では、バックアップ電源が用意されており、外部電源の意図しない遮断時に、バックアップ電源を用いてDRAM20内の書き込み途中のデータをNANDメモリ16に書き込むことができる。なお、ページの代わりにワード線をデータ書き込み動作、又はデータ読み出し動作の単位としてもよい。この場合、1ワード線のデータが書き込み単位のデータ、又は読み出し単位のデータである。
【0021】
電源回路22は、外部電源から供給される単一又は複数の外部電圧から、SSD14の各デバイスで必要な複数の電源電圧を生成する。外部電源はホスト12に備えられる電源であってもよい。なお、図1では、電源ラインは図示されていない。電源回路22は単一又は複数の集積回路(integrated circuit:IC)から構成されてもよい。電源回路22の種々の状態を示す情報が所定の通信規格に従ってコントローラ18に送信される。電源回路22とコントローラ18との間の通信規格は、例えばシリアル通信規格に従ってもよい。シリアル通信規格の一例は、I2C方式である。本願では、電源回路22とコントローラ18との間の通信規格はI2C方式に従うとする。
【0022】
コントローラ18は、ホスト12から送信される要求、及び電源回路22から送信される種々の情報に従って、電源回路22が生成する電源電圧の値を制御する制御信号を生成する。コントローラ18は、生成した制御信号を電源回路22に送信する。これによりSSD14の各デバイスへ印加される複数の電源電圧の生成がコントローラ18により制御される。電源回路22の詳細は図2図3を参照して後述される。
【0023】
電源回路22にはバックアップ電源用のPLPコンデンサ24が接続されている。PLPコンデンサ24は、停電時等の意図しない外部電源の遮断時の書き込み途中のデータを保護するパワーロスプロテクション(Power Loss Protection:PLP)機能のためのエネルギを電源回路22に供給する。PLPコンデンサ24の例としては、例えば電気二重層コンデンサ、導電性高分子アルミ電解コンデンサ、導電性高分子タンタル固体電解コンデンサがある。電源回路22は、電源遮断後は、PLPコンデンサ24のエネルギを用いて、NANDメモリ16、コントローラ18、及びDRAM20に対して電源電圧を一定時間供給する。
【0024】
PLPコンデンサ24の容量は、この一定時間内に、NANDメモリ16へ書き込み途中のデータのNANDメモリ16への書き込みが完了できる(PLP機能を実現する)ために必要なエネルギを充電できる目標容量より多少多く設定されている。これは、PLPコンデンサの容量に余裕を持たせておけば、温度変化や経年劣化によりコンデンサの容量が多少減少したとしても、引き続きPLP機能を実現することができるからである。例えば、容量が減少してもその減少量が初期容量の30%以内であればPLP機能を実現できるようにするには、PLPコンデンサの初期容量は目標容量の約1.43倍にしておけばよい。
【0025】
コントローラ18は、CPU32、ホストインタフェース(ホストI/F)回路34、NANDデマンドマネージャ36、NANDインターフェース(NAND I/F)回路(NANDコントローラとも称される)38、DRAMインターフェース(DRAM I/F)回路40等を備える。CPU32、ホストI/F回路34、NANDデマンドマネージャ36、NAND I/F)回路38、DRAM I/F回路40はバスライン44に接続される。電源回路22もバスライン44に接続される。
【0026】
CPU32は、NANDメモリ16に記憶されているファームウェアを実行し、種々の機能を実現する。種々の機能の例は、PLPコンデンサ24の充電制御や電源回路22による電源電圧生成動作の制御がある。
【0027】
ホスト12はホストI/F回路34に電気的に接続され、NANDメモリ16はNAND I/F回路38に電気的に接続され、DRAM20はDRAM I/F回路40に電気的に接続される。
【0028】
ホスト12とSSD14とを電気的に接続するホストI/F回路34は、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)、ATA(AT Attachment)、SATA(Serial ATA)、PCIe(PCI Express)(TM)、Ethernet(TM)、Fibre channel、NVMe(NVM Express)(TM)、USB(Universal Serial Bus)(TM)、UART(Universal Asynchronous Receiver/Transmitter)(TM)等の規格に準拠する。
【0029】
コントローラ18とNANDメモリ16とを電気的に相互接続するNAND I/F回路38は、Toggle DDR、ONFI(Open NAND Flash Interface)等の規格に準拠する。NAND I/F回路38は、複数(例えば、9個)のNANDコントローラ38-j(j=1~9)を含んでいてもよい。各NANDコントローラ38-jは、複数(例えば、2個)のチャンネルを介してNANDメモリ16に接続される。NANDメモリ16は144個のNANDチップ16-iを含んでいるので、1つのNANDコントローラ38-jの1チャンネルは8個のNANDチップをインターリーブ制御する。すなわち、NAND I/F回路38は、複数(例えば、18個)のチャンネルを介してNANDメモリ16に接続される。
【0030】
NANDデマンドマネージャ36は、ホスト12から発行されたNANDメモリ16への要求をNAND I/F回路38へ送るためのハードウェアである。例えば、NANDデマンドマネージャ36は、ホスト12から送られたリード要求、ライト要求、イレース要求等を受けた場合、NANDコントローラ38-jにリードコマンド、ライトコマンド、イレースコマンド等に関するコマンド発行要求を送る。あるいは、NANDデマンドマネージャ36は、コントローラ38のファームウェアやデバイス等から発行されたガベージコレクション要求、リフレッシュ要求、デバッグ要求等のNANDメモリ16に対するバックグランド処理の要求を受けた場合、NANDコントローラ38-jにガベージコレクションコマンド、リフレッシュコマンド、デバッグコマンド等に関するコマンド発行要求を送る。
【0031】
NANDコントローラ38-jは、NANDデマンドマネージャ36からコマンド発行要求を受けた場合、NANDチップ16-iにコマンドを発行するために必要な情報を取得し、コマンドを発行する。NANDコントローラ38-jは、例えばCPU32やNANDデマンドマネージャ36から、コマンドを発行するために必要な情報として、例えば物理アドレスや書き込みデータを取得する。NANDコントローラ38-jは、発行したコマンドの実行結果をレスポンス情報としてNANDデマンドマネージャ36へ送る。NANDデマンドマネージャ36は、NANDコントローラ38-jから発行されたレスポンス情報を受け取り、レスポンス情報を要求元へ通知する。
【0032】
(電源回路22の構成)
図2は、電源回路22の構成の一例を示すブロック図である。電源回路22は、ヒューズ52、ロードスイッチ54、LDO(Low Dropout)レギュレータ56、DC/DCコンバータ58、コントロールロジック60、及びI2C I/F回路64を含む。外部電源(図示しない)は、例えばDC12Vの外部電源電圧を生成する。外部電源電圧に応じた大きさの電流がヒューズ52及びロードスイッチ54を直列に介してLDO(Low Dropout)レギュレータ56及びDC/DCコンバータ58に供給される。なお、ホスト12が外部電源を備え、外部電源電圧に応じた電流がホスト12から電源回路22に供給されてもよい。電源回路22を構成する単一又は複数の回路は電源管理IC(Power Management IC:PMIC)と称されることもある。
【0033】
ヒューズ52は、一定電流以上の過電流が流れると、溶断される金属ヒューズを含んで構成される。ヒューズ52が溶断されると、ヒューズを交換しない限り、外部電源電圧はロードスイッチ54へ印加されない。なお、ヒューズ52は金属ヒューズに限らず、過電流が検出されると非導通となる電子ヒューズを含んで構成されてもよい。
【0034】
ロードスイッチ54は、オン/オフスイッチであり、通常はオン状態である。オン状態において、ロードスイッチ54は、印加された電圧からドロップアウト電圧を減じた電圧を出力する。ヒューズ52と同様に、ロードスイッチ54は、一定電流以上の過電流が流れると、オフ状態となる。オフ状態において、ロードスイッチ54は0Vを出力する。ヒューズ52が溶断される過電流の値は、ロードスイッチ54がオン状態からオフ状態に変化する過電流の値より高くても低くても良いし、同じでも良い。ヒューズ52とロードスイッチ54によりLDOレギュレータ56、DC/DCコンバータ58へ過電流が供給されることが二重に防止される。
【0035】
LDOレギュレータ56は、小電流を必要とするSSD14のデバイスの電源電圧を出力する回路である。DC/DCコンバータ58は、大電流を必要とするSSD14のデバイスの電源電圧を出力する回路である。LDOレギュレータ56、DC/DCコンバータ58は個別の半導体部品として構成されても良いし、単一の半導体部品として構成されても良い。
【0036】
LDOレギュレータ56は、ロードスイッチ54の出力電圧を降圧して電源電圧を生成する。例えばLDOレギュレータ56から出力される電源電圧はコントローラ18に供給される。
【0037】
DC/DCコンバータ58は、ロードスイッチ54の出力電圧を昇圧又は降圧してSSD14の各デバイスが必要とする複数の電源電圧を生成する。DC/DCコンバータ58は複数の電圧をそれぞれ昇圧又は降圧する複数のDC/DCコンバータユニットから構成されている。
【0038】
昇圧用のDC/DCコンバータユニットは、ロードスイッチ54の出力電圧を昇圧し、昇圧した電圧をPLPコンデンサ24に充電電圧として印加する。
【0039】
降圧用のDC/DCコンバータユニットは、ロードスイッチ54の出力電圧を降圧して複数の電源電圧を生成する。複数の電源電圧はNANDメモリ16、DRAM20、及びコントローラ18に印加される。
【0040】
図示していないが、SSD14の内部の温度を測定する温度センサの出力、及びSSD14の各デバイスの過電流の検出結果がコントロールロジック60に入力される。バスライン44に接続されるコントロールロジック60は、入力されたデータを、I2C I/F回路64を介してI2C方式に従ってコントローラ18へ送信するとともに、コントローラ18から送信された制御信号を、I2C I/F回路64を介してI2C方式に従って受信する。
【0041】
電源回路22が生成する電源電圧はSSD14の温度により変動したことが検出された場合、コントローラ18は、電源回路22が生成する電圧を温度に応じて調整する制御信号を電源回路22に供給する。また、コントローラ18は、過電流が検出された場合、検出した過電流が流れるデバイスに印加される電圧の生成を停止させる制御信号を電源回路22に供給する。コントロールロジック60はコントローラ18から送信される制御信号に応じて、ロードスイッチ54、LDOレギュレータ56、DC/DCコンバータ58へ制御信号を供給する。
【0042】
I2C I/F回路64は、コントロールロジック60及びコントローラ18のバスライン44に接続され、コントロールロジック60から送信される制御信号に応じてコントローラ18とI2C方式に従って通信を行う。
【0043】
電圧コンバータとしてのLDOレギュレータ56、DC/DCコンバータ58は公知の構成であってよいが、一例としてDC/DCコンバータ58内の昇圧用のDC/DCコンバータユニット58a及び降圧用のDC/DCコンバータユニット58bの回路図を図3に示す。
【0044】
昇圧用のDC/DCコンバータユニット58aは、ロードスイッチ54の出力電圧を昇圧し、PLPコンデンサ24を充電する。降圧用のDC/DCコンバータユニット58bは、PLPコンデンサ24の放電電流を入力し、PLPコンデンサ24の出力電圧を降圧し、降圧電圧をLDOレギュレータ56に供給する。
【0045】
昇圧用のDC/DCコンバータユニット58aは、直列に接続されたインダクタ72とダイオード74、及び並列に接続されたコンデンサ76と抵抗78を含む。入力電圧から生じた入力電流がインダクタ72の一端に入力される。インダクタ72の他端がダイオード74のアノード端に接続されるとともに、スイッチング素子(SW素子)80を介して接地される。ダイオード74のカソード端は、並列に接続されたコンデンサ76と抵抗78を介して接地される。抵抗78の端子電圧がDC/DCコンバータユニット58aの出力電圧とされ、PLPコンデンサ24に印加され、PLPコンデンサ24が充電される。
【0046】
スイッチング素子80はMOSFET(metal-oxide-semiconductor field-effect transistor)等を含んで構成される。スイッチング素子80の制御端には、パルス幅変調回路(PWM回路)82が接続される。PLPコンデンサ24が充電される期間、PWM回路82は、コントロールロジック60から送信される制御信号に基づきスイッチング素子80のオン又はオフを制御する。スイッチング素子80がオンの期間、入力電圧はインダクタ72に印加され、インダクタ72に流れる電流が増加する。スイッチング素子80がオフの期間、ダイオード74は正バイアスとなり、インダクタ72の電流が減少し、エネルギがコンデンサ76に充電され、抵抗78の両端間に入力電圧より高い電圧が発生する。
【0047】
PWM回路82から出力されるパルス信号の周期は一定であり、スイッチング素子80は周期的にオン又はオフされる。スイッチング素子80の一周期におけるオン期間の比(オンパルスのデューティ比とも称される)に応じてDC/DCコンバータユニット58aから出力される電圧、すなわちPLPコンデンサ24の充電電圧は変化する。
【0048】
PLPコンデンサ24に印加できる上限の許容電圧が規定されている場合、コントロールロジック60は、DC/DCコンバータユニット58aの出力電圧が許容電圧以下となるようなデューティ比をPWM回路82に通知する。PLPコンデンサ24を充電しない期間は、PWM回路82は常にローレベルの信号を出力するので、スイッチング素子80は常にオフである。
【0049】
降圧用のDC/DCコンバータユニット58bは、PLPコンデンサ24がドレイン端に接続されるMOSFET86を含む。MOSFET86はスイッチング素子の一例である。MOSFET86のゲート端には、PWM回路84が接続される。PWM回路84は、コントロールロジック60から送信される制御信号に基づいてMOSFET86のオン又はオフを制御する。MOSFET86のソース端はダイオード88のカソード端に接続されるとともに、インダクタ90とコンデンサ92の直列回路を介して接地される。ダイオード88のアノード端は接地される。インダクタ90とコンデンサ92の接続点が出力端となる。
【0050】
MOSFET86がオンすると、PLPコンデンサ24からの放電電流がインダクタ90を介して出力端に流れ、コンデンサ92が充電される。効率が100%の理想的なDC/DCコンバータの場合、Vin×Iin=Vout×Iout(Vinは入力電圧、Voutは出力電圧、Iinは入力電流、Ioutは出力電流)であるので、降圧する場合、出力電流は入力電流より大きい必要がある。そのため、MOSFET86がオフすると、コンデンサ92にチャージされたエネルギにより接地からダイオード88、インダクタ90を介して電流が引き出され、出力端から電流が出力される。
【0051】
PWM回路84から出力されるパルス信号の周期は一定であり、MOSFET86は周期的にオン又はオフする。MOSFET86のデューティ比に応じてDC/DCコンバータユニット58bから出力される電圧は変化する。コントロールロジック60は、DC/DCコンバータユニット58bの出力電圧がロードスイッチ54の出力電圧と同じになるようなデューティ比をPWM回路84に通知する。
【0052】
DC/DCコンバータユニット58bの出力電圧は、ロードスイッチ54の出力電圧の代わりにDC/DCコンバータ58に印加される。DC/DCコンバータ58のDC/DCコンバータユニット58b以外の降圧用のDC/DCコンバータユニットにより、降圧され、複数の電源電圧が生成される。これにより、外部電源が遮断された後、PLPコンデンサ24の放電電流が流れる期間は、電源回路22は、NANDメモリ16、コントローラ18、及びDRAM20へ電源電圧を引き続き供給できる。
【0053】
(SSD14の消費電流)
図4は、外部電源から電源回路22へ供給される外部電源電圧によりSSD14に供給される消費電流波形の一例を示す。図4(a)は、書き込み動作による消費電流の変化の一例を示す。
【0054】
前述したように、各チャンネル当たり8個のNANDチップ(第1NANDチップ~第8NANDチップ)が接続されているので、SSD14は、装置全体として、18チャンネル×8インターリーブ=144インターリーブ動作を行う。書き込み動作は、NAND I/F回路38がデータ・インコマンドとプログラムコマンドをNANDメモリ16に対して発行することにより行われる。ホスト12からの書き込みデータはDRAM20に格納される。先ず、NAND I/F回路38は、データ・インコマンドとDRAM20内の書き込みデータをNANDメモリ16へ送信する。データ・インコマンドに応じて、NANDメモリ16は、書き込みデータをNANDメモリ16内のデータバッファ(レジスタ)に書き込む。次に、NAND I/F回路38は、プログラムコマンドをNANDメモリ16へ送信する。プログラムコマンドに応じて、NANDメモリ16は、データバッファ内の書き込みデータをNANDチップ16-i内のメモリセルに書き込む。
【0055】
1回の書込み動作では、先ず各チャンネルの第1NANDチップに対するデータ・イン動作が行われ、書き込みデータがNANDメモリ16内のデータバッファに書き込まれる。具体的には、先ず第1チャンネルの第1NANDチップに対するデータ・イン動作が行われ、第2チャンネルの第1NANDチップに対するデータ・イン動作が行われ、以下同様に第18チャンネルの第1NANDチップに対するデータ・イン動作が行われる。データ・イン動作により書き込みデータがNANDメモリ16内のデータバッファに書き込まれると、プログラム動作の準備が完了となり、各チャンネルの第1NANDチップに対するプログラム動作が行われる。具体的には、先ず第1チャンネルの第1NANDチップに対するプログラム動作が行われ、第2チャンネルの第1NANDチップに対するプログラム動作が行われ、以下同様に第18チャンネルの第1NANDチップに対するプログラム動作が行われる。
【0056】
このように或るチャンネルのNANDチップに対するプログラム動作は、当該或るチャンネルのNANDチップに対するデータ・イン動作から時間的に遅れて実行される。そのため、或るチャンネルのNANDチップに対するプログラム動作は、当該或るチャンネルとは別のチャンネルのNANDチップに対するデータ・イン動作と同時に実行されることがある。プログラム動作に要する期間は、データ・イン動作に要する時間と比べてかなり長い。また、プログラム動作は連続して実行されるが、データ・イン動作は実行されない期間がある。そのため、書き込み動作中にSSD14に供給される消費電流は、データ・イン動作とプログラム動作が同時に実行されるT1期間とデータ・イン動作が実行されずプログラム動作のみが実行されるT2期間とで異なる。T2期間の消費電流はT1期間の消費電流より小さい。
【0057】
図4(b)は、書き込み期間とイレース期間の消費電流の違いの一例を示す。図4(a)と図4(b)の時間軸は異なるスケールである。図4(a)のT1期間、T2期間の複数のペアが図4(b)の1つの書込み期間に含まれる。NANDメモリ16では、メモリセルに対するデータを書き込み動作の前にメモリセルのデータが消去(イレース)される。イレース期間の消費電流は書き込み期間の消費電流より小さい。
【0058】
このように、SSD14の消費電流は、実行されるコマンドの種類に応じて変化する。また、同じコマンドでも、SSD14の消費電流は、時間の経過によって変化する。このため、SSD14の消費電流が小さい期間に、PLPコンデンサ24を充電することができれば、SSD14の機能を落とさずに、ピーク電流を低くすることができる。
【0059】
(スロットリング制御)
SSD14の消費電力を調整する手法としてスロットリング制御がある。スロットリング制御とは、全てのNANDコントローラ38-jが同時に発行するコマンドの数を制限又はタイミングを制御することにより、SSD14の消費電流を調整することである。
【0060】
図5は、スロットリング制御の概要を示す。スロットリング制御は、NANDデマンドマネージャ36とNANDコントローラ38-jにより、以下のように行われる。NANDデマンドマネージャ36は、NANDコントローラ38-jにコマンド発行要求を送信する。NANDコントローラ38-jは、コマンド発行要求を受信すると、NANDデマンドマネージャ36に発行申請と重み情報WIj(t)を送信する。スロットリング制御では、NANDチップ16-iがコマンドを実行することにより消費する電流量は、コマンドの重みとして管理される。図4に示すように、コマンドの実行中、消費電流は一定ではなく、時間の経過とともに変化する。そのため、重み情報WIj(t)は時間の関数として表される。NANDデマンドマネージャ36は、発行申請と重み情報WIj(t)を受信すると、重み情報WIj(t)の総計ΣWIj(t)に基づいてコマンド発行の可否を判断して、NANDコントローラ38-jにコマンド発行の許可/不許可信号を送信する。NANDコントローラ38-jは、NANDデマンドマネージャ36から送信された許可信号を受信すると、コマンドを発行する。
【0061】
NANDコントローラ38-jは、実行中コマンドレジスタ102、重みレジスタ104、発行要求コマンドレジスタ106、重みレジスタ108、及び重みテーブル112を含む。
【0062】
重みテーブル112は、NAND I/F回路38(NANDコントローラ38-j)がNANDメモリ16に対して発行する可能性がある全てのコマンドの重みw(t)を記憶する。
【0063】
図6は、重みテーブル112の一例を示す。例えば、イレースコマンドには重みw1(t)が、データ・インコマンドには重みw2(t)が、プログラムコマンドには重みw3(t)が、リードコマンドには重みw4(t)が設定されている。
【0064】
図7(a)は、1個のNANDチップ16-iにおいてイレースコマンドに応じて実行される消去動作における消費電流を示す。図7(b)は、イレースコマンドに設定される重みw1(t)を示す。消去動作中のNANDチップ単体の消費電流は、イレース期間では小さく、ベリファイ期間では大きいので、イレースコマンドの重みw1(t)は以下のように設定される。
【0065】
0<t≦t1(例えば50)の時、w1(t)=w13(例えば300)
t1<t≦t2(例えば200)の時、w1(t)=w12(例えば100)
t2<t≦t3(例えば2000)の時、w1(t)=w11(例えば50)
t3<t≦t4(例えば2200)の時、w1(t)=w12
t4<t≦t5(例えば4000)の時、w1(t)=w11
t5<t≦t6(例えば4200)の時、w1(t)=w13
ここで、t2<t≦t3の期間とt4<t≦t5の期間がイレース期間に相当する。
【0066】
図7(c)は、1個のNANDチップ16-iにおけるプログラムコマンドにより実行される書き込み動作中のプログラム期間の消費電流を示す。図7(d)は、プログラムコマンドの重みw3(t)を示す。プログラム期間の消費電流は略一定であるので、プログラムコマンドの重みは、0<t≦t7(例えば3000)の時、w3(t)=w31(例えば100)として設定される。
【0067】
重みw(t)の時間tは、コマンドの実行開始時をt=0とする時間である。コマンドの実行期間は異なるので、コマンドに設定される重みw(t)の時間tの上限、すなわち時間長は、コマンドにより異なる。
【0068】
図5の説明に戻り、NANDデマンドマネージャ36は、ホスト12から送られたNANDチップ16-iに対するリード要求、ライト要求、イレース要求等を受けた場合、又はコントローラ38のファームウェアやデバイス等から発行されたNANDチップ16-iに対するガベージコレクション要求、リフレッシュ要求、デバッグ要求等のNANDメモリ16に対するバックグラウンド処理の要求を受けた場合、対応するNANDチップ16-iが接続されるNANDコントローラ38-jにコマンド発行要求を送信する。
【0069】
NANDコントローラ38-jは、NANDデマンドマネージャ36から送信されたコマンド発行要求を受信すると、要求されたコマンド(以下、発行要求コマンドと称される)を生成し、生成したコマンドを発行要求コマンドレジスタ106に書き込む。
【0070】
NANDコントローラ38-jは、発行要求コマンドを発行要求コマンドレジスタ106に書き込む際、重みテーブル112から、その発行要求コマンドの重みを読み出し、発行要求コマンドの重みwb(t)を重みレジスタ108に書き込む。発行要求コマンドの重みwb(t)は、発行要求コマンドを実行する1個のNANDチップ16-iが発行要求コマンドの発行時から発行要求コマンドの実行終了の予定時刻までの期間に消費する電流の予測値の変化を示す。
【0071】
NANDコントローラ38-jは、NANDデマンドマネージャ36から送信されたコマンド発行の許可信号を受信すると、発行要求コマンドレジスタ106に格納されている発行要求コマンドをNANDチップ16に対して発行し、発行したコマンドを発行要求コマンドレジスタ106から削除するとともに、実行中コマンドレジスタ102に書き込む。実行中コマンドレジスタ102は、NANDコントローラ38-jに接続されている16個のNANDチップ16が実行中の少なくとも1個のコマンド(以下、実行中コマンドと称される)を格納する。
【0072】
NANDコントローラ38-jは、発行したコマンドを実行中コマンドレジスタ102に書き込むと、発行したコマンドの重みwb(t)を重みレジスタ108から削除するとともに、重みwb(t)を実行中コマンドの重みwa(t)として重みレジスタ104に書き込む。重みレジスタ104は、実行中コマンドレジスタ102に格納されている少なくとも1個の実行中コマンドの重みwa1(t)、wa2(t)、…の重み合計Σwa(t)(=wa1(t)+wa2(t)+…)を記憶する。実行中コマンドの重みの重み合計Σwa(t)は、NANDコントローラ38-jが発行したコマンドの中の最新コマンドの発行時から実行終了の予定時刻までの期間の消費電流の予測値の変化を示す。
【0073】
発行要求コマンドの重みwb(t)の時間は、発行要求コマンドの発行時をt=0とする時間であり、実行中コマンドの重み合計Σwa(t)の時間tは、最新コマンドの発行時をt=0とする時間である。そのため、NANDコントローラ38-jは、発行要求コマンドの重みwb(t)の時間t=0を最新コマンドの発行時として、発行要求コマンドの重みwb(t)を実行中コマンドの重み合計Σwa(t)として、重みレジスタ104に書き込む。
【0074】
NANDコントローラ38-jが発行申請とともにNANDデマンドマネージャ36に送信する重み情報WIj(t)は、重みレジスタ104に格納されている重み合計Σwa(t)と重みレジスタ108に格納されているwb(t)の和(WIj(t)=Σwa(t)+wb(t))である。NANDコントローラ38-jは、コマンドの発行申請をNANDデマンドマネージャ36に送信する際に、重み情報WIj(t)を求める。NANDコントローラ38-jは、発行要求コマンドの重みwb(t)の時間t=0を最新コマンドの発行時間として、重みレジスタ104に格納されている重み合計Σwa(t)と重みレジスタ108に格納されているwb(t)の和(WIj(t)=Σwa(t)+wb(t))を計算する。
【0075】
NANDデマンドマネージャ36は、全てのNANDコントローラ38-jから送信された重み情報WIj(t)の合計(以下、重み情報合計と称される)ΣWIj(t)を記憶する重み情報合計レジスタ114と、重み情報合計ΣWIj(t)の許容値を記憶する許容値レジスタ116を含む。重みは消費電流に対応しているので、重み情報合計ΣWIj(t)の許容値は、SSD14の消費電流の許容値に対応する。
【0076】
NANDデマンドマネージャ36は、いずれかのNANDコントローラ38-jから送信された重み情報WIj(t)を受信する毎に、重み情報合計ΣWIj(t)を計算し、重み情報合計レジスタ114に格納されている重み情報合計ΣWIj(t)を更新する。
【0077】
図8は、スロットリング制御を行うNANDコントローラ38-jの各々の処理の一例を示すフローチャートである。図9は、スロットリング制御を行うNANDデマンドマネージャ36の処理の一例を示すフローチャートである。
【0078】
NANDコントローラ38-jは、図8の(S132)で、NANDデマンドマネージャ36から送信されたコマンド発行要求を受信したか否かを判定する。
【0079】
NANDコントローラ38-jは、NANDデマンドマネージャ36から送信されたコマンド発行要求を受信するまで、S132の判定処理を繰り返し実行する。
【0080】
NANDデマンドマネージャ36から送信されたコマンド発行要求を受信した場合(S132のYES)、NANDコントローラ38-jは、S134で、発行要求されたコマンドを生成し、生成したコマンドを発行要求コマンドレジスタ106に書き込む。
【0081】
NANDコントローラ38-jは、S136で、生成したコマンドの重みw(t)を重みテーブル112から読み出し、読み出した重みw(t)を発行要求コマンドの重みwb(t)として重みレジスタ108に書き込む。重みwb(t)が重みレジスタ108に書き込まれると、重み情報WIj(t)(=Σwa(t)+wb(t))は更新される。重み情報WIj(t)は、NANDコントローラ38-jに接続されている16個のNANDチップ16のそれぞれが発行要求コマンドの発行時から実行終了の予定時刻までの期間に消費する電流の合計の予測値を示す。
【0082】
NANDコントローラ38-jは、S138で、NANDデマンドマネージャ36に発行申請と重み情報WIj(t)を送信する。発行申請は、発行が要求されたコマンドを発行しても良いか否かをNANDデマンドマネージャ36に問い合わせるものである。
【0083】
一方、NANDデマンドマネージャ36は、図9のS162で、いずれかのNANDコントローラ38-jから送信された発行申請と重み情報WIj(t)を受信したか否かを判定する。
【0084】
NANDデマンドマネージャ36は、いずれかのNANDコントローラ38-jから送信された発行申請と重み情報WIj(t)を受信するまで、S162の判定処理を繰り返し実行する。
【0085】
NANDデマンドマネージャ36は、いずれかのNANDコントローラ38-jから送信された発行申請と重み情報WI(t)を受信すると(S162のYES)、S164で、受信した重み情報WIj(t)を重み情報合計レジスタ114に格納されている重み情報合計ΣWIj(t)に加算し、重み情報合計ΣWIj(t)を更新する。重み情報合計ΣWIj(t)は、全てのNANDコントローラ38-jに接続されている144個のNANDチップ16-iのそれぞれが発行要求コマンドの発行時から実行終了の予定時刻までの期間に消費する電流の合計の予測値を示す。
【0086】
NANDデマンドマネージャ36は、S166で、発行要求コマンドの発行時から実行終了の予定時刻までの期間、重み情報合計ΣWIj(t)が許容値レジスタ116に格納されている許容値以下であるか否かを判定する。
【0087】
発行要求コマンドの発行時から実行終了の予定時刻までの期間、重み情報合計ΣWIj(t)が許容値以下であると判断した場合(S166のYES)、発行申請に係るコマンドを発行してもSSD14の消費電流が許容値を超えることがないと予測できるので、NANDデマンドマネージャ36は、S168で、発行申請を送信したNANDコントローラ38-jに許可信号を送信する。
【0088】
発行要求コマンドの発行時から実行終了の予定時刻までの期間、重み情報合計ΣWIj(tc)が許容値以下ではないことがあると判断した場合(S166のNO)、発行申請に係るコマンドを発行するとSSD14の消費電流が許容値以下を保つことができないと予測できるので、NANDデマンドマネージャ36は、S170で、発行申請を送信したNANDコントローラ38-jに不許可信号を送信する。
【0089】
NANDデマンドマネージャ36は、S168又はS170を実行することにより、1つの発行申請に対する処理を完了するが、NANDデマンドマネージャ36は、S168又はS170の実行後、S162の受信判定処理を再び実行する。
【0090】
これにより、NANDデマンドマネージャ36は、SSD14の消費電流が許容値を超えることを予測した場合、コマンドの発行を許可しないので、SSD14の消費電流が許容値を超えることが防止される。
【0091】
図8の説明に戻り、NANDコントローラ38-jは、S138でNANDデマンドマネージャ36に発行申請と重み情報WIj(t)を送信後、S140で、NANDデマンドマネージャ36から送信された許可信号を受信したか否かを判定する。
【0092】
不許可信号を受信した場合(S140のNO)、NANDコントローラ38-jは、S132のコマンド発行要求の受信判定処理を再び実行する。
【0093】
許可信号を受信した場合(S140のYES)、NANDコントローラ38-jは、NANDデマンドマネージャ36に発行申請を行ったコマンドをNANDチップ16-iに発行する。具体的には、S142で、NANDコントローラ38-jは、発行要求コマンドレジスタ106から発行要求コマンドを読み出し、読み出したコマンドをNANDチップ16-iに送信するとともに、実行中コマンドレジスタ102に書き込む。
【0094】
NANDコントローラ38-jは、S144で、重みレジスタ108から発行要求コマンドの重みwb(t)を読み出し、読み出した重みwb(t)を実行中コマンドの重みwa(t)として重みレジスタ104に書き込む。NANDコントローラ38-jは、S145で、重みレジスタ104に格納されている重み合計Σwa(t)を更新し、重みレジスタ108に格納されている重みwb(t)をクリアする。この場合、重みwb(t)が0になるが、重み合計Σwa(t)がその分増加するので、重み情報WIj(t)は変化しない。
【0095】
NANDコントローラ38-jは、S146で、NANDチップ16-iから送信されたコマンド完了通知を受信したか否かを判定する。
【0096】
NANDコントローラ38-jは、NANDチップ16-iからのコマンド完了通知を受信するまで、S146の判定処理を繰り返す。
【0097】
NANDチップ16-iからのコマンド完了通知を受信した場合(S146のYES)、NANDコントローラ38-jは、S148で、レスポンス情報をNANDデマンドマネージャ36に送信する。レスポンス情報は、NANDデマンドマネージャ36が発行を要求したコマンドの実行結果をNANDコントローラ38-jからNANDデマンドマネージャ36に返信するものである。
【0098】
NANDコントローラ38-jは、S150で、実行完了したコマンドの重みwa(t)を重みレジスタ104に格納されている重み合計Σwa(t)から減算する。NANDコントローラ38-jは、S151で、重み合計Σwa(t)を更新し、実行完了したコマンドを実行中コマンドレジスタ102から削除する。
【0099】
(PLPコンデンサ24の充電制御)
図10は、PLPコンデンサ24の充電制御を行うコントローラ18の処理の流れの一例を示すフローチャートである。
【0100】
CPU32は、スロットリング制御と平行して、一定時間毎にPLPコンデンサ24の充電を実行するか否かをチェックする。CPU32は、一定時間をカウントするタイマを備える。CPU32は、S212で、SSD14が動作開始後にPLPコンデンサ24の充電を実行する契機となってから一定時間が経過したか、又は充電を実行するか否かの前回のチェックから一定時間が経過したかを判定する。一定期間は、短時間、例えば数マイクロ秒に設定される。
【0101】
一定時間が経過した場合(S212のYES)、CPU32は、S214で、NANDデマンドマネージャ36に重み情報合計の現在値ΣWIj(tc)をCPU32に送信することを要求する。CPU32は、S216で、NANDデマンドマネージャ36から送信された重み情報合計の現在値ΣWIj(tc)を受信する。
【0102】
CPU32は、S218で、重み情報合計の現在値ΣWIj(tc)が閾値以下であるか否かを判定する。閾値は、SSD14の総消費電流が小さい時にPLPコンデンサ24が充電されるようにするため、総消費電流が大きいか小さいかを判定するための閾値である。
【0103】
重み情報合計の現在値ΣWIj(tc)が閾値以下である場合(S218のYES)、SSD14の総消費電流は小さいので、PLPコンデンサ24を充電してもよい。CPU32は、S220で、前回の充電開始からの経過時間がTa以下であるか否かを判定する。
【0104】
前回の充電開始からの経過時間がTa以下である場合(S220のYES)、前回の充電開始から時間Taが経過しておらず、PLPコンデンサ24がPLP機能を作動させるに十分なエネルギを蓄えており、PLPコンデンサ24の充電は不要であると判断することができるため、CPU32は、S212の一定時間経過の判定処理を再度実行する。
【0105】
前回の充電開始からの経過時間がTa以下ではない場合(S220のNO)、前回の充電開始から時間Taが経過したため、自然放電によりPLPコンデンサ24が蓄えるエネルギが減少したと判断することができるので、CPU32は、S224で、PLPコンデンサ24の充電要求を電源回路22に送る。充電要求は、バスライン44、I2C I/F回路64を介して、コントロールロジック60に送信される。コントロールロジック60は、充電要求を受信すると、DC/DCコンバータ58aのPWM回路82を制御して、DC/DCコンバータ58aのスイッチング素子80をオン又はオフさせ、PLPコンデンサ24の充電を開始する。
【0106】
充電要求を電源回路22に送った後、CPU32は、S212の一定時間経過の判定処理を再び実行する。
【0107】
S218の判定で、重み情報合計の現在値ΣWIj(tc)が閾値以下ではない場合(S218のNO)、SSD14の総消費電流は大きいので、PLPコンデンサ24を充電しない方がよい。しかし、PLPコンデンサ24のエネルギがPLP機能を実現するためのエネルギ以下まで減少した場合は、例外的にPLPコンデンサ24を充電する必要がある。
【0108】
そのため、S218の判定で、重み情報合計の現在値ΣWIj(tc)が閾値以下ではない場合(S218のNO)、CPU32は、S222で、前回の充電完了からの経過時間がTb以下であるか否かを判定する。TbはTaより長い時間である。
【0109】
前回の充電完了からの経過時間がTb以下である場合(S222のYES)、前回の充電完了から時間Tbが経過していないため、PLPコンデンサ24はPLP機能を作動させることができるエネルギを蓄えていると判断できるので、CPU32は、S212の一定時間経過の判定処理を再度実行する。
【0110】
前回の充電完了からの経過時間がTb以下ではない場合(S222のNO)、前回の充電完了から時間Tbが経過したため、自然放電によりPLPコンデンサ24のエネルギが減少し、PLPコンデンサ24はPLP機能を作動させることができるエネルギを蓄えていないと判断できるので、CPU32は、S224で、PLPコンデンサ24の充電要求を電源回路22に送る。すなわち、PLPコンデンサ24の消費電流が大きいが、PLPコンデンサ24のエネルギがPLP機能を実現するためのエネルギ以下になった場合は、例外的に充電が許可される。
【0111】
S212で判定に使うタイマの一定期間を短くすればする程、S222の判定でNOとなる可能性は低くなる、すなわち、SSD14の総消費電流が大きい時にPLPコンデンサ24を充電する可能性は低くなる。
【0112】
実施形態によるメモリシステムによれば、コマンド実行期間の消費電流の変化が時間関数として予め設定されている。コントローラは、コマンドを発行する前に、コマンドを発行した場合の消費電流の変化を、時間関数に基づいて予測する。コントローラは、予測結果が消費電流が小さいことを示す場合、コマンドを発行する。コントローラは、予測結果が消費電流が大きいことを示す場合、コマンドを発行しない。コントローラは、一定時間毎に、消費電流をチェックする。コントローラは、消費電流が小さい場合は、定期的にPLPコンデンサ24を充電する。コントローラは、消費電流が大きい場合は、消費電流が小さい場合よりも長い周期で定期的にPLPコンデンサ24を充電する。
【0113】
このため、消費電流が大きい場合にPLPコンデンサ24が充電されることにより、SSDの消費電流が一時的に大きくなり、ピーク電流がSSDの許容電流値を超えてしまうことが防止される。これにより、ピーク電流要求と性能要求を両立させることが可能となる。
【0114】
実施形態によれば、メモリシステムの制御方法も提供できる。
【0115】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を生成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0116】
12…ホスト、14…SSD、16…NANDメモリ、18…コントローラ、22…電源回路、24…PLPコンデンサ、36…NANDデマンドマネージャ、38…NAND I/F回路、58…DC/DCコンバータ、60…コントールロジック
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10