(57)【要約】【課題】情報処理システムにおいてデータの転送速度を向上させる。【解決手段】アドレス変換情報保持部は、論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報の中から選択された一部のエントリを保持する。アドレス変換情報取得部は、ホストコンピュータにより指定された論理アドレスを含むエントリがアドレス変換情報保持部に保持されていない場合には保持されていないエントリをホストコンピュータから取得してアドレス変換情報保持部に保持させる。アドレス変換部は、アドレス変換情報保持部に保持されたエントリに基づいて指定された論理アドレスを物理アドレスに変換する。データ転送部は、変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行する。【選択図】図７
2015036905.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部と、
ホストコンピュータにより指定された前記論理アドレスを含む前記エントリが前記アドレス変換情報保持部に保持されていない場合には当該保持されていないエントリを前記ホストコンピュータから取得して前記アドレス変換情報保持部に保持させるアドレス変換情報取得部と、
前記アドレス変換情報保持部に保持された前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換するアドレス変換部と、
前記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送部と
を具備する記憶制御装置。
【請求項２】
前記エントリの各々について前記エントリに対応する前記論理アドレスに対するアクセス頻度を保持するアクセス頻度保持部をさらに具備し、
前記データ転送部は、前記アクセス頻度が高い前記エントリを優先して前記一部のエントリを選択して前記アドレス変換情報保持部に保持させる処理を含む初期化処理をさらに実行する請求項１記載の記憶制御装置。
【請求項３】
前記データ転送部は、前記記憶装置から前記エントリの全てを取得して前記ホストコンピュータに転送する処理をさらに含む前記初期化処理を実行する
請求項２記載の記憶制御装置。
【請求項４】
前記ホストコンピュータにより指定されるアドレスは前記物理アドレスまたは前記論理アドレスであり、
前記アドレス変換部は、前記ホストコンピュータにより指定されたアドレスが前記論理アドレスである場合には前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換し、
前記データ転送部は、前記ホストコンピュータにより指定された物理アドレスまたは前記変換された物理アドレスを用いて前記転送データを転送する
請求項１記載の記憶制御装置。
【請求項５】
前記ホストコンピュータにより指定されるアドレスは前記論理アドレスおよび前記物理アドレスと前記論理アドレスとのいずれかであり、
前記アドレス変換部は、前記ホストコンピュータにより指定されたアドレスが前記論理アドレスおよび前記物理アドレスである場合には前記指定された論理アドレスに対応する前記エントリを前記指定された物理アドレスに基づいて更新する
請求項４記載の記憶制御装置。
【請求項６】
前記ホストコンピュータは、前記物理アドレスまたは前記論理アドレスを指定するコマンドと、前記論理アドレスおよび当該論理アドレスに新たに割り当てた前記物理アドレスを示す通知とを前記記憶制御装置に供給し、
前記アドレス変換部は、前記通知が供給された場合には前記通知の示す論理アドレスに対応する前記エントリを前記通知の示す物理アドレスに基づいて更新する
請求項４記載の記憶制御装置。
【請求項７】
論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報を保持する保持部と、
前記記憶装置と前記ホストコンピュータとの間で転送される転送データのデータサイズが所定サイズに満たない場合には前記保持されたエントリに基づいて前記論理アドレスを前記物理アドレスに変換するアドレス変換部と、
前記論理アドレスまたは前記変換された物理アドレスを指定して前記転送データの転送を記憶制御装置に指示する指示部と
を具備するホストコンピュータ。
【請求項８】
前記論理アドレスと当該論理アドレスに新たに割り当てられた物理アドレスとを示す通知を前記記憶制御装置に供給するアドレス変換情報管理部をさらに具備し、
前記保持部は、前記論理アドレスが割り当てられていない前記物理アドレスを空き物理アドレスとしてさらに保持し、
前記アドレス変換部は、前記論理アドレスに物理アドレスが対応付けられていない場合には前記空き物理アドレスを前記論理アドレスに新たに割り当てる
請求項７記載のホストコンピュータ。
【請求項９】
前記アドレス変換部は、前記記憶装置と前記ホストコンピュータとの間で転送される転送データのデータサイズが前記所定サイズに満たず、かつ、前記論理アドレスに前記物理アドレスが対応付けられている場合には前記保持されたエントリに基づいて前記論理アドレスを前記物理アドレスに変換する
請求項７記載のホストコンピュータ。
【請求項１０】
論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報を保持するホストコンピュータと、
前記アドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部と、
ホストコンピュータにより指定された前記論理アドレスを含む前記エントリが前記アドレス変換情報保持部に保持されていない場合には当該保持されていないエントリを前記ホストコンピュータから取得して前記アドレス変換情報保持部に保持させるアドレス変換情報取得部と、
前記アドレス変換情報保持部に保持された前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換するアドレス変換部と、
前記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送部と
を具備する情報処理システム。
【請求項１１】
アドレス変換情報取得部が、論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部に、ホストコンピュータにより指定された前記論理アドレスを含む前記エントリが保持されていない場合には当該保持されていないエントリを前記ホストコンピュータから取得して前記アドレス変換情報保持部に保持させるアドレス変換情報取得手順と、
アドレス変換部が、前記アドレス変換情報保持部に保持された前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換するアドレス変換手順と、
データ転送部が、前記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送手順と
を具備する記憶制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法に関する。詳しくは、アドレス変換を行う記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法に関する。
【背景技術】
【０００２】
従来より、記憶装置の管理においては、論理アドレスを記憶装置の物理アドレスに変換するアドレス変換が行われている。アドレス変換により、汎用性のあるプログラムの設計や不揮発性メモリのウェアレベリングなどを行うことができるためである。アドレス変換においては、通常、論理アドレスと物理アドレスとを対応付けたエントリを複数含むアドレス変換情報が用いられる。このアドレス変換情報のデータサイズは、記憶装置の記憶容量の増大に応じて大きくなる。このため、メモリコントローラなどのアドレス変換装置がアドレス変換情報の全てのエントリを保持する構成では、そのアドレス変換装置のリソースに余裕がなくなるおそれや、リソースの増設によりアドレス変換装置のコストが高くなるおそれがある。
【０００３】
そこで、アドレス変換を行うメモリコントローラが、アドレス変換情報の一部のエントリを保持しておくメモリシステムが提案されている（例えば、特許文献１および特許文献２参照。）。このメモリシステムでは、アドレス変換情報における全エントリがユーザデータとともに不揮発性メモリに予め格納されており、メモリコントローラは、それらの一部のエントリを読み出す。メモリコントローラは、読み出したエントリをメモリコントローラ自身のＲＡＭ（Random Access Memory）に保持しておく。そして、メモリコントローラは、ホストコンピュータにより指定された論理アドレスを含むエントリをＲＡＭ内に保持していれば、そのエントリに基づいてアドレス変換を行う。一方、指定された論理アドレスを含むエントリを保持していなければ、メモリコントローラは、そのエントリを不揮発性メモリから読み出してアドレス変換を行う。論理アドレスを不揮発性メモリの物理アドレスに変換すると、メモリコントローラは、その物理アドレスにアクセスして、不揮発性メモリとの間でユーザデータの転送を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１４２７７４号公報
【特許文献２】特開２００７−２８０３２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の従来技術では、データの転送速度が低下するおそれがある。上述のメモリシステムにおいてメモリコントローラは、アドレス変換情報の不揮発性メモリからの読出しと、ユーザデータの転送と同時に行うことができない。アドレス変換情報およびユーザデータは、いずれも、メモリコントローラと不揮発性メモリとの間のインターフェース（データ線など）を介して転送されるためである。したがって、アドレス変換情報の読出しが生じると、その読出しにかかる遅延時間の分、ユーザデータの転送が遅延する問題がある。
【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、情報処理システムにおいてデータの転送速度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部と、ホストコンピュータにより指定された上記論理アドレスを含む上記エントリが上記アドレス変換情報保持部に保持されていない場合には当該保持されていないエントリを上記ホストコンピュータから取得して上記アドレス変換情報保持部に保持させるアドレス変換情報取得部と、上記アドレス変換情報保持部に保持された上記エントリに基づいて上記指定された論理アドレスを上記物理アドレスに変換するアドレス変換部と、上記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送部とを具備する記憶制御装置、および、その制御方法である。これにより、アドレス変換情報保持部に保持されていないエントリがホストコンピュータから取得され、転送データが転送されるという作用をもたらす。
【０００８】
また、この第１の側面において、前記エントリの各々について前記エントリに対応する前記論理アドレスに対するアクセス頻度を保持するアクセス頻度保持部をさらに具備し、前記データ転送部は、前記アクセス頻度が高い前記エントリを優先して前記一部のエントリを選択して前記アドレス変換情報保持部に保持させる処理を含む初期化処理をさらに実行してもよい。これにより、アクセス頻度が高い上記エントリを優先して一部のエントリが選択されるという作用をもたらす。
【０００９】
また、この第１の側面において、前記データ転送部は、前記記憶装置から前記エントリの全てを取得して前記ホストコンピュータに転送する処理をさらに含む前記初期化処理を実行してもよい。これにより、記憶装置からエントリの全てがホストコンピュータに転送されるという作用をもたらす。
【００１０】
また、この第１の側面において、上記ホストコンピュータにより指定されるアドレスは上記物理アドレスまたは上記論理アドレスであり、上記アドレス変換部は、上記ホストコンピュータにより指定されたアドレスが上記論理アドレスである場合には上記エントリに基づいて上記指定された論理アドレスを上記物理アドレスに変換し、上記データ転送部は、上記ホストコンピュータにより指定された物理アドレスまたは上記変換された物理アドレスを用いて上記転送データを転送してもよい。これにより、ホストコンピュータにより指定された物理アドレス、または、変換された物理アドレスを用いた転送が行われるという作用をもたらす。
【００１１】
また、この第１の側面において、前記ホストコンピュータにより指定されるアドレスは前記論理アドレスおよび前記物理アドレスと前記論理アドレスとのいずれかであり、前記アドレス変換部は、前記ホストコンピュータにより指定されたアドレスが前記論理アドレスおよび前記物理アドレスである場合には前記指定された論理アドレスに対応する前記エントリを前記指定された物理アドレスに基づいて更新してもよい。これにより、指定されたアドレスが論理アドレスおよび物理アドレスである場合には指定された論理アドレスに対応するエントリが指定された物理アドレスに基づいて更新されるという作用をもたらす。
【００１２】
また、この第１の側面において、前記ホストコンピュータは、前記物理アドレスまたは前記論理アドレスを指定するコマンドと、前記論理アドレスおよび当該論理アドレスに新たに割り当てた前記物理アドレスを示す通知とを前記記憶制御装置に供給し、前記アドレス変換部は、前記通知が供給された場合には前記通知の示す論理アドレスに対応する前記エントリを前記通知の示す物理アドレスに基づいて更新してもよい。これにより、論理アドレスおよび論理アドレスに新たに割り当てた物理アドレスを示す通知が供給された場合には通知の示す論理アドレスに対応するエントリが通知の示す物理アドレスに基づいて更新されるという作用をもたらす。
【００１３】
また、本技術の第２の側面は、論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報を保持する保持部と、上記記憶装置と上記ホストコンピュータとの間で転送される転送データのデータサイズが所定サイズに満たない場合には上記保持されたエントリに基づいて上記論理アドレスを上記物理アドレスに変換するアドレス変換部と、上記論理アドレスまたは上記変換された物理アドレスを指定して上記転送データの転送を記憶制御装置に指示する指示部とを具備するホストコンピュータである。これにより、論理アドレス、または、変換された物理アドレスを指定した転送データの転送が行われるという作用をもたらす。
【００１４】
また、この第２の側面において、前記論理アドレスと当該論理アドレスに新たに割り当てられた物理アドレスとを示す通知を前記記憶制御装置に供給するアドレス変換情報管理部をさらに具備し、前記保持部は、前記論理アドレスが割り当てられていない前記物理アドレスを空き物理アドレスとしてさらに保持し、前記アドレス変換部は、前記論理アドレスに物理アドレスが対応付けられていない場合には前記空き物理アドレスを前記論理アドレスに新たに割り当ててもよい。これにより、論理アドレスに物理アドレスが対応付けられていない場合には空き物理アドレスが論理アドレスに新たに割り当てられ、論理アドレスと当該論理アドレスに新たに割り当てられた物理アドレスとを示す通知が記憶制御装置に供給されるという作用をもたらす。
【００１５】
また、この第２の側面において、前記アドレス変換部は、前記記憶装置と前記ホストコンピュータとの間で転送される転送データのデータサイズが前記所定サイズに満たず、かつ、前記論理アドレスに前記物理アドレスが対応付けられている場合には前記保持されたエントリに基づいて前記論理アドレスを前記物理アドレスに変換してもよい。これにより、転送データのデータサイズが所定サイズに満たず、かつ、論理アドレスに物理アドレスが対応付けられている場合には論理アドレスが物理アドレスに変換されるという作用をもたらす。
【００１６】
また、本技術の第２の側面は、論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報を保持するホストコンピュータと、上記アドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部と、ホストコンピュータにより指定された上記論理アドレスを含む上記エントリが上記アドレス変換情報保持部に保持されていない場合には当該保持されていないエントリを上記ホストコンピュータから取得して上記アドレス変換情報保持部に保持させるアドレス変換情報取得部と、上記アドレス変換情報保持部に保持された上記エントリに基づいて上記指定された論理アドレスを上記物理アドレスに変換するアドレス変換部と、上記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送部とを具備する情報処理システムである。これにより、アドレス変換情報保持部に保持されていないエントリがホストコンピュータから取得され、転送データが転送されるという作用をもたらす。
【発明の効果】
【００１７】
本技術によれば、情報処理システムにおいてデータの転送速度が向上するという優れた効果を奏し得る。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態における情報処理システムの一例を示す全体図である。
【図２】第１の実施の形態におけるホストコンピュータの一構成例を示すブロック図である。
【図３】第１の実施の形態におけるホストコンピュータの機能構成例を示すブロック図である。
【図４】第１の実施の形態における転送コマンドのデータ構成の一例を示す図である。
【図５】第１の実施の形態におけるアドレス変換情報の一例を示す図である。
【図６】第１の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。
【図７】第１の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。
【図８】第１の実施の形態における転送リクエストのデータ構成の一例を示す図である。
【図９】第１の実施の形態におけるアドレス変換情報保持領域およびアドレス変換情報管理テーブル保持領域に保持されるデータの一例を示す図である。
【図１０】第１の実施の形態におけるアクセス頻度情報保持領域に保持されるデータの一例を示す図である。
【図１１】第１の実施の形態における空き物理アドレス情報保持領域に保持されるデータの一例を示す図である。
【図１２】第１の実施の形態における不揮発性メモリの一構成例を示すブロック図である。
【図１３】第１の実施の形態におけるメモリセルアレイの使用状況の一例を示す図である。
【図１４】第１の実施の形態における管理情報領域に保持されるデータの一例を示す図である。
【図１５】第１の実施の形態における物理ページのデータ構成の一例を示す図である。
【図１６】第１の実施の形態におけるホスト側処理の一例を示すフローチャートである。
【図１７】第１の実施の形態におけるホスト側初期化処理の一例を示すフローチャートである。
【図１８】第１の実施の形態におけるコントローラ側処理の一例を示すフローチャートである。
【図１９】第１の実施の形態におけるコントローラ側初期化処理の一例を示すフローチャートである。
【図２０】第１の実施の形態におけるリード制御処理の一例を示すフローチャートである。
【図２１】第１の実施の形態におけるデータ転送処理の一例を示すフローチャートである。
【図２２】第１の実施の形態におけるライト制御処理の一例を示すフローチャートである。
【図２３】第１の実施の形態における空き物理アドレス割当処理の一例を示すフローチャートである。
【図２４】第１の実施の形態における初期化時の情報処理システムの動作を示すシーケンス図の一例である。
【図２５】第１の実施の形態におけるユーザデータのリード時の情報処理システムの動作を示すシーケンス図の一例である。
【図２６】第１の実施の形態におけるリード時のメモリコントローラの動作を示すタイミングチャートの一例である。
【図２７】第２の実施の形態におけるホストコンピュータの機能構成例を示すブロック図である。
【図２８】第２の実施の形態における転送コマンドのデータ構成の一例を示す図である。
【図２９】第２の実施の形態におけるホスト側処理の一例を示すフローチャートである。
【図３０】第２の実施の形態におけるホスト側初期化処理の一例を示すフローチャートである。
【図３１】第２の実施の形態におけるコントローラ側初期化処理の一例を示すフローチャートである。
【図３２】第２の実施の形態におけるリード制御処理の一例を示すフローチャートである。
【図３３】第２の実施の形態におけるライト制御処理の一例を示すフローチャートである。
【図３４】第２の実施の形態における初期化時の情報処理システムの動作を示すシーケンス図の一例である。
【図３５】第２の実施の形態におけるリード時の情報処理システムの動作を示すシーケンス図の一例である。
【発明を実施するための形態】
【００１９】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（ホストコンピュータからアドレス変換情報ページを取得する例）
２．第２の実施の形態（転送ページ数が少ないときにホストコンピュータがアドレス変換を行う例）
【００２０】
＜１．第１の実施の形態＞
［メモリシステムの構成例］
図１は、第１の実施の形態における情報処理システムの一構成例を示す全体図である。この情報処理システムは、ホストコンピュータ１００、メモリコントローラ２００および不揮発性メモリ３００を備える。
【００２１】
ホストコンピュータ１００は、情報処理システム全体を制御するものである。このホストコンピュータ１００は、論理アドレスを指定した転送コマンドや、転送データを生成してメモリコントローラ２００に信号線１０９を介して供給する。また、ホストコンピュータ１００は、メモリコントローラ２００から信号線１０９を介してデータやステータスを受け取る。データは、転送データや管理情報を含む。
【００２２】
ここで、論理アドレスは、メモリコントローラ２００および不揮発性メモリ３００を含むストレージが定義したアドレス空間におけるアドレスである。論理アドレス空間のアクセス単位がページである場合、それぞれのページの論理アドレスは、論理ページアドレスと呼ばれる。
【００２３】
また、転送データは、例えば、ホストコンピュータ１００においてプログラム等により処理されるユーザデータである。管理情報の詳細については、後述する。転送コマンドは、データの転送を行うためのコマンドであり、例えば、データの書込みを指示するライトコマンドや、データの読出しを指示するリードコマンドを含む。ステータスは、転送コマンドの実行結果やメモリコントローラ２００等の状況を通知する情報である。
【００２４】
メモリコントローラ２００は、不揮発性メモリ３００を制御するものである。このメモリコントローラ２００は、ホストコンピュータ１００により指示されたときや、電源投入時などにおいて初期化処理を実行する。この初期化処理においてメモリコントローラ２００は、アドレス変換情報を不揮発性メモリ３００から信号線２０９を介して取得し、ホストコンピュータ１００に転送する。ここで、アドレス変換情報は、論理アドレスを不揮発性メモリ３００の物理アドレスに変換するための情報であり、具体的には、論理アドレスと物理アドレスを対応付けたエントリを複数含む情報である。不揮発性メモリ３００のアクセス単位がページである場合、それぞれのページの物理アドレスは、物理ページアドレスと呼ばれる。
【００２５】
この初期化処理において、メモリコントローラ２００は、そのアドレス変換情報の中から一部のエントリを選択して保持する。全エントリを保持しないのは、前述したように、メモリコントローラ２００のリソースに余裕がなくなるおそれや、メモリコントローラ２００のコストが高くなるおそれがあるためである。
【００２６】
初期化処理の後にホストコンピュータ１００から転送コマンドを受け取ると、メモリコントローラ２００は、保持しているエントリに基づいて、その転送コマンドにより指定された論理アドレスを物理アドレスに変換する。また、指定された論理アドレスを含むエントリを保持していない場合には、メモリコントローラ２００は、そのエントリをホストコンピュータ１００から取得する。このような論理アドレスから物理アドレスに変換する処理をアドレス変換と称する。このアドレス変換により、不揮発性メモリにおいて書込み不良が発生した物理ページへの書込みを排除するための代替処理や、各メモリセルの書込み頻度を平準化するウェアレベリング処理などを行うことができる。
【００２７】
アドレス変換を行うと、メモリコントローラ２００は、変換した物理アドレスを用いて信号線１０９および信号線２０９を介してホストコンピュータ１００と不揮発性メモリ３００との間で転送データの転送を行う。
【００２８】
上述したようにメモリコントローラ２００がアドレス変換情報のエントリをホストコンピュータ１００から信号線１０９を介して取得する構成とすれば、メモリコントローラ２００は、転送データの転送中にアドレス変換情報の転送を行うことができる。これは、メモリコントローラ２００が不揮発性メモリ３００との間の信号線２０９を介して転送データを転送する一方で、アドレス変換情報については、ホストコンピュータ１００との間の信号線１０９を介して転送することができるためである。このように、メモリコントローラ２００は、アドレス変換情報の転送と転送データの転送とを並列に行うことができるため、転送データの転送の遅延を抑制することができる。
【００２９】
なお、メモリコントローラ２００は、特許請求の範囲に記載の記憶制御装置の一例である。
【００３０】
不揮発性メモリ３００は、メモリコントローラ２００の制御に従って、データを記憶するものである。この不揮発性メモリ３００は、管理情報と、転送データ（ユーザデータ）とを記憶する。管理情報は、アドレス変換情報、アクセス頻度情報および空き物理アドレス情報を含む。ここで、アクセス頻度情報は、アドレス変換情報におけるエントリごとに、そのエントリに対応する論理アドレスに対するアクセス頻度を示す情報である。また、空き物理アドレス情報は、論理アドレスが対応付けられていない物理ページアドレスを示す情報である。論理アドレスが対応付けられていない物理アドレスは、空いている物理アドレスとして扱われる。不揮発性メモリ３００は、メモリコントローラ２００の制御に従って、管理情報をメモリコントローラ２００に信号線２０９を介して供給する。また、不揮発性メモリ３００は、メモリコントローラ２００の制御に従って転送データの転送を行う。
【００３１】
なお、情報処理システムは、不揮発性メモリ３００にデータを記憶させているが、この構成に限定されない。データを記憶する記憶装置であれば、不揮発性メモリ３００以外の装置（例えば、ＨＤＤ：Hard Disk Drive）にデータを記憶させてもよい。また、不揮発性メモリ３００は、特許請求の範囲に記載の記憶装置の一例である。
【００３２】
また、情報処理システムは、記憶装置を制御する記憶制御装置としてメモリコントローラ２００を備えるが、不揮発性メモリ以外の記憶装置を用いる場合、ＨＤＤコントローラなど、メモリコントローラ以外の記憶制御装置を備えてもよい。また、メモリコントローラ２００は１つの不揮発性メモリ３００を制御する構成としているが、複数の不揮発性メモリ３００を制御する構成であってもよい。
【００３３】
［ホストコンピュータの構成例］
図２は、第１の実施の形態におけるホストコンピュータ１００の一構成例を示すブロック図である。このホストコンピュータ１００は、ＣＰＵ（Central Processing Unit）１２０、ＲＡＭ１３０、ＲＯＭ（Read Only Memory）１１１、バス１１２、記憶部１１３およびコントローラインターフェース１１６を備える。記憶部１１３には、アプリケーションプログラム１１４およびデバイスドライバ１１５などが記憶される。
【００３４】
ＣＰＵ１２０は、ホストコンピュータ１００全体を制御するものである。ＲＡＭ１３０は、ＣＰＵ１２０が実行する処理において必要となるデータを一時的に保持するものである。ＲＯＭ１１１は、ＣＰＵ１２０が実行するプログラム等を記憶するものである。バス１１２は、ＣＰＵ１２０、ＲＡＭ１３０、ＲＯＭ１１１、記憶部１１３およびコントローラインターフェース１１６が相互にデータを交換するための共通の経路である。コントローラインターフェース１１６は、ホストコンピュータ１００とメモリコントローラ２００とがデータやコマンドを相互に交換するためのインターフェースである。
【００３５】
図３は、第１の実施の形態におけるホストコンピュータ１００の機能構成例を示すブロック図である。このホストコンピュータ１００は、初期化処理部１２１、転送コマンド発行部１２２、データ転送処理部１２３、ＲＡＭ１３０およびアドレス変換情報管理部１２４を備える。ＲＡＭ１３０には、アドレス変換情報保持領域１３１が設けられる。なお、ＲＡＭ１３０は、特許請求の範囲に記載の保持部の一例である。
【００３６】
図３における初期化処理部１２１の機能は、例えば、図２におけるＣＰＵ１２０、デバイスドライバ１１５およびコントローラインターフェース１１６などにより実現される。また、図３における転送コマンド発行部１２２およびデータ転送処理部１２３の機能は、例えば、図２におけるＣＰＵ１２０、アプリケーションプログラム１１４、デバイスドライバ１１５およびコントローラインターフェース１１６などにより実現される。図３におけるアドレス変換情報管理部１２４の機能も、図２におけるＣＰＵ１２０、アプリケーションプログラム１１４、デバイスドライバ１１５およびコントローラインターフェース１１６などにより実現される。
【００３７】
初期化処理部１２１は、情報処理システムへの電源投入時などに、所定の初期化処理を実行するものである。この初期化処理において、初期化処理部１２１は、アドレス変換情報を読み出すための初期化コマンドを発行して、メモリコントローラ２００からアドレス変換情報およびステータスを受け取る。初期化処理部１２１は、取得したアドレス変換情報をＲＡＭ１３０内のアドレス変換情報保持領域１３１に保持させる。初期化コマンドにおいて、データの転送先は、ホストコンピュータ１００およびメモリコントローラ２００のいずれかに設定することができる。アドレス変換情報を読み出すための初期化コマンドの転送先は、ホストコンピュータ１００に設定される。
【００３８】
また、初期化処理部１２１は、アクセス頻度情報を読み出すための初期化コマンドと、空き物理アドレス情報を読み出すための初期化コマンドと、アドレス変換情報の一部のエントリとを読み出すための初期化コマンドとをそれぞれ発行する。ただし、これらの初期化コマンドにおいて、転送先は、ホストコンピュータ１００およびメモリコントローラ２００のうちメモリコントローラ２００に設定される。メモリコントローラ２００は、これらの初期化コマンドに従って、アクセス頻度情報と空き物理アドレス情報とアドレス変換情報の一部とを不揮発性メモリ３００から読み出して保持する。初期化処理が終了すると、初期化処理部１２１は、転送コマンド発行部１２２に初期化の終了を通知する。
【００３９】
ここで、初期化コマンドは、読出開始ページアドレス、転送ページ数、および、転送先アドレスをさらに含む。読出開始ページアドレスは、リードデータの読出しを開始するページアドレスである。転送先アドレスは、リードデータの転送先のアドレスであり、ホストコンピュータ１００およびメモリコントローラ２００のいずれかのＲＡＭのアドレスが設定される。
【００４０】
転送コマンド発行部１２２は、転送コマンドを発行するものである。この転送コマンドは、リードコマンドおよびライトコマンドを含む。リードコマンドは、読出開始ページアドレス、転送ページ数および転送先アドレスを含む。読出開始ページアドレスは、リードデータの読出しを開始するページアドレスである。転送先アドレスは、リードデータの転送先のアドレスであり、ホストコンピュータ１００のＲＡＭのアドレスが設定される。
【００４１】
また、ライトコマンドは、転送元アドレス、書込開始ページアドレスおよび転送ページ数を含む。転送元アドレスは、ライトデータの転送元のアドレスであり、ホストコンピュータ１００のＲＡＭのアドレスが設定される。書込開始ページアドレスは、ライトデータの書込みを開始する論理ページアドレスである。
【００４２】
ここで、転送コマンドにおいては、メモリコントローラ２００を含むストレージが定義する所定の論理ページアドレス空間内のアドレスが指定される。例えば、論理ページアドレス空間として、５０７，９０４（＝０ｘ７ｃ０００）ページが定義される。この論理ページアドレス空間内の論理ページアドレスは、例えば、０ｘ０００００乃至０ｘ０７ｂｆｆｆである。ここで、「０ｘ」を付した数値は、１６進数で表した数値である。以下、「０ｘ」を付した数値は１６進数で表したものであり、付していない数値は１０進数で表したものとする。
【００４３】
一方、不揮発性メモリ３００において、ユーザデータの記憶容量は、例えば、２ギガ（＝２，１４７，４８３，６４８）バイトであり、また、冗長データを含まない物理ページのサイズは４０９６バイトである。この場合、不揮発性メモリ３００の物理ページ数は、５２４，２８８（＝２，１４７，４８３，６４８／４０９６）ページであり、物理ページアドレスは、例えば、０ｘ０００００乃至０ｘ０７ｆｆｆｆである。下記の式より、物理ページ数（５２４，２８８）は、論理ページ数（５０７，９０４）に対して、約３％の余裕の余裕をもつ。
５２４，２８８／５０７，９０４＝１．０３                      ・・・式１
このように論理ページ数が設定されるのは、不揮発性メモリ３００内の物理ページが書込み不良などにより使用不可となった場合に代替して論理ページに割り当てることができるように、空いている物理ページを確保しておくためである。また、不揮発性メモリ３００内の記憶素子のそれぞれの書き換え回数を平準化するウェアレべリングを実現するためである。
【００４４】
上述の論理ページアドレス空間のサイズは、２ギガバイトの記憶容量の不揮発性メモリ３００が１つ接続された構成を想定しているが、そのサイズは、接続される不揮発性メモリ３００の記憶容量や個数に依存する。例えば、不揮発性メモリ３００の記憶容量または個数を２倍にする場合、論理ページアドレス空間のサイズは２倍に設定される。
【００４５】
データ転送処理部１２３は、メモリコントローラ２００との間でデータを転送するものである。このデータ転送処理部１２３は、転送コマンドがライトコマンドの場合、書き込む対象のユーザデータを生成して、ライトコマンドとともにメモリコントローラ２００に供給する。そして、データ転送処理部１２３は、ステータスをメモリコントローラ２００から受け取る。一方、転送コマンドがリードコマンドの場合、データ転送処理部１２３は、リードコマンドをメモリコントローラ２００に供給して、読み出されたユーザデータとステータスとをメモリコントローラ２００から受け取る。
【００４６】
なお、論理アドレス空間および物理アドレス空間のアクセス単位として「ページ」の名称を用いているが、アクセス単位の名称はページに限定されない。例えば、セクタやブロックであってもよい。また、論理アドレス空間および物理アドレス空間のそれぞれにおけるアクセス単位の名称およびデータサイズは同一であるが、論理アドレス空間と物理アドレス空間とで、アクセス単位の名称や、そのデータサイズが異なる構成であってもよい。
【００４７】
なお、データ転送処理部１２３は、特許請求の範囲に記載の指示部の一例である。
【００４８】
アドレス変換情報保持領域１３１には、アドレス変換情報が保持される。このアドレス変換情報は、論理ページアドレスと物理ページアドレスとを対応付けたエントリを複数含む。ただし、ユーザデータが書き込まれていない論理ページアドレスには、有効な物理ページアドレスが割り当てられていない。言い換えれば、無効な物理ページアドレスが割り当てられている。
【００４９】
前述したように論理ページ数が５０７，９０４であるから、アドレス変換情報内のエントリ数は５０７，９０４である。ここで、アクセス単位であるページ１つに、アドレス変換情報における１，０２４エントリを格納することができるものとする。このため、アドレス変換情報は、各々が１，０２４エントリからなる４９６（＝５０７，９０４／１，０２４）ページのアドレス変換情報ページに分割して管理される。
【００５０】
アドレス変換情報管理部１２４は、アドレス変換情報を管理するものである。具体的には、アドレス変換情報管理部１２４は、アドレス変換情報ページを要求するページ取得リクエストをメモリコントローラ２００から受け取ると、要求されたアドレス変換情報ページをＲＡＭ１３０から読み出す。そして、アドレス変換情報管理部１２４は、読み出したアドレス変換情報ページをメモリコントローラ２００に供給する。また、アドレス変換情報管理部１２４は、メモリコントローラ２００からアドレス変換情報ページを受け取ると、ＲＡＭ１３０においてページ番号が同一のアドレス変換情報ページを、受け取ったアドレス変換情報ページにより更新する。
【００５１】
なお、メモリコントローラ２００からのページ取得リクエストに対し、アドレス変換情報管理部１２４が、要求されたアドレス変換情報ページを読み出しているが、この構成に限定されない。例えば、メモリコントローラ２００が、ホストコンピュータ１００内のアドレス変換情報保持領域１３１に直接アクセスして、必要なアドレス変換情報ページを読み出してもよい。
【００５２】
［転送コマンドのデータ構成例］
図４は、第１の実施の形態における転送コマンドのデータ構成の一例を示す図である。同図におけるａは、リードコマンドのデータ構成の一例を示す図である。同図のａに示すように、リードコマンドは、読出開始ページアドレス、転送ページ数および転送先アドレスを含む。読出開始ページアドレスには、データの読出しを開始するページアドレスであり、ユーザデータの読出しの場合には論理ページアドレスが設定される。転送ページ数には、リードコマンドにより連続して読み出されるリードデータのページ数が設定される。転送先アドレスには、ホストコンピュータ１００のＲＡＭのアドレス（論理アドレスまたは物理アドレス）が設定される。なお、管理情報を読み出すための初期化コマンドは、転送先種別をさらに含む。転送先種別には、ホストコンピュータ１００またはメモリコントローラ２００が設定される。また、初期化コマンドの転送先アドレスには、ホストコンピュータ１００またはメモリコントローラ２００のＲＡＭのアドレス（論理アドレスまたは物理アドレス）が設定される。また、初期化コマンドの読出開始ページアドレスには、読出開始ページアドレスには物理ページアドレスが設定される。これは、管理情報の読出しの場合には、アドレス変換が行われないためである。
【００５３】
図４におけるｂは、ライトコマンドのデータ構成の一例を示す図である。同図のｂに示すように、ライトコマンドは、転送元アドレス、書込開始ページアドレスおよび転送ページ数を含む。転送元アドレスには、ホストコンピュータ１００のＲＡＭのアドレスが設定される。書込開始ページアドレスには、データの書込みを開始する論理ページアドレスであり、ユーザデータの書込みの場合には論理ページアドレスが設定される。
【００５４】
［アドレス変換情報のデータ構成例］
図５は、第１の実施の形態におけるアドレス変換情報の一例を示す図である。アドレス変換情報は、４９６ページのアドレス変換情報ページを含む。それぞれのアドレス変換情報ページは、１，０２４エントリを含む。エントリの各々は、論理ページアドレス、割当状況および物理ページアドレスを含む。
【００５５】
割当状況は、論理ページアドレスに物理ページアドレスが割り当てられているか否かを示す。ユーザデータが書き込まれていない論理ページアドレスには、無効な物理ページアドレスが対応付けられ、割当状況に「未割当」が設定される。ユーザデータの書込みが行われた論理ページアドレスには、有効な物理ページアドレスが対応付けられ、割当状況に「割当済」が設定される。「割当済」の論理ページアドレスに書き込まれたデータが消去コマンドなどにより消去された場合には、割当状況は「未割当」に更新され、対応する物理ページアドレスは無効になる。
【００５６】
割当状況のデータサイズは例えば、１バイトであり、物理ページアドレスのデータサイズは例えば、３バイトであり、これらからなるエントリの各々のデータサイズは４バイトである。このため、１，０２４エントリからなるアドレス変換情報ページのそれぞれのデータサイズは、４，０９６（＝１，０２４×４）バイトである。したがって、４９６ページからなるアドレス変換情報全体のデータサイズは、２，０３１，６１６（＝４９６×４，０９６）バイトである。
【００５７】
［メモリコントローラの構成例］
図６は、第１の実施の形態におけるメモリコントローラ２００の一構成例を示すブロック図である。このメモリコントローラ２００は、ＣＰＵ２２０、ＲＡＭ２３０、ＲＯＭ２１１、バス２１２、ホストインターフェース２１３、ＥＣＣ処理部２１４およびメモリインターフェース２１５を備える。
【００５８】
ＣＰＵ２２０は、メモリコントローラ２００全体を制御するものである。ＲＡＭ２３０は、ＣＰＵ２２０が実行する処理において必要となるデータを一時的に保持するものである。ＲＯＭ２１１は、ＣＰＵ２２０が実行するプログラム等を記憶するものである。バス２１２は、ＣＰＵ２２０、ＲＡＭ２３０、ＲＯＭ２１１、ホストインターフェース２１３、ＥＣＣ処理部２１４およびメモリインターフェース２１５が相互にデータを交換するための共通の経路である。ホストインターフェース２１３は、メモリコントローラ２００とホストコンピュータ１００とがデータやコマンドを相互に交換するためのインターフェースである。
【００５９】
ＥＣＣ処理部２１４は、ライトデータをＥＣＣ（Error detection and Correction Code）に符号化し、リードデータに対して誤りの検出および訂正を行うものである。ＥＣＣ処理部２１４において、例えば、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号や、ＲＳ（Reed-Solomon）符号がＥＣＣとして用いられる。メモリインターフェース２１５は、メモリコントローラ２００と不揮発性メモリ３００とがデータ等を相互に交換するためのインターフェースである。
【００６０】
図７は、第１の実施の形態におけるメモリコントローラ２００の機能構成例を示すブロック図である。このメモリコントローラ２００は、アドレス変換情報取得部２２２、アドレス変換部２２３、データ転送部２２４およびＲＡＭ２３０を備える。ＲＡＭ２３０には、アドレス変換情報保持領域２３１、アドレス変換情報管理テーブル保持領域２３２、アクセス頻度情報保持領域２３３および空き物理アドレス情報保持領域２３４が設けられる。なお、ＲＡＭ２３０は、特許請求の範囲に記載のアドレス変換情報保持部およびアクセス頻度保持部の一例である。
【００６１】
図７におけるアドレス変換情報取得部２２２の機能は、例えば、図６におけるＣＰＵ２２０およびホストインターフェース２１３などにより実現される。また、図７におけるアドレス変換部２２３の機能は、例えば、図６におけるＣＰＵ２２０などにより実現される。図７におけるデータ転送部２２４の機能は、例えば、図６におけるＣＰＵ２２０、ホストインターフェース２１３、ＥＣＣ処理部２１４およびメモリインターフェース２１５などにより実現される。
【００６２】
データ転送部２２４は、ホストコンピュータ１００の制御に従って、所定の初期化処理と、ユーザデータを転送するデータ転送処理とを実行するものである。初期化処理において、データ転送部２２４は、アドレス変換情報の全エントリを読み出すための初期化コマンドをホストコンピュータ１００から受け取ると、その初期化コマンドからリードリクエストを生成する。
【００６３】
初期化コマンドから生成されたリードリクエストは、例えば、転送元ページアドレス、転送先種別、転送先アドレスを示す情報を含む。転送元ページアドレスは、リードデータを読み出すページアドレスであり、不揮発性メモリ３００の物理ページアドレスが設定される。転送先種別は、ホストコンピュータ１００およびメモリコントローラ２００のいずれが転送先であるかを示す。転送先アドレスは、リードデータの転送先のアドレスであり、ホストコンピュータ１００またはメモリコントローラ２００のアドレスが設定される。
【００６４】
データ転送部２２４は、メモリリードコマンドにより全エントリを不揮発性メモリ３００から読み出し、ホストコンピュータ１００に転送する。
【００６５】
また、アクセス頻度情報を読み出すための初期化コマンドをホストコンピュータ１００から受け取ると、データ転送部２２４は、メモリリードコマンドによりアクセス頻度情報を不揮発性メモリ３００から読み出す。データ転送部２２４は、読み出したアクセス頻度情報をアクセス頻度情報保持領域２３３に保持させる。このアクセス頻度情報は、アドレス変換情報ページごとに、そのページ内の論理ページアドレスに対するアクセス回数を示す情報を含む。データ転送部２２４は、保持させた、アドレス変換情報ページのそれぞれのアクセス回数を読み出し、その値に対して所定の係数（例えば、０．５）を乗じる重み付けを行って書き戻す。
【００６６】
初期化処理の後において、アクセス回数は、対応するアドレス変換情報ページ内のいずれかの論理ページアドレスに対してアクセスが生じるたびに増分される。そして、メモリコントローラ２００への電源供給停止時などに実行される終了処理において、メモリコントローラ２００において更新されたアクセス頻度情報は、不揮発性メモリ３００に書き戻される。
【００６７】
前述した所定の係数で、前回の終了処理時のアクセス回数に重み付けを行うことにより、計数された時期が古いほど、係数（すなわち、重み）を小さくした重み付けを行うことができる。例えば、１回目の終了処理の次に２回目の初期化処理が行われるとき、１回目の終了処理時のアクセス回数Ｆ１に対して０．５の重み付けが行われる。２回目の終了処理の次に３回目の初期化処理が行われるとき、２回目の終了処理時のアクセス回数Ｆ２に対して０．５の重み付けが行われる。このＦ２には、１回目のＦ１×０．５の値が含まれるため、Ｆ２に０．５を乗じたアクセス回数には、Ｆ１×０．２５の値が含まれることとなる。同様に、３回目の終了処理時のアクセス回数Ｆ３に対して０．５を乗じたアクセス回数には、Ｆ２×０．２５の値が含まれ、このＦ２×０．２５の値にはＦ１×０．１２５の値が含まれる。このように、計数された時期が古いほど、アクセス回数に対する係数が小さくなる。
【００６８】
なお、データ転送部２２４は、前回の終了処理時のアクセス回数に対して重み付けを行っているが、この重み付けを行わない構成としてもよい。この場合には、前回の終了処理時のアクセス回数がアクセス頻度情報保持部２３３にそのまま保持される。
【００６９】
また、データ転送部２２４は、空き物理アドレス情報を読み出すための初期化コマンドをホストコンピュータ１００から受け取ると、メモリリードコマンドにより空き物理アドレス情報を不揮発性メモリ３００から読み出す。そして、データ転送部２２４は、読み出した空き物理アドレス情報を、空き物理アドレス情報保持領域２３４に保持させる。
【００７０】
そして、データ転送部２２４は、アドレス変換情報の一部を読み出すための初期化コマンドを受け取ると、アクセス頻度の高いアドレス変換情報ページを優先して３２ページのアドレス変換情報ページを不揮発性メモリ３００から読み出す。
【００７１】
なお、データ転送部２２４がアドレス変換情報の一部を不揮発性メモリ３００から読み出す構成としているが、この構成に限定されない。データ転送部２２４は、アドレス変換情報の一部をホストコンピュータ１００から取得してもよい。
【００７２】
また、読み出すページ数は、アドレス変換情報の全ページ数（４９６）より少ないページであればよく、３２ページに限定されない。また、アクセス頻度の高いものを優先して一部を読み出す構成としているが、この構成に限定されない。例えば、メモリコントローラ２００は、ページ番号の若いページから順に３２ページを読み出してもよい。
【００７３】
データ転送部２２４は、読み出したアドレス変換情報ページをアドレス変換情報保持領域２３１に保持させる。また、データ転送部２２４は、アドレス変換情報管理テーブルを生成して、アドレス変換情報管理テーブル保持領域２３２に保持させる。アドレス変換情報管理テーブルの構成については後述する。
【００７４】
また、データ転送処理において、データ転送部２２４は、転送コマンドから転送リクエストを生成する。例えば、転送リクエストは、転送ページ数に等しい個数の転送リクエストに分割される。転送リクエストは、リードリクエストおよびライトリクエストを含む。リードリクエストは、転送元ページアドレスおよび転送先アドレスを示す情報を含み、ライトリクエストは、転送元アドレスおよび転送先ページアドレスを示す情報を含む。
【００７５】
ライトリクエストを発行した場合、データ転送部２２４は、メモリライトコマンドを順に不揮発性メモリ３００に供給する。また、データ転送部２２４は、ホストコンピュータ１００からのライトデータをＥＣＣに符号化して不揮発性メモリ３００に転送する。一方、リードリクエストを発行した場合、データ転送部２２４は、メモリリードコマンドを順に不揮発性メモリ３００に供給し、リードデータを不揮発性メモリ３００から受け取る。データ転送部２２４は、リードデータに対して誤りの検出および訂正を行い、訂正したリードデータをホストコンピュータ１００に転送する。また、データ転送部２２４は、ステータスを生成してホストコンピュータ１００に供給する。なお、図７においてステータスの記載は、省略されている。
【００７６】
アドレス変換情報取得部２２２は、転送コマンドにより指定された論理ページアドレスに対応するエントリがＲＡＭ２３０に保持されていない場合には、そのエントリをホストコンピュータ１００から取得するものである。具体的には、アドレス変換情報取得部２２２は、ホストコンピュータ１００から転送コマンドを受け取ると、その転送コマンドの指定する論理ページアドレスを含むアドレス変換情報ページの番号を求める。アドレス変換情報ページは、１，０２４エントリからなるため、指定された論理ページアドレスを０ｘ００４００（＝１，０２４）で除した商を求めればよい。その商が、該当するアドレス変換情報ページの番号を示す。
【００７７】
例えば、アドレス変換情報ページを「０」乃至「４９５」とし、指定された論理ページアドレスが０ｘ０１３ｆｆである場合について考える。０ｘ０１３ｆｆを０ｘ００４００で割った商は、０ｘ００００４になる。このため、指定された論理ページアドレスを含むアドレス変換情報ページの番号は、「４」である。
【００７８】
アドレス変換情報取得部２２２は、算出した番号のアドレス変換情報ページがＲＡＭ２３０に保持されているか否かを判断する。保持されていない場合には、アドレス変換情報取得部２２２は、その保持されていないアドレス変換情報ページを要求するページ取得リクエストを発行してホストコンピュータ１００に供給する。このページ要求リクエストには、例えば、要求するアドレス変換情報ページのページ番号が含まれる。アドレス変換情報取得部２２２は、要求したアドレス変換情報ページをホストコンピュータ１００から受け取ると、ＲＡＭ２３０内のアクセス頻度情報およびアドレス変換情報を参照する。アドレス変換情報取得部２２２は、ＲＡＭ２３０に保持されているアドレス変換情報ページのうち最もアクセス頻度の低いアドレス変換情報ページを、ホストコンピュータ１００から受け取ったアドレス変換情報ページに置き換える。また、アドレス変換情報取得部２２２は、アドレス変換情報ページの置き換えに伴い、アドレス変換情報管理テーブルを更新する。更新内容の詳細については、図９において後述する。
【００７９】
算出した番号のアドレス変換情報ページがＲＡＭ２３０に保持されている場合、または、そのアドレス変換情報ページを受け取った場合、アドレス変換情報取得部２２２は、対応するエントリが保持されていることをアドレス変換部２２３に通知する。
【００８０】
アドレス変換部２２３は、ＲＡＭ２３０に保持されているエントリに基づいて、転送コマンドにより指定された論理ページアドレスを物理ページアドレスに変換するものである。転送コマンドにより指定された論理ページアドレスに対応するエントリが保持されていることが通知されると、アドレス変換部２２３は、指定された論理ページアドレスに対応するエントリの位置を求める。アドレス変換情報ページは１，０２４エントリからなるため、指定された論理ページアドレスを０ｘ００４００（＝１，０２４）で除した剰余を求めればよい。その剰余が、アドレス変換情報ページ内における、該当するエントリの位置を示す。
【００８１】
例えば、指定された論理ページアドレスが０ｘ０１３ｆｆである場合について考える。０ｘ０１３ｆｆを０ｘ００４００で割った商は、０ｘ００００４であり、剰余は０ｘ００３ｆｆである。このため、ページ番号が「４」のアドレス変換情報ページにおける１，０２３（＝０ｘ００３ｆｆ）番目のエントリが、指定された論理ページアドレスに対応するエントリである。アドレス変換部２２３は、そのエントリをＲＡＭ２３０から読出し、その割当状況を参照する。
【００８２】
参照したエントリにおいて、物理ページアドレスが未割当である場合、アドレス変換部２２３は、空き物理アドレス情報を参照して、空いている物理ページアドレスのいずれかを選択するとともに、空き物理アドレス情報を更新する。また、アドレス変換部２２３は、参照したエントリの物理ページアドレスを、選択した物理ページアドレスにより更新し、その物理ページアドレスに対応する割当状況を「割当済」に更新する。
【００８３】
アドレス変換部２２３は、更新したアドレス変換情報ページをホストコンピュータ１００に供給する。また、アドレス変換部２２３は、更新したアドレス変換情報ページに基づいて、指定された論理ページアドレスを、対応する物理ページアドレスに変換し、アドレスを変換した転送コマンドをデータ転送部２２４に供給する。
【００８４】
一方、参照したエントリにおいて物理ページアドレスが割当済である場合、アドレス変換部２２３は、指定された論理ページアドレスを、その論理ページアドレスに対応する物理ページアドレスに変換する。そして、アドレス変換部２２３は、アドレスを変換した転送コマンドをデータ転送部２２４に供給する。
【００８５】
［転送リクエストのデータ構成例］
図８は、第１の実施の形態における転送リクエストのデータ構成の一例を示す図である。同図におけるａは、リードリクエストのデータ構成の一例を示す図である。同図のａに示すように、リードリクエストは、転送元ページアドレス、転送先アドレスを含む。転送元ページアドレスには、不揮発性メモリ３００の物理ページアドレスが設定される。転送先アドレスには、ホストコンピュータ１００のＲＡＭのアドレスが設定される。なお、管理情報を読み出す際に用いられるリードリクエストは、転送先種別をさらに含む。転送先種別には、ホストコンピュータ１００およびメモリコントローラ２００のいずれが設定される。また、転送先アドレスには、ホストコンピュータ１００またはメモリコントローラ２００のＲＡＭのアドレスが設定される。
【００８６】
図８におけるｂは、ライトリクエストのデータ構成の一例を示す図である。同図のｂに示すように、ライトリクエストは、転送元アドレスおよび転送先ページアドレスを含む。転送元アドレスには、ホストコンピュータ１００のＲＡＭのアドレスが設定される。転送先ページアドレスには、不揮発性メモリ３００の物理ページアドレスが設定される。なお、管理情報を書き込む際に用いられるライトリクエストは、転送元種別をさらに含む。転送元種別には、ホストコンピュータ１００およびメモリコントローラ２００のいずれが設定される。また、転送元アドレスには、ホストコンピュータ１００またはメモリコントローラ２００のＲＡＭのアドレスが設定される。
【００８７】
図９は、第１の実施の形態におけるアドレス変換情報保持領域２３１およびアドレス変換情報管理テーブル保持領域２３２に保持されるデータの一例を示す図である。同図におけるａは、アドレス変換情報保持領域２３１に保持されるデータの一例を示す図である。同図のａに示すように、アドレス変換情報保持領域２３１には、領域内ページ＃０乃至３１のそれぞれに、アドレス変換情報ページが保持される。アドレス変換情報ページのそれぞれのデータサイズは４０９６バイトであるため、アドレス変換情報保持領域２３１には、１３１，０７２（＝４０９６×３２）バイトのデータが保持される。
【００８８】
図９におけるｂは、アドレス変換情報管理テーブル保持領域２３２に保持されるデータの一例を示す図である。同図のｂに示すように、アドレス変換情報管理テーブル保持領域２３２には、領域内ページ＃０乃至＃３１のそれぞれに保持されているアドレス変換情報ページのページ番号が保持される。なお、同図のａおよびｂに例示したように、メモリコントローラ２００は、ページ番号をアドレス変換情報保持領域２３１と別の領域に保持しているが、同じ領域に保持してもよい。この場合、領域内ページのそれぞれに、アドレス変換情報ページと、そのページ番号とが保持される。メモリコントローラ２００は、アドレス変換情報内のアドレス変換情報ページを新たなページに置き換えた場合、アドレス変換情報管理テーブルにおいて置き換えたページに対応する領域内ページを、のアドレス変換情報ページのページ番号に更新する。
【００８９】
図１０は、第１の実施の形態におけるアクセス頻度情報保持領域２３３に保持されるデータの一例を示す図である。このアクセス頻度情報保持領域２３３には、アドレス変換情報ページ＃０乃至＃４９５のそれぞれについて、そのページにおける論理ページアドレスに対するアクセス頻度を示す情報（例えば、アクセス回数）が保持される。アクセス回数のそれぞれのサイズは、例えば４バイトであり、４９６ページのそれぞれについてのアクセス回数を含むアクセス頻度情報全体のデータサイズは、１，９８４（＝４９６×４）バイトである。
【００９０】
図１１は、第１の実施の形態における空き物理アドレス情報保持領域２３４に保持されるデータの一例を示す図である。この空き物理アドレス情報保持領域２３４には、０ｘ０００００乃至０ｘ７ｆｂｆｆの物理ページアドレスのそれぞれについて、使用状況を示す情報が保持される。
【００９１】
使用状況は、対応する物理ページアドレスの状態として、「使用中」、「未使用」、および、「使用不能」のいずれかを示す。「使用中」は、物理ページアドレスに論理ページアドレスが割り当てられていることを示し、「未使用」は、割り当てられていないことを示す。未使用の物理ページアドレスは、空いている物理ページアドレスとして扱われる。また、「使用不能」は、エラーの発生等の理由により、現在使用されておらず、今後の使用が推奨されないことを示す。使用状況は、３状態を２ビットで表すため、５２３，２６４個の物理ページアドレスの各々の使用状況からなる空き物理アドレス情報のデータサイズは、１３０，８１６（＝５２３，２６４×２／８）バイトである。アクセス単位（ページ）のデータサイズが４０９６バイトであるため、この空き物理アドレス情報は、３２（＝３０，８１６／４０９６）ページの空き物理アドレス情報ページに分割して管理される。それぞれの空き物理アドレス情報ページは、１６，３５２（＝５２３，２６４／３２）個の使用状況を含む。
【００９２】
［不揮発性メモリの構成例］
図１２は、第１の実施の形態における不揮発性メモリ３００の一構成例を示すブロック図である。この不揮発性メモリ３００は、ページバッファ３１１、メモリセルアレイ３２０、アドレスデコーダ３１２、バス３１３、制御インターフェース３１４およびアクセス制御部３１５を備える。
【００９３】
ページバッファ３１１は、アクセス制御部３１５の制御に従って、ライトデータやリードデータをページ単位で保持するものである。メモリセルアレイ３２０は、マトリックス状に配列された複数のメモリセルを備える。各々のメモリセルとして、不揮発性の記憶素子が用いられる。具体的には、ＮＡＮＤ型やＮＯＲ型のフラッシュメモリ、ＲｅＲＡＭ（Resistive RAM）、ＰＣＲＡＭ（Phase-Change RAM）、または、ＭＲＡＭ（Magnetoresistive RAM）などが記憶素子として用いられる。アドレスデコーダ３１２は、メモリ転送コマンドにより指定されたアドレスを解析して、そのアドレスに対応するメモリセルを選択するものである。バス３１３は、ページバッファ３１１、メモリセルアレイ３２０、アドレスデコーダ３１２、制御インターフェース３１４およびアクセス制御部３１５が相互にデータを交換するための共通の経路である。制御インターフェース３１４は、メモリコントローラ２００と不揮発性メモリ３００とがデータやリクエストを相互に交換するためのインターフェースである。
【００９４】
アクセス制御部３１５は、メモリセルアレイ３２０にアクセスしてデータの書込み、または、読出しを行うものである。アクセス制御部３１５は、メモリライトコマンドを受け取ると、ライトデータをページバッファ３１１に保持させる。また、アクセス制御部３１５は、メモリライトコマンドにより指定されたアドレスをアドレスデコーダ３１２に供給する。アドレスデコーダ３１２によりメモリセルが選択されると、アクセス制御部３１５は、ドライバ（不図示）を制御して、そのメモリセルにデータを書き込ませる。
【００９５】
また、メモリリードコマンドを受け取ると、アクセス制御部３１５は、メモリリードコマンドにより指定されたアドレスをアドレスデコーダ３１２に供給する。アドレスデコーダ３１２によりメモリセルが選択されると、アクセス制御部３１５は、ドライバを制御して、そのメモリセルに格納されたデータを読み出させ、ページバッファ３１１に保持させる。ページバッファ３１１にリードデータが保持されると、アクセス制御部３１５は、制御インターフェース３１４を制御して、そのリードデータをメモリコントローラ２００に出力させる。
【００９６】
図１３は、第１の実施の形態におけるメモリセルアレイ３２０の使用状況の一例を示す図である。メモリセルアレイ３２０には、管理情報領域３２１およびユーザデータ領域３２５が設けられる。管理情報領域３２１には、アドレス変換情報、空き物理アドレス情報およびアクセス頻度情報が保持される。ユーザデータ領域３２５には、ユーザデータが保持される。メモリセルアレイ３２０に格納することができる物理ページ数は、例えば、５２４，２８８ページである。これらのうち、例えば、５２３，２６４ページからなる領域がユーザデータ領域３２５として用いられ、残りの１，０２４ページからなる領域が管理情報領域３２１として用いられる。
【００９７】
ここで、メモリコントローラ２００がアドレス変換を行う構成であるため、ユーザデータ領域３２５において書込み不良が生じても、メモリコントローラ２００は、空いている物理ページアドレスを代わりに割り当てることができる。管理情報領域３２１においても書込み不良は生じうるため、管理情報の初期化コマンドにおいても、メモリコントローラ２００はアドレス変換を行うことが望ましい。しかし、説明を簡略化するために、管理情報領域３２１に対する初期化コマンドにおいては、アドレス変換が行われないものとする。なお、管理情報の初期化コマンドにおいてもメモリコントローラ２００がアドレス変換を行う構成としてもよい。
【００９８】
図１４は、第１の実施の形態における管理情報領域３２１に保持されるデータの一例を示す図である。管理情報領域３２１には、アドレス変換情報保持領域３２２、アクセス頻度情報保持領域３２３および空き物理アドレス情報保持領域３２４が設けられる。アドレス変換情報保持領域３２２には、４９６ページのアドレス変換情報ページからなるアドレス変換情報が保持される。このアドレス変換情報の全ページは、ホストコンピュータ１００に転送されて保持される。また、アドレス変換情報の一部（例えば、３２ページ）は、メモリコントローラ２００に転送されて保持される。
【００９９】
アクセス頻度情報保持領域３２３には、アクセス頻度情報が保持される。空き物理アドレス情報保持領域３２４には、空き物理アドレス情報が保持される。これらのアクセス頻度情報および空き物理アドレス情報は、メモリコントローラ２００に転送されて保持される。
【０１００】
［物理ページのデータ構成例］
図１５は、第１の実施の形態におけるユーザデータ領域に格納される物理ページの一例を示す図である。物理ページの各々は、データ部および冗長部を備える。データ部は、物理ページのうち、ＥＣＣに符号化される前の元データの部分である。冗長部には、符号化において、元データから生成されるパリティなどが含まれる。データ部のサイズは、例えば、４，０９６バイトであり、冗長部のサイズは、例えば、１２８バイトである。データ部および冗長部からなる物理ページのサイズは、例えば、４，２２４バイトである。
【０１０１】
［ホストコンピュータの動作例］
図１６は、第１の実施の形態におけるホスト側処理の一例を示すフローチャートである。このホスト側処理は、例えば、情報処理システムに電源が投入されたときに、ホストコンピュータ１００により開始される。
【０１０２】
ホストコンピュータ１００は、まず、ホスト側初期化処理を実行する（ステップＳ９１０）。そして、ホストコンピュータ１００は、アプリケーションプログラム１１４などを実行し、必要に応じて転送コマンドを発行する。ホストコンピュータ１００は、転送コマンドを発行したか否かを判断する（ステップＳ９２３）。転送コマンドを発行していなければ（ステップＳ９２３：Ｎｏ）、ホストコンピュータ１００は、ステップＳ９２３に戻る。
【０１０３】
転送コマンドを発行した場合には（ステップＳ９２３：Ｙｅｓ）、ホストコンピュータ１００は、コントローラインターフェース１１６を介して、転送コマンドをメモリコントローラ２００に供給する（ステップＳ９２４）。なお、転送コマンドがライトコマンドであれば、転送コマンドとともにライトデータも供給される。
【０１０４】
ホストコンピュータ１００は、メモリコントローラ２００からのページ取得要求リクエストがあるか否かを判断する（ステップＳ９２５）。ページ取得要求リクエストがある場合には（ステップＳ９２５：Ｙｅｓ）、ホストコンピュータ１００は、そのページ取得要求リクエストにより要求されたアドレス変換情報ページをメモリコントローラ２００に供給する（ステップＳ９２６）。
【０１０５】
ページ取得要求リクエストがない場合（ステップＳ９２５：Ｎｏ）、または、ステップＳ９２６の後、ホストコンピュータ１００は、メモリコントローラ２００により読み出されたリードデータを取得する。また、更新されたアドレス変換情報ページがメモリコントローラ２００から供給されると、ホストコンピュータ１００は、そのアドレス変換情報ページにより、保持しているアドレス変換情報を更新する（ステップＳ９２７）。ステップＳ９２７の後、ホストコンピュータ１００は、ステップＳ９２３に戻る。
【０１０６】
図１７は、第１の実施の形態におけるホスト側初期化処理の一例を示すフローチャートである。ホストコンピュータ１００は、アドレス変換情報を読み出すための初期化コマンドを発行する。この初期化コマンドにおいて、読出開始ページアドレスは、アドレス変換情報保持領域３２２の物理ページアドレスに設定され、リードデータであるアドレス変換情報の転送先はホストコンピュータ１００に設定される。ホストコンピュータ１００は、その初期化コマンドをメモリコントローラ２００に供給する（ステップＳ９１１）。
【０１０７】
そして、ホストコンピュータ１００は、読み出されたアドレス変換情報ページを保持する（ステップＳ９１２）。ホストコンピュータ１００は、アドレス変換情報ページの全ページの読出しが終了したか否かを、メモリコントローラ２００からのステータスに基づいて判断する（ステップＳ９１３）。全ページの読出しが終了していなければ（ステップＳ９１３：Ｎｏ）、ホストコンピュータ１００は、ステップＳ９１２に戻る。
【０１０８】
全ページの読出しが終了したのであれば（ステップＳ９１３：Ｙｅｓ）、ホストコンピュータ１００は、アクセス頻度情報を読み出すための初期化コマンドを発行する。この初期化コマンドにおいて、読出開始ページアドレスは、アクセス頻度情報保持領域３２３の物理ページアドレスに設定され、リードデータであるアクセス頻度情報の転送先はメモリコントローラ２００に設定される。ホストコンピュータ１００は、その初期化コマンドをメモリコントローラ２００に供給する（ステップＳ９１４）。ホストコンピュータ１００は、アクセス頻度情報の読出しが終了したか否かを、メモリコントローラ２００からのステータスに基づいて判断する（ステップＳ９１５）。アクセス頻度情報の読出しが終了していなければ（ステップＳ９１５：Ｎｏ）、ホストコンピュータ１００は、ステップＳ９１５に戻る。
【０１０９】
アクセス頻度情報の読出しが終了したのであれば（ステップＳ９１５：Ｙｅｓ）、ホストコンピュータ１００は、空き物理アドレス情報を読み出すための初期化コマンドを発行する。この初期化コマンドにおいて、読出開始ページアドレスは空き物理アドレス情報保持領域３２４の物理ページアドレスに設定され、リードデータである空き物理アドレス情報の転送先はメモリコントローラ２００に設定される。ホストコンピュータ１００は、その初期化コマンドをメモリコントローラ２００に供給する（ステップＳ９１９）。ホストコンピュータ１００は、空き物理アドレス情報の読出しが終了したか否かを、メモリコントローラ２００からのステータスに基づいて判断する（ステップＳ９２０）。空き物理アドレス情報の読出しが終了していなければ（ステップＳ９２０：Ｎｏ）、ホストコンピュータ１００は、ステップＳ９２０に戻る。
【０１１０】
空き物理アドレス情報の読出しが終了したのであれば（ステップＳ９２０：Ｙｅｓ）、ホストコンピュータ１００は、アドレス変換情報の一部を読み出すための初期化コマンドを発行する。この初期化コマンドにおいて、読出開始ページアドレスは、アドレス変換情報保持領域３２２の物理ページアドレスに設定され、リードデータであるアドレス変換情報の転送先はメモリコントローラ２００に設定される。ホストコンピュータ１００は、その初期化コマンドをメモリコントローラ２００に供給する（ステップＳ９２１）。ホストコンピュータ１００は、アドレス変換情報の一部の読出しが終了したか否かを、メモリコントローラ２００からのステータスに基づいて判断する（ステップＳ９２２）。アドレス変換情報の一部の読出しが終了していなければ（ステップＳ９２２：Ｎｏ）、ホストコンピュータ１００は、ステップＳ９２２に戻る。一方、アドレス変換情報の一部の読出しが終了したのであれば（ステップＳ９２２：Ｙｅｓ）、ホストコンピュータ１００は、ホスト側初期化処理を終了する。
【０１１１】
なお、情報処理システムは、アドレス変換情報の全部、アクセス頻度情報、空き物理アドレス情報、および、アドレス変換情報の一部のそれぞれの読出しを初期化処理において全て行う構成としているが、この構成に限定されない。例えば、メモリコントローラ２００がアクセス頻度に関わらずにアドレス変換情報の一部を保持する場合には、情報処理システムはアクセス頻度情報の読出しを初期化処理において行わない構成とすることもできる。また、情報処理システムは、ホストコンピュータ１００がアドレス変換情報を初期化処理前に既に保持している場合などには、その読出しを初期化処理において行わない構成とすることもできる。例えば、ホストコンピュータ１００が、一回目の初期化処理において読み出したアドレス変換情報を、不揮発性メモリ３００以外の不揮発性の記憶装置に保持しておく構成では、二回目の初期化処理において、アドレス変換情報の読出しは不要となる。
【０１１２】
また、情報処理システムは、アクセス頻度情報および空き物理アドレス情報の転送先をメモリコントローラ２００に設定しているが、メモリコントローラ２００の代わりにホストコンピュータ１００を転送先に設定してもよい。アクセス頻度情報の転送先をホストコンピュータ１００に設定した場合、アクセス頻度情報の管理をホストコンピュータ１００が行う。そして、メモリコントローラ２００に保持させるアドレス変換情報ページをホストコンピュータ１００がアクセス頻度に基づいて決定し、メモリコントローラ２００に指示する。また、空き物理アドレス情報の転送先をホストコンピュータ１００に設定した場合、未割当の論理ページに対する、空き物理アドレスの割り当てをホストコンピュータ１００が行う。そして、ホストコンピュータ１００は、アドレス変換情報ページを更新し、更新したページをメモリコントローラ２００に供給する。
【０１１３】
また、初期化処理において、アドレス変換情報の全部、アクセス頻度情報、空き物理アドレス情報、および、アドレス変換情報の一部のそれぞれの読出しの順番は、この順番に限定されない。例えば、アドレス変換情報の一部の読出しにおいて、アクセス頻度情報を参照しない構成においては、アドレス変換情報の一部とアクセス頻度情報とのそれぞれの読出しの順番は任意である。
【０１１４】
［メモリコントローラの動作例］
図１８は、第１の実施の形態におけるコントローラ側処理の一例を示すフローチャートである。この動作は、例えば、情報処理システムに電源が投入されたときにメモリコントローラ２００により開始される。メモリコントローラ２００は、まず、コントローラ側初期化処理を実行する（ステップＳ９３０）。
【０１１５】
そして、メモリコントローラ２００は、データ転送処理（ステップＳ９６０）を実行する。また、メモリコントローラ２００は、リードコマンドを受信したか否かを判断する（ステップＳ９４１）。リードコマンドを受信したのであれば（ステップＳ９４１：Ｙｅｓ）、メモリコントローラ２００は、リード制御処理（ステップＳ９５０）を実行する。
【０１１６】
リードコマンドを受信していなければ（ステップＳ９４１：Ｎｏ）、メモリコントローラ２００は、ライトコマンドを受信したか否かを判断する（ステップＳ９４２）。ライトコマンドを受信したのであれば（ステップＳ９４２：Ｙｅｓ）、メモリコントローラ２００は、ライト制御処理（ステップＳ９７０）を実行する。ライトコマンドを受信していない場合（ステップＳ９４２：Ｎｏ）、または、ステップＳ９５０、Ｓ９７０の後、メモリコントローラ２００は、ステップＳ９４１に戻る。
【０１１７】
図１９は、第１の実施の形態におけるコントローラ側初期化処理の一例を示すフローチャートである。メモリコントローラ２００は、アドレス変換情報を読み出すための初期化コマンドを受信したか否かを判断する（ステップＳ９３１）。アドレス変換情報を読み出すための初期化コマンドを受信していなければ（ステップＳ９３１：Ｎｏ）、メモリコントローラ２００は、ステップＳ９３１に戻る。一方、その初期化コマンドを受信していれば（ステップＳ９３１：Ｙｅｓ）、メモリコントローラ２００は、アドレス変換情報を不揮発性メモリ３００から読み出して、ホストコンピュータ１００に転送する。また、メモリコントローラ２００は、初期化コマンドの実行結果を記載したステータスをホストコンピュータ１００に供給する（ステップＳ９３２）。
【０１１８】
また、メモリコントローラ２００は、アクセス頻度情報を読み出すための初期化コマンドを受信したか否かを判断する（ステップＳ９３３）。アクセス頻度情報を読み出すための初期化コマンドを受信していなければ（ステップＳ９３３：Ｎｏ）、メモリコントローラ２００は、ステップＳ９３３に戻る。一方、その初期化コマンドを受信していれば（ステップＳ９３３：Ｙｅｓ）、メモリコントローラ２００は、アクセス頻度情報を不揮発性メモリ３００から取得してＲＡＭ２３０に保持する。そして、メモリコントローラ２００は、アドレス変換情報ページのそれぞれのアクセス回数に対して所定の係数（例えば、０．５）を乗じる重み付けを行ってＲＡＭ２３０に書き戻す。また、メモリコントローラ２００は、初期化コマンドの実行結果を記載したステータスをホストコンピュータ１００に供給する（ステップＳ９３４）。
【０１１９】
また、メモリコントローラ２００は、空き物理アドレス情報を読み出すための初期化コマンドを受信したか否かを判断する（ステップＳ９３５）。空き物理アドレス情報を読み出すための初期化コマンドを受信していなければ（ステップＳ９３５：Ｎｏ）、メモリコントローラ２００は、ステップＳ９３５に戻る。一方、その初期化コマンドを受信していれば（ステップＳ９３５：Ｙｅｓ）、メモリコントローラ２００は、空き物理アドレス情報を不揮発性メモリ３００から取得して保持する。また、メモリコントローラ２００は、初期化コマンドの実行結果を記載したステータスをホストコンピュータ１００に供給する（ステップＳ９３６）。
【０１２０】
また、メモリコントローラ２００は、アドレス変換情報の一部を読み出すための初期化コマンドを受信したか否かを判断する（ステップＳ９３７）。アドレス変換情報の一部を読み出すための初期化コマンドを受信していなければ（ステップＳ９３７：Ｎｏ）、メモリコントローラ２００は、ステップＳ９３７に戻る。一方、その初期化コマンドを受信していれば（ステップＳ９３７：Ｙｅｓ）、メモリコントローラ２００は、アクセス頻度に基づいてアドレス変換情報の一部（例えば、３２ページ）を不揮発性メモリ３００から取得して保持する（ステップＳ９３８）。
【０１２１】
具体的には、ステップＳ９３８においてメモリコントローラ２００は、アクセス頻度情報を参照して、アクセス頻度の高い上位３２ページのアドレス変換情報ページのそれぞれのページ番号を取得する。これらのページ番号をＫｉ（ｉは、１乃至Ｋ３２の整数）とする。
【０１２２】
そして、データ転送部２２４は、次の式を使用して、読み出す物理ページアドレスＰｉを取得し、その物理ページアドレスを指定したリードリクエストを発行する。
Ｐｉ＝Ｐ０＋（ページサイズ）×Ｋｉ                              ・・・式２
上式において、Ｐ０は、不揮発性メモリ３００内のアドレス変換情報保持領域３２２における先頭の物理ページアドレスである。また、ページサイズは、アドレス変換情報ページのデータサイズであり、４，０９６（バイト）である。
【０１２３】
メモリコントローラ２００は、読み出した３２ページのアドレス変換情報ページを、メモリコントローラ２００内のアドレス変換情報保持領域２３１に保持する。
【０１２４】
また、メモリコントローラ２００は、初期化コマンドの実行結果を記載したステータスをホストコンピュータ１００に供給する（ステップＳ９３８）。ステップＳ９３８の後、メモリコントローラ２００は、コントローラ側初期化処理を終了する。
【０１２５】
なお、メモリコントローラ２００は、ホストコンピュータ１００からの初期化コマンドに従って、コントローラ側初期化処理を行う構成としているが、この構成に限定されない。例えば、ホスト側初期化処理においてホストコンピュータ１００が初期化コマンドを発行せず、メモリコントローラ２００が、コントローラ側初期化処理を自発的に行ってもよい。
【０１２６】
図２０は、第１の実施の形態におけるリード制御処理の一例を示すフローチャートである。メモリコントローラ２００は、リードコマンドにより指定された論理ページアドレスおよび転送ページ数が適切な値であるか否かを判断する（ステップＳ９５１）。
【０１２７】
具体的には、次の３つの場合に、論理ページアドレスまたは転送ページ数が適切な値でないと判断される。まず、指定された、読出開始ページアドレスまたは書込開始ページアドレスが、予め定義された論理ページアドレス空間内のアドレスでない場合には、その論理ページアドレスが適切な値でないと判断される。例えば、０ｘ０００００乃至０ｘ０７ｂｆｆｆの範囲外の論理ページアドレスなどである。
【０１２８】
また、転送ページ数が、論理ページアドレス空間の全ページ数（５０７，９０４）より多い場合には、転送ページ数が適切な値でないと判断される。なお、論理ページアドレス空間の全ページ数より小さな上限値（例えば、２５６）を予め定義しておき、転送ページ数が、その上限値より大きい場合に、適切な値でないと判断する構成であってもよい。
【０１２９】
また、指定された論理ページアドレスに転送ページ数を加えたアドレスが、定義された論理ページアドレス空間内のアドレスに該当しない場合には、指定された論理ページアドレスおよび転送ページ数が適切な値でないと判断される。
【０１３０】
指定された論理ページアドレスおよび転送ページ数が適切な値でない場合（ステップＳ９５１：Ｎｏ）、メモリコントローラ２００は、エラーを記載したステータスを生成してホストコンピュータ１００に通知する（ステップＳ９５２）。
【０１３１】
一方、指定された論理ページアドレスおよび転送ページ数が適切な値である場合（ステップＳ９５１：Ｙｅｓ）、メモリコントローラ２００は、読み出す対象の対象論理ページアドレスを含むアドレス変換情報ページのページ番号を取得する。そして、メモリコントローラ２００は、そのページ番号のアドレス変換情報ページが、保持しているアドレス変換情報内にあるか否かを判断する（ステップＳ９５３）。ここで、対象論理ページアドレスには、読出開始ページアドレスが最初に設定される。
【０１３２】
該当するアドレス変換情報ページがなければ（ステップＳ９５３：Ｎｏ）、メモリコントローラ２００は、ページ取得要求リクエストにより、そのアドレス変換情報ページをホストコンピュータ１００から取得する（ステップＳ９５４）。
【０１３３】
該当するアドレス変換情報ページがある場合（ステップＳ９５３：Ｙｅｓ）、または、ステップＳ９５４の後、メモリコントローラ２００は、指定された論理ページアドレスを物理ページアドレスに変換する（ステップＳ９５５）。
【０１３４】
そして、メモリコントローラ２００は、その物理ページアドレスを指定するリードリクエストを生成し、そのリクエストを待ち行列に追加する。また、メモリコントローラ２００は、アクセス頻度情報を更新する。具体的には、対象論理ページアドレスを含むアドレス変換情報ページのアクセス回数を所定値（例えば、「１」）だけ増分する（ステップＳ９５６）。
【０１３５】
メモリコントローラ２００は、指定されたページ数を読み出すためのリードリクエストの生成が終了したか否かを判断する（ステップＳ９５７）。リードリクエストの生成が終了していなければ（ステップＳ９５７：Ｎｏ）、メモリコントローラ２００は、現在の対象論理ページアドレスの次のページアドレスに、対象論理ページアドレスを更新する。例えば、現在の対象論理ページアドレスが０ｘ０１３ｆｆである場合、そのアドレスに０ｘ００００１を加えた０ｘ０１４００に対象論理ページアドレスが更新される（ステップＳ９５８）。ステップＳ９５８の後、メモリコントローラ２００は、ステップＳ９５３に戻る。
【０１３６】
リードリクエストの生成が終了した場合（ステップＳ９５７：Ｙｅｓ）、または、ステップＳ９５２の後、メモリコントローラ２００は、リード制御処理を終了する。
【０１３７】
なお、論理ページアドレスおよび転送ページ数が適切な値であるか否かを判断する処理をメモリコントローラ２００が行う構成としているが、メモリコントローラ２００の代わりにホストコンピュータ１００が、この処理を行う構成としてもよい。
【０１３８】
図２１は、第１の実施の形態におけるデータ転送処理の一例を示すフローチャートである。メモリコントローラ２００は、リクエストの待ち行列に、実行待ちのリードリクエストがあるか否かを判断する（ステップＳ９６１）。
【０１３９】
実行待ちのリードリクエストがある場合には（ステップＳ９６１：Ｙｅｓ）、メモリコントローラ２００は、そのリードリクエストを待ち行列から取り出して、不揮発性メモリ３００に供給する。そして、メモリコントローラ２００は、指定した物理ページアドレスからのリードデータを不揮発性メモリ３００から取得する（ステップＳ９６２）。
【０１４０】
メモリコントローラ２００は、ＥＣＣに基づいてリードデータの誤りの検出および訂正を行う（ステップＳ９６３）。メモリコントローラ２００は、訂正したリードデータをステータスとともにホストコンピュータ１００に転送する。ただし、訂正に失敗した場合には、メモリコントローラ２００は、エラーを記載したステータスを生成してホストコンピュータ１００に供給する（ステップＳ９６４）。
【０１４１】
メモリコントローラ２００は、リードデータまたはステータスの転送が終了したか否かを判断する（ステップＳ９６５）。転送が終了していなければ（ステップＳ９６５：Ｎｏ）、メモリコントローラ２００は、ステップＳ９６５に戻る。一方、転送が終了していれば（ステップＳ９６５：Ｙｅｓ）、メモリコントローラ２００は、ステップＳ９６１に戻る。
【０１４２】
実行待ちのリードリクエストがない場合には（ステップＳ９６１：Ｎｏ）、メモリコントローラ２００は、リクエストの待ち行列に、実行待ちのライトリクエストがあるか否かを判断する（ステップＳ９６６）。実行待ちのライトリクエストがある場合には（ステップＳ９６６：Ｙｅｓ）、メモリコントローラ２００は、そのライトリクエストを待ち行列から取り出して、不揮発性メモリ３００に供給する。
【０１４３】
メモリコントローラ２００は、ライトデータをＥＣＣに符号化する（ステップＳ９６７）。メモリコントローラ２００は、符号化したライトデータとともにライトリクエストを不揮発性メモリ３００に供給して、ライトデータの書込みを行う。ここで、不揮発性メモリ３００が書込みに失敗した場合には、メモリコントローラ２００は、エラーを記載したステータスを生成してホストコンピュータ１００に供給する（ステップＳ９６８）。
【０１４４】
メモリコントローラ２００は、ライトデータの書込みが終了したか否かを判断する（ステップＳ９６９）。書込みが終了していなければ（ステップＳ９６９：Ｎｏ）、メモリコントローラ２００は、ステップＳ９６９−１に戻る。一方、書込みが終了していれば（ステップＳ９６９：Ｙｅｓ）、メモリコントローラ２００は、ステップＳ９６１に戻る。
【０１４５】
実行待ちのライトリクエストがない場合には（ステップＳ９６６：Ｎｏ）、メモリコントローラ２００は、データ転送処理を終了する。
【０１４６】
図２２は、第１の実施の形態におけるライト制御処理の一例を示すフローチャートである。メモリコントローラ２００は、ライトコマンドにより指定された論理ページアドレスおよび転送ページ数が適切な値であるか否かを判断する（ステップＳ９７１）。
【０１４７】
指定された論理ページアドレスおよび転送ページ数が適切な値でない場合（ステップＳ９７１：Ｎｏ）、メモリコントローラ２００は、エラーを記載したステータスを生成してホストコンピュータ１００に通知する（ステップＳ９７２）。
【０１４８】
一方、指定された論理ページアドレスおよび転送ページ数が適切な値である場合（ステップＳ９７１：Ｙｅｓ）、メモリコントローラ２００は、書き込む対象の対象論理ページアドレスを含むアドレス変換情報ページのページ番号を取得する。そして、メモリコントローラ２００は、そのページ番号のアドレス変換情報ページが、保持しているアドレス変換情報内にあるか否かを判断する（ステップＳ９７３）。ここで、対象論理ページアドレスには、書込開始ページアドレスが最初に設定される。
【０１４９】
該当するアドレス変換情報ページがなければ（ステップＳ９７３：Ｎｏ）、メモリコントローラ２００は、ページ取得要求リクエストにより、そのアドレス変換情報ページをホストコンピュータ１００から取得する（ステップＳ９７４）。
【０１５０】
該当するアドレス変換情報ページがある場合（ステップＳ９７３：Ｙｅｓ）、または、ステップＳ９７４の後、メモリコントローラ２００は、空き物理アドレス割当処理を行う（ステップＳ９８０）。メモリコントローラ２００は、アドレス変換情報ページに基づいて、指定された論理ページアドレスを物理ページアドレスに変換する（ステップＳ９７５）。
【０１５１】
そして、メモリコントローラ２００は、その物理ページアドレスを指定するライトリクエストを生成し、そのリクエストを待ち行列に追加する。また、メモリコントローラ２００は、アクセス頻度情報を更新する（ステップＳ９７６）。
【０１５２】
メモリコントローラ２００は、指定されたページ数を書き込むためのライトリクエストの生成が終了したか否かを判断する（ステップＳ９７７）。ライトリクエストの生成が終了していなければ（ステップＳ９７７：Ｎｏ）、メモリコントローラ２００は、現在の対象論理ページアドレスの次のページアドレスに、対象論理ページアドレスを更新する（ステップＳ９７８）。ステップＳ９７８の後、メモリコントローラ２００は、ステップＳ９７３に戻る。
【０１５３】
ライトリクエストの生成が終了した場合（ステップＳ９７７：Ｙｅｓ）、または、ステップＳ９７２の後、メモリコントローラ２００は、ライト制御処理を終了する。
【０１５４】
図２３は、第１の実施の形態における空き物理アドレス割当処理の一例を示すフローチャートである。メモリコントローラ２００は、指定された論理ページアドレスに対応するエントリを参照して、その論理ページアドレスに物理ページアドレスが割当済であるか否かを判断する（ステップＳ９８１）。
【０１５５】
物理ページアドレスが割当済でない場合（ステップＳ９８１：Ｎｏ）、メモリコントローラ２００は、空き物理アドレス情報を参照し、空いている物理ページアドレスのいずれかを選択する。メモリコントローラ２００は、空き物理アドレス情報において、選択した物理ページアドレスの使用状況を「使用中」に更新する（ステップＳ９８２）。また、メモリコントローラ２００は、選択した物理ページアドレスを指定された論理ページアドレスに割り当てる。具体的には、メモリコントローラ２００は、指定された論理ページアドレスにかかるエントリ内の物理ページアドレスを、選択した物理ページアドレスにより更新する。また、メモリコントローラ２００は、そのエントリの割当状況を「割当済」に更新する（ステップＳ９８３）。そして、メモリコントローラ２００は、更新したアドレス変換情報ページをホストコンピュータ１００に供給する（ステップＳ９８４）。
【０１５６】
物理ページアドレスが割当済である場合（ステップＳ９８１：Ｙｅｓ）、または、ステップＳ９８４の後、メモリコントローラ２００は、空き物理アドレス割当処理を終了する。
【０１５７】
図２４は、第１の実施の形態における初期化時の情報処理システムの動作を示すシーケンス図の一例である。まず、ホストコンピュータ１００は、アドレス変換情報保持領域３２２のアドレスを指定し、転送先をホストコンピュータ１００に設定した初期化コマンドを発行してメモリコントローラ２００に供給する。メモリコントローラ２００は、初期化コマンドに従って、アドレス変換情報の全部を不揮発性メモリ３００から読み出し、ホストコンピュータ１００に転送する。ホストコンピュータ１００は、転送されたアドレス変換情報を保持する（ステップＳ９１２）。
【０１５８】
また、ホストコンピュータ１００は、アクセス頻度情報保持領域３２３のアドレスを指定し、転送先をメモリコントローラ２００に設定した初期化コマンドを発行してメモリコントローラ２００に供給する。メモリコントローラ２００は、初期化コマンドに従って、アクセス頻度情報を不揮発性メモリ３００から読み出して保持する（ステップＳ９３４）。
【０１５９】
また、ホストコンピュータ１００は、空き物理アドレス情報保持領域３２４のアドレスを指定し、転送先をメモリコントローラ２００に設定した初期化コマンドを発行してメモリコントローラ２００に供給する。メモリコントローラ２００は、初期化コマンドに従って、空き物理アドレス情報を不揮発性メモリ３００から読み出して保持する（ステップＳ９３６）。
【０１６０】
また、ホストコンピュータ１００は、アドレス変換情報保持領域３２２のアドレスを指定し、転送先をメモリコントローラ２００に設定した初期化コマンドを発行してメモリコントローラ２００に供給する。メモリコントローラ２００は、初期化コマンドに従って、アドレス変換情報の一部を不揮発性メモリ３００から読み出して保持する（ステップＳ９３８）。
【０１６１】
図２５は、第１の実施の形態におけるユーザデータのリード時の情報処理システムの動作を示すシーケンス図の一例である。転送ページ数が２ページのリードコマンドＣ１が発行され、そのリードコマンドＣ１がメモリリードコマンドＲ１ａおよびＲ１ｂに分割されたものとする。また、リードコマンドＣ１の１ページ目の論理ページアドレスＬ１ａに対応するエントリはメモリコントローラ２００に保持されており、２ページ目の論理ページアドレスＬ１ｂに対応するエントリは、メモリコントローラ２００に保持されていないものとする。
【０１６２】
ホストコンピュータ１００は、リードコマンドＣ１を発行してメモリコントローラ２００に供給する。メモリコントローラ２００は、リードコマンドＣ１の１ページ目の論理ページアドレスＬ１ａに対応するエントリを参照し、その論理ページアドレスＬ１ａを物理ページアドレスＰ１ａに変換する（ステップＳ９５５）。そして、メモリコントローラ２００は、物理ページアドレスＰ１ａを指定したメモリリードコマンドＲ１ａを生成して、不揮発性メモリ３００に供給する。メモリコントローラ２００は、物理ページアドレスＰ１ａから読み出されたユーザデータＤ１ａを不揮発性メモリ３００から取得して、ホストコンピュータ１００に転送する。
【０１６３】
また、メモリコントローラ２００は、２ページ目の論理ページアドレスＬ１ｂに対応するエントリを保持していないため、そのエントリを含むアドレス変換情報ページをページ取得リクエストにより、ホストコンピュータ１００に要求する。ユーザデータＤ１ａの読出し中などにおいて、メモリコントローラ２００は、要求したアドレス変換情報ページをホストコンピュータ１００から取得する。詳細には、このアドレス変換情報の取得は、ユーザデータＤ１ａの不揮発性メモリからの読み出し（ステップＳ９６２）、誤り訂正（ステップＳ９６３）、ホストへのユーザデータＤ１ａの転送（ステップＳ９６４）のいずれかあるいは複数の処理と同時に行われる。メモリコントローラ２００は、そのアドレス変換情報ページに基づいて論理ページアドレスＬ１ｂを物理ページアドレスＰ１ｂに変換する（ステップＳ９５５）。そして、メモリコントローラ２００は、物理ページアドレスＰ１ｂを指定したメモリリードコマンドＲ１ｂを生成して、不揮発性メモリ３００に供給する。メモリコントローラ２００は、物理ページアドレスＰ１ｂから読み出されたユーザデータＤ１ｂを不揮発性メモリ３００から取得して、ホストコンピュータ１００に転送する。
【０１６４】
図２６は、第１の実施の形態におけるリード時のメモリコントローラの動作を示すタイミングチャートの一例である。転送ページ数が２ページのリードコマンドＣ１が発行され、そのリードコマンドＣ１がメモリリードコマンドＲ１ａおよびＲ１ｂに分割されたものとする。また、リードコマンドＣ１の１ページ目の論理ページアドレスＬ１ａに対応するエントリはメモリコントローラ２００に保持されており、２ページ目の論理ページアドレスＬ１ｂに対応するエントリは、メモリコントローラ２００に保持されていないものとする。
【０１６５】
図２６のａは、アドレス変換情報ページをホストコンピュータ１００から取得する第１の実施形態におけるタイミングチャートである。時刻ｔ０においてアドレス変換部２２３は、リードコマンドＣ１の１ページ目の論理ページアドレスＬ１ａに対応するエントリを参照して、論理ページアドレスＬ１ａを物理ページアドレスＰ１ｂに変換する。
【０１６６】
時刻ｔ１までの間にデータ転送部２２４は、変換した物理ページアドレスＰ１ａを指定したメモリリードコマンドＲ１ａを発行する。時刻ｔ１から時刻ｔ２までの間においてアドレス変換情報取得部２２２は、リードコマンドＣ１の２ページ目の論理ページアドレスＬ１ｂに対応するアドレス変換情報ページをホストコンピュータ１００に要求する。
【０１６７】
また、時刻ｔ１において、データ転送部２２４は、物理ページアドレスＰ１ａから読み出されたユーザデータＤ１ａの転送を開始する。
【０１６８】
時刻ｔ２から時刻ｔ３までの間において、アドレス変換情報取得部２２２は、２ページ目の論理ページアドレスＬ１ｂに対応するアドレス変換情報ページをホストコンピュータ１００から取得する。
【０１６９】
時刻ｔ３から時刻ｔ４の間において、アドレス変換部２２３は、取得したアドレス変換情報ページを参照して、論理ページアドレスＬ１ｂを物理ページアドレスＰ１ｂに変換する。また、データ転送部２２４は、その物理ページアドレスＰ１ｂを指定したメモリリードコマンドＲ１ｂを発行する。
【０１７０】
そして時刻ｔ５においてユーザデータＤ１ａの転送が終了すると、データ転送部２２４は、物理ページアドレスＰ１ｂから読み出されたユーザデータＤ１ｂの転送を開始する。時刻ｔ５の後の時刻ｔ８において、ユーザデータＤ１ｂの転送が終了する。
【０１７１】
図２６のｂは、アドレス変換情報ページを不揮発性メモリから取得する構成を仮定した比較例におけるタイミングチャートである。時刻ｔ０においてアドレス変換部２２３は、リードコマンドＣ１の１ページ目の論理ページアドレスＬ１ａに対応するエントリを参照して、論理ページアドレスＬ１ａを物理ページアドレスＰ１ａに変換する。
【０１７２】
時刻ｔ１までの間にデータ転送部２２４は、変換した物理ページアドレスＰ１ａを指定したメモリリードコマンドＲ１ａを発行する。時刻ｔ１から時刻ｔ２までの間においてアドレス変換部２２３は、２ページ目の論理ページアドレスＬ１ｂに対応するアドレス変換情報ページをホストコンピュータ１００を不揮発性メモリ３００から取得する。
【０１７３】
また、時刻ｔ１において、データ転送部２２４は、物理ページアドレスＰ１ａから読み出されたユーザデータＤ１ａの転送を開始する。
【０１７４】
時刻ｔ５においてユーザデータＤ１ａの転送が終了すると、時刻ｔ５から時刻ｔ６までの間において、アドレス変換部２２３は、論理ページアドレスＬ１ｂに対応するアドレス変換情報ページを不揮発性メモリ３００から取得する。
【０１７５】
なお、ホストコンピュータ１００とメモリコントローラ２００との間のデータ転送速度は、不揮発性メモリ３００とメモリコントローラ２００との間のデータ転送速度より高速であることが多い。このため、不揮発性メモリ３００からのアドレス変換情報の取得にかかる時間（＝ｔ６−ｔ５）は、ホストコンピュータ１００からのアドレス変換情報の取得にかかる時間（＝ｔ３−ｔ２）よりも長くなることが多い。
【０１７６】
時刻ｔ６から時刻ｔ７の間において、アドレス変換部２２３は、取得したアドレス変換情報ページを参照して、論理ページアドレスＬ１ｂを物理ページアドレスＰ１ｂに変換する。また、データ転送部２２４は、その物理ページアドレスＰ１ｂを指定したメモリリードコマンドを発行する。
【０１７７】
時刻ｔ７において、データ転送部２２４は、物理ページアドレスＰ１ｂから読み出されたユーザデータＤ１ｂの転送を開始する。時刻ｔ７およびｔ８の後の時刻ｔ９において、ユーザデータＤ１ｂの転送が終了する。
【０１７８】
アドレス変換情報をホストコンピュータ１００から取得する場合の図２６のａと、アドレス変換情報を不揮発性メモリ３００から取得する場合の同図のｂとを比較する。前者では、不揮発性メモリ３００からのユーザデータの読出しと、ホストコンピュータ１００からのアドレス変換情報の取得とを並行して実行することができる。このため、ユーザデータＤ１ａの転送中に、メモリコントローラ２００は、次のユーザデータＤ１ｂの転送に必要なアドレス変換情報ページを取得しておくことができる。したがって、メモリコントローラ２００は、ユーザデータＤ１ａの転送が終了した時刻ｔ５において、ユーザデータＤ１ｂの転送を開始することができる。
【０１７９】
これに対して、後者では、アドレス変換情報を不揮発性メモリ３００から読み出すため、アドレス変換情報の読出しとユーザデータの読出しとを並行して実行することができない。したがって、ユーザデータＤ１ａの転送が終了した時刻ｔ５になってからでないとメモリコントローラ２００は、アドレス変換情報の転送を開始することができない。そして、そのアドレス変換情報の転送の終了した時刻ｔ６になってからでないと、メモリコントローラ２００は、次のユーザデータＤ１ｂの転送を開始することができない。言い換えれば、ユーザデータＤ１ｂの転送が、アドレス変換情報の転送時間の分、遅延してしまう。
【０１８０】
したがって、図２６のａに例示したようにアドレス変換情報をホストコンピュータ１００から取得することにより、同図のｂに例示したように、アドレス変換情報の転送によりユーザデータＤ２の転送が遅延することが抑制される。この結果、データの転送時間が短くなる。
【０１８１】
このように、本技術の第１の実施の形態によれば、メモリコントローラ２００がエントリをホストコンピュータ１００から取得するため、エントリの取得と転送データの転送とを並列に行うことができる。これにより、エントリの取得による遅延を抑制して、転送データの転送時間を短くすることができる。
【０１８２】
＜２．第２の実施の形態＞
［ホストコンピュータの構成例］
第１の実施の形態においては、転送データのデータサイズ（転送ページ数）に関わらず、メモリコントローラ２００がアドレス変換を行っていた。しかし、転送コマンドにより指定された転送ページ数が比較的小さい場合には、メモリコントローラ２００は、エントリの転送と転送データの転送とを並列に行うことができないおそれがある。例えば、転送ページ数が「１」のリードコマンドＣ１によるユーザデータＤ１の転送が終了してから、転送ページ数が「１」のリードコマンドＣ２が発行された場合を考える。この場合、ユーザデータＤ１の転送が終了しているため、メモリコントローラ２００は、リードコマンドＣ２に対応するエントリの転送と、ユーザデータＤ１の転送とを並列に実行することができない。このため、転送データの転送時間を短くすることができなくなる。
【０１８３】
第２の実施の形態の情報処理システムは、転送ページ数が比較的少ない場合には、メモリコントローラ２００の代わりにホストコンピュータ１００がアドレス変換を行う点において第１の実施の形態と異なる。
【０１８４】
図２７は、第２の実施の形態のホストコンピュータ１００の一構成例を示すブロック図である。第２の実施の形態のホストコンピュータ１００は、アドレス変換部１２５をさらに備える点において第１の実施の形態と異なる。また、第２の実施の形態のホストコンピュータ１００は、ＲＡＭ１３０に空き物理アドレス情報保持領域１３２をさらに設ける点において第１の実施の形態と異なる。
【０１８５】
第２の実施の形態の初期化処理部１２１は、初期化処理において、空き物理アドレス情報を読み出すためのリードコマンドをさらに発行する。このリードコマンドの転送先は、ホストコンピュータ１００に設定される。そして初期化処理部１２１は、空き物理アドレス情報をメモリコントローラ２００から取得して空き物理アドレス情報保持領域１３２に保持させる。
【０１８６】
アドレス変換部１２５は、転送コマンドにより指定された転送ページ数が所定値（例えば、「２」）より少ないか否かを判断する。転送ページ数が所定値より少ない場合には、アドレス変換部１２５は、アドレス変換情報および空き物理アドレス情報を参照して、指定された論理ページアドレスを物理ページアドレスに変換する。そして、アドレス変換部１２５は、オンに設定した変換済フラグと、変換した物理ページアドレスとを転送コマンドに付加してデータ転送処理部１２３に供給する。この変換済フラグは、ホストコンピュータ１００がアドレス変換を行ったか否かを示すフラグであり、例えば、ホストコンピュータ１００がアドレス変換した場合にオンに設定され、そうでない場合にオフに設定される。
【０１８７】
一方、転送ページ数が所定値以上である場合には、アドレス変換部１２５は、アドレス変換を行わずに、オフに設定した変換済フラグを転送コマンドに付加してデータ転送処理部１２３に供給する。
【０１８８】
また、第２の実施の形態のアドレス変換情報管理部１２４は、更新されたアドレス変換情報ページを受け取った場合には、必要に応じて空き物理アドレス情報も更新する。
【０１８９】
また、変換済フラグがオンの転送コマンドを受け取ったメモリコントローラ２００は、そのコマンドにより指定された論理ページアドレスおよび物理ページアドレスを用いて、ＲＡＭ２３０内のアドレス変換情報および空き物理アドレス情報を更新する。これにより、ホストコンピュータ１００およびメモリコントローラ２００のそれぞれが保持するアドレス変換情報および空き物理アドレス情報の整合性が確保される。
【０１９０】
なお、メモリコントローラ２００は変換済フラグがオンの転送コマンドを用いて、自身が保持するアドレス変換情報および空き物理アドレス情報を更新しているが、この構成に限定されない。例えば、ホストコンピュータ１００内のアドレス変換情報管理部１２４は、更新にかかる論理ページアドレスおよび物理ページアドレスを示す通知を、転送コマンドと別途にメモリコントローラ２００に供給する構成であってもよい。この場合、メモリコントローラ２００は、それらのアドレスに基づいて、自身が保持するアドレス変換情報および空き物理アドレス情報を更新する。
【０１９１】
また、アドレス変換情報管理部１２４は、転送コマンドと別途に、更新されたアドレス変換情報ページおよび空き物理情報ページを示す通知をメモリコントローラ２００に供給してもよい。この場合、メモリコントローラ２００は、それらのページに基づいて、自身が保持するアドレス変換情報および空き物理アドレス情報を更新する。
【０１９２】
また、ホストコンピュータ１００内のアドレス変換部１２５は、アドレス変換において、物理ページアドレスの新たな割り当てが必要であると判断した場合、メモリコントローラ２００にアドレス変換を行わせる処理に変更してもよい。具体的には、アドレス変換部１２５は、転送ページ数が所定値未満であり、かつ、論理ページアドレスに物理ページアドレスが割当済である場合に、アドレス変換を行う。一方、転送ページ数が所定値以上である場合、または、論理ページアドレスに物理ページアドレスが未割当である場合には、ホストコンピュータ１００は、アドレス変換を行わずに、変換済フラグをオフにした転送コマンドを供給する。この構成においては、ホストコンピュータ１００は、空き物理アドレス情報を保持する必要はない。
【０１９３】
図２８は、第２の実施の形態における転送コマンドのデータ構成の一例を示す図である。同図におけるａは、転送ページ数が所定値以上である場合の転送コマンドの一例である。この場合には、ホストコンピュータ１００はアドレス変換を行わないため、オフに設定された変換済フラグが転送コマンドに付加される。
【０１９４】
図２８におけるｂは、転送ページ数が所定値未満である場合の転送コマンドの一例である。この場合には、ホストコンピュータ１００はアドレス変換を行うため、オンに設定された変換済フラグと、変換された物理ページアドレスとが転送コマンドに付加される。また、変換前の論理ページアドレスは転送コマンドにおいて削除されず、物理ページアドレスとともにメモリコントローラ２００に供給される。この論理ページアドレスは、アクセス頻度の更新に用いられる。なお、図２８において、転送元アドレスまたは転送先アドレスは省略されている。
【０１９５】
第２の実施の形態のメモリコントローラ２００は、変換済フラグがオンである場合には、アドレス変換を行わず、付加された物理ページアドレスを指定した転送リクエストを生成する。一方、変換済フラグがオフである場合には、メモリコントローラ２００は、第１の実施の形態と同様に、アドレス変換を行って転送リクエストを生成する。
【０１９６】
なお、転送ページ数が所定値未満である場合に、ホストコンピュータ１００は、物理ページアドレスとともに論理ページアドレスをメモリコントローラ２００に供給する構成としているが、物理ページアドレスのみを供給してもよい。この場合には、ホストコンピュータ１００がアドレス変換を行ったときに、メモリコントローラ２００はアクセス頻度を更新しない。
【０１９７】
図２９は、第２の実施の形態におけるホスト側処理の一例を示すフローチャートである。第２の実施の形態のホスト側処理は、ステップＳ９９５乃至Ｓ９９９をさらに実行する点において第１の実施の形態と異なる。
【０１９８】
転送コマンドが発行されると（ステップＳ９２３：Ｙｅｓ）、ホストコンピュータ１００は、転送コマンドにより指定された転送ページ数が２ページ以上であるか否かを判断する（ステップＳ９９５）。転送ページ数が２ページ以上である場合には（ステップＳ９９５：Ｙｅｓ）、ホストコンピュータ１００は、オフの変換済フラグを付加した転送コマンドをメモリコントローラ２００に供給する（ステップＳ９２４）。そして、ホストコンピュータ１００は、ステップＳ９２５乃至Ｓ９２７を実行する。
【０１９９】
転送ページ数が２ページ未満である場合には（ステップＳ９９５：Ｎｏ）、ホストコンピュータ１００は、論理ページアドレスを物理ページアドレスに変換する（ステップＳ９９６）。ホストコンピュータ１００は、アドレス変換において、空いている物理ページアドレスを新たに割り当てた場合には、空き物理アドレス情報を更新する（ステップＳ９９７）。
【０２００】
ホストコンピュータ１００は、変換済フラグをオンにする（ステップＳ９９８）。ホストコンピュータ１００は、その変換済フラグおよび物理ページアドレスを転送コマンドに付加してメモリコントローラ２００に供給し（ステップＳ９９９）、ステップＳ９２３に戻る。
【０２０１】
図３０は、第２の実施の形態におけるホスト側初期化処理の一例を示すフローチャートである。第２の実施の形態のホスト側初期化処理は、ステップＳ９１６乃至Ｓ９１８をさらに実行する点において第１の実施の形態と異なる。
【０２０２】
アクセス頻度情報の読出しが終了すると（ステップＳ９１５：Ｙｅｓ）、ホストコンピュータ１００は、空き物理アドレス情報を読み出すための初期化コマンドを発行する。この初期化コマンドにおいて、リードデータである空き物理アドレス情報の転送先はホストコンピュータ１００に設定される。ホストコンピュータ１００は、その初期化コマンドをメモリコントローラ２００に供給する（ステップＳ９１６）。
【０２０３】
そして、ホストコンピュータ１００は、読み出された空き物理アドレス情報ページを保持する（ステップＳ９１７）。ホストコンピュータ１００は、空き物理アドレス情報ページの全ページ（３２ページ）の読出しが終了したか否かを、メモリコントローラ２００からのステータスに基づいて判断する（ステップＳ９１８）。全ページの読出しが終了していなければ（ステップＳ９１８：Ｎｏ）、ホストコンピュータ１００は、ステップＳ９１７に戻る。
【０２０４】
空き物理アドレス情報の読出しが終了したのであれば（ステップＳ９１８：Ｙｅｓ）、ホストコンピュータ１００は、ステップＳ９１９乃至Ｓ９２２を実行する。
【０２０５】
図３１は、第２の実施の形態におけるコントローラ側初期化処理の一例を示すフローチャートである。第２の実施の形態のコントローラ側初期化処理は、ステップＳ９３７およびＳ９３８をさらに実行する点において第１の実施の形態と異なる。
【０２０６】
なお、図３０および図３１に例示したように、転送先の異なる２つの初期化コマンドに従ってメモリコントローラ２００が、空き物理アドレス情報を転送および保持する構成としているが、この構成に限定されない。ホストコンピュータ１００は、１つの初期化コマンドを発行し、その初期化コマンドに従って、メモリコントローラ２００が、空き物理アドレス情報を保持するとともに、ホストコンピュータ１００へ転送する構成としてもよい。
【０２０７】
空き物理アドレス情報を保持すると（ステップＳ９３６）、メモリコントローラ２００は、空き物理アドレス情報を読み出すための初期化コマンドを受信したか否かを判断する（ステップＳ９３７）。空き物理アドレス情報を読み出すための初期化コマンドを受信していなければ（ステップＳ９３７：Ｎｏ）、メモリコントローラ２００はステップＳ９３７に戻る。その初期化コマンドを受信したのであれば（ステップＳ９３７：Ｙｅｓ）、メモリコントローラ２００は、空き物理アドレス情報を不揮発性メモリ３００から読み出してホストコンピュータ１００に転送する（ステップＳ９３８）。ステップＳ９３８の後、メモリコントローラ２００は、ステップＳ９３９およびＳ９４０を実行する。
【０２０８】
図３２は、第２の実施の形態におけるリード制御処理の一例を示すフローチャートである。第２の実施の形態のリード制御処理は、ステップＳ９５９をさらに実行する点において第１の実施の形態と異なる。
【０２０９】
メモリコントローラ２００は、指定された論理ページアドレスおよび転送ページ数が適切な値であるか否かを判断する（ステップＳ９５１）。ただし、変換済フラグがオンである場合、転送ページ数は１ページであるため、メモリコントローラ２００は、論理ページアドレスのみについて、適切な値であるか否かを判断すればよい。
【０２１０】
指定された論理ページアドレスおよび転送ページ数が適切な値である場合（ステップＳ９５１：Ｙｅｓ）、メモリコントローラ２００は、変換済フラグを参照する。そして、メモリコントローラ２００は、ホストコンピュータ１００により論理ページアドレスが変換済であるか否かを判断する（ステップＳ９５９）。論理ページアドレスが変換済でない場合（ステップＳ９５９：Ｎｏ）、メモリコントローラ２００は、ステップＳ９５３乃至Ｓ９５５を実行する。一方、論理ページアドレスが変換済である場合（ステップＳ９５９：Ｙｅｓ）、または、ステップＳ９５５の後、メモリコントローラ２００は、変換された物理ページアドレスを指定するリードリクエストを生成する。また、転送コマンドにより指定された論理ページアドレスのアクセス頻度を更新する（ステップＳ９５６）。そして、メモリコントローラ２００は、ステップＳ９５７以降の処理を実行する。
【０２１１】
図３３は、第２の実施の形態におけるライト制御処理の一例を示すフローチャートである。第２の実施の形態のライト制御処理は、ステップＳ９７９をさらに実行する点において第１の実施の形態と異なる。
【０２１２】
指定された論理ページアドレスおよび転送ページ数が適切な値である場合（ステップＳ９７１：Ｙｅｓ）、メモリコントローラ２００は、変換済フラグを参照する。そして、メモリコントローラ２００は、ホストコンピュータ１００により論理ページアドレスが変換済であるか否かを判断する（ステップＳ９７９）。論理ページアドレスが変換済でない場合（ステップＳ９７９：Ｎｏ）、メモリコントローラ２００は、ステップＳ９７３乃至Ｓ９７５を実行する。一方、論理ページアドレスが変換済である場合（ステップＳ９７９：Ｙｅｓ）、または、ステップＳ９７５の後、メモリコントローラ２００は、変換された物理ページアドレスを指定するライトリクエストを生成する。また、転送コマンドにより指定された論理ページアドレスのアクセス頻度を更新する（ステップＳ９７６）。そして、メモリコントローラ２００は、ステップＳ９７７以降の処理を実行する。
【０２１３】
図３４は、第２の実施の形態における初期化時の情報処理システムの動作を示すシーケンス図の一例である。ホストコンピュータ１００は、メモリコントローラ２００により転送されたアドレス変換情報を保持する（ステップＳ９１２）。
【０２１４】
また、メモリコントローラ２００は、ホストコンピュータ１００からの初期化コマンドに従って、不揮発性メモリ３００から読み出したアクセス頻度情報を保持する（ステップＳ９３４）。
【０２１５】
そして、ホストコンピュータ１００は、転送先をホストコンピュータ１００に設定した初期化コマンドを発行してメモリコントローラ２００に供給する。メモリコントローラ２００は、初期化コマンドに従って、空き物理アドレス情報を不揮発性メモリ３００から読み出し、ホストコンピュータ１００に転送する。ホストコンピュータ１００は、転送された空き物理アドレス情報を保持する（ステップＳ９１７）。
【０２１６】
また、メモリコントローラ２００は、ホストコンピュータ１００からの初期化コマンドに従って空き物理アドレス情報を保持し（ステップＳ９３６）、アドレス変換情報の一部を保持する（ステップＳ９３８）。
【０２１７】
図３５は、第２の実施の形態におけるユーザデータのリード時の情報処理システムの動作を示すシーケンス図の一例である。指定する論理ページアドレスがそれぞれ異なるリードコマンドＣ１およびＣ２が順に発行されたものとする。リードコマンドＣ１の転送ページ数は２ページであり、リードコマンドＣ２の転送ページ数は、１ページであるものとする。また、リードコマンドＣ２の論理ページアドレスＬ２に対応するエントリは、メモリコントローラ２００に保持されていないものとする。
【０２１８】
リードコマンドＣ１の転送ページ数は２ページであるため、論理ページアドレスは、第１の実施の形態と同様に、メモリコントローラ２００により物理ページアドレスに変換される。
【０２１９】
一方、リードコマンドＣ２の転送ページ数は１ページであるため、ホストコンピュータ１００は、リードコマンドＣ２の論理ページアドレスＬ２を物理ページアドレスＰ２に変換する（ステップＳ９２６）。ホストコンピュータ１００は、論理ページアドレスＬ２および物理ページアドレスＰ２を含むリードコマンドＣ２をメモリコントローラ２００に供給する。メモリコントローラ２００は、物理ページアドレスＰ２を指定したメモリリードコマンドＲ２を生成して、不揮発性メモリ３００に供給する。また、メモリコントローラ２００は、論理ページアドレスＬ２のアクセス頻度を更新する。
【０２２０】
このように、第２の実施の形態によれば、転送データのデータサイズが所定サイズに満たない場合にホストコンピュータ１００がアドレス変換を行うため、メモリコントローラ２００はアドレス変換情報のエントリを取得する必要がなくなる。これにより、転送データのデータサイズが所定サイズに満たない場合において、エントリの取得によるデータ転送時間の遅延が抑制される。
【０２２１】
なお、上述の各実施形態では不揮発性メモリ３００に記録されていたアドレス変換情報をそのままホストコンピュータのアドレス変換情報保持領域１３１に保持するとしている。しかし、予期せぬ変更や外部からのアクセスを防止するために、アドレス変換情報の保持にあたって暗号化や誤り検出符号の追加を行ってもよい。この場合において、暗号化、復号化、誤り検出符号の付与、および、誤り検出の各機能を実現する回路やプログラムは、ホストコンピュータ１００あるいはメモリコントローラ２００に配置される。
【０２２２】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０２２３】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray（登録商標）Disc）等を用いることができる。
【０２２４】
なお、本技術は以下のような構成もとることができる。
（１）論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部と、
ホストコンピュータにより指定された前記論理アドレスを含む前記エントリが前記アドレス変換情報保持部に保持されていない場合には当該保持されていないエントリを前記ホストコンピュータから取得して前記アドレス変換情報保持部に保持させるアドレス変換情報取得部と、
前記アドレス変換情報保持部に保持された前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換するアドレス変換部と、
前記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送部と
を具備する記憶制御装置。
（２）前記エントリの各々について前記エントリに対応する前記論理アドレスに対するアクセス頻度を保持するアクセス頻度保持部をさらに具備し、
前記データ転送部は、前記アクセス頻度が高い前記エントリを優先して前記一部のエントリを選択して前記アドレス変換情報保持部に保持させる処理を含む初期化処理をさらに実行する前記（１）記載の記憶制御装置。
（３）前記データ転送部は、前記記憶装置から前記エントリの全てを取得して前記ホストコンピュータに転送する処理をさらに含む前記初期化処理を実行する
前記（２）記載の記憶制御装置。
（４）前記ホストコンピュータにより指定されるアドレスは前記物理アドレスまたは前記論理アドレスであり、
前記アドレス変換部は、前記ホストコンピュータにより指定されたアドレスが前記論理アドレスである場合には前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換し、
前記データ転送部は、前記ホストコンピュータにより指定された物理アドレスまたは前記変換された物理アドレスを用いて前記転送データを転送する
前記（１）乃至（３）のいずれかに記載の記憶制御装置。
（５）前記ホストコンピュータにより指定されるアドレスは前記論理アドレスおよび前記物理アドレスと前記論理アドレスとのいずれかであり、
前記アドレス変換部は、前記ホストコンピュータにより指定されたアドレスが前記論理アドレスおよび前記物理アドレスである場合には前記指定された論理アドレスに対応する前記エントリを前記指定された物理アドレスに基づいて更新する
前記（４）記載の記憶制御装置。
（６）前記ホストコンピュータは、前記物理アドレスまたは前記論理アドレスを指定するコマンドと、前記論理アドレスおよび当該論理アドレスに新たに割り当てた前記物理アドレスを示す通知とを前記記憶制御装置に供給し、
前記アドレス変換部は、前記通知が供給された場合には前記通知の示す論理アドレスに対応する前記エントリを前記通知の示す物理アドレスに基づいて更新する
前記（４）記載の記憶制御装置。
（７）論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報を保持する保持部と、
前記記憶装置と前記ホストコンピュータとの間で転送される転送データのデータサイズが所定サイズに満たない場合には前記保持されたエントリに基づいて前記論理アドレスを前記物理アドレスに変換するアドレス変換部と、
前記論理アドレスまたは前記変換された物理アドレスを指定して前記転送データの転送を記憶制御装置に指示する指示部と
を具備するホストコンピュータ。
（８）前記論理アドレスと当該論理アドレスに新たに割り当てられた物理アドレスとを示す通知を前記記憶制御装置に供給するアドレス変換情報管理部をさらに具備し、
前記保持部は、前記論理アドレスが割り当てられていない前記物理アドレスを空き物理アドレスとしてさらに保持し、
前記アドレス変換部は、前記論理アドレスに物理アドレスが対応付けられていない場合には前記空き物理アドレスを前記論理アドレスに新たに割り当てる
前記（７）記載のホストコンピュータ。
（９）前記アドレス変換部は、前記記憶装置と前記ホストコンピュータとの間で転送される転送データのデータサイズが前記所定サイズに満たず、かつ、前記論理アドレスに前記物理アドレスが対応付けられている場合には前記保持されたエントリに基づいて前記論理アドレスを前記物理アドレスに変換する
前記（７）記載のホストコンピュータ。
（１０）論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報を保持するホストコンピュータと、
前記アドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部と、
ホストコンピュータにより指定された前記論理アドレスを含む前記エントリが前記アドレス変換情報保持部に保持されていない場合には当該保持されていないエントリを前記ホストコンピュータから取得して前記アドレス変換情報保持部に保持させるアドレス変換情報取得部と、
前記アドレス変換情報保持部に保持された前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換するアドレス変換部と、
前記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送部と
を具備する情報処理システム。
（１１）アドレス変換情報取得部が、論理アドレスと記憶装置の物理アドレスとを対応付けたエントリを複数含むアドレス変換情報の中から選択された一部のエントリを保持するアドレス変換情報保持部に、ホストコンピュータにより指定された前記論理アドレスを含む前記エントリが保持されていない場合には当該保持されていないエントリを前記ホストコンピュータから取得して前記アドレス変換情報保持部に保持させるアドレス変換情報取得手順と、
アドレス変換部が、前記アドレス変換情報保持部に保持された前記エントリに基づいて前記指定された論理アドレスを前記物理アドレスに変換するアドレス変換手順と、
データ転送部が、前記変換された物理アドレスを用いて転送データを転送するデータ転送処理を実行するデータ転送手順と
を具備する記憶制御装置の制御方法。
【符号の説明】
【０２２５】
１００  ホストコンピュータ
１１１、２１１  ＲＯＭ
１１２、２１２、３１３  バス
１１３  記憶部
１１４  アプリケーションプログラム
１１５  デバイスドライバ
１１６  コントローラインターフェース
１２０、２２０  ＣＰＵ
１２１  初期化処理部
１２２  転送コマンド発行部
１２３  データ転送処理部
１２４  アドレス変換情報管理部
１２５、２２３  アドレス変換部
１３０、２３０  ＲＡＭ
１３１、２３１、３２２  アドレス変換情報保持領域
１３２、２３４、３２４  空き物理アドレス情報保持領域
２００  メモリコントローラ
２１３  ホストインターフェース
２１４  ＥＣＣ処理部
２１５  メモリインターフェース
２２２  アドレス変換情報取得部
２２４  データ転送部
２３２  アドレス変換情報管理テーブル保持領域
２３３、３２３  アクセス頻度情報保持領域
３００  不揮発性メモリ
３１１  ページバッファ
３１２  アドレスデコーダ
３１４  制御インターフェース
３１５  アクセス制御部
３２０  メモリセルアレイ
３２１  管理情報領域
３２５  ユーザデータ領域
【図１】
2015036905.tif 000003
【図２】
2015036905.tif 000004
【図３】
2015036905.tif 000005
【図４】
2015036905.tif 000006
【図５】
2015036905.tif 000007
【図６】
2015036905.tif 000008
【図７】
2015036905.tif 000009
【図８】
2015036905.tif 000010
【図９】
2015036905.tif 000011
【図１０】
2015036905.tif 000012
【図１１】
2015036905.tif 000013
【図１２】
2015036905.tif 000014
【図１３】
2015036905.tif 000015
【図１４】
2015036905.tif 000016
【図１５】
2015036905.tif 000017
【図１６】
2015036905.tif 000018
【図１７】
2015036905.tif 000019
【図１８】
2015036905.tif 000020
【図１９】
2015036905.tif 000021
【図２０】
2015036905.tif 000022
【図２１】
2015036905.tif 000023
【図２２】
2015036905.tif 000024
【図２３】
2015036905.tif 000025
【図２４】
2015036905.tif 000026
【図２５】
2015036905.tif 000027
【図２６】
2015036905.tif 000028
【図２７】
2015036905.tif 000029
【図２８】
2015036905.tif 000030
【図２９】
2015036905.tif 000031
【図３０】
2015036905.tif 000032
【図３１】
2015036905.tif 000033
【図３２】
2015036905.tif 000034
【図３３】
2015036905.tif 000035
【図３４】
2015036905.tif 000036
【図３５】
2015036905.tif 000037