(57)【要約】【課題】ホストコンピュータからアクセスサイズの異なる複数の書込みを要求するコマンドが発行された際の、処理時間の増加を防ぐ。【解決手段】アドレス変換部は、論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報に従って論理アドレスを物理アドレスに変換する。書込み先判別部は、アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報に従ってデータ書込み先のメモリ領域の番号を出力する。制御部は、物理アドレスに含まれるメモリ領域の番号と書込み先判別部が出力した書込み先メモリ領域の番号とが異なる際には書込み先判別部の上記出力に対応するメモリ領域にデータを書き込む。【選択図】図１
2015184856.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、
ホストコンピュータから発行されたコマンドに含まれる論理アドレスを前記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、
アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、
前記割当て情報に従って前記コマンドにおけるアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力する書込み先判別部と、
前記物理アドレスに含まれるメモリ領域の番号と前記書込み先判別部が出力した書込み先メモリ領域の番号とが異なる際には前記書込み先判別部の前記出力に対応するメモリ領域にデータを書き込む制御部と
を具備するメモリコントローラ。
【請求項２】
アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、
前記アクセスサイズと前記アクセス頻度情報とに基づいて前記割当て情報を生成して前記割当て情報保持部に保持させる割当て情報生成部と
をさらに具備する
請求項１記載のメモリコントローラ。
【請求項３】
書込みを要求する前記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより前記アクセス頻度情報を生成して前記頻度情報バッファに保持させる計測部をさらに具備する請求項２記載のメモリコントローラ。
【請求項４】
複数のメモリ領域からなるメモリモジュールと、
論理アドレスと前記メモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、
ホストコンピュータから発行されたコマンドに含まれる論理アドレスを前記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、
アクセスサイズと前記メモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、
前記割当て情報に従って前記コマンドにおけるアクセスサイズに対応する前記メモリ領域の番号を出力する書込み先判別部と、
前記物理アドレスに含まれる前記メモリ領域の番号と前記書込み先判別部が出力した前記メモリ領域の番号とが異なる際には前記書込み先判別部の前記出力に対応する前記メモリ領域にデータを書き込む制御部と
を備えるメモリコントローラと
を具備する記憶装置。
【請求項５】
複数のメモリ領域からなるメモリモジュールと、
メモリコントローラにコマンドを発行するホストコンピュータと、
論理アドレスと前記メモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、
前記ホストコンピュータから発行された前記コマンドに含まれる論理アドレスを前記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、
アクセスサイズと前記メモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、
前記割当て情報に従って前記ホストコンピュータから発行された前記コマンドにおけるアクセスサイズに対応する前記メモリ領域の番号を出力する書込み先判別部と、
前記物理アドレスに含まれる前記メモリ領域の番号と前記書込み先判別部が出力した前記メモリ領域の番号とが異なる際には前記書込み先判別部の前記出力に対応する前記メモリ領域にデータを書き込む制御部と
を備えるメモリコントローラと
を具備する情報処理システム。
【請求項６】
前記メモリコントローラは、
アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、
前記アクセスサイズと前記アクセス頻度情報とに基づいて前記割当て情報を生成して前記割当て情報保持部に保持させる割当て情報生成部と、
書込みを要求する前記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより前記アクセス頻度情報を生成して前記頻度情報バッファに保持させる計測部と
をさらに備える
請求項５記載の情報処理システム。
【請求項７】
前記メモリコントローラは、
アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、
前記アクセスサイズと前記アクセス頻度情報とに基づいて前記割当て情報を生成して前記割当て情報保持部に保持させる割当て情報生成部と
をさらに備え、
前記ホストコンピュータは、書込みを要求する前記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより前記アクセス頻度情報を生成して前記頻度情報バッファに保持させる計測部を備える
請求項５記載の情報処理システム。
【請求項８】
論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報によりホストコンピュータから発行されたコマンドに含まれる論理アドレスを物理アドレスに変換する手順と、
アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報に従って前記コマンドにおけるアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力する手順と、
前記物理アドレスに含まれるメモリ領域の番号と前記出力に対応するメモリ領域の番号とが異なる際には前記出力に対応するメモリ領域にデータを書き込む手順と
を具備するメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メモリコントローラに関する。詳しくは、複数の不揮発性メモリ領域書込み先を割当てるメモリコントローラ、記憶装置、情報処理システム、および、これらにおける制御方法に関する。
【背景技術】
【０００２】
従来、複数のメモリを組み合わせて性能向上を図った記憶装置が使用されている。このような記憶装置では、データ書込み先となるメモリの割当て方式を変えて性能向上を図る試みがなされている。例えば、ＮＡＮＤ型フラッシュメモリとＤＲＡＭ（Dynamic Random Access Memory）を使用した記憶装置の場合は、高アクセス頻度データの書込み先はＤＲＡＭに、これ以外はＮＡＮＤ型フラッシュメモリに割り当てる方式が知られている。高速にアクセスできるというＤＲＡＭの特徴を活かし性能向上を図ったものである。
【０００３】
上述したＮＡＮＤ型フラッシュメモリをはじめとする不揮発性メモリは、ＤＲＡＭに比べ書換え可能回数が少ないため、メモリとしての寿命が短いという性質がある。そこで、このような不揮発性メモリを複数備える記憶装置において、不揮発性メモリの長寿命化による性能向上を図った提案がされている。例えば、メモリに対する消去回数、書込み対象データの性質などの情報に基づいて書込先のメモリの割当てを行うメモリ管理装置が提案されている（特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８６５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、ホストコンピュータから発行されたコマンドにおける書込みデータサイズ、すなわちアクセスサイズを考慮せずに書込み先メモリを割り当てている。アクセスサイズの異なる複数の書込みコマンドが発行された際、書込み処理が特定のメモリに集中することも考えられる。このような場合、各メモリの処理時間が均等でなくなるため、全コマンドを通した書込み処理時間が増加するという問題があった。
【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、アクセスサイズを考慮して、書込み先メモリを割り当てることにより、書込み処理が特定のメモリに集中することを回避し、書込み処理時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、ホストコンピュータから発行されたコマンドに含まれる論理アドレスを上記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、上記割当て情報に従って上記コマンドにおけるアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力する書込み先判別部と、上記物理アドレスに含まれるメモリ領域の番号と上記書込み先判別部が出力した書込み先メモリ領域の番号とが異なる際には上記書込み先判別部の上記出力に対応するメモリ領域にデータを書き込む制御部とを具備するメモリコントローラである。これにより、アクセスサイズ毎に割当てられたメモリ領域に対しデータを書き込むという作用をもたらす。
【０００８】
また、この第１の側面において、アクセスサイズ毎のアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、上記アクセスサイズと上記アクセス頻度情報とに基づいて上記割当て情報を生成して上記割当て情報保持部に保持させる割当て情報生成部とをさらに具備してもよい。これにより、アクセスサイズ毎のアクセス頻度に基づいたメモリ領域の割当てが可能となるという作用をもたらす。
【０００９】
また、この第１の側面において、書込みを要求する上記コマンドにおいてコマンドの総数に対するアクセスサイズ毎のコマンドの割合を計測することにより上記アクセス頻度情報を生成して上記頻度情報バッファに保持させる計測部をさらに具備してもよい。これにより、アクセス頻度が変化しても動的に対応が可能となるという作用をもたらす。
【００１０】
また、本技術の第２の側面は、複数のメモリ領域からなるメモリモジュールと、論理アドレスと上記メモリモジュールメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、ホストコンピュータから発行されたコマンドに含まれる論理アドレスを上記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、アクセスサイズと上記メモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、上記割当て情報に従って上記コマンドにおけるアクセスサイズに対応する上記メモリ領域の番号を出力する書込み先判別部と、上記物理アドレスに含まれる上記メモリ領域の番号と上記書込み先判別部が出力した上記メモリ領域の番号とが異なる際には上記書込み先判別部の上記出力に対応する上記メモリ領域にデータを書き込む制御部とを備えるメモリコントローラとを具備する記憶装置である。これにより、複数のメモリ領域からなるメモリにおいて、アクセスサイズ毎に割当てられたメモリ領域に対しデータを書き込むという作用をもたらす。
【００１１】
また、本技術の第３の側面は、複数のメモリ領域からなるメモリモジュールと、メモリコントローラにコマンドを発行するホストコンピュータと、論理アドレスと上記メモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、上記ホストコンピュータから発行された上記コマンドに含まれる論理アドレスを上記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、アクセスサイズと上記メモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、上記割当て情報に従って上記ホストコンピュータから発行された上記コマンドにおけるアクセスサイズに対応する上記メモリ領域の番号を出力する書込み先判別部と、上記物理アドレスに含まれる上記メモリ領域の番号と上記書込み先判別部が出力した上記メモリ領域の番号とが異なる際には上記書込み先判別部の上記出力に対応する上記メモリ領域にデータを書き込む制御部とを備えるメモリコントローラを具備する情報処理システムである。これにより、複数のメモリ領域からなるメモリにおいて、アクセスサイズ毎に割当てられたメモリ領域に対しデータを書き込むという作用をもたらす。
【００１２】
また、この第３の側面において、上記メモリコントローラは、アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、上記アクセスサイズと上記アクセス頻度情報とに基づいて上記割当て情報を生成して上記割当て情報保持部に保持させる割当て情報生成部と、書込みを要求する上記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより上記アクセス頻度情報を生成して上記頻度情報バッファに保持させる計測部とをさらに備えてもよい。これにより、複数のメモリ領域からなるメモリモジュールにおいて、アクセス頻度が変化しても動的に対応が可能となるという作用をもたらす。
【００１３】
また、この第３の側面において、上記メモリコントローラは、アクセスサイズ毎のアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、上記アクセスサイズと上記アクセス頻度情報とに基づいて上記割当て情報を生成して上記割当て情報保持部に保持させる割当て情報生成部とをさらに備え、上記ホストコンピュータは、書込みを要求する上記コマンドにおいてコマンドの総数に対するアクセスサイズ毎のコマンドの割合を計測することにより上記アクセス頻度情報を生成して上記頻度情報バッファに保持させる計測部を備えてもよい。これにより、複数のメモリ領域からなるメモリモジュールにおいて、アクセス頻度が変化しても動的に対応が可能となるという作用をもたらす。
【００１４】
また、本技術の第４の側面は、論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報によりホストコンピュータから発行されたコマンドに含まれる論理アドレスを物理アドレスに変換する手順と、アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報に従って上記コマンドにおけるアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力する手順と、上記物理アドレスに含まれるメモリ領域の番号と上記出力に対応するメモリ領域の番号とが異なる際には上記出力に対応するメモリ領域にデータを書き込む手順とを具備するメモリの制御方法である。これにより、アクセスサイズ毎に割当てられたメモリ領域に対しデータを書き込むという作用をもたらす。
【発明の効果】
【００１５】
本技術によれば、ホストコンピュータからアクセスサイズの異なる複数の書込みコマンドが発行された場合であっても、各メモリ領域の処理時間を均等にでき、全コマンドを通した書込み処理時間を短縮することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１６】
【図１】本技術の第１の実施の形態における情報処理システムの機能構成例を示す図である。
【図２】本技術の第１の実施の形態におけるメモリの構成例を示す図である。
【図３】本技術の第１の実施の形態における書込み処理の処理手順の一例を示す図である。
【図４】本技術の第１の実施の形態における書込み処理のタイミングチャートを示す図である。
【図５】本技術の第２の実施の形態におけるメモリの構成例を示す図である。
【図６】本技術の第２の実施の形態における書込み処理の処理手順の一例を示す図である。
【図７】本技術の第２の実施の形態における書込み先割当て処理（ステップＳ９６０）の処理手順の一例を示す図である。
【図８】本技術の第３の実施の形態におけるメモリの構成例を示す図である。
【図９】本技術の第３の実施の形態における書込み処理の処理手順の一例を示す図である。
【図１０】本技術の第４の実施の形態におけるメモリの構成例を示す図である。
【図１１】本技術の第４の実施の形態における書込み処理の処理手順の一例を示す図である。
【図１２】本技術の第４の実施の形態における書込み先割当て処理（ステップＳ８６０）の処理手順の一例を示す図である。
【図１３】本技術の第５の実施の形態におけるメモリの構成例を示す図である。
【図１４】本技術の第６の実施の形態における情報処理システムの機能構成例を示す図である。
【図１５】本技術の第６の実施の形態における書込み処理の処理手順の一例を示す図である。
【図１６】本技術の第６の実施の形態における頻度情報計測、更新処理の処理手順の一例を示す図である。
【図１７】本技術の第６の実施の形態におけるアクセスサイズ毎の割当て先決定処理の処理手順の一例を示す図である。
【図１８】本技術の第７の実施の形態における情報処理システムの機能構成例を示す図である。
【図１９】本技術の第７の実施の形態における書込み先割当て処理の処理手順の一例を示す図である。
【図２０】本技術の実施の形態の変形例における書込み先割当て処理の処理手順の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。なお、本技術の実施の形態を説明するにあたり、次のように用語を定義する。少なくとも１組のメモリ領域とメモリインターフェースとを含むメモリをメモリチップと表現する。メモリチップに含まれ、１組のメモリ領域と独立して動作可能なメモリインターフェースとからなるメモリをメモリバンクと表現する。１つ以上のメモリチップを含むメモリをメモリモジュールと表現する。説明は以下の順序により行う。
１．第１の実施の形態（２個のメモリチップを備えるメモリモジュールを使用する例）
２．第２の実施の形態（４個のメモリチップを備えるメモリモジュールを使用する例）
３．第３の実施の形態（２個のメモリバンクを有するメモリチップ１個を備えるメモリモジュールを使用する例）
４．第４の実施の形態（２個のメモリバンクを有するメモリチップ２個を備えるメモリモジュールを使用する例）
５．第５の実施の形態（種類の異なる２個のメモリを備えるメモリモジュールを使用する例）
６．第６の実施の形態（アクセス頻度情報を動的に変更する例）
７．第７の実施の形態（ホストコンピュータからアクセス頻度情報を受信する例）
８．変形例
【００１８】
＜１．第１の実施の形態＞
図１は、本技術の第１の実施の形態における情報処理システムの機能構成例を示す図である。本技術の第１の実施の形態における情報処理システムは、ホストコンピュータ１００と、メモリコントローラ２００と、メモリモジュール３００とを備える。
【００１９】
ホストコンピュータ１００は、メモリコントローラ２００を介してメモリモジュール３００とデータの入出力を行うものである。これは、書込みまたは読出しを要求するコマンドをメモリコントローラ２００に対し発行することにより行われる。また、ホストコンピュータ１００は、プロセッサ、ＲＯＭ、ＲＡＭ等（図示せず）を備える。
【００２０】
メモリコントローラ２００は、ホストコンピュータ１００が発行したコマンドに基づいてメモリモジュール３００を制御するものである。このメモリコントローラ２００は、制御部２０１と、アドレス変換部２０２と、書込み先判別部２０３とを備える。制御部２０１は、メモリコントローラ２００内の各部に対する制御を行うものである。この制御部２０１は、ホストコンピュータ１００およびメモリ３００との間のやり取りを行うインターフェース機能を有する。具体的には、ホストコンピュータ１００が発行したコマンドに対しアドレス変換等の処理を行い、リクエストとしてメモリモジュール３００に発行する。
【００２１】
アドレス変換部２０２は、ホストコンピュータ１００が発行したコマンドに含まれるアドレス、すなわち論理アドレスをメモリモジュール３００に含まれるメモリチップにおけるアドレスである物理アドレスに変換するものである。ここで、物理アドレスには、メモリチップを識別するためのメモリ領域番号が含まれる。上述したアドレス変換は、論理アドレスと物理アドレスとの対応関係を示すアドレス変換情報に従って行われる。１度のアドレス変換により変換されるデータサイズ、すなわちアドレス変換単位は、メモリモジュール３００との間でやり取りされるデータサイズの最小値に該当する。また、アドレス変換情報は、アドレス変換情報バッファ２０４に保持されている。
【００２２】
書込み先判別部２０３は、ホストコンピュータ１００が発行した書込みを要求するコマンドのアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力するものである。これは、アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報に従って行われる。この割当て情報は、割当て情報保持部２０５に保持されている。ここで、アクセスサイズとは、コマンドにより書込みまたは読出し要求されたデータサイズを表しており、上述したアドレス変換部２０２によって変換されるデータサイズの整数倍の値である。
【００２３】
これらのほか、メモリコントローラ２００は、書込みエラー発生時の代替、ウェアレベリング等の処理も行う。
【００２４】
なお、制御部２０１は、特許請求の範囲に記載の制御部の一例である。アドレス変換部２０２は、特許請求の範囲に記載のアドレス変換部の一例である。書込み先判別部２０３は、特許請求の範囲に記載の書込み先判別部の一例である。アドレス変換情報バッファ２０４は、特許請求の範囲に記載のアドレス変換情報バッファの一例である。割当て情報保持部２０５は、特許請求の範囲に記載の割当て情報保持部の一例である。
【００２５】
メモリモジュール３００は、複数のメモリチップを有したメモリモジュールである。このメモリモジュール３００については、図２を参照して説明する。
【００２６】
図２は、本技術の第１の実施の形態におけるメモリモジュールの構成例を示す図である。メモリモジュール３００は、同様の構成を有するメモリチップ３０１と３０４とを備えている。メモリチップ３０１はメモリインターフェース３０２と不揮発性メモリ３０３とを有しており、メモリチップ３０４はメモリインターフェース３０５と不揮発性メモリ３０６とを有している。メモリインターフェース３０２および３０５は、それぞれメモリコントローラ２００との間でやり取りを行う。具体的には、メモリコントローラ２００から発行されたリクエストに従って不揮発性メモリ３０３または３０６を制御し、データの書込みおよび読出しを行う。
【００２７】
不揮発性メモリ３０３および３０６の例としては、ＮＡＮＤ型フラッシュメモリ、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）、ＲｅＲＡＭ（Resistance RAM）が挙げられる。
【００２８】
ホストコンピュータ１００とメモリコントローラ２００との間および、メモリコントローラ２００とメモリ３００との間を接続するインターフェースとしては、ＳＡＴＡ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ｅＭＭＣ、ＵＳＢなどを利用することができる。
【００２９】
メモリコントローラ２００は、前述したメモリ領域の番号によりメモリチップ３０１、３０４を識別してリクエストを発行する。ここで、メモリ領域の番号とは、メモリコントローラ２００がメモリチップを識別するために用いる番号またはアドレスである。インターフェースとしてＵＳＢを採用した場合には、メモリ領域の番号はメモリチップ３０１および３０４に割り当てられたアドレスに対応する。本実施の形態においては、メモリチップ３０１および３０４にはメモリ領域の番号としてそれぞれ＃０および＃１を割り当てている。
【００３０】
［メモリ領域の割当て］
本技術の第１の実施の形態においては、アクセスサイズは、４ＫＢと１６ＫＢだけを規定している。このアクセスサイズに対応したアクセス頻度により書込み先のメモリチップを割り当てる。ここで、アクセス頻度とは、上述したアクセスサイズ毎の書込みを要求するコマンドの発生頻度である。本技術の第１の実施の形態においては、アクセス頻度は、アクセスサイズ４ＫＢが８０％、アクセスサイズ１６ＫＢが２０％と想定する。
【００３１】
アクセスサイズ４ＫＢと１６ＫＢのデータ書込み先をメモリチップ３０１と３０４に割り当てる方法について説明する。アクセスサイズとアクセス頻度の積をメモリ占有比率と定義し、このメモリ占有比率が各メモリチップにおいて均等になるよう割当てを行う。上述の通り、アクセス頻度は、アクセスサイズ４ＫＢが８０％、アクセスサイズ１６ＫＢが２０％である。アクセスサイズとアクセス頻度の積から比の値を求めると、アクセスサイズ順に１：１となる。メモリチップは２個であるため、アクセスサイズ４ＫＢのコマンドを一方のメモリチップに、アクセスサイズ１６ＫＢのコマンドを他方のメモリチップに割り当てることにより、メモリ占有比率を各メモリチップにおいて均等にすることができる。本技術の第１の実施の形態においては、アクセスサイズ４ＫＢのコマンドをメモリチップ３０１（メモリ領域＃０）に、アクセスサイズ１６ＫＢのコマンドをメモリチップ３０４（メモリ領域＃１）に割り当てる。これを既定の割当て情報とし、割当て情報保持部２０５に保持させる。
【００３２】
次に、上述の実施の形態におけるメモリコントローラ２００の動作について図面を参照して説明する。
【００３３】
［書込み処理の処理手順］
図３は、本技術の第１の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータ１００より書込みを要求するコマンドを受け取ると、メモリコントローラ２００は、書込み処理を開始する。まず、コマンドに含まれる論理アドレスを物理アドレスに変換する（ステップＳ９０１）。ここで、本技術の第１の実施の形態においては、アドレス変換の変換単位は４ＫＢとする。次に、アクセスサイズを調べ、４ＫＢの場合は（ステップＳ９０２：４ＫＢ）、書込み先をメモリ領域＃０に設定する（ステップＳ９０５）。１６ＫＢの場合は（ステップＳ９０２：１６ＫＢ）、書込み先をメモリ領域＃１に設定する（ステップＳ９０６）。
【００３４】
このとき、ステップＳ９０５またはＳ９０６により設定された書込み先と、物理アドレスに含まれる書込み先とが等しい場合すなわち、データの書込み先が変更されていない場合（ステップＳ９２１：Ｎｏ）、次の処理（ステップＳ９２３）に移る。データの書込み先が変更されている場合は（ステップＳ９２１：Ｙｅｓ）、アドレス変換情報を書き換える（ステップＳ９２２）。当該コマンドに含まれる論理アドレスに対応する物理アドレスとして、変更後のメモリ領域番号と新たなアドレスを設定する。変更前の物理アドレスに該当するメモリ領域は空き領域として登録する。
【００３５】
アクセスサイズがアドレス変換における変換単位より大きく、次の変換単位が存在する場合は（ステップＳ９２３：Ｙｅｓ）、再度ステップＳ９２１からの処理を繰り返す。次の変換単位が存在しない場合は（ステップＳ９２３：Ｎｏ）次の処理に移る。例えば、アクセスサイズを４ＫＢから１６ＫＢに変更した場合、新たなアクセスサイズ１６ＫＢは、変換単位４ＫＢの４倍の大きさであるため、アドレス変換情報書換え（ステップＳ９２２）を４回実行する必要がある。そして、４回目のアドレス変換情報書換え（ステップＳ９２２）を行った後、処理はＳ９２３からＳ９２４に進む。ステップＳ９２４にて、リクエストをメモリ３００に対して発行してデータ書込みを行い（ステップＳ９２４）、書込み処理を終了する。
【００３６】
本技術の第１の実施の形態において、書込み処理を行った場合の処理時間について説明する。
【００３７】
図４は、本技術の第１の実施の形態における書込み処理のタイミングチャートを示す図である。同図は、ホストコンピュータ１００が発行したコマンド、メモリコントローラ２００における処理の後メモリ領域＃０および＃１が受信したリクエスト、メモリ領域＃０および＃１における書込み処理時間の関係を表したものである。同図におけるａは、本技術の第１の実施の形態における書込み処理を行った場合のタイミングチャートである。一方、同図におけるｂは、同書込み処理を行わなかった場合のタイミングチャートである。なお、これらのコマンドおよびリクエストは、全て書込みを要求するものであり、図中の４ＫＢおよび１６ＫＢの記載はコマンド等のアクセスサイズを表している。
【００３８】
メモリコントローラ２００は、ホストコンピュータ１００が発行したコマンドのうち、アクセスサイズ４ＫＢのコマンドをメモリ領域＃０に、アクセスサイズ１６ＫＢのコマンドをメモリ領域＃１に振り分ける。メモリチップの書込み速度を１００ＭＢ／ｓとすると、４ＫＢおよび１６ＫＢのデータ書込みに要する時間は、それぞれ４０μｓ、１６０μｓとなる。図より明らかなように、メモリ領域＃０および＃１における書込み処理に要する時間はいずれも１６０μｓとなる。これらに比べ、リクエストの発行やメモリコントローラ２００におけるアドレス変換等の処理に要する時間は短いため、全体の処理時間もほぼ１６０μｓとなる。
【００３９】
比較のため、アクセスサイズ毎の割当て処理を行わない場合も検討する。図４におけるｂに表したタイミングチャートは、ホストコンピュータ１００が発行したコマンドのうち、前半の３コマンドをメモリ領域＃０に、後半の２コマンドをメモリ領域＃１に割り当てた場合のものである。図より明らかなように、メモリ領域＃０に書込み処理が集中し、処理時間は２４０μｓとなることが分かる。コマンド全体の処理時間も２４０μｓとなり、アクセスサイズ毎の割当て処理を行う場合に比べ処理時間が増加することが分かる。
【００４０】
［読出し処理］
読出し処理は次のように行う。ホストコンピュータ１００が発行した読出しを要求するコマンドに含まれる論理アドレスを物理アドレスに変換する。その後、得られた物理アドレスに含まれるメモリ領域番号により特定されるメモリチップに対して、読出しを要求するリクエストを発行する。
【００４１】
このように、本技術の第１の実施の形態によれば、書込みを要求するコマンドのアクセスサイズ毎に、データ書込み先となるメモリ領域を割り当てるため、各メモリ領域の処理時間を均等にすることができる。これにより、全コマンドを通した書込み処理時間を短縮することができる。
【００４２】
＜２．第２の実施の形態＞
上述の本技術の第１の実施の形態は、２個のメモリチップを備えるメモリモジュール３００に対しアクセスサイズ毎の割当て処理を行っていた。これに対し、本技術の第２の実施の形態では、４個のメモリチップを備えたメモリモジュールに対しアクセスサイズ毎の割当て処理を行う。
【００４３】
図５は、本技術の第２の実施の形態におけるメモリの構成例を示す図である。メモリモジュール３１０は、同種のメモリチップ３１１、３１２、３１３、３１４を備えている。これらは図２に表したメモリチップ３０１および３０４と同等とすることができる。また、メモリ領域の番号としてそれぞれ＃０、＃１、＃２、＃３を割り当てている。なお、これ以外の情報処理システムの機能構成やメモリコントローラの構成等は本技術の第１の実施の形態と同様の構成にすることができる。
【００４４】
［メモリ領域の割当て］
本技術の第２の実施の形態においては、アクセスサイズは、４ＫＢ、８ＫＢ、１６ＫＢおよび３２ＫＢを規定している。このアクセスサイズに対応したアクセス頻度は、それぞれ８０％、１０％、５％、５％と想定する。これらより、メモリ占有比率を算出する。アクセスサイズとアクセス頻度の積から比の値を求めると、アクセスサイズ順に４：１：１：２となる。メモリ占有比率が均等になるメモリ領域の割当ては、次の通りである。アクセスサイズ４ＫＢのコマンドは、メモリチップ３１１（メモリ領域＃０）およびメモリチップ３１２（メモリ領域＃１）に割り当てる。アクセスサイズ８ＫＢおよび１６ＫＢのコマンドは、メモリチップ３１３（メモリ領域＃２）に割り当てる。最後に、アクセスサイズ３２ＫＢのコマンドは、メモリチップ３１４（メモリ領域＃３）に割り当てる。
【００４５】
アクセスサイズ４ＫＢのコマンドの割当ては、メモリ領域＃０および＃１の選択が可能である。そこで、片方のメモリ領域にアクセスが集中しないように書込み先の振分けを行ってもよい。具体的には、アクセスサイズ変更に伴う書込み先変更が生じ、メモリ領域＃２および＃３からメモリ領域＃０または＃１に書込み先を割り当てる際の振分けを、メモリ領域＃０と＃１とにより交互に行う。このような振分け処理を行うことにより、上述のアクセスの集中を防ぐことができる。この場合、メモリコントローラ２００の制御部２０１は、上述の振分け先メモリ領域番号を保持するバッファを備える必要がある。
【００４６】
次に、上述の実施の形態におけるメモリコントローラ２００の動作について図面を参照して説明する。
【００４７】
［書込み処理の処理手順］
図６は、本技術の第２の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータ１００より書込みを要求するコマンドを受け取ると、メモリコントローラ２００は、書込み処理を開始する。まず、コマンドに含まれる論理アドレスを物理アドレスに変換する（ステップＳ９５１）。次に、アクセスサイズを調べ、４ＫＢの場合（ステップＳ９５２：４ＫＢ）、処理はステップＳ９５３に移る。アドレス変換（ステップＳ９５１）によって得られた物理アドレスに含まれる書込み先がメモリ領域＃０または＃１の場合は（ステップＳ９５３：＃０、＃１）、書込み先を変更せず（ステップＳ９５９）、データ書込みを行う（ステップＳ９７４）。
【００４８】
ステップＳ９５３において、物理アドレスに含まれる書込み先がメモリ領域＃２または＃３の場合は（ステップＳ９５３：＃２、＃３）、メモリ領域＃０または＃１に書込み先を変更する必要があり、前述した振分け処理を実施する。振分け先メモリ領域番号を保持するバッファを調べ、前回の振分け先が＃０であれば（ステップＳ９５４：＃０）、書込み先をメモリ領域＃１に設定する（ステップＳ９５６）。前回の振分け先が＃１であれば（ステップＳ９５４：＃１）、書込み先をメモリ領域＃０に設定する（ステップＳ９５５）。このように、メモリ領域＃０および＃１への振分けは、交互に行う。その後、アドレス変換情報を書換え（ステップＳ９８２）、データ書込みを行う（ステップＳ９７４）。
【００４９】
ステップＳ９５２において、アクセスサイズが８ＫＢ、１６ＫＢ、３２ＫＢのときは（ステップＳ９５２：８ＫＢ、１６ＫＢ、３２ＫＢ）、書込み先割当て処理（ステップＳ９６０）を実施し、アクセスサイズに対応した書込み先を設定する。データの書込み先が変更されている場合（ステップＳ９７１：Ｙｅｓ）、アドレス変換情報を書換える（ステップＳ９７２）。データの書込み先が変更されていない場合は（ステップＳ９７１：Ｎｏ）、次の処理に移る。次の変換単位が存在する場合は（ステップＳ９７３：Ｙｅｓ）、再度ステップＳ９７１からの処理を繰り返す。次の変換単位が存在しない場合は（ステップＳ９７３：Ｎｏ）、データ書込みを行う（ステップＳ９７４）。データ書込み後、書込み処理を終了する。
【００５０】
図７は、本技術の第２の実施の形態における書込み先割当て処理（ステップＳ９６０）の処理手順の一例を示す図である。アクセスサイズが８ＫＢおよび１６ＫＢのときは（ステップＳ９６１：８ＫＢ、１６ＫＢ）、書込み先をメモリ領域＃２に設定する（ステップＳ９６７）。アクセスサイズが３２ＫＢのときは（ステップＳ９６１：３２ＫＢ）、書込み先をメモリ領域＃３に設定する（ステップＳ９６８）。その後、書込み先割当て処理を終了する。
【００５１】
なお、この振分け処理は、コマンドの書込み先変更が生じた際にのみ行っているが、アクセスサイズ４ＫＢのコマンドをメモリ領域＃０または＃１に割当てる際に常に行ってもよい。この場合も、アクセスの集中を防ぐことができる。
【００５２】
このように、本技術の第２の実施の形態によれば、メモリ領域が４個の場合であっても、書込みを要求するコマンドのアクセスサイズ毎に、データ書込み先となるメモリ領域を割り当てるため、各メモリ領域の処理時間を均等にすることができる。また、同一のアクセスサイズのコマンドを複数のメモリ領域に割り当てる場合であっても、振分け処理を行うことにより、アクセスの集中を防ぐことができる。
【００５３】
＜３．第３の実施の形態＞
前述した本技術の第１の実施の形態は、２個のメモリチップを備えるメモリモジュール３００に対しアクセスサイズ毎の割当て処理を行っていた。これに対し、本技術の第３の実施の形態では、２個のメモリバンクを有するメモリチップ１個を備えたメモリモジュールに対しアクセスサイズ毎の割当て処理を行う。
【００５４】
図８は、本技術の第３の実施の形態におけるメモリの構成例を示す図である。メモリモジュール３２０は、メモリチップ番号＃０が割当てられたメモリチップ３２１を備えている。メモリチップ３２１は、メモリインターフェース３２４および３２６と、不揮発性メモリ３２５とを有する。不揮発性メモリ３２５は２つのメモリ領域に分かれている。これら２つのメモリ領域はメモリインターフェース３２４または３２５に接続され、メモリバンク３２２および３２３を構成している。これらのメモリバンクは、それぞれメモリバンク番号＃０、＃１が割り当てられている。なお、これ以外の情報処理システムの機能構成やメモリコントローラの構成等は本技術の第１の実施の形態と同様の構成にすることができる。
【００５５】
［メモリ領域の割当て］
本技術の第３の実施の形態においては、メモリコントローラ２００は、メモリチップ３２１内のメモリバンクに割当てられた番号をメモリ領域の番号として管理する。
【００５６】
また、本技術の第３の実施の形態においては、アクセスサイズは、４ＫＢ、８ＫＢ、１６ＫＢおよび３２ＫＢを規定している。このアクセスサイズに対応したアクセス頻度は、それぞれ８０％、１０％、５％、５％を想定する。これらより、メモリ占有比率を算出する。アクセスサイズとアクセス頻度の積から比の値を求めると、アクセスサイズ順に４：１：１：２となる。メモリ占有比率が均等になるメモリ領域の割当ては、次の通りである。アクセスサイズ４ＫＢのコマンドは、メモリバンク３２２（メモリ領域＃０）に割り当てる。アクセスサイズ８ＫＢ、１６ＫＢおよび３２ＫＢのコマンドは、メモリバンク３２３（メモリ領域＃１）に割り当てる。
【００５７】
次に、上述の実施の形態におけるメモリコントローラ２００の動作について図面を参照して説明する。
【００５８】
［書込み処理の処理手順］
図９は、本技術の第３の実施の形態における書込み処理の処理手順の一例を示す図である。メモリバンクに対し書込みを行う点において、図３に表した本技術の第１の実施の形態における書込み処理と異なる。ホストコンピュータ１００より書込みを要求するコマンドを受け取ると、メモリコントローラ２００は、書込み処理を開始する。まず、アドレス変換を行う（ステップＳ８０１）。次に、アクセスサイズを調べ、４ＫＢの場合は（ステップＳ８０２：４ＫＢ）、書込み先をメモリ領域＃０に設定する（ステップＳ８０５）。これ以外のアクセスサイズの場合は（ステップＳ８０２：８ＫＢ、１６ＫＢ、３２ＫＢ）、書込み先をメモリ領域＃１に設定する（ステップＳ８０６）。
【００５９】
データの書込み先が変更されていない場合（ステップＳ８２１：Ｎｏ）、次の処理（ステップＳ８２３）に移る。データの書込み先が変更されている場合は（ステップＳ８２１：Ｙｅｓ）、アドレス変換情報を書換える（ステップＳ８２２）。次の変換単位が存在する場合は（ステップＳ８２３：Ｙｅｓ）、再度ステップＳ８２１からの処理を繰り返す。次の変換単位が存在しない場合は（ステップＳ８２３：Ｎｏ）、データ書込みを行い（ステップＳ８２４）、書込み処理を終了する。
【００６０】
このように、本技術の第３の実施の形態によれば、メモリチップが２個のバンクを有する場合であっても、書込みを要求するコマンドのアクセスサイズ毎に、データ書込み先となるメモリ領域を割り当てることができる。このため、各バンクの処理時間を均等にすることができる。
【００６１】
＜４．第４の実施の形態＞
上述の本技術の第３の実施の形態は、２個のメモリバンクを有するメモリチップ１個を備えるメモリ３２０に対しアクセスサイズ毎の割当て処理を行っていた。これに対し、本技術の第４の実施の形態では、２個のメモリバンクを有するメモリチップ２個を備えたメモリに対しアクセスサイズ毎の割当て処理を行う。
【００６２】
図１０は、本技術の第４の実施の形態におけるメモリの構成例を示す図である。メモリモジュール３３０は、同様の構成を有するメモリチップ３３１および３３２を備えている。これらは図８に表したメモリチップ３２１と同様の構成にすることができる。また、それぞれメモリチップ番号＃０、＃１が割当てられている。メモリチップ３３１の各メモリバンクは、メモリバンク番号＃０、＃１が割当てられている。これはメモリチップ３３２でも同様である。これ以外の情報処理システムの機能構成やメモリコントローラの構成等は本技術の第１の実施の形態と同様の構成にすることができる。
【００６３】
［メモリ領域の割当て］
本技術の第４の実施の形態においては、メモリコントローラ２００は、メモリチップ３３１、３３２およびそれらに含まれるメモリバンクにメモリ領域番号を設定し、管理する。具体的には。メモリチップ３３１のメモリバンク＃０をメモリ領域番号＃０、メモリバンク＃１をメモリ領域番号＃１とする。また、メモリチップ３３２のメモリバンク＃０をメモリ領域番号＃２、メモリバンク＃１をメモリ領域番号＃３とする。
【００６４】
また、本技術の第４の実施の形態においては、アクセスサイズは、４ＫＢ、８ＫＢ、１６ＫＢおよび３２ＫＢを規定し、対応するアクセス頻度は、それぞれ８０％、１０％、５％、５％を想定する。これは、本技術の第２の実施の形態において規定したアクセスサイズおよびアクセス頻度と同じである。メモリ領域の割当ては、次の通りである。アクセスサイズ４ＫＢのコマンドは、メモリ領域＃０、＃１に割り当てる。アクセスサイズ８ＫＢおよび１６ＫＢのコマンドは、メモリ領域＃２に割り当てる。最後に、アクセスサイズ３２ＫＢのコマンドは、メモリ領域＃３に割り当てる。
【００６５】
次に、上述の実施の形態におけるメモリコントローラ２００の動作について図面を参照して説明する。
【００６６】
［書込み処理の処理手順］
図１１は、本技術の第４の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータ１００より書込みを要求するコマンドを受け取ると、メモリコントローラ２００は、書込み処理を開始する。まず、アドレス変換を行う（ステップＳ８５１）。次に、アクセスサイズを調べ、４ＫＢの場合（ステップＳ８５２：４ＫＢ）、処理はステップＳ８５３に移る。物理アドレスに含まれる書込み先がメモリ領域＃０または＃１の場合は（ステップＳ８５３：＃０、＃１）、書込み先を変更せず（ステップＳ８５９）、データ書込みを行う（ステップＳ８７４）。
【００６７】
ステップＳ８５３において、物理アドレスに含まれる書込み先がメモリ領域＃２または＃３の場合は（ステップ８５３０：＃２、＃３）、振分け処理を実施する。振分け先メモリ領域およびバンク番号を保持するバッファを調べ、前回の振分け先がメモリ領域＃０であれば（ステップＳ８５４：＃０）、書込み先をメモリ領域＃１に設定する（ステップＳ８５６）。前回の振分け先がメモリ領域＃１であれば（ステップＳ８５４：＃１）、書込み先をメモリ領域＃０に設定する（ステップＳ８５５）。その後、アドレス変換情報を書換え（ステップＳ８８２）、データ書込みを行う（ステップＳ８７４）。
【００６８】
ステップＳ８５２において、アクセスサイズが８ＫＢ、１６ＫＢ、３２ＫＢのときは（ステップＳ８５２：８ＫＢ、１６ＫＢ、３２ＫＢ）、書込み先割当て処理（ステップＳ８６０）を実施し、アクセスサイズに対応した書込み先を設定する。データの書込み先が変更されている場合（ステップＳ８７１：Ｙｅｓ）、アドレス変換情報を書換える（ステップＳ８７２）。データの書込み先が変更されていない場合は（ステップＳ８７１：Ｎｏ）、次の処理に移る。次の変換単位が存在する場合は（ステップＳ８７３：Ｙｅｓ）、再度ステップＳ８７１からの処理を繰り返す。次の変換単位が存在しない場合は（ステップＳ８７３：Ｎｏ）、データ書込みを行う（ステップＳ８７４）。その後、書込み処理を終了する。
【００６９】
図１２は、本技術の第４の実施の形態における書込み先割当て処理（ステップＳ８６０）の処理手順の一例を示す図である。アクセスサイズが８ＫＢおよび１６ＫＢのときは（ステップＳ８６１：８ＫＢ、１６ＫＢ）、書込み先をメモリ領域＃２に設定する（ステップＳ８６７）。アクセスサイズが３２ＫＢのときは（ステップＳ８６１：３２ＫＢ）、書込み先をメモリ領域＃３に設定する（ステップＳ８６８）。その後、書込み先割当て処理を終了する。
【００７０】
このように、本技術の第４の実施の形態によれば、２個のメモリバンクを有するメモリチップ２個を備えるメモリモジュールの場合であっても、書込みを要求するコマンドのアクセスサイズ毎の、データ書込み先となるメモリ領域の割当てが可能である。このため、各メモリ領域の処理時間を均等にすることができる。また、同一のアクセスサイズのコマンドを複数のメモリバンクに割り当てる場合であっても、振分け処理を行うことにより、アクセスの集中を防ぐことができる。
【００７１】
＜５．第５の実施の形態＞
上述の本技術の実施の形態は、同種類のメモリを備えるメモリモジュールに対しアクセスサイズ毎の割当て処理を行っていた。これに対し、本技術の第５の実施の形態では、種類の異なるメモリ２個を備えたメモリモジュールに対しコマンドの割当て処理を行う。
【００７２】
図１３は、本技術の第５の実施の形態におけるメモリの構成例を示す図である。メモリ３４０は、種類の異なるメモリチップ３４１および３４４を備えている。これらはそれぞれメモリ番号＃０、＃１が割当てられている。メモリチップ３４１は、メモリインターフェース３４２と不揮発性メモリ３４３とを有しており、メモリチップ３４４は、メモリインターフェース３４５と不揮発性メモリ３４６とを有している。不揮発性メモリ３４３は、ＲｅＲＡＭにより構成され、不揮発性メモリ３４６は、ＮＡＮＤ型フラッシュメモリにより構成されている。これ以外の情報処理システムの機能構成やメモリコントローラの構成等は本技術の第１の実施の形態と同様の構成にすることができる。
【００７３】
［メモリ領域の割当て］
本技術の第５の実施の形態においては、アクセスサイズは、４ＫＢ、６４ＫＢ、２５６ＫＢおよび５１２ＫＢを規定している。このアクセスサイズに対応したアクセス頻度は、それぞれ８０％、１０％、５％、５％を想定する。これらより、メモリ占有比率を算出する。アクセスサイズとアクセス頻度の積から比の値を求めると、アクセスサイズ順に１：２：４：８となる。メモリ占有比率が均等になるメモリ領域の割当ては、次の通りである。アクセスサイズ４ＫＢ、６４ＫＢ、２５６ＫＢのコマンドを一方のメモリ領域に、アクセスサイズ５１２ＫＢのコマンドを他方のメモリ領域に割当てる。このときメモリ占有比率は７：８となり、ほぼ均等にすることができる。
【００７４】
種類の異なるメモリを使用しているため、メモリの特徴を考慮して割当て先メモリ領域を決定する。メモリ領域３４１の不揮発性メモリ３４３は、ＲｅＲＡＭにより構成されており、高速な書込みが可能という特徴がある。一方、メモリ領域３４４の不揮発性メモリ３４６は、ＮＡＮＤ型フラッシュメモリにより構成されており、書込みの前にブロック単位の消去が必要である。ここでは、ブロックサイズ５１２ＫＢのＮＡＮＤ型フラッシュメモリを使用するものとする。ブロックサイズより小さいデータを書き込む場合であっても、ブロック単位の消去が必要となる。消去に要する時間は書込みに要する時間よりも長く、消去回数の増加は寿命を短くする原因となる。消去回数を減らし、高効率書込みを行うため、書込みデータサイズをブロックサイズと同じ５１２ＫＢにする。
【００７５】
以上の検討から、アクセスサイズ４ＫＢ、６４ＫＢ、２５６ＫＢのコマンドをメモリチップ３４１（メモリ領域＃０）に、アクセスサイズ５１２ＫＢのコマンドをメモリチップ３４４（メモリ領域＃１）に割当てる。
【００７６】
書込み処理の処理手順等は前述した本技術の実施の形態と同様であるため、説明は省略する。
【００７７】
なお、この第５の実施の形態においては、メモリチップ３４１はＲｅＲＡＭによる不揮発性メモリ３４３を備えることを想定したが、ＤＲＡＭ等の揮発性メモリを備える構成であっても同様の効果が得られる。
【００７８】
このように、本技術の第５の実施の形態によれば、種類の異なる２個のメモリを使用する場合であっても、書込みを要求するコマンドのアクセスサイズ毎の、データ書込み先となるメモリ領域の割当てが可能となる。このため、各メモリ領域の処理時間を均等にすることができる。また、アクセスサイズと使用するメモリの特徴を考慮して書込み先メモリ領域を割り当てるため、書込み効率を高めることもできる。
【００７９】
＜６．第６の実施の形態＞
以上説明した本技術の実施の形態では、アクセス頻度情報が既定値であった。これに対し、本技術の第６の実施の形態では、変化するアクセス頻度に動的に追従して、メモリ領域の割当てを行う。
【００８０】
図１４は、本技術の第６の実施の形態における情報処理システムの機能構成例を示す図である。メモリコントローラ２１０は、アドレス変換部２０２と、制御部２１１と、書込み先判別部２１２と、頻度情報バッファ２１３とを備える。制御部２１１は、計測部２１５を備える。計測部２１５は、アクセス頻度情報を計測する。
【００８１】
書込み先判別部２１２は、割当て情報保持部２０５と、割当て情報生成部２１４とを備える。割当て情報生成部２１４は、アクセスサイズとアクセス頻度情報とに基づいて割当て情報を生成する。この割当て情報は割当て情報保持部２０５に保持される。
【００８２】
頻度情報バッファ２１３は、計測部２１５によって計測されたアクセス頻度情報を保持する。
【００８３】
なお、計測部２１５は、特許請求の範囲に記載の計測部の一例である。割当て情報生成部２１４は、特許請求の範囲に記載の割当て情報生成部の一例である。頻度情報バッファ２１３は、特許請求の範囲に記載の頻度情報バッファの一例である。ホストコンピュータ１００、アドレス変換部２０２、メモリ３００は、図１に表した情報処理装置と同様の構成にすることができる。
【００８４】
次に、上述の実施の形態におけるメモリコントローラ２１０の動作について図面を参照して説明する。
【００８５】
［書込み処理の処理手順］
図１５は、本技術の第６の実施の形態における書込み処理の処理手順の一例を示す図である。アクセス頻度情報を計測、更新する点において、図３に関して前述した本技術の第１の実施の形態における書込み処理と異なる。ホストコンピュータ１００より書込みを要求するコマンドを受け取ると、メモリコントローラ２００は、書込み処理を開始する。まず、コマンドに含まれる論理アドレスを物理アドレスに変換（ステップＳ７０１）し、アクセスサイズを調べる。４ＫＢの場合は（ステップＳ７０２：４ＫＢ）、書込み先をメモリ領域＃０に設定する（ステップＳ７０５）。１６ＫＢの場合は（ステップＳ７０２：１６ＫＢ）、書込み先をメモリ領域＃１に設定する（ステップＳ７０６）。この後、頻度情報計測、更新処理（ステップＳ７１０）を実施する。
【００８６】
データの書込み先が変更されていない場合（ステップＳ７２１：Ｎｏ）、次の処理（ステップＳ７２３）に移る。データの書込み先が変更されている場合は（ステップＳ７２１：Ｙｅｓ）、アドレス変換情報を書換える（ステップＳ７２２）。次の変換単位が存在する場合は（ステップＳ７２３：Ｙｅｓ）、再度ステップＳ７２１からの処理を繰り返す。次の変換単位が存在しない場合は（ステップＳ７２３：Ｎｏ）、データ書込みを行い（ステップＳ７２４）、書込み処理を終了する。
【００８７】
［頻度情報計測、更新処理手順］
図１６は、本技術の第６の実施の形態における頻度情報計測、更新処理の処理手順の一例を示す図である。計測部２１５は、書込みを要求するコマンドのアクセスサイズ毎の受信回数を計測し、書込みを要求するコマンドの総数によりこれらを除算して、アクセス頻度情報を生成する（ステップＳ７１１）。また、計測部２１５は、このアクセス頻度情報を頻度情報バッファ２１３に保持させる。割当て情報生成部２１４は、アクセス頻度情報に基づいて、メモリ占有比率を計算する（ステップＳ７１５）。その後、アクセスサイズ毎の割当て先決定処理（ステップＳ７３０）を実施し、頻度情報計測、更新処理を終了する。
【００８８】
本技術の第６の実施の形態においては、第１の実施の形態と同様にメモリ３００を使用するため、メモリ領域数は２個である。アクセスサイズは、４ＫＢと１６ＫＢを規定する。上述したアクセス頻度情報として第１の実施の形態と同様に、アクセスサイズ４ＫＢが８０％、アクセスサイズ１６ＫＢが２０％を想定する。これらより、メモリ占有比率は、アクセスサイズ４ＫＢ、１６ＫＢとも３．２Ｋとなる。
【００８９】
［割当て先決定処理］
図１７は、本技術の第６の実施の形態におけるアクセスサイズ毎の割当て先決定処理の処理手順の一例を示す図である。割当て情報生成部２１４は、アクセスサイズと頻度情報バッファ２１３に保持されたアクセス頻度情報とに基づいて割当て情報を生成する。
【００９０】
まず、メモリ占有比率によりアクセス単位毎に次の式に示すｐを算出する。
ｐｎ＝Ｍ×Ｓｎ／ΣＳｎ      （ｎ＝１、２、３・・・）
但し、ｐｎは、各アクセスサイズにおける仮割当て数を表す。Ｓｎは、各アクセスサイズにおけるメモリ占有比率を表す。ΣＳｎは、各アクセスサイズにおけるメモリ占有比率の総和を表す。Ｍは、メモリ領域の個数を表す。
【００９１】
次に、ｐｎを要素とする配列Ｐ［ｐ１、ｐ２、ｐ３・・・］とＱを作成する（ステップＳ７３１）。ここで、配列Ｑは、各アクセスサイズにおける割当て数の計算結果を格納する配列であり、配列Ｐと同数の要素を有する配列である。本技術の第６の実施の形態に適用すると、Ｍ＝２より、以下のようになる。
Ｓ１＝４Ｋ×０．８＝３．２Ｋ
Ｓ２＝１６Ｋ×０．２＝３．２Ｋ
ΣＳｎ＝３．２Ｋ＋３．２Ｋ＝６．４Ｋ
ｐ１＝２×３．２Ｋ／６．４Ｋ＝１
ｐ２＝２×３．２Ｋ／６．４Ｋ＝１
Ｐ＝［１、１］
Ｑ＝［、］
初期状態では、Ｑは空の要素を２個有する配列となる。
【００９２】
配列Ｐにおいて最大の要素を変数Ｐｍに格納する。このときインデックスｎも保持する（ステップＳ７３２）。Ｍ−１かＲＯＵＮＤ（Ｐｍ）のうち小さい方を変数Ｑｍに格納する（ステップＳ７３３）。なお、ＲＯＵＮＤ（Ｐｍ）は、Ｐｍを四捨五入（一の位で四捨五入）した値を表している。Ｍ−ＱｍをＭに格納する（ステップＳ７３４）。配列ＰよりＰｍを削除し、Ｑｍを配列Ｑにおけるインデックスｎの要素として保存する（ステップＳ７３５）。Ｍが１でなければ（ステップＳ７３６：Ｎｏ）、ステップＳＳ７３２からの処理を繰り返す。Ｍが１のときは（ステップＳ７３６：Ｙｅｓ）、配列Ｐに残った全ての要素（アクセスサイズ）をまとめて１つのメモリ領域に割り当てる（ステップＳ７３７）。これ以外のアクセスサイズ毎のメモリ領域の割当て数は、Ｑの対応する要素の位置に保存されている値として得られる。
【００９３】
以上述べた割り当て数に従って、メモリ領域をアクセスサイズ毎に割当てる。例えば、メモリ番号の小さいメモリ領域から順にアクセスサイズ毎に割当てる。このようにして割当て情報を生成する。その後、アクセスサイズ毎の割当て先決定処理を終了する。
【００９４】
本技術の第６の実施の形態においては、アクセスサイズ４ＫＢのコマンドをメモリ領域３０１（メモリ領域＃０）に、アクセスサイズ１６ＫＢのコマンドをメモリ領域３０４（メモリ領域＃１）に割り当てる結果となる。
【００９５】
このように、本技術の第６の実施の形態によれば、計測部２１５によって、アクセス頻度情報を計測し、更新するため、アクセス頻度情報が変化した場合であっても割当て情報を動的に変更することができる。
【００９６】
＜７．第７の実施の形態＞
上述の本技術の実施の形態では、メモリコントローラがアクセス頻度情報を計測していた。これに対し、本技術の第７の実施の形態では、ホストコンピュータがアクセス頻度情報を計測し、メモリコントローラに送出する。
【００９７】
図１８は、本技術の第７の実施の形態における情報処理システムの機能構成例を示す図である。ホストコンピュータ１１０は、計測部１１１を備える。
【００９８】
メモリコントローラ２２０は、アドレス変換部２０２と、制御部２２１と、書込み先判別部２１２と、頻度情報バッファ２１３とを備える。
【００９９】
ホストコンピュータ１１０は、メモリコントローラ２２０に書込みを要求するコマンドを発行する際、アクセス頻度情報を計測する。これは、計測部１１１によって行われる。計測されたアクセス頻度情報は、メモリコントローラ２２０に送出され、メモリコントローラ２２０の制御部２２１により頻度情報バッファ２１３に送られ保持される。
【０１００】
なお、計測部１１１は、特許請求の範囲に記載の計測部の一例である。アドレス変換部２０２、メモリ３００は、図１に表した情報処理装置と同様の構成にすることができる。
【０１０１】
［書込み先割当て処理］
図１９は、本技術の第７の実施の形態における書込み先割当て処理の処理手順の一例を示す図である。計測部１１１は、書込みを要求するコマンドのアクセスサイズ毎の発行回数を計測し、アクセス頻度情報を生成し、メモリコントローラ２２０に送出する。メモリコントローラ２２０の制御部２２１は、アクセス頻度情報を受信し（ステップＳ７５２）、頻度情報バッファ２１３に保持させる。割当て情報生成部２１４は、アクセス頻度情報に基づいて、メモリ占有比率を計算する（ステップＳ７５５）。その後、アクセスサイズ毎の割当て先決定処理（ステップＳ７９０）を実施し、割当て情報を更新する。ステップＳ７５５およびステップＳ７９０は、図１６に関して前述したステップＳ７１５およびステップＳ７３０と同様の処理であり、説明は省略する。また、書込み処理も図１５に関して前述した処理と同様の処理であるため、説明は省略する。
【０１０２】
このように、本技術の第７の実施の形態によれば、ホストコンピュータ１１０側において計測したアクセス頻度情報を、メモリコントローラに送出し、割当て情報を更新するため、アクセス頻度情報が変化した場合であっても割当て情報を動的に変更することができる。
【０１０３】
＜８．変形例＞
［不揮発性メモリからアクセス頻度情報を読出す例］
本技術の第６の実施の形態において、頻度情報バッファに保持されているアクセス頻度情報をシステムの停止時等に、メモリ３００に記憶させてもよい。この場合、システムの起動時に、メモリ３００からアクセス頻度情報を読出す必要がある。このときの処理手順について説明する。
【０１０４】
図２０は、起動時における書込み先割当て処理の処理手順の一例を示す図である。システム起動時に、メモリコントローラ２１０の制御部２２１は、メモリ３００の不揮発性メモリからアクセス頻度情報を読出し（ステップＳ６０３）、頻度情報バッファ２１３に保持させる。割当て情報生成部２１４は、アクセス頻度情報に基づいて、メモリ占有比率を計算する（ステップＳ６０５）。その後、アクセスサイズ毎の割当て先決定処理（ステップＳ６３０）を実施し、割当て情報を更新する。ステップＳ６０５およびステップＳ６３０は、図１６に関して前述したステップＳ７１５およびステップＳ７３０と同様の処理であり、説明は省略する。
【０１０５】
以上説明した処理により、計測部２１５により得られた計測結果を反映したアクセス頻度情報をシステムの再起動時に引継ぐ事ができる。
【０１０６】
このように、本変形例によれば、システムの停止および再起動が行われた場合であっても、アクセス頻度の変化に対処するため動的に変更した割当て情報を維持することができる。
【０１０７】
以上説明したように、本技術の実施の形態によれば、ホストコンピュータからアクセスサイズの異なる複数の書込みコマンドが発行された場合であっても、各メモリ領域の処理時間を均等にすることができる。そのため、ホストコンピュータが発行した全コマンドを通した書込み処理時間を短縮することができる。
【０１０８】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１０９】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray（登録商標）Disc）等を用いることができる。
【０１１０】
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
【０１１１】
なお、本技術は以下のような構成もとることができる。
（１）論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、
ホストコンピュータから発行されたコマンドに含まれる論理アドレスを前記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、
アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、
前記割当て情報に従って前記コマンドにおけるアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力する書込み先判別部と、
前記物理アドレスに含まれるメモリ領域の番号と前記書込み先判別部が出力した書込み先メモリ領域の番号とが異なる際には前記書込み先判別部の前記出力に対応するメモリ領域にデータを書き込む制御部と
を具備するメモリコントローラ。
（２）アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、
前記アクセスサイズと前記アクセス頻度情報とに基づいて前記割当て情報を生成して前記割当て情報保持部に保持させる割当て情報生成部と
をさらに具備する前記（１）に記載のメモリコントローラ。
（３）書込みを要求する前記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより前記アクセス頻度情報を生成して前記頻度情報バッファに保持させる計測部をさらに具備する前記（２）に記載のメモリコントローラ。
（４）複数のメモリ領域からなるメモリモジュールと、
論理アドレスと前記メモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、
ホストコンピュータから発行されたコマンドに含まれる論理アドレスを前記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、
アクセスサイズと前記メモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、
前記割当て情報に従って前記コマンドにおけるアクセスサイズに対応する前記メモリ領域の番号を出力する書込み先判別部と、
前記物理アドレスに含まれる前記メモリ領域の番号と前記書込み先判別部が出力した前記メモリ領域の番号とが異なる際には前記書込み先判別部の前記出力に対応する前記メモリ領域にデータを書き込む制御部と
を備えるメモリコントローラと
を具備する記憶装置。
（５）複数のメモリ領域からなるメモリモジュールと、
メモリコントローラにコマンドを発行するホストコンピュータと、
論理アドレスと前記メモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報を保持するアドレス変換情報バッファと、
前記ホストコンピュータから発行された前記コマンドに含まれる論理アドレスを前記アドレス変換情報に従って物理アドレスに変換するアドレス変換部と、
アクセスサイズと前記メモリ領域の番号との対応関係を示す割当て情報を保持する割当て情報保持部と、
前記割当て情報に従って前記ホストコンピュータから発行された前記コマンドにおけるアクセスサイズに対応する前記メモリ領域の番号を出力する書込み先判別部と、
前記物理アドレスに含まれる前記メモリ領域の番号と前記書込み先判別部が出力した前記メモリ領域の番号とが異なる際には前記書込み先判別部の前記出力に対応する前記メモリ領域にデータを書き込む制御部と
を備えるメモリコントローラと
を具備する情報処理システム。
（６）前記メモリコントローラは、
アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、
前記アクセスサイズと前記アクセス頻度情報とに基づいて前記割当て情報を生成して前記割当て情報保持部に保持させる割当て情報生成部と、
書込みを要求する前記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより前記アクセス頻度情報を生成して前記頻度情報バッファに保持させる計測部と
をさらに備える
前記（５）に記載の情報処理システム。
（７）前記メモリコントローラは、
アクセスサイズごとのアクセス頻度を示すアクセス頻度情報を保持する頻度情報バッファと、
前記アクセスサイズと前記アクセス頻度情報とに基づいて前記割当て情報を生成して前記割当て情報保持部に保持させる割当て情報生成部と
をさらに備え、
前記ホストコンピュータは、書込みを要求する前記コマンドにおいてコマンドの総数に対するアクセスサイズごとのコマンドの割合を計測することにより前記アクセス頻度情報を生成して前記頻度情報バッファに保持させる計測部を備える前記（５）に記載の情報処理システム。
（８）論理アドレスとデータ書込み先のメモリ領域の番号を含む物理アドレスとの対応関係を示すアドレス変換情報によりホストコンピュータから発行されたコマンドに含まれる論理アドレスを物理アドレスに変換する手順と、
アクセスサイズとデータ書込み先のメモリ領域の番号との対応関係を示す割当て情報に従って前記コマンドにおけるアクセスサイズに対応するデータ書込み先のメモリ領域の番号を出力する手順と、
前記物理アドレスに含まれるメモリ領域の番号と前記出力に対応するメモリ領域の番号とが異なる際には前記出力に対応するメモリ領域にデータを書き込む手順と
を具備するメモリの制御方法
【符号の説明】
【０１１２】
１００、１１０  ホストコンピュータ
１１１、２１５  計測部
２００、２１０、２２０  メモリコントローラ
２０１、２１１、２２１  制御部
２０２  アドレス変換部
２０３、２１２  書込み先判別部
２０４  アドレス変換情報バッファ
２０５  割当て情報保持部
２１３  頻度情報バッファ
２１４  割当て情報生成部
３００、３１０、３２０、３３０、３４０  メモリモジュール
３０１、３０４、３１１〜３１４、３２１、３３１、３３２、３４１、３４４  メモリチップ
３２２、３２３  メモリバンク
３０２、３０５、３２４、３２６、３４２、３４５  メモリインターフェース
３０３、３０６、３２５、３４３、３４６  不揮発性メモリ
【図１】
2015184856.tif 000003
【図２】
2015184856.tif 000004
【図３】
2015184856.tif 000005
【図４】
2015184856.tif 000006
【図５】
2015184856.tif 000007
【図６】
2015184856.tif 000008
【図７】
2015184856.tif 000009
【図８】
2015184856.tif 000010
【図９】
2015184856.tif 000011
【図１０】
2015184856.tif 000012
【図１１】
2015184856.tif 000013
【図１２】
2015184856.tif 000014
【図１３】
2015184856.tif 000015
【図１４】
2015184856.tif 000016
【図１５】
2015184856.tif 000017
【図１６】
2015184856.tif 000018
【図１７】
2015184856.tif 000019
【図１８】
2015184856.tif 000020
【図１９】
2015184856.tif 000021
【図２０】
2015184856.tif 000022