(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-13
(45)【発行日】2024-12-23
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
G11C 5/14 20060101AFI20241216BHJP
G06F 12/00 20060101ALI20241216BHJP
G06F 12/1027 20160101ALI20241216BHJP
【FI】
G11C5/14 370
G06F12/00 550E
G06F12/1027
(21)【出願番号】P 2020173165
(22)【出願日】2020-10-14
【審査請求日】2023-09-11
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100176599
【氏名又は名称】高橋 拓也
(74)【代理人】
【識別番号】100205095
【氏名又は名称】小林 啓一
(74)【代理人】
【識別番号】100208775
【氏名又は名称】栗田 雅章
(72)【発明者】
【氏名】小林 将
(72)【発明者】
【氏名】内田 大輔
(72)【発明者】
【氏名】藤井 通太
【審査官】後藤 彰
(56)【参考文献】
【文献】米国特許出願公開第2015/0023101(US,A1)
【文献】特表2020-505696(JP,A)
【文献】特開2016-139450(JP,A)
【文献】特開2007-035091(JP,A)
【文献】特開2006-228361(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 5/14
G06F 12/00
G06F 12/1027
(57)【特許請求の範囲】
【請求項1】
ホストに接続可能で、前記ホストからコマンドを受信した場合に低電力状態またはパワーオフ状態に遷移し得るメモリシステムであって、
テーブルデータを格納する不揮発性メモリと、
前記ホストからの要求に基づいて前記不揮発性メモリへのデータの書き込み及び読み出しを含む所定の制御を実行する
メモリコントローラと、を備え、
前記
メモリコントローラは、
前記メモリシステムが前記低電力状態に遷移した場合、電源が供給されて前記テーブルデータの一部を保持するリテンション状態と、電源が遮断されるパワーダウン状態との何れかを取り得る揮発性メモリと、
前記低電力状態に遷移すると計測を開始するタイマーと、
前記低電力状態から復帰する時間の履歴を格納するレジスタと、を備え、
前記
メモリコントローラは、前記タイマーの計測値が前記履歴の平均値に基づいて算出される閾値以上である場合、前記揮発性メモリを前記リテンション状態から前記パワーダウン状態に遷移させる、
メモリシステム。
【請求項2】
前記閾値は、前記平均値と第1値とに基づいて設定される値である請求項1に記載のメモリシステム。
【請求項3】
前記
メモリコントローラは、前記第1値より小さい第2値と前記平均値とに基づいて設定される値以上かつ前記閾値未満の範囲である外れ値に、前記低電力状態から復帰する際の前記タイマーの計測値が該当する場合、前記履歴を破棄する請求項2に記載のメモリシステム。
【請求項4】
前記
メモリコントローラは、前記低電力状態から復帰する際の前記タイマーの計測値が前記平均値と前記第2値とに基づいて設定される値未満である場合、前記低電力状態から復帰する時間を前記レジスタに格納する請求項3に記載のメモリシステム。
【請求項5】
前記テーブルデータは、論理物理アドレス変換テーブルである請求項1に記載のメモリシステム。
【請求項6】
前記揮発性メモリは、
前記テーブルデータの一部を一時的に保持するための記憶部と、
前記記憶部へのデータの入出力を制御する制御回路と、を有し、
前記低電力状態時に前記記憶部に対して電源が供給され、かつ、前記制御回路への電源供給が遮断される前記リテンション状態と、前記記憶部と前記制御回路の両方への電源供給が遮断される前記パワーダウン状態との何れかを取り得るリテンションSRAMである請求項1乃至請求項5のいずれか一項に記載のメモリシステム。
【請求項7】
前記
メモリコントローラは、前記閾値が更新される度に前記不揮発性メモリに前記閾値を書き込み、前記低電力状態または前記パワーオフ状態から復帰した際に前記不揮発性メモリに書き込んだ前記閾値を読み出す請求項1乃至請求項5のいずれか一項に記載のメモリシステム。
【請求項8】
前記低電力状態はハイバネーション状態であり、
前記不揮発性メモリはNAND型フラッシュメモリである請求項1乃至5のいずれか一項に記載のメモリシステム。
【請求項9】
ホストに接続可能で、前記ホストからコマンドを受信した場合に低電力状態またはパワーオフ状態に遷移し得るメモリシステムであって、
テーブルデータを格納する不揮発性メモリと、
前記ホストからの要求に基づいて前記不揮発性メモリへのデータの書き込み及び読み出しを含む所定の制御を実行する
メモリコントローラと、を備え、
前記
メモリコントローラは、
前記メモリシステムが前記低電力状態に遷移した場合、電源が供給されて前記テーブルデータの一部を保持するリテンション状態と、電源が遮断されるパワーダウン状態との何れかを取り得る揮発性メモリと、
前記低電力状態に遷移すると計測を開始するタイマーと、
前記不揮発性メモリへのデータの書き込み及び読み出しの回数を計測する第1カウンタと、
前記
揮発性メモリに前記テーブルデータの一部を更新する回数を計測する第2カウンタと、を備え、
前記
メモリコントローラは、前記第1カウンタ及び前記第2カウンタが計測する回数に基づいて前記揮発性メモリを前記リテンション状態から前記パワーダウン状態に遷移させるタイミングを制御する、
メモリシステム。
【請求項10】
前記
メモリコントローラは、前記タイマーの計測値が、前記第2カウンタが計測する回数に基づいて算出される閾値を超える場合に前記揮発性メモリを前記リテンション状態から前記パワーダウン状態に遷移させる請求項9に記載のメモリシステム。
【請求項11】
前記
メモリコントローラは、前記第1カウンタが第3値以上を計測し、かつ、前記第2カウンタが第4値以上を計測する場合に、前記閾値を第5値だけ減じて、前記第1カウンタが第3値以上を計測し、かつ、前記第2カウンタが第4値未満を計測する場合に、前記閾値を第6値だけ加える、請求項10に記載のメモリシステム。
【請求項12】
前記テーブルデータは、論理物理アドレス変換テーブルである請求項9に記載のメモリシステム。
【請求項13】
前記揮発性メモリは、
前記テーブルデータを一時的に保持するための記憶部と、
前記記憶部へのデータの入出力を制御する制御回路と、を有し、
前記低電力状態時に前記記憶部に対して電源が供給され、かつ、前記制御回路への電源供給が遮断される前記リテンション状態と、前記記憶部と前記制御回路の両方への電源供給が遮断される前記パワーダウン状態とを取り得るリテンションSRAMである請求項9乃至請求項12のいずれか一項に記載のメモリシステム。
【請求項14】
前記
メモリコントローラは、前記閾値が更新される度に前記不揮発性メモリに前記閾値を書き込み、前記低電力状態または前記パワーオフ状態から復帰した際に前記不揮発性メモリに書き込んだ前記閾値を読み出す請求項10又は請求項11に記載のメモリシステム。
【請求項15】
前記低電力状態はハイバネーション状態であり、
前記不揮発性メモリはNAND型フラッシュメモリである請求項9乃至請求項12のいずれか一項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【0002】
NAND型フラッシュメモリのような不揮発性メモリと、メモリコントローラとを備えるメモリシステムが知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-156707号公報
【文献】特開2015-232772号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、メモリコントローラの消費電流を低減することが可能なメモリシステムを提供することである。
【課題を解決するための手段】
【0005】
実施形態に係るメモリシステムは、ホストに接続可能で、ホストからコマンドを受信した場合に低電力状態またはパワーオフ状態に遷移し得るメモリシステムであって、テーブルデータを格納する不揮発性メモリと、ホストからの要求に基づいて不揮発性メモリへのデータの書き込み及び読み出しを含む所定の制御を実行するメモリコントローラとを有する。メモリコントローラは、メモリシステムが低電力状態に遷移した場合、電源が供給されてテーブルデータの一部を保持するリテンション状態と、電源が遮断されるパワーダウン状態との何れかを取り得る揮発性メモリと、低電力状態に遷移すると計測を開始するタイマーと、低電力状態から復帰する時間の履歴を格納するレジスタとを有する。メモリコントローラは、タイマーの計測値が履歴の平均値に基づいて算出される閾値以上である場合、揮発性メモリをリテンション状態からパワーダウン状態に遷移させる。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るメモリシステムの全体構成例を示す図である。
【
図2】
図1のメモリシステムにおけるリテンション状態時の各ブロックの通電状態を示す図である。
【
図3】
図1のメモリシステムにおけるパワーダウン状態時の各ブロックの通電状態を示す図である。
【
図4】第1実施形態に係るリテンションSRAMの回路図である。
【
図5】第1実施形態に係るメモリシステムのタイマーの閾値及び外れ値の更新について説明する図である。
【
図6】第1実施形態に係る記憶部の構成の一例を示す図である。
【
図7】第1実施形態に係るメモリチップの構成の一例を示す図である。
【
図8】第1実施形態に係るメモリシステムの動作例を示す図である。
【
図9】比較例に係るメモリシステムのタイミングチャートである。
【
図10】第1実施形態に係るメモリシステムのタイミングチャートである。
【
図11】第2実施形態に係るメモリシステムの全体構成例を示す図である。
【
図12】第2実施形態に係るメモリシステムの動作例を示す図である。
【
図13】変形例に係るメモリシステムの動作例を示す図である。
【発明を実施するための形態】
【0007】
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能および構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法の例示であって、各構成要素の配置や各構成要素間の接続関係等は以下で説明する形態に限定されるものではない。
【0008】
また、各機能ブロックは、ハードウェアやコンピュータソフトウェアのいずれか、または両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。さらに、各機能ブロックは、図示される実施形態の例のように区分けされることは必須ではない。例えば、ある一部の機能が、例示する機能ブロックとは別の機能ブロックとの協働によって実行されてもよい。さらに、例示する機能ブロックは、さらに細かい機能サブブロックに分割されて構成されていてもよい。
【0009】
(1)第1実施形態
第1実施形態のメモリシステムについて、
図1乃至
図9を参照して説明する。
【0010】
(1)‐(a)メモリシステムの構成例
図1は、ホスト4に接続されたメモリシステム1の全体構成例を示すブロック図である。メモリシステム1は、ホスト4に通信線5を介して接続され、ホスト4の外部記憶装置として機能する。メモリシステム1は、UFS(Universal Flash Storage)規格やeMMC(embedded Multi Media Card)規格などに準拠した組み込み用途のフラッシュメモリや、SSD(Solid State Drive)などである。メモリシステム1は、メモリコントローラ2と不揮発性メモリ3を備える。
【0011】
ホスト4は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。ホスト4とメモリシステム1とは、通信線5を介して、例えば、UFS規格、SAS(Serial Attached SCSI)規格、SATA(Serial Advanced Technology Attachment)規格、PCIe(登録商標)(Peripheral Component Interconnect express)規格、NVMe(登録商標)(Non-Volatile Memory express)規格に準拠したパケットを送受信できる。
【0012】
メモリシステム1は、ホスト4からハイバネーション状態へ遷移するコマンド(Hibernate enter request)を受信することで、ハイバネーション状態に遷移する。メモリシステム1は、ホスト4からコマンド(Hibernate exit request)を受信することで、ハイバネーション状態から復帰する。ハイバネーション状態とは、メモリシステム1が使用されない時に消費電力を少なくする状態(低電力状態)である。さらに、メモリシステム1は、ホスト4からの要求により、ハイバネーション状態からパワーオフ状態に遷移する場合がある。パワーオフ状態とは、メモリシステム1の電源が完全に落ちている状態である。特に、AC電源に接続されずバッテリを電源とするメモリシステムでは、適宜、ハイバネーション状態とすることにより、電源を長持ちさせることができる。
【0013】
メモリコントローラ2は、例えばホストインターフェース(I/F)回路21、タイマー22、発振器23、CPU(Central Processing Unit)24、テーブルキャッシュ25、メモリインターフェース(I/F)回路26、記憶部27、SRAM(Static Random Access Memory)電源制御回路28を備える。これらは、バス29により接続されている。メモリコントローラ2は、例えばSoC(System-on-a-Chip)を含むコントローラパッケージとして実装され得る。
【0014】
ホストI/F回路21は、メモリコントローラ2とホスト4との間のインターフェース処理を行う。ホストI/F回路21は、ホスト4に通信線5を介して接続されている。なお、通信線5を介さずに無線接続としても良い。ホストI/F回路21は、通信検出部212を有する。通信検出部212は、ホスト4と接続された信号線の振幅を確認する。メモリシステム1は、ホスト4からの信号線の振幅を確認すると、ホスト4と通信を開始したとみなし、ハイバネーション状態から復帰する。
【0015】
タイマー22は、メモリシステム1がハイバネーション状態に遷移すると計測を開始する。そして、タイマー22は、メモリシステム1がハイバネーション状態から復帰すると計測値を初期化する。
【0016】
発振器23は、タイマー22に接続される。発振器23は、例えばRC発振器である。発振器23は、メモリシステム1がハイバネーション状態でも動作可能である。そのため、発振器23が動作することにより、タイマー22の計測を継続できる。発振器23は、後述するテーブルキャッシュ25がパワーダウン状態に遷移した場合、動作を停止する。
【0017】
CPU24は、メモリコントローラ2全体の動作を制御する。このCPU24を制御するプログラムは、後述するROM(Read Only Memory)272の中に格納されているファームウェア(制御プログラム等)を用いるかあるいは、ROM272に保持されているプログラムを後述するRAM(Random Access Memory)274上にロードして所定の処理を実行する。すなわち、CPU24は、各種のテーブルをRAM274上に作成し、ホスト4からライト(書き込み)コマンド、リード(読み出し)コマンド、及び、イレース(消去)コマンドを受けて、不揮発性メモリ3に対し、データ書き込み、データ読み出し、及び、データ消去を行う。コマンドは、例えば、命令や要求と称することもある。不揮発性メモリ3へのデータ書き込みや不揮発性メモリ3からのデータ読み出し等のデータ転送は、メモリI/F回路26及びホストI/F回路21等を介して外部のホスト4との間で行われる。
【0018】
テーブルキャッシュ25は、テーブルデータを一時的に保持する。テーブルデータは、所定サイズを有するデータ集合である。テーブルデータは、例えば、後述する論理物理アドレス変換テーブル(L2Pテーブル)の少なくとも一部である。
【0019】
テーブルキャッシュ25は、SRAMあるいはレジスタなどの揮発性メモリで構成される。本実施形態においては、テーブルキャッシュ25がリテンションSRAM25で構成される場合について説明する。
【0020】
リテンションSRAM25は、記憶部252と制御回路254を備える。記憶部252は、テーブルデータを一時的に保持する。なお、記憶部252をデータ保持回路252と称する場合もある。制御回路254は、記憶部252へのデータの書き込み及び読み出しに必要な制御を行う。制御回路254は、例えばアドレッシング及びクロックゲーティング制御などを行う。
【0021】
図2と
図3は、メモリシステム1がハイバネーション状態時の
図1における各ブロックの通電状態を示す図である。
図2は、リテンションSRAM25がリテンション状態の場合の通電状態を示す。リテンション状態とは、テーブルキャッシュ25において、記憶部252へ電源供給されることによりテーブルデータを一時的に保持し、一方では、制御回路254への電源供給は停止され、その分消費電力を低減させることができる。記憶部252に対するデータの入出力はできない。
図3は、リテンションSRAM25がパワーダウン状態の場合の通電状態を示す。パワーダウン状態とは、テーブルキャッシュ25において、記憶部252および制御回路254への各々の電源供給が停止され、リテンション状態よりも更に消費電力を低減させることができる状態である。記憶部252が保持していたテーブルデータは消失する。メモリシステム1がハイバネーション状態では、
図2と
図3の斜線部で示すように、ホストI/F回路21(通信検出部212を除く)、CPU24、テーブルキャッシュ25(一部もしくは全部)、メモリI/F回路26、及び不揮発性メモリ3の電源が遮断されている。
【0022】
リテンションSRAM25は、メモリシステム1がハイバネーション状態に遷移した際に、リテンション状態とパワーダウン状態の2つの状態の何れかを取りうる。
【0023】
リテンションSRAM25がリテンション状態からパワーダウン状態に遷移するタイミングは、CPU24が設定したタイマー22の閾値で決まっている。なお、以下の説明では、リテンションSRAM25がリテンション状態に遷移してから、メモリシステム1がハイバネーション状態から復帰、もしくは、リテンションSRAM25がパワーダウン状態に遷移するまでの時間をリテンション滞在時間と称する。
【0024】
図4は、リテンションSRAM25の回路図である。以下では、リテンションSRAM25の回路の主要な構成部分を中心に説明するが、リテンションSRAM25の回路には、図示又は説明されていない構成部分や機能が存在しうる。以下の説明は、図示又は説明されていない構成部分や機能を除外するものではない。
【0025】
電源電圧VDDは電源線256に印加され、グランド電圧VSSはグランド線258に印加されている。
【0026】
パワースイッチPWS1にはソース端子を介して電源電圧VDDが供給されている。パワースイッチPWS1は、ゲート端子に供給される制御信号PWS1ENに応じて、記憶部252に対して電源電圧VDDを供給あるいは遮断する。すなわち、リテンションSRAM25がパワーダウン状態に遷移すると、制御信号PWS1ENにより、パワースイッチPWS1がオフになる。そして、記憶部252への電源供給が停止する。
【0027】
パワースイッチPWS2にはソース端子を介して電源電圧VDDが供給されている。パワースイッチPWS2は、ゲート端子に供給される制御信号PWS2ENに応じて、制御回路254に対して電源電圧VDDを供給あるいは遮断する。すなわち、リテンションSRAM25がリテンション状態に遷移すると、制御信号PWS2ENにより、パワースイッチPWS2がオフになる。そして、制御回路254への電源供給が停止する。
【0028】
CPU24は、メモリシステム1がハイバネーション状態から復帰した際に、後述するレジスタ276にハイバネーション復帰時間を更新する。さらに、CPU24は、タイマー22の閾値及び外れ値の更新を行う。タイマー22は、計測値が閾値以上であるか否かを自身で判断する。タイマー22は、計測値が外れ値に該当するか否かを自身で判断する。ホスト4は、タイマー22の閾値及び外れ値の初期値を任意の値に設定する。これらの初期値は、メモリシステム1が初めてハイバネーション状態に遷移した際に使用される。
【0029】
タイマー22の閾値は、例えばレジスタ276が保持するハイバネーション復帰時間の履歴の平均値(平均ハイバネーション復帰時間)のn_times倍である。n_timesは、後述するx_rangeよりも大きい正の整数値である。タイマー22の計測値が閾値以上になると、リテンションSRAM25は、リテンション状態からパワーダウン状態に遷移する。
【0030】
タイマー22の外れ値は、例えば平均ハイバネーション復帰時間のx_range倍以上かつ閾値未満の範囲に当てはまる値である。x_rangeは、n_timesよりも小さい正の整数値である。メモリシステム1がハイバネーション状態から復帰するのに、外れ値に該当する時間を要した場合、CPU24は、レジスタ276が保持するハイバネーション復帰時間の履歴を破棄する。そして、CPU24は、タイマーの計測値を新たにレジスタ276に履歴として更新する。なお、この動作は、CPU24に電源が供給されている間に行われる。
【0031】
図5は、タイマー22の閾値及び外れ値の更新について説明する図である。CPU24は、例えば、n_timesを10、x_rangeを4と設定する。平均ハイバネーション復帰時間が15msである場合、CPU24は、タイマー22の閾値を15ms×10=150msと設定する。また、CPU24は、タイマー22の外れ値に該当する範囲を15ms×4=60ms以上かつ150ms未満と設定する。
【0032】
ハイバネーション復帰時間が75msの場合は外れ値に該当し、平均ハイバネーション復帰時間である15msから大きく外れた値である。そのため、CPU24は、レジスタ276が保持するハイバネーション復帰時間の履歴を破棄した後、タイマー22の計測値を新たにレジスタ276に履歴として更新する。以降、ハイバネーション状態への遷移と復帰をメモリシステム1が繰り返す毎に、ハイバネーション復帰時間の履歴がレジスタ276に蓄積される。
【0033】
タイマー22の計測値が閾値である150ms以上になると、リテンションSRAM25は、リテンション状態からパワーダウン状態に遷移する。なお、ハイバネーション復帰時間が閾値以上である場合、CPU24は、レジスタ276に格納されているハイバネーション復帰時間の履歴の破棄及び更新を行わない。
【0034】
CPU24は、n_timesとx_rangeの値を適宜変更することが可能である。なお、ホスト4がn_timesとx_rangeの値を変更してもよい。タイマー22の閾値は、平均ハイバネーション復帰時間に基づいて決まるため、閾値には上限値及び下限値が設けられている。閾値の上限値及び下限値は、ホスト4によって変更可能である。
【0035】
図6は、記憶部27の構成の一例を示す図である。記憶部27は、ROM272、RAM274及びレジスタ276を有する。レジスタ276は、例えば、タイマー22の閾値の上限値及び下限値並びにハイバネーション復帰時間の履歴を格納する。
【0036】
SRAM電源制御回路28は、タイマー22の計測値が閾値以上になると、リテンションSRAM25をリテンション状態からパワーダウン状態に遷移させる。
【0037】
メモリI/F回路26は、メモリコントローラ2と不揮発性メモリ3との間のインターフェース処理を行う。メモリI/F回路26は、後述するメモリチップ30に通信線6を介して接続されている。
【0038】
不揮発性メモリ3は、例えば、積層ゲート構造のメモリセル、又はMONOS構造のメモリセルを含むNAND型フラッシュメモリである。NAND型フラッシュメモリでは、一般に、ページと呼ばれるデータ単位で、書き込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。不揮発性メモリ3は、メモリコントローラ2の外部に配置され、不揮発性メモリパッケージとして実装され得る。不揮発性メモリ3は、1個もしくは複数個のメモリチップ30を備える。
図1では一例としてメモリチップ30-1~30-n(nは1以上の自然数)が図示されている。メモリチップ30の各々は、互いに独立して動作可能である。
【0039】
不揮発性メモリ3は、例えば、ユーザデータと論理物理アドレス変換テーブルなどの管理情報とを格納する。論理物理アドレス変換テーブルは、以下の説明にてアドレス変換テーブルと称する。アドレス変換テーブルは、論理アドレスそれぞれと不揮発性メモリ3の物理アドレスそれぞれとの間のマッピングを管理する。論理アドレスは、メモリシステム1の論理空間内の位置をアドレス指定するためにホスト4によって使用されるアドレスである。この論理アドレスとしては、LBA(Logical Block Address)が使用され得る。物理アドレスは、データが格納されている不揮発性メモリ3内の物理記憶位置を示す。アドレス変換テーブルは、論理アドレスを、この論理アドレスに対応するデータが格納されている不揮発性メモリ3内の物理記憶位置を示す物理アドレスに変換するために使用される。
【0040】
通常、メモリシステム1が電源オン状態直後のような初期状態では、テーブルキャッシュ25は空である。論理物理アドレス変換に使用されるアドレス変換データ(テーブルデータ)は、テーブルキャッシュ25にキャッシュされる。ホスト4によって指定された論理アドレスに対応する物理アドレス(少なくともこの物理アドレスを含むテーブルデータ)がテーブルキャッシュ25に存在する場合、メモリコントローラ2は、不揮発性メモリ3のアドレス変換テーブルをリードする代わりに、テーブルキャッシュ25からこの物理アドレス(テーブルデータ)をリードする。これにより、ホスト4からリードコマンドが受信された時に、不揮発性メモリ3のアドレス変換テーブルをリードする回数を減らすことができるので、メモリシステム1の性能を改善することができる。
【0041】
次に、メモリチップ30の構成例について、
図7を用いて説明する。
図7は、メモリチップ30の構成の一例を示すブロック図である。メモリチップ30は、入出力回路31、ロジックコントローラ32、レディ/ビジー制御回路33、レジスタ34、シーケンサ35、電圧生成回路36、センスアンプモジュール37、ロウデコーダモジュール38、及びメモリセルアレイ39を備えている。
【0042】
入出力回路31は、例えば8ビット幅の入出力信号I/O(I/O1~I/O8)を、メモリコントローラ2との間で送受信する。例えば入出力回路31は、メモリコントローラ2から受信する入出力信号I/Oに含まれる書き込みデータDATをセンスアンプモジュール37に転送する。また、入出力回路31は、センスアンプモジュール37から転送される読み出しデータDATを入出力信号I/Oとしてメモリコントローラ2に送信する。
【0043】
ロジックコントローラ32は、メモリコントローラ2から受信した各種制御信号に基づいて、入出力回路31及びシーケンサ35を制御する。各種制御信号としては、例えばチップイネーブル信号/CE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号/WE、リードイネーブル信号/RE、及びライトプロテクト信号/WPが使用される。信号/CEは、メモリチップ30をイネーブルにするための信号である。信号CLEは、アサートされている信号CLEと並行してメモリチップ30に入力される信号がコマンドCMDであることを入出力回路31に通知するための信号である。信号ALEは、アサートされている信号ALEと並行してメモリチップ30に入力される信号がアドレス情報ADDであることを入出力回路31に通知するための信号である。信号/WE及び/REはそれぞれ、例えば入出力信号I/Oの入力及び出力を入出力回路31に対して命令する信号である。信号/WPは、例えば電源のオンオフ時にメモリチップ30を保護状態にするための信号である。
【0044】
レディ/ビジー制御回路33は、シーケンサ35の動作状態に基づいてレディ/ビジー信号RBnを生成する。信号RBnは、メモリチップ30がメモリコントローラ2からの命令を受け付けるレディ状態であるか、命令を受け付けないビジー状態であるかを、メモリコントローラ2に通知する信号である。
【0045】
レジスタ34は、ステータスレジスタ34A、アドレスレジスタ34B、コマンドレジスタ34Cを含んでいる。ステータスレジスタ34Aは、例えばシーケンサ35のステータス情報STSを保持し、このステータス情報STSをシーケンサ35の指示に基づいて入出力回路31に転送する。アドレスレジスタ34Bは、入出力回路31から転送されたアドレス情報ADDを保持する。アドレス情報ADDに含まれたブロックアドレス、カラムアドレス、及びページアドレスは、それぞれロウデコーダモジュール38、センスアンプモジュール37、及び電圧生成回路36で使用される。コマンドレジスタ34Cは、入出力回路31から転送されたコマンドCMDを保持する。
【0046】
シーケンサ35は、コマンドレジスタ34Cに保持されたコマンドCMDに基づいて、メモリチップ30全体の動作を制御する。例えば、シーケンサ35は、電圧生成回路36、センスアンプモジュール37、ロウデコーダモジュール38等を制御して、書き込み動作や読み出し動作等の各種動作を実行する。
【0047】
電圧生成回路36は、シーケンサ35の制御に基づいて所望の電圧を生成し、生成した電圧をセンスアンプモジュール37、ロウデコーダモジュール38、メモリセルアレイ39等に供給する。例えば電圧生成回路36は、アドレスレジスタ34Bに保持されたページアドレスに基づいて、選択ワード線に対応する信号線、及び非選択ワード線に対応する信号線に対してそれぞれ所望の電圧を印加する。
【0048】
センスアンプモジュール37は、メモリセルアレイ39から読み出したデータDATを、入出力回路31を介してメモリコントローラ2に出力する。また、センスアンプモジュール37は、メモリコントローラ2から入出力回路31を介して受け取った書き込みデータDATを、メモリセルアレイ39に転送する。
【0049】
ロウデコーダモジュール38は、アドレスレジスタ34Bに保持されたブロックアドレスに基づいて、各種動作を実行する対象のブロックBLKを選択する。そしてロウデコーダモジュール38は、電圧生成回路36から供給された電圧を、選択したブロックBLKに転送する。
【0050】
メモリセルアレイ39は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックBLKを備えている。
図7では一例としてブロックBLK0~BLKn(nは1以上の自然数)が図示されている。そしてメモリセルアレイ39は、メモリコントローラ2から与えられたデータを記憶する。
【0051】
(1)‐(b) メモリシステムの動作例
次に、
図8を用いてメモリシステム1の動作例について説明する。
まず、メモリシステム1が、ホスト4からHibernate enter requestコマンドを受信してハイバネーション状態に遷移すると、タイマー22は、計測を開始する(S11)。
タイマー22の計測値が外れ値に該当する場合(S12でYesの場合)、S15に進む。
タイマー22の計測値が外れ値に該当しない場合(S12でNoの場合)、S13に進む。
メモリシステム1が、ホスト4からHibernate exit requestコマンドを受信しておらず、ハイバネーション状態から復帰していない場合(S13でNoの場合)、S12に戻って前述したのと同様の処理を行う。
メモリシステム1が、ホスト4からHibernate exit requestコマンドを受信してハイバネーション状態から復帰した場合(S13でYesの場合)、CPU24は、レジスタ276にハイバネーション復帰時間を更新し、タイマー22は、計測値を初期化する(S14)。そして、処理を終了する。
タイマー22の計測値が閾値未満である場合(S15でNoの場合)、S16に進む。
メモリシステム1が、ホスト4からHibernate exit requestコマンドを受信しておらず、ハイバネーション状態から復帰していない場合(S16でNoの場合)、S15に戻って前述したのと同様の処理を行う。
メモリシステム1が、ホスト4からHibernate exit requestコマンドを受信してハイバネーション状態から復帰した場合(S16でYesの場合)、CPU24は、レジスタ276に格納されているハイバネーション復帰時間の履歴を破棄する(S17)。そして、CPU24は、S16でYesの場合のハイバネーション復帰時間をレジスタ276に更新する(S17)。なお、タイマー22は、計測値を初期化する(S17)。そして、処理を終了する。
タイマー22の計測値が閾値以上である場合(S15でYesの場合)、SRAM電源制御回路28が、リテンションSRAM25の記憶部252の電源を遮断することで、リテンションSRAM25はパワーダウン状態に遷移する(S18)。そして、タイマー22は計測値を初期化する(S18)。そして、処理を終了する。
閾値の値については、大きめの値から始めて、メモリシステムの使用状況に応じて徐々に小さい値に絞り込んでいくとよい。
以上のように、メモリシステム1の制御を行う。
【0052】
図9は、比較例に係るメモリシステムのタイミングチャートである。
図10は、本実施形態に係るメモリシステム1のタイミングチャートである。
図9及び
図10では、各々のメモリシステムもしくはリテンションSRAMが或る状態に遷移した場合に、High(“H”)レベルで示し、或る状態から復帰した場合にLow(“L”)レベルで示す。
【0053】
比較例のメモリシステムでは、ハイバネーション状態からの復帰時間を短くするためにリテンションSRAMにテーブルデータを保持する。この時、長くハイバネーション状態が続くと、その分、リテンションSRAMの電流を消費する。しかし、メモリシステムがハイバネーション状態から復帰した後、リテンションSRAMに保持しているテーブルデータが参照されない場合がある。比較例のメモリシステムでは、リテンションSRAMに保持しているテーブルデータが参照されない可能性が高い場合であっても、ハイバネーション状態から復帰するまでリテンション状態が維持される。
【0054】
一方で、本実施形態に係るメモリシステム1では、リテンションSRAM25のリテンション滞在時間に対して閾値を設定する。閾値はハイバネーション復帰時間の履歴の平均値を基に算出される。リテンションSRAM25のリテンション滞在時間が設定した閾値を超えた場合、メモリシステム1がハイバネーション状態から復帰後、リテンションSRAM25が保持するテーブルデータは参照されない可能性が高い。そのため、SRAM電源制御回路28がリテンションSRAM25の記憶部252の電源を遮断し、リテンションSRAM25をパワーダウン状態に遷移させる。その結果、リテンションSRAM25のデータ保持回路の電源を遮断した分の消費電流を低減することが可能である。
【0055】
(2)第2実施形態
第2実施形態のメモリシステムについて、
図11乃至
図12を参照して説明する。
【0056】
(2)‐(a)メモリシステムの構成例
図11は、ホスト4に接続されたメモリシステム1aの全体構成例を示すブロック図である。第2実施形態に係るメモリシステム1aは、基本的に第1実施形態に係るメモリシステム1と同様に構成されているが、カウンタ52及びカウンタ54を有する点において異なっている。
【0057】
カウンタ52は、テーブルデータを新たにリテンションSRAM25に更新した回数をカウントする。テーブルデータは、例えば、論理物理アドレス変換テーブルの少なくとも一部である。カウンタ54は、メモリアクセスの回数をカウントする。メモリアクセスとは、不揮発性メモリ3へのデータの書き込み及びデータの読み出しのことである。なお、メモリシステム1aがハイバネーション状態に遷移した際に、カウンタ52及びカウンタ54の電源は遮断されてもよい。カウンタ52及びカウンタ54が計測した値は、メモリシステム1aがハイバネーション状態から復帰後に0の値(初期値)となる。そして、カウンタ52及びカウンタ54は、テーブルデータを新たにリテンションSRAM25に更新した回数及びメモリアクセスの回数のそれぞれを再びカウントする。
【0058】
(2)‐(b) メモリシステムの動作例
次に、
図12を用いてメモリシステム1aの動作例について説明する。
まず、メモリシステム1aが、ホスト4からHibernate enter requestコマンドを受信してハイバネーション状態へ遷移する(S22)。
次に、メモリシステム1aが、ホスト4からHibernate exit requestコマンドを受信してハイバネーション状態から復帰する(S23)。
次に、メモリシステム1aがハイバネーション状態から復帰後、ホスト4からHibernate enter requestコマンドを受信した場合(S24でYesの場合)、S22に戻って前述したのと同様の処理を行う。
次に、メモリシステム1aがハイバネーション状態から復帰後、ホスト4からHibernate enter requestコマンドを受信していない場合(S24でNoの場合)、S25に進む。
メモリアクセスがN_count回行われていない場合(S25でNoの場合)、S24に戻って前述したのと同様の処理を行う。
メモリアクセスがN_count回行われた場合(S25でYesの場合)、S26に進む。
テーブルデータをM_count回更新した場合(S26でYesの場合)、CPU24は、タイマー22の閾値をd_time減少させる(S27)。そして、処理を終了する。
テーブルデータをM_count回更新していない場合(S26でNoの場合)、CPU24は、タイマー22の閾値をi_time増加させる(S28)。そして、処理を終了する。
以上のように、メモリシステム1aの制御を行う。
【0059】
CPU24は、N_count、M_count、i_time、d_timeの値を適宜変更することが可能である。なお、ホスト4がN_count、M_count、i_time、d_timeの値を変更してもよい。
【0060】
本実施形態に係るメモリシステム1aでは、リテンションSRAM25のリテンション滞在時間に対して閾値を設定する。閾値はテーブルデータを新たにリテンションSRAM25に更新した回数を基に算出される。リテンションSRAM25のリテンション滞在時間が設定した閾値を超えた場合、メモリシステム1aがハイバネーション状態から復帰後、リテンションSRAM25が保持するテーブルデータは参照されない可能性が高い。そのため、SRAM電源制御回路28がリテンションSRAM25の記憶部252の電源を遮断し、リテンションSRAM25をパワーダウン状態に遷移させる。その結果、リテンションSRAM25のデータ保持回路の電源を遮断した分の消費電流を低減することが可能である。
【0061】
(3) 変形例
上記実施形態において、タイマー22の閾値に更新がある度に、不揮発性メモリ3にタイマー22の閾値を書き込んでもよい。そして、不揮発性メモリ3に書き込まれたタイマー22の閾値を必要に応じて読み出して用いてもよい。
【0062】
図13を用いて、変形例に係るメモリシステム1(1a)の動作例について説明する。
タイマー22の閾値に更新がある場合(S31でYesの場合)、不揮発性メモリ3に更新後のタイマー22の閾値を書き込む(S32)。そして、処理を終了する。
次に、タイマー22の閾値に更新がない場合(S31でNoの場合)、処理を終了する。
以上のように、変形例に係るメモリシステム1(1a)の制御を行う。
【0063】
メモリシステム1(1a)のCPU24は、メモリシステム1(1a)がハイバネーション状態から復帰後にリテンションSRAM25に保持しているテーブルデータを参照する可能性の大きさに基づいてタイマー22の閾値を設定する。メモリシステム1(1a)が全く使用されない状態が続くと、メモリシステム1(1a)の電源を完全に遮断するパワーオフ状態となる場合がある。メモリシステム1(1a)がパワーオフ状態に遷移すると、レジスタ276に格納されているハイバネーション復帰時間の履歴などの値は消えてしまう。そのため、メモリシステム1(1a)がパワーオフ状態に遷移する前までのタイマー22の閾値を参照することができない。
【0064】
本変形例においては、再度メモリシステム1(1a)を使用する場合に、不揮発化されたタイマー22の閾値を参照することで、メモリシステム1(1a)がパワーオフ状態に遷移する前までの使い方に合わせた動作が可能となる。即ち、不揮発性メモリ3にタイマー22の閾値を書き込んで不揮発化することで、例えば、ホスト4の電源を一度オフにして再びオンにした場合であっても同様の設定を引き継ぐことが可能である。
【0065】
以上詳述した少なくとも一つの実施形態のメモリシステムによれば、メモリシステムが低電力状態に遷移した場合、(1)低電力状態から復帰する時間の履歴の平均値を用いた閾値、または、(2)不揮発性メモリへのデータの書き込み及び読み出しの回数およびテーブルキャッシュにテーブルデータの一部を更新する回数、の何れかに基づいて、テーブルキャッシュをリテンション状態からパワーダウン状態に遷移させるタイミングを制御することにより、テーブルキャッシュの消費電流を低減できる。
【0066】
上記実施形態及び変形例は、可能な範囲で組み合わせることが可能である。例えば、変形例は、第1実施形態及び第2実施形態の何れとも組み合わされ得る。
【0067】
上記実施形態及び変形例において、「接続」との記載は、2つの構成要素が他の要素を介さずに直接的に接続された場合に限らず、2つの構成要素が他の要素を介して間接的に接続された場合も、その構成要素間の関係に応じて適宜含み得る。
【0068】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0069】
1 メモリシステム
2 メモリコントローラ
3 不揮発性メモリ
4 ホスト
5、6 通信線
21 ホストI/F回路
22 タイマー
23 発振器
24 CPU
25 テーブルキャッシュ
26 メモリI/F回路
27 記憶部
28 SRAM電源制御回路
29 バス
30 メモリチップ
31 入出力回路
32 ロジックコントローラ
33 レディ/ビジー制御回路
34 レジスタ
35 シーケンサ
36 電圧生成回路
37 センスアンプモジュール
38 ロウデコーダモジュール
39 メモリセルアレイ
52、54 カウンタ
212 通信検出部
252 記憶部
254 制御回路
256 電源線
258 グランド線
272 ROM
274 RAM
276 レジスタ