(57)【要約】【課題】本発明は、データ転送要求等が競合するバス上でのアクセス待ち時間を低減してバスの使用効率を上げると共に、データ転送の遅延を低減してデータ処理能力を向上させることができるデータ転送制御装置を提供する。【解決手段】異なるバス間でのデータ転送を行うデータ転送制御装置において、ＤＭＡＣ部１０４がメモリ部１１０とメモリ部１１１との間でＤＭＡ転送を行う際に、メモリ部１１０及びメモリ部１１１にそれぞれ蓄積されたデータ量が所定のデータ量であるときはバッファメモリ１０４ｂを介したＤＭＡ転送を実行する。そして、メモリ部１１０及びメモリ部１１１にそれぞれ蓄積されたデータ量が所定のデータ量でないときはバッファメモリ１０４ｂを使用しないＤＭＡ転送を実行する。【選択図】図３
2008108127.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと複数のダイレクトメモリアクセスコントロール（ＤＭＡＣ）によるアクセス要求が競合する第１のバスと、前記第１のバスとは独立して配置され、前記プロセッサと複数のＤＭＡＣによるアクセス要求が競合する第２のバスとを備え、第１のＤＭＡＣが前記第１のバスに接続された第１のメモリと前記第２のバスに接続された第２のメモリとの間でデータのデータ転送を行うデータ転送制御装置において、
前記第１及び前記第２のメモリにそれぞれ蓄積されたデータ量を判別する判別手段と、
前記判別手段による判別に応じて、バッファメモリを介したデータ転送と、前記バッファメモリを使用しないデータ転送とを選択的に実行する転送手段と、
を有することを特徴とするデータ転送制御装置。
【請求項２】
前記判別手段は、前記第１のメモリから読み出されたデータ量を示す第１のステータス情報と、前記第２のメモリに書込まれたデータ量を示す第２のステータス情報と、前記第２のメモリへ転送されたデータ量を示す第３のステータス情報とを比較し、前記第１及び前記第２のメモリにそれぞれ蓄積されたデータ量を判別することを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
前記第１のバスを占有して使用するためのアクセス権を調停して付与する第１のアービターと、前記第２のバスを占有して使用するためのアクセス権を調停して付与する第２のアービターとを更に備え、
前記第１のＤＭＡＣは、前記バッファメモリを介してデータ転送を行う場合には、前記第１又は前記第２のアービターから前記アクセス権を取得し、それぞれ独立したタイミングで前記バッファメモリへの読み込み又は書込みを行い、前記第１のメモリと前記第２のメモリとの間でデータ転送を実行することを特徴とする請求項１又は２記載のデータ転送制御装置。
【請求項４】
前記第１のバスを占有して使用するためのアクセス権を調停して付与する第１のアービターと、前記第２のバスを占有して使用するためのアクセス権を調停して付与する第２のアービターとを更に備え、  
前記第１のＤＭＡＣは、前記バッファメモリを使用しないデータ転送を行う場合には、前記第１及び前記第２のアービターから前記アクセス権を取得し、前記第１のバスから前記第２のバスに前記バッファメモリを介さずにデータを転送し、前記第１のメモリと前記第２のメモリとの間で直接データ転送を実行することを特徴とする請求項１又は２記載のデータ転送制御装置。
【請求項５】
前記判別手段は、データの転送元である前記第１のメモリに蓄積された第１のデータ量とデータの転送先である前記第２のメモリに蓄積された第２のデータ量とを比較し、前記第２のデータ量が前記第１のデータ量よりも一定量少なくなったときは、前記転送手段は前記バッファメモリを使用しないデータ転送を実行すること特徴とする請求項１乃至４のいずれか１項に記載のデータ転送制御装置。
【請求項６】
プロセッサと複数のダイレクトメモリアクセスコントロール（ＤＭＡＣ）によるアクセス要求が競合する第１のバスと、前記第１のバスとは独立して配置され、前記プロセッサと複数のＤＭＡＣによるアクセス要求が競合する第２のバスとを備え、第１のＤＭＡＣが前記第１のバスに接続された第１のメモリと前記第２のバスに接続された第２のメモリとの間でデータのデータ転送するデータ転送方法において、
前記第１及び前記第２のメモリにそれぞれ蓄積されたデータ量を判別し、
前記判別に応じて、バッファメモリを介したデータ転送と、前記バッファメモリを使用しないデータ転送とを選択的に実行することを特徴とするデータ転送方法。
【請求項７】
前記判別は、前記第１のメモリから読み出されたデータ量を示す第１のステータス情報と、前記第２のメモリに書込まれたデータ量を示す第２のステータス情報と、前記第２のメモリへ転送されたデータ量を示す第３のステータス情報とを比較し、前記第１及び前記第２のメモリにそれぞれ蓄積されたデータ量を判別することを特徴とする請求項６記載のデータ転送方法。
【請求項８】
前記バッファメモリを介してデータ転送を行う場合は、前記第１のＤＭＡＣは、前記第１のバスを占有して使用するためのアクセス権を調停して付与する第１のアービターと、前記第２のバスを占有して使用するためのアクセス権を調停して付与する第２のアービターとから前記アクセス権を取得し、それぞれ独立したタイミングで前記バッファメモリへの読み込み又は書込みを行い、前記第１のメモリと前記第２のメモリとの間でデータ転送することを特徴とする請求項６又は７記載のデータ転送方法。
【請求項９】
前記バッファメモリを使用しないデータ転送を行う場合は、前記第１のバスを占有して使用するためのアクセス権を調停して付与する第１のアービターと、前記第２のバスを占有して使用するためのアクセス権を調停して付与する第２のアービターとから前記アクセス権を取得し、前記第１のバスから前記第２のバスに前記バッファメモリを介さずにデータを転送し、前記第１のメモリと前記第２のメモリとの間で直接データ転送を実行することを特徴とする請求項６又は７記載のデータ転送方法。
【請求項１０】
データの転送元である前記第１のメモリに蓄積された第１のデータ量とデータの転送先である前記第２のメモリに蓄積された第２のデータ量とを比較し、前記第２のデータ量が前記第１のデータ量よりも一定量少なくなったときは、前記バッファメモリを使用しないデータ転送を実行すること特徴とする請求項６乃至９のいずれか１項に記載のデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス上のメモリ間のデータ転送を行うデータ転送制御装置及び方法に関する。
【背景技術】
【０００２】
近年、映像データの情報量が増大し、映像データを伝送するために高速なデータ転送能力が必要とされようになった。例えば、ハイビジョンなどの映像データをストリーミングの形式で通信インターフェースから受信してディスプレイ装置に出力する通信インターフェース装置では、大容量の映像データをリアルタイムに転送するために高速なデータ転送能力が要求される。
【０００３】
このような通信インターフェース装置では、受信した映像データ自体に画像圧縮等の信号処理を行わないので、映像データの転送と通信プロトコルの処理とを分離して実行することが可能となる。そのため、中央演算装置（ＣＰＵ）が通信プロトコルの処理のみを行い、映像データの転送のためにＤＭＡ転送が行われることによって、低いＣＰＵ負荷で高速なスループットを実現する方法や処理が提案されている。
【０００４】
例えば、２つの異なるバス間でのデータ転送制御方法の一例として、マルチプロセッサシステムにおいて、１つのプロセッサに従属するメモリからもう１つのプロセッサに従属するメモリへデータ転送を行うデータ転送制御装置が提案されている（特許文献１参照）。
【特許文献１】特開平６−４４１７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来技術のように、２つのメモリ間でデータを転送する場合には、バッファメモリが利用される。その理由の１つとして、メモリからの読み出し、メモリへの書込みを夫々独立に行うことで、各メモリへのアクセスを高速に行うことができる点が挙げられる。
【０００６】
しかしながら、各メモリへのアクセスを独立に行うと、各メモリに蓄積されたデータ量に偏りが生じ、バッファアンダーフロー又はオーバフローが発生し、転送効率が低下してしまう場合がある。その結果、転送遅延が発生し、リアルタイム伝送などの障害となる可能性もある。
【０００７】
本発明は、メモリ間転送の効率化を図り、データ処理能力を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、プロセッサと複数のダイレクトメモリアクセスコントロール（ＤＭＡＣ）によるアクセス要求が競合する第１のバスと、前記第１のバスとは独立して配置され、前記プロセッサと複数のＤＭＡＣによるアクセス要求が競合する第２のバスとを備え、第１のＤＭＡＣが前記第１のバスに接続された第１のメモリと前記第２のバスに接続された第２のメモリとの間でデータを転送する際に、前記第１及び前記第２のメモリにそれぞれ蓄積されたデータ量を判別し、前記判別に応じて、バッファメモリを介したデータ転送と、前記バッファメモリを使用しないデータ転送とを選択的に実行することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、メモリ間でデータ転送する際にメモリ状態によりデータ転送の仕方を切り替えることができ、効率良くデータ転送できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１１】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る通信インターフェース装置の構成例を示すブロック図である。
【００１２】
本通信インターフェース装置は、映像データをストリーミングの形式で通信インターフェースから受信してテレビジョン（ＴＶ）などのディスプレイ装置等に出力するものである。この通信インターフェース装置は、３種類のバスが各機能ブロック間を接続する構成となっている。
【００１３】
ＣＰＵバス１１４は、プロセッサである中央演算装置（ＣＰＵ）１０１と、バスアクセスの調停を行う各アービター部１０２（ARBITER１），１０３（ARBITER２）に接続されている。また、ＣＰＵバス１１４は、各ダイレクトメモリアクセスコントローラ（ＤＭＡＣ（Direct Memory Access Controller））部１０４（ＤＭＡＣ１），１０５（ＤＭＡＣ２），１０６（ＤＭＡＣ３）と、各メモリコントローラ部１０７（ＲＡＭＣ１），１０８（ＲＡＭＣ２）に接続されている。
【００１４】
ＣＰＵ１０１は、該ＣＰＵバス１１４を使用して各機能ブロックに対するリード/ライトアクセスを実行する。ＣＰＵバス１１４は、アクセスを制御する制御信号線とアドレスを指定するアドレスバスとデータを転送するデータバスとによって構成されている。
【００１５】
ＣＰＵ１０１のアクセスは大きく２種類に分けられる。１つは、各アービター部１０２，１０３の内部レジスタへのリード/ライトアクセス、ＤＭＡＣ部１０４，１０５，１０６の内部レジスタへのリード/ライトアクセスのような各機能ブロックの内部レジスタに対するアクセスである。
【００１６】
もう１つは、ＤＭＡＣ部１０５を経由して外部インターフェース部１１２（Ｉ／Ｆ）に接続されたＬＳＩ（Large Scale Integration）や入出力装置とのリード/ライトアクセス、ＤＭＡＣ部１０６を経由して外部インターフェース部１１３（Ｉ／Ｆ）に接続されたＬＳＩや入出力装置とのリード/ライトアクセス、及び各メモリコントローラ部１０７，１０８を経由した各メモリ部１１０（ＲＡＭ１），１１１（ＲＡＭ２）へのリード/ライトアクセスである。外部インターフェース部１１２は通信インターフェースの機能を有し、外部インターフェース部１１３は映像データをＴＶなどのディスプレイ装置に出力する映像出力インターフェースの機能を有する。
【００１７】
データ転送バス１１５は、メモリコントローラ部１０７と、ＤＭＡＣ部１０４，１０５と、データバススイッチ１０９（ＳＷＩＴＣＨ）とに接続される。そして、データ転送バス１１５は、アドレスを指定するアドレスバスとデータを転送するデータバスによって構成されている。
【００１８】
データ転送バス１１６は、メモリコントローラ部１０８と、ＤＭＡＣ部１０４，１０６と、データバススイッチ１０９とに接続される。そして、データ転送バス１１６は、アドレスを指定するアドレスバスとデータを転送するデータバスによって構成されている。
【００１９】
メモリ部１１０と外部インターフェース部１１２との間でＤＭＡＣ部１０５の制御によるＤＭＡ転送によってデータ転送が行われる。メモリ部１１１と外部インターフェース部１１３との間でＤＭＡＣ部１０６の制御によるＤＭＡ転送によってデータ転送が行われる。さらに、メモリ部１１０とメモリ部１１１との間でＤＭＡＣ部１０４の制御によるＤＭＡ転送によってデータ転送が行われる。
【００２０】
ＤＭＡＣ部１０４によるＤＭＡ転送には２つのＤＭＡ転送方法がある。１つはＤＭＡＣ部１０４の内部にあるバッファメモリ１０４ｂ（後述する図２参照）を使用したＤＭＡ転送方法である。もう一つはデータバススイッチ１０９によってデータ転送バス１１５とデータ転送バス１１６のデータバスをＤＭＡＣ部１０４からの指示によって一時的に直接接続して行う、バッファメモリ１０４ｂを使用しないＤＭＡ転送方法である。
【００２１】
アービター部１０２は、データ転送バス１１５上でＤＭＡＣ部１０４，１０５或いはＣＰＵ１０１によるアクセス要求が発生した場合にアクセス競合となっているか否かを判定し、アクセス競合が発生したときは競合制御を行ってアクセス権を決定する処理を行う。同様に、アービター部１０３は、データ転送バス１１６上でＤＭＡＣ部１０４，１０６或いはＣＰＵ１０１によるアクセス要求が発生した場合にアクセス競合となっているか否かを判定し、アクセス競合が発生したときは競合制御を行ってアクセス権を決定する処理を行う。
【００２２】
ＤＭＡＣ部１０５及びＤＭＡＣ部１０６は、それぞれ内部にレジスタを装備している。ＣＰＵ１０１は、ＣＰＵバス１１４を使用して各レジスタに対してリード/ライトアクセスが可能となっている。該レジスタは、設定用レジスタと、ステータスレジスタとによって構成される。設定用レジスタは、ＤＭＡ転送元アドレス情報や転送先アドレス情報、転送するデータ量の設定、ＤＭＡ転送の開始や停止の命令等を行うためのものである。ステータスレジスタには、ＤＭＡ転送によって転送された転送済みデータ量の総量を示すステータス情報が格納される。
【００２３】
ＤＭＡＣ部１０４内のレジスタには、さらに、ＤＭＡ転送をバースト転送によって行うのか最小転送単位ごとに転送を行うのか、或いはバッファメモリ１０４ｂを使用した転送なのかバッファメモリ１０４ｂを使用しない転送なのかについて設定可能となっている。例えば、メモリ部１１０からメモリ部１１１へＤＭＡＣ部１０４の制御によるＤＭＡ転送を行う場合には、バッファメモリ１０４ｂを使用した転送で、最小転送単位を４バイトと設定したとする。すると、メモリ部１１０からバッファメモリ１０４ｂへの書込みには、４バイト転送ごとにデータ転送バス１１５が開放され、その都度アービター部１０２によるアクセス競合制御に従ってＤＭＡ転送が行われてバッファメモリ１０４ｂへの書込みが行われる。
【００２４】
一方、バッファメモリ１０４ｂからメモリ部１１１への書込みには、４バイト転送ごとにデータ転送バス１１６が開放され、その都度アービター部１０３によるアクセス競合制御に従ってＤＭＡ転送が行われてメモリ部１１１への書込みが行われる。
【００２５】
また、メモリ部１１０からメモリ部１１１へＤＭＡＣ部１０４の制御によるＤＭＡ転送を行う場合に、バッファメモリ１０４ｂを未使用とした転送で、転送単位をバーストと設定したとする。すると、所定のタイミングでデータバススイッチ１０９によってデータ転送バス１１５とデータ転送バス１１６のデータバスが一時的に直接接続され、メモリ部１１０からメモリ部１１１へバッファメモリ１０４ｂを使用しないＤＭＡ転送がバースト的に実行される。この所定のタイミングとは、アービター部１０２がデータ転送バス１１５のアクセス権をＤＭＡＣ部１０４に決定し、かつアービター部１０３がデータ転送バス１１６のアクセス権をＤＭＡＣ部１０４に決定するタイミングである。
【００２６】
制御信号１１７は、ＣＰＵ１０１が外部インターフェース部１１２，１１３或いはメモリ部１１０，１１１に対するアクセスを実行することをアービター部１０２，１０３に対して通知するときに出力される。また、制御信号１１７は、アービター部１０２，１０３からＣＰＵ１０１への該通知に対する応答時にも出力される。
【００２７】
制御信号１１８は、ＤＭＡＣ部１０５がデータ転送バス１１５を占有して使用するアクセス権の要求をアービター部１０２へ通知するときに出力される。また、制御信号１１８は、アービター部１０２からＤＭＡＣ部１０５への該通知に対する応答時にも出力される。また、制御信号１１８は、ＤＭＡＣ部１０５によるＤＭＡ転送が一時停止されて、データ転送バス１１５を開放する命令がアービター部１０２からＤＭＡＣ部１０５へ通知されるときにも出力される。
【００２８】
制御信号１１９は、ＤＭＡＣ部１０４がデータ転送バス１１５を占有して使用するアクセス権の要求をアービター部１０２へ通知するときに出力される。また、制御信号１１９は、アービター部１０２からＤＭＡＣ部１０４への該通知に対する応答時にも出力される。また、制御信号１１９は、ＤＭＡＣ部１０４によるＤＭＡ転送が一時停止されて、データ転送バス１１５を開放する命令がアービター部１０２からＤＭＡＣ部１０４へ通知されるときにも出力される。
【００２９】
制御信号１２０は、ＤＭＡＣ部１０６がデータ転送バス１１６を占有して使用するアクセス権の要求をアービター部１０３へ通知するときに出力される。また、制御信号１２０は、アービター部１０３からＤＭＡＣ部１０６への該通知に対する応答時にも出力される。また、制御信号１２０は、ＤＭＡＣ部１０６によるＤＭＡ転送が一時停止されて、データ転送バス１１６を開放する命令がアービター部１０３からＤＭＡＣ部１０６へ通知されるときにも出力される。
【００３０】
制御信号１２１は、ＤＭＡＣ部１０４がデータ転送バス１１６を占有して使用するアクセス権の要求をアービター部１０３へ通知するときに出力される。また、制御信号１２１は、アービター部１０３からＤＭＡＣ部１０４への該通知に対する応答時にも出力される。また、制御信号１２１は、ＤＭＡＣ部１０４によるＤＭＡ転送が一時停止されて、データ転送バス１１６を開放する命令がアービター部１０３からＤＭＡＣ部１０４へ通知されるときにも出力される。
【００３１】
制御信号１２２は、ＤＭＡＣ部１０５がＤＭＡ転送を行うためにメモリ部１１０に対するリード/ライトアクセス制御を行う信号群である。例えば、メモリ部１１０がＳＲＡＭ（Static Random Access Memory）である場合、制御信号１２２は、チップセレクトを示すＣＳ信号やアウトプットイネーブルを示すＯＥ信号、ライトイネーブルを示すＷＥ信号等の制御信号である。
【００３２】
制御信号１２３は、ＤＭＡＣ部１０６がＤＭＡ転送を行うためにメモリ部１１１に対するリード/ライトアクセス制御を行う信号群である。例えば、メモリ部１１１がＳＲＡＭである場合、制御信号１２３は、チップセレクトを示すＣＳ信号やアウトプットイネーブルを示すＯＥ信号、ライトイネーブルを示すＷＥ信号等の制御信号である。
【００３３】
制御信号１２４は、ＤＭＡＣ部１０４がＤＭＡ転送を行うためにメモリ部１１０に対するリード/ライトアクセス制御を行う信号群である。例えば、メモリ部１１０がＳＲＡＭである場合、制御信号１２４は、チップセレクトを示すＣＳ信号やアウトプットイネーブルを示すＯＥ信号、ライトイネーブルを示すＷＥ信号等の制御信号である。
【００３４】
制御信号１２５は、ＤＭＡＣ部１０４がＤＭＡ転送を行うためにメモリ部１１１に対するリード/ライトアクセス制御を行う信号群である。例えば、メモリ部１１１がＳＲＡＭである場合、制御信号１２５は、チップセレクトを示すＣＳ信号やアウトプットイネーブルを示すＯＥ信号、ライトイネーブルを示すＷＥ信号等の制御信号である。
【００３５】
制御信号１２６は、ＤＭＡＣ部１０４からデータバススイッチ１０９に対する制御信号である。ＤＭＡＣ部１０４からデータバススイッチ１０９に、データ転送バス１１５とデータ転送バス１１６を直接接続する指示が送信される。この指示には転送方向情報も含まれる。転送方向情報には、データ転送バス１１５とデータ転送バス１１６との間で出力同士が衝突しないようにデータ転送バス１１５のデータバス値をデータ転送バス１１６のデータバス値へ代入するという情報が含まれる。また、転送方向情報には、データ転送バス１１６のデータバス値をデータ転送バス１１５のデータバスへ代入するという情報も含まれる。
【００３６】
次に、図１の通信インターフェース装置において、メモリ部１１０とメモリ部１１１との間でＤＭＡ転送によってデータが転送される経路と、該ＤＭＡ転送を制御するＤＭＡＣ部１０４の内部構成について詳細に説明する。
【００３７】
図２は、図１のＤＭＡＣ部１０４によるＤＭＡ転送の流れを説明する図である。
【００３８】
図２において、データ転送バス１１５は、アドレスバス１１５ｂとデータバス１１５ａとに分けられている。そして、データバススイッチ１０９にはデータバス１１５ａのみが接続されていることを示している。同様に、データ転送バス１１６は、アドレスバス１１６ｂとデータバス１１６ａとに分けられている。そして、データバススイッチ１０９には、データバス１１６ａのみが接続されていることを示している。
【００３９】
データバススイッチ１０９において、データバス１１５ａとデータバス１１６ａとの接続形態には１０９ａ，１０９ｂ，１０９ｃという３つがある。そして、ＤＭＡＣ部１０４からの制御信号１２６によって、この３つの接続形態のうち１つが選択される構成となっている。
【００４０】
接続形態１０９ａは、データバス１１５ａとデータバス１１６ａとが切り離された状態である。この状態は、メモリ部１１０とメモリ部１１１との間でＤＭＡ転送が行われていないとき、又はメモリ部１１０とメモリ部１１１との間でＤＭＡ転送が行われていてもＤＭＡＣ部１０４内部のバッファメモリ１０４ｂを使用したＤＭＡ転送であるときに選択される。
【００４１】
接続形態１０９ｂは、データバス１１５ａの値をデータバス１１６ａの値へ代入する状態である。この接続形態は、メモリ部１１０とメモリ部１１１との間で第１の転送方向にＤＭＡ転送が行われ、ＤＭＡＣ部１０４内部のバッファメモリ１０４ｂを使用しないＤＭＡ転送が行われるときに選択される。この第１の転送方向とは、ＤＭＡ転送の転送方向がメモリ部１１０からメモリ部１１１へ向かう転送方向である。
【００４２】
接続形態１０９ｃは、データバス１１６ａの値をデータバス１１５ａの値へ代入する状態である。この接続形態は、メモリ部１１１とメモリ部１１０との間で第２の転送方向にＤＭＡ転送が行われ、ＤＭＡＣ部１０４内部のバッファメモリ１０４ｂを使用しないＤＭＡ転送が行われるときに選択される。この第２の転送方向とは、ＤＭＡ転送の転送方向がメモリ部１１１からメモリ部１１０へ向かう転送方向である。
【００４３】
バスアクセスコントロール１０４ａは、ＤＭＡＣ部１０４の内部にある機能ブロックの１つである。バスアクセスコントロール１０４ａは、データ転送バス１１５，１１６に対する制御信号１２４，１２５を出力し、データバススイッチ１０９に対する制御信号１２６を出力する。また、バスアクセスコントロール１０４ａは、アドレスバス１１５ｂ及びアドレスバス１１６ｂの各アドレス値の指定とバッファメモリ１０４ｂのアドレス値の指定も行う。バスアクセスコントロール１０４ａは、上記制御信号の出力と上記アドレス値の指定を行うことによってＤＭＡ転送を実行するための全ての制御を行っている。
【００４４】
また、バスアクセスコントロール１０４ａは、これらの制御を行うために内部レジスタ１０４ｃの設定値やバッファメモリ１０４ｂのデータ蓄積状態に応じて、上記制御信号と上記アドレス値の制御を実行する。さらに、バスアクセスコントロール１０４ａは、アービター部１０２，１０３から各データ転送バス１１５，１１６の状態に応じて、上記制御信号と上記アドレス値の制御を実行する。
【００４５】
バッファメモリ１０４ｂは、ＤＭＡＣ部１０４の内部にある機能ブロックの１つである。バッファメモリ１０４ｂは、メモリ部１１０とメモリ部１１１との間でＤＭＡ転送が行われるときに転送されるデータを一時的に蓄積する。また、バッファメモリ１０４ｂは、バスアクセスコントロール１０４ａがバッファを使用したＤＭＡ転送を選択したときに、転送されるデータを一時的に蓄積するために使用される。
【００４６】
バッファメモリ１０４ｂの内部はＦＩＦＯ（First-In First-Out）の構造となっているので、データ転送バス１１５においてアクセス権を取得したタイミングでデータバス１１５ａとの間でリード/ライトが実行される。また、このタイミングとは別のタイミング（データ転送バス１１６においてアクセス権を取得したタイミング）でデータバス１１６ａとの間でリード/ライトが実行される。
【００４７】
内部レジスタ１０４ｃは、ＤＭＡＣ部１０４の内部にある機能ブロックの１つであり、設定用レジスタとステータスレジスタによって構成されている。
【００４８】
上述したように、設定用レジスタには、ＤＭＡ転送元アドレス情報、転送先アドレス情報、転送するデータ総量、ＤＭＡ転送の開始や停止の命令についての情報がＣＰＵ１０１によりライトされる。また、設定用レジスタには、ＤＭＡ転送をバースト転送によって行うのか最小転送単位ごとに転送を行うのか、或いはバッファメモリ１０４ｂを使用した転送なのかバッファメモリ１０４ｂを使用しない転送なのかについての情報がＣＰＵ１０１によってライトされる。ステータスレジスタには、ＤＭＡ転送によって転送されたデータ量の総量を示すステータス情報がバスアクセスコントロールによってライトされる。
【００４９】
ＣＰＵインターフェース１０４ｄ（ＣＰＵ  Ｉ／Ｆ）は、ＤＭＡＣ部１０４の内部にある機能ブロックの１つであり、ＣＰＵバス１１４とのインターフェースである。ＣＰＵインターフェース１０４ｄは、ＣＰＵ１０１からのアクセスをＣＰＵバス１１４の状態によって検出してライトアクセスであれば、データを内部レジスタ１０４ｃのＣＰＵ１０１が指定した場所に格納する。一方、リードアクセスであれば、内部レジスタ１０４ｃのＣＰＵ１０１が指定した場所からデータをＣＰＵバス１１４のデータバスに代入する。
【００５０】
次に、図１の通信インターフェース装置において、映像データをストリーミングの形式で通信インターフェースから受信してディスプレイ装置等に出力する映像ストリーミングデータ転送が実行されるときの処理の流れを図３を参照して説明する。以下の説明では、上述したように、外部インターフェース部１１２が通信インターフェースの機能を有し、外部インターフェース部１１３が映像データをディスプレイ装置等に出力する映像出力インターフェースの機能を有するものとする。
【００５１】
ステップＳ３０１：本処理を開始する。通信インターフェース装置は起動直後のスタンバイの状態にある。
【００５２】
ステップＳ３０２：ＣＰＵ１０１は、映像ストリームデータの転送が開始されたか否かを判別する。ＣＰＵ１０１がユーザからの操作或いはプログラムからの指示によって映像ストリームデータの転送開始を検知するとステップＳ３０３へ移行し、そうでなければ現在の状態（何れのＤＭＡ転送も行われていない状態）を維持する。
【００５３】
ステップＳ３０３：ＣＰＵ１０１は、各ＤＭＡＣ部１０４，１０５，１０６に対してＤＭＡ転送の開始の設定を行い、所定のＤＭＡ転送を実行させる。外部インターフェース部１１２によって受信したデータを、ＤＭＡＣ部１０５がメモリ部１１０へＤＭＡ転送する。また、ＤＭＡＣ部１０４が該データをメモリ部１１０からメモリ部１１１へバッファメモリ１０４ｂを介してＤＭＡ転送する。さらに、ＤＭＡＣ部１０６がデータをメモリ部１１１から外部インターフェース部１１３へＤＭＡ転送して外部インターフェース部１１３から外部に送信する。ＣＰＵ１０１は、上記一連のデータ転送が滞ることの無いように制御を行って、これらのＤＭＡ転送処理を所定の転送単位ごとに実行する。
【００５４】
ステップＳ３０４：ＣＰＵ１０１は、メモリ部１１０に蓄積されているデータ量とメモリ部１１１に蓄積されているデータ量が適正な量となっているか否かを判別する。ステップＳ３０３のＤＭＡ転送処理では、様々な要因によりデータ転送先であるメモリ部１１１に蓄積されているデータ量がデータ転送元であるメモリ部１１０に蓄積されているデータ量よりも一定量少なくなったような場合に適正でないと判定される。ここでいう様々な要因とは、ＣＰＵ１０１の通信プロトコルの処理やその他のプログラムの実行による影響、或いは映像ストリーミングデータの転送レートの変動やばらつきによる影響等をいう。
【００５５】
なお、本実施の形態では、メモリ部１１０をデータ転送元、メモリ部１１１をデータ転送先としているが、メモリ部１１１をデータ転送元、メモリ部１１０をデータ転送先としてもよい。その場合は、データ転送先であるメモリ部１１０に蓄積されているデータ量がデータ転送元であるメモリ部１１１に蓄積されているデータ量よりも一定量少なくなった場合に適正でないと判定される。また、データ量を比較した際の著しい度合いは、上述した様々な要因により設計的に設定されるものである。また、ＣＰＵ１０１は、メモリ部１１０，１１１にそれぞれ蓄積されたデータ量を比較してデータ量が適正か否かを判定しているが、予め設定されたデータ量と比較して判定を行うようにしてもよい。予め設定されたデータ量は、上述した様々な要因により設計的に設定される。
【００５６】
メモリ部１１０とメモリ部１１１とに蓄積されている各データ量は、各ＤＭＡＣ部１０４，１０５，１０６内部のステータスレジスタに格納されたステータス情報をＣＰＵ１０１が読取り、ＤＭＡ転送によるデータ転送量の総量の比較を行うことで推測される。
【００５７】
ステップＳ３０４の判別の結果、ＣＰＵ１０１の判断によって該データ量が適正であると判定されたときはステップＳ３０５へ移行し、そうでなければステップＳ３０７へ移行する。
【００５８】
ステップＳ３０５：ＣＰＵ１０１は、映像ストリームデータの転送が終了したか否かを判別する。ＣＰＵ１０１がユーザからの操作或いはプログラムからの指示によって映像ストリームデータの転送終了を検知するとステップＳ３０６へ移行し、そうでなければステップＳ３０３へ移行する。
【００５９】
ステップＳ３０６：ＣＰＵ１０１は、各ＤＭＡＣ部１０４，１０５，１０６に対してＤＭＡ転送を終了させる。ＣＰＵ１０１は各ＤＭＡＣ部１０４，１０５，１０６に対してＤＭＡ転送の終了（停止）の設定を行い、その後、内部レジスタを初期状態にリセットする処理を行う。
【００６０】
ステップＳ３０７：ＣＰＵ１０１がＤＭＡＣ部１０４に対して設定を行い、ＤＭＡＣ部１０４がバッファメモリ１０４ｂを使用しないＤＭＡ転送（スルーモード転送）を実行する。ここでは、ＣＰＵ１０１からの指示に基づき、バスアクセスコントロール１０４ａが制御信号１２６によりデータバススイッチ１０９を制御し、所定のタイミングでデータバススイッチ１０９内部状態を接続形態１０９ｂの状態に切り替える処理を実行する。そして、バッファメモリ１０４ｂを使用したＤＭＡ転送とは異なるタイミングで各制御信号１２４，１２５と各アドレスバス１１５ｂ，１１６ｂの指定が行われる。そして、ＣＰＵ１０１は該ＤＭＡ転送処理を所定の転送単位ごとに実行する。
【００６１】
ステップＳ３０８：ＣＰＵ１０１は、メモリ部１１０に蓄積されているデータ量とメモリ部１１１に蓄積されているデータ量が適正な量となっているか否かを判別する。ＣＰＵ１０１の判断によって該データ量が適正であると判定されたときはステップＳ３０５へ移行し、そうでなければステップＳ３０７へ移行する。ＣＰＵ１０１は、各ＤＭＡＣ部１０４，１０５，１０６内部のステータスレジスタに格納されたステータス情報を読取り、ＤＭＡ転送によるデータ転送量の総量の比較を行うことで、メモリ部１１０及びメモリ部１１１に蓄積されているデータ量を推測する。これにより、データ量が適正か否かを判別する。
【００６２】
ステップＳ３０９：本処理を終了する。
【００６３】
次に、図３に示した映像ストリーミングデータ転送が実行されているときにＤＭＡＣ部１０４によって行われるＤＭＡ転送のタイミングチャートを図４及び図５に示す。
【００６４】
信号４０１は、ＤＭＡＣ部１０４（ＤＭＡＣ１）がＤＭＡ転送を行っている期間を示す信号である。信号４０１が“Ｈ”となっている期間にＤＭＡ転送が行われている。信号４０１は、図４に示すＴ１のタイミングからＤＭＡ転送が開始され、図５に示すＴ５のタイミングでＤＭＡ転送が終了したことを示している。
【００６５】
信号４０２は、ＤＭＡＣ部１０４がメモリ部１１０からデータを読取るために、データ転送バス１１５におけるアクセス権がアービター部１０２によって付与された期間を示す信号である。信号４０２が“Ｈ”となっている期間は、ＤＭＡＣ部１０４がデータ転送バス１１５のアクセス権を取得した期間である。
【００６６】
信号４０３は、ＤＭＡＣ部１０４がメモリ部１１１へデータを書込むために、データ転送バス１１６におけるアクセス権をアービター部１０３によって付与された期間を示す信号である。信号４０３が“Ｈ”となっている期間は、ＤＭＡＣ部１０４がデータ転送バス１１６のアクセス権を取得した期間である。
【００６７】
Ｔ１のタイミングでＤＭＡＣ部１０４によるＤＭＡ転送が開始され、メモリ部１１０から読取ったデータがバッファメモリ１０４ｂへ書込まれる処理が実行される。Ｔ１からＴ２までの期間は、バッファメモリ１０４ｂに所定のデータ量が蓄積されるまでメモリ部１１１へ書込むＤＭＡ転送は開始されないことを示している。
【００６８】
Ｔ２以降の期間は、バッファメモリ１０４ｂからメモリ部１１１への書込みも開始され、メモリ部１１０からメモリ部１１１へデータ転送が実際に実行されている期間となる。
【００６９】
信号４０２の“Ｈ”の期間と信号４０３の“Ｈ”の期間が非同期のタイミングとなっている。これは、データ転送バス１１５におけるアクセス権の取得期間とデータ転送バス１１６におけるアクセス権の取得期間がそれぞれ別のタイミングによって実行されていることを示したものである。これはバッファメモリ１０４ｂを使用することによって、それぞれのデータ転送バス１１５，１１６におけるアクセス待ちの時間を最小化していることを意味する。
【００７０】
このように、メモリ部１１０，１１１にそれぞれ蓄積されたデータ量が所定のデータ量であるときは、任意の転送単位ごとにアービター部１０２又はアービター部１０３からアクセス権が取得される。そして、それぞれ独立したタイミングでバッファメモリ１０４ｂへの読み込み又は書込みが行われ、メモリ部１１０とメモリ部１１１との間でデータ転送が実行される。
【００７１】
図５に示したＴ３までの期間は、図４のＴ２以降の期間と同じ状態であり、図３のステップＳ３０３の処理が実行される期間である。Ｔ３のタイミングからＴ４のタイミングまでの期間はステップＳ３０７の処理が実行される期間である。ここでは、バッファメモリ１０４ｂを使用しないＤＭＡ転送となる。そのため、信号５０２の“Ｈ”の期間と信号５０３の“Ｈ”の期間が同時に発生したときにＤＭＡ転送が開始され、任意の転送単位分のデータ転送が終了するまで各データ転送バス１１５，１１６を開放しないことを示している。
【００７２】
このように、メモリ部１１０，１１１にそれぞれ蓄積されたデータ量が所定のデータ量でないときは、当該所定のデータ量となるように、アービター部１０２，１０３からアクセス権が同時に取得される。そして、当該取得されたタイミングでバッファメモリ１０４ｂを介することなく、メモリ部１１０とメモリ部１１１との間で直接データ転送が実行される。
【００７３】
Ｔ４からＴ５の期間は、再び図４のＴ２以降の期間と同じ状態となってステップＳ３０３に戻ったことを示す。Ｔ５のタイミングは、ステップＳ３０５にてＤＭＡ転送の終了が選択され、その後、ステップＳ３０６にてＤＭＡ転送を終了するタイミングを示している。
【００７４】
図６は、図５に示したＴ３からＴ４までの期間における図３のステップＳ３０７の処理を実行しているときのアドレスバスとデータバスの様子を示すタイミングチャートである。
【００７５】
６０１は、データ転送バス１１５のアドレスバス１１５ｂであり、アドレス値が更新されるタイミングを示している。メモリ部１１０とのアクセスにはこの他にも制御信号１２４によって行われているが、アドレスバスの更新タイミングを示すことによってアクセスタイミングを簡易的に表したものである。
【００７６】
６０２は、データ転送バス１１６のアドレスバス１１６ｂであり、アドレス値が更新されるタイミングを示している。メモリ部１１１とのアクセスにはこの他にも制御信号１２５によって行われているが、アドレスバスの更新タイミングを示すことによってアクセスタイミングを簡易的に表したものである。
【００７７】
６０３は、データ転送バス１１６のデータバス１１６ａであり、データバス１１６ａ上にデータ値が確定しているタイミングを示している。
【００７８】
Ｘ０のタイミングは、アドレスバス１１５ｂのアドレス値が更新されるタイミングである。このタイミングはメモリ部１１０に対するリードアクセスが開始されたタイミングでもある。また、このタイミングでは、バスアクセスコントロール１０４ａが接続形態１０９ａとなるように、データバススイッチ１０９が制御信号１２６によって制御されている。
【００７９】
Ｘ１のタイミングは、アドレスバス１１６ｂのアドレス値が更新されるタイミングである。このタイミングはメモリ部１１１に対するライトアクセスが開始されたタイミングでもある。そして、このタイミングでもバスアクセスコントロール１０４ａが接続形態１０９ａとなるように、データバススイッチ１０９が制御信号１２６によって制御されている。
【００８０】
Ｘ２のタイミングは、メモリ部１１０に対するリードアクセスにおいてメモリ部１１０の記憶データがデータバス１１５ａ上に読み出されるタイミングを示している。また、このタイミングは、バスアクセスコントロール１０４ａが接続形態１０９ｂとなるように、データバススイッチ１０９へ制御信号１２６が送信されるタイミングでもある。従って、このＸ２のタイミング以降においてメモリ部１１０の指定されたアドレスにおける記憶データがデータ転送バス１１６のデータバス１１６ａ上に確定される。
【００８１】
Ｘ３のタイミングは、メモリ部１１１に対するライトアクセスにおいてメモリ部１１１がデータバス１１６ａのデータ値を内部に記憶するために確定するタイミングである。このＸ３のタイミング以降は、メモリ部１１０に対するリードアクセス及びメモリ部１１１に対するライトタイミングの１アクセス単位の終了となる。
【００８２】
上述したタイミングＸ０からＸ３までの処理が繰り返し実行され、図３におけるステップＳ３０７の処理が実行されている期間継続される。
【００８３】
上記第１の実施の形態によれば、メモリ部１１０とメモリ部１１１との間でＤＭＡ転送が行われる際に、メモリ部１１０，１１１にそれぞれ蓄積されたデータ量が所定のデータ量であるときはバッファメモリ１０４ｂを介したＤＭＡ転送を実行する。そして、メモリ部１１０，１１１にそれぞれ蓄積されたデータ量が所定のデータ量でないときはバッファメモリ１０４ｂを使用しないＤＭＡ転送を実行する。これにより、データ転送要求等が競合するバス上でのアクセス待ち時間を低減してバスの使用効率を上げると共に、データ転送の遅延を低減して高速なＤＭＡ転送を継続し、もってデータ処理能力を向上させることができる。
【００８４】
また、ＤＭＡ転送要求やアクセス要求が競合するバス上でアクセス待ち時間を低減してバスの使用効率を上げてデータ処理能力を向上させることを優先条件とする場合やデータ転送の遅延を低減して高速なＤＭＡ転送を継続して行うことを優先条件とする場合がある。上述したデータ転送制御方法であれば、このような優先条件の違いに応じて最適なＤＭＡ転送を選択して実行することが可能となる。
【００８５】
また、高速なＤＭＡ転送を行う場合にバッファメモリ１０４ｂを使用しないでデータバスを直接接続することができるので、従来よりも簡易な構成で、より高速なＤＭＡ転送を実現することが可能となる。
【００８６】
［第２の実施形態］
図７は、本発明の第２の実施形態に係る通信インターフェース装置の構成例を示すブロック図である。なお、図７において図１と対応する要素には同一の符号を付してそれらの説明を省略する。
【００８７】
本通信インターフェース装置は、上記第１の実施形態における通信インターフェース装置と同様に、映像データをストリーミングの形式で通信インターフェースから受信してＴＶなどのディスプレイ装置等に出力するものである。また、外部インターフェース部１１２が通信インターフェースの機能を有し、外部インターフェース部１１３が映像データをディスプレイ装置等に出力する映像出力インターフェース機能を有するものとする。
【００８８】
図７において、信号７０１は、ＤＭＡＣ部１０５の制御によるＤＭＡ転送によって転送されたデータ量を通知する信号である。信号７０１は、ＤＭＡＣ部１０５からＤＭＡＣ部１０４内のバスアクセスコントロール１０４ａへ送信される。バスアクセスコントロール１０４ａは信号７０１を受信してメモリ部１１０へどの程度データが転送されたかを認識することが可能となる。
【００８９】
信号７０２は、ＤＭＡＣ部１０６の制御によるＤＭＡ転送によって転送されたデータ量を通知する信号である。信号７０２は、ＤＭＡＣ部１０６からＤＭＡＣ部１０４のバスアクセスコントロール１０４ａへ送信される。バスアクセスコントロール１０４ａは信号７０２を受信してメモリ部１１１からどの程度データが転送されたかを認識することが可能となる。
【００９０】
本実施の形態では、図３のステップＳ３０４における判別が次のような方法で実施される。信号７０１によりメモリ部１１０に書込まれたデータ量と、信号７０２によりメモリ部１１１から読み出されたデータ量と、内部レジスタ１０４ｃのステータスレジスタの値（ＤＭＡＣ部１０４によるＤＭＡ転送によって転送されたデータ量）とが比較される。これにより、バスアクセスコントロール１０４ａがメモリ部１１０及びメモリ部１１１に蓄積されている各データ量を推測する。
【００９１】
同様に、ステップＳ３０８における判別が次のような方法で実施される。信号７０１によりメモリ部１１０に書込まれたデータ量と、信号７０２によりメモリ部１１１から読み出されたデータ量と、内部レジスタ１０４ｃのステータスレジスタの値（ＤＭＡＣ部１０４によるＤＭＡ転送によって転送されたデータ量）とが比較される。これにより、バスアクセスコントロール１０４ａがメモリ部１１０及びメモリ部１１１に蓄積されているデータ量を推測する。
【００９２】
このように、上述した判断方法がステップＳ３０４及びステップＳ３０８にて行われることで、図３に示す動作処理がＣＰＵ１０１の制御ではなく、ＤＭＡＣ部１０４の制御によって実行される。
【００９３】
上記第２の実施の形態によれば、上記第１の実施の形態における効果をさらに奏することができる。
【００９４】
本発明の目的は、上述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給することによっても達成される。その場合、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行する。該記憶媒体から読み出されたプログラムコード自体が上述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク等を用いることができる。また、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ−ＲＡＭ、ＤＶＤ±ＲＷ等の光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。また、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９６】
コンピュータが読み出したプログラムコードを実行することにより、上述した各実施の形態の機能が実現されるだけではない。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した各実施の形態の機能が実現される場合も含まれる。
【００９７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００９８】
【図１】本発明の第１の実施形態に係る通信インターフェース装置の構成例を示すブロック図である。
【図２】図１のＤＭＡＣ部によるＤＭＡ転送の流れを説明する図である。
【図３】データ転送実行時の処理の流れ示すフローチャートである。
【図４】データ転送実行時のＤＭＡＣ１によるＤＭＡ転送のタイミングチャートである（その１）。
【図５】データ転送実行時のＤＭＡＣ１によるＤＭＡ転送のタイミングチャートである（その２）。
【図６】ＤＭＡ転送におけるバッファ未使用時のバスアクセスのタイミングチャートである。
【図７】本発明の第２の実施形態に係る通信インターフェース装置の構成例を示すブロック図である。
【符号の説明】
【００９９】
１０１  ＣＰＵ
１０４，１０５，１０６  ＤＭＡＣ部
１０４ａ  バスアクセスコントロール
１０４ｂ  バッファメモリ
１０４ｃ  内部レジスタ
１０７，１０８  メモリコントローラ部
１０９  データバススイッチ
１１０，１１１  メモリ部
１１４  ＣＰＵバス
１１５  データ転送バス
【図１】
2008108127.tif 000003
【図２】
2008108127.tif 000004
【図３】
2008108127.tif 000005
【図４】
2008108127.tif 000006
【図５】
2008108127.tif 000007
【図６】
2008108127.tif 000008
【図７】
2008108127.tif 000009