JP7381269B2 - ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法 - Google Patents

ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法 Download PDF

Info

Publication number
JP7381269B2
JP7381269B2 JP2019172185A JP2019172185A JP7381269B2 JP 7381269 B2 JP7381269 B2 JP 7381269B2 JP 2019172185 A JP2019172185 A JP 2019172185A JP 2019172185 A JP2019172185 A JP 2019172185A JP 7381269 B2 JP7381269 B2 JP 7381269B2
Authority
JP
Japan
Prior art keywords
command
storage
nonvolatile memory
memory device
temperature
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.)
Active
Application number
JP2019172185A
Other languages
English (en)
Other versions
JP2021051373A (ja
Inventor
創 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2019172185A priority Critical patent/JP7381269B2/ja
Priority to CN202010121384.8A priority patent/CN112631854B/zh
Priority to TW109106430A priority patent/TWI841689B/zh
Priority to US16/803,324 priority patent/US11714569B2/en
Publication of JP2021051373A publication Critical patent/JP2021051373A/ja
Application granted granted Critical
Publication of JP7381269B2 publication Critical patent/JP7381269B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01KMEASURING TEMPERATURE; MEASURING QUANTITY OF HEAT; THERMALLY-SENSITIVE ELEMENTS NOT OTHERWISE PROVIDED FOR
    • G01K13/00Thermometers specially adapted for specific purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明の実施形態は、ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法に関する。
ストレージ装置においては、搭載部品の保証温度範囲を超えないように、温度を監視する必要がある。このため、ストレージ装置の基板上に温度センサを設け、温度測定を行っていた。しかしながら、熱源と温度センサとの距離による測定誤差があった。
また、メモリチップに設けられた温度センサは、所定のデータアクセスコマンドが入力された時に温度を測定する構成を採っていた。したがって、温度測定のためにストレージ装置におけるデータアクセスを阻害してしまう虞があった。
特開2013-050818号公報
本発明は、上記に鑑みてなされたものであって、ストレージ装置におけるデータアクセスを阻害することなく、温度測定の信頼性を向上させることが可能なストレージコントローラ、ストレージ装置及びストレージ装置の制御方法を提供することを目的とする。
実施形態のストレージコントローラは、不揮発性メモリ装置を備えたストレージ装置の制御を行うストレージコントローラにおいて、前記不揮発性メモリ装置は、温度センサと記憶部を備え、前記ストレージコントローラは、前記不揮発性メモリ装置に対し、第1コマンドを発行し、前記第1コマンドに対応する処理を実行させるとともに、前記温度センサによる温度計測を実行させ、前記温度計測により更新された温度計測値を前記記憶部に格納させ、最後の前記第1コマンドの発行からの経過時間を計測し、計測した前記経過時間が所定の経過時間を経過した場合に前記揮発性メモリ装置に対し、前記第1コマンドとは異なる第2コマンドを発行し、前記温度センサによる温度測定を実行させ、前記温度計測により更新された温度測定値を前記記憶部に格納させ、所定のタイミング毎に、前記不揮発性メモリ装置に第3コマンドを発行し、前記記憶部に格納された前記温度計測値を当該ストレージコントローラに送信させる。
実施形態にかかるストレージ装置のハードウェア構成の一例を説明する図である。 実施形態にかかるストレージ装置の詳細な動作を説明するフローチャートである。 実施形態にかかるストレージ装置の具体的な動作を説明する図である。 実施形態にかかるストレージ装置の別の具体的な動作を説明する図である。
次に好適な実施形態について図面を参照して説明する。
図1は、実施形態にかかるストレージ装置のハードウェア構成の一例を説明する図である。
ストレージ装置10は、PC(Personal Computer)、ワークステーション、またはサーバ装置等の情報処理装置として構成されたホスト装置40にデータを読み書きするためにアクセスされる。ストレージ装置10は、例えばSSD(Solid State Drive)である。
ストレージ装置10は、コントローラ11と、揮発性メモリ12と、不揮発性メモリ13と、を備えている。
コントローラ11は、ストレージ装置10全体を制御する。揮発性メモリ12は、コントローラ11のワークエリア等として機能する。不揮発性メモリ13は、ホスト装置40が実行するプログラムおよびデータ、並びに、MPU21が実行するプログラム等を記憶する。
次に、コントローラ11の詳細な構成について説明する。コントローラ11は、MPU21と、ホストインタフェース(ホストI/F)22と、ウオッチドッグタイマユニット23と、バッファ24と、揮発性メモリコントローラ25と、ECC処理部26と、不揮発性メモリコントローラ27と、を備える。コントローラ11の各要素は通信バス(アドレスバス+データバス)28を介して互いに接続されている。
MPU21は、受信した書き込みコマンドに対し、対応する物理アドレスが示すメモリチップ31の記憶領域へデータの書き込みを行う。また、MPU21は、受信した読み出しコマンドに対し、メモリチップ31の記憶領域から読み出したデータの出力を行う。
ホストインタフェース(ホストI/F)22は、ストレージ装置10とホスト装置40との間の通信を行う。
ウオッチドッグタイマユニット23は、不揮発性メモリ13の温度測定が所定時間以上なされていない場合にタイムアウトとなるタイマを複数備える。
バッファ24は、ホスト装置40から受信したデータ、および、コントローラ11を介してメモリチップ31から読み出したデータを一時的に記憶する。バッファ24は、各種データのバッファリングを行う。
揮発性メモリコントローラ25は、揮発性メモリ12の制御を行う。
ECC処理部26は、ECC(Error Correcting Code)処理を行う。ECC処理部26は、ホスト装置40からホストI/F22を介して受信され、バッファ24に一時記憶された書込データに対して、誤り訂正符号(ECC)を付与する。ECC処理部26により誤り訂正符号が付与された書込データは、コントローラ11を介して不揮発性メモリ13に書き込まれる。
不揮発性メモリコントローラ27は、不揮発性メモリ13の制御を行う。
次に、不揮発性メモリ13の詳細な構成について説明する。不揮発性メモリ13は、並列動作可能な複数のメモリチップ31を備えている。各メモリチップ31は、温度センサ32と、チップコントローラ33と、を備えている。
温度センサ32は、メモリチップ31の温度を検出し温度検出信号を出力する。チップコントローラ33は、所定のコマンド(主としてデータアクセスコマンド)が入力された場合に、温度センサ32からの温度検出信号に基づいて、検出温度データとして更新する。チップコントローラ33は、所定の温度読出コマンドに応じて検出温度データを出力する。チップコントローラ33は、検出温度データを更新可能に記憶するRAM、フラッシュメモリ等の図示しないメモリを備えている。
次に、ストレージ装置10が、受信したデータをメモリチップ31に書き込む動作の概要を説明する。
ストレージ装置10のコントローラ11は、ホストI/F22を介して、論理アドレスおよび書込データを含むデータアクセスコマンドとしての書込コマンドを受信すると、書込データをバッファ24に一時的に記憶させる。バッファ24に一時的に記憶された書込データは、ECC処理部26によって誤り訂正符号が付与される。誤り訂正符号が付与された書込データは、不揮発性メモリコントローラ27を介して、論理アドレスに対応する物理アドレスが示すメモリチップ31の記憶領域に書き込まれる。論理アドレスに対応する物理アドレスは、揮発性メモリ12に記憶された図示しないアドレス変換テーブルを参照することで得られる。
次に、ストレージ装置10のメモリチップ31からデータを読み出す動作の概要を説明する。
ストレージ装置10のコントローラ11は、ホストI/F22を介して、論理アドレスを含むデータアクセスコマンドとしての読出コマンドを受信すると、不揮発性メモリコントローラ27を介して、論理アドレスに対応する物理アドレスが示すメモリチップ31の記憶領域から読出データを読み出す。論理アドレスに対応する物理アドレスは、揮発性メモリ12に記憶された図示しないアドレス変換テーブルを参照することで得られる。ストレージ装置10のコントローラ11は、読出データをバッファ24に一時的に記憶させる。バッファ24に一時的に記憶された読出データは、ECC処理部26によって、誤りがあるか否かが検査される。誤りがあった場合、ECC処理部26は、読出データに付与されている誤り訂正符号を用いて誤りを訂正し、誤り訂正符号を削除する。また、誤りが無かった場合、ECC処理部26は、読出データに付与されている誤り訂正符号を削除する。ECC処理部26は、誤り訂正符号が削除された読出データを、バッファ24に一時的に記憶させる。コントローラ11は、ホストI/F22を介して、誤り訂正符号が削除された読出データを出力する。
なお、ECC処理部26は、図1に示すように、バスに接続された集積回路(ハードウェア回路)として実現するものとしているが、これに限定されるものではなく、CPU6がプログラムを実行することによって実現されるものとしてもよい。
次に、実施形態にかかるストレージ装置10の詳細な動作を説明する。図2は、実施形態にかかるストレージ装置10の詳細な動作を説明するフローチャートである。ストレージ装置10の起動時において、ウオッチドッグタイマユニット23を構成している全てのタイマは、リスタートされるものとする。また、図2に示す処理は、割込タイマにより所定時間毎に繰り返して行われる処理である。
コントローラ11のMPU21は、現在時刻が温度読出タイミングであるか否かを判断する(S11)。現在時刻が温度読出タイミングであるとは、前回の温度読出タイミングから所定時間が経過した時刻が現在時刻であるということである。前回の温度読出タイミングは、例えば、不揮発性メモリに記憶される。なお、ストレージ装置10の起動時においては、例えば、ストレージ装置10の起動時から所定時間が経過した時刻に初回の温度読出タイミングが設定される。
S11の判断において、温度読出タイミングではない場合には(S11;No)、MPU21は、ウオッチドッグタイマユニット23にタイムアウトしたタイマが有るか否かを判断する(S12)。
S11の判断において、温度読出タイミングである場合には(S11;Yes)、コントローラ11のMPU21は、温度読出コマンドをNANDコントローラを介してメモリチップ31に送出する(S17)。そして、MPU21は、処理を終了する(終了)。温度読出コマンドを受信すると、メモリチップ31のチップコントローラ33は、温度センサ32から検出温度データを読み出す。そして、メモリチップ31のチップコントローラ33は、コントローラ11に検出温度データを送信する。
S12の判断においてタイムアウトしたタイマがない場合には(S12;No)、MPU21は、いずれかのメモリチップ31に対し、前回の温度読出タイミングの後にアクセスコマンドとしての書込コマンド、読出コマンドあるいは消去コマンドのいずれかを発行したか否かを判断する(S13)。なお、ストレージ装置10の起動時から一度も温度読出タイミングが到来していない場合は、ストレージ装置10の起動時から後にアクセスコマンドとしての書込コマンド、読出コマンドあるいは消去コマンドのいずれかを発行したか否かを判断する。
S13の判断において、MPU21は、全てのメモリチップ31に対してアクセスコマンドを発行していない場合には(S13;No)、再び処理をS11に移行する。
S13の判断において、いずれかのメモリチップ31に対し、アクセスコマンドを発行した場合には(S13;Yes)、MPU21は、当該アクセスコマンドを受信した対応するメモリチップ31に対応するタイマをリスタートする(S14)。そして、MPU21は、処理を終了する(終了)。
S12の判断においてタイムアウトしたタイマがある場合には(S12;Yes)、MPU21は、当該タイマをリスタートさせる(S15)。そして、MPU21は、当該タイマに対応する一つ又は複数のメモリチップ31のチップコントローラ33に対し、所定のコマンドとして、ダミーアクセスコマンドを発行する(S16)。そして、MPU21は、処理を終了する(終了)。ダミーアクセスコマンドを受信した一つ又は複数のメモリチップ31のチップコントローラ33は、検出温度データを更新する。
したがって、全てのメモリチップ31は、たとえアクセスコマンドを受信しなくても、少なくともタイマのタイムアウト時間内に一度は、検出温度データを更新する。
ここで、実施形態にかかるストレージ装置10の具体的な動作について説明する。図3は、実施形態にかかるストレージ装置10の具体的な動作を説明する図である。図3においては、ウオッチドッグタイマユニットを構成している一つのタイマのカウント値の増加をアナログ的に実線で表示している。縦軸はタイマカウント値、横軸は時間である。時刻t4と時刻t5の時間差は、タイマのタイムアウト時間には到っていないものとする。
以下の説明においては、MPU21が、アクセスコマンドとして、メモリチップ31からデータを読み出すための読出コマンドR-C及びメモリチップ31へデータを書き込むための書込コマンドW-Cを発行した場合について説明する。
図3に示すように、時刻t1において、MPU21から読出コマンドR-Cが出力されると、不揮発性メモリコントローラ27の制御下でメモリチップ31のコントローラは、対応するデータを読み出して出力する。メモリチップ31のコントローラは、温度センサに検出温度データを更新させる。
これと並行して、MPU21は、当該読出コマンドR-Cの対象となっているメモリチップ31に対応するウオッチドッグタイマユニット23のタイマをリスタートさせる。タイマがリスタートされると、タイマのカウント値は、0から始まり徐々に増加する。
そして、時刻t2において、再びMPU21から読出コマンドR-Cが出力されると、メモリチップ31のコントローラは、温度センサに検出温度データを更新させる。MPU21は、当該読出コマンドR-Cの対象となっているメモリチップ31に対応するウオッチドッグタイマユニット23のタイマをリスタートさせる。時刻t3及び時刻t4においても同様である。
その後、時刻t5において、MPU21から書込コマンドW-Cが出力される。不揮発性メモリコントローラ27の制御下でメモリチップ31のコントローラは、書込コマンドW-Cに対応するデータを書き込むとともに、温度センサに検出温度データを更新させる。
これと並行して、MPU21は、ウオッチドッグタイマユニット23において、当該アクセスコマンドに対応するメモリチップ31に対応するタイマをリスタートさせる。タイマがリスタートされると、タイマのカウント値は、0から始まり徐々に増加する。
その後、時刻t6及び時刻t7において、MPU21から書込コマンドW-Cが出力された場合にも、同様にデータの書き込み、検出温度データの更新及びタイマのリスタートがなされる。
図4は、実施形態にかかるストレージ装置10の別の具体的な動作を説明する図である。図4は、ウオッチドッグタイマユニット23の一つのタイマのカウント値の増加をアナログ的に実線で表示している。縦軸はタイマカウント値、横軸は時間である。図4に示すように、時刻t11において、MPU21から読出コマンドR-Cが出力されると、不揮発性メモリコントローラ27の制御下でメモリチップ31のコントローラは、対応するデータを読み出して出力する。メモリチップ31のコントローラは、温度センサに検出温度データを更新させる。
これと並行して、MPU21は、当該読出コマンドR-Cの対象となっているメモリチップ31に対応するタイマをリスタートさせる。タイマがリスタートされると、タイマのカウント値は、0から始まり徐々に増加する。
そして、時刻t12において、再びMPU21から読出コマンドR-Cが出力されると、メモリチップ31のチップコントローラ33は、検出温度データを更新する。MPU21は、当該読出コマンドR-Cの対象となっているメモリチップ31に対応するタイマをリスタートさせる。時刻t13においても同様である。
その後、時刻t14において、時刻t13においてリスタートさせたタイマがタイムアウトすると、当該タイマは、その旨をMPU21に通知する。
通知を受けると、MPU21は、通知元のタイマをリスタートさせる。タイマがリスタートされると、タイマのカウント値は、0から始まり徐々に増加する。続いて、MPU21は、通知元のタイマに対応するメモリチップ31のチップコントローラ33に対し、ダミーアクセスコマンドとして、検出温度データ更新コマンドTD-Cを出力する。
検出温度データ更新コマンドTD-Cを受信すると、メモリチップ31のチップコントローラ33は、温度検出データを更新する。
これと並行して、MPU21は、当該メモリチップ31に対応するタイマをリスタートさせる。タイマがリスタートされると、タイマのカウント値は、0から始まり徐々に増加する。
その後、時刻t15、及び時刻t16において、MPU21から書込コマンドW-Cが出力された場合には、データの書き込み、検出温度データの更新及びタイマのリスタートがなされる。
MPU21は、あるメモリチップ31について、検出温度データの更新を含む前回のアクセスコマンドの発行から所定時間以上の時間(タイマに予め設定されたタイムアウト時間に相当する時間)が経過している場合には、検出温度データの更新をメモリチップ31のチップコントローラ33に行わせるためのダミーアクセスコマンドを当該メモリチップ31に対して発行する。このため、少なくともウオッチドッグタイマに予め設定されたタイムアウト時間に相当する時間毎に、検出温度データが更新される。
なお、MPU21は、検出温度データの更新をメモリチップ31のチップコントローラ33に行わせるためのダミーアクセスコマンドの発行直後に、検出温度データの読み出しを行うコマンド(TR-C)を発行することで最新の検出温度データを取得することができる。読出コマンドTR-Cは、データの書き込み、読み出し、消去等のアクセスコマンドとは、非同期に発行可能である。
実施形態にかかるストレージ装置10によれば、メモリチップ31が備えている温度センサの検出温度データの更新が、メモリチップ31のデータアクセスを不必要に阻害することなく行える。また、実施形態にかかるストレージ装置10によれば、少なくともタイマのタイムアウト時間内に一度は、検出温度データが更新される。このため、長期にわたって更新されないことによる検出温度データの信頼性の低下を招くことがない。
以上の説明においては、ストレージ装置10のホストI/Fのインターフェース規格については詳細に述べなかったが、SATA(Serial AT Attachment)、SAS(Serial Attached SCSI)、またはPCIe(Peripheral Component Interconnect Express)等のインターフェース規格を用いてホスト装置40と接続することが可能である。この場合において、ストレージ装置10は、論理アドレス(LBA: Logical Block Address)を用いてデータをアクセスするブロックストレージであってもよく、または、イーサーネットで接続され、キーと呼ばれる任意長のデータに紐づけられた可変長のデータをアクセスするキーバリュードライブ(Key-Value Drive)であってもよい。
ストレージ装置10は、例えば、データセンタ、クラウドシステム、または基幹システム等において、サーバ装置等のホストに接続されるSSDとして用いられる。なお、ストレージ装置10は、OS(Operating System)等のデータが記憶された情報処理装置(例えば、ホスト装置40)に内蔵されたSSDであってもよく、情報処理装置に外部から接続される外付け型のSSDであってもよい。
また、実施形態にかかるコントローラ11のMPU21で実行されるプログラムは、例えば、インストール可能な形式または実行可能な形式のファイルで、メモリカード、SSD(Solid State Drive)等の半導体記憶装置、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供されてもよい。
また、実施形態にかかるコントローラ11のMPU21で実行されるプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードされることにより提供されてもよい。また、実施形態にかかるSSDコントローラ3のCPU6で実行されるプログラムは、インターネット等のネットワーク経由で提供または配布されてもよい。また、実施形態にかかるコントローラ11のMPU21で実行されるプログラムは、ROM(Read Only Memory)等に予め組み込んで提供されてもよい。
また、実施形態にかかるコントローラ11のMPU21で実行されるプログラムは、MPU21で実行される各機能をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、CPU6が記憶装置(DRAM5またはNAND型フラッシュメモリ4)からプログラムを読み出して実行することによって、各機能がストレージ装置1上で実現される。
以上のように本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、および変更を行うことができる。この実施形態およびその変形は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 ストレージ装置
11 コントローラ
12 揮発性メモリ
13 不揮発性メモリ
21 MPU
22 ホストインタフェース(ホストI/F)
23 ウオッチドッグタイマユニット
24 バッファ
25 揮発性メモリコントローラ
26 ECC処理部
27 不揮発性メモリコントローラ
31 メモリチップ
32 温度センサ
33 チップコントローラ
40 ホスト装置

Claims (6)

  1. 不揮発性メモリ装置を備えたストレージ装置の制御を行うストレージコントローラにおいて、
    前記不揮発性メモリ装置は、温度センサと記憶部を備え、
    前記ストレージコントローラは、前記不揮発性メモリ装置に対し、第1コマンドを発行し、前記第1コマンドに対応する処理を実行させるとともに、前記温度センサによる温度計測を実行させ、前記温度計測により更新された温度計測値を前記記憶部に格納させ、
    最後の前記第1コマンドの発行からの経過時間を計測し、
    計測した前記経過時間が所定の経過時間を経過した場合に前記揮発性メモリ装置に対し、前記第1コマンドとは異なる第2コマンドを発行し、前記温度センサによる温度測定を実行させ、前記温度計測により更新された温度測定値を前記記憶部に格納させ、
    所定のタイミング毎に、前記不揮発性メモリ装置に第3コマンドを発行し、前記記憶部に格納された前記温度計測値を当該ストレージコントローラに送信させる、
    ストレージコントローラ。
  2. 温度センサ及び記憶部を有する不揮発性メモリ装置と、
    前記不揮発性メモリ装置に接続されたメモリコントローラと、
    を備えたストレージ装置であって、
    前記メモリコントローラは、第1コマンドを前記不揮発性メモリ装置に発行し、
    最後の前記第1コマンドの発行からの経過時間を計測し、
    前記経過時間が所定の経過時間に至った場合に、前記第1コマンドとは異なる第2コマンドを前記不揮発性メモリ装置に発行し、
    所定のタイミング毎に、不揮発性メモリ装置に第3コマンドを発行する、
    前記不揮発性メモリ装置は、前記第1コマンドに基づいて、前記第1コマンドに対応する処理を実行し、さらに前記温度センサによる温度計測を実行し、前記温度計測により更新された温度計測値を前記記憶部に格納し、
    前記第2コマンドに基づいて、前記温度センサによる温度計測を実行し、前記温度計測により更新された温度計測値を前記記憶部に格納し、
    前記第3コマンドに基づいて、前記メモリコントローラに前記記憶部に格納された温度計測値を送信する、
    ストレージ装置。
  3. 前記経過時間が所定時間となるとタイムアウトを通知するタイマ部を備え、
    前記ストレージ装置は、複数の記憶部を備え、
    前記タイマ部は、複数のタイマを有し、各前記タイマは、前記複数の記憶部毎に設けられ、
    前記メモリコントローラは、前記複数のタイマの何れかから前記タイムアウトが通知された場合に、当該タイマに対応する前記記憶部に対し、前記温度計測値を更新させるためのコマンドを発行する、
    請求項2記載のストレージ装置。
  4. 前記記憶部は、NANDフラッシュメモリとして構成されている、
    請求項2又は請求項3記載のストレージ装置。
  5. 前記第1コマンドは、データ書込、データ読出、データ消去を含むアクセスコマンドである、
    請求項4記載のストレージ装置。
  6. 不揮発性メモリ装置を備えたストレージ装置の制御方法であって、
    前記不揮発性メモリ装置は、温度センサと記憶部を備え、
    前記不揮発性メモリ装置に対し、第1コマンドを発行し、前記第1コマンドに対応する処理を実行させるとともに、前記温度センサによる温度計測を実行させ、前記温度計測により更新された温度計測値を前記記憶部に格納させ、
    最後の前記第1コマンドの発行からの経過時間を計測し、
    計測した前記経過時間が所定の経過時間を経過した場合に前記揮発性メモリ装置に対し、前記第1コマンドとは異なる第2コマンドを発行し、前記温度センサによる温度測定を実行させ、前記温度計測により更新された温度測定値を前記記憶部に格納させ、
    所定のタイミング毎に、前記不揮発性メモリ装置に第3コマンドを発行し、前記記憶部に格納された前記温度計測値を、前記ストレージ装置の制御を行うストレージコントローラに送信させる、
    ストレージ装置の制御方法。
JP2019172185A 2019-09-20 2019-09-20 ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法 Active JP7381269B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019172185A JP7381269B2 (ja) 2019-09-20 2019-09-20 ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法
CN202010121384.8A CN112631854B (zh) 2019-09-20 2020-02-26 存储控制器、存储装置及其控制方法
TW109106430A TWI841689B (zh) 2019-09-20 2020-02-27 儲存控制器、儲存裝置及其控制方法
US16/803,324 US11714569B2 (en) 2019-09-20 2020-02-27 Storage controller, storage device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019172185A JP7381269B2 (ja) 2019-09-20 2019-09-20 ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法

Publications (2)

Publication Number Publication Date
JP2021051373A JP2021051373A (ja) 2021-04-01
JP7381269B2 true JP7381269B2 (ja) 2023-11-15

Family

ID=74880868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019172185A Active JP7381269B2 (ja) 2019-09-20 2019-09-20 ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法

Country Status (3)

Country Link
US (1) US11714569B2 (ja)
JP (1) JP7381269B2 (ja)
CN (1) CN112631854B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7413908B2 (ja) * 2020-04-21 2024-01-16 富士通株式会社 ストレージ制御装置およびバックアップ制御プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013050818A (ja) 2011-08-30 2013-03-14 Toshiba Corp メモリシステム
US20190018611A1 (en) 2017-07-17 2019-01-17 SK Hynix Inc. Memory system and method of operating the same

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259064A (ja) * 2001-03-06 2002-09-13 Matsushita Electric Ind Co Ltd データ記憶装置
CN101578614A (zh) * 2007-01-30 2009-11-11 松下电器产业株式会社 非易失性存储装置、非易失性存储系统及存取装置
JP4372189B2 (ja) 2007-12-27 2009-11-25 株式会社東芝 情報処理装置及び不揮発性半導体メモリドライブ
CN102369579B (zh) 2008-12-30 2015-01-14 美光科技公司 非易失性存储器的温度警报和低速率刷新
US8472274B2 (en) 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
CN103035282B (zh) * 2011-09-30 2016-01-20 群联电子股份有限公司 存储器储存装置、存储器控制器与温度管理方法
US8787105B2 (en) 2012-05-10 2014-07-22 Nanya Technology Corporation Dynamic random access memory with multiple thermal sensors disposed therein and control method thereof
TW201541457A (zh) 2014-04-29 2015-11-01 Acer Inc 電子裝置以及控制方法
KR102251810B1 (ko) 2014-09-30 2021-05-13 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치에 대한 제어 방법
JP6381480B2 (ja) 2015-05-12 2018-08-29 東芝メモリ株式会社 半導体装置
CN107068185A (zh) 2016-11-10 2017-08-18 宜鼎国际股份有限公司 延长快闪记忆体资料保存期的方法及其装置
KR20180130872A (ko) * 2017-05-30 2018-12-10 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20190012771A (ko) * 2017-07-28 2019-02-11 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
KR20190059633A (ko) * 2017-11-23 2019-05-31 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 비휘발성 메모리 장치의 동작 방법
CN109358984B (zh) * 2018-09-17 2020-12-11 至誉科技(武汉)有限公司 利用温度均衡数据恢复方法进行数据恢复的存储装置
US11194511B2 (en) * 2018-12-31 2021-12-07 Micron Technology, Inc. Arbitration techniques for managed memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013050818A (ja) 2011-08-30 2013-03-14 Toshiba Corp メモリシステム
US20190018611A1 (en) 2017-07-17 2019-01-17 SK Hynix Inc. Memory system and method of operating the same

Also Published As

Publication number Publication date
US20210089227A1 (en) 2021-03-25
US11714569B2 (en) 2023-08-01
CN112631854B (zh) 2024-05-10
TW202113611A (zh) 2021-04-01
JP2021051373A (ja) 2021-04-01
CN112631854A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
US11151027B2 (en) Methods and apparatuses for requesting ready status information from a memory
US10114675B2 (en) Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
US20190079697A1 (en) Storage device
US10475516B2 (en) Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method
US10209897B2 (en) Storage device and control method of the same
US20170308319A1 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
US20160179392A1 (en) Non-volatile memory device
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
TW201945930A (zh) 使用標準化資料儲存及擷取協定的用於資料編碼及解碼之方法及設備
US9880749B2 (en) Storage method and device for controlling the output timing of commands based on a hold time
US10055356B2 (en) Memory device and method for controlling memory device
JP2016184402A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリ制御方法
JP7381269B2 (ja) ストレージコントローラ、ストレージ装置及びストレージ装置の制御方法
US20200257463A1 (en) Data Storage Systems and Methods for Self Adaptive Chip-Enable Setup Time
TWI841689B (zh) 儲存控制器、儲存裝置及其控制方法
US11029878B2 (en) Information processing system
WO2015170702A1 (ja) ストレージ装置と情報処理システム及びストレージ制御方法とプログラム
US10705827B2 (en) Method for updating system information of a computer device
TWI585676B (zh) 資料儲存裝置、記憶體控制器及其操作方法
TWI503841B (zh) 寫入方法、記憶體控制器與記憶體儲存裝置
US20190163399A1 (en) Information processing system and information processing method
WO2018220714A1 (ja) ストレージ装置およびメモリデバイス制御方法
JP6263068B2 (ja) 半導体記憶装置
JP2023161884A (ja) メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231102

R151 Written notification of patent or utility model registration

Ref document number: 7381269

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151