JP2008108126A - データ転送制御装置及びそのバスアクセス調停方法 - Google Patents

データ転送制御装置及びそのバスアクセス調停方法 Download PDF

Info

Publication number
JP2008108126A
JP2008108126A JP2006291419A JP2006291419A JP2008108126A JP 2008108126 A JP2008108126 A JP 2008108126A JP 2006291419 A JP2006291419 A JP 2006291419A JP 2006291419 A JP2006291419 A JP 2006291419A JP 2008108126 A JP2008108126 A JP 2008108126A
Authority
JP
Japan
Prior art keywords
access
bus
unit
memory
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006291419A
Other languages
English (en)
Inventor
Kazunari Watanabe
一成 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006291419A priority Critical patent/JP2008108126A/ja
Publication of JP2008108126A publication Critical patent/JP2008108126A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】本発明は、CPUの負荷を増加させることなく、CPUの任意のタイミングで高速にアクセス競合の発生するバス上のメモリに対してCPUがリード/ライトアクセスすることができるデータ転送制御装置を提供する。
【解決手段】アドレスデコーダ部102は、CPU101からメモリ部108へのアクセスの開始を検出した場合、DMA転送が実行中であるときは、DMA転送の停止命令を通知して複数のDMAC部にアクセス権を付与しないようにする。そして、DMA転送が停止したことを示す信号をアービター部103から受けた後に、CPU101からメモリ108へのアクセスを開始させる。DMA転送が実行中でないときは、アービター部103に対してDMA転送の停止命令を通知して複数のDMAC部にアクセス権を付与しないようにした後に、CPU101からメモリ部108へのアクセスを開始させる。
【選択図】図2

Description

本発明は、データ転送制御装置及びそのバスアクセス調停方法に関する。
近年、映像データの情報量が増大し、映像データを伝送する際には、高速な転送能力が必要とされる。例えば、ハイビジョンなどの映像データをストリーミングの形式で通信インターフェースから受信し、ディスプレイ装置に出力する通信インターフェース装置において、大容量の映像データをリアルタイムに転送するには高速な転送能力が要求される。
通信インターフェース装置では、入力された映像データ自体に、例えば、画像圧縮のような信号処理を行わないので、該映像データの転送と通信プロトコル処理とを分離して処理することが可能となる。従って、中央処理装置(CPU)は通信プロトコルの処理のみを行い、映像データの転送のためにDMA転送が使用される等の工夫によって、低いCPU負荷で高速なスループットを実現する方法や処理が提案されている。
特許文献1には、1つのバス上にあるメモリに対してアクセス可能なCPUとDMAC(Direct Memory Access Controller)、バスのアクセス権を調停するバス調停回路とが接続されたデータ処理装置が提案されている。このデータ処理装置は、CPUがメモリへのアクセスを行う際に、バス調停回路にその旨の通知を行い、バス調停回路が該通知を受信してDMACに対してDMA転送の中断指令を送信する。これによって、DMA転送中であってもCPUがバスを使用してメモリへアクセスすることが可能となっている。
特開平8−171528号公報
しかしながら、上記特許文献1記載の技術では、DMA転送中にCPUがバスを使用してメモリへアクセスすることを可能とするために、CPUはバス調停回路にDMA転送の中断を要求しなければならない。そのため、特許文献1記載の技術では、CPUからメモリに対するアクセス要求が発生した場合、CPUはDMA転送中であるか否かの検出処理を実行しなければならない。
そして、CPUがDMA転送中であるときは、バス調停回路にDMA転送の中断を要求した後にメモリに対するアクセスを実行することになる。これは、通常のメモリアクセス処理に加え、別途DMA転送中断の処理をCPUが実行しなければならず、CPUの負荷が増大することになる。
本発明は、プロセッサの負荷を軽減し、アクセス競合の発生するバスに対してプロセッサが高速にアクセスすることができるデータ転送制御装置及びそのバスアクセス調停方法を提供することを目的とする。
上記目的を達成するために、本発明に係るデータ転送制御装置は、プロセッサと、DMA転送を制御する複数のDMA制御手段と、前記プロセッサと前記複数のDMA制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記DMA制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置であって、前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出手段を備え、前記プロセッサアクセス検出手段は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにし、DMA転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とする。
上記目的を達成するために、本発明に係るバスアクセス調停方法は、プロセッサと、DMA転送を制御する複数のDMA制御手段と、前記プロセッサと前記複数のDMA制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記DMA制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置のバスアクセス調停方法であって、前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出工程を備え、前記プロセッサアクセス検出工程は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにし、DMA転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とする。
本発明によれば、プロセッサからメモリへのアクセスの開始を検出した場合、バス上でDMA転送が実行中であることを示す信号をバス調停手段から受けているときは、バス調停手段にDMA転送の停止命令を通知する。そして、複数のDMA制御手段にアクセス権を付与しないようにし、DMA転送が停止したことを示す信号をバス調停手段から受けた後に、プロセッサからメモリへのアクセスを開始させる。また、バス上でDMA転送が実行中であることを示す信号をバス調停手段から受けていないときは、バス調停手段に対してDMA転送の停止命令を通知して複数のDMA制御手段にアクセス権を付与しないようにし、プロセッサからメモリへのアクセスを開始させる。これにより、CPUの負荷を増加させることなく、CPUの任意のタイミングで高速にアクセス競合の発生するバス上のメモリに対してCPUがリード/ライトアクセスすることができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本実施形態の通信インターフェース装置の構成例を示すブロック図である。
本通信インターフェース装置は、映像データをストリーミングの形式で通信インターフェースから受信し、テレビジョンなどのディスプレイ装置等に映像データを出力する装置である。通信インターフェース装置の内部は、2種類のバスが各機能ブロック間を接続する構成となっている。
CPUバス112は、プロセッサである中央処理装置(CPU)101と、アドレスデコーダ部102(ADDRESS DECODE)と、バスアクセスの調停を行うアービター部103(ARBITER)とに接続されている。また、CPUバス112は、各ダイレクトメモリコントローラ(DMAC:Direct Memory Access Controller)部(DMA制御手段)104(DMAC1),105(DMAC2),106(DMAC3)と、メモリコントローラ部107(RAMC)に接続されている。
CPU101は、CPUバス112を使用して各機能ブロックに対するリード/ライトアクセスを実行する。CPU101のアクセスは大きく2種類に分けられる。1つは、アービター部103の内部レジスタへのリード/ライトアクセス、DMAC部104,105,106の内部レジスタへのリード/ライトアクセスのような各機能ブロックの内部レジスタに対するアクセスである。
もう1つは、DMAC部104,105,106を経由して外部インターフェース部109,110,111(I/F)に接続されたLSI(Large Scale Integration)や入出力装置とのリード/ライトアクセス、及びメモリコントローラ部107を経由したメモリ部108(RAM)へのリード/ライトアクセスである。
データ転送バス113は、メモリコントローラ部107と、各DMAC部104,105,106とに接続される。データ転送バス113は、メモリ部108と外部インターフェース部109,110,111との間でDMA(Direct Memory Access)転送によってデータを転送するバスである。ここでは、外部インターフェース部109は通信インターフェースの機能を有する。また、外部インターフェース部111は映像データをディスプレイ装置等に出力する映像出力インターフェース機能を有する。
データ転送バス113は、通信インターフェース部である外部インターフェース部109から受信した映像データをDMAC部104によりDMA転送し、メモリコントローラ部107を経由してメモリ部108へ書込むようなデータ転送に使用される。また、メモリ部108に書込まれている映像データをDMAC部106によりDMA転送し、メモリコントローラ部107を経由して外部インターフェース部111から外部のディスプレイ装置等に出力する場合にもデータ転送バス113が使用される。
アドレスデコーダ部102は、CPU101がCPUバス112を使用して各種のアクセスを開始したときに、CPUバス112のアドレス信号をデコードしてどのようなアクセス要求なのかを検知する。そして、アドレスデコーダ部102は、検知したアクセス要求の内容を示すセレクト信号をアクセス対象毎に生成し、アクセス要求を行う対象の機能ブロックに対してセレクト信号線114によってセレクト信号を送信する。このとき、各機能ブロックの内部レジスタへアクセスするためのセレクト信号と、各機能ブロックを経由して各外部インターフェース部109,110,111へアクセスするためのセレクト信号とは区別される。なお、メモリコントローラ部107のように内部レジスタを持たない機能ブロックの場合、メモリ部108へアクセスするためのセレクト信号が使用される。
一方、アドレスデコーダ部102は、アクセスウエイト信号を生成し、該アクセスウエイト信号で1アクセス単位毎のアクセスの終了を通知する。このアクセスウエイト信号は、各DMAC部104,105,106がメモリ部108へアクセス中か否かをCPU101へ通知するものであり、CPU101が次のアクセスサイクルへ移行するタイミングを示すものである。
アクセスウエイト信号は、通常、ウエイト状態(アサート)となっている。そして、例えば、CPU101がメモリ部108へのアクセスを開始した際に少なくとも1つのDMAC部がメモリ部108にアクセス中であった場合、DMA転送の1データ転送が終了した後にメモリ部108へのアクセス権がCPU101へ委譲される。このときは、CPU101のメモリ部108へのアクセスが1単位分終了するまで該アクセスウエイト信号がアサートされ、1単位分のアクセスが終了した後にネゲートされる。
アービター部103は、データ転送バス113上でDMA転送によるアクセス要求が発生した場合にアクセス競合が発生したか否かを判定し、アクセス競合が発生した場合は競合制御を行ってアクセス権を決定する処理を行う。また、アービター部103は、データ転送バス113を占有してメモリ部108とアクセスするアクセス権を複数のDMAC部104,105,106の中から選択して付与するバス調停処理を行う。また、アービター部103は、DMAC部104,105,106毎にアクセス権を与えた回数をカウントし、該カウント値に応じて優先順位を変更する制御を行ってバスアクセスの競合制御を実行する。
アドレスデコーダ部102とアービター部103との間は制御線115で接続されている。これにより、アドレスデコーダ部102とアービター部103との間で、データ転送バス113の使用状況や各DMAC部104,105,106によるDMA転送の状況、データ転送バス113の使用停止を命令する制御信号などが送受信される。
各DMAC部104,105,106は、それぞれ内部に設定用レジスタを装備している。CPU101は、CPUバス112を使用して各設定用レジスタに対してリード/ライトアクセス可能となっている。該設定用レジスタには、DMA転送を開始するアドレス情報や転送するデータ量が設定されるだけでなく、DMA転送を行う際の最小転送単位が設定され得る。例えば、データ転送バス113が32ビットのデータバスであった場合、4バイト、8バイト、16バイトのいずれかがDMA転送の最小転送単位として設定される。ここでDMA転送の最小転送単位が4バイトに設定されると、実際にDMA転送が開始されたときに4バイト転送されるごとに一時的にデータ転送バス113を開放する動作を繰り返しながらDMA転送が実行される。
図3は、図1のアドレスデコーダ部102及びアービター部103に対する信号の入出力状態を示す図である。
図3において、信号群301は各DMAC部104,105,106からアービター部103に対して送信される信号群である。信号群301は、DMAC部104,105,106がそれぞれデータ転送バス113上でDMA転送を開始するためのアクセス権をアービター部103に要求する信号である。信号群301の中の1つの信号がアサートされる場合もあれば、全ての信号がアサートされる場合もある。そして、複数の信号が同時にアサートされた場合、データ転送バス113上でアクセスの競合が発生した状態となる。
信号群302は、信号群301をアサートした各DMAC部104,105,106に対してアービター部103がアクセス権を与えるための信号である。アービター部103は、アクセスの競合制御を行い、選択したDMAC部に対応する、信号群302の中の1つの信号をアサートして当該DMAC部にアクセス権を与える。
信号群303は、DMA転送が実行中であることを示す信号であり、アクセス権が与えられたDMAC部がデータ転送バス113をDMA転送のために使用している間アサートされる。
制御信号115aはデータ転送バスビジー信号であり、アービター部103がデータ転送バス113のアクセス状態を検知し、その結果をアドレスデコーダ部102に通知する信号である。制御信号115aは、信号群303の状態に応じて生成される。すなわち、信号群303の中で1つでもアサートされていると制御信号115aがアサートされ、信号群303の全てがネゲートされた場合は該制御信号115aがネゲートされる。
制御信号115bはDMA転送停止命令信号であり、CPU101のアクセスによってデータ転送バス113上のDMA転送を停止しなければならないときに、アドレスデコーダ部102によってアサートされる信号である。制御信号115bは、一旦アサートされるとCPU101のアクセスが終了するまでアサートした状態を維持し、CPU101のアクセスが終了した時点でネゲートされる信号である。
図2は、CPU101からメモリ部108に対するアクセス時のDMA転送制御の流れを示すフローチャートである。本処理は、CPU101がメモリ部108にデータを書込むためにアクセスを開始した際に、データ転送バス113が使用状態であった場合とそうでない場合のそれぞれ動作を示す処理である。
ステップS201:本処理を開始する。CPU101は、図1に示した各機能ブロックへ何もアクセスしていない状態にある。
ステップS202:アドレスデコーダ部102は、CPU101がメモリ部108へのアクセスを開始したか否かを条件として経路選択を行う。すなわち、CPU101がメモリ部108へアクセスを開始したことをアドレスデコーダ部102がCPUバス112の中のアドレス信号を解析して検知するとステップS203へ移行する。一方、そうでなければ現在の状態(CPU101からメモリ部108へのアクセス開始を待つ状態)を維持する。
ステップS203:アドレスデコーダ部102は、データ転送バス113において現在DMA転送が行われているか否かを条件として経路選択を行う。具体的には、データ転送バス113上で現在DMA転送が実行中であることを示すデータ転送バスビジー信号(制御信号115a)がアービター部103からアサートされていればステップS204へ移行し、そうでなければステップS209へ移行する。データ転送バスビジー信号(制御信号115a)は、信号群303中でアサートしている信号があれば、データ転送バス113がDMA転送のために使用中であるとアービター部103が判断してアサートされる信号である。
ステップS204:アドレスデコーダ部102は、データ転送バス113上のDMA転送における次のアクセス権をCPU101へ委譲するために、アービター部103へDMA転送停止命令を通知する。このとき、DMA転送停止命令信号(制御信号115b)がアサートされる。そして、該DMA転送停止命令をアドレスデコーダ部102から受信したアービター部103は、データ転送バス113上のDMA転送における次のアクセス権を各DMAC部104,105,106に与えないようにセットする。これは信号群302中の全てがアサートしないようにセットされる。
ステップS205:アドレスデコーダ部102は、データ転送バス113においてDMA転送が停止したか否かを条件として経路選択を行う。データ転送バス113上でDMA転送が停止したことを示すデータ転送バスビジー信号(制御信号115a)がネゲートされているときはステップS206へ移行し、そうでなければ現在の状態を維持する。該データ転送バスビジー信号(制御信号115a)は、DMAC部104,105,106のいずれもがデータ転送バス113を使用していない場合にネゲートされる信号である。これは信号群303中の全てがネゲートされたときにデータ転送バスビジー信号(制御信号115a)がネゲートされる。
ステップS206:CPU101がメモリ部108に対してリード/ライトアクセス処理を行う。このとき、アドレスデコーダ部102がアービター部103に対していずれのDMAC部104,105,106にデータ転送バス113のアクセス権を与えないように、該DMA転送停止命令信号(制御信号115b)がアサートされている状態である。そのため、CPU101はメモリ部108に対して自由にリード/ライトアクセス処理を行うことが可能となっている。
ステップS207:CPU101がメモリ部108に対するリード/ライトアクセス処理が終了したか否かを条件として経路選択を行う。アドレスデコーダ部103がCPUバス112を解析して該アクセスが終了したことを検知するとステップS208へ移行し、そうでなければ現在の状態を維持する。
ステップS208:アドレスデコーダ部102は、データ転送バス113上のDMA転送における次のアクセス権をDMAC部へ委譲するために、アービター部103へDMA転送停止命令を通知する。このとき、DMA転送停止命令信号(制御信号115b)がネゲートされる。そして、該DMA転送停止命令をアドレスデコーダ部102から受信したアービター部103は、データ転送バス113上のDMA転送における次のアクセス権を各DMAC部104,105,106に与えるようにセットする。これにより、ステップS204で付与されたアクセス権の制限が解除される。
ステップS209:アドレスデコーダ部102は、アービター部103へのデータ転送バス113上のDMA転送における次のアクセス権をCPU101へ委譲するための命令であるDMA転送停止命令信号(制御信号115b)をアサートする。そして、該DMA転送停止命令信号(制御信号115b)を受信したアービター部103はデータ転送バス113上のDMA転送における次のアクセス権を各DMAC部104,105,106に与えないようにセットする。これは信号群302中の全てにおいてアサートしないようにセットする処理となる。
ステップS210:本処理を終了する。
次に、複数のDMAC部104,105,106からアクセス要求を信号群301にて受信した際のアービター部103におけるアクセス競合制御の流れを図4及び図5を参照して説明する。
図4及び図5は、アービター部103が実行するアクセス競合制御の流れを示すフローチャートである。本処理は、アクセス競合の発生からアクセス権の決定までの動作処理を示したものである。該フローチャートに示す動作フローはアクセス競合が発生する毎に繰り返し実行される。
アービター部103は、アクセス権が付与されたか否かを示す情報を“0”又は“1”の値としてDMAC部104,105,106ごとに格納するカウンタを備える。DMAC部104,105,106の各カウンタの値はアクセス競合が発生する度に変化する。本実施の形態では、カウンタの値は最小値“0”と最大値“1”で簡易的に表現したものとなっている。なお、3つ以上のアクセス競合が発生したときは、カウンタ値が最大値“1”以上であってもよい。
一方、アクセス権の優先順位の初期値は、優先順位の高い方からDMAC部104(DMAC1)、DMAC部105(DMAC2)、DMAC部106(DMAC3)の順に設定されている。
ステップS401:本処理を開始する。データ転送バス113は、何もデータ転送が行われていないスタンバイの状態にある。各カウンタの値の初期値は全て“0”とする。
ステップS402:複数のDMAC部104,105,106からデータ転送バス113を使用したDMA転送の要求が発生したことをアービター部103が検出したか否かを条件として経路選択を行う。信号群303が全てネゲートされた状態において、信号群301中の複数がアサートされたことをアービター部103が検出するとアクセス競合が発生したと判断し、ステップS403へ移行し、そうでなければ現在の状態を維持する。
ステップS403:アービター部103は、信号群301の中でDMAC1からのアクセス要求が有り、且つDMAC1に対応するカウンタの値が“1”であるか否かを条件として経路選択を行う。信号群301の中でDMAC1に接続している信号線がアサートされ、かつDMAC1に対応するカウンタの値が“1”であれば、ステップS404に移行し、そうでなければステップS415へ移行する。
ステップS404:アービター部103は、信号群301の中でDMAC2からのアクセス要求が有り、かつDMAC2に対応するカウンタの値が“1”であるか否かを条件として経路選択を行う。信号群301の中でDMAC2に接続している信号線がアサートされ、かつDMAC2に対応するカウンタの値が“1”であれば、ステップS405に移行し、そうでなければステップS416へ移行する。
ステップS405:アービター部103は、信号群301の中でDMAC3からのアクセス要求が有り、かつDMAC3に対応するカウンタの値が“1”であるか否かを条件として経路選択を行う。信号群301の中でDMAC3に接続している信号線がアサートされ、かつDMAC3に対応するカウンタの値が“1”であれば、ステップS406に移行し、そうでなければステップS417へ移行する。
ステップS406:アービター部103は、信号群301の中でDMAC1からのアクセス要求があるか否かを条件として経路選択を行う。信号群301の中でDMAC1に接続している信号線がアサートされていれば、ステップS411に移行し、そうでなければステップS407へ移行する。
ステップS407:アービター部103は、信号群301の中でDMAC2からのアクセス要求があるか否かを条件として経路選択を行う。信号群301の中でDMAC2に接続している信号線がアサートされていれば、ステップS412に移行し、そうでなければステップS413へ移行する。
ステップS415:アービター部103は、信号群301の中でDMAC1からのアクセス要求があるかを条件として経路選択を行う。信号群301の中でDMAC1に接続している信号線がアサートされていれば、ステップS408に移行し、そうでなければステップS404へ移行する。
ステップS408:アービター部103は、アクセス権がDMAC1に決定したことをDMAC1に通知し、そしてDMAC1に対応するカウンタを加算して“1”とする。アービター部103は信号群302の中でDMAC1に接続している信号線をアサートして該DMAC1にアクセス権の付与を行う。
ステップS416:アービター部103は、信号群301の中でDMAC2からのアクセス要求があるかを条件として経路選択を行う。信号群301の中でDMAC2に接続している信号線がアサートされていれば、ステップS409に移行し、そうでなければステップS405へ移行する。
ステップS409:アービター部103は、アクセス権がDMAC2に決定したことをDMAC2に通知し、そしてDMAC2に対応するカウンタを加算して“1”とする。アービター部103は信号群302の中でDMAC2に接続している信号線をアサートして該DMAC2にアクセス権の付与を行う。
ステップS417:アービター部103は、信号群301の中でDMAC3からのアクセス要求があるかを条件として経路選択を行う。信号群301の中でDMAC3に接続している信号線がアサートされていれば、ステップS410に移行し、そうでなければステップS406へ移行する。
ステップS410:アービター部103は、アクセス権がDMAC3に決定したことをDMAC3に通知し、そしてDMAC3に対応するカウンタを加算して“1”とする。アービター部103は信号群302の中でDMAC3に接続している信号線をアサートして該DMAC3にアクセス権の付与を行う。
ステップS411:アービター部103は、アクセス権がDMAC1に決定したことをDMAC1に通知し、DMAC1に対応するカウンタは“1”のままとし、優先順位の低いDMAC2及びDMAC3に対応するカウンタの値をそれぞれ“0”にリセットする。アービター部103は信号群302の中でDMAC1に接続している信号線をアサートして該DMAC1にアクセス権の付与を行う。
ステップS412:アービター部103は、アクセス権がDMAC2に決定したことをDMAC2に通知し、そしてDMAC2に対応するカウンタは“1”のままとし、優先順位の低いDMAC3に対応するカウンタの値を“0”にリセットする。アービター部103は信号群302の中でDMAC2に接続している信号線をアサートして該DMAC2にアクセス権の付与を行う。
ステップS413:アービター部103は、アクセス権がDMAC3に決定したことをDMAC3に通知する。アービター部103は信号群302の中でDMAC3に接続している信号線をアサートして該DMAC3にアクセス権の付与を行う。
ステップS414:本処理を終了する。
図6は、メモリ部108に対するアクセス状態を示すタイミングチャートである。 図6では、まず、DMAC部104によって外部インターフェース部109から取込んだ映像データをメモリ部108に書込みを行うDMA転送が開始される。その後、DMAC部105によってメモリ部108から読取ったデータを外部インターフェース部110へ転送するDMA転送が開始される。そして、CPU101がメモリ部108に対してリード/ライトアクセスを行う。
信号501は、DMAC部104によってデータ転送バス113を使用してDMA転送を開始するためにアクセス権をアービター部103に要求する信号を示している。信号501は、信号群301の1つとしてアービター部103へ入力される信号であって、時刻T1のタイミングでアサートされ、時刻T6のタイミングでネゲートされている。
信号502は、DMAC105によってデータ転送バス113を使用してDMA転送を開始するためにアクセス権をアービター部103に要求する信号を示している。信号502は、信号群301の1つとしてアービター部103へ入力される信号であって、時刻T2のタイミングでアサートされ、時刻T5のタイミングでネゲートされている。
信号503は、CPU101のメモリ部108に対するリード/ライトアクセスの有無を示す信号である。信号503では、時刻T3のタイミングでCPU101がアクセスを開始し、時刻T4のタイミングでアクセスを終了したことを示す。
信号504は、信号群303の1つとしてアービター部103へ入力される信号であって、DMAC部104によってデータ転送バス113が使用されている期間を示す信号である。データ転送バス113が使用されている期間は、信号504が“High”となっている期間である。この期間において、DMA転送によりメモリ部108にデータの書込み処理が実行される。また、データ転送バス113が使用される期間は、データ転送バス113が所定のアクセス単位毎に一時的に開放される仕組みとなっている。信号504が“Low”となっている期間では、データ転送バス113が一時的に開放されていることを示している。
信号505は、信号群303の1つとしてアービター部103へ入力される信号であって、DMAC部105によってデータ転送バス113が使用されている期間を示す信号である。データ転送バス113が使用されている期間は、信号505が“High”となっている期間である。この期間において、DMA転送によりメモリ部108からデータの読出し処理が実行される。また、データ転送バス113が使用される期間は、データ転送バス113が所定のアクセス単位毎に一時的に開放される仕組みとなっている。信号505が“Low”となっている期間では、データ転送バス113が一時的に開放されていることを示している。
信号506は、CPU101によりメモリ部108に対してリード/ライトアクセスが実行されている期間を示す信号である。信号506が“High”となっている期間では、CPU101によりメモリ部108に対してリード/ライトアクセスが実行される。
信号507は、信号群303のどれか一つの信号でもアサートしているときは“High”とし、全てネゲートしているときは“Low”となっている。信号507が“High”となっている期間は、DMAC部104,105,106のいずれかによってデータ転送バス113が使用されている期間を示している。信号507が“Low”となっている期間は、データ転送バス113が開放された期間を示し、DMA転送中であっても一時的にデータ転送バス113が開放される瞬間があることを示している。
信号508は、図4及び図5に示した動作フローが実行されるタイミングを示している。信号507が“Low”となっている期間において、アービター部103の内部クロック等に同期して、アクセス要求及びアクセス競合が発生していないか否かを確認する処理が実行される。
時刻T1まではDMAC部からデータ転送バス113を使用するアクセス権の要求が無い状態であり、データ転送バス113は開放状態となっている。そのため、信号507が“Low”の期間となり、信号508のように、所定の間隔でアクセス要求及びアクセス競合が発生しているか否かの確認処理が実行される。
時刻T1から時刻T2までの期間は、データ転送バス113を使用するアクセス権の要求がDMAC部104のみからされており、アクセス競合は発生していない。この期間は、DMAC部104が独占的にデータ転送バス113を使用することが可能な期間である。ただし、所定のアクセス単位毎にデータ転送バス113を開放してその都度(信号508のタイミングで)アクセス競合が発生しているか否かの確認処理が実行される。
時刻T2から時刻T3までの期間は、データ転送バス113を使用するアクセス権の要求がDMAC部104とDMAC部105の双方から出力されている状態を示している。この期間はデータ転送バス113のアクセス競合が発生している期間となる。図4及び図5に示した動作フローに従ってアクセス権が与えられたDMAC部はアクセス権取得の優先順位が変更されるので、図示のようにDMAC部104とDMAC部105とが交互にアクセス権を取得し、それぞれがデータ転送バス113を使用している。
時刻T3から時刻T4までの期間は、データ転送バス113を使用するアクセス権の要求がDMAC部104とDMAC部105の双方から出力されている状態で、さらにCPU101がメモリ部108へのリード/ライトアクセスが開始された状態を示している。この状態になると、図2に示した動作フローが実行され、優先的にCPU101がメモリ部108へのリード/ライトアクセスが行われる。このとき、DMA転送停止命令信号(制御信号115b)がアサートされているので、データ転送バス113が開放状態であってもDMA転送が実行されない。
時刻T4から時刻T5までの期間は、CPU101がメモリ部108へのリード/ライトアクセスを終了して、データ転送バス113を使用するアクセス権の要求がDMAC部104とDMAC部105の双方から出力されている状態に戻ったことを示している。上述のように、この期間はデータ転送バス113のアクセス競合が発生している期間となる。図4及び図5に示した動作フローに従ってアクセス権が与えられたDMAC部はアクセス権取得の優先順位が変更されるので、図示のようにDMAC部104とDMAC部105とが交互にアクセス権を取得し、それぞれがデータ転送バス113を使用している。
時刻T5から時刻T6までの期間は、データ転送バス113を使用するアクセス権の要求がDMAC部104のみからされており、アクセス競合は発生していない。この期間は、DMAC部104が独占的にデータ転送バス113を使用することが可能な期間である。
時刻T6以降はデータ転送バス113を使用するアクセス権の要求が無い状態であり、データ転送バス113は開放状態となっている。そのため、信号507が“L”の期間となり、信号508のように、所定の間隔でアクセス要求及びアクセス競合が発生しているか否かの確認処理が実行される。
上記実施の形態によれば、以下の効果を奏する。
1.アービター部に対して、CPUとは分離されたアドレスデコーダ部がCPUからメモリへアクセスするために必要となる処理(アクセス競合の発生の有無、バスを占有する処理、DMA転送を中断させる処理等)をCPUに代わって実行する。これにより、CPUの負荷を増加させることなく、CPUの任意のタイミングで高速にアクセス競合の発生するデータ転送バス上のメモリ部に対してCPUがリード/ライトアクセスすることができる。
2.アービター部においてアクセス権を付与した回数によって優先順位を変更して各DMAC部に対してアクセス権を付与する。これにより、メモリ部へのデータ転送の書込み量と読出し量のバランスに応じたデータ転送バスの占有制御が可能となる。特に、映像ストリーミングのような映像データを転送する際のバッファとしてメモリ部を使用する場合、CPUバスとは分離したバス上にある該メモリであってもバッファ量の流量制御を行うことができる。
3.DMAC部によるDMA転送において任意の最小転送単位を設定し、該最小転送単位毎にバス調停処理を行う。これにより、DMAC部間でのアクセス競合が発生しても、DMA転送の待ち時間を該最小転送単位時間まで短くするだけでなく、データ転送に必要な時間と量による優先順位を設定することができる。
4.異なった優先条件のアクセスが同一のメモリに対して発生した場合でも互いの優先条件を両立させてバス調停処理が行える。例えば、CPUからのアクセスのようにデータ転送量に関係なく優先されるアクセスやDMAC部相互ではデータ転送量に応じて優先されるアクセスが同一のメモリに対して発生した場合でも互いの優先条件を両立させてバス調停処理が行える。これにより、映像ストリームデータ転送におけるバッファとしてメモリ部が使用された場合、映像データ部分のデータ転送がDMAC部によってCPUバスとは分離されたバスを使用して高速にかつ流量制御を行いながら転送することができる。さらに、通信プロトコル(ヘッダ部分)処理のような即時に高速な信号処理がCPUによって実行させることができるので、CPUは通信プロトコル処理に専念することで負荷の低減が図られる。そして、映像データ部分はCPUバスと分離されたバスを使用して転送されるので高速なスループットを実現することができる。
本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給することによっても達成される。その場合、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行する。該記憶媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク等を用いることができる。また、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD−RAM、DVD±RW等の光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、プログラムコードをネットワークを介してダウンロードしてもよい。
コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけではない。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれる。
本発明を適用した通信インターフェース装置の構成例を示すブロック図である。 CPUからメモリ部に対するアクセス時のDMA転送制御の流れを示すフローチャートである。 図1のアドレスデコーダ部及びアービター部に対する信号の入出力状態を示す図である。 アービター部が実行するアクセス競合制御の流れを示すフローチャート(その1)である。 アービター部が実行するアクセス競合制御の流れを示すフローチャート(その2)である。 メモリ部に対するアクセス状態を示すタイミングチャートである。
符号の説明
102 アドレスデコーダ部
103 アービター部
104,105,106 DMAC部
107 メモリコントローラ部
108 メモリ部
109,110,111 外部インターフェース部
112 CPUバス
113 データ転送バス
115 制御線
115a 制御信号(データ転送バスビジー信号)
115b 制御信号(DMA転送停止命令信号)

Claims (3)

  1. プロセッサと、DMA転送を制御する複数のDMA制御手段と、前記プロセッサと前記複数のDMA制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記DMA制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置であって、
    前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出手段を備え、
    前記プロセッサアクセス検出手段は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにし、DMA転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、
    前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とするデータ転送制御装置。
  2. 前記バス調停手段は、前記アクセス権が付与されたか否かを示す情報を値として前記DMA制御手段毎に格納するカウンタと、前記カウンタの値に応じて前記アクセス権の調停における優先順位を変動して設定する優先順位設定手段とを備え、前記設定された優先順位に従って前記DMA制御手段を選択して前記アクセス権を付与することを特徴とする請求項1記載のデータ転送制御装置。
  3. プロセッサと、DMA転送を制御する複数のDMA制御手段と、前記プロセッサと前記複数のDMA制御手段がバスを介してアクセス可能に接続されたメモリと、前記バスを占有した前記メモリへのアクセス権を前記複数の前記DMA制御手段の中から選択して付与するバス調停手段とを備えるデータ転送制御装置のバスアクセス調停方法であって、
    前記バス調停手段との間で信号の送受信が可能に接続され、前記プロセッサから前記メモリへのアクセスの開始を検出するプロセッサアクセス検出工程を備え、
    前記プロセッサアクセス検出工程は、前記プロセッサから前記メモリへのアクセスの開始を検出した場合、前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けているときは、前記バス調停手段にDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにし、DMA転送が停止したことを示す信号を前記バス調停手段から受けた後に、前記プロセッサから前記メモリへのアクセスを開始させ、
    前記バス上でDMA転送が実行中であることを示す信号を前記バス調停手段から受けていないときは、前記バス調停手段に対してDMA転送の停止命令を通知して前記複数のDMA制御手段に前記アクセス権を付与しないようにした後に、前記プロセッサから前記メモリへのアクセスを開始させることを特徴とするバスアクセス調停方法。
JP2006291419A 2006-10-26 2006-10-26 データ転送制御装置及びそのバスアクセス調停方法 Pending JP2008108126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006291419A JP2008108126A (ja) 2006-10-26 2006-10-26 データ転送制御装置及びそのバスアクセス調停方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006291419A JP2008108126A (ja) 2006-10-26 2006-10-26 データ転送制御装置及びそのバスアクセス調停方法

Publications (1)

Publication Number Publication Date
JP2008108126A true JP2008108126A (ja) 2008-05-08

Family

ID=39441414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006291419A Pending JP2008108126A (ja) 2006-10-26 2006-10-26 データ転送制御装置及びそのバスアクセス調停方法

Country Status (1)

Country Link
JP (1) JP2008108126A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6289689B1 (ja) * 2017-01-27 2018-03-07 三菱電機株式会社 メモリ制御装置および計算機システム
US11042382B2 (en) 2013-08-08 2021-06-22 Movidius Limited Apparatus, systems, and methods for providing computational imaging pipeline
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042382B2 (en) 2013-08-08 2021-06-22 Movidius Limited Apparatus, systems, and methods for providing computational imaging pipeline
US11567780B2 (en) 2013-08-08 2023-01-31 Movidius Limited Apparatus, systems, and methods for providing computational imaging pipeline
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
JP6289689B1 (ja) * 2017-01-27 2018-03-07 三菱電機株式会社 メモリ制御装置および計算機システム
JP2018120499A (ja) * 2017-01-27 2018-08-02 三菱電機株式会社 メモリ制御装置および計算機システム

Similar Documents

Publication Publication Date Title
US8103803B2 (en) Communication between a processor and a controller
JP2005242718A (ja) データ転送装置、および転送制御プログラム
JP2006227836A (ja) データ転送システムおよびデータ転送方法
US20180246828A1 (en) Shared resource access arbitration method, and shared resource access arbitration device and shared resource access arbitration system for performing same
JP4184614B2 (ja) バスシステム及びその実行順序の調整方法
US6606677B1 (en) High speed interrupt controller
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP2012008919A (ja) 情報処理装置
JP2004334552A (ja) バス接続回路及びバス接続システム
JP2007058716A (ja) データ転送バスシステム
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
WO2006024193A1 (fr) Procede et systeme pour transfert de donnees
JP5057360B2 (ja) 半導体装置、データ処理装置、及び記憶装置へのアクセス方法
JP2008108126A (ja) データ転送制御装置及びそのバスアクセス調停方法
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
JP6106986B2 (ja) 演算処理装置、情報処理装置及び割込制御方法
JP2010128604A (ja) メモリシステム
JPH1125036A (ja) 調停システム、およびアクセスを調停する方法
JP2005165592A (ja) データ転送装置
JP2020098386A (ja) バスシステム
JP2009271610A (ja) バッファ制御回路、バッファ回路およびデータ処理装置
JP2002288120A (ja) 調停装置およびバスシステム
KR20070061240A (ko) 절대 우위의 dma 요청을 처리하는 dma 장치 및 그처리 방법
JPH11175464A (ja) 調停装置および方法