(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024014337
(43)【公開日】2024-02-01
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20240125BHJP
G06F 13/16 20060101ALI20240125BHJP
G06F 13/38 20060101ALI20240125BHJP
G06F 13/42 20060101ALI20240125BHJP
【FI】
G06F12/00 550E
G06F13/16 520
G06F13/38 320A
G06F13/38 350
G06F13/42 310
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022117090
(22)【出願日】2022-07-22
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】渡邉 亮
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160MB00
(57)【要約】
【課題】 リンク幅が狭められた場合の動作を改善できるメモリシステムを実現する。
【解決手段】 実施形態によれば、メモリシステムは、ホストに接続可能である。メモリシステムは、不揮発性メモリと、コントローラとを具備する。コントローラは、不揮発性メモリを制御する。コントローラは、ホストとメモリシステムとの間のリンクを介したデータ伝送のために要求される帯域に基づいて、リンクに含まれる複数のレーンの内、少なくとも1つの第0レーンを動作状態に設定し、残りのレーンの内の第1レーンを第1低消費電力状態に設定し、残りのレーンの内の第2レーンを第2低消費電力状態に設定する。第1低消費電力状態および第2低消費電力状態のそれぞれにおける消費電力は、動作状態における消費電力よりも低い。第1低消費電力状態から動作状態に遷移するまでの時間は、第2低消費電力状態から動作状態に遷移するまでの時間とは異なる。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ホストに接続可能なメモリシステムであって、
不揮発性メモリと、
前記不揮発性メモリを制御し、
前記ホストと前記メモリシステムとの間のリンクを介したデータ伝送のために要求される帯域に基づいて、前記リンクに含まれる複数のレーンの内、少なくとも1つの第0レーンを動作状態に設定し、残りのレーンの内の第1レーンを第1低消費電力状態に設定し、前記残りのレーンの内の第2レーンを第2低消費電力状態に設定するように構成されるコントローラと、
を具備し、
前記第1低消費電力状態および前記第2低消費電力状態のそれぞれにおける消費電力は、前記動作状態における消費電力よりも低く、
前記第1低消費電力状態から前記動作状態に遷移するまでの時間は、前記第2低消費電力状態から前記動作状態に遷移するまでの時間とは異なる、
メモリシステム。
【請求項2】
前記第2低消費電力状態から前記動作状態に遷移するまでの時間は、前記第1低消費電力状態から前記動作状態に遷移するまでの時間よりも長い、
請求項1記載のメモリシステム。
【請求項3】
前記第2低消費電力状態における消費電力は、前記第1低消費電力状態における消費電力よりも小さい、
請求項2記載のメモリシステム。
【請求項4】
前記コントローラは、前記複数のレーンそれぞれに対応する位相同期回路を含み、
前記コントローラはさらに、
前記動作状態である前記第0レーンに対応する前記位相同期回路を稼働させ、
前記第1低消費電力状態である前記第1レーンに対応する前記位相同期回路を稼働させ、
前記第2低消費電力状態である前記第2レーンに対応する前記位相同期回路を停止させるように構成される、
請求項3記載のメモリシステム。
【請求項5】
前記コントローラは、前記複数のレーンそれぞれに対応するクロックゲーティング回路を含み、
前記コントローラはさらに、
前記動作状態である前記第0レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を停止させ、
前記第1低消費電力状態である前記第1レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を稼働させ、
前記第2低消費電力状態である前記第2レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を稼働させるように構成される、
請求項3記載のメモリシステム。
【請求項6】
前記コントローラは、前記複数のレーンそれぞれに対応する特定の回路を含み、
前記コントローラはさらに、
前記動作状態である前記第0レーンに対応する前記特定の回路を稼働させ、
前記第1低消費電力状態である前記第1レーンに対応する前記特定の回路を稼働させ、
前記第2低消費電力状態である前記第2レーンに対応する前記特定の回路を停止させるように構成される、
請求項3記載のメモリシステム。
【請求項7】
前記第2低消費電力状態から前記動作状態に遷移するまでの時間は、前記第1低消費電力状態から前記動作状態に遷移するまでの時間よりも短い、
請求項1記載のメモリシステム。
【請求項8】
前記第2低消費電力状態における消費電力は、前記第1低消費電力状態における消費電力よりも大きい、
請求項7記載のメモリシステム。
【請求項9】
前記コントローラは、前記複数のレーンそれぞれに対応する位相同期回路を含み、
前記コントローラはさらに、
前記動作状態である前記第0レーンに対応する前記位相同期回路を稼働させ、
前記第1低消費電力状態である前記第1レーンに対応する前記位相同期回路を停止させ、
前記第2低消費電力状態である前記第2レーンに対応する前記位相同期回路を稼働させるように構成される、
請求項8記載のメモリシステム。
【請求項10】
前記コントローラは、前記複数のレーンそれぞれに対応するクロックゲーティング回路を含み、
前記コントローラはさらに、
前記動作状態である前記第0レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を停止させ、
前記第1低消費電力状態である前記第1レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を稼働させ、
前記第2低消費電力状態である前記第2レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を稼働させるように構成される、
請求項8記載のメモリシステム。
【請求項11】
前記コントローラは、前記複数のレーンそれぞれに対応する特定の回路を含み、
前記コントローラはさらに、
前記動作状態である前記第0レーンに対応する前記特定の回路を稼働させ、
前記第1低消費電力状態である前記第1レーンに対応する前記特定の回路を停止させ、
前記第2低消費電力状態である前記第2レーンに対応する前記特定の回路を稼働させるように構成される、
請求項8記載のメモリシステム。
【請求項12】
前記コントローラはさらに、前記帯域が第1事前閾値を上回ったことに応じ、前記第1レーンを前記第1低消費電力状態から第3低消費電力状態に遷移させるように構成され、
前記第3低消費電力状態から前記動作状態に遷移するまでの時間は、前記第1低消費電力状態から前記動作状態に遷移するまでの時間よりも短い、
請求項1記載のメモリシステム。
【請求項13】
前記第3低消費電力状態における消費電力は、前記第1低消費電力状態における消費電力よりも大きい、
請求項12記載のメモリシステム。
【請求項14】
前記コントローラは、前記複数のレーンそれぞれに対応する位相同期回路、クロックゲーティング回路、および特定の回路を含み、
前記コントローラはさらに、
前記第3低消費電力状態である前記第1レーンに対応する前記位相同期回路を稼働させ、
前記第3低消費電力状態である前記第1レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を稼働させ、
前記第3低消費電力状態である前記第1レーンに対応する前記特定の回路を稼働させるように構成される、
請求項13記載のメモリシステム。
【請求項15】
前記コントローラはさらに、前記帯域が第2事前閾値を上回ったことに応じ、前記第2レーンを前記第2低消費電力状態から第4低消費電力状態に遷移させるように構成され、
前記第4低消費電力状態から前記動作状態に遷移するまでの時間は、前記第2低消費電力状態から前記動作状態に遷移するまでの時間よりも短い、
請求項13記載のメモリシステム。
【請求項16】
前記第4低消費電力状態における消費電力は、前記第2低消費電力状態における消費電力よりも大きい、
請求項15記載のメモリシステム。
【請求項17】
前記コントローラは、前記複数のレーンそれぞれに対応する位相同期回路、クロックゲーティング回路、および特定の回路を含み、
前記コントローラはさらに、
前記第4低消費電力状態である前記第2レーンに対応する前記位相同期回路を稼働させ、
前記第4低消費電力状態である前記第2レーンに対応する前記クロックゲーティング回路のクロックゲーティング機能を稼働させ、
前記第4低消費電力状態である前記第2レーンに対応する前記特定の回路を停止させるように構成される、
請求項16記載のメモリシステム。
【請求項18】
前記コントローラはさらに、
前記帯域が第1閾値を上回ったことに応じ、前記第1レーンを前記第1低消費電力状態から前記動作状態に遷移させ、
前記帯域が前記第1閾値よりも大きい第2閾値を上回ったことに応じ、前記第2レーンを前記第2低消費電力状態から前記動作状態に遷移させるように構成される、
請求項1乃至請求項17のいずれか一項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、不揮発性メモリを制御する技術に関する。
【背景技術】
【0002】
ホストとメモリシステムとを接続するためのインタフェース規格の1つとして、PCI Express(PCIe)(登録商標)規格が知られている。PCIe規格に準拠したインタフェースにより、ホストとメモリシステムとはリンクと称される伝送経路を介して接続される。リンク上では、パケットを用いてデータが伝送される。パケットを用いて伝送されるデータは、例えば、ホストからメモリシステムへの要求、メモリシステムからホストへの応答、またはユーザデータを含む。
【0003】
PCIe規格では、デバイスが動作状態であってもリンクを低消費電力状態に設定可能な機能が規定されている。この機能は、Active State Power Management(ASPM)と称される。
【0004】
リンクを介したパケット伝送が特定の期間無い場合、デバイスは、ASPM機能により、リンクを通常動作状態から低消費電力状態に遷移させる。PCIe規格において、通常動作状態は、例えば、リンクパワーステートL0として規定される。また、低消費電力状態は、例えば、リンクパワーステートL1として規定される。
【0005】
PCIe Gen6(PCIe 6.0規格)では新たに、リンクパワーステートL0内に、flow control unit(FLIT)モードにおけるリンクパワーステートL0pが規定されている。リンクパワーステートL0pは、データ伝送可能であり、且つ消費電力を低減可能なリンクパワーステートである。リンクパワーステートL0pでは、リンク幅(link width)が動的に制御されることによって、消費電力が低減され得る。リンク幅は、リンクに含まれる複数のレーンの内の、通常動作状態に設定されているレーンの数である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許出願公開第2020/226084号明細書
【特許文献2】米国特許出願公開第2020/145341号明細書
【特許文献3】米国特許出願公開第2019/391939号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の一実施形態は、リンク幅が狭められた場合の動作を改善できるメモリシステムを提供する。
【課題を解決するための手段】
【0008】
実施形態によれば、メモリシステムは、ホストに接続可能である。メモリシステムは、不揮発性メモリと、コントローラとを具備する。コントローラは、不揮発性メモリを制御する。コントローラは、ホストとメモリシステムとの間のリンクを介したデータ伝送のために要求される帯域に基づいて、リンクに含まれる複数のレーンの内、少なくとも1つの第0レーンを動作状態に設定し、残りのレーンの内の第1レーンを第1低消費電力状態に設定し、残りのレーンの内の第2レーンを第2低消費電力状態に設定する。第1低消費電力状態および第2低消費電力状態のそれぞれにおける消費電力は、動作状態における消費電力よりも低い。第1低消費電力状態から動作状態に遷移するまでの時間は、第2低消費電力状態から動作状態に遷移するまでの時間とは異なる。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態に係るメモリシステムを含む情報処理システムの構成例を示すブロック図。
【
図2】第1実施形態のメモリシステムにおいて、リンク幅に応じて設定されるレーンの状態の例を示す図。
【
図3】第1実施形態のメモリシステムにおけるPCIe PHYの構成例を示すブロック図。
【
図4】第1実施形態のメモリシステムにおけるレーン回路の第1の制御例を示す図。
【
図5】第1実施形態のメモリシステムにおけるレーン回路の第2の制御例を示す図。
【
図6】第1実施形態のメモリシステムにおけるレーン回路の第3の制御例を示す図。
【
図7】第1実施形態のメモリシステムにおけるレーン回路の第4の制御例を示す図。
【
図8】必要帯域に応じてリンク幅が制御される場合の、第1実施形態のメモリシステムにおけるリンクの消費電力と比較例に係るメモリシステムにおけるリンクの消費電力との例を示す図。
【
図9】第2実施形態に係るメモリシステムにおけるレーン回路の第1の制御例を示す図。
【
図10】第2実施形態に係るメモリシステムにおけるレーン回路の第2の制御例を示す図。
【
図11】第2実施形態に係るメモリシステムにおけるレーン回路の第3の制御例を示す図。
【
図12】第2実施形態に係るメモリシステムにおけるレーン回路の第4の制御例を示す図。
【
図13】必要帯域に応じてリンク幅が制御される場合の、第2実施形態のメモリシステムにおけるリンクの消費電力と比較例に係るメモリシステムにおけるリンクの消費電力との例を示す図。
【
図14】第3実施形態に係るメモリシステムにおけるレーン回路の第1の制御例を示す図。
【
図15】第3実施形態に係るメモリシステムにおけるレーン回路の第2の制御例を示す図。
【
図16】必要帯域に応じてリンク幅が制御される場合の、第3実施形態のメモリシステムにおけるリンクの消費電力と第1実施形態のメモリシステムにおけるリンクの消費電力との例を示す図。
【発明を実施するための形態】
【0010】
以下、実施の形態について図面を参照して説明する。
【0011】
まず
図1を参照して、第1実施形態に係るメモリシステムを含む情報処理システム1の構成の例を説明する。情報処理システム1は、ホストデバイス2とメモリシステム3とを含む。
【0012】
ホストデバイス2は、データをメモリシステム3に格納する情報処理装置である。ホストデバイス2は、例えば、大量且つ多様なデータをメモリシステム3に格納するストレージサーバ、またはパーソナルコンピュータである。以下では、ホストデバイス2を、ホスト2と称する。
【0013】
メモリシステム3は、不揮発性メモリにデータを書き込み、不揮発性メモリからデータを読み出すように構成された半導体ストレージデバイスである。不揮発性メモリは、例えば、NAND型フラッシュメモリである。メモリシステム3は、ストレージデバイスとも称される。メモリシステム3は、例えば、ソリッドステートドライブ(SSD)として実現される。
【0014】
メモリシステム3は、ホスト2のストレージとして使用され得る。メモリシステム3は、ホスト2に接続される。
【0015】
ホスト2とメモリシステム3とを接続するためのインタフェースは、PCI Express(PCIe)(登録商標)、NVM Express(NVMe)(登録商標)等の規格に準拠する。
【0016】
メモリシステム3は、例えば、NAND型フラッシュメモリ4、ダイナミックランダムアクセスメモリ(DRAM)5、およびコントローラ6を備える。
【0017】
NAND型フラッシュメモリ4は、1つ以上のメモリチップを含む。各メモリチップは、複数のブロックを含む。1つのブロックは、データ消去動作の最小単位として機能する。ブロックは、「消去ブロック」、または「物理ブロック」と称されることもある。複数のブロックのそれぞれは、複数のページを含む。複数のページのそれぞれは、単一のワード線に接続された複数のメモリセルを含む。1つのページは、データ書き込み動作およびデータ読み出し動作の単位として機能する。なお、ワード線がデータ書き込み動作およびデータ読み出し動作の単位として機能してもよい。
【0018】
DRAM5は、揮発性のメモリである。DRAM5の記憶領域は、例えば、ファームウェア(FW)の格納領域、論理物理アドレス変換テーブルのキャッシュ領域、およびユーザデータのバッファ領域として割り当てられる。
【0019】
コントローラ6は、NAND型フラッシュメモリ4およびDRAM5を制御するメモリコントローラである。コントローラ6は、例えば、System-on-a-chip(SoC)のような回路によって実現される。コントローラ6は、スタティックランダムアクセスメモリ(SRAM)またはDRAMを内蔵していてもよい。この場合、コントローラ6の外部のDRAM5が設けられていなくてもよい。
【0020】
コントローラ6は、例えば、セントラルプロセッシングユニット(CPU)11、NANDインタフェース(NAND I/F)12、DRAMインタフェース(DRAM I/F)13、およびホストインタフェース(ホストI/F)14を含む。これらCPU11、NAND I/F12、DRAM I/F13、およびホストI/F14は、バス10を介して接続されていてもよい。
【0021】
CPU11は、NAND I/F12、DRAM I/F13、およびホストI/F14を制御するように構成されたプロセッサである。CPU11は、NAND型フラッシュメモリ4からDRAM5にロードされたFWを実行することによって、様々な処理を行う。FWは、CPU11に様々な処理を実行させるための命令群を含む制御プログラムである。CPU11は、ホスト2からの様々なコマンドを処理するためのコマンド処理等を実行することができる。CPU11の動作は、CPU11によって実行されるFWによって制御される。
【0022】
NAND I/F12は、コントローラ6とNAND型フラッシュメモリ4とを電気的に接続する。NAND I/F12は、Toggle DDR、Open NAND Flash Interface(ONFI)等のインタフェース規格に対応する。
【0023】
NAND I/F12は、NAND型フラッシュメモリ4を制御するように構成されたNAND制御回路として機能する。NAND I/F12は、複数のチャネル(Ch)を介して、NAND型フラッシュメモリ4内の複数のメモリチップにそれぞれ接続されていてもよい。複数のメモリチップが並列に駆動されることにより、NAND型フラッシュメモリ4とコントローラ6との間のアクセスを広帯域化することができる。
【0024】
DRAM I/F13は、DRAM5へのアクセスを制御するように構成されたDRAM制御回路として機能する。
【0025】
ホストI/F14は、メモリシステム3とホスト2との間の通信を行うインタフェースとして機能する回路である。ホストI/F14は、ホスト2にパケットを送信するための回路と、ホスト2からパケットを受信するための回路とを含む。パケットは、例えば、PCIe規格に準拠したパケットである。パケットは、例えば、コマンド、応答、またはユーザデータを含む。コマンドは、例えば、入出力(I/O)コマンド、または各種制御コマンドである。I/Oコマンドは、例えば、リードコマンド、またはライトコマンドである。
【0026】
ホストI/F14は、例えば、PCIe PHY21、PCIeリンクコントローラ22、およびNVMeコントローラ23を備える。
【0027】
PCIe PHY21は、シリアルインタフェースを介してホスト2と接続する回路である。このシリアルインタフェースは、ホスト2とメモリシステム3とを相互接続可能なリンク31を含む。PCIe PHY21は、PCIe規格で規定された物理レイヤに相当する。PCIe PHY21は、例えば、PCIe規格に準拠した物理的な接続形式を有する。PCIe PHY21は、リンク31を介してデータを物理的に送受信するインタフェース動作を行う。
【0028】
リンク31は、複数のレーンで構成される。複数のレーンそれぞれは、ホスト2からメモリシステム3へ伝送される信号用の信号線と、メモリシステム3からホスト2へ伝送される信号用の信号線とのペアである。複数のレーンそれぞれは、例えば、レーン番号で特定される。
図1では、リンク31が8つのレーン0、レーン1、……、およびレーン7で構成される場合を例示している。8つのレーン0、レーン1、……、およびレーン7は、例えば、0から7までのレーン番号でそれぞれ特定される。
【0029】
PCIeリンクコントローラ22は、リンク31を管理し、PCIe PHY21とNVMeコントローラ23との間でデータをやり取りするための処理を行う回路である。より具体的には、PCIeリンクコントローラ22は、リンク31およびPCIe PHY21を介してホスト2からパケットを受信する。PCIeリンクコントローラ22は、パケットを処理して、例えば、NVMeコントローラ23に送出されるべきデータを取得する。PCIeリンクコントローラ22は、取得されたデータをNVMeコントローラ23に送出する。NVMeコントローラ23に送出されるべきデータは、例えば、NAND型フラッシュメモリ4へのアクセスに関連するデータである。より詳しくは、NVMeコントローラ23に送出されるべきデータは、例えば、NAND型フラッシュメモリ4に対する書き込み要求、読み出し要求、およびVendor Defined Message(VDM)である。
【0030】
NVMeコントローラ23は、NAND型フラッシュメモリ4に対する書き込み要求、読み出し要求、またはVDMのようなトランザクションを処理する回路である。NVMeコントローラ23は、PCIe PHY21およびPCIeリンクコントローラ22を介して受信したデータに含まれる要求に応じた動作と、要求に対する応答を含むデータをPCIe PHY21およびPCIeリンクコントローラ22を介して送信するための動作とを行う。NVMeコントローラ23による動作は、例えば、NVMe規格に準拠する。
【0031】
このように、PCIe PHY21、PCIeリンクコントローラ22、およびNVMeコントローラ23は、ホスト2とメモリシステム3との間のデータ伝送を制御する。
【0032】
なお、コントローラ6内の各部の機能は、コントローラ6内の専用ハードウェアによって実現されてもよいし、CPU11がFWを実行することによって実現されてもよい。
【0033】
ここで、リンクに対して設定されるリンクパワーステートについて説明する。リンクパワーステートは、リンクに対して設定される電力状態である。リンクパワーステートは、例えば、PCIe規格で規定されたASPM機能によって設定される。より具体的には、リンクパワーステートは、例えば、ASPM機能を有するPCIeリンクコントローラ22によって制御される。ASPM機能は、デバイス(例えば、メモリシステム3)が動作状態であってもリンクを低消費電力状態に設定可能な機能である。リンクパワーステートとして、例えば、リンクパワーステートL0とリンクパワーステートL1がある。リンクパワーステートL0は、通常動作状態(アクティブ状態)である。リンクパワーステートL1は、低消費電力状態(インアクティブ状態)である。
【0034】
リンクパワーステートL0は、リンクパワーステートL0pを含むことがある。リンクパワーステートL0pは、PCIe Gen6で新たに規定されたFLITモードにおけるリンクパワーステートである。FLITモードは、物理レイヤでデータの再送が可能なモードである。FLITモードでは、上位レイヤから受け取ったデータが、例えば256バイト単位のFLITパケットに分解され、FLITパケット単位で再送制御が行われる。リンクパワーステートL0pは、データ伝送可能であり、且つ消費電力を低減可能なリンクパワーステートである。リンクパワーステートL0pでは、少なくとも1つのレーンが通常動作状態(すなわち、データ伝送可能な状態)に維持される。そのため、リンクパワーステートL0pでは、リンクが切れることがない。リンクパワーステートL0pでは、リンク幅が動的に制御されることによって、消費電力が低減され得る。
【0035】
リンクがリンクパワーステートL0pに設定されている間、リンクに含まれる複数のレーンそれぞれは、通常動作状態と低消費電力状態のいずれかに設定される。通常動作状態に設定されているレーンを、アクティブなレーンとも称する。低消費電力状態に設定されているレーンを、インアクティブなレーンとも称する。リンクパワーステートL0pに遷移したリンク内のインアクティブなレーンでは、リンクパワーステートL1に遷移したリンク内のレーンと同程度の消費電力の低減が期待される。リンク幅は、リンクに含まれる複数のレーンの内のアクティブなレーンの数Nで表される。リンク幅は、例えば、“xN”と表記される。PCIe規格では、例えば、リンクが8つのレーンで構成される場合、リンク幅は、x1、x2、x4、およびx8のいずれかに設定される。つまり、リンクがリンクパワーステートL0pに設定されている間、8つのレーンの内、1つ、2つ、4つ、または8つのレーンが通常動作状態に設定される。残りのレーンは、低消費電力状態に設定される。
【0036】
リンク31がリンクパワーステートL0pに遷移した場合に、8つのレーンそれぞれが設定される状態について具体的に説明する。8つのレーンを、レーン0、レーン1、……、およびレーン7とする。
【0037】
図2は、リンク幅に応じて設定されるレーンの状態の例を示す。
図2では、リンク幅がxNである場合の、アクティブなレーンのレーン番号と、インアクティブなレーンのレーン番号とを示している。なお、レーン0は、リンク幅に関わらず常に通常動作状態に設定されるレーンである。つまり、レーン0は、リンク幅に関わらず常にアクティブなレーンである。
【0038】
リンク幅がx1である場合、レーン0は通常動作状態に設定され、レーン1からレーン7までの7つのレーンは低消費電力状態に設定される。つまり、この場合、リンク幅x1に相当する1つのレーン(レーン0)がアクティブなレーンであり、残りの7つのレーン(レーン1~レーン7)はインアクティブなレーンである。
【0039】
リンク幅がx2である場合、レーン0とレーン1の2つのレーンは通常動作状態に設定され、レーン2からレーン7までの6つのレーンは低消費電力状態に設定される。つまり、この場合、リンク幅x2に相当する2つのレーン(レーン0およびレーン1)がアクティブなレーンであり、残りの6つのレーン(レーン2~レーン7)はインアクティブなレーンである。
【0040】
リンク幅がx4である場合、レーン0からレーン3までの4つのレーンは通常動作状態に設定され、レーン4からレーン7までの4つのレーンは低消費電力状態に設定される。つまり、この場合、リンク幅x4に相当する4つのレーン(レーン0~レーン3)がアクティブなレーンであり、残りの4つのレーン(レーン4~レーン7)はインアクティブなレーンである。
【0041】
リンク幅がx8である場合、レーン0からレーン7までの8つのレーンは通常動作状態に設定される。つまり、この場合、リンク幅x8に相当する8つのレーン(レーン0~レーン7)はアクティブなレーンである。
【0042】
ここで、リンク幅が広げられる、または狭められる場合に状態が遷移するレーンの単位について説明する。
【0043】
リンク幅が広げられる場合、リンク31では、広げられるリンク幅に応じた特定の単位で、レーンが低消費電力状態から通常動作状態に遷移する。具体的には、リンク幅がx1からx2に広げられる場合、1つのレーン(レーン1)が低消費電力状態から通常動作状態に遷移する(
図2中のT1)。リンク幅がx2からx4に広げられる場合、2つのレーン(レーン2およびレーン3)が低消費電力状態から通常動作状態に遷移する(
図2中のT2)。リンク幅がx4からx8に広げられる場合、4つのレーン(レーン4、レーン5、レーン6、およびレーン7)が低消費電力状態から通常動作状態に遷移する(
図2中のT3)。
【0044】
リンク幅が狭められる場合にも同様に、リンク31では、狭められるリンク幅に応じた特定の単位で、レーンが通常動作状態から低消費電力状態に遷移する。具体的には、リンク幅がx8からx4に狭められる場合、4つのレーン(レーン4、レーン5、レーン6、およびレーン7)が通常動作状態から低消費電力状態に遷移する(
図2中のT3)。リンク幅がx4からx2に狭められる場合、2つのレーン(レーン2およびレーン3)が通常動作状態から低消費電力状態に遷移する(
図2中のT2)。リンク幅がx2からx1に狭められる場合、1つのレーン(レーン1)が通常動作状態から低消費電力状態に遷移する(
図2中のT1)。
【0045】
このように、リンク31では、リンク幅が広げられること、または狭められることに応じて、対応する単位のレーンの状態が遷移する。以下では、リンク幅がx1とx2との間で変化する場合に状態が遷移する1つのレーン(レーン1)を、第1グループのレーンとも称する。リンク幅がx2とx4との間で変化する場合に状態が遷移する2つのレーン(レーン2およびレーン3)を、第2グループのレーンとも称する。リンク幅がx4とx8との間で変化する場合に状態が遷移する4つのレーン(レーン4、レーン5、レーン6、およびレーン7)を、第3グループのレーンとも称する。なお、リンク幅に関わらず通常動作状態に設定されるレーン0を、第0グループのレーンとも称する。
【0046】
次いで、リンク31がリンクパワーステートL0pに遷移した場合の電力削減効果と復帰時間について説明する。
【0047】
リンクパワーステートL1に遷移したリンク31がリンクパワーステートL0に復帰する場合、例えば、数マイクロ秒の遅延(exit latency)が発生する。この遅延によって、リンク31を介したパケット伝送のパフォーマンスは低下し得る。リンクパワーステートL0pに遷移したリンク31において、レーンが低消費電力状態から通常動作状態に復帰する場合にも、同様の遅延が発生し得る。
【0048】
PCIe Gen6では、リンク31がリンクパワーステートL0pに設定されている場合に、インアクティブなレーンにおいて低減される消費電力の程度は具体的に規定されていない。しかしながら、PCIe Gen6に準拠した情報処理システム1では、一般に、リンク31内のインアクティブなレーン全てが、同一の低消費電力状態に設定されることが想定される。この想定は、リンクパワーステートL1に遷移したリンク31内のレーン全てが、一般に、同一の低消費電力状態に設定されることに基づくものである。
【0049】
リンク31内のインアクティブなレーン全てが同一の低消費電力状態に設定される場合、例えば、インアクティブなレーンに関連する回路が、復帰時間と電力削減効果に関して、以下の2つのケースのように制御されることが考えられる。ここで、復帰時間は、レーンが低消費電力状態から通常動作状態に復帰するために要する時間である。より詳しくは、復帰時間は、必要帯域の上昇に応じてリンク幅を広げることが要求された時刻から、その要求に応じて、対応するレーンが低消費電力状態から通常動作状態に遷移した時刻(すなわち、リンク幅が実際に広げられた時刻)までの時間である。必要帯域は、リンク31を介したホスト2とメモリシステム3との間のパケット伝送に要する帯域である。必要帯域は、例えば、ホスト2によって発行された後、メモリシステム3によってまだ受け付けられていないコマンドの数に基づいて予測される。
【0050】
ホスト2によるコマンドの発行は、例えば、ホスト2が、ホスト2内のメモリ(例えば、サブミッションキュー)にコマンドを格納して、コマンドが格納される位置を示すポインタの値を、メモリシステム3内のレジスタ(すなわち、サブミッションキュー・テール・ドアベル・レジスタ)に書き込むことを意味する。メモリシステム3によるコマンドの受け付けは、例えば、メモリシステム3(より詳しくはコントローラ6)がホスト2内のメモリからコマンドをフェッチして、フェッチされたコマンドに応じた処理を開始することを意味する。コントローラ6は、例えば、コマンドをフェッチすべき位置を示すポインタ(すなわち、サブミッションキュー・ヘッド・ドアベル・レジスタ)と、サブミッションキュー・テール・ドアベル・レジスタとの差分から、ホスト2によって発行された後、メモリシステム3によってまだ受け付けられていないコマンドの数を管理し得る。
【0051】
また、必要帯域の上昇に応じてリンク幅を広げることが要求された時刻は、例えば、必要帯域が閾値を超えた時刻である。電力削減効果は、レーンが通常動作状態から低消費電力状態に遷移したことによって削減される消費電力の大きさを表す。なお、以下では、各レーンの状態に関連する回路を、レーン回路とも称する。
【0052】
(ケース1)復帰時間の短縮を優先して、消費電力の低減を抑える。
ケース1では、リンク幅が狭められても、リンク31の電力削減効果は小さい。つまり、インアクティブなレーンの数が増加していても、インアクティブな各レーンの電力削減効果が小さいので、リンク31の電力削減効果は小さい。したがって、アクティブアイドル期間におけるリンク31の電力削減効果は小さい。アクティブアイドル期間は、リンク幅が狭められている期間(例えば、リンク幅がx1である期間)である。
【0053】
(ケース2)消費電力の低減を優先して、復帰時間が伸びる。
ケース2では、復帰時間が伸びることによって、リンク幅を狭めにくくなる。リンク幅を狭めるかどうかは、例えば、リンク幅を狭めたと仮定した場合の復帰時間と、予測される必要帯域とに基づいて判断される。復帰時間が長い場合、必要帯域の上昇に応じて速やかにリンク幅を広げることができないため、リンク幅を狭めにくくなる。そして、リンク幅が狭められなかったことによって、電力削減効果は小さくなる。
【0054】
本実施形態に係るメモリシステム3では、リンク31がリンクパワーステートL0pに設定されている場合に、インアクティブなレーンを、レーン毎に、あるいは同時に状態が遷移するレーンの単位(グループ)毎に、異なる低消費電力状態に設定する。これにより、メモリシステム3では、例えば、リンク31の利用状況に適した復帰時間および電力削減効果が得られるように、リンク幅が狭められた場合のレーン回路の動作を最適化できる。
【0055】
リンク31内の各レーンの状態は、PCIe PHY21において制御される。
【0056】
図3は、PCIe PHY21の構成例を示す。ここでは、リンク31が8つのレーン(レーン0~レーン7)で構成される場合を例示する。
【0057】
PCIe PHY21は、例えば、リンク幅コントローラ41、8つの低電力コントローラ42(低電力コントローラ42-0、低電力コントローラ42-1、……、および低電力コントローラ42-7)、および8つのレーン回路LC(レーン回路LC0、レーン回路LC1、……、およびレーン回路LC7)を含む。リンク幅コントローラ41は、低電力コントローラ42-0~低電力コントローラ42-7に接続される。低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、レーン回路LC0~レーン回路LC7に接続される。つまり、低電力コントローラ42-0~低電力コントローラ42-7は、レーン回路LC0~レーン回路LC7にそれぞれ対応する。
【0058】
低電力コントローラ42と、対応する1つのレーン回路LCとの組は、1つのレーンに対応する。例えば、低電力コントローラ42-0とレーン回路LC0との組は、レーン0に対応する。低電力コントローラ42-1とレーン回路LC1との組は、レーン1に対応する。低電力コントローラ42-7とレーン回路LC7との組は、レーン7に対応する。
【0059】
リンク幅コントローラ41は、リンク31がリンクパワーステートL0pに設定されている場合に、必要帯域に応じてリンク幅を制御する回路である。リンク幅コントローラ41は、必要帯域に応じたリンク幅を、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれに通知する。
【0060】
より具体的には、NVMeコントローラ23は、例えば、ホスト2によって発行された後、メモリシステム3によってまだ受け付けられていないコマンドの数に基づいて、必要帯域を予測する。つまり、NVMeコントローラ23は、ホスト2内のメモリにコマンドが格納されたことに応じてポインタの値がメモリシステム3内のレジスタに書き込まれた後に、メモリシステム3によってホスト2内のメモリからフェッチされず、処理がまだ開始されていないコマンドの数に基づいて、必要帯域を予測する。NVMeコントローラ23は、予測された必要帯域をリンク幅コントローラ41に通知する。そして、リンク幅コントローラ41は、通知された必要帯域と、閾値とに基づいて、リンク幅を決定する。
【0061】
例えば、リンク31に含まれるレーンの総数が8である場合、x1、x2、x4、およびx8のそれぞれのリンク幅に対応する帯域に基づいて、リンク幅を決定するための3つの閾値が定められる。3つの閾値を、第1閾値、第2閾値、および第3閾値とする。第1閾値は、必要帯域が、リンク幅x1に対応する帯域とリンク幅x2に対応する帯域のいずれであるかと判定されるための閾値である。第2閾値は、必要帯域が、リンク幅x2に対応する帯域とリンク幅x4に対応する帯域のいずれであるかと判定されるための閾値である。第3閾値は、必要帯域が、リンク幅x4に対応する帯域とリンク幅x8に対応する帯域のいずれであるかと判定されるための閾値である。第1閾値は、第2閾値よりも小さい。第2閾値は、第3閾値よりも小さい。
【0062】
リンク幅コントローラ41は、必要帯域が第1閾値以下である場合、リンク幅をx1に決定する。リンク幅コントローラ41は、必要帯域が第1閾値を上回り、且つ第2閾値以下である場合、リンク幅をx2に決定する。リンク幅コントローラ41は、必要帯域が第2閾値を上回り、且つ第3閾値以下である場合、リンク幅をx4に決定する。リンク幅コントローラ41は、必要帯域が第3閾値を上回っている場合、リンク幅をx8に決定する。
【0063】
そして、リンク幅コントローラ41は、決定されたリンク幅を、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれに通知する。
【0064】
低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、リンク幅コントローラ41によって通知されたリンク幅に応じて、対応するレーン回路LC0~レーン回路LC7の少なくとも一部を制御する回路である。低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、対応するレーン回路LC内の一部の回路に制御信号を送出し得る。制御信号は、レーン回路LC内の一部の回路を、あるいはその一部の回路の機能を、稼働または停止させる信号である。レーン回路LC内の一部の回路を稼働させる場合、例えば、制御信号はアサートされる。レーン回路LC内の一部の回路を停止させる場合、例えば、制御信号はネゲートされる。あるいは、レーン回路LC内の一部の回路の機能(例えば、クロックゲーティング機能)を稼働させる場合、例えば、制御信号はアサートされる。また、レーン回路LC内の一部の回路の機能を停止させる場合、例えば、制御信号はネゲートされる。アサートされた制御信号は、アクティブな状態の制御信号である。ネゲートされた制御信号は、インアクティブな状態の制御信号である。
【0065】
より詳しくは、例えば、低電力コントローラ42-0は、通知されたリンク幅に応じてレーン回路LC0の少なくとも一部を制御する。低電力コントローラ42-0は、レーン回路LC0を制御するために、例えば、制御信号S1-0、制御信号S2-0、および制御信号S3-0を送出する。
【0066】
低電力コントローラ42-1は、通知されたリンク幅に応じてレーン回路LC1の少なくとも一部を制御する。低電力コントローラ42-1は、レーン回路LC1を制御するために、制御信号S1-1、制御信号S2-1、および制御信号S3-1を送出する。
【0067】
低電力コントローラ42-7は、通知されたリンク幅に応じてレーン回路LC7の少なくとも一部を制御する。低電力コントローラ42-7は、レーン回路LC7を制御するために、制御信号S1-7、制御信号S2-7、および制御信号S3-7を送出する。
【0068】
レーン回路LC0~レーン回路LC7のそれぞれは、対応する1つのレーンを介してメモリシステム3とホスト2との間で伝送される信号を制御する回路である。レーン回路LC0~レーン回路LC7は、ホスト2に接続される。レーン回路LC0~レーン回路LC7それぞれの動作は、対応するレーンが設定されている状態に応じて制御される。つまり、レーン回路LC0~レーン回路LC7のそれぞれは、対応する1つのレーンの状態に関連する回路である。レーンが設定されている状態は、通常動作状態と低消費電力状態のいずれかである。
【0069】
レーン回路LC0は、例えば、位相同期回路(phase-locked loop:PLL)回路43-0、クロックゲーティング回路44-0、第1回路45-0、および第2回路46-0を備える。
【0070】
PLL回路43-0は、レーン0で用いられるクロックCLKを生成する回路である。PLL回路43-0には、例えば、リファレンスクロックREFCLKとリファレンス電圧VREFとが供給される。PLL回路43-0は、リファレンスクロックREFCLKからクロックCLKを生成する。PLL回路43-0は、生成されたクロックCLKをクロックゲーティング回路44-0に供給する。
【0071】
PLL回路43-0の稼働または停止は、低電力コントローラ42-0から送出される制御信号S1-0に基づいて制御される。アサートされた制御信号S1-0が低電力コントローラ42-0から送出されている場合、PLL回路43-0は稼働する。つまり、PLL回路43-0はクロックCLKを生成して、クロックゲーティング回路44-0に供給する。一方、ネゲートされた制御信号S1-0が低電力コントローラ42-0から送出されている場合、PLL回路43-0は停止する。つまり、PLL回路43-0はクロックCLKを生成しない。したがって、クロックゲーティング回路44-0にクロックCLKが供給されない。
【0072】
クロックゲーティング回路44-0は、クロックゲーティング機能を有する回路である。クロックゲーティング回路44-0は、例えば、AND回路である。クロックゲーティング機能は、PLL回路43-0からクロックCLKが供給されている場合に、そのクロックCLKの第1回路45-0への供給を制御する機能である。クロックゲーティング機能が稼働している場合、クロックゲーティング回路44-0は、クロックCLKを第1回路45-0に供給しない。クロックゲーティング機能が停止している場合、クロックゲーティング回路44-0は、クロックCLKを第1回路45-0に供給する。
【0073】
クロックゲーティング回路44-0におけるクロックゲーティング機能の稼働または停止は、低電力コントローラ42-0から送出される制御信号S2-0に基づいて制御される。アサートされた制御信号S2-0(すなわち、ローレベルの制御信号S2-0)が低電力コントローラ42-0から送出されている場合、クロックゲーティング機能は稼働する。つまり、クロックゲーティング回路44-0は、クロックCLKを第1回路45-0に供給しない。一方、ネゲートされた制御信号S2-0(すなわち、ハイレベルの制御信号S2-0)が低電力コントローラ42-0から送出されている場合、クロックゲーティング機能は停止する。つまり、クロックゲーティング回路44-0は、クロックCLKを第1回路45-0に供給する。
【0074】
第1回路45-0および第2回路46-0は、クロックゲーティング回路44-0から供給されたクロックCLKを用いて、レーン0を介して伝送される信号を制御する回路である。第1回路45-0は、例えば、クロックゲーティング回路44-0から供給されたクロックCLKを用いて、第2回路46-0に信号を供給する。第2回路46-0は、例えば、第1回路45-0から供給された信号をホスト2に送信する。
【0075】
第2回路46-0の稼働または停止は、低電力コントローラ42-0から送出される制御信号S3-0に基づいて制御される。アサートされた制御信号S3-0が低電力コントローラ42-0から送出されている場合、第2回路46-0は稼働する。つまり、第2回路46-0は、第1回路45-0から供給された信号をホスト2に送信する。一方、ネゲートされた制御信号S3-0が低電力コントローラ42-0から送出されている場合、第2回路46-0は停止する。つまり、第2回路46-0は、第1回路45-0から供給された信号をホスト2に送信しない。
【0076】
このように、低電力コントローラ42-0は、PLL回路43-0を稼働させる場合、制御信号S1-0をアサートする。低電力コントローラ42-0は、PLL回路43-0を停止させる場合、制御信号S1-0をネゲートする。低電力コントローラ42-0は、クロックゲーティング回路44-0におけるクロックゲーティング機能を稼働させる場合、制御信号S2-0をアサートする。低電力コントローラ42-0は、クロックゲーティング回路44-0におけるクロックゲーティング機能を停止させる場合、制御信号S2-0をネゲートする。低電力コントローラ42-0は、第2回路46-0を稼働させる場合、制御信号S3-0をアサートする。低電力コントローラ42-0は、第2回路46-0を停止させる場合、制御信号S3-0をネゲートする。
【0077】
なお、制御信号S3-0によって稼働または停止が制御される回路は、第2回路46-0ではなく、レーン回路LC0内の任意の回路であってもよい。また、第1回路45-0には、低電力コントローラ42-0から制御信号が送出されない。つまり、第1回路45-0は、低電力コントローラ42-0によって動作が直接的には制御されない回路である。
【0078】
他のレーン回路LC1~レーン回路LC7も、レーン回路LC0と同様の回路構成を有する。他のレーン回路LC1~レーン回路LC7内の各回路は、レーン回路LC0内の各回路と同様に動作する。
【0079】
なお、
図3では一部回路の図示を省略しているが、以下では、レーンiに対応する低電力コントローラを42-iと表記する。低電力コントローラを42-iから送出される制御信号を、制御信号S1-i、制御信号S2-i、および制御信号S3-iと表記する。レーンiに対応するレーン回路を、LCiと表記する。レーン回路LCi内の各回路を、PLL回路43-i、クロックゲーティング回路44-i、第1回路45-i、および第2回路46-iと表記する。リンク31に含まれるレーンの総数がMである場合、iは0からM-1のいずれかの整数である。
【0080】
ここで、リンク31内のレーンに設定される状態を、必要帯域が低い期間(すなわち、低負荷の期間)が比較的長い利用状況に最適化する場合を想定する。この場合、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、対応するレーンの使用が開始される際のリンク幅が広いほど、そのレーンが遷移する低消費電力状態を深い低消費電力状態に設定する。例えば、第3グループのレーンは第2グループのレーンよりも深い低消費電力状態に設定される。また、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、対応するレーンの使用が開始される際のリンク幅が狭いほど、そのレーンが遷移する低消費電力状態を浅い低消費電力状態に設定する。例えば、第1グループのレーンは第2グループのレーンよりも浅い低消費電力状態に設定される。レーンの使用が開始されるとは、そのレーンが低消費電力状態から通常動作状態に遷移することを意味する。深い低消費電力状態は、電力削減効果が大きく、且つ復帰時間が長い状態である。浅い低消費電力状態は、電力削減効果が小さく、且つ復帰時間が短い状態である。
【0081】
図4から
図7を参照して、リンク31がリンクパワーステートL0pに設定されている場合の、リンク幅の変化に応じたレーン回路LC0~レーン回路LC7の制御例について説明する。
【0082】
<リンクパワーステートL0p中のリンク幅がx1である場合>
図4は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx1である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0(第0グループのレーン)は、アクティブなレーンである。レーン1~レーン7(第1グループ、第2グループ、および第3グループのレーン)は、インアクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。
【0083】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。具体的には、低電力コントローラ42-0は、クロックゲーティング回路44-0におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-0に供給される。低電力コントローラ42-0は、第2回路46-0を稼働させる。低電力コントローラ42-0は、PLL回路43-0を稼働させる。
【0084】
したがって、レーン回路LC0における電力削減効果はない。また、レーン回路LC0が通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0085】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を低消費電力状態で動作させる。具体的には、低電力コントローラ42-1は、クロックゲーティング回路44-1におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-1へのクロックCLKの供給は停止される。低電力コントローラ42-1は、第2回路46-1を稼働させる。低電力コントローラ42-1は、PLL回路43-1を稼働させる。以下では、このような組み合わせによって設定される低消費電力状態を、第1低消費電力状態とも称する。
【0086】
このような制御により、レーン回路LC1において小さな電力削減効果が得られる。この電力削減効果は、クロックゲーティング回路44-1におけるクロックゲーティング機能が稼働したことによる。また、レーン回路LC1が通常動作状態に復帰するための復帰時間は短い。これは、クロックゲーティング回路44-1におけるクロックゲーティング機能を停止させれば、レーン回路LC1が通常動作状態に復帰するためである。
【0087】
このように、低電力コントローラ42-1は、レーン1の使用が開始される際のリンク幅x2が狭いので、レーン1(より詳しくは、レーン回路LC1)を浅い第1低消費電力状態に設定する。
【0088】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を低消費電力状態で動作させる。具体的には、低電力コントローラ42-2は、クロックゲーティング回路44-2におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-2へのクロックCLKの供給は停止される。低電力コントローラ42-2は、第2回路46-2を停止させる。低電力コントローラ42-2は、PLL回路43-2を稼働させる。以下では、このような組み合わせによって設定される低消費電力状態を、第2低消費電力状態とも称する。
【0089】
同様にして、低電力コントローラ42-3は、レーン回路LC3を第2低消費電力状態で動作させる。
【0090】
このような制御により、レーン回路LC2およびレーン回路LC3それぞれにおいて、レーン回路LC1における電力削減効果より大きい中程度の電力削減効果が得られる。つまり、第2低消費電力状態における消費電力は、第1低消費電力状態における消費電力よりも小さい。レーン回路LC2およびレーン回路LC3それぞれにおける電力削減効果は、クロックゲーティング回路44-2およびクロックゲーティング回路44-3それぞれにおけるクロックゲーティング機能が稼働したことと、第2回路46-2および第2回路46-3それぞれが停止したことによる。また、レーン回路LC2およびレーン回路LC3それぞれが通常動作状態に復帰するための復帰時間は、レーン回路LC1における復帰時間よりも長い中程度の時間である。
【0091】
このように、低電力コントローラ42-2および低電力コントローラ42-3は、レーン2およびレーン3の使用が開始される際のリンク幅x4が中程度であるので、レーン2およびレーン3(より詳しくは、レーン回路LC2およびレーン回路LC3)を、電力削減効果および復帰時間が中程度の第2低消費電力状態に設定する。
【0092】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を低消費電力状態で動作させる。具体的には、低電力コントローラ42-4は、クロックゲーティング回路44-4におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-4へのクロックCLKの供給は停止される。低電力コントローラ42-4は、第2回路46-4を停止させる。低電力コントローラ42-4は、PLL回路43-4を停止させる。以下では、このような組み合わせによって設定される低消費電力状態を、第3低消費電力状態とも称する
同様にして、低電力コントローラ42-5は、レーン回路LC5を第3低消費電力状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を第3低消費電力状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を第3低消費電力状態で動作させる。
【0093】
このような制御により、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれにおいて、レーン回路LC2およびレーン回路LC3それぞれにおける電力削減効果より大きい電力削減効果が得られる。換言すると、第3低消費電力状態における消費電力は、第2低消費電力状態における消費電力よりも小さい。レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれにおける電力削減効果は、クロックゲーティング回路44-4~クロックゲーティング回路44-7それぞれにおけるクロックゲーティング機能が稼働したこと、第2回路46-4~第2回路46-7それぞれが停止したこと、およびPLL回路43-4~PLL回路43-7それぞれが停止したことによる。また、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれが通常動作状態に復帰するための復帰時間は、レーン回路LC2およびレーン回路LC3それぞれにおける復帰時間よりも長い。これは、例えば、レーン回路LC4が通常動作状態に復帰するためには、クロックゲーティング回路44-4におけるクロックゲーティング機能を停止させ(すなわち、クロックCLKを第1回路45-4に供給させ)、第2回路46-4を稼働させ、PLL回路43-4を稼働させる必要があるためである。
【0094】
このように、低電力コントローラ42-4~低電力コントローラ42-7は、レーン4~レーン7の使用が開始される際のリンク幅x8が広いので、レーン4~レーン7(より詳しくは、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7)を深い第3低消費電力状態に設定する。
【0095】
<リンクパワーステートL0p中のリンク幅がx2である場合>
図5は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx2である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0およびレーン1(第0グループおよび第1グループのレーン)は、アクティブなレーンである。レーン2~レーン7(第2グループおよび第3グループのレーン)は、インアクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。なお、
図5に示したハッチングの箇所は、リンク幅がx1からx2に広げられたことに応じて変更されるレーン回路LC0~レーン回路LC7の制御内容を示している。
【0096】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。低電力コントローラ42-0による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0097】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を通常動作状態で動作させる。具体的には、低電力コントローラ42-1は、クロックゲーティング回路44-1におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-1に供給される。低電力コントローラ42-1は、第2回路46-1を稼働させる。低電力コントローラ42-1は、PLL回路43-1を稼働させる。
【0098】
したがって、レーン回路LC1における電力削減効果はない。また、レーン回路LC1が通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0099】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を第2低消費電力状態で動作させる。低電力コントローラ42-3は、レーン回路LC3を第2低消費電力状態で動作させる。低電力コントローラ42-2および低電力コントローラ42-3による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0100】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を第3低消費電力状態で動作させる。低電力コントローラ42-5は、レーン回路LC5を第3低消費電力状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を第3低消費電力状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を第3低消費電力状態で動作させる。低電力コントローラ42-4~低電力コントローラ42-7による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0101】
<リンクパワーステートL0p中のリンク幅がx4である場合>
図6は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx4である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0~レーン3(第0グループ、第1グループ、および第2グループのレーン)は、アクティブなレーンである。レーン4~レーン7(第3グループのレーン)は、インアクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。なお、
図6に示したハッチングの箇所は、リンク幅がx2からx4に広げられたことに応じて変更されるレーン回路LC0~レーン回路LC7の制御内容を示している。
【0102】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。低電力コントローラ42-0による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0103】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を通常動作状態で動作させる。低電力コントローラ42-1による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx2である場合と同様である。
【0104】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を通常動作状態で動作させる。具体的には、低電力コントローラ42-2は、クロックゲーティング回路44-2におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-2に供給される。低電力コントローラ42-2は、第2回路46-2を稼働させる。低電力コントローラ42-2は、PLL回路43-2を稼働させる。
【0105】
同様にして、低電力コントローラ42-3は、レーン回路LC3を通常動作状態で動作させる。
【0106】
したがって、レーン回路LC2およびレーン回路LC3それぞれにおける電力削減効果はない。また、レーン回路LC2およびレーン回路LC3それぞれが通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0107】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を第3低消費電力状態で動作させる。低電力コントローラ42-5は、レーン回路LC5を第3低消費電力状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を第3低消費電力状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を第3低消費電力状態で動作させる。低電力コントローラ42-4~低電力コントローラ42-7による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0108】
<リンクパワーステートL0p中のリンク幅がx8である場合>
図7は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx8である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0~レーン7(第0グループ、第1グループ、第2グループ、および第3グループのレーン)は、アクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。なお、
図7に示したハッチングの箇所は、リンク幅がx4からx8に広げられたことに応じて変更されるレーン回路LC0~レーン回路LC7の制御内容を示している。
【0109】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。低電力コントローラ42-0による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0110】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を通常動作状態で動作させる。低電力コントローラ42-1による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx2である場合と同様である。
【0111】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を通常動作状態で動作させる。低電力コントローラ42-3は、レーン回路LC3を通常動作状態で動作させる。低電力コントローラ42-2および低電力コントローラ42-3による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx4である場合と同様である。
【0112】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を通常動作状態で動作させる。具体的には、低電力コントローラ42-4は、クロックゲーティング回路44-4におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-4に供給される。低電力コントローラ42-4は、第2回路46-4を稼働させる。低電力コントローラ42-4は、PLL回路43-4を稼働させる。
【0113】
同様にして、低電力コントローラ42-5は、レーン回路LC5を通常動作状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を通常動作状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を通常動作状態で動作させる。
【0114】
したがって、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれにおける電力削減効果はない。また、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれが通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0115】
なお、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、例えば、
図4から
図7に示したリンクパワーステートL0p中のリンク幅の変化に応じたレーン回路LC0~レーン回路LC7の制御内容の内、対応するレーン回路LCの制御内容を示すテーブルを保持する。低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、そのテーブルを用いて、リンク幅コントローラ41によって通知されたリンク幅に応じて、対応するレーン回路LCの少なくとも一部を制御する。
【0116】
図8は、必要帯域が低い期間が比較的長い利用状況において必要帯域に応じてリンク幅が制御される場合の、第1実施形態のメモリシステム3におけるリンク31の消費電力と比較例に係るメモリシステムにおけるリンクの消費電力との例を示すグラフである。横軸は、時間を示す。縦軸は、消費電力と必要帯域とを示す。ここでは、比較例に係るメモリシステムにおいて、インアクティブなレーン全てが、復帰時間の短縮を優先して、消費電力の低減量を抑えた低消費電力状態(すなわち、浅い低消費電力状態)に設定されることを想定する。また、必要帯域81は、時間の経過に従って、リンク幅x1に対応する帯域からリンク幅x8に対応する帯域へ徐々に上昇した後、再びリンク幅x1に対応する帯域へ徐々に低下するものとする。必要帯域81は、必要帯域が低い期間が比較的長い利用状況を表している。
【0117】
第1実施形態のメモリシステム3におけるリンク31の消費電力61と、比較例のメモリシステムにおけるリンクの消費電力71とは、必要帯域81の上昇に応じてリンク幅が広くなることによって、増加する。また、消費電力61と消費電力71とは、必要帯域81の低下に応じてリンク幅が狭くなることによって、減少する。
【0118】
比較例のメモリシステムでは、インアクティブなレーン全てが浅い低消費電力状態に設定される。これに対して、第1実施形態のメモリシステム3では、使用が開始される際のリンク幅が狭いインアクティブなレーンほど、浅い低消費電力状態に設定され、使用が開始される際のリンク幅が広いインアクティブなレーンほど、電力削減効果が大きく、復帰時間が長い低消費電力状態(すなわち、深い低消費電力状態)に設定される。
【0119】
第1実施形態のメモリシステム3と比較例のメモリシステムとの復帰時間について具体的に説明する。
【0120】
必要帯域81が第1閾値を上回ったことに応じてリンク幅がx1からx2へ広げられた時刻(復帰時刻)は、比較例のメモリシステムでは時刻t11であり、第1実施形態のメモリシステム3では時刻t12である。時刻t11は時刻t12よりも早い。時刻t11は、比較例のメモリシステムにおいて、1つのレーン(例えばレーン1)が浅い低消費電力状態から通常動作状態に復帰する時刻に相当する。時刻t12は、第1実施形態のメモリシステム3において、1つのレーン(例えばレーン1)が浅い低消費電力状態(例えば第1低消費電力状態)から通常動作状態に復帰する時刻に相当する。時刻t11と時刻t12との差は比較的小さい。
【0121】
必要帯域81が第2閾値を上回ったことに応じてリンク幅がx2からx4へ広げられた時刻は、比較例のメモリシステムでは時刻t13であり、第1実施形態のメモリシステム3では時刻t14である。時刻t13は時刻t14よりも早い。時刻t13は、比較例のメモリシステムにおいて、2つのレーン(例えばレーン2およびレーン3)が浅い低消費電力状態から通常動作状態に復帰する時刻に相当する。時刻t14は、第1実施形態のメモリシステム3において、2つのレーン(例えばレーン2およびレーン3)が比較的深い低消費電力状態(例えば第2低消費電力状態)から通常動作状態に復帰する時刻に相当する。したがって、時刻t13と時刻t14との差は、時刻t11と時刻t12との差よりも大きい。
【0122】
必要帯域81が第3閾値を上回ったことに応じてリンク幅がx4からx8へ広げられた時刻は、比較例のメモリシステムでは時刻t15であり、第1実施形態のメモリシステム3では時刻t16である。時刻t15は時刻t16よりも早い。時刻t15は、比較例のメモリシステムにおいて、4つのレーン(例えばレーン4~レーン7)が浅い低消費電力状態から通常動作状態に復帰する時刻に相当する。時刻t16は、第1実施形態のメモリシステム3において、4つのレーン(例えばレーン4~レーン7)が深い低消費電力状態(例えば第3低消費電力状態)から通常動作状態に復帰する時刻に相当する。したがって、時刻t15と時刻t16との差は、時刻t13と時刻t14との差よりも大きい。
【0123】
このように、必要帯域81の上昇に応じてリンク幅が広げられる場合、比較例のメモリシステムにおける復帰時刻は、第1実施形態のメモリシステム3における復帰時刻よりも早い。したがって、比較例のメモリシステムにおける復帰時間は、第1実施形態のメモリシステム3における復帰時間よりも短い。また、リンク幅が広いほど、比較例のメモリシステムと第1実施形態のメモリシステム3との復帰時間の差は大きくなる。
【0124】
次いで、第1実施形態のメモリシステム3と比較例のメモリシステムとの消費電力について具体的に説明する。
【0125】
リンク幅がx1である場合、比較例のメモリシステムにおいて、7つのレーン(例えばレーン1~レーン7)が浅い低消費電力状態に設定される。一方で、第1実施形態のメモリシステム3において、1つのレーン(例えばレーン1)が浅い低消費電力状態(例えば第1低消費電力状態)に設定され、2つのレーン(例えばレーン2およびレーン3)が比較的深い低消費電力状態(例えば第2低消費電力状態)に設定され、4つのレーン(例えばレーン4~レーン7)が深い低消費電力状態(例えば第3低消費電力状態)に設定される。したがって、第1実施形態のメモリシステム3におけるリンク31の消費電力61は、比較例のメモリシステムにおけるリンクの消費電力71よりも大幅に低い。
【0126】
リンク幅がx2である場合、比較例のメモリシステムにおいて、6つのレーン(例えばレーン2~レーン7)が浅い低消費電力状態に設定される。一方で、第1実施形態のメモリシステム3において、2つのレーン(例えばレーン2およびレーン3)が比較的深い低消費電力状態(例えば第2低消費電力状態)に設定され、4つのレーン(例えばレーン4~レーン7)が深い低消費電力状態(例えば第3低消費電力状態)に設定される。したがって、第1実施形態のメモリシステム3におけるリンク31の消費電力61は、比較例のメモリシステムにおけるリンクの消費電力71よりも低い。リンク幅がx2である場合の消費電力61と消費電力71との差は、リンク幅がx1である場合の消費電力61と消費電力71との差よりも小さい。
【0127】
リンク幅がx4である場合、比較例のメモリシステムにおいて、4つのレーン(例えばレーン4~レーン7)が浅い低消費電力状態に設定される。一方で、第1実施形態のメモリシステム3において、4つのレーン(例えばレーン4~レーン7)が深い低消費電力状態(例えば第3低消費電力状態)に設定される。したがって、第1実施形態のメモリシステム3におけるリンク31の消費電力61は、比較例のメモリシステムにおけるリンクの消費電力71よりも低い。リンク幅がx4である場合の消費電力61と消費電力71との差は、リンク幅がx2である場合の消費電力61と消費電力71との差よりも小さい。
【0128】
なお、リンク幅がx8である場合、第1実施形態のメモリシステム3におけるリンク31の消費電力61は、比較例のメモリシステムにおけるリンクの消費電力71と同一である。
【0129】
このように、比較例のメモリシステムでは、必要帯域81の上昇に応じて短い復帰時間でリンク幅を広げられるものの、電力削減効果は小さい。
【0130】
これに対して、第1実施形態のメモリシステム3では、リンク幅が狭い場合に大きな電力削減効果が得られる。そして、メモリシステム3では、必要帯域が低い期間において、上昇した必要帯域81に追従して、リンク幅を広くできる。そのため、メモリシステム3では、必要帯域が低い期間が比較的長い利用状況において、必要帯域81に対するリンク幅の追従性を確保できる。メモリシステム3におけるリンク幅の追従性は比較例におけるリンク幅の追従性より劣るが、必要帯域が低い期間が比較的長い利用状況においては、リンク幅を広げる必要性が生じる可能性はそもそも低い。このため、パケット伝送のパフォーマンスの低下は問題とはならないと考えられる。
【0131】
したがって、メモリシステム3では、必要帯域が低い期間が比較的長いというリンク31の利用状況に適した復帰時間および電力削減効果が得られるように、リンク幅が狭められた場合のレーン回路LCの動作を最適化できる。
【0132】
(第2実施形態)
第1実施形態では、必要帯域が低い期間が比較的長いというリンク31の利用状況において、リンク31内の各レーンが制御される。これに対して、第2実施形態では、必要帯域が高い期間が比較的長いというリンク31の利用状況において、リンク31内の各レーンが制御される。
【0133】
第2実施形態に係るメモリシステム3の構成は第1実施形態のメモリシステム3と同様である。第2実施形態と第1実施形態とでは、低電力コントローラ42-0~低電力コントローラ42-7によるレーンの制御動作が異なる。以下、第1実施形態と異なる点を主に説明する。
【0134】
ここでは、リンク31内のレーンに設定される状態を、必要帯域が高い期間(すなわち、高負荷の期間)が比較的長い利用状況に最適化することを想定する。この場合、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、例えば、使用が開始される際のリンク幅が最大のリンク幅(例えば、x8)である場合にのみ使用されるレーンが遷移する低消費電力状態を浅い低消費電力状態に設定する。例えば、第3グループのレーンは浅い低消費電力状態(例えば第1低消費電力状態)に設定される。また、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、例えば、使用が開始される際のリンク幅が最大のリンク幅以外のリンク幅であっても使用されるレーンが遷移する低消費電力状態を深い低消費電力状態に設定する。例えば、第1グループおよび第2グループのレーンは深い低消費電力状態(例えば第3低消費電力状態)に設定される。
【0135】
図9から
図12を参照して、リンク31がリンクパワーステートL0pに設定されている場合の、リンク幅の変化に応じたレーン回路LC0~レーン回路LC7の制御例について説明する。
【0136】
<リンクパワーステートL0p中のリンク幅がx1である場合>
図9は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx1である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0(第0グループのレーン)は、アクティブなレーンである。レーン1~レーン7(第1グループ、第2グループ、および第3グループのレーン)は、インアクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。
【0137】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。具体的には、低電力コントローラ42-0は、クロックゲーティング回路44-0におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-0に供給される。低電力コントローラ42-0は、第2回路46-0を稼働させる。低電力コントローラ42-0は、PLL回路43-0を稼働させる。
【0138】
したがって、レーン回路LC0における電力削減効果はない。また、レーン回路LC0が通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0139】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を第3低消費電力状態で動作させる。具体的には、低電力コントローラ42-1は、クロックゲーティング回路44-1におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-1へのクロックCLKの供給は停止される。低電力コントローラ42-1は、第2回路46-1を停止させる。低電力コントローラ42-1は、PLL回路43-1を停止させる。
【0140】
このような制御により、レーン回路LC1において大きな電力削減効果が得られる。この電力削減効果は、クロックゲーティング回路44-1におけるクロックゲーティング機能が稼働したこと、第2回路46-1が停止したこと、およびPLL回路43-1が停止したことによる。また、レーン回路LC1が通常動作状態に復帰するための復帰時間は長い。これは、レーン回路LC1が通常動作状態に復帰するためには、クロックゲーティング回路44-1におけるクロックゲーティング機能を停止させ(すなわち、クロックCLKを第1回路45-1に供給させ)、第2回路46-1を稼働させ、PLL回路43-1を稼働させる必要があるためである。
【0141】
このように、低電力コントローラ42-1は、使用が開始される際のリンク幅がx2(すなわち、最大リンク幅ではない)であっても使用されるレーン1(より詳しくは、レーン回路LC1)を深い第3低消費電力状態に設定する。
【0142】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を第3低消費電力状態で動作させる。具体的には、低電力コントローラ42-2は、クロックゲーティング回路44-2におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-2へのクロックCLKの供給は停止される。低電力コントローラ42-2は、第2回路46-2を停止させる。低電力コントローラ42-2は、PLL回路43-2を停止させる。
【0143】
同様にして、低電力コントローラ42-3は、レーン回路LC3を第3低消費電力状態で動作させる。
【0144】
このような制御により、レーン回路LC2およびレーン回路LC3それぞれにおいて大きな電力削減効果が得られる。また、レーン回路LC2およびレーン回路LC3が通常動作状態に復帰するための復帰時間は長い。
【0145】
このように、低電力コントローラ42-2および低電力コントローラ42-3は、使用が開始される際のリンク幅がx4(すなわち、最大リンク幅ではない)であっても使用されるレーン2およびレーン3(より詳しくは、レーン回路LC2およびレーン回路LC3)を深い第3低消費電力状態に設定する。
【0146】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を第1低消費電力状態で動作させる。具体的には、低電力コントローラ42-4は、クロックゲーティング回路44-4におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-4へのクロックCLKの供給は停止される。低電力コントローラ42-4は、第2回路46-4を稼働させる。低電力コントローラ42-4は、PLL回路43-4を稼働させる。
【0147】
同様にして、低電力コントローラ42-5は、レーン回路LC5を第1低消費電力状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を第1低消費電力状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を第1低消費電力状態で動作させる。
【0148】
このような制御により、レーン回路LC4~レーン回路LC7それぞれにおいて、レーン回路LC1、レーン回路LC2、およびレーン回路LC3それぞれにおける電力削減効果より小さい電力削減効果が得られる。換言すると、第1低消費電力状態における消費電力は、第3低消費電力状態における消費電力よりも大きい。レーン回路LC4~レーン回路LC7それぞれにおける電力削減効果は、クロックゲーティング回路44-4~クロックゲーティング回路44-7それぞれにおけるクロックゲーティング機能が稼働したことによる。また、レーン回路LC4~レーン回路LC7それぞれが通常動作状態に復帰するための復帰時間は、レーン回路LC1、レーン回路LC2、およびレーン回路LC3それぞれにおける復帰時間よりも短い。これは、クロックゲーティング回路44-4~クロックゲーティング回路44-7それぞれにおけるクロックゲーティング機能を停止させれば、対応するレーン回路LC4~レーン回路LC7それぞれが通常動作状態に復帰するためである。
【0149】
このように、低電力コントローラ42-4~低電力コントローラ42-7は、使用が開始される際のリンク幅がx8(すなわち、最大リンク幅)である場合にのみ使用される、レーン4~レーン7(より詳しくは、レーン回路LC4~レーン回路LC7)を浅い第1低消費電力状態に設定する。
【0150】
<リンクパワーステートL0p中のリンク幅がx2である場合>
図10は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx2である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0およびレーン1(第0グループおよび第1グループのレーン)は、アクティブなレーンである。レーン2~レーン7(第2グループおよび第3グループのレーン)は、インアクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。なお、
図10に示したハッチングの箇所は、リンク幅がx1からx2に広げられたことに応じて変更されるレーン回路LC0~レーン回路LC7の制御内容を示している。
【0151】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。低電力コントローラ42-0による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0152】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を通常動作状態で動作させる。具体的には、低電力コントローラ42-1は、クロックゲーティング回路44-1におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-1に供給される。低電力コントローラ42-1は、第2回路46-1を稼働させる。低電力コントローラ42-1は、PLL回路43-1を稼働させる。
【0153】
したがって、レーン回路LC1における電力削減効果はない。また、レーン回路LC1が通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0154】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を第3低消費電力状態で動作させる。低電力コントローラ42-3は、レーン回路LC3を第3低消費電力状態で動作させる。低電力コントローラ42-2および42-3による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0155】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を第1低消費電力状態で動作させる。低電力コントローラ42-5は、レーン回路LC5を第1低消費電力状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を第1低消費電力状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を第1低消費電力状態で動作させる。低電力コントローラ42-4~低電力コントローラ42-7による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0156】
<リンクパワーステートL0p中のリンク幅がx4である場合>
図11は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx4である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0~レーン3(第0グループ、第1グループ、および第2グループのレーン)は、アクティブなレーンである。レーン4~レーン7(第3グループのレーン)は、インアクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。なお、
図11に示したハッチングの箇所は、リンク幅がx2からx4に広げられたことに応じて変更されるレーン回路LC0~レーン回路LC7の制御内容を示している。
【0157】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。低電力コントローラ42-0による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0158】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を通常動作状態で動作させる。低電力コントローラ42-1による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx2である場合と同様である。
【0159】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を通常動作状態で動作させる。具体的には、低電力コントローラ42-2は、クロックゲーティング回路44-2におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-2に供給される。低電力コントローラ42-2は、第2回路46-2を稼働させる。低電力コントローラ42-2は、PLL回路43-2を稼働させる。
【0160】
同様にして、低電力コントローラ42-3は、レーン回路LC3を通常動作状態で動作させる。
【0161】
したがって、レーン回路LC2およびレーン回路LC3それぞれにおける電力削減効果はない。また、レーン回路LC2およびレーン回路LC3それぞれが通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0162】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を第1低消費電力状態で動作させる。低電力コントローラ42-5は、レーン回路LC5を第1低消費電力状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を第1低消費電力状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を第1低消費電力状態で動作させる。低電力コントローラ42-4~低電力コントローラ42-7による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0163】
<リンクパワーステートL0p中のリンク幅がx8である場合>
図12は、リンク31がリンクパワーステートL0pに設定されている場合のリンク幅がx8である場合のレーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0~レーン7(第0グループ、第1グループ、第2グループ、および第3グループのレーン)は、アクティブなレーンである。以下では、グループ毎に、対応するレーン回路LCの制御例を説明する。なお、
図12に示したハッチングの箇所は、リンク幅がx4からx8に広げられたことに応じて変更されるレーン回路LC0~レーン回路LC7の制御内容を示している。
【0164】
(第0グループ:レーン0)
低電力コントローラ42-0は、レーン回路LC0を通常動作状態で動作させる。低電力コントローラ42-0による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx1である場合と同様である。
【0165】
(第1グループ:レーン1)
低電力コントローラ42-1は、レーン回路LC1を通常動作状態で動作させる。低電力コントローラ42-1による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx2である場合と同様である。
【0166】
(第2グループ:レーン2およびレーン3)
低電力コントローラ42-2は、レーン回路LC2を通常動作状態で動作させる。低電力コントローラ42-3は、レーン回路LC3を通常動作状態で動作させる。低電力コントローラ42-2および低電力コントローラ42-3による具体的な制御、電力削減効果、および復帰時間は、リンクパワーステートL0p中のリンク幅がx4である場合と同様である。
【0167】
(第3グループ:レーン4、レーン5、レーン6、およびレーン7)
低電力コントローラ42-4は、レーン回路LC4を通常動作状態で動作させる。具体的には、低電力コントローラ42-4は、クロックゲーティング回路44-4におけるクロックゲーティング機能を停止させる。すなわち、クロックCLKは第1回路45-4に供給される。低電力コントローラ42-4は、第2回路46-4を稼働させる。低電力コントローラ42-4は、PLL回路43-4を稼働させる。
【0168】
同様にして、低電力コントローラ42-5は、レーン回路LC5を通常動作状態で動作させる。低電力コントローラ42-6は、レーン回路LC6を通常動作状態で動作させる。低電力コントローラ42-7は、レーン回路LC7を通常動作状態で動作させる。
【0169】
したがって、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれにおける電力削減効果はない。また、レーン回路LC4、レーン回路LC5、レーン回路LC6、およびレーン回路LC7それぞれが通常動作状態で動作しているので、通常動作状態に復帰するための復帰時間はない。
【0170】
なお、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、例えば、
図9から
図12に示したリンクパワーステートL0p中のリンク幅の変化に応じたレーン回路LC0~レーン回路LC7の制御内容の内、対応するレーン回路LCの制御内容を示すテーブルを保持する。低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、そのテーブルを用いて、リンク幅コントローラ41によって通知されたリンク幅に応じて、対応するレーン回路LCの少なくとも一部を制御する。
【0171】
図13は、必要帯域が高い期間が比較的長い利用状況において必要帯域に応じてリンク幅が制御される場合の、第2実施形態のメモリシステム3におけるリンク31の消費電力と比較例に係るメモリシステムにおけるリンクの消費電力との例を示すグラフである。横軸は、時間を示す。縦軸は、消費電力と必要帯域とを示す。ここでは、比較例に係るメモリシステムにおいて、インアクティブなレーン全てが、消費電力の低減を優先して、復帰時間が伸びる低消費電力状態(すなわち、深い低消費電力状態)に設定されることを想定する。また、必要帯域82は、時間の経過に従って、リンク幅x4に対応する帯域とリンク幅x8に対応する帯域との閾値(第3閾値)を跨るように、上昇と低下を繰り返すものとする。つまり、必要帯域82は、必要帯域が高い期間が比較的長い利用状況を表している。
【0172】
第2実施形態のメモリシステム3におけるリンク31の消費電力62と、比較例のメモリシステムにおけるリンクの消費電力72とは、必要帯域82の上昇に応じてリンク幅が広くなることによって、増加する。また、消費電力62と消費電力72とは、必要帯域82の低下に応じてリンク幅が狭くなることによって、減少する。
【0173】
比較例のメモリシステムでは、インアクティブなレーン全てが深い低消費電力状態に設定される。これに対して、第2実施形態のメモリシステム3では、使用が開始される際のリンク幅が最大のリンク幅(ここでは、x8)である場合にのみ使用されるインアクティブなレーンを、電力削減効果が小さく、復帰時間が短い低消費電力状態(浅い低消費電力状態)に設定する。また、第2実施形態のメモリシステム3では、使用が開始される際のリンク幅が最大のリンク幅以外のリンク幅であっても使用されるインアクティブなレーンを、深い低消費電力状態に設定する。
【0174】
具体的には、時刻t21において、必要帯域82がリンク幅x8に対応する帯域からリンク幅x4に対応する帯域へ低下した場合(すなわち、必要帯域82が第3閾値以下になった場合)、第2実施形態のメモリシステム3は、復帰時間が短いことにより、今後予測される必要帯域82の上昇を考慮しても、リンク幅をx8からx4に狭められると判断できる。したがって、第2実施形態のメモリシステム3では、リンク幅がx8からx4へ狭められる。
【0175】
一方、比較例のメモリシステムでは、リンク幅はx8に維持される。比較例のメモリシステムでは、必要帯域82が低下したことに応じてリンク幅をx8からx4に狭めた後に、必要帯域82が上昇したことに応じてリンク幅をx4からx8に再び広げる場合に、長い復帰時間を要する。そのため、必要帯域82が第3閾値を跨るように上昇と低下を繰り返す状況では、比較例のメモリシステムは、必要帯域82が低下しても、長い復帰時間と今後予測される必要帯域82の上昇との関係を考慮するとリンク幅をx8からx4に狭める判断ができないことがある。例えば、必要帯域82が低下した場合に、今後予測される必要帯域82の上昇までの時間(例えば、必要帯域82が第3閾値を上回ることが予測されるまでの時間)が復帰時間に対して十分に長ければ、比較例のメモリシステムは、リンク幅をx8からx4に狭められると判断する。一方で、今後予測される必要帯域82の上昇までの時間が復帰時間に対して同等または短ければ、比較例のメモリシステムは、リンク幅をx8からx4に狭められないと判断する。時刻t21では、比較例のメモリシステムは、必要帯域82が低下したものの、長い復帰時間によって、今後予測される必要帯域82の上昇に対して遅延なく復帰することができないので、リンク幅をx8からx4に狭められないと判断して、リンク幅をx8に維持する。
【0176】
次いで、時刻t22において、必要帯域82がリンク幅x4に対応する帯域からリンク幅x8に対応する帯域へ上昇した場合(すなわち、必要帯域82が第3閾値を上回った場合)、第2実施形態のメモリシステム3では、時刻t23にリンク幅がx4からx8へ広げられる。第2実施形態のメモリシステム3において、必要帯域82の上昇に応じてリンク幅をx4からx8へ広げることが要求されてから、この要求に応じてリンク幅がx4からx8へ広げられるまでの復帰時間は、時刻t22から時刻t23までの時間trである。復帰時間trは、第2実施形態のメモリシステム3において、4つのレーン(例えばレーン4~レーン7)が浅い低消費電力状態(例えば第1低消費電力状態)から通常動作状態に復帰する時刻に相当する。復帰時間trの間に、第2実施形態のメモリシステム3は、必要帯域82の上昇に対して遅延なくリンク幅をx4からx8へ広げられる。そのため、第2実施形態のメモリシステム3では、第3閾値を跨る必要帯域82の上昇と低下に応じて、x4とx8のいずれかにリンク幅を頻繁に変更できる。
【0177】
また、時刻t21から時刻t23までの期間において、リンク幅がx4である第2実施形態のメモリシステム3におけるリンク31の消費電力62は、リンク幅がx8である比較例のメモリシステムにおけるリンクの消費電力72よりも低い。
【0178】
前述したように、比較例のメモリシステムでは、必要帯域82の上昇に応じてリンク幅を広げる場合に、長い復帰時間を要する。
【0179】
これに対して、第2実施形態のメモリシステム3では、リンク幅が広い場合(例えばx4である場合)に、短い復帰時間でリンク幅を広げられる。そのため、メモリシステム3では、必要帯域が高い期間が比較的長い利用状況において、必要帯域82の上昇または低下に応じて、頻繁にリンク幅を変更できる。なお、第2実施形態のメモリシステム3では、使用が開始される際のリンク幅が最大のリンク幅以外であっても使用されるレーン(例えばレーン1~レーン3)は、深い低消費電力状態(例えば第3低消費電力状態)に設定される。このため、リンク幅が狭い場合(例えばx2である場合)からリンク幅を広げる場合(例えばx4に広げる場合)に、リンク幅の追従性が悪化する。しかしながら、必要帯域が高い期間が比較的長い利用状況においては、リンク幅を狭くする必要性が生じる可能性はそもそも低い。例えば、レーン1~レーン3が第3低消費電力状態に設定される可能性はそもそも低い。このため、パケット伝送のパフォーマンスの低下は問題とはならないと考えられる。
【0180】
したがって、メモリシステム3では、必要帯域が高い期間が比較的長いというリンク31の利用状況に適した復帰時間および電力削減効果が得られるように、リンク幅が狭められた場合のレーン回路の動作を最適化できる。
【0181】
(第3実施形態)
第1実施形態では、必要帯域が低い期間が比較的長いというリンク31の利用状況において、リンク31内の各レーンが制御される。第3実施形態では、必要帯域が低い期間が比較的長いというリンク31の利用状況において、復帰時間をより短縮するように、リンク31内の各レーンが制御される。
【0182】
第3実施形態に係るメモリシステム3の構成は第1実施形態のメモリシステム3と同様である。第3実施形態と第1実施形態とでは、低電力コントローラ42-0~低電力コントローラ42-7によるレーンの制御動作が異なる。以下、第1実施形態と異なる点を主に説明する。
【0183】
第3実施形態のメモリシステム3において、リンク31がリンクパワーステートL0pに設定されている場合の、リンク幅の変化に応じたレーン回路LC0~レーン回路LC7の制御例は、第1実施形態において
図4から
図7を参照して前述した通りである。
【0184】
第3実施形態のメモリシステム3ではさらに、必要帯域がリンク幅を広げるべき閾値に達したことに応じてインアクティブからアクティブに遷移するレーンに設定されている低消費電力状態が、より浅い低消費電力状態に事前に変更される。具体的には、必要帯域に対して、リンク幅を変更するか否かを判定するための閾値に加えて、リンク幅が変更される前に低消費電力状態の内容を変更するか否かを判定するための閾値(以下、事前閾値と称する)が設けられる。
【0185】
例えば、リンク幅がx2からx4へ広げられたことに応じて使用が開始されるレーン2およびレーン3に設定されている低消費電力状態の内容を変更するか否かを、リンク幅がx2からx4へ変更される前に判定するための事前閾値(以下、第1事前閾値と称する)が設けられる。この場合、低電力コントローラ42-2および低電力コントローラ42-3は、必要帯域が第1事前閾値を上回ったならば、インアクティブなレーン2およびレーン3に設定されている第2低消費電力状態を、より浅い低消費電力状態に変更する。なお、必要帯域が第1事前閾値を上回ったことは、例えば、NVMeコントローラ23からリンク幅コントローラ41を介して低電力コントローラ42-2および42-3に通知される。
【0186】
また、例えば、リンク幅がx8に広げられたことに応じて使用が開始されるレーン4~レーン7に設定されている低消費電力状態の内容を変更するか否かを、リンク幅がx4からx8へ変更される前に判定するための事前閾値(以下、第2事前閾値と称する)が設けられる。この場合、低電力コントローラ42-4~低電力コントローラ42-7は、必要帯域が第2事前閾値を上回ったならば、インアクティブなレーン4~レーン7に設定されている第3低消費電力状態を、より浅い低消費電力状態に変更する。なお、必要帯域が第2事前閾値を上回ったことは、例えば、NVMeコントローラ23からリンク幅コントローラ41を介して低電力コントローラ42-4~低電力コントローラ42-7に通知される。
【0187】
図14は、リンク31がリンクパワーステートL0pに設定され、リンク幅がx2である間に、必要帯域が第1事前閾値を上回った場合の、レーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0およびレーン1(第0グループおよび第1グループのレーン)は、アクティブなレーンである。レーン2~レーン7(第2グループおよび第3グループのレーン)は、インアクティブなレーンである。
【0188】
リンク幅がx2である場合における、第0グループ、第1グループ、および第3グループに属するレーン0、レーン1、およびレーン4~レーン7それぞれに対応するレーン回路LCの制御例は、
図5を参照して前述した通りである。
【0189】
第2グループに属するレーン2およびレーン3にそれぞれ対応するレーン回路LC2およびレーン回路LC3の制御例について説明する。
【0190】
図5を参照して前述した通り、低電力コントローラ42-2は、リンク幅がx2である場合、レーン回路LC2を第2低消費電力状態で動作させる。具体的には、低電力コントローラ42-2は、クロックゲーティング回路44-2におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-2へのクロックCLKの供給は停止される。低電力コントローラ42-2は、第2回路46-2を停止させる。低電力コントローラ42-2は、PLL回路43-2を稼働させる。
【0191】
そして、必要帯域が第1事前閾値を上回ったならば、低電力コントローラ42-2は、
図14に示すように、レーン回路LC2をより浅い低消費電力状態で動作させる。具体的には、低電力コントローラ42-2は、第2回路46-2を稼働させる。
【0192】
同様にして、低電力コントローラ42-3は、リンク幅がx2である場合、レーン回路LC3を第2低消費電力状態で動作させる。そして、必要帯域が第1事前閾値を上回ったならば、低電力コントローラ42-3は、レーン回路LC3をより浅い低消費電力状態で動作させる。
【0193】
このような制御により、レーン回路LC2およびレーン回路LC3それぞれにおいて、電力削減効果は小さくなるものの、復帰時間が短縮される。換言すると、より浅い低消費電力状態におけるレーン回路LCの消費電力は、第2低消費電力状態のレーン回路LCにおける消費電力よりも大きい。また、レーン回路LCがより浅い低消費電力状態から動作状態に遷移するまでの時間は、レーン回路LCが第2低消費電力状態から動作状態に遷移するまでの時間よりも短い。
【0194】
このように、低電力コントローラ42-2および低電力コントローラ42-3は、リンク幅がx2からx4へ広げられることが予測される場合に、レーン2およびレーン3(より詳しくは、レーン回路LC2およびレーン回路LC3)の状態を第2低消費電力状態よりも浅い低消費電力状態に変更する。これにより、リンク幅がx2からx4へ広げられる場合に、復帰時間を短縮できる。
【0195】
図15は、リンク31がリンクパワーステートL0pに設定され、リンク幅がx4である間に、必要帯域が第2事前閾値を上回った場合の、レーン回路LC0~レーン回路LC7の制御例を示す。この場合、レーン0~レーン3(第0グループ、第1グループ、および第2グループのレーン)は、アクティブなレーンである。レーン4~レーン7(第3グループのレーン)は、インアクティブなレーンである。
【0196】
リンク幅がx4である場合における、第0グループ、第1グループ、および第2グループに属するレーン0~レーン3それぞれに対応するレーン回路LCの制御例は、
図6を参照して前述した通りである。
【0197】
第3グループに属するレーン4~レーン7にそれぞれ対応するレーン回路LC4~レーン回路LC7の制御例について説明する。
【0198】
図6を参照して前述した通り、低電力コントローラ42-4は、リンク幅がx4である場合、レーン回路LC4を第3低消費電力状態で動作させる。具体的には、低電力コントローラ42-4は、クロックゲーティング回路44-4におけるクロックゲーティング機能を稼働させる。すなわち、第1回路45-4へのクロックCLKの供給は停止される。低電力コントローラ42-4は、第2回路46-4を停止させる。低電力コントローラ42-4は、PLL回路43-4を停止させる。
【0199】
そして、必要帯域が第2事前閾値を上回ったならば、低電力コントローラ42-4は、
図15に示すように、レーン回路LC4をより浅い低消費電力状態で動作させる。具体的には、低電力コントローラ42-4は、例えば、PLL回路43-4を稼働させる。
【0200】
低電力コントローラ42-5~低電力コントローラ42-7も、低電力コントローラ42-4と同様にして、レーン回路LC5~レーン回路LC7をそれぞれ制御する。
【0201】
このような制御により、レーン回路LC4~レーン回路LC7それぞれにおいて、電力削減効果は小さくなるものの、復帰時間が短縮される。換言すると、より浅い低消費電力状態におけるレーン回路LCの消費電力は、第3低消費電力状態のレーン回路における消費電力よりも大きい。また、レーン回路LCがより浅い低消費電力状態から動作状態に遷移するまでの時間は、レーン回路LCが第3低消費電力状態から動作状態に遷移するまでの時間よりも短い。
【0202】
このように、低電力コントローラ42-4~低電力コントローラ42-7は、リンク幅がx4からx8へ広げられることが予測される場合に、レーン4~レーン7(より詳しくは、レーン回路LC4~レーン回路LC7)の状態を第3低消費電力状態よりも浅い低消費電力状態に変更する。これにより、リンク幅がx4からx8へ広げられる場合に、復帰時間を短縮できる。
【0203】
なお、低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、例えば、
図4から
図7、
図14、および
図15に示したリンクパワーステートL0p中のリンク幅の変化および必要帯域の変化に応じたレーン回路LC0~レーン回路LC7の制御内容の内、対応するレーン回路LCの制御内容を示すテーブルを保持する。低電力コントローラ42-0~低電力コントローラ42-7のそれぞれは、そのテーブルを用いて、リンク幅コントローラ41によって通知されたリンク幅に応じて、対応するレーン回路LCの少なくとも一部を制御する。また、低電力コントローラ42-2および低電力コントローラ42-3は、そのテーブルを用いて、必要帯域が第1事前閾値を上回ったことがリンク幅コントローラ41から通知されたことに応じて、対応するレーン回路LC2およびレーン回路LC3の少なくとも一部を制御する。低電力コントローラ42-4~低電力コントローラ42-7は、そのテーブルを用いて、必要帯域が第2事前閾値を上回ったことがリンク幅コントローラ41から通知されたことに応じて、対応するレーン回路LC4~レーン回路LC7の少なくとも一部を制御する。
【0204】
図16は、必要帯域が低い期間が比較的長い利用状況において必要帯域に応じてリンク幅が制御される場合の、第1実施形態のメモリシステム3におけるリンク31の消費電力と第3実施形態に係るメモリシステム3におけるリンク31の消費電力との例を示すグラフである。横軸は、時間を示す。縦軸は、消費電力と必要帯域とを示す。必要帯域81は、時間の経過に従って、リンク幅x1に対応する帯域からリンク幅x8に対応する帯域へ徐々に上昇した後、再びリンク幅x1に対応する帯域へ徐々に低下するものとする。必要帯域81は、必要帯域が低い期間が比較的長い利用状況を表している。
【0205】
第1実施形態のメモリシステム3におけるリンク31の消費電力61と、第3実施形態のメモリシステム3におけるリンク31の消費電力63とは、必要帯域81の上昇に応じてリンク幅が広くなることによって、増加する。また、消費電力61と消費電力63とは、必要帯域81の低下に応じてリンク幅が狭くなることによって、減少する。
【0206】
さらに、リンク幅がx2である間に必要帯域81が第1事前閾値を上回ったことに応じて、第2グループのレーン2およびレーン3がより浅い低消費電力状態に設定されたことによって、消費電力63は増加する。リンク幅がx4である間に必要帯域81が第2事前閾値を上回ったことに応じて、第3グループのレーン4~レーン7がより浅い低消費電力状態に設定されたことによって、消費電力63は増加する。
【0207】
具体的には、必要帯域81が第1閾値を上回ったことに応じてリンク幅がx1からx2へ広げられた時刻(復帰時刻)は、第1実施形態のメモリシステム3と第3実施形態のメモリシステム3のいずれでも時刻t31である。時刻t31は、第1実施形態のメモリシステム3と第3実施形態のメモリシステム3のそれぞれにおいて、1つのレーン(例えばレーン1)が浅い低消費電力状態(例えば第1低消費電力状態)から通常動作状態に復帰する時刻に相当する。
【0208】
次いで、時刻t32において必要帯域81が第1事前閾値を上回ったことに応じて、第3実施形態のメモリシステム3では、第2グループのレーン2およびレーン3がより浅い低消費電力状態に変更される(
図16中の“pre x2 to x4”)。レーン2およびレーン3がより浅い低消費電力状態に変更されたことにより、第3実施形態のメモリシステム3におけるリンク31の消費電力63は、第1実施形態のメモリシステム3の消費電力61よりも高くなる。
【0209】
必要帯域81が第2閾値を上回ったことに応じてリンク幅がx2からx4へ広げられた時刻は、第3実施形態のメモリシステム3では時刻t33であり、第1実施形態のメモリシステム3では時刻t35である。時刻t33は時刻t35よりも時間65だけ早い。時刻t33は、第3実施形態のメモリシステム3において、2つのレーン(レーン2およびレーン3)がより浅い低消費電力状態から通常動作状態に復帰する時刻に相当する。時刻t35は、第1実施形態のメモリシステム3において、2つのレーン(レーン2およびレーン3)が比較的深い低消費電力状態(例えば第2低消費電力状態)から通常動作状態に復帰する時刻に相当する。第3実施形態のメモリシステム3では、レーン2およびレーン3がより浅い低消費電力状態に事前に設定されることによって、第1実施形態のメモリシステム3よりも復帰時間を時間65だけ短縮できる。
【0210】
また、時刻t33と時刻t35の間の時刻t34において必要帯域81が第2事前閾値を上回ったことに応じて、第3実施形態のメモリシステム3では、第3グループのレーン4~レーン7がより浅い低消費電力状態に変更される(
図16中の“pre x4 to x8”)。レーン4~レーン7がより浅い低消費電力状態に変更されたことにより、第3実施形態のメモリシステム3の消費電力63は、第1実施形態のメモリシステム3の消費電力61よりも高くなる。
【0211】
必要帯域81が第3閾値を上回ったことに応じてリンク幅がx4からx8へ広げられた時刻は、第3実施形態のメモリシステム3では時刻t36であり、第1実施形態のメモリシステム3では時刻t37である。時刻t36は時刻t37よりも時間66だけ早い。時刻t36は、第3実施形態のメモリシステム3において、4つのレーン(レーン4~レーン7)がより浅い低消費電力状態から通常動作状態に復帰する時刻に相当する。時刻t37は、第1実施形態のメモリシステム3において、4つのレーン(レーン4~レーン7)が深い低消費電力状態(例えば第3低消費電力状態)から通常動作状態に復帰する時刻に相当する。第3実施形態のメモリシステム3では、レーン4~レーン7がより浅い低消費電力状態に事前に設定されることによって、第1実施形態のメモリシステム3よりも復帰時間を時間66だけ短縮できる。
【0212】
このように、第3実施形態のメモリシステム3では、必要帯域81が第1事前閾値を上回ったことに応じて、第2グループのレーン2およびレーン3がより浅い低消費電力状態に変更される。また、第3実施形態のメモリシステム3では、必要帯域81が第2事前閾値を上回ったことに応じて、第3グループのレーン4~レーン7がより浅い低消費電力状態に変更される。第2グループのレーン2およびレーン3がより浅い低消費電力状態に設定されている期間と、第3グループのレーン4~レーン7がより浅い低消費電力状態に設定されている期間とでは、第3実施形態のメモリシステム3における電力削減効果は、第1実施形態のメモリシステム3よりも小さくなる。しかし、第3実施形態のメモリシステム3では、リンク幅がx2からx4へ広げられる場合の復帰時間と、リンク幅がx4からx8へ広げられる場合の復帰時間とを、第1実施形態のメモリシステム3よりも短縮できる。これにより、第3実施形態のメモリシステム3では、リンク幅がx2からx4へ広げられる場合とリンク幅がx4からx8へ広げられる場合とに、第1実施形態のメモリシステム3よりもリンク幅の追従性を向上できる。
【0213】
したがって、第3実施形態のメモリシステム3では、必要帯域が低い期間が比較的長いというリンク31の利用状況に適した復帰時間および電力削減効果が得られるように、リンク幅が狭められた場合のレーン回路LCの動作を最適化できると共に、復帰時間を短縮できる。
【0214】
以上説明したように、本実施形態によれば、リンク幅が狭められた場合の動作を改善できる。コントローラ6(より詳しくは、リンク幅コントローラ41、および低電力コントローラ42-0~低電力コントローラ42-7)は、ホスト2とメモリシステム3との間のリンク31を介したデータ伝送のために要求される帯域に基づいて、リンク31に含まれる複数のレーンの内、少なくとも1つの第0レーンを動作状態に設定し、残りのレーンの内の第1レーンを第1低消費電力状態に設定し、残りのレーンの内の第2レーンを第2低消費電力状態に設定する。第1低消費電力状態および第2低消費電力状態のそれぞれにおける消費電力は、動作状態における消費電力よりも低い。第1低消費電力状態から動作状態に遷移するまでの時間は、第2低消費電力状態から動作状態に遷移するまでの時間とは異なる。
【0215】
これにより、コントローラ6は、例えば、リンク31がリンクパワーステートL0pに設定されている場合に、インアクティブなレーンを、レーン毎に、あるいは同時に状態が遷移するレーンの単位毎に、異なる低消費電力状態に設定できる。したがって、メモリシステム3では、例えば、リンク31の利用状況に適した復帰時間および電力削減効果が得られるように、リンク幅が狭められた場合のレーン回路の動作を改善できる。
【0216】
第1乃至第3実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。これら実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【0217】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0218】
1…情報処理システム、2…ホスト、3…メモリシステム、4…NAND型フラッシュメモリ、5…DRAM、6…コントローラ、11…CPU、12…NAND I/F、13…DRAM I/F、14…ホストI/F、21…PCIe PHY、22…PCIeリンクコントローラ、23…NVMeコントローラ、31…リンク、41…リンク幅コントローラ、42-0,42-1,42-7…低電力コントローラ、LC0,LC1,LC7…レーン回路、43-0,43-1,43-7…PLL回路、44-0,44-1,44-7…クロックゲーティング回路、45-1,45-2,45-7…第1回路、46-1,46-2,46-7…第2回路。