(57)【要約】【課題】システムに要求される処理内容に応じて外部メモリデバイスのバス幅を容易に変更でき、バーストアクセスを意識したアーキテクチャでバンド幅を効率的に使用できるデータ転送制御装置を提供する。【解決手段】クライアントデータ幅よりも大きいビット幅を有する１種類のＦＩＦＯ型バッファ２１−１〜２１−ｎを内蔵するバッファ群２１と、マスタデバイスから受けた少なくともアドレスとコマンドに基づいてメモリデバイス３０のアドレス、コマンドを生成するコマンド生成回路２５と、コマンド生成回路２５にて生成されたアドレスおよびコマンドに基づいてメモリデバイス３０のバス幅に応じてあらかじめ設定されたバーストレングスによりアクセスを行わせるコマンドおよびアドレスをメモリデバイス３０に発行し、バッファ群２１に対するデータの読み出しまたは書き込みを制御するコマンドデコード回路２６とを有する。【選択図】図１
2007164415.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタデバイスと、メモリデバイスとに接続され、当該メモリデバイスと各マスタデバイスとの間のデータ転送制御を行うデータ転送制御装置であって、
上記各マスタデバイスとのデータのインタフェース部に配置され、上記マスタデバイスに対応してクライアントデータ幅よりも大きいビット幅を有し当該ビット幅が統一された複数のＦＩＦＯ型バッファを内蔵するバッファ群と、
上記マスタデバイスから受けた少なくともアドレスとコマンドに基づいて、上記メモリデバイスのアドレス、コマンドを生成するコマンド生成回路と、
上記コマンド生成回路にて生成されたアドレスおよびコマンドに基づいて、上記メモリデバイスのバス幅に応じてあらかじめ設定されたバーストレングスによりアクセスを行わせるコマンドおよびアドレスを上記メモリデバイスに発行し、上記バッファ群に対するデータの読み出しまたは書き込みを制御するコマンドデコード回路と
を有するデータ転送制御装置。
【請求項２】
上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスする
請求項１記載のデータ転送制御装置。
【請求項３】
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファに上記メモリデバイスのバス幅毎に異なるタイミングをもって書き込む
請求項１記載のデータ転送制御装置。
【請求項４】
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファにビット幅単位で当該ＦＩＦＯ型バッファを書き込み、当該書き込みに際し、上記メモリデバイスのバス幅に応じたサイクルで上記ＦＩＦＯ型バッファに書き込む
請求項３記載のデータ転送制御装置。
【請求項５】
上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスし、
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファに上記メモリデバイスのバス幅毎に異なるタイミングをもって書き込む
請求項１記載のデータ転送制御装置。
【請求項６】
上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスし、
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファにビット幅単位で当該ＦＩＦＯ型バッファを書き込み、当該書き込みに際し、上記メモリデバイスのバス幅に応じたサイクルで上記ＦＩＦＯ型バッファに書き込む
請求項１記載のデータ転送制御装置。
【請求項７】
複数のマスタデバイスと、メモリデバイスとに接続され、当該メモリデバイスと各マスタデバイスとの間のデータ転送制御を行うデータ転送制御装置であって、
上記各マスタデバイスとのデータのインタフェース部に配置され、上記マスタデバイスに対応してクライアントデータ幅よりも大きいビット幅を有し当該ビット幅が統一された複数のＦＩＦＯ型バッファを内蔵するバッファ群と、
上記マスタデバイスから受けた少なくともアドレスとコマンドに基づいて、上記メモリデバイスのアドレス、コマンドを生成するコマンド生成回路と、
上記コマンド生成回路にて生成されたアドレスおよびコマンドに基づいて、上記メモリデバイスのバス幅に応じてあらかじめ設定されたバーストレングスによりアクセスを行わせるコマンドおよびアドレスを上記メモリデバイスに発行し、上記バッファ群に対するデータの読み出しまたは書き込みを制御するコマンドデコード回路と、
一のマスタデバイスから最優先で上記メモリデバイスへアクセスすべき処理要求があった場合、当該一のマスタデバイスに最優先でメモリアクセス権を与え、当該マスタデバイスからの少なくともアドレスとコマンドを上記コマンド生成回路に出力する調停回路と
を有するデータ転送制御装置。
【請求項８】
上記調停回路は、上記コマンド生成回路からのリクエスト信号に応答して上記アドレスとコマンドを上記コマンド生成回路に出力する
請求項７記載のデータ転送制御装置。
【請求項９】
上記コマンド生成回路は、上記コマンドデコード回路からリクエスト信号を受けると、リクエスト信号を上記調停回路に発行する
請求項８記載のデータ転送制御装置。
【請求項１０】
上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスする
請求項７記載のデータ転送制御装置。
【請求項１１】
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファに上記メモリデバイスのバス幅毎に異なるタイミングをもって書き込む
請求項７記載のデータ転送制御装置。
【請求項１２】
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファにビット幅単位で当該ＦＩＦＯ型バッファを書き込み、当該書き込みに際し、上記メモリデバイスのバス幅に応じたサイクルで上記ＦＩＦＯ型バッファに書き込む
請求項１１記載のデータ転送制御装置。
【請求項１３】
上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスし、
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファに上記メモリデバイスのバス幅毎に異なるタイミングをもって書き込む
請求項７記載のデータ転送制御装置。
【請求項１４】
上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスし、
上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファにビット幅単位で当該ＦＩＦＯ型バッファを書き込み、当該書き込みに際し、上記メモリデバイスのバス幅に応じたサイクルで上記ＦＩＦＯ型バッファに書き込む
請求項７記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのデータバス幅と入出力インタフェース側とがバス幅が異なる場合に外部メモリデバイスへのアクセスを制御するデータ転送制御装置に係り、特に複数のデバイス（クライアント）から外部メモリデバイスへのアクセスを制御するデータ転送制御装置に関するものである。
【背景技術】
【０００２】
メモリのデータバス幅と入出力インタフェース側とがバス幅が異なる場合に外部メモリデバイスへのアクセスを制御する装置としては、種々提案されている（たとえば特許文献１、２、または３参照）。
【０００３】
特許文献１に記載されている装置は、複数のマスタデバイスと、１つのメモリデバイスとに接続され、メモリデバイスと、各マスタデバイスとの間のデータ転送を行うデータ処理装置である。
このデータ処理装置は、２つのポイントを有し、一方のポイントにてメモリデバイスと接続されるメモリバスと、それぞれが２つ以上のポイントを有し、１つ以上のポイントにて各マスタデバイスと接続される複数のローカルバスと、メモリデバイスに対するデータ読み出し、および、データ書き込みを行い、各ローカルバス上では、各マスタデバイスが要求する転送レートにてデータ転送を行わせ、メモリバス上では、メモリデバイスが要求する転送レートにてデータ転送を行わせる転送コントローラと、メモリバスの他方のポイント、および、各ローカルバスの１つのポイントにて接続された複数のバッファであり、メモリバスと、ローカルバスとの間の転送レートの相違を吸収するよう、データの入出力を行う複数のローカルバッファとを有している。
【０００４】
特許文献２に記載されているＤＭＡ転送方式は、同一バス上のビット幅の異なるデバイス間のＤＭＡによるデータ転送において、前記デバイス間をＤＭＡ制御機能を内蔵したビット幅の変換可能な双方向ＦＩＦＯにより中継する。
【０００５】
また、特許文献３に記載されているデータ転送装置は、入出力Ｉ／Ｆとメモリとの間でデータをＤＭＡ転送するデータ転送装置であって、入出力Ｉ／Ｆのデータバス幅、メモリのデータバス幅、および、ＤＭＡ転送の方向に関する情報を記憶するレジスタ部と、入出力Ｉ／Ｆとメモリとの一方である転送元からのデータを入力し、入出力Ｉ／Ｆとメモリとの他方である転送先に出力する転送部とを備え、転送部は、レジスタ部に記憶された情報に基づいて、転送元からのデータのビット数を転送先のデータバス幅に応じたビット数に調整する調整部を有する。
【特許文献１】特許第３３２７９０号公報
【特許文献２】特許第３５４４１４６号公報
【特許文献３】特開２００２−１３２７０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、特許文献１に記載されている装置においては、ローカルバスの転送レートに調停回路が左右される上、メモリバスを分離してローカルバスへ接続しているので、外部メモリデバイスへバーストアクセスをすることができない。
したがって、外部メモリデバイスに消費電力が小さく、高いバンド幅を有するＤＤＲ、ＤＤＲ２の要求を満たすことができない。
【０００７】
また、特許文献２，３に記載されている装置は、１つのマスタデバイス（クライアント）と１つのメモリデバイス間のアクセスであり、複数のマスタデバイス（クライアント）と１つのメモリデバイス間のアクセスについて全く開示されていない。
さらに、特許文献２の装置においては、内部に２種類のＦＩＦＯ型バッファを内蔵する必要があり、結果として、各クライアントは、インタフェース設計において外部デバイスのデータ幅に左右されることになる。
【０００８】
本発明は、システムに要求される処理内容に応じて外部メモリデバイスのバス幅を容易に変更でき、バーストアクセスを意識したアーキテクチャでバンド幅を効率的に使用できるデータ転送制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の観点は、複数のマスタデバイスと、メモリデバイスとに接続され、当該メモリデバイスと各マスタデバイスとの間のデータ転送制御を行うデータ転送制御装置であって、上記各マスタデバイスとのデータのインタフェース部に配置され、上記マスタデバイスに対応してクライアントデータ幅よりも大きいビット幅を有し当該ビット幅が統一された複数のＦＩＦＯ型バッファを内蔵するバッファ群と、上記マスタデバイスから受けた少なくともアドレスとコマンドに基づいて、上記メモリデバイスのアドレス、コマンドを生成するコマンド生成回路と、上記コマンド生成回路にて生成されたアドレスおよびコマンドに基づいて、上記メモリデバイスのバス幅に応じてあらかじめ設定されたバーストレングスによりアクセスを行わせるコマンドおよびアドレスを上記メモリデバイスに発行し、上記バッファ群に対するデータの読み出しまたは書き込みを制御するコマンドデコード回路とを有する。
【００１０】
本発明の第２の観点は、複数のマスタデバイスと、メモリデバイスとに接続され、当該メモリデバイスと各マスタデバイスとの間のデータ転送制御を行うデータ転送制御装置であって、上記各マスタデバイスとのデータのインタフェース部に配置され、上記マスタデバイスに対応してクライアントデータ幅よりも大きいビット幅を有し当該ビット幅が統一された複数のＦＩＦＯ型バッファを内蔵するバッファ群と、上記マスタデバイスから受けた少なくともアドレスとコマンドに基づいて、上記メモリデバイスのアドレス、コマンドを生成するコマンド生成回路と、上記コマンド生成回路にて生成されたアドレスおよびコマンドに基づいて、上記メモリデバイスのバス幅に応じてあらかじめ設定されたバーストレングスによりアクセスを行わせるコマンドおよびアドレスを上記メモリデバイスに発行し、上記バッファ群に対するデータの読み出しまたは書き込みを制御するコマンドデコード回路と、一のマスタデバイスから最優先で上記メモリデバイスへアクセスすべき処理要求があった場合、当該一のマスタデバイスに最優先でメモリアクセス権を与え、当該マスタデバイスからの少なくともアドレスとコマンドを上記コマンド生成回路に出力する調停回路とを有する。
【００１１】
好適には、上記調停回路は、上記コマンド生成回路からのリクエスト信号に応答して上記アドレスとコマンドを上記コマンド生成回路に出力する。
【００１２】
好適には、上記コマンド生成回路は、上記コマンドデコード回路からリクエスト信号を受けると、リクエスト信号を上記調停回路に発行する。
【００１３】
好適には、上記メモリデバイスへのアクセスが書き込み（ライト）のためのアクセスの場合、上記コマンドデコード回路は、対応する上記ＦＩＦＯ型バッファから上記メモリデバイスのバス幅に応じたサイクルでデータを読み出し、所定のバス幅に応じたデータ単位で当該バッファからの読み出しデータをシフトして、上記メモリデバイスヘアクセスする。
【００１４】
好適には、上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファに上記メモリデバイスのバス幅毎に異なるタイミングをもって書き込む。
【００１５】
好適には、上記メモリデバイスへのアクセスが読み出し（リード）のためのアクセスの場合、上記コマンドデコード回路は、読み出しデータを対応する上記ＦＩＦＯ型バッファにビット幅単位で当該ＦＩＦＯ型バッファを書き込み、当該書き込みに際し、上記メモリデバイスのバス幅に応じたサイクルで上記ＦＩＦＯ型バッファに書き込む。
【発明の効果】
【００１６】
本発明によれば、システムに要求される処理内容に応じて外部メモリデバイスのバス幅を容易に変更できる。
また、バーストアクセスを意識したアーキテクチャでバンド幅を効率的に使用できる利点がある。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１８】
図１は、本発明の実施形態に係るデータ転送制御システムの第１の構成例を示すブロック図であり、図２は、本実施形態に係るデータ転送制御システムの第２の構成例を示すブロック図である。図１および図２は、外部デバイスメモリをターゲットにＤＤＲ２を使用する場合の全体構成を示している。
【００１９】
本データ転送制御システム１０，１０Ａは、データ転送制御装置２０、外部メモリデバイス３０、複数のマスタデバイス４０−０〜４０−ｎ、および設定レジスタ５１を含む処理装置としてのＣＰＵ５０を有している。
本実施形態に係る図１の外部メモリデバイス３０のバス幅は３２ビット(bit)であり、図２の外部メモリデバイス３０Ａのバス幅は１６ビット(bit)である。
図１のデータ転送制御システム１０と図２のデータ転送制御システム１０Ａの異なる点は、この外部メモリデバイス３０のバス幅が３２ビットと１６ビットである点であり、その他の基本的なアーキテクチャは同様である。よって、図１および図２において、同一機能部分は同一符号をもって表している。
【００２０】
データ転送制御装置２０は、図に示すように、１２８ビット幅ＦＩＦＯ型バッファ２１−１〜２１−ｎを有するバッファ群２１、調停回路２２、ライト（書き込み）データオーダリング回路２３、リード（読み出し）データオーダリング回路２４、ＤＤＲコマンド生成回路２５、およびＤＤＲコマンドデコード回路２６を有している。
【００２１】
ＤＤＲ２を使用する特徴としては、内部バス動作周波数の倍の動作周波数で外部メモリデバイス３０を動作させるので、内部バス動作クロック１サイクルあたり、外部メモリデバイス３０のデータ幅の4倍のデータにアクセスできることである。
内部ブロックの動作周波数に関しては、ＦＩＦＯ型バッファ２１−１〜２１−ｎを除き、同一周波数である。各マスタデバイス（各クライアント）４０−１〜４０−ｎは、同一周波数である必要がない。
【００２２】
本実施形態の特徴として、複数のマスタデバイス（クライアント）４０−０〜４０−ｎからのアクセスを内部128ビット(bit)ＦＩＦＯ２１−１〜２１−ｎを経由することで内部データ幅を128bitに揃え、かつ外部メモリデバイス３０へのバーストアクセスを基本動作に考慮した回路構成になっている。
【００２３】
本実施形態においては、外部メモリデバイスが32bit幅の時は、４バースト、16bit幅のときは、８バーストアクセスと決めており、さらに４バンクのコマンドを多重化させることで512bitが最小単位のアクセスを行うように構成されている。
【００２４】
図３（Ａ)〜（Ｇ）は、本実施形態において、１バンクあたり４バーストｘ２アクセスのコマンド例を示す図である。
本実施形態において、バーストレングスを固定している理由としては、外部メモリデバイス３０が32bitの場合は、この128bitデータが１アクセス分のデータになり(バーストレングスを４に固定しているため)、16bitの場合は、この128bitデータが２アクセス分のデータになり(バーストレングスを８に固定しているため)、内部バスクロックＣＬＫで外部メモリデバイス３０へのバーストアクセスを制御できる点とバスのバンド幅を有効に活用するためである。
【００２５】
次に、本実施形態のデータ転送制御装置２０の各ブロックの構成および機能について説明する。
【００２６】
調停回路２２は、あるマスタデバイス（クライアント）から最優先で外部メモリデバイス３０に格納、あるいは外部メモリデバイス３０から読み出さなければない処理要求があった場合、その要求を出したマスタデバイス（図１ではマスタデバイス４０−０）に最優先でメモリアクセス権を与える。
たとえば、ビデオ信号処理システムにおいて最優先でメモリに画像を格納しなければならないマスタデバイス（クライアント）は、レイテンシおよびバンド幅の保障をしなければならないので、調停回路２２にて、最優先でメモリアクセス権が与えられる。
ただし、マスタデバイス（クライアント）内部で非同期制御を行う必要がある。
調停回路２２は、ＤＤＲコマンド生成回路２５によりリクエスト信号ＲＥＱ２５を受けると、アドレスＡＤＲ、リード／ライト（Read/Write）コマンドＲ／ＷＣＭＤ２２、カウント値ＣＮＴ２２をＤＤＲコマンド生成回路２５に出力する。
【００２７】
バッファ群２１は、各マスタデバイス（クライアント）４０−０〜４０−ｎ毎にクライアントデータ幅よりも大きい１種類のＦＩＦＯ型バッファを内蔵する。
本実施形態においては、１２８ビット幅ＦＩＦＯ型バッファ２１−１〜２１−ｎを内蔵している。
このように、本実施形態においては、クライアントデータ幅よりも大きいＦＩＦＯバッファを内蔵しているのも、ＤＤＲ，ＤＤＲ２の特徴、バーストアクセスを活かすために制御しやすい回路構成にするためである。
この場合、外部メモリデバイス３０のデータ幅が変わっても内部ＦＩＦＯ型バッファ２１−１〜２１−ｎのデータ幅は変わらないので、各クライアントは、外部デバイスのデータ幅に左右されないインタフェースに設計でき、各クライアントで共通化できる。
バッファ群２１において、最優先マスタデバイス（クライアント）より優先度は、低いものの、レイテンシおよびバンド幅を保障しなければならない画像フォーマット変換クライアント等はＦＩＦＯ型バッファを介することで、レイテンシおよび、バンド幅保障を実現している。
画像フォーマット変換クライアント等は、ＦＩＦＯ型バッファで非同期制御を実現できるので、各マスタデバイス（クライアント）内部に非同期制御回路を持つ必要はない。
【００２８】
ライトデータオーダリング(Write data ordering)回路２３は、各マスタデバイス（クライアント）４０−０〜４０−ｎが要求するアクセスコマンドに応じた(エンディアン、データマスク等)データフォーマットにデータを変換する。
【００２９】
リードデータオーダリング(Read data ordering)回路２４は、外部メモリデバイス３０から読み出されたデータを各マスタデバイス（クライアント）４０−０〜４０−ｎが要求するデータフォーマットに変換する。
【００３０】
ＤＤＲコマンド生成回路２５は、調停回路２２から各マスタデバイス（クライアント）４０−０〜４０−ｎが発行したアドレスＡＤＲ、リード／ライト（Read/Write）コマンドＲ／ＷＣＭＤ２２、カウント値ＣＮＴ２２を受け、ＤＤＲ２用アドレスの生成、ＤＤＲ２用内部コマンドＣＭＤ２の生成を行う。
ＤＤＲコマンド生成回路２５は、アドレスエラーの検知も行っている。
【００３１】
図４（Ａ）〜（Ｈ）は、本実施形態に係るＤＤＲコマンド生成回路２５のタイミングチャート例を示す図である
図４（Ａ）は内部クロックＣＬＫを、図４（Ｂ）は調停回路２２からリード／ライトコマンドＲ／ＷＣＭＤ２２を、図４（Ｃ）は調停回路２２からのカウント値ＣＮＴ２２を、図４（Ｄ）は調停回路２２のバリッド信号ＶＬＤ２２を、図４（Ｅ）は調停回路２２へのリクエスト信号ＲＥＱ２５、図４（Ｆ）は内部コマンドＣＭＤ２を、図４（Ｇ）はコマンド生成回路２５のバリッド信号ＶＬＤ２５を、図４（Ｈ）はコマンドデコード回路２６からのリクエスト信号ＲＥＱ２６をそれぞれ示している。
【００３２】
処理的には、ＤＤＲコマンド生成回路２５において、ＤＤＲコマンドデコード回路２６からリクエスト信号ＲＥＱ２６を受けると調停回路２２へリクエスト信号ＲＥＱ２５を出し、アドレスＡＤＲ、リード／ライトコマンドＲ／ＷＣＭＤ２２、カウント値ＣＮＴ２２を受け取り、リード／ライトコマンドＲ／ＷＣＭＤ２２、カウント値ＣＮＴ２２より内部コマンドＣＭＤ２を生成する。
【００３３】
図４（Ａ）〜（Ｈ）の例では、図４（Ｆ）に示すように、「Read2」というコマンドＣＭＤ２を生成し、図４（Ｇ）に示すように、ＤＤＲ２コマンドデコード回路２６へ内部コマンド生成が完了したことがわかるようにバリッド信号ＶＬＤをハイ（High）レベルにする。
図４（Ｇ），（Ｈ）に示すように、バリッド信号ＶＬＤ２５がハイレベルでＤＤＲコマンドデコード回路２６からのリクエスト信号ＲＥＱ２６の入力があれば、次のサイクルでバリッド信号ＶＬＤ２５をロー（Low）レベルにし、調停回路２２へ次のアドレスＡＤＲ、リード／ライトコマンドＲ／ＷＣＭＤ２２、カウント値ＣＮＴ２２を受け取るためにリクエスト信号ＲＥＱ２５を出す。
【００３４】
図５は、本実施形態に係るＤＤＲコマンド生成回路２５の動作手順を示すフローチャートである。
ここで、上述の説明と重複する部分もあるが、ＤＤＲコマンド生成回路２５におけるより具体的な動作を図５のフローチャートに関連付けて説明する。
【００３５】
ステップＳＴ１：
ＤＤＲコマンド生成回路２５は、ＤＤＲコマンドデコード回路２６からリクエスト信号ＲＥＱ２６を受けると、調停回路２２へリクエスト信号ＲＥＱ２５を発行する。
ステップＳＴ２：
ＤＤＲコマンド生成回路２５は、リクエスト信号ＲＥＱ２５に応答して調停回路２２から出力されたアドレスＡＤＲ、リード／ライトコマンドＲ／ＷＣＭＤ、およびカウント値ＣＮＴを受けとる。
【００３６】
ステップＳＴ３：
ＤＤＲコマンド生成回路２５は、調停回路２２から受けたアドレスＡＤＲ、カウント値ＣＮＴ２２によりＤＤＲ用のアドレスを生成する。
ステップＳＴ４：
ＤＤＲコマンド生成回路２５は、生成したアドレスがメモリ容量と比較してその容量範囲内かどうかをチェックする。
ステップＳＴ５：
ステップＳＴ４において、アドレスがメモリ容量の範囲内であると判別すると、ＤＤＲコマンド生成回路２５はＤＤＲコマンドデコード回路２６へ生成したアドレスを出力する。
ステップＳＴ６：
ステップＳＴ４において、アドレスがメモリ容量の範囲外であると、ＤＤＲコマンド生成回路２５はアドレスエラーを発する。
【００３７】
ステップＳＴ７：
また、ＤＤＲコマンド生成回路２５は、調停回路２２から受けたリード／ライトコマンドＲ／ＷＣＭＤとカウント値ＣＮＴ２２より内部コマンドＣＭＤ２を生成する。
ステップＳＴ８：
そして、ＤＤＲコマンド生成回路２５は、ＤＤＲコマンドデコード回路２６へのバリッド信号ＶＬＤ２５をハイレベルにして、生成したコマンドＣＭＤ２をＤＤＲコマンドデコード回路２６へ出力する。
ステップＳＴ９：
ＤＤＲコマンド生成回路２５は、ＤＤＲコマンドデコード回路２６からリクエスト信号ＲＥＱ２６を受けると、バリッド信号ＶＬＤ２５をローレベルに切り替えて、調停回路２２へリクエスト信号ＲＥＱ２５を発行する。
【００３８】
ＤＤＲコマンドデコード回路２６は、ＤＤＲコマンド生成回路２５で生成されたＤＤＲ２用の内部コマンドＣＭＤ２をデコードし、バーストレングスを４に固定したアクセスを行わせるためのコマンドおよびアドレスを外部メモリデバイス３０側へ発行するように構成されている。
本実施形態においては、外部メモリデバイス３０の４バンクのコマンドを多重化させて最小512bit(128x4)単位で外部メモリデバイス３０へアクセスする仕様にしている。
この４バンクのコマンド多重化は、図３（Ｆ）に示す実行コマンドラインにあたる。
【００３９】
このＤＤＲコマンドデコード回路２６におけるバーストレングスを固定し、４バンクのコマンド多重化による外部メモリデバイス３０へのアクセスは、バスのバンド幅を有効に活用できる。
【００４０】
また、本実施形態においては、図２のように、外部メモリデバイス３０のバス幅を３２ビットの1/2の１６ビットにしても、バーストレングスを倍の８にしてやることで、512bit単位でのアクセス仕様を実現し、外部メモリデバイスに依存しないメモリコントローラを実現させている。
【００４１】
外部メモリデバイス３０へのライトアクセスは、外部のメモリデバイスのデータ幅に関係なく、図６（Ａ）〜（Ｅ）に示すように128bitデータを32bitデータに変換しているが、外部メモリデバイス３０のバス幅に応じて、この32bitデータの構成が異なる。
ＤＤＲコマンドデコード回路２６は、外部メモリデバイス３０のバス幅が32bitのときは、図７（Ａ）〜（Ｃ）に示すように、毎サイクル128bitデータを読み出し、32bit単位でシフトし、外部メモリデバイス３０へアクセスする。
これに対して、外部メモリデバイス３０が16bitのときは、図８（Ａ）〜（Ｃ）に示すように、２サイクルに１回128bitデータを読み出し、ダミーデータ(０) を埋めた128bitデータを生成し、上位16bitを０埋めした32bitデータ単位でシフトし、外部メモリデバイス３０へアクセスする。
【００４２】
また、リードアクセスは、図９（Ａ）〜（Ｌ）に示すように、外部メモリデバイス３０に関係なく32bitデータを128bitデータにまとめてＦＩＦＯ型バッファ２１−１〜２１−ｎに書き込むが、外部メモリデバイス３０のデータ幅に応じて、ＦＩＦＯ型バッファ２１−１〜２１−ｎへの書き込みタイミングが異なる。
ＤＤＲコマンドデコード回路２６は、外部メモリデバイス３０が32bitのときは、図１０（Ａ）〜（Ｃ）に示すように、毎サイクル128bitデータをＦＩＦＯ型バッファ２１−１〜２１−ｎに書き込む。
これに対して、外部メモリデバイス３０が16bitのときは、図１１（Ａ）〜（Ｃ）に示すように、２サイクルに１回128bitデータをＦＩＦＯ型バッファ２１−１〜２１−ｎに書き込む。
【００４３】
図１２は、本実施形態に係るＤＤＲコマンドデコード回路２６の動作手順を示すフローチャートである。
【００４４】
ステップＳＴ１１：
ＤＤＲコマンドデコード回路２６は、設定レジスタ５１をアクセスしてその設定データにより、外部メモリデバイス３０のデータ幅を判断する。
ステップＳＴ１２：
ステップＳＴ１１において、図１の回路に対応した３２ビット幅であると判断すると、ＤＤＲコマンドデコード回路２６は、ＤＤＲコマンド生成回路２５から転送された内部コマンドＣＭＤ２によりアクセスタイム、すなわちライトのアクセスであるのか、リードのためのアクセスであるのかを判断する。
ステップＳＴ１３：
ステップＳＴ１２において、ライトのためのアクセスであると判断すると、ＤＤＲコマンドデコード回路２６は、カウント数に合わせた内部ＦＩＦＯ型バッファ２１（−１〜−ｎ）より毎サイクルデータを１２８ビット単位で読み出す。
ステップＳＴ１４：
そして、ＤＤＲコマンドデコード回路２６は、ライトコマンドのタイミングにより出力タイミングを計り、３２ビットずつ外部メモリデバイス３０へのデータラインにライトデータを出力する。
ステップＳＴ１５：
一方、ステップＳＴ１２において、リードのためのアクセスであると判断すると、ＤＤＲコマンドデコード回路２６は、設定レジスタ５１のＣＡＳレイテンシ等の情報よりリードコマンドを発行してからデータが読み出されてくるタイミングを計り、４バーストデータ、すなわち１２８ビット単位でＦＩＦＯ型バッファ２１（−１〜−ｎ）に取り込む。
【００４５】
ステップＳＴ１６：
ステップＳＴ１１において、図２の回路に対応した１６ビット幅であると判断すると、ＤＤＲコマンドデコード回路２６は、ＤＤＲコマンド生成回路２５から転送された内部コマンドＣＭＤ２によりアクセスタイム、すなわちライトのアクセスであるのか、リードのためのアクセスであるのかを判断する。
ステップＳＴ１７：
ステップＳＴ１５において、ライトのためのアクセスであると判断すると、ＤＤＲコマンドデコード回路２６は、カウント数に合わせて２サイクルに１回のタイミングで内部ＦＩＦＯ型バッファ２１（−１〜−ｎ）よりデータを１２８ビット単位で読み出す。
ステップＳＴ１８：
ＤＤＲコマンドデコード回路２６は、読み出した１２８ビットのデータを１６ビット単位に分け、外部メモリデバイスが存在しないポート側にダミーデータが出力されるように埋め込んだ（設定した）１２８ビットデータを２サイクル分生成する。
ステップＳＴ１９：
そして、ＤＤＲコマンドデコード回路２６は、ライトコマンドのタイミングにより出力タイミングを計り、有効データを１６ビットずつ外部メモリデバイス３０へのデータラインにライトデータを出力する。メモリが存在しないポート（１６ビット）へは、０が出力される。
ステップＳＴ２０：
一方、ステップＳＴ１６において、リードのためのアクセスであると判断すると、ＤＤＲコマンドデコード回路２６は、設定レジスタ５１のＣＡＳレイテンシ等の情報よりリードコマンドを発行してからデータが読み出されてくるタイミングを計り、４バーストデータ、すなわち１２８ビット単位でＦＩＦＯ型バッファ２１（−１〜−ｎ）に取り込む。
ステップＳＴ２１：
このデータには、ダミーデータが含まれるので、２サイクル分の２５６ビットのデータからダミーデータを取り除き、１２８ビットの有効データを生成し、ＦＩＦＯ型バッファ２１（−１〜−ｎ）に取り込む。
【００４６】
この外部メモリデバイス３０に依存しないメモリコントローラとしてのデータ転送制御装置２０の実現により、システム要求として外部メモリデバイスの転送レートが半分以下でよいシステムでは、バーストレングスを８に固定したコマンドを生成するモードを選び、外部メモリデバイスのデータ幅を半分にするだけで、対応が可能であり、外部メモリデバイスコスト削減にも繋がる。
また、高速スペック用、低スペック用とそれぞれに特化したＬＳＩを製造することが避けられ、製造コストの削減、および量産が見込まれ、結果コストの削減に繋げられる。
【００４７】
最後に応用例として、外部メモリデバイスにＤＤＲを使用する場合について説明する。
まずＤＤＲ２と比較して、メモリコマンドが異なるので、ＤＤＲコマンドデコード回路をＤＤＲ用に修正する。
そして、外部メモリデバイス３０を32bit幅のＤＤＲに置き換え、バーストレングスを４に固定し、４バンクのコマンドを多重化させてアクセスを行なう形になるが、ＤＤＲは、内部バス動作クロック１サイクルあたり、外部メモリデータ幅の２倍のデータにアクセスが可能なため、ＤＤＲ２に比べバンド幅が半分になるデメリットもある。
そのときは、外部デバイスのデータ幅を倍の64bitに設定し、ＤＤＲコマンドでコード回路のデータ幅を64bitに修正することで対応可能となる。
コマンド自体は、バーストレングスを４に固定の、４バンクのコマンド多重化によるアクセスに変更はない。よって、ＤＤＲコマンドデコード回路の修正だけでＤＤＲメモリ用のバス制御装置が実現可能である。
【００４８】
また、ビデオ信号処理システム以外でも似たようなシステムであれば、適応できる。
【００４９】
以上説明したように、本実施形態によれば、内部の各クライアントは、外部メモリデバイスサイズに左右されないので、仕様スペックが低いシステムに対して、システムに合った外部メモリデバイスコストでこのＬＳＩを流用できる。
外部メモリデバイスへのアクセスをあるバースト長のバーストアクセスのみに固定しているので、コマンド発行タイミングも最適化でき、外部メモリデバイスのバンド幅をより効率に使用でき、その結果、内部バスのバンド幅も高い値が得られ、各クライアントが要求するバンド幅を満たせることができる。
【００５０】
本実施形態においては、各マスタデバイス（クライアント）毎にクライアントデータ幅よりも大きい１種類のＦＩＦＯバッファを内蔵する点において異なる。本発明でクライアントデータ幅よりも大きいＦＩＦＯバッファを内蔵しているのも、ＤＤＲ，ＤＤＲ２の特徴、バーストアクセスを活かすために制御しやすい回路構成にするためである。
外部デバイスのデータ幅が変わっても内部ＦＩＦＯのデータ幅は、変わらないので、各クライアントは、外部デバイスのデータ幅に左右されないインタフェースに設計でき、各クライアントで共通化できることも利点である。
【００５１】
また、本発明は、外部メモリデバイスへのアクセスをバーストアクセスに限定することで、メモリデバイスのバンド幅を効率的に使用できる。
【００５２】
すなわち、本実施形態に係るデータ転送制御装置２０は、システムに要求される処理内容に応じて、外部メモリデバイスのバス幅を容易に変更できるバス制御装置であり、変更に対して複数のクライアントは、気にせずアクセスでき、論理的に手を加える必要がない。複数のクライアントは、外部メモリデバイスのバス幅を意識することなく、内部ＦＩＦＯにアクセスする構造なので、論理的に手を加える必要がない。
そして、ＤＤＲ・ＳＤＲＡＭ、ＤＤＲ２・ＳＤＲＡＭの特徴であるバースト転送を意識したメモリバス制御装置で、複数のクライアントから１つのメモリデバイスへのアクセス制御において、メモリデバイスのバンド幅を効率的に使用できる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態に係るデータ転送制御システムの第１の構成例を示すブロック図である。
【図２】本発明の実施形態に係るデータ転送制御システムの第２の構成例を示すブロック図である。
【図３】本実施形態において、１バンクあたり４バーストｘ２アクセスのコマンド例を示す図である。
【図４】本実施形態に係るＤＤＲコマンド生成回路のタイミングチャート例を示す図である。
【図５】本実施形態に係るＤＤＲコマンド生成回路の動作手順を示すフローチャートである。
【図６】本実施形態に係るＤＤＲコマンドデコード回路の外部メモリデバイスへのライトアクセスのタイミングチャートである。
【図７】外部メモリデバイスのバス幅が32bitのときのライトアクセスのタイミングチャートである。
【図８】外部メモリデバイスのバス幅が16bitのときのライトアクセスのタイミングチャートである。
【図９】本実施形態に係るＤＤＲコマンドデコード回路の外部メモリデバイスへのリードアクセス時のＦＩＦＯ型バッファへの書き込むタイミングを示すタイミングチャートである。
【図１０】外部メモリデバイスのバス幅が32bitのときのリードアクセス時のＦＩＦＯ型バッファへの書き込むタイミングを示すタイミングチャートである。
【図１１】外部メモリデバイスのバス幅が16bitのときのリードアクセス時のＦＩＦＯ型バッファへの書き込むタイミングを示すタイミングチャートである。
【図１２】本実施形態に係るＤＤＲコマンドデコード回路２６の動作手順を示すフローチャートである。
【符号の説明】
【００５４】
１０，１０Ａ・・・データ転送制御システム、２０・・・データ転送制御装置、２１・・・バッファ群、２１−１〜２１−ｎ・・・１２８ビット幅ＦＩＦＯ型バッファ、２２・・・調停回路、２３・・・ライト（書き込み）データオーダリング回路、２４・・・リード（読み出し）データオーダリング回路、２５・・・ＤＤＲコマンド生成回路、２６・・・ＤＤＲコマンドデコード回路、３０，３０Ａ・・・外部メモリデバイス、４０−０〜４０−ｎ・・・マスタデバイス、５０・・・ＣＰＵ、５１・・・設定レジスタ。
【図１】
2007164415.tif 000003
【図２】
2007164415.tif 000004
【図３】
2007164415.tif 000005
【図４】
2007164415.tif 000006
【図５】
2007164415.tif 000007
【図６】
2007164415.tif 000008
【図７】
2007164415.tif 000009
【図８】
2007164415.tif 000010
【図９】
2007164415.tif 000011
【図１０】
2007164415.tif 000012
【図１１】
2007164415.tif 000013
【図１２】
2007164415.tif 000014