(57)【要約】【課題】メモリとのデータの転送効率を向上させたメモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法を提供する。【解決手段】画像処理システム１において、第２のＤＲＡＭコントローラ２０に、画像処理ユニット３０のコマンドＩ／ＦとデータＩ／Ｆからの両方のデータが入力されるまで第１ＤＲＡＭコントローラ１０へ出力しないように制御するか、若しくは、コマンドＩ／Ｆにデータが入力された際にすぐさま第１ＤＲＡＭコントローラ１０に出力しその後に対応するデータＩ／Ｆからデータが入力されたときにデータＩ／Ｆのデータを出力するように制御するか、のいずれかのモードに切替えてその切り替えに応じたタイミングでデータを出力する調停回路２１を備える。【選択図】図１
2010129029.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、
前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、
前記複数のバスマスタそれぞれに対応して設けられ、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータを前記コマンド解析部に出力し、前記ライトデータを前記コマンド実行部へ出力するタイミング調停部と、
が設けられていることを特徴とするメモリアクセス制御装置。
【請求項２】
複数のバスマスタと、前記複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、
自身が発行するライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、自身が発行するライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、
前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力するタイミング調停部と、
が前記バスマスタそれぞれに設けられていることを特徴とするメモリアクセス制御装置。
【請求項３】
前記複数のバスマスタが前記メモリ制御部へライトアクセス要求を行う際のアクセス優先権を設定するアクセス優先権設定部を有し、
前記アクセス優先権設定部が、予め定めた所定時間間隔で前記複数のバスマスタのアクセス優先権を順次切替えられるように構成されていることを特徴とする請求項１または２に記載のメモリアクセス制御装置。
【請求項４】
前記アクセス優先権設定部が、前記複数のバスマスタのうち特定のバスマスタにアクセス優先権を設定されるように構成されていることを特徴とする請求項１乃至３のうちいずれか一項に記載のメモリアクセス制御装置。
【請求項５】
前記バスマスタが、前記ライトデータよりも前記コマンドデータを先に出力するように構成されていることを特徴とする請求項１乃至４のうちいずれか一項に記載のメモリアクセス制御装置。
【請求項６】
複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析し、その解析結果と前記複数のバスマスタから入力されるライトデータに基づいて前記メモリに対してコマンド制御信号とデータ制御信号とを出力して前記メモリを制御するメモリアクセス制御方法において、
前記バスマスタからのライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記メモリ制御部へ発行するモード、または、前記バスマスタからのライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記メモリ制御部へ発行するモード、のいずれかのモードへ設定し、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力することを特徴とするメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのアクセスを制御するメモリアクセス制御装置およびメモリアクセス制御方法に関する。
【背景技術】
【０００２】
従来、さまざまなデータ処理がＬＳＩ（Large Scale Integration）により実現されている。例えば、ビデオカメラやデジタルカメラなどには、画像センサーから取り込んだ画像データにさまざまな処理を施すためのＬＳＩが搭載されている。また、携帯電話や携帯音楽端末にも音声データにさまざまな処理を施すためのＬＳＩが搭載されている。このような画像データや音声データ等の大容量のデータに複雑な処理を施すこれらのＬＳＩには、接続されるメモリなどの記憶装置とのデータ転送に高いスループットが要求され、さまざまな技術が開発されてきている。
【０００３】
例えば、特許文献１に記載の半導体装置では、複数のデータを処理するデータ処理部と処理したデータを一時的に蓄積するバッファと、バッファに蓄積されたデータをバースト転送でデータ格納部へ転送するバッファ制御部を備え、前記バッファ制御部は、１回のバースト転送で転送されるデータ量が前記バッファに蓄積される前にバースト転送を開始させることによって、バッファに蓄積されたデータ転送を効率良く行うことが提案されている。
【０００４】
この、特許文献１に記載された半導体装置は、複数のデータ処理部からバッファに蓄えられ、バッファから調停回路までのデータ転送効率を上げることを目的にしており、データ転送を行った先のメモリコントローラ部での処理を考慮してデータ転送効率を上げているわけではない。
【０００５】
また、特許文献２に記載のデータ転送システムでは、複数のマスタと外部メモリの制御を行うメモリコントローラと、各バスマスタからのバス使用要求を調停するバスアービターとが接続されるバスのデータ転送システムにおいて、メモリコントローラが各バスマスタにバス使用推薦情報を通知し、各バスマスタがメモリコントローラから通知されたバス使用推薦情報に基づいてバスアービターにバス使用要求を発行している。
【特許文献１】特開２００８−１６５４８５号公報
【特許文献２】特開２００６−１２７４０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、複数のバスマスタ３０１、３０２、３０３からアクセスされるＤＲＡＭコントローラ１００のブロック図を図４に示す。図４に示したＤＲＡＭコントローラ１００は、バスマスタ３０１、３０２、３０３とは、アドレス・リード／ライトなどのデータが入力されるコマンドＩ／Ｆと、バスマスタ３０１、３０２、３０３からＤＲＡＭ２００に対して書き込むデータが入力されるデータＩ／Ｆと、接続され、コマンドＩ／Ｆから入力されるリード・ライト・データアクセス数・アドレスを示すデータからＤＲＡＭ２００に対して発行するコマンド入力データを決定するコマンド解析部１０１と、コマンド解析部１０１が解析したコマンド入力データとデータＩ／Ｆから入力されるデータとを受け取りＤＲＡＭ２００に対してコマンド制御信号とデータ制御信号とを出力するタイミングを制御するコマンド実行部１０２と、を備えている。なお、ＤＲＡＭ２００はＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）やＤＤＲ（Double Data Rate）−ＳＤＲＡＭなどのバーストアクセス可能なメモリである。
【０００７】
このＤＲＡＭコントローラ１００においては、コマンドＩ／Ｆから入力されたデータがＤＲＡＭ２００に対するコマンド制御信号として出力されるまでのレイテンシが、データＩ／Ｆから入力されたデータがＤＲＡＭ２００に対するデータ制御信号として出力されるまでのレイテンシよりも多い。このコマンドＩ／Ｆからコマンド制御信号が出力されるまでのレイテンシが発生する理由は、コマンドＩ／Ｆから入力される信号を解析し複数のコマンドを発生させることや、リード・ライトによる判別を行うことに起因する。
【０００８】
そのため、コマンドＩ／ＦとデータＩ／Ｆに同時にデータが入力されたとしても、コマンドＩ／Ｆから入力されたデータの処理が終わるまでの間、データＩ／Ｆから入力されたデータをデータ制御信号としてＤＲＡＭ２００に出力できず、ＤＲＡＭコントローラ１００はＤＲＡＭに対してアクセスできない時間が発生し、ＤＲＡＭコントローラ１００とＤＲＡＭ２００の間の転送効率が低下するという問題があった。
【０００９】
また、図４に示したＤＲＡＭコントローラ１００において、ＤＲＡＭコントローラ１００の先には複数のバスマスタ３０１、３０２、３０３が存在しており、あるバスマスタがＤＲＡＭコントローラ１００に対するコマンドＩ／ＦとデータＩ／Ｆのバスを占有する機構となっている。例えばバスマスタ３０１がＤＲＡＭコントローラ１００に対してライト要求を発行する時は、コマンドＩ／Ｆにライト要求を発行し、データＩ／Ｆにデータを入力しきるまで、他のバスマスタ３０２、３０３はＤＲＡＭコントローラ１００に対してライト要求を行えない。
【００１０】
このため、あるマスタがライト要求を発行した後、データＩ／Ｆに入力するデータを準備するのに大きなレイテンシがかかっている時に、コマンドＩ／ＦとデータＩ／Ｆとを占有してしまうため、他のマスタがＤＲＡＭコントローラ１００に対してライト要求を行えないことから、ＤＲＡＭコントローラ１００は結果的にＤＲＡＭ２００に対する転送効率が落ちてしまうという問題があった。
【００１１】
本発明はかかる問題を解決することを目的としている。
【００１２】
すなわち、本発明は、メモリとのデータ転送効率を向上させたメモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法を提供することを目的としている。
【課題を解決するための手段】
【００１３】
請求項１に記載された発明は、複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、前記複数のバスマスタそれぞれに対応して設けられ、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータを前記コマンド解析部に出力し、前記ライトデータを前記コマンド実行部へ出力するタイミング調停部と、が設けられていることを特徴とするメモリアクセス制御装置である。
【００１４】
請求項２に記載された発明は、複数のバスマスタと、前記複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、自身が発行するライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、自身が発行するライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力するタイミング調停部と、が前記バスマスタそれぞれに設けられていることを特徴とするメモリアクセス制御装置である。
【００１５】
請求項３に記載された発明は、請求項１または２に記載された発明において、前記複数のバスマスタが前記メモリ制御部へライトアクセス要求を行う際のアクセス優先権を設定するアクセス優先権設定部を有し、前記アクセス優先権設定部が、予め定めた所定時間間隔で前記複数のバスマスタのアクセス優先権を順次切替えられるように構成されていることを特徴とする。
【００１６】
請求項４に記載された発明は、請求項１乃至３のうち一項に記載された発明において、前記アクセス優先権設定部が、前記複数のバスマスタのうち特定のバスマスタにアクセス優先権を設定されるように構成されていることを特徴とする。
【００１７】
請求項５に記載された発明は、請求項１乃至４のうち一項に記載された発明において、前記バスマスタが、前記ライトデータよりも前記コマンドデータを先に出力するように構成されていることを特徴とする。
【００１８】
請求項６に記載された発明は、複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析し、その解析結果と前記複数のバスマスタから入力されるライトデータに基づいて前記メモリに対してコマンド制御信号とデータ制御信号とを出力して前記メモリを制御するメモリアクセス制御方法において、前記バスマスタからのライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記メモリ制御部へ発行するモード、または、前記バスマスタからのライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記メモリ制御部へ発行するモード、のいずれかのモードへ設定し、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力することを特徴とするメモリアクセス制御方法である。
【発明の効果】
【００１９】
請求項１に記載の発明によれば、モード設定部がバスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でコマンド解析部へ発行するモード、または、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモード、のいずれかのモードに設定されて、そのモード設定に応じたタイミングでタイミング調停部が前記バスマスタからの前記ライトアクセス要求および前記コマンドデータを前記コマンド解析部に出力し、前記ライトデータを前記コマンド実行部へ出力しているので、複数のバスマスタからアクセスがある場合は、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でライトアクセス要求をコマンド解析部へ発行するモードに設定すれば、１つのバスマスタがデータを準備する間にコマンドＩ／ＦやデータＩ／Ｆを占有することがなくなり、他のバスマスタからのアクセス要求も受け付けられるために、バスマスタとの間のバスの転送効率が向上し、結果的にメモリとのデータの転送効率を向上させることができる。
【００２０】
また、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモードに設定することができるようにしておくことで、他のバスマスタからのアクセスが無いことが明らかな場合にコマンドデータのみを先に受け付けてコマンド制御信号を生成するまでのレイテンシを稼ぐことでメモリのデータの転送効率を向上させることができる。
【００２１】
請求項２に記載の発明によれば、モード設定部がバスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でメモリ制御部へ発行するモード、または、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもメモリ制御部へ発行するモード、のいずれかのモードに設定されて、そのモード設定に応じたタイミングでタイミング調停部が前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力しているので、複数のバスマスタからアクセスがある場合は、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でライトアクセス要求をコマンド解析部へ発行するモードに設定すれば、１つのバスマスタがデータを準備する間にコマンドＩ／ＦやデータＩ／Ｆを占有することがなくなり、他のバスマスタからのアクセス要求も受け付けられるために、バスマスタとの間のバスの転送効率が向上し、結果的にメモリとのデータの転送効率を向上させることができる。
【００２２】
また、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモードに設定することができるようにしておくことで、他のバスマスタからのアクセスが無いことが明らかな場合にコマンドデータのみを先に受け付けてコマンド制御信号を生成するまでのレイテンシを稼ぐことでメモリのデータの転送効率を向上させることができる。
【００２３】
さらに、各バスマスタそれぞれにモード設定部とタイミング調停部とが設けられているので、個別にモード設定することができ、使用条件によって用途を選ぶことができる。例えば、他のバスマスタと競合しないバスマスタではライトアクセス要求をコマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモードに設定すれば、メモリアクセス制御装置で一括して制御することと比較してそのバスマスタについては余計な制限がなくなるために、メモリへのデータ転送効率を向上させることができる。
【００２４】
請求項３に記載の発明によれば、メモリ制御部へのアクセス優先権を時間によって設定することができるので、アクセス優先権を手動で設定することなく、自動的に各バスマスタにアクセス優先権を与えることができる。
【００２５】
請求項４に記載の発明によれば、メモリ制御部へのアクセス優先権を特定のバスマスタへ与えるように設定できるので、例えば特定のバスマスタのみアクセスされることが予め判明している処理においては、時間によってアクセス優先権を与えるよりも効率的にアクセスすることができる。
【００２６】
請求項５に記載の発明によれば、バスマスタがライトデータよりもコマンドデータを先に出力するように構成されているので、コマンド解析部におけるコマンド解析によって生じるレイテンシ時間をライトデータに先行して出力することで相殺することができる。
【００２７】
請求項６に記載の発明によれば、バスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で発行するモード、または、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくても発行するモード、のいずれかのモードに設定されて、そのモード設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力しているので、複数のバスマスタからアクセスがある場合は、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でライトアクセス要求を発行するモードに設定すれば、１つのバスマスタがデータを準備する間にコマンドＩ／ＦやデータＩ／Ｆを占有することがなくなり、他のバスマスタからのアクセス要求も受け付けられるために、バスマスタとの間のバスの転送効率が向上し、結果的にメモリとのデータの転送効率を向上させることができる。
【００２８】
また、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくても発行するモードに設定することができるようにしておくことで、他のバスマスタからのアクセスが無いことが明らかな場合にコマンドデータのみを先に受け付けてコマンド制御信号を生成するまでのレイテンシを稼ぐことでメモリのデータの転送効率を向上させることができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の一実施形態を、図１乃至図３を参照して説明する。図１は、本発明の一実施形態にかかるメモリアクセス制御装置を有する画像処理システム１のブロック図である。図２は、図１に示した第２のＤＲＡＭコントローラの詳細を示す説明図である。図３は、図１に示した画像処理ユニットの詳細を示したブロック図である。
【００３０】
図１に示した画像処理システム１は、第１ＤＲＡＭコントローラ１０と、第２ＤＲＡＭコントローラ２０と、画像処理ユニット３０ａ、３０ｂ、３０ｃと、ＤＲＡＭ４０と、を備え、第１ＤＲＡＭコントローラ１０と、第２ＤＲＡＭコントローラ２０と、で本発明の一実施形態にかかるメモリアクセス制御装置５０を構成している。
【００３１】
第１ＤＲＡＭコントローラ１０は、後述する第２ＤＲＡＭコントローラ２０のコマンドＩ／Ｆから入力されたコマンドデータを処理するコマンド解析部１１と、コマンド解析部１１から入力されるデータと第２ＤＲＡＭコントローラ２０のデータＩ／Ｆから入力されたライトデータとを処理しＤＲＡＭ４０を制御するコマンド実行部１２と、を備えている。
【００３２】
コマンド解析部１１は、第２ＤＲＡＭコントローラ２０のコマンドＩ／Ｆから入力されるコマンドデータを解析し、リード・ライト・データアクセス数・アドレスからＤＲＡＭ４０に対して行うアクセス制御内容を決定しコマンド実行部１２に出力する。アクセス制御内容とはＤＲＡＭ４０に対するコマンドを意味し、リフレッシュなどＤＲＡＭ４０としての動作を保証する制御も含まれる。このリフレッシュなどは、コマンド解析部１１で自動的に挿入されるコマンドである。また、このような処理を行うため、コマンド解析部１１ではコマンドを解析しコマンド実行部１２に出力するまでにレイテンシが発生する。このレイテンシは、第１ＤＲＡＭコントローラ１０の内部の動作周波数が上がることや、入力されるコマンドデータを解析する複雑さに比例して増加する。
【００３３】
コマンド実行部１２は、第２ＤＲＡＭコントローラ２０からコマンド解析部１１を経由してレイテンシがついたコマンドデータと第２ＤＲＡＭコントローラ２０から入力されるライトデータとを受け取り、ＤＲＡＭ４０に対してアドレス・リード・ライト・チップセレクトといったコマンド制御信号とライトデータを含むデータ制御信号とを出力する。
【００３４】
また、コマンド実行部１２は、ＤＲＡＭ４０に対してライトを行う際に、コマンド解析部１１から入力されるコマンドデータと第２ＤＲＡＭコントローラ２０から入力されるライトデータが揃っていなければ、ＤＲＡＭ４０に対してコマンド制御信号とデータ制御信号の出力が行われない。揃っていない場合は、コマンドデータ、ライトデータが揃うまで待つ。なお、ＤＲＡＭ４０からのリード時は、コマンド解析部１１から入力されるコマンドデータを受け取った時点で出力することが可能である。また、コマンド実行部１２は、ＤＲＡＭ４０に対するコマンド制御信号出力時に、以前に出力されたコマンド制御信号から次に出力するコマンド制御信号を決定する機構を備えても良い。例えば、ＤＲＡＭ４０の同一のバンクに対するアクセスであれば、プリチャージ期間を省略して次のコマンド制御信号を発行可能とする。
【００３５】
第２ＤＲＡＭコントローラ２０は、図１に示したように複数の画像処理ユニット３０ａ、３０ｂ、３０ｃと、コマンドＩ／ＦおよびデータＩ／Ｆで接続されるとともに第１ＤＲＡＭコントローラ１０ともコマンドＩ／ＦおよびデータＩ／Ｆで接続される。
【００３６】
コマンドＩ／Ｆは、コマンドＩ／Ｆへの要求を表すコマンドＩ／Ｆ・ＲＥＱ信号、リード・ライト・データアクセス数・アドレスなどの情報を含んだコマンドの内容を表すコマンドＩ／Ｆ・データ信号、通信相手がコマンドＩ／Ｆ・ＲＥＱ信号を受信したことを表すコマンドＩ／Ｆ・ＡＣＫ信号から構成されている。データＩ／Ｆは、データＩ／Ｆへの要求を表すデータＩ／Ｆ・ＲＥＱ信号、ライトデータを表すデータＩ／Ｆ・データ信号、通信相手がデータＩ／Ｆ・ＲＥＱ信号を受信したことを表すコマンドＩ／Ｆ・ＡＣＫ信号から構成されている。
【００３７】
コマンドＩ／ＦとデータＩ／Ｆを使用した通信は次のように行われる。画像処理ユニット３０は、コマンドＩ／Ｆ・ＲＥＱ信号を“１”にした際に、コマンドＩ／Ｆ・データ信号を送信し、コマンドＩ／Ｆ・ＡＣＫ信号で“１”を受信したときにコマンドＩ／Ｆ・ＲＥＱ信号を“０”にする。画像処理ユニット３０は、データＩ／Ｆ・ＲＥＱ信号を“１”にした際に、データＩ／Ｆ・データ信号を送信し、データＩ／Ｆ・ＡＣＫ信号で“１”を受信したときにデータＩ／Ｆ・ＲＥＱ信号を“０”にする。第１ＤＲＡＭコントローラ１０は、コマンドＩ／Ｆ・ＲＥＱ信号を受信した際に、コマンドＩ／Ｆ・データ信号を取り込み、コマンドＩ／Ｆ・ＡＣＫ信号を返し、同様にデータＩ／Ｆ・ＲＥＱ信号を受信した際に、データＩ／Ｆ・データ信号を取り込み、データＩ／Ｆ・ＡＣＫ信号を返す。
【００３８】
上述した通信プロトコルを第２ＤＲＡＭコントローラ２０の動作に置き換えると次のようになる。第２ＤＲＡＭコントローラ２０は、複数の画像処理ユニット３０ａ、３０ｂ、３０ｃのうちコマンドＩ／ＦのＲＥＱ信号（コマンドＩ／Ｆ・ＲＥＱ信号）を受信した１つの画像処理ユニット３０のコマンドＩ／Ｆから入力されるデータを受け付けるとともに第１ＤＲＡＭコントローラ１０へこのＲＥＱ信号とデータ（コマンドデータ）を出力する。そして、第１ＤＲＡＭコントローラ１０からＲＥＱ信号とコマンドデータを受け付けたことを示すＡＣＫ信号（コマンドＩ／Ｆ・ＡＣＫ信号）が入力された場合は、そのＡＣＫ信号をＲＥＱ信号を出力した画像処理ユニット３０へ出力する。
【００３９】
次に、画像処理ユニット３０は、コマンドＩ／Ｆ・ＡＣＫ信号とデータＩ／Ｆ・ＡＣＫ信号を受け取った後、コマンドＩ／Ｆ・ＲＥＱ信号とデータＩ／Ｆ・ＲＥＱ信号を取り下げて、データＩ／Ｆ・ＲＥＱ信号とデータ（ライトデータ）を出力する。第２ＤＲＡＭコントローラ２０ではこのデータＩ／Ｆ・ＲＥＱ信号とデータを第１のＤＲＡＭコントローラ１０へ出力し、第１ＤＲＡＭコントローラ１０からＲＥＱ信号とデータを受け付けたことを示すＡＣＫ信号（データＩ／Ｆ・ＡＣＫ信号）が入力された場合は、そのＡＣＫ信号をＲＥＱ信号を出力した画像処理ユニット３０へ出力する。そしてこのデータＩ／Ｆの通信プロトコルは最初に出力したコマンドＩ／Ｆ・データ内のアクセス数を表す情報の回数分だけ行われ、画像処理ユニット３０はデータＩ／Ｆ・ＡＣＫをその回数分受け取る。
【００４０】
また、第２ＤＲＡＭコントローラ２０は、ある画像処理ユニット３０と接続されたデータＩ／ＦとコマンドＩ／Ｆから入力されたデータを第１ＤＲＡＭコントローラ１０に出力する際に、その画像処理ユニット３０と接続されたコマンドＩ／ＦとデータＩ／Ｆからの両方のデータが入力されるまで第１ＤＲＡＭコントローラ１０へ出力しないように制御する、つまり、コマンドＩ／ＦとデータＩ／Ｆの両方が揃った時点で第１ＤＲＡＭコントローラ１０へ出力するか、若しくは、その画像処理ユニット３０と接続されたコマンドＩ／Ｆにデータが入力されたらすぐさま第１ＤＲＡＭコントローラ１０に出力しその後に対応するデータＩ／Ｆからデータが入力されたときにデータＩ／Ｆのデータを出力するか、のいずれかに切替える調停回路２１を複数の画像処理ユニット３０ａ、３０ｂ、３０ｃ毎に備えている。この調停回路２１はレジスタによって上記のいずれかへの切替えを制御できるようになっていても良いし、レジスタ以外の機能ブロックや外部端子などによって制御しても良い。
【００４１】
なお、コマンドＩ／ＦとデータＩ／Ｆが揃ってから第１ＤＲＡＭコントローラ１０に出力する場合は、その画像処理ユニット３０がデータを揃えている間に他の画像処理ユニット３０と接続されたデータＩ／ＦとコマンドＩ／Ｆからデータが入力された場合は他の画像処理ユニット３０と接続されたデータＩ／ＦとコマンドＩ／Ｆから入力されたデータを第１ＤＲＡＭコントローラ１０へ出力する。
【００４２】
また、第２ＤＲＡＭコントローラ２０は、各画像処理ユニット３０から入力されたコマンドＩ／Ｆ・ＲＥＱ信号を第１ＤＲＡＭコントローラ１０のコマンドＩ／Ｆ・ＲＥＱ信号として出力することをバスマスタ切り替え制御回路内部で計時している時間によってどの画像処理ユニット３０を優先して出力するように制御するか、画像処理ユニット３０ａから入力されたコマンドＩ／Ｆ・ＲＥＱ信号を他の画像処理ユニット３０ｂ、３０ｃから入力されたコマンドＩ／Ｆ・ＲＥＱ信号よりも優先的に第１ＤＲＡＭコントローラ１０のコマンドＩ／Ｆ・ＲＥＱ信号として出力するように制御するかを、切替えるバス使用権制御回路２２を備えている。
【００４３】
図２に第２ＤＲＡＭコントローラ２０内の調停回路２１とバス使用権制御回路２２との具体的な回路例を示す。
【００４４】
調停回路２１は、画像処理ユニット３０ａからコマンドＩ／Ｆ・ＲＥＱ信号を受信し、ＡＮＤゲート２１ａの一方の入力端子に到達する。ＡＮＤゲート２１ａの他方の入力端子に入力されるＯＲゲート２１ｂの出力は、画像処理ユニット３０ａのデータＩ／Ｆ・ＲＥＱとレジスタ２１ｃの設定値によって決定され、モード設定部としてのレジスタ２１ｃの出力が“０”であれば、データＩ／Ｆ・ＲＥＱ信号を受信するまで“０”のままで、レジスタ２１ｃの出力が“１”であればデータＩ／Ｆ・ＲＥＱ信号を受信せずとも、コマンドＩ／Ｆ・ＲＥＱ信号を受信すると同時に“１”となる。すなわち、ＡＮＤゲート２１ａとＯＲゲート２１ｂとで、複数のバスマスタそれぞれに対応して設けられ、モード設定部の設定に応じたタイミングでバスマスタからのライトアクセス要求およびコマンドデータをコマンド解析部に出力し、ライトデータをコマンド実行部へ出力するタイミング調停部を構成している。
【００４５】
したがって、レジスタ２１ｃの設定値により、データＩ／ＦとコマンドＩ／Ｆのデータの両方が揃ってから第１ＤＲＡＭコントローラ１０へのコマンドＩ／Ｆ・ＲＥＱ信号を出力するか、コマンドＩ／Ｆのデータが揃った時点で第１ＤＲＡＭコントローラ１０にコマンドＩ／Ｆ・ＲＥＱ信号を出力するかを切替えることが可能となる。すなわち、バスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記メモリ制御部へ発行するモード、または、コマンドデータがそろった時点でそのコマンドデータと対となるライトデータが全て揃っていなくてもメモリ制御部へ発行するモード、のいずれかのモードへ設定することができる。
【００４６】
なお、レジスタ２１ｃは第２ＤＲＡＭコントローラ２０内に１つ備えられ、各調停回路２１が共通で使用する。また、レジスタ２１ｃの設定は任意であるが、処理内容によって各画像処理ユニット３０ａ、３０ｂ、３０ｃがともにアクセスすることが想定される場合は“０”に設定し、特定の画像処理ユニット３０との通信が連続することが想定される場合は“１”に設定するようにすれば良い。この切替えは処理内容と対応付けて自動で切り替わるようにしてもよい。
【００４７】
ＦＦ２１ｄはＡＮＤゲート２１ａからの入力が“１”のときに “１”を出力し続け、後述するカウンタ２１ｅからの入力が“１”の場合に“０”に初期化されるフリップフロップで構成されている。つまり、ＦＦ２１ｄは、レジスタ２１ｃが“１”の場合、コマンドＩ／Ｆ・ＲＥＱ信号が“１”で“１”を出力し、レジスタ２１ｃが“０”の場合、コマンドＩ／Ｆ・ＲＥＱ信号とデータＩ／Ｆ・ＲＥＱ信号がともに“１”で“１”を出力する。
【００４８】
カウンタ２１ｅは、コマンドＩ／Ｆ・ＲＥＱ信号が“１”のときにコマンドＩ／Ｆ・データの内容を取り込み保持する。第２ＤＲＡＭコントローラ２０は、上述したようにコマンドＩ／Ｆ・ＲＥＱ信号とコマンドＩ／Ｆ・データが出力された後、第１ＤＲＡＭコントローラ１０からコマンドＩ／Ｆ・ＡＣＫ信号とデータＩ／Ｆ・ＡＣＫ信号を受け取り、画像処理ユニット３０ａへのコマンドＩ／Ｆ・ＡＣＫ信号とデータＩ／Ｆ・ＡＣＫ信号として出力している。カウンタ２１ｅは、ＦＦ２１ｄから“１”が出力されている間、データＩ／Ｆ・ＲＥＱ信号が“０”から“１”となる度にカウントアップし、保持したアクセス数と比較し、比較した結果が一致したときに、カウンタ２１ｅをクリアし“１”を出力する。カウンタ２１ｅから“１”が出力されるとＦＦ２１ｄが“０”となり、また後述するバスマスタ切替制御回路２２ａから調停回路２１に出力される信号が“０”になり、調停回路２１のＡＮＤゲート２１ｆの他方の入力端子を“０”にして画像処理ユニット３０ａとの通信を終了する。
【００４９】
アクセス優先権設定部としてのバス使用権制御回路２２は、バスマスタ切替制御回路２２ａを備えている。バスマスタ切替制御回路２２ａは、各画像処理ユニット３０ａ、３０ｂ、３０ｃそれぞれに対応する調停回路２１から、ＦＦ２１ｄの出力信号と、カウンタ２１ｅの出力信号と、ＯＲゲート２２ｂと、が入力されている。図２において信号Ｓ１は画像処理ユニット３０ｂに対応する調停回路２１のＦＦ２１ｄの出力信号に相当する信号であり、信号Ｓ２は画像処理ユニット３０ｂに対応する調停回路２１のカウンタ２１ｅの出力信号に相当する信号であり、信号Ｓ３は画像処理ユニット３０ｃに対応する調停回路２１のＦＦ２１ｄの出力信号に相当する信号であり、信号Ｓ４は画像処理ユニット３０ｃに対応する調停回路２１のカウンタ２１ｅの出力信号に相当する信号である。そして、バスマスタ切替制御回路２２ａは、画像処理ユニット３０ａに対応する調停回路２１のＡＮＤゲート２１ｆの他方の入力への信号Ｓ５と、画像処理ユニット３０ｂに対応する調停回路２１のＡＮＤゲート２１ｆの他方の入力への信号Ｓ６と、画像処理ユニット３０ｃに対応する調停回路２１のＡＮＤゲート２１ｆの他方の入力への信号Ｓ７と、を出力する。
【００５０】
バスマスタ切替制御回路２２ａは、ＦＦ２１ｄから“１”、信号Ｓ１から“０”、信号Ｓ３から“０”、カウンタ２１ｅから“０”、ＯＲゲート２２ｂから“１”が入力された場合には、信号Ｓ５に“１”、信号Ｓ６に“０”、信号Ｓ７に“０”を出力する。また、カウンタ２１ｅ、信号Ｓ２、信号Ｓ４から“０”、ＦＦ２１ｄ、信号Ｓ１、信号Ｓ３から“１”、ＯＲゲート２２ｂから“０”が入力された場合には、内部で計時している時間によって調停回路２１への信号Ｓ５、Ｓ６、Ｓ７のうちどれか１つに対して“１”を出力する。つまり、あるクロックサイクル数分信号Ｓ５に対して“１”を出力したら、次のあるクロックサイクル数分は信号Ｓ６に対して“１”を出力し、その次のあるクロックサイクル数分は信号Ｓ７に対して“１”を出力する、といったように所定時間毎に排他的に信号Ｓ５、Ｓ６、Ｓ７に“１”を出力するように切替える。また、バス切替制御回路２２ａは、一旦信号Ｓ５、Ｓ６、Ｓ７のどれかに“１”を出力すると、カウンタ２１ｅ、信号Ｓ２、信号Ｓ４のうちどれかから“１”が入力されない限り、Ａｌｌ“０”に戻らない回路である。
【００５１】
つまり、上述した条件と図２の回路図からバスマスタ切替制御回路２２ａの出力である信号Ｓ５は、“１”であるときに画像処理ユニット３０ａからのコマンドＩ／ＦとデータＩ／Ｆの全ての信号を第１ＤＲＡＭコントローラ１０へ出力するように制御し、“０”のときには出力しないように制御している信号である。これは信号Ｓ６、Ｓ７もそれぞれの調停回路２１において同様である。
【００５２】
ＯＲゲート２２ｂは、レジスタ２２ｃの設定値と、画像処理ユニット３０ｂが出力したコマンドＩ／Ｆ・ＲＥＱ信号と画像処理ユニット３０ｃが出力したコマンドＩ／Ｆ・ＲＥＱ信号とが入力されたＮＯＲゲート２２ｄの出力と、のうちのどちらかが“１”の場合にバスマスタ切替制御回路２２ａに対して“１”を出力する。
【００５３】
レジスタ２２ｃは、外部から設定可能であり、“１”に設定することにより、同時に入力された他の画像処理ユニット３０ｂ、３０ｃのコマンドＩ／Ｆ・ＲＥＱ信号の状況を見ることなく、バスマスタ切替制御回路２２ａの出力信号Ｓ５に“１”を出力するようにでき、また、“０”に設定することにより、時間によってバスマスタ切替制御回路２２ａの出力信号Ｓ５、Ｓ６、Ｓ７を排他的に“１”を出力するようにできる。
【００５４】
つまり、レジスタ２２ｃの設定によって、各画像処理ユニット３０から入力されたコマンドＩ／Ｆ・ＲＥＱ信号を第１ＤＲＡＭコントローラ１０のコマンドＩ／Ｆ・ＲＥＱ信号として出力することをバスマスタ切り替え制御回路内部で計時している時間によって制御するか、画像処理ユニット３０ａから入力されたコマンドＩ／Ｆ・ＲＥＱ信号を他の画像処理ユニット３０ｂ、３０ｃから入力されたコマンドＩ／Ｆ・ＲＥＱ信号よりも優先的に第１ＤＲＡＭコントローラ１０のコマンドＩ／Ｆ・ＲＥＱ信号として出力するかを制御するかを、切替えている。すなわち、予め定めた所定時間間隔で前記複数のバスマスタのアクセス優先権を順次切替えることと、複数のバスマスタのうち特定のバスマスタにアクセス優先権を設定できるようにすることと、を切り替えている。
【００５５】
バスマスタとしての画像処理ユニット３０ａ、３０ｂ、３０ｃは、データ処理部３１と、バッファ３２と、バッファ制御回路３３と、コマンド発行回路３４と、画像処理ユニット制御部３５と、を備えている。本実施形態において画像処理ユニット３０ａ、３０ｂ、３０ｃは、同一の構成の画像処理ユニット３０となっている。
【００５６】
データ処理部３１は、外部から入力される入力データ・第２ＤＲＡＭコントローラ２０からのデータＩ／Ｆを介して入力されたデータ（ＤＲＡＭ４０からのリードデータ）に対して所定のデータ処理を行う。
【００５７】
バッファ３２は、データ処理部３１で処理したデータを蓄える。バッファ制御回路３３は、バッファ３２からデータＩ／Ｆの入出力と第２ＤＲＡＭコントローラ２０に対するデータＩ／ＦのＲＥＱ信号を出力し、第２ＤＲＡＭコントローラがＲＥＱ信号を受け付けた場合ＡＣＫ信号を受け取りデータＩ／ＦのＲＥＱ信号の出力を取り下げる。
【００５８】
コマンド発行回路３４は、コマンドＩ／Ｆへデータ（コマンドデータ）を出力すると同時に外部の第２ＤＲＡＭコントローラ２０に対してコマンドＩ／ＦのＲＥＱ信号を出力し、第２ＤＲＡＭコントローラ２０がＲＥＱ信号を受け付けた場合ＡＣＫ信号を受け取りコマンドＩ／ＦへのＲＥＱ信号の出力を取り下げる。
【００５９】
画像処理ユニット制御部３５は、コマンド発行回路３４および外部へ入力データを要求する入力データ要求信号を制御する。
【００６０】
ここで、本実施形態の画像処理ユニット制御部３５が入力データ要求を行い始めてからデータＩ／Ｆにデータを出力するまでのレイテンシは、画像処理ユニット３０が入力データ要求を外部に対して発行し入力データが入力されるまでのＮ時間と、入力データがデータ処理部３１で処理しバッファ３２に蓄えられるまでのＭ時間との和となり（Ｍ＋Ｎ）時間となる。また、画像処理ユニット制御部３５が入力データ要求を行い始めてからコマンドＩ／Ｆにデータを出力するまでのレイテンシをＬ時間とすると、画像処理ユニット部３５は、入力データ要求と同時にコマンド発行回路３４に対して制御を行うこと、また、コマンド発行回路３４はデータ処理部３１よりも複雑な処理を行っていないためレイテンシを比較すると（Ｍ＋Ｎ）＞Ｌとなる。よって、画像処理ユニット３０は、第２ＤＲＡＭコントローラ２０に対して、コマンドＩ／Ｆへの要求がデータＩ／Ｆへの要求よりも先に出力されるユニットとなる。
【００６１】
なお、バスマスタとして本実施形態では画像を処理する回路である画像処理ユニット３０としたが、それに限らずデータ処理を行う回路であって、上述したコマンドＩ／ＦとデータＩ／Ｆのレイテンシの条件を満たす回路であれば良い。
【００６２】
メモリとしてのＤＲＡＭ４０は、各画像処理ユニット３０ａ、３０ｂ、３０ｃが処理したデータを一時的に格納するために使用され、読み書きが自在な半導体記憶素子（メモリ）である。また、ＤＲＡＭ４０は、情報の記憶が電荷によって行われ、電荷は時間と共に減少することから、一定時間毎に記憶保持のための再書き込み（リフレッシュ）を行なう必要があるメモリであって、バーストアクセスを行うことが可能なＳＤＲＡＭやＤＤＲ−ＳＤＲＡＭ（ＤＤＲ２やＤＤＲ３なども含む）である。
【００６３】
本実施形態によれば、画像処理システム１において、第２のＤＲＡＭコントローラ２０に、画像処理ユニット３０のコマンドＩ／ＦとデータＩ／Ｆからの両方のデータが入力されるまで第１ＤＲＡＭコントローラ１０へ出力しないように制御するか、若しくは、コマンドＩ／Ｆにデータが入力された際にすぐさま第１ＤＲＡＭコントローラ１０に出力しその後に対応するデータＩ／Ｆからデータが入力されたときにデータＩ／Ｆのデータを出力するように制御するか、のいずれかのモードに切替えてその切り替えに応じたタイミングでデータを出力する調停回路２１を備えているので、複数の画像処理ユニット３０からアクセスがある場合は、コマンドＩ／ＦのデータとデータＩ／Ｆのデータとが揃った時点でライトアクセス要求を第１ＤＲＡＭコントローラ１０へ発行すれば、１つの画像処理ユニット３０がデータを準備する間に第１ＤＲＡＭコントローラ１０のコマンドＩ／ＦやデータＩ／Ｆを占有することがなくなり、他の画像処理ユニットからのアクセス要求も受け付けられるために、画像処理ユニット３０との間のバスの転送効率が向上し、結果的にＤＲＡＭとのデータの転送効率を向上させることができる。
【００６４】
また、第１ＤＲＡＭコントローラ１０のコマンド実行部１２は、第２ＤＲＡＭコントローラ２０がコマンドＩ／Ｆから入力されたコマンドをすぐさま第１ＤＲＡＭコントローラへ出力するように切替えることもできるので、コマンド解析部１１のレイテンシ時間を画像処理ユニット３０からのコマンドＩ／Ｆの要求を先に行って相殺することができる。
【００６５】
なお、上述した実施形態においては、第２ＤＲＡＭコントローラ２０が、各画像処理ユニット３０から入力されるコマンドＩ／ＦとデータＩ／Ｆのデータの両方が揃った際に第１ＤＲＡＭコントローラ１０へ出力するか、コマンドＩ／Ｆのみが入力された時点で第１ＤＲＡＭコントローラ１０へ出力するか、を切替えているが、この機構を各画像処理ユニット３０が持ってもよい。具体的には、図２のＡＮＤゲート２１ａ、ＯＲゲート２１ｂ、レジスタ２１ｃを各画像処理ユニット３０内に持つ。すなわち、バスマスタに、モード設定部とタイミング調停部とが設けられている。
【００６６】
このようにすることで、各画像処理ユニット３０が、ライトアクセス要求をコマンドＩ／ＦのデータとデータＩ／Ｆのデータとが全て揃った時点で第２ＤＲＡＭコントローラ２０へ発行するか、または、ライトアクセス要求をコマンドＩ／ＦのデータとデータＩ／Ｆのデータとが全て揃っていなくても第２ＤＲＡＭコントローラ２０へ発行するか、をモード設定部の設定によって切替えることができ、使用条件によって用途を選ぶことができる。例えば、他の画像処理ユニット３０と競合しない画像処理ユニット３０ではライトアクセス要求をコマンドＩ／ＦのデータとデータＩ／Ｆのデータとが全て揃ってなくても第２ＤＲＡＭコントローラ２０へ発行するように選択すれば、第２ＤＲＡＭコントローラ２０で一括して制御することと比較してその画像処理ユニット３０については余計な制限がなくなるために、ＤＲＡＭ４０へのデータ転送効率を向上させることができる。
【００６７】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施形態にかかるメモリアクセス制御装置を有する画像処理システムのブロック図である。
【図２】図１に示した第２のＤＲＡＭコントローラの詳細を示す説明図である。
【図３】図１に示した画像処理ユニットの詳細を示したブロック図である。
【図４】従来の複数のバスマスタからアクセスされるＤＲＡＭコントローラのブロック図である。
【符号の説明】
【００６９】
１          画像処理システム
１０        第１ＤＲＡＭコントローラ
１１        コマンド解析部
１２        コマンド実行部
２０        第２ＤＲＡＭコントローラ
２１        調停回路
２１ａ      ＡＮＤゲート（タイミング調停部）
２１ｂ      ＯＲゲート（タイミング調停部）
２１ｃ      レジスタ（モード設定部）
２２        バス使用権制御回路（アクセス優先権設定部）
３０ａ      画像処理ユニット（バスマスタ）
３０ｂ      画像処理ユニット（バスマスタ）
３０ｃ      画像処理ユニット（バスマスタ）
【図１】
2010129029.tif 000003
【図２】
2010129029.tif 000004
【図３】
2010129029.tif 000005
【図４】
2010129029.tif 000006