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

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

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

<>
  • 特開-メモリシステムおよびホスト装置 図1
  • 特開-メモリシステムおよびホスト装置 図2
  • 特開-メモリシステムおよびホスト装置 図3
  • 特開-メモリシステムおよびホスト装置 図4
  • 特開-メモリシステムおよびホスト装置 図5
  • 特開-メモリシステムおよびホスト装置 図6
  • 特開-メモリシステムおよびホスト装置 図7
  • 特開-メモリシステムおよびホスト装置 図8
  • 特開-メモリシステムおよびホスト装置 図9
  • 特開-メモリシステムおよびホスト装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129470
(43)【公開日】2024-09-27
(54)【発明の名称】メモリシステムおよびホスト装置
(51)【国際特許分類】
   G06F 13/10 20060101AFI20240919BHJP
   G06F 13/16 20060101ALI20240919BHJP
   G06F 13/38 20060101ALI20240919BHJP
   G06F 13/42 20060101ALI20240919BHJP
   G06F 13/12 20060101ALI20240919BHJP
【FI】
G06F13/10 310E
G06F13/16 520A
G06F13/38 320A
G06F13/42 310
G06F13/12 330A
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023038700
(22)【出願日】2023-03-13
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】藤本 曜久
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160MB06
(57)【要約】
【課題】ストリーム記録を長時間安定的に行うことができるメモリシステムを提供する。
【解決手段】実施形態によれば、コントローラは、PCIeTM規格に準拠するインタフェースでホストと接続可能であり、NVMeTM規格に準拠するプロトコルでホストと通信可能である。コントローラは、インタフェースの初期化をホストとの間で実行し、インタフェースの初期化で決定されるインタフェースのバス構成と、インタフェースの初期化中に設定される最大許容消費電力とに基づき、ストリーム記録に関してあらかじめ規定されている複数の性能の中からサポート可能な最大性能を決定し、NVMeTM規格で規定されているパワーステートレジスタに格納するデータセットであって、サポート可能な性能の一覧を前記ホストに示すための、複数の性能の中の決定した最大性能以下のすべての性能を1つずつパワーステートに対応させたパワーステートセットを生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
PCI ExpressTM(PCIeTM)規格に準拠するインタフェースでホストと接続可能であり、NVM ExpressTM(NVMeTM)規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信を前記ホストと実行可能である、前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、
前記インタフェースの初期化を前記ホストとの間で協働的に実行し、
前記インタフェースの初期化で決定される前記インタフェースのバス構成と、前記インタフェースの初期化中に設定される最大許容消費電力とに基づき、ストリーム記録に関してあらかじめ規定されている複数の性能の中からサポート可能な最大性能を決定し、
前記NVMeTM規格で規定されているパワーステートレジスタに格納するデータセットであって、サポート可能な性能の一覧を前記ホストに示すための、前記複数の性能の中の前記決定した最大性能以下のすべての性能を1つずつパワーステートに対応させたパワーステートセットを生成する、
メモリシステム。
【請求項2】
前記インタフェースのバス構成は、前記PCIeTM規格で規定されている前記初期化の手続きで定まるバス速度およびレーン数によって決定される請求項1に記載のメモリシステム。
【請求項3】
前記コントローラは、PCIeTM規格で規定されているSlot_Power_Limitメッセージによって前記ホストから転送されるSlot Power Limitレジスタの値から前記最大許容消費電力を取得する請求項1に記載のメモリシステム。
【請求項4】
前記最大許容消費電力の複数の範囲に対し、それぞれホストがサポート可能な性能とメモリシステムがサポート可能な最大性能とを関連付けることで、最大許容消費電力値が決まると、前記ホストがサポート可能な性能と、前記メモリシステムがサポート可能な最大性能とが決まり、
前記コントローラは、前記ホストがサポート可能な性能と、前記メモリシステムがサポート可能な最大性能とのどちらか低い方をバワーステートの最大性能として前記パワーステートセットを生成する請求項1に記載のメモリシステム。
【請求項5】
前記コントローラは、
非ストリーム記録用の第1パワーステートセットと、ストリーム記録用の第2パワーステートセットとを有し、前記インタフェースのバス構成と前記最大許容消費電力とによって内容が変化し得る前記生成するパワーステートセットを前記第2パワーステートセットと位置づけ、
前記NVMeTM規格で規定されている、ストリーム記録の動作を要求するコマンドが前記ホストから受信された場合に、前記第2パワーステートセットを生成し、前記パワーステートレジスタの内容を、前記第1パワーステートセットの内容から前記第2パワーステートセットの内容に切り換える、
請求項1に記載のメモリシステム。
【請求項6】
温度センサを具備し、
前記コントローラは、
前記ストリーム記録の動作を要求するコマンドを受信した後、前記ホストからの要求に応じて、または、自主的に一定期間、前記不揮発性メモリへの連続的なデータの書き込みまたは読み出しを実行し、
前記不揮発性メモリへの連続的なデータの書き込みを実行している間、前記温度センサが検出する温度を監視し、
前記温度がしきい値を超えた場合、前記メモリシステムの一定以上の温度上昇をホストへ通知する、
請求項1に記載のメモリシステム。
【請求項7】
前記コントローラは、前記不揮発性メモリへの連続的なデータの書き込みまたは読み出しを自主的に実行する場合において、前記一定期間内に前記温度がしきい値を超えた場合、現在のパワーステートよりも性能の低いパワーステートへの切り替えを行い、前記不揮発性メモリへの連続的なデータの書き込みまたは読み出しを行っても温度がしきい値を超えないパワーステートを選択する請求項6に記載のメモリシステム。
【請求項8】
前記コントローラは、前記連続的なデータの書き込みを、前記連続的なデータの書き込み用にあらかじめ確保した前記不揮発性メモリの領域を使って実行する請求項6に記載のメモリシステム。
【請求項9】
PCI ExpressTM(PCIeTM)規格に準拠するインタフェースでメモリシステムと接続可能であり、NVM ExpressTM(NVMeTM)規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信を前記メモリシステムと実行可能なシステムコントローラと、
前記メモリシステムに対して電力を供給可能な電源回路と、
を具備し、
前記システムコントローラは、
前記インタフェースの初期化を前記メモリシステムとの間で協働的に実行し、
前記電源回路が供給可能な前記メモリシステムの最大許容消費電力を前記インタフェースの初期化中に前記メモリシステムに対して通知し、
前記メモリシステムを使用してストリーム記録を実行する場合、
前記NVMeTM規格で規定されている、ストリーム記録の動作を要求するコマンドを前記メモリシステムに対して送信し、
前記NVMeTM規格で規定されているパワーステートレジスタの内容を前記メモリシステムから取得し、
前記パワーステートレジスタに格納されている1個以上のパワーステートの中から1つのパワーステートを選択して前記メモリシステムに設定する、
ホスト装置。
【請求項10】
前記システムコントローラは、
前記ストリーム記録を開始する前に、
前記メモリシステムに対する連続的なデータの書き込みを一定期間実行し、
前記メモリシステムの一定以上の温度上昇が前記一定期間内に前記メモリシステムから通知された場合、前記パワーステートレジスタに格納されている1個以上のパワーステートの中から現在のパワーステートよりも性能の低いパワーステートを再選択して前記メモリシステムに設定する、
請求項9に記載のホスト装置。
【請求項11】
前記システムコントローラは、あらかじめ定められたアドレスを指定して、前記メモリシステムに対する連続的なデータの書き込みを実行する請求項10に記載のホスト装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステムおよびホスト装置に関する。
【背景技術】
【0002】
近年、様々なメモリカードが普及している。メモリカードの1つとして、SDTMカードが知られている。SDTM規格で定義されるSD ExpressTMカードの仕様に準拠するSD ExpressTMカードは、PCI ExpressTM(PCIeTM)規格に準拠するインタフェース(リンク)でホストと接続し、NVM ExpressTM(NVMeTM)規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信をホストと実行する。
【0003】
最近では、SD ExpressTMカードに対して、録画などのストリーム記録を長時間安定的に行えるようにすることについての要望が高まってきている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第11041763号明細書
【特許文献2】米国特許出願公開第2021/0081120号明細書
【特許文献3】米国特許第11500447号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
1つの実施形態は、ストリーム記録を長時間安定的に行うことができるメモリシステムおよびホスト装置を提供する。
【課題を解決するための手段】
【0006】
実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。コントローラは、PCI ExpressTM(PCIeTM)規格に準拠するインタフェースでホストと接続可能であり、かつ、NVM ExpressTM(NVMeTM)規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信をホストと実行可能であり、不揮発性メモリを制御する。コントローラは、インタフェースの初期化をホストとの間で協働的に実行し、インタフェースの初期化で決定されるインタフェースのバス構成と、インタフェースの初期化中に設定される最大許容消費電力とに基づき、ストリーム記録に関してあらかじめ規定されている複数の性能の中からサポート可能な最大性能を決定し、NVMeTM規格で規定されているパワーステートレジスタに格納するデータセットであって、サポート可能な性能の一覧を前記ホストに示すための、複数の性能の中の決定した最大性能以下のすべての性能を1つずつパワーステートに対応させたパワーステートセットを生成する。
【図面の簡単な説明】
【0007】
図1】実施形態のメモリデバイスの一構成例を示す図。
図2】SDTM規格で定義されるSD ExpressTMの仕様下においてPCIeTM規格に準拠するインタフェースの構成を決定する原理を説明するための図。
図3】SDTM規格で定義されるSD ExpressTMの仕様で想定され得る各インタフェース構成に対する性能の一割当例を示す図。
図4】インタフェースの構成と最大許容電力との組み合わせに対する最大性能(クラス)の算出結果に基づいたメモリデバイスの実装例を示す図。
図5】実施形態のメモリデバイスにおけるパワーステートセット[2]の構成例を示す図。
図6】ストリーム記録に関する拡張規格に準じたパワーステートセット[2]の一構成例を示す図。
図7】規格が拡張された場合におけるホストのバージョンとデバイスのバージョンとの組み合わせによる最大性能の一決定例を示す図。
図8】実施形態のメモリデバイスとホストとが協働的に実行するインタフェースの初期化の流れを示すフローチャート。
図9】実施形態のメモリデバイスが実行する温度監視の流れを示すフローチャート。
図10】実施形態のホストが実行するパワーステート調整の流れを示すフローチャート。
【発明を実施するための形態】
【0008】
以下、実施の形態について、図面を参照して説明する。
【0009】
図1は、実施形態のPCIeTM/NVMeTMメモリデバイス1(以下、メモリデバイス1)の一構成例を示す図である。図1には、メモリデバイス1をストレージとして適用するホスト2の一構成例と、メモリデバイス1とホスト2とを含む情報処理システム100の一構成例(メモリデバイス1とホスト2との一接続例)とが併せて示されている。
【0010】
メモリデバイス1は、例えば、SD ExpressTMカードとして実現されている。SD ExpressTMカードは、例えば、標準サイズSDTMカードまたはmicroSDTMカードの形状がある。SD ExpressTMカードは、複数のロウの端子を持ち、複数のロウのうち第1ロウの端子を使用してSDTM規格に準拠した通信をホスト2と行うことが可能で、複数のロウの端子を用いてPCI ExpressTM規格に準拠した通信をホスト2と行うことが可能である。メモリデバイス1は、NVMeTMコントローラ11と、フラッシュメモリ12とを有する。
【0011】
NVMeTMコントローラ11は、PCIeバス経由でシステムメモリ23とフラッシュメモリ12を制御する。たとえば、NVMeTMコントローラ11は、ホスト2からのライトコマンドに応じて、システムメモリ23上の指定場所にあるデータを読み出してフラッシュメモリ12への書き込み処理を制御し、また、ホスト2からのリードコマンドに応じて、フラッシュメモリ12からのデータの読み出し処理を制御してシステムメモリ23上の指定場所にデータを転送する。NVMeTMコントローラ11は、たとえば、LSI(Large Scale Integration)として実現されている。
【0012】
NVMeTMコントローラ11は、インタフェース回路111、ファームウェア112、温度センサ113、パワーステートセット[1]114、パワーステートセット[1]115、プロファイル116を有する。
【0013】
インタフェース回路111は、ホスト2のPCIeTMポート222との間でPCIeTM規格に準拠するインタフェース(リンク)を確立(接続)する。NVMeTMコントローラ11は、PCIeTM規格に準拠するインタフェース経由で、NVMeTM規格に準拠するNVMeTMコマンドを受信し、当該NVMeTMコマンドに対応する処理の実行結果を送信する。つまり、前述のライトコマンドやライトコマンドは、NVMeTMコマンドである。NVMeTMコントローラ11は、PCIeTM規格に準拠するプロトコルで規定されるフォーマットのパケットにより、PCIeインタフェース経由で、ホスト2のプロセッサ21に対して割り込み信号を送信することができる。また、NVMeTMコントローラ11は、ホスト2のシステムメモリ23へのアクセスを、当該インタフェース経由で、ホスト2のシステムコントローラ22経由でアクセスすることができる。具体的には、NVMeTMコントローラ11は、PCIeのDMA(Direct Memory Access)マスターとなって直接システムメモリ23へのデータの書き込みや、システムメモリ23からのデータの読み出しを行うことができる。
【0014】
インタフェース回路111は、Slot Power Limit(SPL)レジスタ150を有する。SPLレジスタ150には、ホスト2のSPL値が格納される。SPL値は、ホスト2がメモリデバイス1に対して設定する最大許容電力を示す。ホスト2のSPL値は、たとえば、ホスト2のシステムコントローラ22とメモリデバイス1のNVMeTMコントローラ11とが協働的に実行するインタフェースの初期化の途中で、ホスト2からメモリデバイス1へ送信される。ホスト2は、メモリデバイス1に対する最大許容電力を設定すると、その最大許容電力を示すSPL値をPCIeTMポート222のSPLレジスタ250に格納する。つまり、このPCIeTMポート222のSPLレジスタ250に格納されているSPL値がホスト2からメモリデバイス1へ送信されてインタフェース回路111のSPLレジスタ150に格納される。
【0015】
ファームウェア112は、フラッシュメモリ12を制御するためのNVMeTMコントローラ11の動作手順を記述したプログラムである。たとえば、NVMeTMコントローラ11がLSIとして実現されている場合、ファームウェア112は、LSI内蔵のRAM(Random Access Memory)上の一部の領域が使用され、フラッシュメモリ12に格納されているファームウェアを、LSI内蔵のCPU(Central Processing Unit)が、前記RAMにロードして実行することにより、NVMeTMコントローラ11によるフラッシュメモリ12の制御が実現される。
【0016】
温度センサ113は、NVMeTMコントローラ11の温度を検出する。フラッシュメモリ12には温度センサ123が内蔵されていて、NVMeTMコントローラ11はフラッシュメモリの温度を読み出すこともできる。ホスト2は、温度センサ113が検出したNVMeTMコントローラ11の温度または、フラッシュメモリ12の温度を、NVMeTMコマンドでメモリデバイス1から取得することができる。また、図示はしていないが、ホストとデバイス間を接続するサイドバンド信号(SMBUS)を用いてこれらの温度を読み出すこともできる。
【0017】
パワーステートセット[1]114およびパワーステートセット[2]115は、NVMETM規格で定められているパワーステートレジスタに格納される1個以上のパワーステートのセットである。メモリデバイス1のパワーステートレジスタは、最大32個のパワーステートを格納することができる。パワーステートは、メモリデバイス1がそのパワーステートで動作したときの消費電力を含み、PS0からPS31まで定義することが可能である。1個以上のパワーステートは、PSの添字の数字が大きいほど消費電力は低くなるように設定される。また、消費電力が低くなるにつれて、メモリデバイス1の性能も小さくなる。
【0018】
たとえば、メモリデバイス1が、ホスト2とメモリデバイス1間のデータ転送速度「600MB/s」、「450MB/s」、「300MB/s」、「150MB/s」の4通りの性能をサポートする場合、通常、PS0=600MB/s、PS1=450MB/s、PS2=300MB/s、PS3=150MB/sの4個のパワーステートが定義される。メモリデバイス1は、初期状態ではパワーステートPS0が選択されている。
【0019】
性能とパワーステートを関連付けたことにより、ホスト2は、メモリデバイス1のパワーステートレジスタをNVMeTMコマンドで読み出すことができ、このパワーステートレジスタの内容により、メモリデバイス1がサポートする性能を認識することができる。また、ホスト2は、パワーステートレジスタから各パワーステートの消費電力を知ることができ、メモリデバイス1で設定されている1個以上のパワーステートの中のいずれか1つを指定して、当該指定したパワーステートを選択すべきことをNVMeTMコマンドでメモリデバイス1へ要求することも可能である。たとえば、その時点で設定されているパワーステートよりも低い性能のパワーステートをメモリデバイス1に選択させて、メモリデバイス1の消費電力(発熱)を抑えることで、ホスト2は、メモリデバイス1の温度制御を行うことができる。
【0020】
実施形態のメモリデバイス1は、パワーステートセット[1]114とパワーステートセット[2]115との2つのパワーステートセットを有する点が特徴の1つである。より詳しくは、実施形態のメモリデバイス1は、従来のパワーステートセットであるデフォルト用のパワーステートセット[1]114に加えて、ストリーム記録用のパワーステートセット[2]115を有する。このストリーム記録用のパワーステートセット[2]115を有する理由については後述する。なお、ストリーム記録のみに使用されることが前提となっている場合、メモリデバイス1は、デフォルト用のパワーステートセット[1]114に代えて、ストリーム記録用のパワーステートセット[2]115のみを有する構成としてもよい。
【0021】
プロファイル116は、メモリデバイス1が対応可能なストリーム記録に関するサポート情報を格納するレジスタである。サポート情報は、ストリームデータの管理領域サイズであるSGS(Stream Granularity Size)、ストリームライトコマンドデータサイズSWS(Stream Write Size)、同時に記録可能なストリーム数などを含む。またストリーム記録用のパワーステートを生成すための情報で、インタフェースの構成と最大許容電力との組み合わせに対してメモリデバイス1が実装可能な最大性能を算出した結果が保存されている。これは図4に関する情報であり後で説明がある。
【0022】
フラッシュメモリ12は、内部領域121と、ユーザ領域122と、温度センサ123とを有する。
【0023】
ホスト2からアクセスできない内部領域121とホスト2からアクセスできるユーザ領域122とは、NVMeTMコントローラ11によってフラッシュメモリ12の記憶領域120を論理的に分割することで各々独立した領域として確保される。内部領域121は、メモリデバイス1の内部的な処理に用いられる情報を格納するための領域である。図中の「トレーニング結果」については後述する。一方、ユーザ領域122は、ホスト2が自由に使用できる領域で、例えばホスト2から書き込みが要求されたデータを格納するための領域である。図1では、メモリデバイス1がストリーム記録に使われている場合の例を示しており、図中の「SGS(Stream Granularity Size)」は、ストリームデータが格納される領域の単位である。各SGSは、フラッシュメモリ12の物理的に分割可能な領域である。また、各SGSの先頭アドレスには、SGSの大きさの整数倍の論理アドレス(LBA[Logical Block Address])を自由に割り当てることができ、どのSGS内も、連続した論理アドレス(LBA)が割り当てられる。「測定用SGS」については後述する。
【0024】
温度センサ123は、フラッシュメモリ12の温度を検出する。より詳しくは、温度センサ123は、フラッシュメモリ12の記憶領域120を構成するメモリチップの温度を検出する。NVMeTMコントローラ11は、フラッシュメモリ12に対しコマンドを発行することによって温度センサ123の温度を読み出すことができる。ホスト2は、温度情報を読み出すNVMeTMコマンドを用いることにより、メモリデバイス1からデバイス温度を取得することができる。NVMeTMコントローラ11は、温度情報を読み出すNVMeTMコマンドを受信すると、フラッシュメモリ12から読み出した温度センサ123の値をデバイス温度としてホスト2に返す。
【0025】
ホスト2は、プロセッサ21、システムコントローラ22、システムメモリ23、電源回路24、放熱機構25を有する。
【0026】
プロセッサ21は、フラッシュメモリ12に格納されている各種プログラムをシステムメモリ23にロードして実行する。各種プログラムの中には、オペレーティングシステム231、PCIeTM標準ドライバ232、NVMeTM標準ドライバ233、温度制御ドライバ234などが存在する。
【0027】
オペレーティングシステム231は、各種プログラムに対するプロセッサ21などのリソースの割り当てを制御する。また、オペレーティングシステム231は、各種プログラムがユーザとの間でデータを授受するためのユーザインタフェースを制御する。
【0028】
PCIeTM標準ドライバ232は、PCIeTM規格に準拠するインタフェース経由のPCIeTM規格に準拠するプロトコルによる通信を制御する。NVMeTM標準ドライバ233は、PCIeTM規格に準拠するインタフェース経由のNVMeTM規格に準拠するプロトコルによる通信を制御する。PCIeTM標準ドライバ232およびNVMeTM標準ドライバ233は、標準ドライバであるため、カスタマイズはできない。NVMeパワーステートは個々のデバイスに合わせて実装されるため、NVMeTM標準ドライバ233は、メモリデバイス1のパワーステートの制御は行わず、デバイスがパワーステートの遷移を行うAutonomous Power State Transitions機能や、システム固有の温度を管理するために温度制御ドライバ234を用いる場合などがある。
【0029】
NVMeTM標準ドライバ233は、NVMeTMコマンドを使って、メモリデバイス1からサポート情報を取得することができる。サポート情報には、メモリデバイス1がストリーム記録をサポートしているか否かを示す情報が含まれている。また、NVMeTM標準ドライバ233は、NVMeTMコマンドを使って、メモリデバイス1に対してストリーム記録のための動作を要求することができる。
【0030】
温度制御ドライバ234は、情報処理システム100固有のドライバであり、使用するパワーステートを指定することでメモリデバイス1の温度を制御することができる。温度制御ドライバ234は、温度センサ113が検出したNVMeTMコントローラ11の温度や、温度センサ123が検出したフラッシュメモリ12の温度を、NVMeTMコマンドを使ってメモリデバイス1から取得する。温度制御ドライバ234は、たとえば、メモリデバイス1から取得したフラッシュメモリ12の温度がしきい値を超えていた場合、フラッシュメモリ12が故障してしまうことを防ぐために、NVMeTMコマンドを使って、前述のパワーステートを低性能だが低電力消費のパワーステートへ切り替えることで、メモリデバイス1の温度を下げるといった温度制御を行う。また、温度制御ドライバ234は、たとえば、パワーステートの切り替え後、メモリデバイス1から取得したフラッシュメモリ12の温度が十分下がったら、NVMeTMコマンドを使って元の高性能のパワーステートに復帰させるといった温度制御も行う。
NVMeには温度しきい値Thermal Management Temperatureとして、それぞれTMT1とTMT2のふたつの温度しきい値を設定できる機能がある。この場合温度比較はデバイスが行い、フラッシュメモリ12の温度がしきい値を超えたときにパワーステートを変えることができる。またホストには温度変化に応じたイベントを通知することができる。
【0031】
ところで、ストリーム記録以外の用途でメモリデバイス1を使用する場合であれは、フラッシュメモリ12の温度がしきい値を超えるまでは最大性能を出すように設定したパワーステートでメモリデバイス1を動作させ、フラッシュメモリ12の温度がしきい値を超えたら、一時的に低性能のパワーステートに切り替わってメモリデバイス1を動作させても、デバイスを使い続けることができれば大きな問題とはならない。
【0032】
一方、ストリーム記録の用途でメモリデバイス1を使用する場合、たとえば、録画中に画質が一時的に低下するといったことは好ましくなく、リアルタイムで生成されるビデオデータが記録できない事態になる可能性がある。そのためストリーム記録の途中で大きな性能変化を伴うメモリデバイス1のパワーステートを切り替えることは避けた方が良い。
【0033】
また、PCIeTMおよびNVMeTMはフレキシビリティが高く、ホスト2との組み合わせによってPCIeバスの性能が変わるため、メモリデバイス1の性能も制約される。そのため、メモリデバイス1がサポートするすべてのパワーステートの中からストリーム記録に適したパワーステートをホスト2が選び出すことは難しい。
【0034】
そこで、実施形態のメモリデバイス1は、従来のパワーステートセットであるデフォルト用のパワーステートセット[1]114に加えて、ストリーム記録用のパワーステートセット[2]115を用意する。パワーステートセット[2]115は、たとえば、ストリーム記録のために安定した性能とその性能に必要な消費電力のペアを複数のパワーステートとして示すことで、フラッシュメモリ12の温度がしきい値を超えないパワーステートを選択可能にする1個以上のパワーステートのセットである。システム放熱機構25に依存してデバイスの温度も異なってくる。パワーステートセット[2]115の内容(パワーステートレジスタに格納する1個以上のパワーステート)を決定する方法については後述する。
【0035】
システムコントローラ22は、プロセッサ21がシステムメモリ23へアクセスするための制御を行い、また、プロセッサ21がメモリデバイス1へアクセスするための制御を行う。システムコントローラ22は、メモリコントローラ221と、PCIeTMポート222とを有する。メモリコントローラ221は、システムメモリ23との間のデータ転送を制御する。PCIeTMポート222は、メモリデバイス1のインタフェース回路111との間でPCIeTM規格に準拠するインタフェース(リンク)を確立(接続)し、メモリデバイス1との間のデータ転送を制御する。PCIeTMポート222は、前述したSPLレジスタ250を有する。
【0036】
また、システムコントローラ22は、メモリデバイス1がPCIe DMAマスター転送によってシステムメモリ23へアクセスするための制御を行う。つまり、システムコントローラ22は、メモリデバイス1のNVMeTMコントローラ11にNVMeTMコマンドを発行し、メモリデバイス1は、受信したNVMeTMコマンドに応じてPCIe DMAマスター転送を用い、システムメモリ23へのデータの書き込みやシステムメモリ23からのデータの読み出しを実行することができる。
【0037】
電源回路24は、メモリデバイス1の動作用の電力を生成し、メモリデバイス1に対して供給する。電源回路24は、PCIeTMポート222のSPLレジスタ250に格納されるSPL値で示される最大許容電力以上の電力を供給する能力を持つ必要がある。逆に電力供給能力に応じて、それ以下の電力値をSPLに設定することが可能となる。
【0038】
放熱機構25は、メモリデバイス1の消費電力によってメモリデバイス1内に発生する熱を情報処理システム100の外部に放出する。放熱機構25は、たとえば、アクリル系樹脂といった熱伝導性が高くフレキシブルな材料で構成される放熱シートである。
【0039】
放熱機構25は、理論上、SPL値で示される最大許容電力が電源回路24から供給された場合にメモリデバイス1内に発生する熱を放出する能力を持つ。しかし、ホスト2側に配置される放熱機構25とメモリデバイス1との間に生じる隙間の空気層は熱伝導性が低いため、メモリデバイス1の温度上昇を招いてしまう可能性がある。
【0040】
次に、実施形態のメモリデバイス1において、NVMeTMコントローラ11がパワーステートセット[2]115の内容(パワーステートレジスタに格納する1個以上のパワーステート)を決定する方法について説明する。
【0041】
SDTM規格で定義されるSD ExpressTMカードの仕様には、ホスト2とメモリデバイス1とを接続するPCIeTM規格に準拠するインタフェース(リンク)に関して、レーン数に関する規定と、ジェネレーション(データ転送速度)に関する規定が存在する。具体的には、レーン数に関しては、1レーンと2レーンとが適用可能であり、ジェネレーションに関しては、Gen3(1GB/s)とGen4(2GB/s)とが適用可能である。以下、PCIeTM規格に準拠するインタフェースを、単に、インタフェースと称することがある。
【0042】
したがって、ホスト2とメモリデバイス1とを接続するインタフェースの構成は、図2に示すように、ホスト2とメモリデバイス1との組み合わせによって決定する。
【0043】
図2に示すように、ホスト2およびメモリデバイス1の一方が「Gen3」の場合、他方が「Gen4」の場合でも、インタフェースの構成は「Gen3」に決定する。また、ホスト2およびメモリデバイス1の一方が「1レーン」の場合、他方が「2レーン」の場合でも、インタフェースの構成は「1レーン」に決定する。
【0044】
たとえば、ホスト2が「Gen3 1レーン」で、メモリデバイス1が「Gen4 2レーン」の場合、インタフェースの構成は「Gen3 1レーン」に決定する。逆に、ホスト2が「Gen4 2レーン」で、メモリデバイス1が「Gen3 1レーン」の場合も、インタフェースの構成は「Gen3 1レーン」に決定する。このインタフェースの構成は、ホスト2のPCIeTMポート222とメモリデバイス1のインタフェース回路111との間で協働的に実行されるインタフェースの初期化処理にて決定される。決定したインタフェースの構成を示す情報(PCIeTMバス構成情報)は、メモリデバイス1においては、インタフェース回路111のPCIeTMレジスタ(図示省略)に格納される。
【0045】
インタフェースの性能は、「Gen3 1レーン」<「Gen3 2レーン」/「Gen4 1レーン」<「Gen4 2レーン」の関係性を有する。また、一般的にインタフェース性能が高いほど必要な消費電力は大きくなる。データ転送性能は、インタフェースの構成だけでは決まらず、ホスト2がメモリデバイス1に対して設定する最大許容電力(SPL値)によっても制限される可能性がある。許容電力が不足する場合、メモリデバイス1は、データ転送性能を落として消費電力が最大許容電力以下となるように調整されるためである。
【0046】
ここで、デフォルト用のパワーステートセット[1]114について説明すると、パワーステートセット[1]114は、より具体的には、デバイスがサポートする最大レーン数、最高速なジェネレーションにおいてメモリデバイス1がサポートする最大データ転送速度を出すことができるパワーステートをPS0として定義し、以下、サポートするデータ転送速度を低下させて消費電力を減らしながら、総数が最大32個のパワーステートをメモリデバイス1の仕様として定義することが可能である。温度しきい値を超えて急な冷却が必要な場合は、PS1やPS2に移行して急激に性能を低下させる必要があるが、性能を低下させる割合は、しきい値温度、ホスト放熱機構25の実装、温度制御ドライバ234の制御方法などによって最適値か決まる。つまりシステム毎に実装を調整する必要がある。
【0047】
一方、ストリーム記録に関しては、データ転送速度の選択肢を、たとえば、SDTM規格のSD ExpressTMの仕様としてあらかじめ定めておく。メモリデバイス1は、インタフェースの初期化が完了して当該インタフェースの構成が決定したら、ストリーム記録用のパワーステートセット[2]115について、あらかじめ定められた選択肢の中のうちメモリデバイス1がサポートする最大データ転送速度をパワーステートPS0として定義し、以下、選択肢の中のパワーステートPS0として定義したデータ転送速度よりも低いデータ転送速度のすべてをパワーステートPS1、パワーステートPS2、と順次定義していく。
【0048】
図3は、SDTM規格のSD ExpressTMの仕様で想定され得るインタフェースの構成のそれぞれに対して所定数の種類の性能をストリーム記録に関する規格として割り当てる一例を示す図である。
【0049】
たとえば、各インタフェース構成に対してそれぞれ4種類の性能を割り当てる。4種類の性能は、クラスとして規格化され、数字が大きいほど高い性能を表す。この規格化によって、メモリデバイス1を製品化するにあたり、製造元は、ストリーム記録に関して、当該メモリデバイス1が4種類の性能の中からサポート可能なものを選択することができ、サポート可能な最大性能をメモリデバイス性能として表示することができる。
【0050】
たとえば、「Gen3 1レーン」の場合、ストリーム記録の最大性能を、「150MB/s」、「300MB/s」、「450MB/s」、「600MB/s」の中から選択すればよい。たとえば、「600MB/s」をストリーム記録の最大性能として製造された場合、メモリデバイス1は、「450MB/s」、「300MB/s」、「150MB/s」もサポートすることができる。ここで、たとえば、「600MB/s」の性能でホストが長期間安定したストリーム記録を行うためには、パワーステートPS0に記載されているメモリデバイスの消費電力を放熱できる放熱機構25を持つことが必要で、連続的なメモリアクセスに対して一定以上の温度を超える温度上昇を生じさせることないようにする必要がある。通常はフラッシュメモリを安全に使用できる上限温度を超えないように設定される。
【0051】
SDTM規格のSD ExpressTMの仕様が「600MB/s」までをサポートする場合、ホストは「Gen4 2レーン」を実装する意味はあまりなく、「Gen3 1レーン」でも十分である。「Gen4 1レーン」は「600MB/s」の実装が容易になるという利点はある。
【0052】
ストリーム記録中に一定以上の温度上昇を生じさせないために、NVMeTMコントローラ11は、スロットリングを実行する。NVMeTMコントローラ11とフラッシュメモリ12との接続インタフェース自体の性能は、バス幅とクロック周波数とによって決定される。スロットリングは、たとえば、この接続インタフェース上で行われるデータ転送の頻度を制御する方法で、接続インタフェースの使用率を調整する手法とも言える。つまり、接続インタフェースの最大性能が1000MB/sとした場合、「600MB/s」の性能をサポートするメモリデバイス1は、ストリーム記録時、マージンを考慮するために最悪条件において性能が「600MB/s」より少し高くなるようにスロットリングによって調整される。「450MB/s」、「300MB/s」、「150MB/s」の性能で動作する場合も、メモリデバイス1は、スロットリングによって性能が規定値より少し高くなるように調整される。
【0053】
「Gen3 2レーン」または「Gen4 1レーン」の場合は、ストリーム記録の最大性能を、「1200MB/s」、「1050MB/s」、「900MB/s」、「750MB/s」の中から選択すればよい。たとえば、「1200MB/s」を選択して製造されたメモリデバイス1は、「1200MB/s」よりも低い「1050MB/s」、「900MB/s」、「750MB/s」、「600MB/s」、「450MB/s」、「300MB/s」、「150MB/s」もサポート可能である。
【0054】
同様に、「Gen4 2レーン」の場合は、ストリーム記録の最大性能を、「2400MB/s」、「2100MB/s」、「1800MB/s」、「1500MB/s」の中から選択すればよい。たとえば、「2400MB/s」を選択して製造されたメモリデバイス1は、「2400MB/s」よりも低い「2100MB/s」、「1800MB/s」、「1500MB/s」、「1200MB/s」よりも低い「1050MB/s」、「900MB/s」、「750MB/s」、「600MB/s」、「450MB/s」、「300MB/s」、「150MB/s」もサポート可能である。
【0055】
以上のように、実施形態のメモリデバイス1においては、メモリデバイス1が適用し得る各インタフェース構成に対する性能の割り当てを規格化し、さらに、ストリーム記録用としてホスト2に提供する性能(クラス)を規格化する。たとえば、まずは、「Gen3 1レーン」でサポートできる「150MB/s」、「300MB/s」、「450MB/s」、「600MB/s」を4種類のクラスとして規格化する。この場合、メモリデバイス1が生成するパワーステートセット[2]115に含まれるパワーステートは最大4個となる。
【0056】
「Gen3 1レーン」は一番性能が低いPCIeバスモードであるため、これより性能の高い他のPCIeバスモードでも4種類のクラスは使用可能である。たとえば、「2400MB/s」をサポートできる「Gen4 2レーン」のメモリデバイス1においても、ストリーム記録に関しては、最大「600MB/s」までの、「150MB/s」、「300MB/s」、「450MB/s」、「600MB/s」をサポートする。ただし同じスピードクラス性能でもPCIeバスインタフェースが高速なると、消費電力はその分大きくなってしまう。
【0057】
なお、将来、ストリーム記録に関する拡張規格として、「600MB/s」よりも高い性能をN個加えて4+N種類のクラスを規定する場合、図3中の「600MB/s」の次に高い「750MB/s」、さらに次に高い「900MB/s」、と順次追加されてもよい。これにより、たとえば、「Gen3 2レーン」または「Gen4 1レーン」のメモリデバイス1を、製造元は、将来の拡張規格で加わる性能のサポートを見据えた製品として製造することができる。
【0058】
NVMeTMコントローラ11は、パワーステートセット[1]114とパワーステートセット[2]115との使い分けを、たとえば、ホスト2からストリーム記録の動作を要求するNVMeTMコマンドを受信したことを契機として、パワーステートレジスタに格納する内容をパワーステートセット[1]114からパワーステートセット[2]115に切り替えることによって行う。また、NVMeTMコントローラ11は、パワーステートセット[2]115を、ホスト2からストリーム記録を指示するNVMeTMコマンドを受信した場合に生成してもよい。換言すれば、ホスト2からストリーム記録を指示するNVMeTMコマンドを受信しない限り、NVMeTMコントローラ11は、パワーステートセット[2]115を生成しないこととしてもよい。あるいは、たとえば、メモリデバイス1がストリーム記録用として使用されることが前提となっている場合には、NVMeTMコントローラ11は、パワーステートセット[2]115の生成およびパワーステートセット[2]115の内容のパワーステートレジスタへの格納を自動的に行うようにしてもよい。さらには、前述したように、メモリデバイス1がストリーム記録用として使用されることが前提となっている場合、NVMeTMコントローラ11は、パワーステートセット[1]114を持たないこととしてもよい。
【0059】
ところで、前述したように、デバイスの消費電力が制限されると実現できるデバイスの性能も制限される。ホスト2の最大許容電力(SPL値)によっては、この値が小さいと性能が実現できない場合もある。したがってインタフェース構成だけでなく、最大許容電力も考慮することで実現可能な性能が決まる。たとえば、最大許容電力の設定値のしきい値として1.8W, 2.5W, 2.8W, 3.2W, 4.0Wの5種類が規格で割り当てられている。これらの5種類の電力値を境界値として用いることで、有限な組み合わせとして検討することができる。
【0060】
これに対して、メモリデバイス1は、あらかじめ、インタフェースの構成と最大許容電力との組み合わせに対して、実装可能な最大性能(クラス)を実測などで算出しておくことができる。図4に、インタフェースの構成と最大許容電力との組み合わせに対する最大性能の算出結果に基づいたメモリデバイス1の実装例を示す。NVMeTMコントローラ11は、図4に示す表の対応関係を設計時に計算しておくことで、インタフェース構成と最大許容電力が決まると、使用できる最大クラス性能を決定することができる。
【0061】
図4(a)は、メモリデバイス1が「Gen3 1レーン」の第1例で、「600MB/s」の性能をサポートできるが、「1.8W」の許容消費電力では「450MB/s」と性能が落ちる場合の例である。
【0062】
使用できる最大クラス性能が決まると、NVMeTMコントローラ11は、ストリーム記録用のパワーステートセット[2]115を生成することができる。
【0063】
この場合、ホスト2との間で実行されるインタフェースの初期化が完了すると、インタフェースの構成が「Gen3 1レーン」に決定する。そして、ホスト2から得られるSPL値が「2.5W」以上の場合、最大クラス性能は「600MB/s」となり、NVMeTMコントローラ11は、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。SPL値が「1.8W」の場合には、最大クラス性能は「450MB/s」となり、NVMeTMコントローラ11は、パワーステートPS0=「450MB/s」、パワーステートPS1=「300MB/s」、パワーステートPS2=「150MB/s」の3個のパワーステートを含むパワーステートセット[2]115を生成する。
【0064】
図4(b)は、メモリデバイス1が「Gen3 1レーン」の第2例で、すべての許容消費電力で「300MB/s」の性能を実現できる場合の例である。
【0065】
この場合も、ホスト2との間で実行されるインタフェースの初期化が完了すると、インタフェースの構成が「Gen3 1レーン」に決定する。そして、NVMeTMコントローラ11は、ホスト2から得られるSPL値がいずれの値であっても、パワーステートPS0=「300MB/s」、パワーステートPS1=「150MB/s」の2個のパワーステートを含むパワーステートセット[2]115を生成する。
【0066】
図4(c)は、メモリデバイス1が「Gen4 1レーン」の例である。この場合、ホスト2との間で実行されるインタフェースの初期化が完了した際、インタフェースの構成が「Gen3 1レーン」または「Gen4 1レーン」のいずれに決定するかはホスト2に依存する。「Gen3 1レーン」に決定した場合、このメモリデバイス1は、図4(a)の場合と同様、「600MB/s」の性能をサポートできるが、「1.8W」の許容消費電力では「450MB/s」と性能が落ちる。NVMeTMコントローラ11は、ホスト2から得られるSPL値が「2.5W」以上の場合、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成し、SPL値が「1.8W」の場合には、パワーステートPS0=「450MB/s」、パワーステートPS1=「300MB/s」、パワーステートPS2=「150MB/s」の3個のパワーステートを含むパワーステートセット[2]115を生成する。
【0067】
一方、「Gen4 1レーン」に決定した場合には、このメモリデバイス1は、「3.2W」以上の許容消費電力で「1050MB/s」の性能を実現でき、「2.5W」以上の許容消費電力で「900MB/s」の性能を実現できる。なお、「1.8W」の許容消費電力では「750MB/s」の性能を実現できるが、SDTM規格のSD ExpressTMの仕様では、「Gen4」は「1.8W」で動作しなくともよいこととなっている。デバイスとしては「1050MB/s」の性能を実現できるが、たとえば、SDTM規格のSD ExpressTM仕様のクラス性能規格バージョン1では性能の上限が「600MB/s」と決められているものと想定すると、NVMeTMコントローラ11は、ホスト2から得られるSPL値がいずれの値であっても、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。
【0068】
また、ストリーム記録に関する拡張規格として、たとえば、「900MB/s」、「750MB/s」が加わったとすると、NVMeTMコントローラ11は、「Gen4 1レーン」に決定し、かつ、SPL値が「2.5W」以上の場合に、パワーステートPS0=「900MB/s」、パワーステートPS1=「750MB/s」、パワーステートPS2=「600MB/s」、パワーステートPS3=「450MB/s」、パワーステートPS4=「300MB/s」、パワーステートPS5=「150MB/s」の6個のパワーステートを含むパワーステートセット[2]115を生成する。SPL値が「1.8W」以上の場合は、NVMeTMコントローラ11は、パワーステートPS0=「750MB/s」、パワーステートPS1=「600MB/s」、パワーステートPS2=「450MB/s」、パワーステートPS3=「300MB/s」、パワーステートPS4=「150MB/s」の5個のパワーステートを含むパワーステートセット[2]115を生成する。上記はデバイスの実装によってSPL値が「1.8W」でも動作可能であることを示しているが、「Gen4 1レーン」を使う場合、ホストは「1.8W」を超えるSPL値を設定することが要求される。
【0069】
図4(d)は、メモリデバイス1が「Gen3 2レーン」の例である。この場合、ホスト2との間で実行されるインタフェースの初期化が完了した際、インタフェースの構成が「Gen3 1レーン」または「Gen3 2レーン」のいずれに決定するかはホスト2に依存する。「Gen3 1レーン」に決定した場合、このメモリデバイス1は、すべての許容消費電力で「450MB/s」の性能を実現できる。NVMeTMコントローラ11は、ホスト2から得られるSPL値がいずれの値であっても、パワーステートPS0=「450MB/s」、パワーステートPS1=「300MB/s」、パワーステートPS2=「150MB/s」の3個のパワーステートを含むパワーステートセット[2]115を生成する。
【0070】
一方、「Gen3 2レーン」に決定した場合には、このメモリデバイス1は、「2.5W」以上の許容消費電力で「900MB/s」の性能を実現できる。たとえば、SDTM規格のSD ExpressTMの仕様で性能の上限が「600MB/s」と決められているものと想定すると、NVMeTMコントローラ11は、ホスト2から得られるSPL値が「2.5W」以上の場合、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。「Gen3 2レーン」に決定し、かつ、SPL値が「1.8W」の場合は、ストリーム記録をサポートしない。有効なパワーステートが存在しないことで、ホストはデバイスがサポートできないことを認識できる。「Gen3 2レーン」を使う場合、ホストは「1.8W」を超えるSPL値を設定することが要求される。
【0071】
また、ストリーム記録に関する拡張規格として、たとえば、SDTM規格のSD ExpressTMの仕様のクラス性能規格バージョン2として「900MB/s」、「750MB/s」が加わったとすると、NVMeTMコントローラ11は、「Gen3 2レーン」に決定し、かつ、SPL値が「2.5W」以上の場合、かつ、ホストがクラス性能規格バージョン2対応している場合に、パワーステートPS0=「900MB/s」、パワーステートPS1=「750MB/s」、パワーステートPS2=「600MB/s」、パワーステートPS3=「450MB/s」、パワーステートPS4=「300MB/s」、パワーステートPS5=「150MB/s」の6個のパワーステートを含むパワーステートセット[2]115を生成する。ホストがクラス性能規格バージョン1のみに対応している場合、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。
【0072】
図4(e)は、メモリデバイス1が「Gen4 2レーン」の例である。この場合、ホスト2との間で実行されるインタフェースの初期化が完了した際、インタフェースの構成が「Gen3 1レーン」、「Gen3 2レーン」、「Gen4 1レーン」、「Gen4 2レーン」のいずれに決定するかはホスト2に依存する。またメモリデバイス1も例えばSPL値によって「Gen3 1レーン」、「Gen3 2レーン」、「Gen4 1レーン」、「Gen4 2レーン」のいずれかを選択することができる。つまりホストとメモリデバイスが共通して動作可能で、より高速なバスモードが選択される。「Gen3 1レーン」に決定した場合、このメモリデバイス1は、すべての許容消費電力で「450MB/s」の性能を実現できる。NVMeTMコントローラ11は、ホスト2から得られるSPL値がいずれの値であっても、パワーステートPS0=「450MB/s」、パワーステートPS1=「300MB/s」、パワーステートPS2=「150MB/s」の3個のパワーステートを含むパワーステートセット[2]115を生成する。
【0073】
「Gen3 2レーン」または「Gen4 1レーン」に決定した場合には、このメモリデバイス1は、「2.5W」以上の許容消費電力で「900MB/s」の性能を実現できる。たとえば、SDTM規格のSD ExpressTMの仕様のクラス性能規格バージョン1では性能の上限が「600MB/s」と決められているものと想定すると、NVMeTMコントローラ11は、ホスト2から得られるSPL値が「2.5W」以上の場合、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。「Gen3 2レーン」または「Gen4 1レーン」に決定し、かつ、SPL値が「1.8W」の場合は、ストリーム記録をサポートしない。
【0074】
「Gen4 2レーン」に決定した場合には、このメモリデバイス1は、「4.0W」以上の許容消費電力で「1800MB/s」の性能を実現でき、また、「3.2W」以上の許容消費電力で「1500MB/s」の性能を実現できるが、SPL値が「3.2W」未満の場合は、ストリーム記録をサポートできない。ホストは「Gen3 1レーン」、「Gen3 2レーン」または「Gen4 1レーン」を使った方が消費電力を下げることができ、メモリデバイス1が動作できる可能性が高まる。例えば、「Gen3 2レーン」で初期化すれば、NVMeTMコントローラ11は、ホスト2から得られるSPL値が「2.5W」以上あれば「900MB/s」で動作可能である。たとえば、SDTM規格のSD ExpressTMの仕様のクラス性能規格バージョン1では性能の上限が「600MB/s」と決められているものと想定すると、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。すなわち「Gen4 2レーン」は将来「1200MB/s」を超える性能が必要になったときに使用すべきバスモードである。クラス性能規格バージョン1のみに対応しているホストは、「Gen4 2レーン」をサポートしない方が良い。
【0075】
また、ストリーム記録に関する拡張規格として、クラス性能規格バージョン2に、たとえば、「900MB/s」、「750MB/s」が加わったとすると、NVMeTMコントローラ11は、クラス性能規格バージョン2ホストに対して、「Gen3 2レーン」または「Gen4 1レーン」に決定し、かつ、SPL値が「2.5W」以上の場合、もしくは、「Gen4 2レーン」に決定し、かつ、SPL値が「3.2W」以上の場合に、パワーステートPS0=「900MB/s」、パワーステートPS1=「750MB/s」、パワーステートPS2=「600MB/s」、パワーステートPS3=「450MB/s」、パワーステートPS4=「300MB/s」、パワーステートPS5=「150MB/s」の6個のパワーステートを含むパワーステートセット[2]115を生成する。
【0076】
図5は、パワーステートセット[2]115の構成例を示す図である。たとえば、SDTM規格のSD ExpressTMの仕様のクラス性能規格バージョン1では性能の上限が「600MB/s」と決められているものと想定すると、これらの4通りが有効なバワーステートとなる。バワーステートがない場合やパワーステートの設定が無効な場合(例えばすべてゼロを設定)はインタフェース構成や許容消費電力の制限によりデバイスはクラス性能をサポートできないことを示す。
【0077】
ストリーム記録に関してメモリデバイス1が「150MB/s」の性能をサポートできる場合、パワーステートPS0=「150MB/s」の1個のパワーステートを含むパワーステートセット[2]115が生成される。なお、前述したように、ストリーム記録に関してメモリデバイス1がサポートできる性能は、ホスト2によって変動する。
【0078】
「300MB/s」の性能をサポートできる場合は、パワーステートPS0=「300MB/s」、パワーステートPS1=「150MB/s」の2個のパワーステートを含むパワーステートセット[2]115が生成される。また、「450MB/s」の性能をサポートできる場合は、パワーステートPS0=「450MB/s」、パワーステートPS1=「300MB/s」、パワーステートPS2=「150MB/s」の3個のパワーステートを含むパワーステートセット[2]115が生成される。そして、「600MB/s」の性能をサポートできる場合は、パワーステートPS0=「600MB/s」、パワーステートPS1=「450MB/s」、パワーステートPS2=「300MB/s」、パワーステートPS3=「150MB/s」の4個のパワーステートを含むパワーステートセット[2]115を生成する。
【0079】
このように、デフォルト用のパワーステートセット[1]114に加えて、実施形態のメモリデバイス1が有するストリーム記録用のパワーステートセット[1]115は、パワーステートセット[1]114のパワーステート数が固定であるのに対して、メモリデバイス1とホスト2との組み合わせによってパワーステート数が変化する。
【0080】
前述したように、ホスト2は、メモリデバイス1のパワーステートレジスタをNVMeTMコマンドで読み出すことができる。パワーステートレジスタには、パワーステート数が格納されている。このパワーステート数を参照することで、ホスト2は、ストリーム記録に関してメモリデバイス1がサポートする最大性能を認識することができる。
【0081】
たとえば、パワーステート数が3個の場合、ホスト2は、パワーステートPS0=「450MB/s」、パワーステートPS1=「300MB/s」、パワーステートPS2=「150MB/s」であることを認識できる。これにより、ホスト2は、たとえば、「450MB/s」が必要な高画質での録画の場合はパワーステートPS0を選択し、「300MB/s」あれば十分な中画質での録画の場合はパワーステートPS1を選択し、「150MB/s」あれば十分な低画質での録画の場合はパワーステートPS2を選択することが可能となる。
【0082】
図6は、ストリーム記録に関する拡張規格として、「750MB/s」、「900MB/s」が加わった場合におけるパワーステートセット[2]115の一構成例を示す図である。
【0083】
たとえば、ストリーム記録に関してメモリデバイス1が「900MB/s」の性能をサポートできる場合であっても、前述の規格化の下では、ストリーム記録に関してメモリデバイス1がサポートする最大性能は「600MB/s」であり、これがパワーステートPS0に割り当てられ、以下、パワーステートPS1、パワーステートPS2、パワーステートPS3に、「450MB/s」、「300MB/s」、「150MB/s」が割り当てられる。
【0084】
一方、拡張規格が規定された場合、デバイスは、ホストのバージョン情報によって、パワーステート生成の仕方を変える必要がある。図3で示すクラスがある場合、規格が拡張された場合におけるホストのバージョンとデバイスのバージョンとの組み合わせによる最大性能の決定例を図7に示す。図7に示すように、
・クラス性能規格バージョン1:最大性能「600MB/s」まで
・クラス性能規格バージョン2:最大性能「1200MB/s」まで拡張
・クラス性能規格バージョン3:最大性能「2400MB/s」まで拡張
となる。
【0085】
バージョン2デバイスとバージョン3デバイスがPS0に設定する最大クラス性能は、ホストバージョンを考慮して決める必要がある。バージョン1デバイスはホストバージョンを考慮する必要はない。
【0086】
最大性能は「900MB/s」のバージョン2デバイスにバージョン1ホストが接続された場合、最大性能は「600MB/s」のまままである。バージョン2ホストが接続された場合は、図7に示すように、最大性能は「900MB/s」がパワーステートPS0に割り当てられ、以下、パワーステートPS1に、「750MB/s」、PS2に「600MB/s」、PS3に「450MB/s」、PS4に「300MB/s」、PS5に「150MB/s」が割り当てられることとなる。
【0087】
ホストのクラス性能規格バージョンを認識する方法のひとつとして、SPLレジスタ値を用いることができる。SDTM規格のSD ExpressTMの仕様では、SPLの境界値として1.8W, 2.5W, 2.8W, 3.2W, 4.0Wが定義されていて、Gen3x2/Gen4x1は、2.8W以上、Gen4x2は4.0W以上を設定することになっている。しかし、このパワーリミット値は、デバイスをスロットリングなしのフルパワーで動作させることを想定しているため大きな電力値が必要となっている。一方スピードクラスは、消費電力を落とし、発熱を減らして長時間のストリーム記録が安定して行える環境を想定しているため、もっと低いSPLの設定値でもスピードクラスは実装可能である。例えば、SPL値が2.8W未満であってもGen3x2/Gen4x1で動作する実装には可能である。つまり従来のSPL規定値は、スピードクラスには必須要件ではない。性能と消費電力には相関があると考えられるため、ホストがサポートするクラス性能規格バージョンと、ホストが設定するSPL値とを関連付けることができる。例えば、SPLが2.8W未満に設定された場合、メモリデバイス1はホストのクラス性能規格をバージョン1と認識する。電力が不足するためGen4x2になる可能性は低くなる。Gen3x2/Gen4x1であれば、600MB/sの実装に余裕があり、Gen3x1でも600MB/sの実装は可能である。さらに例えば、SPLが2.8W以上4.0W未満に設定された場合、ホストのクラス性能規格をバージョン2と認識する。SPLが4.0W以上に設定された場合、ホストのクラス性能規格をバージョン3と認識する。メモリデバイス1がクラス性能規格バージョン1の場合は、ホストのクラス性能規格バージョンを見る必要はない。2.8Wと4.0Wは電力境界値の例であり、3種類のバージョンを識別できるものであれば、他の電力値を境界値として設定しても良い。例えば2.5Wと3.2Wを境界値としても良い。
【0088】
このように、実施形態のメモリデバイス1によれば、ストリーム記録に関する性能を規格化し、この規格の下、ストリーム記録用のパワーステートセット[2]115をホスト2に応じて動的に構成することで、PCIeTMおよびNVMeTMのフレキシビリティの高さ故に長時間安定的な実行が困難であったストリーム記録を可能とする。メモリデバイス1に対してストリーム記録を行うホスト2は、メモリデバイス1から取得したパワーステートレジスタ内の1個以上のパワーステートの中から画質などの目的に合ったパワーステートを1つ選択するだけでよいこととなる。
【0089】
図8は、ホスト2とメモリデバイス1とが協働的に実行するインタフェースの初期化の流れを示すフローチャートである。
【0090】
ホスト2のシステムコントローラ22は、メモリデバイス1との間のPCIeTM規格で規定されるインタフェースの初期化の途中にSet_Slot_Power_Limit Messageを用いてPCIeTMポート222のSPLレジスタ250に格納したSPL値をメモリデバイス1へ転送する(S101)。メモリデバイス1のNVMeTMコントローラ11は、ホスト2から受信したSPL値をインタフェース回路111のSPLレジスタ150に格納する(S201)。前述のようにメモリデバイス1は、SPL値によってホストがサポートするクラス性能規格バージョンを識別に利用することができる。
【0091】
次に、ホスト2のシステムコントローラ22は、メモリデバイス1からサポート情報を取得する(S102)。このサポート情報には、メモリデバイス1がストリーム記録をサポートしているか否かを示す情報が含まれている。ホスト2のシステムコントローラ22は、取得したサポート情報に基づき、メモリデバイス1のストリーム記録のサポート有無を判定する(S103)。ストリーム記録のサポートがない場合(S103:No)、ホスト2のシステムコントローラ22は、以降のストリーム記録用の初期化処理は行わず、インタフェースの初期化を終了し通常のメモリデバイスとして動作する。
【0092】
一方、ストリーム記録がサポートされている場合(S103:Yes)、
ホストはSD Expressクラス性能のホストバージョンをデバイスに設定する(S104)。例えばNVMeTMコマンドを用いて転送される。前述のようにSPL値によってホストがサポートするクラス性能規格バージョンを識別に利用する場合はこのステップは省略可能である。
【0093】
ホスト2のシステムコントローラ22は、NVMeTMコマンドであるDirectiveコマンドを使ってストリームディレクティブを使用できるようにする(S105)。ストリームディレクティブは、Directive ReceiveコマンドやDirective Sendコマンドなどのストリーム記録で使用するコマンド群(ストリームディレクティブコマンド)である。
【0094】
ストリームディレクティブを使用可能にすると、ホスト2のシステムコントローラ22は、ストリーム記録に必要なパラメータ(ストリーム関連パラメータ)をメモリデバイス1から取得する(S106)。メモリデバイス1のNVMeTMコントローラ11は、ホスト2からの要求に応じて、ストリーム関連パラメータをホスト2へ送信する(図示省略)。例えば使用可能なストリーム数、ストリームライトコマンドのデータサイズ(前記SWS)、ストリーム領域の管理サイズ(前記SGS)などが取得できる。また、その後にメモリデバイス1のNVMeTMコントローラ11は、PCIeTMレジスタからPCIeTMバス構成情報を取得する(S202)。
【0095】
さらに、メモリデバイス1のNVMeTMコントローラ11は、インタフェース回路111のSPLレジスタ150から許容消費電力を取得する(S203)。SPLの設定値または(S104)で設定したホストバージョンを取得する。メモリデバイス1のNVMeTMコントローラ11は、PCIeTMバス構成情報と許容消費電力とホストバージョンとに基づき、パワーステートセット[2]115を設定する(S204)。
【0096】
ホスト2のシステムコントローラ22は、NVMeTMコントローラ11に対してストリーム記録のためのリソースの割り当てを行い(S107)、例えば使用するマルチストリーム数を決定することで、NVMeTMコントローラ11は、それぞれのストリーム用にデータを一時保管するバッファリソースなどを確保しておくことができる。また、メモリデバイス1からパワーステート情報(パワーステートレジスタの内容)を取得する(S108)。そして、ホスト2のシステムコントローラ22は、取得したパワーステート情報から画質などに適したパワーステートを選択する(S109)。
NVMeTMコントローラ11は、S108のパワーステート情報を取得するNVMeTMコマンドを受信すると、S104のパワーステートセット[2]115の設定が完了してから、パワーステート情報をホスト2に返す。
【0097】
以上のように、実施形態のメモリデバイス1においては、ホストとの接続結果に応じてストリーム記録を長時間安定的に行うことができるパワーステートを生成することができる。
【0098】
ところで、ホスト2とメモリデバイス1とが協働的に実行するインタフェースの初期化によって得られた各種情報に基づき、メモリデバイス1においてストリーム記録用のパワーステートセット[2]115が生成された後、ホスト2が、その中のいずれかのパワーステートを選択してストリーム記録を実行するならば、理論的には、メモリデバイス1での一定以上の温度上昇は発生しないと考えられる。
【0099】
しかし、消費電力と放熱能力との関係は複雑であるため、理論上計算できる放熱能力を実装することは容易ではない。たとえば、前述したように、放熱機構25は、理論上、SPL値で示される最大許容電力が電源回路24から供給された場合にメモリデバイス1内に発生する熱を放出する能力を持つが、ホスト2側に配置される放熱機構25とメモリデバイス1との間に生じる隙間の空気層は熱伝導性が低いため、メモリデバイス1の温度上昇を招いてしまう可能性がある。メモリデバイス1の材質によって熱伝導率が異なり、メモリデバイス1の表面温度も均一ではなく、発熱する部品の実装位置によって発熱の場所が異なるなど、温度については実装によって変わる要素が多数存在するためでもある。
【0100】
実施形態のメモリデバイス1は、この点を考慮に入れて、メモリデバイス1内の温度を監視し、ストリーム記録中にしきい値を超えた場合、ホスト2にイベント通知する。一方、ホスト2は、このメモリデバイス1のイベント通知機能を利用して、パワーステートを選択するにあたり、選択したパワーステートで、ストリーム記録を長期間安定的に行うことが実際に可能か否かを検証する。なお、メモリデバイス1には、NVMeTMコントローラ11内の温度センサ113と、フラッシュメモリ12内の温度センサ123とが存在するが、フラッシュメモリ12の方がNVMeTMコントローラ11よりも動作可能な上限温度が低いため、この監視では、温度センサ123の検出温度を使用することが好ましい。
【0101】
具体的には、ホスト2は、テストデータなどのデータをメモリデバイス1への連続的な書き込みまたは連続的な読み出しを実行する。リアルタイムのストリーム記録で性能が重視されるのはライト時であるが、消費電力の大きい読み出し動作で測定することもできる。図1のフラッシュメモリ12の「測定用SGS」は、テストデータなどの書き込み先として使用される領域である。メモリデバイス1は、この領域として、たとえば、データの格納には使うことができないバッドブロック等の領域を活用することができる。バッドブロックを使用する場合はエラーを検出しても無視するようにしておく。このような領域をテストデータの連続的な書き込み用としてあらかじめ確保しておくことで、ユーザ領域122をテストで使わないようにすることができる。また、ユーザ領域122を使う場合はホスト2がテストデータの書き込みを行うことができるが、バッドブロックを用いる場合は外部からアクセスできないためメモリデバイス1が行う必要がある。たとえば、あらかじめ定められたバッドブロックアドレスをNVMeTMコントローラ11に設定しておく。温度しきい値を超えてイベントの発生を検出することで、NVMeTMコントローラ11は、インクリメントしたパワーステート番号を選択し、前述の、フラッシュメモリ12のあらかじめ設定した領域に対して、規定の連続データの書き込みを実行する。
【0102】
ホスト2は、この連続的な書き込みを開始してから規定時間内にメモリデバイス1からのイベント通知がなければ、ストリーム記録を長期間安定的に行えるものと判定し、ストリーム記録のためのパワーステートの設定を完了する。
【0103】
ホスト2が、ストリーム記録を開始する前に、メモリデバイス1に対してテストデータの連続的な書き込みを規定時間に渡り実行することは、メモリデバイス1の温度上昇が収まって定常状態になってから、ストリーム記録を開始できるという効果も奏する。
【0104】
一方、規定時間内にイベント通知を受けた場合、ホスト2は、現在のパワーステートよりも1段階性能の低いパワーステートへの切り替えを行い、再度、テストデータの連続的な書き込みを実行する。その結果、規定時間内にイベント通知がなければ、切り替え後のパワーステートであればストリーム記録を長期間安定的に行えるものと判定し、ストリーム記録のためのパワーステートの設定を完了する。もし、最も性能の低いパワーステートまで切り替えても、テストデータの連続的な書き込みを実行すると規定時間内にイベント通知を受けてしまう場合、ホスト2は、ストリーム記録用としてのメモリデバイス1の利用は不可と判断する。なお、図のフラッシュメモリ12の「トレーニング結果」は、テストデータの連続的な書き込み時にしきい値を超える温度上昇が発生したか否か情報が履歴情報として記録されているものである。
【0105】
また、テストアクセスは用いず実際のストリーム記録中にパワーステート選択を行う方法もある。イベントが発生しなければ、デフォルトのパワーステートを使い続けることができる。イベント通知を受けた場合、ホスト2は、現在のパワーステートよりも1段階性能の低いパワーステートへの切り替えを行う。これでイベントが発生しなければ、選択したパワーステートを使い続け、イベント通知を受けた場合、更に1段階性能の低いパワーステートへの切り替えを行う。性能の低いパワーステートに切り換えることができなくなったら、ストリーム記録用としてのメモリデバイス1の利用は不可と判断する。
また、イベント通知を受けた場合、1段階性能の低いパワーステートへの切り替えを行う代わりに、ホストが画質を下げる(ビットレート、解像度、色情報量など)ことで書き込み頻度を下げて温度調整する方法もある。
【0106】
このように、実施形態のメモリデバイス1は、ホスト2と協働して、より確実に、ストリーム記録を長時間安定的に行うことを実現する。
【0107】
図9は、メモリデバイス1が実行する温度監視の流れを示すフローチャートである。
【0108】
メモリデバイス1のNVMeTMコントローラ11は、ある時間間隔でフラッシュメモリ12の温度センサ123が検出する温度を読み出す(S301)。NVMeTMコントローラ11は、読み出した温度がしきい値以下か否かを判定する(S302)。しきい値を超えていた場合(S302:No)、NVMeTMコントローラ11は、一定以上の温度上昇をホスト2に知らせるためのイベントを生成する(S303)。
【0109】
図10は、ホスト2またはNVMeTMコントローラ11が実行するパワーステート調整の流れを示すフローチャートである。図10中、N-1は、最も性能が低いパワーステートの番号を示す。最も性能が高いパワーステートの番号は0である。
【0110】
ホスト2が実行する場合について説明する。メモリデバイス1からイベント通知を受けた場合、ホスト2のシステムコントローラ22は、まず、現在のパワーステートの番号を取得する(S401)。システムコントローラ22は、取得したパワーステートの番号が、最も性能が低いパワーステートの番号N-1と一致した場合(S402:No)、ストリーム記録用としてのメモリデバイス1の利用は不可と判断する。なお、フローチャートでは、最も性能が低いパワーステートの番号を下回るという条件であるが、パワーステートの番号はインクリメントしているので、パワーステート番号N-1と一致した場合にS402:Noとなる。
【0111】
最も性能が低いパワーステートの番号より小さい場合(S402:Yes)、システムコントローラ22は、現在のパワーステートよりも1段階性能の低いパワーステートを選択し(S403)、メモリデバイス1への連続アクセスを実行する(S404)。ただし。このステップS404は省略することができ、代わりに実際のストリーム記録をしながら温度監視をすることもできる。NVMeTMコントローラ11は、図9で示される温度監視を継続して行っている。
【0112】
システムコントローラ22は、規定時間内にイベントが発生したか否かを判定し(S405)、規定時間内にイベントが発生した場合(S405:Yes)、S401へ戻り、S401からの処理を繰り返す。一方、規定時間内にイベントが発生しなかった場合(S405:No)、システムコントローラ22は、現在のパワーステートでストリーム記録を長期間安定的に行えるものと判定し、パワーステート調整を終了する。
ステップS404は省略した場合は、すぐにパワーステート調整を終了する。
【0113】
以上のように、実施形態のメモリデバイス1においては、ホスト2とメモリデバイス1とが協働してトレーニングを実行することで、確実に、ストリーム記録を長時間安定的に行うことを実現する。
【0114】
なお、以上の説明では、トレーニングに関して、ホスト2がメモリデバイス1に対して連続的なデータの書き込みを行う例を挙げたが、当該連続的なデータの書き込みは、メモリデバイス1がホストからのコマンドと関係なく、メモリデバイス1のバックグランド処理にて実行するものであってもよい。もし、連続的なデータの書き込みの結果、しきい値を超える温度上昇が発生した場合、メモリデバイス1がホスト2へイベント通知を行い、このイベント通知を受けて、ホスト2がパワーステートの切り替えをメモリデバイス1へ指示してもよい。また実際のストリーム記録中に行われる連続メモリライトでトレーニングを行ってもよい。前述のように、性能の低いパワーステートへの切り替えを行う代わりに、ホストが画質を下げる(ビットレート、解像度、色情報量など)ことで書き込み頻度を下げることで温度調整を行ってもよい。
【0115】
あるいは、しきい値を超える温度上昇が発生した場合のパワーステートの切り替えについてもメモリデバイス1が内部的に実行し、しきい値を超える温度上昇が発生しないパワーステートを検出したら、そのパワーステートをホスト2へ通知するようにしてもよい。この通知を受けたホスト2は、そのパワーステートでのストリーム記録を実行するか否かをメモリデバイス1に指示するようにしてもよい。
【0116】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0117】
1…PCIeTM/NVMeTMメモリデバイス、2…ホスト、11…NVMeTMコントローラ、12…フラッシュメモリ、21…プロセッサ、22…システムコントローラ、23…システムメモリ、24…電源回路、25…放熱機構、100…情報処理システム、111…インタフェース回路、112…ファームウェア、113…温度センサ、114…パワーステートセット[1]、115…パワーステートセット[2]、116…プロファイル、120…記憶領域、121…内部領域、122…ユーザ領域、123…温度センサ、150…Slot Power Limit(SPL)レジスタ、221…メモリコントローラ、222…PCIeTMポート、231…オペレーティングシステム、232…PCIeTM標準ドライバ、233…NVMeTM標準ドライバ、234…温度制御ドライバ、250…SPLレジスタ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2023-09-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
PCI ExpressTM(PCIeTM)規格に準拠するインタフェースでホストと接続可能であり、NVM ExpressTM(NVMeTM)規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信を前記ホストと実行可能である、前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、
前記インタフェースの初期化を前記ホストとの間で協働的に実行し、
前記インタフェースの初期化で決定される前記インタフェースのバス構成と、前記インタフェースの初期化中に設定される最大許容消費電力とに基づき、ストリーム記録に関してあらかじめ規定されている複数の性能の中からサポート可能な最大性能を決定し、
前記NVMeTM規格で規定されているパワーステートレジスタに格納するデータセットであって、サポート可能な性能の一覧を前記ホストに示すための、前記複数の性能の中の前記決定した最大性能以下のすべての性能を1つずつパワーステートに対応させたパワーステートセットを生成する、
メモリシステム。
【請求項2】
前記インタフェースのバス構成は、前記PCIeTM規格で規定されている前記初期化の手続きで定まるバス速度およびレーン数によって決定される請求項1に記載のメモリシステム。
【請求項3】
前記コントローラは、PCIeTM規格で規定されているSlot_Power_Limitメッセージによって前記ホストから転送されるSlot Power Limitレジスタの値から前記最大許容消費電力を取得する請求項1に記載のメモリシステム。
【請求項4】
前記最大許容消費電力の複数の範囲に対し、それぞれホストがサポート可能な性能とメモリシステムがサポート可能な最大性能とを関連付けることで、最大許容消費電力値が決まると、前記ホストがサポート可能な性能と、前記メモリシステムがサポート可能な最大性能とが決まり、
前記コントローラは、前記ホストがサポート可能な性能と、前記メモリシステムがサポート可能な最大性能とのどちらか低い方をバワーステートの最大性能として前記パワーステートセットを生成する請求項1に記載のメモリシステム。
【請求項5】
前記コントローラは、
非ストリーム記録用の第1パワーステートセットと、ストリーム記録用の第2パワーステートセットとを有し、前記インタフェースのバス構成と前記最大許容消費電力とによって内容が変化し得る前記生成するパワーステートセットを前記第2パワーステートセットと位置づけ、
前記NVMeTM規格で規定されている、ストリーム記録の動作を要求するコマンドが前記ホストから受信された場合に、前記第2パワーステートセットを生成し、前記パワーステートレジスタの内容を、前記第1パワーステートセットの内容から前記第2パワーステートセットの内容に切り換える、
請求項1に記載のメモリシステム。
【請求項6】
温度センサを具備し、
前記コントローラは、
前記ストリーム記録の動作を要求するコマンドを受信した後、前記ホストからの要求に応じて、または、自主的に一定期間、前記不揮発性メモリへの連続的なデータの書き込みまたは読み出しを実行し、
前記不揮発性メモリへの連続的なデータの書き込みを実行している間、前記温度センサが検出する温度を監視し、
前記温度がしきい値を超えた場合、前記メモリシステムの一定以上の温度上昇をホストへ通知する、
請求項1に記載のメモリシステム。
【請求項7】
前記コントローラは、前記不揮発性メモリへの連続的なデータの書き込みまたは読み出しを自主的に実行する場合において、前記一定期間内に前記温度がしきい値を超えた場合、現在のパワーステートよりも性能の低いパワーステートへの切り替えを行い、前記不揮発性メモリへの連続的なデータの書き込みまたは読み出しを行っても温度がしきい値を超えないパワーステートを選択する請求項6に記載のメモリシステム。
【請求項8】
前記コントローラは、前記連続的なデータの書き込みを、前記連続的なデータの書き込み用にあらかじめ確保した前記不揮発性メモリの領域を使って実行する請求項6に記載のメモリシステム。
【請求項9】
PCI ExpressTM(PCIeTM)規格に準拠するインタフェースでメモリシステムと接続可能であり、NVM ExpressTM(NVMeTM)規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信を前記メモリシステムと実行可能なシステムコントローラと、
前記メモリシステムに対して電力を供給可能な電源回路と、
を具備し、
前記システムコントローラは、
前記インタフェースの初期化を前記メモリシステムとの間で協働的に実行し、
前記電源回路が供給可能な前記メモリシステムの最大許容消費電力を前記インタフェースの初期化中に前記メモリシステムに対して通知し、
前記メモリシステムを使用してストリーム記録を実行する場合、
前記NVMeTM規格で規定されている、ストリーム記録の動作を要求するコマンドを前記メモリシステムに対して送信し、
前記NVMeTM規格で規定されているパワーステートレジスタの内容を前記メモリシステムから取得し、
前記パワーステートレジスタに格納されている1個以上のパワーステートの中から1つのパワーステートを選択して前記メモリシステムに設定する、
ホスト装置。
【請求項10】
前記システムコントローラは、
前記ストリーム記録を開始する前に、
前記メモリシステムに対する連続的なデータの書き込みを一定期間実行し、
前記メモリシステムの一定以上の温度上昇が前記一定期間内に前記メモリシステムから通知された場合、前記パワーステートレジスタに格納されている1個以上のパワーステートの中から現在のパワーステートよりも性能の低いパワーステートを再選択して前記メモリシステムに設定する、
請求項9に記載のホスト装置。
【請求項11】
前記システムコントローラは、あらかじめ定められたアドレスを指定して、前記メモリシステムに対する連続的なデータの書き込みを実行する請求項10に記載のホスト装置。
【請求項12】
不揮発性メモリと、
前記不揮発性メモリを制御し、PCI Express TM (PCIe TM )規格に準拠するインタフェースでホストと接続可能であり、NVM Express TM (NVMe TM )規格に準拠するプロトコルでデータの書き込みまたは読み出しのための通信を前記ホストと実行可能であるコントローラと、
を具備し、
前記コントローラは、
前記PCIe TM に準拠するインタフェースの初期化を前記ホストとの間で協働的に実行し、
前記インタフェースの初期化で決定される前記インタフェースのバス構成と、前記インタフェースの初期化において設定される最大許容消費電力とに基づいてストリーム記録用にあらかじめ規定されている複数の性能のうち、サポート可能な最大性能を決定し、
前記NVMe TM 規格で規定されているパワーステートであって前記サポート可能な最大性能以下のそれぞれの性能ごとに生成したストリーム記録用パワーステートが格納される第1のレジスタと、前記ストリーム記録用パワーステートを生成するための情報が格納される第2のレジスタと、を具備する、
メモリシステム。
【請求項13】
前記パワーステートの中から、使用するストリーム記録用パワーステートが前記ホストによって選択され、前記選択されたストリーム記録用パワーステートが前記コントローラに設定される、請求項12に記載のメモリシステム。
【請求項14】
前記第2のレジスタから読み出される前記ストリーム記録用パワーステートを生成するための情報からパワーステートの性能を特定し、前記第1のレジスタから読み出されるパワーステート情報からストリーム記録に使用するパワーステートが前記ホストによって選択され、前記選択されたストリーム記録用パワーステートが前記コントローラに設定される、請求項12に記載のメモリシステム。
【請求項15】
前記コントローラは、前記選択されたストリーム記録用パワーステートに基づいて前記不揮発性メモリへのストリーム記録を実行する、請求項13または請求項14に記載のメモリシステム。
【請求項16】
前記コントローラは、SD Express性能に対応可能である請求項12に記載のメモリシステム。
【請求項17】
前記コントローラは、前記メモリシステム内部の温度情報を監視し、前記温度情報がしきい値を超えた場合、前記ストリーム記録用パワーステートを消費電力の低いパワーステートへ切り替え、前記ホストへイベントを通知する、請求項12記載に記載のメモリシステム。
【請求項18】
前記コントローラは、前記バス構成として、ホストとメモリカード間のPCIe TM インタフェースの初期化で選択されたPCIeバスモードの性能と、PCIe TM 規格で規定されているSlot_Power_Limitメッセージによって前記ホストから転送されるSlot Power Limitレジスタの値から前記最大許容消費電力を取得し、前記メモリカードがサポート可能な最大性能を決定する、請求項12に記載のメモリシステム。