以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明の一実施の形態に係るメモリアクセス制御システムの構成例を示すブロック図である。同図のメモリアクセス制御システム10は、LPDDRSDRAM29のクロック周波数を、例えば、メモリアクセス制御システム10が搭載された電子機器(例えば、デジタルカメラなど)の動作モードに応じて変更するようになされている。
デジタルカメラなど撮像機能、表示機能などを有する電子機器においては、CPUとメインメモリ間のデータ転送の高速化のため、コンピュータ内の各回路間で同期を取る際に、クロック信号の立上がり時と立下がり時の両方を利用し、片方のみを利用する場合に比べ単位時間あたりの処理効率を2倍に高めることができるDDR(Double Data Rate)方式が近年多く採用されている。さらに、DDRを高性能化し、省電力化を図った規格DDR2も提唱されている。
また、例えば、モバイル機器などの用途を考慮して、DDR2をさらに省電力化した規格LPDDR(Low Power Double Data Rate)も提唱されている。LPDDRSDRAM29は、規格LPDDRに適合するメモリとされる。
LPDDRSDRAMを搭載する電子機器においては、消費電力を抑制するために、例えば、必要なメモリ容量、電子機器の動作モードなどに応じて、クロック周波数を変更する制御が行われることが一般的である。高速のクロックで電子機器を動作させると、当然単位時間あたりの消費電力量が増えるからである。
このため、図1のメモリアクセス制御システム10は、自分が搭載された電子機器の動作モードに応じてクロック周波数を変更するようになされている。すなわち、メモリアクセス制御システム10は、例えば、デジタルカメラなどの電子機器に搭載されることを想定して構成されている。
同図において、CPU(Central Processing Unit)21は、メモリアクセス制御システム10が搭載された電子機器の中央演算装置であって、実際には、メモリアクセス制御システム10のために設けられるものではない。
CPU21は、例えば、図示せぬROM(Read Only Memory)に記憶されているプログラムに従って各種の処理を実行するようになされており、周波数切り替えシーケンサ22に周波数切り替え要求のコマンドを送出する。CPU21は、例えば、メモリアクセス制御システム10が搭載された電子機器の動作モードに応じて周波数を切り換えるように、周波数切り替えシーケンサ22に、周波数切り替え要求のコマンドを送出するようになされている。
周波数切り替えシーケンサ(Frequency Change Sequencer)22は、例えば、LSI(Large-Scale Integrated circuit)チップとして構成される。以下、適宜、周波数切り替えシーケンサ22を、FCS22と称することにする。
FCS22は、クロック周波数の変更(切り替え)に関する各種の信号処理を行うようになされており、メモリコントローラ23、DDR-PHY制御部25、およびクロック制御部26に制御信号を出力するようになされている。
また、FCS22は、CPU21からの指令に基づいてメモリアクセス制御システム10が搭載された電子機器の動作モードの検出、およびブランキング時間の検出を行うようになされている。FCS22は、CPU21からの指令に基づいて動作モードの検出、およびブランキング時間の検出を行って、マスタデバイスブロック27から出力される信号に基づいて、上述した制御信号を生成して出力するようになされている。
メモリコントローラは、LPDDR SDRAM29に、初期化コマンド、Writeコマンド、Readコマンド、Auto Refreshコマンド、Self Refreshコマンド等のコマンドを生成して投入するようになされている。
DDR-PHY24は、メモリコントローラ23とLPDDR SDRAM29との間のインタフェース信号のタイミング調整、位相調整などを行う機能ブロックである。DDR-PHY24には、DLL(Delay Locked Loop)とDL(Delay Line)が搭載されている。
DLは、遅延時間の小さい遅延バッファとセレクタの組み合わせにより構成される遅延ライン(Delay Line:DL)により周期信号の位相調整を行うものであり、DLLは、内部回路で使用する内部クロック信号を外部からの基準クロック信号に対して所定の位相を調整する同期遅延ループ(Delay Locked Loop:DLL)回路により、周期信号の位相調整を行うものである。DLLを用いることで精密な位相調整が可能であるが、DLに比べ消費電力が高くなる。
したがって、例えば、クロック周波数をより低い周波数に切り替える場合には、DLLを使用せずにDLを用いた方が、消費電力を削減することができる場合がある。
DDR-PHY24は、例えば、メモリコントローラ23からWriteコマンドとともに書き込みデータを受信した場合、その書き込みデータを、パラレル−シリアル変換し、倍速データ(Double Data Rate)でLPDDR SDRAM29に転送するようになされている。また、DDR-PHY24は、メモリコントローラ23からReadコマンドを受信した場合、DQS(Data Strobe信号)の位相を調整し、LPDDR SDRAM29から読み出したデータをシリアル−パラレル変換し、メモリコントローラ23へ等倍データ(Single Data Rate)で転送を行う。
DDR-PHY制御部25は、DDR-PHY24の制御を行う機能ブロックであり、DDR-PHYの初期化、DLLまたはDLの選択、DLLが選択されたときは位相設定、DLが選択されたときは遅延設定を行う機能ブロックである。
クロック制御部26は、例えば、図示せぬクロック発生部を制御してメモリアクセス制御システム10のクロック周波数、またはメモリアクセス制御システム10が搭載された電子機器全体のクロック周波数を制御する機能ブロックである。
マスタデバイスブロック27は、複数のマスタデバイスを含んで構成される機能ブロックであり、この例では、マスタデバイスブロック27が、マスタデバイスA(図中マスタAと表記)、マスタデバイスB(図中マスタBと表記)、マスタデバイスC(図中マスタCと表記)、およびマスタデバイスD(図中マスタDと表記)を含んで構成されている。
調停回路28は、マスタデバイスブロック27のマスタデバイスからのメモリアクセス要求に基づいて、優先順位付け、帯域制御などを行って、メモリコントローラ23との信号の送受信を行う機能ブロックである。すなわち、マスタデバイスA乃至マスタデバイスDのそれぞれは、LPDDRSDRAM29へのデータの書き込み、または読み出しを行う場合、調停回路28を介してメモリコントローラにアクセス要求を送出することになる。
上述したように、LPDDRSDRAM29は、DDR-PHY24を介して、メモリコントローラ23との信号の送受信が行われるようになされており、DDR-PHY24には、DLL(Delay Locked Loop)とDL(Delay Line)が搭載されている。このため、メモリアクセス制御システム10において、クロック周波数を切り換える場合、次に述べる処理を行う必要がある。
クロック周波数を切り換える場合、第1の処理として、LPDDRSDRAM29をセルフリフレッシュと称されるモードで稼動させる処理を行う必要がある。
メモリコントローラ23は、メモリアクセス制御システム10が稼動しているとき、LPDDRSDRAM29にRefreshコマンドを供給する。一般に、SDRAMなどのメモリセルに電荷として記憶されるデータを保持するために所定のリフレッシュ周期でリフレッシュ動作を実行する必要があるからである。通常、メモリコントローラ23は、予め設定された所定のインターバルでRefreshコマンドを供給するオートリフレッシュ機能と称される機能が実装されている。
しかしながら、クロック周波数を切り換える場合、一定の時間、メモリコントローラ23がDDR-PHY24へのコマンドの供給が行えない状態となる。このため、LPDDRSDRAM29をセルフリフレッシュと称されるモードで稼動させる。これにより、LPDDRSDRAM29は、メモリコントローラ23からRefreshコマンドが供給されなくとも、自身を定期的にリフレッシュするように動作する。従って、クロック周波数を切り換えに先立って、LPDDRSDRAM29をセルフリフレッシュモードで稼動させることで、クロック周波数を切り換えているときも、LPDDRSDRAM29のメモリセルに電荷として記憶されるデータが適切に保持されるようにすることができる。
また、クロック周波数を切り換える場合、第2の処理として、DDR-PHY24の再設定の処理を行う必要がある。クロック周波数が変わることに伴って、DDR-PHY24をリセットし、各種のパラメータなどを再設定する必要があるからである。これにより、例えば、切り換え後のクロック周波数に応じて、DDR-PHY24に搭載されたDLLまたはDLのいずれを用いるかが選択され、その選択結果に応じて、DLLまたはDLに設定すべきパラメータなどが決定される。
さらに、クロック周波数を切り換える場合、第3の処理として、クロック制御部26にクロック周波数を変更させる処理を行う必要がある。
さらに、クロック周波数を切り換える場合、第4の処理として、LPDDRSDRAM29のセルフリフレッシュモードでの稼動を解除させる処理を行う必要がある。
図1において、FCS22と、CPU21、メモリコントローラ23、DDR-PHY制御部25、クロック制御部26、およびマスタデバイスブロック27とを接続する矢印に付された記号(c1乃至c13)は、それぞれ図2の表に記述された信号に対応している。
c1は、周波数切り替え要求の信号であり、CPU21からFCS22に送出されるものである。
c2は、Self Refresh Enterのコマンドの投入信号であり、FCS22からメモリコントローラ23に供給される。これにより、メモリコントローラ23が、LPDDRSDRAM29を、セルフリフレッシュモードで稼動させる。
c3は、c2のSelf Refresh Enterのコマンドの投入信号に対する応答信号とされ、メモリコントローラ23から、FCS22に送出される。
なお、c2とc3は、上述した、クロック周波数を切り換える場合の第1の処理に対応するものである。
c4は、DDR-PHY24のリセット要求の信号であり、FCS22からDDR-PHY制御部25に送出される。これにより、DDR-PHY24は、リセットされる。
c5は、c4のDDR-PHY24のリセット要求の信号に対する応答信号とされ、DDR-PHY制御部25からFCS22に送出される。
なお、c2とc3は、上述した、クロック周波数を切り換える場合の第2の処理の一部に対応するものである。
c6は、クロック周波数切り替え要求の信号であり、FCS22からクロック制御部26に送出される。これにより、クロック周波数が変更される。
c7は、c6のクロック周波数切り替え要求の信号に対する応答信号とされ、クロック制御部26からFCS22に送出される。
なお、c7とc6は、上述した、クロック周波数を切り換える場合の第3の処理に対応するものである。
c8は、DDR-PHYのパラメータ設定要求の信号であり、FCS22からDDR-PHY制御部25に送出される。これにより、例えば、切り換え後のクロック周波数に応じて、DDR-PHY24に搭載されたDLLまたはDLのいずれを用いるかが選択され、その選択結果に応じて、DLLまたはDLに設定すべきパラメータなどが決定される。
c9は、c8のDDR-PHYのパラメータ設定要求の信号に対する応答信号であり、DDR-PHY制御部25からFCS22に送出される。
なお、c8とc9は、上述した、クロック周波数を切り換える場合の第2の処理の一部に対応するものである。
c10は、Self Refresh Exitのコマンドの投入信号であり、FCS22からメモリコントローラ23に供給される。これにより、メモリコントローラ23が、LPDDRSDRAM29のセルフリフレッシュモードでの稼動を解除する。
c11は、c10のSelf Refresh Exitのコマンドの投入信号に対する応答信号であり、メモリコントローラ23から、FCS22に送出される。
なお、c10とc11は、上述した、クロック周波数を切り換える場合の第4の処理に対応するものである。
c12は、クロック周波数切り替えが終了したことを表す終了通知の信号であり、FCS22からCPU21に送出される。
なお、図2には、表記されていないが、c13は、マスタデバイスブロック27から供給されるブランキング信号とされる。ブランキング信号については後述する。
このようにして、メモリアクセス制御システム10のクロック周波数が切り換えられる。
本発明においては、図2のc2乃至c13の信号は、FCS22、CPU21、メモリコントローラ23、DDR-PHY制御部25、クロック制御部26、およびマスタデバイスブロック27のそれぞれが、ハードウェアとして構成された論理回路などにより生成するようになされている。従って、図2のc1およびc12の信号を除く各信号は、ソフトウェアの処理を介さずに生成されることになる。
従来のクロック周波数の切り換えの処理では、図2のc2、c4、c6、c8、およびc10の信号がソフトウェアにより生成されていた。しかしながら、図2のc2、c4、c6、c8、およびc10の信号をソフトウェアにより生成する場合、周波数変更を行うための制御プログラムが複雑になる。また、周波数変更を行うための制御プログラムを実行するために、命令コードやワークメモリが必要になり、周波数変更を行う処理を実行する際にメモリにアクセスできなくなることがあるため、それらの命令コードをメモリ以外のROMやSRAMなどに保持しておく必要がある。さらに、周波数変更の処理に要する時間が長くなるため、その間のLPDDRSDRAM29へのアクセスの制限に伴う影響が大きくなる。
本発明によれば、図2のc2、c4、c6、c8、およびc10の信号がソフトウェアの処理を介さずに生成されるので、複雑な制御プログラムを作成する必要がなく、余分なワークメモリも不要となる。また、本発明によれば、周波数変更の処理がソフトウェアを介さずにハードウェアにより実行されるようにしたので、処理に要する時間を短くすることができる。その結果、例えば、周波数変更の処理に伴ってメモリアクセスが制限される時間も短くなり、例えば、周波数変更の処理に伴う、電子機器の機能などへの影響を小さくすることができる。さらに、周波数変更の処理がソフトウェアを介さずにハードウェアにより実行されるようにしたので、周波数切り換え時のCPU21の処理負荷を極力軽減させることができるので、周波数変更に伴う影響を小さくすることができる。
図3は、メモリアクセス制御システム10におけるクロック周波数の切り替えを説明するタイミングチャートである。同図は、横軸が時間とされ、マスタデバイスA乃至マスタデバイスD(図中、マスタA乃至マスタDと表記)によるLPDDRSDRAM29へのアクセス時間が「メモリアクセス」と記述された長方形の枠により示されている。この例では、マスタデバイスA乃至マスタデバイスDは、全て表示用マスタデバイスなどのリアルタイム系マスタデバイスであるものとする。
また、同図において図中最も上の矢印により、メモリアクセス制御システム10が搭載された電子機器のモードが表記されている。すなわち、メモリアクセス制御システム10が搭載された電子機器時刻T1から時刻T2までの時間はモードAで稼動し、時刻T2以後、モードBで稼動していることになる。
同図の同期信号は、図中垂直下方向に突出したパルスにより、メモリアクセス制御システム10の同期時刻を特定する信号とされる。
同図のモード検出信号は、上述したモードAとモードBを表す信号であり、FCS22に供給される信号とされる。
同図のブランキング信号は、マスタデバイスブロック27から供給される信号とされ、図1のc13の信号に対応するものである。リアルタイム系マスタデバイスは、処理の遅延等の発生による影響が大きいマスタデバイスであり、例えば、表示用マスタデバイスは、メモリアクセスが中断されるなどすると、画像を正常に表示することができなくなってしまう。
ブランキング信号は、リアルタイム系の表示用マスタデバイスがLPDDRSDRAM29にアクセスしていないタイミングを特定するための信号とされる。この例では、表示用マスタデバイスA乃至マスタデバイスDが、いずれもLPDDRSDRAM29にアクセスしていないとき、ブランキング信号のレベルが高く(「H」)なり、マスタデバイスA乃至マスタデバイスDのいずれかがLPDDRSDRAM29にアクセスしているとき、ブランキング信号のレベルが低く(「L」)なっている。この例では、リアルタイム系マスタデバイスである、マスタデバイスA乃至マスタデバイスDのメモリアクセスが終了したとき(この例では、マスタデバイスBによる第2回目のメモリアクセスが終了したとき)、ブランキング信号のレベルが「H」となっている。
この例では、電子機器のモードAは、クロック周波数の高いモードとされ、マスタデバイスA乃至マスタデバイスDのそれぞれがLPDDRSDRAM29にアクセスするモードであるものとする。一方、電子機器のモードBは、マスタデバイスAとマスタデバイスBのみがLPDDRSDRAM29にアクセスするモードであるものとし、CPU21は、電子機器がモードBで稼動する場合、消費電力削減のため、クロック周波数をより低く変更するようになされているものとする。
時刻T1に先立って、CPU21は、FCS22に対して図2を参照して上述した信号c1を送出しておく。すなわち、CPU21は、FCS22に対して、モードBでの稼動時にはクロック周波数を低くするように指令する。この指令を受けてFCS22は、モード検出信号を監視し、現在の稼動モードを検出する。なお、図1と図2においては、モード信号が図示されていないが、例えば、CPU21からc1の信号とは別に、モード検出信号が、FCS22に供給されるものとする。
時刻T2において、FCS22は、電子機器の稼動モードがモードBに移行したことを検出する。そして、FCS22は、ブランキング信号のレベルが「H」となるまで待機し、時刻T3において、FCS22は、ブランキング信号のレベルが「H」となったことを検出する。
時刻T3を経過すると、FCS22は、図2を参照して上述したc2、c4、c6、c8、c10、およびc12の信号のそれぞれを出力していく。これにより、図2を参照して上述した一連の処理が行われることになる。図3においては、図2のc2の信号が出力されてから、c12(またはc11)の信号が出力されるまでの時間が「周波数変更期間」として表記されている。
このように、周波数の変更の処理は、リアルタイム系マスタデバイスによるメモリアクセスが発生しない時間に実行されるようになされている。このようにすることで、例えば、周波数の変更の処理を行っても、画像の表示の乱れなどが発生しないようにすることが可能となる。
図4は、図3と同様に、メモリアクセス制御システム10におけるクロック周波数の切り替えを説明するタイミングチャートである。同図も、横軸が時間とされ、マスタデバイスA乃至マスタデバイスD(図中、マスタA乃至マスタDと表記)によるLPDDRSDRAM29へのアクセス時間が「メモリアクセス」と記述された長方形の枠により示されている。図4の例では、マスタデバイスA乃至マスタデバイスCは、表示用マスタデバイスなどのリアルタイム系マスタデバイスであるものとし、マスタデバイスDは、リアルタイム系マスタデバイスではないベストエフォート系マスタデバイスであるものとする。
ベストエフォート系マスタデバイスは、メモリアクセスが中断されるなどした場合でも、影響が小さい処理を行うマスタデバイスである。従って、図4の場合、マスタデバイスDのメモリアクセスが中断されても、電子機器の動作に深刻な影響を与えることはない。
また、図4の例においても図中最も上の矢印により、メモリアクセス制御システム10が搭載された電子機器のモードが表記されている。すなわち、メモリアクセス制御システム10が搭載された電子機器時刻T11から時刻T12までの時間はモードAで稼動し、時刻T12以後、モードBで稼動していることになる。
同図の同期信号とモード検出信号は、図3の場合と同様なので詳細な説明は省略する。
図4の例では、ブランキング信号は、時刻T13においてレベルが「H」となっている。時刻T13においては、マスタデバイスDによりメモリアクセスが発生しているが、上述したように、マスタデバイスDは、ベストエフォート系マスタデバイスである。このため、リアルタイム系マスタデバイスである、マスタデバイスA乃至マスタデバイスCのメモリアクセスが終了したとき(この例では、マスタデバイスBによる第2回目のメモリアクセスが終了したとき)、ブランキング信号のレベルが「H」となっている。
図4の場合も、時刻T11に先立って、CPU21は、FCS22に対して図2を参照して上述した信号c1を送出しておく。すなわち、CPU21は、FCS22に対して、モードBでの稼動時にはクロック周波数を低くするように指令する。この指令を受けてFCS22は、モード検出信号を監視し、現在の稼動モードを検出する。
時刻T12において、FCS22は、電子機器の稼動モードがモードBに移行したことを検出する。そして、FCS22は、ブランキング信号のレベルが「H」となるまで待機し、時刻T13において、FCS22は、ブランキング信号のレベルが「H」となったことを検出する。
時刻T13を経過すると、FCS22は、図2を参照して上述したc2、c4、c6、c8、c10、およびc12の信号のそれぞれを出力していく。これにより、図2を参照して上述した一連の処理が行われることになる。図4においては、図2のc2の信号が出力されてから、c12(またはc11)の信号が出力されるまでの時間が「周波数変更期間」として表記されている。
このように、周波数の変更の処理は、リアルタイム系マスタデバイスによるメモリアクセスが発生しない時間に実行されるので、例えば、図4の例のように、ベストエフォート系のマスタデバイスによるメモリアクセスが中断されることはあるが、リアルタイム系マスタデバイスによるメモリアクセスが中断されることはない。従って、本発明によれば、例えば、周波数の変更の処理を行っても、画像の表示の乱れなどが発生しないようにすることができる。
図5は、図4において、「周波数変更期間」として表記されている時間を、さらに詳細に説明するタイミングチャートである。同図は、横軸が時間とされ、図4のマスタデバイスDによるLPDDRSDRAM29へのアクセス時間が「メモリアクセス」と記述された長方形の枠により示されている。
また、同図においては、ステータスとして、次に述べる時間に対応する枠が記述されている。
図2のc2の信号が送出されてからc4の信号が送出されるまでの時間が、「Self Refresh Enter」と記述された長方形の枠により示されている。さらに、図2のc4の信号が送出されてからc6の信号が送出されるまでの時間が、「DDR-PHY Reset」と記述された長方形の枠により示されている。また、図2のc6の信号が送出されてからc8の信号が送出されるまでの時間が、「クロック周波数切り換え」と記述された長方形の枠により示されている。さらに、図2のc8の信号が送出されてからc10の信号が送出されるまでの時間が、「パラメータ設定」と記述された長方形の枠により示されている。また、図2のc10の信号が送出されてからc12の信号が送出されるまでの時間が、「Self Refresh Exit」と記述された長方形の枠により示されている。
図5に示されるように、ブランキング信号のレベルが「H」となった時刻T13を経過した後、所定の遅延時間があり、その後図2のc2の信号が送出されることになる。そして、c2の信号が送出されたタイミングで、マスタデバイスDによるメモリアクセスは中断される。
また、図5に示されるように、図2のc11の信号(c10の信号に対する応答)が送出された後、マスタデバイスDによるメモリアクセスが再開されることになる。
図6は、図5のステータスをさらに詳細に説明するために、FCS22と、メモリコントローラ23、DDR-PHY制御部25、およびクロック制御部26との間で送受信される各種の要求信号、応答信号を示したタイミングチャートである。
同図の最も上側には、FCS22の動作クロックがパルスとして示されている。
図6において、時刻T21において第1番目のFCS22の動作クロックが投入された後、所定の遅延時間経過後に、FCS22は、メモリコントローラ23への要求信号が出力される。ここで、出力される要求信号は、図2のc2の信号に対応し、図6においては、信号のレベルが「H」となったことにより、要求信号が出力されたことを表している。
また、メモリコントローラ23は、FCS22からの要求信号が出力されると、自動的に、LPDDRSDRAM29をセルフリフレッシュモードで稼動させるようになされている。
メモリコントローラ23への要求信号が出力された後、所定の遅延時間経過後にメモリコントローラ23からFCS22へ応答信号が出力される。ここで、出力される応答信号は、図2のc3の信号に対応し、図6においては、信号のレベルが「H」となったことにより、応答信号が出力されたことを表している。
メモリコントローラ23からFCS22へ応答信号が出力された後、時刻T22のFCS22の動作クロックのパルスの立ち上がりを待って、DDR-PHY制御部25への要求信号が出力される。ここで、出力される要求信号は、図2のc4の信号に対応し、図6においては、信号のレベルが「H」となったことにより、要求信号が出力されたことを表している。
DDR-PHY制御部25への要求信号が出力された後、所定の遅延時間経過後にDDR-PHY制御部25からFCS22へ応答信号が出力される。ここで、出力される応答信号は、図2のc5の信号に対応し、図6においては、信号のレベルが「H」となったことにより、応答信号が出力されたことを表している。
DDR-PHY制御部25からFCS22へ応答信号が出力された後、時刻T23のFCS22の動作クロックのパルスの立ち上がりを待って、クロック制御部26への要求信号が出力される。ここで、出力される要求信号は、図2のc6の信号に対応し、図6においては、信号のレベルが「H」となったことにより、要求信号が出力されたことを表している。
そして、この後、図6の図中下から2番目の信号として示されている電子機器のクロックのパルス幅が広く変更されている。すなわち、電子機器のクロック周波数が高い周波数から低い周波数へ切り換えられたのである。
クロック制御部26への要求信号が出力された後、所定の遅延時間経過後にクロック制御部26からFCS22へ応答信号が出力される。ここで、出力される応答信号は、図2のc7の信号に対応し、図6においては、信号のレベルが「H」となったことにより、応答信号が出力されたことを表している。
また、クロック制御部26からFCS22へ応答信号が出力されると、FCS22は、時刻T24のFCS22の動作クロックのパルスの立ち上がりを待って、DDR-PHY制御部25への要求信号の出力を停止し、また、クロック制御部26への要求信号の出力を停止する。図6においては、信号のレベルが「L」となったことにより、要求信号の出力が停止されたことを表している。
また、DDR-PHY制御部25への要求信号の出力が停止されたことにより、DDR-PHY24のパラメータ設定が行われることになる。すなわち、FCS22のDDR-PHY制御部25への要求信号の出力の停止は、図2のc8の信号の供給に対応する。
DDR-PHY制御部25への要求信号の出力が停止されてから所定の時間経過後に、DDR-PHY制御部25は、FCS22への応答信号の出力を停止するようになされている。図6においては、信号のレベルが「L」となったことにより、応答信号の出力が停止されたことを表している。DDR-PHY制御部25からFCS22への応答信号の出力の停止が図2のc9に対応することになる。
DDR-PHY制御部25からの応答信号の出力が停止されてから、時刻T25のFCS22の動作クロックのパルスの立ち上がりを待って、FCS22は、メモリコントローラ23への要求信号の出力を停止するようになされている。図6においては、信号のレベルが「L」となったことにより、要求信号の出力が停止されたことを表している。
また、FCS22からメモリコントローラ23への要求信号の出力の停止は、図2のc10の信号の供給に対応する。すなわち、メモリコントローラ23は、FCS22からの要求信号の出力が停止されると、自動的に、LPDDRSDRAM29のセルフリフレッシュモードでの稼動を解除させるようになされている。
メモリコントローラ23への要求信号の出力が停止されてから所定の時間経過後に、メモリコントローラ23は、FCS22への応答信号の出力を停止するようになされている。図6においては、信号のレベルが「L」となったことにより、応答信号の出力が停止されたことを表している。
また、メモリコントローラ23からFCS22への応答信号の出力の停止は、図2のc11の信号の供給に対応する。すなわち、FCS22は、メモリコントローラ23からの応答信号の出力が停止されると、時刻T26のFCSの動作クロックのパルスの立ち上がりを待って、LPDDRSDRAM29のセルフリフレッシュモードでの稼動が解除されたことを認識する。
このようにして、図2を参照して上述した一連の信号が生成されて出力されるようになされている。
図7は、本発明を適用した撮像装置70の構成例を示すブロック図である。撮像装置70は、例えば、デジタルカメラとして構成される。
同図において、撮像素子80は、CCD(Charge Coupled Device)、CMOS(Complementary Metal-Oxide Semiconductor)などの光電変換センサにより構成される。
前処理部81は、撮像素子80から供給された電気信号の画像情報に対して、CDS(Correlated Double Sampling)処理を行って、S/N比を良好に保つようにするとともに、AGC(Automatic Gain Control)処理を行って、利得を制御し、そして、A/D(Analog/Digital)変換を行って、デジタル信号とされた画像データを生成する。前処理部81のタイミングジェネレータと、Vドライバは、撮像素子80の駆動タイミングを制御する。
前処理部81からのデータは、カメラDSP(Digital Signal Processor)部85に供給される。カメラDSP部85は、カメラ信号処理部86、解像度変換部87、画像Codec部88、メモリ制御部89、表示制御部90、メディア制御部91、ARB(arbiter)92、メモリ装置93、LCDモニタ94、記録メディア95、およびFCS100により構成されている。
カメラ信号処理部86は、前処理部81から供給されたデータに所定の処理を施してイメージ画像データとして出力する。
解像度変換部87は、カメラ信号処理部86が出力したイメージ画像データの解像度を必要に応じて変換する。
画像Codec部88は、カメラ信号処理部86が出力したイメージ画像データを、予め設定された圧縮符号化方式により圧縮符号化するようになされている。
メモリ制御部89は、メモリ装置93を制御し、表示制御部90は、LCD(Liquid Crystal Display)モニタ94を制御する。
メモリ装置93は、例えば、LPDDRSDRAMにより構成されるものとする。
メモリ制御部89には、図1のメモリコントローラ23、DDR-PHY24、DDR-PHY制御部25、クロック制御部26、および調停回路28に対応する機能ブロックが設けられているものとする。
また、メモリ制御部89とARB92との間にFCS100が設けられている。FCS100は、図1のFCS22と同様の機能ブロックである。
メディア制御部91は、記録メディア95を制御する。記録メディア95は、例えば、半導体メモリを用いたいわゆるメモリカード、記録可能なDVD(Digital Versatile Disk)、磁気ディスクなどにより構成される。
ARB92は、CPU97とカメラDSP部85のインタフェースである。そして、CPU97は、操作部96からの供給される信号に基づいて、EEPROM (Electrically Erasable Programmable Read-Only Memory)99からプログラムをロードし、ワークメモリであるRAM(Random Access Memory)98を使用してプログラムを実行し、カメラDSP部85と通信しながら、各種の処理を実行するようになされている。
図7の撮像装置70は、例えば、高速撮像を行うための高速撮像モードと、図示せぬレンズから取り込まれた画像をLCDモニタに表示するモニタリングモードで稼動するようになされている。また、撮像装置70は、高速撮像モードにおいて、高周波数のクロックにより動作するようになされており、モニタリングモードでは、低周波数のクロックにより動作するようになされている。
図8は、撮像装置70が、モニタリングモードで稼動中に高速撮像モードに変更され、撮像装置のクロックの周波数が低周波数から高周波数に切り換えられる場合の例を説明するタイミングチャートである。
撮像装置70におけるモニタリングは、例えば、次のように行われる。
前処理部81から供給されたデータをカメラDSP部85に取り込み、カメラ信号処理部86を介して解像度変換部87に供給し、画像のサイズを変更する。そして、サイズが変更された画像データは、メモリ制御部89を介して、メモリ装置93に書き込まれる。このとき、解像度変換部87はモニタリング用のメモリ装置93内の仮想空間であるメモリ空間を2面(メモリ領域1、メモリ領域2)持っており、イメージ画像の1枚目はメモリ領域1に書き込み、2枚目はメモリ領域2に書き込むようになされており、フリップして使用するようになされている。同様に表示制御部90もメモリ領域1、メモリ領域2をフリップして読み出し、LCDモニタ94に出力する。
撮像装置70における高速撮像は、例えば、次のように行われる。
操作部96を介して入力されるユーザの指令に基づいて、前処理部81から供給されたデータをカメラDSP部85に取り込み、カメラ信号処理部86を介して解像度変換部87に供給し、画像のサイズを変更する。そして、サイズが変更された画像データは、メモリ制御部89を介して、メモリ装置93に書き込まれる。
このとき、解像度変換部87はメモリ装置93内の仮想空間であるメモリ空間を4面(メモリ領域1、メモリ領域2、メモリ領域3、メモリ領域4)に設定する。そして、解像度変換部87は、撮像された画像の1枚目はメモリ領域1に書き込み、2枚目はメモリ領域2に書き込み、3枚目はメモリ領域3に書き込み、4枚目はメモリ領域4に書き込み、5枚目はメモリ領域1に書き込むようになされている。
表示制御部90は、解像度変換部87が処理を行ったメモリ領域1とメモリ領域3を交互に読み出し、LCDモニタ94に出力する。画像Codec部88は、解像度変換部87が処理を行って書き込んだデータを、メモリ領域1、メモリ領域2、メモリ領域3、メモリ領域4から順に読み出し、JPEG/MPEGなどのストリームデータに圧縮符号化し、メディア制御部91を介して、記録メディア95に書き込むようになされている。
いまの場合、カメラ信号処理部86、解像度変換部87、および表示制御部90は、それぞれリアルタイム系マスタデバイスとなる。なお、解像度変換部87は、モニタリングモードでは、リアルタイム系マスタデバイスとして動作するが、高速撮像モードでは、ベストエフォート系マスタデバイスとして動作するものとする。
図8は、撮像装置70におけるクロック周波数の切り替えを説明するタイミングチャートである。同図は、横軸が時間とされ、カメラ信号処理部からのイメージ画像データの供給時間が「イメージ画像」と記述された長方形の枠により表示されている。
また、同図において、解像度変換部87によるメモリ領域1、メモリ領域2、メモリ領域3、メモリ領域4へのアクセス時間が、「Read(読み出し)」、または「Write(書き込み)」と記述された長方形の枠により表示されている。
さらに、同図において、表示制御部90がLCDモニタ94に画像を表示する表示時間が「表示画」と記述された長方形の枠により表示されている。
また、同図において、画像Codec部88がデータを圧縮符号化する時間が、「JPEG」と記述された長方形の枠により表示されている。
また、同図のモード検出信号およびブランキング信号は、図3、または図4を参照して上述したものと同様なので、詳細な説明は省略する。
図8においては、時刻T41において、モード検出信号がモニタリングモードから高速撮像モードに変更されたことを表している。
そして、図8のブランキング信号のレベルが「H」となる時刻T42において、クロック周波数の切り替えが行われる。このとき、図2を参照して上述したような信号がFCS100とメモリ制御部89との間で送受信されることにより、低周波数から高周波数へ周波数変更の処理が行われることになる。
そして、時刻T43において、撮像装置70が高速撮像モードで動作(高速撮像動作)する。なお、時刻T43までの間、撮像装置70は、モニタリングモードでの動作(モニタリング動作)を続けることになる。
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
10 メモリアクセス制御システム, 21 CPU, 22 周波数切り換えシーケンサ(FCS), 23 メモリコントローラ, 24 DDR-PHY, 25 DDR-PHY制御部, 26 クロック制御部, 27 マスタデバイスブロック, 29 LPDDRSDRAM, 70 撮像装置, 86 カメラ信号処理部, 87 解像度変換部, 88 画像Codec部, 89 メモリ制御部 90 表示制御部, 92 ARB, 23 メモリ装置, 94 LCDモニタ, 97 CPU, 100 FCS