JP5489434B2 - フラッシュメモリ搭載ストレージ装置 - Google Patents

フラッシュメモリ搭載ストレージ装置 Download PDF

Info

Publication number
JP5489434B2
JP5489434B2 JP2008214807A JP2008214807A JP5489434B2 JP 5489434 B2 JP5489434 B2 JP 5489434B2 JP 2008214807 A JP2008214807 A JP 2008214807A JP 2008214807 A JP2008214807 A JP 2008214807A JP 5489434 B2 JP5489434 B2 JP 5489434B2
Authority
JP
Japan
Prior art keywords
flash memories
package
flash memory
parallel
flash
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.)
Expired - Fee Related
Application number
JP2008214807A
Other languages
English (en)
Other versions
JP2010049586A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008214807A priority Critical patent/JP5489434B2/ja
Priority to US12/286,000 priority patent/US8145828B2/en
Publication of JP2010049586A publication Critical patent/JP2010049586A/ja
Application granted granted Critical
Publication of JP5489434B2 publication Critical patent/JP5489434B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F11/3062Monitoring 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 where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0617Improving the reliability of storage systems in relation to availability
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

本発明は、記憶媒体としてフラッシュメモリを搭載したストレージ装置に関し、特に、可用性を向上したストレージ装置に関する。
従来、ディスクアレイ等のストレージ装置の記憶媒体としてはハードディスクドライブ(以下、HDD)の搭載が主流であった。近年、不揮発性半導体メモリであるフラッシュメモリのビットコストの低下が進み、メモリーカードからHDDと同じI/Fをもつソリッド・ステート・ドライブ(SSD)に至るまで用途が拡大している。フラッシュメモリはHDDと比較して、アイドル時の消費電力、ランダムアクセス性能、耐振動性に優れている。そのため将来は、性能指向のストレージ装置や省電力指向のストレージ装置においてフラッシュメモリが記憶媒体として適用されると予想される。
フラッシュメモリは前記のような特長がある反面、記憶領域の単位であるブロックの消去回数に制限があるなど使用上の制約がある。そのため記憶媒体としてフラッシュメモリを用いたストレージ装置に関する従来技術として、例えば、複数のフラッシュメモリに跨りブロックの消去回数を平準化するものがある(例えば、特許文献1)。
フラッシュメモリを搭載したシステムでは、性能を向上させるために複数のフラッシュメモリを並列に動作させるのが一般的である。そのため並列に動作させるフラッシュメモリの数が多いほど消費電力は増大する。このため、並列処理させるフラッシュメモリの数を選択する技術がある(例えば、特許文献2)。
特開2007-265265号公報 特開2007-193810号公報
データセンタのサービスの一つであるコロケーションサービスは、ラック単位といったスペースに対して電力容量が割り当てられる。ストレージ導入時の設計では消費電力が供給電源容量に対して十分余裕があり問題なかったとしても、記憶容量の追加に伴いストレージ装置の消費電力が供給電源の能力を超える可能性がある。さらに同じ供給電源に他のIT機器が追加される事も予想される。その一方で、データセンタの電力設備は増設されることを想定していないため供給電源容量を増加させる事は一般的に困難である。
フラッシュメモリを記憶媒体として適用したストレージ装置を最大定格消費電力が供給電源容量を超えた状態で使用すると、供給電圧が低下し、フラッシュメモリへのアクセスが正常に終了しないおそれがあり、その結果としてデータが破壊される可能性もある。
本発明は、前述した従来技術の課題を解決し、最大定格消費電力が電源の供給能力を超える場合に可用性を維持するストレージ装置を実現することを目的とする。
本願で開示する代表的な発明は以下の通りである。複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部と、ストレージ制御部と、供給電源容量情報を格納する記憶部とを有するストレージ装置であって、ストレージ制御部が記憶されている供給電源容量情報に基づき、並列に書き込み、消去または読み出しを行う前記フラッシュメモリの並列処理可能数を決定するストレージ装置。
本発明の一実施形態によれば、記憶媒体としてフラッシュメモリを搭載したストレージ装置において、供給電源が不足する場合でも可用性を維持したストレージ装置を実現することができる。
以下、本発明の実施の形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施の形態のストレージ装置10の構成図である。ストレージ装置10は、ホストインターフェース70、ネットワーク75を介してホスト計算機80と接続される。ホスト計算機80は、ストレージ装置10にデータの入出力を要求する。 ストレージ装置10は、コントローラ筐体11、メディア筐体12とを備える。
コントローラ筐体11は、CPU21、ローカルメモリ22、キャッシュメモリ25、チャネル制御部23、FMパッケージ制御部24、スイッチ部26、及び管理I/F部27を備える。
CPU21は、ローカルメモリ22に格納されているプログラムを実行し、コントローラ筐体11内およびメディア筐体12内の各部品を制御するプロセッサである。CPU21は、例えば、ホスト計算機80から要求されたデータの入出力に応答して、メディア筐体内12に備わるフラッシュメモリへのデータの入出力処理を制御することができる。
ローカルメモリ22は、CPU21によって実行されるプログラム及び各種データベースを格納する。なお、フラッシュメモリに格納されたプログラム及びデータが必要に応じてローカルメモリ22にコピーされる。更に、ローカルメモリ22は、管理I/F部27に接続された管理端末28により入力された情報を例えば図2、図3、図4、および図5に示すように管理する。図2乃至図5については後述する。
キャッシュメモリ25は、ホスト計算機80からストレージ装置10に入力される書き込みデータ、及び、ストレージ装置10からホスト計算機80に出力される読み出しデータを一時的に格納する記憶領域である。キャッシュメモリ25は、例えば、不揮発性メモリ、又はバッテリーによってバックアップされた揮発性メモリで構成されてもよい。なお、不揮発性メモリによって構成される場合、キャッシュメモリ25は、電源遮断時でも格納されたキャッシュデータを保持することができる。また、バッテリーによってバックアップされた揮発性メモリによって構成される場合、キャッシュメモリ25は、電源遮断時でもバッテリー容量に応じた時間だけ格納されたキャッシュデータを保持することができる。
チャネル制御部23は、ホスト計算機80に接続されるインターフェースであり、ホスト計算機80からのデータの入出力要求(例えば、ブロックの入出力要求及びファイルの入出力要求)を受け付ける。FMパッケージ制御部24は、FMパッケージ30に接続されるインターフェースであり、所定のプロトコル、例えばPCI Expressプロトコルを用いて、FMパッケージ30にデータの入出力要求を行う。スイッチ部26は、CPU21からの指示によってホスト計算機80とFMパッケージ30との間のデータ転送経路を制御する。
また、コントローラ筐体11は、図示されないが電源モジュールを搭載し、ストレージ装置の外部より供給されるAC電圧をDC電圧に変換する。DC電圧は必要に応じてより低い電圧に変換され、コントローラ筐体11内の各部品に供給される。
メディア筐体12には1つまたは複数のFMパッケージ30が実装されている。FMパッケージ30は、プログラム及びユーザデータ等を格納する記憶媒体であり、外部インターフェースとしてPCI Expressインターフェースを有する。インターフェースの形態はこれに限らず、例えば、HDDに採用されているFC(Fibre Channel)や、SAS(Serial Attached SCSI)、あるいはSATA(Serial Advanced Technology Attachment)でもよい。FMパッケージ30は、可用性を向上させるために二重の入出力ポートを備え、2のFMパッケージ制御部24とそれぞれ接続されてもよい。
各FMパッケージ30は、バックプレーン基板13とコネクタにより接続される。FMパッケージ30は、バックプレーン基板13上のPCI Expressスイッチ14を介してFMパッケージ制御部24と接続される。メディア筐体12に対してFMパッケージ30の挿抜が可能であり、メディア筐体12にはFMパッケージ30を装着するための1つまたは複数のスロットを有する。メディア筐体12の全てのスロットにFMパッケージ30を搭載する必要はなく、記憶容量の追加やフラッシュメモリの代替ブロック領域の追加のために、後からFMパッケージ30を増設することも可能である。バックプレーン基板13上のロジック回路15は内部レジスタによりメディア筐体12に搭載されているFMパッケージ30の位置情報を有する。各スロットにFMパッケージ30が挿入されると、スロットごとに用意されたパッケージ検知信号が反転し、内部レジスタのスロットに対応するビット値を反転させる。レジスタ値が変化するとロジック回路15はパッケージ制御部24を介して、CPU21に対して割り込み信号を発行する。ロジック回路15はFMパッケージ30が増設されたときだけでなく、減設したときもCPU21に対して割り込み信号を発行する。CPU21はスイッチ14を介してロジック回路15内のレジスタ情報を読み出して、搭載されているFMパッケージ30のスロット位置と数を知ることができる。これにより、メディア筐体12に対するFMパッケージ30の活線挿抜が可能となる。
メディア筐体12は、複数のFMパッケージ30により構成された1つまたは複数のRAIDグループを備える。例えば、図6に示すように、RAIDグループ50は、例えば4枚のFMパッケージ30をRAIDレベル5(3D+1P)によりグループ化することで構成される。RAIDグループ50は、ストレージ装置10に接続されるストレージ管理端末28からの指示に基づいて構成される。さらに、メディア筐体12は、障害発生時のスペア用FMパッケージとして1つまたは複数の予備のFMパッケージ30を有する。ストレージ装置10がRAIDグループにより冗長性を備えることで障害に対する信頼性が向上する。例えば、あるFMパッケージ30に障害が発生してホスト装置80からアクセスできなくなったとしても、CPU21が同一RAIDグループ50に所属する他のFMパッケージ30に格納されたユーザデータおよびパリティデータから、コレクションコピーにより、障害が発生したFMパッケージ30のユーザデータおよびパリティデータをスペア用FMパッケージ内に復旧する。以下、メディア筐体12はRAIDレベル5の複数のRAIDグループを有する場合を説明する。なお、メディア筐体12へのフラッシュメモリ搭載はパッケージ形態に限られない。例えば、HDDと同じ形状とインターフェースを有する形態でもよい。または、パッケージやドライブの形態を介さずに、メディア筐体12が複数のフラッシュメモリと、後述する1つまたは複数のフラッシュメモリ制御部を搭載してもよい。
RAIDグループ50上には1つまたは複数の論理ボリューム60(以下、LU)が構成される。図6に示す例では、LU番号#1および#4のLU60が構成されている。ホスト装置80はLU番号やLU内の論理アドレスを指定することでホスト装置80とストレージ装置10の間でデータの送受信を行う。ローカルメモリ22は、図7に示すように、LUとRAIDグループの対応を示すRAID構成管理テーブルを有する。さらに、ローカルメモリ22は、図17に示すように、LUの論理アドレスをFMパッケージの論理アドレスに変換するLU論理アドレス変換テーブルを有し、図7のRAID構成管理テーブルから生成される。
メディア筐体12は、図示されないが電源モジュールを搭載し、ストレージ装置の外部より供給されるAC電圧をDC電圧に変換する。DC電圧はバックプレーン基板13上の電圧レギュレータICにより、FMパッケージ30に供給する電圧を生成する。
なお、図1に示す例では、ストレージ装置10にコントロール筐体11が1台備わっているが、複数台備わってもよい。また、ストレージ装置10にメディア筐体12が1台備わっているが、複数台備わってもよい。また、ストレージ装置10は、コントロール筐体11とメディア筐体12を合わせた1つの筐体で構成されてもよい。
図8は、本発明の第1の形態のFMパッケージ30の内部ブロック図の一例である。プリント基板(図示せず)上に1つのフラッシュメモリ制御部31および本実施例においては16個のフラッシュメモリ(1a〜4d)が実装されている。フラッシュメモリの数は16に限らない。フラッシュメモリ1aおよび1bおよび1cおよび1dはバス33によりフラッシュメモリ制御部31と接続される。同様に2aから4dまでのフラッシュメモリもバス34,35,36によってフラッシュメモリ制御部に接続される。本実施例ではバス数が4つの場合について説明しているが、FMパッケージ30内の全てのフラッシュメモリを1つのバスに接続してもよいし、1つのバスに対して1つのフラッシュメモリを接続する形態でもよい。バス33は、フラッシュメモリ選択信号およびレディ/ビジー信号を除くフラッシュメモリ制御信号およびデータバスで構成される。フラッシュメモリ制御部31はフラッシュメモリの制御を司る。フラッシュメモリ制御部31は例えばASICまたはFPGAで構成され、ファームウェアを有するCPUを内蔵する。37は外部I/Fであり、例えばPCI Expressインターフェースである。フラッシュメモリ選択信号およびレディ/ビジー信号(図示せず)は各フラッシュメモリに対して用意され、フラッシュメモリとフラッシュメモリ制御部31の間で個別に接続される。フラッシュメモリ制御部31は、フラッシュメモリ選択信号(図示せず)をアクティブにすることによりアクセスするフラッシュメモリを選択する。また、フラッシュメモリのレディ/ビジー信号がビジー状態(例えば、Lowレベル)であることにより、対象フラッシュメモリが書き込み中、または、読み出し中、または、消去中であることをフラッシュメモリ制御部31に知らせる。32はコネクタであり、メディア筐体12内のバックプレーン基板13上のスイッチ14との接続に使用される。
フラッシュメモリ制御部31のブロック図を図9に示す。バッファ41は書き込みデータおよび消去データの一時的な格納や、フラッシュメモリのブロックデータを一時的に退避する際に使用される記憶領域である。バッファ41は本実施例において接続される16個のフラッシュメモリを同時に処理できるだけのサイズを有する。ローカルRAM45はCPU40が実行するプログラムを格納したり、後述するように搭載フラッシュメモリの種類や個数の情報を格納する。さらに、ローカルRAM45は図10に示すようにFMパッケージ30内の論理アドレスと、FMパッケージ30内のフラッシュメモリ番号、フラッシュメモリ内部のページアドレス、およびページ内物理アドレスを対応させる情報を図10に示すFMパッケージ論理アドレス変換テーブルとして格納する。CPU21によって選択されたFMパッケージ30がコントローラ筐体11よりライトコマンドまたはリードコマンドを受信すると、CPU40は図10のFMパッケージ論理アドレス変換テーブルを参照して、コントローラ筐体11から受信したFMパッケージ論理アドレスをフラッシュメモリ番号、フラッシュメモリ内部のページアドレス、およびページ内物理アドレスに変換し、アクセスするフラッシュメモリを選択する。その後、CPU40はアクセス対象フラッシュメモリに対するアドレスおよびコマンド転送、および後述する処理の待機を行う。
転送制御部42は、CPU40の指示により、バス33乃至36に接続されたフラッシュメモリに対するアドレスおよびコマンド転送、データ送受信を行う。転送制御部42は主に論理回路で構成され、CPU40の指示を受けて、バスごとに用意されたステートマシン回路により、バス33乃至36に接続されたフラッシュメモリに対してバス間で影響を及ぼす事なく独立して処理することができる。I/F回路43はコントローラ筐体11内のパッケージ制御部24とのインターフェースを司る回路で、例えばPCI Expressプロトコルチップで構成される。CPU40、ローカルRAM45、バッファ41、転送制御部42、およびI/F回路43は互いに内部バス44で接続されている。
ストレージ装置10に電源投入された場合、または図4の供給電源容量の情報が変更された場合、またはメディア筐体12へのFMパッケージ30の増設によりFMパッケージ30に動作電圧が供給されると、フラッシュメモリ制御部31のCPU40は立ち上げ処理として搭載フラッシュメモリのIDデータを収集し、搭載フラッシュメモリの種類と個数の情報をローカルRAM45に格納する。具体的には、CPU40の指示により、転送制御部42が各バスに対してフラッシュメモリ選択信号を順番にアクティブにしてIDリードコマンドを発行する。フラッシュメモリが接続されていれば、IDデータをリードすることができ、ローカルRAM45に格納される。IDデータはフラッシュメモリの種類に固有なコードで、フラッシュメモリのベンダ、SLC/MLCなどフラッシュメモリの種類、メモリ容量等を識別できる。ローカルメモリ22は、ストレージ装置10に搭載される可能性のあるフラッシュメモリのIDデータと定格消費電力の関係を、後述する図2のFMパッケージ構成部品消費電力管理テーブルで管理する。本実施例においては、FMパッケージ30の中の搭載フラッシュメモリの種類は一種類とする。一方、容量追加が必要になった場合に、より大きい容量のフラッシュメモリが搭載されたFMパッケージを増設するケースもあるので、FMパッケージ30間で搭載フラッシュメモリの種類が異なる場合はありうる。
図2乃至図5は、ローカルメモリ22にて管理される情報を説明する図である。図2はメディア筐体12に備えられるFMパッケージ30の構成部品についての定格消費電力を管理するFMパッケージ構成部品消費電力管理テーブルである。具体的には、FMパッケージ30内に搭載される可能性のあるフラッシュメモリ(例えば1a〜4d)1個当たりの定格消費電力と、後述するフラッシュメモリ制御部31及びFMパッケージ30内における他の構成部品の定格消費電力の情報を管理する。フラッシュメモリ(例えば1a〜4d)1個当たりの定格消費電力は、書き込み動作中、または消去動作中、またはリード転送中の消費電力の少なくとも何れかと等価である。ストレージ装置10の内部に複数種類のフラッシュメモリが搭載されている場合には、フラッシュメモリ種別の毎に定格消費電力が管理される。FMパッケージ構成部品消費電力管理テーブルは、図示されないがリザーブ領域を有し、新規種類のフラッシュメモリが場合には、管理端末28により追加登録することも可能である。
図3はストレージ装置10の常時稼働部である、コントローラ筐体11の定格消費電力とFMパッケージ30以外のメディア筐体12の定格消費電力の情報を管理するストレージ装置構成部品消費電力管理テーブルである。図4はストレージ装置10に供給されている電源容量の情報を管理する供給電源容量管理テーブルである。図5は各FMパッケージ30に搭載されているフラッシュメモリの種類および個数の情報を有するフラッシュメモリ構成管理テーブルである。図2乃至図4の情報は管理端末28からの入力情報を登録することで管理される。管理の形態はこれに限られない。例えば、図2のフラッシュメモリ制御部31及びその他構成部品の定格消費電力については、構成部品ごとに定格消費電力の情報を管理してもよい。図3のコントローラ筐体11の定格消費電力、およびFMパッケージ30以外のメディア筐体12の定格消費電力については、それぞれの構成部品に分解して定格消費電力の情報を管理してもよいし、逆に、コントローラ筐体11の定格消費電力とFMパッケージ30以外のメディア筐体12の定格消費電力を合算した情報を管理してもよい。例えば、図4の供給電源容量については、電源ブレーカの供給電源能力の情報を管理してもよいし、より正確には電源ブレーカの供給電源能力の情報から、同じ電源ブレーカに接続された他の装置の消費電力の情報を差し引いた情報を管理してもよい。
また、図5の情報はFMパッケージ30から自動的に取得し登録することで管理されるフラッシュメモリ構成管理テーブルである。具体的には、ストレージ装置10の立ち上げ時およびFMパッケージ30の増減設時において、前述のとおり、フラッシュメモリ制御部31内のCPU40が搭載フラッシュメモリの種類と個数の情報をローカルRAM45に格納する。また、FMパッケージ30の増減設時はロジック回路15内のレジスタ値が変更されるので、ロジック回路15がCPU21に対して割り込み信号を発行する。その結果、CPU21は各FMパッケージ30にアクセスして、搭載フラッシュメモリの種類や個数の情報を取得することができ、図5の情報として登録することができる。図5の情報の管理の形態は以上に限られず、管理端末28からの入力情報を登録することでも管理されても良い。図2乃至図5の情報の中で、個別管理が必要な情報は、フラッシュメモリの定格消費電力、およびストレージ装置10への供給電源容量、およびFMパッケージ30ごとのフラッシュメモリの種類及び搭載数である。尚、情報の管理の仕方は図2乃至図5に限らず、ストレージ装置10への供給電源容量と、常時電力が消費されている部分の消費電力と、種類毎のフラッシュメモリ部分の消費電力とが管理されていれば良い。
図11に供給電力が十分である場合のFMパッケージ30に備えられる16個のフラッシュメモリ1a〜4dに対してのライト処理について、横軸に時間経過をとって説明する。ここではライトアクセスの対象となるフラッシュメモリのページは消去されているものとする。フラッシュメモリ制御部31はライトアクセスに際して、アクセス対象となるページのアドレスを書き込み対象のフラッシュメモリに転送する。つづいて、フラッシュメモリ制御部31はライトイネーブル信号を制御して1ページ(例えば2Kバイト)のライトデータを書き込み対象のフラッシュメモリ内のレジスタに1バイトずつ転送する。更に、フラッシュメモリ制御部31は書き込みコマンドの転送も行い、ライトデータと書き込みコマンドを受信したフラッシュメモリは、レジスタ内のライトデータをメモリに書き込む。ライトデータをメモリに書き込んでいる間はレディ/ビジー信号はビジー状態(例えば、Lowレベル)となっており、書き込みが終了するとレディ/ビジー信号がレディ状態(例えば、Highレベル)に戻る。これがフラッシュメモリ制御部31への割り込み信号となり、フラッシュメモリ制御部31が対象フラッシュメモリへのライトアクセスの終了を検知することができる。ライトデータの転送において、フラッシュメモリ1aおよび1bおよび1cおよび1dはバス33を共有しているため、フラッシュメモリ制御部31は、2以上のフラッシュメモリに同時にライトデータの転送はできない。次の書き込み動作についてはコマンドを発行した後はバスを占有しないので同一バスに接続された複数のフラッシュメモリで同時に処理することが可能である。フラッシュメモリ2a〜2dはバス34によってフラッシュメモリ制御部31に接続されており、フラッシュメモリ1a〜1dとはバスを共有しない。よって、フラッシュメモリ1a〜1dへのライト転送とフラッシュメモリ2a〜2dへのライト転送とは並列に処理することが可能である。バス35によって接続されるフラッシュメモリ3a〜3d、バス36によって接続されるフラッシュメモリ4a〜4dについても同様である。これらの事情から、なるべく早くにライト処理を終了させるためには、図11に示すようなタイミングで処理を行うことが一般的である。
図12に供給電力が十分である場合のFMパッケージ30に備えられる16個のフラッシュメモリ1a〜4dに対してのライト処理について、ライトアクセスの対象となるフラッシュメモリのページは消去されていない場合について説明する。ここでは、同一ブロックに属する他の有効ページデータは予めバッファ41に退避されているものとする。ライトアクセスさせるページは必ず消去されている必要があるので、フラッシュメモリ制御部31は各フラッシュメモリに対して順番に消去コマンドを発行する。消去動作は各フラッシュメモリで並列に実行でき、消去動作中はレディ/ビジー信号はビジー状態(例えば、Lowレベル)となっている。消去動作が終了するとレディ/ビジー信号がレディ状態(例えば、Highレベル)に戻る。これがフラッシュメモリ制御部31への割り込み信号となり、フラッシュメモリ制御部31が対象フラッシュメモリの消去動作の終了を検知することができる。各ブロックの消去が終了した後は、フラッシュメモリ制御部31は図11での説明と同様な処理によりライト処理を実行することができる。
図13に横軸に時間経過をとってFMパッケージ30に備えられる16個のフラッシュメモリへのリード処理について説明する。フラッシュメモリ制御部31はリードアクセスに際して、アクセス対象となるページのアドレスを読み出し対象のフラッシュメモリに転送する。つづいて、フラッシュメモリ制御部31が読み出しコマンドの転送を行うと、対象フラッシュメモリはアクセス対象であるメモリ領域から1ページ(例えば2Kバイト)のリードデータをフラッシュメモリ内のレジスタへ読みだす。この間、レディ/ビジー信号はビジー状態(例えば、Lowレベル)となっており、レジスタへの読み出しが終了するとレディ/ビジー信号がレディ状態(例えば、Highレベル)に戻る。これがフラッシュメモリ制御部31への割り込み信号となり、フラッシュメモリ制御部31がリードデータ転送の準備完了を検知することができる。つづいて、フラッシュメモリ制御部31はリードイネーブル信号を制御してレジスタ内のリードデータを1バイトずつ読み出し、フラッシュメモリ制御部31内のバッファ41に格納する。
レジスタへの読み出し動作については読み出しコマンドを発行した後はバスを占有しないので同一バスに接続された複数のフラッシュメモリで同時に処理することが可能である。フラッシュメモリ1aおよび1bおよび1cおよび1dはバス33を共有しているため、フラッシュメモリ制御部31は、バス33に接続された2以上のフラッシュメモリから同時にリードデータを転送することができない。ただし、リード転送が終了したフラッシュメモリに対してコマンド転送により、次のページデータをレジスタへ読み出す処理と並列に、同一バスの他のフラッシュメモリからのリードデータ転送を処理することは可能である。フラッシュメモリ2a〜2dはバス34によってフラッシュメモリ制御部31に接続されており、フラッシュメモリ1a〜1dとはバスを共有しない。よって、フラッシュメモリ1a〜1dへのリード転送とフラッシュメモリ2a〜2dへのリード転送とは並列に処理することが可能である。バス35によって接続されるフラッシュメモリ3a〜3d、バス36によって接続されるフラッシュメモリ4a〜4dについても同様である。これらの事情から、なるべく早くにリード処理を終了させるためには、図13に示すようなタイミングで処理を行うことが一般的である。
通常、ストレージ装置の初期設定時においては、ストレージ装置に備えられるフラッシュメモリを制御するのに十分な電源が供給される環境が保証されている。しかし、ストレージ装置の運用に従って蓄積データが増大することによって、あるいはフラッシュメモリのブロックの消去回数が寿命に達した時に割り当てられる代替ブロック領域が不足することによってFMパッケージ30がメディア筐体12に増設された場合には、必要となる電力が増えるため、ストレージ装置へ供給される電力が足りなくなる場合も想定される。ストレージ装置が必要とする電力に対して供給電源容量が不足するとストレージ装置への供給電圧が低下する。その結果、フラッシュメモリに供給される電源電圧が低下もしくは遮断される可能性がある。特にフラッシュメモリに対する書き込み動作中に電源電圧の低下や遮断が発生すると、格納データの破壊や消失が起こるおそれがある。一般に、NANDフラッシュメモリでは書き込み動作、消去動作、およびリード転送を行っている時の消費電力が最も大きくなる。そこで、本願では1のFMパッケージ30において同じ時刻に処理させることが可能なフラッシュメモリ数(以降、並列処理可能フラッシュメモリ数)を算出し、それに基づいた制御を行うこととする。ここで、「処理」とは書き込み動作、または消去動作、またはリード転送を指し、以下同様である。
図14を用いてストレージ装置10全体の並列処理可能フラッシュメモリ数の計算方法について説明する。この処理は、ストレージ装置10の立ち上げ時又はメディア筐体12へFMパッケージ30が増設又は抜かれたことをCPU21が検知したときの少なくとも何れかに実行される。ストレージ装置10のハードウェア構成が不変であれば装置全体に対しての並列処理可能フラッシュメモリ数も不変であるので、上記のタイミングで並列処理可能フラッシュメモリ数を計算することにより、それ以降はホスト装置80からのアクセスごとに装置全体に対する並列処理可能フラッシュメモリ数を計算する必要はない。CPU21は各FMパッケージ30にコマンドを送り、フラッシュメモリ制御部31は搭載されているフラッシュメモリの種類と個数を返信する(S101)。この情報に基づいてCPU21は図5のフラッシュメモリ構成管理テーブルを更新する(S102)。つづいて、CPU21はストレージ装置内で並列処理可能なフラッシュメモリの数を図2、図3、および図4の情報を基に計算する(S103)。具体的には以下の計算式を実行する。
並列処理可能フラッシュメモリ数=(供給電源容量(図4より)
−コントローラ筐体消費電力(図3より)
−メディア筐体消費電力(図3より)
−フラッシュメモリ制御部その他消費電力(図2より)×FMパッケージ数)
÷フラッシュメモリ消費電力(図2より)
計算された並列処理可能フラッシュメモリ数はローカルメモリ22上に格納される。
ストレージ装置10内にフラッシュメモリが複数種類ある場合は、フラッシュメモリの種類ごとに並列処理可能フラッシュメモリ数を計算する。例えばフラッシュメモリの種類がAとBの2種類ある場合は、
並列処理可能最大フラッシュメモリA数=供給電源容量(図4より)
−コントローラ筐体消費電力(図3より)
−メディア筐体消費電力(図3より)
−フラッシュメモリ制御部その他消費電力(図2より)×FMパッケージ数)
÷フラッシュメモリAの消費電力 (式1)
並列処理可能最大フラッシュメモリB数=供給電源容量(図4より)
−コントローラ筐体消費電力(図3より)
−メディア筐体消費電力(図3より)
−フラッシュメモリ制御部その他消費電力(図2より)×FMパッケージ数)
÷フラッシュメモリBの消費電力 (式2)
を計算してローカルメモリ22上に格納する。尚、図14に示すストレージ装置10全体の並列処理可能フラッシュメモリ数の計算処理を行うタイミングは上記で説明したものに限らず、ホスト装置80からの入出力要求ごとに計算しても良い。
以下、ホスト装置80がストレージ装置10に対してライト処理を行う際のCPU21の動作フローを図15および図16を用いて説明する。ホスト装置80からライトデータを受信すると、CPU21はライトデータをキャッシュメモリ25に格納する(S201)。つづいて図17のLU論理アドレス変換テーブルを参照して、受信したライトデータのLU番号とLU論理アドレスから、RAIDレベル5によりライトアクセス対象となるデータ格納FMパッケージ番号、データ格納FMパッケージ論理アドレス、パリティ格納FMパッケージ番号、パリティ格納FMパッケージ論理アドレス、に変換する(S202)。つぎにCPU21はアクセス対象なるFMパッケージ30へコマンドを発行して図10に示すFMパッケージ論理アドレス変換テーブルをローカルメモリ22へ読み出し、アクセスするフラッシュメモリ数を算出する(S203)。こうして得られたストレージ装置10内でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超える場合は(S204)、図5のフラッシュメモリ構成管理テーブルより本アクセスに対する各FMパッケージ30に対する並列処理可能フラッシュメモリ数を以下の式により計算する(S205)。
FMパッケージ#1の並列処理可能フラッシュメモリ数=
FMパッケージ#1へアクセスするフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリ数
÷ストレージ装置10内でアクセスするフラッシュメモリの数
計算の結果割り切れない場合は、切り捨てにより整数化する。
ストレージ装置10内にフラッシュメモリの種類がAとBの2種類ある場合は、S204での判定に使用する並列処理可能フラッシュメモリ数を
並列処理可能フラッシュメモリA数=並列処理可能最大フラッシュメモリA数(式1)
×アクセスするフラッシュメモリAの数÷アクセスするフラッシュメモリの数
並列処理可能フラッシュメモリB数=並列処理可能最大フラッシュメモリB数(式2)
×アクセスするフラッシュメモリBの数÷アクセスするフラッシュメモリの数
として、
フラッシュメモリAを搭載するFMパッケージ#1の並列処理可能フラッシュメモリ数=
FMパッケージ#1へアクセスするフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリAの数
÷ストレージ装置10内でアクセスするフラッシュメモリAの数
フラッシュメモリBを搭載するFMパッケージ#2の並列処理可能フラッシュメモリ数=
FMパッケージ#2へアクセスするフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリBの数
÷ストレージ装置10内でアクセスするフラッシュメモリBの数
を計算すればよい。
この方法によれば、各FMパッケージ30へアクセスするフラッシュメモリ数に比例した数の並列処理可能フラッシュメモリ数が割り当てられる。並列処理可能フラッシュメモリ数がアクセスするフラッシュメモリ数より小さくなることで、並列処理数が抑制されオーバーヘッドが発生するが、特定のFMパッケージ30にオーバーヘッドが集中することを抑制できるので、ストレージ装置10全体でのオーバーヘッドを最小限に抑制できる。
尚、FMパッケージ30の並列処理可能フラッシュメモリの計算方法は上で示したものに限らない。例えば、FMパッケージ30が搭載するフラッシュメモリの個数に応じて
FMパッケージ#1の並列処理可能フラッシュメモリ数=
FMパッケージ#1に搭載されたフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリ数
÷ストレージ装置10内でアクセスするフラッシュメモリの数
と計算してもよい。
RAIDレベル5のRAIDグループへのライトアクセスに対しては、ライトペナルティにより、FMパッケージ30内のユーザデータとパリティデータを読み出して新しいパリティデータを計算した後、ライトデータとともにFMパッケージ30へライトする必要がある。S204でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超えない場合や、S205で各FMパッケージ30に対する並列処理可能フラッシュメモリ数を計算した後、CPU21はアクセスするFMパッケージ30に対してリードコマンドと、S205を処理した場合には計算された並列処理可能フラッシュメモリ数を発行してアクセス先のユーザデータとパリティデータをキャッシュメモリ25へ読み出す(S206)。
図18にPCI ExpressプロトコルによるFMパッケージ30の並列処理可能フラッシュメモリ数の指定方法の一例を示す。90はPCI Express規格におけるトランザクション層のパケットヘッダ領域を示す。パケットヘッダ領域90は4バイトで構成され、Uで示した領域は規格によって用途が規定されている領域、Rは規格によって用途が規定されていないリザーブ領域を示す。並列処理可能フラッシュメモリ数として12を指定するには、リザーブ領域に2進数で右詰めで入力する。並列処理可能フラッシュメモリ数を指定する必要がない場合にはリザーブ領域の全ビットに0を入力する。これにより、1回のコマンド発行でライトコマンドまたはリードコマンドと並列処理可能フラッシュメモリ数をFMパッケージ30に送信することができるので、ストレージ装置10としての性能を落とすことはない。
S206をアクセスする全FMパッケージ30に対して繰り返したら(S207)、キャッシュメモリ25内にあるアクセス先のユーザデータとパリティデータとホスト装置80からのライトデータから新しいパリティデータを計算する(S208)。その後、CPU21はアクセスするFMパッケージ30に対してライトコマンドと、S205を処理した場合には計算された並列処理可能フラッシュメモリ数を発行してキャッシュメモリ25上のライトデータと新しいパリティデータをFMパッケージ30に書き込む(S209)。更に、S209をアクセスする全FMパッケージ30に対して繰り返す(S210)。
本実施例ではPCI Expressインターフェースを例に並列処理可能フラッシュメモリ数の指定方法の例を示したが、FMパッケージ30が他のインターフェース、すなわちFC、SASあるいはSATAインターフェースを有する場合でも、コマンド発行時にFMパッケージ30に送信されるデータブロック内のリザーブ領域に並列処理可能フラッシュメモリ数を割り当てることで、ライトコマンドあるいはリードコマンドと並列処理可能フラッシュメモリ数を1回のコマンドで送信することができる。
以下、CPU21から並列処理可能フラッシュメモリ数とともにライトコマンドを受信した際のFMパッケージ30におけるフラッシュメモリ制御部31の動作フローを図19に示す。フラッシュメモリ制御部31はコントローラ筐体11のCPU21からのライトコマンドとともに受信したライトデータをバッファ41に格納する(S301)。つづいて、フラッシュメモリ制御部31はローカルRAM45上のFMパッケージ論理アドレス変換テーブルによりライトコマンドで指定されるライト対象となるFMパッケージ論理アドレスからフラッシュメモリ物理アドレス、すなわちフラッシュメモリ番号、フラッシュメモリ内部のページアドレス、およびページ内物理アドレスに変換する(S302)。受信したライトデータのアクセスするフラッシュメモリ数がFMパッケージ30の並列処理可能フラッシュメモリ数を超える場合には(S303)、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるようにライト処理を行う(S304)。受信したライトデータのアクセスするフラッシュメモリ数がFMパッケージ30の並列処理可能フラッシュメモリ数以下である場合には(S303)、通常のライト処理を行う(S305)。
以下、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるように行われる消去動作を伴わないライト処理(S304)の一例を図20を用いて説明する。本実施例では、16のフラッシュメモリを備えるFMパッケージ30にCPU21よりライトコマンドとともに並列処理可能フラッシュメモリ数として12を受信した際の各フラッシュメモリへの転送制御の流れを示す。フラッシュメモリ1a〜1c、2a〜2c、3a〜3c、および4a〜4cに対しては図11に示した場合と同じくライト転送が終わった後にコマンドを発行して書き込み動作を開始しているが、フラッシュメモリ1d、2d、3d、および4dについては、ライト転送が終わった直後の時点ではフラッシュメモリ1a〜1c、2a〜2c、3a〜3c、および4a〜4cが書き込み動作中であって既に並列処理数が12であるため、フラッシュメモリ1d、2d、3d、および4dに対して書込動作開始コマンドを転送しないことで待機させる(T201)。フラッシュメモリ1aのレディ/ビジー信号がビジー状態からレディ状態に戻ることで書き込み動作が終わるとフラッシュメモリ1dの書き込み動作が可能となるので、転送制御部42がフラッシュメモリ1dに対して書込動作開始コマンドを転送する(T202)。フラッシュメモリ2d、3d、および4dについても同様である。T203においては、フラッシュメモリ1d、1a、1bが書き込み動作中であるので、フラッシュメモリ1cの書き込み動作を開始せず待機させる。以上の処理を繰り返すことで、書き込み動作を同時に行うフラッシュメモリの数は常に最大12個に抑えられる。尚、当然に何れのフラッシュメモリに待機を指示するか図20に示したものに限らない。
一般的に、並列処理させるフラッシュメモリの個数を並列処理可能フラッシュメモリ数に抑えつつ、オーバーヘッドを抑制するには、以下の方針でライト処理を行えばよい。(1)ライトアクセス対象のフラッシュメモリが2以上のバスに存在すれば、各バスから1つのフラッシュメモリを選択し、ライトデータの転送を並列に行う。(2)並列処理可能フラッシュメモリ数に対して、ライトアクセスするフラッシュメモリ数が2以上多ければ、書き込み動作を待機させるフラッシュメモリを可能な限り異なるバスから選択する。
以下、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるように行われる消去動作を伴うライト処理(S304)の一例を図21を用いて説明する。本実施例では、16のフラッシュメモリを備えるFMパッケージ30にCPU21よりライトコマンドとともに並列処理可能フラッシュメモリ数として12を受信した際の16個のフラッシュメモリ1a〜4dに対してのライト処理の流れを示す。尚、アクセスされるページと同一ブロックに属する他の有効ページデータは予めバッファ41に退避されているものとする。まず、フラッシュメモリ1a〜1c、2a〜2c、3a〜3c、および4a〜4cに対して消去コマンドを発行して、消去動作を並列に処理する。フラッシュメモリ1a〜1cのいずれかの消去動作が終了すると、フラッシュメモリ1dへ消去コマンドを発行して消去動作を開始することができる(T401)。つづけて、フラッシュメモリ1a〜1cに対してライト転送を行う。フラッシュメモリ2a〜2c、3a〜3c、および4a〜4cについても同様である。1c、2c、3cおよび4cへのライトデータの転送が終わった時点では、フラッシュメモリ1a、1b、2a、2b、3a、3b、4a、4bが書き込み動作中、フラッシュメモリ1d、2d、3d、4dが消去動作中であり、既に並列処理数が12であるため、フラッシュメモリ1c、2c、3cおよび4cに対して書込動作開始コマンドを転送しないことで待機させる(T402)。フラッシュメモリ1aのレディ/ビジー信号がビジー状態からレディ状態に戻ることで書き込み動作が終わるとフラッシュメモリ1cの書き込み動作が可能となるので、転送制御部42がフラッシュメモリ1cに対して書込動作開始コマンドを転送する(T403)。フラッシュメモリ2c、3c、および4cについても同様である。以上のような処理を繰り返すことで、書き込み動作を消去動作を同時に行うフラッシュメモリの数は常に最大12個に抑えられる。尚、当然に何れのフラッシュメモリに待機を指示するか図21に示したものに限らない。
以下、ホスト装置80がストレージ装置10に対してリード処理を行う際のCPU21の動作フローを図22を用いて説明する。CPU21は図17のLU論理アドレス変換テーブルを参照して、リードデータのLU番号とLU論理アドレスから、リードアクセス対象となるデータ格納FMパッケージ番号とデータ格納FMパッケージ論理アドレスに変換する(S501)。つぎにCPU21はアクセス対象なるFMパッケージ30へコマンドを発行して図10に示すFMパッケージ論理アドレス変換テーブルをローカルメモリ22へ読み出し、アクセスするフラッシュメモリ数を算出する(S502)。こうして得られたストレージ装置10内でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超える場合は(S503)、図5のフラッシュメモリ構成管理テーブルより各FMパッケージ30に対する並列処理可能フラッシュメモリ数を以下の式により計算する(S504)。
FMパッケージ#1の並列処理可能フラッシュメモリ数=
FMパッケージ#1へアクセスするフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリ数
÷ストレージ装置10内でアクセスするフラッシュメモリの数
計算の結果割り切れない場合は、切り捨てにより整数化する。
ストレージ装置10内にフラッシュメモリの種類がAとBの2種類ある場合は、S503での判定に使用する並列処理可能フラッシュメモリ数を
並列処理可能フラッシュメモリA数=並列処理可能最大フラッシュメモリA数(式1)
×アクセスするフラッシュメモリAの数÷アクセスするフラッシュメモリの数
並列処理可能フラッシュメモリB数=並列処理可能最大フラッシュメモリB数(式2)
×アクセスするフラッシュメモリBの数÷アクセスするフラッシュメモリの数
として、
フラッシュメモリAを搭載するFMパッケージ#1の並列処理可能フラッシュメモリ数=
FMパッケージ#1へアクセスするフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリAの数
÷ストレージ装置10内でアクセスするフラッシュメモリAの数
フラッシュメモリBを搭載するFMパッケージ#2の並列処理可能フラッシュメモリ数=
FMパッケージ#2へアクセスするフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリBの数
÷ストレージ装置10内でアクセスするフラッシュメモリBの数
を計算すればよい。
この方法によれば、各FMパッケージ30へアクセスするフラッシュメモリ数に比例した数の並列処理可能フラッシュメモリ数が割り当てられる。並列処理可能フラッシュメモリ数がアクセスするフラッシュメモリ数より小さくなることで、並列処理数が抑制されオーバーヘッドが発生するが、特定のFMパッケージ30にオーバーヘッドが集中することを抑制できるので、ストレージ装置10全体でのオーバーヘッドを最小限に抑制できる。
尚、FMパッケージ30の並列処理可能フラッシュメモリの計算方法は上で示したものに限らない。例えば、FMパッケージ30が搭載するフラッシュメモリの個数に応じて
FMパッケージ#1の並列処理可能フラッシュメモリ数=
FMパッケージ#1に搭載されたフラッシュメモリ数
×ストレージ装置10内の並列処理可能フラッシュメモリ数
÷ストレージ装置10内でアクセスするフラッシュメモリの数
と計算してもよい。
S503でアクセスされるフラッシュメモリの数が上記で計算した並列処理可能フラッシュメモリ数を超えない場合や、S504で各FMパッケージ30に対する並列処理可能フラッシュメモリ数を計算した後、CPU21はアクセスするFMパッケージ30に対してリードコマンドと、S205を処理した場合には計算された並列処理可能フラッシュメモリ数を発行してアクセス先のユーザデータをキャッシュメモリ25へ読み出す(S505)。更に、S505をアクセスする全FMパッケージ30に対して繰り返す(S506)。最後にCPU21はキャッシュメモリ25上のリードデータをホスト装置80に送信する。
リード処理については、リード転送時に消費電力が最大となる。図13に示すようにリード転送の並列処理数は最大でも4個である。よって並列処理可能フラッシュメモリ数が12個の場合は処理の変更はない。一方で図13に示す場合において並列処理可能フラッシュメモリ数が3個以下との情報を受信した場合は、フラッシュメモリ制御部31はリード転送に対して適宜待機状態を入れる。
以下、CPU21から並列処理可能フラッシュメモリ数とともにリードコマンドを受信した際のFMパッケージ30におけるフラッシュメモリ制御部31の動作フローを図23に示す。フラッシュメモリ制御部31はローカルRAM45上のFMパッケージ論理アドレス変換テーブルによりFMパッケージ論理アドレスからフラッシュメモリ物理アドレス、すなわちフラッシュメモリ番号およびフラッシュメモリ内部のページアドレスおよびページ内物理アドレスに変換する(S401)。リードデータとしてアクセスするフラッシュメモリ数がFMパッケージ30の並列処理可能フラッシュメモリ数を超える場合には(S402)、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるようにリード処理を行い、リードデータをバッファ41に格納する(S403)。リードデータとしてアクセスするフラッシュメモリ数がFMパッケージ30の並列処理可能フラッシュメモリ数以下である場合には(S402)、通常のリード処理を行い、リードデータをバッファ41に格納する(S404)。最後に、フラッシュメモリ制御部31はバッファ41からコントローラ筐体11に対してリードデータを送信する(S405)。
以下、並列処理フラッシュメモリ数が並列処理可能フラッシュメモリ数以下になるように行われるリード処理(S403)の一例を図24を用いて説明する。本実施例では、16のフラッシュメモリを備えるFMパッケージ30にCPU21よりリードコマンドとともに並列処理可能フラッシュメモリ数として2を受信した際の16個のフラッシュメモリ1a〜4dに対してのリード処理の流れを示す。フラッシュメモリ1aおよび2aに対しては図13に示した場合と同じく読み出しが終わった後にリード転送を開始しているが、この既に並列処理数が2であるため、フラッシュメモリ3a、および4aに対してはフラッシュメモリ選択信号を非アクティブにすることで待機させる(T301)。フラッシュメモリ1aから1ページ分のデータ転送が終了するとフラッシュメモリ3aからのリード転送が可能となるので、転送制御部42はフラッシュメモリ3aに対してリード転送を開始する(T302)。フラッシュメモリ2a、および4aについても同様である。以上の処理を繰り返すことで、リード転送を同時に行うフラッシュメモリの数は常に最大2個に抑えられる。尚、当然に何れのフラッシュメモリに待機を指示するか図24に示したものに限らない。一般的に、並列処理させるフラッシュメモリの個数を並列処理可能フラッシュメモリ数に抑えつつ、オーバーヘッドを抑制するには、以下の方針でリード処理を行えばよい。(1)リードアクセス対象のフラッシュメモリが2以上のバスに存在すれば、各バスから1つのフラッシュメモリを選択し、リードデータの転送を並列に行う。(2)並列処理可能フラッシュメモリ数に対して、リードアクセスするフラッシュメモリ数が2以上多ければ、リード転送を待機させるフラッシュメモリを、可能な限り、異なるバスから選択する。
以上説明した方法により、ストレージ装置10全体としてフラッシュメモリの並列処理数が並列処理可能フラッシュメモリ数以下となり、供給電源容量の範囲内で正常に動作することが可能となる。よって、記憶媒体としてフラッシュメモリを搭載したストレージ装置において、ストレージ装置全体の最大定格消費電力に対して供給電源が不足する場合でも可用性を維持することができる。
ストレージ装置の構成図の一例である。 FMパッケージ構成部品の定格消費電力を示す表の一例である。 ストレージ装置の常時稼働部の定格消費電力を示す表の一例である。 供給電源容量を示す表の一例である。 搭載フラッシュメモリの構成を示す表の一例である。 RAIDグループとLU構成の一例である。 RAID構成管理テーブルの一例である。 FMパッケージの内部ブロック図の一例である。 FMパッケージ内のフラッシュメモリ制御部の内部ブロック図の一例である。 FMパッケージ論理アドレス変換テーブルの一例である。 FMパッケージ内の通常のライト処理の一例を示す図である。 FMパッケージ内の消去動作を伴う通常のライト処理の一例を示す図である。 FMパッケージ内の通常のリード処理の一例を示す図である。 ストレージ装置の並列処理可能フラッシュメモリ数を算出する動作フローの一例である。 ライト処理についてのCPU21の動作フローの一例である。 ライト処理についてのCPU21の動作フローの一例である。(つづき) LU論理アドレス変換テーブルの一例である。 FMパッケージの並列処理可能フラッシュメモリ数の指定方法の一例を示す図である。 ライト処理についてのフラッシュメモリ制御部の動作フローの一例である。 並列処理可能フラッシュメモリ数に基づくFMパッケージ内のライト処理の一例を示す図である。 並列処理可能フラッシュメモリ数に基づくFMパッケージ内の消去動作を伴うライト処理の一例を示す図である。 リード処理についてのCPU21の動作フローの一例である。 リード処理についてのフラッシュメモリ制御部の動作フローの一例である。 並列処理可能フラッシュメモリ数に基づくFMパッケージ内のリード処理の一例を示す図である。
符号の説明
10…ストレージ装置、11…コントローラ筐体、12…メディア筐体、30…FMパッケージ、80…ホスト装置

Claims (10)

  1. ストレージ装置を制御するストレージ制御部と、
    複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部とを備えたパッケージを少なくとも1つと、
    供給電源容量情報を格納する記憶部と、を有し、
    前記ストレージ制御部は、
    前記供給電源容量情報と前記複数のフラッシュメモリの種類及び個数とに基づいて、前記ストレージ装置に備えられた複数のフラッシュメモリすべてを対象に、並列に書き込み、消去または読み出しを行うことが可能な第1の並列処理可能数を計算し、
    受信した前記パッケージへのライトコマンド又はリードコマンドのアクセス対象となる前記フラッシュメモリが前記第1の並列処理可能数を超える場合には、前記ストレージ装置全体のアクセス対象となるフラッシュメモリの数と前記第1の並列処理可能数との比に、前記パッケージのアクセス対象となるフラッシュメモリの数を乗じて、前記パッケージ毎に並列に書き込み、消去または読み出しを行うことが可能な第2の並列処理可能数を計算し、
    前記パッケージのフラッシュメモリ制御部に対して前記ライトコマンド又はリードコマンドとともに前記第2の並列処理可能数を発行し、
    前記第2の並列処理可能数を受信した前記パッケージのフラッシュメモリ制御部は、該パッケージのフラッシュメモリ制御部が制御する複数のフラッシュメモリに対して、該複数のフラッシュメモリのうち並列に動作するフラッシュメモリの数が前記第2の並列処理可能数以下となるように、前記複数のフラッシュメモリに対する書き込み、消去または読み出し処理の実行を制御する
    ことを特徴とするストレージ装置。
  2. 前記記憶部は、上記ストレージ装置中の常時稼動部位の消費電力と第1の前記フラッシュメモリの消費電力を記憶し、
    前記ストレージ制御部は、前記供給電源容量情報、前記常時稼動部位の消費電力と前記フラッシュメモリの消費電力の情報から、前記電源容量を超えない範囲で動作可能な前記第1の並列処理可能数を計算することを特徴とする、請求項1に記載のストレージ装置。
  3. 前記フラッシュメモリの消費電力は、書き込み時の消費電力、消去時の消費電力または読み出し時の消費電力の少なくとも何れかであることを特徴とする、請求項2に記載のストレージ装置。
  4. 前記ストレージ制御部は、前記ストレージ装置に接続されるホスト装置からのアクセスごとに、前記ストレージ制御部が前記第2の並列処理可能数を計算することを特徴とする、請求項1に記載のストレージ装置。
  5. 前記ストレージ制御部は、前記ストレージ装置の電源投入時、前記パッケージの増減時の少なくとも何れかにおいて前記第1の並列処理可能数を計算することを特徴とする、請求項1に記載のストレージ装置。
  6. 少なくとも2つの前記複数のパッケージに備えられるフラッシュメモリの種類が異なる場合は、
    前記ストレージ制御部は、前記フラッシュメモリの種類ごとに前記第1の並列処理数を計算することを特徴とする、請求項1に記載のストレージ装置。
  7. 前記フラッシュメモリ制御部は、
    並列に2以上の前記フラッシュメモリに書き込み、消去または読み出し処理を実行させる場合には、前記パッケージ内で異なるバスに接続される2以上の前記フラッシュメモリを選択して書き込み、消去または読み出し処理を実行させ
    並列に2以上の前記フラッシュメモリに対する書き込み、消去または読み出し処理の実行を待機させる場合には、前記パッケージ内で異なるバスに接続される2以上の前記フラッシュメモリを選択して書き込み、消去または読み出し処理を待機させることを特徴とする、請求項1に記載のストレージ装置。
  8. 前記供給電源容量情報が、前記ストレージ装置に接続されたストレージ管理端末によりあらかじめ設定されることを特徴とする、請求項1に記載のストレージ装置。
  9. 前記フラッシュメモリ制御部は、上記ライトコマンド又はリードコマンドの対象となるフラッシュメモリを指定する論理アドレスを物理アドレスに変換することを特徴とする、請求項1に記載のストレージ装置。
  10. ストレージ装置を制御するストレージ制御部と、
    複数のフラッシュメモリと前記複数のフラッシュメモリを制御するフラッシュメモリ制御部とを備えたパッケージを少なくとも1つと、
    供給電源容量情報を格納する記憶部と、を有し、
    前記ストレージ制御部は、
    前記供給電源容量情報と前記複数のフラッシュメモリの種類及び個数とに基づいて、前記ストレージ装置に備えられた複数のフラッシュメモリすべてを対象に、並列に書き込み、消去または読み出しを行うことが可能な第1の並列処理可能数を計算し、
    受信した前記パッケージへのライトコマンド又はリードコマンドのアクセス対象となる前記フラッシュメモリが前記第1の並列処理可能数を超える場合には、前記ストレージ装置全体のアクセス対象となるフラッシュメモリの数と前記第1の並列処理可能数との比に、前記パッケージに搭載されたフラッシュメモリの数を乗じて、前記パッケージ毎に並列に書き込み、消去または読み出しを行うことが可能な第2の並列処理可能数を計算し、
    前記パッケージのフラッシュメモリ制御部に対して前記ライトコマンド又はリードコマンドとともに前記第2の並列処理可能数を発行し、
    前記第2の並列処理可能数を受信した前記パッケージのフラッシュメモリ制御部は、該パッケージのフラッシュメモリ制御部が制御する複数のフラッシュメモリに対して、該複数のフラッシュメモリのうち並列に動作するフラッシュメモリの数が前記第2の並列処理可能数以下となるように、前記複数のフラッシュメモリに対する書き込み、消去または読み出し処理の実行を制御する、
    ことを特徴とする、ストレージ装置。
JP2008214807A 2008-08-25 2008-08-25 フラッシュメモリ搭載ストレージ装置 Expired - Fee Related JP5489434B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008214807A JP5489434B2 (ja) 2008-08-25 2008-08-25 フラッシュメモリ搭載ストレージ装置
US12/286,000 US8145828B2 (en) 2008-08-25 2008-10-17 Flash memory-mounted storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008214807A JP5489434B2 (ja) 2008-08-25 2008-08-25 フラッシュメモリ搭載ストレージ装置

Publications (2)

Publication Number Publication Date
JP2010049586A JP2010049586A (ja) 2010-03-04
JP5489434B2 true JP5489434B2 (ja) 2014-05-14

Family

ID=41697375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008214807A Expired - Fee Related JP5489434B2 (ja) 2008-08-25 2008-08-25 フラッシュメモリ搭載ストレージ装置

Country Status (2)

Country Link
US (1) US8145828B2 (ja)
JP (1) JP5489434B2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100281207A1 (en) * 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8627117B2 (en) * 2009-06-26 2014-01-07 Seagate Technology Llc Device with power control feature involving backup power reservoir circuit
US20110173462A1 (en) * 2010-01-11 2011-07-14 Apple Inc. Controlling and staggering operations to limit current spikes
JP5646633B2 (ja) 2010-04-12 2014-12-24 株式会社日立製作所 ストレージ装置
JP5596143B2 (ja) 2010-06-29 2014-09-24 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
US8555095B2 (en) * 2010-07-26 2013-10-08 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US8826051B2 (en) 2010-07-26 2014-09-02 Apple Inc. Dynamic allocation of power budget to a system having non-volatile memory and a processor
US8522055B2 (en) * 2010-07-26 2013-08-27 Apple Inc. Peak power validation methods and systems for non-volatile memory
US20120066453A1 (en) * 2010-09-10 2012-03-15 Action Star Enterprise Co., Ltd. Card-reading device for multi cards
KR101777376B1 (ko) 2010-11-08 2017-09-11 삼성전자주식회사 데이터 저장 장치 및 그것의 구동 방법
TWI451439B (zh) * 2010-12-10 2014-09-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
JP5609683B2 (ja) * 2011-01-31 2014-10-22 ソニー株式会社 メモリ装置およびメモリシステム
US20120221767A1 (en) 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
US8645723B2 (en) 2011-05-11 2014-02-04 Apple Inc. Asynchronous management of access requests to control power consumption
WO2013046463A1 (ja) 2011-09-30 2013-04-04 株式会社日立製作所 不揮発半導体記憶システム
TWI488186B (zh) * 2011-11-18 2015-06-11 Silicon Motion Inc 快閃記憶體控制器以及產生快閃記憶體之驅動電流之方法
WO2013164869A1 (en) 2012-05-02 2013-11-07 Hitachi, Ltd. Storage system and control method therefor
US8879349B2 (en) 2013-02-26 2014-11-04 Kabushiki Kaisha Toshiba Storage device
US9582211B2 (en) 2014-04-29 2017-02-28 Sandisk Technologies Llc Throttling command execution in non-volatile memory systems based on power usage
US9575677B2 (en) 2014-04-29 2017-02-21 Sandisk Technologies Llc Storage system power management using controlled execution of pending memory commands
US9547587B2 (en) 2014-05-23 2017-01-17 International Business Machines Corporation Dynamic power and thermal capping for flash storage
CN104156178A (zh) * 2014-08-11 2014-11-19 四川九成信息技术有限公司 一种嵌入式终端数据访问方法
JP5782556B2 (ja) * 2014-10-15 2015-09-24 株式会社日立製作所 不揮発半導体記憶システム
WO2016064554A1 (en) * 2014-10-20 2016-04-28 Sandisk Enterprise Ip Llc Storage system power management using controlled execution of pending memory commands
US9880605B2 (en) 2014-10-27 2018-01-30 Sandisk Technologies Llc Method and system for throttling power consumption
US9916087B2 (en) 2014-10-27 2018-03-13 Sandisk Technologies Llc Method and system for throttling bandwidth based on temperature
US9847662B2 (en) 2014-10-27 2017-12-19 Sandisk Technologies Llc Voltage slew rate throttling for reduction of anomalous charging current
JP6541369B2 (ja) * 2015-02-24 2019-07-10 キヤノン株式会社 メモリのデータ処理を行なうデータ処理装置、データ処理方法、及びプログラム
US10169039B2 (en) * 2015-04-24 2019-01-01 Optimum Semiconductor Technologies, Inc. Computer processor that implements pre-translation of virtual addresses
JP5968508B2 (ja) * 2015-07-17 2016-08-10 株式会社日立製作所 不揮発半導体記憶システム
US20170109298A1 (en) * 2015-10-15 2017-04-20 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
KR20170086345A (ko) * 2016-01-18 2017-07-26 에스케이하이닉스 주식회사 메모리 칩 및 메모리 컨트롤러를 포함하는 메모리 시스템
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
KR102540765B1 (ko) * 2016-09-07 2023-06-08 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US11221958B2 (en) 2017-08-29 2022-01-11 Samsung Electronics Co., Ltd. System and method for LBA-based RAID
US10970204B2 (en) * 2017-08-29 2021-04-06 Samsung Electronics Co., Ltd. Reducing read-write interference by adaptive scheduling in NAND flash SSDs
KR102430209B1 (ko) 2017-09-07 2022-08-05 삼성전자주식회사 저장 장치 및 저장 장치에 포함된 컨트롤러들
TWI696074B (zh) 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US11880611B2 (en) * 2019-06-18 2024-01-23 Nippon Telegraph And Telephone Corporation Data processing apparatus, data processing method and program
CN111045732B (zh) * 2019-12-05 2023-06-09 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
US12306717B2 (en) 2020-05-11 2025-05-20 Samsung Electronics Co., Ltd. Systems, methods, and devices for data recovery using parity space as recovery space
US12298853B2 (en) * 2020-05-11 2025-05-13 Samsung Electronics Co., Ltd. Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
US12321236B2 (en) 2020-05-11 2025-06-03 Samsung Electronics Co., Ltd. Systems, methods, and devices for fault resilient storage
JP7757135B2 (ja) * 2021-10-29 2025-10-21 キオクシア株式会社 メモリシステム及びコマンド決定方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005063591A (ja) * 2003-08-18 2005-03-10 Matsushita Electric Ind Co Ltd ディスクアレイ装置
WO2005057475A1 (ja) * 2003-11-28 2005-06-23 Matsushita Electric Industrial Co., Ltd. 記録装置
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
JP4984689B2 (ja) * 2006-07-04 2012-07-25 日本電気株式会社 ディスクアレイ制御装置、方法、およびプログラム

Also Published As

Publication number Publication date
JP2010049586A (ja) 2010-03-04
US20100049905A1 (en) 2010-02-25
US8145828B2 (en) 2012-03-27

Similar Documents

Publication Publication Date Title
JP5489434B2 (ja) フラッシュメモリ搭載ストレージ装置
KR102937855B1 (ko) 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법
EP2396729B1 (en) Memory system and method of controlling memory system
JP6250613B2 (ja) 装置における電源管理のためのリソース割当及び解除
JP5646633B2 (ja) ストレージ装置
JP5349897B2 (ja) ストレージシステム
US8447918B2 (en) Garbage collection for failure prediction and repartitioning
US11893269B2 (en) Apparatus and method for improving read performance in a system
CN105867840B (zh) 闪存组件及非易失性半导体存储器组件
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
JP5808854B2 (ja) ストレージシステム及びストレージ方法
US20150254186A1 (en) Information processing device having a plurality of types of memory caches with different characteristics
US20100205353A1 (en) Memory system
US20070050571A1 (en) Storage system, storage device, and control method thereof
US20100161883A1 (en) Nonvolatile Semiconductor Memory Drive and Data Management Method of Nonvolatile Semiconductor Memory Drive
JP2012008651A (ja) 半導体記憶装置、その制御方法および情報処理装置
JP2012515954A (ja) 論理アドレスオフセット
KR20130112210A (ko) 메모리 시스템 및 그것의 페이지 교체 방법
KR20200013956A (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
JP2020021232A (ja) 情報処理システム
WO2015015589A1 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
KR20230112362A (ko) 데이터 처리 시스템 및 그 동작 방법과, 이를 위한 스토리지 장치
US8521946B2 (en) Semiconductor disk devices and related methods of randomly accessing data
EP4033346B1 (en) Affinity-based cache operation for a persistent storage device
CN117008970A (zh) 指令时序确定方法、主控芯片、固态硬盘和存储介质

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140225

R150 Certificate of patent or registration of utility model

Ref document number: 5489434

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees