(57)【特許請求の範囲】
【請求項１】
複数のマスタと省電力状態に遷移可能な複数のメモリとの間に接続されたメモリ制御装置であって、
前記複数のマスタからのメモリアクセス要求を調停し、前記複数のマスタの１つにメモリアクセス要求を許可する調停手段と、
前記複数のメモリのそれぞれが省電力状態にあるか否かを監視する監視手段とを有し、
前記調停手段は、前記監視手段の検出結果に応じて、省電力状態にあるメモリに対するメモリアクセス要求と省電力状態にないメモリに対するメモリアクセス要求が競合する場合、省電力状態にないメモリに対するメモリアクセス要求を優先的に選択している間に、省電力状態にあるメモリに対するメモリアクセス要求が所定回数以上、受け付けられなかった場合に、省電力状態にあるメモリへのメモリアクセス要求を選択対象に含めることを特徴とするメモリ制御装置。
【請求項２】
前記調停手段は、前記監視手段の検出結果に応じて省電力状態にないメモリに対するメモリアクセス要求を候補として、当該候補の中から許可するメモリアクセス要求を選択する請求項１に記載のメモリ制御装置。
【請求項３】
前記調停手段は、前記候補の中に選択すべきメモリアクセス要求がない場合に、省電力状態にあるメモリに対するメモリアクセス要求を候補として、当該候補の中から許可するメモリアクセス要求を選択する請求項２に記載のメモリ制御装置。
【請求項４】
前記調停手段は、マスタからのメモリアクセス要求が、省電力状態に投入されているメモリに対するアクセスであった場合に、メモリアクセス要求の優先順位を低くすることを特徴とする請求項１に記載のメモリ制御装置。
【請求項５】
前記調停手段は、省電力状態に投入されているメモリに対するメモリアクセス要求が所定時間以上、受け付けられなかった場合に、省電力状態にあるメモリへのメモリアクセス要求を選択対象に含めることを特徴とする請求項１乃至４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記複数のマスタからの前記メモリアクセス要求が共通のバスを介して前記調停手段に送信されることを特徴とする請求項１乃至５のいずれか１項に記載のメモリ制御装置
【請求項７】
複数のマスタと省電力状態に遷移可能な複数のメモリとの間に接続されたメモリ制御装置におけるメモリ制御方法であって、
前記複数のマスタからのメモリアクセスを調停し、前記複数のマスタの１つにメモリアクセス要求を許可する調停工程と、
前記複数のメモリのそれぞれが省電力状態にあるか否かを監視する監視工程とを有し、
前記調停工程では、前記監視工程の検出結果に応じて、省電力状態にあるメモリに対するメモリアクセス要求と省電力状態にないメモリに対するメモリアクセス要求が競合する場合、省電力状態にないメモリに対するメモリアクセス要求を優先的に選択している間に、省電力状態にあるメモリに対するメモリアクセス要求が所定回数以上、受け付けられなかった場合に、省電力状態にあるメモリへのメモリアクセス要求を選択対象に含めることを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のマスタと複数のメモリに接続されたメモリ制御装置に関し、特にメモリアクセスが競合した場合にメモリアクセスの優先順位を制御するメモリ制御装置、メモリ制御方法に関する。
【背景技術】
【０００２】
近年のＬＳＩはチップ上にＣＰＵ以外にも多数のＩＰ（ｉｎｆｏｒｍａｔｉｏｎ  ｐｒｏｃｅｓｓｏｒ）を搭載し高機能化が進んでいる。このようなシステムにおいては、個々のＩＰが同時にデータ処理を行うため、大容量で高速なメモリを、ＬＳＩと同時にシステム基板上に搭載するシステムも増えている。
【０００３】
例えば、ＳＤＲＡＭデバイスがメモリデバイスとして用いられていたが、昨今ではさらに高速アクセスのためにＤＤＲ−ＳＤＲＡＭあるいはＤＤＲ２−ＳＤＲＡＭ、ＤＤＲ３−ＳＤＲＡＭといった高速なメモリデバイスが複数個用いられることがある。
【０００４】
一方で、バッテリー駆動を前提とするシステムを中心に、システム全体の消費電力を下げる様々な取り組みが行われている。例えば、メモリデバイスにおいては、低消費電力モードが設けられ、メモリアクセスを行わない場合に、メモリを低消費電力モードに移行させることで、メモリデバイスの消費電力を下げることが可能となっている。
【０００５】
メモリ制御装置としては、メモリを低消費電力モードにさせる期間を長くさせるようにメモリアクセスを制御することが省電力のために必要となる。
【０００６】
例えば特許文献１は、メモリ（スレーブ）の状態を監視してメモリアクセスの優先順位を切替える必要があるが、メモリ（スレーブ）の状態を監視して複数バスマスタの転送要求の優先順位を切替える方法を開示している。特許文献１では、スレーブがバスマスタの転送要求を直ちに処理できる状態にあるかを判断し、直ちに処理できない状態にあると判断されたスレーブに対する転送要求をマスクして、直ちに処理できる状態にあると判断されたスレーブに対する転送要求のなかから転送を受け付ける処理を行っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−１５３０６５
【発明の概要】
【発明が解決しようとする課題】
【０００８】
システム内のスレーブモジュールの一つとしてチップ外部に接続されるＤＲＡＭ等のメモリ制御装置が存在する。ＤＲＡＭのメモリ制御装置はバスマスタからのメモリアクセスを接続されるＤＲＡＭのプロトコルに変換しメモリアクセスを発行する機能を有する。またメモリ制御装置は外部のＤＲＡＭの電力モードを制御する機能を有するものも存在する。外部ＤＲＡＭの電力モードを制御する機能を有したメモリ制御回路の実装の形態として、システムから明示的に電力モードの指定を受け、パワーダウンやセルフリフレッシュの投入・復帰といった電力モード制御用のコマンドを発行するものがある。
【０００９】
この場合、システムからの明示的な指定があるため、極め細やかな制御が困難であった。一方で、バスマスタからのメモリアクセスの受け付け状態により、自動的に電源モードの制御を行う機能を有するものもある。すなわち、バスマスタからの転送要求がない場合、メモリを省電力モードに投入し、省電力モードに投入されたメモリに転送要求があると、メモリを省電力モードから通常のメモリアクセスが可能な状態へ復帰させるような機能を有する。
【００１０】
従来の調停方法は、スレーブの状態が、直ちに使用できない状態から直ちに使用できる状態へと自動的に切り替わることを前提に行われている。
【００１１】
このようなメモリ制御装置において、「スレーブがバスマスタの転送要求を直ちに処理できない状態」を「メモリが省電力モードに投入された状態」と置き換えた場合、省電力モードに投入されたメモリへのアクセスがマスクされる。すなわち、省電力モードからの復帰することでメモリアクセス発行可能であるにも関わらず、メモリアクセスがマスクされることとなる。
【００１２】
なお、省電力モードに投入されたメモリデバイスへのアクセスがマスクされると、省電力モードにあるメモリは、省電力モード状態にとどまり続けるためメモリ転送が行われない。
【００１３】
一方、メモリが省電力モードに投入された状態を、スレーブがバスマスタ要求を直ちに処理できる状態とした場合、省電力モードに投入されたメモリデバイスへのメモリアクセスはマスクされない。しかしながら、メモリアクセスの発行順序に依存し、省電力モードに投入される期間が短くなり、省電力効果が少なくなる。
【００１４】
以上の問題を鑑みて、本発明は省電力モードを有するメモリ制御回路におけるメモリアクセスと省電力の効率を向上させるメモリ制御装置、メモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するために本発明に係るメモリ制御装置は、複数のマスタと省電力状態に遷移可能な複数のメモリとの間に接続されたメモリ制御装置であって、前記複数のマスタからのメモリアクセス要求を調停し、前記複数のマスタの１つにメモリアクセス要求を許可する調停手段と、前記複数のメモリのそれぞれが省電力状態にあるか否かを監視する監視手段とを有し、前記調停手段は、前記監視手段の検出結果に応じて、省電力状態にあるメモリに対するメモリアクセス要求と省電力状態にないメモリに対するメモリアクセス要求が競合する場合、省電力状態にないメモリに対するメモリアクセス要求から優先的に選択している間に、省電力状態にあるメモリに対するメモリアクセス要求が所定回数以上、受け付けられなかった場合に、省電力状態にあるメモリへのメモリアクセス要求を選択対象に含めることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、省電力モードに投入されたメモリに対するアクセスの処理優先度を下げる、省電力モードの時間を長くすることでシステム全体における消費電力の低減が可能となる。
【図面の簡単な説明】
【００１７】
【図１】メモリ制御回路の概略ブロック図である。
【図２】第１の実施形態における調停回路の制御フロー図である。
【図３】第２、第３の実施形態におけるカウンタ回路の制御フロー図である。
【図４】第２、第３の実施形態における調停回路の制御フロー図である。
【発明を実施するための形態】
【００１８】
（第１の実施形態）
以下、図１、図２に基づき、本発明の一実施形態である第１の実施形態のメモリ制御装置（以下、メモリ制御回路と称す）について説明する。図１は実施形態１のメモリ制御回路の概略構成を示すブロック図である。
【００１９】
図１において省電力モード（省電力状態）に遷移可能な複数のメモリ１１０、１１１がメモリ制御回路１００によってアクセスされる構成になっている。省電力モード制御回路１０１はメモリ１１０、１１１に接続されこれらのメモリを省電力モード（省電力状態）へ投入、または解除をする。省電力モード監視回路１０２は省電力モード制御回路１０１によりメモリ１１０、１１１が省電力モードに投入されているか監視する。アクセス保持回路１０３はメモリアクセスコマンド（以下、単にアクセス）を複数保持する。
【００２０】
メモリコマンド生成回路１０４はメモリ１１０と１１１に接続されアクセス保持回路１０３の先頭に登録されているアクセスを取り出し、メモリ１１０、１１１（例えば、ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２〜４−ＳＤＲＡＭ）へアクセスするためのコマンドに変換し発行する。デコード回路１０５は外部からのアクセスがメモリ１１０、１１１のどちらに対するものかアドレスをデコードする。調停回路１０６はデコード回路１０５のデコード結果と省電力モード監視回路１０２の情報（検出結果）から複数のメモリアクセス要求のうちアクセスを許可するバスマスタモジュール（以下、バスマスタと称す）を決定する。選択回路１０７は、調停回路１０６で決定されたアクセスを選択してアクセス保持回路１０３に登録する。
【００２１】
図２は図１に示す調停回路１０６がバスマスタからのアクセス要求のどれを選択するかを決定する処理のフローチャートである。調停回路１０６はバスマスタからの転送要求が発生すると、調停動作を開始する。まず、内部変数ｉと省電力モードではないメモリに対するアクセス要求を集計するためのリストをクリアする（Ｓ２０１）。
【００２２】
次に、アクセス要求があり、かつ、アクセス要求されているメモリが省電力モードに投入中ではないメモリに対するアクセス要求を発行しているバスマスタについてバスマスタ０から順にバスマスタ番号をリストに登録する（Ｓ２０２）。
【００２３】
全てのバスマスタのアクセス要求に対するリスト集計作業が終了したら、リストに登録されているバスマスタの中から、アクセスを許可するバスマスタを選択する。バスマスタの選択方法としては、固定優先順位方式や、ラウンドロビン方式など、既存の調停アルゴリズムによる選択を行うことが可能である。
【００２４】
リストに登録されたバスマスタが選択された場合は、そのまま終了するが、リストにどのバスマスタも登録されない場合は、リスト以外のバスマスタも含めて、再度アクセスを許可するバスマスタを選択する。
【００２５】
上記動作により、省電力モードに投入されているメモリに対するアクセス要求と、省電力モードに投入されていないメモリに対するアクセス要求が競合した場合に、省電力モードに投入されていないメモリに対するアクセス要求が優先的に選択される。そのため、省電力モードに投入されているメモリに対するアクセス要求が待たされることで、省電力モードに投入されているメモリは、長時間、省電力モードに投入された状態を保持することが可能となる。さらに、省電力モードから復帰したメモリに対してアクセス要求がまとまって実行されるように制御できるので、省電力モードと通常モードとの間を遷移する回数を低減させ、メモリの状態遷移に要する時間と状態遷移によって消費される消費電力を低減することができる。
【００２６】
また、省電力モードに投入されていないメモリに対するアクセスが終了すると、自動的に省電力モードに投入されているメモリに対するアクセス要求が許可される。この時に、省電力モードから復帰したメモリに対するアクセス要求がまとまって実行されるので、少ししか省電力モードを継続できないような省電力モードへの遷移を抑制し、電力効率の悪化を抑制できる。本実施形態では、バスマスタが３個で、メモリが２個のメモリ制御回路に関して説明したが、メモリが２個以上であれば本発明を適用して省電力効果を向上できる。なお、調停回路１０６のリストは調停回路１０６内の不図示の記憶部にて保持される。
【００２７】
（第２の実施形態）
第１の実施形態では省電力モードではないメモリに対するアクセス要求は必ず省電力モードのメモリに対するアクセス要求よりも優先して選択されるものである。ここで、省電力モードではないメモリに対するアクセス要求が連続でおこり、省電力モードであるメモリに対するアクセスが長時間待たされることで省電力モードのメモリにアクセス要求を行ったバスマスタの性能が低下することが考えられる。
【００２８】
上記を考慮し、省電力モードのメモリに対するアクセスが優先されない回数の上限を設けてもよい。本実施形態では、調停回路１０６はバスマスタごとのカウンタ（不図示）を持ち、転送要求がありながら他のバスマスタが選択された回数をカウントする。カウント値が所定回数に達すると、省電力モードであるバスマスタへのアクセス要求であっても、前記リストに追加する。
【００２９】
図３に転送要求が発行されてから他のバスマスタが選択された回数をカウントするカウンタの動作を示す。カウンタはバスマスタからのメモリアクセス（転送要求）がアサートされるまでウェイトし（Ｓ３０１）、転送要求のアサートに応じてカウント値ｉをクリアする、そして、他のバスマスタからの転送要求が受け付けられる毎にカウントし（Ｓ３０３、Ｓ３０４）、当初の転送要求が受け付けられると、カウントを終了する（Ｓ３０５）。このカウンタをバスマスタごとに設ける。
【００３０】
図４は図１に示す調停回路１０６が、図３で示したカウンタの値を用いて、図２のフローチャートにバスマスタからのアクセス要求のどれを選択するかを決定する処理（Ｓ４０３）を追加したフローチャートである。図４のフローにより所定回数以上許可されなかった省電力モードのメモリに対するアクセス要求は、省電力モードではないメモリに対するアクセスと同様に扱う。
【００３１】
（第３の実施形態）
第２の実施形態では許可されなかった回数を考慮したが、本実施形態では省電力モードのメモリに対するアクセスが優先されない時間の上限を用いる。例えば、調停回路１０６はバスマスタごとのカウンタを持ち、転送要求が開始されてからの時間をカウントする。カウント値が一定時間に達すると、省電力モードであるバスマスタへのアクセス要求であっても、前記リストに追加する。
【００３２】
転送要求が発行されてからの時間をカウントするカウンタの動作を示すフローチャートは図３と同様である。この転送要求が発行されてからの時間をカウントするカウンタをバスマスタごとに設ける。図４は図１に示す調停回路１０６が、図３で示したカウンタの値を用いて、バスマスタからのアクセス要求のどれを選択するかを決定する処理を示すフローチャートである。図４のフローにより転送要求発行後、所定時間以上経過した省電力モードのメモリに対するアクセス要求は、省電力モードではないメモリに対するアクセスと同様に扱われる。
【００３３】
以上、上述の実施形態によって省電力モードではないメモリに対するメモリアクセスを優先的にアクセス保持回路１０３に保持される。
【００３４】
なお、上述の実施形態の説明では調停回路１０６が選択するバスマスタの候補をリストとして調停回路１０６が保持していたが、リスト形式で保持しなくても、単にバスマスタのＩＤ（識別情報）を保持するだけでもよい。なお、上述した複数の実施形態の方法を併用して用いることで、更に細かく複数のメモリアクセスを優先度順に並べることができる。
【符号の説明】
【００３５】
１００  メモリ制御回路
１０１  省電力モード制御回路
１０２  省電力モード監視回路
１０３  アクセス保持回路
１０４  メモリコマンド生成回路
１０５  デコード回路
１０６  調停回路
１０６  選択回路
１１０  メモリ０
１１１  メモリ１
【図１】
0005932261.tif 000002
【図２】
0005932261.tif 000003
【図３】
0005932261.tif 000004
【図４】
0005932261.tif 000005