(57)【特許請求の範囲】
【請求項１】
アドレスを連結してリニアアクセスを可能とした複数のメモリの、それぞれのメモリのアドレスを監視する監視手段と、
前記複数のメモリのそれぞれがパワーダウン状態から復帰するために要する時間を設定する設定手段と、
前記監視手段により監視されたアドレスと前記設定手段により設定された時間に基づくタイミングで、前記複数のメモリのそれぞれに対してパワーダウン状態を解除する設定を行う制御手段とを有することを特徴とするメモリへのアクセス制御装置。
【請求項２】
前記制御手段は、前記監視手段が、前記複数のメモリのうちのいずれかのメモリの初めにアクセスされるアドレスから、前記設定手段によって設定された時間だけ前にアクセスされるアドレスに対してアクセスがあったと判定した場合に、前記いずれかのメモリに対してパワーダウン状態を解除する設定を行うことを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記複数のメモリはワード長が等しいことを特徴とする請求項１または２に記載のアクセス制御装置。
【請求項４】
前記複数のメモリはワード長が他のメモリと異なるメモリを含むことを特徴とする請求項１または２に記載のアクセス制御装置。
【請求項５】
前記設定手段は、前記複数のメモリに対して設定された動作周波数からカウント数を求め、
前記制御手段は、前記カウント数に基づくタイミングで、前記複数のメモリのそれぞれに対してパワーダウン状態を解除する設定を行うことを特徴とする請求項１乃至４のいずれか１項に記載のアクセス制御装置。
【請求項６】
前記パワーダウン状態とは、クロック信号を非活性化した状態であることを特徴とする請求項１乃至５のいずれか１項に記載のアクセス制御装置。
【請求項７】
前記パワーダウン状態から復帰するとは、前記クロック信号が活性化され、かつ、安定化した状態になることを特徴とする請求項６に記載のアクセス制御装置。
【請求項８】
請求項１乃至７のいずれか１項に記載のアクセス制御装置を有する電子機器。
【請求項９】
アドレスを連結してリニアアクセスを可能とした複数のメモリの、それぞれのメモリのアドレスを監視する監視工程と、
前記複数のメモリのそれぞれがパワーダウン状態から復帰するために要する時間を設定する設定工程と、
前記監視工程において監視されたアドレスと前記設定工程において設定された時間に基づくタイミングで、前記複数のメモリのそれぞれに対してパワーダウン状態を解除する設定を行う制御工程とを有することを特徴とするメモリへのアクセス制御装置の制御方法。
【請求項１０】
コンピュータを請求項１乃至７のいずれか１項に記載のアクセス制御装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリモジュールに対するアクセスを制御する技術に関するものである。
【背景技術】
【０００２】
メモリモジュールの１つであるＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の消費電力を低く抑える手段として、パワーダウン状態に設定する方法知られている。パワーダウン状態とは、クロック信号を非活性化することによってデバイスの消費電力を低く抑える状態のことである。
【０００３】
しかし、パワーダウン状態に設定されている際にデバイスへアクセスが発生した場合には、クロック信号を活性化させてから安定化するまでの遅延であるレイテンシが生じる。
【０００４】
デバイスへのアクセスがない場合に即座にパワーダウン状態に設定することで、低消費電力化を図れることができる。しかしながら、短い期間で頻繁にパワーダウン状態への遷移と通常状態への復帰を行うと、レイテンシが頻繁に発生してしまうため、アクセス応答性という点でかえって性能劣化を生じてしまうことがある。そのため、適切なタイミングでパワーダウン状態と通常状態への切り替えの制御を行うことが必要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−０９０６１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリの非アクセスの期間中にメモリを省電力モードにすることで、消費電力を抑える工夫が必要であるが、次のメモリアクセスがどのタイミングで発生するかを予測することは難しい。
【０００７】
例えば、メモリコントローラが、単一のメモリで新たなバスアクセス要求のあったことを予めバスコントローラから通知してもらうことで、メモリ動作を開始するまでの時間を短縮することができる技術が知られている（例えば、特許文献１を参照）。
【０００８】
しかし、単一のメモリではなく、複数のメモリが混在する場合には、メモリのパワーダウンを制御するためには処理が複雑になってしまうという課題があった。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係るアクセス制御装置は、アドレスを連結してリニアアクセスを可能とした複数のメモリの、それぞれのメモリのアドレスを監視する監視手段と、前記複数のメモリのそれぞれがパワーダウン状態から復帰するために要する時間を設定する設定手段と、前記監視手段により監視されたアドレスと前記設定手段により設定された時間に基づくタイミングで、前記複数のメモリのそれぞれに対してパワーダウン状態を解除する設定を行う制御手段とを有することを特徴とする。
【発明の効果】
【００１０】
発明によれば、複数のメモリが混在する場合に置いても、メモリのパワーダウン状態を適切に制御することにより、静止電力を抑えることとレイテンシを抑圧することを両立することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の位置実施形態に係る電子機器の一部の構成を示す図である。
【図２】本実施形態におけるメモリコントローラ１０１の制御を示すフローチャートである。
【図３】各ＳＲＡＭのＰＤの設定について説明するための図である。
【図４】パワーダウン状態へ切り替える制御がない場合と、ある場合におけるリーク電流の際について説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態について図面を用いて説明する。
【００１３】
図１は、本発明の位置実施形態に係るアクセス制御装置の一部の構成を示す図である。ＳＲＡＭ１、ＳＲＡＭ２、ＳＲＡＭ３およびＳＲＡＭ４といった複数のメモリモジュールが、メモリモジュールに対するアクセスを制御するメモリコントローラ１０１を介して、周辺モジュール１０２に対して接続されている。
【００１４】
各ＳＲＡＭとメモリコントローラ１０１には、クロックとデータとアドレス、ＷＥ（ライトイネーブル）、ＣＥ（チップイネーブル）、ＰＤ（パワーダウン）のポートがつながっている。
【００１５】
図２は、本実施形態におけるメモリコントローラ１０１の制御を示すフローチャートである。図２では、ステップを「Ｓ」と示している。
【００１６】
図２のステップ２０１において、メモリコントローラ１０１はＳＲＡＭ１〜ＳＲＡＭ４の動作周波数を設定する。
【００１７】
ステップ２０２において、メモリコントローラ１０１は、ステップ２０１で設定された動作周波数と各ＳＲＡＭがパワーダウン状態から遷移するために要する時間から、各ＳＲＡＭのパワーダウン状態から通常状態への遷移にかかる最小カウント数を設定する。ここで言うパワーダウン状態とは、上述したように、クロック信号を非活性化することによってデバイスの消費電力を低く抑える状態のことであり、通常状態とは、クロック信号を活性化され、かつ、安定化した状態のことである。例えば、ステップ２０１で設定された動作周波数が２００ＭＨｚ（５ｎｓ／ｃｙｃｌｅ）の場合で、各ＳＲＡＭのレイテンシが１０００ｎｓのとき、最小カウント数は１０００ｎｓ／５ｎｓ＝２００ｃｙｃｌｅとなる。
【００１８】
ステップ２０３にて、メモリコントローラ１０１は、各ＳＲＡＭのアドレスを連結し、周辺モジュール１０２が一つのＳＲＡＭとしてアクセスできるようにする。すなわち、各ＳＲＡＭのワード長が２５６ＷＯＲＤの場合、ＳＲＡＭ１のアドレスの値は０〜２５５、ＳＲＡＭ２のアドレスの値は２５６〜５１１、ＳＲＡＭ３のアドレスの値は５１２〜７６７、ＳＲＡＭ４のアドレスの値は７６８〜１０２３となる。この処理により、周辺モジュール１０２は、連続するアドレスの値である０〜１０２３にアクセス可能となる。
【００１９】
ステップ２０４において、メモリコントローラ１０１は、アドレスに順にアクセスするリニアアクセスを行う場合はステップ２０５に進み、リニアアクセスではないランダムアクセスなどを行う場合はステップＳ２０８に進む。ステップ２０８では、メモリコントローラ１０１はＰＤを０に設定する。
【００２０】
ステップ２０５において、メモリコントローラ１０１は、アクセスが行われているアドレスの監視を開始する。
【００２１】
ステップ２０６において、メモリコントローラ１０１は、監視したアドレスとステップ２０２で設定した各ＳＲＡＭの最小カウント数に応じて、それぞれのＳＲＡＭごとに、ＰＤ（パワーダウン）のポートに１と０のどちらを設定するか判定する。
【００２２】
１を設定すると判定された場合には、ステップ２０７においてＰＤを１に設定し、０を設定すると判定された場合は、ステップ２０８においてＰＤを０に設定する。ＰＤが１に設定されたＳＲＡＭはパワーダウン状態となり、ＰＤが１から０に変更されると、このＳＲＡＭに対応するクロック信号が活性化され、最小カウント数だけ経過した後に安定化する。
【００２３】
各ＳＲＡＭのＰＤの設定について図３を用いて説明を行う。図３（ａ）は、４つのＳＲＡＭのワード長が等しく、全て２５６ワードであるＳＲＡＭを連結したときの、各ＳＲＡＭのＰＤの設定を説明するための図である。これらのＳＲＡＭのアドレスをインクリメントすることで、リニアアクセスすることができる。
【００２４】
アクセスするアドレスが０から２５５の間はＳＲＡＭ１が使用され、アドレスが２５６から５１１まではＳＲＡＭ２が使用され、アドレスが５１２から７６７まではＳＲＡＭ３が使用され、アドレスが７６８から１０２３まではＳＲＡＭ４が使用される。各ＳＲＡＭは１サイクルで１アドレスアクセスできるものとし、パワーダウン状態から通常状態へ復帰するまでの最小カウント数を２５６とすると、使用開始前においてＳＲＡＭ１のＰＤは０、ＳＲＡＭ２、ＳＲＡＭ３およびＳＲＡＭ４のＰＤは１となる。周辺モジュール１０２からＳＲＡＭに対してアクセスが開始された後、アドレスを監視し、アドレスの状態に応じて各ＳＲＡＭのＰＤ制御を行う。
【００２５】
アクセスするアドレスが０から２５５までは、使用中のＳＲＡＭ１と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ２のＰＤは０となり、それ以外のＳＲＡＭ３とＳＲＡＭ４のＰＤは１となる。
【００２６】
アクセスするアドレスが２５６から５１１までは、使用中のＳＲＡＭ２と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ３のＰＤは０となり、それ以外のＳＲＡＭ４とＳＲＡＭ１のＰＤは１となる。
【００２７】
アクセスするアドレスが５１２から７６７までは、使用中のＳＲＡＭ３と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ４のＰＤは０となり、それ以外のＳＲＡＭ１とＳＲＡＭ２のＰＤは１となる。
【００２８】
アクセスするアドレスが７６８から１０２３までは、使用中のＳＲＡＭ４とパワーダウン状態から通常状態へ遷移しているＳＲＡＭ１のＰＤは０となり、それ以外のＳＲＡＭ２とＳＲＡＭ３のＰＤは１となる。
【００２９】
つまり、各ＳＲＡＭの初めにアクセスされるアドレスから、最小カウント数、もしくは、最小カウント数以上だけ前にアクセスされるアドレスにアクセスされたタイミングで、そのＳＲＡＭのＰＤを１から０に設定して、パワーダウン状態を解除する。こうすることで、そのＳＲＡＭにアクセスされるときには、活性化されたクロック信号が安定した状態へ復帰しており、レイテンシを抑えることができる。
【００３０】
図３（ｂ）は、１つのＳＲＡＭのワード長が、他のＳＲＡＭのワード長よりも長いＳＲＡＭを連結したときの、各ＳＲＡＭのＰＤの設定を説明するための図である。アクセスするアドレスが０から２５５の間はＳＲＡＭ１が使用され、アドレスが２５６から７６７まではＳＲＡＭ２が使用され、アドレスが７６８から１０２３まではＳＲＡＭ３が使用される。
【００３１】
各ＳＲＡＭは１サイクルで１アドレスアクセスできるものとし、パワーダウン状態から通常状態へ復帰するまでの最小カウント数を２５６とすると、使用開始前において、ＳＲＡＭ１のＰＤは０、ＳＲＡＭ２とＳＲＡＭ３のＰＤは１となる。周辺モジュール１０２からＳＲＡＭに対してアクセスが開始された後、アドレスを監視し、アドレスの状態に応じて各ＳＲＡＭのＰＤ制御を行う。
【００３２】
アクセスするアドレスが０から２５５までは、使用中のＳＲＡＭ１と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ２のＰＤは０となり、それ以外のＳＲＡＭ３のＰＤは１となる。
【００３３】
アクセスするアドレスが２５６から５１１までは、使用中のＳＲＡＭ２のＰＤは０となり、ＳＲＡＭ３とＳＲＡＭ１のＰＤは１となる。この時点では、ＳＲＡＭ３へのアクセスが開始されるまでに要するカウント数が最小カウント数よりも多いため、ＳＲＡＭ３のＰＤは１のままである。
【００３４】
アクセスするアドレスが５１２から７６７までは、使用中のＳＲＡＭ２と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ３のＰＤは０となり、ＳＲＡＭ１のＰＤは１となる。アドレスが５１２となると、ＳＲＡＭ３へのアクセスが開始されるまでに要するカウント数と最小カウント数が等しくなるため、ＳＲＡＭ３のＰＤが１から０に変更される。
【００３５】
アクセスするアドレスが７６８から１０２３までは、使用中のＳＲＡＭ３と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ１のＰＤは０となり、ＳＲＡＭ２のＰＤは１となる。
【００３６】
図３（ｃ）は、ワード長が等しい４つのＳＲＭＡを連結し、ＳＲＡＭ４のみ小さいアドレスを使用する場合のＰＤの設定を説明するための図である。周辺モジュール１０２の使用アドレスが０から７９９までとする。アクセスするアドレスが０から２５５の間はＳＲＡＭ１が使用され、アドレスが２５６から５１１の間はＳＲＡＭ２が使用され、アドレスが５１２から７６７の間はＳＲＡＭ３が使用され、アドレスが７６８から７９９の間はＳＲＡＭ４が使用される。
【００３７】
各ＳＲＡＭは１サイクルで１アドレスアクセスできるものとし、パワーダウン状態から通常状態へ復帰するまでの最小カウント数を２５６とすると、使用開始前において、ＳＲＡＭ１のＰＤは０、ＳＲＡＭ２、ＳＲＡＭ３およびＳＲＡＭ４のＰＤは１となる。周辺モジュール１０２からＳＲＡＭに対してアクセスが開始された後、アドレスを監視し、アドレスの状態に応じて各ＳＲＡＭのＰＤ制御を行う。
【００３８】
アクセスするアドレスが０から２５５までは、使用中のＳＲＡＭ１と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ２のＰＤは０となり、それ以外のＳＲＡＭ３とＳＲＡＭ４のＰＤは１となる。
【００３９】
アクセスするアドレスが２５６から５１１までは、使用中のＳＲＡＭ２と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ３のＰＤは０となり、それ以外のＳＲＡＭ４とＳＲＡＭ１のＰＤは１となる。
【００４０】
アクセスするアドレスが５１２から５４３までは、使用中のＳＲＡＭ３と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ４のＰＤは０となり、それ以外のＳＲＡＭ１とＳＲＡＭ２のＰＤは１となる。
【００４１】
アクセスするアドレスが５４４から７６７までは、使用中のＳＲＡＭ３と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ４およびＳＲＡＭ１のＰＤは０となり、それ以外のＳＲＡＭ２のＰＤは１となる。アドレスが５４４となると、ＳＲＡＭ１へのアクセスが開始されるまでに要するカウント数と最小カウント数が等しくなるため、ＳＲＡＭ１のＰＤが１から０に変更される。
【００４２】
アクセスするアドレスが７６８から７９９までは、使用中のＳＲＡＭ４と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ１のＰＤは０となり、それ以外のＳＲＡＭ２とＳＲＡＭ３のＰＤは１となる。
【００４３】
図３（ｄ）は、４つのＳＲＡＭのワード長が等しく、全て２５６ＷＯＲＤであるＳＲＡＭを連結したときの、各ＳＲＡＭのＰＤの設定を説明するための図である。図３（ａ）がアドレスをインクリメントしてリニアアクセスする構成であるのに対して、図３（ｄ）はアドレスをデクリメントしてリニアアクセスする構成である点で異なる。
【００４４】
アクセスするアドレスが０から２５５の間はＳＲＡＭ１が使用され、アドレスが２５６から５１１まではＳＲＡＭ２が使用され、アドレスが５１２から７６７まではＳＲＡＭ３が使用され、アドレスが７６８から１０２３まではＳＲＡＭ４が使用される。各ＳＲＡＭは１サイクルで１アドレスアクセスできるものとし、パワーダウン状態から通常状態へ復帰するまでの最小カウント数を２５６とすると、使用開始前においてＳＲＡＭ１のＰＤは０、ＳＲＡＭ２、ＳＲＡＭ３およびＳＲＡＭ４のＰＤは１となる。周辺モジュール１０２からＳＲＡＭに対してアクセスが開始された後、アドレスを監視し、アドレスの状態に応じて各ＳＲＡＭのＰＤ制御を行う。
【００４５】
アクセスするアドレスが１０２３から７６８までは、使用中のＳＲＡＭ４と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ３のＰＤは０となり、それ以外のＳＲＡＭ２とＳＲＡＭ１のＰＤは１となる。
【００４６】
アクセスするアドレスが７６７から５１２までは、使用中のＳＲＡＭ３と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ２のＰＤは０となり、それ以外のＳＲＡＭ１とＳＲＡＭ４のＰＤは１となる。
【００４７】
アクセスするアドレスが５１１から２５６までは、使用中のＳＲＡＭ２と、パワーダウン状態から通常状態へ遷移しているＳＲＡＭ１のＰＤは０となり、それ以外のＳＲＡＭ４とＳＲＡＭ３のＰＤは１となる。
【００４８】
アクセスするアドレスが２５５から０までは、使用中のＳＲＡＭ１とパワーダウン状態から通常状態へ遷移しているＳＲＡＭ４のＰＤは０となり、それ以外のＳＲＡＭ３とＳＲＡＭ２のＰＤは１となる。
【００４９】
このように各ＳＲＡＭのアドレスを監視することにより、パワーダウン状態と通常状態を切り替える制御を行うことによって、静止電力を抑えることができ、とくに低クロック時のリーク電流が抑えられる効果が得られる。
【００５０】
図４を用いてパワーダウン状態へ切り替える制御がない場合と、ある場合におけるリーク電流の際について説明を行う。図４（ａ）がパワーダウン状態へ切り替える制御がない状態を示し、図４（ｂ）がパワーダウン状態へ切り替える制御がある状態を示す。
【００５１】
ＰＤが０のとき（通常状態）の各ＳＲＡＭのリーク電流は５０［ｕＡ］で、ＰＤが１のとき（パワーダウン状態）のリーク電流は２５［ｕＡ］とすると、
図４（ａ）に示すように、パワーダウン状態へ切り替える制御がない場合は、ＳＲＡＭ１からＳＲＡＭ４におけるリーク電流の合計は、
５０［ｕＡ］／秒×４個＝２００［ｕＡ］／秒となる。
【００５２】
これに対し、図４（ｂ）に示すように、パワーダウン状態へ切り替える制御がある場合は、各ＳＲＡＭの平均リーク電流は、
（５０［ｕＡ］／秒×２５［ｕＡ］／秒）／２＝３７．５［ｕＡ］／秒となる。
【００５３】
このため、ＳＲＡＭ１からＳＲＡＭ４のリーク電流の合計は、
３７．５［ｕＡ］／秒×４個＝１５０［ｕＡ］／秒となる。
【００５４】
このように、パワーダウン状態へ切り替える制御を行うことによって、静止電力を抑えることができる。とくに動作電力が低い低クロック時においては、動作電流が小さくなり、リーク電流の割合が大きくなるため、リーク電流を抑えることで大きな電力削減効果が得られる。
【００５５】
尚、本発明は複数の電子機器（例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの電子機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００５６】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５７】
１０１  メモリコントローラ
１０２  周辺モジュール
【図１】
0006418983.tif 000002
【図２】
0006418983.tif 000003
【図３】
0006418983.tif 000004
【図４】
0006418983.tif 000005