(57)【要約】【課題】本発明は、ＣＰＵの負荷を増加させることなく、ＣＰＵの任意のタイミングで高速にアクセス競合の発生するバス上のメモリに対してＣＰＵがリード/ライトアクセスすることができるデータ転送制御装置を提供する。【解決手段】アドレスデコーダ部１０２は、ＣＰＵ１０１からメモリ部１０８へのアクセスの開始を検出した場合、ＤＭＡ転送が実行中であるときは、ＤＭＡ転送の停止命令を通知して複数のＤＭＡＣ部にアクセス権を付与しないようにする。そして、ＤＭＡ転送が停止したことを示す信号をアービター部１０３から受けた後に、ＣＰＵ１０１からメモリ１０８へのアクセスを開始させる。ＤＭＡ転送が実行中でないときは、アービター部１０３に対してＤＭＡ転送の停止命令を通知して複数のＤＭＡＣ部にアクセス権を付与しないようにした後に、ＣＰＵ１０１からメモリ部１０８へのアクセスを開始させる。【選択図】図２
2008108126.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、ＤＭＡ転送を制御する複数のＤＭＡ制御手段と、前記プロセッサと前記複数のＤＭＡ制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記ＤＭＡ制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置であって、
前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出手段を備え、
前記プロセッサアクセス検出手段は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにし、ＤＭＡ転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、
前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とするデータ転送制御装置。
【請求項２】
前記バス調停手段は、前記アクセス権が付与されたか否かを示す情報を値として前記ＤＭＡ制御手段毎に格納するカウンタと、前記カウンタの値に応じて前記アクセス権の調停における優先順位を変動して設定する優先順位設定手段とを備え、前記設定された優先順位に従って前記ＤＭＡ制御手段を選択して前記アクセス権を付与することを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
プロセッサと、ＤＭＡ転送を制御する複数のＤＭＡ制御手段と、前記プロセッサと前記複数のＤＭＡ制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記ＤＭＡ制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置のバスアクセス調停方法であって、
前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出工程を備え、
前記プロセッサアクセス検出工程は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにし、ＤＭＡ転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、
前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とするバスアクセス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置及びそのバスアクセス調停方法に関する。
【背景技術】
【０００２】
近年、映像データの情報量が増大し、映像データを伝送する際には、高速な転送能力が必要とされる。例えば、ハイビジョンなどの映像データをストリーミングの形式で通信インターフェースから受信し、ディスプレイ装置に出力する通信インターフェース装置において、大容量の映像データをリアルタイムに転送するには高速な転送能力が要求される。
【０００３】
通信インターフェース装置では、入力された映像データ自体に、例えば、画像圧縮のような信号処理を行わないので、該映像データの転送と通信プロトコル処理とを分離して処理することが可能となる。従って、中央処理装置（ＣＰＵ）は通信プロトコルの処理のみを行い、映像データの転送のためにＤＭＡ転送が使用される等の工夫によって、低いＣＰＵ負荷で高速なスループットを実現する方法や処理が提案されている。
【０００４】
特許文献１には、１つのバス上にあるメモリに対してアクセス可能なＣＰＵとＤＭＡＣ（Direct Memory Access Controller）、バスのアクセス権を調停するバス調停回路とが接続されたデータ処理装置が提案されている。このデータ処理装置は、ＣＰＵがメモリへのアクセスを行う際に、バス調停回路にその旨の通知を行い、バス調停回路が該通知を受信してＤＭＡＣに対してＤＭＡ転送の中断指令を送信する。これによって、ＤＭＡ転送中であってもＣＰＵがバスを使用してメモリへアクセスすることが可能となっている。
【特許文献１】特開平８−１７１５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１記載の技術では、ＤＭＡ転送中にＣＰＵがバスを使用してメモリへアクセスすることを可能とするために、ＣＰＵはバス調停回路にＤＭＡ転送の中断を要求しなければならない。そのため、特許文献１記載の技術では、ＣＰＵからメモリに対するアクセス要求が発生した場合、ＣＰＵはＤＭＡ転送中であるか否かの検出処理を実行しなければならない。
【０００６】
そして、ＣＰＵがＤＭＡ転送中であるときは、バス調停回路にＤＭＡ転送の中断を要求した後にメモリに対するアクセスを実行することになる。これは、通常のメモリアクセス処理に加え、別途ＤＭＡ転送中断の処理をＣＰＵが実行しなければならず、ＣＰＵの負荷が増大することになる。
【０００７】
本発明は、プロセッサの負荷を軽減し、アクセス競合の発生するバスに対してプロセッサが高速にアクセスすることができるデータ転送制御装置及びそのバスアクセス調停方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係るデータ転送制御装置は、プロセッサと、ＤＭＡ転送を制御する複数のＤＭＡ制御手段と、前記プロセッサと前記複数のＤＭＡ制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記ＤＭＡ制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置であって、前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出手段を備え、前記プロセッサアクセス検出手段は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにし、ＤＭＡ転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とする。
【０００９】
上記目的を達成するために、本発明に係るバスアクセス調停方法は、プロセッサと、ＤＭＡ転送を制御する複数のＤＭＡ制御手段と、前記プロセッサと前記複数のＤＭＡ制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記ＤＭＡ制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置のバスアクセス調停方法であって、前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出工程を備え、前記プロセッサアクセス検出工程は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにし、ＤＭＡ転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、前記バス上でＤＭＡ転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してＤＭＡ転送の停止命令を通知して前記複数のＤＭＡ制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プロセッサからメモリへのアクセスの開始を検出した場合、バス上でＤＭＡ転送が実行中であることを示す信号をバス調停手段から受けているときは、バス調停手段にＤＭＡ転送の停止命令を通知する。そして、複数のＤＭＡ制御手段にアクセス権を付与しないようにし、ＤＭＡ転送が停止したことを示す信号をバス調停手段から受けた後に、プロセッサからメモリへのアクセスを開始させる。また、バス上でＤＭＡ転送が実行中であることを示す信号をバス調停手段から受けていないときは、バス調停手段に対してＤＭＡ転送の停止命令を通知して複数のＤＭＡ制御手段にアクセス権を付与しないようにし、プロセッサからメモリへのアクセスを開始させる。これにより、ＣＰＵの負荷を増加させることなく、ＣＰＵの任意のタイミングで高速にアクセス競合の発生するバス上のメモリに対してＣＰＵがリード/ライトアクセスすることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１２】
図１は、本実施形態の通信インターフェース装置の構成例を示すブロック図である。
【００１３】
本通信インターフェース装置は、映像データをストリーミングの形式で通信インターフェースから受信し、テレビジョンなどのディスプレイ装置等に映像データを出力する装置である。通信インターフェース装置の内部は、２種類のバスが各機能ブロック間を接続する構成となっている。
【００１４】
ＣＰＵバス１１２は、プロセッサである中央処理装置（ＣＰＵ）１０１と、アドレスデコーダ部１０２（ADDRESS DECODE）と、バスアクセスの調停を行うアービター部１０３（ARBITER）とに接続されている。また、ＣＰＵバス１１２は、各ダイレクトメモリコントローラ（ＤＭＡＣ：Direct Memory Access Controller）部（ＤＭＡ制御手段）１０４（ＤＭＡＣ１），１０５（ＤＭＡＣ２），１０６（ＤＭＡＣ３）と、メモリコントローラ部１０７（ＲＡＭＣ）に接続されている。
【００１５】
ＣＰＵ１０１は、ＣＰＵバス１１２を使用して各機能ブロックに対するリード/ライトアクセスを実行する。ＣＰＵ１０１のアクセスは大きく２種類に分けられる。１つは、アービター部１０３の内部レジスタへのリード/ライトアクセス、ＤＭＡＣ部１０４，１０５，１０６の内部レジスタへのリード/ライトアクセスのような各機能ブロックの内部レジスタに対するアクセスである。
【００１６】
もう１つは、ＤＭＡＣ部１０４，１０５，１０６を経由して外部インターフェース部１０９，１１０，１１１（Ｉ／Ｆ）に接続されたＬＳＩ（Large Scale Integration）や入出力装置とのリード/ライトアクセス、及びメモリコントローラ部１０７を経由したメモリ部１０８（ＲＡＭ）へのリード/ライトアクセスである。
【００１７】
データ転送バス１１３は、メモリコントローラ部１０７と、各ＤＭＡＣ部１０４，１０５，１０６とに接続される。データ転送バス１１３は、メモリ部１０８と外部インターフェース部１０９，１１０，１１１との間でＤＭＡ（Direct Memory Access）転送によってデータを転送するバスである。ここでは、外部インターフェース部１０９は通信インターフェースの機能を有する。また、外部インターフェース部１１１は映像データをディスプレイ装置等に出力する映像出力インターフェース機能を有する。
【００１８】
データ転送バス１１３は、通信インターフェース部である外部インターフェース部１０９から受信した映像データをＤＭＡＣ部１０４によりＤＭＡ転送し、メモリコントローラ部１０７を経由してメモリ部１０８へ書込むようなデータ転送に使用される。また、メモリ部１０８に書込まれている映像データをＤＭＡＣ部１０６によりＤＭＡ転送し、メモリコントローラ部１０７を経由して外部インターフェース部１１１から外部のディスプレイ装置等に出力する場合にもデータ転送バス１１３が使用される。
【００１９】
アドレスデコーダ部１０２は、ＣＰＵ１０１がＣＰＵバス１１２を使用して各種のアクセスを開始したときに、ＣＰＵバス１１２のアドレス信号をデコードしてどのようなアクセス要求なのかを検知する。そして、アドレスデコーダ部１０２は、検知したアクセス要求の内容を示すセレクト信号をアクセス対象毎に生成し、アクセス要求を行う対象の機能ブロックに対してセレクト信号線１１４によってセレクト信号を送信する。このとき、各機能ブロックの内部レジスタへアクセスするためのセレクト信号と、各機能ブロックを経由して各外部インターフェース部１０９，１１０，１１１へアクセスするためのセレクト信号とは区別される。なお、メモリコントローラ部１０７のように内部レジスタを持たない機能ブロックの場合、メモリ部１０８へアクセスするためのセレクト信号が使用される。
【００２０】
一方、アドレスデコーダ部１０２は、アクセスウエイト信号を生成し、該アクセスウエイト信号で１アクセス単位毎のアクセスの終了を通知する。このアクセスウエイト信号は、各ＤＭＡＣ部１０４，１０５，１０６がメモリ部１０８へアクセス中か否かをＣＰＵ１０１へ通知するものであり、ＣＰＵ１０１が次のアクセスサイクルへ移行するタイミングを示すものである。
【００２１】
アクセスウエイト信号は、通常、ウエイト状態（アサート）となっている。そして、例えば、ＣＰＵ１０１がメモリ部１０８へのアクセスを開始した際に少なくとも１つのＤＭＡＣ部がメモリ部１０８にアクセス中であった場合、ＤＭＡ転送の１データ転送が終了した後にメモリ部１０８へのアクセス権がＣＰＵ１０１へ委譲される。このときは、ＣＰＵ１０１のメモリ部１０８へのアクセスが１単位分終了するまで該アクセスウエイト信号がアサートされ、１単位分のアクセスが終了した後にネゲートされる。
【００２２】
アービター部１０３は、データ転送バス１１３上でＤＭＡ転送によるアクセス要求が発生した場合にアクセス競合が発生したか否かを判定し、アクセス競合が発生した場合は競合制御を行ってアクセス権を決定する処理を行う。また、アービター部１０３は、データ転送バス１１３を占有してメモリ部１０８とアクセスするアクセス権を複数のＤＭＡＣ部１０４，１０５，１０６の中から選択して付与するバス調停処理を行う。また、アービター部１０３は、ＤＭＡＣ部１０４，１０５，１０６毎にアクセス権を与えた回数をカウントし、該カウント値に応じて優先順位を変更する制御を行ってバスアクセスの競合制御を実行する。
【００２３】
アドレスデコーダ部１０２とアービター部１０３との間は制御線１１５で接続されている。これにより、アドレスデコーダ部１０２とアービター部１０３との間で、データ転送バス１１３の使用状況や各ＤＭＡＣ部１０４，１０５，１０６によるＤＭＡ転送の状況、データ転送バス１１３の使用停止を命令する制御信号などが送受信される。
【００２４】
各ＤＭＡＣ部１０４，１０５，１０６は、それぞれ内部に設定用レジスタを装備している。ＣＰＵ１０１は、ＣＰＵバス１１２を使用して各設定用レジスタに対してリード/ライトアクセス可能となっている。該設定用レジスタには、ＤＭＡ転送を開始するアドレス情報や転送するデータ量が設定されるだけでなく、ＤＭＡ転送を行う際の最小転送単位が設定され得る。例えば、データ転送バス１１３が３２ビットのデータバスであった場合、４バイト、８バイト、１６バイトのいずれかがＤＭＡ転送の最小転送単位として設定される。ここでＤＭＡ転送の最小転送単位が４バイトに設定されると、実際にＤＭＡ転送が開始されたときに４バイト転送されるごとに一時的にデータ転送バス１１３を開放する動作を繰り返しながらＤＭＡ転送が実行される。
【００２５】
図３は、図１のアドレスデコーダ部１０２及びアービター部１０３に対する信号の入出力状態を示す図である。
【００２６】
図３において、信号群３０１は各ＤＭＡＣ部１０４，１０５，１０６からアービター部１０３に対して送信される信号群である。信号群３０１は、ＤＭＡＣ部１０４，１０５，１０６がそれぞれデータ転送バス１１３上でＤＭＡ転送を開始するためのアクセス権をアービター部１０３に要求する信号である。信号群３０１の中の１つの信号がアサートされる場合もあれば、全ての信号がアサートされる場合もある。そして、複数の信号が同時にアサートされた場合、データ転送バス１１３上でアクセスの競合が発生した状態となる。
【００２７】
信号群３０２は、信号群３０１をアサートした各ＤＭＡＣ部１０４，１０５，１０６に対してアービター部１０３がアクセス権を与えるための信号である。アービター部１０３は、アクセスの競合制御を行い、選択したＤＭＡＣ部に対応する、信号群３０２の中の１つの信号をアサートして当該ＤＭＡＣ部にアクセス権を与える。
【００２８】
信号群３０３は、ＤＭＡ転送が実行中であることを示す信号であり、アクセス権が与えられたＤＭＡＣ部がデータ転送バス１１３をＤＭＡ転送のために使用している間アサートされる。
【００２９】
制御信号１１５ａはデータ転送バスビジー信号であり、アービター部１０３がデータ転送バス１１３のアクセス状態を検知し、その結果をアドレスデコーダ部１０２に通知する信号である。制御信号１１５ａは、信号群３０３の状態に応じて生成される。すなわち、信号群３０３の中で１つでもアサートされていると制御信号１１５ａがアサートされ、信号群３０３の全てがネゲートされた場合は該制御信号１１５ａがネゲートされる。
【００３０】
制御信号１１５ｂはＤＭＡ転送停止命令信号であり、ＣＰＵ１０１のアクセスによってデータ転送バス１１３上のＤＭＡ転送を停止しなければならないときに、アドレスデコーダ部１０２によってアサートされる信号である。制御信号１１５ｂは、一旦アサートされるとＣＰＵ１０１のアクセスが終了するまでアサートした状態を維持し、ＣＰＵ１０１のアクセスが終了した時点でネゲートされる信号である。
【００３１】
図２は、ＣＰＵ１０１からメモリ部１０８に対するアクセス時のＤＭＡ転送制御の流れを示すフローチャートである。本処理は、ＣＰＵ１０１がメモリ部１０８にデータを書込むためにアクセスを開始した際に、データ転送バス１１３が使用状態であった場合とそうでない場合のそれぞれ動作を示す処理である。
【００３２】
ステップＳ２０１：本処理を開始する。ＣＰＵ１０１は、図１に示した各機能ブロックへ何もアクセスしていない状態にある。
【００３３】
ステップＳ２０２：アドレスデコーダ部１０２は、ＣＰＵ１０１がメモリ部１０８へのアクセスを開始したか否かを条件として経路選択を行う。すなわち、ＣＰＵ１０１がメモリ部１０８へアクセスを開始したことをアドレスデコーダ部１０２がＣＰＵバス１１２の中のアドレス信号を解析して検知するとステップＳ２０３へ移行する。一方、そうでなければ現在の状態（ＣＰＵ１０１からメモリ部１０８へのアクセス開始を待つ状態）を維持する。
【００３４】
ステップＳ２０３：アドレスデコーダ部１０２は、データ転送バス１１３において現在ＤＭＡ転送が行われているか否かを条件として経路選択を行う。具体的には、データ転送バス１１３上で現在ＤＭＡ転送が実行中であることを示すデータ転送バスビジー信号（制御信号１１５ａ）がアービター部１０３からアサートされていればステップＳ２０４へ移行し、そうでなければステップＳ２０９へ移行する。データ転送バスビジー信号（制御信号１１５ａ）は、信号群３０３中でアサートしている信号があれば、データ転送バス１１３がＤＭＡ転送のために使用中であるとアービター部１０３が判断してアサートされる信号である。
【００３５】
ステップＳ２０４：アドレスデコーダ部１０２は、データ転送バス１１３上のＤＭＡ転送における次のアクセス権をＣＰＵ１０１へ委譲するために、アービター部１０３へＤＭＡ転送停止命令を通知する。このとき、ＤＭＡ転送停止命令信号（制御信号１１５ｂ）がアサートされる。そして、該ＤＭＡ転送停止命令をアドレスデコーダ部１０２から受信したアービター部１０３は、データ転送バス１１３上のＤＭＡ転送における次のアクセス権を各ＤＭＡＣ部１０４，１０５，１０６に与えないようにセットする。これは信号群３０２中の全てがアサートしないようにセットされる。
【００３６】
ステップＳ２０５：アドレスデコーダ部１０２は、データ転送バス１１３においてＤＭＡ転送が停止したか否かを条件として経路選択を行う。データ転送バス１１３上でＤＭＡ転送が停止したことを示すデータ転送バスビジー信号（制御信号１１５ａ）がネゲートされているときはステップＳ２０６へ移行し、そうでなければ現在の状態を維持する。該データ転送バスビジー信号（制御信号１１５ａ）は、ＤＭＡＣ部１０４，１０５，１０６のいずれもがデータ転送バス１１３を使用していない場合にネゲートされる信号である。これは信号群３０３中の全てがネゲートされたときにデータ転送バスビジー信号（制御信号１１５ａ）がネゲートされる。
【００３７】
ステップＳ２０６：ＣＰＵ１０１がメモリ部１０８に対してリード/ライトアクセス処理を行う。このとき、アドレスデコーダ部１０２がアービター部１０３に対していずれのＤＭＡＣ部１０４，１０５，１０６にデータ転送バス１１３のアクセス権を与えないように、該ＤＭＡ転送停止命令信号（制御信号１１５ｂ）がアサートされている状態である。そのため、ＣＰＵ１０１はメモリ部１０８に対して自由にリード/ライトアクセス処理を行うことが可能となっている。
【００３８】
ステップＳ２０７：ＣＰＵ１０１がメモリ部１０８に対するリード/ライトアクセス処理が終了したか否かを条件として経路選択を行う。アドレスデコーダ部１０３がＣＰＵバス１１２を解析して該アクセスが終了したことを検知するとステップＳ２０８へ移行し、そうでなければ現在の状態を維持する。
【００３９】
ステップＳ２０８：アドレスデコーダ部１０２は、データ転送バス１１３上のＤＭＡ転送における次のアクセス権をＤＭＡＣ部へ委譲するために、アービター部１０３へＤＭＡ転送停止命令を通知する。このとき、ＤＭＡ転送停止命令信号（制御信号１１５ｂ）がネゲートされる。そして、該ＤＭＡ転送停止命令をアドレスデコーダ部１０２から受信したアービター部１０３は、データ転送バス１１３上のＤＭＡ転送における次のアクセス権を各ＤＭＡＣ部１０４，１０５，１０６に与えるようにセットする。これにより、ステップＳ２０４で付与されたアクセス権の制限が解除される。
【００４０】
ステップＳ２０９：アドレスデコーダ部１０２は、アービター部１０３へのデータ転送バス１１３上のＤＭＡ転送における次のアクセス権をＣＰＵ１０１へ委譲するための命令であるＤＭＡ転送停止命令信号（制御信号１１５ｂ）をアサートする。そして、該ＤＭＡ転送停止命令信号（制御信号１１５ｂ）を受信したアービター部１０３はデータ転送バス１１３上のＤＭＡ転送における次のアクセス権を各ＤＭＡＣ部１０４，１０５，１０６に与えないようにセットする。これは信号群３０２中の全てにおいてアサートしないようにセットする処理となる。
【００４１】
ステップＳ２１０：本処理を終了する。
【００４２】
次に、複数のＤＭＡＣ部１０４，１０５，１０６からアクセス要求を信号群３０１にて受信した際のアービター部１０３におけるアクセス競合制御の流れを図４及び図５を参照して説明する。
【００４３】
図４及び図５は、アービター部１０３が実行するアクセス競合制御の流れを示すフローチャートである。本処理は、アクセス競合の発生からアクセス権の決定までの動作処理を示したものである。該フローチャートに示す動作フローはアクセス競合が発生する毎に繰り返し実行される。
【００４４】
アービター部１０３は、アクセス権が付与されたか否かを示す情報を“０”又は“１”の値としてＤＭＡＣ部１０４，１０５，１０６ごとに格納するカウンタを備える。ＤＭＡＣ部１０４，１０５，１０６の各カウンタの値はアクセス競合が発生する度に変化する。本実施の形態では、カウンタの値は最小値“０”と最大値“１”で簡易的に表現したものとなっている。なお、３つ以上のアクセス競合が発生したときは、カウンタ値が最大値“１”以上であってもよい。
【００４５】
一方、アクセス権の優先順位の初期値は、優先順位の高い方からＤＭＡＣ部１０４（ＤＭＡＣ１）、ＤＭＡＣ部１０５（ＤＭＡＣ２）、ＤＭＡＣ部１０６（ＤＭＡＣ３）の順に設定されている。
【００４６】
ステップＳ４０１：本処理を開始する。データ転送バス１１３は、何もデータ転送が行われていないスタンバイの状態にある。各カウンタの値の初期値は全て“０”とする。
【００４７】
ステップＳ４０２：複数のＤＭＡＣ部１０４，１０５，１０６からデータ転送バス１１３を使用したＤＭＡ転送の要求が発生したことをアービター部１０３が検出したか否かを条件として経路選択を行う。信号群３０３が全てネゲートされた状態において、信号群３０１中の複数がアサートされたことをアービター部１０３が検出するとアクセス競合が発生したと判断し、ステップＳ４０３へ移行し、そうでなければ現在の状態を維持する。
【００４８】
ステップＳ４０３：アービター部１０３は、信号群３０１の中でＤＭＡＣ１からのアクセス要求が有り、且つＤＭＡＣ１に対応するカウンタの値が“１”であるか否かを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ１に接続している信号線がアサートされ、かつＤＭＡＣ１に対応するカウンタの値が“１”であれば、ステップＳ４０４に移行し、そうでなければステップＳ４１５へ移行する。
【００４９】
ステップＳ４０４：アービター部１０３は、信号群３０１の中でＤＭＡＣ２からのアクセス要求が有り、かつＤＭＡＣ２に対応するカウンタの値が“１”であるか否かを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ２に接続している信号線がアサートされ、かつＤＭＡＣ２に対応するカウンタの値が“１”であれば、ステップＳ４０５に移行し、そうでなければステップＳ４１６へ移行する。
【００５０】
ステップＳ４０５：アービター部１０３は、信号群３０１の中でＤＭＡＣ３からのアクセス要求が有り、かつＤＭＡＣ３に対応するカウンタの値が“１”であるか否かを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ３に接続している信号線がアサートされ、かつＤＭＡＣ３に対応するカウンタの値が“１”であれば、ステップＳ４０６に移行し、そうでなければステップＳ４１７へ移行する。
【００５１】
ステップＳ４０６：アービター部１０３は、信号群３０１の中でＤＭＡＣ１からのアクセス要求があるか否かを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ１に接続している信号線がアサートされていれば、ステップＳ４１１に移行し、そうでなければステップＳ４０７へ移行する。
【００５２】
ステップＳ４０７：アービター部１０３は、信号群３０１の中でＤＭＡＣ２からのアクセス要求があるか否かを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ２に接続している信号線がアサートされていれば、ステップＳ４１２に移行し、そうでなければステップＳ４１３へ移行する。
【００５３】
ステップＳ４１５：アービター部１０３は、信号群３０１の中でＤＭＡＣ１からのアクセス要求があるかを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ１に接続している信号線がアサートされていれば、ステップＳ４０８に移行し、そうでなければステップＳ４０４へ移行する。
【００５４】
ステップＳ４０８：アービター部１０３は、アクセス権がＤＭＡＣ１に決定したことをＤＭＡＣ１に通知し、そしてＤＭＡＣ１に対応するカウンタを加算して“１”とする。アービター部１０３は信号群３０２の中でＤＭＡＣ１に接続している信号線をアサートして該ＤＭＡＣ１にアクセス権の付与を行う。
【００５５】
ステップＳ４１６：アービター部１０３は、信号群３０１の中でＤＭＡＣ２からのアクセス要求があるかを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ２に接続している信号線がアサートされていれば、ステップＳ４０９に移行し、そうでなければステップＳ４０５へ移行する。
【００５６】
ステップＳ４０９：アービター部１０３は、アクセス権がＤＭＡＣ２に決定したことをＤＭＡＣ２に通知し、そしてＤＭＡＣ２に対応するカウンタを加算して“１”とする。アービター部１０３は信号群３０２の中でＤＭＡＣ２に接続している信号線をアサートして該ＤＭＡＣ２にアクセス権の付与を行う。
【００５７】
ステップＳ４１７：アービター部１０３は、信号群３０１の中でＤＭＡＣ３からのアクセス要求があるかを条件として経路選択を行う。信号群３０１の中でＤＭＡＣ３に接続している信号線がアサートされていれば、ステップＳ４１０に移行し、そうでなければステップＳ４０６へ移行する。
【００５８】
ステップＳ４１０：アービター部１０３は、アクセス権がＤＭＡＣ３に決定したことをＤＭＡＣ３に通知し、そしてＤＭＡＣ３に対応するカウンタを加算して“１”とする。アービター部１０３は信号群３０２の中でＤＭＡＣ３に接続している信号線をアサートして該ＤＭＡＣ３にアクセス権の付与を行う。
【００５９】
ステップＳ４１１：アービター部１０３は、アクセス権がＤＭＡＣ１に決定したことをＤＭＡＣ１に通知し、ＤＭＡＣ１に対応するカウンタは“１”のままとし、優先順位の低いＤＭＡＣ２及びＤＭＡＣ３に対応するカウンタの値をそれぞれ“０”にリセットする。アービター部１０３は信号群３０２の中でＤＭＡＣ１に接続している信号線をアサートして該ＤＭＡＣ１にアクセス権の付与を行う。
【００６０】
ステップＳ４１２：アービター部１０３は、アクセス権がＤＭＡＣ２に決定したことをＤＭＡＣ２に通知し、そしてＤＭＡＣ２に対応するカウンタは“１”のままとし、優先順位の低いＤＭＡＣ３に対応するカウンタの値を“０”にリセットする。アービター部１０３は信号群３０２の中でＤＭＡＣ２に接続している信号線をアサートして該ＤＭＡＣ２にアクセス権の付与を行う。
【００６１】
ステップＳ４１３：アービター部１０３は、アクセス権がＤＭＡＣ３に決定したことをＤＭＡＣ３に通知する。アービター部１０３は信号群３０２の中でＤＭＡＣ３に接続している信号線をアサートして該ＤＭＡＣ３にアクセス権の付与を行う。
【００６２】
ステップＳ４１４：本処理を終了する。
【００６３】
図６は、メモリ部１０８に対するアクセス状態を示すタイミングチャートである。  図６では、まず、ＤＭＡＣ部１０４によって外部インターフェース部１０９から取込んだ映像データをメモリ部１０８に書込みを行うＤＭＡ転送が開始される。その後、ＤＭＡＣ部１０５によってメモリ部１０８から読取ったデータを外部インターフェース部１１０へ転送するＤＭＡ転送が開始される。そして、ＣＰＵ１０１がメモリ部１０８に対してリード/ライトアクセスを行う。
【００６４】
信号５０１は、ＤＭＡＣ部１０４によってデータ転送バス１１３を使用してＤＭＡ転送を開始するためにアクセス権をアービター部１０３に要求する信号を示している。信号５０１は、信号群３０１の１つとしてアービター部１０３へ入力される信号であって、時刻Ｔ１のタイミングでアサートされ、時刻Ｔ６のタイミングでネゲートされている。
【００６５】
信号５０２は、ＤＭＡＣ１０５によってデータ転送バス１１３を使用してＤＭＡ転送を開始するためにアクセス権をアービター部１０３に要求する信号を示している。信号５０２は、信号群３０１の１つとしてアービター部１０３へ入力される信号であって、時刻Ｔ２のタイミングでアサートされ、時刻Ｔ５のタイミングでネゲートされている。
【００６６】
信号５０３は、ＣＰＵ１０１のメモリ部１０８に対するリード/ライトアクセスの有無を示す信号である。信号５０３では、時刻Ｔ３のタイミングでＣＰＵ１０１がアクセスを開始し、時刻Ｔ４のタイミングでアクセスを終了したことを示す。
【００６７】
信号５０４は、信号群３０３の１つとしてアービター部１０３へ入力される信号であって、ＤＭＡＣ部１０４によってデータ転送バス１１３が使用されている期間を示す信号である。データ転送バス１１３が使用されている期間は、信号５０４が“Ｈｉｇｈ”となっている期間である。この期間において、ＤＭＡ転送によりメモリ部１０８にデータの書込み処理が実行される。また、データ転送バス１１３が使用される期間は、データ転送バス１１３が所定のアクセス単位毎に一時的に開放される仕組みとなっている。信号５０４が“Ｌｏｗ”となっている期間では、データ転送バス１１３が一時的に開放されていることを示している。
【００６８】
信号５０５は、信号群３０３の１つとしてアービター部１０３へ入力される信号であって、ＤＭＡＣ部１０５によってデータ転送バス１１３が使用されている期間を示す信号である。データ転送バス１１３が使用されている期間は、信号５０５が“Ｈｉｇｈ”となっている期間である。この期間において、ＤＭＡ転送によりメモリ部１０８からデータの読出し処理が実行される。また、データ転送バス１１３が使用される期間は、データ転送バス１１３が所定のアクセス単位毎に一時的に開放される仕組みとなっている。信号５０５が“Ｌｏｗ”となっている期間では、データ転送バス１１３が一時的に開放されていることを示している。
【００６９】
信号５０６は、ＣＰＵ１０１によりメモリ部１０８に対してリード/ライトアクセスが実行されている期間を示す信号である。信号５０６が“Ｈｉｇｈ”となっている期間では、ＣＰＵ１０１によりメモリ部１０８に対してリード/ライトアクセスが実行される。
【００７０】
信号５０７は、信号群３０３のどれか一つの信号でもアサートしているときは“Ｈｉｇｈ”とし、全てネゲートしているときは“Ｌｏｗ”となっている。信号５０７が“Ｈｉｇｈ”となっている期間は、ＤＭＡＣ部１０４，１０５，１０６のいずれかによってデータ転送バス１１３が使用されている期間を示している。信号５０７が“Ｌｏｗ”となっている期間は、データ転送バス１１３が開放された期間を示し、ＤＭＡ転送中であっても一時的にデータ転送バス１１３が開放される瞬間があることを示している。
【００７１】
信号５０８は、図４及び図５に示した動作フローが実行されるタイミングを示している。信号５０７が“Ｌｏｗ”となっている期間において、アービター部１０３の内部クロック等に同期して、アクセス要求及びアクセス競合が発生していないか否かを確認する処理が実行される。
【００７２】
時刻Ｔ１まではＤＭＡＣ部からデータ転送バス１１３を使用するアクセス権の要求が無い状態であり、データ転送バス１１３は開放状態となっている。そのため、信号５０７が“Ｌｏｗ”の期間となり、信号５０８のように、所定の間隔でアクセス要求及びアクセス競合が発生しているか否かの確認処理が実行される。
【００７３】
時刻Ｔ１から時刻Ｔ２までの期間は、データ転送バス１１３を使用するアクセス権の要求がＤＭＡＣ部１０４のみからされており、アクセス競合は発生していない。この期間は、ＤＭＡＣ部１０４が独占的にデータ転送バス１１３を使用することが可能な期間である。ただし、所定のアクセス単位毎にデータ転送バス１１３を開放してその都度（信号５０８のタイミングで）アクセス競合が発生しているか否かの確認処理が実行される。
【００７４】
時刻Ｔ２から時刻Ｔ３までの期間は、データ転送バス１１３を使用するアクセス権の要求がＤＭＡＣ部１０４とＤＭＡＣ部１０５の双方から出力されている状態を示している。この期間はデータ転送バス１１３のアクセス競合が発生している期間となる。図４及び図５に示した動作フローに従ってアクセス権が与えられたＤＭＡＣ部はアクセス権取得の優先順位が変更されるので、図示のようにＤＭＡＣ部１０４とＤＭＡＣ部１０５とが交互にアクセス権を取得し、それぞれがデータ転送バス１１３を使用している。
【００７５】
時刻Ｔ３から時刻Ｔ４までの期間は、データ転送バス１１３を使用するアクセス権の要求がＤＭＡＣ部１０４とＤＭＡＣ部１０５の双方から出力されている状態で、さらにＣＰＵ１０１がメモリ部１０８へのリード/ライトアクセスが開始された状態を示している。この状態になると、図２に示した動作フローが実行され、優先的にＣＰＵ１０１がメモリ部１０８へのリード/ライトアクセスが行われる。このとき、ＤＭＡ転送停止命令信号（制御信号１１５ｂ）がアサートされているので、データ転送バス１１３が開放状態であってもＤＭＡ転送が実行されない。
【００７６】
時刻Ｔ４から時刻Ｔ５までの期間は、ＣＰＵ１０１がメモリ部１０８へのリード/ライトアクセスを終了して、データ転送バス１１３を使用するアクセス権の要求がＤＭＡＣ部１０４とＤＭＡＣ部１０５の双方から出力されている状態に戻ったことを示している。上述のように、この期間はデータ転送バス１１３のアクセス競合が発生している期間となる。図４及び図５に示した動作フローに従ってアクセス権が与えられたＤＭＡＣ部はアクセス権取得の優先順位が変更されるので、図示のようにＤＭＡＣ部１０４とＤＭＡＣ部１０５とが交互にアクセス権を取得し、それぞれがデータ転送バス１１３を使用している。
【００７７】
時刻Ｔ５から時刻Ｔ６までの期間は、データ転送バス１１３を使用するアクセス権の要求がＤＭＡＣ部１０４のみからされており、アクセス競合は発生していない。この期間は、ＤＭＡＣ部１０４が独占的にデータ転送バス１１３を使用することが可能な期間である。
【００７８】
時刻Ｔ６以降はデータ転送バス１１３を使用するアクセス権の要求が無い状態であり、データ転送バス１１３は開放状態となっている。そのため、信号５０７が“Ｌ”の期間となり、信号５０８のように、所定の間隔でアクセス要求及びアクセス競合が発生しているか否かの確認処理が実行される。
【００７９】
上記実施の形態によれば、以下の効果を奏する。
【００８０】
１．アービター部に対して、ＣＰＵとは分離されたアドレスデコーダ部がＣＰＵからメモリへアクセスするために必要となる処理（アクセス競合の発生の有無、バスを占有する処理、ＤＭＡ転送を中断させる処理等）をＣＰＵに代わって実行する。これにより、ＣＰＵの負荷を増加させることなく、ＣＰＵの任意のタイミングで高速にアクセス競合の発生するデータ転送バス上のメモリ部に対してＣＰＵがリード/ライトアクセスすることができる。
【００８１】
２．アービター部においてアクセス権を付与した回数によって優先順位を変更して各ＤＭＡＣ部に対してアクセス権を付与する。これにより、メモリ部へのデータ転送の書込み量と読出し量のバランスに応じたデータ転送バスの占有制御が可能となる。特に、映像ストリーミングのような映像データを転送する際のバッファとしてメモリ部を使用する場合、ＣＰＵバスとは分離したバス上にある該メモリであってもバッファ量の流量制御を行うことができる。
【００８２】
３．ＤＭＡＣ部によるＤＭＡ転送において任意の最小転送単位を設定し、該最小転送単位毎にバス調停処理を行う。これにより、ＤＭＡＣ部間でのアクセス競合が発生しても、ＤＭＡ転送の待ち時間を該最小転送単位時間まで短くするだけでなく、データ転送に必要な時間と量による優先順位を設定することができる。
【００８３】
４．異なった優先条件のアクセスが同一のメモリに対して発生した場合でも互いの優先条件を両立させてバス調停処理が行える。例えば、ＣＰＵからのアクセスのようにデータ転送量に関係なく優先されるアクセスやＤＭＡＣ部相互ではデータ転送量に応じて優先されるアクセスが同一のメモリに対して発生した場合でも互いの優先条件を両立させてバス調停処理が行える。これにより、映像ストリームデータ転送におけるバッファとしてメモリ部が使用された場合、映像データ部分のデータ転送がＤＭＡＣ部によってＣＰＵバスとは分離されたバスを使用して高速にかつ流量制御を行いながら転送することができる。さらに、通信プロトコル（ヘッダ部分）処理のような即時に高速な信号処理がＣＰＵによって実行させることができるので、ＣＰＵは通信プロトコル処理に専念することで負荷の低減が図られる。そして、映像データ部分はＣＰＵバスと分離されたバスを使用して転送されるので高速なスループットを実現することができる。
【００８４】
本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給することによっても達成される。その場合、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行する。該記憶媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク等を用いることができる。また、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ−ＲＡＭ、ＤＶＤ±ＲＷ等の光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。また、プログラムコードをネットワークを介してダウンロードしてもよい。
【００８６】
コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけではない。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
【００８７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００８８】
【図１】本発明を適用した通信インターフェース装置の構成例を示すブロック図である。
【図２】ＣＰＵからメモリ部に対するアクセス時のＤＭＡ転送制御の流れを示すフローチャートである。
【図３】図１のアドレスデコーダ部及びアービター部に対する信号の入出力状態を示す図である。
【図４】アービター部が実行するアクセス競合制御の流れを示すフローチャート（その１）である。
【図５】アービター部が実行するアクセス競合制御の流れを示すフローチャート（その２）である。
【図６】メモリ部に対するアクセス状態を示すタイミングチャートである。
【符号の説明】
【００８９】
１０２  アドレスデコーダ部
１０３  アービター部
１０４，１０５，１０６  ＤＭＡＣ部
１０７  メモリコントローラ部
１０８  メモリ部
１０９，１１０，１１１  外部インターフェース部
１１２  ＣＰＵバス
１１３  データ転送バス
１１５  制御線
１１５ａ  制御信号（データ転送バスビジー信号）
１１５ｂ  制御信号（ＤＭＡ転送停止命令信号）
【図１】
2008108126.tif 000003
【図２】
2008108126.tif 000004
【図３】
2008108126.tif 000005
【図４】
2008108126.tif 000006
【図５】
2008108126.tif 000007
【図６】
2008108126.tif 000008