(57)【要約】  アクセス単位であるページ毎に書込み回数にばらつきが生じ得るメモリにおいて、効率のよいウェアレベリング処理を行う。  アドレス変換部は、メモリのアクセス単位を複数まとめた管理単位ごとに、ホストコマンドの論理アドレスとメモリの物理アドレスとの間でアドレス変換を行う。書込み量計測部は、管理単位のそれぞれにおいてアクセス単位ごとの書込み量を計測する。平均化処理部は、書込み量計測部によって計測された書込み量に基づいて、管理単位のうちから対象管理単位を選択して、その対象管理単位のアドレス変換における物理アドレスの割当を変更する。そして、平均化処理部は、対象管理単位におけるアクセス単位の書込み量を平均化させる処理を行う。
2019017017.tif 000002
【特許請求の範囲】
【請求項１】
メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部とを具備するメモリコントローラ。
【請求項２】
前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量がその管理単位において偏りを生じた場合に、その管理単位を前記対象管理単位として選択する請求項１記載のメモリコントローラ。
【請求項３】
前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量の最大値がその管理単位における前記アクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合に、その管理単位を前記対象管理単位として選択する請求項１記載のメモリコントローラ。
【請求項４】
前記メモリの論理アドレス空間は、使用中領域と未使用領域とに分けて管理され、  前記平均化処理部は、前記計測された書込み量に基づいて前記対象管理単位の新たな割当先を前記未使用領域から選択して前記使用中領域として確保する請求項１記載のメモリコントローラ。
【請求項５】
前記平均化処理部は、前記未使用領域において前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を前記対象管理単位の新たな割当先として選択する請求項４記載のメモリコントローラ。
【請求項６】
前記平均化処理部は、前記対象管理単位の物理アドレスの割当が変更された際、前記使用中領域において前記新たな割当先以外で前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を第２の対象管理単位として選択し、前記未使用領域において前記アクセス単位の書込み量の総数が最大となる前記管理単位を前記第２の対象管理単位の新たな割当先として選択して、前記第２の対象管理単位の前記アドレス変換における物理アドレスの割当を変更する請求項５記載のメモリコントローラ。
【請求項７】
物理アドレスの割当変更対象となった旨を前記管理対象ごとに保持するフラグをさらに具備し、  前記平均化処理部は、前記新たな割当先に対応する前記フラグを物理アドレスの割当変更対象となった旨にセットし、前記使用中領域において前記第２の対象管理単位を選択する際に前記フラグがセットされているものを選択対象から除外する請求項６記載のメモリコントローラ。
【請求項８】
前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる請求項４記載のメモリコントローラ。
【請求項９】
前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用する請求項４記載のメモリコントローラ。
【請求項１０】
前記平均化処理部は、前記対象管理単位の前記アクセス単位の書込み量の総数が前記管理対象の全体の平均値よりも所定の閾値以上大きい場合には前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用し、それ以外の場合には前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる請求項４記載のメモリコントローラ。
【請求項１１】
前記管理単位における前記アクセス単位の配置順序を規定する情報を前記管理単位ごとに保持して、前記対象管理単位の物理アドレスの割当変更の前後においては前記対象管理単位における前記アクセス単位の配置順序として異なる順序を選択する選択部をさらに具備する請求項１記載のメモリコントローラ。
【請求項１２】
前記アクセス単位の配置順序を規定する情報は、互いに異なる複数の乱数列である請求項１１記載のメモリコントローラ。
【請求項１３】
メモリと、  前記メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部とを具備するメモリシステム。
【請求項１４】
メモリと、  前記メモリにアクセスするためのホストコマンドを発行するホストコンピュータと、  前記メモリのアクセス単位を複数まとめた管理単位ごとに前記ホストコマンドの論理アドレスと前記メモリの物理アドレスとの間でアドレス変換を行うアドレス変換部と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部とを具備する情報処理システム。
【請求項１５】
メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換手順と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測手順と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理手順とを具備するメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本技術は、メモリコントローラに関する。詳しくは、メモリに対する書込みを制御するメモリコントローラ、メモリシステム、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】  書込み回数の上限がある不揮発性メモリを搭載した不揮発性記憶装置では、書込み回数を平均化するウェアレベリング処理が行われる。不揮発性メモリの一例であるＮＡＮＤフラッシュメモリでは、データの上書きは不可能であり、読出しおよび書込みのアクセス単位であるページを複数まとめたブロックを消去単位としており、ウェアレベリング処理はブロック単位で行われる。例えば、書込み頻度が高いブロックの消去回数が１００の倍数になる度にウェアレベリング処理を行う不揮発性メモリが提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２４７８４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】  上述の従来技術では、ブロックの消去回数を計測して、その消去回数に基づいてウェアレベリング処理を行っている。この従来技術が前提とするＮＡＮＤフラッシュメモリでは、データの上書きが不可能なため、ブロック内のページ間に書込み回数のばらつきは発生せず、ブロックの消去回数を平均化することが目的となる。一方、データの上書きが可能な不揮発性メモリを想定すると、読出しおよび書込みのアクセス単位であるページ毎に書込み回数にばらつきが生じるおそれがある。しかしながら、ページサイズはブロックサイズよりも小さいため、ページの書込み回数を個別に扱ってウェアレベリング処理を行うとその対象数が膨大となり、管理が煩雑になるという問題がある。【０００５】  本技術はこのような状況に鑑みて生み出されたものであり、アクセス単位であるページ毎に書込み回数にばらつきが生じ得るメモリにおいて、効率のよいウェアレベリング処理を行うことを目的とする。
【課題を解決するための手段】
【０００６】  本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、上記管理単位のそれぞれにおいて上記アクセス単位ごとの書込み量を計測する書込み量計測部と、上記計測された書込み量に基づいて上記管理単位のうちから対象管理単位を選択して当該対象管理単位の上記アドレス変換における物理アドレスの割当を変更して、上記対象管理単位における上記アクセス単位の書込み量を平均化させる平均化処理部とを具備するメモリコントローラ、メモリシステム、情報処理システム、および、そのメモリ制御方法である。これにより、書込み量に基づいて選択された対象管理単位の物理アドレスの割当を変更して、その対象管理単位におけるアクセス単位の書込み量を平均化させるという作用をもたらす。【０００７】  また、この第１の側面において、上記平均化処理部は、上記管理単位における上記アクセス単位の書込み量がその管理単位において偏りを生じた場合に、その管理単位を上記対象管理単位として選択するようにしてもよい。これにより、管理単位におけるアクセス単位の書込み量に偏りを生じた場合に、その管理単位を対象管理単位として選択するという作用をもたらす。【０００８】  また、この第１の側面において、上記平均化処理部は、上記管理単位における上記アクセス単位の書込み量の最大値がその管理単位における上記アクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合に、その管理単位を上記対象管理単位として選択するようにしてもよい。これにより、管理単位におけるアクセス単位の書込み量の最大値が、その管理単位におけるアクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合にその管理単位を対象管理単位として選択するという作用をもたらす。【０００９】  また、この第１の側面において、上記メモリの論理アドレス空間は、使用中領域と未使用領域とに分けて管理され、上記平均化処理部は、上記計測された書込み量に基づいて上記対象管理単位の新たな割当先を上記未使用領域から選択して上記使用中領域として確保するようにしてもよい。これにより、論理アドレス空間の管理を容易にするという作用をもたらす。【００１０】  また、この第１の側面において、上記平均化処理部は、上記未使用領域において上記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる上記管理単位を上記対象管理単位の新たな割当先として選択するようにしてもよい。これにより、書込み量の総数が全体の平均値よりも所定の閾値以下となる管理単位を、対象管理単位の新たな割当先として選択するという作用をもたらす。【００１１】  また、この第１の側面において、上記平均化処理部は、上記対象管理単位の物理アドレスの割当が変更された際、上記使用中領域において上記新たな割当先以外で上記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる上記管理単位を第２の対象管理単位として選択し、上記未使用領域において上記アクセス単位の書込み量の総数が最大となる上記管理単位を上記第２の対象管理単位の新たな割当先として選択して、上記第２の対象管理単位の上記アドレス変換における物理アドレスの割当を変更するようにしてもよい。これにより、対象管理単位の物理アドレス割当変更に伴う未使用領域における書込み量の増大を中和するという作用をもたらす。【００１２】  また、この第１の側面において、物理アドレスの割当変更対象となった旨を上記管理対象ごとに保持するフラグをさらに具備し、上記平均化処理部は、上記新たな割当先に対応する上記フラグを物理アドレスの割当変更対象となった旨にセットし、上記使用中領域において上記第２の対象管理単位を選択する際に上記フラグがセットされているものを選択対象から除外するようにしてもよい。これにより、新たな割当先となった管理対象がすぐに第２の対象管理単位として選択されることを回避するという作用をもたらす。【００１３】  また、この第１の側面において、上記平均化処理部は、上記対象管理単位の割当変更前の物理アドレスを上記未使用領域に割り当ててもよく、また、上記対象管理単位の割当変更前の物理アドレスを上記使用中領域に割り当てて他の上記管理対象のために使用するようにしてもよい。【００１４】  また、この第１の側面において、上記平均化処理部は、上記対象管理単位の上記アクセス単位の書込み量の総数が上記管理対象の全体の平均値よりも所定の閾値以上大きい場合には上記対象管理単位の割当変更前の物理アドレスを上記使用中領域に割り当てて他の上記管理対象のために使用し、それ以外の場合には上記対象管理単位の割当変更前の物理アドレスを上記未使用領域に割り当てるようにしてもよい。これにより、対象管理単位の総書込み量に応じて使用中領域または未使用領域に割り当てるという作用をもたらす。【００１５】  また、この第１の側面において、上記管理単位における上記アクセス単位の配置順序を規定する情報を上記管理単位ごとに保持して、上記対象管理単位の物理アドレスの割当変更の前後においては上記対象管理単位における上記アクセス単位の配置順序として異なる順序を選択する選択部をさらに具備してもよい。これにより、対象管理単位の物理アドレスの割当変更の前後において、アクセス単位の配置順序を異なるものにするという作用をもたらす。【００１６】  また、この第１の側面において、上記アクセス単位の配置順序を規定する情報は、互いに異なる複数の乱数列であってもよい。これにより、乱数列を用いてアクセス単位の配置順序を規定するという作用をもたらす。
【発明の効果】
【００１７】  本技術によれば、アクセス単位であるページ毎に書込み回数にばらつきが生じ得るメモリにおいて、効率のよいウェアレベリング処理を行うことができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１８】
【図１】本技術の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本技術の第１の実施の形態におけるメモリコントローラ２００の一構成例を示す図である。
【図３】本技術の実施の形態におけるセクションとページの関係例を示す図である。
【図４】本技術の実施の形態における論理セクションと物理セクションの関係例を示す図である。
【図５】本技術の第１の実施の形態における書込み量情報テーブル２２０の第１の例を示す図である。
【図６】本技術の第１の実施の形態における書込み量情報テーブル２２０の第２の例を示す図である。
【図７】本技術の第１の実施の形態における平均化処理の概要例を示す図である。
【図８】本技術の第１の実施の形態におけるメモリアクセス処理の処理手順例を示す流れ図である。
【図９】本技術の第１の実施の形態における平均化処理の処理手順例を示す流れ図である。
【図１０】本技術の第１の実施の形態におけるセクション内平均化処理（ステップＳ９２０）の処理手順例を示す流れ図である。
【図１１】本技術の第２の実施の形態における書込み量情報テーブル２２０の第１の例を示す図である。
【図１２】本技術の第２の実施の形態における書込み量情報テーブル２２０の第２の例を示す図である。
【図１３】本技術の第２の実施の形態における平均化処理の概要例を示す図である。
【図１４】本技術の第２の実施の形態における平均化処理の処理手順例を示す流れ図である。
【図１５】本技術の第２の実施の形態におけるセクション内平均化処理（ステップＳ９３０）の処理手順例を示す流れ図である。
【図１６】本技術の第２の実施の形態におけるセクション間平均化処理（ステップＳ９４０）の処理手順例を示す流れ図である。
【図１７】本技術の第３の実施の形態における平均化処理の概要例を示す図である。
【図１８】本技術の第３の実施の形態における平均化処理の処理手順例を示す流れ図である。
【図１９】本技術の第３の実施の形態におけるセクション内平均化処理（ステップＳ９５０）の処理手順例を示す流れ図である。
【図２０】本技術の第３の実施の形態におけるセクション間平均化処理（ステップＳ９６０）の処理手順例を示す流れ図である。
【図２１】本技術の第４の実施の形態における平均化処理の処理手順例を示す流れ図である。
【図２２】本技術の第５の実施の形態におけるメモリコントローラ２００の一構成例を示す図である。
【図２３】本技術の第５の実施の形態におけるページ配置順序の変更態様の例を示す図である。
【図２４】本技術の第５の実施の形態における乱数列の一例を示す図である。
【図２５】本技術の第５の実施の形態におけるアドレス変換テーブル２５０の構成例を示す図である。
【発明を実施するための形態】
【００１９】  以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。  １．第１の実施の形態（セクション内のページ間の書込み量を平均化する例）  ２．第２の実施の形態（フリー領域の書込み量を減らす処理を加えた例）  ３．第３の実施の形態（平均化処理の対象セクションを再利用する例）  ４．第４の実施の形態（平均化処理の対象セクションの書込み量が多い場合に再利用する例）  ５．第５の実施の形態（乱数列を変更してセクション内のページ順序を変化させる例）
【００２０】  ＜１．第１の実施の形態＞  ［情報処理システムの構成］  図１は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ１００と、メモリコントローラ２００と、メモリ３００とから構成される。メモリコントローラ２００およびメモリ３００はメモリシステム４００を構成する。
【００２１】  ホストコンピュータ１００は、メモリ３００に対してデータのリード処理およびライト処理等を指令するコマンドを発行するものである。このホストコンピュータ１００は、ホストコンピュータ１００としての処理を実行するプロセッサと、メモリコントローラ２００との間のやりとりを行うためのコントローラインターフェースとを備える。ホストコンピュータ１００とメモリコントローラ２００との間は信号線１０９によって接続される。
【００２２】  メモリコントローラ２００は、ホストコンピュータ１００からのコマンドに従って、メモリ３００に対するリクエスト制御を行うものである。メモリコントローラ２００とメモリ３００との間は信号線３０９によって接続される。
【００２３】  メモリ３００は、制御部およびメモリセルアレイを備える。このメモリ３００の制御部は、メモリコントローラ２００からのリクエストに従ってメモリセルへのアクセスを行う。メモリ３００のメモリセルアレイは、複数のメモリセルからなるメモリセルアレイであり、ビット毎に２値の何れかの値を記憶するメモリセル、または、複数ビット毎に多値の何れかの値を記憶するメモリセルが２次元状（マトリクス状）に多数配列されている。このメモリセルアレイは、複数バイトサイズを有するページを読出しまたは書込みのアクセス単位とし、消去することなくデータの上書きが可能な不揮発性メモリ（ＮＶＭ：Non-Volatile Memory）を想定する。
【００２４】  ［メモリコントローラの構成］  図２は、本技術の第１の実施の形態におけるメモリコントローラ２００の一構成例を示す図である。このメモリコントローラ２００は、書込み量計測部２１０と、書込み量情報テーブル２２０と、平均化処理部２３０と、セクション間コピー処理部２４０と、アドレス変換テーブル２５０と、アドレス変換部２６０と、メモリ制御部２９０とを備える。また、このメモリコントローラ２００は、ホストコンピュータ１００との間のやりとりを行うためのホストインターフェース２０１と、メモリ３００との間のやりとりを行うためのメモリインターフェース２０９とを備える。
【００２５】  書込み量計測部２１０は、メモリ３００の各ページの書込み量を計測するものである。上述のように、メモリ３００のメモリセルアレイにおける読出しまたは書込みのアクセス単位はページである。したがって、ページに関する書込み量と書込み回数は比例関係にあり、以下では同義であるものとして取り扱う。一方、ページを単位とする書込み量をそのまま比較した場合には比較対象が膨大となり管理が煩雑になるため、複数のページをまとめた単位として、セクションと称する管理単位を新たに導入する。
【００２６】  書込み量情報テーブル２２０は、書込み量計測部２１０によって計測された書込み量に関する情報である書込み量情報を保持するテーブルである。この書込み量情報テーブル２２０に保持される書込み量情報の内容については後述する。
【００２７】  平均化処理部２３０は、書込み量情報テーブル２２０に保持される書込み量情報に基づいて対象となるセクションを選択して、その対象セクションに含まれるページの書込み量を平均化するウェアレベリング処理を行うものである。そのために、この平均化処理部２３０は、その対象セクションのアドレス変換における物理アドレスの割当を変更して、それ以降に書込みがなされるメモリ３００の物理アドレスをそれまでとは異なるものに変更する。
【００２８】  セクション間コピー処理部２４０は、平均化処理部２３０による平均化処理を実現するために、対象セクションに書き込まれているデータを、割当変更先のセクションにコピーする処理を行うものである。
【００２９】  アドレス変換テーブル２５０は、ホストコンピュータ１００からのコマンドに含まれる論理アドレスとメモリ３００の物理アドレスとの対応関係を記憶するテーブルである。アドレス変換部２６０は、アドレス変換テーブル２５０を参照して、ホストコンピュータ１００からのコマンドに含まれる論理アドレスをメモリ３００の物理アドレスに変換するものである。
【００３０】  メモリ制御部２９０は、メモリ３００に対するアクセスを制御するものである。このメモリ制御部２９０は、アドレス変換部２６０によって変換された物理アドレスに従って、メモリ３００にアクセスを行う。また、メモリ制御部２９０は、セクション間コピー処理部２４０からの指示に従って、平均化処理の対象セクションに書き込まれているデータを割当変更先のセクションにコピーするように、メモリ３００にアクセスを行う。
【００３１】  ［セクション］  図３は、本技術の実施の形態におけるセクションとページの関係例を示す図である。ここでは、１ＧＢ（ギガバイト）のメモリ空間を想定する。そして、このメモリ空間において、読出しまたは書込みのアクセス単位であるページのサイズを４ＫＢ（キロバイト）とする。この場合、メモリ空間における総ページ数は２５６Ｋページとなる。メモリ３００におけるページ間の書込み量の偏りを検出するためには、これら２５６Ｋページの書込み量を比較してそれらを平均化させることが考えられるが、その場合には比較量が膨大となり管理が煩雑となる。
【００３２】  そこで、この実施の形態では、複数のページをまとめたセクションを管理単位としてページの書込み量の平均化を行う。この例では、８ページをまとめて１つのセクションとする。すなわち、１セクションに相当するデータ量は３２ＫＢとなる。また、１ＧＢのメモリ空間はセクション＃０から＃３２７６７の３２Ｋ（＝３２７６８）セクションに分割して管理される。
【００３３】  図４は、本技術の実施の形態における論理セクションと物理セクションの関係例を示す図である。論理アドレス空間は、ユーザ領域とフリー領域とに分けて管理される。ユーザ領域は、ユーザの使用領域として割り当てられた使用中領域である。一方、フリー領域は、ユーザの使用領域として割り当てられていない未使用領域である。なお、ユーザ領域は、特許請求の範囲に記載の使用中領域の一例である。また，フリー領域は、特許請求の範囲に記載の未使用領域の一例である。
【００３４】  この例では、ユーザ領域は０．９ＧＢ（９２１．５ＭＢ）のユーザ領域であり、フリー領域は０．１ＧＢ（１０２．５ＭＢ）の領域である。このとき、ユーザ領域は論理セクション＃０から＃２９４８７の２９４８８セクションであり、フリー領域は論理セクション＃２９４８８から＃３２７６７の３２８０セクションである。
【００３５】  これら論理セクションは、メモリ３００の物理セクションに割り当てられる。この論理セクションと物理セクションの対応関係はアドレス変換テーブル２５０に記憶される。このアドレス変換テーブル２５０に従って、アドレス変換部２６０が論理セクションから物理セクションに変換を行う。
【００３６】  ［書込み量情報］  図５は、本技術の第１の実施の形態における書込み量情報テーブル２２０の第１の例を示す図である。この第１の例による書込み量情報は、全ての物理セクション毎に書込み量情報を有する場合の例である。この第１の例では、物理セクションのそれぞれに対応して、その物理セクションに含まれる８つの物理ページの各々のページ書込み量と、その物理セクションの総書込み量とを記憶する。
【００３７】  ページ書込み量はページ毎の書込み量であり、平均化処理が行われる度にゼロに初期化される。ページ書込み量は、物理セクション内の書込み量のページ間の偏りを検出するために用いられる。
【００３８】  セクション総書込み量はその物理セクションに発生した書込み量を全て加算した値であり、初期化されることは想定していない。このセクション総書込み量は、平均化処理において物理セクションを選択するために用いられる。
【００３９】  ページ書込み量の偏りは、例えば、あるセクションにおけるページ書込み量の平均値と比較して、書込み量が所定の閾値αを超えて大きい場合に検出される。すなわち、書込みが発生したセクションにおいて、次式が成立した場合に、そのセクションは平均化処理の対象セクションとして選択される。    最大ページ書込み量 − ページ書込み量の平均値 ＞ α
【００４０】  上式において、閾値αは、例えば１０２４乃至２０４８程度であることが想定され、この範囲において適切な効果が得られるものと考えられる。一例として、セクション内の特定のページに書込みが発生した場合を想定して、その書込み発生ページのページ数を変化させ、平均書込み量との差分がα＝１０２４回（ページ）に達するまでの書込み繰り返し回数を求めると以下のようになる。ただし、その書込み発生ページ間では、均等に書込みが生じたものと仮定する。    書込み発生ページ数＝１：  １１７０−  １４６＝１０２４    書込み発生ページ数＝２：  １３６５−  ３４１＝１０２４    書込み発生ページ数＝３：  １６３８−  ６１４＝１０２４    書込み発生ページ数＝４：  ２０４８−１０２４＝１０２４    書込み発生ページ数＝５：  ２７３０−１７０６＝１０２４    書込み発生ページ数＝６：  ４０９６−３０７２＝１０２４    書込み発生ページ数＝７：  ８１９２−７１６８＝１０２４    書込み発生ページ数＝８：  ０（セクション内の全ページに均等）
【００４１】  これによれば、例えば、書込みが特定の１ページに集中した場合には、その書込み量が１１７０回になった時点でページ書込み量の偏りが検出される。一方、書込みが特定の５ページに集中した場合には、その書込み量が２７３０回になった時点でページ書込み量の偏りが検出される。すなわち、セクション内で集中した特定のページ数が少ないほど、平均書込み量との差分の変化が大きい。したがって、セクション総書込み量が同じであっても、セクション内で集中した書込み発生ページ数が少ないほど、ウェアレベリング処理を早く開始する必要があることがわかる。
【００４２】  図６は、本技術の第１の実施の形態における書込み量情報テーブル２２０の第２の例を示す図である。この第２の例では、上述の第１の例と同様に、全ての物理セクション毎に物理セクションの総書込み量を記憶する。一方、この第２の例では、上述の第１の例と異なり、それ以外の情報はユーザ領域の論理セクション毎に記憶される。すなわち、ユーザ領域の論理セクションのそれぞれに対応して、その論理セクションに含まれる８つの論理ページの各々のページ書込み量を記憶する。
【００４３】  総書込み量はユーザ領域およびフリー領域の両者について参照されるが、それ以外の情報については使用中のユーザ領域が対象となるため、後者のみを論理アドレスにより管理することが可能である。
【００４４】  ［動作］  図７は、本技術の第１の実施の形態における平均化処理の概要例を示す図である。ここでは、ページ間の書込み量の偏りを有する論理セクションとしてセクションＡが選択された場合を想定する。その際、このセクションＡの物理アドレスとして物理セクションＰＡが割り当てられていたものとする。すなわち、アドレス変換テーブル２５０には、ユーザ領域の論理セクションＬＵ１に対応して物理セクションＰＡが記憶されていたものとする。
【００４５】  ここで、セクションＡにおいてページ書込み量の偏りが検出されると、セクションＡは平均化処理部２３０によって平均化処理の対象セクションとして選択される。平均化処理のためにセクションＡの新たな割当先は、フリー領域において総書込み量が最小のセクションが選択される。この例では、物理セクションＰＢのセクションＢが新たな割当先として選択されたものとする。すなわち、アドレス変換テーブル２５０には、フリー領域の論理セクションＬＦ１に対応して物理セクションＰＢが記憶されていたものとする。
【００４６】  物理セクションＰＡに記憶されていたセクションＡのデータは、セクション間コピー処理部２４０によって物理セクションＰＢにコピーされる。これにより、物理セクションＰＡにおいて生じていたセクションＡのページ書込み量の偏りが是正される。そして、アドレス変換テーブル２５０における論理セクションＬＵ１に対応して物理セクションＰＢが記憶され、論理セクションＬＦ１に対応して物理セクションＰＡが記憶されるように変更される。すなわち、この例では、物理セクションＰＡはフリー領域として管理されるようになる。
【００４７】  図８は、本技術の第１の実施の形態におけるメモリアクセス処理の処理手順例を示す流れ図である。
【００４８】  ホストコンピュータ１００からメモリアクセスのコマンドを受け取ると、アドレス変換部２６０は、コマンドに含まれる論理アドレスを物理アドレスに変換する（ステップＳ９０１）。そして、この変換された物理アドレスに従って、メモリ制御部２９０はメモリインターフェース２０９を介してメモリ３００にアクセスを行う（ステップＳ９０２）。
【００４９】  その際、メモリ３００に対する書込みがされた場合には、書込み量計測部２１０は、書込みアドレスに従って書込み量情報テーブル２２０を更新する（ステップＳ９０３）。そして、平均化処理部２３０は、書込み量情報テーブル２２０を参照して平均化処理を行う（ステップＳ９１０）。
【００５０】  図９は、本技術の第１の実施の形態における平均化処理の処理手順例を示す流れ図である。
【００５１】  書込み量情報テーブル２２０において書込み量情報が更新されると（ステップＳ９１１：Ｙｅｓ）、平均化処理部２３０は、その書込みが発生したセクションを特定する（ステップＳ９１２）。以下ではこの特定された論理セクションをセクションＡと称する。
【００５２】  平均化処理部２３０は、その書込みが発生したセクションＡにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する（ステップＳ９１３）。そして、その差分が閾値αを超えて大きい場合には（ステップＳ９１３：Ｙｅｓ）、平均化処理部２３０はセクション内平均化処理を行う（ステップＳ９２０）。
【００５３】  図１０は、本技術の第１の実施の形態におけるセクション内平均化処理（ステップＳ９２０）の処理手順例を示す流れ図である。
【００５４】  平均化処理部２３０は、書込み量情報テーブル２２０を参照して、フリー領域において総書込み量が最小のセクションを選択する（ステップＳ９２２）。以下ではこの選択された論理セクションをセクションＢと称する。なお、この例では、総書込み量が最小のフリー領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するフリー領域のセクションを選択するようにしてもよい。
【００５５】  そして、セクション間コピー処理部２４０は、セクションＡに記憶されているデータをセクションＢの物理セクションＰＢにコピーする（ステップＳ９２３）。
【００５６】  アドレス変換部２６０は、セクションＢに割り当てられていた物理セクションＰＢをユーザ領域に登録する（ステップＳ９２４）。すなわち、上述の例において、アドレス変換テーブル２５０のユーザ領域の論理アドレスＬＵ１に対応して物理セクションＰＢを記憶する。
【００５７】  また、アドレス変換部２６０は、セクションＡに割り当てられていた物理セクションＰＡをフリー領域に登録する（ステップＳ９２６）。すなわち、上述の例において、アドレス変換テーブル２５０のフリー領域の論理アドレスＬＦ１に対応して物理セクションＰＡを記憶する。また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＡのページ書込み量を「０」に初期化する（ステップＳ９２７）。
【００５８】  このように、本技術の第１の実施の形態によれば、書込みが発生したセクションにおけるページ間の書込み量の偏りを検出して、物理アドレスの割当を変更することにより、セクション内のページ書込み量の平均化処理を行うことができる。
【００５９】  ＜２．第２の実施の形態＞  上述の第１の実施の形態では、ページ書込み量に偏りが検出されたセクションの物理アドレスの割当てを変更することによりセクション内平均化処理を行っていた。このセクション内平均化処理では、フリー領域において総書込み量が最小となるセクションを選択して、ページ書込み量に偏りが検出されたセクションと物理アドレスを入れ換えることにより、物理アドレスの割当てを変更していた。そのため、フリー領域に着目すると、書込み量は増加することになる。
【００６０】  そこで、この第２の実施の形態では、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとを交換することによりフリー領域の書込み量の減少を図る。すなわち、このセクション間平均化処理は、セクション内平均化処理によるフリー領域の書込み量増加を中和して、メモリ３００全体としての書込み量を平均化するものである。
【００６１】  なお、情報処理システムとしての全体構成およびメモリコントローラのブロック構成については、上述の第１の実施の形態と同様であるため、詳細な説明は省略する。
【００６２】  ［書込み量情報］  セクション間平均化処理の際に、ユーザ領域において総書込み量が最小のセクションを選択する際、セクション内平均化処理によって割り当てられた直後のセクションが選択されてしまうと、意図した平均化が行われなくなるおそれがある。そのため、この第２の実施の形態では、書込み情報として、セクション内平均化処理によるコピーが行われた直後であることを示すコピー済フラグを設け、これにより、セクション間平均化処理においてそのセクションが選択されることを回避する。
【００６３】  図１１は、本技術の第２の実施の形態における書込み量情報テーブル２２０の第１の例を示す図である。この第１の例による書込み量情報は、全ての物理セクション毎に書込み量情報を有する場合の例である。この第１の例では、物理セクションのそれぞれに対応して、上述の第１の実施の形態において説明したページ書込み量およびセクション総書込み量に加えて、コピー済フラグを記憶する。
【００６４】  コピー済フラグは、セクション内平均化処理によりユーザ領域に割り当てられたセクションに設定されるフラグである。このコピー済フラグが設定されているセクションは、セクション間平均化処理におけるユーザ領域の検索の際に対象から除外される。なお、コピー済フラグは、特許請求の範囲に記載のフラグの一例である。
【００６５】  図１２は、本技術の第２の実施の形態における書込み量情報テーブル２２０の第２の例を示す図である。この第２の例では、上述の第１の実施の形態において説明したページ書込み量およびセクション総書込み量に加えて、論理セクションのそれぞれに対応して、コピー済フラグを記憶する。コピー済フラグとしての役割は、上述の第１の例と同様である。
【００６６】  ［動作］  図１３は、本技術の第２の実施の形態における平均化処理の概要例を示す図である。ここでは、上述の第１の実施の形態と同様に、セクション内平均化処理として、ページ間の書込み量の偏りを有する論理セクションとしてセクションＡが選択され、セクションＡのデータはセクション間コピー処理部２４０によって物理セクションＰＢにコピーされる。
【００６７】  また、この第２の実施の形態においては、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小であってコピー済フラグが「０」である論理セクションがセクションＣとして選択される。その際、このセクションＣの物理アドレスとして物理セクションＰＣが割り当てられていたものとする。すなわち、アドレス変換テーブル２５０には、ユーザ領域の論理セクションＬＵ２に対応して物理セクションＰＣが記憶されていたものとする。
【００６８】  一方、フリー領域において総書込み量が最大のセクションが選択され、新たな割当先となる。この例では、物理セクションＰＤのセクションＤが新たな割当先として選択されたものとする。すなわち、アドレス変換テーブル２５０には、フリー領域の論理セクションＬＦ２に対応して物理セクションＰＤが記憶されていたものとする。
【００６９】  物理セクションＰＣに記憶されていたセクションＣのデータは、セクション間コピー処理部２４０によって物理セクションＰＤにコピーされる。そして、アドレス変換テーブル２５０における論理セクションＬＵ２に対応して物理セクションＰＤが記憶され、論理セクションＬＦ２に対応して物理セクションＰＣが記憶されるように変更される。これにより、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとが交換されて、フリー領域の書込み量が減少する。すなわち、セクション内平均化処理により生じたフリー領域の書込み量の増加が、中和されたことになる。
【００７０】  図１４は、本技術の第２の実施の形態における平均化処理の処理手順例を示す流れ図である。なお、メモリアクセス処理の全体処理については上述の第１の実施の形態と同様であるため、説明を省略する。
【００７１】  書込み量情報テーブル２２０において書込み量情報が更新されると（ステップＳ９１１：Ｙｅｓ）、平均化処理部２３０は、その書込みが発生したセクションＡを特定する（ステップＳ９１２）。この点は上述の第１の実施の形態と同様である。
【００７２】  平均化処理部２３０は、その書込みが発生したセクションＡにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する（ステップＳ９１３）。そして、その差分が閾値αを超えて大きい場合には（ステップＳ９１３：Ｙｅｓ）、平均化処理部２３０はセクション内平均化処理（ステップＳ９３０）およびセクション間平均化処理（ステップＳ９４０）を行う。
【００７３】  図１５は、本技術の第２の実施の形態におけるセクション内平均化処理（ステップＳ９３０）の処理手順例を示す流れ図である。
【００７４】  平均化処理部２３０は、書込み量情報テーブル２２０を参照して、フリー領域において総書込み量が最小のセクションＢを選択する（ステップＳ９３２）。なお、この例では、総書込み量が最小のフリー領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するフリー領域のセクションを選択するようにしてもよい。
【００７５】  そして、セクション間コピー処理部２４０は、セクションＡに記憶されているデータをセクションＢの物理セクションＰＢにコピーする（ステップＳ９３３）。
【００７６】  アドレス変換部２６０は、セクションＢに割り当てられていた物理セクションＰＢをユーザ領域に登録する（ステップＳ９３４）。すなわち、上述の例において、アドレス変換テーブル２５０のユーザ領域の論理アドレスＬＵ１に対応して物理セクションＰＢを記憶する。
【００７７】  また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＢのコピー済フラグを「１」に設定する（ステップＳ９３５）。
【００７８】  また、アドレス変換部２６０は、セクションＡに割り当てられていた物理セクションＰＡをフリー領域に登録する（ステップＳ９３６）。すなわち、上述の例において、アドレス変換テーブル２５０のフリー領域の論理アドレスＬＦ１に対応して物理セクションＰＡを記憶する。
【００７９】  また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＡのページ書込み量を「０」に初期化するとともに、セクションＡのコピー済フラグを「０」にリセットする（ステップＳ９３７）。
【００８０】  図１６は、本技術の第２の実施の形態におけるセクション間平均化処理（ステップＳ９４０）の処理手順例を示す流れ図である。
【００８１】  平均化処理部２３０は、書込み量情報テーブル２２０を参照して、ユーザ領域において総書込み量が最小であって、かつ、コピー済フラグが「０」であるセクションを選択する（ステップＳ９４１）。以下ではこの選択された論理セクションをセクションＣと称する。なお、この例では、総書込み量が最小のユーザ領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するユーザ領域のセクションを選択するようにしてもよい。この場合、平均値よりも所定の閾値以下の総書込み量を有するセクションが検索された時点で、そのセクションを新たな割当先とすることができ、検索時間を短縮することが可能である。
【００８２】  平均化処理部２３０は、書込み量情報テーブル２２０を参照して、フリー領域において総書込み量が最大のセクションを選択する（ステップＳ９４２）。以下ではこの選択された論理セクションをセクションＤと称する。
【００８３】  そして、セクション間コピー処理部２４０は、セクションＣに記憶されているデータをセクションＤの物理セクションＰＤにコピーする（ステップＳ９４３）。
【００８４】  アドレス変換部２６０は、セクションＤに割り当てられていた物理セクションＰＤをユーザ領域に登録する（ステップＳ９４４）。すなわち、上述の例において、アドレス変換テーブル２５０のユーザ領域の論理アドレスＬＵ２に対応して物理セクションＰＤを記憶する。
【００８５】  また、アドレス変換部２６０は、セクションＣに割り当てられていた物理セクションＰＣをフリー領域に登録する（ステップＳ９４６）。すなわち、上述の例において、アドレス変換テーブル２５０のフリー領域の論理アドレスＬＦ２に対応して物理セクションＰＣを記憶する。また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＣのページ書込み量を「０」に初期化する（ステップＳ９４７）。
【００８６】  このように、本技術の第２の実施の形態では、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとを交換する。これにより、セクション内平均化処理に伴うフリー領域の書込み量の増大を中和することができる。
【００８７】  ＜３．第３の実施の形態＞  上述の第２の実施の形態では、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小のセクションと、フリー領域において総書込み量が最大のセクションとを交換することにより、フリー領域の書込み量の減少を図っていた。この場合、セクション内平均化処理に伴うフリー領域の書込み量の増大を中和するためには高い効果が得られるが、フリー領域において総書込み量が最大となるセクションを選択する必要があった。一方、セクション内平均化処理の対象セクションが記憶されていた物理セクションＰＡの書込み量によっては、物理セクションＰＡをフリー領域として登録しても書込み量の減少にあまり寄与しない場合も生じ得る。そこで、この第３の実施の形態では、セクション内平均化処理の後にフリー領域において総書込み量が最大のセクションを検索することなく、セクション内平均化処理の対象セクションが記憶されていた物理セクションＰＡを再利用して、処理の簡略化を図る。
【００８８】  なお、情報処理システムとしての全体構成およびメモリコントローラのブロック構成については、上述の第１の実施の形態と同様であるため、詳細な説明は省略する。また、書込み量情報については、上述の第２の実施の形態と同様であるため、詳細な説明は省略する。
【００８９】  ［動作］  図１７は、本技術の第３の実施の形態における平均化処理の概要例を示す図である。ここでは、上述の第１の実施の形態と同様に、セクション内平均化処理として、ページ間の書込み量の偏りを有する論理セクションとしてセクションＡが選択され、セクションＡのデータはセクション間コピー処理部２４０によって物理セクションＰＢにコピーされる。
【００９０】  また、上述の第２の実施の形態と同様に、セクション内平均化処理の後に、ユーザ領域において総書込み量が最小であってコピー済フラグが「０」である論理セクションがセクションＣとして選択される。その際、このセクションＣの物理アドレスとして物理セクションＰＣが割り当てられていたものとする。すなわち、アドレス変換テーブル２５０には、ユーザ領域の論理セクションＬＵ２に対応して物理セクションＰＣが記憶されていたものとする。
【００９１】  上述の第２の実施の形態においては物理セクションＰＣに記憶されていたセクションＣのデータはフリー領域にあった物理セクションＰＤにコピーされていたが、この第３の実施の形態ではセクションＣのデータは物理セクションＰＡにコピーされる。すなわち、物理セクションＰＡはフリー領域に登録されず、セクションＣとして再利用される。そのため、アドレス変換テーブル２５０における論理セクションＬＵ２に対応して物理セクションＰＡが記憶されるように変更される。
【００９２】  一方、セクションＣのデータを記憶していた物理セクションＰＣは、フリー領域に登録される。そのため、アドレス変換テーブル２５０における論理セクションＬＦ１に対応して物理セクションＰＣが記憶されるように変更される。これにより、書込み量の小さい物理セクションＰＣがフリー領域となり、フリー領域の書込み量が減少する。
【００９３】  図１８は、本技術の第３の実施の形態における平均化処理の処理手順例を示す流れ図である。なお、メモリアクセス処理の全体処理については上述の第１の実施の形態と同様であるため、説明を省略する。
【００９４】  書込み量情報テーブル２２０において書込み量情報が更新されると（ステップＳ９１１：Ｙｅｓ）、平均化処理部２３０は、その書込みが発生したセクションＡを特定する（ステップＳ９１２）。この点は上述の第１の実施の形態と同様である。
【００９５】  平均化処理部２３０は、その書込みが発生したセクションＡにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する（ステップＳ９１３）。そして、その差分が閾値αを超えて大きい場合には（ステップＳ９１３：Ｙｅｓ）、平均化処理部２３０はセクション内平均化処理（ステップＳ９５０）およびセクション間平均化処理（ステップＳ９６０）を行う。
【００９６】  図１９は、本技術の第３の実施の形態におけるセクション内平均化処理（ステップＳ９５０）の処理手順例を示す流れ図である。
【００９７】  平均化処理部２３０は、書込み量情報テーブル２２０を参照して、フリー領域において総書込み量が最小のセクションＢを選択する（ステップＳ９５２）。なお、この例では、総書込み量が最小のフリー領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するフリー領域のセクションを選択するようにしてもよい。
【００９８】  そして、セクション間コピー処理部２４０は、セクションＡに記憶されているデータをセクションＢの物理セクションＰＢにコピーする（ステップＳ９５３）。
【００９９】  アドレス変換部２６０は、セクションＢに割り当てられていた物理セクションＰＢをユーザ領域に登録する（ステップＳ９５４）。すなわち、上述の例において、アドレス変換テーブル２５０のユーザ領域の論理アドレスＬＵ１に対応して物理セクションＰＢを記憶する。
【０１００】  また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＢのコピー済フラグを「１」に設定する（ステップＳ９５５）。
【０１０１】  図２０は、本技術の第３の実施の形態におけるセクション間平均化処理（ステップＳ９６０）の処理手順例を示す流れ図である。
【０１０２】  平均化処理部２３０は、書込み量情報テーブル２２０を参照して、ユーザ領域において総書込み量が最小であって、かつ、コピー済フラグが「０」であるセクションを選択する（ステップＳ９６１）。以下ではこの選択された論理セクションをセクションＣと称する。なお、この例では、総書込み量が最小のユーザ領域のセクションを選択しているが、全体における総書込み量の平均値よりも所定の閾値以下の総書込み量を有するユーザ領域のセクションを選択するようにしてもよい。
【０１０３】  そして、セクション間コピー処理部２４０は、セクションＣに記憶されているデータをセクションＡの物理セクションＰＡにコピーする（ステップＳ９６３）。
【０１０４】  アドレス変換部２６０は、セクションＡに割り当てられていた物理セクションＰＡを、セクションＣのあったユーザ領域に登録する（ステップＳ９６４）。すなわち、上述の例において、アドレス変換テーブル２５０のユーザ領域の論理アドレスＬＵ２に対応して物理セクションＰＡを記憶する。
【０１０５】  また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＡのページ書込み量を初期化するとともに、セクションＡのコピー済フラグを「０」にリセットする（ステップＳ９６５）。
【０１０６】  一方、アドレス変換部２６０は、セクションＣに割り当てられていた物理セクションＰＣをフリー領域に登録する（ステップＳ９６６）。すなわち、上述の例において、アドレス変換テーブル２５０のフリー領域の論理アドレスＬＦ１に対応して物理セクションＰＣを記憶する。
【０１０７】  また、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＣのページ書込み量を「０」に初期化する（ステップＳ９６７）。
【０１０８】  このように、本技術の第３の実施の形態では、セクション内平均化処理の後に、セクション内平均化処理の対象セクションが記憶されていた物理セクションＰＡを再利用することにより、処理効率を向上させることができる。
【０１０９】  ＜４．第４の実施の形態＞  上述の第２および第３の実施の形態では、セクション内平均化処理の後に、ユーザ領域のセクションとフリー領域のセクションとの間で入換えを行っていた。しかしながら、ページ間の書込み量の偏りを有するものとして選択されたセクションの総書込み量がそれほど多くない場合には、フリー領域との入換えは必ずしも必要ではない。そこで、この第４の実施の形態では、ページ間の書込み量の偏りを有するものとして選択されたセクションの総書込み量が全セクションの総書込み量の平均値よりも多くない場合には、セクション間平均化処理を行わずに、処理の簡略化を図る。
【０１１０】  なお、情報処理システムとしての全体構成およびメモリコントローラのブロック構成については、上述の第１の実施の形態と同様であるため、詳細な説明は省略する。また、書込み量情報については、上述の第２の実施の形態と同様であるため、詳細な説明は省略する。
【０１１１】  ［動作］  図２１は、本技術の第４の実施の形態における平均化処理の処理手順例を示す流れ図である。なお、メモリアクセス処理の全体処理については上述の第１の実施の形態と同様であるため、説明を省略する。
【０１１２】  書込み量情報テーブル２２０において書込み量情報が更新されると（ステップＳ９１１：Ｙｅｓ）、平均化処理部２３０は、その書込みが発生したセクションＡを特定する（ステップＳ９１２）。この点は上述の第１の実施の形態と同様である。
【０１１３】  平均化処理部２３０は、その書込みが発生したセクションＡにおいて、最大ページ書込み量とページ書込み量の平均値との差分が、閾値αを超えて大きいか否かを判断する（ステップＳ９１３）。そして、その差分が閾値αを超えて大きい場合には（ステップＳ９１３：Ｙｅｓ）、平均化処理部２３０はセクション内平均化処理（ステップＳ９５０）を行う。
【０１１４】  そして、書込みが発生したセクションＡの総書込み量が、総書込み量の全セクションの平均値よりも大きい場合には（ステップＳ９１４：Ｙｅｓ）、平均化処理部２３０はセクション間平均化処理（ステップＳ９６０）を行う。一方、セクションＡの総書込み量が、全セクションの平均値よりも多くない場合には（ステップＳ９１４：Ｎｏ）、アドレス変換部２６０は、セクションＡに割り当てられていた物理セクションＰＡをフリー領域に登録する（ステップＳ９１５）。また、この場合、書込み量計測部２１０は、書込み量情報テーブル２２０のセクションＡのページ書込み量を「０」に初期化するとともに、セクションＡのコピー済フラグを「０」にリセットする（ステップＳ９１６）。なお、この例では、セクションＡの総書込み量が総書込み量の全セクションの平均値よりも大きいか否かを基準としているが、平均値よりも所定の閾値以上大きいか否かを基準としてもよい。
【０１１５】  なお、セクション内平均化処理（ステップＳ９５０）およびセクション間平均化処理（ステップＳ９６０）における処理手順の内容については、上述の第３の実施の形態と同様であるため、説明を省略する。
【０１１６】  このように、本技術の第４の実施の形態によれば、書込みが発生したセクションの総書込み量が全セクションの平均値よりも多くない場合に、セクション間平均化処理を省くことにより、処理効率を向上させることができる。
【０１１７】  ＜５．第５の実施の形態＞  上述の第１乃至第４の実施の形態では、セクション間で入換えを行うことにより、セクション内のページ書込み量の平均化を図っていた。したがって、セクション内のページの順序については入換えの前後において変化がなかった。これに対し、この第５の実施の形態では、セクション内のページの順序を変更することにより、平均化処理の効果をさらに向上させる。
【０１１８】  ［メモリコントローラの構成］  図２２は、本技術の第５の実施の形態におけるメモリコントローラ２００の一構成例を示す図である。なお、情報処理システムとしての全体構成については、上述の第１の実施の形態と同様であるため、詳細な説明は省略する。
【０１１９】  この第５の実施の形態におけるメモリコントローラ２００は、上述の第１の実施の形態の構成に加えて、乱数列選択部２８０を備える。この乱数列選択部２８０は、セクション間コピー処理部２４０によって割当変更先のセクションにコピーが行われる際、セクション内のページ配置順序として異なる順序を選択するものである。セクション内のページ配置順序を規定するための乱数列は、例えばアドレス変換テーブル２５０に保持される。乱数列選択部２８０は、コピーが行われる度にこの乱数列を別のものに変更することにより、セクション内のページ配置順序を変更する。なお、乱数列選択部２８０は、特許請求の範囲に記載の選択部の一例である。
【０１２０】  ［乱数列］  図２３は、本技術の第５の実施の形態におけるページ配置順序の変更態様の例を示す図である。上述のように、１つのセクションは、一例として８つのページから構成されるものと想定する。論理セクション内の８つのページは、メモリ３００における物理セクションに配置される際、乱数列に従って順序が決定される。
【０１２１】  図２４は、本技術の第５の実施の形態における乱数列の一例を示す図である。ここでは、横方向に物理セクション内の８ページに相当するページオフセット＃０乃至＃７が示され、縦方向に８つの乱数列＃０乃至＃７が示されている。
【０１２２】  各乱数列は、論理セクション内のページ配置を表している。例えば、あるセクションにおいて乱数列＃２を使用する場合、論理ページ＃０は物理ページ＃２に割り当てられ、論理ページ＃４は物理ページ＃６に割り当てられることになる。
【０１２３】  なお、この例ではアダマール行列を用いており、これに含まれる乱数列は互いに異なる。したがって、異なる乱数列によって同じ物理ページが同じ論理ページに割り当てられることはない。
【０１２４】  図２５は、本技術の第５の実施の形態におけるアドレス変換テーブル２５０の構成例を示す図である。この第５の実施の形態におけるアドレス変換テーブル２５０は、論理セクション＃０乃至＃３２７６７に対応して、物理セクションアドレス＃０乃至＃３２７６７と、乱数列選択情報＃０乃至＃３２７６７とを保持する。
【０１２５】  物理セクションアドレスは、上述の実施の形態と同様であり、論理セクションに対応するメモリ３００上の物理セクションを示すものである。
【０１２６】  乱数列選択情報は、この第５の実施の形態における乱数列を、論理セクションに対応してそれぞれ示すものである。乱数列自体を保持する必要はなく、物理セクション内の論理ページの配置順序を示す乱数列の番号を保持すればよい。例えば、乱数列選択情報として「３」が保持されていれば、上述の例において論理ページ＃６は物理セクション内の物理ページ＃５に割り当てられることが分かる。なお、乱数列選択情報は、特許請求の範囲に記載の情報の一例である。
【０１２７】  このように、本技術の第５の実施の形態では、セクション内のページ配置順序を乱数列によって定義して、割当変更先のセクションにコピーが行われる際に乱数列を変更する。これにより、セクション内のページ配置順序として異なる順序を使用することにより、平均化処理の効果をさらに向上させることができる。
【０１２８】  なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１２９】  また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray（登録商標）Disc）等を用いることができる。
【０１３０】  なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
【０１３１】  なお、本技術は以下のような構成もとることができる。（１）メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部とを具備するメモリコントローラ。（２）前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量がその管理単位において偏りを生じた場合に、その管理単位を前記対象管理単位として選択する前記（１）に記載のメモリコントローラ。（３）前記平均化処理部は、前記管理単位における前記アクセス単位の書込み量の最大値がその管理単位における前記アクセス単位の書込み量の平均値よりも所定の閾値を超えて大きい場合に、その管理単位を前記対象管理単位として選択する前記（１）または（２）に記載のメモリコントローラ。（４）前記メモリの論理アドレス空間は、使用中領域と未使用領域とに分けて管理され、  前記平均化処理部は、前記計測された書込み量に基づいて前記対象管理単位の新たな割当先を前記未使用領域から選択して前記使用中領域として確保する前記（１）から（３）のいずれかに記載のメモリコントローラ。（５）前記平均化処理部は、前記未使用領域において前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を前記対象管理単位の新たな割当先として選択する前記（４）に記載のメモリコントローラ。（６）前記平均化処理部は、前記対象管理単位の物理アドレスの割当が変更された際、前記使用中領域において前記新たな割当先以外で前記アクセス単位の書込み量の総数が全体の平均値よりも所定の閾値以下となる前記管理単位を第２の対象管理単位として選択し、前記未使用領域において前記アクセス単位の書込み量の総数が最大となる前記管理単位を前記第２の対象管理単位の新たな割当先として選択して、前記第２の対象管理単位の前記アドレス変換における物理アドレスの割当を変更する前記（５）に記載のメモリコントローラ。（７）物理アドレスの割当変更対象となった旨を前記管理対象ごとに保持するフラグをさらに具備し、  前記平均化処理部は、前記新たな割当先に対応する前記フラグを物理アドレスの割当変更対象となった旨にセットし、前記使用中領域において前記第２の対象管理単位を選択する際に前記フラグがセットされているものを選択対象から除外する前記（６）に記載のメモリコントローラ。（８）前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる前記（４）に記載のメモリコントローラ。（９）前記平均化処理部は、前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用する前記（４）に記載のメモリコントローラ。（１０）前記平均化処理部は、前記対象管理単位の前記アクセス単位の書込み量の総数が前記管理対象の全体の平��値よりも所定の閾値以上大きい場合には前記対象管理単位の割当変更前の物理アドレスを前記使用中領域に割り当てて他の前記管理対象のために使用し、それ以外の場合には前記対象管理単位の割当変更前の物理アドレスを前記未使用領域に割り当てる前記（４）に記載のメモリコントローラ。（１１）前記管理単位における前記アクセス単位の配置順序を規定する情報を前記管理単位ごとに保持して、前記対象管理単位の物理アドレスの割当変更の前後においては前記対象管理単位における前記アクセス単位の配置順序として異なる順序を選択する選択部をさらに具備する前記（１）から（４）のいずれかに記載のメモリコントローラ。（１２）前記アクセス単位の配置順序を規定する情報は、互いに異なる複数の乱数列である前記（１１）に記載のメモリコントローラ。（１３）メモリと、  前記メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換部と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部とを具備するメモリシステム。（１４）メモリと、  前記メモリにアクセスするためのホストコマンドを発行するホストコンピュータと、  前記メモリのアクセス単位を複数まとめた管理単位ごとに前記ホストコマンドの論理アドレスと前記メモリの物理アドレスとの間でアドレス変換を行うアドレス変換部と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測部と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理部とを具備する情報処理システム。（１５）メモリのアクセス単位を複数まとめた管理単位ごとに論理アドレスと物理アドレスとの間でアドレス変換を行うアドレス変換手順と、  前記管理単位のそれぞれにおいて前記アクセス単位ごとの書込み量を計測する書込み量計測手順と、  前記計測された書込み量に基づいて前記管理単位のうちから対象管理単位を選択して当該対象管理単位の前記アドレス変換における物理アドレスの割当を変更して、前記対象管理単位における前記アクセス単位の書込み量を平均化させる平均化処理手順とを具備するメモリ制御方法。
【符号の説明】
【０１３２】  １００  ホストコンピュータ  ２００  メモリコントローラ  ２０１  ホストインターフェース  ２０９  メモリインターフェース  ２１０  書込み量計測部  ２２０  書込み量情報テーブル  ２３０  平均化処理部  ２４０  セクション間コピー処理部  ２５０  アドレス変換テーブル  ２６０  アドレス変換部  ２８０  乱数列選択部  ２９０  メモリ制御部  ３００  メモリ  ４００  メモリシステム
【図１】
2019017017.tif 000003
【図２】
2019017017.tif 000004
【図３】
2019017017.tif 000005
【図４】
2019017017.tif 000006
【図５】
2019017017.tif 000007
【図６】
2019017017.tif 000008
【図７】
2019017017.tif 000009
【図８】
2019017017.tif 000010
【図９】
2019017017.tif 000011
【図１０】
2019017017.tif 000012
【図１１】
2019017017.tif 000013
【図１２】
2019017017.tif 000014
【図１３】
2019017017.tif 000015
【図１４】
2019017017.tif 000016
【図１５】
2019017017.tif 000017
【図１６】
2019017017.tif 000018
【図１７】
2019017017.tif 000019
【図１８】
2019017017.tif 000020
【図１９】
2019017017.tif 000021
【図２０】
2019017017.tif 000022
【図２１】
2019017017.tif 000023
【図２２】
2019017017.tif 000024
【図２３】
2019017017.tif 000025
【図２４】
2019017017.tif 000026
【図２５】
2019017017.tif 000027
【国際調査報告】
2019017017.tif 000028
2019017017.tif 000029
2019017017.tif 000030
2019017017.tif 000031