JP2023112427A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2023112427A JP2023112427A JP2022014219A JP2022014219A JP2023112427A JP 2023112427 A JP2023112427 A JP 2023112427A JP 2022014219 A JP2022014219 A JP 2022014219A JP 2022014219 A JP2022014219 A JP 2022014219A JP 2023112427 A JP2023112427 A JP 2023112427A
- Authority
- JP
- Japan
- Prior art keywords
- link
- controller
- busy signal
- memory system
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 claims description 48
- 230000007704 transition Effects 0.000 claims description 44
- 230000004044 response Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 description 22
- 238000000034 method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000010365 information processing Effects 0.000 description 10
- 230000000052 comparative effect Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000415 inactivating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】複数のリンクが利用される場合に消費電力を低減するメモリシステムを提供する。
【解決手段】メモリシステムは、第1コントローラ13ー1、第2コントローラ13-2ア及び第3コントローラ14を備える。第1コントローラは、第1ホストとメモリシステムとの間の第1リンクを動作状態と低消費電力状態の何れかに設定する。第2コントローラは、第2ホストとメモリシステムとの間の第2リンクを動作状態と低消費電力状態のいずれかに設定する。第3コントローラは、第1リンク及び第2リンクのいずれかを介したパケットの伝送が予測される場合、ビジー信号を第1コントローラ及び第2コントローラに送出する。第1コントローラは、第1リンクが低消費電力状態であり、且つ、第3コントローラに伝送されるデータを含むパケットが第1リンクを介して受信されていない場合、ビジー信号を無効化することによって、第1リンクを低消費電力状態に維持する。
【選択図】図4
【解決手段】メモリシステムは、第1コントローラ13ー1、第2コントローラ13-2ア及び第3コントローラ14を備える。第1コントローラは、第1ホストとメモリシステムとの間の第1リンクを動作状態と低消費電力状態の何れかに設定する。第2コントローラは、第2ホストとメモリシステムとの間の第2リンクを動作状態と低消費電力状態のいずれかに設定する。第3コントローラは、第1リンク及び第2リンクのいずれかを介したパケットの伝送が予測される場合、ビジー信号を第1コントローラ及び第2コントローラに送出する。第1コントローラは、第1リンクが低消費電力状態であり、且つ、第3コントローラに伝送されるデータを含むパケットが第1リンクを介して受信されていない場合、ビジー信号を無効化することによって、第1リンクを低消費電力状態に維持する。
【選択図】図4
Description
本発明の実施形態は、メモリシステムに関する。
情報処理装置とデバイスとを接続するためのインタフェース規格の1つとして、PCI Express(PCIe)(登録商標)規格が知られている。PCIe規格に準拠したインタフェースにより、情報処理装置とデバイスとはリンクと称される伝送経路を介して接続される。リンク上では、パケットを用いてデータが伝送される。パケットを用いて伝送されるデータは、例えば、情報処理装置からデバイスへの要求、デバイスから情報処理装置への応答、または、ユーザデータを含む。
PCIe規格では、デバイスが動作状態であってもリンクを低消費電力状態に設定可能な機能が規定されている。この機能は、Active State Power Management(ASPM)と称される。
リンクを介したパケット伝送が特定の期間無い場合、デバイスは、ASPM機能により、リンクを通常動作状態から低消費電力状態に遷移させる。PCIe規格において、通常動作状態は、例えば、リンクパワーステートL0として規定される。また、低消費電力状態は、例えば、リンクパワーステートL1として規定される。
リンクが低消費電力状態から通常動作状態に戻る場合、例えば、数マイクロ秒(μs)の遅延が発生する。この遅延によって、リンクを介したパケット伝送のパフォーマンスは低下し得る。そのため、リンクを介したパケットの伝送が予測される場合、デバイスでは、リンクが低消費電力状態に遷移しないようにするための制御が行われる。
また、デバイスは、PCIe規格に準拠したインタフェースのポートを複数備えることがある。例えば、2つのポートを備えるデバイスは、2つのリンクを介して、2つの情報処理装置それぞれとの間でパケット伝送を行うことができる。
実施形態の一つは、パケット伝送のための複数のリンクが利用される場合に消費電力を低減できるメモリシステムを提供する。
実施形態によれば、メモリシステムは、シリアルインタフェースを介して複数のホストそれぞれに接続可能である。メモリシステムは、不揮発性メモリ、第1コントローラ、第2コントローラ、および第3コントローラを具備する。第1コントローラは、第1ホストとメモリシステムとの間の第1リンクを、動作状態と、動作状態よりも消費電力が低い低消費電力状態のいずれかに設定する。第2コントローラは、第2ホストとメモリシステムとの間の第2リンクを、動作状態と低消費電力状態のいずれかに設定する。第3コントローラは、第1リンクおよび第2リンクを介して受信されるパケットに含まれるデータを用いて不揮発性メモリに対する要求を処理する。第3コントローラは、第1リンクと第2リンクのいずれかを介したパケットの伝送が予測される場合、第1コントローラと第2コントローラとにビジー信号を送出する。第1コントローラは、第1リンクが低消費電力状態であり、且つ第3コントローラに伝送されるデータを含むパケットが第1リンクを介して受信されていない場合、ビジー信号を無効化することによって、第1リンクを低消費電力状態に維持する。第1コントローラは、第1リンクが動作状態であり、且つ第3コントローラに伝送されるデータを含むパケットが第1リンクを介して受信されていない場合、ビジー信号を無効化することによって、第1リンクを介して伝送されるパケットが第1期間無いことに応じ、第1リンクを低消費電力状態に遷移させる。
以下、実施の形態について図面を参照して説明する。
まず図1を参照して、実施形態に係るメモリシステムを含む情報処理システム1の構成を説明する。情報処理システム1は、第1ホストデバイス2-1と、第2ホストデバイス2-2と、メモリシステム3とを含む。以下では、第1ホストデバイス2-1を、第1ホスト2-1と称する。第2ホストデバイス2-2を、第2ホスト2-2と称する。また、第1ホスト2-1、第2ホスト2-2を区別しない場合には、これらをホスト2と称する。なお、情報処理システム1は、3つ以上のホスト2を含んでいてもよい。
第1ホスト2-1および第2ホスト2-2それぞれは、大量且つ多様なユーザデータをメモリシステム3に保存するストレージサーバであってもよいし、パーソナルコンピュータであってもよい。
メモリシステム3は、NAND型フラッシュメモリのような不揮発性メモリにユーザデータを書き込み、不揮発性メモリからユーザデータを読み出すように構成された半導体ストレージデバイスである。メモリシステム3はストレージデバイスとも称される。メモリシステム3は、例えばソリッドステートドライブ(SSD)として実現される。
メモリシステム3は、第1ホスト2-1および第2ホスト2-2のストレージとして使用され得る。メモリシステム3は、第1ホスト2-1および第2ホスト2-2それぞれに接続される。
第1ホスト2-1および第2ホスト2-2それぞれとメモリシステム3とを接続するためのインタフェースは、PCI Express(PCIe)(登録商標)、NVM Express(NVMe)(登録商標)等の規格に準拠する。
第1ホスト2-1はPCIe PHY21-1を備える。第2ホスト2-2はPCIe PHY21-2を備える。PCIe PHY21-1,21-2は、PCIe規格で規定された物理レイヤに相当する回路である。PCIe PHY21-1,21-2は、PCIe規格に準拠した物理的な接続形式を有する。
メモリシステム3は、例えば、コントローラ4、NAND型フラッシュメモリ5、およびダイナミックランダムアクセスメモリ(DRAM)6を備える。
NAND型フラッシュメモリ5は、1つ以上のメモリチップを含む。各メモリチップは、複数のブロックを含む。1つのブロックは、データ消去動作の最小単位として機能する。ブロックは、「消去ブロック」、または「物理ブロック」と称されることもある。複数のブロックのそれぞれは、複数のページを含む。複数のページのそれぞれは、単一のワード線に接続された複数のメモリセルを含む。1つのページは、データ書き込み動作およびデータ読み出し動作の単位として機能する。なお、ワード線がデータ書き込み動作およびデータ読み出し動作の単位として機能してもよい。
各ブロックに対するプログラム/イレーズサイクル数(P/Eサイクル数)には上限があり、最大P/Eサイクル数と称される。あるブロックの1回のP/Eサイクルは、このブロック内のすべてのメモリセルを消去状態にするための消去動作と、このブロックのページそれぞれにデータを書き込む書き込み動作とを含む。
DRAM6は揮発性のメモリである。DRAM6等のRAMには、例えば、ファームウェア(FW)の格納領域、論理物理アドレス変換テーブルのキャッシュ領域が設けられる。
コントローラ4は、SoCのような回路によって実現され得る。コントローラ4はSRAMを内蔵していてもよい。この場合、メモリシステム3にDRAM6が設けられていなくてもよい。また、DRAM6がコントローラ4に内蔵されていてもよい。コントローラ4は、NAND型フラッシュメモリ5を制御するように構成されたメモリコントローラとして機能する。
コントローラ4は、NAND型フラッシュメモリ5のデータ管理およびブロック管理を実行するように構成されたフラッシュトランスレーション層(FTL)として機能してもよい。このFTLによって実行されるデータ管理には、(1)論理アドレスそれぞれとNAND型フラッシュメモリ5の物理アドレスそれぞれとの間の対応関係を示すマッピング情報の管理、および(2)ページ単位のデータ読み出し動作/データ書き込み動作とブロック単位のデータ消去動作との差異を隠蔽するための処理、が含まれる。ブロック管理には、不良ブロックの管理、ウェアレベリング、およびガベージコレクションが含まれる。
論理アドレスは、メモリシステム3の記憶領域をアドレス指定するために、ホスト2によって使用される。論理アドレスは、例えば論理ブロックアドレス(LBA)である。
論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングの管理は、例えば、論理物理アドレス変換テーブルを用いて実行される。コントローラ4は、論理物理アドレス変換テーブルを使用して、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングを特定の管理サイズ単位で管理する。ある論理アドレスに対応する物理アドレスは、この論理アドレスのユーザデータが書き込まれたNAND型フラッシュメモリ5内の物理記憶位置を示す。論理物理アドレス変換テーブルは、メモリシステム3の起動時にNAND型フラッシュメモリ5からDRAM6にロードされてもよい。
1つのページへのデータ書き込みは、1回のP/Eサイクル当たり1回のみ可能である。このため、コントローラ4は、ある論理アドレスに対応する更新ユーザデータを、この論理アドレスに対応する以前のユーザデータが格納されている物理記憶位置ではなく、別の物理記憶位置に書き込む。そして、コントローラ4は、この論理アドレスをこの別の物理記憶位置に関連付けるように論理物理アドレス変換テーブルを更新することにより、以前のユーザデータを無効化する。
コントローラ4は、例えば、ホストインタフェース(ホストI/F)11、CPU15、NANDインタフェース(NAND I/F)16、およびDRAMインタフェース(DRAM I/F)17を含む。これらホストI/F11、CPU15、NAND I/F16、およびDRAM I/F17は、バス10を介して接続されていてもよい。
CPU15は、ホストI/F11、NAND I/F16およびDRAM I/F17を制御するように構成されたプロセッサである。CPU15はNAND型フラッシュメモリ5からDRAM6にロードされたFWを実行することによって、様々な処理を行う。FWは、CPU15に様々な処理を実行させるための命令群を含む制御プログラムである。CPU15は、ホスト2からの様々なコマンドを処理するためのコマンド処理等を実行することができる。CPU15の動作は、CPU15によって実行されるFWによって制御される。
NAND I/F16は、コントローラ4とNAND型フラッシュメモリ5とを電気的に接続する。NAND I/F16は、Toggle DDR、Open NAND Flash Interface(ONFI)等のインタフェース規格に対応する。
NAND I/F16は、NAND型フラッシュメモリ5を制御するように構成されたNAND制御回路として機能する。NAND I/F16は、複数のチャネル(Ch)を介して、NAND型フラッシュメモリ5内の複数のメモリチップにそれぞれ接続されていてもよい。複数のメモリチップが並列に駆動されることにより、NAND型フラッシュメモリ5全体に対するアクセスを広帯域化することができる。
DRAM I/F17は、DRAM6へのアクセスを制御するように構成されたDRAM制御回路として機能する。
ホストI/F11は、メモリシステム3と複数のホスト2-1,2-2それぞれとの間の通信を行うインタフェースとして機能する回路である。ホストI/F11は、第1ホスト2-1および第2ホスト2-2それぞれからパケットを受信するための回路を含む。パケットは、例えば、PCIe規格に準拠したパケットである。受信されるパケットは、様々なコマンド、例えば、入出力(I/O)コマンド、各種制御コマンドを含む。
また、ホストI/F11は、第1ホスト2-1および第2ホスト2-2それぞれにパケットを送信するための回路を含む。送信されるパケットは、例えば、コマンドに対する応答やユーザデータを含む。
ホストI/F11は、例えば、PCIe PHY12-1,12-2、PCIeリンクコントローラ13-1,13-2、およびNVMeコントローラ14を備える。
PCIe PHY12-1,12-2は、PCIe規格で規定された物理レイヤに相当する回路である。PCIe PHY12-1,12-2は、例えば、PCIe規格に準拠した物理的な接続形式を有する。
PCIe PHY12-1は、シリアルインタフェースを介して、例えば、第1ホスト2-1のPCIe PHY21-1と接続される。このシリアルインタフェースは、PCIe PHY12-1とPCIe PHY21-1とを相互接続可能なリンク31(以下、第1リンク31と称する)を含む。PCIe PHY12-1およびPCIe PHY21-1は、第1リンク31を介してデータを物理的に送受信するインタフェース動作を行う。
PCIe PHY12-2は、シリアルインタフェースを介して、例えば、第2ホスト2-2のPCIe PHY21-2と接続される。このシリアルインタフェースは、PCIe PHY12-2とPCIe PHY21-2とを相互接続可能なリンク32(以下、第2リンク32と称する)を含む。PCIe PHY12-2およびPCIe PHY21-2は、第2リンク32を介してデータを物理的に送受信するインタフェース動作を行う。第1リンク31および第2リンク32それぞれでは、パケットの形態でデータが伝送される。
PCIeリンクコントローラ13-1は、第1リンク31を管理し、PCIe PHY12-1とNVMeコントローラ14との間でデータをやり取りするための処理を行う回路である。より具体的には、PCIeリンクコントローラ13-1は、第1リンク31およびPCIe PHY12-1を介して第1ホスト2-1からパケットを受信する。PCIeリンクコントローラ13-1は、パケットを処理して、例えば、NVMeコントローラ14に送出されるべきデータを取得する。PCIeリンクコントローラ13-1は、取得されたデータをNVMeコントローラ14に送出する。NVMeコントローラ14に送出されるべきデータは、例えば、NAND型フラッシュメモリ5へのアクセスに関連するデータである。より詳しくは、NVMeコントローラ14に送出されるべきデータは、例えば、NAND型フラッシュメモリ5に対する書き込み要求、読み出し要求、およびVendor Defined Message(VDM)である。
PCIeリンクコントローラ13-2は、第2リンク32を管理し、PCIe PHY12-2とNVMeコントローラ14との間でデータをやり取りするための処理を行う回路である。より具体的には、PCIeリンクコントローラ13-2は、第2リンク32およびPCIe PHY12-2を介して第2ホスト2-2からパケットを受信する。PCIeリンクコントローラ13-2は、パケットを処理して、例えば、NVMeコントローラ14に送出されるべきデータを取得する。PCIeリンクコントローラ13-2は、取得されたデータをNVMeコントローラ14に送出する。
NVMeコントローラ14は、NAND型フラッシュメモリ5に対する書き込み要求、読み出し要求、またはVDMのようなトランザクションを処理する回路である。NVMeコントローラ14は、PCIe PHY12-1およびPCIeリンクコントローラ13-1を介して受信したデータに含まれる要求に応じた動作と、PCIe PHY12-2およびPCIeリンクコントローラ13-2を介して受信したデータに含まれる要求に応じた動作と、PCIe PHY12-1およびPCIeリンクコントローラ13-1を介して要求に対する応答を含むデータを送信するための動作と、PCIe PHY12-2およびPCIeリンクコントローラ13-2を介して要求に対する応答を含むデータを送信するための動作とを行う。NVMeコントローラ14による動作は、例えば、NVMe規格に準拠する。
このように、PCIe PHY12-1、PCIeリンクコントローラ13-1、およびNVMeコントローラ14は、第1ホスト2-1とメモリシステム3との間のデータ伝送を制御する。また、PCIe PHY12-2、PCIeリンクコントローラ13-2、およびNVMeコントローラ14は、第2ホスト2-2とメモリシステム3との間のデータ伝送を制御する。つまり、メモリシステム3は、第1ホスト2-1とデータ伝送を行うためのポート(以下、ポート0とも称する)と、第2ホスト2-2とデータ伝送を行うためのポート(以下、ポート1とも称する)とを備えている。
なお、コントローラ4内の各部の機能は、コントローラ4内の専用ハードウェアによって実現されてもよいし、CPU15がFWを実行することによって実現されてもよい。
ここで、リンクに対して設定されるリンクパワーステートについて説明する。リンクパワーステートは、リンクに対して設定される電力状態である。リンクパワーステートは、例えば、PCIe規格で規定されたASPM機能によって設定される。ASPM機能は、デバイス(例えば、メモリシステム3)が動作状態であってもリンクを低消費電力状態に設定可能な機能である。リンクパワーステートとして、例えば、リンクパワーステートL0とリンクパワーステートL1がある。リンクパワーステートL0は、通常動作状態(アクティブ状態)である。リンクパワーステートL1は、低消費電力状態(インアクティブ状態)である。リンクパワーステートL1は、ASPM L1とも称される。
リンクパワーステートL1に遷移したリンクがリンクパワーステートL0に戻る場合、例えば、数マイクロ秒の遅延(exit latency)が発生する。この遅延によって、リンクを介したパケット伝送のパフォーマンスは低下し得る。そのため、デバイスでは、リンクを介したパケットの伝送が予測される場合、リンクがリンクパワーステートL1に遷移しないようにするための制御が行われる。
リンクパワーステートの制御例について、第1および第2比較例を用いて説明する。
(第1比較例)
第1比較例に係るメモリシステムは、1つのホストとのデータ伝送を行う。
第1比較例に係るメモリシステムは、1つのホストとのデータ伝送を行う。
図2は、第1比較例のメモリシステム3Aにおいて、ホスト2Aとのリンク31AがリンクパワーステートL0(通常動作状態)に維持される動作の例を示す。
メモリシステム3Aは、1つのホスト2Aと接続するための1つのポートを有する。具体的には、メモリシステム3Aは、PCIe PHY12A、PCIeリンクコントローラ13A、およびNVMeコントローラ14Aを備える。
PCIe PHY12Aは、シリアルインタフェースを介して、ホスト2AのPCIe PHY21Aに接続される。このシリアルインタフェースは、PCIe PHY12AとPCIe PHY21Aとを相互接続可能なリンク31Aを含む。
PCIeリンクコントローラ13Aは、PCIe PHY12AとPCIe PHY21Aとのリンク31Aを管理し、PCIe PHY12AとNVMeコントローラ14Aとの間でデータをやり取りするための処理を行う。
NVMeコントローラ14Aは、PCIe PHY12AおよびPCIeリンクコントローラ13Aを介して受信したデータに含まれるコマンドに応じた動作と、PCIe PHY12AおよびPCIeリンクコントローラ13Aを介してコマンドに対する応答を含むデータを送信するための動作とを行う。
このように、PCIe PHY12A、PCIeリンクコントローラ13A、およびNVMeコントローラ14Aは、ホスト2Aとメモリシステム3Aとの間のデータ伝送を制御する。
ここで、メモリシステム3Aにおいてリンクパワーステートを制御する構成について説明する。
PCIeリンクコントローラ13Aは、ASPM L1タイマ/コントローラ131Aを備える。
ASPM L1タイマ/コントローラ131Aは、ASPM機能を有する回路である。ASPM L1タイマ/コントローラ131Aは、ASPM機能により、リンク31Aのリンクパワーステートを制御する。より具体的には、ASPM L1タイマ/コントローラ131Aは、リンク31AがリンクパワーステートL0に設定されている場合、リンク31Aを介して伝送されるパケットが無い状態が継続した時間を計測するタイマとして機能し得る。計測された時間が閾値を上回った場合(すなわち、タイマが満了した場合)、ASPM L1タイマ/コントローラ131Aは、リンク31AをリンクパワーステートL0からリンクパワーステートL1に遷移させる。これにより、リンク31Aは低消費電力状態になる。
NVMeコントローラ14Aは、リンク31Aを介したパケットの伝送が予測される場合、ビジー(busy)信号をASPM L1タイマ/コントローラ131Aに送出する。ビジー信号は、NVMeコントローラ14Aがビジー状態であることを示す。ビジー状態であるNVMeコントローラ14Aは、リンク31Aを介したパケットの伝送を予測している。
ASPM L1タイマ/コントローラ131Aは、リンク31AがリンクパワーステートL1に設定されている間に、NVMeコントローラ14Aによってビジー信号が送出された場合、リンク31AをリンクパワーステートL0に遷移させる。また、ASPM L1タイマ/コントローラ131Aは、リンク31AがリンクパワーステートL0に設定され、且つNVMeコントローラ14Aによってビジー信号が送出されている間(すなわち、ビジー信号がアクティブである間)、リンク31Aを介したパケット伝送が行われていない状態が継続した時間を計測しない。したがって、NVMeコントローラ14Aによってビジー信号が送出されている間、ASPM L1タイマ/コントローラ131Aが、リンク31AをリンクパワーステートL0からリンクパワーステートL1に遷移させることはない。
このようなビジー信号に応じたASPM L1タイマ/コントローラ131Aの動作により、リンク31Aを介したパケットの伝送が予測される場合に、リンク31AはリンクパワーステートL0からリンクパワーステートL1に遷移しない。そのため、ビジー信号を受信している間のASPM L1タイマ/コントローラ131Aの動作では、リンクパワーステートL0に設定されたリンク31AがリンクパワーステートL1に遷移し、リンクパワーステートL1に設定されたリンク31AがリンクパワーステートL0に戻る動作は発生しない。よって、リンクパワーステートL1からリンクパワーステートL0への遷移による遅延は発生しない。したがって、リンク31Aを介したパケットの伝送が予測される場合に、リンク31Aを介したパケット伝送におけるパフォーマンスの低下を防止できる。
(第2比較例)
第2比較例に係るメモリシステムは、2つのホストそれぞれとのデータ伝送を行う。
第2比較例に係るメモリシステムは、2つのホストそれぞれとのデータ伝送を行う。
図3は、第2比較例に係るメモリシステム3Bにおける、ホスト2-1Bとのリンク31Bとホスト2-2Bとのリンク31BのいずれもがリンクパワーステートL0(通常動作状態)に維持される動作の例を示す。
メモリシステム3Bは、2つのホスト2-1Bおよび2-2Bとそれぞれ接続するための2つのポートを有する。具体的には、メモリシステム3Bは、PCIe PHY12-1Bおよび12-2B、PCIeリンクコントローラ13-1Bおよび13-2B、並びにNVMeコントローラ14Bを備える。
PCIe PHY12-1Bは、シリアルインタフェースを介して、ホスト2-1BのPCIe PHY21-1Bに接続される。このシリアルインタフェースは、PCIe PHY12-1BとPCIe PHY21-1Bとを相互接続可能なリンク31B(以下、第1リンク31Bと称する)を含む。
PCIe PHY12-2Bは、シリアルインタフェースを介して、ホスト2-2BのPCIe PHY21-2Bに接続される。このシリアルインタフェースは、PCIe PHY12-2BとPCIe PHY21-2Bとを相互接続可能なリンク32B(以下、第2リンク32Bと称する)を含む。
PCIeリンクコントローラ13-1Bは、第1リンク31Bを管理し、PCIe PHY12-1BとNVMeコントローラ14Bとの間でデータをやり取りするための処理を行う。
PCIeリンクコントローラ13-2Bは、第2リンク32Bを管理し、PCIe PHY12-2BとNVMeコントローラ14Bとの間でデータをやり取りするための処理を行う。
NVMeコントローラ14Bは、PCIe PHY12-1BおよびPCIeリンクコントローラ13-1Bと、PCIe PHY12-2BおよびPCIeリンクコントローラ13-2Bのいずれかを介して受信したデータに含まれるコマンドに応じた動作と、PCIe PHY12-1BおよびPCIeリンクコントローラ13-1Bと、PCIe PHY12-2BおよびPCIeリンクコントローラ13-2Bのいずれかを介してコマンドに対する応答を含むデータを送信するための動作とを行う。
このように、PCIe PHY12-1B、PCIeリンクコントローラ13-1B、およびNVMeコントローラ14Bは、ホスト2-1Bとメモリシステム3Bとの間のデータ伝送を制御する。PCIe PHY12-2B、PCIeリンクコントローラ13-2B、およびNVMeコントローラ14Bは、ホスト2-2Bとメモリシステム3Bとの間のデータ伝送を制御する。
ここで、メモリシステム3Bにおいてリンクパワーステートを制御する構成について説明する。
PCIeリンクコントローラ13-1Bは、ASPM L1タイマ/コントローラ131-1Bを備える。
ASPM L1タイマ/コントローラ131-1Bは、第1リンク31Bのリンクパワーステートを制御するASPM機能を有する回路である。より具体的には、ASPM L1タイマ/コントローラ131-1Bは、第1リンク31BがリンクパワーステートL0に設定されている場合、第1リンク31Bを介して伝送されるパケットが無い状態が継続した時間を計測するタイマとして機能し得る。計測された時間が閾値を上回った場合、ASPM L1タイマ/コントローラ131-1Bは、第1リンク31BのリンクパワーステートをリンクパワーステートL0からリンクパワーステートL1に遷移させる。これにより、第1リンク31Bは低消費電力状態になる。
PCIeリンクコントローラ13-2Bは、ASPM L1タイマ/コントローラ131-2Bを備える。ASPM L1タイマ/コントローラ131-2Bは、ASPM L1タイマ/コントローラ131-1Bと同様にして、第2リンク32Bのリンクパワーステートを制御する。
NVMeコントローラ14Bは、リンク31Bまたは32Bを介したパケットの伝送が予測される場合、ビジー信号をASPM L1タイマ/コントローラ131-1BとASPM L1タイマ/コントローラ131-2Bの両方に送出する。ビジー信号は、NVMeコントローラ14Bがビジー状態であることを示す。ビジー状態であるNVMeコントローラ14Bは、リンク31Bまたは32Bを介したパケットの伝送を予測している。
ASPM L1タイマ/コントローラ131-1Bは、第1リンク31BがリンクパワーステートL1に設定されている間に、NVMeコントローラ14Bによってビジー信号が送出された場合、第1リンク31BをリンクパワーステートL0に遷移させる。また、ASPM L1タイマ/コントローラ131-1Bは、第1リンク31BがリンクパワーステートL0に設定され、且つNVMeコントローラ14Bによってビジー信号が送出されている間、第1リンク31Bを介したパケット伝送が行われていない状態が継続した時間を計測しない。したがって、NVMeコントローラ14Bによってビジー信号が送出されている間、ASPM L1タイマ/コントローラ131-1Bが、第1リンク31BをリンクパワーステートL0からリンクパワーステートL1に遷移させることはない。
ASPM L1タイマ/コントローラ131-2Bは、第2リンク32BがリンクパワーステートL1に設定されている間に、NVMeコントローラ14Bによってビジー信号が送出された場合、第2リンク32BをリンクパワーステートL0に遷移させる。また、ASPM L1タイマ/コントローラ131-2Bは、第2リンク32BがリンクパワーステートL0に設定され、且つNVMeコントローラ14Bによってビジー信号が送出されている間、第2リンク32Bを介したパケット伝送が行われていない状態が継続した時間を計測しない。したがって、NVMeコントローラ14Bによってビジー信号が送出されている間、ASPM L1タイマ/コントローラ131-2Bが、第2リンク32BをリンクパワーステートL0からリンクパワーステートL1に遷移させることはない。
このようなビジー信号に応じたASPM L1タイマ/コントローラ131-1Bおよび131-2Bの動作により、リンク31Bまたは32Bを介したパケットの伝送が予測される場合に、リンク31Bおよび32BはいずれもリンクパワーステートL0からリンクパワーステートL1に遷移しない。そのため、ビジー信号に応じたASPM L1タイマ/コントローラ131-1Bの動作では、リンクパワーステートL0に設定されたリンク31BがリンクパワーステートL1に遷移して、リンクパワーステートL0に戻る動作は発生しない。また、ビジー信号に応じたASPM L1タイマ/コントローラ131-2Bの動作では、リンクパワーステートL0に設定されたリンク32BがリンクパワーステートL1に遷移して、リンクパワーステートL0に戻る動作は発生しない。よって、リンクパワーステートL1からリンクパワーステートL0への遷移による遅延は発生しない。したがって、リンク31Bまたは32Bを介したパケットの伝送が予測される場合に、リンク31Bまたは32Bを介したパケット伝送におけるパフォーマンスの低下を防止できる。
なお、NVMeコントローラ14Bは、発生が予測されるパケット伝送が第1リンク31Bと第2リンク32Bのいずれを介したものであるかを判別しないように構成されている。そのため、NVMeコントローラ14Bは、発生が予測されるパケット伝送が第1リンク31Bと第2リンク32Bのいずれか一方を介するものであったとしても、ASPM L1タイマ/コントローラ131-1BとASPM L1タイマ/コントローラ131-2Bの両方にビジー信号を送出する。
ASPM L1タイマ/コントローラ131-1BとASPM L1タイマ/コントローラ131-2Bの両方にビジー信号が送出されるので、メモリシステム3Bでは、発生が予測されるパケット伝送が2つのリンク31Bおよび32Bの一方のリンクを介するものであり、且つ他方のリンクを介するものでない場合に、一方のリンクだけでなく他方のリンクも、リンクパワーステートL0からリンクパワーステートL1に遷移しない。
例えば、発生が予測されるパケット伝送が第1リンク31Bを介するものであり、且つ第2リンク32Bを介するものでない場合、ビジー信号に応じたASPM L1タイマ/コントローラ131-2Bの動作によって、第2リンク32Bを介して伝送されるパケットが特定の期間無いにも関わらず、第2リンク32BはリンクパワーステートL0からリンクパワーステートL1に遷移しない。そのため、第2リンク32BがリンクパワーステートL1に遷移することによる消費電力の低減が得られない。
これに対して、本実施形態のメモリシステム3では、2つのホスト2-1および2-2それぞれからNVMeコントローラ14に伝送されるデータを含むパケットが検出されたか否かに応じて、NVMeコントローラ14から送出されたビジー信号を有効化または無効化する回路(以下、ビジー信号制御回路と称する)が、2つのPCIeリンクコントローラ13-1および13-2それぞれに設けられる。メモリシステム3では、ビジー信号制御回路によって有効化または無効化されたビジー信号に基づいて、2つのリンク31および32それぞれのリンクパワーステートが制御される。これにより、メモリシステム3では、発生が予測されるパケット伝送が2つのリンク31および32の一方のリンクを介するものであり、且つ他方のリンクを介するものでない場合、その他方のリンクがリンクパワーステートL0からリンクパワーステートL1に遷移し得る。したがって、その他方のリンクがリンクパワーステートL1に遷移することによって消費電力を低減できる。
図4を参照して、本実施形態のメモリシステム3においてリンクパワーステートを制御する構成の例を具体的に説明する。
PCIeリンクコントローラ13-1は、ASPM L1タイマ/コントローラ131-1とビジー信号制御回路132-1とを含む。PCIeリンクコントローラ13-2は、ASPM L1タイマ/コントローラ131-2とビジー信号制御回路132-2とを含む。
NVMeコントローラ14は、リンク31および32のいずれかを介したパケットの伝送が予測される場合、PCIeリンクコントローラ13-1とPCIeリンクコントローラ13-2とにビジー信号を送出する。なお、ビジー信号を送出することを、ビジー信号をアクティブにするとも云う。また、ビジー信号を送出しないことを、ビジー信号をインアクティブにするとも云う。例えば、NVMeコントローラ14は、ホスト2-1および2-2から受け付けた全ての要求に対する処理が完了していない場合(例えば、要求に対する応答を全て返していない場合)、ビジー信号を送出する。NVMeコントローラ14によって送出されたビジー信号は、ASPM L1タイマ/コントローラ131-1および131-2ではなく、ビジー信号制御回路132-1および132-2によって受信される。ビジー信号は、NVMeコントローラ14がビジー状態であることを示す。ビジー状態であるNVMeコントローラ14は、リンク31および32のいずれかを介したパケットの伝送を予測している。
NVMeコントローラ14は、例えば、第1ホスト2-1から第1リンク31を介して伝送されたパケットに含まれるデータをPCIeリンクコントローラ13-1から受け取った場合に、あるいは第2ホスト2-2から第2リンク32を介して伝送されたパケットに含まれるデータをPCIeリンクコントローラ13-2から受け取った場合に、リンク31および32のいずれかを介したパケットの伝送を予測する。なお、NVMeコントローラ14では、発生が予測されるパケット伝送が第1リンク31と第2リンク32のいずれを介したものであるかは判別されない。
NVMeコントローラ14は、リンク31を介したパケットの伝送およびリンク32を介したパケットの伝送のいずれもが予測されない場合、PCIeリンクコントローラ13-1およびPCIeリンクコントローラ13-2のいずれもにビジー信号を送出しない。例えば、NVMeコントローラ14は、ホスト2-1および2-2から受け付けた全ての要求に対する処理が完了した場合(例えば、要求に対する応答を全て返した場合)、ビジー信号の送出を終了する。すなわち、ビジー信号をアクティブからインアクティブにする。
ビジー信号制御回路132-1は、第1ホスト2-1から第1リンク31を介してNVMeコントローラ14に伝送されるデータを含むパケットが検出されたか否かに応じて、NVMeコントローラ14によって送出されたビジー信号を有効化または無効化する回路である。以下では、第1ホスト2-1と第2ホスト2-2のいずれかからNVMeコントローラ14に伝送されるデータを含むパケットを、対象パケットとも称する。
ビジー信号制御回路132-1は対象パケットを検出する。より具体的には、ビジー信号制御回路132-1は、PCIeリンクコントローラ13-1が第1リンク31およびPCIe PHY12-1を介してパケットを受信した場合に、例えば、そのパケットがNVMeコントローラ14に送出されるべきデータを含むか否かを判定する。パケットがNVMeコントローラ14に送出されるべきデータを含んでいる場合、ビジー信号制御回路132-1は、そのパケットを対象パケットとして検出する。
あるいは、ビジー信号制御回路132-1は、PCIeリンクコントローラ13-1がパケットを受信した場合に、そのパケットがNAND型フラッシュメモリ5へのアクセスに関連するデータを含むか否かを判定してもよい。この場合、ビジー信号制御回路132-1は、NAND型フラッシュメモリ5へのアクセスに関連するデータを含むパケットを対象パケットとして検出する。
NAND型フラッシュメモリ5へのアクセスに関連するデータは、例えば、第1リンク31を介したパケット伝送を後に発生させるタイプのデータである。第1リンク31を介したパケット伝送を後に発生させるタイプのデータは、例えば、NAND型フラッシュメモリ5に対する書き込み要求、読み出し要求、またはVDMである。ビジー信号制御回路132-1は、第1リンク31を介したパケット伝送を後に発生させるタイプのデータを含むパケットを、対象パケットとして検出してもよい。この場合、ビジー信号制御回路132-1は、第1リンク31を介したパケット伝送が後に発生する場合のみにビジー信号を有効化できる。
ビジー信号制御回路132-1は対象パケットを検出した場合、ビジー信号を有効化する。つまり、対象パケットを検出した場合、ビジー信号制御回路132-1は、NVMeコントローラ14によって送出されたビジー信号をそのままASPM L1タイマ/コントローラ131-1に送出する。
より詳しくは、ビジー信号制御回路132-1は、対象パケットを検出した後に、NVMeコントローラ14によって送出されるビジー信号がインアクティブからアクティブに変化した場合、ビジー信号を有効化するように動作する。また、ビジー信号制御回路132-1は対象パケットを検出した場合に、NVMeコントローラ14によって送出されるビジー信号が既にアクティブである場合にも、ビジー信号を有効化するように動作する。その後、ビジー信号がアクティブからインアクティブに変化したならば、ビジー信号制御回路132-1は状態をリセットする。状態がリセットされたビジー信号制御回路132-1は、ビジー信号を無効化するように動作する。
一方、対象パケットを検出していない場合、ビジー信号制御回路132-1はビジー信号を無効化する。つまり、対象パケットを検出していない場合、ビジー信号制御回路132-1は、NVMeコントローラ14によって送出されたビジー信号をASPM L1タイマ/コントローラ131-1に送出しない。
ASPM L1タイマ/コントローラ131-1は、ASPM機能を有する回路である。ASPM L1タイマ/コントローラ131-1は、ASPM機能により、第1リンク31のリンクパワーステートを制御する。
具体的には、ASPM L1タイマ/コントローラ131-1は、第1リンク31がリンクパワーステートL0に設定されている場合、第1リンク31を介して伝送されるパケットが無い状態が継続した時間を計測するタイマとして機能し得る。計測された時間が閾値を上回った場合、ASPM L1タイマ/コントローラ131-1は、第1リンク31をリンクパワーステートL0からリンクパワーステートL1に遷移させる。これにより、第1リンク31は低消費電力状態になる。
なお、第1リンク31を低消費電力状態にすることは、第1リンク31の管理および制御を行うメモリシステム3内の構成の少なくとも一部が低消費電力状態で動作することを含む。また、第1リンク31を通常動作状態にすることは、第1リンク31の管理および制御を行うメモリシステム3内の構成が通常動作状態で動作することを含む。第1リンク31の管理および制御を行うメモリシステム3内の構成は、例えば、PCIe PHY12-1とPCIeリンクコントローラ13-1である。
ASPM L1タイマ/コントローラ131-1は、第1リンク31がリンクパワーステートL1に設定されている間に、ビジー信号制御回路132-1からビジー信号を受け取った場合、第1リンク31をリンクパワーステートL0に遷移させる。なお、第1リンク31がリンクパワーステートL1に設定されている間に、ASPM L1タイマ/コントローラ131-1がビジー信号を受け取らなければ、第1リンク31はリンクパワーステートL1に維持される。ASPM L1タイマ/コントローラ131-1は、NVMeコントローラ14がビジー信号を送出していないか、あるいはNVMeコントローラ14によって送出されたビジー信号をビジー制御回路132-1が無効化している場合に、ビジー信号を受け取らない。
ASPM L1タイマ/コントローラ131-1は、第1リンク31がリンクパワーステートL0に設定され、且つビジー信号制御回路132-1からビジー信号を受け取っている間、第1リンク31を介したパケット伝送が行われていない状態が継続した時間を計測しない。したがって、ビジー信号制御回路132-1によってビジー信号が送出されている間、ASPM L1タイマ/コントローラ131-1が、第1リンク31をリンクパワーステートL0からリンクパワーステートL1に遷移させることはない。
ASPM L1タイマ/コントローラ131-1は、第1リンク31がリンクパワーステートL0に設定され、且つビジー信号制御回路132-1からビジー信号を受け取っていない間、第1リンク31を介して伝送されるパケットが無い状態が継続した時間を計測する。計測された時間が閾値を上回った場合、ASPM L1タイマ/コントローラ131-1は、第1リンク31をリンクパワーステートL0からリンクパワーステートL1に遷移させる。これにより、NVMeコントローラ14がビジー信号を送出していない場合だけでなく、NVMeコントローラ14によって送出されたビジー信号を、ビジー信号制御回路132-1が無効化している場合にも、ASPM L1タイマ/コントローラ131-1は、第1リンク31を介して伝送されるパケットが無い状態が継続した時間が閾値を上回ったならば、第1リンク31をリンクパワーステートL1に遷移させることができる。
したがって、ビジー信号制御回路132-1によって対象パケットが検出されていない場合に、すなわち、発生が予測されるパケット伝送が第2リンク32を介するものであり、且つ第1リンク31を介するものでない場合に、第1リンク31がリンクパワーステートL1である期間を延ばすこと、および第1リンク31がリンクパワーステートL1に遷移する可能性を高めることができる。これにより、複数のリンク31および32が利用される場合に消費電力を低減できる。
なお、PCIeリンクコントローラ13-2内のビジー信号制御回路132-2およびASPM L1タイマ/コントローラ131-2と、NVMeコントローラ14とによる第2リンク32に対する動作は、前述したPCIeリンクコントローラ13-1内のビジー信号制御回路132-1およびASPM L1タイマ/コントローラ131-1と、NVMeコントローラ14とによる第1リンク31に対する動作と同様である。
図5および図6を参照して、メモリシステム3において、2つのリンク31および32のリンクパワーステートが制御される具体的な例を説明する。
図5は、第1リンク31(ポート0)がリンクパワーステートL1からリンクパワーステートL0に遷移し、第2リンク32(ポート1)がリンクパワーステートL1に維持される動作の例を示す。この動作の開始時点において、第1リンク31と第2リンク32とは共にリンクパワーステートL1に設定されている(図5中の(1))。なお、この開始時点において、NVMeコントローラ14によって送出されるビジー信号は、アクティブであってもよいし、インアクティブであってもよい。
第1ホスト2-1は、メモリシステム3に送信されるべきデータが生じたことに応じて、第1リンク31をリンクパワーステートL0に遷移させるための遷移シーケンスを実行する(図5中の(2))。この遷移シーケンスは、例えば、第1ホスト2-1とメモリシステム3との間のクロック信号の同期のような、第1リンク31を利用可能にするためのトレーニング処理を含む。
PCIeリンクコントローラ13-1は、遷移シーケンスが実行されたことによって、第1リンク31をリンクパワーステートL0に遷移させる(図5中の(3))。
第1ホスト2-1は、第1リンク31がリンクパワーステートL0に遷移した後、メモリシステム3に送信されるべきデータを含むパケットを、第1リンク31を介してメモリシステム3に送信する(図5中の(4))。
PCIeリンクコントローラ13-1は、PCIe PHY12-1を介してパケットを受信する。PCIeリンクコントローラ13-1は、受信したパケットを処理して、例えば、NVMeコントローラ14に送出されるべきデータを取得する。PCIeリンクコントローラ13-1は、取得されたデータをNVMeコントローラ14に送出する。
ビジー信号制御回路132-1は、第1ホスト2-1から第1リンク31を介してNVMeコントローラ14に伝送されるデータを含むパケット(対象パケット)を検出する(図5中の(5))。ビジー信号制御回路132-1は、例えば、PCIeリンクコントローラ13-1によって受信されたパケットが、NVMeコントローラ14に送出されるべきデータを含む場合、そのパケットを対象パケットとして検出する。
NVMeコントローラ14は、PCIeリンクコントローラ13-1によって送出されたパケット内のデータを受け取る。NVMeコントローラ14は、受け取ったデータに基づいて、リンク31または32を介したパケットの伝送が予測されるか否かを判定する。ここでは、リンク31または32を介したパケットの伝送が予測される場合を想定する。この場合、NVMeコントローラ14はビジー信号をアクティブにする(図5中の(6))。なお、ビジー信号が既にアクティブであった場合、NVMeコントローラ14はビジー信号をアクティブに維持する。アクティブであるビジー信号は、ビジー信号制御回路132-1とビジー信号制御回路132-2とによって受信される。
ビジー信号制御回路132-1は、対象パケットを検出したので、NVMeコントローラ14から受信したビジー信号を有効化する(図5中の(7-1))。つまり、ビジー信号制御回路132-1は、ビジー信号をASPM L1タイマ/コントローラ131-1に送出する。
ASPM L1タイマ/コントローラ131-1は、ビジー信号を受信しているので、第1リンク31をリンクパワーステートL0に維持する(図5中の(8-1))。
このように、ビジー信号制御回路132-1は対象パケットを検出した場合にビジー信号を有効化するので、ASPM L1タイマ/コントローラ131-1の動作によって、第1リンク31はリンクパワーステートL1に遷移しない。したがって、第1リンク31をリンクパワーステートL1からリンクパワーステートL0に戻すことによる遅延を防止できる。
一方、ビジー信号制御回路132-2は、対象パケットを検出していないので、NVMeコントローラ14から受信したビジー信号を無効化する(図5中の(7-2))。つまり、ビジー信号制御回路132-2は、ビジー信号をASPM L1タイマ/コントローラ131-2に送出しない。
ASPM L1タイマ/コントローラ131-2は、ビジー信号を受信していないので、第2リンク32をリンクパワーステートL1に維持する(図5中の(8-2))。
このように、ビジー信号制御回路132-2は対象パケットを検出していない場合にビジー信号を無効化するので、ASPM L1タイマ/コントローラ131-2の動作によって、第2リンク32はリンクパワーステートL0に遷移しない。つまり、第2リンク32はリンクパワーステートL1に維持される。したがって、リンク31または32を介したパケットの伝送を予測したNVMeコントローラ14がビジー信号を送出することによる、第2リンク32のリンクパワーステートL0への遷移することを防止できる。よって、ビジー信号を無効化するビジー信号制御回路132-2が設けられない場合と比較して、第2リンク32がリンクパワーステートL1に維持される期間を延ばすことができる。これにより、消費電力を低減できる。
図6は、第1リンク31がリンクパワーステートL0に維持され、第2リンク32がリンクパワーステートL0からリンクパワーステートL1に遷移する動作の例を示す。この動作の開始時点において、第1リンク31と第2リンク32とは共にリンクパワーステートL0に設定され、NVMeコントローラ14によって送出されるビジー信号はインアクティブである(図6中の(1))。
第1ホスト2-1は、メモリシステム3に送信されるべきデータを含むパケットを、第1リンク31を介してメモリシステム3に送信する(図6中の(2))。
PCIeリンクコントローラ13-1は、PCIe PHY12-1を介してパケットを受信する。PCIeリンクコントローラ13-1は、受信したパケットを処理して、例えば、NVMeコントローラ14に送出されるべきデータを取得する。PCIeリンクコントローラ13-1は、取得されたデータをNVMeコントローラ14に送出する。
ビジー信号制御回路132-1は、第1ホスト2-1から第1リンク31を介してNVMeコントローラ14に伝送されるデータを含むパケット(対象パケット)を検出する(図6中の(3))。ビジー信号制御回路132-1は、例えば、PCIeリンクコントローラ13-1によって受信されたパケットが、NVMeコントローラ14に送出されるべきデータを含む場合、そのパケットを対象パケットとして検出する。
NVMeコントローラ14は、PCIeリンクコントローラ13-1によって送出されたパケット内のデータを受け取る。NVMeコントローラ14は、受け取ったデータに基づいて、リンク31または32を介したパケットの伝送が予測されるか否かを判定する。ここでは、リンク31または32を介したパケットの伝送が予測される場合を想定する。この場合、NVMeコントローラ14はビジー信号をアクティブにする(図6中の(4))。アクティブにされたビジー信号は、ビジー信号制御回路132-1とビジー信号制御回路132-2とによって受信される。
ビジー信号制御回路132-1は、対象パケットを検出したので、NVMeコントローラ14から受信したビジー信号を有効化する(図6中の(5-1))。つまり、ビジー信号制御回路132-1は、ビジー信号をASPM L1タイマ/コントローラ131-1に送出する。
ASPM L1タイマ/コントローラ131-1は、ビジー信号を受信しているので、第1リンク31をリンクパワーステートL0に維持する(図6中の(6-1))。
このように、ビジー信号制御回路132-1は対象パケットを検出した場合にビジー信号を有効化するので、ASPM L1タイマ/コントローラ131-1の動作によって、第1リンク31はリンクパワーステートL1に遷移しない。したがって、第1リンク31をリンクパワーステートL1からリンクパワーステートL0に戻すことによる遅延を防止できる。
一方、ビジー信号制御回路132-2は、対象パケットを検出していないので、NVMeコントローラ14から受信したビジー信号を無効化する(図6中の(5-2))。つまり、ビジー信号制御回路132-2は、ビジー信号をASPM L1タイマ/コントローラ131-2に送出しない。
ASPM L1タイマ/コントローラ131-2は、ビジー信号を受信していないので、第2リンク32を介して伝送されるパケットが無い状態が継続した時間の計測を維持する。そして、ASPM L1タイマ/コントローラ131-2は、計測された時間が閾値を上回った場合、第2リンク32をリンクパワーステートL0からリンクパワーステートL1に遷移させる(図6中の(6-2))。
このように、ビジー信号制御回路132-2は対象パケットを検出していない場合にビジー信号を無効化するので、ASPM L1タイマ/コントローラ131-2は、第2リンク32をリンクパワーステートL1に遷移させ得る。つまり、NVMeコントローラ14がリンク31または32を介したパケット伝送を予測して、ビジー信号を送出した場合にも、ASPM L1タイマ/コントローラ131-2は、第2リンク32をリンクパワーステートL1に遷移させ得る。よって、ビジー信号を無効化するビジー信号制御回路132-2が設けられない場合と比較して、第2リンク32がリンクパワーステートL1に遷移する可能性が高まるので、消費電力を低減できる。
以上説明したように、本実施形態によれば、パケット伝送のための複数のリンクが利用される場合に消費電力を低減できる。PCIeリンクコントローラ13-1は、第1ホスト2-1とメモリシステム3との間の第1リンク31を、動作状態と、動作状態よりも消費電力が低い低消費電力状態のいずれかに設定する。PCIeリンクコントローラ13-2は、第2ホスト2-2とメモリシステム3との間の第2リンク32を、動作状態と低消費電力状態のいずれかに設定する。NVMeコントローラ14は、第1リンク31および第2リンク32を介して受信されるパケットに含まれるデータを用いて不揮発性メモリ(例えば、NAND型フラッシュメモリ5)に対する要求を処理する。NVMeコントローラ14は、第1リンク31と第2リンク32のいずれかを介したパケットの伝送が予測される場合、PCIeリンクコントローラ13-1とPCIeリンクコントローラ13-2とにビジー信号を送出する。PCIeリンクコントローラ13-1は、第1リンク31が低消費電力状態であり、且つNVMeコントローラ14に伝送されるデータを含むパケットが第1リンク31を介して受信されていない場合、ビジー信号を無効化することによって、第1リンク31を低消費電力状態に維持する。PCIeリンクコントローラ13-1は、第1リンク31が動作状態であり、且つNVMeコントローラ14に伝送されるデータを含むパケットが第1リンク31を介して受信されていない場合、ビジー信号を無効化することによって、第1リンク31を介して伝送されるパケットが第1期間無いことに応じ、第1リンク31を低消費電力状態に遷移させる。
上記構成により、例えば、第2リンク32を介したパケットの伝送が予測される場合に、動作状態に設定するためのビジー信号を、NVMeコントローラ14がPCIeリンクコントローラ13-1に送出しても、PCIeリンクコントローラ13-1(より詳しくは、ビジー信号制御回路132-1)はビジー信号を無効化する。そのため、第1リンク31が低消費電力状態である期間を延ばすこと、および第1リンク31が低消費電力状態に遷移する可能性を高めることができる。したがって、パケット伝送のための複数のリンクが利用される場合に消費電力を低減できる。
本実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。本実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…情報処理システム、2-1…第1ホスト、2-2…第2ホスト、21-1,21-2…PCIe PHY、3…メモリシステム、4…コントローラ、5…NAND型フラッシュメモリ、6…DRAM、11…ホストI/F、12-1,12-2…PCIe PHY、13-1,13-2…PCIeリンクコントローラ、14…NVMeコントローラ、15…CPU、16…NAND I/F、17…DRAM I/F、131-1,131-2…ASPM L1タイマ/コントローラ、132-1,132-2…ビジー信号制御回路、31…第1リンク、32…第2リンク。
Claims (9)
- シリアルインタフェースを介して複数のホストそれぞれに接続可能なメモリシステムであって、
不揮発性メモリと、
第1ホストと前記メモリシステムとの間の第1リンクを、動作状態と、前記動作状態よりも消費電力が低い低消費電力状態のいずれかに設定する第1コントローラと、
第2ホストと前記メモリシステムとの間の第2リンクを、前記動作状態と前記低消費電力状態のいずれかに設定する第2コントローラと、
前記第1リンクおよび前記第2リンクを介して受信されるパケットに含まれるデータを用いて前記不揮発性メモリに対する要求を処理し、
前記第1リンクと前記第2リンクのいずれかを介したパケットの伝送が予測される場合、前記第1コントローラと前記第2コントローラとにビジー信号を送出する第3コントローラと
を具備し、
前記第1コントローラは、
前記第1リンクが前記低消費電力状態であり、且つ前記第3コントローラに伝送されるデータを含むパケットが前記第1リンクを介して受信されていない場合、前記ビジー信号を無効化することによって、前記第1リンクを前記低消費電力状態に維持し、
前記第1リンクが前記動作状態であり、且つ前記第3コントローラに伝送されるデータを含むパケットが前記第1リンクを介して受信されていない場合、前記ビジー信号を無効化することによって、前記第1リンクを介して伝送されるパケットが第1期間無いことに応じ、前記第1リンクを前記低消費電力状態に遷移させる
メモリシステム。 - 前記第2コントローラは、
前記第2リンクが前記低消費電力状態であり、且つ前記第3コントローラに伝送されるデータを含むパケットが前記第2リンクを介して受信された場合、前記ビジー信号に応じ、前記第2リンクを前記低消費電力状態から前記動作状態に遷移させる
請求項1に記載のメモリシステム。 - 前記第2コントローラは、前記第2リンクが前記動作状態であり、且つ前記第3コントローラに伝送されるデータを含むパケットが前記第2リンクを介して受信された場合、前記ビジー信号を有効化して、前記第2リンクを前記動作状態に維持する
請求項1または請求項2に記載のメモリシステム。 - 前記第1コントローラは、前記第1リンクが前記動作状態であり、且つ前記第3コントローラによる前記ビジー信号の送出が終了した場合、前記第1リンクを介して伝送されるパケットが前記第1期間無いことに応じ、前記第1リンクを前記低消費電力状態に遷移させる
請求項1乃至請求項3のいずれか一項に記載のメモリシステム。 - 前記第1コントローラは、前記第3コントローラに伝送されるデータを含むパケットが前記第1リンクを介して受信された場合に前記ビジー信号を有効化し、前記第3コントローラに伝送されるデータを含むパケットが前記第1リンクを介して受信されていない場合に前記ビジー信号を無効化する回路を含む
請求項1乃至請求項4のいずれか一項に記載のメモリシステム。 - 前記第1コントローラは、前記第3コントローラに伝送される第1データを含むパケットを前記第1リンクを介して受信した場合、前記第1データを前記第3コントローラに送出し、
前記第2コントローラは、前記第3コントローラに伝送される第2データを含むパケットを前記第2リンクを介して受信した場合、前記第2データを前記第3コントローラに送出し、
前記第3コントローラは、前記第1データと前記第2データのいずれかを受信したことに応じて、前記ビジー信号を前記第1コントローラと前記第2コントローラとに送出する
請求項1乃至請求項5のいずれか一項に記載のメモリシステム。 - 前記第3コントローラは、
前記第1ホストまたは前記第2ホストから受け付けた全ての要求に対する応答を、前記第1ホストまたは前記第2ホストに返していない場合、前記ビジー信号を前記第1コントローラおよび前記第2コントローラへ送出し、
前記第1ホストまたは前記第2ホストから受け付けた全ての要求に対する応答を、前記第1ホストまたは前記第2ホストに返した場合、前記ビジー信号の前記第1コントローラおよび前記第2コントローラへの送出を終了する
請求項6に記載のメモリシステム。 - 前記第1データと前記第2データそれぞれは、前記不揮発性メモリに対する書き込み要求、読み出し要求、およびVendor Defined Message(VDM)のいずれかを含む
請求項6または請求項7に記載のメモリシステム。 - 前記シリアルインタフェースは、PCI Express規格に準拠したシリアルインタフェースである請求項1乃至請求項8のいずれか一項に記載のメモリシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022014219A JP2023112427A (ja) | 2022-02-01 | 2022-02-01 | メモリシステム |
TW111115234A TW202333063A (zh) | 2022-02-01 | 2022-04-21 | 記憶體系統 |
CN202210592265.XA CN116578228A (zh) | 2022-02-01 | 2022-05-27 | 存储系统 |
US17/806,822 US11782613B1 (en) | 2022-02-01 | 2022-06-14 | Memory system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022014219A JP2023112427A (ja) | 2022-02-01 | 2022-02-01 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023112427A true JP2023112427A (ja) | 2023-08-14 |
Family
ID=87532796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022014219A Pending JP2023112427A (ja) | 2022-02-01 | 2022-02-01 | メモリシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11782613B1 (ja) |
JP (1) | JP2023112427A (ja) |
CN (1) | CN116578228A (ja) |
TW (1) | TW202333063A (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005190202A (ja) * | 2003-12-25 | 2005-07-14 | Toshiba Corp | シリアルataインタフェースを持つ電子機器及びシリアルataバスのパワーセーブ方法 |
JP4594761B2 (ja) | 2005-02-10 | 2010-12-08 | 株式会社東芝 | 情報処理装置およびその制御方法 |
JP2006338380A (ja) | 2005-06-02 | 2006-12-14 | Toshiba Corp | 情報処理装置およびその制御方法 |
JP6089597B2 (ja) | 2011-11-04 | 2017-03-08 | 株式会社リコー | 画像形成装置およびその制御方法 |
JP2019047146A (ja) | 2017-08-29 | 2019-03-22 | 東芝メモリ株式会社 | 電子機器および電力管理方法 |
JP2019057121A (ja) | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステム、メモリシステムの制御方法、及びコントローラ回路 |
KR102546255B1 (ko) * | 2018-08-03 | 2023-06-21 | 삼성전자주식회사 | 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템 |
-
2022
- 2022-02-01 JP JP2022014219A patent/JP2023112427A/ja active Pending
- 2022-04-21 TW TW111115234A patent/TW202333063A/zh unknown
- 2022-05-27 CN CN202210592265.XA patent/CN116578228A/zh active Pending
- 2022-06-14 US US17/806,822 patent/US11782613B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230297252A1 (en) | 2023-09-21 |
CN116578228A (zh) | 2023-08-11 |
TW202333063A (zh) | 2023-08-16 |
US11782613B1 (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
GB2533688B (en) | Resource allocation and deallocation for power management in devices | |
TWI578156B (zh) | 非依電性隨機存取記憶磁碟 | |
CN107391397B (zh) | 支持近存储器和远存储器访问的存储器通道 | |
US11960749B2 (en) | Data migration method, host, and solid state disk | |
US10198350B2 (en) | Memory module having volatile and non-volatile memory subsystems and method of operation | |
US11036412B2 (en) | Dynamically changing between latency-focused read operation and bandwidth-focused read operation | |
JP2009528609A (ja) | 不揮発性メモリの読み出し待ち時間を減少させる方法及びデバイス | |
US11494082B2 (en) | Memory system | |
KR102408149B1 (ko) | 저장 매체에 대한 동기식 메모리 버스 액세스 | |
KR20220041937A (ko) | 메모리 유형에 대한 페이지 테이블 후크 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
KR20130112210A (ko) | 메모리 시스템 및 그것의 페이지 교체 방법 | |
US20190026220A1 (en) | Storage device that stores latency information, processor and computing system | |
CN109471819B (zh) | 为来自主机的读取请求提供短的读取响应时间的存储设备 | |
CN113468083B (zh) | 一种双端口NVMe控制器及控制方法 | |
US20220019382A1 (en) | NAND Dropped Command Detection and Recovery | |
US11150809B2 (en) | Memory controller and storage device including the same | |
US11182284B2 (en) | Memory module having volatile and non-volatile memory subsystems and method of operation | |
JP2023112427A (ja) | メモリシステム | |
US20170153994A1 (en) | Mass storage region with ram-disk access and dma access | |
JP2021128684A (ja) | メモリシステムおよび制御方法 | |
US20220197549A1 (en) | Memory controller and storage device including the same | |
US20240036731A1 (en) | Memory system and method of operating the same | |
US20230384936A1 (en) | Storage device, electronic device including storage device, and operating method thereof | |
KR20240003648A (ko) | 메모리 시스템 및 그에 포함된 메모리 컨트롤러의 동작 방법 |