(57)【要約】【課題】  機能モジュールの数に関係なく、各機能モジュールから要求されるデータ転送のスループットを向上させるメモリコントローラ等を提供する。【解決手段】  第１〜第Ｎ（Ｎは２以上の整数）の機能モジュールによりメモリをアクセスするためのメモリコントローラ３００は、アクセス要求に応じてメモリのデータ転送要求を行う第１〜第Ｍ（１＜Ｍ≦Ｎ、Ｍは整数）のデータ転送制御部と、１つの機能モジュールからのアクセス要求を第１〜第Ｍのデータ転送制御部のいずれかに供給するためのクロスバスイッチ部３３０と、第１〜第Ｍのデータ転送制御部のデータ転送要求を調停するアービタ３４０と、調停後のデータ転送要求に基づいてメモリにアクセスするためのメモリインタフェース３２０とを含む。各データ転送制御部が、メモリへのアクセスアドレスを生成し、アクセスアドレスを用いてメモリへのアクセス制御を行う。【選択図】      図２
2006301724.tif 000002
【特許請求の範囲】
【請求項１】
第１〜第Ｎ（Ｎは２以上の整数）の機能モジュールによりメモリをアクセスするためのメモリコントローラであって、
各データ転送制御部へのアクセス要求に応じて前記メモリのデータ転送要求を行う第１〜第Ｍ（１＜Ｍ≦Ｎ、Ｍは整数）のデータ転送制御部と、
前記第１〜第Ｎの機能モジュールの１つの機能モジュールからのアクセス要求を、前記第１〜第Ｍのデータ転送制御部のいずれかに供給するためのクロスバスイッチ部と、
前記第１〜第Ｍのデータ転送制御部のデータ転送要求を調停するアービタと、
前記アービタによって調停された前記第１〜第Ｍのデータ転送制御部の１つのデータ転送制御部のデータ転送要求に基づいて前記メモリにアクセスするためのメモリインタフェースとを含み、
各データ転送制御部が、
各データ転送制御部へのアクセス要求に基づいて、前記メモリへのアクセスアドレスを生成すると共に、
前記アービタによって調停された結果、前記メモリに対するデータ転送要求が許可されたとき、前記アクセスアドレスを用いて前記メモリからのデータの読み出し制御、又は前記メモリへのデータの書き込み制御を行うことを特徴とするメモリコントローラ。
【請求項２】
請求項１において、
前記メモリの記憶エリアに設定された複数のエリアを用いて、データのアクセスを行う場合に、
各データ転送制御部が、
前記メモリにデータを書き込むためのライトアドレスを前記アクセスアドレスとして生成するライトアドレス生成部と、
前記メモリからデータを読み出すためのリードアドレスを前記アクセスアドレスとして生成するリードアドレス生成部とを含み、
前記リードアドレス生成部が、
前記メモリのライトエリア情報により指定されるエリアとは異なる前記メモリのエリアからデータを読み出すためのリードアドレスを生成し、
前記ライトエリア情報が、
前記ライトアドレスに基づいて前記データが書き込まれる前記メモリのエリアを指定する情報であることを特徴とするメモリコントローラ。
【請求項３】
請求項１において、
前記メモリが、画像データを記憶する表示メモリとして機能し、
各データ転送制御部が、
前記メモリから前記画像データを読み出すためのリードアドレスを、前記アクセスアドレスとして生成するリードアドレス生成部と、
前記メモリから読み出された画像データをキューイングするリードデータキューと、
前記メモリから読み出された画像データの画素数をカウントして、該画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号を生成するリード同期管理部とを含み、
前記リードアドレス生成部が、
前記リード同期管理部によって生成された同期信号に基づいて更新される前記リードアドレスを生成することを特徴とするメモリコントローラ。
【請求項４】
請求項１において、
前記メモリが、画像データを記憶する表示メモリとして機能し、
各データ転送制御部が、
前記画像データをメモリに書き込むためのライトアドレスを、前記アクセスアドレスとして生成するライトアドレス生成部と、
前記メモリに書き込まれる画像データをキューイングするライトデータキューと、
前記メモリに書き込まれる画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号をキューイングするライト同期キューとを含み、
前記ライトアドレス生成部が、
前記ライト同期キューから出力された同期信号に基づいて、前記垂直表示期間の開始タイミングでロードされ、且つ前記ライトデータキューのキューイング状態に応じて更新される前記ライトアドレスを生成すると共に、
前記ライト同期キューから出力された同期信号に基づいて、前記水平表示期間の終了タイミングで、次の水平表示期間の画像データを書き込むためのアドレスに更新される前記ライトアドレスを生成することを特徴とするメモリコントローラ。
【請求項５】
請求項４において、
前記メモリの記憶エリアに設定された複数のエリアを用いて、データのアクセスを行う場合に、
各データ転送制御部が、
前記メモリから前記画像データを読み出すためのリードアドレスを、前記アクセスアドレスとして生成するリードアドレス生成部と、
前記メモリから読み出された画像データをキューイングするリードデータキューと、
前記メモリから読み出された画像データの画素数をカウントして、該画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号を生成するリード同期管理部とを含み、
前記リードアドレス生成部が、
前記メモリのライトエリア情報で指定されるエリアとは異なる前記メモリのエリアから前記画像データを読み出すためであって、前記リード同期管理部によって生成された同期信号に基づいて更新される前記リードアドレスを生成し、
前記ライトエリア情報が、
前記ライトアドレスに基づいて前記データが書き込まれる前記メモリのエリアを指定する情報であることを特徴とするメモリコントローラ。
【請求項６】
請求項４又は５において、
前記ライト同期キューが、
前記画像の水平表示期間及び垂直表示期間の少なくとも１つの開始タイミングを示す１ビットのスタート情報と終了タイミングを示す１ビットのエンド情報とを、前記同期信号としてキューイングすることを特徴とするメモリコントローラ。
【請求項７】
請求項４乃至６のいずれかにおいて、
前記ライトデータキューが、
前記メモリのデータバス幅に対応したデータ量を１ブロックとする所定のブロック数のデータ量の画像データをキューイングし、
前記ライト同期キューが、
前記１ブロック毎に前記同期信号をキューイングすることを特徴とするメモリコントローラ。
【請求項８】
各機能モジュールがメモリに対してアクセス要求を行う第１〜第Ｎの機能モジュールと、
請求項１乃至７のいずれか記載のメモリコントローラと、
前記メモリコントローラによってアクセス制御されるメモリとを含むことを特徴とする画像処理コントローラ。
【請求項９】
画像データを入力するための画像データ入力インタフェースと、
請求項３乃至７のいずれか記載のメモリコントローラと、
前記メモリコントローラによってアクセス制御される表示メモリと、
前記表示メモリに記憶される画像データの回転処理を行う回転処理部と、
前記表示メモリから読み出された画像データを出力するための画像データ出力インタフェースとを含み、
前記回転処理部が、
前記メモリコントローラに対してリード要求を行って前記表示メモリから画像データを読み出した後、前記メモリコントローラに対してライト要求を行って、該画像データに対して行った回転処理後の画像データを前記表示メモリに書き込むことを特徴とする画像処理コントローラ。
【請求項１０】
請求項９において、
前記表示メモリの記憶領域が、
トリプルバッファ領域と、
ダブルバッファ領域とを含み、
前記トリプルバッファ領域が、
前記画像データ入力インタフェースと前記回転処理部とによってアクセスされ、
前記ダブルバッファ領域が、
前記回転処理部と前記画像データ出力インタフェースとによってアクセスされることを特徴とする画像処理コントローラ。
【請求項１１】
表示装置と、
請求項８乃至１０のいずれか記載の画像処理コントローラと、
前記画像処理コントローラによって供給される画像データに基づいて前記表示装置を駆動する表示ドライバとを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、画像処理コントローラ及び電子機器に関する。
【背景技術】
【０００２】
従来より、表示システムの制御を司るホストの処理負荷を軽減するために、液晶表示（Liquid Crystal Panel：以下、ＬＣＤと略す）パネルやＣＲＴ等の表示装置の画面に表示させる画像の加工等の画像処理をホストに代行する画像処理コントローラがある。画像処理コントローラは、表示メモリ（広義にはメモリ）を用いて画像処理を行う。
【０００３】
特許文献１に開示されているように、表示メモリの機能が、シンクロナスＤＲＡＭ（Synchronous Dynamic Random Access Memory：以下、ＳＤＲＡＭと略す）により実現されることがある。このＳＤＲＡＭが複数の機能モジュール（処理モジュール、処理部）によってアクセスされる場合、ＳＤＲＡＭコントローラが各機能モジュールとの間でアドレス、データ、制御信号をやり取りすることで、ＳＤＲＡＭへのアクセス制御を行う。
【０００４】
特許文献１では、パターンネームアドレス生成手段によって生成されたパターンネームアドレスに基づいてＳＤＲＡＭからパターンネームデータが読み出される。そして、該パターンネームデータに基づいて、更にキャラクタデータアドレス生成手段によりキャラクタデータのアドレスが生成され、該アドレスに基づいてＳＤＲＡＭからキャラクタデータが読み出される。
【特許文献１】特開平８−１１５０６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＳＤＲＡＭコントローラは、パターンネームアドレス生成手段やキャラクタデータアドレス生成手段等を含む機能モジュールがアドレスを出力するまで、ＳＤＲＡＭにアクセスできない。そのため、機能モジュールがアドレスを生成してＳＤＲＡＭにアクセス要求を行う場合、リードアクセス動作時やライトアクセス動作時に、機能モジュールが次の動作に移行できない期間が生じ、スループットを低下させてしまう。
【０００６】
図１７及び図１８に、機能モジュールが次の動作に移行できない期間の例を説明する図を示す。図１７は、ライトアクセス動作時において、機能モジュールが次の動作に移行できない期間Ｔ１を示す。図１８は、リードアクセス動作時において、機能モジュールが次の動作に移行できない期間Ｔ２を示す。
【０００７】
ライトアクセス動作時には、機能モジュールは、ライト要求WRReqをアクティブにすると共にライトアドレスを出力する。一般的に、機能モジュールは、該ライト要求WRReqに対応してＳＤＲＡＭコントローラが出力したライト承認WRAckを受け取るまでライトアドレスを出力し続ける必要がある。そのため、図１７の期間Ｔ１では、この機能モジュールは、ＳＤＲＡＭに対して次のアクセス要求を行うことができない。
【０００８】
リードアクセス動作時には、機能モジュールは、リード要求RDReqをアクティブにすると共にリードアドレスを出力する。この場合、リード要求RDReqに対応してＳＤＲＡＭコントローラが出力したリード承認RDAckを受け取るまでリードアドレスを出力し続ける必要がある。リード承認RDAckがアクティブになった後、遅延時間Ｔ２が経過した後にリードデータが出力されるため、この機能モジュールは、図１８の期間Ｔ２では、ＳＤＲＡＭに対して次のアクセス要求を行うことができない。
【０００９】
また、このようなスループットを低下させる複数の機能モジュールからＳＤＲＡＭに対してアクセス要求があった場合を考慮すると、機能モジュール間でアクセスエリアの状態を把握する必要があり、機能モジュール間でやり取りされる信号の組合せが多くなってしまう。特に、機能モジュールが追加されてしまうと、より一層複雑な信号の組合せが必要となる。
【００１０】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、機能モジュールの数に関係なく、汎用的なメモリインタフェースで各機能モジュールから要求されるアクセスのスループットを向上させるメモリコントローラ、画像処理コントローラ及び電子機器を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明は、
第１〜第Ｎ（Ｎは２以上の整数）の機能モジュールによりメモリをアクセスするためのメモリコントローラであって、
各データ転送制御部へのアクセス要求に応じて前記メモリのデータ転送要求を行う第１〜第Ｍ（１＜Ｍ≦Ｎ、Ｍは整数）のデータ転送制御部と、
前記第１〜第Ｎの機能モジュールの１つの機能モジュールからのアクセス要求を、前記第１〜第Ｍのデータ転送制御部のいずれかに供給するためのクロスバスイッチ部と、
前記第１〜第Ｍのデータ転送制御部のデータ転送要求を調停するアービタと、
前記アービタによって調停された前記第１〜第Ｍのデータ転送制御部の１つのデータ転送制御部のデータ転送要求に基づいて前記メモリにアクセスするためのメモリインタフェースとを含み、
各データ転送制御部が、
各データ転送制御部へのアクセス要求に基づいて、前記メモリへのアクセスアドレスを生成すると共に、
前記アービタによって調停された結果、前記メモリに対するデータ転送要求が許可されたとき、前記アクセスアドレスを用いて前記メモリからのデータの読み出し制御、又は前記メモリへのデータの書き込み制御を行うメモリコントローラに関係する。
【００１２】
本発明においては、第１〜第Ｎの機能モジュールの各機能モジュールとメモリとの間のインタフェース処理を行うことができる。これにより、各機能モジュールのインタフェースに関係なく、メモリのインタフェースを汎用的なメモリインタフェースにでき、この汎用的なメモリインタフェースで、複数の機能モジュールからアクセスできるようになる。
【００１３】
更に本発明においては、機能モジュール側ではなくメモリコントローラ側でアクセスアドレスを生成するようにしたので、アクセスアドレスを出力した直後に該機能モジュールが次の動作に移れないという事態を回避できるようになる。そのため、メモリに対するアクセス動作時における各機能モジュールの無駄な動作時間を省略でき、処理のスループットを向上させることができる。
【００１４】
また本発明においては、複数のデータ転送制御部を含み、クロスバスイッチ部により、機能モジュールからのアクセス要求をいずれかのデータ転送制御部に供給できるようにした。これにより、メモリに対し、複数のデータ転送制御部から同時にアクセス要求を行ったときの調停に必要な信号のやり取りは、メモリコントローラ側で行うことができる。そのため、機能モジュールを追加した場合に、機能モジュール間でやり取りされる信号線を追加する必要がなくなると共に機能モジュールの追加が容易となり、拡張性の高いメモリコントローラを提供できる。
【００１５】
また本発明に係るメモリコントローラでは、
前記メモリの記憶エリアに設定された複数のエリアを用いて、データのアクセスを行う場合に、
各データ転送制御部が、
前記メモリにデータを書き込むためのライトアドレスを前記アクセスアドレスとして生成するライトアドレス生成部と、
前記メモリからデータを読み出すためのリードアドレスを前記アクセスアドレスとして生成するリードアドレス生成部とを含み、
前記リードアドレス生成部が、
前記メモリのライトエリア情報により指定されるエリアとは異なる前記メモリのエリアからデータを読み出すためのリードアドレスを生成し、
前記ライトエリア情報が、
前記ライトアドレスに基づいて前記データが書き込まれる前記メモリのエリアを指定する情報であってもよい。
【００１６】
本発明においては、各データ転送制御部がライトアドレス生成部及びリードアドレス生成部を含み、各アドレス生成部が独立に機能モジュールからのアクセス要求を受け付けるようにする。その一方、リードアドレス生成部がライトアドレス生成部によりアクセスされるライトエリア情報を参照してリードアドレスを生成できるようにしている。これにより、ダブルバッファリング方式やトリプルバッファリング方式で機能モジュールがメモリにアクセスする場合、機能モジュール側でメモリのエリアを判別する必要がなくなり、各機能モジュールはバッファリング方式を意識する必要がなくなる。
【００１７】
また本発明に係るメモリコントローラでは、
前記メモリが、画像データを記憶する表示メモリとして機能し、
各データ転送制御部が、
前記メモリから前記画像データを読み出すためのリードアドレスを、前記アクセスアドレスとして生成するリードアドレス生成部と、
前記メモリから読み出された画像データをキューイングするリードデータキューと、
前記メモリから読み出された画像データの画素数をカウントして、該画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号を生成するリード同期管理部とを含み、
前記リードアドレス生成部が、
前記リード同期管理部によって生成された同期信号に基づいて更新される前記リードアドレスを生成することができる。
【００１８】
本発明においては、各データ転送制御部でデータ等をキューイングするようにしたので、各機能モジュールからのアクセス要求とメモリへのアクセス要求の調停とのタイミングが分離される。その結果、メモリにアクセスする画像のブランキング期間と実際に表示される画像のブランキング期間とは時間的なずれが生じる。従って、本発明では、メモリのデータ転送が、実質的に表示画像のブランキング期間にも行われていることになり、データ転送のスループットの向上に寄与させることができる。
【００１９】
また本発明に係るメモリコントローラでは、
前記メモリが、画像データを記憶する表示メモリとして機能し、
各データ転送制御部が、
前記画像データをメモリに書き込むためのライトアドレスを、前記アクセスアドレスとして生成するライトアドレス生成部と、
前記メモリに書き込まれる画像データをキューイングするライトデータキューと、
前記メモリに書き込まれる画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号をキューイングするライト同期キューとを含み、
前記ライトアドレス生成部が、
前記ライト同期キューから出力された同期信号に基づいて、前記垂直表示期間の開始タイミングでロードされ、且つ前記ライトデータキューのキューイング状態に応じて更新される前記ライトアドレスを生成すると共に、
前記ライト同期キューから出力された同期信号に基づいて、前記水平表示期間の終了タイミングで、次の水平表示期間の画像データを書き込むためのアドレスに更新される前記ライトアドレスを生成することができる。
【００２０】
また本発明に係るメモリコントローラでは、
前記メモリの記憶エリアに設定された複数のエリアを用いて、データのアクセスを行う場合に、
各データ転送制御部が、
前記メモリから前記画像データを読み出すためのリードアドレスを、前記アクセスアドレスとして生成するリードアドレス生成部と、
前記メモリから読み出された画像データをキューイングするリードデータキューと、
前記メモリから読み出された画像データの画素数をカウントして、該画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号を生成するリード同期管理部とを含み、
前記リードアドレス生成部が、
前記メモリのライトエリア情報で指定されるエリアとは異なる前記メモリのエリアから前記画像データを読み出すためであって、前記リード同期管理部によって生成された同期信号に基づいて更新される前記リードアドレスを生成し、
前記ライトエリア情報が、
前記ライトアドレスに基づいて前記データが書き込まれる前記メモリのエリアを指定する情報であってもよい。
【００２１】
また本発明に係るメモリコントローラでは、
前記ライト同期キューが、
前記画像の水平表示期間及び垂直表示期間の少なくとも１つの開始タイミングを示す１ビットのスタート情報と終了タイミングを示す１ビットのエンド情報とを、前記同期信号としてキューイングすることができる。
【００２２】
また本発明に係るメモリコントローラでは、
前記ライトデータキューが、
前記メモリのデータバス幅に対応したデータ量を１ブロックとする所定のブロック数のデータ量の画像データをキューイングし、
前記ライト同期キューが、
前記１ブロック毎に前記同期信号をキューイングすることができる。
【００２３】
また本発明は、
各機能モジュールがメモリに対してアクセス要求を行う第１〜第Ｎの機能モジュールと、
上記のいずれか記載のメモリコントローラと、
前記メモリコントローラによってアクセス制御されるメモリとを含む画像処理コントローラに関係する。
【００２４】
また本発明は、
画像データを入力するための画像データ入力インタフェースと、
上記のいずれか記載のメモリコントローラと、
前記メモリコントローラによってアクセス制御される表示メモリと、
前記表示メモリに記憶される画像データの回転処理を行う回転処理部と、
前記表示メモリから読み出された画像データを出力するための画像データ出力インタフェースとを含み、
前記回転処理部が、
前記メモリコントローラに対してリード要求を行って前記表示メモリから画像データを読み出した後、前記メモリコントローラに対してライト要求を行って、該画像データに対して行った回転処理後の画像データを前記表示メモリに書き込む画像処理コントローラに関係する。
【００２５】
また本発明に係る画像処理コントローラでは、
前記表示メモリの記憶領域が、
トリプルバッファ領域と、
ダブルバッファ領域とを含み、
前記トリプルバッファ領域が、
前記画像データ入力インタフェースと前記回転処理部とによってアクセスされ、
前記ダブルバッファ領域が、
前記回転処理部と前記画像データ出力インタフェースとによってアクセスされてもよい。
【００２６】
これらのいずれかの発明によれば、機能モジュールの数に関係なく、汎用的なメモリインタフェースで各機能モジュールから要求されるアクセスのスループットを向上させるメモリコントローラを含む画像処理コントローラを提供できる。
【００２７】
また本発明は、
表示装置と、
上記のいずれか記載の画像処理コントローラと、
前記画像処理コントローラによって供給される画像データに基づいて前記表示装置を駆動する表示ドライバとを含む電子機器に関係する。
【００２８】
本発明によれば、機能モジュールの数に関係なく、汎用的なメモリインタフェースで各機能モジュールから要求されるアクセスのスループットを向上させるメモリコントローラを含む電子機器を提供できる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００３０】
１．  画像処理コントローラ
図１に、本実施形態における画像処理コントローラの構成の概要を示すブロック図を示す。
【００３１】
本実施形態における画像処理コントローラ１００は、静止画又は動画の画像データを記憶する表示メモリ２００を含み、表示メモリ２００を用いて画像データに対して画像処理を行う。より具体的には、画像処理コントローラ１００は、更に第１〜第Ｎ（Ｎは２以上の整数）の機能モジュール１１０−１〜１１０−Ｎを含み、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎのいずれかが表示メモリ２００にアクセスしながら画像データに対する画像処理を行う。このような機能モジュールとしては、例えば画像の回転処理を行う回転処理部、画像データの圧縮処理や伸張処理を行う画像データ圧縮伸張処理部、画像サイズの縮小処理や拡大処理を行うリサイザ等があり、画像処理コントローラ１００の外部装置とのインタフェース処理を行うインタフェース回路もまた機能モジュールとして採用できる。
【００３２】
また画像処理コントローラ１００では、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎの表示メモリ２００に対するアクセス制御（ライト制御、リード制御）を行うメモリコントローラ３００を含む。メモリコントローラ３００は、表示メモリ２００のインタフェース仕様（信号の種類、信号のタイミング、信号の電気的特性等）と第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎの各機能モジュールのインタフェース仕様との違いを吸収し、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎのいずれかの表示メモリ２００に対するアクセスを実現させる。そのため、メモリコントローラ３００は、表示メモリ２００とメモリコントローラ３００との間のインタフェース処理を行うことができる。またメモリコントローラ３００は、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎの各機能モジュールとメモリコントローラ３００との間のインタフェース処理を行うことができる。これにより、各機能モジュールのインタフェースに関係なく、表示メモリ２００のインタフェースを汎用的なメモリインタフェースにでき、この汎用的なメモリインタフェースで、複数の機能モジュールからアクセスできるようになる。
【００３３】
第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎの各機能モジュールは、メモリコントローラ３００に対してアクセス要求（ライト要求、リード要求）を行い、メモリコントローラ３００が該アクセス要求に対してアクセス承認（ライト承認、リード承認）を返す、いわゆるハンドシェイク方式で信号のやり取りを行う。
【００３４】
またメモリコントローラ３００は、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎからのアクセス要求（ライト要求、リード要求）を調停することができる。そのため第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎのうち複数の機能モジュールから同時に表示メモリ２００に対するアクセス要求が発生した場合、複数のアクセス要求を調停し、調停した結果、許可された機能モジュールのアクセス要求に対応したアクセスを実現させる。
【００３５】
即ち、各機能モジュールは、アクセス要求Req（ライト要求WRReq、リード要求RDReq）、同期信号（垂直表示期間及び水平表示期間を規定する信号）及びライト時はデータをメモリコントローラ３００に対して出力する。メモリコントローラ３００は、アクセス要求Req及び同期信号等を受け付けると、アクセス要求を行った機能モジュールに対してアクセス承認Ack（ライト承認WRAck、リード承認RDAck）を返す。その後、メモリコントローラ３００は、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎのアクセス要求を調停し、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎのいずれかのアクセス要求に応じて、表示メモリ２００のアクセスアドレス（ライトアドレス、リードアドレス）を生成し、該アクセスアドレス、アクセスを行うための制御信号及び必要な場合にはデータを表示メモリ２００に出力して、表示メモリ２００に対するアクセス制御を行う。
【００３６】
このように画像処理コントローラ１００では、アクセス要求を行う第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎが、表示メモリ２００にアクセスするためのアクセスアドレスを生成することなく、アクセス要求Req及びデータを送るのみである。従って、各機能モジュールは、表示メモリ２００に対するアクセス要求を行った直後に、次の動作を実行できるようになる。そのため、表示メモリ２００に対するアクセス動作時における各機能モジュールの無駄な動作時間を省略でき、処理のスループットを向上させることができる。
【００３７】
２．  メモリコントローラ
図２に、図１のメモリコントローラ３００の構成の概要のブロック図を示す。
【００３８】
なおメモリコントローラ３００の構成は図２に示すすべてのブロックを含むものに限定されるものではなく、図２の少なくとも一部が省略された構成を有するものであってもよい。
【００３９】
メモリコントローラ３００は、第１〜第Ｎのモジュールインタフェース（InterFace：以下、Ｉ／Ｆと略す）３１０−１〜３１０−Ｎと、メモリＩ／Ｆ３２０とを含む。第１〜第ＮのモジュールＩ／Ｆ３１０−１〜３１０−Ｎの各モジュールＩ／Ｆは、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎの各機能モジュールに接続され、各機能モジュールとメモリコントローラ３００との間のインタフェース処理を行う。メモリＩ／Ｆ３２０は、表示メモリ２００とメモリコントローラ３００との間のインタフェース処理を行う。
【００４０】
メモリコントローラ３００は、更に、ＤＭＡ（Direct Memory Access）コントローラ４００−１〜４００−Ｍ（１＜Ｍ≦Ｎ、Ｍは整数）（第１〜第Ｍのデータ転送制御部）と、クロスバスイッチ部３３０と、アービタ３４０とを含む。
【００４１】
ＤＭＡコントローラ４００−１〜４００−Ｍの各ＤＭＡコントローラは、各ＤＭＡコントローラへのアクセス要求に応じて表示メモリ２００のデータ転送要求を行う。クロスバスイッチ部３３０は、第１〜第Ｎの機能モジュール１１０−１〜１１０−Ｎの１つの機能モジュールのアクセス要求を、ＤＭＡコントローラ４００−１〜４００−Ｍのいずれかに供給する。アービタ３４０は、ＤＭＡコントローラ４００−１〜４００−Ｍからのデータ転送要求を調停する。そして、メモリＩ／Ｆ３２０は、アービタ３４０によって調停されたＤＭＡコントローラ４００−１〜４００−Ｍの１つのＤＭＡコントローラのデータ転送要求に基づいて、表示メモリ２００にアクセスするためのインタフェース処理を行う。
【００４２】
このとき、各ＤＭＡコントローラが、各ＤＭＡコントローラへのアクセス要求に基づいて、表示メモリ２００へのアクセスアドレスを生成する。またアービタ３４０によって調停された結果、表示メモリ２００に対するデータ転送要求が許可されたとき、各ＤＭＡコントローラは、上記のアクセスアドレスを用いて表示メモリ２００からの画像データの読み出し制御、又は表示メモリ２００への画像データの書き込み制御を行う。
【００４３】
このためメモリコントローラ３００は、コンフィギュレーションレジスタ３５０を含むことができる。コンフィギュレーションレジスタ３５０には、図示しないホストにより設定データが設定される。このようなコンフィギュレーションレジスタ３５０の設定データに基づいて、クロスバスイッチ部３３０は、ＤＭＡコントローラ４００−１〜４００−Ｍの各ＤＭＡコントローラに、第１〜第ＮのモジュールＩ／Ｆ３１０−１〜３１０−Ｎのいずれかからのアクセス要求が供給されるようにスイッチの接続制御を行う。またコンフィギュレーションレジスタ３５０の設定データに基づいて、ＤＭＡコントローラ４００−１〜４００−Ｍの各ＤＭＡコントローラでは、そのデータ転送の方向（ライト又はリード）が定められると共に、スタートアドレスやアドレスの更新単位が定められてアクセスアドレスが生成される。
【００４４】
このようなコンフィギュレーションレジスタ３５０でスイッチの接続制御が行われるクロスバスイッチ部３３０を設けることで、機能モジュールの数に関係なく、各機能モジュールからのアクセス要求に応じて表示メモリ２００のデータ転送を行うことができる。また、容易に機能モジュールを追加することができる。
【００４５】
図３に、本実施形態における同期信号の説明図を示す。
【００４６】
本実施形態における同期信号は、VACT、HACTを含む。VACTは、画像の垂直表示期間を規定する信号であり、水平表示期間が有効な期間にアクティブとなる。従って、VACTにより、１垂直走査期間もまた規定することができる。垂直表示期間は、画像の有効ライン（有効画素（表示画素）を含むライン）を含む期間である。
【００４７】
HACTは、画像の水平表示期間を規定する信号であり、画像データが有効な期間にアクティブとなる。従って、HACTにより１水平走査期間もまた規定することができる。水平表示期間は、画像の１ラインの有効画素（表示画素）を含む期間である。
【００４８】
図４に、本実施形態において機能モジュールがＤＭＡコントローラに対してライト要求を行う場合の動作タイミングの一例を示す。
【００４９】
図４では、コンフィギュレーションレジスタ３５０の設定データに基づいて、クロスバスイッチ部３３０が、第１の機能モジュール１１０−１からのライト要求をＤＭＡコントローラ４００−Ｍに出力する場合のタイミングの一例を示す。
【００５０】
第１の機能モジュール１１０−１は、システムクロックCLKに同期してVACT及びHACTをアクティブにする。そして第１の機能モジュール１１０−１は、ＤＭＡコントローラ４００−Ｍに対するライト要求WRReqをアクティブにすると共に、ライトデータWRDTを出力する。このVACT、HACT及びライト要求WRReqは、クロスバスイッチ部３３０により、ＤＭＡコントローラ４００−Ｍに対し、第１の機能モジュール１１０−１からのデータ転送要求として送られる。
【００５１】
ＤＭＡコントローラ４００−Ｍは、VACT、HACT、ライト要求WRReq及びライトデータWRDTをキューイングし、ライト要求WRReqがアクティブになると、ライト承認WRAckをアクティブにして第１の機能モジュール１１０−１に返す。ＤＭＡコントローラ４００−Ｍは、VACT及びHACTがアクティブのときライトデータWRDTをキューイングしていく。その後、ライトするデータがなくなると、第１の機能モジュール１１０−１は、HACTを非アクティブにした後、ライト要求WRReqを非アクティブにする。これを受けたＤＭＡコントローラ４００−Ｍは、ライト承認WRAckを非アクティブにして返す。以上のようにして第１の機能モジュール１１０−１は、１フレーム分の画像データのライト要求をＤＭＡコントローラ４００−Ｍに対して行う。
【００５２】
以上のようにして、VACT、HACT、ライト要求WRReqが非アクティブの状態でライト承認WRAckが非アクティブになった後は、第１の機能モジュール１１０−１は、ライト要求を行ったデータの表示メモリ２００への書き込みが完了することを待つことなく、次の動作を実行できる。
【００５３】
図５に、本実施形態において機能モジュールがＤＭＡコントローラに対してリード要求を行う場合の動作タイミングの一例を示す。
【００５４】
図５では、コンフィギュレーションレジスタ３５０の設定データに基づいて、クロスバスイッチ部３３０が、第１の機能モジュール１１０−１からのリード要求をＤＭＡコントローラ４００−Ｍに出力する場合のタイミングの一例を示す。
【００５５】
第１の機能モジュール１１０−１は、システムクロックCLKに同期してVACT及びHACTをアクティブにし、ＤＭＡコントローラ４００−Ｍに対するリード要求RDReqをアクティブにする。このVACT、HACT及びリード要求RDReqは、クロスバスイッチ部３３０により、ＤＭＡコントローラ４００−Ｍに対し、第１の機能モジュール１１０−１からのデータ転送要求として送られる。
【００５６】
ＤＭＡコントローラ４００−Ｍは、リード要求RDReqがアクティブになると、リード承認RDAckをアクティブにする。そしてＤＭＡコントローラ４００−Ｍは、コンフィギュレーションレジスタ３５０の設定データに基づいて既に表示メモリ２００から先読みされて保持したリードデータを、VACT及びHACTに同期させて出力する。
【００５７】
以上のようにして第１の機能モジュール１１０−１は、１フレーム分の画像データのリード要求をＤＭＡコントローラ４００−Ｍに対して行う。そしてリード時には、既に先読みされたリードデータをリード承認RDAckにより読み出す。このため、第１の機能モジュール１１０−１は、リード要求RDReqを行った後にリードデータが出力されるまで待つ期間が短くなり、迅速に次の動作を実行できるようになる。
【００５８】
図６に、図２のＤＭＡコントローラ４００−１の構成例のブロック図を示す。図６では、ＤＭＡコントローラ４００−１〜４００−ＭのうちＤＭＡコントローラ４００−１の構成のみを示すが、他のＤＭＡコントローラ４００−２〜４００−Ｍの構成もＤＭＡコントローラ４００−１の構成と同様である。
【００５９】
なおＤＭＡコントローラ４００−１の構成は図６に示すすべてのブロックを含むものに限定されるものではなく、図６の少なくとも一部が省略された構成を有するものであってもよい。
【００６０】
ＤＭＡコントローラ４００−１は、ライトアドレス生成部４１０と、リードアドレス生成部４２０とを含む。本実施形態では、ライトアドレス生成部４１０に対してライト要求を行う機能モジュールと、リードアドレス生成部４２０に対してリード要求を行う機能モジュールとを独立に設定できる。この設定は、コンフィギュレーションレジスタ３５０の設定データに基づいて行われる。
【００６１】
ライトアドレス生成部４１０は、表示メモリ２００に画像データを書き込むためのライトアドレスを、アクセスアドレスとして生成する。リードアドレス生成部４２０は、表示メモリ２００から画像データを読み出すためのリードアドレスを、アクセスアドレスとして生成する。
【００６２】
本実施形態では、ＤＭＡコントローラ４００−１が、いわゆるダブルバッファリングやトリプルバッファリングと呼ばれるアクセス方式で表示メモリ２００をアクセスする。即ち、ＤＭＡコントローラ４００−１は、表示メモリ２００の記憶エリアに設定された複数のエリアを用いて、データのアクセスを行う。更に具体的には、１画面分の画像データのアクセス（リードアクセス、ライトアクセス）が連続した場合、ＤＭＡコントローラ４００−１は、アクセス対象の記憶エリアを変更しながら表示メモリ２００に対してアクセスする。
【００６３】
このためライトアドレス生成部４１０は、ライトアドレスを生成すると共に、例えば画像データが書き込まれる表示メモリ２００の記憶エリアを指定するライトエリア情報を生成することができる。なおライトエリア情報は、コンフィギュレーションレジスタ３５０の設定データに基づいて生成されてもよい。
【００６４】
そして、リードアドレス生成部４２０は、ライトアドレス生成部４１０からのライトエリア情報により指定されるエリアとは異なる表示メモリ２００のエリアからデータを読み出すためのリードアドレスを生成する。
【００６５】
図７に、表示メモリ２００の記憶エリアの説明図を示す。
【００６６】
表示メモリ２００の記憶エリアのうち、図７に示すように２つのエリアＡ、エリアＢが設定されているものとする。そしてＤＭＡコントローラ４００−１が、表示メモリ２００のエリアＡ、エリアＢを用いて、ダブルバッファリング方式でアクセスするものとする。
【００６７】
図８に、ＤＭＡコントローラ４００−１のダブルバッファリング方式によるアクセスの説明図を示す。
【００６８】
例えばエリアＡに対するライト要求が発生しているときにリード要求が発生したとき、リードアドレス生成部４２０は、エリアＢに対するリードアドレスを生成する。また例えばエリアＢに対するライト要求が発生しているときにリード要求が発生したとき、リードアドレス生成部４２０は、エリアＡに対するリードアドレスを生成する。
【００６９】
このようにダブルバッファリング方式において表示メモリ２００をアクセスする場合に、機能モジュール側で表示メモリ２００のエリアを判別する必要がなくなり、各機能モジュールはバッファリング方式を意識する必要がなくなる。例えば、機能モジュール側でエリアを判別しようとすると、未だアクセスが行われていない可能性があるにもかかわらず、アクセス要求のみを基準にエリアを判別しなければならない。従って、本来は別のエリアをアクセスすべきにもかかわらず、他のエリアにアクセスしてしまう場合もある。
【００７０】
図６において、ＤＭＡコントローラ４００−１は、更に、リードＦＩＦＯ部（リードデータキュー）４３０と、リード同期管理部４４０とを含むことができる。リードＦＩＦＯ部４３０は、表示メモリ２００から読み出された画像データをキューイングする。リード同期管理部４４０は、VACT及びHACT（画像データにより表される画像の水平表示期間走査期間及び垂直走査期間を規定する同期信号）を生成する。より具体的には、リード同期管理部４４０は、表示メモリ２００から読み出された画像データの画素数をカウントすることで、VACT及びHACTを生成する。更に具体的には、リード同期管理部４４０は、ＤＭＡコントローラ４００−１からアービタ３４０へのリード要求RDReqaに対応するリード承認RDAckaに基づいて、画像データの画素数をカウントできる。そして、リードアドレス生成部４２０は、リード同期管理部４４０によって生成されたVACT及びHACTに基づいて更新されるリードアドレスを生成する。
【００７１】
またＤＭＡコントローラ４００−１は、更に、ライトＦＩＦＯ部（ライトデータキュー）４５０とライト同期キュー部４６０とを含むことができる。ライトＦＩＦＯ部４５０は、表示メモリ２００に書き込まれる画像データをキューイングする。ライト同期キュー部４６０は、VACT及びHACT（表示メモリ２００に書き込まれる画像データにより表される画像の水平表示期間及び垂直表示期間を規定する同期信号）をキューイングする。
【００７２】
そしてライトアドレス生成部４１０は、ライト同期キュー部４６０にキューイングされるVACTに基づいて定められる垂直表示期間の開始タイミング以降、ライトＦＩＦＯ部４５０のキューイング状態に応じて更新されるライトアドレスを生成する。更にライトアドレス生成部４１０は、ライト同期キュー部４６０にキューイングされるHACTに基づいて定められる水平表示期間の終了タイミングで、次の水平表示期間の画像データを書き込むためのアドレスに更新されたライトアドレスを生成する。
【００７３】
ライト同期キュー部４６０がキューイングする同期信号は、画像の水平表示期間及び垂直表示期間の少なくとも１つの開始タイミングを示す１ビットのスタート情報と終了タイミングを示す１ビットのエンド情報とをキューイングすることが望ましい。こうすることで、ライト同期キュー部４６０がキューイングすべき同期信号の情報量を削減できる。
【００７４】
図９に、ライトＦＩＦＯ部４５０とライト同期キュー部４６０の説明図を示す。
【００７５】
ライトＦＩＦＯ部４５０は、先入れ先出し機能を有するメモリであるＦＩＦＯ（First-In First-Out）４５２を含む。ＦＩＦＯ４５２の各段には、表示メモリ２００のデータバス幅に対応したバイト数の画像データが保持される。
【００７６】
なお図６に示すリードＦＩＦＯ部４３０もまた、ＦＩＦＯ４３２を含み、ＦＩＦＯ４３２の各段には、表示メモリ２００のデータバス幅に対応したバイト数の画像データが保持されるようになっている。
【００７７】
ライト同期キュー部４６０もまた、先入れ先出し機能を有するメモリであり、ライト同期キュー部４６０の各段は、ライトＦＩＦＯ部４５０のＦＩＦＯ４５２の各段に対応した同期信号を保持する。
【００７８】
即ち、ライトＦＩＦＯ部４５０が、表示メモリ２００のデータバス幅及びバースト長に対応したデータ量を１ブロックとする所定のブロック数のデータ量の画像データをキューイングする。そして、ライト同期キュー部４６０が、１ブロック毎に同期信号をキューイングする。
【００７９】
この同期信号として、VACTの立ち上がりエッジで「１」を示すラインスタート情報、VACTの立ち下がりエッジで「１」を示すラインエンド情報、HACTの立ち上がりエッジで「１」を示すピクセルスタート情報、HACTの立ち下がりエッジで「１」を示すピクセルエンド情報が、キューイングされる。
【００８０】
ライト要求WRReqaに対してライト承認WRAckaが返る度に、ライトＦＩＦＯ部４５０にキューイングされる画像データ及びライト同期キュー部４６０にキューイングされる同期信号は、互いに同期しながら出力される。
【００８１】
ライトアドレス生成部４１０は、ラインスタート情報及びラインエンド情報により、図３の垂直表示期間を判別できる。またライトアドレス生成部４１０は、ピクセルスタート情報及びピクセルエンド情報により、図３の水平表示期間を判別できる。これに対してリードアドレス生成部４２０は、リード同期管理部４４０によって生成された同期信号であるVACT、HACTにより、図３の垂直表示期間及び水平表示期間を判別できる。
【００８２】
図１０に、図６のライトアドレス生成部４１０の構成例のブロック図を示す。
【００８３】
ライトアドレス生成部４１０は、アドレスインクリメンタ４１２、加算器４１４、セレクタ４１６、リードエリア指定部４１８を含むことができる。
【００８４】
アドレスインクリメンタ４１２には、ラインスタート情報が「１」になると、コンフィギュレーションレジスタ３５０のライトスタートアドレス設定レジスタ３５２に設定されたライトスタートアドレスがロードされる。その後、アドレスインクリメンタ４１２は、ライト承認WRAckaが返る度にアドレスを更新していく。
【００８５】
アドレスインクリメンタ４１２の出力は、加算器４１４に入力される。この加算器４１４には、コンフィギュレーションレジスタ３５０のライトオフセットアドレス設定レジスタ３５４に設定されたライトオフセットアドレスも入力される。加算器４１４は、アドレスインクリメンタ４１２の出力とライトオフセットアドレスとを加算する。
【００８６】
セレクタ４１６は、ピクセルエンド情報が「０」のときアドレスインクリメンタ４１２の出力をライトアドレスとして出力し、ピクセルエンド情報が「１」のとき加算器４１４の出力をライトアドレスとして出力する。
【００８７】
この結果、ラインスタート情報が「１」になるとライトスタートアドレスをロードして、その後ライトアドレスを更新していく。そしてピクセルエンド情報が「１」になると、１ライン分のライトアドレスの更新を終了し、次のラインの先頭アドレスとするため、ライトオフセットアドレスを加算したアドレスをライトアドレスとして出力する。
【００８８】
リードエリア指定部４１８が、ラインスタート情報に基づいて、ライトエリアとは異なる表示メモリ２００のエリアを順次変更しながらリードエリアとして指定する一方、ライトエリア情報をリードアドレス生成部４２０に対して出力する。例えば表示メモリ２００の２つのエリアを用いる場合、リードエリア指定部４１８は、ラインスタート情報に基づいてリードエリアをトグルしながら切り替え、そのトグル結果に対応したライトエリア情報を出力する。
【００８９】
なおコンフィギュレーションレジスタ３５０のライトエリア指定レジスタ３５６によって指定されたライトエリアが、リードエリア指定部４１８に供給されてもよい。この場合、リードエリア指定部４１８は、ライトエリアとは異なる表示メモリ２００のエリアをリードエリアとして指定するため、ライトエリア情報をリードアドレス生成部４２０に対して出力する。
【００９０】
図１１に、図６のリードアドレス生成部４２０の構成例のブロック図を示す。
【００９１】
図１１では、リードアドレス生成部４２０の他に、同期信号であるVACT及びHACTを生成するリード同期管理部４４０についても合わせて示している。リード同期管理部４４０は、画素カウンタ４４２を含む。画素カウンタ４４２は、コンフィギュレーションレジスタ３５０のピクセル数設定レジスタ３６０及びライン数設定レジスタ３６２の設定データに基づいて、リード要求RDReqaに対するリード承認RDAckaが返る度にカウントアップし、VACT及びHACTを生成する。
【００９２】
より具体的には、ピクセル数設定レジスタ３６０には、１ラインの画素数又は該画素数に対応した値が設定データとして設定される。ライン数設定レジスタ３６２には、画像のライン数又は該ライン数に対応した値が設定データとして設定される。これにより、画素カウンタ４４２では、画像のライン数及び１ラインの画素数とを判別して、表示メモリ２００から画像データを読み出しながら、図３の垂直表示期間及び水平表示期間に対応するVACT及びHACTを生成する。このVACT及びHACTは、リードアドレス生成部４２０に供給される。
【００９３】
リードアドレス生成部４２０は、アドレスインクリメンタ４２２、加算器４２４、セレクタ４２６を含むことができる。
【００９４】
リード同期管理部４４０からのVACTが非アクティブからアクティブに変化する立ち上がりエッジで、アドレスインクリメンタ４２２には、コンフィギュレーションレジスタ３５０のリードスタートアドレス設定レジスタ３６４に設定されたリードスタートアドレスがロードされる。その後、アドレスインクリメンタ４２２は、リード承認RDAckaが返る度にアドレスを更新していく。
【００９５】
アドレスインクリメンタ４２２の出力は、加算器４２４に入力される。この加算器４２４には、コンフィギュレーションレジスタ３５０のリードオフセットアドレス設定レジスタ３６６に設定されたリードオフセットアドレスも入力される。加算器４２４は、アドレスインクリメンタ４２２の出力とリードオフセットアドレスとを加算する。
【００９６】
セレクタ４２６は、HACTがアクティブのときアドレスインクリメンタ４２２の出力をリードアドレスとして出力し、HACTがアクティブから非アクティブに変化する立ち下がりタイミングのとき加算器４２４の出力をリードアドレスとして出力する。
【００９７】
この結果、VACTがアクティブに変化するとリードスタートアドレスをロードして、その後リードアドレスを更新していく。そして、HACTが非アクティブに変化すると、１ライン分のリードアドレスの更新を終了し、次のラインの先頭アドレスとするため、リードオフセットアドレスを加算したアドレスをリードアドレスとして出力する。
【００９８】
なおリードスタートアドレス設定レジスタ３６４からは、ライトアドレス生成部４１０からのライトエリア情報により指定されるエリアとは異なる表示メモリ２００のエリアから画像データを読み出すためのリードスタートアドレスが出力される。
【００９９】
図１２に、本実施形態におけるＤＭＡコントローラ４００−１とアービタ３４０との間でやり取りされる信号のタイミングの一例を示す。
【０１００】
図１２では、ライトアクセスが３回連続した後にリードアクセスが行われる例を示している。ここでは、ＤＭＡコントローラ４００−１とアービタ３４０との間でやり取りされる信号のタイミング図を示すが、ＤＭＡコントローラ４００−２〜４００−Ｍの各ＤＭＡコントローラとアービタ３４０との間でやり取りされる信号のタイミングも同様である。
【０１０１】
以下、データやコマンドの末尾が「Ａ」のものは表示メモリ２００に設定されたエリアＡへのアクセスに関するもので、末尾が「Ｂ」のものは表示メモリ２００に設定されたエリアＢへのアクセスに関するものとする（以下の「Ａ」、「Ｂ」は、図７、図８で説明したエリアＡ、エリアＢとは異なる）。
【０１０２】
まずＤＭＡコントローラ４００−１が、ライト要求WRReqaをアクティブにしてライトアドレスADR0及びライトデータD0Aを出力する（ＴＧ１）。
【０１０３】
アービタ３４０が、ＤＭＡコントローラ４００−１からのライト要求WRReqaに応答してライト承認WRAckaを返す（ＴＧ２）と、ＤＭＡコントローラ４００−１はライトアドレスをADR1に更新すると共に、ライトデータD1A、D2A、・・・を順次出力していく。
【０１０４】
メモリＩ／Ｆ３２０は、ＤＭＡコントローラ４００−１からのライトアドレスに基づいて、ライトデータを表示メモリ２００に順次書き込んでいく。より具体的にはメモリＩ／Ｆ３２０は、ライトアドレスに基づいて表示メモリ２００のロウアドレス及びカラムアドレスを出力すると共に、複数の制御信号の組合せに対応したコマンドを出力することで表示メモリ２００へのアクセスを実現する（ＴＧ３）。
【０１０５】
３回目のライト動作時に、ＤＭＡコントローラ４００−１が、リード要求RDReqaを発生させるものとする（ＴＧ４）。このときＤＭＡコントローラ４００−１は、リード要求RDReqaと共にリードアドレスRDRを出力する。
【０１０６】
そして、３回目のライト要求WRReqaに対するライト承認WRAckaが返ると、アービタ３４０は、リード要求RDReqaに応答してリード承認RDAckaを返す（ＴＧ５）。従って、メモリＩ／Ｆ３２０は、３回目のライト承認WRAcka後にライトアクセスを行った後、リードアクセスを行う。
【０１０７】
なおリード動作時には、リードデータと共にアクティブとなるRDEnbにより、リードＦＩＦＯ部４３０のＦＩＦＯ４３２に該リードデータがラッチされる。
【０１０８】
図１３に、本実施形態におけるＤＭＡコントローラ４００−１とアービタ３４０との間でやり取りされる信号のタイミングの他の例を示す。
【０１０９】
図１３では、リードアクセスが３回連続した後にライトアクセスが行われる例を示している。ここでは、ＤＭＡコントローラ４００−１とアービタ３４０との間でやり取りされる信号のタイミング図を示すが、ＤＭＡコントローラ４００−２〜４００−Ｍの各ＤＭＡコントローラとアービタ３４０との間でやり取りされる信号のタイミングも同様である。
【０１１０】
まずＤＭＡコントローラ４００−１が、リード要求RDReqaをアクティブにしてリードアドレスRDR0を出力する（ＴＧ１０）。アービタ３４０は、リード要求RDReqaに応答してリード承認RDAckaを返す（ＴＧ１１）。リード承認RDAckaを受け取ったＤＭＡコントローラ４００−１は、リードアドレスを更新する。
【０１１１】
メモリＩ／Ｆ３２０は、リードアドレスRDR0に基づいて、表示メモリ２００から順次データを読み出す。より具体的にはメモリＩ／Ｆ３２０は、リードアドレスに基づいて表示メモリ２００のロウアドレス及びカラムアドレスを出力すると共に、複数の制御信号の組合せに対応したコマンドを出力することで表示メモリ２００へのアクセスを実現する（ＴＧ１２）。
【０１１２】
３回目のリード動作時に、ＤＭＡコントローラ４００−１が、ライト要求WRReqaを発生させるものとする（ＴＧ１３）。このときＤＭＡコントローラ４００−１は、ライト要求WRReqaと共にライトアドレスADR0を出力する。
【０１１３】
そして、３回目のリード要求RDReqaに対するリード承認RDAckaが返り、３回目のリードアクセスが終了すると、アービタ３４０は、ライト要求WRReqaに応答してライト承認WRAckaを返す（ＴＧ１４）。従って、メモリＩ／Ｆ３２０は、ライト承認WRAcka後にライトアクセスを行う。
【０１１４】
以上のように本実施形態によれば、機能モジュールの数に関係なく、汎用的なメモリインタフェースで、各機能モジュールから要求されるデータ転送のスループットを向上させるメモリコントローラを提供できる。
【０１１５】
即ち、メモリコントローラ３００では、機能モジュール側ではなくメモリコントローラ側でアクセスアドレスを生成するようにしたので、機能モジュールがハンドシェイク方式で表示メモリ２００にアクセスする場合、アクセスアドレスを出力した直後に該機能モジュールが次の動作に移れないという事態を回避できるようになる。
【０１１６】
また本実施形態では、各ＤＭＡコントローラでデータ等をキューイングするようにしたので、各機能モジュールからのアクセス要求と表示メモリ２００へのアクセス要求の調停とのタイミングが分離される。その結果、表示メモリ２００にアクセスする画像のブランキング期間と実際にＬＣＤパネル等に表示される画像のブランキング期間とは時間的なずれが生じる。従って、本実施形態では、表示メモリ２００のデータ転送が、実質的に、ＬＣＤパネル等に表示される画像のブランキング期間にも行われていることになり、データ転送のスループットの向上に寄与している。
【０１１７】
またメモリコントローラ３００が、複数のＤＭＡコントローラを含み、クロスバスイッチ部３３０により、機能モジュールからのアクセス要求をいずれかのＤＭＡコントローラに供給できるようにした。これにより、表示メモリ２００に対し、複数のＤＭＡコントローラから同時にアクセス要求を行ったときの調停に必要な信号のやり取りは、メモリコントローラ３００側で行うことができる。そのため、機能モジュールを追加した場合に、機能モジュール間でやり取りされる信号線を追加する必要がなくなると共に機能モジュールの追加が容易となり、拡張性の高いメモリコントローラを提供できる。
【０１１８】
更にメモリコントローラ３００が備える各ＤＭＡコントローラは、ライトアドレス生成部及びリードアドレス生成部を含み、各アドレス生成部が独立に機能モジュールからのアクセス要求を受け付けるようにする一方、リードアドレス生成部がライトアドレス生成部によりアクセスされるライトエリア情報を参照してリードアドレスを生成できるようにした。これにより、ダブルバッファリング方式やトリプルバッファリング方式で機能モジュールが表示メモリ２００にアクセスする場合、機能モジュール側で表示メモリ２００のエリアを判別するよりも、表示メモリ２００側に近いＤＭＡコントローラが、直前のライトアクセスのライトエリア情報で表示メモリ２００のエリアを判別できる。
【０１１９】
３．  表示コントローラへの適用例
次に、本実施形態における画像処理コントローラ１００を、表示コントローラに適用した例について説明する。
【０１２０】
図１４に、本実施形態における画像処理コントローラ１００が適用された表示コントローラの構成例のブロック図を示す。図１４において、図１と同一部分には同一符号を付し、適宜説明を省略する。
【０１２１】
この表示コントローラ（広義には画像処理コントローラ）５００は、表示メモリ２００及びメモリコントローラ３００の他に、カメラＩ／Ｆ（広義には画像データ入力Ｉ／Ｆ）５１０、ホストＩ／Ｆ５２０、回転処理部５３０、ＬＣＤＩ／Ｆ（広義には画像データ出力Ｉ／Ｆ）５４０を含む。
【０１２２】
カメラＩ／Ｆ５１０は、入力画像のデータが入力される。より具体的には、カメラＩ／Ｆ５１０には、ＣＣＤカメラやＣＭＯＳカメラを内蔵するカメラモジュールで撮像された画像のデータが入力される。そしてカメラＩ／Ｆ５１０は、該画像データのインタフェース処理（カメラモジュールとの間の受信処理や、信号のバッファリング）を行い、インタフェース処理後の画像データを表示メモリ２００に書き込むためのライト要求をメモリコントローラ３００に対して行う。
【０１２３】
ホストＩ／Ｆ５２０には、図示しないホストからのデータが入力される。このとき、ホストＩ／Ｆ５２０は、インタフェース処理（ホストとの間の受信処理や、信号のバッファリング）を行い、インタフェース処理後のデータを表示メモリ２００に書き込むためのライト要求を行ったり、インタフェース処理後のデータを回転処理部５３０に供給したりする。またホストＩ／Ｆ５２０は、表示メモリ２００からの画像データを読み出すためのリード要求を行ったり、回転処理部５３０が出力した回転処理後の画像データをホストに出力する処理を行う。このときホストＩ／Ｆ５２０は、インタフェース処理（ホストとの間の送信処理や、信号のバッファリング）後のデータをホストに出力する。
【０１２４】
回転処理部５３０は、例えば画像の中心位置を基準に画像の向きを回転させる回転処理を行う。より具体的には回転処理部５３０は、回転処理後の画像データを表示メモリ２００に書き込むためのライト要求をメモリコントローラ３００に対して行ったり、表示メモリ２００から読み出された画像の向きが該画像の中心位置を基準に回転するように表示メモリ２００から画像データを読み出すためのリード要求をメモリコントローラ３００に対して行ったりする。
【０１２５】
ＬＣＤＩ／Ｆ５４０は、メモリコントローラ３００によってリードアクセス制御された結果表示メモリ２００から読み出された画像データを出力するためのインタフェース処理を行う。ＬＣＤＩ／Ｆ５４０は、メモリコントローラ３００からの画像データのインタフェース処理（表示ドライバとの間の送信処理や、信号のバッファリング）を行い、インタフェース処理後の画像データを図示しない表示ドライバに出力する。ＬＣＤＩ／Ｆ５４０は、例えば同期信号発生回路を含み、電気光学装置を駆動するための表示用の同期信号（１フレームの走査期間である１垂直走査期間を規定する垂直同期信号VSYNC、１水平走査期間を規定する水平同期信号HSYNC、ドットクロックDCLK等）を生成し、該同期信号を表示ドライバに供給することができる。このときＬＣＤＩ／Ｆ５４０は、各フレームの画像データを垂直同期信号に同期させ、且つ各画素の画像データをドットクロックに同期させて出力する。
【０１２６】
表示コントローラ５００では、カメラＩ／Ｆ５１０を介して入力された画像データに対して回転処理を行った後、回転処理後の画像データをＬＣＤＩ／Ｆ５４０を介して出力できる。
【０１２７】
図１５に、図１４の表示コントローラ５００の動作例を模式的に示す。
【０１２８】
一般的に２つのブロックが表示メモリ２００に対してアクセスする場合、ダブルバッファリング方式でアクセスすれば、誤って書き込み途中のデータを読み出すことがない。しかしながら、回転処理を行う場合には、例えば画像の水平方向に並ぶ各画素の画像データに対して、例えば画像の垂直方向に並ぶ各画素の画像データを読み出す必要がある。そのため、カメラＩ／Ｆ５１０と回転処理部５３０とは、表示メモリ２００に対して、いわゆるトリプルバッファリング方式でアクセス要求を行う。
【０１２９】
即ち、トリプルバッファ領域に３フレーム分の画像データを保持された表示メモリ２００に対して、カメラＩ／Ｆ５１０と回転処理部５３０とは、互いに異なるフレームの画像データに対するアクセスを行う。
【０１３０】
一方、回転処理部５３０が、回転処理後の画像データを表示メモリ２００に書き戻す場合には、トリプルバッファリング方式でアクセスする必要がない。従って、回転処理部５３０とＬＣＤＩ／Ｆ５４０とは、いわゆるダブルバッファリング方式でアクセス要求を行う。
【０１３１】
即ち、ダブルバッファ領域に２フレーム分の画像データを保持された表示メモリ２００に対して、ＬＣＤＩ／Ｆ５４０と回転処理部５３０とは、互いに異なるフレームの画像データに対するアクセスを行う。
【０１３２】
表示コントローラ５００のメモリコントローラ３００では、カメラＩ／Ｆ５１０からのライトアクセスをＤＭＡコントローラ４００−１のライトチャネルで実現し、回転処理部５３０からのリードアクセスをＤＭＡコントローラ４００−１のリードチャネルで実現することが望ましい。こうすることで、トリプルバッファ領域に対するライト要求及びリード要求が同時に発生した場合でも、上述のようにライトエリア情報に基づいて、無駄にアクセスの終了を待つ事態を回避できるようになる。
【０１３３】
また表示コントローラ５００のメモリコントローラ３００では、回転処理部５３０からのライトアクセスをＤＭＡコントローラ４００−２のライトチャネルで実現し、ＬＣＤＩ／Ｆ５４０からのリードアクセスをＤＭＡコントローラ４００−２のリードチャネルで実現することが望ましい。
【０１３４】
４．  電子機器
図１６に、本実施形態における電子機器の構成例のブロック図を示す。ここでは、電子機器として、携帯電話機の構成例のブロック図を示す。
【０１３５】
携帯電話機６００は、図１４の表示コントローラ５００を含む。携帯電話機６００は、カメラモジュール６１０を含む。カメラモジュール６１０は、ＣＣＤカメラを含み、ＣＣＤカメラで撮像した画像のデータを表示コントローラ５００に供給する。
【０１３６】
携帯電話機６００は、表示パネル（広義には電気光学装置、更に広義には表示装置）６２０を含む。表示パネル６２０として、ＬＣＤパネルを採用できる。この場合、表示パネル６２０は、表示ドライバ６３０によって駆動される。表示パネル６２０は、複数の走査線、複数のデータ線、複数の画素を含む。表示ドライバ６３０は、複数の走査線の１又は複数本単位で走査線を選択する走査ドライバの機能を有すると共に、画素データに対応した電圧を複数のデータ線に供給するデータドライバの機能を有する。
【０１３７】
表示コントローラ５００は、表示ドライバ６３０に接続され、表示ドライバ６３０に対してＲＧＢフォーマットの画像データを供給する。
【０１３８】
ホスト６４０は、表示コントローラ５００に接続される。ホスト６４０は、表示コントローラ５００を制御する。またホスト６４０は、アンテナ６５０を介して受信された画像データを含む通信データを、変復調部６６０で復調した後、表示コントローラ５００に供給できる。表示コントローラ５００は、この画像データに基づき、表示ドライバ６３０により表示パネル６２０に表示させる。
【０１３９】
ホスト６４０は、カメラモジュール６１０で生成された画像データを変復調部６６０で変調した後、アンテナ６５０を介して他の通信装置への送信を指示できる。
【０１４０】
ホスト６４０は、操作入力部６７０からの操作情報に基づいて画像データの送受信処理、カメラモジュール６１０の撮像、表示パネルの表示処理を行う。
【０１４１】
なお、図１６では、表示パネル６２０としてＬＣＤパネルを例に説明したが、これに限定されるものではない。表示パネル６２０は、エレクトロクミネッセンス、プラズマディスプレイ装置であってもよく、これらを駆動する表示ドライバに画像データを供給する表示コントローラに適用できる。また表示コントローラ５００が、ＹＵＶフォーマットの画像データを、図示しない出力端子を介して接続されるＣＲＴ装置に対して出力してもよい。
【０１４２】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、本実施形態におけるメモリコントローラは、表示メモリに対するアクセス制御を行うものに限定されるものではなく、画像データとは無関係のデータを記憶するメモリに対するアクセス制御を行うものにも適用可能である。
【０１４３】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０１４４】
【図１】本実施形態における画像処理コントローラの構成の概要を示すブロック図。
【図２】図１のメモリコントローラの構成の概要のブロック図。
【図３】本実施形態における同期信号の説明図。
【図４】本実施形態において機能モジュールがＤＭＡコントローラに対してライト要求を行う場合の動作タイミングの一例を示す図。
【図５】本実施形態において機能モジュールがＤＭＡコントローラに対してリード要求を行う場合の動作タイミングの一例を示す図。
【図６】図２のＤＭＡコントローラの構成例のブロック図。
【図７】表示メモリの記憶エリアの説明図。
【図８】ＤＭＡコントローラのダブルバッファリング方式によるアクセスの説明図。
【図９】ライトＦＩＦＯ部とライト同期キュー部の説明図。
【図１０】図６のライトアドレス生成部の構成例のブロック図。
【図１１】図６のリードアドレス生成部の構成例のブロック図。
【図１２】本実施形態におけるＤＭＡコントローラとアービタとの間でやり取りされる信号のタイミングの一例を示す図。
【図１３】本実施形態におけるＤＭＡコントローラとアービタとの間でやり取りされる信号のタイミングの他の例を示す図。
【図１４】本実施形態における画像処理コントローラが適用された表示コントローラの構成例のブロック図。
【図１５】図１４の表示コントローラの動作例を模式的に示す図。
【図１６】本実施形態における電子機器の構成例のブロック図。
【図１７】機能モジュールが次の動作に移行できない期間の例を説明する図。
【図１８】機能モジュールが次の動作に移行できない期間の他の例を説明する図。
【符号の説明】
【０１４５】
１００  画像処理コントローラ、
１１０−１〜１１０−Ｎ  第１〜第Ｎの機能モジュール、  ２００  表示メモリ、
３００  メモリコントローラ、
３１０−１〜３１０−Ｎ  第１〜第ＮのモジュールＩ／Ｆ、  ３２０  メモリＩ／Ｆ、
３３０  クロスバスイッチ部、  ３４０  アービタ、
３５０  コンフィギュレーションレジスタ、
４００−１〜４００−Ｍ  ＤＭＡコントローラ、  ４１０  ライトアドレス生成部、
４２０  リードアドレス生成部、  ４３０  リードＦＩＦＯ部、
４３２、４５２  ＦＩＦＯ、  ４４０  リード同期管理部、
４５０  ライトＦＩＦＯ部、  ４６０  ライト同期キュー部、
５００  表示コントローラ、  ５１０  カメラＩ／Ｆ、  ５２０  ホストＩ／Ｆ、
５３０  回転処理部、  ５４０  ＬＣＤＩ／Ｆ、  ６００  携帯電話機、
６１０  カメラモジュール、  ６２０  表示パネル、  ６３０  表示ドライバ、
６４０  ホスト、  ６５０  アンテナ、  ６６０  変復調部、  ６７０  操作入力部
【図１】
2006301724.tif 000003
【図２】
2006301724.tif 000004
【図３】
2006301724.tif 000005
【図４】
2006301724.tif 000006
【図５】
2006301724.tif 000007
【図６】
2006301724.tif 000008
【図７】
2006301724.tif 000009
【図８】
2006301724.tif 000010
【図９】
2006301724.tif 000011
【図１０】
2006301724.tif 000012
【図１１】
2006301724.tif 000013
【図１２】
2006301724.tif 000014
【図１３】
2006301724.tif 000015
【図１４】
2006301724.tif 000016
【図１５】
2006301724.tif 000017
【図１６】
2006301724.tif 000018
【図１７】
2006301724.tif 000019
【図１８】
2006301724.tif 000020