JP6855704B2 - ストレージシステム、ストレージ制御装置及びデータ格納方法 - Google Patents

ストレージシステム、ストレージ制御装置及びデータ格納方法 Download PDF

Info

Publication number
JP6855704B2
JP6855704B2 JP2016162270A JP2016162270A JP6855704B2 JP 6855704 B2 JP6855704 B2 JP 6855704B2 JP 2016162270 A JP2016162270 A JP 2016162270A JP 2016162270 A JP2016162270 A JP 2016162270A JP 6855704 B2 JP6855704 B2 JP 6855704B2
Authority
JP
Japan
Prior art keywords
data
storage
memory area
garbage collection
storage device
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
JP2016162270A
Other languages
English (en)
Other versions
JP2018032105A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016162270A priority Critical patent/JP6855704B2/ja
Priority to US15/622,642 priority patent/US10416907B2/en
Publication of JP2018032105A publication Critical patent/JP2018032105A/ja
Application granted granted Critical
Publication of JP6855704B2 publication Critical patent/JP6855704B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/065Replication mechanisms
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、ストレージシステム、ストレージ制御装置及びデータ格納方法に関する。
近年、ストレージシステムにおいて、Solid State Drive(SSD)がデータを格納するストレージ装置として利用されている。SSDは、データ格納部として不揮発性メモリであるフラッシュメモリを含み、Hard Disk Drive(HDD)に比べて格納されたデータへのランダムアクセス特性などにおいて優位性を有する。
フラッシュメモリは、データ格納領域として複数のブロックを有し、各ブロックは更に複数のページを含む。フラッシュメモリへのデータの書込み及びフラッシュメモリからのデータの読出しは、ページ単位で実行される。尚、フラッシュメモリにおいてはデータが書込まれたページへのデータの上書きを行うことができない。そのため、既にデータが格納されたページに新たなデータを格納するためには、一度当該ページのデータを消去し、その後に新たなデータを格納する必要がある。
また、フラッシュメモリに格納されたデータの消去はブロック単位でしか行うことができない。例えば、第1ブロックに含まれる第1ページには有効データが格納され、第1ブロックに含まれる第2ページには不要データが格納されている場合、第2ページに格納された不要データだけを選択的に消去することはできない。そのため、不要データによってフラッシュメモリの空き容量が圧迫される場合、不要データを削除して空き容量を確保するためには、第1ページに格納されている有効データを第2ブロックに退避させたうえで、第1ブロック全体のデータの消去を行う必要がある。
また、例えばホストサーバのような情報処理装置が、データの論理アドレスに連続性がないデータをSSDに書込む場合、データがSSD内において離散的に格納され、空き容量が減少する原因となる。このような場合、空き容量を増加させる処理として、ガベージコレクションが知られている。ガベージコレクションは一般的に、SSDが自身の記憶容量のうち空き容量が所定値以下になったことを検出することにより実行が開始される。尚、本願明細書において「空き容量」とは、SSDの有する物理容量から、ホストサーバなどの情報処理装置が使用可能な容量である論理容量を差し引いた値であり、余裕領域と呼ばれる領域の容量に相当する。ガベージコレクションの実行においては、データの一次的な退避などの処理が余裕領域を用いて行われる。
特開2014―059850号公報 特開平7−0234763号公報
ガベージコレクションが実行されているフラッシュメモリに対してデータの書込みを行うことはできない。そのため、ガベージコレクションが実行されている最中に、外部の情報処理装置、例えばストレージ装置にアクセス可能なホストサーバからデータの書込みの要求があった場合、当該書込みの要求はガベージコレクションの実行が完了するまで待たされる。そしてガベージコレクションの実行が完了した後、当該書込みの要求に基づくデータの書込みがフラッシュメモリに対して実行される。そのため、ホストサーバに対するSSDからの応答速度が低下することになる。本開示は、ガベージコレクションの実行中にストレージ装置にデータ書込みの要求があった場合に、書込みの要求に対する応答速度が低下することを抑制することを目的とするものである。
開示のストレージシステムは、第1メモリ領域及び第2メモリ領域を有し、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置と、前記ストレージ装置に接続されたストレージ制御装置と、を含み、前記ストレージ制御装置は、第1データの書込みを要求する第1コマンドを受信し、前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示し、前記第1データのデータ量に基づき、前記第1メモリ領域おける前記ガベージコレクションの実行の要否を判定し、前記第1データの前記データ量に基づいて前記ガベージコレクションの実行が必要と判定された場合、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示し、前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドを受信した場合に、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示することを特徴とする。
ストレージ装置内においてガベージコレクションが実行されている最中に、ストレージ装置にデータ書込みの要求があった場合であっても、データ書込みの要求に対する応答速度の低下を抑制することができる。
情報処理装置、ストレージ制御装置、ストレージ装置及び操作端末を含むシステムの構成図である。 ストレージ制御装置のハードウェアを示す図である。 ストレージ装置のハードウェアを示す図である。 ストレージ装置において実行されるガベージコレクションを説明するための図である。 比較例におけるデータの格納及びガベージコレクションの処理概要図である。 実施例におけるデータの格納及びガベージコレクションの処理概要図である。 実施例におけるデータの格納及びガベージコレクションの処理概要図である。 実施例におけるCPUの機能ブロック図である。 実施例においてCPUによって実行される第1のダミーデータ送信に関する処理のフローチャートである。 実施例においてCPUによって実行される第2のダミーデータ送信に関する処理のフローチャートである。 実施例におけるコマンドテーブルの一例である。 実施例においてCPUによって実行される処理のうち、主にコマンドテーブルの作成に関する処理のフローチャートである。 実施例においてCPUによって実行される処理のうち、主にガベージコレクションの指示に関する処理のフローチャートである。
図1は、情報処理装置100、ストレージ制御装置200、ストレージ装置300及び操作端末400を含むシステム1の構成図である。情報処理装置100は例えばホストサーバであり、必要に応じてデータをストレージ装置300に格納させ、またデータをストレージ装置300から読み出す。ストレージ制御装置200は例えばストレージ装置300を制御するためのControl Module(CM)である。ストレージ装置300はデータを記憶するデータ格納装置であり、例えばSSDである。操作端末400は、ストレージ制御装置200を操作するための装置であり、例えばストレージ制御装置200に接続されたPersonal Computer(PC)である。
情報処理装置100は、データをストレージ装置300に格納させる場合、ストレージ制御装置200に対してデータ及びデータ書込みコマンドを送信する。ストレージ制御装置200は情報処理装置100から受信したデータ及びデータ書込みコマンドに基づいて、ストレージ装置300に対してデータの格納を指示する。ストレージ装置300は、ストレージ制御装置200から受信したデータをストレージ装置300に含まれるデータ格納部、例えばフラッシュメモリに格納する。
またストレージ装置300は、データをフラッシュメモリに格納した後に、データ格納が完了したことを示す完了通知をストレージ制御装置200へ送信する。ストレージ制御装置200は、ストレージ装置300から受信した完了通知に基づき、データ書込みが完了したことを情報処理装置100へ通知する。本明細書においては、ストレージ制御装置200がストレージ装置300に対してデータの格納を指示してから、ストレージ制御装置200がストレージ装置300からデータ格納の完了通知を受信するまでの時間が、データ書込みコマンドに対する応答時間として定義される。尚、図1においては、情報処理装置100及びストレージ装置300はそれぞれ一つずつストレージ制御装置200に接続されているが、複数の情報処理装置100及び複数のストレージ装置300が、ストレージ制御装置200に接続されてもよい。また複数のストレージ装置300はRedundant Arrays of Inexpensive Disks(RAID)グループを構成してもよい。
図2は、ストレージ制御装置200のハードウェアを示す図である。ストレージ制御装置200は、Central Processing Unit(CPU)210と、Read Only Memory(ROM)250と、Random Access Memory(RAM)255と、Channel Adaptor(CA)260と、インターフェースカード270と、Input Output Controller(IOC)280と、Expander(EXP)290とを有する。CPU210は、ROM250に格納されたコンピュータプログラムをRAM255にロードして実行することにより、所定のデータ処理を行う。CPU210は、ハードウェアプロセッサの一例であり、Micro Control Unit(MCU)、Micro Processing Unit(MPU)、Digital Signal Processor(DSP)、Field Programmable Gate Array(FPGA)等がCPU210の代わりに用いられてもよい。
ROM250には、CPU210によって実行されるコンピュータプログラム等が格納される。ROM250は不揮発性メモリデバイスの一例であり、Mask Read Only Memory(マスクROM)や、Programable Read Only Memory(PROM)、フラッシュメモリ、Magnetoresistive Random Access Memory(MRAM)、Resistance Random Access Memory(ReRAM)、Ferroelectric Random Access Memory(FeRAM)等が適用可能である。RAM255には、ROM250に格納されているコンピュータプログラムがロードされる。またRAM255には、CPU210によって処理されるデータが保持される。RAM255は揮発性メモリデバイスの一例であり、Static Random Access Memory(SRAM)やDynamic Random Access Memory(DRAM)等が適用可能である。CA260は、情報処理装置100に対するインターフェースとして機能する。インターフェースカード270は操作端末400とのインターフェースとして機能する。IOC280は情報処理装置100とストレージ装置300との間で行われるデータの送受信を制御する。EXP290は、情報処理装置100とストレージ装置300との間で行われるデータの送受信を中継する。
図3は、ストレージ装置300のハードウェアを示す図である。ストレージ装置300は、CPU310、ROM350、RAM355、フラッシュメモリ360及びインターフェースカード370を有する。CPU310は、ROM350に格納されたコンピュータプログラムをRAM355にロードして実行することにより、所定のデータ処理を行う。例えばCPU310は、フラッシュメモリ360の空き容量が所定値以下に減少すると、フラッシュメモリ360のガベージコレクションを実行する。CPU310は、ハードウェアプロセッサの一例であり、MCU、MPU、DSP、FPGA等がCPU310の代わりに用いられてもよい。
ROM350には、CPU310によって実行されるコンピュータプログラム等が格納される。ROM350は不揮発性メモリデバイスの一例であり、マスクROMや、PROM、フラッシュメモリ、MRAM、ReRAM、又はFeRAM等が適用可能である。RAM355には、ROM350に格納されているコンピュータプログラムがロードされる。またRAM355には、CPU310によって処理されるデータが保持される。RAM355は揮発性メモリデバイスの一例であり、SRAMやDRAM等が適用可能である。
フラッシュメモリ360はデータ格納部であり、ストレージ制御装置200から送信されたデータがフラッシュメモリ360に格納される。フラッシュメモリ360は、例えばNAND型のフラッシュメモリである。フラッシュメモリ360は複数のフラッシュメモリチップを含んでもよい。インターフェースカード370はストレージ制御装置200に対するインターフェースとして機能する。
図4は、ストレージ装置300においてフラッシュメモリ360に対して実行されるガベージコレクションを説明するための図である。フラッシュメモリ360には、データ記憶領域として複数のブロックが含まれ、また各ブロックには複数のページが含まれる。1ブロックには例えば64ページが含まれる。また各ページのデータ容量は例えば16Kバイトである。フラッシュメモリ360においては、データの書込み及び読出しはページ単位で行われる。またフラッシュメモリ360においては、ある領域にデータが格納された後に当該領域に対して別のデータの上書きを行うことはできない。そのため、当該領域のデータを更新する場合は、当該領域に既に格納されているデータを消去した後、当該領域に更新データを格納する必要がある。尚、データの消去は複数のページを含むブロック単位で行われる。
フラッシュメモリ360に対して格納されるデータのアドレスが連続的でない場合、つまりランダムなアドレスに対してデータが格納される場合には、データ格納領域が有効に使用されず、データが格納されていないにも関わらずデータを格納することができない領域が発生する場合がある。また、フラッシュメモリ360に格納されたデータであって既に不要となったデータがフラッシュメモリ360内に残存すると、新たなデータを格納するための空き容量が減少する。そこで、不要になったデータを消去し、また離散的に格納されているデータの格納場所を整理するガベージコレクションが実行される。
図4の(A)はガベージコレクション前のフラッシュメモリ360のデータ保持領域の様子を示し、図4の(B)はガベージコレクション後のフラッシュメモリ360のデータ保持領域の様子を示す。尚、図中において、格子上に配置された複数の領域の各々がブロックに相当し、黒塗の領域は何等かのデータが格納されているブロックを意味し、白塗の領域はデータが格納されていないブロックを意味する。ガベージコレクションが実行されることにより、空き容量を増加させ、また離散的に格納されていたデータを再配置させることができる。
ここで実施例に対する比較例を用いて、ストレージ装置300においてガベージコレクションが実行されている最中に、ストレージ制御装置200からストレージ装置300へのデータ格納の指示がなされた場合の問題点を説明する。
図5は、比較例におけるデータの格納及びガベージコレクションの処理概要図である。処理S500において情報処理装置100は、ストレージ制御装置200に対して論理ボリュームの設定を依頼する。論理ボリュームとは、ストレージ装置300内に論理的に設定されるデータ格納領域であって、ここでは情報処理装置100がデータを格納するために確保される領域を意味する。処理S501においてストレージ制御装置200は、情報処理装置100からの依頼に基づいてストレージ装置300内に論理ボリュームを設定する。また処理S502においてストレージ制御装置200は、設定された論理ボリュームについて初期化処理を行う。具体的には、設定された論理ボリュームに含まれる全てのブロックについてデータ消去の処理を行う。処理S503においてストレージ制御装置200は、情報処理装置100に対して、設定された論理ボリュームに関する通知を行う。処理S504において情報処理装置100は、データ書込みコマンド及び書込み対象のデータをストレージ制御装置200へ送信する。ストレージ制御装置200は、データ書込みコマンド及びデータを受信し、処理S505においてデータをストレージ装置300へ送信し、データの格納をストレージ装置300へ指示する。処理S506においてストレージ装置300は、データをフラッシュメモリ360へ格納する。処理S507においてストレージ装置300は、データの格納が完了したことを示す完了通知をストレージ制御装置200へ送信する。処理S508においてストレージ制御装置200は、ストレージ装置300から完了通知を受信したことを情報処理装置100へ通知する。
またストレージ装置300は、処理S506においてデータをフラッシュメモリ360に格納した後、フラッシュメモリ360の空き容量をカウントする。そして処理S509においてストレージ装置300は、カウントされた空き容量が、ストレージ装置300内で定められた閾値以下となっているか否かを判定する。処理S509において、カウントされた空き容量が閾値以下となっていると検出されると、処理S510においてストレージ装置300はガベージコレクションを実行し、空き容量を増加させる。一方、情報処理装置100が処理S511においてデータ及びデータ書込みコマンドをストレージ制御装置200へ送信したとする。ストレージ制御装置200は処理S512において、当該データをストレージ装置300へ送信し、ストレージ装置300に対してデータの格納を指示する。この状態において、ストレージ装置300はガベージコレクションの実行中であるものとする。この場合、ガベージコレクションを実行中のフラッシュメモリ360にデータを格納させることができないため、この格納の指示はガベージコレクションが終了するまで待ちの状態となる。ガベージコレクションが終了した後、処理S513においてストレージ装置300は、データをフラッシュメモリ360に格納し、更に処理S514においてストレージ装置300は、データの格納が完了したことを示す完了通知をストレージ制御装置200へ送信する。そして処理S515においてストレージ制御装置200は、完了通知を受信したことを情報処理装置100へ通知する。
このように、ストレージ装置300においてガベージコレクションが実行されている最中に情報処理装置100からデータ書込みコマンドが送信された場合、データ書込みコマンドに対応するデータの格納が遅延し、よってデータ書込みコマンドに対する応答速度が低下する。
図6A及び図6Bは、実施例におけるデータの格納及びガベージコレクションの処理概要図である。図6Aにおいて、ストレージ装置300は第1メモリ領域301と第2メモリ領域302を有する。第1メモリ領域301と第2メモリ領域302は何れもフラッシュメモリ360の一部である。処理S600において情報処理装置100は、ストレージ制御装置200に対して論理ボリュームの設定を依頼する。処理S601においてストレージ制御装置200は、情報処理装置100からの依頼に基づいてストレージ装置300の第1メモリ領域301内に論理ボリュームを設定する。また処理S602においてストレージ制御装置200は、設定された論理ボリュームについて初期化処理を行う。具体的には、設定された論理ボリュームに含まれる全てのブロックについてデータ消去の処理を行う。
次に、処理S603においてストレージ制御装置200は、設定された論理ボリュームに対して第1のダミーデータ送信処理を行う。この第1のダミーデータ送信処理においてストレージ制御装置200は、ダミーデータをストレージ装置300へ送信してダミーデータの格納をストレージ装置300に指示する。処理S604においてストレージ装置300は、ダミーデータを第1メモリ領域301に格納する。その後、処理S605においてストレージ装置300は、ストレージ制御装置200へ完了通知を送信する。処理S606においてストレージ制御装置200は、ダミーデータの格納をストレージ装置300に指示してから、ストレージ装置300から完了通知を受信するまでの応答時間を測定し、測定された応答時間に基づいて応答時間閾値を設定する。応答時間閾値は、測定された応答時間に1より大きい値、例えば1.5を乗じた値に設定される。
ここで、設定された応答時間閾値の技術的意義について説明する。処理S603において第1のダミーデータ送信処理が行われる前に、処理S602において論理ボリュームの初期化、つまり設定された論理ボリュームに含まれる全てのブロックについてデータの消去が行われている。そのため、ストレージ装置300に対して第1のダミーデータ送信処理が行われた時点においては第1メモリ領域301には未だ空き容量が十分にあり、ダミーデータの格納によってガベージコレクションがストレージ装置300内で実行されることはないものと考えられる。よって、ストレージ制御装置200がダミーデータの格納の指示を行ってから、ダミーデータの格納が完了したことを示す完了通知を受信するまでの時間(応答時間)は、ガベージコレクションによるデータ格納処理の遅延が発生しなかった場合の応答時間であると考えることができる。通常、ガベージコレクションが実行されている最中にデータ格納の指示がなされた場合の応答時間は、ガベージコレクションが実行されていない状態における応答時間の1.5倍以上、例えば8倍程度になると考えられる。そのため、処理S606においてストレージ制御装置200は、第1のダミーデータ送信処理において測定された応答時間の例えば1.5倍の応答時間を、応答時間閾値として設定する。つまり応答時間閾値とは、ストレージ装置300においてガベージコレクションが実行されている場合に要するであろうと予測される応答時間を意味する。尚、図6Aにおいては、処理S603から処理S605の処理は一度だけ実行されるように図示されているが、これらの処理が複数回実行されてもよい。その場合は、処理S606においてストレージ制御装置200は、複数回の第1のダミーデータ送信処理で得られた複数の応答時間の値に基づいて、応答時間閾値を設定してもよい。例えば、複数の応答時間の値の平均値を1.5倍した値が応答時間閾値として設定されてもよい。もしくは、複数の応答時間の値の中の最大となる応答時間を1.5倍した値が応答時間閾値として設定されてもよい。
次に処理S607においてストレージ制御装置200は、第2のダミーデータ送信処理を行う。この第2のダミーデータ送信処理においても、ストレージ制御装置200はダミーデータをストレージ装置300へ送信し、ストレージ装置300に対してダミーデータの格納を指示する。処理S608においてストレージ装置300は、ダミーデータを第1メモリ領域301に格納し、処理S609においてストレージ装置300は、完了通知をストレージ制御装置200へ送信する。ストレージ制御装置200は、第2のダミーデータ送信処理における応答時間を測定し、測定された応答時間が、処理S606において設定された応答時間閾値以上となったか否かを判定する。測定された応答時間が応答時間閾値以上となっていない場合は、第2のダミーデータ送信処理を繰り返して実行する。繰り返して実行される第2のダミーデータ送信処理において、各ダミーデータの論理アドレスには、連続性のない論理アドレスが設定されることが好ましい。例えば、フラッシュメモリ360の1ページのデータ容量が16Kバイトである場合、ダミーデータのデータ量を1Kバイトとし、論理アドレスを16Kバイトずつシフトさせながら、複数回のダミーデータ送信処理を実行する。これにより、ストレージ装置300に送信されるダミーデータ量を抑えつつ、フラッシュメモリ360の空き容量を効率的に減少させることができる。
第2のダミーデータ送信処理において測定された応答時間が応答時間閾値以上となった場合は、ストレージ装置300がガベージコレクションを実行している最中にダミーデータの格納の指示がなされたことが推定される。そこで処理S610においてストレージ制御装置200は、第2のダミーデータ送信処理においてストレージ装置300へ送信されたダミーデータの合計量を算出し、算出されたダミーデータの総量に、0よりも大きく1よりも小さい値、例えば0.8を乗じた値を、データ量閾値として設定する。
ここで、データ量閾値の技術的意義について説明する。処理S610において算出された、第2のダミーデータ送信処理においてストレージ装置300に送信されたダミーデータの合計量は、「第1メモリ領域301に格納されたランダムな論理アドレスを有するデータの合計量であって、ストレージ装置300にガベージコレクションの実行を開始させるデータ量」を意味する。つまり、ランダムな論理アドレスを有するデータが、算出されたダミーデータの合計量だけストレージ装置300に送信された場合に、ストレージ装置300はガベージコレクションを実行する、という予測が立てられる。データ量閾値は、このデータ合計量に、0よりも大きく1よりも小さい値、例えば0.8を乗じた値として設定される。言い換えれば、ストレージ装置300に送信されたデータが設定されたデータ量閾値に達した場合は、近い将来にストレージ装置300がガベージコレクションを実行する可能性が高いことを意味する。
処理S611においてストレージ制御装置200は、作成された論理ボリュームに関する通知を情報処理装置100に対して行う。処理S612において情報処理装置100は、データ書込みコマンド及び書込み対象のデータをストレージ制御装置200へ送信する。データ書込みコマンド及びデータを受信したストレージ制御装置200は、処理S613においてデータをストレージ装置300へ送信し、データの格納をストレージ装置300に指示する。処理S614においてストレージ装置300は、データを第1メモリ領域301へ格納する。処理S615においてストレージ装置300は、データの格納が完了したことを示す完了通知をストレージ制御装置200へ送信する。処理S616においてストレージ制御装置200は、完了通知を受信したことを情報処理装置100へ通知する。
処理フローは図6Bに示される処理に進む。ストレージ制御装置200は、ストレージ装置300へ送信されたデータであって、ランダムな論理アドレスを有するデータの合計量を算出し、処理S617においてデータの合計量が処理S610において設定されたデータ量閾値以上になったか否かを判定する。処理S617において、ランダムな論理アドレスを有するデータの合計量がデータ量閾値以上になったと判定された場合、処理S618においてストレージ制御装置200は、第1メモリ領域301に代えて第2メモリ領域302を、データ格納部として設定する。そして処理S618においてストレージ制御装置200は、ストレージ装置300にガベージコレクションの実行を指示する。処理S619においてストレージ装置300は、第1メモリ領域301のガベージコレクションを実行する。このように本実施例においては、ストレージ装置300に送信されたデータの合計量がデータ量閾値以上となった時点でストレージ装置300にガベージコレクションの実行が指示される。これにより、ストレージ装置300が第1メモリ領域301の空き容量に基づいて自主的にガベージコレクションを実行するよりも早いタイミングで、ストレージ制御装置200がストレージ装置300にガベージコレクションの実行を指示することができる。言い換えれば、ガベージコレクションの実行タイミングを、ストレージ制御装置200側で制御することができる。また本実施例においてストレージ制御装置200は、ガベージコレクションの実行をストレージ装置300に指示する際に、ガベージコレクションの対象領域である第1メモリ領域301とは異なる第2メモリ領域302を、データ格納部として設定する。これにより、ガベージコレクションの実行タイミングをストレージ制御装置200側で制御し、かつその実行タイミングに情報処理装置100からデータ書込みコマンドを受信した場合には、第2メモリ領域302にデータを一時的に保持させることにより、データ書込みコマンドに対する応答時間が増加することを抑制することができる。
図6Bの説明に戻り、処理S620において情報処理装置100が、データ及びデータ書込みコマンドをストレージ制御装置200へ送信する。処理S621においてストレージ制御装置200は、データの格納をストレージ装置300へ指示する。尚、処理S621においてストレージ制御装置200は、ストレージ装置300に送信されたデータの論理アドレスを記憶しておく。処理S622においてストレージ装置300は、第1メモリ領域301ではなく、処理S618おいてデータの格納部として設定された第2メモリ領域302に、データを一時的に保持させる。これにより、第1メモリ領域301のガベージコレクションと、第2メモリ領域302へのデータ保存が時間的に並列に実行される。第2メモリ領域302へのデータ保存が完了すると、処理S623においてストレージ装置300はデータの保存の完了通知をストレージ制御装置200に送信する。処理S624においてストレージ制御装置200は、完了通知の受信を情報処理装置100へ通知する。これにより、ガベージコレクションが実行されている最中に情報処理装置100がデータ書込みコマンドを送信した場合であっても、データ書込みコマンドに関する応答時間が長くなることが抑制される。処理S619におけるガベージコレクションの実行が終了すると、処理S625においてストレージ制御装置200は、第2メモリ領域302をデータ格納部とする設定を解除する。これにより、第1メモリ領域301が再度、データ格納部として設定される。その後、処理S626においてストレージ制御装置200は、処理S621において記憶された論理アドレスに基づいて、第2メモリ領域302に保持されたデータを読み出す。読み出されたデータは、例えばストレージ制御装置200のRAM255に保持される。処理S627においてストレージ制御装置200は、RAM255に保持されたデータをストレージ装置300に送信し、当該データを格納するよう、ストレージ装置300に指示する。第1メモリ領域301がデータ格納部として設定されているため、処理S628においてストレージ装置300は、データを第1メモリ領域301に格納する。
図6A及び6Bにて説明されたように、本実施例においては、ストレージ装置300がガベージコレクションを自主的に実行するよりも早いタイミングにおいて、ストレージ制御装置200がガベージコレクションの実行をストレージ装置300へ指示する。これにより、ストレージ制御装置200がガベージコレクションの実行のタイミングを決定することができる。またストレージ制御装置200は、第1メモリ領域301についてガベージコレクションが実行される期間中、代替データ格納部として第2メモリ領域302を設定することで、ガベージコレクションが実行される間であっても、データ書込みコマンドに対応する応答時間が長くなることを抑制することができる。また、ストレージ制御装置200は、情報処理装置100が使用する論理ボリュームが設定された後、第1のダミーデータ送信処理及び第2のダミーデータ送信処理を行うことにより、データ量閾値を算出する。このデータ量閾値を用いることによりストレージ制御装置200は、ストレージ装置300に送信されたデータの合計量に基づいて、ストレージ装置300が自主的にガベージコレクションを実行させるよりも早いタイミングを特定することができる。
尚、図6A及び6Bにおいては、情報処理装置100からストレージ制御装置200に対して論理ボリュームの設定が依頼されることに応じて、データ量閾値が設定される例が説明された。データ量閾値は、設定される論理ボリュームのデータ容量に基づいて定まるものと考えられる。よって変形例として、論理ボリュームの容量とデータ量閾値との関係を規定する情報を予め準備しておき、情報処理装置100から論理ボリュームの設定依頼がなされた際に、論理ボリュームの容量と前記の情報に基づいて、データ閾値量が設定されてもよい。
また図6A及び6Bにおいては、第2メモリ領域302は第1メモリ領域301と同様にフラッシュメモリ360の一部の領域である例が説明された。変形例として、フラッシュメモリ360以外のメモリ、例えばストレージ装置300に含まれるRAM355の少なくとも一部が第2メモリ領域302として利用されてもよい。また複数のストレージ装置300がストレージ制御装置200によって制御される場合、第2メモリ領域302は複数のストレージ装置300に対して共通に設けられてもよい。
尚、図6A及び6Bにおいてストレージ制御装置200は、ダミーデータをストレージ装置300に送信することにより応答時間閾値及びデータ量閾値を設定したが、他のデータを用いて応答時間閾値及びデータ量閾値が設定されてもよい。例えば、情報処理装置100がストレージ制御装置200へ送信した書込み対象のデータを用いて、応答時間閾値及びデータ量閾値が設定されてもよい。具体的には、まず情報処理装置100が、論理ボリュームの設定をストレージ制御装置200に依頼する。ストレージ制御装置200は、論理ボリュームを設定し、情報処理装置100に対して通知を行う。その後、情報処理装置100は、データ書込みコマンド及び書込み対象のデータをストレージ制御装置200へ送信する。ストレージ制御装置200は、データの格納をストレージ装置300へ指示し、応答時間を測定する。ストレージ制御装置200は、測定された応答時間に基づいて応答時間閾値を設定する。またストレージ制御装置200は、情報処理装置100から受信されてストレージ装置300へ送信されたデータであって、ランダムな論理アドレスを有するデータのデータ量を順次加算して合計データ量を算出する。そして、応答時間が応答時間閾値を超えた時点における合計データ量に基づいて、データ量閾値が設定される。データ量閾値が設定された後は、ストレージ制御装置200は処理S617と同様に、ストレージ装置300に対して送信されたデータであってランダムな論理アドレスを有するデータの合計データ量が、データ量閾値以上となったか否かの判定を行う。合計データ量がデータ量閾値以上となったと判定された場合は、ストレージ制御装置200は処理S618と同様に、ストレージ装置300に対してガベージコレクションの実行を指示する。このような処理により、ダミーデータが使用されなくても本発明は実施され得る。
図7は、実施例におけるCPU210の機能ブロック図である。CPU210は、例えばROM250からRAM255にロードされたコンピュータプログラムを実行することにより、送受信部211、コマンドテーブル作成部212、ガベージコレクション指示部213、ダミーデータ送信処理部214、応答時間測定部215、データ量算出部216、制御部217として機能する。またCPU210は、コマンドテーブル218を保持する。コマンドテーブル218は、CPU210の外部、例えばROM250内やRAM255内に保持されてもよい。
送受信部211は、情報処理装置100から送信されるコマンドやデータ、ストレージ装置300から送信される完了通知を受信し、またストレージ装置300へのデータ、情報処理装置100への通知信号を送信する。コマンドテーブル作成部212はコマンドテーブル218の作成を行う。コマンドテーブル218の作成方法については後述する。ガベージコレクション指示部213は、ストレージ装置300に対してガベージコレクションの実行を指示する。ダミーデータ送信処理部214は、第1のダミーデータ送信処理及び第2のダミーデータ送信処理を実行する。応答時間測定部215は、第1のダミーデータ送信処理及び第2のダミーデータ送信処理において、応答時間を測定する。またデータ量算出部216は、第2のダミーデータ送信処理においてストレージ装置300へ送信されたデータであってランダムな論理アドレスを有するデータの合計量を算出する。制御部217は、ストレージ装置300に対する制御、例えばガベージコレクション指示部213によってストレージ装置300にガベージコレクションの実行が指示される際、第2メモリ領域302を、第1メモリ領域301に代えてデータ格納部として利用するようストレージ装置300に対する制御を行う。コマンドテーブル218は、コマンドテーブル作成部212により生成されるテーブルであり、詳細については後述する。
図8は、実施例においてCPU210によって実行される第1のダミーデータ送信に関する処理のフローチャートである。図8に示される処理フローは処理S1000により開始され、処理S1001においてダミーデータ送信処理部214が、ダミーデータをストレージ装置300に送信し、ダミーデータの格納をストレージ装置300に指示する。処理S1002において応答時間測定部215が、ダミーデータがストレージ装置300に送信された時刻を記録する。そして処理S1003において送受信部211が、ストレージ装置300からダミーデータの格納が完了した旨の完了通知を受信する。処理S1004において応答時間測定部215が、完了通知が受信された時刻と、ダミーデータがストレージ装置300に送信された時刻との差分に基づいて応答時間を算出する。処理S1005において応答時間測定部215が、算出された応答時間に基づき、応答時間閾値を設定する。例えば、応答時間に1.5を乗じた値が応答時間閾値として設定される。処理S1005の後、処理S1006において処理フローが終了する。
図9は、実施例においてCPU210によって実行される第2のダミーデータ送信に関する処理のフローチャートである。図9に示される処理フローは処理S1100により開始され、処理S1101において制御部217は、第1のダミーデータ送信処理によって第1メモリ領域301に格納されたダミーデータの消去を行う。処理S1102においてダミーデータ送信処理部214は、ダミーデータをストレージ装置300に送信する。処理S1103において応答時間測定部215は、ダミーデータがストレージ装置300に送信された時刻を記録する。処理S1104において送受信部211が、ダミーデータの格納が完了した旨の完了通知を、ストレージ装置300から受信する。処理S1105において応答時間測定部215が、完了通知が受信された時刻と、ダミーデータが送信された時刻との差分に基づき、応答時間を算出する。処理S1106においてダミーデータ送信処理部214が、算出された応答時間と、第1のダミーデータ送信処理に基づいて設定された応答時間閾値とを比較し、算出された応答時間が応答時間閾値以上となったか否かを判定する。算出された応答時間が応答時間閾値以上となったと判定されなかった場合は、処理フローは処理S1102へ戻り、算出された応答時間が応答時間閾値以上となったと判定された場合は、処理フローは処理S1107へ進む。処理S1107においてデータ量算出部216は、ストレージ装置300へ送信されたダミーデータの合計量を算出する。そして処理S1108においてデータ量算出部216は、算出されたデータの合計量に基づいてデータ量閾値を設定する。例えばダミーデータの合計量に0.8を乗じた値が、データ量閾値として設定される。その後、処理S1109において処理フローは終了する。
図10は、実施例におけるコマンドテーブル218の一例である。コマンドテーブル218は、ストレージ制御装置200のコマンドテーブル生成部212によって生成されるテーブルであって、各コマンドに対して「受信コマンド番号」「データ書込みコマンドフラグ」、「論理アドレス」、「データ量」及び「ランダムフラグ」が登録される。
「受信コマンド番号」は、情報処理装置100から送信され、ストレージ制御装置200によって受信されたコマンドの受信番号であり、コマンドテーブル生成部212によって付される情報である。「データ書込みコマンドフラグ」は、受信されたコマンドのタイプがデータ書込みコマンドであるか否かを示す情報である。コマンドタイプは、受信されたコマンドに含まれる情報であり、コマンドテーブル作成部212によってコマンドから抽出される。コマンドのタイプがデータ書込みである場合に、データ書込みコマンドフラグとして「1」が登録される。コマンドタイプとしては、データ書込み以外に、データ読出しやデータ消去等がある。図10に示される例において、受信コマンド番号が「2」のコマンド(以下、第2コマンド)のデータ書込みコマンドフラグは「0」であり、これは第2コマンドがデータ書込みコマンド以外のコマンド、例えばデータ読出しコマンドであることを意味する。「論理アドレス」は、情報処理装置100によって特定されるデータの論理アドレスであって、例えばデータ書込みコマンドであればデータの先頭アドレスが論理アドレスとなる。論理アドレスは、受信されたコマンドに含まれる情報であり、コマンドテーブル作成部212によってコマンドから抽出される。「データ量」は、例えばデータ書込みコマンドであれば、書込みの対象となるデータのバイト数によって特定される情報である。データ量は、受信されたコマンドに含まれる情報であり、コマンドテーブル作成部212によってコマンドから抽出される。
「ランダムフラグ」は、データ書込みコマンドの論理アドレスが、直近のデータ書込みコマンドの論理アドレスに対してシーケンシャルな論理アドレスを有するか否かを示す情報である。隣接する2つのデータ書込みコマンドの論理アドレスがシーケンシャルであれば、ランダムフラグとして「0」が登録され、隣接する2つのデータ書込みコマンドの論理アドレスがシーケンシャルではなくランダムなものであれば、ランダムフラグとして「1」が登録される。図10の例では、受信コマンド番号が「1」のコマンド(以下、第1コマンド)のデータ書込みコマンドフラグは「1」であり、その次にデータ書込みコマンドフラグが「1」であるコマンドは受信コマンド番号が「3」のコマンド(以下、第3コマンド)である。この場合、第1コマンドの論理アドレスに第1コマンドのデータ量を加算した値が、第3コマンドの論理アドレスに一致しているか否かが、コマンドテーブル作成部212によって判定される。第1コマンドの論理アドレス「0x0000_0000」に、第1コマンドのデータ量「0x400」を加算した値は、第3コマンドの論理アドレス「0x0001_B000」に一致していない。よって第3コマンドは、第1コマンドに対してシーケンシャルな論理アドレスを有するデータ書込みコマンドではないことが分かる。そのため、第3コマンドのランダムフラグとして「1」が登録される。同様に第3コマンドの論理アドレスとその次に受信されたデータ書込みコマンドの論理アドレスがシーケンシャルな関係にあるか、或いはランダムな関係にあるかが判定される。第3コマンドの後に受信されたコマンドであってデータ書込みコマンドフラグが「1」のものは受信コマンド番号が「4」のコマンド(以下、第4コマンド)である。第3コマンドの論理アドレス「0x0001_B000」に第3コマンドのデータ量「0x100」を加算した値は、第4コマンドの論理アドレス「0x0001_B100」に一致する。よって第4コマンドは、第3コマンドに対してシーケンシャルな論理アドレスを有するデータ書込みコマンドであることが分かる。そのため、第4コマンドのランダムフラグの欄には、「0」が登録される。
図11は、実施例においてCPU210によって実行される処理のうち、主にコマンドテーブル218の作成に関する処理のフローチャートである。図11に示される処理フローは処理S1200により開始され、処理S1201において送受信部211は、情報処理装置100からデータ書込みコマンドを受信する。処理S1202においてコマンドテーブル作成部212は、受信されたコマンドに含まれる情報から、コマンドタイプ、論理アドレス及びデータ量に関する情報を抽出する。処理S1203においてコマンドテーブル作成部212は、データ書込みコマンドが、直近のデータ書込みコマンドに対してランダムな論理アドレスを有するか否かを判定する。データ書込みコマンドが直近のデータ書込みコマンドの論理アドレスに対してランダムであると判定された場合は、処理S1204においてコマンドテーブル作成部212が、コマンドテーブル218にランダムフラグ「1」を登録する。データ書込みコマンドが直近のデータ書込みコマンドの論理アドレスに対してランダムであると判定されない場合は、処理S1205においてコマンドテーブル作成部212が、コマンドテーブル218にランダムフラグ「0」を登録する。そして処理S1206において処理フローは終了する。
図12は、実施例においてCPU210によって実行される処理のうち、主にガベージコレクションの指示に関する処理のフローチャートである。図12に示される処理フローは処理S1300により開始され、処理S1301においてガベージコレクション指示部213は、コマンドテーブル218を参照し、着目するコマンドのランダムフラグが「1」であるか否かを判定する。ランダムフラグが「1」であると判定されない場合は、処理フローは処理S1302に進み、ランダムフラグが「1」であると判定された場合は、処理フローは処理S1303に進む。処理S1302においてガベージコレクション指示部213は、着目するコマンドの番号(受信コマンド番号)を1つ増加させ、処理フローは処理S1301へ戻る。処理S1303においてガベージコレクション指示部213は、コマンドのデータ量を、累積的に加算する。「累積的に加算」とは、後述の処理S1304から処理フローが処理S1301に戻るループが形成される場合において、ランダムフラグが「1」である複数のコマンドのデータ量が順次加算されることを意味する。処理S1304においてガベージコレクション指示部213は、処理S1303において算出されたデータ量の合計値が、図9の処理S1108にて特定されたデータ量閾値以上になったか否かを判定する。データ量の合計値がデータ量閾値以上になったと判定されない場合は、処理フローは処理S1302へ移行し、データ量の合計値がデータ量閾値以上になったと判定された場合は、処理フローは処理S1305へ進む。処理S1305において制御部217は、ストレージ装置300の第2メモリ領域302を、第1メモリ領域301に代えてデータ格納部として設定する。処理S1306においてガベージコレクション指示部213は、ストレージ装置300に対してガベージコレクションの実行を指示する。この指示を受けてストレージ装置300は、第1メモリ領域301のガベージコレクションの実行を開始する。処理S1307において制御部217は、第1メモリ領域301でのガベージコレクションが終了したか否かを判定する。ガベージコレクションが終了したと判定されない場合は、制御部217は処理S1307を繰り返し実行する。この場合、制御部217は処理S1307の処理を例えば100ms毎に実行してもよい。第1メモリ領域301でのガベージコレクションが終了したと判定された場合は、処理フローは処理S1308へ進む。処理S1308において制御部217は、第2メモリ領域302をデータ格納部とする設定を解除する。これにより、その後にデータ書込みコマンドが情報処理装置100から受信された場合は、データは第1メモリ領域301へ格納される。
また、処理S1305において第2メモリ領域302がデータ格納部として設定された後、ガベージコレクションの実行が完了するまでの間に、処理S1309において送受信部211が情報処理装置100からのデータ書込みコマンドを受信する。処理S1310において制御部217は、データの保存をストレージ装置300に指示する。この場合、第2メモリ領域302がデータ格納部として設定されているため、ストレージ装置300はデータを第2メモリ領域302にて保存する。これにより、第1メモリ領域301においてガベージコレクション処理とデータ格納処理とが競合することが避けられる。そしてストレージ装置300は、第2メモリ領域302でのデータの保存が完了すると、ストレージ制御装置200に対して完了通知を送信する。処理S1311において送受信部211は、完了通知をストレージ装置300から受信する。処理S1312において制御部217は、情報処理装置100に対して完了通知の受信を通知する。
処理S1313において制御部217は、第2メモリ領域302に保持されたデータを読み出す。処理S1314において制御部217は、読み出されたデータを第1メモリ領域301へ格納するよう、ストレージ装置300へ指示する。そして処理フローは、処理S1315において終了する。
図12において、累積加算されたデータ量がデータ閾値量と比較されることにより、ガベージコレクションの実行の指示がストレージ制御装置200からストレージ装置300に対してなされる例が説明された。変形例として、累積加算されたデータ量に経年劣化係数を乗じた値が、データ閾値量と比較されてもよい。フラッシュメモリ360は、使用された時間に応じて応答速度が劣化することを考慮し、累積加算されたデータ量に経年劣化係数、例えば1.2を乗じた値がデータ閾値量以上となった場合に、ストレージ制御装置200からストレージ装置300に対してガベージコレクションの実行指示がなされてもよい。
以上、本実施例では、ストレージ制御装置200がガベージコレクションの実行タイミングを判定し、ガベージコレクションの実行をストレージ装置300に指示する。またガベージコレクションの実行タイミングは、ストレージ装置300自身が第1メモリ領域301の空き容量の減少に基づいてガベージコレクションを実行するタイミングよりも早いタイミングに設定されることが好ましい。これにより、ストレージ制御装置200がガベージコレクションの実行タイミングを制御することができる。
またストレージ制御装置200は、第1メモリ領域301のガベージコレクションの実行をストレージ装置300に指示することに伴い、ストレージ装置300の第2メモリ領域302を一時的なデータ格納部として設定する。これにより、第1メモリ領域301においてガベージコレクションが実行されている期間において、データ書込みコマンドを情報処理装置100から受信した場合には、第1メモリ領域301のガベージコレクションの終了を待つことなく、第2メモリ領域302にデータを保持させることができる。よって情報処理装置100からのデータ書込みコマンドに対する応答速度の低下を抑制することができる。
開示の実施例に基づき、更に以下の付記を開示する。
(付記1)
第1メモリ領域及び第2メモリ領域を有し、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置と、
前記ストレージ装置に接続されたストレージ制御装置と、を含み、
前記ストレージ制御装置は、
第1データの書込みを要求する第1コマンドを受信し、
前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示し、
前記第1データのデータ量に基づき、前記第1メモリ領域における前記ガベージコレクションの実行の要否を判定し、
前記第1データの前記データ量に基づいて前記ガベージコレクションの実行が必要と判定された場合、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示し、
前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドを受信した場合に、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示する
ことを特徴とするストレージシステム。
(付記2)
前記ストレージ制御装置が前記ガベージコレクションの実行を指示した場合、及び、前記第1メモリ領域の前記空き容量が第1閾値を下回った場合、の少なくとも何れかの場合に、前記ストレージ装置は、前記第1メモリ領域の前記ガベージコレクションを実行する
ことを特徴とする付記1に記載のストレージシステム。
(付記3)
前記ストレージ制御装置は、
前記第1データの格納を前記ストレージ装置へ指示する前に、前記ストレージ装置にダミーデータの格納指示を送信し、
前記ダミーデータの前記格納指示が送信されてから、前記ダミーデータの格納処理が完了したことを示す完了通知を受信するまでの時間と、前記ダミーデータのデータ量とに基づいて、第2閾値を設定し、
前記第1データの前記データ量が前記第2閾値以上となった場合に、前記ストレージ装置に前記ガベージコレクションの実行を指示する
ことを特徴とする付記1又は2に記載のストレージシステム。
(付記4)
前記第2閾値は、前記第1メモリ領域の前記空き容量が前記第1閾値を下回るよりも先に前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示するよう設定される
ことを特徴とする付記3に記載のストレージシステム。
(付記5)
前記ダミーデータの前記格納指示は複数の指示を含み、
前記複数の指示における前記ダミーデータの論理アドレスは互いにランダムなアドレスである
ことを特徴とする付記3又は4に記載のストレージシステム。
(付記6)
前記第1コマンドは、複数のコマンドを含み、
前記ストレージ制御装置は、前記複数のコマンドにおける前記第1データの論理アドレスが互いにランダムなアドレスである場合に、前記第1データの前記データ量に基づき、前記ガベージコレクションの要否を判定する
ことを特徴とする付記1乃至5何れか一つに記載のストレージシステム。
(付記7)
前記ストレージ制御装置は、前記複数のコマンドの第1コマンドの第1論理アドレスに前記第1コマンドのデータ量を加算した値が、前記複数のコマンドの第2コマンドの第2論理アドレスに一致しない場合に、前記第2論理アドレスが前記第1論理アドレスに対してランダムであると判定することを特徴とする付記6に記載のストレージシステム。
(付記8)
前記ストレージ装置は、前記第1メモリ領域の前記ガベージコレクションが終了した後、前記第2メモリ領域に保持された前記第2データを前記第1メモリ領域へ格納する
ことを特徴とする付記1乃至7何れか一つに記載のストレージシステム。
(付記9)
前記ストレージ装置はSolid State Drive(SSD)である
ことを特徴とする付記1乃至8何れか一つに記載のストレージシステム。
(付記10)
前記第1メモリ領域はフラッシュメモリである
ことを特徴とする付記1乃至9何れか一つに記載のストレージシステム。
(付記11)
第1メモリ領域及び第2メモリ領域を有するストレージ装置であって、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置に接続されたストレージ制御装置であって、
第1データの書込みを要求する第1コマンドを受信する送受信部と、
前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示する制御部と、
前記第1データのデータ量に基づき、前記第1メモリ領域における前記ガベージコレクションの実行の要否を判定し、前記第1データのデータ量に基づいて前記ガベージコレクションの実行が必要と判定された場合、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示するガベージコレクション指示部と
を有し
前記制御部は、前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドを受信した場合に、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示する
ことを特徴とするストレージ制御装置。
(付記12)
前記第1データの格納を前記ストレージ装置へ指示する前に、前記ストレージ装置にダミーデータの格納指示を送信し、
前記ダミーデータの前記格納指示が送信されてから、前記ダミーデータの格納処理が完了したことを示す完了通知を受信するまでの時間と、前記ダミーデータのデータ量とに基づいて、第2閾値を設定し、
前記第1データのデータ量が前記第2閾値以上となった場合に、前記ストレージ装置に前記ガベージコレクションの実行を指示する
ことを特徴とする付記11に記載のストレージ制御装置。
(付記13)
前記第2閾値は、前記第1メモリ領域の前記空き容量が前記第1閾値を下回るよりも先に前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示するよう設定される
ことを特徴とする付記12に記載のストレージ制御装置。
(付記14)
前記ダミーデータの前記格納指示は複数の指示を含み、
前記複数の指示における前記ダミーデータの論理アドレスは互いにランダムなアドレスである
ことを特徴とする付記12又は13に記載のストレージ制御装置。
(付記15)
前記第1コマンドは、複数のコマンドを含み、
前記複数のコマンドにおける前記第1データの論理アドレスが互いにランダムなアドレスである場合に、前記第1データのデータ量に基づき、前記ガベージコレクションの要否を判定する
ことを特徴とする付記11乃至14何れか一つに記載のストレージ制御装置。
(付記16)
前記複数のコマンドの第1コマンドの第1論理アドレスに前記第1コマンドのデータ量を加算した値が、前記複数のコマンドの第2コマンドの第2論理アドレスに一致しない場合に、前記第2論理アドレスが前記第1論理アドレスに対してランダムであると判定する
ことを特徴とする付記15に記載のストレージ制御装置。
(付記17)
第1メモリ領域及び第2メモリ領域を有し、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置と、前記ストレージ装置に接続されたストレージ制御装置と、を用いたデータ格納方法であって、
前記ストレージ制御装置が、第1データの書込みを要求する第1コマンドを受信し、
前記ストレージ制御装置が、前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示し、
前記ストレージ制御装置が、前記第1データのデータ量に基づき、前記第1メモリ領域おける前記ガベージコレクションの実行の要否を判定し、
前記第1データの前記データ量に基づいて前記ガベージコレクションの実行が必要と判定された場合、前記ストレージ制御装置が、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示し、
前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドが受信された場合に、前記ストレージ制御装置が、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示する
ことを特徴とするデータ格納方法。
(付記18)
前記ストレージ制御装置が前記ガベージコレクションの実行を指示した場合、及び、前記第1メモリ領域の前記空き容量が第1閾値を下回った場合、の少なくとも何れかの場合に、前記ストレージ装置は前記第1メモリ領域の前記ガベージコレクションを実行する
ことを特徴とする付記17に記載のデータ格納方法。
(付記19)
前記ストレージ制御装置は、
前記第1データの格納を前記ストレージ装置へ指示する前に、前記ストレージ装置にダミーデータの格納指示を送信し、
前記ダミーデータの前記格納指示が送信されてから、前記ダミーデータの格納処理が完了したことを示す完了通知を受信するまでの時間と、前記ダミーデータのデータ量とに基づいて、第2閾値を設定し、
前記第1データの前記データ量が前記第2閾値以上となった場合に、前記ストレージ装置に前記ガベージコレクションの実行を指示する
ことを特徴とする付記17又は18に記載のデータ格納方法。
(付記20)
前記第2閾値は、前記第1メモリ領域の前記空き容量が前記第1閾値を下回るよりも先に前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示するよう設定される
ことを特徴とする付記19に記載のデータ格納方法。
1 ストレージシステム
100 情報処理装置
200 ストレージ制御装置
300 ストレージ装置
400 操作端末
210、310 CPU
250、350 ROM
255、355 RAM
260 CA
360 フラッシュメモリ
270、370 インターフェースカード
280 IOC
290 EXP
211 送受信部
212 コマンドテーブル作成部
213 ガベージコレクション指示部
214 ダミーデータ送信処理部
215 応答時間測定部
216 データ量算出部
217 制御部
218 コマンドテーブル

Claims (8)

  1. 第1メモリ領域及び第2メモリ領域を有し、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置と、
    前記ストレージ装置に接続されたストレージ制御装置と、を含み、
    前記ストレージ装置は、
    前記ストレージ制御装置から前記ガベージコレクションの実行を指示された場合、及び、前記第1メモリ領域の前記空き容量が第1閾値を下回った場合、の少なくとも何れかの場合に、前記第1メモリ領域の前記ガベージコレクションを実行し、
    前記ストレージ制御装置は、
    第1データの書込みを要求する第1コマンドを受信し、
    前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示し、
    前記第1データの合計のデータ量である第1の合計データ量が第2閾値以上か否かに応じて、前記第1メモリ領域における前記ガベージコレクションの実行の要否を判定し、
    前記第1の合計データ量が前記第2閾値以上になった場合、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示し、
    前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドを受信した場合に、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示し、
    前記第2閾値は、前記ストレージ制御装置が前記ストレージ装置に送信するダミーデータの合計のデータ量である第2の合計データ量に基づいており、前記第1メモリ領域の前記空き容量が前記第1閾値を下回るよりも先に前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示するよう設定される
    ことを特徴とするストレージシステム。
  2. 前記ストレージ制御装置は、
    前記第1データの格納を前記ストレージ装置へ指示する前に、前記ストレージ装置に前記ダミーデータの格納指示を送信し、 前記ダミーデータの前記格納指示が送信されてから、前記ダミーデータの格納処理が完了したことを示す完了通知を受信するまでの時間と、前記第2の合計データ量とに基づいて、前記第2閾値を設定する、
    ことを特徴とする請求項1に記載のストレージシステム。
  3. 前記ダミーデータの前記格納指示は複数の指示を含み、
    前記複数の指示における前記ダミーデータに設定される論理アドレスは互いにランダムなアドレスである
    ことを特徴とする請求項2に記載のストレージシステム。
  4. 前記第1コマンドは、複数のコマンドを含み、
    前記ストレージ制御装置は、前記複数のコマンドにおける前記第1データの論理アドレスが互いにランダムなアドレスである場合に、前記第1の合計データ量に基づき、前記ガベージコレクションの要否を判定する
    ことを特徴とする請求項1乃至3何れか一項に記載のストレージシステム。
  5. 前記ストレージ制御装置は、前記複数のコマンドの第1コマンドの第1論理アドレスに前記第1コマンドのデータ量を加算した値が、前記複数のコマンドの第2コマンドの第2論理アドレスに一致しない場合に、前記第2論理アドレスが前記第1論理アドレスに対してランダムであると判定することを特徴とする請求項4に記載のストレージシステム。
  6. 前記ストレージ装置は、前記第1メモリ領域の前記ガベージコレクションが終了した後、前記第2メモリ領域に保持された前記第2データを前記第1メモリ領域へ格納する
    ことを特徴とする請求項1乃至5何れか一項に記載のストレージシステム。
  7. 第1メモリ領域及び第2メモリ領域を有するストレージ装置であって、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置に接続されたストレージ制御装置であって、
    第1データの書込みを要求する第1コマンドを受信する送受信部と、
    前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示する制御部と、
    前記第1データの合計のデータ量である第1の合計データ量が所定の閾値以上の場合、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示するガベージコレクション指示部と
    を有し
    前記制御部は、前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドを受信した場合に、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示し、
    前記所定の閾値は、前記ストレージ制御装置が前記ストレージ装置に送信するダミーデータの合計のデータ量である第2の合計データ量に基づいており、前記ストレージ装置が前記ガベージコレクションを行う条件よりも先に前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示するよう設定される
    ことを特徴とするストレージ制御装置。
  8. 第1メモリ領域及び第2メモリ領域を有し、前記第1メモリ領域の空き容量に基づいて前記第1メモリ領域のガベージコレクションの実行の要否を判定するストレージ装置と、前記ストレージ装置に接続されたストレージ制御装置と、を用いたデータ格納方法であって、
    前記ストレージ制御装置が、第1データの書込みを要求する第1コマンドを受信し、
    前記ストレージ制御装置が、前記第1コマンドに基づき、前記第1データを前記第1メモリ領域に格納するよう、前記ストレージ装置に指示し、
    前記ストレージ制御装置が、前記第1データの合計のデータ量である第1の合計データ量が所定の閾値以上か否かに応じて、前記第1メモリ領域おける前記ガベージコレクションの実行の要否を判定し、
    前記第1の合計データ量が所定の閾値以上の場合、前記ストレージ制御装置が、前記ストレージ装置に前記第1メモリ領域の前記ガベージコレクションの実行を指示し、
    前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示した場合であって、前記第1メモリ領域の前記ガベージコレクションが実行されている期間に第2データの書込みを要求する第2コマンドが受信された場合に、前記ストレージ制御装置が、前記第2メモリ領域に前記第2データを保持するよう前記ストレージ装置に指示し、
    前記所定の閾値は、前記ストレージ制御装置が前記ストレージ装置に送信するダミーデータの合計のデータ量である第2の合計データ量に基づいており、前記ストレージ装置が前記ガベージコレクションを行う条件よりも先に前記ストレージ制御装置が前記ストレージ装置に前記ガベージコレクションの実行を指示するよう設定される
    ことを特徴とするデータ格納方法。
JP2016162270A 2016-08-22 2016-08-22 ストレージシステム、ストレージ制御装置及びデータ格納方法 Active JP6855704B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016162270A JP6855704B2 (ja) 2016-08-22 2016-08-22 ストレージシステム、ストレージ制御装置及びデータ格納方法
US15/622,642 US10416907B2 (en) 2016-08-22 2017-06-14 Storage system, storage control apparatus, and method of controlling a storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016162270A JP6855704B2 (ja) 2016-08-22 2016-08-22 ストレージシステム、ストレージ制御装置及びデータ格納方法

Publications (2)

Publication Number Publication Date
JP2018032105A JP2018032105A (ja) 2018-03-01
JP6855704B2 true JP6855704B2 (ja) 2021-04-07

Family

ID=61191653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016162270A Active JP6855704B2 (ja) 2016-08-22 2016-08-22 ストレージシステム、ストレージ制御装置及びデータ格納方法

Country Status (2)

Country Link
US (1) US10416907B2 (ja)
JP (1) JP6855704B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7067130B2 (ja) * 2018-03-07 2022-05-16 カシオ計算機株式会社 自律移動装置、メモリ整理方法及びプログラム
CN109272269A (zh) * 2018-08-30 2019-01-25 上海与德科技有限公司 删除储物信息处理方法、电子设备以及计算机可读存介质
JP7401193B2 (ja) * 2019-04-17 2023-12-19 キヤノン株式会社 情報処理装置及びその制御方法並びにプログラム
KR20200126491A (ko) * 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
US11294827B2 (en) * 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
CN113495850B (zh) * 2020-04-08 2024-02-09 慧荣科技股份有限公司 管理垃圾回收程序的方法、装置及计算机可读取存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07234763A (ja) * 1994-02-25 1995-09-05 Fujitsu Ltd ディスクアレイ装置の処理方法
JP6111575B2 (ja) * 2012-09-19 2017-04-12 富士通株式会社 ストレージ装置、内部処理制御方法および内部処理制御プログラム
CN104298606A (zh) * 2013-07-17 2015-01-21 光宝科技股份有限公司 固态存储装置中垃圾搜集动作的控制方法
JP6320318B2 (ja) * 2015-02-17 2018-05-09 東芝メモリ株式会社 記憶装置及び記憶装置を含む情報処理システム
US9811462B2 (en) * 2015-04-30 2017-11-07 Toshiba Memory Corporation Memory system executing garbage collection
US9996268B2 (en) * 2015-12-18 2018-06-12 Toshiba Memory Corporation Memory system and control method of the same

Also Published As

Publication number Publication date
US10416907B2 (en) 2019-09-17
JP2018032105A (ja) 2018-03-01
US20180052625A1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
JP6855704B2 (ja) ストレージシステム、ストレージ制御装置及びデータ格納方法
JP4768504B2 (ja) 不揮発性フラッシュメモリを用いる記憶装置
US9836392B2 (en) Storage control apparatus to control pre-processing operations
KR102254392B1 (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
JP5418808B2 (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
US20090132752A1 (en) Interface for Non-Volatile Memories
US20100174853A1 (en) User device including flash and random write cache and method writing data
US11513723B2 (en) Read handling in zoned namespace devices
JP2006018839A (ja) 漸進的マージ方法及びそれを利用したメモリシステム
JP2008016003A (ja) メモリー格納装置及びその読み書き方法
JP2020512652A (ja) 自動動的ワード線開始電圧のための装置及び方法
JP6347055B2 (ja) 不揮発性メモリ装置
JP2017027479A (ja) データ読出し方法及び情報処理システム
JP2020524839A5 (ja)
KR20210051873A (ko) 컨트롤러 및 메모리 시스템
KR102386811B1 (ko) 메모리 시스템 및 그것의 동작 방법
JP2007193866A (ja) 情報記録装置及びその制御方法
JP6988445B2 (ja) ストレージシステム、制御装置及び制御方法
US10564886B2 (en) Methods and apparatus for controlling flash translation layer recycle from host
US20180081796A1 (en) Data Storage Device and Data Writing Method Thereof
JP2017228172A (ja) 情報処理システム
US10353589B2 (en) Data storage device and data management method for data storage device
TWI592943B (zh) 資料儲存裝置、記憶體控制器及其資料管理方法
CN111324555B (zh) 数据处理***及其操作方法
JP2011086324A (ja) ストレージ装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20180528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210202

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: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210301

R150 Certificate of patent or registration of utility model

Ref document number: 6855704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150