JP2015088069A - 情報処理装置、データ転送制御方法及びデータ転送制御プログラム - Google Patents

情報処理装置、データ転送制御方法及びデータ転送制御プログラム Download PDF

Info

Publication number
JP2015088069A
JP2015088069A JP2013227712A JP2013227712A JP2015088069A JP 2015088069 A JP2015088069 A JP 2015088069A JP 2013227712 A JP2013227712 A JP 2013227712A JP 2013227712 A JP2013227712 A JP 2013227712A JP 2015088069 A JP2015088069 A JP 2015088069A
Authority
JP
Japan
Prior art keywords
address
data
logical address
physical
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013227712A
Other languages
English (en)
Other versions
JP6179355B2 (ja
Inventor
雅紀 日下田
Masaki Higeta
雅紀 日下田
早坂 和美
Kazumi Hayasaka
和美 早坂
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 JP2013227712A priority Critical patent/JP6179355B2/ja
Priority to EP20140186169 priority patent/EP2869184A1/en
Priority to US14/495,999 priority patent/US20150121033A1/en
Publication of JP2015088069A publication Critical patent/JP2015088069A/ja
Application granted granted Critical
Publication of JP6179355B2 publication Critical patent/JP6179355B2/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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • 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/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
    • 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; 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/1016Performance 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/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/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/7207Details relating to flash memory management management of metadata or control data
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • 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/7211Wear leveling

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

Abstract

【課題】性能や資源使用効率を維持しつつ、システムの信頼性を確保する情報処理装置、データ転送制御方法及びデータ転送制御プログラムを提供する。【解決手段】アドレス変換テーブル18は、論理アドレスと物理アドレスとの対応関係、並びに、各論理アドレスに対応する物理アドレスが他の論理アドレスに対応するように対応関係が変更された場合の対応関係の変更を示す変更情報及び他の論理アドレスを記憶する。テーブル制御部14は、CPUから論理アドレス間のデータの移動命令を受信した場合、アドレス変換テーブル18において、当該データが格納されている物理アドレスに移動先の論理アドレスが対応するように対応関係を変更し、移動元の論理アドレスに変更情報を設定し、移動元の論理アドレスに対応する他の論理アドレスとして移動先の論理アドレスを記憶させる。【選択図】図4

Description

本発明は、情報処理装置、データ転送制御方法及びデータ転送制御プログラムに関する。
近年、データ処理装置として、不揮発性メモリを用いたシステムが広く普及してきている。不揮発性メモリには、例えば、NANDフラッシュメモリデバイス(以下、「NANDデバイス」という。)などがある。NANDデバイスは、従来の磁気ディスクなどに比べると動作速度が高速で、且つ、他の不揮発性メモリよりも大容量化が容易であるというメリットがある。このため、NANDデバイスは、メモリシステムやストレージシステムとして様々な分野で利用されている。
ここで、NANDデバイスは、データの記憶領域である物理ページ単位でデータの書き込み、読み出し、データの更新に係る移動を行い、複数の物理ページを含む物理ブロック単位でデータの消去を行う。このため、NANDデバイスは、有効なデータと無効なデータとが混在した物理ブロックを有する場合がある。また、NANDデバイスは、データを消去する際に素子が劣化するので、頻繁に更新されるデータが書込まれた物理ページと、あまり更新されないデータが書込まれた物理ページとでは、素子が劣化する速度にばらつきが発生する。
このため、各物理ブロックに対するデータの書き込み状況やデータの書込時刻に応じて、各物理ブロックに書込まれたデータの移動を実行し、データの整理や劣化の平準化を行うNANDコントローラが知られている。例えば、NANDコントローラは、物理ブロックごとに、各物理ページのデータが有効であるか否かを示す情報と、最後にデータが書き込まれた時刻を示す情報とが格納された管理情報テーブルを有する。
そして、NANDコントローラは、管理情報テーブルを参照し、物理ブロックごとに、有効なデータの数やデータが書込まれてから経過した時間に応じて、データを移動させるか否かを判定する。その後、NANDコントローラは、データを移動させると判定した場合は、物理ブロックに書込まれた有効なデータを、予備ブロックの物理ページに移動し、選択した物理ブロックのデータを消去することで、新たな予備ブロックの確保や、劣化の平準化を行う。
また、NANDコントローラは、情報処理装置が実行するシステムがデータの指定に用いる論理アドレスを、データが格納された物理ページを示す物理アドレスに変換するアドレス変換テーブルを有する。そして、NANDコントローラは、データの移動を行った場合は、データの移動元、および、データの移動先を示す物理アドレスを用いて、アドレス変換テーブルの更新を行う。
さらに、不揮発性メモリに対するアクセスの回数を抑えるため、論理アドレス間でデータの置換を実施する場合に、論理アドレスと物理アドレスとの対応を置換する従来技術が提案されている。
特開2005−202942号公報 特開2006−40264号公報
しかしながら、アドレス変換テーブルにおける物理アドレスに対応する論理アドレスを書き換えた場合、物理アドレスに対応付けられた論理アドレスがシステム運用中に変わることになる。そして、変更後の物理アドレスと論理アドレスとの対応と、物理アドレス上に格納されている情報との齟齬が発生するおそれがある。この場合、システムに誤動作が発生するおそれがある。
このようなシステムの誤動作を回避するためには、アドレス変換テーブルを全検索するためにアドレスを逆変換するためのテーブルを実装するなどの対処が考えられるが、その場合、システムの性能や資源使用効率が悪化してしまう。
開示の技術は、上記に鑑みてなされたものであって、性能や資源使用効率を維持しつつ、システムの信頼性を確保する情報処理装置、データ転送制御方法及びデータ転送制御プログラムを提供することを目的とする。
本願の開示する情報処理装置、データ転送制御方法及びデータ転送制御プログラムは、一つの態様において、物理アドレスで格納データを管理するデータ記憶部を有する。処理部は、前記物理アドレスに対応する論理アドレスを用いて前記データ記憶部に格納されているデータに対する処理命令を出力する。関係記憶部は、前記論理アドレスと前記物理アドレスとの対応関係、並びに、各論理アドレスに対応する物理アドレスが他の論理アドレスに対応するように対応関係が変更された場合の対応関係の変更を示す変更情報及び前記他の論理アドレスを記憶する。アドレス制御部は、前記処理部から論理アドレス間のデータの移動命令を受信した場合、前記関係記憶部において、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更し、移動元の論理アドレスに前記変更情報を設定し、移動元の論理アドレスに対応する前記他の論理アドレスとして移動先の論理アドレスを記憶させる。
本願の開示する情報処理装置、データ転送制御方法及びデータ転送制御プログラムの一つの態様によれば、性能や資源使用効率を維持しつつ、システムの信頼性を確保することができるという効果を奏する。
図1は、情報処理装置の概略構成図である。 図2は、メモリアクセスの一例を説明するための図である。 図3は、物理データの構造例を示す図である。 図4は、実施例1に係るNANDコントローラのブロック図である。 図5は、実施例1に係るアドレス変換テーブルの一例の図である。 図6は、実施例1に係る管理情報テーブルの一例の図である。 図7は、実施例1に係るNANDコントローラが実行する処理の一例を説明するための図である。 図8は、高速データ移動及びデータの再配置処理におけるメモリアクセスの一例を説明するための図である。 図9は、実施例1に係る情報処理装置によるデータの読み出し処理のフローチャートである。 図10は、実施例1に係る情報処理装置によるデータの書き込み処理のフローチャートである。 図11は、実施例1に係る情報処理装置による高速データ移動処理のフローチャートである。 図12は、実施例1に係る情報処理装置による再配置処理のフローチャートである。 図13は、実施例2に係る情報処理装置のブロック図である。
以下に、本願の開示する情報処理装置、データ転送制御方法及びデータ転送制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、データ転送制御方法及びデータ転送制御プログラムが限定されるものではない。
図1は、情報処理装置の概略構成図である。情報処理装置1は、複数のメモリ2a及び2b、複数のCPU(Central Processing Unit)3a及び3b、I/O(Input Output)ハブ4、並びに、複数のSSD(Solid State Drive)5a及び5bを有する。また、SSD5aは、NANDコントローラ6a及び複数のNANDデバイス7a〜10aを有する。このNANDデバイス7a〜10aが、「データ記憶部」の一例にあたる。
また、SSD5bは、NANDコントローラ6b及び複数のNANDデバイス7b〜10bを有する。なお、以下の説明では、SSD5b、NANDコントローラ6b、及び複数のNANDデバイス7b〜10bは、SSD5a、NANDコントローラ6a、及び複数のNANDデバイス7a〜10aと同様の機能を発揮するものとして、説明を省略する。
各メモリ2a及び2bは、各CPU3a及び3bが演算処理に用いるデータを記憶する記憶装置である。また、各CPU3a及び3bは、メモリ2a及び2bが記憶するデータを用いて、各種演算処理を行う演算処理装置である。例えば、CPU3a及び3bは、NUMA(Non-Uniform Memory Access)の技術を用いて、メモリ2a及び2bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。
また、CPU3a及び3bは、I/Oハブ4を介して、各SSD5a及び5bが記憶するデータを取得し、取得したデータを用いて演算処理を実行する。詳細には、CPU3aは、SSD5aに対し、データの読出要求や書込要求を発行し、各NANDデバイス7a〜10aからデータの読み出しや書き込みを行う。例えば、CPU3aは、SSD5aに対し、読み出し対象となるデータを指定する論理アドレスが格納された読出要求を発行する。また、CPU3aは、データの書き込み先を指定する論理アドレスと、書き込み対象となるデータとが格納された書込要求を発行する。このCPU3a及び3bが、「処理部」の一例にあたる。そして、データの読出要求、書込要求、及び後述する高速データ移動要求などが「処理命令」の一例にあたる。
NANDデバイス7aは、各種データを記憶する不揮発性メモリである。詳細には、NANDデバイス7aは、データの記憶領域である物理ページを複数有し、物理ページ単位でデータの書き込みを行う。また、NANDデバイス7aは、複数の物理ページを有する物理ブロックを複数有し、ブロック単位でデータの消去を行う。ここで、1つの物理ページは、例えば、8キロバイトの記憶容量を有し、1つの物理ブロックは、例えば、128の物理ページを有する。
NANDコントローラ6aは、各NANDデバイス7a〜10aに対してアクセスし、データの読み出しや書き込みを行う。例えば、NANDコントローラ6aは、データが記憶された記憶領域を各CPU3a及び3bが指定する際に用いる論理アドレスと、データが格納されたNANDデバイス7a〜10aの記憶領域を示す物理アドレスとを対応付けたアドレス変換テーブルを有する。
そして、NANDコントローラ6aは、読出要求とともに論理アドレスを受信すると、アドレス変換テーブルを用いて、論理アドレスと対応付けられた物理アドレスを識別し、識別した物理アドレスが示す記憶領域からデータの読み出しを行う。その後、NANDコントローラ6aは、I/Oハブ4を介して、読み出したデータをCPU3aに送信する。
なお、以下の説明では、理解を容易にするため、各物理ページの先頭アドレスとなる論理アドレスを単に論理アドレスと記載し、各物理ページの先頭アドレスとなる物理アドレスを単に物理アドレスと記載する。また、情報処理装置1が実行するシステムは、各物理ページの先頭アドレスとなる論理アドレスに対する読出要求や書込要求を発行するものとする。
例えば、NANDコントローラ6aは、NANDデバイス7a〜10aが、複数のブロックを有し、各ブロックに2個の物理ページが含まれている場合は、以下の処理を行う。まず、NANDコントローラ6aは、論理アドレスの下位qビットを論理的な1つのブロック内において、物理ページを識別するための論理ページ番号とし、残りの論理アドレスの上位pビットを論理的な1つのブロックを示す論理ブロックアドレスとする。
また、NANDコントローラ6aは、物理アドレスの上位pビットを物理的な1つのブロックを示す物理ブロックアドレスとし、物理アドレスの下位qビットを物理的な1つのブロック内において、各物理ページを識別するための物理ページ番号とする。つまり、NANDコントローラ6aは、論理アドレスを、論理ブロックを示す論理ブロックアドレスと、論理ページを論理ブロックごとに示す論理ページ番号とに分割する。また、NANDコントローラ6aは、物理アドレスを、物理ブロックを示す物理ブロックアドレスと、物理ページを物理ブロック毎に示す物理ページ番号とに分割する。
以下、図2を用いて、NANDコントローラ6aが実行するメモリアクセスの一例について説明する。図2は、メモリアクセスの一例を説明するための図である。なお、図2に示す例では、理解を容易にするため、ブロック数を「9」とし、各ブロック内の物理ページ数が「4」のNANDデバイス7aについて記載した。また、図2に示す例では、NANDコントローラ6aが、論理ブロックアドレスと物理ブロックアドレスとを対応付けたアドレス変換テーブルを用いて、NANDデバイス7a〜10aが有する物理ページ単位でデータの書き込みを行う処理について記載した。
例えば、NANDコントローラ6aは、図2中(a)に示すように、CPU3aが実行するファイルシステムから、論理ブロックアドレス「LB00」の論理ページ番号「3」、すなわち論理アドレス「L0003」に書込要求を発行する。すると、NANDコントローラ6aは、アドレス変換テーブルを用いて、論理アドレス「L0003」に対応付けられた物理アドレス「P0403」を取得し、図2中(b)に示すように、更新前のデータが格納されている物理ページを識別する。
続いて、NANDコントローラ6aは、図2中(c)に示すように、物理アドレス「P0403」が示す物理ページのデータを読み出し、読み出したデータを書き込み対象のデータに更新し、更新後のデータを予備ブロックの空き物理ページに格納する。詳細な例を挙げると、NANDコントローラ6aは、図2中(d)に示すように、物理アドレス「P0800」が示す物理ページに更新後のデータを格納する。その後、NANDコントローラ6aは、図2中(e)に示すように、論理アドレス「L0003」と対応付けられていた物理アドレス「P0403」を「P0800」に更新し、処理を終了する。
ここで、NANDデバイス7a〜10aに格納されたデータに対し、物理ページ単位で書き込みや移動を行う場合は、1つの物理ブロック内に有効なデータと無効なデータとが混在する場合がある。例えば、図2に示す例では、NANDコントローラ6aは、論理アドレス「L0003」が示すデータを更新する際、物理ブロックアドレス「B04」が示す物理ブロック内のデータを無効化する。そして、NANDコントローラ6aは、更新後のデータを物理ブロックアドレス「B08」が示す物理ブロックに格納する。このため、物理ブロックアドレス「B04」が示す物理ブロックには、有効なデータと無効なデータとが混在する。
ここで、NANDデバイス7a〜10aは、無効なデータが格納された物理ページに対してデータの上書きを行うことができず、あらかじめデータを消去した予備ブロックにデータの書き込みを行う。しかしながら、有効なデータと無効なデータとが混在する物理ブロックが増えると、新たにデータを書き込む予備ブロックを確保できなくなる。また、NANDデバイス7a〜10aは、データを保持するための素子を有する。かかる素子は、データの消去を行う際に劣化が進行し、劣化が進むと、電荷を適切に保持することができなくなる。
そこで、NANDコントローラ6aは、有効なデータを整理して新たな予備ブロックを確保するガベージコレクション処理などのデータの再配置処理を実行する。
また、NANDコントローラ6aは、CPU3aが実行するファイルシステムから、論理アドレス間でのデータの移動命令を受けた場合、アドレス変換テーブルにおける物理アドレスと論理アドレスとの対応関係を変更する。これにより、NANDコントローラ6aは、論理アドレス間でのデータの移動を実現する。具体的には、NANDコントローラ6aは、移動命令における移動元の論理アドレスに対応する物理アドレスをアドレス変換テーブルから取得する。そして、NANDコントローラ6aは、取得した物理アドレスに移動命令における移動先の論理アドレスが対応するようにアドレス変換テーブルを更新する。また、NANDコントローラ6aは、移動元の論理アドレスに対応付けられた物理アドレスは無効化する。以下では、NANDコントローラ6aによるアドレス変換テーブルの書き換えによる論理アドレス間のデータ移動を「高速データ移動」という。この高速データ移動が、「論理アドレス間のデータの移動」の一例にあたる。
ここで、各物理ページにおけるデータの格納状態について詳細に説明する。図3は、物理データの構造例を示す図である。
例えば、物理アドレス「P0003」が示す物理ページに格納されている情報101は、データ102とともに論理アドレス情報103を付随情報として含んでいる。すなわち、NANDコントローラ6aは、データ102を物理アドレス「P0003」が示す物理ページに書き込む際に、物理アドレス「P0003」に対応する論理アドレスを論理アドレス情報103としてデータ102に付加させて書き込む。
しかしながら、高速データ移動を行う場合、NANDコントローラ6aは、データ変換テーブルの書き換えだけを行い、実際にNANDデバイス7a〜10aに格納されたデータの付随情報の書き換えは行わない。そのため、高速データ移動が行われた場合、アドレス変換テーブルにおける対応関係と、NANDコントローラ6aに格納されているデータの付随情報が示す対応関係との間に齟齬が生じてしまう。この場合、ある物理アドレスにデータ付随情報として書き込まれた論理アドレスが誤ったアドレスを示すことになり、NANDコントローラ6aは、データの再配置処理の際に付随情報を利用してアドレス変換テーブルを更新すると、アドレス変換テーブルを破壊するおそれがある。
そこで、本実施例に係る情報処理装置1は、アドレス変換テーブルに論理アドレスと物理アドレスとの対応関係を変更したことを表す変更フラグ及び変更後の物理アドレスに対応する論理アドレスを転送先の論理アドレスとして登録する。そして、本実施例に係る情報処理装置は、データの再配置処理を行う際に、データの移動元の物理アドレスにおいて対応関係の変更が行われているか否かアドレス変換テーブルを用いて確認する。対応関係の変更が行われている場合には、本実施例に係る情報処理装置は、転送先の論理アドレスを用いて、実際にデータの移動元の物理アドレスに対応する論理アドレスを特定し、その論理アドレスに関するアドレス変換テーブル上の情報を更新する。これにより、アドレスを逆変換するためのテーブルなどを用いずに、アドレス変換テーブルの破壊を回避することができ、システムの性能や資源使用効率を維持したまま、容易にシステムの信頼性を確保できる。
以下、図4を用いて、NANDコントローラ6aについて説明する。図4は、実施例1に係るNANDコントローラのブロック図である。図4に示す例では、NANDコントローラ6aは、テーブル記憶部11、リクエスタインターフェース部12、リクエスト調停部13、及びテーブル制御部14を有する。また、NANDコントローラ6aは、デバイスアクセス制御部15、移動対象検索部16、及びデータ移動制御部17を有する。また、テーブル記憶部11は、アドレス変換テーブル18及び管理情報テーブル19を記憶する。
まず、図5、図6を参照して、テーブル記憶部11が記憶するアドレス変換テーブル18と、管理情報テーブル19に格納された情報について説明する。
図5は、実施例1に係るアドレス変換テーブルの一例の図である。図5に示すように、アドレス変換テーブル18には、論理アドレス、有効フラグ、転送フラグ及び物理/転送先アドレスが対応付けて格納されている。アドレス変換テーブル18では、各論理ページを対応する論理アドレスで表している。
ここで、有効フラグとは、その論理ページがソフトウェアにより使用されているか否かを示すバリッドビットである。転送フラグとは、論理アドレスと物理アドレスとの対応関係が変更されたか否かを表す情報である。転送フラグに「0」が設定されている場合は、論理アドレスにおいて対応関係の変更はなされていない。また、転送フラグに「1」が設定されている場合は、論理アドレスにおいて対応関係の変更がなされている。物理/転送先アドレスに物理アドレスが格納されている場合には、論理アドレスに対応する物理アドレスを表している。また、物理/転送先アドレスに論理アドレスが格納されている場合には、高速データ移動により論理アドレスと物理アドレスとの対応関係が変更され、物理アドレスと対応することになった移動先の論理アドレスを表している。
例えば、図5に示す例では、アドレス変換テーブル18には、論理アドレス「L0000」と、有効フラグ「1」と、転送フラグ「0」と、物理アドレス「P0400」とが対応付けて格納されている。すなわち、アドレス変換テーブル18は、論理アドレス「L0000」で表される論理ページが使用されており、物理アドレスとの対応関係の変更が行われておらず、物理アドレス「P0400」と対応している旨を示す。
また、アドレス変換テーブル18には、論理アドレス「L0003」と、有効フラグ「1」と、転送フラグ「1」と、物理アドレス「L0101」とが対応付けて格納されている。すなわち、アドレス変換テーブル18は、論理アドレス「L0003」で表される論理ページが使用されており、物理アドレスとの対応関係の変更が行われており、以前に対応関係を有していた物理アドレスの移動先は論理アドレス「L0101」である旨を示す。このアドレス変換テーブル18が、「関係記憶部」の一例にあたる。また、転送フラグが、「変更情報」の一例にあたる。
次に、図6を用いて、管理情報テーブル19に格納される情報について説明する。図6は、実施例1に係る管理情報テーブルの一例の図である。図6に示すように、管理情報テーブル19には、物理ブロック番号、有効フラグ及びタイムスタンプが対応付けて格納されている。ここで、有効フラグとは、物理ブロックに含まれる有効なデータを有するページを表すビット列である。例えば、有効フラグの各ビットは、先頭から順番にその物理ブロックに含まれる物理ページの有効無効をあらわす。ビットが「1」の場合は、そのビットに対応する位置の物理ページは有効であり、ビットが「0」の場合は、そのビットに対応する一の物理ページは無効である。また、タイムスタンプは、その物理ブロック番号を有する物理ブロックの使用が開始された時間を示す。
例えば、図6に示す例では、管理情報テーブル19には、物理ブロック番号「B00」と、有効フラグ「0110」及びタイムスタンプ「10516」が対応付けて格納されている。すなわち、管理情報テーブル19は、物理ブロック番号「B00」で表される論理ブロックにおいて、ページ#1及び#2の2つの物理ページが有効であることを表す。そして、物理ブロック番号「B00」の物理ブロックは、NANDコントローラ6a内部の時間計測カウンタの値が10516のときに使用が開始されたことを表す。
図4に戻り、説明を続ける。リクエスタインターフェース部12は、CPU3a及び3bからNANDデバイス7a〜10aに対するリクエストのインターフェースである。例えば、リクエスタインターフェース部12は、論理アドレスを含む読出要求をCPU3a又は3bからI/Oハブ4を介して受信する。その場合、リクエスタインターフェース部12は、読出要求をリクエスト調停部13に出力する。また、リクエスタインターフェース部12は、NANDデバイス7a〜10aから読み出したデータをリクエスト調停部13から受信すると、読出要求の発行元となるCPU3a又は3bに対してデータを送信する。
また、リクエスタインターフェース部12は、NANDデバイス7a〜10aに対して書込むデータ及び書き込み対象となるデータの論理アドレスとを含む書込要求をCPU3a及び3bから受信する。この場合、リクエスタインターフェース部12は、受信した書込要求をリクエスト調停部13に出力する。また、リクエスタインターフェース部12は、リクエスト調停部13から、データ書き込みが完了した旨の応答を受信すると、書込要求の発行元となるCPU3a又は3bに対して受信した応答を送信する。
さらに、リクエスタインターフェース部12は、高速データ移動の移動元及び移動先の論理アドレスを含む高速データ移動要求をCPU3a及び3bから受信する。この場合、リクエスタインターフェース部12は、受信した高速データ移動要求をリクエスト調停部13に出力する。また、リクエスタインターフェース部12は、リクエスト調停部13から、高速データ移動が完了した旨の応答を受信すると、高速データ移動要求の発行元となるCPU3a又は3bに受信した応答を送信する。
リクエスト調停部13は、リクエスタインターフェース部12、移動対象検索部16及びデータ移動制御部17が発行する各種リクエストの調停を行う。詳細には、リクエスト調停部13は、読出要求、書込要求及び高速データ移動要求をリクエスタインターフェース部12から受信する。また、リクエスト調停部13は、NANDデバイス7a〜10aが記憶するデータを、現在記憶する物理ページから他の物理ページへ移動するよう要求する再配置要求をデータ移動制御部17から受信する。また、リクエスト調停部13は、物理ブロック内のデータを消去するよう要求する消去要求をデータ移動制御部17から受信する。また、リクエスト調停部13は、管理情報テーブル19の参照を要求するテーブル参照要求を移動対象検索部16から受信する。
そして、リクエスト調停部13は、リクエスタインターフェース部12、データ移動制御部17及び移動対象検索部16から受信する読出要求、書込要求、高速データ移動要求、再配置要求、消去要求及びテーブル参照要求の調停を行う。例えば、リクエスト調停部13は、CPU3a及び3bからNANDデバイス7a〜10aに対するデータの読み出しや書き込みが阻害されないよう、リクエスタインターフェース部12が発行する読出要求、書込要求及び高速データ移動要求を最優先で実行する。また、例えば、リクエスト調停部13は、再配置要求を消去要求及びテーブル参照要求よりも優先して実行し、消去要求をテーブル参照要求よりも優先して実行する。なお、リクエスト調停部13が各要求を調停するルールについては、上述した処理に限定されるものではなく、任意のルールを適用してよい。
以下、リクエスト調停部13が読出要求、書込要求、高速データ移動要求、再配置要求、消去要求及びテーブル参照要求を受信した際に実行する処理の一例を説明する。例えば、リクエスト調停部13は、読出要求を受信すると、読出要求に含まれる論理アドレスをテーブル制御部14に出力する。そして、リクエスト調停部13は、読み出し対象となる物理アドレスをテーブル制御部14から受信すると、受信した物理アドレスを格納した読出要求をデバイスアクセス制御部15へ発行する。その後、リクエスト調停部13は、読み出し対象となるデータをデバイスアクセス制御部15から受信すると、受信したデータをリクエスタインターフェース部12へ出力する。また、リクエスト調停部13は、アクセスエラーの通知をテーブル制御部14からの応答として受信した場合、アクセスエラーの通知を読出要求の送信元であるCPU3a又は3bへ送信する。
また、リクエスト調停部13は、書込要求を受信すると、書込要求に含まれる論理アドレスをテーブル制御部14に出力する。この結果、リクエスト調停部13は、書き込み対象のデータが新たなデータである場合は、データが格納されていない予備ブロックのうち、データの書き込み先となるページの物理アドレスをテーブル制御部14から受信する。
その後、リクエスト調停部13は、テーブル制御部14から受信した物理アドレスと、書き込み対象のデータとを含む書込要求とをデバイスアクセス制御部15へ発行する。また、リクエスト調停部13は、デバイスアクセス制御部15からデータの書き込みが完了した旨の応答を受信すると、データの書き込み先となる物理ページの物理アドレス及び書込要求に含まれる論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。そして、リクエスト調停部13は、テーブルの更新が終了した旨の応答をテーブル制御部14から受信すると、書込要求に対する応答をリクエスタインターフェース部12へ出力する。
また、リクエスト調停部13は、書き込みがデータの更新を目的とする場合は、更新元のデータが格納されたページの物理アドレスを更新元物理アドレスとしてテーブル制御部14から受信する。また、リクエスト調停部13は、予備ブロックに含まれるページの物理アドレス、すなわちデータの書き込み先となるページの物理アドレスを更新先物理アドレスとしてテーブル制御部14から受信する。
そして、リクエスト調停部13は、更新元物理アドレス及び更新先物理アドレスをテーブル制御部14から受信すると、データの更新を要求する更新要求をデバイスアクセス制御部15へ発行する。詳細には、リクエスト調停部13は、更新元物理アドレス、更新先物理アドレス及び書き込むデータを含む更新要求をデバイスアクセス制御部15へ発行する。
その後、リクエスト調停部13は、データの書き込みが完了した旨の応答をデバイスアクセス制御部15から受信すると、更新元物理アドレス、更新先物理アドレス及び書き込み要求に含まれる論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、テーブル更新要求に対する応答をテーブル制御部14から受信すると、データの書き込みが完了した旨の応答をリクエスタインターフェース部12へ出力する。
また、リクエスト調停部13は、高速データ移動要求を受信すると、高速データ移動要求に含まれる移動元論理アドレス及び移動先論理アドレスをテーブル制御部14に出力する。そして、リクエスト調停部13は、テーブルの更新が終了した旨の応答をテーブル制御部14から受信すると、高速データ移動要求に対する応答をリクエスタインターフェース部12へ出力する。また、リクエスト調停部13は、アクセスエラーの通知をテーブル制御部14からの応答として受信した場合、アクセスエラーの通知を高速データ移動要求の送信元であるCPU3a又は3bへ送信する。
また、リクエスト調停部13は、移動させるデータが格納された物理ページの物理アドレスである移動元物理アドレスを含む再配置要求をデータ移動制御部17から受信する。次に、リクエスト調停部13は、テーブル制御部14への問い合わせなどを行い、データの移動先となる物理ページの物理アドレスを移動先物理アドレスとして取得する。
そして、リクエスト調停部13は、移動元物理アドレスを含む再配置要求をデバイスアクセス制御部15に発行する。その後、リクエスト調停部13は、NANDデバイス7a〜10aから読み出された移動対象のデータと、付随する論理アドレス情報をデバイスアクセス制御部15から受信して保持する。そして、リクエスト調停部13は、データ移動制御部17から受信した、移動先物理アドレス、及び移動元物理アドレスと、デバイスアクセス制御部15から受信した移動対象のデータに付随する論理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、移動対象のデータに対応する論理アドレス情報を含むテーブル更新要求に対する応答をテーブル制御部14から受信すると、保持していた読出データ、移動先物理アドレス及び移動対象のデータに対応する論理アドレスを含む書込要求をデバイスアクセス制御部15に発行する。そして、リクエスト調停部13は、データの書き込みが完了した旨の応答をデバイスアクセス制御部15から受信すると、データ移動制御部17から受信した移動先物理アドレス、及び移動元物理アドレスを含むテーブル更新要求をテーブル制御部14へ出力する。その後、リクエスト調停部13は、テーブル更新要求に対する応答をテーブル制御部14から受信すると、データの移動が完了した旨の応答をデータ移動制御部17へ出力する。
また、リクエスト調停部13は、データの消去対象となる物理ブロックを示す物理ブロックアドレスを含む消去要求をデータ移動制御部17から受信する。リクエスト調停部13は、消去要求を受信すると、受信した消去要求をデバイスアクセス制御部15へ発行する。そして、リクエスト調停部13は、データの消去が完了した旨の応答をデバイスアクセス制御部15から受信すると、消去要求に格納された物理ブロックアドレスを含むテーブル更新要求をテーブル制御部14へ出力する。そして、リクエスト調停部13は、データの更新が終了した旨の応答をテーブル制御部14から受信すると、データの消去が完了した旨の応答をデータ移動制御部17へ出力する。
また、リクエスト調停部13は、テーブル参照要求を移動対象検索部16から受信した場合は、管理情報テーブル19の参照要求をテーブル制御部14へ送信する。そして、リクエスト調停部13は、管理情報テーブル19をテーブル制御部14から受信すると、受信した管理情報テーブル19を移動対象検索部16へ送信する。
テーブル制御部14は、論理アドレスを物理アドレスに変換する。例えば、テーブル制御部14は、読出要求に格納された論理アドレスをリクエスト調停部13から受信すると、アドレス変換テーブル18を参照し、受信した論理アドレスに対応する有効フラグの値を取得する。
有効フラグが「0」の場合、無効な論理アドレスであるので、テーブル制御部14は、読出要求に対する応答としてアクセスエラーをリクエスト調停部13へ出力する。これに対して、有効フラグが「1」の場合、テーブル制御部14は、転送フラグの値を取得する。
転送フラグが「1」の場合、その論理アドレスと物理アドレスとの対応関係が変更されているので、テーブル制御部14は、読出要求に対する応答としてアクセスエラーをリクエスト調停部13へ出力する。これに対して、転送フラグが「0」の場合、テーブル制御部14は、受信した論理アドレスと対応付けられた物理アドレスをアドレス変換テーブル18から取得する。そして、テーブル制御部14は、取得した物理アドレスをリクエスト調停部13へ出力する。
また、テーブル制御部14は、書込要求に格納された論理アドレスをリクエスト調停部13から受信すると、アドレス変換テーブル18を参照し、受信した論理アドレスの有効フラグの値を取得する。
有効フラグが「0」の場合、その論理アドレスはまだ使用されていないので、以下の書込処理を実行する。
まず、テーブル制御部14は、管理情報テーブル19を参照し、データが格納されていない物理ブロック、すなわち、予備ブロックを識別する。例えば、テーブル制御部14は、管理情報テーブル19を参照し、対応付けられた有効ページ数がすべて「0」である物理ブロックを検索し、検出した物理ブロックを予備ブロックとする。そして、テーブル制御部14は、予備ブロックに含まれる物理ページの物理アドレスをリクエスト調停部13へ出力する。さらに、テーブル制御部14は、アドレス変換テーブル18における受信した論理アドレスの有効フラグを「1」に設定する。また、テーブル制御部14は、アドレス変換テーブル18における受信した論理アドレスの転送フラグを「0」に設定する。さらに、テーブル制御部14は、アドレス変換テーブル18における受信した論理アドレスの物理/転送先アドレスにリクエスト調停部13へ出力した物理アドレスを登録する。
なお、テーブル制御部14は、一度予備ブロックを識別すると、識別した予備ブロックに含まれる物理ページの全ての物理ページにデータが書込まれるまで、書込処理において、同一の予備ブロックに含まれる物理ページの物理アドレスを出力する。詳細には、テーブル制御部14は、予備ブロックに含まれる物理ページのうち、データが書込まれていない物理ページの物理アドレスを、物理ページ番号の順に出力する。そして、テーブル制御部14は、予備ブロックに含まれる全ての物理ページにデータが書込まれた場合は、管理情報テーブル19を参照して、新たな予備ブロックを識別する。
一方、テーブル制御部14は、受信した論理アドレスに有効フラグ「1」が対応付けられている場合、テーブル制御部14は、転送フラグの値を取得する。
転送フラグが「1」の場合、その論理アドレスに対応する物理アドレスが設定されていないので、テーブル制御部14は、上述した書込処理を行う。
これに対して、転送フラグが「0」の場合、書込要求はデータの更新を目的としている。そこで、テーブル制御部14は、受信した論理アドレスと対応付けられた物理アドレスを更新元物理アドレスとしてリクエスト調停部13へ出力する。その後、テーブル制御部14は、予備ブロックを識別し、識別した予備ブロックに含まれる物理ページのうち、データが格納されていない物理ページの物理アドレスを更新先物理アドレスとしてリクエスト調停部13へ出力する。さらに、テーブル制御部14は、アドレス変換テーブル18における受信した論理アドレスの有効フラグを「1」に設定する。また、テーブル制御部14は、アドレス変換テーブル18における受信した論理アドレスの転送フラグを「0」に設定する。さらに、テーブル制御部14は、アドレス変換テーブル18における受信した論理アドレスの物理/転送先アドレスにリクエスト調停部13へ出力した更新先物理アドレスを登録する。
また、テーブル制御部14は、高速データ移動要求に格納された移動元及び移動先の論理アドレスを受信すると、アドレス変換テーブル18において以下の処理を行う。まず、テーブル制御部14は、移動元の論理アドレスの有効フラグの値を取得する。
有効フラグが「0」の場合、使用していない論理アドレスであるので、テーブル制御部14は、アクセスエラーをリクエスト調停部13へ出力する。これに対して、有効フラグが「1」の場合、テーブル制御部14は、移動元の論理アドレスの転送フラグの値を取得する。
転送フラグが「1」の場合、移動元の論理アドレスのデータは既に移動されているので、テーブル制御部14は、アクセスエラーをリクエスト調停部13へ出力する。
これに対して、転送フラグが「0」の場合、テーブル制御部14は、移動元の論理アドレスの転送フラグに「1」を設定する。さらに、テーブル制御部14は、移動元の論理アドレスの物理/転送先アドレスに、移動先の論理アドレスを登録する。また、テーブル制御部14は、移動先の論理アドレスの有効フラグに「1」を設定する。そして、テーブル制御部14は、移動先の論理アドレスの転送フラグを「0」に設定する。さらに、テーブル制御部14は、移動先の論理アドレスの物理/転送先アドレスに移動元の論理アドレスに対応付けられていた物理アドレスを登録する。その後、テーブル制御部14は、高速データ移動要求に対する応答として、データの移動が完了した旨をリクエスト調停部13へ出力する。
また、テーブル制御部14は、リクエスト調停部13が再配置要求を受信した際には、移動先物理アドレスの問い合わせをリクエスト調停部13から受ける。この場合、テーブル制御部14は、予備ブロックを識別し、識別した予備ブロックに含まれる物理ページのうち、データが格納されていない物理ページの物理アドレスを移動先物理アドレスとしてリクエスト調停部13へ出力する。
その後、テーブル制御部14は、リクエスト調停部13から移動中のデータに付随する論理アドレスの情報の入力をリクエスト調停部13から受ける。次に、テーブル制御部14は、受信した論理アドレスの転送フラグの値をアドレス変換テーブル18から取得する。転送フラグの値が「1」の場合、テーブル制御部14は、受信した論理アドレスに対応する物理/転送先アドレスに格納されている論理アドレスを取得する。そして、テーブル制御部14は、取得した論理アドレスの転送フラグの値を取得する。テーブル制御部14は、転送フラグが「0」である論理アドレスになるまでこの処理を繰り返す。
一方、転送フラグが「0」の場合、テーブル制御部14は、その論理アドレスに対応する物理/転送先アドレスを移動先の物理アドレスに更新する。さらに、テーブル制御部14は、その論理アドレスをリクエスト調停部13に出力する。
なお、テーブル制御部14は、例えば、情報処理装置1が実行するシステムから、論理アドレスとデータとの対応付けを解消する旨の指示を受けると、アドレス変換テーブル18における対象となる論理アドレスと対応付けられた有効フラグを「0」に更新する。
また、テーブル制御部14は、データの書き込み、高速データ移動又は再配置に応じて、管理情報テーブル19の更新を行う。例えば、テーブル制御部14は、データの書き込みが行われた場合、データが書き込まれた物理ページに対応する有効フラグに「1」を設定する。また、高速データ移動が行われた場合、テーブル制御部14は、移動先の論理ページと対応付けられた物理ページに対応する有効フラグに「0」を設定する。また、再配置が行われた場合、テーブル制御部14は、移動元の物理ページに対応する有効フラグに「0」を設定し、移動先の物理ページに対応する有効フラグに「1」を設定する。
また、テーブル制御部14は、テーブル参照要求を受信した場合は、テーブル記憶部11から管理情報テーブル19を取得する。そして、テーブル制御部14は、取得した管理情報テーブル19をリクエスト調停部13に出力する。このテーブル制御部14が、「アドレス制御部」の一例にあたる。
デバイスアクセス制御部15は、リクエスト調停部13からの各種リクエストに従って、NANDデバイス7a〜10aに対するデバイスアクセスを実行する。例えば、デバイスアクセス制御部15は、物理アドレスを含む読出要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、読出要求に格納されていた物理アドレスが示すページに格納されたデータの読み出しを実行する。そして、デバイスアクセス制御部15は、読み出したデータをリクエスト調停部13へ出力する。
また、例えば、デバイスアクセス制御部15は、物理アドレス及び書き込み対象のデータを含む書込要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、書込要求に含まれる物理アドレスが示す物理ページに書き込み対象のデータを格納する。その後、デバイスアクセス制御部15は、データの書き込みを終了した旨の応答をリクエスト調停部13へ出力する。
また、例えば、書込要求がデータの更新を目的としている場合、デバイスアクセス制御部15は、更新元物理アドレス、更新先物理アドレス及び書き込むデータを含む更新要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、更新元物理アドレスが示す物理ページのデータを読み出す。続いて、デバイスアクセス制御部15は、読み出したデータを更新要求に含まれるデータに更新する。そして、デバイスアクセス制御部15は、更新したデータを更新先物理アドレスが示す物理ページに格納する。その後、デバイスアクセス制御部15は、データの書き込みを終了した旨の応答をリクエスト調停部13へ出力する。
また、デバイスアクセス制御部15は、移動元物理アドレス及び移動先物理アドレスを含む再配置要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、移動元物理アドレスが示す物理ページからデータを読出し、読出したデータを移動先物理アドレスが示す物理ページに格納する。その後、デバイスアクセス制御部15は、データの移動を終了した旨の応答をリクエスト調停部13へ出力する。
また、デバイスアクセス制御部15は、データの消去対象となる物理ブロックを示す物理ブロックアドレスを含む消去要求をリクエスト調停部13から受信する。この場合、デバイスアクセス制御部15は、消去要求に含まれる物理ブロックアドレスが示す物理ブロックに格納されたデータを消去し、データの消去が完了した旨の応答をリクエスト調停部13へ出力する。
移動対象検索部16は、所定のタイミングで、データの再配置処理を開始する。例えば、移動対象検索部16は、所定の時間間隔、所定の時刻、又は情報処理装置1が実行するアプリケーションプログラムの指示などを契機として、データの再配置処理を開始する。以下、データの再配置処理について説明する。
移動対象検索部16は、管理情報テーブル19の参照を要求するテーブル参照要求をリクエスト調停部13へ出力する。その後、移動対象検索部16は、管理情報テーブル19をリクエスト調停部13から取得する。
次に、移動対象検索部16は、管理情報テーブル19の若い番号の物理ブロックから順に有効ページ及びタイムスタンプを確認する。移動対象検索部16は、移動対象を検出するための有効ページの閾値であるページ閾値及び経過時間の閾値である時間閾値を記憶している。移動対象検索部16は、残っている有効ページがページ閾値よりも少ない物理ブロックを検出した場合、その物理ブロックを移動対象の物理ブロックとして特定する。また、書き込まれてから時間閾値以上更新のない物理ブロックを検出した場合も、移動対象検索部16は、その物理ブロックを移動対象の物理ブロックとして特定する。そして、移動対象検索部16は、移動対象の物理ブロックからデータが格納されている物理ページを特定し、特定した物理ページを表す物理アドレスをデータ移動制御部17へ通知する。
データ移動制御部17は、移動対象である物理ページの物理アドレスを移動対象検索部16から受信する。そして、データ移動制御部17は、その物理アドレスとともにその物理ページに格納されているデータを未使用の物理ページへ移動する再配置要求をリクエスト調停部13へ出力する。このデータの再配置処理が、「特定の物理アドレスに格納されているデータを他の物理アドレスへ格納させるデータの移動」の一例にあたる。
なお、例えば、リクエスタインターフェース部12、リクエスト調停部13、テーブル制御部14、デバイスアクセス制御部15、移動対象検索部16、データ移動制御部17とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、テーブル記憶部11とは、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子などの記憶装置である。
次に、図7を参照して、本実施例に係るNANDコントローラ6aがデータの再配置時に実行する処理をまとめて説明する。図7は、実施例1に係るNANDコントローラが実行する処理の一例を説明するための図である。
例えば、NANDコントローラ6aは、図7中(A)に示すように、管理情報テーブル19を参照し、有効ページ数がページ閾値以下の物理ブロック又は書き込み後時間閾値以上経過している物理ブロックを選択する。NANDコントローラ6aは、選択した物理ブロックに格納されているデータを移動させると判定する。
そして、NANDコントローラ6aは、物理ブロックのデータを移動させると判定した場合は、図7中(B)に示すように、データの再配置処理を実行する。具体的には、NANDコントローラ6aは、データを移動させる物理ブロックにおいてデータが格納されている物理ページを管理情報テーブル19から特定し、特定した物理ページを示す物理アドレスを移動元物理アドレスとする。また、NANDコントローラ6aは、管理情報テーブル19から予備ブロックの物理アドレスを移動先物理アドレスとして取得する。そして、NANDコントローラ6aは、移動元物理アドレス及び移動先物理アドレスを用いて、データの再配置処理を実行する。
詳細には、NANDコントローラ6aは、図7中(C)に示すように、移動元物理アドレスと移動先物理アドレスとを用いて、データの移動に係るデバイスアクセス制御を実行する。この結果、NANDコントローラ6aは、図7中(D)に示すように、移動元物理アドレスが示す物理ページに格納されたデータを、移動先物理アドレスが示す物理ページに移動させる。そして、NANDコントローラ6aは、図6中(E)及び(F)に示すように、データの移動に係る応答を受信する。
すると、NANDコントローラ6aは、図7中(G)に示すように、データの移動に応じて、管理情報テーブル19の更新を行う。
また、NANDコントローラ6aは、データの付随する論理アドレス情報として格納されている論理アドレスを取得する。そして、NANDコントローラ6aは、図7中(H)に示すように、取得した論理アドレスの転送フラグを確認し、転送フラグが「1」の場合、転送先アドレスを取得し、取得した転送先アドレスの転送フラグを再度確認する。NANDコントローラ6aは、転送フラグが「0」の論理アドレスを特定した場合、特定した論理アドレスと対応付けられた物理アドレスを移動先物理アドレスに更新する。
さらに、図8を参照して、本実施例に係る情報処理装置1によるデータ処理についてまとめて説明する。図8は、高速データ移動及びデータの再配置処理におけるメモリアクセスの一例を説明するための図である。
なお、図8に示す例では、理解を容易にするため、ブロック数を「9」とし、各ブロック内の物理ページ数が「4」のNANDデバイス7aについて記載した。また、図8に示す例では、NANDコントローラ6aが、アドレス変換テーブル18を用いて、NANDデバイス7a〜10aが有する物理ページ単位で高速データ移動及びデータの再配置を行う場合について記載した。
例えば、論理アドレス「L0700」のデータを論理アドレス「L0703」へ移動する高速データ移動要求を受信すると、NANDコントローラ6aは、テーブル書換処理201を行う。この場合、NANDコントローラ6aは、アドレス変換テーブル18において、更新203のように移動先の論理アドレス「L0703」の物理/転送先アドレスを、移動元の論理アドレス「L0700」に対応していた物理アドレス「P0102」に書き換える。また、NANDコントローラ6aは、更新202のように移動元の論理アドレス「L0700」の物理/転送先アドレスを移動先の論理アドレスである「L0703」に書き換え、転送フラグを「1」に設定する。
また、NANDコントローラ6aは、管理情報テーブル19において、更新204のように、物理ブロック「B07」の有効ページにおける物理ページ「P0703」のフラグを無効にする。
この場合、更新205のように、物理ページ「L0703」の対応する物理アドレスは、「P0703」から「P0102」に変更される。
その後、所定のタイミングで、NANDコントローラ6aは、検索206に示すように、移動対象の検索を行う。ここでは、物理ブロック「B01」が移動対象の物理ブロックとして特定されたものとする。この場合、NANDコントローラ6aは、物理ブロック「B01」内の有効な物理ページ「L0703」のデータの再配置処理207をNANDデバイス7a〜10aに対して行う。
これにより、NANDコントローラ6aは、移動208のように、物理ページ「P0102」のデータを予備の物理ページ「P0800」へ移動する。
この時、NANDコントローラ6aは、データの付随情報である論理アドレス情報から「L0700」を取得する。そして、NANDコントローラ6aは、処理209のように、アドレス変換テーブル18における論理アドレス「L0700」の転送フラグを確認する。転送フラグが「1」であるので、NANDコントローラ6aは、転送先アドレスである「L0703」を取得する。次に、NANDコントローラ6aは、処理210のように、アドレス変換テーブル18における論理アドレス「L0703」の転送フラグを確認する。そして、転送フラグが「0」であることを確認すると、NANDコントローラ6aは、更新211のように、アドレス変換テーブル18における論理アドレス「L0703」の物理/転送先アドレスを、再配置処理の移動元である「P0102」から「P0800」へ変更する。
さらに、NANDコントローラ6aは、更新212のように、管理情報テーブル19における物理ブロック「B01」の有効フラグのうち物理ページ「P0102」にあたるビットを0にする。この例では、結果として物理ブロック「B01」の有効フラグが全て0となるので、NANDコントローラ6aは続いて物理ブロック「B01」の消去を実行する。また、NANDコントローラ6aは、更新213のように、物理ブロック「B08」の有効フラグのうち物理ページ「P0800」にあたるビットを「1」とする。また、NANDコントローラ6aは、更新214のように、物理ブロック「B08」のタイムスタンプを更新する。
次に、図9を参照して、本実施例に係る情報処理装置1によるデータの読み出し処理について説明する。図9は、実施例1に係る情報処理装置によるデータの読み出し処理のフローチャートである。ここでは、物理アドレスPと対応する論理アドレスAからデータを読み出す場合で説明する。
リクエスト調停部13は、論理アドレスAからのデータの読出要求を受信する(ステップS101)。リクエスト調停部13は、論理アドレスAからのデータの読み出しをテーブル制御部14へ通知する。
テーブル制御部14は、論理アドレスAをインデックスとして、アドレス変換テーブル18のエントリを読み出す(ステップS102)。
そして、テーブル制御部14は、論理アドレスAの有効フラグが「1」か否かを判定する(ステップS103)。有効フラグが「0」の場合(ステップS103:否定)、テーブル制御部14は、アクセスエラーをリクエスト調停部13へ通知する(ステップS108)。リクエスト調停部13は、読出要求の発行元となるCPU3a又は3bに対して、アクセスエラーを通知する。
これに対して、有効フラグが「1」の場合(ステップS103:肯定)、テーブル制御部14は、論理アドレスAの転送フラグが「0」か否かを判定する(ステップS104)。転送フラグが「1」の場合(ステップS104:否定)、テーブル制御部14は、アクセスエラーをリクエスト調停部13へ通知する(ステップS108)。リクエスト調停部13は、読出要求の発行元となるCPU3a又は3bに対して、アクセスエラーを通知する。
これに対して、転送フラグが「0」の場合(ステップS104:肯定)、テーブル制御部14は、論理アドレスAに対応する物理/転送先アドレスである物理アドレスPを取得する(ステップS105)。そして、テーブル制御部14は、物理アドレスPをリクエスト調停部13へ送信する。
次に、リクエスト調停部13は、物理アドレスPを含む読出要求をデバイスアクセス制御部15へ発行する。デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、物理アドレスPに読み出し処理を実行する(ステップS106)。
リクエスト調停部13は、デバイスアクセス制御部15が読み出したデータを読出要求の発行元となるCPU3a又は3bに対して送信する(ステップS107)。
次に、図10を参照して、本実施例に係る情報処理装置1によるデータの書き込み処理について説明する。図10は、実施例1に係る情報処理装置によるデータの書き込み処理のフローチャートである。ここでは、論理アドレスAに対してデータを書き込む場合で説明する。ここで、既に論理アドレスAに物理アドレスが対応している場合には、その物理アドレスをPとする。また、書き込む物理アドレスはQとする。
リクエスト調停部13は、論理アドレスAへのデータの書込要求を受信する(ステップS201)。リクエスト調停部13は、論理アドレスAへのデータの書き込みをテーブル制御部14へ通知する。
テーブル制御部14は、論理アドレスAをインデックスとして、アドレス変換テーブル18のエントリを読み出す(ステップS202)。
そして、テーブル制御部14は、論理アドレスAの有効フラグが「1」か否かを判定する(ステップS203)。有効フラグが「0」の場合(ステップS203:否定)、テーブル制御部14は、ステップS208へ進む。
これに対して、有効フラグが「1」の場合(ステップS203:肯定)、テーブル制御部14は、論理アドレスAの転送フラグが「0」か否かを判定する(ステップS204)。転送フラグが「1」の場合(ステップS204:否定)、テーブル制御部14は、ステップS208へ進む。
これに対して、転送フラグが「0」の場合(ステップS204:肯定)、テーブル制御部14は、論理アドレスAに対応する物理/転送先アドレスである物理アドレスPを取得する(ステップS205)。その後、テーブル制御部14は、物理アドレスPをリクエスト調停部13へ送信する。
次に、リクエスト調停部13は、物理アドレスPを含む読出要求をデバイスアクセス制御部15へ発行する。デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、物理アドレスPに読み出し処理を実行する(ステップS206)。
そして、リクエスト調停部13は、デバイスアクセス制御部15が読み出したデータを書き込みデータで更新する(ステップS207)。
テーブル制御部14は、管理情報テーブル19から書き込みに使用する空き物理アドレスとして物理アドレスQを選択する(ステップS208)。テーブル制御部14は、物理アドレスQをリクエスト調停部13へ通知する。
次に、リクエスト調停部13は、書き込みデータに論理アドレス情報として「A」を付加する(ステップS209)。
次に、リクエスト調停部13は、物理アドレスQを含む書込要求をデバイスアクセス制御部15へ発行する。デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、物理アドレスQに書き込み処理を実行する(ステップS210)。
テーブル制御部14は、アドレス変換テーブル18における論理アドレスAの有効フラグを「1」にセットする(ステップS211)。
さらに、テーブル制御部14は、アドレス変換テーブル18における論理アドレスAの転送フラグを「0」にリセットする(ステップS212)。
そして、テーブル制御部14は、アドレス変換テーブル18における論理アドレスAの物理/転送先アドレスを物理アドレスQに更新する(ステップS213)。
また、テーブル制御部14は、管理情報テーブル19を更新する(ステップS214)。
次に、図11を参照して、本実施例に係る情報処理装置1による高速データ移動処理について説明する。図11は、実施例1に係る情報処理装置による高速データ移動処理のフローチャートである。ここでは、論理アドレスAから論理アドレスBへデータを移動する場合で説明する。また、論理アドレスAには物理アドレスPが対応している場合で説明する。
リクエスト調停部13は、論理アドレスAから論理アドレスBへの高速データ移動要求を受信する(ステップS301)。リクエスト調停部13は、論理アドレスAから論理アドレスBへの高速データ移動をテーブル制御部14へ通知する。
テーブル制御部14は、論理アドレスAをインデックスとして、アドレス変換テーブル18のエントリを読み出す(ステップS302)。
そして、テーブル制御部14は、論理アドレスAの有効フラグが「1」か否かを判定する(ステップS303)。有効フラグが「0」の場合(ステップS303:否定)、テーブル制御部14は、アクセスエラーをリクエスト調停部13へ通知する(ステップS313)。リクエスト調停部13は、高速データ移動要求の発行元となるCPU3a又は3bに対して、アクセスエラーを通知する。
これに対して、有効フラグが「1」の場合(ステップS303:肯定)、テーブル制御部14は、論理アドレスAの転送フラグが「0」か否かを判定する(ステップS304)。転送フラグが「1」の場合(ステップS304:否定)、テーブル制御部14は、アクセスエラーをリクエスト調停部13へ通知する(ステップS313)。リクエスト調停部13は、高速データ移動要求の発行元となるCPU3a又は3bに対して、アクセスエラーを通知する。
これに対して、転送フラグが「0」の場合(ステップS304:肯定)、テーブル制御部14は、論理アドレスAに対応する物理/転送先アドレスである物理アドレスPを取得する(ステップS305)。
そして、テーブル制御部14は、アドレス変換テーブル18における論理アドレスAの転送フラグを「1」にセットする(ステップS306)。
さらに、テーブル制御部14は、アドレス変換テーブル18における論理アドレスAの物理/転送先アドレスを論理アドレスBに更新する(ステップS307)。
次に、テーブル制御部14は、論理アドレスBをインデックスとして、アドレス変換テーブル18のエントリを読み出す(ステップS308)。
テーブル制御部14は、アドレス変換テーブル18における論理アドレスBの有効フラグを「1」にセットする(ステップS309)。
また、テーブル制御部14は、アドレス変換テーブル18における論理アドレスBの転送フラグを「0」にリセットする(ステップS310)。
さらに、テーブル制御部14は、アドレス変換テーブル18における論理アドレスBの物理/転送先アドレスを物理アドレスPに更新する(ステップS311)。
また、テーブル制御部14は、管理情報テーブル19を更新する(ステップS312)。
次に、図12を参照して、本実施例に係る情報処理装置1による再配置処理について説明する。図12は、実施例1に係る情報処理装置による再配置処理のフローチャートである。ここでは、物理アドレスPから物理アドレスQへデータを移動する場合で説明する。また、論理アドレスAには物理アドレスPが対応している場合で説明する。
移動対象検索部16は、管理情報テーブル19から移動対象の物理ページを検出する(ステップS401)。移動対象検索部16は、検出した物理ページを表す物理アドレスPをデータ移動制御部17へ通知する。データ移動制御部17は、物理アドレスPのデータの再配置をリクエスト調停部13へ通知する。
リクエスト調停部13は、物理アドレスPに対するデータの読出要求をデバイスアクセス制御部15へ発行する(ステップS402)。
デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、物理アドレスPが表す物理ページからデータを読み出しリクエスト調停部13へ送信する。リクエスト調停部13は、物理アドレスPから読み出されたデータを保持する(ステップS403)。
リクエスト調停部13は、物理アドレスPのデータの再配置をテーブル制御部14へ通知する。テーブル制御部14は、移動先となる空き物理ページとして物理アドレスQが示す物理ページを選択する(ステップS404)。
リクエスト調停部13は、物理アドレスPから読み出したデータに付随する論理アドレス情報である論理アドレスX(1)を取得する(ステップS405)。そして、リクエスト調停部13は、論理アドレスX(1)をテーブル制御部14へ送信する。
テーブル制御部14は、変数iをi=1とする(ステップS406)。
そして、テーブル制御部14は、論理アドレスX(i)をインデックスとして、アドレス変換テーブル18のエントリを取得する(ステップS407)。ここで、X(i)は、転送先フラグが「0」である論理アドレスにたどり着くまでに順次転送されていく論理アドレスを示している。
次に、テーブル制御部14は、論理アドレスX(i)の転送フラグが「0」か否かを判定する(ステップS408)。転送フラグが「1」の場合(ステップS408:否定)、テーブル制御部14は、論理アドレスX(i)の物理/転送先アドレスから論理アドレスX(i+1)を取得する(ステップS409)。
その後、テーブル制御部14は、変数iをi=i+1とし(ステップS410)、ステップS407へ戻る。
これに対して、転送フラグが「0」の場合(ステップS408:肯定)、テーブル制御部14は、論理アドレスX(i)に対応する物理/転送先アドレスを物理アドレスQに更新する(ステップS411)。そして、テーブル制御部14は、論理アドレスX(i)をリクエスト調停部13へ送信する。
リクエスト調停部13は、物理アドレスPから読み出して保持していたデータに論理アドレス情報として論理アドレスX(i)を付加する(ステップS412)。
リクエスト調停部13は、物理アドレスQを含む書込要求をデバイスアクセス制御部15へ発行する。デバイスアクセス制御部15は、NANDデバイス7a〜10aが有するページのうち、物理アドレスQに書き込み処理を実行する(ステップS413)。
また、テーブル制御部14は、管理情報テーブル19を更新する(ステップS414)。
以上に説明したように、本実施例に係る情報処理装置は、アクセス変換テーブルに対応関係が変更されたか否かを表す転送フラグを有し、さらに、対応関係が変更されている場合には、転送先の論理アドレスを格納している。そして、本実施例に係る情報処理装置は、データの再配置を行う際にデータの付随情報である論理アドレス情報が示す論理アドレスから順次転送先の論理アドレスを追いかけていくことで、現在の対応する論理アドレスを特定する。これにより、性能や資源使用効率を維持しつつ、システムの信頼性を確保することができる。
図13は、実施例2に係る情報処理装置のブロック図である。実施例1では、高速データ移動における移動先アドレスの管理をハードウェアで実現する例を示したが、これらをソフトウェアで実現することも可能である。そこで、実施例2では、高速データ移動における移動先アドレスの管理をソフトウェアで実現する場合について説明する。
図13に示すNANDコントローラ6aは、CPU902を有する。また、情報処理装置1は、CPU902からアクセス可能な主記憶部であるメモリデバイス901を有する。
アドレス変換テーブル18及び管理情報テーブル19は、メモリデバイス901上に展開される。
そして、リクエスト調停部13、テーブル制御部14、移動対象検索部16及びデータ移動制御部17の各機能は、CPU902によって実現される。
すなわち、CPU902上の制御プログラム903が、メモリデバイス901上に展開されたアドレス変換テーブル18及び管理情報テーブル19を用いて、移動対象の検索、データの再配置の実行、各テーブルの参照及び更新、リクエストの調停などを制御する。
このように、ソフトウェアで各機能を実現した場合にも、実施例1と同様の制御を行うことで同様の効果を得ることができる。
なお、NANDコントローラ6aは、CPUではなく、例えばMPUやFPGA等の演算装置を用いて制御プログラム903を実行しても良い。また、上記の制御プログラム903については、例えば、メモリデバイス901や、NANDデバイス7a〜10aに記憶させてもよいし、他の方法でCPU902に実行させてもよい。例えば、フレキシブルディスク、いわゆるFD(Flexible Disk)、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。
そして、NANDコントローラ6aが各CPU902を介して、これらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などを介して他のコンピュータまたはサーバ装置などに記憶させた各プログラムを取得して実行するようにしてもよい。
1 情報処理装置
2a,2b メモリ
3a,3b CPU
4 I/Oハブ
5a,5b SSD
6a,6b NANDコントローラ
7a〜10a,7b〜10b NANDデバイス
11 テーブル記憶部
12 リクエスタインターフェース部
13 リクエスト調停部
14 テーブル制御部
15 デバイスアクセス制御部
16 移動対象検索部
17 データ移動制御部
18 アドレス変換テーブル
19 管理情報テーブル
901 メモリデバイス
902 CPU
903 制御プログラム

Claims (7)

  1. 物理アドレスで格納データを管理するデータ記憶部と、
    前記物理アドレスに対応する論理アドレスを用いて前記データ記憶部に格納されているデータに対する処理命令を出力する処理部と、
    前記論理アドレスと前記物理アドレスとの対応関係、並びに、各論理アドレスに対応する物理アドレスが他の論理アドレスに対応するように対応関係が変更された場合の対応関係の変更を示す変更情報及び前記他の論理アドレスを記憶する関係記憶部と、
    前記処理部から論理アドレス間のデータの移動命令を受信した場合、前記関係記憶部において、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更し、移動元の論理アドレスに前記変更情報を設定し、移動元の論理アドレスに対応する前記他の論理アドレスとして移動先の論理アドレスを記憶させるアドレス制御部と
    を備えたことを特徴とする情報処理装置。
  2. 特定の物理アドレスに格納されているデータを他の物理アドレスへ格納させるデータの移動を行うデータ移動制御部をさらに備え、
    前記データ記憶部は、前記物理アドレスにデータとともに当該物理アドレスに対応する論理アドレスの情報を格納して管理し、
    前記アドレス制御部は、前記データ移動制御部によりデータの移動が実行された場合に、前記変更情報を基に、前記関係記憶部における前記特定の物理アドレスに対応する論理アドレスを特定し、特定した論理アドレスに移動先の論理アドレスが対応するように対応関係を変更する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記アドレス制御部は、前記特定の物理アドレスに対応する論理アドレスを検索対象アドレスとして前記データ記憶部から取得し、前記関係記憶部を参照して前記検索対象アドレスに前記変更情報が設定されている場合、前記検索対象アドレスに対応する移動先の論理アドレスを取得し、取得した移動先の論理アドレスを次の検索対象アドレスとして、前記変更情報が設定されていない前記検索対象アドレスを検出するまで、前記検索対象アドレスに対応する移動先の論理アドレスを順次取得していき、変更情報が設定されていない検索対象アドレスに前記他の物理アドレスが対応するように対応関係を変更する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記データ移動制御部は、データの移動の際に、前記アドレス制御部から移動先の物理アドレスに対応する論理アドレスを取得し、データとともに取得した論理アドレスを前記データ記憶部の前記他の物理アドレスに格納することを特徴とする請求項3に記載の情報処理装置。
  5. 前記アドレス制御部は、各論理アドレスに対応する前記関係記憶部の同じ領域に各論理アドレスに対応する物理アドレス又は前記移動先の論理アドレスを格納することを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
  6. 物理アドレスで格納データを管理する記憶装置上の前記物理アドレスに格納されているデータの論理アドレス間の移動を受信し、
    論理アドレスと物理アドレスとの対応関係、並びに、各論理アドレスに対応する物理アドレスが他の論理アドレスに対応するように対応関係が変更された場合の対応関係の変更を示す変更情報及び前記他の論理アドレスが格納された関係情報において、移動対象のデータが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更し、
    前記関係情報における移動元の論理アドレスに前記変更情報を設定し、
    前記関係情報における移動元の論理アドレスに対応する前記他の論理アドレスとして移動先の論理アドレスを設定する
    処理を前記記憶装置の制御を行う制御部により実行することを特徴とするデータ転送制御方法。
  7. 物理アドレスで格納データを管理する記憶装置上の前記物理アドレスに格納されているデータの論理アドレス間の移動を受信し、
    論理アドレスと物理アドレスとの対応関係、並びに、各論理アドレスに対応する物理アドレスが他の論理アドレスに対応するように対応関係が変更された場合の対応関係の変更を示す変更情報及び前記他の論理アドレスが格納された関係情報において、移動対象のデータが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更し、
    前記関係情報における移動元の論理アドレスに前記変更情報を設定し、
    前記関係情報における移動元の論理アドレスに対応する前記他の論理アドレスとして移動先の論理アドレスを設定する
    処理をコンピュータに実行させることを特徴とするデータ転送制御プログラム。
JP2013227712A 2013-10-31 2013-10-31 情報処理装置、データ転送制御方法及びデータ転送制御プログラム Active JP6179355B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013227712A JP6179355B2 (ja) 2013-10-31 2013-10-31 情報処理装置、データ転送制御方法及びデータ転送制御プログラム
EP20140186169 EP2869184A1 (en) 2013-10-31 2014-09-24 Information processing apparatus, data transfer control method, and data transfer control program
US14/495,999 US20150121033A1 (en) 2013-10-31 2014-09-25 Information processing apparatus and data transfer control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013227712A JP6179355B2 (ja) 2013-10-31 2013-10-31 情報処理装置、データ転送制御方法及びデータ転送制御プログラム

Publications (2)

Publication Number Publication Date
JP2015088069A true JP2015088069A (ja) 2015-05-07
JP6179355B2 JP6179355B2 (ja) 2017-08-16

Family

ID=51687792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013227712A Active JP6179355B2 (ja) 2013-10-31 2013-10-31 情報処理装置、データ転送制御方法及びデータ転送制御プログラム

Country Status (3)

Country Link
US (1) US20150121033A1 (ja)
EP (1) EP2869184A1 (ja)
JP (1) JP6179355B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057049A (ja) * 2017-09-20 2019-04-11 株式会社東芝 ビデオサーバ、及び放送システム
KR20200124070A (ko) * 2019-04-23 2020-11-02 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10175885B2 (en) * 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
TWI653636B (zh) * 2018-06-13 2019-03-11 宏碁股份有限公司 資料儲存裝置及其操作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000505215A (ja) * 1995-09-27 2000-04-25 メモリー・コーポレーシヨン・ピー・エル・シー メモリ管理
JP2004206424A (ja) * 2002-12-25 2004-07-22 Hitachi Ltd データ処理装置及びデータ処理装置におけるデータ転送方法
JP2005202942A (ja) * 2003-12-16 2005-07-28 Matsushita Electric Ind Co Ltd 情報記録媒体、データ処理装置及びデータ処理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420993A (en) * 1991-06-13 1995-05-30 Unisys Corporation Extended address translation system for pointer updating in paged memory systems
JPH0520197A (ja) * 1991-07-09 1993-01-29 Hitachi Ltd 記憶管理システム及びマイクロプロセツサ
JPH087717B2 (ja) * 1991-09-03 1996-01-29 富士通株式会社 動的アドレス変換処理装置
US5403639A (en) * 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
US5515522A (en) * 1994-02-24 1996-05-07 Hewlett-Packard Company Coherence index generation for use by an input/output adapter located outside of the processor to detect whether the updated version of data resides within the cache
JP3402398B2 (ja) * 1994-03-17 2003-05-06 株式会社日立製作所 並列プロセッサシステムの通信制御方法
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US6934763B2 (en) * 2000-04-04 2005-08-23 Fujitsu Limited Communication data relay system and method of controlling connectability between domains
US20020156977A1 (en) * 2001-04-23 2002-10-24 Derrick John E. Virtual caching of regenerable data
JP3594082B2 (ja) * 2001-08-07 2004-11-24 日本電気株式会社 仮想アドレス間データ転送方式
JP4188744B2 (ja) * 2003-04-08 2008-11-26 株式会社ルネサステクノロジ メモリカード
US7093080B2 (en) * 2003-10-09 2006-08-15 International Business Machines Corporation Method and apparatus for coherent memory structure of heterogeneous processor systems
US7401174B2 (en) * 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
JP2006040264A (ja) 2004-06-21 2006-02-09 Toshiba Corp メモリカードの制御方法および不揮発性半導体メモリの制御方法
US7213041B2 (en) * 2004-10-05 2007-05-01 Unisys Corporation Saving and restoring an interlocking trees datastore
KR20120134919A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 메모리 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000505215A (ja) * 1995-09-27 2000-04-25 メモリー・コーポレーシヨン・ピー・エル・シー メモリ管理
JP2004206424A (ja) * 2002-12-25 2004-07-22 Hitachi Ltd データ処理装置及びデータ処理装置におけるデータ転送方法
JP2005202942A (ja) * 2003-12-16 2005-07-28 Matsushita Electric Ind Co Ltd 情報記録媒体、データ処理装置及びデータ処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019057049A (ja) * 2017-09-20 2019-04-11 株式会社東芝 ビデオサーバ、及び放送システム
KR20200124070A (ko) * 2019-04-23 2020-11-02 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법
KR102263040B1 (ko) * 2019-04-23 2021-06-09 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법
US11237979B2 (en) 2019-04-23 2022-02-01 Samsung Electronics Co., Ltd. Method for management of multi-core solid state drive

Also Published As

Publication number Publication date
US20150121033A1 (en) 2015-04-30
JP6179355B2 (ja) 2017-08-16
EP2869184A1 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
US9928167B2 (en) Information processing system and nonvolatile storage unit
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
JP5907739B2 (ja) 不揮発性記憶装置
JP6414852B2 (ja) メモリシステムおよび制御方法
JP2015001908A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
TWI502594B (zh) 用於快閃儲存裝置之半區塊管理
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
WO2011086732A1 (en) Storage device management device and method for managing storage device
KR20100003244A (ko) 판독 실패 관리 방법 및 시스템
CN113508382A (zh) Ssd中数据的选择性擦除
JP2018101411A (ja) データストレージデバイスおよびその操作方法
TW202001573A (zh) 記憶系統
JPWO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
CN110955384A (zh) 数据储存装置以及非挥发式存储器控制方法
JP2019086970A (ja) メモリシステムおよび制御方法
WO2017213908A1 (en) Method and apparatus for improving performance of sequential logging in a storage device
EP2816482A1 (en) Information processing apparatus, control circuit, and control method
EP3926451B1 (en) Communication of data relocation information by storage device to host to improve system performance
JP6179355B2 (ja) 情報処理装置、データ転送制御方法及びデータ転送制御プログラム
JP5967307B2 (ja) 情報処理装置、制御回路、制御プログラム、及び制御方法
JP2009259145A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5967308B2 (ja) 情報処理装置、制御回路、制御プログラム、及び制御方法
JP5452735B2 (ja) メモリコントローラ及びメモリアクセス方法
JP6132010B2 (ja) 制御装置、制御プログラム、および制御方法
TW202032375A (zh) 資料儲存裝置以及非揮發式記憶體控制方法

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170602

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170703

R150 Certificate of patent or registration of utility model

Ref document number: 6179355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150