(57)【特許請求の範囲】
【請求項１】
バンクインターリーブによるアクセスに対応するメモリの状態を管理するためのメモリ管理ユニットであって、
前記メモリは、ｐ（２以上の整数）個のバンクを含み、
前記メモリ管理ユニットは、
前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定する処理を行う制御部を備え、
前記制御部は、前記メモリの確保状態に関する所定条件が満たされ、アクセス方式がバンクインターリーブによる場合であって、かつ、前記ｐ個のバンクのうちアクセス対象でない未使用バンクが存在する場合、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理を行う
メモリ管理ユニット。
【請求項２】
前記メモリは、データを保持するために、オートリフレッシュを行う機能とセルフリフレッシュを行う機能とを有し、
前記セルフリフレッシュが行われるために必要な電力は、前記オートリフレッシュが行われるために必要な電力より小さく、
前記制御部は、
前記未使用バンクに対し前記セルフリフレッシュが行われるよう前記メモリを制御する前記消費電力低減処理を行う消費電力制御部を含み、
前記未使用バンク以外のバンクには、前記オートリフレッシュが行われる
請求項１に記載のメモリ管理ユニット。
【請求項３】
前記メモリは、物理メモリ空間または論理メモリ空間において行列状に配置されるｕ（４以上の整数）個の記憶領域を含み、
前記ｕ個の記憶領域は、ｎ（２以上の整数）行ｐ列の行列である領域行列を構成し、
前記ｐ個のバンクは、それぞれ、前記領域行列のｐ個の列に対応し、
前記ｐ個のバンクの各々は、該バンクに対応する、前記領域行列の列に対応するｎ個の記憶領域により形成され、
前記メモリは、バンクインターリーブによるアクセスの対象となるｎ個の単位領域を含み、
前記ｎ個の単位領域は、それぞれ、前記領域行列のｎ個の行に対応し、
前記ｎ個の単位領域の各々は、該単位領域に対応する、前記領域行列の行に対応するｐ個の記憶領域により形成され、
前記ｎ個の前記単位領域は、それぞれ、前記メモリに対するアクセスに必要なｎ個のセグメントに対応づけられ、
前記ｎ個のセグメントの各々は、該セグメントに対応する単位領域を形成するｐ個の記憶領域のうち該セグメントが確保する記憶領域である確保領域を特定するための特定情報を示し、
前記制御部は、
セグメントの更新が必要な処理であって、かつ、前記単位領域に対してアクセスを行うための処理が行われる毎に、更新が必要な該セグメントが示す特定情報を更新するセグメント設定部を含み、
前記所定条件は、各前記セグメントが示す最新の特定情報により特定される全ての確保領域の合計容量が、所定の第１閾値以下であるという条件、かつ、ｋ個（２以上ｎ以下の整数）のバンクのバンクインターリーブがアクセスを行うという条件である
請求項１または２に記載のメモリ管理ユニット。
【請求項４】
前記メモリは、物理メモリ空間または論理メモリ空間において行列状に配置されるｕ（４以上の整数）個の記憶領域を含み、
前記ｕ個の記憶領域は、ｎ（２以上の整数）行ｐ列の行列である領域行列を構成し、
前記ｐ個のバンクは、それぞれ、前記領域行列のｐ個の列に対応し、
前記ｐ個のバンクの各々は、該バンクに対応する、前記領域行列の列に対応するｎ個の記憶領域により形成され、
前記メモリは、バンクインターリーブによるアクセスの対象となるｎ個の単位領域を含み、
前記ｎ個の単位領域は、それぞれ、前記領域行列のｎ個の行に対応し、
前記ｎ個の単位領域の各々は、該単位領域に対応する、前記領域行列の行に対応するｐ個の記憶領域により形成され、
前記ｎ個の前記単位領域は、それぞれ、前記メモリに対するアクセスに必要なｎ個のセグメントに対応づけられ、
前記ｎ個のセグメントの各々は、該セグメントに対応する単位領域を形成するｐ個の記憶領域のうち該セグメントが確保する記憶領域である確保領域を特定するための特定情報を示し、
前記ｎ個のセグメントの各々は、さらに、該セグメントが有効であるか否かを示す有効判定情報を示し、
前記制御部は、
セグメントの更新が必要な処理であって、かつ、前記単位領域に対してアクセスを行うための処理が行われる毎に、更新が必要な該セグメントが示す特定情報および更新が必要な該セグメントが示す前記有効判定情報の少なくとも一方を更新するセグメント設定部を含み、
前記所定条件は、各前記セグメントが示す最新の特定情報により特定される全ての確保領域の合計容量が所定の第１閾値以下であり、かつ、有効であるセグメントの数が所定の第２閾値以下であり、かつ、ｋ個（２以上ｎ以下の整数）のバンクのバンクインターリーブがアクセスを行うという条件である
請求項１または２に記載のメモリ管理ユニット。
【請求項５】
前記第２閾値は、ｎ／２未満の値である
請求項４に記載のメモリ管理ユニット。
【請求項６】
前記第１閾値は、前記ｕ個の記憶領域の合計容量の半分未満の値である
請求項３〜５のいずれか１項に記載のメモリ管理ユニット。
【請求項７】
ｎ個のセグメントの各々は、対応する単位領域の先頭アドレスを示す
請求項３〜６のいずれか１項に記載のメモリ管理ユニット。
【請求項８】
前記特定情報は、該特定情報を示すセグメントに対応する単位領域において、該セグメントが確保する容量を示し、
前記特定情報が示す容量は、バンクに対応する１つの記憶領域の容量単位で設定される
請求項３〜７のいずれか１項に記載のメモリ管理ユニット。
【請求項９】
請求項１〜８のいずれか１項に記載のメモリ管理ユニットを利用して画像処理を行う
画像処理装置。
【請求項１０】
バンクインターリーブによるアクセスに対応するメモリの状態を管理するための集積回路であって、
前記メモリは、ｐ（２以上の整数）個のバンクを含み、
前記集積回路は、
前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定する処理を行う制御部を備え、
前記制御部は、前記メモリの確保状態に関する所定条件が満たされ、アクセス方式がバンクインターリーブによる場合であって、かつ、ｐ個のバンクのうちアクセス対象でない未使用バンクが存在する場合、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理を行う
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バンクインターリーブによるアクセスに対応するメモリを管理するメモリ管理ユニット、画像処理装置および集積回路に関する。
【背景技術】
【０００２】
近年、システムＬＳＩ（Large Scale Integration）の複雑化と高速化に伴い、ＤＲＡＭ（Dynamic Random Access Memory）の動作周波数および消費電力が増加している。そのため、システムの消費電力において、ＤＲＡＭの消費電力が占める割合は高くなっており、ＤＲＡＭの省電力化は無視できない問題となっている。【０００３】
そこで、ＤＲＡＭの省電力化を行うために、特許文献１では、動作モードに応じて論理アドレスから物理アドレスへのアドレスマッピングを変更することにより、メモリのアクセスが発生しない物理メモリ領域を設定し、当該物理メモリ領域を停止する技術（以下、従来技術Ａという）が開示されている。【０００４】
また、特許文献２では、アクセス対象の論理アドレスによって、同一バンクへアクセスする方式、および、バンクインターリーブによるアクセスを行う方式のいずれかが行われるように、アドレスマッピングする技術（以下、従来技術Ｂともいう）が開示されている。従来技術Ｂでは、同一バンクへアクセスする方式が行われる場合、消費電力を抑えることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１０９２２４号公報
【特許文献２】特開２００６−２１５９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術Ａ，Ｂは以下の問題がある。【０００７】
従来技術Ａでは、アクセスが発生しない物理メモリ領域を設定するための動作モードの場合にのみ、当該物理メモリ領域が停止されることにより消費電力を抑えることができる。【０００８】
従来技術Ｂでは、同一バンクへアクセスする処理が行われる場合のみ、消費電力を抑えることができる。【０００９】
すなわち、従来技術Ａ，Ｂでは、バンクインターリーブによるアクセスに対応するメモリの確保状態の変化に伴って生じる未使用バンクの消費電力を抑えることはできないという問題がある。【００１０】
本発明は、上述の問題点を解決するためになされたものであって、その目的は、バンクインターリーブによるアクセスに対応するメモリの確保状態の変化に伴って生じる未使用バンクの消費電力を抑えることが可能なメモリ管理ユニット等を提供することである。
【課題を解決するための手段】
【００１１】
上述の課題を解決するために、本発明の一態様に係るメモリ管理ユニットは、バンクインターリーブによるアクセスに対応するメモリの状態を管理するためのメモリ管理ユニットであって、前記メモリは、ｐ（２以上の整数）個のバンクを含み、前記メモリ管理ユニットは、前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定する処理を行う制御部を備え、前記制御部は、前記メモリの確保状態に関する所定条件が満たされた場合であって、かつ、前記ｐ個のバンクのうちアクセス対象でない未使用バンクが存在する場合、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理を行う。【００１２】
すなわち、メモリ管理ユニットは、バンクインターリーブによるアクセスに対応するメモリを使用する。制御部は、ｐ個のバンクのうち、アクセス対象のバンクを動的に決定する処理を行う。制御部は、前記メモリの確保状態に関する所定条件が満たされた場合であって、かつ、未使用バンクが存在する場合、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理を行う。【００１３】
つまり、バンクインターリーブによるアクセスに対応するメモリにおいて、メモリの確保状態に関する所定条件が満たされた場合であって、かつ、未使用バンクが存在する場合、未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理が行われる。【００１４】
これにより、アクセス対象のバンクを動的に決定する処理によりメモリの確保状態が変化したときにおいて、メモリの確保状態に関する所定条件が満たされた場合であって、未使用バンクが存在する場合、未使用バンクの消費電力を抑えることができる。【００１５】
すなわち、本発明の一態様に係るメモリ管理ユニットは、バンクインターリーブによるアクセスに対応するメモリの確保状態の変化に伴って生じる未使用バンクの消費電力を抑えることができる。したがって、メモリの確保状態の変化に応じて、メモリの消費電力を効率よく抑えることができる。【００１６】
また、好ましくは、前記メモリは、データを保持するために、オートリフレッシュを行う機能とセルフリフレッシュを行う機能とを有し、前記セルフリフレッシュが行われるために必要な電力は、前記オートリフレッシュが行われるために必要な電力より小さく、前記制御部は、前記未使用バンクに対し前記セルフリフレッシュが行われるよう前記メモリを制御する前記消費電力低減処理を行う消費電力制御部を含み、前記未使用バンク以外のバンクには、前記オートリフレッシュが行われる。【００１７】
また、好ましくは、前記メモリは、物理メモリ空間または論理メモリ空間において行列状に配置されるｕ（４以上の整数）個の記憶領域を含み、前記ｕ個の記憶領域は、ｎ（２以上の整数）行ｐ列の行列である領域行列を構成し、前記ｐ個のバンクは、それぞれ、前記領域行列のｐ個の列に対応し、前記ｐ個のバンクの各々は、該バンクに対応する、前記領域行列の列に対応するｎ個の記憶領域により形成され、前記メモリは、バンクインターリーブによるアクセスの対象となるｎ個の単位領域を含み、前記ｎ個の単位領域は、それぞれ、前記領域行列のｎ個の行に対応し、前記ｎ個の単位領域の各々は、該単位領域に対応する、前記領域行列の行に対応するｐ個の記憶領域により形成され、前記ｎ個の前記単位領域は、それぞれ、前記メモリに対するアクセスに必要なｎ個のセグメントに対応づけられ、前記ｎ個のセグメントの各々は、該セグメントに対応する単位領域を形成するｐ個の記憶領域のうち該セグメントが確保する記憶領域である確保領域を特定するための特定情報を示し、前記制御部は、セグメントの更新が必要な処理であって、かつ、前記単位領域に対してアクセスを行うための処理が行われる毎に、更新が必要な該セグメントが示す特定情報を更新するセグメント設定部を含み、前記所定条件は、各前記セグメントが示す最新の特定情報により特定される全ての確保領域の合計容量が、所定の第１閾値以下であるという条件である。【００１８】
また、好ましくは、前記メモリは、物理メモリ空間または論理メモリ空間において行列状に配置されるｕ（４以上の整数）個の記憶領域を含み、前記ｕ個の記憶領域は、ｎ（２以上の整数）行ｐ列の行列である領域行列を構成し、前記ｐ個のバンクは、それぞれ、前記領域行列のｐ個の列に対応し、前記ｐ個のバンクの各々は、該バンクに対応する、前記領域行列の列に対応するｎ個の記憶領域により形成され、前記メモリは、バンクインターリーブによるアクセスの対象となるｎ個の単位領域を含み、前記ｎ個の単位領域は、それぞれ、前記領域行列のｎ個の行に対応し、前記ｎ個の単位領域の各々は、該単位領域に対応する、前記領域行列の行に対応するｐ個の記憶領域により形成され、前記ｎ個の前記単位領域は、それぞれ、前記メモリに対するアクセスに必要なｎ個のセグメントに対応づけられ、前記ｎ個のセグメントの各々は、該セグメントに対応する単位領域を形成するｐ個の記憶領域のうち該セグメントが確保する記憶領域である確保領域を特定するための特定情報を示し、前記ｎ個のセグメントの各々は、さらに、該セグメントが有効であるか否かを示す有効判定情報を示し、前記制御部は、セグメントの更新が必要な処理であって、かつ、前記単位領域に対してアクセスを行うための処理が行われる毎に、更新が必要な該セグメントが示す特定情報および更新が必要な該セグメントが示す前記有効判定情報の少なくとも一方を更新するセグメント設定部を含み、前記所定条件は、各前記セグメントが示す最新の特定情報により特定される全ての確保領域の合計容量が所定の第１閾値以下であり、かつ、有効であるセグメントの数が所定の第２閾値以下であるという条件である。【００１９】
すなわち、確保領域の合計容量および有効であるセグメントの数という２つの要素を利用するため、メモリの消費電力をより効率よく抑えることができる。【００２０】
また、好ましくは、前記第２閾値は、ｎ／２未満の値である。【００２１】
また、好ましくは、前記第１閾値は、前記ｕ個の記憶領域の合計容量の半分未満の値である。【００２２】
また、好ましくは、ｎ個のセグメントの各々は、対応する単位領域の先頭アドレスを示す。【００２３】
また、好ましくは、前記特定情報は、該特定情報を示すセグメントに対応する単位領域において、該セグメントが確保する容量を示し、前記特定情報が示す容量は、バンクに対応する１つの記憶領域の容量単位で設定される。【００２４】
本発明の一態様に係る画像処理装置は、前記メモリ管理ユニットを利用して画像処理を行う。【００２５】
本発明の一態様に係る集積回路は、バンクインターリーブによるアクセスに対応するメモリの状態を管理するための集積回路であって、前記メモリは、ｐ（２以上の整数）個のバンクを含み、前記集積回路は、前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定するための処理を行う制御部を備え、前記制御部は、前記メモリの確保状態に関する所定条件が満たされた場合であって、かつ、ｐ個のバンクのうちアクセス対象でない未使用バンクが存在する場合、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理を行う。【００２６】
また、本発明は、メモリ管理ユニットが備える特徴的な構成部の動作をステップとするメモリ管理方法として実現してもよい。また、本発明は、そのようなメモリ管理方法に含まれる各ステップをコンピュータに実行させるプログラムとして実現してもよい。また、本発明は、そのようなプログラムを格納するコンピュータ読み取り可能な記録媒体として実現されてもよい。また、当該プログラムは、インターネット等の伝送媒体を介して配信されてもよい。
【発明の効果】
【００２７】
本発明により、メモリの確保状態の変化に伴って生じる未使用バンクの消費電力を抑えることができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、第１の実施の形態におけるデータ記憶装置の構成を示すブロック図である。
【図２】図２は、ＤＲＡＭを説明するための図である。
【図３】図３は、セグメントを説明するための図である。
【図４】図４は、容量設定処理のフローチャートである。
【図５】図５は、消費電力制御処理のフローチャートである。
【図６】図６は、メモリ管理ユニットの動作の一例を説明するための図である。
【図７】図７は、ＤＲＡＭの状態の一例を示す図である。
【図８】図８は、ＤＲＡＭの状態の一例を示す図である。
【図９】図９は、第２の実施の形態におけるデータ記憶装置の構成を示すブロック図である。
【図１０】図１０は、容量設定処理Ａのフローチャートである。
【図１１】図１１は、メモリ管理ユニットの動作の一例を説明するための図である。
【図１２】図１２は、第３の実施の形態における画像処理装置の構成を示すブロック図である。
【図１３】図１３は、再生処理による、確保領域合計容量の変化を示す図である。
【図１４】図１４は、メモリ管理ユニットの特徴的な機能構成を示すブロック図である。
【発明を実施するための形態】
【００２９】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明を省略する場合がある。
【００３０】
＜第１の実施の形態＞
図１は、第１の実施の形態におけるデータ記憶装置１０００の構成を示すブロック図である。
【００３１】
データ記憶装置１０００は、メモリ管理ユニット（ＭＭＵ（Memory Management Unit））１００と、ＤＲＡＭ２００と、ＤＲＡＭ制御回路２１０とを含む。
【００３２】
メモリ管理ユニット１００は、メモリ管理方式としてのセグメント方式にしたがって、メモリであるＤＲＡＭ２００の状態を管理する。メモリ管理ユニット１００は、詳細は後述するが、論理アドレスを物理アドレスに変換するための処理を行う。
【００３３】
ＤＲＡＭ２００は、当該ＤＲＡＭ２００に格納されているデータを保持するために、オートリフレッシュを行う機能と、セルフリフレッシュを行う機能とを有する。オートリフレッシュは、図示しない外部の回路の指示により行われる。オートリフレッシュは、周知な処理なので詳細な説明は行わない。
【００３４】
特に、ＤＲＡＭ２００は、当該ＤＲＡＭ２００の一部に対しセルフリフレッシュを行うパーシャルセルフリフレッシュを行う機能を有する。また、ＤＲＡＭ２００は、バンクインターリーブ（メモリインタリーブ）によるアクセスに対応するメモリである。バンクインターリーブとは、複数のバンクに対し並行してアクセスすることにより、メモリのアクセスの高速化を行う手法である。なお、バンクインターリーブによる処理は、周知な技術であるので詳細な説明は行わない。
【００３５】
なお、ＤＲＡＭ２００において、セルフリフレッシュが行われるために必要な電力は、オートリフレッシュが行われるために必要な電力より小さい。
【００３６】
本明細書において、「アクセス」とは、データの格納（記憶）およびデータの読出しの各々の総括的な表現である。
【００３７】
なお、メモリ管理ユニット１００が管理の対象とするメモリは、ＤＲＡＭに限定されず、データを保持するために、定期的にオートリフレッシュを行う必要がある揮発性メモリであれば、ＤＲＡＭ以外の揮発性メモリであってもよい。
【００３８】
図２は、ＤＲＡＭ２００を説明するための図である。
【００３９】
図２には、説明のために、ＤＲＡＭ２００を管理するためのセグメントテーブルＴ１０を示す。セグメントテーブルＴ１０は、詳細は後述するが、複数のセグメントを含む。セグメントは、論理アドレスから物理アドレスへの変換を行うための情報を示す。なお、本実施の形態におけるセグメントは、さらに、領域を確保するための情報を示す。
【００４０】
ＤＲＡＭ２００は、行列状に配置されるｕ（４以上の整数）個の記憶領域Ｃ１０を含む。当該ｕ個の記憶領域Ｃ１０は、ｎ（２以上の整数）行ｐ（２以上の整数）列の行列（以下、領域行列という）を構成する。領域行列におけるｐ個の列の各々に対応するｎ個の記憶領域Ｃ１０により、１つのバンクが形成される。
【００４１】
すなわち、ＤＲＡＭ２００は、ｐ個のバンクを含む。
【００４２】
ｐ個のバンクは、それぞれ、領域行列のｐ個の列に対応する。ｐ個のバンクの各々は、該バンクに対応する、領域行列の列に対応するｎ個の記憶領域により形成される。本実施の形態では、ｐ＝８であるとする。すなわち、ＤＲＡＭ２００は、一例として、８個のバンク（バンクＢＫ０，ＢＫ１，ＢＫ２，ＢＫ３，ＢＫ４，ＢＫ５，ＢＫ６，ＢＫ７）を含むとする。
【００４３】
なお、ＤＲＡＭ２００に含まれるバンクの数は、８に限定されず、例えば、４、１６、２４等であってもよい。
【００４４】
ｕ個の記憶領域Ｃ１０の各々は、ロウアドレスおよびカラムアドレスにより特定される。
【００４５】
なお、ＤＲＡＭ２００は、複数のＤＲＡＭから構成されていてもよい。また、物理メモリ空間において、ｕ個の記憶領域Ｃ１０は行列状に配置されていなくてもよい。この場合、図２に示されるｕ個の記憶領域Ｃ１０は、論理メモリ空間において、行列状に配置される。
【００４６】
すなわち、ＤＲＡＭ２００は、物理メモリ空間または論理メモリ空間において行列状に配置されるｕ個の記憶領域Ｃ１０を含む。
【００４７】
ＤＲＡＭ２００では、セグメントにより確保される１以上の記憶領域Ｃ１０に対してアクセスが許可される。以下においては、セグメントにより確保される記憶領域Ｃ１０を、確保領域ともいう。確保領域は、アクセスが可能な領域である。また、以下においては、セグメントにより確保されていない記憶領域Ｃ１０を、不確保領域ともいう。不確保領域は、アクセスが不可な領域である。
【００４８】
また、以下においては、ＤＲＡＭ２００の全ての記憶領域Ｃ１０を、全記憶領域ともいう。以下においては、ＤＲＡＭ２００の全ての記憶領域Ｃ１０の合計容量を、最大記憶容量ともいう。すなわち、全記憶領域の容量は、最大記憶容量である。
【００４９】
ｕ個の記憶領域Ｃ１０のうち、領域行列におけるｎ個の行の各々に対応するｐ個の記憶領域Ｃ１０により行に対応する領域（以下、単位領域ともいう）が形成される。すなわち、領域行列におけるｎ個の行の各々に対応するｐ個の記憶領域Ｃ１０により、１つの単位領域が形成される。単位領域は、バンクインターリーブによるアクセスの対象となる領域である。ｕ個の記憶領域Ｃ１０により、ｎ個の単位領域が形成される。つまり、メモリとしてのＤＲＡＭ２００は、ｎ個の単位領域を含む。
【００５０】
ｎ個の単位領域は、それぞれ、領域行列のｎ個の行に対応する。また、ｎ個の単位領域の各々は、該単位領域に対応する、領域行列の行に対応するｐ個の記憶領域により形成される。
【００５１】
ＤＲＡＭ２００は、単位領域ＲＷ［１］，ＲＷ［２］，・・・，ＲＷ［ｎ］を含む。
【００５２】
以下においては、単位領域ＲＷ［１］，ＲＷ［２］，・・・，ＲＷ［ｎ］の各々を、単に、単位領域ＲＷともいう。すなわち、ＤＲＡＭ２００は、ｎ個の単位領域ＲＷを含む。つまり、ＤＲＡＭ２００の記憶領域全体は、ｎ個の単位領域ＲＷに分割される。ｎ個の単位領域ＲＷの各々の容量は同じである。
【００５３】
また、セグメントテーブルＴ１０を構成するセグメントの数は、単位領域ＲＷの数と等しい。
【００５４】
すなわち、セグメントテーブルＴ１０は、セグメントＳＧ［１］，ＳＧ［２］，・・・，ＳＧ［ｎ］を含む。セグメントＳＧ［１］，ＳＧ［２］，・・・，ＳＧ［ｎ］には、それぞれ、論理アドレスＬＡＤ［１］，ＬＡＤ［２］，・・・，ＬＡＤ［ｎ］が対応づけられる。
【００５５】
以下においては、セグメントＳＧ［１］，ＳＧ［２］，・・・，ＳＧ［ｎ］の各々を、単に、セグメントＳＧともいう。すなわち、セグメントテーブルＴ１０は、ｎ個のセグメントＳＧから構成される。詳細は後述するが、セグメントＳＧは、メモリとしてのＤＲＡＭ２００に対するアクセスに必要な情報を示す。すなわち、セグメントＳＧは、メモリとしてのＤＲＡＭ２００に対するアクセスに必要なものである。
【００５６】
なお、セグメントテーブルＴ１０を構成するセグメントの数は、単位領域ＲＷの数と異なっていてもよい。例えば、１つのセグメントＳＧが、複数の単位領域ＲＷに対応づけられていてもよい。
【００５７】
なお、領域行列の行および列は、それぞれ、単位領域およびバンクに対応するとしたが、これに限定されない。領域行列の行および列は、それぞれ、バンクおよび単位領域に対応してもよい。
【００５８】
また、以下においては、論理アドレスＬＡＤ［１］，ＬＡＤ［２］，・・・，ＬＡＤ［ｎ］の各々を、単に、論理アドレスＬＡＤともいう。
【００５９】
また、本実施の形態では、ｎ個の単位領域ＲＷの各々は、一例として、８個の記憶領域Ｃ１０から構成されるとする。各単位領域ＲＷを構成する８個の記憶領域Ｃ１０の各々は、バンクに対応する領域である。以下においては、バンクに対応する記憶領域Ｃ１０を、バンク対応領域ともいう。
【００６０】
例えば、単位領域ＲＷ［１］において、バンクＢＫ０に対応する記憶領域Ｃ１０は、バンクＢＫ０に対応するバンク対応領域である。
【００６１】
ｎ個の単位領域ＲＷの各々は、当該単位領域ＲＷに対応するセグメントＳＧが示す各種情報により管理される。
【００６２】
図３は、セグメントＳＧを説明するための図である。
【００６３】
図３を参照して、セグメントＳＧは、有効判定情報ＦＧと、物理アドレスＳＤと、確保容量ＣＰとを示す。有効判定情報ＦＧは、当該有効判定情報ＦＧを示すセグメントＳＧが、有効であるか否かを示す情報である。有効判定情報ＦＧは、「有効」または「無効」を示す。有効判定情報ＦＧが「有効」を示す場合、当該有効判定情報ＦＧを示すセグメントＳＧは、有効である。有効判定情報ＦＧが「無効」を示す場合、当該有効判定情報ＦＧを示すセグメントＳＧは、無効である。
【００６４】
なお、初期状態では、セグメントテーブルＴ１０に含まれるｎ個のセグメントＳＧの各々が示す有効判定情報ＦＧは、「無効」を示す。
【００６５】
すなわち、ｎ個のセグメントの各々は、該セグメントが有効であるか否かを示す有効判定情報ＦＧを示す。
【００６６】
物理アドレスＳＤは、ｎ個の単位領域ＲＷのいずれかの先頭アドレス（開始アドレス）である。各単位領域ＲＷの先頭アドレスは、図２のロウアドレスに対応する。すなわち、セグメントＳＧが示す物理アドレスＳＤにより特定される単位領域ＲＷは、当該セグメントＳＧに対応づけられる。ｎ個のセグメントＳＧの各々が示す物理アドレスＳＤは、互いに異なる単位領域ＲＷの先頭アドレスである。
【００６７】
これにより、ｎ個のセグメントＳＧは、それぞれ、ｎ個の単位領域ＲＷに対応づけられる。すなわち、ｎ個の単位領域ＲＷは、それぞれ、メモリとしてのＤＲＡＭ２００に対するアクセスに必要なｎ個のセグメントに対応づけられる。また、ｎ個のセグメントＳＧの各々は、該セグメントＳＧに対応する単位領域ＲＷの先頭アドレス（物理アドレスＳＤ）を示す。
【００６８】
ここで、一例として、セグメントＳＧ［１］が示す物理アドレスＳＤが、単位領域ＲＷ［２］の先頭アドレスであり、セグメントＳＧ［ｎ］が示す物理アドレスＳＤが、単位領域ＲＷ［１］の先頭アドレスであるとする。
【００６９】
この場合、図２のように、一例として、セグメントＳＧ［１］は単位領域ＲＷ［２］に対応づけられており、セグメントＳＧ［ｎ］は単位領域ＲＷ［１］に対応づけられている。前述したように、各セグメントＳＧには、論理アドレスＬＡＤが対応づけられる。
【００７０】
したがって、セグメントテーブルＴ１０を用いることにより、ＤＲＡＭ２００において、物理アドレスが連続していないアクセス対象の各記憶領域Ｃ１０に対し、連続した論理アドレスによりアクセスすることが可能となる。
【００７１】
確保容量ＣＰは、当該確保容量ＣＰを示すセグメントＳＧに対応する単位領域ＲＷにおいて、当該セグメントＳＧが確保する容量である。
【００７２】
なお、初期状態では、セグメントテーブルＴ１０に含まれるｎ個のセグメントＳＧの各々が示す確保容量ＣＰは、０（バイト）に設定されている。
【００７３】
セグメント方式では、セグメントＳＧが示す確保容量ＣＰの最大容量は、ＤＲＡＭ２００の容量により可変である。
【００７４】
ここで、一例として、セグメントＳＧ［ｎ］が示す物理アドレスＳＤが、単位領域ＲＷ［１］の先頭アドレス（開始アドレス）であるとする。また、確保容量ＣＰが、一例として、４つ分の記憶領域Ｃ１０の合計容量を示すとする。この場合、ＤＲＡＭ２００の単位領域ＲＷ［１］において、バンクＢＫ０〜ＢＫ３にそれぞれ対応する４つのバンク対応領域（記憶領域Ｃ１０）が、確保領域である。
【００７５】
すなわち、確保容量ＣＰは、該確保容量ＣＰを示すセグメントＳＧが確保する記憶領域である確保領域を特定するための特定情報である。つまり、ｎ個のセグメントＳＧの各々は、確保領域を特定するための特定情報（確保容量ＣＰ）を示す。
【００７６】
つまり、ｎ個のセグメントＳＧの各々は、該セグメントに対応する単位領域を形成するｐ個の記憶領域のうち該セグメントが確保する記憶領域である確保領域を特定するための特定情報を示す。
【００７７】
再び、図１を参照して、メモリ管理ユニット１００は、アドレス変換回路１１０と、制御部１２０とを備える。
【００７８】
アドレス変換回路１１０は、詳細は後述するが、論理アドレスを物理アドレスに変換するための処理を行う。
【００７９】
制御部１２０は、セグメント設定部１２１と、消費電力制御部１２２と、メモリ容量監視部１２３と、容量設定部１２４とを含む。
【００８０】
セグメント設定部１２１は、ＤＲＡＭ２００を管理するための前述のセグメントテーブルＴ１０を有する。
【００８１】
メモリ容量監視部１２３は、詳細は後述するが、セグメントにより確保される領域の容量を監視している。
【００８２】
容量設定部１２４は、詳細は後述するが、セグメントＳＧの確保容量ＣＰを設定するための処理を行う。
【００８３】
消費電力制御部１２２は、詳細は後述するが、セグメントテーブルＴ１０を随時監視し、未使用バンクがある場合、ＤＲＡＭ２００の消費電力を抑えるための処理を行う。
【００８４】
アドレス変換回路１１０が行う処理は、メモリ管理ユニット（ＭＭＵ）が行う周知な処理であるため、詳細な説明は繰り返さない。以下、簡単に説明する。
【００８５】
アドレス変換回路１１０は、外部のＣＰＵ（Central Processing Unit）等から送信されるメモリアクセス要求ＲＱを受信する。メモリアクセス要求ＲＱは、ＤＲＡＭ２００における特定の単位領域ＲＷにアクセスするための要求である。メモリアクセス要求ＲＱには、アクセス対象の単位領域ＲＷに対応する論理アドレスＬＡＤが示される。
【００８６】
また、メモリアクセス要求ＲＱには、データ格納指示およびデータ読出し指示のいずれかが示される。データ格納指示は、データを格納するための指示である。データ読出し指示は、データを読み出すための指示である。なお、メモリアクセス要求ＲＱにデータ格納指示が示される場合、当該メモリアクセス要求ＲＱに格納対象のデータも付加される。
【００８７】
アドレス変換回路１１０は、メモリアクセス要求ＲＱを受信する毎に、アドレス変換処理を行う。
【００８８】
アドレス変換処理では、アドレス変換回路１１０が、セグメントテーブルＴ１０を参照して、メモリアクセス要求ＲＱに示される論理アドレスＬＡＤに対応づけられるセグメントＳＧを選択する。
【００８９】
そして、アドレス変換回路１１０は、選択したセグメントＳＧが示す物理アドレスＳＤを、アクセス対象の単位領域ＲＷの物理アドレスとして取得する。すなわち、アドレス変換回路１１０は、メモリアクセス要求ＲＱに示される論理アドレスＬＡＤを、物理アドレスに変換する。
【００９０】
セグメント設定部１２１は、セグメントテーブルＴ１０において、アドレス変換回路１１０により選択されたセグメントＳＧの有効判定情報ＦＧが「無効」を示す場合、当該有効判定情報ＦＧが「有効」を示すように、有効判定情報ＦＧを変更する。
【００９１】
また、詳細は後述するが、セグメント設定部１２１は、有効判定情報ＦＧの変更とともに、アドレス変換回路１１０により選択されたセグメントＳＧの確保容量ＣＰの値を設定する。
【００９２】
これにより、選択されたセグメントＳＧが更新されるとともに、セグメントテーブルＴ１０が更新される。
【００９３】
すなわち、セグメント設定部１２１は、セグメントの更新が必要な処理であって、かつ、単位領域ＲＷに対してアクセスを行うための処理が行われる毎に、更新が必要な該セグメントが示す特定情報（確保容量ＣＰ）を更新する。ここで、セグメントの更新が必要な処理であって、かつ、単位領域に対してアクセスを行うための処理は、セグメントの更新が必要となるメモリアクセス要求ＲＱを用いて行われる上記のアドレス変換処理である。
【００９４】
すなわち、セグメントの更新が必要な処理であって、かつ、単位領域に対してアクセスを行うための処理は、メモリ（ＤＲＡＭ２００）の状態の変化を伴う、メモリ（ＤＲＡＭ２００）に対してアクセスを行うための処理である。
【００９５】
セグメント設定部１２１が、更新が必要な該セグメントが示す特定情報（確保容量ＣＰ）を更新する処理は、ｐ個のバンクのうち、アクセス対象のバンクを動的に決定（設定）する処理である。
【００９６】
そして、アドレス変換回路１１０は、メモリアクセス要求ＲＱが示す論理アドレスＬＡＤを、取得した物理アドレスに置き換えることによりメモリアクセス要求ＲＱＡを生成し、当該メモリアクセス要求ＲＱＡを、ＤＲＡＭ制御回路２１０へ送信する。すなわち、メモリアクセス要求ＲＱＡは、メモリアクセス要求ＲＱと比較して、論理アドレスＬＡＤの代わりに取得された物理アドレスを示す点のみが異なる。
【００９７】
ＤＲＡＭ制御回路２１０は、メモリアクセス要求ＲＱＡにしたがって、ＤＲＡＭ２００にアクセスする。
【００９８】
具体的には、メモリアクセス要求ＲＱＡがデータ格納指示を示す場合、ＤＲＡＭ制御回路２１０は、メモリアクセス要求ＲＱＡに付加されるデータを、ＤＲＡＭ２００に格納するためのデータ格納処理を、バンクインターリーブを用いて行う。当該データ格納処理において、データが格納される領域は、メモリアクセス要求ＲＱＡが示す物理アドレスに対応する単位領域ＲＷである。
【００９９】
一方、メモリアクセス要求ＲＱＡがデータ読出し指示を示す場合、ＤＲＡＭ制御回路２１０は、ＤＲＡＭ２００からデータを読み出すためのデータ読出し処理を、バンクインターリーブを用いて行う。当該データ読出し処理において、データが読み出される領域は、メモリアクセス要求ＲＱＡが示す物理アドレスに対応する単位領域ＲＷである。
【０１００】
データ読出し処理において、ＤＲＡＭ制御回路２１０は、読出したデータを、アドレス変換回路１１０を介して、外部のＣＰＵ等へ送信する。
【０１０１】
なお、詳細は後述するが、ＤＲＡＭ制御回路２１０は、後述するアクセス領域制限指示を受信した場合、ＤＲＡＭ２００のうち、アクセス領域制限指示により指定される領域のみにアクセスする。
【０１０２】
なお、従来のセグメント方式では、メモリにアクセスが行われている期間において、セグメントにより確保される領域の容量は固定であった。
【０１０３】
一方、本実施の形態では、ＤＲＡＭ２００の容量が固定であり、ＤＲＡＭ２００に対しアクセスが行われている期間において、セグメントＳＧが示す確保容量ＣＰを、動的に変化させる。すなわち、各単位領域ＲＷにおいて、アクセスが許可される記憶領域Ｃ１０の数を、動的に変化させる。つまり、ＤＲＡＭ２００のアクセスにおいて、ロウアドレスは固定とし、カラムアドレス（バンク）を変化させる。
【０１０４】
つまり、本実施の形態では、バンクインターリーブによりアクセスの対象となるバンク対応領域の数を変化することによって、バンク全体のアクセスが許可されない当該バンクを発生させる。
【０１０５】
本実施の形態では、確保容量ＣＰを、バンク対応領域の容量単位で、段階的に切替える。バンクインターリーブによりメモリにアクセスする場合、アクセス効率を落とさずにメモリアクセスするには、最低４バンクが必要である。
【０１０６】
つまり、８バンク構成のメモリでは、確保容量ＣＰに設定される容量は、５種類の容量のいずれかである。当該５種類の容量は、それぞれ、４，５，６，７，８個のバンク対応領域の容量である。
【０１０７】
本実施の形態では、説明を簡単にするために、確保容量ＣＰに設定される容量を、４個のバンク対応領域の容量、８個のバンク対応領域の容量（単位領域ＲＷの容量）の２種類として説明する。以下においては、単位領域ＲＷの容量を、単位領域最大容量ともいう。
【０１０８】
メモリ容量監視部１２３は、所定時間（例えば、１マイクロ秒）経過毎に、ＤＲＡＭ２００における全ての確保領域の合計容量を監視するための容量監視処理を行う。すなわち、メモリ容量監視部１２３は、ＤＲＡＭ２００における全ての確保領域の合計容量を、随時、監視している。
【０１０９】
容量監視処理では、メモリ容量監視部１２３が、セグメントテーブルＴ１０に含まれるｎ個のセグメントＳＧのうち、有効判定情報ＦＧが「有効」を示す全てのセグメントＳＧを特定する。以下においては、有効判定情報ＦＧが「有効」を示すセグメントＳＧを、有効セグメントともいう。
【０１１０】
そして、メモリ容量監視部１２３は、全ての有効セグメントの各々が示す確保容量ＣＰを加算することにより、ＤＲＡＭ２００における全ての確保領域の合計容量を算出する。以下においては、ＤＲＡＭ２００における全ての確保領域の合計容量を、確保領域合計容量ともいう。
【０１１１】
メモリ容量監視部１２３は、確保領域合計容量を算出する毎に、確保領域合計容量を、容量設定部１２４へ通知する。そして、この容量監視処理は終了する。
【０１１２】
なお、容量監視処理では、ＤＲＡＭ２００の最大記憶容量に対する、確保領域合計容量の割合を、容量確保率として算出してもよい。
【０１１３】
ここで、一例として、最大記憶容量は、１０００メガバイトであるとする。また、一例として、確保領域合計容量は、５００メガバイトであるとする。この場合、容量確保率は、０．５（５０％）である。
【０１１４】
ここで、仮に、ＤＲＡＭ２００の容量確保率が５０％であるとする。この場合、例えば、ｎ個のセグメントＳＧの各々が示す確保容量ＣＰは、当該確保容量ＣＰを示すセグメントＳＧに対応する単位領域ＲＷの容量の５０％となる。
【０１１５】
ここで、ＤＲＡＭ２００が、一例として、８個のバンクを含むとする。この場合、ＤＲＡＭ２００の全記憶領域における４バンクを用いて、ＤＲＡＭ２００をインターリーブにより動作させることが可能である。この場合、ｎ個のセグメントＳＧ全てが有効である。
【０１１６】
つまり、物理メモリ空間においては（実際には）、ＤＲＡＭ２００の全記憶領域の半分のみが確保領域であり、当該全記憶領域の残りの半分が、データの格納が可能な状態であるにも関わらず、利用されていない。
【０１１７】
以下においては、単位領域ＲＷにおいて、ｋ（自然数）個のバンク対応領域を用いたインターリーブによる動作を、ｋバンクインターリーブ動作ともいう。例えば、単位領域ＲＷにおいて、４個のバンク対応領域を用いたインターリーブによる動作を、４バンクインターリーブ動作ともいう。
【０１１８】
しかしながら、ｎ個のセグメントＳＧが有効であるため、論理メモリ空間においては、ＤＲＡＭ２００の全記憶領域が利用されているとみなされる。そのため、ＤＲＡＭ２００に、さらなる、データの格納が不可能になってしまう。
【０１１９】
これを防止するために、本実施の形態では、ＤＲＡＭ２００における確保領域合計容量に基づいて、確保容量ＣＰを、第１容量および第２容量のいずれかに設定するための処理（以下、容量設定処理という）が行われる。
【０１２０】
ここで、第１容量は、一例として、４個のバンク対応領域の容量であるとする。第２容量は、一例として、単位領域ＲＷの容量（単位領域最大容量）であるとする。すなわち、第２容量は、８個のバンク対応領域の容量であるとする。つまり、特定情報としての確保容量ＣＰは、バンクに対応する１つの記憶領域の容量単位で設定される。
【０１２１】
なお、第２容量は、８個のバンク対応領域の容量に限定されず、４個のバンク対応領域の容量より大きい容量であればよい。例えば、第２容量は、７個のバンク対応領域の容量であってもよい。
【０１２２】
本実施の形態では、容量設定処理により、データの格納が可能な記憶領域Ｃ１０が存在するにも関わらず、セグメントＳＧの確保容量ＣＰを設定できない状態を防ぐ。
【０１２３】
具体的には、メモリ容量監視部１２３が、確保領域合計容量を容量設定部１２４に通知する毎に、容量設定処理が行われる。
【０１２４】
図４は、容量設定処理のフローチャートである。
【０１２５】
図４を参照して、ステップＳ１１０では、容量設定部１２４が、最新の確保領域合計容量が所定の第１閾値ＴＨ１以下であるか否かを判定する。第１閾値ＴＨ１は、ＤＲＡＭ２００の最大記憶容量の半分未満の値である。すなわち、第１閾値ＴＨ１は、ＤＲＡＭ２００のｕ個の記憶領域Ｃ１０の合計容量の半分未満の値である。
【０１２６】
第１閾値ＴＨ１は、一例として、ＤＲＡＭ２００の最大記憶容量の８分の３とする。なお、第１閾値ＴＨ１は、最大記憶容量の８分の３に限定されず、例えば、最大記憶容量の８分の２〜最大記憶容量の８分の３の範囲の値であってもよい。
【０１２７】
すなわち、容量設定部１２４は、メモリの確保状態に関する所定条件が満たされるか否かを判定する。この場合、メモリの確保状態に関する所定条件は、最新の確保領域合計容量が所定の第１閾値ＴＨ１以下であるという条件である。すなわち、メモリの状態に関する所定条件は、各セグメントＳＧが示す最新の特定情報（確保容量ＣＰ）により特定される全ての確保領域の合計容量が、所定の第１閾値ＴＨ１以下であるという条件である。
【０１２８】
容量設定部１２４は、上記所定条件が満たされる場合、すなわち、確保領域合計容量が所定の第１閾値ＴＨ１以下である場合（ステップＳ１１０でＹＥＳ）、ステップＳ１２１の処理を行う。
【０１２９】
ステップＳ１２１では、容量設定部１２４は、セグメントＳＧの確保容量ＣＰを第１容量に設定するための第１容量設定指示を、セグメント設定部１２１へ送信する。
【０１３０】
セグメント設定部１２１は、第１容量設定指示を受信した場合、後述の第２容量設定指示を受信するまでは、前述のアドレス変換処理においてアドレス変換回路１１０により選択されたセグメントＳＧの確保容量ＣＰを第１容量に設定する。
【０１３１】
消費電力制御部１２２は、セグメントテーブルＴ１０に含まれる各セグメントＳＧの状態を常に監視している。
【０１３２】
セグメントＳＧの確保容量ＣＰが第１容量に設定された場合、消費電力制御部１２２は、アクセス対象の領域を制限するためのアクセス領域制限指示を、ＤＲＡＭ制御回路２１０へ送信する。
【０１３３】
ＤＲＡＭ制御回路２１０は、アクセス領域制限指示を受信した場合、当該アクセス領域制限指示により指定される領域のみにアクセスする。
【０１３４】
ここで、第１容量は、一例として、４個のバンク対応領域の容量であるとする。この場合、消費電力制御部１２２が送信するアクセス領域制限指示は、単位領域ＲＷに含まれる８個のバンク対応領域のうちバンクＢＫ０〜３に対応するバンク対応領域のみにアクセスするための指示である。また、ＤＲＡＭ制御回路２１０は、一例として、単位領域ＲＷ［２］にアクセスするためのメモリアクセス要求ＲＱＡを受信したとする。
【０１３５】
この場合、ＤＲＡＭ制御回路２１０は、アクセス領域制限指示およびメモリアクセス要求ＲＱＡにしたがって、単位領域ＲＷ［２］に含まれる８個のバンク対応領域のうちバンクＢＫ０〜３に対応するバンク対応領域のみにアクセスする。
【０１３６】
この場合、ＤＲＡＭ制御回路２１０は、前述したメモリアクセス要求ＲＱＡにしたがって、当該第１容量に設定されたセグメントＳＧに対応する単位領域ＲＷにアクセスする場合、当該単位領域ＲＷのうち、第１容量に対応する部分のみにアクセスする。
【０１３７】
一方、容量設定部１２４は、確保領域合計容量が第１閾値ＴＨ１より大きい場合（ステップＳ１１０でＮＯ）、ステップＳ１２２の処理を行う。
【０１３８】
ステップＳ１２２では、容量設定部１２４は、セグメントＳＧの確保容量ＣＰを第２容量に設定するための第２容量設定指示を、セグメント設定部１２１へ送信する。
【０１３９】
セグメント設定部１２１は、第２容量設定指示を受信した場合、第１容量設定指示を受信するまでは、前述のアドレス変換処理において、アドレス変換回路１１０により選択されたセグメントＳＧの確保容量ＣＰを第２容量に設定する。
【０１４０】
すなわち、制御部１２０（容量設定部１２４およびセグメント設定部１２１）が行うステップＳ１２１，Ｓ１２２の処理は、前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定（設定）するための処理である。つまり、制御部１２０（容量設定部１２４およびセグメント設定部１２１）が行う容量設定処理は、前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定（設定）する処理である。言い換えれば、制御部１２０が行う容量設定処理は、メモリ（ＤＲＡＭ２００）のうち、アクセス対象とする、該メモリの一部を動的に決定する処理である。
【０１４１】
消費電力制御部１２２は、他の処理とは独立して、セグメントテーブルＴ１０を用いた消費電力制御処理を常時行っている。すなわち、消費電力制御部１２２は、セグメントテーブルＴ１０を、随時監視している。
【０１４２】
図５は、消費電力制御処理のフローチャートである。
【０１４３】
ステップＳ２１０では、消費電力制御部１２２が、最新のセグメントテーブルＴ１０を参照して、未使用バンクが存在するか否かを判定する。未使用バンクとは、当該未使用バンクを構成する全ての記憶領域Ｃ１０が不確保領域であるバンクである。すなわち、未使用バンクは、当該未使用バンクを構成する全ての記憶領域Ｃ１０が、アクセス不可なバンクである。言い換えれば、未使用バンクは、アクセス対象に決定（設定）されていないバンク、すなわち、アクセス対象でないバンクである。
【０１４４】
例えば、図２のバンクＢＫ７を構成するｎ個の記憶領域Ｃ１０が、不確保領域である場合、バンクＢＫ７は未使用バンクである。
【０１４５】
具体的には、消費電力制御部１２２は、セグメントテーブルＴ１０が示すｎ個のセグメントＳＧがそれぞれ示すｎ個の確保容量ＣＰの全てが、第２容量を示さないか否かを判定する。当該ｎ個の確保容量ＣＰの全てが第２容量を示さない場合は、例えば、当該ｎ個の確保容量ＣＰの各々が、第１容量または０が設定されている場合である。
【０１４６】
消費電力制御部１２２は、当該ｎ個の確保容量ＣＰの全てが第２容量を示さない場合、未使用バンクが存在すると判定する。一方、消費電力制御部１２２は、当該ｎ個の確保容量ＣＰの少なくとも１つが第２容量を示す場合、未使用バンクが存在しないと判定する。
【０１４７】
ステップＳ２１０において、ＹＥＳならば処理はステップＳ２２０に移行する。一方、ステップＳ２１０において、ＮＯならば、再度ステップＳ２１０の処理が行われる。
【０１４８】
すなわち、メモリ（ＤＲＡＭ２００）の確保状態の変化を伴う、メモリに対してアクセスを行うための処理が行われる毎に、メモリの確保状態に関する所定条件が満たされた場合であって、かつ、ｐ個のバンクのうちアクセス対象でない（アクセスが不可な）未使用バンクが存在する場合、制御部１２０（消費電力制御部１２２）により、ステップＳ２２０の消費電力低減処理が行われる。
【０１４９】
上記のメモリの確保状態に関する所定条件とは、最新の確保領域合計容量が所定の第１閾値ＴＨ１以下であるという条件である。すなわち、メモリの確保状態に関する所定条件は、各セグメントＳＧが示す最新の特定情報（確保容量ＣＰ）により特定される全ての確保領域の合計容量が、所定の第１閾値以下であるという条件である。
【０１５０】
なお、前述したように、メモリ（ＤＲＡＭ２００）の状態の変化を伴う、メモリに対してアクセスを行うための処理は、セグメントの更新が必要な処理であって、かつ、単位領域に対してアクセスを行うための処理である。
【０１５１】
ステップＳ２２０では、消費電力制御部１２２により消費電力低減処理が行われる。消費電力低減処理では、消費電力制御部１２２が、未使用バンクにセルフリフレッシュを行うためのセルフリフレッシュ指示（コマンド）を、ＤＲＡＭ制御回路２１０を介して、ＤＲＡＭ２００へ送信する。そして、この消費電力低減処理は終了する。
【０１５２】
ＤＲＡＭ２００は、受信したセルフリフレッシュ指示にしたがって、当該セルフリフレッシュ指示により指定される当該未使用バンクに対しセルフリフレッシュを行う。すなわち、ＤＲＡＭ２００は、パーシャルセルフリフレッシュを行う。すなわち、消費電力低減処理は、未使用バンクに対しセルフリフレッシュが行われるよう消費電力制御部１２２（制御部１２０）がメモリ（ＤＲＡＭ２００）を制御する処理である。
【０１５３】
なお、バンクＢＫ０〜ＢＫ７のうち、セルフリフレッシュが行われた未使用バンク以外のバンクに対しては、前述したオートリフレッシュが行われる。セルフリフレッシュが行われる時間の間隔と、オートリフレッシュが行われる時間の間隔は、ほぼ同等であるとする。前述したように、セルフリフレッシュが行われるために必要な電力は、オートリフレッシュが行われるために必要な電力より小さい。
【０１５４】
したがって、ＤＲＡＭ２００に記憶されているデータを保持するための処理を行いつつ、未使用バンクの消費電力を低減することができる。すなわち、消費電力低減処理は、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう消費電力制御部１２２（制御部１２０）がメモリ（ＤＲＡＭ２００）を制御する処理である。
【０１５５】
セルフリフレッシュが行われている未使用バンクは、アクセス不能であるため、論理メモリ空間においては、当該未使用バンクは使用されているとみなされる。
【０１５６】
なお、消費電力制御部１２２は、ＤＲＡＭ２００における単位時間（例えば、１時間）当たりの消費電力の増加を防ぐために、セルフリフレッシュ指示を送信した後、所定時間（例えば、１秒）経過するまでは、再度、セルフリフレッシュ指示を、ＤＲＡＭ制御回路２１０へ送信しない。そして、この消費電力低減処理は終了し、再度、ステップＳ２１０の処理が行われる。
【０１５７】
次に、メモリ管理ユニット１００の動作の一例を説明する。
【０１５８】
図６は、メモリ管理ユニット１００の動作の一例を説明するための図である。
【０１５９】
ここで、メモリ管理ユニット１００に対応するＤＲＡＭ２００は、一例として、８バンクで構成されるとする。なお、メモリ管理ユニット１００において、前述した、容量監視処理、図４の容量設定処理および図５の消費電力制御処理が行われているとする。
【０１６０】
図６を参照して、縦軸は、メモリ容量監視部１２３が随時算出する、前述の確保領域合計容量を示す。図６において、「ＭＡＸ」とは、ＤＲＡＭ２００の最大記憶容量である。「ＭＡＸ／２」とは、ＤＲＡＭ２００の全記憶領域の半分の容量である。「ＴＨ１」は、前述の第１閾値ＴＨ１である。すなわち、第１閾値ＴＨ１は、一例として、ＤＲＡＭ２００のｕ個の記憶領域Ｃ１０の合計容量の半分未満の値である。
【０１６１】
なお、少なくとも１つのセグメントＳＧが有効になる毎に、確保領域合計容量が変化する。
【０１６２】
期間Ｔ１では、確保領域合計容量は、最大記憶容量の２分の１以下である。そのため、図４のステップＳ１１０でＹＥＳと判定され、前述のステップＳ１２１の処理が行われる。これにより、消費電力制御部１２２は、アクセス対象の領域を制限するためのアクセス領域制限指示を、ＤＲＡＭ制御回路２１０へ送信する。
【０１６３】
ＤＲＡＭ制御回路２１０は、アクセス領域制限指示を受信した場合、当該アクセス領域制限指示により指定される領域のみにアクセスする。ここで、アクセス領域制限指示は、一例として、単位領域ＲＷのうちバンクＢＫ０〜３に対応するバンク対応領域のみにアクセスするための指示である。
【０１６４】
この場合、図５の消費電力制御処理により、未使用バンク（バンクＢＫ４〜７）が存在すると判定され（Ｓ２１０でＹＥＳ）、ステップＳ２２０の消費電力低減処理が行われる。
【０１６５】
この消費電力低減処理により、ＤＲＡＭ２００は、バンクＢＫ４〜７に対しセルフリフレッシュを行う。これにより、ＤＲＡＭ２００に記憶されているデータを保持するための処理を行いつつ、未使用バンクの消費電力を低減することができる。
【０１６６】
図７は、期間Ｔ１におけるＤＲＡＭ２００の状態の一例を示す図である。
【０１６７】
図７において、確保領域とは、前述したので詳細な説明は繰り返さない。
【０１６８】
前述したように、セルフリフレッシュが行われている未使用バンクは、アクセス不能であるため、論理メモリ空間においては、当該未使用バンクは使用されているとみなされる。
【０１６９】
ここで、例えば、ＤＲＡＭ２００が８バンクインターリーブ動作を行っており、セグメントＳＧの確保容量ＣＰが８個のバンク対応領域の容量に設定されているとする。この場合、仮に、ＤＲＡＭ２００が４バンクインターリーブ動作を行うには、セグメントを２つ使用する必要がある。このため、実際の確保容量に対して、論理メモリ空間で見える容量は、４バンクインターリーブ時では、８バンクインターリーブ時に対して２倍になる。
【０１７０】
次に、容量設定部１２４が、セグメントにより確保する確保容量ＣＰを切替えるタイミングについて説明する。
【０１７１】
前述したように、確保領域合計容量が第１閾値ＴＨ１以下であり、かつ、未使用バンクが存在する場合、セルフリフレッシュが行われる。
【０１７２】
一方、図６に示すように、期間Ｔ１の直後に、確保領域合計容量が第１閾値ＴＨ１より大きくなった場合、容量設定部１２４は、次に有効にするセグメントにより確保する確保容量ＣＰを、前述の第２容量（単位領域最大容量）に設定する。ここで、次に有効にするセグメントとは、無効のセグメントＳＧであって、かつ、容量設定部１２４が処理した最新のセグメントＳＧの次のセグメントＳＧである。
【０１７３】
同時に、消費電力制御部１２２は、セルフリフレッシュの実行を停止させるためのセルフリフレッシュ停止指示（コマンド）を、ＤＲＡＭ制御回路２１０を介して、ＤＲＡＭ２００へ送信する。
【０１７４】
ＤＲＡＭ２００は、セルフリフレッシュ停止指示に従って、セルフリフレッシュの実行を停止する。すなわち、パーシャルセルフリフレッシュの実行が停止される。これにより、ＤＲＡＭ２００のバンクＢＫ０〜ＢＫ７が使用可能になる。
【０１７５】
期間Ｔ２では、前述のセグメント設定部１２１の処理により、新しく有効にされるセグメントＳＧにより確保される確保容量ＣＰは、第２容量（単位領域最大容量）に設定される。これにより、ＤＲＡＭ２００へのアクセスは、８バンクインターリーブによるアクセスとなる。
【０１７６】
図８は、期間Ｔ２におけるＤＲＡＭ２００の状態の一例を示す図である。
【０１７７】
図８において、確保領域および不確保領域は、前述したので詳細な説明は繰り返さない。
【０１７８】
図８では、単位領域ＲＷ［１］では、４個のバンク対応領域の各々が、確保領域である。すなわち、単位領域ＲＷ［１］では、４バンクインターリーブ動作が行われる。また、単位領域ＲＷ［３］では、８個のバンク対応領域の各々が、確保領域である。すなわち、単位領域ＲＷ［３］では、８バンクインターリーブ動作が行われる。
【０１７９】
つまり、期間Ｔ２では、ＤＲＡＭ２００には、４バンクインターリーブ動作が行われる単位領域ＲＷ［１］と、８バンクインターリーブ動作が行われる単位領域ＲＷ［３］とが混在するようになる。
【０１８０】
この場合、４バンクインターリーブ動作が行われる単位領域ＲＷ［１］において、バンクＢＫ４〜ＢＫ７にそれぞれ対応する４個の不確保領域は使用不可のままである。
【０１８１】
図６の期間Ｔ２において、単位領域ＲＷ［１］を、４バンクインターリーブ動作させるための処理（メモリアクセス要求に対応する処理）が終了した場合、単位領域ＲＷ［１］は解放される。具体的には、セグメント設定部１２１が、単位領域ＲＷ［１］に対応するセグメントＳＧを、無効に設定する。
【０１８２】
そして、期間Ｔ２において、再度、単位領域ＲＷ［１］を使用するためのメモリアクセス要求があった場合、セグメント設定部１２１は、単位領域ＲＷ［１］に対応するセグメントＳＧを有効に設定するとともに、当該セグメントＳＧの確保容量ＣＰを、第２容量（単位領域最大容量）に設定する。これにより、当該単位領域ＲＷ［１］は、８バンクインターリーブ動作を行うことが可能となる。
【０１８３】
図６において、期間Ｔ３は、確保領域合計容量が第１閾値ＴＨ１以下である期間である。すなわち、確保領域合計容量が第１閾値ＴＨ１より大きい期間Ｔ２において、確保領域合計容量が第１閾値ＴＨ１以下になると、期間Ｔ３に移行する。すなわち、期間Ｔ２から期間Ｔ３への移行は、期間Ｔ１から期間Ｔ２への移行と同様に、第１閾値ＴＨ１が用いられる。
【０１８４】
確保領域合計容量が第１閾値ＴＨ１以下になると、容量設定部１２４は、前述した図４の容量設定処理により、次に有効にするセグメントにより確保する確保容量ＣＰを、第１容量（単位領域最大容量の２分の１）に設定する。すなわち、確保容量ＣＰが第１容量に設定されたセグメントに対応する単位領域ＲＷは、４バンクインターリーブ動作を行うことが可能となる。
【０１８５】
この場合、消費電力制御部１２２は、バンクＢＫ０〜ＢＫ３にそれぞれ対応する４個のバンク対応領域において、インターリーブ動作させるための指示を、ＤＲＡＭ制御回路２１０へ送信する。具体的には、前述したように、消費電力制御部１２２は、アクセス対象の領域を制限するためのアクセス領域制限指示を、ＤＲＡＭ制御回路２１０へ送信する。
【０１８６】
また、消費電力制御部１２２は、８バンクインターリーブ動作の対象となる単位領域ＲＷがなくなった時点で、セルフリフレッシュ指示を、ＤＲＡＭ制御回路２１０を介して、ＤＲＡＭ２００へ送信する。すなわち、図５のステップＳ２２０の処理が行われる。
【０１８７】
以上説明したように、本実施の形態によれば、バンクインターリーブによるアクセスが行われている期間に、セグメントＳＧを使用して、確保領域合計容量を随時算出し、当該確保領域合計容量に応じて、セグメントにより確保する確保容量ＣＰを変化させる。
【０１８８】
すなわち、各単位領域ＲＷにおいて、インターリーブの対象となるバンク対応領域の数を動的に変更させ、未使用バンクが存在する場合、当該未使用バンクをセルフリフレッシュする。これにより、バンクインターリーブによるアクセスが行われる際にデータの転送効率を落とすことなく、ＤＲＡＭ２００の消費電力を効率的に抑えることが可能である。
【０１８９】
つまり、確保領域合計容量が第１閾値ＴＨ１以下である場合、セグメントＳＧが確保する容量を少なくする。すなわち、バンクインターリーブによるアクセスの対象となるバンク対応領域の数を少なくする。これにより、未使用バンクを発生させる。そして、当該未使用バンクをセルフリフレッシュする。これにより、ＤＲＡＭ２００の消費電力を効率的に抑えることが可能である。
【０１９０】
すなわち、本実施の形態によれば、バンクインターリーブによるアクセスに対応するメモリにおいて、メモリの確保状態の変化を伴う処理が行われる毎に、メモリの確保状態に関する所定条件が満たされた場合（Ｓ１１０でＹＥＳ）であって、かつ、未使用バンクが存在する場合、未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするようメモリを制御する消費電力低減処理が行われる。
【０１９１】
これにより、メモリの確保状態が変化したときにおいて、メモリの確保状態に関する所定条件が満たされた場合であって、未使用バンクが存在する場合、未使用バンクの消費電力を抑えることができる。
【０１９２】
すなわち、バンクインターリーブによるアクセスに対応するメモリの確保状態の変化に伴って生じる未使用バンクの消費電力を抑えることができる。したがって、メモリの確保状態の変化に応じて、メモリの消費電力を効率よく抑えることができる。
【０１９３】
なお、本実施の形態では、確保領域合計容量を使用したがこれに限定されない。最大記憶容量に対する確保領域合計容量の割合である前述した容量確保率を用いて、インターリーブの対象となる、バンク対応領域の数を動的に変更させてもよい。
【０１９４】
なお、本実施の形態では、ＤＲＡＭ２００の消費電力の低減のために、パーシャルセルフリフレッシュを用いたがこれに限定されない。例えば、前述の不確保領域への電力供給を停止することにより、ＤＲＡＭ２００の消費電力を低減させてもよい。
【０１９５】
＜第２の実施の形態＞
本実施の形態では、２つの要素に基づいて、容量設定部１２４が、確保容量ＣＰを設定するための処理を行うための構成について説明する。当該２つの要素は、前述の確保領域合計容量および有効セグメント数である。有効セグメント数とは、有効判定情報ＦＧが「有効」を示すセグメントＳＧの数である。
【０１９６】
図９は、第２の実施の形態におけるデータ記憶装置１０００Ａの構成を示すブロック図である。
【０１９７】
図９を参照して、データ記憶装置１０００Ａは、図１のデータ記憶装置１０００と比較して、メモリ管理ユニット１００の代わりにメモリ管理ユニット１００Ａを含む点が異なる。それ以外のデータ記憶装置１０００Ａの構成は、データ記憶装置１０００と同様なので詳細な説明は繰り返さない。
【０１９８】
メモリ管理ユニット１００Ａは、図１のメモリ管理ユニット１００と比較して、制御部１２０の代わりに制御部１２０Ａを備える点が異なる。それ以外のメモリ管理ユニット１００Ａの構成は、メモリ管理ユニット１００と同様なので詳細な説明は繰り返さない。
【０１９９】
制御部１２０Ａは、図１の制御部１２０と比較して、セグメント設定部１２１の代わりにセグメント設定部１２１Ａを含む点と、容量設定部１２４の代わりに容量設定部１２４Ａを含む点とが異なる。それ以外の制御部１２０Ａの構成は、制御部１２０と同様なので詳細な説明は繰り返さない。
【０２００】
セグメント設定部１２１Ａは、セグメント設定部１２１と同様な構成を有する。すなわち、セグメント設定部１２１Ａは、セグメントテーブルＴ１０を有する。
【０２０１】
また、セグメント設定部１２１Ａは、セグメント設定部１２１と同様な処理を行う。すなわち、アドレス変換処理が行われる毎に、セグメント設定部１２１Ａは、セグメント設定部１２１と同様、必要に応じて、有効判定情報ＦＧの変更とともに、セグメントＳＧを更新するための処理を行う。
【０２０２】
すなわち、セグメント設定部１２１Ａは、セグメントの更新が必要な処理であって、かつ、単位領域に対してアクセスを行うための処理が行われる毎に、更新が必要な該セグメントが示す特定情報および更新が必要な該セグメントが示す有効判定情報の少なくとも一方を更新する。ここで、セグメントの更新が必要な処理であって、かつ、単位領域に対してアクセスを行うための処理は、セグメントの更新が必要となるメモリアクセス要求ＲＱを用いて行われる上記のアドレス変換処理である。
【０２０３】
すなわち、セグメントの更新が必要な処理であって、かつ、単位領域に対してアクセスを行うための処理は、メモリ（ＤＲＡＭ２００）の状態の変化を伴う、メモリ（ＤＲＡＭ２００）に対してアクセスを行うための処理である。
【０２０４】
セグメント設定部１２１Ａが、更新が必要な該セグメントが示す特定情報および更新が必要な該セグメントが示す有効判定情報の少なくとも一方を更新する処理は、ｐ個のバンクのうち、アクセス対象のバンクを動的に決定（設定）する処理である。
【０２０５】
セグメント設定部１２１Ａは、さらに、セグメントテーブルＴ１０に含まれる有効セグメント数が変化する毎に、当該有効セグメント数を、容量設定部１２４Ａへ通知する。これにより、容量設定部１２４Ａは、有効セグメント数を、常に把握している。
【０２０６】
なお、有効セグメント数に限定されず、有効セグメント率が、容量設定部１２４Ａへ通知されてもよい。有効セグメント率は、セグメントＳＧの総数に対する、有効セグメント数の割合である。
【０２０７】
メモリ容量監視部１２３は、第１の実施の形態と同様に、容量監視処理を行う。すなわち、メモリ容量監視部１２３は、確保領域合計容量を算出し、確保領域合計容量を算出する毎に、確保領域合計容量を、容量設定部１２４Ａへ通知する。
【０２０８】
これにより、容量設定部１２４Ａには、メモリ容量監視部１２３から、確保領域合計容量が随時通知される。これにより、容量設定部１２４Ａは、確保領域合計容量を、常に把握している。
【０２０９】
本実施の形態では、メモリ容量監視部１２３が、確保領域合計容量を容量設定部１２４Ａに通知する毎に、容量設定処理Ａが行われる。
【０２１０】
図１０は、容量設定処理Ａのフローチャートである。
【０２１１】
図１０を参照して、ステップＳ１１０Ａでは、容量設定部１２４Ａが、最新の確保領域合計容量が所定の第１閾値ＴＨ１以下であり、かつ、最新の有効セグメント数が、所定の第２閾値ＴＨ２以下であるか否かを判定する。第１閾値ＴＨ１は、前述したように、ＤＲＡＭ２００のｕ個の記憶領域Ｃ１０の合計容量（最大記憶容量）の半分未満の値である。第２閾値ＴＨ２は、ｎ／２未満の値である。
【０２１２】
すなわち、容量設定部１２４Ａは、メモリの確保状態に関する所定条件が満たされるか否かを判定する。この場合、当該メモリの確保状態に関する所定条件は、各セグメントＳＧが示す最新の特定情報（確保容量ＣＰ）により特定される全ての確保領域の合計容量が所定の第１閾値ＴＨ１以下であり、かつ、有効であるセグメントの数が所定の第２閾値ＴＨ２以下であるという条件である。
【０２１３】
なお、第２閾値ＴＨ２は、第１閾値ＴＨ１が、ＤＲＡＭ２００の最大記憶容量の半分未満の値である場合、ｎ／２未満の値以外の値であってもよい。例えば、第２閾値ＴＨ２は、ｎ／２≦ＴＨ２≦３ｎ／４の関係式を満たすような値であってもよい。
【０２１４】
また、第１閾値ＴＨ１は、第２閾値ＴＨ２がｎ／２未満の値である場合、ＤＲＡＭ２００の最大記憶容量の半分未満の値以外の値であってもよい。第１閾値ＴＨ１は、例えば、最大記憶容量の半分の値以上であって、かつ、当該最大記憶容量未満の範囲の値であってもよい。
【０２１５】
ステップＳ１１０Ａにおいて、ＹＥＳならば、処理はステップＳ１２１Ａに移行する。一方、ステップＳ１１０Ａにおいて、ＮＯならば、処理はステップＳ１２２Ａに移行する。
【０２１６】
ステップＳ１２１Ａでは、ステップＳ１２１と同様な処理が行われるので詳細な説明は繰り返さない。すなわち、容量設定部１２４Ａは、セグメントＳＧの確保容量ＣＰを第１容量に設定するための第１容量設定指示を、セグメント設定部１２１Ａへ送信する。
【０２１７】
セグメント設定部１２１Ａは、第１容量設定指示を受信した場合、第２容量設定指示を受信するまでは、前述のアドレス変換処理においてアドレス変換回路１１０により選択されたセグメントＳＧの確保容量ＣＰを第１容量に設定する。
【０２１８】
ステップＳ１２２Ａでは、ステップＳ１２２と同様な処理が行われるので詳細な説明は繰り返さない。すなわち、容量設定部１２４Ａは、セグメントＳＧの確保容量ＣＰを第２容量に設定するための第２容量設定指示を、セグメント設定部１２１Ａへ送信する。
【０２１９】
セグメント設定部１２１Ａは、第２容量設定指示を受信した場合、第１容量設定指示を受信するまでは、前述のアドレス変換処理においてアドレス変換回路１１０により選択されたセグメントＳＧの確保容量ＣＰを第２容量に設定する。
【０２２０】
すなわち、制御部１２０Ａ（容量設定部１２４Ａおよびセグメント設定部１２１Ａ）が行うステップＳ１２１Ａ，Ｓ１２２Ａの処理は、前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定（設定）するための処理である。つまり、制御部１２０Ａ（容量設定部１２４Ａおよびセグメント設定部１２１Ａ）が行う容量設定処理Ａは、前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定（設定）する処理である。言い換えれば、制御部１２０Ａが行う容量設定処理Ａは、メモリ（ＤＲＡＭ２００）のうち、アクセス対象とする、該メモリの一部を動的に決定する処理である。
【０２２１】
なお、消費電力制御部１２２は、前述した図５の消費電力制御処理を行っている。
【０２２２】
次に、メモリ管理ユニット１００Ａの動作の一例を説明する。
【０２２３】
図１１は、メモリ管理ユニット１００Ａの動作の一例を説明するための図である。ここで、メモリ管理ユニット１００Ａに対応するＤＲＡＭ２００は、一例として、８バンクで構成されるとする。なお、メモリ管理ユニット１００Ａにおいて、前述した、容量監視処理、図１０の容量設定処理Ａおよび図５の消費電力制御処理が行われているとする。
【０２２４】
図１１において、図６が示す用語と同じ用語は、前述したので詳細な説明は繰り返さない。図１１において、左側の縦軸は確保領域合計容量を示し、右側の縦軸は、有効セグメント数を示す。「ＴＨ２」は、第２閾値ＴＨ２である。
【０２２５】
図１１において、特性線Ｌ１は、時間経過に伴う確保領域合計容量の変化を示す線である。特性線Ｌ２は、時間経過に伴う有効セグメント数の変化を示す線である。
【０２２６】
メモリ管理ユニット１００Ａの動作開始時は、ＤＲＡＭ２００が４バンクインターリーブ動作を行っているものとする。
【０２２７】
期間Ｔ１１では、確保領域合計容量が第１閾値ＴＨ１以下であり、有効セグメント数が、第２閾値ＴＨ２以下である。そのため、期間Ｔ１１では、容量設定部１２４Ａは、セグメントにより確保される確保容量ＣＰを第２容量に設定するための処理を行う。すなわち、期間Ｔ１１では、セグメント設定部１２１Ａは、設定対象のセグメントＳＧの確保容量ＣＰを第１容量（単位領域最大容量の半分）に設定する。
【０２２８】
なお、期間Ｔ１１では、図６の期間Ｔ１と同様に、図５の消費電力制御処理により、消費電力低減処理が行われる。すなわち、パーシャルセルフリフレッシュが行われる。
【０２２９】
期間Ｔ１２の序盤（先頭の期間）では、確保領域合計容量は第１閾値ＴＨ１以下であるが、有効セグメント数が第２閾値ＴＨ２より大きい。
【０２３０】
そのため、図１０のステップＳ１１０ＡでＮＯと判定され、容量設定部１２４Ａは、ステップＳ１２２Ａの処理を行う。これにより、容量設定部１２４Ａは、次に有効にするセグメントにより確保する確保容量ＣＰを、前述の第２容量（単位領域最大容量）に設定する。この場合、第２容量に設定されたセグメントＳＧに対応する単位領域ＲＷは、８バンクインターリーブ動作を行う。
【０２３１】
期間Ｔ１２の終盤（最後の期間）では、有効セグメント数は第２閾値ＴＨ２以下であるが、確保領域合計容量が第１閾値ＴＨ１より大きい。そのため、図１０のステップＳ１１０ＡでＮＯと判定され、容量設定部１２４Ａは、ステップＳ１２２Ａの処理を行う。すなわち、期間Ｔ１２の終盤（最後の期間）では、セグメント設定部１２１Ａは、設定対象のセグメントＳＧの確保容量ＣＰを第２容量（単位領域最大容量）に設定する。
【０２３２】
なお、期間Ｔ１２では、図６の期間Ｔ２と同様な処理が行われることにより、セルフリフレッシュの実行が停止される。
【０２３３】
期間Ｔ１３では、確保領域合計容量が第１閾値ＴＨ１以下であり、有効セグメント数が、第２閾値ＴＨ２以下である。そのため、期間Ｔ１３では、容量設定部１２４Ａは、セグメントにより確保される確保容量ＣＰを第２容量に設定するための処理を行う。すなわち、期間Ｔ１３では、セグメント設定部１２１Ａは、設定対象のセグメントＳＧの確保容量ＣＰを第１容量（単位領域最大容量の半分）に設定する。
【０２３４】
また、期間Ｔ１３においては、図６の期間Ｔ３と同様に、図５の消費電力制御処理により、消費電力低減処理が行われる。すなわち、パーシャルセルフリフレッシュが行われる。
【０２３５】
なお、容量設定部１２４Ａ以外の、セグメント設定部１２１Ａ、消費電力制御部１２２と、メモリ容量監視部１２３等は、第１の実施の形態で説明した処理と同様な処理を行う。
【０２３６】
以上説明したように、本実施の形態によれば、確保領域合計容量および有効セグメント数という２つの要素を利用して、ＤＲＡＭ２００における未使用バンクをセルフリフレッシュするか否かを判定する。これにより、ＤＲＡＭ２００の消費電力の状態を、第１の実施の形態よりも、精密に制御することができる。すなわち、バンクインターリーブによるアクセスが行われる際にデータの転送効率を落とすことなく、ＤＲＡＭ２００の消費電力を、より効率的に抑えることが可能である。
【０２３７】
すなわち、本実施の形態においても、第１の実施の形態と同様な効果を得ることができる。つまり、バンクインターリーブによるアクセスに対応するメモリの確保状態の変化に伴って生じる未使用バンクの消費電力を抑えることができる。したがって、メモリの確保状態の変化に応じて、メモリの消費電力を効率よく抑えることができる。
【０２３８】
また、４バンクインターリーブ動作と８バンクインターリーブ動作が混在する期間において起こる可能性がある、データの格納が可能な記憶領域Ｃ１０が存在するにも関わらず、セグメントＳＧの確保容量ＣＰを設定できない状態を防ぐことができる。
【０２３９】
なお、本実施の形態では、有効セグメント数を使用したがこれに限定されない。有効セグメント数の代わりに前述した有効セグメント率を使用した処理が行われてもよい。
【０２４０】
また、確保容量ＣＰに設定される値を切替えるための基準となる要素は、確保領域合計容量、容量確保率、有効セグメント数、有効セグメント率等に限定されることなく、他の要素であってもよい。
【０２４１】
＜第３の実施の形態＞
本実施の形態では、データ記憶装置１０００またはデータ記憶装置１０００Ａを備える画像処理装置について説明する。本実施の形態では、一例として、データ記憶装置１０００を備える画像処理装置について説明する。
【０２４２】
図１２は、第３の実施の形態における画像処理装置２０００の構成を示すブロック図である。画像処理装置２０００は、一例として、撮像装置である。撮像装置は、例えば、ネットワークカメラ、車載カメラ、デジタルビデオカメラ、デジタルスチルカメラである。
【０２４３】
図１２を参照して、画像処理装置２０００は、データ記憶装置１０００と、ＣＰＵ３０１と、記録メディアインタフェース３１０と、符号化部３２１と、復号部３２２と、画像サイズ変更部３３０と、表示部３４０とを含む。
【０２４４】
データ記憶装置１０００に含まれる各部は、第１の実施の形態で説明したので詳細な説明は繰り返さない。なお、ＤＲＡＭ２００は、一例として、８個のバンクを含むとする。
【０２４５】
ＣＰＵ３０１は、メモリ管理ユニット１００を制御する。また、ＣＰＵ３０１は、前述したメモリアクセス要求ＲＱを、アドレス変換回路１１０へ送信する。なお、ＣＰＵ３０１は、記録メディアインタフェース３１０と通信可能であるとする。
【０２４６】
記録メディアインタフェース３１０は、図示しない記録メディアに接続される。
【０２４７】
符号化部３２１は、画像を符号化する。復号部３２２は、符号化された画像データを復号する。画像サイズ変更部３３０は、画像を、縮小または拡大する。
【０２４８】
表示部３４０は、画像を表示する表示装置である。なお、表示部３４０は、外部の表示機器に画像データを送信するための装置であってもよい。すなわち、表示部３４０は、外部の表示機器を制御する装置であってもよい。
【０２４９】
本実施の形態では、画像の再生処理について説明する。当該画像は、一例として、ＪＰＥＧ（Joint Photographic Experts Group）方式に従った画像であるとする。
【０２５０】
図示しない記録メディアには、ＪＰＥＧ方式により符号化された画像データが記憶されているとする。当該画像データは、撮像された画像のデータであるとする。
【０２５１】
再生処理において、ＣＰＵ３０１は、記録メディアインタフェース３１０を介して、記録メディアから画像データを読み出す。そして、ＣＰＵ３０１は、メモリ管理ユニット１００を利用して、当該画像データをＤＲＡＭ２００へ格納するための処理を行う。
【０２５２】
復号部３２２は、メモリ管理ユニット１００を利用して、ＤＲＡＭ２００から画像データを読出し、当該画像データを復号することにより、画像を示すＹＣデータを得る。ＹＣデータは、Ｙ（輝度）データとＣ（色差）データとから構成されるデータである。
【０２５３】
そして、復号部３２２は、メモリ管理ユニット１００を利用して、ＤＲＡＭ２００において、画像データが記憶された領域とは別の領域にＹＣデータを格納するための処理を行う。
【０２５４】
画像サイズ変更部３３０は、メモリ管理ユニット１００を利用して、ＤＲＡＭ２００からＹＣデータを読出す。そして、画像サイズ変更部３３０は、当該ＹＣデータが示す画像を拡大または縮小する。以下においては、画像サイズ変更部３３０により、拡大または縮小された画像を示すＹＣデータを、変更済ＹＣデータともいう。
【０２５５】
そして、画像サイズ変更部３３０は、メモリ管理ユニット１００を利用して、ＤＲＡＭ２００において、画像データおよびＹＣデータが記憶された領域とは別の領域に変更済ＹＣデータを格納するための処理を行う。
【０２５６】
ＣＰＵ３０１は、ＤＲＡＭ２００から、表示対象のＹＣデータを読出し、当該ＹＣデータを、表示部３４０へ送信する。
【０２５７】
表示部３４０は、受信したＹＣデータが示す画像を表示する。以下においては、表示部３４０が表示対象のＹＣデータが示す画像を表示する処理を、画像表示処理ともいう。
【０２５８】
以上の再生処理により、撮像された画像を再生することができる。
【０２５９】
図１３は、上記再生処理による、確保領域合計容量の変化を示す図である。
【０２６０】
図１３を参照して、期間Ｔ２１では、再生処理の開始時にＣＰＵ３０１が記録メディアから読み出した画像データをＤＲＡＭ２００に格納するための処理と、復号部３２２がＤＲＡＭ２００から画像データを読出す処理とが行われる。以下においては、ＣＰＵ３０１が、画像データをＤＲＡＭ２００に格納するための処理を画像データ格納処理という。
【０２６１】
再生処理の開始時は、処理対象データは、画像データのみであり、確保領域合計容量は、最大記憶容量の８分の１である。よって、消費電力制御部１２２は、バンクＢＫ０〜３に対応するバンク対応領域のみにアクセスするためのアクセス領域制限指示を、ＤＲＡＭ制御回路２１０へ送信する。これにより、ＤＲＡＭ２００は、４バンクインターリーブ動作を行う。
【０２６２】
このとき、バンクＢＫ４〜ＢＫ７は未使用バンクである。そのため、図５の消費電力制御処理が行われることにより、ＤＲＡＭ２００は、バンクＢＫ４〜７に対しセルフリフレッシュを行う。すなわち、ＤＲＡＭ２００は、パーシャルセルフリフレッシュを行う。これにより、未使用バンクの消費電力を低減することができる。
【０２６３】
期間Ｔ２２では、既にＤＲＡＭ２００に画像データが格納されている状態で、復号部３２２が、復号により得たＹＣデータを、さらに、ＤＲＡＭ２００に格納する。そのため、期間Ｔ２２は、期間Ｔ２１より、確保領域合計容量は増加する。しかしながら、期間Ｔ２２では、確保領域合計容量が第１閾値ＴＨ１以下である。そのため、期間Ｔ２２では、期間Ｔ２１と同様に、ＤＲＡＭ２００が、４バンクインターリーブ動作を行う。
【０２６４】
期間Ｔ２３では、画像サイズ変更部３３０が、画像のサイズを変更したＹＣデータを、ＤＲＡＭ２００に格納する。期間Ｔ２３では、確保領域合計容量が第１閾値ＴＨ１より大きい。期間Ｔ２２から期間２３へ移行した直後では、容量設定部１２４は、次に有効にするセグメントにより確保する確保容量ＣＰを、前述の第２容量（単位領域最大容量）に設定する。
【０２６５】
同時に、消費電力制御部１２２は、セルフリフレッシュの実行を停止させるためのセルフリフレッシュ停止指示（コマンド）を、ＤＲＡＭ制御回路２１０を介して、ＤＲＡＭ２００へ送信する。
【０２６６】
ＤＲＡＭ２００は、セルフリフレッシュ停止指示に従って、セルフリフレッシュの実行を停止する。すなわち、パーシャルセルフリフレッシュの実行が停止される。これにより、ＤＲＡＭ２００のバンクＢＫ０〜ＢＫ７が使用可能になる。
【０２６７】
期間Ｔ２４では、再生対象のＹＣデータ表示するための複数の処理が行われる期間である。
【０２６８】
以下においては、前述した復号部３２２がＹＣデータを格納するための処理を、ＹＣデータ格納処理という。また、以下においては、画像サイズ変更部３３０がＤＲＡＭ２００からＹＣデータを読出す処理を、ＹＣデータ読出し処理という。また、以下においては、画像サイズ変更部３３０が変更済ＹＣデータをＤＲＡＭ２００に格納するための処理を、変更済ＹＣデータ格納処理という。また、以下においては、ＣＰＵ３０１が表示対象のＹＣデータを読出す処理を、表示対象ＹＣデータ読出し処理という。
【０２６９】
期間Ｔ２４では、ＹＣデータ格納処理と、ＹＣデータ読出し処理と、変更済ＹＣデータ格納処理と、表示対象ＹＣデータ読出し処理と、前述の画像表示処理が行われる。
【０２７０】
期間Ｔ２４は、期間Ｔ２３と同様、確保領域合計容量が第１閾値ＴＨ１より大きい。そのため、期間Ｔ２４は、ＤＲＡＭ２００が８バンクインターリーブ動作を行うことが可能な期間である。
【０２７１】
期間Ｔ２５では、前述の画像データ格納処理と、前述のＹＣデータ格納処理とが終了している。なお、期間Ｔ２５では、変更済ＹＣデータ格納処理および表示対象ＹＣデータ読出し処理は行われている。期間Ｔ２５では、確保領域合計容量が第１閾値ＴＨ１より大きい。そのため、期間Ｔ２５は、期間Ｔ２４と同様、ＤＲＡＭ２００が８バンクインターリーブ動作を行う事が可能な期間である。
【０２７２】
期間Ｔ２６では、変更済ＹＣデータ格納処理が終了している。期間Ｔ２６では、前述の表示対象ＹＣデータ読出し処理および画像表示処理のみが行われている。期間Ｔ２６では、確保領域合計容量が第１閾値ＴＨ１以下であるため、ＤＲＡＭ２００は４バンクインターリーブ動作を行う事が可能である。
【０２７３】
しかし、表示対象ＹＣデータ読出し処理は、８バンクインターリーブ動作により行われる。そのため、このままでは、バンクＢＫ４〜ＢＫ７に対し、パーシャルセルフリフレッシュを行うことが出来ない。
【０２７４】
そこで、ＤＭＡ（ダイレクトメモリアクセス）を利用して、表示対象のＹＣデータを構成するＹデータおよびＣデータのうち、バンクＢＫ４〜ＢＫ７において使用していたデータを、空き領域のバンクＢＫ０〜バンクＢＫ３へ転送する。すなわち、ＤＭＡ転送中は８バンクのデータを読み続け、ＤＭＡ転送完了後に、処理対象のセグメントを変更して４バンクのデータを２個読む処理が行われる。
【０２７５】
これにより、バンクＢＫ４〜ＢＫ７に対し、パーシャルセルフリフレッシュする。その際、セグメントにより確保する確保容量ＣＰを、第１容量（最大記憶容量の２分の１）に設定し、セグメントの使用する数を２倍にする必要がある。
【０２７６】
以上説明した、ＪＰＥＧ画像の再生処理では、復号された画像データを表示する処理である。また、上記の再生処理では、表示対象ＹＣデータ読出し処理がほとんどの時間を占めているため、効果的にＤＲＡＭ２００の消費電力を抑えることが可能となる。
【０２７７】
上記の画像処理装置２０００のメモリ管理ユニット１００は、ＤＲＡＭ２００を外部メモリとして使用する。この場合、メモリ管理ユニット１００は、外部メモリの大部分をワークメモリとして使用することが多くなる。
【０２７８】
例えば、前述した画像処理装置２０００（例えば、カメラ）では、処理前に画像データを記憶するためのメモリ領域を１フレーム分確保し、処理が終了次第、そのメモリ領域を開放することを繰り返し行われる。そのため、上記画像処理装置２０００では、メモリの確保領域合計容量が随時増減する。そのため、画像処理装置２０００が行う再生処理において、本発明が有効である。
【０２７９】
なお、画像処理装置２０００は、データ記憶装置１０００の代わりにデータ記憶装置１０００Ａを備えていてもよい。この場合、上記再生処理は、メモリ管理ユニット１００Ａを利用して行われる。なお、メモリ管理ユニット１００Ａを利用して行われる再生処理は、図１２、図１３で説明した再生処理と同様なので詳細な説明は繰り返さない。
【０２８０】
すなわち、画像処理装置２０００は、メモリ管理ユニット１００またはメモリ管理ユニット１００Ａを利用して画像処理を行う。
【０２８１】
（機能ブロック図）
図１４は、メモリ管理ユニット４００の特徴的な機能構成を示すブロック図である。メモリ管理ユニット４００は、メモリ管理ユニット１００またはメモリ管理ユニット１００Ａに相当する。つまり、図１４は、メモリ管理ユニット１００またはメモリ管理ユニット１００Ａの有する機能のうち、本発明に関わる主要な機能を示すブロック図である。なお、図１４には、説明のために、メモリ４２０も示される。
【０２８２】
メモリ４２０は、バンクインターリーブによるアクセスに対応するメモリである。メモリ４２０は、ｐ（２以上の整数）個のバンクを含む。メモリ４２０は、ＤＲＡＭ２００に相当する。
【０２８３】
メモリ管理ユニット４００は、メモリ４２０の状態を管理する。
【０２８４】
メモリ管理ユニット４００は、機能的には、制御部４１０を備える。
【０２８５】
制御部４１０は、メモリ４２０の前記ｐ個のバンクのうち、アクセス対象のバンクを動的に決定する処理を行う。
【０２８６】
また、制御部４１０は、さらに、前記メモリ４２０の確保状態に関する所定条件が満たされた場合であって、かつ、前記ｐ個のバンクのうちアクセス対象でない未使用バンクが存在する場合、該未使用バンクの消費電力を、該未使用バンク以外のバンクより低くするよう前記メモリを制御する消費電力低減処理を行う。制御部４１０は、制御部１２０または制御部１２０Ａに相当する。
【０２８７】
なお、メモリ管理ユニット４００に含まれるは制御部４１０は、ＬＳＩ（Large Scale Integration：大規模集積回路）等のハードウエアで構成されてもよい。また、制御部４１０は、ＣＰＵ等のプロセッサにより実行されるプログラムのモジュールであってもよい。
【０２８８】
以上、本発明におけるメモリ管理ユニット又はデータ記憶装置について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、あるいは異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０２８９】
また、上記のメモリ管理ユニットを構成する複数の構成要素の全てまたは一部は、ハードウエアで構成されてもよい。また、上記のメモリ管理ユニットを構成する構成要素の全てまたは一部は、ＣＰＵ（Central Processing Unit）等により実行されるプログラムのモジュールであってもよい。
【０２９０】
また、上記のメモリ管理ユニット１００またはメモリ管理ユニット１００Ａを構成する複数の構成要素の全てまたは一部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されてもよい。システムＬＳＩは、複数の構成要素を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）などを含んで構成されるコンピュータシステムである。
【０２９１】
例えば、メモリ管理ユニット１００またはメモリ管理ユニット１００Ａは、１個のシステムＬＳＩ（集積回路）から構成されてもよい。すなわち、メモリ管理ユニット１００またはメモリ管理ユニット１００Ａは、集積回路であってもよい。
【０２９２】
また、本発明は、メモリ管理ユニット１００またはメモリ管理ユニット１００Ａが備える特徴的な構成部の動作をステップとするメモリ管理方法として実現してもよい。また、本発明は、そのようなメモリ管理方法に含まれる各ステップをコンピュータに実行させるプログラムとして実現してもよい。また、本発明は、そのようなプログラムを格納するコンピュータ読み取り可能な記録媒体として実現されてもよい。また、当該プログラムは、インターネット等の伝送媒体を介して配信されてもよい。
【０２９３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０２９４】
本発明は、バンクインターリーブによるアクセスが行われる装置であって、低消費電力化が求められる装置において有用である。
【符号の説明】
【０２９５】
１００，１００Ａ，４００  メモリ管理ユニット
１１０  アドレス変換回路
１２０，１２０Ａ，４１０  制御部
１２１，１２１Ａ  セグメント設定部
１２２  消費電力制御部
１２３  メモリ容量監視部
１２４，１２４Ａ  容量設定部
２００  ＤＲＡＭ
２１０  ＤＲＡＭ制御回路
３０１  ＣＰＵ
４２０  メモリ
１０００，１０００Ａ  データ記憶装置
２０００  画像処理装置
【図１】
0005613242.tif 000002
【図２】
0005613242.tif 000003
【図３】
0005613242.tif 000004
【図４】
0005613242.tif 000005
【図５】
0005613242.tif 000006
【図６】
0005613242.tif 000007
【図７】
0005613242.tif 000008
【図８】
0005613242.tif 000009
【図９】
0005613242.tif 000010
【図１０】
0005613242.tif 000011
【図１１】
0005613242.tif 000012
【図１２】
0005613242.tif 000013
【図１３】
0005613242.tif 000014
【図１４】
0005613242.tif 000015