(57)【要約】 【課題】インターリーブ領域と非インターリーブ領域が混在するメモリ空間において、バンクを単位とした電源のオン、オフにより消費電力の低減を実現する。【解決手段】不揮発性メモリからなる複数のバンクで構成された記憶領域へのアクセスを制御するメモリ制御装置は、複数のバンクのうち、一部のバンクをインターリーブ領域とし、他のバンクを非インターリーブ領域としてアクセスする。メモリ制御装置は、複数のバンクへの電源供給を、インターリーブ領域を構成するバンクと非インターリーブ領域を構成するバンクとで個別に制御する。【選択図】  図２
2014021859.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリからなる複数のバンクで構成された記憶領域へのアクセスを制御するメモリ制御装置であって、
前記複数のバンクのうち、一部のバンクをインターリーブ領域とし、他のバンクを非インターリーブ領域としてアクセスするメモリアクセス手段と、
前記複数のバンクへの電源供給を、前記インターリーブ領域を構成するバンクと前記非インターリーブ領域を構成するバンクとで個別に制御する電源制御手段と、を備えることを特徴とするメモリ制御装置。
【請求項２】
前記電源制御手段は、前記インターリーブ領域においては、該インターリーブ領域を構成する全てのバンクを単位として電源供給を制御することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記電源制御手段は、前記非インターリーブ領域においては、該非インターリーブ領域を構成するバンクのそれぞれについて個別に電源供給を制御することを特徴とする請求項１または２に記載のメモリ制御装置。
【請求項４】
前記複数のバンクの各々についてインターリーブ領域と非インターリーブ領域のいずれに設定されているかを示す設定情報を保持する保持手段を更に備え、
前記電源制御手段は、前記設定情報を参照して前記複数のバンクの各々への電源供給を制御することを特徴とする請求項１に記載のメモリ制御装置。
【請求項５】
前記電源制御手段は、前記インターリーブ領域への未アクセス時間が所定時間を超えた場合に、該インターリーブ領域を構成するバンクへの電源供給をオフにすることを特徴とする請求項１乃至４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記複数のバンクの夫々について未アクセス時間を監視する監視手段を更に備え、
前記電源制御手段は、前記インターリーブ領域を構成する全てのバンクの未アクセス時間が前記所定時間を超える場合に、前記インターリーブ領域を構成するバンクへの電源供給をオフにすることを特徴とする請求項５に記載のメモリ制御装置。
【請求項７】
前記電源制御手段は、前記監視手段により前記インターリーブ領域を構成するバンクのいずれかにおいてアクセスの発生が検出された場合に、該インターリーブ領域の全てのバンクの電源供給をオンにすることを特徴とする請求項６に記載のメモリ制御装置。
【請求項８】
前記非インターリーブ領域に、待機動作の実行中にもアクセスが必要なプログラムが配置され、前記インターリーブ領域に前記待機動作の実行中にはアクセスが不要なデータが配置されることを特徴とする請求項１乃至７のいずれか１項に記載のメモリ制御装置。
【請求項９】
不揮発性メモリからなる複数のバンクで構成された記憶領域へのアクセスを制御するメモリ制御装置によるメモリ制御方法であって、
メモリアクセス手段が、前記複数のバンクのうち、一部のバンクをインターリーブ領域とし、他のバンクを非インターリーブ領域としてアクセスする工程と、
電源制御手段が、前記複数のバンクへの電源供給を、前記インターリーブ領域を構成するバンクと前記非インターリーブ領域を構成するバンクとで個別に制御する工程と、を有することを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
不揮発性メモリによる記憶領域へのアクセスを制御するメモリ制御装置および方法に関する。
【背景技術】
【０００２】
近年、磁性体を用いた磁気抵抗メモリ（Magnetoresistive Random Access Memory、以下ＭＲＡＭと称する）が注目されている。ＭＲＡＭは磁気によって情報を記憶するメモリであり、不揮発性であるとともに、スタティックＲＡＭ（以下ＳＲＡＭと称する）並みの高速なアクセス性能を実現している。これらの特徴により、将来ダイナミックＲＡＭ（以下ＤＲＡＭと称する）の代わりに利用することも可能であると同時に、ＳＲＡＭやＤＲＡＭでは実現できない、電源オフでも記憶を維持し続けるメモリシステムを構成出来る。また記憶は磁性効果によって維持される仕組みである為、記憶部にフリップフロップ回路を用いるＳＲＡＭのように回路が複雑化することも無く、大容量化も容易である。
【０００３】
不揮発性メモリを用いて装置のメインメモリを構成する例として、特許文献１の無線装置に関する提案がある。特許文献１によれば、電源ＯＦＦでも記憶状態を維持するＭＲＡＭを装置のメインメモリとして使用することで、揮発性メモリの量を削減し電力消費を低減できるといった効果が得られることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２６９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の構成によれば、ＭＲＡＭにより構成された２つのメインメモリを切り替えて用いるため、使用中でない方のメインメモリの電源をオフすることで省電力を図ることができる。しかしながら、特許文献１には、使用中のメインメモリにおいて、記憶領域のうちの一部の領域（例えば、メモリバンク）への電源供給をオフにして省電力を図るという着想はない。一般に、メモリシステムにおいて、メモリ領域内におけるデータやプログラムの配置は複雑である。例えばメモリ領域が複数のメモリバンク（以下、バンクともいう）によって構成されている場合にはプログラムやデータが複数のバンクに跨って配置されることも有り得る。また一つのバンクにプログラムやデータが混在している可能性もある。特に、データの読出しや書込みを高速化するべくインターリーブ方式のメモリアクセスを採用した場合には、その複雑さが増す。したがって、これらのようなケースに於いて、どのバンクが電源オン・オフ制御可能であるかを正確に判断することは極めて困難である。そのため、バンク単位での電源のオン、オフによる省電力化の実現は困難であった。
【０００６】
本発明は上記の課題に鑑みてなされたものであり、インターリーブ領域と非インターリーブ領域が混在するメモリ空間において、バンクを単位とした電源のオン、オフにより消費電力の低減を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明の一態様によるメモリシステムは以下の構成を備える。すなわち、
不揮発性メモリからなる複数のバンクで構成された記憶領域へのアクセスを制御するメモリ制御装置であって、
前記複数のバンクのうち、一部のバンクをインターリーブ領域とし、他のバンクを非インターリーブ領域としてアクセスするメモリアクセス手段と、
前記複数のバンクへの電源供給を、前記インターリーブ領域を構成するバンクと前記非インターリーブ領域を構成するバンクとで個別に制御する電源制御手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、インターリーブ領域と非インターリーブ領域が混在するメモリ空間において、バンクを単位とした電源のオン、オフにより消費電力の低減を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】一般的なインターリーブ構成を説明する図。
【図２】（Ａ）は第一実施形態によるメモリシステム構成例を示す図、（Ｂ）はバンク電源制御レジスタを説明する図、（Ｃ）はインターリーブ設定レジスタを説明する図。
【図３】（Ａ）は第一実施形態におけるバンク電源制御レジスタの設定状態を示す図、（Ｂ）はインターリーブ設定レジスタの設定状態を示す図、（Ｃ）はインターリーブ構成を説明する図。
【図４】（Ａ）は第二実施形態におけるバンク電源制御レジスタの設定状態を示す図、（Ｂ）はインターリーブ設定レジスタの設定状態を示す図、（Ｃ）はインターリーブ構成を説明する図。
【図５】（Ａ）は第三実施形態によるメモリシステム構成例を示す図、（Ｂ）はタイマ設定レジスタを示す図。
【図６】（Ａ）はバンク２１０の物理及び論理アドレスを示す図、（Ｂ）はバンク２１３の物理及び論理アドレスを示す図、（Ｃ）はバンク２１１、２１２の物理及び論理アドレスを示す図、（Ｄ）はバンク２１１、２１２の物理及び論理アドレスを示す図。
【図７】図６に示したバンク２１０、２１１、２１２、２１３の物理及び論理アドレスを示す図。
【図８】バンク電源制御レジスタの更新処理の例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態のいくつかについて図面を参照しながら説明する。
【００１１】
［第一実施形態］
実施形態の構成及び効果に言及するに先立って、まず本提案が課題としている構成について説明する。
【００１２】
メモリインターリーブ（以下インターリーブと称する）は、ＣＰＵがメモリに対してアクセス要求を行ってから実際にデータを読み出したり、データの書込みを完了したりするまでのレイテンシを削減し、メモリアクセスを高速化する上で重要な仕組みである。インターリーブでは、複数のメモリバンクに跨って連続したアドレスを交互に振っておき、あるバンクのデータにアクセスする遅延時間の最中に次のバンクのアドレスへのアクセス要求が発行される。そのため、時間を有効利用することができ、メモリアクセス効率が向上する。
【００１３】
インターリーブを構成した場合、たとえば、図１に示すようなメモリ空間の利用が考えられる。図１では、バンク１００〜１０３の４つのバンクを利用したインターリーブの例を示している。メモリ上に配置されるプログラム１１０が複数のバンク（バンク１０１、１０２）に跨り、且つこのプログラムによって使用されるデータ１２０が複数のバンク（バンク１００、１０１、１０３）に跨るように配置されている。ここで例えばデータ１２０が、ＣＰＵやその他周辺デバイスとの間で高速アクセスを要する場合、インターリーブの特性により高速アクセスが実現可能になる。
【００１４】
ここで不揮発性メモリ（例えば、ＭＲＡＭ）によるメモリシステムでインターリーブを構成する場合について考える。不揮発性メモリは電源オフでも記憶を維持し続ける。その為、例えば装置の特定の状態に於いてデータやプログラムの部分若しくは全体が未使用状態である場合には、未使用状態のデータ若しくはプログラムが格納されているバンクの電源を一時的に切り、必要に応じて電源供給をオンにするといった使い方が可能になる。このような電源制御は省電力に貢献することが明らかである。
【００１５】
次にこのメモリシステムに於いて、必要に応じてバンクへの電源供給のオン・オフを切り替える場合の、より効率的なプログラム及びデータの配置方法について考える。図１は不揮発性メモリで構成されるバンク１００、１０１、１０２、１０３から成るメモリ領域において、全てのバンクがインターリーブ構成になっている状態を示している。命令コード１１１、１１２から成るプログラム１１０、及びデータ片１２１、１２２、１２３から成るデータ１２０が図１のように配置されている場合を考える。この場合、不図示のＣＰＵやその他周辺デバイスからのデータ１２０に対するアクセスが一時的に無い状態の時には、データ１２０の格納バンクに関しては電源オフにして電力を削減することができる。
【００１６】
このとき、バンク１００及び１０３に配置されているのは夫々データ片１２２、１２１のみでありプログラム１１０の命令コードのいずれも含まれていない。その為、一時的にデータ１２０へのアクセスが無い場合にこれらバンク１００、１０３の電源をオフにしてもプログラム１１０の実行に支障は無い。しかしながらバンク１０１にはデータ片１２３だけでなくプログラム１１０の命令コード１１１も配置されている。よって、このプログラム１１０の稼動中にバンク１０１の電源オフを実施すると、プログラム１１０の実行に支障をきたしてしまう為、データ１２０へのアクセスが無い場合でもバンク１０１の電源をオフにすることは出来ない。
【００１７】
次に、本実施形態のメモリ制御装置としてのメモリアクセス装置について、図２を用いて説明する。図２（Ａ）は本実施形態によるメモリアクセス装置を含むメモリシステム周辺の構成例を示すブロック図である。ＣＰＵ２００はメモリに対して読み出しや書き込みアクセスを行う中央処理回路であり、バンク２１０、２１１、２１２、２１３は不揮発性メモリから成るメモリバンクである。メモリ制御部２２０は、バンク２１０、２１１、２１２、２１３によって構成されるメモリ領域へのメモリアクセス制御を行なう回路である。バンク電源制御部２２１はバンク２１０、２１１、２１２、２１３の電源オン・オフ状態を設定するレジスタを備えた制御回路である。インターリーブ設定部２２２は各バンクをインターリーブ領域として扱うか、若しくは非インターリーブ領域として扱うかを設定する回路である。
【００１８】
バンク電源制御線２３０はバンク電源制御部２２１からバンク２１０、２１１、２１２、２１３の夫々に接続され、バンク電源制御部２２１に設定された各バンクの電源オン・オフ状態を元に、各バンクの電源を制御するための信号線である。メモリバス２４０はメモリ制御部２２０とバンク２１０、２１１、２１２、２１３を接続し、メモリアクセスのためのアドレス線とデータ線及び制御線からなるバスである。システムバス２５０はＣＰＵ２００とメモリ制御部２２０若しくは不図示の周辺デバイスとを接続するバスである。
【００１９】
図２（Ｂ）は、バンク電源制御部２２１が有するバンク電源制御レジスタ２６０を示す。バンク電源制御レジスタ２６０は、複数のバンクの各々について電源供給をオンするかオフするかを示す情報を保持する。この実施形態では、バンク電源制御レジスタ２６０は４ビットから成り、ビット０、１、２、３の夫々がバンク２１０、２１１、２１２、２１３に対応する。バンク電源制御部２２１は、バンク電源制御レジスタ２６０のビットの値が０の時はそのビットに対応するバンク電源の供給をオフに、１の時にはそのビットに対応するバンク電源の供給をオンにする。
【００２０】
図２（Ｃ）にインターリーブ設定部２２２が有するインターリーブ設定レジスタ２７０を示す。インターリーブ設定レジスタは、複数のバンクの各々についてインターリーブ領域と非インターリーブ領域のいずれに設定されているかを示す設定情報を保持する。この実施形態では、インターリーブ設定レジスタ２７０は４ビットから成り、ビット０、１、２、３の夫々がバンク２１０、２１１、２１２、２１３に対応する。インターリーブ設定部２２２は、インターリーブ設定レジスタ２７０のビットの値が０の時はそのビットに対応するバンクは非インターリーブ領域として、１の時にはそのビットに対応するバンクはインターリーブ領域としてアクセスするようアドレスを設定する。なお、インターリーブ領域、非インターリーブ領域におけるアドレスの設定は、図３（Ｃ）において詳述する。
【００２１】
次に、図２で説明したメモリシステムで実際にインターリーブ設定を行い、且つ各バンクの電源制御を行う例を図３（Ａ）、（Ｂ）及び（Ｃ）を用いて説明する。図３（Ａ）は、図２（Ｂ）で説明したバンク電源制御レジスタ２６０のビット０〜３を全て１に設定した状態を示している。この場合、バンク電源制御部２２１は、バンク２１０〜２１３の全てのバンクへの電源供給をオン状態とし、全てのバンクに電源が供給されるようにする。また、図３（Ｂ）は、図２（Ｃ）で説明したインターリーブ設定レジスタ２７０のビット０及び１に０を、ビット２及び３に１を設定した状態を示している。この場合、バンク２１０、２１１が非インターリーブに、バンク２１２、２１３がインターリーブに設定される。
【００２２】
更に、図３（Ｃ）は、図１の説明で示した４つの不揮発性メモリで構成されるバンク２１０、２１１、２１２、２１３から成る非インターリーブ領域及びインターリーブ領域の構成を示している。本実施形態では、インターリーブ設定レジスタ２７０により、バンク毎にインターリーブ、非インターリーブを設定できる。そのため、複数のバンク２１０〜２１３により構成される記憶領域のうちの一部をインターリーブ領域に、他の領域を非インターリーブ領域に設定することができる。図３（Ａ）のバンク電源制御レジスタ２６０の設定に基づき、図３（Ｃ）のバンク２１０、２１１、２１２、２１３の夫々の電源がオン状態になっている。また図３（Ｂ）のインターリーブ設定レジスタ２７０の設定に基づき、バンク２１０、バンク２１１は非インターリーブ領域３００を、またバンク２１１、バンク２１２はインターリーブ領域３０１を構成する。
【００２３】
図３（Ｃ）において、アドレス３０００〜３００７は非インターリーブ領域３００内に割り当てられる論理アドレスであり、このアドレスはバンクを跨ぐこと無くバンク２１０の先頭から終端、続いてバンク２１１の先頭から終端の順に割り当てられる。またアドレス３００８〜３０１５はインターリーブ領域内に割り当てられた論理アドレスであり、この論理アドレスは各バンクに交互に跨るように割り振られる。
【００２４】
なお、図３の例では、バンク２１２とバンク２１３の２つがインターリーブに設定されている様子を示したが、３つ以上のバンクがインターリーブに設定されてもよい。例えば、インターリーブ設定レジスタ２７０のビット１〜３に１が設定されると、バンク２１１〜２１３の３つのバンクがインターリーブで動作するようになる。また、図３に示した複数のインターリーブ領域を設定できるようにしてもよい。すなわち、図３（Ｃ）において、非インターリーブ領域３００をインターリーブとして設定できるようにしてもよい。その場合、インターリーブ設定レジスタ２７０は、インターリーブ領域を識別できるように、各バンクについて２ビット以上の深さを有するように構成される必要がある。例えば、各バンクに対応して２ビットを設ければ、「０：非インターリーブ領域」、「１：インターリーブ領域Ａ」、「２：インターリーブ領域Ｂ」、「３：インターリーブ領域Ｃ」というように、独立したインターリーブ領域を３つまで設定することが可能となる。
【００２５】
図３（Ｃ）において、プログラム３２０は命令コード３２１及び命令コード３２２から成るプログラムコードであり、ＣＰＵ２００によって実行される。本実施形態ではプログラム３２０は非インターリーブ領域３００のバンク２１０に配置されている。データ３３０はＣＰＵ２００による読出しや書込みが可能なデータである。本実施形態では、バンク２１２及び２１３に跨るように格納されたデータの各部分を夫々データ片３３１、データ片３３２、データ片３３３とする。
【００２６】
今、ＣＰＵ２００はプログラム３２０を実行しており、かつプログラム３２０はデータ３３０に関して読出し若しくは書込みアクセスを伴う処理を有しているものとする。データ３３０はインターリーブ領域３０１に格納されている為、ＣＰＵ２００からの読み出し及び書き込みに関してレイテンシの少ない高速なアクセスが可能である。
【００２７】
ここでＣＰＵ２００が実行しているプログラム３２０は、図８のフローチャートで示されるバンク電源制御レジスタ２６０の更新処理を含む。すなわち、ステップＳ８０１において、ＣＰＵ２００は、実行中のプログラムからデータ３３０へのアクセスが発生しない状態になるのを待つ。例えば、実行中のプログラム３２０のメイン処理がアイドル状態（例えば、装置が省電力のための待機状態）になり、データ３３０に対するアクセスが無い状態になったとする。この場合、もはやインターリーブ領域３０１に対する一切のアクセスが発生しない為、インターリーブ領域３０１に含まれるバンク２１２及び２１３の電源をオフすることが可能である。したがって、データ３３０へのアクセスが発生しない状態になったと判定されると、処理はステップＳ８０２に進み、ＣＰＵ２００は、バンク電源制御レジスタ２６０のビット２及び３（インターリーブ領域のバンクに対応したビット）を０に書き換える。バンク電源制御レジスタ２６０がこのように更新されると、バンク電源制御部２２１は、バンク２１２及び２１３の電源をオフ状態とする。
【００２８】
その後、ステップＳ８０３においてＣＰＵ２００はデータ３３０へのアクセスが発生する状態に復帰するのを待つ。例えば、実行中のプログラム３２０のメイン処理がアイドル状態から通常状態に復帰すると処理はステップＳ８０４へ進む。ステップＳ８０４において、ＣＰＵ２００は、ステップＳ８０２で０に書き換えたビット（本例では、インターリーブ領域のバンクに対応したビット２及び３）を１に書き換える。バンク電源制御レジスタ２６０がこのように更新されると、バンク電源制御部２２１は、バンク２１２及び２１３の電源をオン状態とする。各バンクは全て不揮発性メモリである為、電源オフの状態でもインターリーブ領域３０１に配置されているデータ３３０は消える事は無い。従ってバンク電源制御レジスタ２６０のビット２及び３を１に書き戻すことでバンク２１２及び２１３の電源をオンにすれば、再びデータ３３０を読み出すことが出来る。
【００２９】
なお、上記第１実施形態ではプログラムを非インターリーブ領域に、データをインターリーブ領域に配置したが、実際の利用にあたっては必ずしもこの配置に限定されるものでは無い。また本実施形態では実運用中にデータへのアクセスが不要になったケースに言及し、データが格納されているインターリーブ領域の電源をオン・オフする例を示した。しかしながら、必ずしもインターリーブ領域だけが電源オン・オフの対象に限定されるものではなく、実際の適用形態に応じて非インターリーブ領域が電源オン・オフされてもよいことは明らかである。すなわち、複数のバンクのうちの一部をインターリーブ領域、他のバンクを非インターリーブ領域として使用する構成において、インターリーブ領域を構成するバンクと非インターリーブ領域を構成するバンクとで個別に電源供給が制御されるようにすればよい。また、非インターリーブ領域への電源供給の制御は、非インターリーブ領域を構成する全てのバンクを一括して電源供給のオン、オフを行なってもよいし、非インターリーブ領域を構成する個々のバンクに対して個別に電源供給のオン、オフを行なってもよい。さらに、ＣＰＵ２００が非インターリーブ領域３００及びインターリーブ領域３０１へアクセスした場合について説明しているが、必ずしもＣＰＵからのアクセスに限定するものではない。例えばＤＭＡコントローラ等の不図示の周辺デバイスからのアクセスであってもよい。
【００３０】
バンク電源制御レジスタ２６０に関しては、各ビットの論理として０で電源オフ、１で電源オンとしたが、必ずしもこの論理に限定するものではなく、例えば０で電源オン、１で電源オフとしてもよい。同様に、インターリーブ設定レジスタ２７０に関しては、各ビットの論理として０で非インターリーブ設定、１でインターリーブ設定としたが、必ずしもこの論理に限定するものではなく、例えば０でインターリーブ設定、１で非インターリーブ設定としてもよい。また、本実施形では、バンク電源制御部２２１はメモリ制御部２２０に内蔵しているが、本発明はこのような形態に限られるものではなく、例えば他の周辺回路内にバンク電源制御部２２１が存在してもよい。
【００３１】
以上のように、第一実施形態によれば、インターリーブ領域と非インターリーブ領域とが混在する構成において、バンクを単位とした電源供給が適切に制御され、省電力効果を向上させることができる。
【００３２】
［第二実施形態］
第一実施形態では、４つのバンクから成るメモリ領域を１つの非インターリーブ領域と１つのインターリーブ領域の２つの領域に分割するケースについて述べた。第二実施形態ではメモリ領域内に２つの非インターリーブ領域と１つのインターリーブ領域が混在するケースについて説明する。以下、図２で説明したメモリシステムにおいて、２つの非インターリーブ領域を設定し、各バンクの電源制御を行う例を図４（Ａ）、（Ｂ）及び（Ｃ）を用いて説明する。
【００３３】
図４（Ａ）は、図２（Ｂ）で説明したバンク電源制御レジスタ２６０のビット０〜３を全て１に設定した状態を示している。図４（Ｂ）は、図２（Ｃ）で説明したインターリーブ設定レジスタ２７０のビット０及び３に０を、ビット１及び２に１を設定した状態を示している。図４（Ｃ）は、図１及び第一実施形態で説明したものと同じ不揮発性メモリで構成されるバンク２１０、２１１、２１２、２１３から成る非インターリーブ領域及びインターリーブ領域の構成を示している。
【００３４】
図４（Ｃ）に示されるように、図４（Ｂ）のインターリーブ設定レジスタ２７０の設定に基づき、バンク２１０は非インターリーブ領域４００を、バンク２１１及び２１２はインターリーブ領域４０１を、またバンク２１３は非インターリーブ領域を構成する。また図４（Ａ）のバンク電源制御レジスタ２６０の設定に基づき、バンク２１０、２１１、２１２、２１３の夫々の電源がオン状態になっている。
【００３５】
図４（Ｃ）において、アドレス４０００〜４００３は非インターリーブ領域４００に、アドレス４００４〜４０１１はインターリーブ領域４０１に、アドレス４０１２〜４０１５は非インターリーブ領域４０２に、割り当てられる論理アドレスである。ここでアドレス４００４〜４０１１はインターリーブ領域４０１内のバンク２１１及び２１２に交互に跨るように割り当てられる。
【００３６】
プログラム３２０及びデータ３３０は第一実施形態で説明したものと同様である。第二実施形態では、データ３３０はインターリーブ領域４０１に配置される。すなわちバンク２１１及び２１２に跨るように格納される。スタック領域４１３は、プログラム３２０によって管理され使用されるスタックメモリである。このスタック領域４１３は、プログラム３２０が実行される際の一時的な情報の退避及び参照に常時用いられる。
【００３７】
今、ＣＰＵ２００はプログラム３２０を実行しており、かつプログラム３２０はデータ３３０に対し読出し若しくは書込みアクセスを伴う処理を有しているものとする。データ３３０はインターリーブ領域４０１に格納されている為、ＣＰＵ２００からの読み出し及び書き込みに関してレイテンシの少ない高速なアクセスが可能である。プログラム３２０は、更に、図８のフローチャートにより上述した処理（バンク電源制御レジスタ２６０の更新処理）を実行する。その結果、以下のような動作が実現される。
【００３８】
ＣＰＵ２００が実行しているプログラム３２０がアイドル状態になり、データ３３０に対するアクセスが無い状態になったとする。この場合、もはやインターリーブ領域４０１に対する一切のアクセスが発生しない為、インターリーブ領域４０１に含まれるバンク２１１及び２１２の電源をオフすることが可能である。ここでＣＰＵ２００がバンク電源制御レジスタ２６０のビット１及び２を０に書き換えると、バンク２１１及び２１２の電源がオフ状態になる。スタック領域４１３は、プログラム３２０がアイドル動作中も常時使用されているため、バンク２１０同様、バンク２１３についても電源はオン状態を維持しておく。
【００３９】
以上のように、第二実施形態によれば、待機動作の実行中にアクセスが必要なプログラムやデータを非インターリーブ領域に保持し、待機動作の実行中にアクセスが不要なプログラムやデータをインターリーブ領域に保持するようにした。そのため、待機動作中においてインターリーブ領域への電源供給を停止することができ、省電力効果を向上させることができる。なお、待機動作中にアクセス可能な領域を非インターリーブ領域、待機動作中にアクセス不能な領域をインターリーブ領域としたが、これに限られるものではない。待機動作中に電源供給をオフする領域を非インターリーブ領域としてもよい。更に、図３（Ｃ）の３００で示した領域をインターリーブ領域３０１とは独立したインターリーブ領域に設定し、それぞれのインターリーブ領域について個別に電源供給を制御するようにしてもよい。その場合、待機動作中にもアクセスの必要なプログラムやデータを高速アクセスが可能なインターリーブ領域（図３（Ｃ）の３００の領域）に配置し、待機動作中も電源が供給されるように構成できる。
【００４０】
各バンクは全て不揮発性メモリである為、電源オフの状態でもインターリーブ領域４０１に配置されているデータ３３０は消える事は無い。従ってバンク電源制御レジスタ２６０のビット１及び２を１に書き戻すことでバンク２１１及び２１２の電源をオンにすれば、再びデータ３３０を読み出すことが出来る。
【００４１】
このように、一時的に動作不要なバンクについて電源オフ状態にすることで、消費電力を削減することが可能である。また不揮発性メモリである為、バンクの電源を再度オン状態にするだけで、一切の書き戻し作業を必要とせずに、バンク内の記憶を参照することができる。その為、例えば上記例のようにアイドル動作時にこの仕組みを使用するプログラムなどでは、待機動作から通常動作への状態遷移が速くなる。
【００４２】
［第三実施形態］
第一実施形態及び第二実施形態では、各バンクへのメモリアクセス要・不要の状態に応じて、ＣＰＵ２００からバンク電源制御レジスタ２６０を書き換えることで、各バンクの電源制御を行なう方法について説明した。先の方法ではＣＰＵ２００によって実行中のプログラムが、データの使用状態を把握していた。そして一時的にデータアクセスが不要になった場合には、プログラムによるソフトウェア処理（レジスタ書き換え）を行って、データを配置しているバンクを電源オフした。またデータアクセスが必要になった場合は、再度プログラムがソフトウェア処理を行って当該バンクの電源をオンするという仕組みであった。第三実施形態では各バンクの電源オン・オフ制御を、ＣＰＵ２００が実行するプログラムのソフトウェア処理によらずハードウェア処理で実現する方法について説明する。
【００４３】
図５（Ａ）は第三実施形態におけるメモリシステムの構成例を示すブロック図である。メモリ制御部５００では、図２（Ａ）に於けるメモリ制御部２２０に対し、新たにバンクアクセス監視部５１０が追加されている。バンクアクセス監視部５１０は、各バンクへのアクセスが最後に発生してから現在までどのくらいの時間が経過したか、すなわちバンクへの未アクセス時間の経過を、タイマカウンタを用いて監視する回路である。メモリ制御部５００及びバンクアクセス監視部５１０以外の部位に関しては、第一実施形態及び第二実施形態で説明したものと同様である。
【００４４】
図５（Ｂ）はバンクアクセス監視部５１０に内蔵されたタイマ設定レジスタ５２０、５２１、５２２、５２３を示している。タイマ設定レジスタ５２０、５２１、５２２、５２３は各々バンク２１０、２１１、２１２、２１３に対応している。メモリ制御部５００は、夫々のバンクへの未アクセス時間をバンクアクセス監視部５１０で計測しつつ、これらのレジスタのタイマ設定値と比較する。どこからもバンクへのアクセスが無く、バンク未アクセス時間がそのバンクに対応するレジスタ設定値を超えた場合は、メモリ制御部５００は、バンク電源制御レジスタ２６０の当該バンクに対応するビットを０に設定し、当該バンクへの電源供給をオフにする。但し、第一、第二実施形態から明らかなように、インターリーブ領域に関しては個別にバンクの電源供給をオン、オフすることはできない。したがって、インターリーブ領域を構成する全てのバンクへの未アクセス時間がタイマ設定レジスタにより設定された所定時間を超えた場合に、バンク電源制御レジスタ２６０におけるそれらバンクのビットを０に設定する。例えば、図４（Ｃ）のような設定の場合、バンク２１１とバンク２１２における未アクセス時間がそれぞれタイマ設定レジスタ５２１、５２２に設定されている時間を超えた場合に、バンク電源制御レジスタ２６０のビット１とビット２が０に設定される。
【００４５】
その後、電源オフ状態のバンクに対してＣＰＵ２００から読み出し若しくは書き込みアクセスがあった場合、そのバンクアクセスがバンクアクセス監視部５１０により検出される。バンクアクセス監視部５１０により電源オフ状態のバンクへのアクセスが検出されると、メモリ制御部５００はバンク電源制御レジスタ２６０の当該バンクに対応するビットを１に設定することで、当該バンクの電源を再びオンにする。また、バンク電源制御レジスタ２６０の電源オフ状態であったバンクに対応するビットを１に設定するとともに、当該バンクに関わるタイマ計測処理を一旦リセットして再度計測を開始する。
【００４６】
以上のように、第三実施形態によれば、メモリ制御部５００内にバンクへのアクセス状態を監視する仕組みを持たせ、アクセス状態に応じて自動的にバンクへの電源供給をオン・オフするようにした。そのため、ＣＰＵ２００によるアクセス状態監視やプログラム制御による電源オン・オフ処理が不要になり、システムを効率化することができる。
【００４７】
なお第三実施形態では電源供給のオン及びオフ処理の両方をバンクアクセス監視部５１０とバンク電源制御部２２１によるハードウェア制御で行っているが、必ずしもこの構成に限定するものではない。例えばバンク電源オンはＣＰＵ２００によるソフトウェア処理で行い、バンク電源オフは上述したようなハードウェア制御で行ってもよい。あるいはバンク電源オンはハードウェア制御で行い、バンク電源オフはＣＰＵ２００によるソフトウェア処理（例えば図８の処理）で行うようにしてもよい。
【００４８】
［第四実施形態］
第四実施形態では、第一実施形態、第二実施形態及び第三実施形態で示した構成におけるメモリ領域内の任意の論理アドレスが、いずれのバンクの何処の物理アドレスに対応付けられるかを求める方法の一例について述べる。
【００４９】
第二実施形態で説明した図４（Ｃ）を例にして説明する。まず図４（Ｃ）のバンク２１０、２１１、２１２及び２１３について夫々のバンク内の物理アドレス、すなわちＲＯＷアドレス及びＣＯＬＵＭＮアドレスを想定する。ここでは説明を簡便にするために各バンクともＲＯＷアドレス数が２、ＣＯＬＵＭＮアドレス数が２とする。従って各バンクはＲＯＷアドレス数×ＣＯＬＵＭＮアドレス数＝４アドレス構成となる。
【００５０】
次に、非インターリーブ領域４００のバンク２１０に割り当てられた論理アドレス４０００、４００１、４００２及び４００３と、バンク内の物理アドレスの対応付けについて考える。バンク２１０内の物理アドレスをバンク番号、ＲＯＷアドレス、ＣＯＬＵＭＮアドレスで表し、論理アドレスとの対応関係を整理すると、図６（Ａ）のような対応関係になる。同様に非インターリーブ領域４０２内のバンク２１３についても、バンク番号、ＲＯＷ及びＣＯＬＵＭＮアドレスと論理アドレスに関して、図６（Ｂ）のような対応関係が得られる。
【００５１】
さらにインターリーブ領域４０１内のバンク２１１及び２１２について考える。先の図４（Ｃ）に示したように、バンク２１１及び２１２はインターリーブ領域を構成している為、論理アドレスは各バンクを跨るように交互にアドレスされる。即ちバンク２１１にはアドレス４００４、４００６、４００８、４０１０が、またバンク２１２にはアドレス４００５、４００７、４００９、４０１１が割り当てられる。この状態において、各バンク内のＲＯＷ及びＣＯＬＵＭＮアドレスと論理アドレスの対応関係は図６（Ｃ）のようになる。これを論理アドレス順に再整理したものが図６（Ｄ）である。
【００５２】
図７は、上記の図６（Ａ）、（Ｂ）、及び（Ｄ）を論理アドレス順にひとつにまとめたテーブルであり、論理アドレスを物理アドレスにマッピングするルックアップテーブル（以下ＬＵＴと証する）である。例えばこのＬＵＴをメモリ制御部２２０に内蔵すれば、ＣＰＵ２００若しくは不図示の周辺デバイスから発生する任意の論理アドレスを、このＬＵＴを参照して物理アドレス（バンク番号、ＲＯＷ及びＣＯＬＵＭＮ）に変換することが出来る。
【００５３】
なお、実際の構成においては、上述のようにあらかじめ論理アドレスと物理アドレスの対応関係を求めておき、ＬＵＴとしてメモリ制御部２２０の中に内蔵してもよい。あるいは論理アドレスと物理アドレスの対応関係に算術的な規則性が存在するならば、論理アドレスから物理アドレスへ変換する演算処理によってＬＵＴを生成してもよい。若しくはＬＵＴそのものを持たず、メモリアクセス発生の都度、論理アドレスから物理アドレスへ変換する演算処理を動的に行って、論理アドレスと物理アドレスの対応関係を求めてもよい。本提案は、これら論理アドレスと物理アドレスの対応関係の導出の仕方について限定するものではない。
【００５４】
以上のように、上記実施形態によれば、高速アクセスが必要なデータやプログラムを配置するバンクと、低速アクセスでも構わないデータやプログラムを配置するバンクを完全に分離出来る。そして、分離したインターリーブ領域若しくは非インターリーブ領域の何れかが一時的にアクセス不要な場合には各領域を個別に電源オフすることが可能になり、消費電力を削減できる。
【００５５】
なお、上記実施形態では、ＭＲＡＭを用いた構成を示したが、本発明の適用はＭＲＡＭを用いたメモリシステム限られるものではなく、不揮発性メモリを用いたメモリシステム全般において本発明は好適に適用できる。
【００５６】
また、上述したメモリシステムは、デジタルカメラ、ビデオカメラ、携帯電話やタブレットなどの各種情報処理装置、電子機器に用いることができ、上述したメモリシステムが適用された情報処理装置、電子機器も本発明の範疇である。
【００５７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014021859.tif 000003
【図２】
2014021859.tif 000004
【図３】
2014021859.tif 000005
【図４】
2014021859.tif 000006
【図５】
2014021859.tif 000007
【図６】
2014021859.tif 000008
【図７】
2014021859.tif 000009
【図８】
2014021859.tif 000010