(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-27
(45)【発行日】2022-07-05
(54)【発明の名称】メモリコントローラ及びこれを備えるフラッシュメモリシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20220628BHJP
G06F 11/30 20060101ALI20220628BHJP
G11C 7/04 20060101ALI20220628BHJP
G11C 7/22 20060101ALI20220628BHJP
【FI】
G06F12/00 564A
G06F12/00 597U
G06F11/30 162
G06F11/30 140T
G06F11/30 140N
G11C7/04
G11C7/22
(21)【出願番号】P 2018217601
(22)【出願日】2018-11-20
【審査請求日】2021-06-11
(73)【特許権者】
【識別番号】000003067
【氏名又は名称】TDK株式会社
(74)【代理人】
【識別番号】100115738
【氏名又は名称】鷲頭 光宏
(74)【代理人】
【識別番号】100121681
【氏名又は名称】緒方 和文
(72)【発明者】
【氏名】信太 和夫
【審査官】北村 学
(56)【参考文献】
【文献】特開2011-003018(JP,A)
【文献】特開2002-189628(JP,A)
【文献】特開2005-174203(JP,A)
【文献】特開2005-018329(JP,A)
【文献】米国特許出願公開第2015/0189788(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F11/07-12/06
G06F11/28-11/36
G06F12/00-12/06
G06F12/16
G06F13/16-13/18
G06K 7/00- 7/14
G11C 7/00- 8/20
G11C11/56
G11C16/00-17/18
(57)【特許請求の範囲】
【請求項1】
ホストシステムとフラッシュメモリの間におけるデータ転送を制御するメモリコントローラであって、
第1の期間における単位時間当たりのデータの転送レートの変化に基づいて温度スコアを増減させ、前記温度スコアがしきい値を超えた場合、前記第1の期間に続く第2の期間におけるデータ転送レートを最大レートよりも低い所定のレートに制限することを特徴とするメモリコントローラ。
【請求項2】
前記第2の期間においては、前記所定のレートを漸次低下させることを特徴とする請求項1に記載のメモリコントローラ。
【請求項3】
前記第2の期間に続く第3の期間においては、データ転送レートの制限を解除することを特徴とする請求項1又は2に記載のメモリコントローラ。
【請求項4】
所定の期間、データの転送レートを一定に保つことによって、または、データの転送が行われていない期間が一定以上継続したことを認識することによって、前記温度スコアを校正することを特徴とする請求項
1乃至3のいずれか一項に記載のメモリコントローラ。
【請求項5】
請求項1乃至
4のいずれか一項に記載のメモリコントローラと、前記フラッシュメモリとを備えるフラッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はメモリコントローラ及びこれを備えるフラッシュメモリシステムに関し、特に、データ転送に起因する発熱量を制御可能なメモリコントローラ及びこれを備えるフラッシュメモリシステムに関する。
【背景技術】
【0002】
フラッシュメモリシステムは、ホストシステムとフラッシュメモリの間に設けられたメモリコントローラを備えている。メモリコントローラは、フラッシュメモリシステム全体の動作を制御するとともに、ホストシステムとフラッシュメモリの間におけるデータ転送を制御する役割を果たす。
【0003】
ここで、メモリコントローラとホストシステム間、或いは、メモリコントローラとフラッシュメモリ間において大容量のデータ転送を行うと、メモリコントローラ内において消費電流が増大し熱源の要因となる。特に多数の出力バッファを有するインターフェース部における発熱は顕著であり、場合によっては熱暴走する恐れがある。これを防止すべく、例えば特許文献1には、温度センサを用いてフラッシュメモリシステムの現在の温度を測定し、これに基づいてアクセス時間を制御する方法が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の方法では、万が一温度センサに異常が発生した場合、熱暴走を止めることができないという問題があった。
【0006】
したがって、本発明には、温度センサに異常が発生した場合、或いは、温度センサを備えていない場合であっても、データ転送に起因する発熱量を制御可能なメモリコントローラ及びこれを備えるフラッシュメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明によるメモリコントローラは、ホストシステムとフラッシュメモリの間におけるデータ転送を制御するメモリコントローラであって、第1の期間におけるデータ転送レートが所定の条件を満たした場合、第1の期間に続く第2の期間におけるデータ転送レートを最大レートよりも低い所定のレートに制限することを特徴とする。また、本発明によるフラッシュメモリシステムは、上記のメモリコントローラとフラッシュメモリとを備える。
【0008】
本発明によれば、データ転送レートの履歴に基づいて現在の温度を推定し、所定の条件を満たした場合、データ転送レートを最大レートよりも低い所定のレートに制限していることから、温度センサに異常が発生した場合、或いは、温度センサを備えていない場合であっても、データ転送に起因する発熱量を制御することが可能となる。
【0009】
本発明においては、第2の期間に所定のレートを漸次低下させても構わない。これによれば、データ転送レートの急激な低下を防止することが可能となる。
【0010】
本発明においては、第2の期間に続く第3の期間においてデータ転送レートの制限を解除しても構わない。これによれば、推定される温度が十分に低下したタイミングで再び高いデータ転送レートで動作させることが可能となる。
【0011】
本発明においては、第1の期間における単位時間当たりのデータの転送レートに基づいて温度スコアを増減させ、温度スコアがしきい値を超えた場合に、所定の条件が満たされるものであっても構わない。これによれば、現在の温度をより正確に推定することが可能となる。さらにこの場合、第1の期間における単位時間当たりのデータの転送レートの変化に基づいて温度スコアを増減させても構わない。これによれば、現在の温度をよりいっそう正確に推定することが可能となる。
【0012】
本発明においては、所定の期間、データの転送レートを一定に保つことによって、または、データの転送が行われていない期間が一定以上継続したことを認識することによって、温度スコアを校正しても構わない。これによれば、実際の温度と温度スコアの乖離を防止することが可能となる。
【発明の効果】
【0013】
このように、本発明によれば、温度センサに異常が発生した場合、或いは、温度センサを備えていない場合であっても、データ転送に起因する発熱量を制御することが可能となる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、本発明の好ましい実施形態によるフラッシュメモリシステム2の構成を説明するためのブロック図である。
【
図2】
図2は、転送レート制御部17によるデータ転送レートの制御の一例を示すグラフである。
【
図3】
図3は、温度スコアSの増減基準の最も単純な一例を示す図である。
【
図4】
図4は、実測結果に基づいたデータ転送レートごとの温度スコアSの値を示す図である。
【
図5】
図5は、データ転送レートが100%である場合の温度スコアSの値を特定する方法を説明するためのグラフである。
【
図6】
図6は、データ転送レートを100%から90%に変化させた場合における温度スコアSの傾きを特定する方法を説明するためのグラフである。
【
図7】
図7は、データ転送レートを100%から0%~90%に変化させた場合における温度スコアSの傾きを示す図である。
【
図8】
図8は、転送レート制御部17によるデータ転送レートの制御の一例を示すグラフである。
【
図9】
図9は、転送レート制御部17によるデータ転送レートの制御の一例を示すグラフである。
【
図10】
図10は、転送レート制御部17によるデータ転送レートの制御の一例を示すグラフである。
【発明を実施するための形態】
【0015】
以下、添付図面を参照しながら、本発明の好ましい実施形態について詳細に説明する。
【0016】
図1は、本発明の好ましい実施形態によるフラッシュメモリシステム2の構成を説明するためのブロック図である。
【0017】
本実施形態によるフラッシュメモリシステム2は、メモリコントローラ10と複数のフラッシュメモリ20~2kを有している。特に限定されるものではないが、フラッシュメモリ20~2kはNAND型のフラッシュメモリである。
図1に示す例では、k+1個のフラッシュメモリ20~2kが搭載されているが、搭載されるフラッシュメモリの数については特に限定されない。
【0018】
メモリコントローラ10は、外部のホストシステム4とフラッシュメモリ20~2kとの間に設けられ、これらの間におけるデータ転送を制御する。ホストシステム4とメモリコントローラ10との間におけるデータ及びコマンドの送受信はホストインターフェース11を介して行われ、フラッシュメモリ20~2kとメモリコントローラ10との間におけるデータ及びコマンドの送受信はフラッシュインターフェース12を介して行われる。
【0019】
メモリコントローラ10は、CPU13、RAM14、ROM15、バッファメモリ16及び転送レート制御部17を有している。CPU13は、ROM15に保持されているプログラムに従って、メモリコントローラ10の全体の動作を制御する。ROM15に保持されたプログラムは、パワーオン時にRAM14に展開されても構わない。RAM14は、フラッシュメモリ20~2kの制御に必要なデータを一時的に格納する作業領域であり、例えば複数のSRAMセルによって構成されている。バッファメモリ16は、フラッシュメモリ20~2kから読み出されたリードデータ及びフラッシュメモリ20~2kに書き込むべきライトデータを一時的に保持する回路であり、RAM14の一部をバッファメモリ16として用いても構わない。これにより、ホストシステム4から供給されるライトデータは、バッファメモリ16に一時的に保持され、フラッシュメモリ20~2kが書き込み可能な状態となった後、フラッシュインターフェース12を介してフラッシュメモリ20~2kに転送される。また、フラッシュメモリ20~2kから読み出されたリードデータは、バッファメモリ16に一時的に保持され、ホストシステム4が受け付け可能な状態となった後、ホストインターフェース11を介してホストシステム4に転送される。
【0020】
さらに、メモリコントローラ10は、転送レート制御部17を有している。転送レート制御部17は、ホストインターフェース11及びフラッシュインターフェース12を用いたデータの転送レートを制御する回路である。データ転送を行うと、メモリコントローラ内において多くの電流が消費される。特にホストインターフェース11及びフラッシュインターフェース12には多数の出力バッファが含まれるためスイッチングにより発熱が大きい。このため、最大レートでデータ転送を続けると、フラッシュメモリシステム2の温度が使用温度範囲の限界値に達してしまう。一般的なフラッシュメモリシステムでは、温度センサを用いて現在の温度を測定しているが、本実施形態によるフラッシュメモリシステムは、ホストインターフェース11及びフラッシュインターフェース12を用いたデータ転送を監視することによって現在の温度を推定し、これに基づいてデータ転送レートを制限することによって温度を所定値以下に抑えている。転送レート制御部17は、CPU13、RAM14及びROM15とは別個に設けられた専用の回路であっても構わないし、一部又は全部の機能がCPU13、RAM14又はROM15によって実現されるものであっても構わない。
【0021】
図2は、転送レート制御部17によるデータ転送レートの制御の一例を示すグラフである。
図2に示すデータ転送レートは、ホストインターフェース11を用いたリードデータ(メモリコントローラからホストシステムへのデータ出力時)の転送レートと、フラッシュインターフェース12を用いたライトデータ(メモリコントローラからフラッシュメモリへのデータ出力時)の転送レートの合計値を示している(ただし、合計値に限られたものではなく、それぞれのデータ転送レートを個別に管理してもよい)。また、T1~T20は、それぞれ所定の単位時間からなる期間である。
【0022】
図2に示す例では、データ転送レートが100%、つまりシステム上(規格上)の最大レートでデータ転送が行われている期間と、データ転送レートが最大レートの10%に抑えられている期間が交互に繰り返されている。このような制御は、上述した転送レート制御部17が温度スコアSを増減させることによって実現している。つまり、
図2に示すように、データ転送レートが100%で動作している第1の期間(例えば期間T1~T4)においては温度スコアSが増加し、時刻t1においてその値がしきい値Aに達している。これに応答して、転送レート制御部17は、時刻t1以降のデータ転送レートを例えば最大レートの10%に制限する。
図2に示す例では、第2の期間(例えば期間T5~T6)においてデータ転送レートが最大レートの10%に制限されている。
【0023】
データ転送レートが制限されると、発熱量が大幅に減少することから、温度スコアSが減少し、時刻t2においてその値がしきい値Bに達している。これに応答して、転送レート制御部17は、時刻t2以降のデータ転送レートの制限を解除し、その結果、データ転送レートは再び100%となる。
図2に示す例では、第3の期間(例えば期間T7~T10)においてデータ転送レートが再び100%となっている。
【0024】
このような動作を繰り返すことにより、
図2に示す例では、期間T1~T4、期間T7~T10、期間T13~T16、期間T19~T20においてはデータ転送レートの制限が解除され、期間T5~T6、期間T11~T12、期間T17~T18においてはデータ転送レートが最大レートの10%に制限されている。
【0025】
温度スコアSがしきい値Aに達した場合に制限されるデータ転送レートは、最大レートの10%である必要はなく、最大レートよりも低い所定のレートであれば足りる。温度スコアSがしきい値Aに達した場合、データ転送レートを0%、つまりデータ転送を停止しても構わない。温度スコアSがしきい値Aに達した後のデータ転送レートは、低いほどフラッシュメモリシステム2を高速に冷却することができる。また、しきい値Aを複数設定し、温度スコアSが超えたしきい値の種類に応じて、データ転送レートの制限量を変えても構わない。
【0026】
温度スコアSの増減基準については特に限定されず、温度スコアSができるだけ正確に実際の温度をトレースするよう、システム構成やシステム環境などを考慮して定めれば良い。
図3には、温度スコアSの増減基準の最も単純な一例が示されている。
図3に示す例では、単位時間ごとに転送レートと温度スコアSの増減量を定め、これに基づいて現在の温度スコアSを決定する。例えば、
図2に示すように、期間T1~T4におけるデータ転送レートが100%であれば、期間T1~T4ごとに温度スコアSを10ずつ増加させ、期間T5~T6におけるデータ転送レートが10%であれば、期間T5~T6ごとに温度スコアSを20ずつ減少させる。このような方法によれば、温度スコアSの算出が非常に容易となる。
【0027】
また、設計時における温度の実測結果に基づき、転送レートと温度スコアSの関係をより厳密に規定すれば、より正確に、温度スコアSを実際の温度にトレースさせることが可能である。具体的には、以下に説明する方法が挙げられる。
【0028】
まず、転送レートを一定に保った場合の実測温度に基づき、温度スコアSの値を設定する。例えば、
図4に示すように、転送レートを100%に保った場合における温度スコアSの値をTmax100とし、転送レートを90%に保った場合における温度スコアSの値をTmax90とする。これら温度スコアSの値は、設計時に実測した温度に対応している。例えば、
図5に示すように、データ転送レートを100%に固定した場合、期間T1の開始時における温度が室温であれば、期間T4において最大温度であるTmax100に達し、その後の温度はTmax100に保たれている。この場合、当該温度をTmax100と定義する。他のデータ転送レートにおける値も同様にして実測する。
【0029】
次に、データ転送レートを変化させた場合における温度変化を実測し、これに基づいて温度スコアSの変化量を定義する。例えば、
図6に示すように、データ転送レートを100%に固定することによって温度がTmax100に達した状態で、データ転送レートを90%に変化させた場合、温度がTmax90に達するのに要する時間を測定し、これに基づいて温度スコアSの変化量を定義する。ここで、温度がTmax100からTmax90に達するのに必要な時間をt100.90とすると、データ転送レートを100%から90%に変化させた場合における温度スコアSの傾き(単位時間当たりの変化量)は、-(Tmax100-Tmax90)/t100.90と定義することができる。
図7には、データ転送レートを100%から0%~90%に変化させた場合における温度スコアSの傾きが示されている。そして、データ転送レートの全ての組み合わせについて実測を行うことにより、データ転送レートの全ての組み合わせに対する温度スコアSの傾きを決定する。
【0030】
上述した温度スコアSの値(Tmax100など)や、温度スコアSの傾きは、システム構成やシステム環境などによって相違する。例えば、ヒートシンクの有無やサイズ、冷却ファンの能力などによって変化する。このため、仕様ごとに実測を行うことが好ましい。或いは、代表的なシステム構成及び代表的なシステム環境下で実測を行い、仕様ごとに温度スコアSの値や傾きを補正しても構わない。
【0031】
そして、フラッシュメモリシステム2の実動作時においては、データ転送レートを所定値(例えば100%)に固定することによって
図4に示す温度スコアS(例えばTmax100)を取得した後、データ転送レートが変化するたびに、対応する傾きに応じて温度スコアSを増減させる。
図2に示す例では、期間T1~T4までデータ転送レートが100%の状態で連続動作したことに応答して、温度スコアSをTmax100に設定し、期間T5においてデータ転送レートが100%から10%に変化したことに応答して、温度スコアSを-(Tmax100-Tmax10)/t100.10だけ変化させる。このような方法によれば、温度スコアSを実際の温度により正確にトレースさせることが可能となる。
【0032】
別の例として、
図8には、データ転送が間欠的に行われている例が示されている。つまり、期間T3、T4、T8、T9、T11、T12においては、ホストシステム4からのデータ転送要求がなく、データ転送が行われていない。このような場合、データ転送が行われていない期間においてフラッシュメモリシステム2が十分に冷却されるため、温度スコアSはしきい値A以下の値を維持している。特に、フラッシュメモリシステム2が室温まで低下したと判断される場合には、温度スコアSを最低値Cに固定しても構わない。
図8に示す例では、期間T16において温度スコアSがしきい値Aに達しており、これに応答して期間T17,T18におけるデータ転送レートが10%に制限されている。
【0033】
尚、データ転送レートが短期間で変化し続ける場合、温度スコアSと実温度の乖離が進んでいる可能性があるため、一定期間、データ転送レートを所定のレート(例えば50%)に固定することによって、温度スコアSを校正することが好ましい。例えば、一定期間、データ転送レートを所定の50%に固定した場合、校正後の温度スコアSはTmax50となり、この値が転送レート制御部17内で上書きされる。
【0034】
以上説明したように、本実施形態によるフラッシュメモリシステム2は、過去のデータ転送レートの履歴に基づいて現在の温度を推定し、これに応じてデータ転送レートを制限していることから、温度センサに異常が発生した場合、或いは、温度センサを備えていない場合であっても、フラッシュメモリシステム2の温度を所定値以下に維持することが可能となる。これにより、温度センサの異常などに起因する熱暴走を防止することが可能となる。但し、本発明において温度センサを排除する必要はなく、温度スコアSと温度センサによる実測値を併用してデータ転送レートを制御しても構わない。
【0035】
尚、温度スコアSがしきい値Aに達した場合におけるデータ転送レートの制限方法についても特に限定されず、
図9に示すように、データ転送レートの制限値を漸次低下させても構わない。
図9に示す例では、時刻t3において温度スコアSがしきい値Aに達しており、これに応答して、期間T4~T8におけるデータ転送レートがそれぞれ90%、80%、70%、60%、60%に制限されている。その後、時刻t4において温度スコアSがしきい値Bに達したことに応答して、データ転送レートの制限が解除されている。このように、データ転送レートの制限値を漸次低下させれば、温度スコアSがしきい値Aに達した後におけるデータ転送レートの急激な低下を防止することが可能となる。
【0036】
また、温度スコアSを用いるのではなく、設計時における実測により、フラッシュメモリシステム2の温度が限界値に達しないデータ転送レートの上限を特定し、実際のデータ転送レートを常にこのレートに制限しても構わない。一例として、
図10には、データ転送レートを最大レートの70%に制限した例が示されている。この場合、データ転送レートが最大レートの70%である状態で連続動作を行っても、フラッシュメモリシステム2の温度が限界値に達することはない。
【0037】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【符号の説明】
【0038】
2 フラッシュメモリシステム
4 ホストシステム
10 メモリコントローラ
11 ホストインターフェース
12 フラッシュインターフェース
13 CPU
14 RAM
15 ROM
16 バッファメモリ
17 転送レート制御部
20~2k フラッシュメモリ
A,B しきい値
C 最低値
S 温度スコア