JP2019046045A - 記憶装置及び通信制御方法 - Google Patents
記憶装置及び通信制御方法 Download PDFInfo
- Publication number
- JP2019046045A JP2019046045A JP2017167155A JP2017167155A JP2019046045A JP 2019046045 A JP2019046045 A JP 2019046045A JP 2017167155 A JP2017167155 A JP 2017167155A JP 2017167155 A JP2017167155 A JP 2017167155A JP 2019046045 A JP2019046045 A JP 2019046045A
- Authority
- JP
- Japan
- Prior art keywords
- transfer rate
- communication
- storage device
- controller
- detection unit
- 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
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/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)
- Computer Networks & Wireless Communication (AREA)
- Power Sources (AREA)
Abstract
【課題】記憶装置とホスト装置との間の通信で用いられる通信インタフェースを適切化する。【解決手段】本実施形態に係る記憶装置は、不揮発性メモリとコントローラとを含む。コントローラは、ホスト装置と第1の通信を行い、不揮発性メモリと第2の通信を行い、前記不揮発性メモリを制御する。コントローラは、検出部と決定部とインタフェース部とを含む。検出部は、第2の通信における第2の転送レートを検出する。決定部は、検出部によって検出された第2の転送レートに基づいて第1の通信における第1の転送レートを決定する。インタフェース部は、決定部によって決定された第1の転送レートによりホスト装置と第1の通信を行う。【選択図】 図1
Description
本実施形態は、記憶装置及び通信制御方法に関する。
記憶装置の一例にSSD(Solid State Drive)がある。SSDは、例えば、複数の不揮発性半導体メモリと当該複数の不揮発性半導体メモリを制御するコントローラとを含む。
コントローラは、外部のホスト装置からコマンドを受信し、当該コマンドにしたがって、ホスト装置から受信したデータを不揮発性半導体メモリに書き込み、又は、不揮発性半導体メモリから読み出したデータをホスト装置へ送信する。
コントローラは、外部のホスト装置からコマンドを受信し、当該コマンドにしたがって、ホスト装置から受信したデータを不揮発性半導体メモリに書き込み、又は、不揮発性半導体メモリから読み出したデータをホスト装置へ送信する。
本実施形態は、ホスト装置に対する通信で用いられる通信インタフェースを適切化する記憶装置及び通信インタフェースの制御方法を提供する。
第1の実施形態に係る記憶装置は、不揮発性メモリとコントローラとを含む。コントローラは、ホスト装置と第1の通信を行い、不揮発性メモリと第2の通信を行い、不揮発性メモリを制御する。コントローラは、検出部と決定部とインタフェース部とを含む。検出部は、第2の通信における第2の転送レートを検出する。決定部は、検出部によって検出された第2の転送レートに基づいて第1の通信における第1の転送レートを決定する。インタフェース部は、決定部によって決定された第1の転送レートによりホスト装置と第1の通信を行う
第2の実施形態に係る記憶装置は、不揮発性メモリとコントローラとを含む。コントローラは、ホスト装置と第1の通信を行い、不揮発性メモリと第2の通信を行い、不揮発性メモリを制御する。コントローラは、検出部と決定部とインタフェース部とを含む。検出部は、第1の通信における第1の転送レートを検出する。決定部は、検出部によって検出された第1の転送レートに基づいて第1の通信における調整後の転送レートを決定する。インタフェース部は、決定部によって決定された調整後の転送レートによりホスト装置と第1の通信を行う。
第2の実施形態に係る記憶装置は、不揮発性メモリとコントローラとを含む。コントローラは、ホスト装置と第1の通信を行い、不揮発性メモリと第2の通信を行い、不揮発性メモリを制御する。コントローラは、検出部と決定部とインタフェース部とを含む。検出部は、第1の通信における第1の転送レートを検出する。決定部は、検出部によって検出された第1の転送レートに基づいて第1の通信における調整後の転送レートを決定する。インタフェース部は、決定部によって決定された調整後の転送レートによりホスト装置と第1の通信を行う。
以下、図面を参照しながら各実施形態について説明する。以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付し、説明を省略するか、又は、必要に応じて説明を行う。
[第1の実施形態]
本実施形態においては、記憶装置とホスト装置との間の通信(以下、フロントエンド通信という)で用いられる通信インタフェースの適切化、すなわちフロントエンド通信における転送レート(フロントエンド転送レート)の調整を行い、電力効率を向上させる記憶装置について説明する。
本実施形態においては、コントローラと不揮発性メモリとの間の通信(以下、バックエンド通信という)における転送レート(以下、バックエンド転送レートという)に基づいて、フロントエンド通信で用いられる調整後のフロントエンド転送レートを決定する。
なお、本実施形態において、フロントエンド転送レートの調整は、例えば、通信インタフェースのジェネレーション(世代)及びリンク幅を変更・更新することにより実現される。しかしながら、フロントエンド転送レートの調整は、他の方法により実現されてもよい。ここで、リンク幅とは、レーンの数に相当する。レーンとは、送信用の伝送路と受信用の伝送路との組を表す。
本実施形態においては、記憶装置とホスト装置との間の通信(以下、フロントエンド通信という)で用いられる通信インタフェースの適切化、すなわちフロントエンド通信における転送レート(フロントエンド転送レート)の調整を行い、電力効率を向上させる記憶装置について説明する。
本実施形態においては、コントローラと不揮発性メモリとの間の通信(以下、バックエンド通信という)における転送レート(以下、バックエンド転送レートという)に基づいて、フロントエンド通信で用いられる調整後のフロントエンド転送レートを決定する。
なお、本実施形態において、フロントエンド転送レートの調整は、例えば、通信インタフェースのジェネレーション(世代)及びリンク幅を変更・更新することにより実現される。しかしながら、フロントエンド転送レートの調整は、他の方法により実現されてもよい。ここで、リンク幅とは、レーンの数に相当する。レーンとは、送信用の伝送路と受信用の伝送路との組を表す。
図1は、本実施形態に係る記憶装置1の構成の一例を示すブロック図である。この図1は、記憶装置1が例えばソリッド・ステート・ドライブ(SSD)の場合を例として示している。しかしながら、記憶装置1は、例えば、ハードディスク・ドライブ(HDD)、SSDとHDDとを備えるハイブリッド型記憶装置、メモリカードなどのような他の記憶装置でもよい。この図1では、本実施形態の制御に関係する構成要素のみを示しており、本実施形態に関係のない構成要素は省略している。
記憶装置1は、ホスト装置2と通信可能に接続されており、コントローラ3と不揮発性メモリ4_1〜4_nとを含む。
本実施形態においては、不揮発性メモリ4_1〜4_nがNAND型フラッシュメモリである場合を例として説明を行う。しかしながら、不揮発性メモリ4_1〜4_nは、他の種類のメモリでもよい。より具体的には、不揮発性メモリは、例えば、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、又は、FeRAM(Ferroelectric Rand2om Access Memory)などでもよい。また、不揮発性メモリ4_1〜4_nは、磁気ディスクなどでもよい。
本実施形態においては、不揮発性メモリ4_1〜4_nがNAND型フラッシュメモリである場合を例として説明を行う。しかしながら、不揮発性メモリ4_1〜4_nは、他の種類のメモリでもよい。より具体的には、不揮発性メモリは、例えば、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、又は、FeRAM(Ferroelectric Rand2om Access Memory)などでもよい。また、不揮発性メモリ4_1〜4_nは、磁気ディスクなどでもよい。
本実施形態においては、記憶装置1とホスト装置2との間のフロントエンド通信に用いられる通信インタフェース5は、PCI Express(登録商標)規格に準拠する場合を例として説明するが、フロントエンド通信には他の通信インタフェースが用いられてもよい。
通信インタフェース5は、例えば、拡張バスの一種であり、I/Oシリアルインタフェースである。通信インタフェース5は、ジェネレーション及びリンク幅に対応する転送レートでデータを通信する。
本実施形態においては、通信インタフェース5のジェネレーションとして、Gen1、Gen2、Gen3が用いられるとするが、通信インタフェース5の他のジェネレーションが用いられてもよい。
リンク幅は、通信インタフェース5では、例えばx1,x2,x4,x8,x12,x16,x32などが規格化されているとする。xN(Nは、自然数)は、N組のレーンによって構成されていることを意味する。
本実施形態においては、通信インタフェース5のジェネレーションとして、Gen1、Gen2、Gen3が用いられるとするが、通信インタフェース5の他のジェネレーションが用いられてもよい。
リンク幅は、通信インタフェース5では、例えばx1,x2,x4,x8,x12,x16,x32などが規格化されているとする。xN(Nは、自然数)は、N組のレーンによって構成されていることを意味する。
コントローラ3は、バックエンドBE(メモリ通信部)とフロントエンドFE(ホスト通信部)と記憶部6とを含む。コントローラ3は、例えば、SoC(System-on-a-chip)でもよく、又は、複数の集積回路を組み合わせて構成されてもよい。
バックエンドBEは、NAND制御回路7とプロセッサPBとを含む。
NAND制御回路7は、n個(nは2以上の自然数)のチャネルを持つ。NAND制御回路7の各チャネルに対して不揮発性メモリ4_1〜4_nが接続される。本実施形態において、NAND制御回路7は、例えば、各チャネルに接続された不揮発性メモリ4_1〜4_nを並列にアクセス可能とする。なお、NAND制御回路7に接続される不揮発性メモリは1つでもよい。
NAND制御回路7は、不揮発性メモリ4_1〜4_nに対する書き込み及び読み出し(アクセス)を制御し、転送レート制御部8と検出部9とを含む。
転送レート制御部8は、コントローラ3と不揮発性メモリ4_1〜4_nとの間のバックエンド通信におけるバックエンド転送レートを制御する。
NAND制御回路7は、n個(nは2以上の自然数)のチャネルを持つ。NAND制御回路7の各チャネルに対して不揮発性メモリ4_1〜4_nが接続される。本実施形態において、NAND制御回路7は、例えば、各チャネルに接続された不揮発性メモリ4_1〜4_nを並列にアクセス可能とする。なお、NAND制御回路7に接続される不揮発性メモリは1つでもよい。
NAND制御回路7は、不揮発性メモリ4_1〜4_nに対する書き込み及び読み出し(アクセス)を制御し、転送レート制御部8と検出部9とを含む。
転送レート制御部8は、コントローラ3と不揮発性メモリ4_1〜4_nとの間のバックエンド通信におけるバックエンド転送レートを制御する。
検出部9は、例えば、バックエンド転送レートを検出し、バックエンド転送レートを示す検出データ10を記憶部6へ書き込む。検出部9は、例えば、最大のバックエンド転送レートを検出するとしてもよい。検出部9は、例えば、コントローラ3と不揮発性メモリ4_1〜4_nとの間で送受信されているデータの量を測定し、バックエンド転送レートを算出してもよい。また、検出部9は、例えば、コントローラ3の電力状態からバックエンド転送レートを算出してもよい。
検出部9は、例えば、センサによって測定された記憶装置1における各種の測定値(例えば、消費電力、温度、NANDインタフェースのトグル周波数など)に基づいてバックエンド転送レートを検出してもよい。バックエンド転送レートの検出の詳細については、後述の第3の実施形態で説明する。
検出部9によるバックエンド転送レートの検出は、例えば、所定の間隔で行われてもよく、転送レート制御部8によるバックエンド転送レートの変更をトリガとして行われてもよい。
プロセッサPBは、例えばNAND制御回路7などのバックエンドBEの各構成要素を制御し、バックエンドBEの全体の動作の制御を行う。
検出部9は、例えば、センサによって測定された記憶装置1における各種の測定値(例えば、消費電力、温度、NANDインタフェースのトグル周波数など)に基づいてバックエンド転送レートを検出してもよい。バックエンド転送レートの検出の詳細については、後述の第3の実施形態で説明する。
検出部9によるバックエンド転送レートの検出は、例えば、所定の間隔で行われてもよく、転送レート制御部8によるバックエンド転送レートの変更をトリガとして行われてもよい。
プロセッサPBは、例えばNAND制御回路7などのバックエンドBEの各構成要素を制御し、バックエンドBEの全体の動作の制御を行う。
記憶部6は、例えばレジスタであり、バックエンドBEからフロントエンドFEへ送信される検出データ10を一時的に記憶可能である。バックエンドBEは、記憶部6に検出データ10を書き込み、フロントエンドFEは、記憶部6から検出データ10を読み出す。これにより、フロントエンドFEは、バックエンドBEから検出データ10を受信可能である。
フロントエンドFEは、記憶部11、プロセッサPF、インタフェース部13を含む。
記憶部11は、設定候補データ14を記憶する。
設定候補データ14は、例えば、テーブル形式のデータであり、バックエンド転送レートと、通信インタフェース5のジェネレーションと、通信インタフェース5のリンク幅とを関連付けている。
記憶部11は、設定候補データ14を記憶する。
設定候補データ14は、例えば、テーブル形式のデータであり、バックエンド転送レートと、通信インタフェース5のジェネレーションと、通信インタフェース5のリンク幅とを関連付けている。
プロセッサPFは、フロントエンドFEの各構成要素を制御し、フロントエンドFEの全体の動作の制御を行う。プロセッサPFは、例えは、決定部12として機能する。なお、決定部12は、プロセッサPFによって実現されるのではなく、例えばプロセッサPFと別構成の回路で実現されてもよい。
決定部12は、記憶部6から検出データ10を読み出し、記憶部11に記憶されている設定候補データ14の中から、検出データ10の示すバックエンド転送レートと関連する通信インタフェース5のジェネレーションとリンク幅とを、決定する。この決定部12は、例えば、バックエンド転送レートを実現可能な範囲で、消費電力を抑制するために必要な最小限の性能(ジェネレーション、リンク幅)を決定する。
決定部12は、記憶部6から検出データ10を読み出し、記憶部11に記憶されている設定候補データ14の中から、検出データ10の示すバックエンド転送レートと関連する通信インタフェース5のジェネレーションとリンク幅とを、決定する。この決定部12は、例えば、バックエンド転送レートを実現可能な範囲で、消費電力を抑制するために必要な最小限の性能(ジェネレーション、リンク幅)を決定する。
インタフェース部13は、決定部12によって決定されたジェネレーションとリンク幅とに対応する通信インタフェース5にしたがってホスト装置2のインタフェース部15とフロントエンド通信を行う。
なお、本実施形態において、プロセッサPBとプロセッサPFは別構成としているが、1つに統合されてもよい。プロセッサPB,PFとしては、例えば、CPU(Central processing unit)、又は、MPU(Microprocessor unit)など、各種の演算装置を用いることができる。
なお、本実施形態において、プロセッサPBとプロセッサPFは別構成としているが、1つに統合されてもよい。プロセッサPB,PFとしては、例えば、CPU(Central processing unit)、又は、MPU(Microprocessor unit)など、各種の演算装置を用いることができる。
図2は、本実施形態に係る設定候補データ14の一例を示すデータ構造図である。
設定候補データ14では、各種のバックエンド転送レートに対して、ジェネレーションGen1〜Gen3のいずれか、及び、リンク幅x1,x2,x4のいずれか、が関連付けられている。なお、他のジェネレーション、他のリンク幅がバックエンド転送レートに対して関連付けられていてもよい。
設定候補データ14では、各種のバックエンド転送レートに対して、ジェネレーションGen1〜Gen3のいずれか、及び、リンク幅x1,x2,x4のいずれか、が関連付けられている。なお、他のジェネレーション、他のリンク幅がバックエンド転送レートに対して関連付けられていてもよい。
設定候補データ14では、バックエンド転送レートごとに、適切な(例えば必要最低限の性能となる)通信インタフェース5のジェネレーションとリンク幅とが関連付けられている。
ジェネレーションは、Gen1が最も古く、数が大きくなるほど新しい。
ジェネレーションの消費電力に関しては、Gen1の消費電力が最も少なく、ジェネレーションが新しくなるほど消費電力は多くなる。すなわち、ジェネレーションGen3の消費電力>ジェネレーションGen2の消費電力>ジェネレーションGen1の消費電力、の関係が成り立つ。
ジェネレーションの消費電力に関しては、Gen1の消費電力が最も少なく、ジェネレーションが新しくなるほど消費電力は多くなる。すなわち、ジェネレーションGen3の消費電力>ジェネレーションGen2の消費電力>ジェネレーションGen1の消費電力、の関係が成り立つ。
ジェネレーションの転送レートに関しては、ジェネレーションGen1の転送レートが最も遅く、ジェネレーションが新しくなるほど転送レートは速くなる。すなわち、ジェネレーションGen3の転送レート>ジェネレーションGen2の転送レート>ジェネレーションGen1の転送レート、の関係が成り立つ。
リンク幅は、x1が最も狭く、レーンの数が増えるほど広くなる。
リンク幅の消費電力に関しては、リンク幅x1の消費電力が最も少なく、レーンの数が増えるほど消費電力は多くなる。すなわち、リンク幅x4の消費電力>リンク幅x2の消費電力>リンク幅x1の消費電力、の関係が成り立つ。
リンク幅の転送レートに関しては、リンク幅x1の転送レートが最も遅く、レーンの数が増えるほど転送レートは速くなる。すなわち、リンク幅x4の転送レート>リンク幅x2の転送レート>リンク幅x1の転送レート、の関係が成り立つ。
リンク幅の消費電力に関しては、リンク幅x1の消費電力が最も少なく、レーンの数が増えるほど消費電力は多くなる。すなわち、リンク幅x4の消費電力>リンク幅x2の消費電力>リンク幅x1の消費電力、の関係が成り立つ。
リンク幅の転送レートに関しては、リンク幅x1の転送レートが最も遅く、レーンの数が増えるほど転送レートは速くなる。すなわち、リンク幅x4の転送レート>リンク幅x2の転送レート>リンク幅x1の転送レート、の関係が成り立つ。
設定候補データ14では、遅いバックエンド転送レートに対して、古いジェネレーション、かつ、レーン数の少ないリンク幅が割り当てられており、バックエンド転送レートが速くなるほど、新しいジェネレーション、かつ、レーン数の多いリンク幅が割り当てられている。より具体的な例で説明すると、設定候補データ14では、低速のバックエンド転送レートに対して、ジェネレーションGen1及びリンク幅x1が関連付けられており、中速のバックエンド転送レートに対して、ジェネレーションGen2及びリンク幅x2が関連付けられており、高速のバックエンド転送レートに対して、ジェネレーションGen3及びリンク幅x4が関連付けられている。
したがって、例えば、遅いバックエンド転送レートが検出された場合には、古いジェネレーションと狭いリンク幅に対応する通信インタフェース5にしたがって記憶装置1とホスト装置2との間の通信を実行させることができ、これによりバックエンド通信に必要とされる性能を維持しながら、記憶装置1の消費電力を抑制することができる。
図3は、本実施形態に係る記憶装置1で実行される通信制御処理の一例を示すフローチャートである。
ステップS301において、コントローラ3のインタフェース部13は、ホスト装置2のインタフェース部15と通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS301において、コントローラ3のインタフェース部13は、ホスト装置2のインタフェース部15と通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS302において、コントローラ3の検出部9は、コントローラ3と不揮発性メモリ4_1〜4_nとの間のバックエンド通信におけるバックエンド転送レートを検出する。
ステップS303において、コントローラ3の決定部12は、バックエンド転送レートと設定候補データ14とに基づいて、バックエンド転送レートに対応する通信インタフェース5のジェネレーションとリンク幅とを決定する。
ステップS303において、コントローラ3の決定部12は、バックエンド転送レートと設定候補データ14とに基づいて、バックエンド転送レートに対応する通信インタフェース5のジェネレーションとリンク幅とを決定する。
ステップS304において、コントローラ3のインタフェース部13は、決定されたジェネレーションとリンク幅とに対応する通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS305において、コントローラ3は、処理を継続する場合、ステップS302に戻る。コントローラ3は、処理を継続しない場合、当該通信制御処理を終了する。
ステップS305において、コントローラ3は、処理を継続する場合、ステップS302に戻る。コントローラ3は、処理を継続しない場合、当該通信制御処理を終了する。
以下で、本実施形態に係る記憶装置1と比較例のSSDとの対比説明を行う。
比較例のSSDは、例えば、ホスト装置2のインタフェース部15が初期起動時に通信インタフェース5のジェネレーションとリンク幅とを決定すると、決定されたジェネレーションとリンク幅とを維持してフロントエンド通信を実行する。比較例のSSDのコントローラに備えられており、不揮発性メモリを制御する比較例のNAND制御回路は、比較例のSSDとホスト装置2との間のフロントエンド通信に影響を与えない。比較例のSSDのコントローラは、不揮発性メモリ4_1〜4_nとの通信で用いるバックエンド転送レートを変化させる場合がある。しかしながら、比較例のSSDのコントローラがバックエンド転送レートを変化させた場合であっても、比較例のSSDとホスト装置2との間のフロントエンド通信で用いられる通信インタフェースのジェネレーション及びリンク幅は固定されたままであり、比較例のSSDとホスト装置2との間のフロントエンド通信で消費される電力は、時間単位でほぼ同じになる。したがって、比較例のSSDにおいて、バックエンド転送レートが低い場合には、電力効率が低下する。
比較例のSSDは、例えば、ホスト装置2のインタフェース部15が初期起動時に通信インタフェース5のジェネレーションとリンク幅とを決定すると、決定されたジェネレーションとリンク幅とを維持してフロントエンド通信を実行する。比較例のSSDのコントローラに備えられており、不揮発性メモリを制御する比較例のNAND制御回路は、比較例のSSDとホスト装置2との間のフロントエンド通信に影響を与えない。比較例のSSDのコントローラは、不揮発性メモリ4_1〜4_nとの通信で用いるバックエンド転送レートを変化させる場合がある。しかしながら、比較例のSSDのコントローラがバックエンド転送レートを変化させた場合であっても、比較例のSSDとホスト装置2との間のフロントエンド通信で用いられる通信インタフェースのジェネレーション及びリンク幅は固定されたままであり、比較例のSSDとホスト装置2との間のフロントエンド通信で消費される電力は、時間単位でほぼ同じになる。したがって、比較例のSSDにおいて、バックエンド転送レートが低い場合には、電力効率が低下する。
これに対して、本実施形態に係る記憶装置1は、バックエンド転送レートを検出し、バックエンド転送レートに対して適切な通信インタフェース5のジェネレーション及びリンク幅を決定し、決定されたジェネレーション及びリンク幅を用いてホスト装置2とコントローラ3との間でフロントエンド通信を行う。本実施形態においては、例えば、バックエンド転送レートが低い場合に、古いジェネレーション、かつ、レーン数の少ないリンク幅の通信インタフェース5を用いてフロントエンド通信が行われる。このように、本実施形態においては、記憶装置1のコントローラ3が主導して記憶装置1とホスト装置2との間のフロントエンド通信で用いられる通信インタフェース5の設定を適切化することができ、記憶装置1の動作時の消費電力を、比較例のSSDの動作時の消費電力よりも低下させることができる。
本実施形態においては、フロントエンド転送レートを調整するために、通信インタフェース5のジェネレーションとリンク幅とが決定及び更新される場合を説明したが、通信インタフェース5のジェネレーションとリンク幅とのうちの一方のみが決定及び更新されるとしてもよい。また、ジェネレーション及びリンク幅の決定及び更新に代えて、他の方法でフロントエンド転送レートを調整し、記憶装置1の消費電力を低減してもよい。
本実施形態においては、フロントエンド転送レートを調整するために、通信インタフェース5のジェネレーションとリンク幅とが決定及び更新される場合を説明したが、通信インタフェース5のジェネレーションとリンク幅とのうちの一方のみが決定及び更新されるとしてもよい。また、ジェネレーション及びリンク幅の決定及び更新に代えて、他の方法でフロントエンド転送レートを調整し、記憶装置1の消費電力を低減してもよい。
[第2の実施形態]
本実施形態においては、上記第1の実施形態の変形例について説明する。本実施形態においては、記憶装置とホスト装置2との間のフロントエンド通信におけるフロントエンド転送レートに基づいて、通信インタフェース5のジェネレーション及びリンク幅を決定する。
本実施形態においては、上記第1の実施形態の変形例について説明する。本実施形態においては、記憶装置とホスト装置2との間のフロントエンド通信におけるフロントエンド転送レートに基づいて、通信インタフェース5のジェネレーション及びリンク幅を決定する。
図4は、本実施形態に係る記憶装置1Aの構成の一例を示すブロック図である。
記憶装置1Aは、コントローラ3Aと不揮発性メモリ4_1〜4_nとを含む。
コントローラ3Aは、バックエンドBEAとフロントエンドFEAとを含む。
バックエンドBEAのNAND制御回路7Aは、転送レート制御部8を含み、不揮発性メモリ4_1〜4_nに対するデータの書き込みと読み出しとを制御する。
フロントエンドFEAは、検出部9A、記憶部11A、プロセッサPF、インタフェース部13を含む。プロセッサPFは、例えは、決定部12Aとして機能する。
記憶装置1Aは、コントローラ3Aと不揮発性メモリ4_1〜4_nとを含む。
コントローラ3Aは、バックエンドBEAとフロントエンドFEAとを含む。
バックエンドBEAのNAND制御回路7Aは、転送レート制御部8を含み、不揮発性メモリ4_1〜4_nに対するデータの書き込みと読み出しとを制御する。
フロントエンドFEAは、検出部9A、記憶部11A、プロセッサPF、インタフェース部13を含む。プロセッサPFは、例えは、決定部12Aとして機能する。
検出部9Aは、例えば、フロントエンド転送レートを検出し、フロントエンド転送レート示す検出データ10Aを記憶部11Aへ書き込む。検出部9Aは、例えば、最大のフロントエンド転送レートを検出するとしてもよい。ここで、最大のフロントエンド転送レートとは、記憶装置1Aとホスト装置2との間のフロントエンド通信で必要になる転送レートの最大値であり、通信インタフェース5で実現可能な転送レートの最大値以下の値である。検出部9Aは、例えば、記憶装置1Aとホスト装置2との間で送受信されているデータの量を測定して、フロントエンド転送レートを算出してもよい。また、検出部9Aは、例えば、コントローラ3Aの電力状態からフロントエンド転送レートを算出してもよい。
検出部9Aは、例えば、センサによって測定された記憶装置1における各種の測定値(例えば、消費電力、温度、バックグラウンドジョブの帯域消費量、バックグラウンドジョブの帯域消費率など)に基づいてフロントエンド転送レートを検出してもよい。フロントエンド転送レートの検出の詳細については、後述の第3の実施形態で説明する。
検出部9Aのフロントエンド転送レートの検出は、例えば、所定の間隔で行われてもよく、NAND制御回路7Aに備えられている転送レート制御部8によるバックエンド転送レートの変更をトリガとして行われてもよい。
検出部9Aのフロントエンド転送レートの検出は、例えば、所定の間隔で行われてもよく、NAND制御回路7Aに備えられている転送レート制御部8によるバックエンド転送レートの変更をトリガとして行われてもよい。
記憶部11Aは、検出データ10Aと設定候補データ14Aとを記憶する。
設定候補データ14Aは、例えば、テーブル形式のデータであり、フロントエンド転送レートと、通信インタフェース5のジェネレーションと、通信インタフェース5のリンク幅とを関連付けている。
設定候補データ14Aは、例えば、テーブル形式のデータであり、フロントエンド転送レートと、通信インタフェース5のジェネレーションと、通信インタフェース5のリンク幅とを関連付けている。
決定部12Aは、記憶部11Aから検出データ10Aを読み出し、記憶部11Aに記憶されている設定候補データ14Aの中から、検出データ10Aの示すフロントエンド転送レートと関連する通信インタフェース5のジェネレーションとリンク幅とを、決定する。この決定部12Aは、例えば、フロントエンド転送レートを実現可能な範囲で、消費電力を抑制するために必要な最小限の性能(ジェネレーション、リンク幅)を決定する。
インタフェース部13は、決定部12Aによって決定されたジェネレーションとリンク幅とに対応する通信インタフェース5にしたがってホスト装置2のインタフェース部15とフロントエンド通信を行う。
図5は、本実施形態に係る設定候補データ14Aの一例を示すデータ構造図である。
設定候補データ14Aでは、各種のフロントエンド転送レートに対して、ジェネレーションGen1〜Gen3のいずれか、及び、リンク幅x1,x2,x4のいずれかが、関連付けられている。なお、他のジェネレーション、他のリンク幅がフロントエンド転送レートに対して関連付けられていてもよい。
設定候補データ14Aでは、各種のフロントエンド転送レートに対して、ジェネレーションGen1〜Gen3のいずれか、及び、リンク幅x1,x2,x4のいずれかが、関連付けられている。なお、他のジェネレーション、他のリンク幅がフロントエンド転送レートに対して関連付けられていてもよい。
設定候補データ14Aでは、フロントエンド転送レートごとに、適切な(例えば必要最低限の性能となる)通信インタフェース5のジェネレーションとリンク幅とが関連付けられている。より具体的な例で説明すると、設定候補データ14Aでは、低速のフロントエンド転送レートに対して、ジェネレーションGen1及びリンク幅x1が関連付けられており、中速のフロントエンド転送レートに対して、ジェネレーションGen2及びリンク幅x2が関連付けられており、高速のフロントエンド転送レートに対して、ジェネレーションGen3及びリンク幅x4が関連付けられている。
以上説明した本実施形態に係る設定候補データ14Aでは、低いフロントエンド転送レートに対して、古いジェネレーション、かつ、レーン数の少ないリンク幅が割り当てられており、フロントエンド転送レートが高くなるほど、新しいジェネレーション、かつ、レーン数の多いリンク幅が割り当てられている。
したがって、本実施形態において、例えば、低いフロントエンド転送レートが検出された場合には、古いジェネレーションと狭いリンク幅とに対応する通信インタフェース5にしたがってフロントエンド通信を実行させることができ、これによりフロントエンド通信に必要とされる性能を維持しながら、記憶装置1Aの消費電力を抑制することができる。
本実施形態において、フロントエンド転送レートを調整するために、通信インタフェース5のジェネレーションとリンク幅とのうちの一方のみが、フロントエンド転送レートに基づいて決定及び更新されるとしてもよい。また、ジェネレーション及びリンク幅の決定及び更新に代えて、他の方法でフロントエンド転送レートを調整し、記憶装置1の消費電力を低減してもよい。
したがって、本実施形態において、例えば、低いフロントエンド転送レートが検出された場合には、古いジェネレーションと狭いリンク幅とに対応する通信インタフェース5にしたがってフロントエンド通信を実行させることができ、これによりフロントエンド通信に必要とされる性能を維持しながら、記憶装置1Aの消費電力を抑制することができる。
本実施形態において、フロントエンド転送レートを調整するために、通信インタフェース5のジェネレーションとリンク幅とのうちの一方のみが、フロントエンド転送レートに基づいて決定及び更新されるとしてもよい。また、ジェネレーション及びリンク幅の決定及び更新に代えて、他の方法でフロントエンド転送レートを調整し、記憶装置1の消費電力を低減してもよい。
なお、上記の第1及び第2の実施形態においては、テーブル形式のデータ構造を持つ設定候補データ14,14Aを用いて通信インタフェース5のジェネレーション及びリンク幅が決定されているが、例えば、バックエンド転送レート又はフロントエンド転送レートに基づいて演算又はプログラムが実現する決定アルゴリズムにより通信インタフェース5のジェネレーション及びリンク幅が決定されてもよい。
[第3の実施形態]
本実施形態は、上記第1及び第2の実施形態の変形例であり、通信インタフェース5のジェネレーション及びリンク幅の決定処理についてより具体的に説明する。
本実施形態においては、各種の測定値又は設定値などに基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する。
本実施形態で用いられる各種の設定値は、例えば、ホスト装置2からの指示に基づいて設定されてもよい。
本実施形態は、上記第1及び第2の実施形態の変形例であり、通信インタフェース5のジェネレーション及びリンク幅の決定処理についてより具体的に説明する。
本実施形態においては、各種の測定値又は設定値などに基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する。
本実施形態で用いられる各種の設定値は、例えば、ホスト装置2からの指示に基づいて設定されてもよい。
図6は、本実施形態に係る記憶装置1Bの構成の一例を示すブロック図である。
記憶装置1Bは、コントローラ3Bと不揮発性メモリ4_1〜4_nとを含む。
コントローラ3Bは、NAND制御回路7A、測定部16、記憶部11B、プロセッサP、インタフェース部13を含む。
プロセッサPは、コントローラ3Bの各構成要素を制御し、コントローラ3Bの全体の動作の制御を行う。プロセッサPは、例えば、設定部18、検出部9B、決定部12Bとして機能する。なお、設定部18、検出部9B、決定部12Bの少なくとも1つは、プロセッサPによって実現されるのではなく、例えばプロセッサPと別構成の回路で実現されてもよい。
記憶装置1Bは、コントローラ3Bと不揮発性メモリ4_1〜4_nとを含む。
コントローラ3Bは、NAND制御回路7A、測定部16、記憶部11B、プロセッサP、インタフェース部13を含む。
プロセッサPは、コントローラ3Bの各構成要素を制御し、コントローラ3Bの全体の動作の制御を行う。プロセッサPは、例えば、設定部18、検出部9B、決定部12Bとして機能する。なお、設定部18、検出部9B、決定部12Bの少なくとも1つは、プロセッサPによって実現されるのではなく、例えばプロセッサPと別構成の回路で実現されてもよい。
測定部16は、記憶装置1Bの状態を測定する例えばセンサなどの装置である。測定部16は、例えば、フロントエンド転送レート、バックエンド転送レート、消費電力、温度、NANDインタフェースのトグル周波数などを測定する。測定部16は、測定値を示す測定データ19を記憶部11Bに書き込む。
設定部18は、ホスト装置2からインタフェース部13経由で受信した設定データ20を記憶部11Bに書き込む。設定データ20は、例えば、性能スロットリング設定値、電力スロットリング設定値、消費電力モード設定値、温度スロットリング設定値などを含む。
性能スロットリング設定値は、例えば、記憶装置1B又はコントローラ3Bの性能を制限するために設定される値である。
電力スロットリング設定値は、例えば、記憶装置1Bの消費電力を制限するために設定される値である。
消費電力モード設定値は、例えば、記憶装置1Bの消費電力に関する通常モード又は省電力モードなどを指定する情報である。本実施形態では、消費電力モード設定値は、例えば、記憶装置1に対して許容されるピーク電力を表すものとする。しかしながら、消費電力モード設定値は、例えば、記憶装置1に適用される消費電力モードに対応する番号などでもよい。
温度スロットリング設定値は、記憶装置1B又はコントローラ3Bの温度を制限するために設定される値である。
電力スロットリング設定値は、例えば、記憶装置1Bの消費電力を制限するために設定される値である。
消費電力モード設定値は、例えば、記憶装置1Bの消費電力に関する通常モード又は省電力モードなどを指定する情報である。本実施形態では、消費電力モード設定値は、例えば、記憶装置1に対して許容されるピーク電力を表すものとする。しかしながら、消費電力モード設定値は、例えば、記憶装置1に適用される消費電力モードに対応する番号などでもよい。
温度スロットリング設定値は、記憶装置1B又はコントローラ3Bの温度を制限するために設定される値である。
検出部9Bは、例えば、測定データ19と設定データ20とのうちの少なくとも一方に基づいて、フロントエンド転送レートを検出し、フロントエンド転送レート示す検出データ10Aを記憶部11Bへ書き込む。検出部9Bは、例えば、最大のフロントエンド転送レートを検出するとしてもよい。
また、検出部9Bは、例えば、最大のバックエンド転送レートを求め、この求められた最大のバックエンド転送レートに基づいて最大のフロントエンド転送レートを検出するとしてもよい。ここで、最大のバックエンド転送レートとは、NAND制御回路7Aと不揮発性メモリ4_1〜4_nとの間のバックエンド通信で必要となる転送レートの最大値であり、NANDインタフェースで実現可能な転送レートの最大値以下の値である。NANDインタフェースとは、NAND制御回路7Aと不揮発性メモリ4_1〜4_nとの間の通信インタフェースである。
また、検出部9Bは、例えば、最大のバックエンド転送レートを求め、この求められた最大のバックエンド転送レートに基づいて最大のフロントエンド転送レートを検出するとしてもよい。ここで、最大のバックエンド転送レートとは、NAND制御回路7Aと不揮発性メモリ4_1〜4_nとの間のバックエンド通信で必要となる転送レートの最大値であり、NANDインタフェースで実現可能な転送レートの最大値以下の値である。NANDインタフェースとは、NAND制御回路7Aと不揮発性メモリ4_1〜4_nとの間の通信インタフェースである。
記憶部11Bは、測定データ19、設定データ20、検出データ10A、設定候補データ14Aを記憶する。
決定部12Bは、記憶部11Bから検出データ10Aを読み出し、記憶部11Bに記憶されている設定候補データ14Aの中から検出データ10Aの示すフロントエンド転送レートと関連する通信インタフェース5のジェネレーションとリンク幅とを決定する。この決定部12Bは、例えば、検出されたフロントエンド転送レートを実現可能な範囲で、消費電力を抑制するために必要な最小限の性能を決定する。
決定部12Bは、記憶部11Bから検出データ10Aを読み出し、記憶部11Bに記憶されている設定候補データ14Aの中から検出データ10Aの示すフロントエンド転送レートと関連する通信インタフェース5のジェネレーションとリンク幅とを決定する。この決定部12Bは、例えば、検出されたフロントエンド転送レートを実現可能な範囲で、消費電力を抑制するために必要な最小限の性能を決定する。
インタフェース部13は、決定部12Bによって決定されたジェネレーションとリンク幅とに対応する通信インタフェース5にしたがってホスト装置2のインタフェース部15とフロントエンド通信を行う。
図7は、本実施形態に係る記憶装置1Bで実行される通信制御処理の一例を示すフローチャートである。
ステップS701において、コントローラ3Bのインタフェース部13は、ホスト装置2のインタフェース部15と通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS702において、コントローラ3Bの検出部9Bは、通信インタフェース5を用いるフロントエンド通信におけるフロントエンド転送レートを検出する。このフロントエンド転送レートは、例えば、各種の設定値、測定値に基づいて検出される。
ステップS701において、コントローラ3Bのインタフェース部13は、ホスト装置2のインタフェース部15と通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS702において、コントローラ3Bの検出部9Bは、通信インタフェース5を用いるフロントエンド通信におけるフロントエンド転送レートを検出する。このフロントエンド転送レートは、例えば、各種の設定値、測定値に基づいて検出される。
ステップS703において、コントローラ3Bの決定部12Bは、フロントエンド転送レートと設定候補データ14Aとに基づいて、フロントエンド転送レートに対応する通信インタフェース5のジェネレーションとリンク幅とを決定する。
ステップS704において、コントローラ3Bのインタフェース部13は、決定されたジェネレーションとリンク幅とに対応する通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS705において、コントローラ3Bは、処理を継続する場合、ステップS702に戻る。コントローラ3Bは、処理を継続しない場合、当該通信制御処理を終了する。
ステップS704において、コントローラ3Bのインタフェース部13は、決定されたジェネレーションとリンク幅とに対応する通信インタフェース5にしたがってフロントエンド通信を行う。
ステップS705において、コントローラ3Bは、処理を継続する場合、ステップS702に戻る。コントローラ3Bは、処理を継続しない場合、当該通信制御処理を終了する。
図8は、性能スロットリング設定値に基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する場合のデータの依存関係の一例を示すブロック図である。
この図8は、データの依存関係を表現するとともに、処理の流れも表現している。なお、後述する図9以降も同様である。
この図8は、データの依存関係を表現するとともに、処理の流れも表現している。なお、後述する図9以降も同様である。
性能スロットリング設定値D1は、記憶装置1Bの性能を制限するための設定値である。設定部18は、例えば、性能スロットリング設定値D1「V1ギガバイト/秒」を設定する。
検出部9Bは、性能スロットリング設定値D1に基づいて、最大のフロントエンド転送レートD2「V1ギガバイト/秒」を検出(推定)する。
決定部12Bは、「V1ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl1を決定する。
検出部9Bは、性能スロットリング設定値D1に基づいて、最大のフロントエンド転送レートD2「V1ギガバイト/秒」を検出(推定)する。
決定部12Bは、「V1ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl1を決定する。
図9は、NANDインタフェースの最大帯域幅と誤り訂正の符号化率とに基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する場合のデータの依存関係の一例を示すブロック図である。
測定部16又は設定部18は、例えば、NANDインタフェースのトグル周波数D3「V2ギガバイト/秒」を測定又は設定する。NANDインタフェースとは、NAND制御回路7Aと不揮発性メモリ4_1〜4_nとの間の通信インタフェースである。
設定部18は、例えば記憶装置1Bにおけるチャネル数D4「V3チャネル」を設定する。
検出部9Bは、NANDインタフェースのトグル周波数D3とチャネル数D4とに基づいて、NANDインタフェースの最大帯域幅D5「V2×V3=V4ギガバイト/秒」を求める。
設定部18は、例えば、符号化率D6「V5」を設定している。NAND制御回路7Aから不揮発性メモリ4_1〜4_nへ書き込まれる書き込みデータの中には、情報ビットと誤り訂正ビットとが含まれる。符号化率D6は、(情報ビット数/書き込みデータの全ビット数)に相当する。
検出部9Bは、NANDインタフェースのトグル周波数D3とチャネル数D4とに基づいて、NANDインタフェースの最大帯域幅D5「V2×V3=V4ギガバイト/秒」を求める。
設定部18は、例えば、符号化率D6「V5」を設定している。NAND制御回路7Aから不揮発性メモリ4_1〜4_nへ書き込まれる書き込みデータの中には、情報ビットと誤り訂正ビットとが含まれる。符号化率D6は、(情報ビット数/書き込みデータの全ビット数)に相当する。
検出部9Bは、NANDインタフェースの最大帯域幅D5と符号化率D6とに基づいて、最大のバックエンド転送レートD7「V4×V5=V6ギガバイト/秒」を求める。そして、検出部9Bは、最大のバックエンド転送レートD7に基づいて、例えば、最大のフロントエンド転送レートD8「V6ギガバイト/秒」を検出(推定)する。
決定部12Bは、「V6ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl2を決定する。
決定部12Bは、「V6ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl2を決定する。
図10は、バックエンドのスロットリング設定値に基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する場合のデータの依存関係の第1の例を示すブロック図である。バックエンドのスロットリング設定値としては、例えば、電力スロットリング設定値、温度スロットリング設定値、不揮発性メモリ4_1〜4_nの寿命に関する設定値などがある。この図10では、バックエンドのスロットリング設定値として電力スロットリング設定値が用いられる場合を例として説明する。
設定部18は、例えば、消費電力モード設定値D9から許容電力D10「V7ワット」を求め、バックエンドのスロットリング設定値D11「V7ワット」を設定する。
検出部9Bは、例えば、バックエンドのスロットリング設定値D11に基づいて、NANDインタフェースのトグル周波数D3「V2ギガバイト/秒」を求める。
検出部9Bは、例えば、バックエンドのスロットリング設定値D11に基づいて、同時に駆動することが許容されるチップ数(以下、許容同時駆動チップ数という)D12「V8個」を求める。
検出部9Bは、例えば、バックエンドのスロットリング設定値D11に基づいて、NANDインタフェースのトグル周波数D3「V2ギガバイト/秒」を求める。
検出部9Bは、例えば、バックエンドのスロットリング設定値D11に基づいて、同時に駆動することが許容されるチップ数(以下、許容同時駆動チップ数という)D12「V8個」を求める。
設定部18は、例えば、記憶装置1におけるチャネル数D4「V3チャネル」を設定する。
検出部9Bは、例えば、NANDインタフェースのトグル周波数D3とチャネル数D4に基づいて、NANDインタフェースの最大帯域幅D5「V2×V3=V4ギガバイト/秒」を求める。
検出部9Bは、例えば、NANDインタフェースの最大帯域幅D5と許容同時駆動チップ数D12とに基づいて、最大のバックエンド転送レートD13「V4×V8=V9ギガバイト/秒」を求める。なお、最大のバックエンド転送レートD13は、例えば、コマンド投入間隔(ウェイト時間)などの値を用いて算出されてもよい。
検出部9Bは、例えば、NANDインタフェースの最大帯域幅D5と許容同時駆動チップ数D12とに基づいて、最大のバックエンド転送レートD13「V4×V8=V9ギガバイト/秒」を求める。なお、最大のバックエンド転送レートD13は、例えば、コマンド投入間隔(ウェイト時間)などの値を用いて算出されてもよい。
検出部9Bは、例えば、最大のバックエンド転送レートD13に基づいて、最大のフロントエンド転送レートD14「V9ギガバイト/秒」を検出する。
決定部12Bは、「V9ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl3を決定する。
決定部12Bは、「V9ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl3を決定する。
図11は、バックエンドのスロットリング設定値に基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する場合のデータの依存関係の第2の例を示すブロック図である。
測定部16は、温度センサであり、温度D15を測定する。温度D15は、例えばV10℃であったとする。
測定部16は、温度センサであり、温度D15を測定する。温度D15は、例えばV10℃であったとする。
設定部18は、バックエンドのスロットリング設定値D16を設定する。本実施形態において、バックエンドのスロットリング設定値D16は、例えば、温度D15「V10℃」の場合に性能を「V11%」に制限することを表す情報とする。
測定部16又は設定部18は、例えば、通常時の最大のバックエンド転送レート「V12ギガバイト/秒」を測定又は設定している。
測定部16又は設定部18は、例えば、通常時の最大のバックエンド転送レート「V12ギガバイト/秒」を測定又は設定している。
検出部9Bは、性能をV11%に制限し、最大のバックエンド転送レートD17「V12×(V11/100)=V13ギガバイト/秒」を求める。
検出部9Bは、最大のバックエンド転送レートD17に基づいて、例えば、最大のフロントエンド転送レートD18「V13ギガバイト/秒」を検出する。
決定部12Bは、「V13ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl4を決定する。
検出部9Bは、最大のバックエンド転送レートD17に基づいて、例えば、最大のフロントエンド転送レートD18「V13ギガバイト/秒」を検出する。
決定部12Bは、「V13ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl4を決定する。
図12は、バックグラウンドジョブの帯域消費量に基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する場合のデータの依存関係の一例を示すブロック図である。
検出部9Bは、例えば、最大のバックエンド転送レートD19「V14ギガバイト/秒」を求める。
測定部16又は設定部18は、例えば、NAND制御回路7が不揮発性メモリ4_1〜4_nに対して実行するバックグラウンドジョブの帯域消費量D20を測定又は設定する。例えば、コントローラ3Bによってある処理が実行されると、当該処理に応じてNAND制御回路7が不揮発性メモリ4_1〜4_nをアクセスするバックエンド転送レートが低下する。帯域消費量とは、このある処理を実行することによって低下する転送レートに相当する。
バックグラウンドジョブとしては、例えば、パトロール・リフレッシュ、ガベージコレクションなどがあるが、この図12では、パトロール・リフレッシュの場合を代表して説明している。
パトロール・リフレッシュの帯域消費量D20は、「V15ギガバイト/秒」であるとする。
バックグラウンドジョブとしては、例えば、パトロール・リフレッシュ、ガベージコレクションなどがあるが、この図12では、パトロール・リフレッシュの場合を代表して説明している。
パトロール・リフレッシュの帯域消費量D20は、「V15ギガバイト/秒」であるとする。
検出部9Bは、最大のバックエンド転送レートD19「V14ギガバイト/秒」からバックグラウンドジョブの帯域消費量D20「V15ギガバイト/秒」を引いた値「V14−V15=V16ギガバイト/秒」を求める。そして、検出部9Bは、求めた値「V16ギガバイト/秒」に基づいて、例えば、最大のフロントエンド転送レートD21「V16ギガバイト/秒」を検出する。
決定部12Bは、「V16ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl5を決定する。
決定部12Bは、「V16ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl5を決定する。
図13は、バックグラウンドジョブの帯域消費率に基づいて通信インタフェース5のジェネレーション及びリンク幅を決定する場合のデータの依存関係の一例を示すブロック図である。
検出部9Bは、例えば、最大のバックエンド転送レートD22「V17ギガバイト/秒」を求める。
検出部9Bは、例えば、最大のバックエンド転送レートD22「V17ギガバイト/秒」を求める。
測定部16又は設定部18は、例えば、バックグラウンドジョブの帯域消費率D23「WAF(Write Amplification Factor)=V18」を測定又は設定する。このWAFは、(不揮発性メモリ4_1〜4_nの書き込み量/ホスト装置2の書き込み量)に基づいて求められる。
検出部9Bは、最大のバックエンド転送レートD22とバックグラウンドジョブの帯域消費率D23とに基づいて、例えば、最大のフロントエンド転送レートD24「V17×(1/V18)=V19ギガバイト/秒」を検出する。
決定部12Bは、「V19ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl6を決定する。
決定部12Bは、「V19ギガバイト/秒」用の通信インタフェース5のジェネレーション及びリンク幅Dgl6を決定する。
以上説明した本実施形態においては、記憶装置1Bのコントローラ3Bが測定値又は設定値に基づいて通信インタフェース5のジェネレーション及びリンク幅を変更し、記憶装置1Bの消費電力を抑制することができる。
本実施形態においては、通信インタフェース5のジェネレーション及びリンク幅を、記憶装置1Bの最大のフロントエンド転送レートD2,D8,D14,D18,D21,D24に基づいて決定し、変更することができる。
本実施形態においては、通信インタフェース5のジェネレーション及びリンク幅を、記憶装置1Bの最大のフロントエンド転送レートD2,D8,D14,D18,D21,D24に基づいて決定し、変更することができる。
本実施形態において、最大のフロントエンド転送レートD2,D8,D14,D18,D21,D24は、性能スロットリング設定値D1、又は、最大のバックエンド転送レートD7,D13,D17,D19,D22に基づいて決定することができる。
最大のバックエンド転送レートD7,D13は、不揮発性メモリ4_1〜4_nのNANDインタフェースのトグル周波数D3とチャネル数D4に基づいて求めることができる。
最大のバックエンド転送レートD7,D13は、不揮発性メモリ4_1〜4_nのNANDインタフェースのトグル周波数D3とチャネル数D4に基づいて求めることができる。
最大のバックエンド転送レートD7は、符号化率D6に基づいて求めることができる。
最大のバックエンド転送レートD13は、バックエンドのスロットリング設定値(電力スロットリング設定値)D11に基づいて求めることができる。
バックエンドのスロットリング設定値D11は、消費電力モード設定値D9に基づいて求めることができる。当該消費電力モード設定値D9は、ホスト装置2の指示によって設定されてもよい。
最大のバックエンド転送レートD13は、バックエンドのスロットリング設定値(電力スロットリング設定値)D11に基づいて求めることができる。
バックエンドのスロットリング設定値D11は、消費電力モード設定値D9に基づいて求めることができる。当該消費電力モード設定値D9は、ホスト装置2の指示によって設定されてもよい。
最大のバックエンド転送レートD17は、測定部16によって測定された温度D15とバックエンドのスロットリング設定値(温度スロットリング設定値)D16とに基づいて求めることができる。
バックエンドのスロットリング設定値D16は、ホスト装置2の指示によって設定されてもよい。
バックエンドのスロットリング設定値D16は、ホスト装置2の指示によって設定されてもよい。
最大のフロントエンド転送レートD21,D24は、それぞれバックグラウンドジョブの帯域消費量D20、及び、バックグラウンドジョブの帯域消費率D23に基づいて求めることができる。なお、バックグラウンドジョブは、ガベージコレクションでもよく、パトロール・リフレッシュでもよい。
本実施形態で説明した通信インタフェース5のジェネレーション及びリンク幅の各種の決定処理は、適宜組み合わせることができる。
本実施形態で説明した通信インタフェース5のジェネレーション及びリンク幅の各種の決定処理は、適宜組み合わせることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1,1A,1B…記憶装置、2…ホスト装置、3,3A,3B…コントローラ、4_1〜4_n…不揮発性メモリ、5…通信インタフェース、6,11,11A,11B…記憶部、7,7A…NAND制御回路、8…転送レート制御部、9,9A,9B…検出部、10,10A…検出データ、12,12A,12B…決定部、13,15…インタフェース部、14,14A…設定候補データ、FE,FEA…フロントエンド、BE,BEA…バックエンド、16…測定部、18…設定部、19…測定データ、20…設定データ、P,PF,PB…プロセッサ。
Claims (10)
- 不揮発性メモリと、
ホスト装置と第1の通信を行い、前記不揮発性メモリと第2の通信を行い、前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、
前記第2の通信における第2の転送レートを検出する検出部と、
前記検出部によって検出された前記第2の転送レートに基づいて前記第1の通信における第1の転送レートを決定する決定部と、
前記決定部によって決定された前記第1の転送レートにより前記ホスト装置と前記第1の通信を行うインタフェース部と、
を具備する、記憶装置。 - 前記検出部は、性能を制限するために設定された性能スロットリング設定値に基づいて、前記第1の転送レートをさらに検出し、
前記決定部は、前記検出部によって検出された前記第1の転送レート及び前記第2の転送レートに基づいて前記第1の通信における調整後の転送レートを決定し、
前記インタフェース部は、前記決定部によって決定された前記調整後の転送レートにより前記ホスト装置と前記第1の通信を行う、
請求項1の記憶装置。 - 前記検出部は、前記不揮発性メモリと接続される前記コントローラのチャネルの数と前記第2の通信で用いられる周波数とに基づいて、前記第2の転送レートを求める、請求項1又は請求項2の記憶装置。
- 前記検出部は、消費電力を制限するために設定された電力スロットリング設定値に基づいて、前記第2の転送レートを求める、請求項1又は請求項2の記憶装置。
- 前記検出部は、温度を制限するために設定された温度スロットリング設定値に基づいて、前記第2の転送レートを求める、請求項1又は請求項2の記憶装置。
- 前記検出部は、前記コントローラが前記不揮発性メモリに対して実行するバックグラウンドジョブの帯域消費量に基づいて、前記第2の転送レートを求め、
前記帯域消費量は、前記バックグラウンドジョブを実行することによって低下する転送レートに相当する、
請求項1又は請求項2の記憶装置。 - 前記検出部は、前記コントローラが前記不揮発性メモリに対して実行するバックグラウンドジョブの帯域消費率に基づいて、前記第2の転送レートを求め、
前記帯域消費率は、前記不揮発性メモリの書き込み量/前記ホスト装置の書き込み量、に相当する、請求項1又は請求項2の記憶装置。 - 不揮発性メモリと、
ホスト装置と第1の通信を行い、前記不揮発性メモリと第2の通信を行い、前記不揮発性メモリを制御するコントローラと、
を具備し、
前記コントローラは、
前記第1の通信における第1の転送レートを検出する検出部と、
前記検出部によって検出された前記第1の転送レートに基づいて前記第1の通信における調整後の転送レートを決定する決定部と、
前記決定部によって決定された前記調整後の転送レートにより前記ホスト装置と前記第1の通信を行うインタフェース部と、
を具備する、記憶装置。 - ホスト装置と、不揮発性メモリと当該不揮発性メモリを制御するコントローラとを含む記憶装置との間で第1の通信を行うことと、
前記コントローラと前記不揮発性メモリとの間の第2の通信における第2の転送レートを検出することと、
前記第2の転送レートに基づいて前記第1の通信における第1の転送レートを決定することと、
決定された前記第1の転送レートにより前記ホスト装置と前記第1の通信を行うことと、
を具備する、通信制御方法。 - ホスト装置と、不揮発性メモリと当該不揮発性メモリを制御するコントローラとを含む記憶装置との間で通信を行うことと、
前記通信における転送レートを検出することと、
検出された前記転送レートに基づいて前記通信における調整後の転送レートを決定することと、
決定された前記調整後の転送レートにより前記前記ホスト装置と前記通信を行うことと、
を具備する、通信制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017167155A JP2019046045A (ja) | 2017-08-31 | 2017-08-31 | 記憶装置及び通信制御方法 |
US16/001,143 US11079963B2 (en) | 2017-08-31 | 2018-06-06 | Storage device and communication control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017167155A JP2019046045A (ja) | 2017-08-31 | 2017-08-31 | 記憶装置及び通信制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019046045A true JP2019046045A (ja) | 2019-03-22 |
Family
ID=65434289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017167155A Pending JP2019046045A (ja) | 2017-08-31 | 2017-08-31 | 記憶装置及び通信制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11079963B2 (ja) |
JP (1) | JP2019046045A (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019053522A (ja) * | 2017-09-15 | 2019-04-04 | 東芝メモリ株式会社 | メモリシステムおよび方法 |
JP2019215662A (ja) * | 2018-06-12 | 2019-12-19 | 株式会社日立製作所 | 不揮発性メモリデバイス、及びインターフェース設定方法 |
JP2020149588A (ja) * | 2019-03-15 | 2020-09-17 | キオクシア株式会社 | メモリシステム及びメモリコントローラ |
US11815976B2 (en) * | 2019-05-22 | 2023-11-14 | Qualcomm Incorporated | Bandwidth based power management for peripheral component interconnect express devices |
US11726659B2 (en) * | 2021-03-10 | 2023-08-15 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for data storage with specified data transfer rate |
US11755238B2 (en) | 2021-10-01 | 2023-09-12 | Western Digital Technologies, Inc. | Continuous NAND data-transfer using filling rate evaluation approach |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292465B2 (en) | 2011-12-21 | 2016-03-22 | Intel Corporation | Dynamic link width adjustment |
JP6142494B2 (ja) | 2012-10-09 | 2017-06-07 | 日本電気株式会社 | データ通信装置及びその制御方法、並びにコンピュータ・プログラム |
US9436630B2 (en) | 2013-06-11 | 2016-09-06 | Western Digital Technologies, Inc. | Using dual phys to support multiple PCIe link widths |
US10592122B2 (en) * | 2015-03-31 | 2020-03-17 | Sandisk Technologies Llc | Inherent adaptive trimming |
US10938730B2 (en) * | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Data transmission techniques between systems having different communication speeds |
-
2017
- 2017-08-31 JP JP2017167155A patent/JP2019046045A/ja active Pending
-
2018
- 2018-06-06 US US16/001,143 patent/US11079963B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190065116A1 (en) | 2019-02-28 |
US11079963B2 (en) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2019046045A (ja) | 記憶装置及び通信制御方法 | |
US9685218B2 (en) | Memory device and memory system having the same | |
US20190164594A1 (en) | Memory device and operation method thereof | |
KR101879708B1 (ko) | 통합된 데이터 마스킹, 데이터 포이즈닝, 및 데이터 버스 반전 시그널링 | |
US11669451B2 (en) | Multi-plane switching of non-volatile memory | |
US11500588B2 (en) | Adjusting read voltage levels based on a temperature-dependent slope of the threshold voltage drift of a memory sub-system | |
US20240104030A1 (en) | Scheduling of read operations and write operations based on a data bus mode | |
US11609712B2 (en) | Write operations to mitigate write disturb | |
KR20140001479A (ko) | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 | |
US11899522B2 (en) | Independent thermal throttling temperature control for memory sub-systems | |
US20160328171A1 (en) | Semiconductor memory device, operating method thereof, and data storage device including the same | |
US11977480B2 (en) | Scaling factors for media management operations at a memory device | |
US10956344B2 (en) | Providing information for a controller memory buffer elasticity status of a memory sub-system to a host system | |
KR20180081239A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11809739B2 (en) | Memory system | |
US11340981B2 (en) | Modifying conditions for memory device error connection operations | |
US20230110664A1 (en) | Managing a memory sub-system based on composite temperature | |
US20230131347A1 (en) | Managing thermal throttling in a memory sub-system | |
US20240193080A1 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180830 |