JP6232936B2 - 情報処理装置、記憶装置制御回路及び記憶装置の制御方法 - Google Patents

情報処理装置、記憶装置制御回路及び記憶装置の制御方法 Download PDF

Info

Publication number
JP6232936B2
JP6232936B2 JP2013227724A JP2013227724A JP6232936B2 JP 6232936 B2 JP6232936 B2 JP 6232936B2 JP 2013227724 A JP2013227724 A JP 2013227724A JP 2013227724 A JP2013227724 A JP 2013227724A JP 6232936 B2 JP6232936 B2 JP 6232936B2
Authority
JP
Japan
Prior art keywords
group
processing
data processing
unit
channel
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
JP2013227724A
Other languages
English (en)
Other versions
JP2015088071A (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 JP2013227724A priority Critical patent/JP6232936B2/ja
Priority to US14/471,041 priority patent/US20150120993A1/en
Priority to EP20140183350 priority patent/EP2869183A1/en
Publication of JP2015088071A publication Critical patent/JP2015088071A/ja
Application granted granted Critical
Publication of JP6232936B2 publication Critical patent/JP6232936B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 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/061Improving I/O performance
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、情報処理装置、記憶装置制御回路及び記憶装置の制御方法に関する。
現在の情報処理装置では、外部記憶装置としてDynamic Random Access Memory(DRAM)やNANDフラッシュメモリなどのメモリデバイスを用いたシステムが広く見られる。例えば、複数のDRAMで構成されたDual Inline Memory Module(DIMM)をメモリに使用し、複数のNANDデバイスで構成されたSolid State Drive(SSD)をストレージに使用した情報処理装置等がある。
このようなメモリデバイスを制御するメモリコントローラは、いくつかのメモリデバイスが直列に接続されたチャネルを複数持つ。情報処理装置は、チャネルに並列的にアクセスすることでメモリデバイスに対する読み込みや書き込みの処理の性能を向上させている。
また、不揮発性メモリをストレージとして使用する場合、耐障害性を向上させるためRedundant Arrays of Inexpensive Disks(RAID)と呼ばれるデータ保護技術が使用されることがある。
メモリコントローラは、Central Processing Unit(CPU)などから書き込み要求を受信すると、アドレス変換やRAIDのパリティ演算などの処理を行う。その後、メモリコントローラは、データ及びパリティ書き込み対象のメモリデバイスを持つチャネルに書き込み要求とデータとを転送する。
一方、メモリコントローラは、CPUなどから読み出し要求を受信すると、アドレス変換等の処理を行う。その後、メモリコントローラは、データが格納されているメモリデバイスを有するチャネルに読み出し要求を転送し、該当メモリデバイスからデータを読み出してホストへ送信する。各チャネル制御部は、並列動作が可能であるので、書き込み及び読み出しを各チャネルに分散して行うことでメモリデバイスへのアクセスのスループットを向上することができる。
さらに、今日では、コストパフォーマンスを向上させるため、複数種類のメモリコントローラ及び記憶装置を統合して、記憶装置を構成することが行われている。例えば、高速な読み書きが可能だが高価なSSDと、読み書きは低速だが安価なハードディスクドライブを組み合わせてストレージシステムを構成することが行われる。このような場合、メモリデバイス間の性能差を吸収するため、データ毎のアクセス頻度などの情報を基に、各メモリデバイスへのデータ配置を最適化する技術が提案されている。
特開2004−21370号公報
しかしながら、今日ではメモリデバイスの大容量化に伴い1つのメモリコントローラが管理する記憶容量が増加してきている。そのため、データ毎のアクセス頻度などの情報を基に、各メモリデバイスへのデータ配置を最適化する技術を用いた場合、コントローラ単位の分散制御では粒度が粗いため、柔軟な使用効率の最適化を実現することは困難である。
そこで、メモリコントローラのチャネル単位で処理性能を異ならせ、性能要件のバランスを取ることが考えられる。しかし、1つのメモリコントローラ内でチャネル毎に性能に偏りを持たせた場合、処理速度の低いチャネルへの要求がメモリコントローラ内に滞留して、全チャネル共通の資源を圧迫するおそれがある。この場合、全体の処理速度が低下してしまうおそれがある。
開示の技術は、上記に鑑みてなされたものであって、処理性能及び資源効率を向上させた情報処理装置、記憶装置制御回路及び記憶装置の制御方法を提供することを目的とする。
本願の開示する情報処理装置は、一つの態様において、演算処理部を有する。さらに、複数のチャネルは、記憶装置を搭載する。複数のデータ処理部は、前記演算処理部からのデータの処理命令に応じて、前記チャネルを用いて前記記憶装置に対してデータ処理を行う。グループ管理部は、前記チャネルの処理性能を基に重複を許して複数のグループに分けられた前記チャネルのグループ構成及び各前記グループに含まれる前記チャネルを用いてデータ処理を行う前記データ処理部の割り当てを記憶する。制御部は、前記演算処理部からのデータの処理命令を基に、前記グループ管理部が記憶するグループの中からデータ処理を実行させるグループを選択し、選択したグループに割り当てられた前記データ処理部に対してデータ処理を行わせる。
本願の開示する情報処理装置、記憶装置制御回路及び記憶装置の制御方法の一つの態様によれば、処理性能及び資源効率を向上させることができるという効果を奏する。
図1は、情報処理装置の概略構成図である。 図2は、実施例1に係るNANDコントローラのブロック図である。 図3は、構成レジスタによるグループ構成の保持方法の一例の図である。 図4は、構成レジスタによるグループ構成の保持方法の他の例の図である。 図5は、CPU側でグループ選択を行う場合を説明するための図である。 図6は、グループ構成の一例を表す図である。 図7は、グループ構成の他の例を表す図である。 図8は、実施例1に係るNANDコントローラによるデータ処理のフローチャートである。 図9は、変形例に係るNANDコントローラのブロック図である。 図10は、NANDコントローラ側でグループ選択を行う場合の一例を説明するための図である。 図11は、NANDコントローラ側でグループ選択を行う場合の他の例を説明するための図である。 図12は、実施例3に係るNANDコントローラのブロック図である。 図13は、デバイス情報テーブルの一例の図である。 図14は、実施例3に係るグループ構成の設定のフローチャートである。 図15は、実施例4に係る情報処理装置によるグループ構成の一例を表す図である。 図16は、実施例4に係るグループ構成の設定のフローチャートである。
以下に、本願の開示する情報処理装置、記憶装置制御回路及び記憶装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、記憶装置制御回路及び記憶装置の制御方法が限定されるものではない。
図1は、情報処理装置の概略構成図である。情報処理装置1は、複数のメモリ2a及び2b、複数のCPU4a及び4b、Input Output(I/O)ハブ5、並びに、複数のSSD6a及び6bを有する。
メモリ2a及び2bは、複数のDIMM3を有する。そして、CPU4aは、図示していないがメモリ2aを制御するメモリコントローラを有する。また、CPU4bは、メモリ2bを制御するメモリコントローラを有する。
SSD6aは、NANDコントローラ10a及びNANDデバイスである複数のNANDフラッシュメモリ7を有する。また、SSD6bは、NANDコントローラ10b及び複数のNANDフラッシュメモリ7を有する。なお、SSD6aとSSD6bとは同様の機能を有する。また、NANDコントローラ10aとNANDコントローラ10bとは同様の機能を有する。以下の説明では、SSD6b及びNANDコントローラ10bと、SSD6a及びNANDコントローラ10aとを区別しない場合、それぞれ、「SSD6」、「NANDコントローラ10」という。
各メモリ2a及び2bは、各CPU4a及び4bが演算処理に用いるデータを記憶する記憶装置である。また、各CPU4a及び4bは、メモリ2a及び2bが有するDIMM3に格納されたデータを用いて、各種演算処理を行う演算処理装置である。例えば、CPU4a及び4bは、NUMA(Non-Uniform Memory Access)の技術を用いて、メモリ2a及び2bが有するDIMM3に格納されたデータを取得し、取得したデータを用いて演算処理を実行する。
また、CPU4a及び4bは、I/Oハブ5を介して、各SSD6a及び6bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。詳細には、CPU4aは、SSD6aに対し、データの読出し要求や書込み要求を発行し、各NANDフラッシュメモリ7からデータの読出しや書込みを行う。例えば、CPU4aは、SSD6aに対し、読出し対象となるデータを指定する論理アドレスが格納された読出し要求を発行する。また、CPU4aは、データの書込み先を指定する論理アドレスと、書込み対象となるデータとが格納された書込み要求を発行する。CPU4a及び4bは、「演算処理部」の一例にあたる。
NANDフラッシュメモリ7は、各種データを記憶する不揮発性メモリである。詳細には、NANDフラッシュメモリ7は、データの記憶領域である物理ページを複数有し、物理ページ単位でデータの書込みを行う。また、NANDフラッシュメモリ7は、複数の物理ページを有する物理ブロックを複数有し、ブロック単位でデータの消去を行う。ここで、1つの物理ページは、例えば、8キロバイトの記憶容量を有し、1つの物理ブロックは、例えば、128の物理ページを有する。このNANDフラッシュメモリ7が、「記憶装置」の一例にあたる。
NANDコントローラ10は、各NANDフラッシュメモリ7に対してアクセスし、データの読出しや書込みを行う。例えば、NANDコントローラ10は、データが記憶された記憶領域を各CPU4a及び4bが指定する際に用いる論理アドレスと、データが格納されたNANDフラッシュメモリ7の記憶領域を示す物理アドレスとを対応付けたアドレス変換テーブルを有する。
そして、NANDコントローラ10は、読出し要求とともに論理アドレスを受信すると、アドレス変換テーブルを用いて、論理アドレスと対応付けられた物理アドレスを識別し、識別した物理アドレスが示す記憶領域からデータの読出しを行う。その後、NANDコントローラ10は、I/Oハブ5を介して、読出したデータをCPU4a又は4bに送信する。
さらに、図2を参照して、本実施例に係るNANDコントローラ10について詳細に説明する。図2は、実施例1に係るNANDコントローラのブロック図である。図2では、NANDデバイスとしてNANDフラッシュメモリ7a〜7fを例に説明する。
本実施例に係るNANDコントローラ10は、構成レジスタ11、通信インタフェース12、グループ識別部13、データ処理部14a〜14c、チャネル制御部15a〜15fを有している。
ここで、本実施例では、NANDコントローラ10は、CPU4から命令やデータの処理要求を受ける場合で説明するが、NANDコントローラ10は、情報処理装置1の他の各部から命令やデータを受けても良い。NANDコントローラ10へ命令や処理要求を行う情報処理装置1の各部は、ホストデバイスと呼ばれる場合がある。
また、チャネル制御部15a〜15fとNANDフラッシュメモリ7a〜7fとをそれぞれ結ぶ伝送経路は、チャネル8a〜8fとして表す。さらに、以下では、チャネル制御部15a〜15fをそれぞれ区別しない場合には、チャネル制御部15と表す場合がある。また、NANDフラッシュメモリ7a〜7fをそれぞれ区別しない場合には、単にNANDフラッシュメモリ7と表す場合がある。また、チャネル8a〜8fをそれぞれ区別しない場合には、チャネル8と表す場合がある。
ここで、本実施例では、3つのデータ処理部14a〜14c及び6つのチャネル8a〜8fを有する場合で説明するが、データ処理部及びチャネルの数はこれに限らない。
また、データ処理部14a〜14cは、いずれも同じ構成を有するが、図2では、データ処理部14aのみ詳細のブロックを示している。以下では、データ処理部14a〜14cをそれぞれ区別しない場合、単にデータ処理部14という。
構成レジスタ11は、ユーザによって決定されたグループ構成を記憶する。また、構成レジスタ11は、各グループがデータ処理部14a〜14cのいずれに割り当てられているかを記憶する。
具体的には、構成レジスタ11は、CPU4からの書き込み命令又は読み込み命令を受けて、命令にしたがい書き込み又は読み出しを行う。例えば、操作者は、情報処理装置1で動作する管理ソフトウェアやデバッグ用インタフェースを用いてCPU4に対してグループの構成を書き込む指示を行う。そして、構成レジスタ11は、操作者からの指示によりCPU4が送信した書き込み命令にしたがい、グループ構成を書き込むことで記憶する。
例えば、構成レジスタ11は、図3に示すような形式でグループ構成を記憶する。図3は、構成レジスタによるグループ構成の保持方法の一例の図である。本実施例では、グループ構成が、3つのデータ処理部14a〜14cによって生成可能なグループの最大数である3グループである場合で説明する。ただし、グループ構成は、各グループに1つ以上のデータ処理部を割り当てることができればよく、データ処理部の数以下であればグループの数に制限はない。
構成レジスタ11は、図3に示すようにグループ毎に各チャネル8a〜8fのいずれが属しているかを表す情報を保持することでグループ構成を記憶している。図3では、各チャネルは属するグループに対応する欄をOnにすることで、そのチャネルが属するグループを表す。例えば、チャネル8aは、グループ#1に対応する欄がOnになっており、グループ#2及び#3に対応する欄はOffになっている。すなわち、チャネル8aは、グループ#1に属している。ここで、本実施例では、グループ#1がデータ処理部14aに割り当てられ、グループ#2がデータ処理部14bに割り当てられ、グループ#3がデータ処理部14cに割り当てられている。この構成レジスタ11が、「グループ管理部」の一例にあたる。
ただし、図3は、グループ構成の保持方法の一例であり、各チャネルがどのグループに属しているか特定できれば、構成レジスタ11の情報の保持の仕方は特に限定は無い。例えば、図4は、構成レジスタによるグループ構成の保持方法の他の例の図である。図4に示すように、構成レジスタ11は、グループ毎に属するチャネルの識別情報をそれぞれのグループに対応させて列挙することでグループ構成を記憶してもよい。
本実施例では、構成レジスタ11の記憶するグループ構成は、全チャネルが重複することなくいずれかのグループに属するように設定される。また、グループの数はデータ処理部14a〜14cの数以下であり、本実施例では、グループの最大数は3である。以下では、グループの最大数である3を全グループ数と呼ぶ場合がある。
通信インタフェース12は、CPU4とNANDコントローラ10が有する各部との間の通信を仲介するインタフェースである。実際には、通信インタフェース12を介して、CPU4とNANDコントローラ10の各部は通信を行うが、以下では説明の都合上、通信インタフェース12の仲介を省略して説明する場合がある。
グループ識別部13は、グループ構成を構成レジスタ11から受信する。また、グループ識別部13は、CPU4から読み出し又は書き込みといったデータの処理要求を受ける。本実施例では、後述するように、CPU4は、データの処理要求の中にその処理要求の宛先のグループの情報を格納させている。
グループ識別部13は、構成レジスタ11から受信した各グループに割り当てられたデータ処理部14a〜14cの情報を用いて、処理要求で指定された宛先のグループに対応するデータ処理部14を、データ処理部14a〜14cの中から選択する。そして、グループ識別部13は、受信したデータの処理要求を選択したデータ処理部14へ送信する。
その後、グループ識別部13は、処理要求の応答をCPU4へ返す。例えば、処理要求がデータの書き込み要求の場合、グループ識別部13は、データ処理要求のデータ処理部14への転送完了応答をCPU4へ返す。また、処理要求が読み出し要求の場合、グループ識別部13は、処理要求の応答として、読み出し要求で指定されたデータを後述するデータバッファ143から受信する。そして、グループ識別部13は、受信したデータをCPU4へ送信することで、処理要求に対する応答とする。このグループ識別部13が、「制御部」の一例にあたる。
データ処理部14は、リクエストバッファ141、アドレス変換制御部142、データバッファ143、RAID制御部144及びチャネル選択部145を有している。
リクエストバッファ141は、自己が搭載されているデータ処理部14に対応するグループ宛のデータの処理要求の入力をグループ識別部13から受ける。リクエストバッファ141は、受信した処理要求を蓄積していく。そして、アドレス変換制御部142が処理を行っていなければ、リクエストバッファ141は、一番古い処理要求をアドレス変換制御部142へ出力する。
アドレス変換制御部142は、データの処理要求の入力をリクエストバッファ141から受ける。アドレス変換制御部142は、自己が搭載されているデータ処理部14に接続されているチャネル上のNANDフラッシュメモリ7のアドレスに、処理要求で指定されているアドレスを変換する。そして、アドレス変換制御部142は、変換後のアドレス及び処理要求をチャネル選択部145へ出力する。
データバッファ143は、処理要求がデータの書き込み要求の場合、自己が搭載されているデータ処理部14に対応するグループ宛のデータの処理要求の対象となっているデータをグループ識別部13から受ける。データバッファ143は、受信したデータを蓄積していく。そして、RAID制御部144が処理を行っていなければ、データバッファ143は、一番古いデータをRAID制御部144へ出力する。
また、処理要求がデータの読み出し要求の場合、データバッファ143は、データの入力をRAID制御部144から受ける。そして、データバッファ143は、受信したデータを蓄積していく。その後、グループ識別部13が処理を実行可能な状態であれば、一番古いデータをグループ識別部13へ出力する。
RAID制御部144は、処理要求が書き込み要求の場合、データの入力をデータバッファ143から受ける。そして、RAID制御部144は、データの宛先のNANDフラッシュメモリ7のRAID構成に合わせてデータに対してRAID処理を行う。例えば、RAID5の場合、RAID制御部144は、受信したデータを用いてパリティ計算を行う。その後、RAID制御部144は、RAID処理を施したデータをチャネル選択部145へ出力する。
また、処理要求が読み出し要求の場合、RAID制御部144は、データの入力をチャネル選択部145から受ける。そして、RAID制御部144は、データの再構築等のRAID処理を行う。その後、RAID制御部144は、RAID処理を施したデータをデータバッファ143へ出力する。
チャネル選択部145は、グループ構成を構成レジスタ11から受信する。そして、チャネル選択部145は、自己が搭載されたデータ処理部14が割り当てられたグループに属するチャネルに接続する。ここでは、チャネル選択部145が搭載されたデータ処理部14が割り当てられたグループに属するチャネルが、チャネル8a及び8bの場合で説明する。
チャネル選択部145は、処理要求の入力をアドレス変換制御部142から受ける。また、チャネル選択部145は、データが書き込み要求の場合、データの入力をRAID制御部144から受ける。
そして、チャネル選択部145は、チャネル8a及び8bに接続されているチャネル制御部15のうち処理要求で指定されたアドレスに応じたNANDフラッシュメモリ7を有するチャネルに接続されたチャネル制御部15へ処理要求を出力する。さらに、処理要求が書き込み要求の場合、チャネル選択部145は、処理要求を出力したチャネル制御部15にデータを出力する。
その後、処理要求がデータの読み出し要求の場合、チャネル選択部145は、同じグループに属するチャネル制御部15がNANDフラッシュメモリ7から読み出したデータをチャネル制御部15から受信する。そして、チャネル選択部145は、受信したデータをRAID制御部144へ出力する。
チャネル制御部15は、処理要求で指定されたアドレスを取得する。次に、チャネル制御部15は、チャネル8a及び8b上のNANDフラッシュメモリ7の指定されたアドレスに対して処理を行う。
例えば、処理要求が書き込み要求の場合、チャネル制御部15は、チャネル8a及び8b上のNANDフラッシュメモリ7の指定されたアドレスに、そのRAID構成に合わせて受信したデータを書き込む。また、処理要求が読み出し要求の場合、チャネル制御部15は、チャネル8a及び8b上のNANDフラッシュメモリ7の指定されたアドレスからデータを読み出す。そして、チャネル制御部15は、NANDフラッシュメモリ7から読み出したデータを自己に接続するデータ処理部14のチャネル選択部145へ出力する。
NANDフラッシュメモリ7a〜7fは、対応するチャネル8a〜8fが割り当てられたグループに属するチャネル制御部15との間でデータの送受信を行う。
以上に説明したように、データ処理部14は、データの読み出し及び書き込みの処理を行う。そして、上述したように、チャネル8は、データ処理部14毎にグループ化されている。すなわち、本実施例に係る情報処理装置1は、グループ毎に、それぞれ別個のデータ処理を行うことができる。
ここで、図5を参照して、本実施例に係る処理要求に基づくデータ処理の全体の概要について説明する。図5は、CPU側でグループ選択を行う場合を説明するための図である。本実施例では、上述したようにCPU4により処理要求の対象とするグループが選択される。具体的には、CPU4は、構成レジスタ11からグループの情報を取得する。この時、CPU4は、各グループに属するチャネル8の性能の情報などの各グループの性能情報も取得する。そして、CPU4は、データの処理要求を生成する際に、各グループの性能情報にしたがいどのグループに対して処理要求を実行させるかを決定する。そして、CPU4は、決定したグループを宛先のグループの情報として処理要求に付加する。
この場合、データの処理要求には、図5の処理要求401〜403のように宛先のグループが格納される。処理要求401は、読み出し要求の一例である。処理要求401は、グループ#1からデータを読み出す要求である。また、処理要求402及び403は、書き込み要求の一例である。処理要求402は、グループ#2に対してデータを書き込む要求である。また、処理要求403は、グループ#3に対してデータを書き込む要求である。
NANDコントローラ10は、処理要求401に格納されている宛先のグループを取得し、処理要求401がグループ#1に対する処理だと判定する。そして、NANDコントローラ10は、グループ#1に属するチャネル8上のNANDフラッシュメモリ7からデータを読み出す。
また、NANDコントローラ10は、処理要求402に格納されている宛先のグループを取得し、処理要求402がグループ#2に対する処理だと判定する。そして、NANDコントローラ10は、グループ#2に属するチャネル8上のNANDフラッシュメモリ7に対してデータを書き込む。また、NANDコントローラ10は、処理要求403に格納されている宛先のグループを取得し、処理要求403がグループ#3に対する処理だと判定する。そして、NANDコントローラ10は、グループ#3に属するチャネル8上のNANDフラッシュメモリ7に対してデータを書き込む。
本実施例のように、CPU4などのホストデバイス側でグループを指定する場合、ホストデバイスは各グループを個別の記憶ユニットとして認識しているといえる。
次に、図6及び図7を参照して、各種グループ構成について説明する。図6は、グループ構成の一例の図である。また、図7は、グループ構成の他の例の図である。
例えば、図6に示すように、NANDフラッシュメモリ7a〜7fのそれぞれの性能が異なる場合がある。図6のNANDフラッシュメモリ7a〜7fの中の括弧内の情報は、それぞれの種別及び速度を表している。例えば、(SLC,400Mbps)は、種別がSingle Level Cellであり、速度が400Mbpsであることを示している。また、MLCは、種別がMulti Level Cellを示している。この場合、NANDフラッシュメモリ7aと7bの性能は同じである。また、NANDフラッシュメモリ7cと7dの性能は同じである。また、NANDフラッシュメモリ7eと7fの性能は異なっているが、NANDフラッシュメモリ7a〜7dとの性能差を比較すると、NANDフラッシュメモリ7eと7fの性能は同等であるといえる。そこで、同じ性能のNANDフラッシュメモリ7を同じグループとして設定した場合、図6のようなグループ構成となる。この場合、NANDフラッシュメモリ7a及び7bを有するチャネル8a及び8bが最も性能が良い。また、NANDフラッシュメモリ7c及び7dを有するチャネル8c及び8dが次に性能が良い。そして、NANDフラッシュメモリ7e及び7fを有するチャネル8e及び8fが最も性能が劣る。
図6では、チャネル8a及び8bがグループ91に属する。そして、グループ91がグループ#1として、データ処理部14aが割り当てられている。また、チャネル8c及び8dがグループ92に属する。そして、グループ92がグループ#2として、データ処理部14bが割り当てられている。また、チャネル8e及び8fがグループ93に属する。そして、グループ93がグループ#3として、データ処理部14cが割り当てられている。
例えば、CPU4は、処理の重要度に応じてグループを選択する。CPU4は、処理の重要度を高レベル、中レベル、低レベルに分ける。そして、処理の重要度が高レベルの場合、CPU4は、その処理要求を最も性能が高いチャネル8a及び8bが属するグループ91に処理を行わせると決定する。また、処理の重要度が中レベルの場合、CPU4は、性能が中位のチャネル8c及び8dが属するグループ92に処理を行わせると決定する。また、処理の重要度が低レベルの場合、CPU4は、性能が最も劣るチャネル8e及び8fが属するグループ93に処理を行わせると決定する。
図6において、CPU4によりデータの処理要求の宛先としてグループ91が選ばれた場合、グループ識別部13によりデータ処理要求はデータ処理部14aに送られる。そして、データ処理部14aは、チャネル8a又は8bのどちらかを用いてデータ処理を行う。
また、その他のグループ構成として、図7に示すように、NANDフラッシュメモリ7a〜7fのRAID構成が異なる場合が考えられる。図7では、NANDフラッシュメモリ7a及び7bがRAID1を構成している。また、NANDフラッシュメモリ7c〜7eがRAID5を構成している。また、NANDフラッシュメモリ7fがRAID0を構成している。そこで、同じRAIDグループに属するNANDフラッシュメモリ7を同じグループとして設定した場合、図7のようなグループ構成となる。
図7では、チャネル8a及び8bがグループ901に属する。そして、グループ901がグループ#1として、データ処理部14aが割り当てられている。また、チャネル8c〜8eがグループ902に属する。そして、グループ902がグループ#2として、データ処理部14bが割り当てられている。また、チャネル8fがグループ903に属する。そして、グループ903がグループ#3として、データ処理部14cが割り当てられている。ここで、RAID0が最もデータの読み書きの速度が速いが信頼性は低い。これに対して、RAID1及び5は、信頼性がRAID0に比べて高い。そして、RAID1はRAID5よりデータの読み書きの速度が速い。RAID5が最もデータの読み書きの速度が遅い。
この場合も、例えば、CPU4は、処理の重要度に応じてグループを選択する。CPU4は、処理の重要度を高レベル、中レベル、低レベルに分ける。そして、重要度が高レベルの場合、CPU4は、信頼性が高く処理速度も速いRAID1が構成されているグループ901に処理を行わせると決定する。また、重要度が中レベルの場合、CPU4は、信頼性が高く処理速度が遅いRAID5が構成されているグループ902に処理を行わせると決定する。また、重要度が低レベルの場合、CPU4は、信頼性が低いRAID0が構成されているグループ903に処理を行わせると決定する。
図7において、CPU4によりデータの処理要求の宛先としてグループ902が選ばれた場合、グループ識別部13によりデータ処理要求はデータ処理部14bに送られる。そして、データ処理部14bは、チャネル8c〜8eのいずれかを用いてデータ処理を行う。
ただし、図6及び図7で示したグループ構成は一例であり、グループの構成に特に制限はない。
次に、図8を参照して、本実施例に係るNANDコントローラ10によるデータ処理の流れについて説明する。図8は、実施例1に係るNANDコントローラによるデータ処理のフローチャートである。
構成レジスタ11は、グループ構成の情報を格納する(ステップS1)。
構成レジスタ11は、グループ構成をグループ識別部13及びチャネル選択部145へ通知する(ステップS2)。
チャネル選択部145は、自己が搭載されたデータ処理部14が割り当てられたグループに属するチャネル8に接続する(ステップS3)。
グループ識別部13は、データの処理要求を受信する(ステップS4)。
次に、グループ識別部13は、処理要求の宛先のグループを取得し、宛先のグループを処理対象とするグループとして選択する(ステップS5)。
アドレス変換制御部142は、処理要求で指定されているアドレスをNANDフラッシュメモリ7のアドレスに変換する(ステップS6)。
データ処理部14は、チャネル選択部145により接続されたチャネル制御部15を用いて、割り当てられたグループに属するチャネル8に対してデータ処理を実行する(ステップS7)。
以上に説明したように、本実施例に係る情報処理装置は、チャネルをグループ化し、グループ毎にデータ処理を行う。これにより、本実施例に係る情報処理装置は、グループ毎に、それぞれ別個のデータ処理を行うことができる。そして、チャネルは、処理性能によってグループ化されている。そのため、チャネル間で処理性能の差が存在する場合でも、性能の異なるチャネルが互いに影響を受けることなく並列動作することができる。この結果、用途に応じて全てのチャネル上の記憶装置の性能を無駄なく発揮することができる。
また、メモリデバイスの搭載状況やRAID構成などの変更により各チャネルの性能が変化した場合にも、グループ構成を変更するだけでチャネルの性能差による処理能力の低下を回避できる。すなわち、Large Scale Integration(LSI)などのハードウェアの再設計を行うことなくシステム全体の性能や資源使用効率を向上させることができる。
(変形例)
次に、図9を参照して、実施例1の変形例について説明する。図9は、変形例に係るNANDコントローラのブロック図である。
本変形例に係るNANDコントローラ10は、図9に示すように、アドレス変換制御部142が1つにまとめられていることが実施例1と異なる。
本変形例では、リクエストバッファ141は、アドレス変換制御部142に処理要求を出力する。その後、リクエストバッファ141は、アドレス変換された処理要求をアドレス変換制御部142から受信する。
そして、リクエストバッファ141は、チャネル選択部15に対してアドレス変換された処理要求を送信してNANDフラッシュメモリ7に対するアクセス要求を発行する。
アドレス変換制御部142は、データ処理部14a〜14cのそれぞれのリクエストバッファ141から処理要求を受信する。そして、アドレス変換制御部142は、先着順又は任意の優先度付けの調停を行って各処理要求のアドレス変換を行う。そして、アドレス変換制御部142は、アドレス変換を行った処理要求を、その処理要求の送信元のリクエストバッファ141へ返信する。
以上に説明したように、本変形例に係るNANDコントローラは、実施例1におけるデータ処理部におけるアドレス変換制御部を共通にして、それ以外の機能を各データ処理部に持たせた構成である。アドレス変換は他の処理要求に対する処理を遅延させないため、このようにアドレス変換の機能を共通化しても、実施例1と同じ効果を維持することができる。また、本変形例は機能の共通化の一例であり、データ処理部における他の処理要求に対する処理を遅延させない機能であれば、他の機能を共通化してもよい。
また、以上の説明では、NANDフラッシュメモリを制御するNANDコントローラを例に説明したが、メモリデバイスなどの記憶装置を制御するコントローラであれば他のコントローラに対しても本発明を適用することができる。例えば、図1のDIMM3を制御するメモリコントローラに本発明を適用してもよい。
次に、実施例2について説明する。本実施例に係る情報処理装置は、グループの選択をNANDコントローラ側で行うことが実施例1と異なる。本実施例に係るNANDコントローラ10のブロック図も図2で表される。以下の説明では、実施例1と同様の機能を有する各部については説明を省略する。
本実施例では、CPU4は、書き込み処理の場合にその処理の優先度を決定する。そして、CPU4は、処理要求に処理の優先度を付加する。
グループ識別部13は、処理要求をCPU4から受信する。処理要求が読み出し要求の場合、グループ識別部13は、処理要求で指定されているアドレスに対応する記憶領域を有するNANDフラッシュメモリ7に対応するチャネル8が属するグループに割り当てられたデータ処理部14に処理要求を出力する。
これに対して、処理要求が書き込み要求の場合、グループ識別部13は、処理要求に格納されている優先度を取得する。グループ識別部13は、各優先度とグループとの対応を記憶している。例えば、図6のようにグループ91〜93に分かれている場合で説明する。図6では、チャネル8a及び8bの性能が一番高く、チャネル8c及び8dの性能が次に高く、チャネル8e及び8fの性能が一番低い。
そして、グループ識別部13は、処理要求の優先度をグループに対応付けるための第1閾値及び第2閾値を記憶している。第2閾値は、第1閾値よりも低い優先度の閾値である。
グループ識別部13は、優先度が第1閾値以上の場合、チャネル8a及び8bが属するグループ91に割り当てられたデータ処理部14aに処理要求を出力する。また、優先度が第1閾値より低く第2閾値以上の場合、グループ識別部13は、チャネル8c及び8dが属するグループ92に割り当てられたデータ処理部14bに処理要求を出力する。また、優先度が第2閾値より低い場合、グループ識別部13は、チャネル8e及び8fが属するグループ93に割り当てられたデータ処理部14cに処理要求を出力する。
このように、本実施例に係るグループ識別部13は、処理要求の優先度に応じてその処理要求を処理するグループを決定する。
さらに、図10を参照して、本実施例に係る情報処理装置によるデータ処理全体の概要を説明する。図10は、NANDコントローラ側でグループ選択を行う場合の一例を説明するための図である。ここでは、優先度は1〜3で表され、優先度は値の小さいほど優先度が高いものとする。そして、チャネル8が性能毎に#1〜#3の3グループに分けられている場合で説明する。
図10における処理要求411は、読み出し要求である。また、処理要求412及び413は書き込み要求である。CPU4は、読み出し要求の場合は、処理要求411のように、通常の読み出し要求を出力する。
これに対して、書き込み要求の場合は、処理要求412及び413のように優先度を表す情報を付加する。ここでは、処理要求412が優先度1であり、処理要求413が優先度2である。
NANDコントローラ10は、処理要求411を受信した場合、グループ#1〜3全てに要求を複製して転送する。各グループではアドレス変換が行われ、処理要求411で指定されるアドレスが登録されていれば、NANDコントローラ10は、そのアドレスに対応する記憶領域を有するNANDフラッシュメモリ7からデータを読み出す。一方、処理要求411で指定されるアドレスが登録されていなければ、要求を受けたグループは、処理要求は自グループ宛ではないと判断して要求を破棄する。
一方、処理要求412を受信すると、NANDコントローラ10は、処理要求412の優先度の情報を確認し、処理要求412の優先度が1であると確認する。そして、NANDコントローラ10は、グループ#1〜3の中でもっとも性能が高いチャネルが属するグループを選択して、選択したグループに割り当てられたデータ処理部14を用いて処理要求412を処理する。
また、処理要求413を受信すると、NANDコントローラ10は、処理要求413の優先度の情報を確認し、処理要求413の優先度が2であると確認する。そして、NANDコントローラ10は、グループ#1〜3の中で2番目に性能が高いチャネルが属するグループを選択して、選択したグループに割り当てられたデータ処理部14を用いて処理要求413を処理する。
この場合、NANDコントローラ10が優先度を基にグループを選択するので、CPU4はグループの分割状態を把握しなくてもよい。
(変形例)
また、NANDコントローラ10側でグループを選択する方法は、優先度を用いる方法に限らない。例えば、処理要求に付加された優先度以外の付随情報を用いてもよい。
この場合、CPU4などのホストデバイスは、書き込み処理の場合にその処理要求に付随情報を付加する。例えば、付随情報としては、その処理要求を出力したホストデバイスの種類などでよい。
グループ識別部13は、処理要求をCPU4から受信する。処理要求が書き込み要求の場合、グループ識別部13は、処理要求に格納されている付随情報を取得する。
グループ識別部13は、付随情報とグループとの対応を記憶している。ここで、付随情報として、処理要求を出力したホストデバイスの種類を用いる場合で説明する。処理要求がCPU4からの出力であれば、その処理要求が重要なものであると考えられるので、グループ識別部13は、チャネルの性能の高いグループにその処理要求を処理させる。これに対して、例えば、処理要求がLocal Area Network(LAN)から出力された場合、その処理要求は重要度が低いと考えられるので、グループ識別部13は、チャネルの性能の低いグループにその処理要求を処理させる。
また、ここでは、付随情報として処理要求の出力元のホストデバイスの種類を用いたが、付随情報は、各処理要求を選別することができる情報であれば特に制限はない。例えば、論理アドレス、データサイズ及び発行元ソフトウェアの種類を付随情報として、NANDコントローラ10は、これら付随情報を解析してグループの選択を行ってもよい。
さらに、図11を参照して、本変形例に係る情報処理装置によるデータ処理全体の概要を説明する。図11は、NANDコントローラ側でグループ選択を行う場合の他の例を説明するための図である。ここでは、チャネル8が性能毎に#1〜#3の3グループに分けられている場合で説明する。
図11における処理要求421は、読み出し要求である。また、処理要求422及び423は書き込み要求である。CPU4は、読み出し要求の場合は、処理要求421のように、通常の読み出し要求を出力する。
これに対して、書き込み要求の場合は、処理要求422及び423のようにヘッダなどに付随情報を格納する。
NANDコントローラ10は、処理要求421を受信した場合、グループ#1〜3全てに要求を複製して転送する。各グループにおいてアドレス変換が行われ、処理要求421で指定されるアドレスが登録されていれば、NANDコントローラ10は、処理要求421で指定されるアドレスに対応する記憶領域を有するNANDフラッシュメモリ7からデータを読み出す。一方、処理要求411で指定されるアドレスが登録されていなければ、要求を受けたグループは、処理要求は自グループ宛ではないと判断して要求を破棄する。
一方、処理要求422又は423を受信すると、NANDコントローラ10は、処理要求422又は423の付随情報を取得する。そして、NANDコントローラ10は、取得した付随情報に応じてグループ#1〜3の中からデータを書き込むグループを選択する。
この場合も、NANDコントローラ10が付随情報を基にグループを選択するので、CPU4はグループの分割状態は把握しなくてもよい。
このように、本実施例に係るグループ識別部13は、付随情報に応じてその処理要求を処理するグループを決定することもできる。
以上に説明したように、本実施例及び変形例に係る情報処理装置は、NANDコントローラが、処理要求に応じたグループを選択する。これにより、グループに関する処理をNANDコントローラ側で一元化でき、CPUなどの処理に加える変更を抑えることができるので、容易にシステム全体の性能や資源使用効率を向上することができる。
次に、実施例3について説明する。本実施例に係る情報処理装置は、NANDコントローラが自動的にグループを構成することが実施例1と異なる。図12は、実施例3に係るNANDコントローラのブロック図である。本実施例に係るNANDコントローラ10は、実施例1のNANDコントローラ10の各機能部に加えて、構成解析部16をさらに有している。以下の説明では、実施例1と同様の機能を有する各部については説明を省略する。
NANDフラッシュメモリ7a〜7fはそれぞれ、自己の仕様情報を格納した仕様格納領域を有している。仕様情報とは、例えば、製造元や速度などである。また、本実施例では、NANDフラッシュメモリを例に説明しているが、他のメモリデバイスでも仕様格納領域を有するものがある。例えば、Double-Data-Rate(DDR)3 DIMMであれば、Serial Presence Detect(SPD)が仕様格納領域にあたる。すなわち、他のメモリデバイスでも、仕様格納領域を有するものであれば、本実施例の効果を得ることができる。
構成解析部16は、NANDフラッシュメモリ7a〜7fのそれぞれの仕様格納領域から仕様情報を取得する。図13は、デバイス情報テーブルの一例の図である。図13のデバイス情報テーブル161は、構成解析部16がNANDフラッシュメモリ7a〜7fのそれぞれから読み出した仕様情報を集約したテーブルである。デバイス情報テーブル161では、各チャネル8a〜8fに対応させて、NANDフラッシュメモリ7a〜7fの仕様を表している。
デバイス情報テーブル161に示すように、構成解析部16は、NANDフラッシュメモリ7a〜7fの仕様情報として、例えば、製造元、タイプ、速度及び1ページあたりの容量を取得する。そして、構成解析部16は、取得した情報を用いて構成レジスタ11に対して各チャネルのグループ構成の設定を行う。
図14は、実施例3に係るグループ構成の設定のフローチャートである。構成解析部16は、チャネルをグループ化するための性能差の閾値を予め記憶している。
構成解析部16は、グループ#iのグループ番号を表す変数iを初期値の1に設定する(ステップS101)。
次に、構成解析部16は、全てのチャネル8a〜8fを処理対象に設定する(ステップS102)。
次に、構成解析部16は、処理対象としたチャネル8a〜8fの中から1つのチャネルを選択し基準チャネルとする(ステップS103)。
次に、構成解析部16は、基準チャネルとの性能差が予め決められた閾値以下のチャネルを処理対象チャネルから抽出する(ステップS104)。
そして、構成解析部16は、基準チャネル及び抽出したチャネルをグループ#iに属するチャネルとして設定する(ステップS105)。
次に、構成解析部16は、基準チャネル及び抽出したチャネルを処理対象から除外する(ステップS106)。
次に、構成解析部16は、グループ番号を表す変数iの値を1つインクリメントする(ステップS107)。
次に、構成解析部16は、処理対象チャネルが未だ残っているか否かを判定する(ステップS108)。処理対象チャネルが残っている場合(ステップS108:肯定)、構成解析部16は、iが全グループ数以下か否かを判定する(ステップS109)。言い換えれば、構成解析部16は、設定可能な空きグループが有るか否かを判定する。
全グループ数以下の場合(ステップS109:肯定)、構成解析部16は、処理をステップS103へ戻す。
これに対して、全グループ数より多い場合(ステップS109:否定)、構成解析部16は、構成レジスタ11をリセットする(ステップS110)。
そして、構成解析部16は、基準チャネルとの性能差判定の閾値を大きくし(ステップS111)、すなわち、判定条件を緩和して、処理をステップS101へ戻す。
一方、処理対象チャネルがない場合(ステップS108:否定)、構成解析部16は、構成レジスタ11へのグループ構成の設定を終了する。
以上の処理を行うことで、構成解析部16は、全てのチャネル8a〜8fが重複無くいずれかのグループに属するように設定できる。また、本実施例では、全てのチャネルが全グループ数以下のグループに分けられた場合に、グループ構成の設定の処理を終了させたが、他の方法を用いることもできる。例えば、構成解析部16は、処理対象がなくなった時点でグループ数が全グループ数に満たない場合、閾値を厳しくして再度グループ構成を行ってもよい。この構成解析部16が、「グループ構成部」の一例にあたる。
構成レジスタ11は、構成解析部16により設定されたグループ構成を記憶する。
グループ識別部13及びデータ処理部14a〜14cは、構成解析部16により設定されたグループ構成を構成レジスタ11から受信し、データの処理要求を処理する。
以上に説明したように、本実施例に係る情報処理装置は、記憶装置の仕様からグループ構成を自動的に生成する。これにより、操作者がグループ構成を決定しなくてもよくなり、操作者の負担を軽減することができる。また、記憶装置の変更が行われた場合、自動的にグループ構成が変更されるので、システム全体の性能や資源使用効率を容易に向上させることができる。
また、ここでは、NANDコントローラにグループ構成を自動的に生成する機能を搭載させたが、NANDコントローラ以外でグループ構成を生成するようにしてもよい。例えば、外部のコンピュータにチャネルの性能情報を取得させ、そのコンピュータ上で図14のフローを実行するプログラムを動作させることでグループ構成を生成させ、その結果を構成レジスタ11に格納させてもよい。
次に、実施例4について説明する。本実施例に係る情報処理装置は、複数のグループ間でのチャネルの重複を許してグループを構成することが実施例1と異なる。本実施例に係るNANDコントローラ10も図2のブロック図で表される。以下の説明では、実施例1と同様の機能を有する各部については説明を省略する。
構成レジスタ11は、例えば、図15に示すようにグループ間でのチャネル8の重複を許して生成されたグループ構成を記憶する。図15は、実施例4に係る情報処理装置によるグループ構成の一例を表す図である。
図15では、チャネル8a及び8bがグループ911に属する。また、チャネル8c及び8dがグループ912に属する。さらに、チャネル8d〜8fがグループ913に属する。すなわち、チャネル8dは、グループ912及び913のいずれにも属している。
構成レジスタ11は、チャネル8a〜8fのうちいずれがグループ間で重複しているチャネルかを記憶している。そして、構成レジスタ11は、グループ構成及び重複しているチャネル8の情報をグループ識別部13及びチャネル選択部145へ通知する。
チャネル選択部145は、自己が搭載されたデータ処理部14が割り当てられたグループに重複するチャネル8がある場合、重複していないチャネルを優先的に使用する。そして、重複していないチャネル8のみではデータ処理が困難な場合、チャネル選択部145は、重複するチャネル8をデータ処理に使用する。
例えば、図15におけるデータ処理部14cのチャネル選択部145は、処理要求が少ない状態では、チャネル8e及び8fを使用する。しかし、処理要求が増えると、データ処理部14cのチャネル選択部145は、データ処理にチャネル8dを使用する。
このように、グループ間でのチャネルの重複を許すことで、各グループの処理負荷が高い場合に、重複したチャネルを緩衝領域として使用することができ、資源使用効率をさらに向上させることができる。
また、以上の説明では、構成レジスタ11がグループ間でのチャネル8の重複を許したグループ構成を記憶している状態から説明したが、本実施例においても実施例3のように自動的にグループ構成を設定してもよい。
そこで、以下にチャネル8の重複を許す場合のグループ構成の設定について説明する。ここでは、実施例3と同様に、図12の構成解析部16がグループ構成の設定を行う場合で説明する。
図16は、実施例4に係るグループ構成の設定のフローチャートである。構成解析部16は、チャネルをグループ化するための性能差の閾値を予め記憶している。
構成解析部16は、グループ#iのグループ番号を表す変数iを初期値の1に設定する(ステップS201)。
次に、構成解析部16は、全てのチャネル8a〜8fを処理対象に設定する(ステップS202)。
次に、構成解析部16は、処理対象としたチャネル8a〜8fの中から1つのチャネルを選択し基準チャネルとする(ステップS203)。
次に、構成解析部16は、基準チャネルとの性能差が予め決められた閾値以下のチャネルを全チャネルの中から抽出する(ステップS204)。
そして、構成解析部16は、基準チャネル及び抽出したチャネルをグループ#iに属するチャネルとして設定する(ステップS205)。
次に、構成解析部16は、基準チャネル及び抽出したチャネルを処理対象から除外する(ステップS206)。
次に、構成解析部16は、グループ番号を表す変数iの値を1つインクリメントする(ステップS207)。
次に、構成解析部16は、処理対象チャネルが未だ残っているか否かを判定する(ステップS208)。処理対象チャネルが残っている場合(ステップS208:肯定)、構成解析部16は、iが全グループ数以下か否かを判定する(ステップS209)。
全グループ数以下の場合(ステップS209:肯定)、構成解析部16は、処理をステップS203へ戻す。
これに対して、全グループ数より多い場合(ステップS209:否定)、構成解析部16は、構成レジスタ11をリセットする(ステップS210)。
そして、構成解析部16は、基準チャネルとの性能差判定の閾値を大きくし(ステップS211)、すなわち、判定条件を緩和して、処理をステップS201へ戻す。
一方、処理対象チャネルがない場合(ステップS208:否定)、構成解析部16は、構成レジスタ11へのグループ構成の設定を終了する。
以上の処理を行うことで、構成解析部16は、全てのチャネル8a〜8fの重複を許しつつグループ構成を自動的に設定できる。
このように、チャネルの重複を許すグループ構成を自動的に生成することで、より柔軟に資源使用効率を向上させることができる。
1 情報処理装置
2a,2b メモリ
3 DIMM
4,4a,4b CPU
5 I/Oハブ
6a,6b SSD
8a〜8f チャネル
7,7a〜7f NANDフラッシュメモリ
10,10a,10b NANDコントローラ
11 構成レジスタ
12 通信インタフェース
13 グループ識別部
14a〜14c データ処理部
15a〜15f チャネル制御部
16 構成解析部
141 リクエストバッファ
142 アドレス変換制御部
143 データバッファ
144 RAID制御部
145 チャネル選択部

Claims (8)

  1. 演算処理部と、
    記憶装置を搭載した複数のチャネルと、
    前記演算処理部からのデータの処理命令に応じて、前記チャネルを用いて前記記憶装置に対してデータ処理を行う複数のデータ処理部と、
    前記チャネルの処理性能を基に重複を許して複数のグループに分けられた前記チャネルのグループ構成及び各前記グループに含まれる前記チャネルを用いてデータ処理を行う前記データ処理部の割り当てを記憶するグループ管理部と、
    前記演算処理部からのデータの処理命令を基に、前記グループ管理部が記憶するグループの中からデータ処理を実行させるグループを選択し、選択したグループに割り当てられた前記データ処理部に対してデータ処理を行わせる制御部と
    を備えたことを特徴とする情報処理装置。
  2. 前記演算処理部は、前記グループ管理部が記憶するグループの中からデータ処理の対象とするグループを決定し、決定したグループを指定する前記処理命令を生成し、
    前記制御部は、前記演算処理部から前記処理命令を受信し、受信した処理命令により指定されたグループをデータ処理を実行させるグループとする
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記演算処理部は、データ処理の優先度を決定し、前記優先度を示す情報を含む前記処理命令を生成し、
    前記グループ管理部は、各前記グループに属する前記チャネルの性能情報を記憶し、
    前記制御部は、前記演算処理部から前記処理命令を受信し、前記グループ管理部が記憶する性能情報及び前記処理命令で示される前記優先度を基に、データ処理を実行させるグループを選択する
    ことを特徴とする請求項1に記載の情報処理装置。
  4. 前記演算処理部は、付随情報を含む前記処理命令を生成し、
    前記制御部は、前記付随情報を基にデータ処理を実行させるグループを選択する
    ことを特徴とする請求項1に記載の情報処理装置。
  5. 前記記憶装置の性能を基に前記チャネルの処理性能を決定し、前記チャネルを複数のグループに分け前記グループ管理部に記憶させるグループ構成部をさらに有することを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
  6. 前記記憶装置は、自己の性能情報を格納しており、
    前記グループ構成部は、各前記記憶装置が記憶する性能情報を取得する
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 記憶装置を搭載した複数のチャネルと、
    前記チャネルを用いて前記記憶装置に対してデータ処理を行う複数のデータ処理部と、
    前記チャネルの処理性能を基に重複を許して複数のグループに分けられた前記チャネルのグループ構成及び各前記グループに含まれる前記チャネルを用いてデータ処理を行う前記データ処理部の割り当てを記憶するグループ管理部と、
    データの処理命令を基に、前記グループ管理部が記憶するグループの中からデータ処理を実行させるグループを選択し、選択したグループに割り当てられた前記データ処理部に対してデータ処理を行わせる制御部と
    を備えたことを特徴とする記憶装置制御回路。
  8. 記憶装置を搭載した複数のチャネルの処理性能を基に重複を許して前記チャネルを複数のグループに分け、
    前記チャネルを用いて前記記憶装置に対するデータ処理を行う複数のデータ処理回路の中から、各グループに含まれる前記チャネルを用いてデータ処理を行うデータ処理回路を割り当て、
    データの処理命令を基に、前記グループの中からデータ処理を実行させるグループを選択し、
    選択したグループに割り当てられた前記データ処理回路に対してデータ処理を行わせる
    ことを特徴とする記憶装置の制御方法。
JP2013227724A 2013-10-31 2013-10-31 情報処理装置、記憶装置制御回路及び記憶装置の制御方法 Active JP6232936B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013227724A JP6232936B2 (ja) 2013-10-31 2013-10-31 情報処理装置、記憶装置制御回路及び記憶装置の制御方法
US14/471,041 US20150120993A1 (en) 2013-10-31 2014-08-28 Information processing apparatus, storage device control circuit, and storage device control method
EP20140183350 EP2869183A1 (en) 2013-10-31 2014-09-03 Information processing apparatus, storage device control circuit, and storage device control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013227724A JP6232936B2 (ja) 2013-10-31 2013-10-31 情報処理装置、記憶装置制御回路及び記憶装置の制御方法

Publications (2)

Publication Number Publication Date
JP2015088071A JP2015088071A (ja) 2015-05-07
JP6232936B2 true JP6232936B2 (ja) 2017-11-22

Family

ID=51492836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013227724A Active JP6232936B2 (ja) 2013-10-31 2013-10-31 情報処理装置、記憶装置制御回路及び記憶装置の制御方法

Country Status (3)

Country Link
US (1) US20150120993A1 (ja)
EP (1) EP2869183A1 (ja)
JP (1) JP6232936B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160294B2 (ja) * 2013-06-24 2017-07-12 富士通株式会社 ストレージシステム、ストレージ装置及びストレージシステムの制御方法
CN105653207B (zh) * 2015-12-31 2019-03-01 深圳市德名利电子有限公司 一种闪存接口信息的实时解析方法和系统
US11294594B2 (en) * 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
US10922038B2 (en) * 2018-12-31 2021-02-16 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10764455B2 (en) 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000187559A (ja) * 1998-12-24 2000-07-04 Hitachi Ltd ディスクシステム
JP2004021370A (ja) 2002-06-13 2004-01-22 Hitachi Ltd ディスクアレイ制御装置
JP4528551B2 (ja) * 2004-04-14 2010-08-18 株式会社日立製作所 ストレージシステム
JP4721734B2 (ja) * 2005-03-15 2011-07-13 株式会社日立製作所 ストレージシステム、及び情報処理システム
JP2007188341A (ja) * 2006-01-13 2007-07-26 Hitachi Ltd 記憶デバイス制御装置
EP2026184B1 (en) * 2006-04-10 2015-09-30 International Business Machines Corporation Device, method, and program for selecting data storage destination from a plurality of tape recording devices
JP2007304896A (ja) * 2006-05-12 2007-11-22 Fujitsu Ltd チャネルスイッチ装置,ストレージシステムおよびアクセス経路切り替え方法
KR101297563B1 (ko) * 2007-11-15 2013-08-19 삼성전자주식회사 스토리지 관리 방법 및 관리 시스템
TWI369688B (en) * 2008-05-21 2012-08-01 Ite Tech Inc Integrated storage device and controlling method thereof
JP5241671B2 (ja) * 2009-10-05 2013-07-17 株式会社日立製作所 記憶装置のデータ移行制御方法
JP5492731B2 (ja) * 2010-10-06 2014-05-14 株式会社日立製作所 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
US8924627B2 (en) * 2011-03-28 2014-12-30 Western Digital Technologies, Inc. Flash memory device comprising host interface for processing a multi-command descriptor block in order to exploit concurrency
JP2013156929A (ja) * 2012-01-31 2013-08-15 Toshiba Corp 記憶装置とその制御方法
CN103049216B (zh) * 2012-12-07 2015-11-25 记忆科技(深圳)有限公司 固态硬盘及其数据处理方法、系统

Also Published As

Publication number Publication date
EP2869183A1 (en) 2015-05-06
JP2015088071A (ja) 2015-05-07
US20150120993A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
US10564872B2 (en) System and method for dynamic allocation to a host of memory device controller memory resources
US10528464B2 (en) Memory system and control method
US12287751B2 (en) Computing system including CXL switch, memory device and storage device and operating method thereof
JP6329318B2 (ja) 情報処理装置
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
US11379127B2 (en) Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US9575914B2 (en) Information processing apparatus and bus control method
GB2533688A (en) Resource allocation and deallocation for power management in devices
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
CN111258496B (zh) 动态分配数据路径的装置和方法
CN109101185B (zh) 固态存储设备及其写命令和读命令处理方法
JP6232936B2 (ja) 情報処理装置、記憶装置制御回路及び記憶装置の制御方法
US20230376217A1 (en) Storage device, memory device, and computing system including the same
WO2015078193A1 (zh) 存储空间的管理方法和存储管理装置
TWI786288B (zh) 儲存裝置、儲存裝置的控制方法及記錄媒體
CN110308865B (zh) 存储器系统、计算系统及其操作方法
CN110321071A (zh) 存储器系统、其操作方法和包括该存储器系统的计算系统
JP2018113075A (ja) 情報処理装置
US10936534B2 (en) Converged memory device and method thereof
US20240069814A1 (en) Storage server and operation method of storage server
US12093174B2 (en) Methods and apparatus for persistent data structures
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
KR102433549B1 (ko) 통합 메모리 디바이스 및 그의 동작 방법
KR20250022982A (ko) 메모리 장치 및 이를 포함하는 컴퓨팅 시스템
US20250245147A1 (en) Storage device and operation method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170731

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171009

R150 Certificate of patent or registration of utility model

Ref document number: 6232936

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250