(57)【要約】【課題】システムの性能を向上させた情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムを提供する。【解決手段】不揮発性メモリ３は、物理アドレスで格納データを管理する。演算処理部１１は、物理アドレスに対応する論理アドレスを用いて不揮発性メモリ３に格納されているデータに対する処理命令を出力する。アクセス制御部２４は、演算処理部１１が出力する処理命令を基に、不揮発性メモリ３に格納されているデータの移動を行う命令を検出する。アドレス変換テーブル制御部２２は、物理アドレスと論理アドレスとの対応関係を記憶しており、アクセス制御部２４によりデータの移動を行う命令が検出された場合、当該データが格納されている物理アドレスに移動先の論理アドレスが対応するように対応関係を変更する。【選択図】図１
2014203405.tif 000002
【特許請求の範囲】
【請求項１】
物理アドレスで格納データを管理する記憶部と、
前記物理アドレスに対応する論理アドレスを用いて前記記憶部に格納されているデータに対する処理命令を出力する処理部と、
前記処理部が出力する処理命令を基に、前記記憶部に記憶されているデータの移動を行う命令を検出する検出部と、
前記物理アドレスと前記論理アドレスとの対応関係を記憶しており、前記検出部により前記データの移動命令が検出された場合、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更するアドレス変更部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記検出部は、前記処理部により出力された処理命令の前後関係を基に、前記データの移動を行う命令を検出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理部は、データが格納されている論理アドレスの変更命令を前記データの移動を行う命令として出力し、
前記アドレス変更部は、前記変更命令の変更前の論理アドレスに対応する物理アドレスに変更後の論理アドレスが対応するように前記対応関係を変更する
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記検出部は、前記処理部が、移動命令もしくはスワップ命令を出力した場合、または、前記記憶部からデータを読み出す読出命令の出力に続いて読み出される該データを前記記憶部に書き込む書込命令を出力した場合に前記データの移動を行う命令を検出することを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記記憶部は不揮発性メモリであり、
前記記憶部内でデータを移動する場合、前記記憶部に格納されているデータを読み出し、読み出したデータを前記記憶部の異なる領域へ書き込み、前記データを読み出した領域を無効とするメモリ制御部をさらに備えた
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
メモリが有する物理アドレスに対応する論理アドレスを用いた前記メモリに格納されているデータに対する処理命令を受信する受信部と、
受信部により受信された前記処理命令を基に、データの移動を行う命令を検出する検出部と、
前記検出部により前記データの移動を行う命令が検出された場合、記憶している前記物理アドレスと前記論理アドレスとの対応関係において、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更するアドレス変更部と
を備えたことを特徴とするメモリ制御装置。
【請求項７】
メモリが有する物理アドレスに対応する論理アドレスを用いた前記メモリに格納されているデータに対する処理命令を受信し、
受信した前記処理命令を基に、データの移動を行う命令を検出し、
前記データの移動を行う命令を検出した場合、記憶している前記物理アドレスと前記論理アドレスとの対応関係において、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更する
処理を前記メモリの制御を行う制御部により実行することを特徴とするデータ転送制御方法。
【請求項８】
メモリの物理アドレスに対応する論理アドレスを用いて前記メモリに格納されているデータに対する処理命令を受信し、
受信した前記処理命令を基に、データの移動を行う命令を検出し、
前記データの移動を行う命令を検出した場合、記憶している前記物理アドレスと前記論理アドレスとの対応関係において、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更する
処理をコンピュータに実行させることを特徴とするデータ転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムに関する。
【背景技術】
【０００２】
近年、サーバなどの情報処理装置において、ＮＡＮＤ型フラッシュメモリデバイスのような不揮発性メモリを用いたメモリシステムやストレージシステムなどの補助記憶装置が広く用いられてきている。
【０００３】
このような不揮発性メモリを媒体として備える補助記憶装置を用いた場合、ソフトウェアが不揮発性メモリ上にあるデータを入力として処理を実行し、処理が完了すると処理結果のデータを不揮発性メモリに格納する処理が行われる。このような処理においては、処理するデータが大きい場合やメモリの空き容量が少ない場合には、不揮発性メモリ上に処理途中の中間データや更新後のデータが一時的に格納されることがある。
【０００４】
中間データや更新データを不揮発性メモリに一時的に格納する処理を行った場合、以下のような処理が行われることが考えられる。すなわち、一時的に不揮発性メモリ上に置かれた更新データと処理完了後の確定したデータとの間に変更がなくても、処理完了時に新たに不揮発性メモリ上に処理完了後の確定したデータを格納しなおすという動作を行うことが考えられる。そのため、更新データの読み出しや書き込みでシステムバスが使用されてしまい、情報処理装置全体としての性能が低下してしまう。
【０００５】
このような、不揮発性メモリに対するアクセスの回数を抑えるため、論理アドレス間でデータの置換を実施する場合に、論理アドレスと物理アドレスとの対応を置換する従来技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２０２９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、アドレスの対応を置換する従来技術では、置換の場合のみを対象としており、置換以外の不揮発性メモリ内でのデータの移動については考慮されていない。そのため、アドレスの対応を置換する従来技術では、置換以外の場合に不揮発性メモリ内でのデータ移動か否かの判定ができず、不揮発性メモリに対するアクセスの回数を抑えることは困難である。すなわち、アドレスの対応を置換する従来技術では、バスの使用を削減することはできず、システムの性能を向上させることはできない。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、不揮発性メモリの読み出しや書き込みの回数を抑制して、システムの性能を向上させる情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムは、一つの態様において、記憶部は、物理アドレスで格納データを管理する。処理部は、前記物理アドレスに対応する論理アドレスを用いて前記記憶部に格納されているデータに対する処理命令を出力する。検出部は、前記処理部が出力する処理命令を基に、前記記憶部に格納されているデータの移動を行う命令を検出する。アドレス変更部は、前記物理アドレスと前記論理アドレスとの対応関係を記憶しており、前記検出部により前記データの移動命令が検出された場合、当該データが格納されている前記物理アドレスに移動先の論理アドレスが対応するように対応関係を変更する。
【発明の効果】
【００１０】
本願の開示する情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムの一つの態様によれば、システムの性能を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係る情報処理装置のブロック図である。
【図２】図２は、実施例に係る情報処理装置のハードウェア構成の一例を示す図である。
【図３】図３は、データの移動前の物理アドレスと論理アドレスとの関係を示す図である。
【図４】図４は、データの移動後の物理アドレスと論理アドレスとの関係を示す図である。
【図５】図５は、データの移動前の情報処理装置におけるデータの状態を示す概略図である。
【図６】図６は、データの移動後の情報処理装置におけるデータの状態を示す概略図である。
【図７】図７は、実施例に係る情報処理装置におけるデータの移動が発生した場合の処理のフローチャートである。
【図８】図８は、従来の情報処理装置の一例のブロック図である。
【図９】図９は、従来の情報処理装置におけるデータの移動による物理アドレスと論理アドレスとの関係を説明するための図である。
【図１０】図１０は、メインメモリ上に更新データを一旦格納する従来技術を用いてデータの移動を行う場合の処理途中のデータの状態を示す概略図である。
【図１１】図１１は、メインメモリ上に更新データを一旦格納する従来技術を用いてデータの移動を行う場合の処理完了後のデータの状態を示す概略図である。
【図１２】図１２は、一時退避領域を使用する従来技術を用いてデータの移動を行う場合の処理途中データの状態を示す概略図である。
【図１３】図１３は、一時退避領域を使用する従来技術を用いてデータの移動を行う場合の処理完了後のデータの状態を示す概略図である。
【図１４】図１４は、メインメモリ上に更新データを一旦格納する従来技術のデータの移動処理のフローチャートである。
【図１５】図１５は、一時退避領域を用いる従来技術のデータの移動処理のフローチャートである。
【図１６】図１６は、ハードウェア構成の第１の変形例の図である。
【図１７】図１７は、ハードウェア構成の第２の変形例の図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラムが限定されるものではない。
【実施例】
【００１３】
図１は、実施例に係る情報処理装置のブロック図である。図１に示すように、本実施例に係る情報処理装置１００は、主制御部１、デバイス制御部２及び不揮発性メモリ３を有している。
【００１４】
主制御部１は、ＯＳやアプリケーションなどを実行する。デバイス制御部２は、主制御部１と不揮発性メモリ３との間におけるデータの送受信の制御を行う。
【００１５】
不揮発性メモリ３は、情報を格納する記憶装置である。例えば、不揮発性メモリ３は、ＮＡＮＤ型フラッシュメモリデバイス（以下、「ＮＡＮＤデバイス」という。）を用いた記憶装置である。
【００１６】
ここで、不揮発性メモリ３は、アクセス方法に様々な制限が存在する。例えば、不揮発性メモリがＮＡＮＤデバイスなどの場合、ページという単位でしか読み出しや書込みができない場合がある。ページの大きさは、不揮発性メモリの種類によって異なるが、例えば、１〜１６ＫＢｙｔｅの大きさを有する。ここで、一度データがページに書き込まれた場合、当該ページでデータの上書きをすることができない。ＮＡＮＤデバイスなどの不揮発性メモリでは、一度データが書き込まれたページに新たにデータを書き込む場合、そのページに格納されているデータを消去してから、新たにデータを書き込む。ただし、ＮＡＮＤデバイスなどの不揮発性メモリでは、ページに格納されているデータを消去する場合、ページ単位ではデータの消去は行えず、ページを一つ以上まとめたブロックと言う単位で消去が行われる。ブロックの大きさも不揮発性メモリの種類によって異なるが、例えば、６４〜２５６ページで１ブロックが構成されている。
【００１７】
主制御部１は、演算処理部１１、ＩＦ（Interface）制御部１２を有している。また、演算処理部１１は、ＯＳ実行部１３及びアプリケーション実行部を有している。
【００１８】
ＯＳ実行部１３は、ＯＳを実行する。また、ＯＳ実行部１３は、ファイルシステム実行部１３１及びドライバ実行部１３２を有している。
【００１９】
ＯＳ実行部１３は、不揮発性メモリ３に格納されたデータを用いて管理するファイルシステム実行部１３１を有している。ファイルシステム実行部１３１は、不揮発性メモリ３に格納されたデータを、論理アドレスを用いて管理している。
【００２０】
また、ドライバ実行部１３２は、不揮発性メモリ３へのデータの読み出しや書き込みなどをＩＦ制御部１２に対して指示する。
【００２１】
演算処理部１１は、ファイルシステム実行部１３１を用いて論理アドレスへのデータの読み出し及び書き込みなどの処理を行うことで、実際には不揮発性メモリ３の物理アドレスに対してデータの読み出し及び書き込みなどの操作を行う。すなわち、演算処理部１１は、ファイルシステム実行部１３１に対してデータの読み出しや書き込みを指示することで、ドライバ実行部１３２を用いてデータの読み出しや書き込みをＩＦ制御部１２に対して指示する。
【００２２】
例えば、演算処理部１１は、データの読出命令であるデータの読み出しのコマンドをＩＦ制御部１２に送信することでデータの読み出しを指示する。また、演算処理部１１は、データの書込命令であるデータの書き込みのコマンドをＩＦ制御部１２に送信することでデータの書き込みを指示する。
【００２３】
また、アプリケーション実行部１４は、ＯＳ実行部１３が実行するＯＳ上でアプリケーションなどを実行する。
【００２４】
さらに、デバイス制御部２のホストＩＦ制御部２１及びＩＦ制御部１２の間の通信において移動命令が規定されている場合、演算処理部１１は、移動命令のコマンドをＩＦ制御部１２に送信することでデータの移動を指示する。また、デバイス制御部２のホストＩＦ制御部２１及びＩＦ制御部１２の間の通信においてＳＷＡＰ命令が規定されている場合、演算処理部１１は、ＳＷＡＰ命令のコマンドをＩＦ制御部１２に送信することでデータの置換を指示する。
【００２５】
ＩＦ制御部１２は、主制御部１におけるデバイス制御部２との間のデータの入出力の管理を行う。ＩＦ制御部１２は、不揮発性メモリ３へのデータの書き込みや読み出しなどの各種操作のコマンドを演算処理部１１から受信することで、データ操作の指示を受ける。そして、ＩＦ制御部１２は、受信したコマンドをデバイス制御部２のホストＩＦ制御部２１へ出力する。
【００２６】
例えば、ＩＦ制御部１２は、書き込みのコマンドや読み込みのコマンドの入力を演算処理部１１から受ける。そして、ＩＦ制御部１２は、データの読み出しのコマンドを受けると、受信したデータの読み出しのコマンドをホストＩＦ制御部２１へ出力する。同様に、ＩＦ制御部１２は、データの書き込みのコマンドを受けると、受信したデータの書き込みのコマンドをホストＩＦ制御部２１へ出力する。
【００２７】
また、ＩＦ制御部１２は、出力したコマンドに対する応答をホストＩＦ制御部２１から受ける。そして、ＩＦ制御部１２は、受信した応答を演算処理部１１へ出力する。例えば、読み出しのコマンドを出力した場合、読み出しが成功すれば、ＩＦ制御部１２は、指定したデータの入力をホストＩＦ制御部２１から受ける。そして、ＩＦ制御部１２は、受信したデータを演算処理部１１へ出力する。また、書き込みのコマンドを出力した場合、書き込みが成功すれば、ＩＦ制御部１２は、書き込み完了の通知をホストＩＦ制御部２１から受ける。そして、ＩＦ制御部１２は、受信した書き込み完了の通知を演算処理部１１へ出力する。
【００２８】
デバイス制御部２は、ホストＩＦ制御部２１、アドレス変換テーブル制御部２２、デバイスアクセス制御部２３及びアクセス制御部２４を有している。
【００２９】
ホストＩＦ制御部２１は、コマンドの入力をＩＦ制御部１２から受ける。ホストＩＦ制御部２１は、受信したコマンドを解析し、不揮発性メモリ３へのアクセスと判定する。そして、ホストＩＦ制御部２１は、コマンドとともに不揮発性メモリ３へのアクセスの通知をアドレス変換テーブル制御部２２及びアクセス制御部２４へ出力する。
【００３０】
また、ホストＩＦ制御部２１は、受信したコマンドに対する応答をアドレス変換テーブル制御部２２から受信する。そして、ホストＩＦ制御部２１は、受信した応答をＩＦ制御部１２へ出力する。
【００３１】
アクセス制御部２４は、コマンドの入力をホストＩＦ制御部２１から受ける。そして、アクセス制御部２４は、入力されたコマンドの種類、コマンドの前後の関係及びコマンドの内容などから演算処理部１１からの指示がデータの移動か否かを判定する。
【００３２】
例えば、アクセス制御部２４は、読み出しのコマンド及び書き込みのコマンドを連続して受信し、読み出しのコマンドで読み出したデータを書き込む場合、読み出しが指示されたデータの移動と判定する。具体的には、不揮発性メモリ３上のアドレスＡ１からメインメモリ上のアドレスＢにデータを読み出す読み出しコマンドと、アドレスＢのデータを不揮発性メモリ３上のアドレスＡ２に書き込む書き込みコマンドとを連続して受信すると、アクセス制御部２４は、データの移動と判断できる。また、読み出しコマンドと書き込みコマンドとが連続した命令であることを示す識別情報が、連続した読み出しコマンドと書き込みコマンドとに付加されていることを検出した場合に、アクセス制御部２４がデータの移動と判定するようにしてもよい。
【００３３】
また、ホストＩＦ制御部２１及びＩＦ制御部１２の間の通信において移動命令が規定されている場合、アクセス制御部２４は、移動命令のコマンドを受信すると、移動命令で指定されたデータの移動と判定する。同様に、ホストＩＦ制御部２１及びＩＦ制御部１２の間の通信においてＳＷＡＰ命令が規定されている場合、アクセス制御部２４は、ＳＷＡＰ命令のコマンドを受信すると、ＳＷＡＰ命令で指定されたデータそれぞれの移動と判定する。なお、ここでいうＳＷＡＰ命令とは、例えば、メモリ上のあるアドレスのデータと他のアドレスのデータとを入れ替える命令をいう。
【００３４】
さらに、実際のデータの移動なしにテーブルを書き換えるための命令として、情報処理装置１００での専用のテーブル書換命令がホストＩＦ制御部２１及びＩＦ制御部１２の間の通信において規定されている場合も同様である。すなわち、アクセス制御部２４は、専用のテーブル書換命令のコマンドを受信すると、専用のテーブル書換命令で指定されたデータの移動と判定する。
【００３５】
そして、アクセス制御部２４は、データの移動と判定した場合、移動するデータの物理アドレスをアドレス変換テーブル制御部２２に要求する。そして、アクセス制御部２４は、移動するデータの物理アドレスをアドレス変換テーブル制御部２２から取得する。
【００３６】
次に、アクセス制御部２４は、取得した物理アドレスに移動後の論理アドレスを対応付けるようにアドレス変換テーブル制御部２２に指示する。さらに、アクセス制御部２４は、移動が指示されたデータの移動前の論理アドレスと物理アドレスとの対応を無効にする指示をアドレス変換テーブル制御部２２へ通知する。
【００３７】
例えば、アクセス制御部２４は、読み出しのコマンド及び書き込みのコマンドからデータの移動を判定した場合、読み出しコマンドで指定されているデータの論理アドレスに対応する物理アドレスをアドレス変換テーブル制御部２２から取得する。そして、アクセス制御部２４は、取得した物理アドレスに書き込みコマンドで指定されているデータの書き込み先の論理アドレスを対応付けるようにアドレス変換テーブル制御部２２に指示する。さらに、アクセス制御部２４は、読み出しコマンドで指定されているデータの論理アドレスと物理アドレスとの対応を無効にする指示をアドレス変換テーブル制御部２２へ通知する。すなわち、この場合、読み出しコマンドで指定されているデータの論理アドレスが移動元の論理アドレスとなり、書き込みコマンドで指定されているデータの論理アドレスが移動先の論理アドレスとなる。
【００３８】
また、アクセス制御部２４は、移動命令のコマンドからデータの移動を判定した場合、移動命令で指定されている移動元の論理アドレスに対応する物理アドレスをアドレス変換テーブル制御部２２から取得する。そして、アクセス制御部２４は、取得した物理アドレスに移動命令で指定されている移動先の論理アドレスを対応付けるようにアドレス変換テーブル制御部２２に指示する。さらに、アクセス制御部２４は、移動命令で指定されている移動元の論理アドレスと物理アドレスとの対応を無効にする指示をアドレス変換テーブル制御部２２へ通知する。これは、例えば、ＳＷＡＰ命令や情報処理装置１００における専用のテーブル書き換え命令でも同様である。
【００３９】
アドレス変換テーブル制御部２２は、物理アドレスと論理アドレスの対応を表すアドレス変換テーブルを有している。ここで、ハードディスクドライブなどはデータの上書きや書き込みに制限が無いので、ファイルシステム１３１がハードディスク上の物理アドレスで格納データを管理しても問題は発生しない。しかし、不揮発性メモリのように、データの上書きや書き込みに上述したような制限がある場合、ファイルシステムなどのソフトウェアが物理アドレスを管理すると、演算やメモリアクセスなどに時間がかかり、演算処理部１１の負荷も増大してしまう。そのため、アドレス変換テーブル制御部２２は、アドレス変換テーブルを用いて、ファイルシステム実行部１３１が管理する論理アドレスと、実際にデータが格納される不揮発性メモリ３上の物理アドレスとを対応付けてデータを管理する。
【００４０】
アドレス変換テーブル制御部２２は、不揮発性メモリ３へのアクセスの通知とともにコマンドの入力をホストＩＦ制御部２１から受ける。その後、物理アドレスの要求がアクセス制御部２４から無ければ、アドレス変換テーブル制御部２２は、受信したコマンドに応じた処理を実行する。
【００４１】
例えば、読み出しのコマンドの場合、アドレス変換テーブル制御部２２は、コマンドで指定された論理アドレスに対応する物理アドレスをアドレス変換テーブルから取得する。そして、アドレス変換テーブル制御部２２は、取得した物理アドレスからのデータの取得をデバイスアクセス制御部２３へ指示する。その後、アドレス変換テーブル制御部２２は、データをデバイスアクセス制御部２３から取得する。そして、アドレス変換テーブル制御部２２は、取得したデータをホストＩＦ制御部２１へ出力する。
【００４２】
また、削除のコマンドの場合、アドレス変換テーブル制御部２２は、コマンドで指定されたデータが格納されている論理アドレスに対応する物理アドレスをアドレス変換テーブルから取得する。そして、アドレス変換テーブル制御部２２は、取得した物理アドレスを含むページの無効をデバイスアクセス制御部２３へ指示する。
【００４３】
ここで、アドレス変換テーブル制御部２２は、上述した不揮発性メモリのデータの書き込みの制限のため、データの消去命令を受けた場合、ブロック単位での消去が行えるようになるまで、削除が指示されたデータを格納しているページを無効にしている。以下では、無効にされたページを「無効ページ」という。
【００４４】
さらに、アドレス変換テーブル制御部２２は、アドレス変換テーブルにおける無効にしたページの論理アドレスに対応した物理アドレスを無効にする。例えば、アドレス変換テーブル制御部２２は、アドレス変換テーブルにおける無効にしたページの論理アドレスに物理アドレス無効のフラグを立てる。他にも、アドレス変換テーブル制御部２２は、アドレス変換テーブルにおける無効にしたページの論理アドレスに、アドレスを「オールｆ」にするなど、予め決められた値を対応付ける等して物理アドレスを無効としてもよい。
【００４５】
また、書き込みコマンドの場合、アドレス変換テーブル制御部２２は、アドレス変換テーブルにおいて書き込み先の論理アドレスを検索して、新規の書き込みか、既に書き込まれているデータの更新かを判定する。
【００４６】
新規の書き込みの場合、アドレス変換テーブル制御部２２は、アドレス変換テーブルの中からデータが書き込まれておらず、且つ無効ページでないページ（以下では、「空きページ」という。）の中から、データを格納する物理アドレスを選択する。次に、アドレス変換テーブル制御部２２は、コマンドで指定された論理アドレスに選択した物理アドレスが対応するようにアドレス変換テーブルに登録する。そして、アドレス変換テーブル制御部２２は、選択した物理アドレスへのデータの書き込みをデバイスアクセス制御部２３へ指示する。
【００４７】
さらに、既に書き込まれているデータの更新の場合、アドレス変換テーブル制御部２２は、空きページの中から、データを格納する物理アドレスを選択する。次に、アドレス変換テーブル制御部２２は、コマンドで指定された論理アドレスに選択した物理アドレスが対応するようにアドレス変換テーブルに登録する。そして、アドレス変換テーブル制御部２２は、選択した物理アドレスへのデータの書き込みをデバイスアクセス制御部２３へ指示する。さらに、アドレス変換テーブル制御部２２は、コマンドで指定された論理アドレスに対応する物理アドレスをアドレス変換テーブルから取得する。そして、アドレス変換テーブル制御部２２は、取得した物理アドレスを含むページの無効をデバイスアクセス制御部２３へ指示する。これにより、更新される前のデータが格納されていたページは無効となる。
【００４８】
さらに、ＮＡＮＤデバイスなどの不揮発性メモリでは、データの消去及び更新におけるアドレス変換テーブル制御部２２によるページの無効化により、無効ページが増えていき、データの書き込みができる空きページが減少してしまう。そこで、アドレス変換テーブル制御部２２は、無効ページのデータを消去して空きページとするために無効ページを同じブロックに集め、その後、データの消去を行う。この処理は、ガベージコレクションと呼ばれることがある。ガベージコレクションでは、アドレス変換テーブル制御部２２は、無効ページの多いブロックを抽出し、抽出したブロックに存在する有効なデータを別のブロックの空きページに移動する。これにより、抽出されたブロックのページは、全て無効ページとなる。そして、アドレス変換テーブル制御部２２は、全てのページが無効ページとなったブロックのデータの消去を行う。これにより、データの消去が行われたブロックのページは全て空きページとなり、アドレス変換テーブル制御部２２は、抽出したブロックの全てのページに対して新たにデータを書き込むことができるようになる。
【００４９】
アドレス変換テーブル制御部２２は、アクセス制御部２４がデータの移動と判定した場合、物理アドレスの要求をアクセス制御部２４から受ける。このとき、アドレス変換テーブル制御部２２は、データの論理アドレスもアクセス制御部２４から受信する。そして、データの論理アドレスに対応する物理アドレスを、データ変換テーブルから取得する。次に、アドレス変換テーブル制御部２２は、取得した物理アドレスをアクセス制御部２４へ送信する。
【００５０】
その後、アドレス変換テーブル制御部２２は、移動するデータの物理アドレスにデータの移動後の論理アドレスを対応付ける指示をアクセス制御部２４から受ける。そして、アドレス変換テーブル制御部２２は、アクセス制御部２４から受信した物理アドレスと論理アドレスの対応をアドレス変換テーブルへ登録する。
【００５１】
さらに、アドレス変換テーブル制御部２２は、移動したデータの移動前の論理アドレスと移動したデータの物理アドレスとの対応を無効にする指示をアクセス制御部２４から受ける。そして、アドレス変換テーブル制御部２２は、アドレス変換テーブルにおける、移動したデータの移動前の論理アドレスと移動したデータの物理アドレスとの対応を無効にする。例えば、アドレス変換テーブル制御部２２は、アドレス変換テーブルにおいて、移動前の論理アドレスに物理アドレスが有効であることを示すフラグを立てる。
【００５２】
デバイスアクセス制御部２３は、データの読み出し命令、書き込み命令又はページの無効命令などを、対象のデータの物理アドレスとともにアドレス変換テーブル制御部２２から受ける。
【００５３】
そして、デバイスアクセス制御部２３は、データの読み出しの場合、不揮発性メモリ３の指定された物理アドレスからデータを読み出し、アドレス変換テーブル制御部２２へ送信する。また、データの書き込みの場合、デバイスアクセス制御部２３は、不揮発性メモリ３の指定された物理アドレスに対してデータを書き込む。また、ページの無効命令の場合、デバイスアクセス制御部２３は、指定された物理アドレスに対応するページを無効にする。
【００５４】
また、デバイスアクセス制御部２３は、ブロックの指定とともにデータの消去命令をアドレス変換テーブル制御部２２から受ける。そして、デバイスアクセス制御部２３は、指定されたブロックに含まれる全てのページのデータを消去する。
【００５５】
図２は、実施例に係る情報処理装置のハードウェア構成の一例を示す図である。本実施例に係る情報処理装置は、図２に示すように、ＣＰＵ（Central  Processing  Unit）５０１、メモリコントロールユニット５０２、ＩＯユニット５０３、メインメモリ５０４、ＩＯアダプタ５０５〜５０７及び補助記憶装置５０８を有している。
【００５６】
補助記憶装置５０８は、例えば、ハードディスクや不揮発性メモリなどである。補助記憶装置５０８は、例えば、図１に示す不揮発性メモリ３の機能を実現する。
【００５７】
ＣＰＵ５０１は、メモリコントロールユニット５０２に接続している。そして、メモリコントロールユニット５０２は、メインメモリ５０４及びＩＯユニット５０３と接続している。
【００５８】
ＣＰＵ５０１、メモリコントロールユニット５０２及びメインメモリ５０４は、例えば、図１に示した主制御部１における演算処理部１１やＩＦ制御部１２の機能を実現する。また、ＣＰＵ５０１は、補助記憶装置５０８に格納されている各種プログラムを読み出して、メインメモリ５０４上に展開し、ＯＳ１３やアプリケーション１４の機能を実現するプロセスを生成し実行する。
【００５９】
ＩＯユニット５０３は、ＭＰＵ（Micro  Processing  Unit）５１０を有している。また、ＩＯユニット５０３は、メモリコントロールユニット５０２と接続され、データの送受信を行う。また、ＩＯユニット５０３は、ＩＯアダプタ５０５〜５０７に接続されている。そして、デバイス制御部２は、ＩＯアダプタ５０５を介して補助記憶装置５０８と接続されている。
【００６０】
ＩＯユニット５０３及びＩＯアダプタ５０７は、例えば、図１に示すホストＩＦ制御部２１、アドレス変換テーブル制御部２２、デバイスアクセス制御部２３及びアクセス制御部２４の機能を実現する。例えば、ＭＰＵ５１０によって、各機能を実現する処理が実行される。
【００６１】
さらに、ＩＯユニット５０３は、例えば、ＩＯアダプタ５０６を介してＬＡＮ（Local  Area  Network）５０９に接続している。
【００６２】
ここで、図３及び図４を参照して、本実施例に係る情報処理装置によるデータの移動における論理アドレスと物理アドレスとの関係について説明する。図３は、データの移動前の物理アドレスと論理アドレスとの関係を示す図である。図４は、データの移動後の物理アドレスと論理アドレスとの関係を示す図である。図３及び図４では、ファイルシステム実行部１３１が論理アドレスを用いて管理する管理領域を、ファイルシステム１３３として表している。
【００６３】
ここでは、以下のような処理が行われた場合で説明する。すなわち、演算処理部１１は、不揮発性メモリ３に格納されているデータ（以下では、「元データ」という。）を用いて演算処理部１１が演算処理を行う。そして、演算処理部１１は、処理中に更新が行われたデータを一時的にファイルシステム１３３に格納し、処理完了後に更新データを正式にファイルシステム１３３に格納しなおす。以下では、このような処理を「処理完了時のデータの移動処理」という。
【００６４】
図３に示すように、移動前のファイルシステム１３３には、元データ１０１と、更新データ１０２が格納されている。ここで、更新データ１０２は、処理の実行において一時的に格納されている更新データである。そして、図３におけるファイルシステム１３３の縦軸の横に記載されている番号（Ｌ０〜Ｌ７）は論理ブロックを表している。また、ファイルシステム１３３の横軸に記載されている番号（＃０〜＃３）は、論理ページを表している。そして、論理ブロックと論理ページとの組合せで、論理アドレスが表される。ここでは、論理ブロックの番号に続いて論理ページの番号を並べて、Ｌ０−０、Ｌ０−１、・・・、Ｌ７−２、Ｌ７−３として論理アドレスを表す。
【００６５】
図３の不揮発性メモリ３は、記憶領域の状態を模式的に表している。移動前の不揮発性メモリ３には、元データ１０５が格納されており、さらに更新データ１０６が一時的に格納されている。また、不揮発性メモリ３の中の「×」が付加されているページは無効ページを表している。そして、図３における不揮発性メモリ３の縦軸の横に記載されている番号（Ｐ０〜Ｐ７）は物理ブロックを表している。また、不揮発性メモリ３の横軸に記載されている番号（＃０〜＃３）は、物理ページを表している。そして、物理ブロックと物理ページとの組合せで、物理アドレスが表される。ここでは、物理ブロックの番号に続いて物理ページの番号を並べて、Ｐ０−０、Ｐ０−１、・・・、Ｐ７−２、Ｐ７−３として物理アドレスを表す。
【００６６】
アドレス変換テーブル２２０は、図３に示すように、論理アドレスに対応させて物理アドレスが登録されている。図３では、物理アドレス１０３が元データ１０５の物理アドレスを表している。そして、物理アドレス１０３に対応する論理アドレスは、ファイルシステム１３３における元データ１０１が格納されている論理アドレスとなっている。また、物理アドレス１０４が更新データ１０６の物理アドレスを表している。そして、物理アドレス１０４に対応する論理アドレスは、ファイルシステム１３３における、更新データ１０２が格納されている論理アドレスとなっている。すなわち、本実施例に係るアドレス変換テーブルは、ファイルシステム実行部１３１が管理する論理アドレスの一覧を有しており、データが格納されている論理アドレスに対応する不揮発性メモリ３上の物理アドレスが記載されている。
【００６７】
図３の状態で、アクセス制御部２４は、ファイルシステム１３３に一時的に格納されている更新データ１０２の、領域１０７で示される論理アドレスへの移動を検出する。
【００６８】
そして、アクセス制御部２４は、更新データ１０２の物理アドレスをアドレス変換テーブル制御部２２へ要求する。アドレス変換テーブル制御部２２は、アドレス変換テーブル２２０から更新データ１０２が格納されている論理アドレスに対応する物理アドレスを取得する。この場合、更新データ１０２が格納されている論理アドレスはＬ６−０〜Ｌ７−１であるので、アドレス変換テーブル２２０は、論理アドレスＬ６−０〜Ｌ７−１をアドレス変換テーブル２２０から検索する。そして、アドレス変換テーブル制御部２２は、論理アドレスＬ６−０〜Ｌ７−１に対応する物理アドレス１０４を取得する。そして、アドレス変換テーブル制御部２２は、物理アドレス１０４で示される物理アドレスＰ２−２〜Ｐ３−３をアクセス制御部２４へ送信する。
【００６９】
アクセス制御部２４は、物理アドレスＰ２−２〜Ｐ３−３をアドレス変換テーブル制御部２２から取得する。そして、アクセス制御部２４は、ファイルシステム１３３の領域１０７の論理アドレスＬ３−０〜Ｌ４−１に、物理アドレスＰ２−２〜Ｐ３−３を対応付けることをアドレス変換テーブル制御部２２に通知する。
【００７０】
アドレス変換テーブル制御部２２は、論理アドレスＬ３−０〜Ｌ４−１に、物理アドレスＰ２−２〜Ｐ３−３を対応付ける指示をアクセス制御部２４から受ける。そして、アドレス変換テーブル制御部２２は、図４のように、アドレス変換テーブル２２０における論理アドレスＬ３−０〜Ｌ４−１に対応する欄に物理アドレスＰ２−２〜Ｐ３−３を登録する。この場合、移動後の論理アドレスに対応する物理アドレス１０９に変更は無いので、物理アドレス１０９は、更新データ１０６に対応している。すなわち、不揮発性メモリ３の中ではデータの移動は発生しない。一方、図３の物理アドレス１０４と図４の物理アドレス１０９では対応する論理アドレスが変化しており、ファイルシステム１３３の中では、図４のように更新データ１０８のようにデータが移動している。
【００７１】
さらに、アクセス制御部２４は、移動前の物理アドレス１０４と論理アドレスとの対応の無効の指示をアドレス変換テーブル制御部２２へ通知する。アドレス変換テーブル制御部２２は、移動前の物理アドレス１０４と論理アドレスとの対応の無効の指示を受けて、図４に示すように、アドレス変換テーブル２２０の欄２２１に登録されていた論理アドレスに対応付けされた物理アドレスを無効化する。
【００７２】
次に、図５及び図６を参照して、本実施例におけるデータの移動によるバスの使用について説明する。図５は、データの移動前の情報処理装置におけるデータの状態を示す概略図である。また、図６は、データの移動後の情報処理装置におけるデータの状態を示す概略図である。図５及び図６は、処理完了時のデータの移動処理を行う場合を表している。ここでは、一時的に不揮発性メモリ３に格納された更新データと処理後の確定した更新データは同じものとして説明する。
【００７３】
図５に示す不揮発性メモリ３の中には、一時的に格納されている更新データ３０１が配置されている。そして、処理完了後、ＩＯユニット５０３は、アドレス変換テーブル上の更新データ３０１の物理アドレスに対する論理アドレスの対応関係のみを変更する。すなわち、ＩＯユニット５０３は、不揮発性メモリ３に格納されている更新データ３０１の移動を行わない。また、ＩＯユニット５０３とメインメモリ５０４とのデータの移動も発生しない。この場合、処理完了後には、図６の状態となるが、更新データ３０２は図５の更新データ３０１と同じデータであり、図５の状態と変化は無い。
【００７４】
この処理では、ＩＯユニット５０３がアドレス変換テーブルを書き換えるだけなので、不揮発性メモリ３とＩＯユニット５０３との間にデータの読み出しや書き込みの処理６０１は発生しない。また、ＩＯユニット５０３とメモリコントロールユニット５０２との間にデータの読み出しや書き込みの処理６０２も発生しない。そのため、ＣＰＵ５０１、メモリコントロールユニット５０２及びＩＯユニット５０３間では、データの移動によるアクセスが発生しない。すなわち、ＩＯユニット５０３によるバス５１１の使用を抑制できる。
【００７５】
次に、図７を参照して、データの移動が発生した場合の情報処理装置１００の処理について説明する。図７は、実施例に係る情報処理装置におけるデータの移動が発生した場合の処理のフローチャートである。図７の左側のフローは主制御部１の処理を表している。また、図７の右側のフローはデバイス制御部２の処理を表している。
【００７６】
演算処理部１１は、ファイルシステム実行部１３１の管理領域上におけるデータの移動を行う（ステップＳ１）。この場合、演算処理部１１は、ドライバ実行部１３２を用いて、読み出し及び書き込みのコマンド、移動命令のコマンド、ＳＷＡＰコマンド又は情報処理装置の専用のテーブル書き換えの命令のコマンドなどをデバイス制御部２へ出力する。
【００７７】
その後、主制御部１は、デバイス制御部２の処理が完了するまで待機する（ステップＳ２）。
【００７８】
そして、ファイルシステム実行部１３１は、デバイス制御部２からの完了通知を受け取った後、データの移動によるデータを格納する論理アドレスの変更に従って自己が管理するファイルシステムを更新する（ステップＳ３）。
【００７９】
アクセス制御部２４は、主制御部１からのコマンドを受けて、受信したコマンドの種類、コマンドの前後関係及びコマンドの内容などから、データの移動を検出する（ステップＳ１１）。データの移動を検出すると、アクセス制御部２４は、移動するデータが格納されている物理アドレスをアドレス変換テーブル制御部２２に要求する。
【００８０】
そして、アドレス変換テーブル制御部２２は、移動するデータが格納されている物理アドレスの要求をアクセス制御部２４から受ける。そして、アドレス変換テーブル制御部２２は、アドレス変換テーブル内でデータの移動元の論理アドレスを検索する（ステップＳ１２）。アドレス変換テーブル制御部２２は、アドレス変換テーブルから取得した移動するデータの物理アドレスをアクセス制御部２４へ送信する。
【００８１】
アクセス制御部２４は、移動するデータの物理アドレスをアドレス変換テーブル制御部２２から取得する（ステップＳ１３）。
【００８２】
そして、アクセス制御部２４は、移動するデータの物理アドレスと移動先の論理アドレスとの対応付けをアドレス変換テーブル制御部２２に指示する。アドレス変換テーブル制御部２２は、アクセス制御部２４からの指示を受けて、アドレス変換テーブルにおける移動するデータの物理アドレスと移動先の論理アドレスとの対応付けを行う（ステップＳ１４）。
【００８３】
さらに、アクセス制御部２４は、移動するデータの物理アドレスと移動元の論理アドレスとの対応の無効化をアドレス変換テーブル制御部２２に指示する。アドレス変換テーブル制御部２２は、アクセス制御部２４からの指示を受けて、アドレス変換テーブルにおける移動するデータの物理アドレスと移動元の論理アドレスとの対応を無効化する（ステップＳ１５）。
【００８４】
そして、アドレス変換テーブル制御部２２は、ホストＩＦ制御部２１を介して演算処理部１１へ完了通知を送信する（ステップＳ１６）。
【００８５】
ここで、従来技術によるデータの移動と本実施例に係る情報処理装置１００によるデータの移動とを比較する。
【００８６】
図８は、従来の情報処理装置の一例のブロック図である。ここでは、従来技術に係る情報処理装置として、本実施例に係る情報処理装置１００からアクセス制御部２４の機能を除いた構成を有している情報処理装置を例に説明する。
【００８７】
従来の情報処理装置７００の主制御部７１は、本実施例における主制御部１と同様の機能を有する。また、従来の情報処理装置７００のデバイス制御部７２におけるホストＩＦ制御部７２１とデバイスアクセス制御部７２３は、本実施例におけるホストＩＦ制御部２１とデバイスアクセス制御部２３と同様の機能を有する。
【００８８】
ただし、アドレス変換テーブル制御部７２２は、データの移動においては、本実施例のようにアドレス変換テーブルの書き換えだけではなく、不揮発性メモリ３からのデータの読み出し及び読み出したデータの不揮発性メモリ３への書き込みを行う。
【００８９】
不揮発性メモリ７３は、本実施例に係る不揮発性メモリ３と同様の機能を有する。
【００９０】
また、従来の情報処理装置のハードウェア構成は、本実施例に係る情報処理装置と同様に図２に示すハードウェア構成を有するものとする。
【００９１】
ここで、図９を参照して、不揮発性メモリを補助記憶装置として、従来技術を用いてデータの移動を行った場合の、論理アドレスと物理アドレスとの関係について説明する。図９は、従来の情報処理装置におけるデータの移動による物理アドレスと論理アドレスとの関係を説明するための図である。図９は、図３と同様の状態から従来の情報処理装置がデータ移動を行った後の物理アドレスと論理アドレスとの関係を示している。図３は、本実施例における物理アドレスと論理アドレスとを示しているが、ここでは、従来の情報処理装置が図３と同様の状態にあるものとして説明する。すなわち、従来の情報処理装置が、図３おける更新データ１０２を領域１０７に移動する場合を例に説明する。アドレス変換テーブル７２０は、従来の情報処理装置におけるアドレス変換テーブルである。また、図９では、ファイルシステム実行部７３１が論理アドレスを用いて管理する管理領域を、ファイルシステム７３３として表している。
【００９２】
図９に示すように、図３の更新データ１０２は、ファイルシステム７３３における更新データ１１０の位置に移動させられる。この時、図３の更新データ１０６は、一旦読み出される。そして、図９の更新データ１１１のように不揮発性メモリ７３上の空きページに再度書き込まれる。そして、読み出された領域は、図９の領域１１２のように無効ページとなる。
【００９３】
そして、アドレス変換テーブル７２０では、移動元の論理アドレスと領域１１２の物理アドレスとの対応は無効にされ、移動先の更新データ１１０の論理アドレスと移動された更新データ１１１の物理アドレス１１３とが対応付けられている。
【００９４】
このように、従来の情報処理装置では、不揮発性メモリの中に無効ページが生成されてしまう。この点、本実施例に係る情報処理装置によれば、データ移動時に不揮発性メモリ内でのデータの移動が発生しないため、不揮発性メモリの中の無効ページの生成を抑えることができる。このため、従来の情報処理装置に比べて、データの書き込みができる空きページが減少を軽減することができる。
【００９５】
次に、図１０〜図１４を参照して、不揮発性メモリを補助記憶装置とし、従来技術を用いてデータの移動を行った場合のバスの使用について説明する。図１０は、メインメモリ上に更新データを一旦格納する従来技術を用いてデータの移動を行う場合の処理途中のデータの状態を示す概略図である。また、図１１は、メインメモリ上に更新データを一旦格納する従来技術を用いてデータの移動を行う場合の処理完了後のデータの状態を示す概略図である。さらに、図１２は、一時退避領域を使用する従来技術を用いてデータの移動を行う場合の処理途中データの状態を示す概略図である。また、図１３は、一時退避領域を使用する従来技術を用いてデータの移動を行う場合の処理完了後のデータの状態を示す概略図である。
【００９６】
図１０及び図１１は、図５の状態から従来技術により処理完了時のデータの移動処理を実行する場合の情報処理装置におけるデータの状態である。具体的には、ＩＯユニット５０３は、演算処理部１１による演算処理完了時に、不揮発性メモリ７３に一時的に格納されている更新データをメインメモリ５０４上に移し、その後、確定した更新データとして不揮発性メモリ７３に再度格納する処理を行っている。
【００９７】
この場合、ＩＯユニット５０３は、図１０に示すように、不揮発性メモリ７３に一時的に格納されている更新データ３０３を読み出し、更新データ５４１としてメインメモリ５０４に格納する。これにより、不揮発性メモリ７３からメインメモリ５０４へのデータの移動処理６０３が発生する。すなわち、移動処理６０３により、バス５１１を経由するＩＯユニット５０３を介したメモリコントロールユニット５０２からＩＯユニット５０３へのアクセスが発生する。
【００９８】
その後、ＩＯユニット５０３は、図１１に示すように、メインメモリ５０４上の更新データ５４１を読み出し、更新データ３０４として不揮発性メモリ７３に格納する。さらに、ＩＯユニット５０３は、図１０の更新データ３０３が格納されていた領域３０５に含まれるページを無効化する。これにより、メインメモリ５０４から不揮発性メモリ７３へのデータの移動処理６０４が発生する。すなわち、移動処理６０４により、ＩＯユニット５０３とメインメモリ５０４との間で、バス５１１を経由するアクセスが発生する。さらに、ＩＯユニット５０３と不揮発性メモリ７３との間では、更新データの読み出し及び書き込み処理、並びに、ページの無効化処理が行われる。
【００９９】
このように、従来技術では、演算処理部７１１が更新データの移動を行なう場合、ＩＯユニット５０３とメインメモリ５０４との間で更新データの移動が発生し、バス５１１を経由するアクセスが発生してしまう。これに対して、本実施例に係る情報処理装置１００では、演算処理部１１が更新データの移動を行なう場合、上述したようにバス５１１を経由するアクセスの発生は抑制される。すなわち、本実施例に係る情報処理装置１００では、従来技術に比べて、移動処理６０３及び６０４によるメモリコントロールユニット５０２及びＩＯユニット５０３間のバス５１１を経由するアクセスを減らすことができ、バス５１１の使用を抑制することができる。
【０１００】
さらに、本実施例に係る情報処理装置１００では、演算処理部１１が更新データの移動を行なう場合、ＩＯユニット５０３と不揮発性メモリ３との間での更新データの読み出し及び書き込み処理、並びに、ページの無効化処理が行われない。つまり、本実施例に係る情報処理装置１００では、従来技術に比べて、ＩＯユニット５０３と不揮発性メモリ３との間の更新データの読み出し及び書き込み処理、並びに、ページの無効化処理による不揮発性メモリ３へのアクセスを減らすことができる。すなわち、本実施例に係る情報処理装置１００は、従来技術に比べて、不揮発性メモリ３へのアクセス性能を向上させることができる。
【０１０１】
次に、図１２及び図１３を参照して、他の従来技術を用いてデータの移動を行う場合について説明する。図１２及び図１３は、図５の状態から従来技術を用いて処理完了時のデータの移動処理を実行する場合の情報処理装置におけるデータの状態である。具体的には、ＩＯユニット５０３は、演算処理部１１による演算処理完了時に、不揮発性メモリ７３に一時的に格納された更新データをＩＯユニット５０３上の一時退避領域に移す。その後、ＩＯユニット５０３は、一時退避領域に格納した更新データを、確定した更新データとして不揮発性メモリ７３に再度格納する。
【０１０２】
この場合、ＩＯユニット５０３は、図１２に示すように、不揮発性メモリ７３に一時的に格納されている更新データ３０６を読み出し、更新データ５３１としてＩＯユニット５０３の一時退避領域に格納する。これにより、不揮発性メモリ７３からＩＯユニット５０３へのデータの移動処理６０５が発生する。
【０１０３】
その後、ＩＯユニット５０３は、図１３に示すように、一時退避領域上の更新データ５３１を読み出し、更新データ３０７として不揮発性メモリ７３に格納する。これにより、ＩＯユニット５０３から不揮発性メモリ７３へのデータの移動処理６０６が発生する。さらに、ＩＯユニット５０３は、図１２の更新データ３０６が格納されていた領域３０８に含まれるページを無効化する。これにより、不揮発性メモリ７３には、ページの無効化によるＩＯユニット５０３からのアクセスが発生する。
【０１０４】
このＩＯユニット５０３の一時退避領域を用いる従来技術では、演算処理部７１１が更新データの移動を行なう場合に、バス５１１を経由するアクセスは発生しない。しかし、ＩＯユニット５０３と不揮発性メモリ７３との間で移動処理６０５及び６０６、並びに、無効化処理が発生し、不揮発性メモリ７３へのアクセスが発生してしまう。これに対して、本実施例に係る情報処理装置１００では、演算処理部１１が更新データの移動を行なう場合、ＩＯユニット５０３と不揮発性メモリ３との間での更新データの読み出し及び書き込み処理、並びに、ページの無効化処理が行われない。つまり、本実施例に係る情報処理装置１００では、ＩＯユニット５０３の一時退避領域を用いる従来技術に比べて、不揮発性メモリ３へのアクセスを減らすことができる。すなわち、本実施例に係る情報処理装置１００は、ＩＯユニット５０３の一時退避領域を用いる従来技術に比べて、不揮発性メモリ３へのアクセス性能を向上させることができる。
【０１０５】
さらに、図１４を参照して、メインメモリ５０４上に更新データを一旦格納してデータの移動を行う従来技術のデータの移動処理について説明する。図１４は、メインメモリ上に更新データを一旦格納する従来技術のデータの移動処理のフローチャートである。ここでは、データを読み出した上で読み出したデータを書き込むことで、データの移動を行う場合を説明する。
【０１０６】
演算処理部７１１は、ファイルシステム実行部７３１に対してデータの読み出し命令を通知する（ステップＳ１０１）。以下では、読み出しの対象データを「読み出しデータ」という。この場合、演算処理部７１１は、ドライバ実行部７３２を用いて、読み出しのコマンドをデバイス制御部７２へ出力する。ファイルシステム実行部７３１は、指定された論理アドレスからのデータの読み出しを行う。演算処理部７１１は、データの読み出し命令を通知した後、デバイス制御部７２から読み出しデータを受信するまで待機する。
【０１０７】
続いて、演算処理部７１１は、ファイルシステム実行部７３１に対してデータの書き込み命令を通知する（ステップＳ１０２）。以下では、書き込みの対象データを「書き込みデータ」という。この場合、演算処理部７１１は、ドライバ実行部７３２を用いて、書き込みのコマンドをデバイス制御部７２へ出力する。ファイルシステム実行部７３１は、読み出し元の論理アドレスとは異なる論理アドレスへの読み出したデータの書き込みを行う。主制御部７１は、データの書き込み命令を通知した後、デバイス制御部７２から完了通知を受信するまで待機する。
【０１０８】
そして、ファイルシステム実行部７３１は、デバイス制御部７２からの完了通知を受け取った後、データを格納する論理アドレスの変更により自己が管理するファイルシステムを更新する（ステップＳ１０３）。
【０１０９】
アドレス変換テーブル制御部７２２は、主制御部７１からの読み出しのコマンドを受けて、アドレス変換テーブルの中から読み出しデータの論理アドレスを検索する（ステップＳ１１１）。
【０１１０】
そして、アドレス変換テーブル制御部７２２は、読み出しデータの格納先の物理アドレスを取得する（ステップＳ１１２）。
【０１１１】
次に、アドレス変換テーブル制御部７２２は、不揮発性メモリ７３における取得した物理アドレスから読み出しデータを読み出す（ステップＳ１１３）。
【０１１２】
そして、アドレス変換テーブル制御部７２２は、読み出しデータを主制御部７１へ送信する（ステップＳ１１４）。
【０１１３】
アドレス変換テーブル制御部７２２は、主制御部７１からの書き込みのコマンドを受けて、アドレス変換テーブルの中から書き込みデータの書き込み先の論理アドレスを検索する（ステップＳ１２１）。
【０１１４】
アドレス変換テーブル制御部７２２は、書き込みデータの格納先の物理アドレスを取得する（ステップＳ１２２）。
【０１１５】
そして、アドレス変換テーブル制御部７２２は、指示された書き込みが新規の書き込みか否かを判定する（ステップＳ１２３）。新規の書込みの場合（ステップＳ１２３：肯定）、アドレス変換テーブル制御部７２２は、ステップＳ１２６へ進む。
【０１１６】
これに対して、既にあるデータの更新の場合（ステップＳ１２３：否定）、アドレス変換テーブル制御部７２２は、不揮発性メモリ７３における取得した物理アドレスからデータを読み出す（ステップＳ１２４）。
【０１１７】
そして、アドレス変換テーブル制御部７２２は、読み出したデータを取得した書き込みデータに更新する（ステップＳ１２５）。
【０１１８】
次に、アドレス変換テーブル制御部７２２は、アドレス変換テーブルから空きページの物理アドレスを抽出する（ステップＳ１２６）。
【０１１９】
そして、アドレス変換テーブル制御部７２２は、不揮発性メモリ７３における抽出した物理アドレスの空きページに書き込みデータを書き込む（ステップＳ１２７）。
【０１２０】
また、アドレス変換テーブル制御部７２２は、書き込みデータの書き込み先の論理アドレスと、書き込みデータを書き込んだ物理アドレスとを対応付けてアドレス変換テーブルに登録する（ステップＳ１２８）。
【０１２１】
さらに、アドレス変換テーブル制御部７２２は、更新前のデータを読み出したページを無効化する（ステップＳ１２９）。
【０１２２】
そして、アドレス変換テーブル制御部７２２は、ホストＩＦ制御部７２１を介して演算処理部７１１へ完了通知を送信する（ステップＳ１３０）。
【０１２３】
以上のように、従来技術を用いた場合、図７で示した本実施例に係る情報処理装置１００の処理フローと比較して、読み出しデータの読み出しや送信といった処理を余分に行わなくてはならない。また、従来技術では、本実施例に係る情報処理装置１００に比較して、書込みにおける更新前のデータの読み出し、データの更新、データの書き込み、及びページの無効化といった処理を余分に行わなくてはならない。すなわち、本実施例に係る情報処理装置１００によれば、従来技術と比較して、デバイス制御部２の負荷を軽減することができる。
【０１２４】
次に、図１５を参照して、デバイス制御部７２の一時退避領域に更新データを一旦格納してデータの移動を行う従来技術のデータの移動処理について説明する。図１５は、一時退避領域を用いる従来技術のデータの移動処理のフローチャートである。ここでは、移動命令を用いてデータの移動を行う場合で説明する。
【０１２５】
演算処理部７１１は、ファイルシステム実行部７３１の管理領域上でのデータの移動命令をファイルシステム実行部７３１に対して通知する（ステップＳ２０１）。この場合、演算処理部７１１は、ドライバ実行部７３２を用いて、移動命令のコマンドをデバイス制御部７２へ出力する。
【０１２６】
その後、主制御部７１は、デバイス制御部７２の処理が完了するまで待機する（ステップＳ２０２）。
【０１２７】
そして、ファイルシステム実行部７３１は、デバイス制御部７２からの完了通知を受け取った後、データの移動によるデータを格納する論理アドレスの変更に従って自己が管理するファイルシステムを更新する（ステップＳ２０３）。
【０１２８】
アドレス変換テーブル制御部７２２は、主制御部７１からの移動命令のコマンドを受けて、アドレス変換テーブルの中から書き込みデータの書き込み先の論理アドレスを検索する（ステップＳ２１１）。
【０１２９】
アドレス変換テーブル制御部７２２は、データの格納先の物理アドレスを取得する（ステップＳ２１２）。
【０１３０】
そして、アドレス変換テーブル制御部７２２は、不揮発性メモリ７３における取得した物理アドレスからデータを読み出す（ステップＳ２１３）。
【０１３１】
そして、アドレス変換テーブル制御部７２２は、読み出したデータを取得したデータに更新する（ステップＳ２１４）。
【０１３２】
次に、アドレス変換テーブル制御部７２２は、アドレス変換テーブルから空きページの物理アドレスを抽出する（ステップＳ２１５）。
【０１３３】
そして、アドレス変換テーブル制御部７２２は、不揮発性メモリ７３における抽出した物理アドレスの空きページに書き込みデータを書き込む（ステップＳ２１６）。
【０１３４】
また、アドレス変換テーブル制御部７２２は、書き込みデータの書き込み先の論理アドレスと、書き込みデータを書き込んだ物理アドレスとを対応付けてアドレス変換テーブルに登録する（ステップＳ２１７）。
【０１３５】
さらに、アドレス変換テーブル制御部７２２は、更新前のデータを読み出したページを無効化する（ステップＳ２１８）。
【０１３６】
そして、アドレス変換テーブル制御部７２２は、ホストＩＦ制御部７２１を介して演算処理部７１１へ完了通知を送信する（ステップＳ２１９）。
【０１３７】
以上のように、一時退避領域を有する従来技術を用いた場合でも、図７で示した本実施例に係る情報処理装置１００と比較して、更新前のデータの読み出し、データの更新、データの書き込み、及びページの無効化といった処理を余分に行わなくてはならない。すなわち、本実施例に係る情報処理装置１００によれば、一時退避領域を有する従来技術と比較しても、デバイス制御部２の負荷を軽減することができる。
【０１３８】
以上に説明したように、本実施例に係る情報処理装置は、コマンドの種類、コマンドの前後関係及びコマンドの内容から、データの移動を判定し、アドレス変換テーブル上の論理アドレスと物理アドレスとの対応関係を書き換える。すなわち、本実施例に係る情報処理装置では、データの移動の場合に、不揮発性メモリ内でのデータの移動を行わない。これにより、不揮発性メモリとメインメモリとの間のアクセスによるシステムバスの使用を軽減することができ、システムの性能を向上させることができる。
【０１３９】
さらに、本実施例に係る情報処理装置は、アドレス変換テーブル上での書き換えのみでデータの移動を行うので、データの移動のスピードを向上させることができる。
【０１４０】
また、本実施例に係る情報処理装置によれば、不揮発性メモリへの読み出し及び書き込みの処理を削減することができ、不揮発性メモリへのアクセス性能を向上させることができる。また、不揮発性メモリへのアクセス回数の低減により、不揮発性メモリの劣化を抑制することができる。
【０１４１】
さらに、以上の説明では、図２に示したハードウェア構成を有する情報処理装置を例として説明したが、他のハードウェア構成でも同様の機能を実現することはできる。
【０１４２】
図１６は、ハードウェア構成の第１の変形例の図である。また、図１７は、ハードウェア構成の第２の変形例の図である。
【０１４３】
例えば、図１６の第１の変形例のように、ＣＰＵにメモリが接続されている構成でも実施例で説明した各機能を実現することはできる。
【０１４４】
また、例えば、図１７の第２の変形例のように、多数のＣＰＵが設けられ、相互に接続されているようなHigh  Performance  Computing（ＨＰＣ）のシステムにおいても、実施例で説明した各機能を実現することができる。
【符号の説明】
【０１４５】
１  主制御部
２  デバイス制御部
３  不揮発性メモリ
１１  演算処理部
１２  ＩＦ制御部
１３  ＯＳ実行部
１４  アプリケーション実行部
２１  ホストＩＦ制御部
２２  アドレス変換テーブル制御部
２３  デバイスアクセス制御部
２４  アクセス制御部
７１  主制御部
７２  デバイス制御部
７３  不揮発性メモリ
１００  情報処理装置
１３１  ファイルシステム実行部
１３２  ドライバ実行部
５０１  ＣＰＵ
５０２  メモリコントロールユニット
５０３  ＩＯユニット
５０４  メインメモリ
５０５〜５０７  ＩＯアダプタ
５０８  補助記憶装置
５０９  ＬＡＮ
５１０  ＭＰＵ
７００  情報処理装置
７１１  演算処理部
７１２  ＩＦ制御部
７１３  ＯＳ実行部
７１４  アプリケーション実行部
７２１  ホストＩＦ制御部
７２２  アドレス変換テーブル制御部
７２３  デバイスアクセス制御部
【図１】
2014203405.tif 000003
【図２】
2014203405.tif 000004
【図３】
2014203405.tif 000005
【図４】
2014203405.tif 000006
【図５】
2014203405.tif 000007
【図６】
2014203405.tif 000008
【図７】
2014203405.tif 000009
【図８】
2014203405.tif 000010
【図９】
2014203405.tif 000011
【図１０】
2014203405.tif 000012
【図１１】
2014203405.tif 000013
【図１２】
2014203405.tif 000014
【図１３】
2014203405.tif 000015
【図１４】
2014203405.tif 000016
【図１５】
2014203405.tif 000017
【図１６】
2014203405.tif 000018
【図１７】
2014203405.tif 000019