JP2016181126A - Dmaコントローラ - Google Patents
Dmaコントローラ Download PDFInfo
- Publication number
- JP2016181126A JP2016181126A JP2015061045A JP2015061045A JP2016181126A JP 2016181126 A JP2016181126 A JP 2016181126A JP 2015061045 A JP2015061045 A JP 2015061045A JP 2015061045 A JP2015061045 A JP 2015061045A JP 2016181126 A JP2016181126 A JP 2016181126A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- data transfer
- dma command
- command
- cpu
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】回路規模の増大を抑制しつつ、複数のCPUの間におけるDMA転送に関する競合処理の負荷を低減する。
【解決手段】DMAコントローラ100は、n個のCPU1-1〜1-nと1対1に対応付けて設けられ、DMAコマンドを格納するn個のレジスタ10-1〜10-nと、割り当てられたDMAコマンドに従って、データ転送を実行すると共に、当該DMAコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するDMA転送部30Aと、実行するDMAコマンドを決定して、当該DMAコマンドをDMA転送部30Aに割り当てるディスパッチャー20と、を具備する。
【選択図】図1
【解決手段】DMAコントローラ100は、n個のCPU1-1〜1-nと1対1に対応付けて設けられ、DMAコマンドを格納するn個のレジスタ10-1〜10-nと、割り当てられたDMAコマンドに従って、データ転送を実行すると共に、当該DMAコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するDMA転送部30Aと、実行するDMAコマンドを決定して、当該DMAコマンドをDMA転送部30Aに割り当てるディスパッチャー20と、を具備する。
【選択図】図1
Description
本発明は、DMA(Direct Memory Access)方式によりデータを転送するDMAコントローラに関する。
データを処理するシステムにおいてCPU(Central Processing Unit)の処理負荷を軽減するため、データ転送をDMAコントローラが担うことがある。また、あるシステムにおいて、複数のCPUが単一のDMAコントローラを共有することがある。この場合、一つのCPUがDMAコントローラを専有するので、他のCPUとの競合を調整する必要がある。
特許文献1には、DMAコントローラにセマフォの機能を組み込み、あるCPUがDMAコントローラを専有している期間は、専有中であることを示すフラグを所定のレジスタに書き込み、他のCPUがDMAコントローラを使用することを禁止する技術が開示されている。
また、DMAコントローラに複数のDMAチャネルを設け、各CPUに専用のDMAチャネルを割り当てることがある。この場合、複数のDMAチャネルの各々は、データ転送回路を独立して備えている。
特許文献1には、DMAコントローラにセマフォの機能を組み込み、あるCPUがDMAコントローラを専有している期間は、専有中であることを示すフラグを所定のレジスタに書き込み、他のCPUがDMAコントローラを使用することを禁止する技術が開示されている。
また、DMAコントローラに複数のDMAチャネルを設け、各CPUに専用のDMAチャネルを割り当てることがある。この場合、複数のDMAチャネルの各々は、データ転送回路を独立して備えている。
しかしながら、特許文献1に記載されたセマフォを備えたDMAコントローラでは、手順が複雑で、しかもリソースを確保するまでにCPUが待ち状態になるため、CPUのパフォーマンスが低下するといった問題があった。
また、複数のDMAチャネルを備えたDMAコントローラを用いる場合には、複数のDMAチャネルごとに回路を実装する必要があるので、回路規模が大きくなる。しかも、全てのCPUが常にDMAチャネルを用いてデータ転送を実行していないので、動作率が低下するといった問題があった。
本発明は、上述した事情に鑑みてなされたものであり、回路規模の増大を抑制しつつ、複数のCPUなどの処理装置の間におけるデータ転送に関する競合処理の負荷を低減することを解決課題の一つとする。
また、複数のDMAチャネルを備えたDMAコントローラを用いる場合には、複数のDMAチャネルごとに回路を実装する必要があるので、回路規模が大きくなる。しかも、全てのCPUが常にDMAチャネルを用いてデータ転送を実行していないので、動作率が低下するといった問題があった。
本発明は、上述した事情に鑑みてなされたものであり、回路規模の増大を抑制しつつ、複数のCPUなどの処理装置の間におけるデータ転送に関する競合処理の負荷を低減することを解決課題の一つとする。
以上の課題を解決するために、本発明に係るDMAコントローラは、n個(nは2以上の自然数)の処理装置と1対1に対応付けて設けられ、前記n個の処理装置の各々から送信されるデータ転送に関するDMAコマンドを格納するn個のレジスタと、DMAコマンドに従って、データ転送を実行すると共に、当該DMAコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するデータ転送部と、前記n個のレジスタに格納されるDMAコマンドのうち実行するDMAコマンドを決定して、当該DMAコマンドを前記データ転送部に割り当てるデータ転送割当部と、を具備する。
この発明によれば、複数の処理装置からDMAコントローラを見ると、DMAコマンドを受け付ける専用のレジスタが見える。従って、複数の処理装置は、複雑なセマフォ方式などの排他制御を行う必要がなく、且つ、複数の処理装置はリソースが確保されるまで処理を待つ必要がない。くわえて、複数の処理装置がデータ転送部を共用するので、複数のDMAチャネルを実装する場合と比較して、DMAコントローラの回路規模を抑制でき、且つ、動作率を向上させることができる。
上述したDMAコントローラの一態様において、前記データ転送部は、複数のデータ転送回路を有し、前記データ転送割当部は、1つのDMAコマンドを少なくとも2つの前記データ転送回路に割り当てること好ましい。この態様によれば、1つのDMAコマンドしか受け付けていない状態であっても、少なくとも2つのデータ転送回路に割り当てるので、同時にDMA転送が可能となり、転送速度を向上させることが可能となる。また、DMAコントローラの動作率が向上する。
上述したDMAコントローラの一態様において、前記データ転送部は、前記n個の処理装置のうち完了したデータ転送に対応するDMAコマンドを発行した処理装置に対して前記割込みフラグを送信することが好ましい。これにより、処理装置は、データ転送が完了したことを検知することができる。よって、n個の処理装置で1つのDMAコントローラを兼用しても、ある処理装置からは、当該DMAコントローラを仮想的に専有しているように見える。
また、上述したDMAコントローラの一態様において、前記データ転送部は、前記n個の処理装置に前記割込みフラグを送信することが好ましい。この場合、ある処理装置は、他の処理装置が発行したDMAコマンドの処理が終了したことを、知ることができるので、処理装置の間の動作を同期させることが可能となる。
<第1実施形態>
図1は、本発明の第1実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、n個のCPU1-1〜CPU1-n、DMAコントローラ100、第1メモリ200、第2メモリ300、及びn本の配線L1〜Lnを備える。第1メモリ200は、第2メモリ300と比較してアクセス速度が低速である一方、データ容量が大きい。例えば、第1メモリ200は、画像データを格納したROM(Read Only Memory)であり、第2メモリ300はRAM(Random Access Memory)である。
n個のCPU1-1〜CPU1-nの各々は、DMAコマンドを発行し、DMAコントローラ100に送信する。DMAコマンドは、データ転送に関する各種の指令を示す。例えば、DMAコマンドは、読出アドレスと書込アドレスとの組を含む。また、DMAコマンドは、当該コマンドのデータ転送を優先する程度を示す優先度を含むものであってもよい。
図1は、本発明の第1実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、n個のCPU1-1〜CPU1-n、DMAコントローラ100、第1メモリ200、第2メモリ300、及びn本の配線L1〜Lnを備える。第1メモリ200は、第2メモリ300と比較してアクセス速度が低速である一方、データ容量が大きい。例えば、第1メモリ200は、画像データを格納したROM(Read Only Memory)であり、第2メモリ300はRAM(Random Access Memory)である。
n個のCPU1-1〜CPU1-nの各々は、DMAコマンドを発行し、DMAコントローラ100に送信する。DMAコマンドは、データ転送に関する各種の指令を示す。例えば、DMAコマンドは、読出アドレスと書込アドレスとの組を含む。また、DMAコマンドは、当該コマンドのデータ転送を優先する程度を示す優先度を含むものであってもよい。
DMAコントローラ100は、n個のCPU1-1〜CPU1-nと1対1に対応して設けられ、DMAコマンドを格納するn個のレジスタ10-1〜10-n、ディスパッチャー20、及びDMA転送部30Aを備える。
ディスパッチャー20は、n個のレジスタ10-1〜10-nに格納されるDMAコマンドのうち実行するDMAコマンドを決定して、当該DMAコマンドをDMA転送部30Aに割り当てるデータ転送割当部として機能する。より具体的には、ディスパッチャー20は、n個のレジスタ10-1〜10-nに格納されるDMAコマンドを読み出して、その内部メモリに記憶し、記憶したDMAコマンドを所定の規則に従ってDMA転送部30Aに割り当てる。
DMA転送部30Aは、割り当てられたDMAコマンドに従って、データ転送を実行する。例えば、DMAコマンドの読出アドレスで指定された第1メモリ200の領域からデータを読み込み、書込みアドレスで指定された第2メモリ300の領域に書き込む。そして、当該DMAコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグIRQ1〜IRQnを発行する。本実施形態において、DMA転送部30Aは、配線Lj(jは、1からnまでの任意の自然数)を介して割込みフラグIRQjをCPU1-jに送信する。n個の配線L1〜Lnは、n個の割込みフラグIRQ1〜IRQnと1対1に対応するように設けられている。また、n個の配線L1〜Lnは、n個のCPU1-1〜1-nと1対1に対応するように設けられている。DMA転送部30Aは、n個のCPU1-1〜CPU1-nのうち完了したデータ転送に対応するDMAコマンドを発行したCPU1-jに対して、割込みフラグIRQjを送信する。
上述したようにディスパッチャー20には、DMAコマンドをDMA転送部30Aに割り当てる機能がある。本実施形態では、DMAコントローラ100は、n個のCPU1-1〜1-nが発行するn個のDMAコマンドを格納するn個のレジスタ10-1〜10-nを備える。従って、ディスパッチャー20は、最大、n個のDMAコマンドの中から1個を選択し、これをDMA転送部30Aに割り当てる必要がある。
ディスパッチャー20の動作には、2つの態様がある。第1の態様は、1つのDMAコマンドの処理が完了するまで、次のDMAコマンドをDMA転送部30Aに割り当てない方式である。第2の態様は、所定の単位時間TごとにDMAコマンドをDMA転送部30Aに割り当てる方式である。
まず、第1の態様について具体的に説明する。この例では、図2に示すように、時刻t0においてCPU1-1が優先度「高」のDMAコマンドC11を発行し、時刻t1においてCPU1-3が優先度「低」のDMAコマンドC31を発行し、時刻t2においてCPU1-2が優先度「中」のDMAコマンドC21を発行し、時刻t3においてCPU1-1が優先度「高」のDMAコマンドC12を発行し、時刻t4においてCPU1-2が優先度「中」のDMAコマンドC22を発行し、時刻t5においてCPU1-3が優先度「低」のDMAコマンドC32を発行する。
第1の態様において、ディスパッチャー20は、DMAコマンドを決定するために、FIFO方式、優先度方式、およびラウンドロビン方式のいずれかを採用することができる。FIFO方式は、DMAコマンドが発行された順番でDMAコマンドをDMA転送部30Aに割り当てる。このため、FIFO方式を採用すると、ディスパッチャー20は、同図に示すようにDMAコマンドC11→DMAコマンドC31→DMAコマンドC21→DMAコマンドC12→DMAコマンドC22→DMAコマンドC32の順にDMAコマンドをDMA転送部30Aに割り当てる。
次に、第1の態様の優先度方式において、ディスパッチャー20は、DMAコマンドを選択するタイミングにおいて、優先度の最も高いDMAコマンドを選択し、優先度が同じDMAコマンドが複数ある場合には、先に発行されたDMAコマンドを後に発行されたDMAコマンドよりも優先する。同図に示す例では、DMAコマンドC11が終了した時点では、DMAコマンドC31のみが発行されているので、ディスパッチャー20は、DMAコマンドC11の後にDMAコマンドC31を選択する。DMA転送部30AがDMAコマンドC31に対応する処理を開始した後、時刻t2において優先度「中」のDMAコマンドC21が発行され、時刻t3において優先度「高」のDMAコマンドC12が発行される。従って、DMAコマンドC31の処理が終了した時点では、DMAコマンドC21とDMAコマンドC12とが発行されている。DMAコマンドC12はDMAコマンドC21よりも優先度が高いので、ディスパッチャー20は後に発行されたDMAコマンドC12を先に発行されたDMAコマンドC21よりも優先してDMA転送部30Aに割り当てる。
次に、第1の態様のラウンドロビン方式において、ディスパッチャー20は、予め定められた順番でDMAコマンドを割り当てる。この例では、CPU1-1で発行したDMAコマンド→CPU1-2で発行したDMAコマンド→CPU1-3で発行したDMAコマンド→CPU1-1で発行したDMAコマンド→…の順となる。但し、割り当て実行時に指定されたCPUが発行したDMAコマンドが存在しない場合には、順番を繰り上げてDMAコマンドを実行する。例えば、DMAコマンドC11が終了した時点ではCPU1-2が発行したDMAコマンドが無いので、ディスパッチャー20は順番を繰り上げてCPU1-3が発行したDMAコマンドC31をDMA転送部30Aに割り当てる。
次に、単位時間TごとにDMAコマンドをDMA転送部30Aに割り当てる第2の態様について、図3を参照しつつ具体的に説明する。この例では、時刻t0、t1、t2、t3、t4、及びt5において、各DMAコマンドが発行されるが、この点は、第1の態様と同様である(図2参照)。
第2の態様のFIFO方式において、ディスパッチャー20は、第1の態様のFIFO方式と同様に、DMAコマンドをDMA転送部30Aに割り当てる。これは、単位時間TごとにDMAコマンドを割り当てたとしても、FIFO方式ではDMAコマンドの発行順に処理を実行するからである。
第2の態様のFIFO方式において、ディスパッチャー20は、第1の態様のFIFO方式と同様に、DMAコマンドをDMA転送部30Aに割り当てる。これは、単位時間TごとにDMAコマンドを割り当てたとしても、FIFO方式ではDMAコマンドの発行順に処理を実行するからである。
次に、第2の態様の優先度方式において、ディスパッチャー20は、単位時間Tごとに、優先度の最も高いDMAコマンドを選択し、優先度が同じDMAコマンドが複数ある場合には、先に発行されたDMAコマンドを後に発行されたDMAコマンドよりも優先する。同図に示す例では、時刻t11において単位時間Tが終了するが、その時点で発行されているDMAコマンドはDMAコマンドC11のみである。このため、ディスパッチャー20は、時刻t11から時刻t12までの単位時間TにおいてDMAコマンドC11をDMA転送部30Aに割り当てる。そして、時刻t12から時刻t13までの単位時間Tでは、DMAコマンドC31が選択される。時刻t13において、DMAコマンドC31の処理は終了していない。しかし、時刻t13において、DMAコマンドC31の優先度「低」よりも優先度の高いDMAコマンドC21(優先度「中」)が発行されている。このため、ディスパッチャー20は、時刻t13から時刻t14までの単位時間TにおいてDMAコマンドC21をDMA転送部30Aに割り当てる。このように第2の態様では、単位時間Tごとに、優先度の判定を行う点で、あるDMAコマンドが終了した時点で優先度を判定する第1の態様の優先度方式と相違する。
次に、第2の態様のラウンドロビン方式において、ディスパッチャー20は、単位時間Tごとに予め定められた順番でDMAコマンドを割り当てる。この例では、第1の態様のラウンドロビン方式と同様に、CPU1-1で発行したDMAコマンド→CPU1-2で発行したDMAコマンド→CPU1-3で発行したDMAコマンド→CPU1-1で発行したDMAコマンド→…の順とする。但し、割り当て実行時に指定されたCPUが発行したDMAコマンドが存在しない場合には、順番を繰り上げてDMAコマンドを実行する。
図3に示す例では、時刻t0からDMAコマンドC11の処理が開始され、単位時間Tが経過して時刻t11になると、ディスパッチャー20は時刻t11において発行されているDMAコマンドを確認する。この時点では、DMAコマンドC11のみが発行されているので、ディスパッチャー20は時刻t11以降もDMAコマンドC11の割り当てを継続する。この例では、時刻t12においてDMAコマンドC11の処理が終了する。時刻t12ではDMAコマンドC31のみが発行されているので、ディスパッチャー20はDMAコマンドC31をDMA転送部30Aに割り当てる。そして、時刻t12から単位時間Tが経過して時刻t13に至ると、ディスパッチャー20は時刻t13で発行されているDMAコマンドを確認する。この例では、CPU1-2が発行したDMAコマンドC21が検知される。DMAコマンドC31はCPU1-3が発行したものであるから、本来であれば、予め定められた順番に従って、CPU1-1が発行したDMAコマンドが選択されるべきである。しかしながら、時刻t13では、CPU1-1が発行したDMAコマンドが存在しないので、ディスパッチャー20はDMAコマンドC21をDMA転送部30Aに割り当てる。そして、時刻t13から単位時間Tが経過して時刻t14に至ると、ディスパッチャー20はCPU1-3が発行したDMAコマンドC31をDMA転送部30Aに割り当てる。
本実施形態では、n個のCPU1-1〜1-nが1個のDMAコントローラ100を兼用している。そして、n個のCPU1-1〜1-nの各々が発行するDMAコマンドは、n個のCPU1-1〜1-nと1対1で対応するように設けられたn個のレジスタ10-1〜10-nに格納される。従って、DMAコントローラ100は、仮に、CPU1-1が発行したDMAコマンドC1を実行中であっても、他のCPU1-2〜1-nが発行するDMAコマンドC2〜Cnを受け付ける。そして、j番目のCPU1-jが発行したDMAコマンドCjの処理が終了すると、DMAコントローラ100は割り込みフラグIRQjを発行し、配線Ljを介してCPU1-jに送信する。j番目のCPU1-jから見ると、DMAコントローラ100は、専用の装置として機能している。即ち、n個のCPU1-1〜1-nの各々に対してDMAコントローラが仮想化されている。よって、n個のCPU1-1〜1-nの間でDMAリソースの競合を調整する処理を無くすことができ、各CPU1-1〜1-nの処理負荷を軽減することができる。
また、DMAコントローラ100は、n個のDMAチャネルを備えたDMAコントローラと比較して、個別にDMA転送部を設ける必要がないので、回路規模を小さくすることが可能となる。加えて、DMAチャネルごとにデータ転送の帯域を確保する必要がないので、動作率を高めることができる。
<第2実施形態>
図4は、本発明の第2実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、DMA転送部30Aの替わりにDMA転送部30Bを用いる点、及びディスパッチャー20の動作を除いて、図1に示す第1実施形態の処理システムと同様に構成されている。
図4は、本発明の第2実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、DMA転送部30Aの替わりにDMA転送部30Bを用いる点、及びディスパッチャー20の動作を除いて、図1に示す第1実施形態の処理システムと同様に構成されている。
第2実施形態のDMA転送部30Bは、第1データ転送回路31及び第2データ転送回路32を備える。第1データ転送回路31及び第2データ転送回路32は同時にデータを転送することが可能である。また、第2実施形態のディスパッチャー20は、あるDMAコマンドを分割して、第1データ転送回路31及び第2データ転送回路32に割り当てることができる。一つのDMAコマンドを複数に分割して割り当てるということは、一つのDMAコマンドで指定する転送元のアドレス空間と転送先のアドレス空間を分割して、分割したアドレス空間毎に、対応するDMAコマンドを割り当てることを意味する。例えば、一つのDMAコマンドが領域Aから領域Bへのデータ転送を指定し、読み出しの領域Aは領域A0と領域A1とからなり、書き込みの領域Bは領域B0と領域B1とからなるものとする。この場合、一つのDMAコマンドは、領域A0から領域B0へのデータ転送を指定するDMAコマンドと、領域A1から領域B1へのデータ転送を指定するDMAコマンドとに分割することができる。
ディスパッチャー20は、上述したDMAコマンドの分割を自動的に実行する。
ディスパッチャー20は、上述したDMAコマンドの分割を自動的に実行する。
例えば、図5に示すように時刻taにおいて、優先度「高」のDMAコマンドCxと優先度「中」のDMAコマンドCy、及び優先度「低」のDMAコマンドCzが発行されているものとする。この場合、ディスパッチャー20は、DMAコマンドCxをDMAコマンドCx1とDMAコマンドCx2とに分割し、DMAコマンドCx1を第1データ転送回路31に割り当て、DMAコマンドCx2を第2データ転送回路32に割り当てることができる。DMA転送部30Bは、DMAコマンドCx1及びDMAコマンドCx2の処理が終了した時刻tbにおいて、割り込みフラグを生成して、DMAコマンドCxを発行したCPUへ当該割り込みフラグを送信する。この後、ディスパッチャー20は、DMAコマンドCyを第1データ転送回路31に割り当て、DMAコマンドCzを第2データ転送回路32に割り当てる。
このように、第2実施形態に係るDMAコントローラ100は、一つのDMAコマンドを分割して複数のデータ転送回路に割り当てることができるので、転送速度を高めることができ、且つ、動作率を向上させることが可能となる。
このように、第2実施形態に係るDMAコントローラ100は、一つのDMAコマンドを分割して複数のデータ転送回路に割り当てることができるので、転送速度を高めることができ、且つ、動作率を向上させることが可能となる。
<第3実施形態>
図6は、本発明の第3実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、配線L1〜Lnの替わりに、配線Lx1〜Lxnを用いる点を除いて図1に示す第1実施形態の処理システムと同様に構成されている。
図6は、本発明の第3実施形態に係る処理システムの主要部を示すブロック図である。この処理システムは、配線L1〜Lnの替わりに、配線Lx1〜Lxnを用いる点を除いて図1に示す第1実施形態の処理システムと同様に構成されている。
この処理システムによれば、配線LxjがCPU1-jだけでなくn個のCPU1-1〜1-nに接続されている。従って、n個のCPU1-1〜1-nの間でDMA転送処理の同期をとることができる。例えば、CPU1-2は、CPU1-1に関わるDMA転送が完了した後、所定のDMAコマンドを発行してもよい。この場合、CPU1-2は、配線Lx1を介して供給される割り込みフラグIRQ1を検知して、所定のDMAコマンドを発行する。これにより、CPU1-1の動作とCPU1-2の動作を同期させることが可能となる。
図7は、第3実施形態に係る処理システムの等価回路を示すブロック図である。この図に示されるように、DMAコントローラ100は、等価的にn個の仮想DMAコントローラX1〜Xnを備える。ここで、CPU1-1が優先度「中」のDMAコマンドC1を発行し、CPU1-2が優先度「中」のDMAコマンドC2を発行し、CPU1-nが優先度「高」のDMAコマンドCnを発行したとする。
この場合、CPU1-1には、専用の仮想DMAコントローラX1が割り当てられているので、DMA転送に係るリソースを確保するための手続や、待ち状態が発生しない。なお、CPU1-1は、他のCPU1-2〜1-nに対応する割り込みフラグIRQ2〜IRQnを検出しないように設定してもよい。
また、CPU1-2は、割り込みフラグIRQ2のみならず、割り込みフラグIRQ1を検出するように設定できる。ここで、DMAコマンドC1が完了して割り込みフラグIRQ1をCPU1-2が検出すると、CPU1-2はDMAコマンドC2を発行してもよい。この場合、CPU1-2の動作をCPU1-1の動作に同期させることができる。
また、CPU1-nは優先度「高」でDMAコマンドCnを発行する。CPU1-nには、専用の仮想DMAコントローラXnが割り当てられているので、他のCPU1-1〜1-n-1に実行中のDMA転送を中断する要求を送信する必要がなくなり、プログラミングが容易になる。
<変形例>
以上に例示した形態は多様に変形される。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様は適宜に併合され得る。
以上に例示した形態は多様に変形される。具体的な変形の態様を以下に例示する。以下の例示から任意に選択された2以上の態様は適宜に併合され得る。
(1)前述の各実施形態では、DMAコマンドを発行する装置の一例として、CPUを例示したが、本発明はこれに限定されるものではなく、何らかのデータを処理する処理装置であって、DMAコマンドを発行するものであればよい。
(2)上述した第2実施形態においてDMA転送部30Bは2個のデータ転送回路を備えていたが、本発明はこれに限定されるものではなく、3以上のデータ転送回路を備えるものであればよい。但し、データ転送回路の数は、回路規模を低減する観点から、n−1個以下であることが好ましい。
(3)上述した第2実施形態において第1データ転送回路31及び第2データ転送回路32は、ともに第1メモリ200及び第2メモリ300にアクセス可能としたが、本発明はこれに限定されるものではない。例えば、図8に示すように、図4に示す第1メモリ200を第1メモリ200Aと第1メモリ200Bとに分割し、第2メモリ300を第2メモリ300Aと第2メモリ300Bとに分割してもよい。この場合、第1メモリ200A及び第2メモリ300Aは第1データ転送回路31がDMA転送を担う専用メモリとして機能し、第1メモリ200B及び第2メモリ300Bは第2データ転送回路32がDMA転送を担う専用メモリとして機能する。
(4)上述した第3実施形態において割り込みフラグIRQjは、配線Lxjを介してn個のCPU1-1〜1-nに送信されたが、本発明はこれに限定されるものではなく、所定数のCPUに送信してもよい。要は、あるCPUのDMAコマンドに係るデータ転送処理と同期させたい他のCPUに当該DMAコマンドに対応する割り込みフラグを送信すればよい。
1-1〜1-n……CPU、10-1〜10-n……レジスタ、20……ディスパッチャー、30A,30B……DMA転送部、31……第1データ転送回路、32……第2データ転送回路、100……DMAコントローラ、200,200A,200B……第1メモリ、300,300A,300B……第2メモリ、L1〜Ln, Lx1〜Lxn……配線、IRQ1〜IRQn……割り込みフラグ。
Claims (4)
- n個(nは2以上の自然数)の処理装置と1対1に対応付けて設けられ、前記n個の処理装置の各々から送信されるデータ転送に関するDMAコマンドを格納するn個のレジスタと、
DMAコマンドに従って、データ転送を実行すると共に、当該DMAコマンドに対応するデータ転送が完了すると、データ転送完了を示す割込みフラグを発行するデータ転送部と、
前記n個のレジスタに格納されるDMAコマンドのうち実行するDMAコマンドを決定して、当該DMAコマンドを前記データ転送部に割り当てるデータ転送割当部と、
を具備することを特徴とするDMAコントローラ。 - 前記データ転送部は、複数のデータ転送回路を有し、
前記データ転送割当部は、1つのDMAコマンドを少なくとも2つの前記データ転送回路に割り当てる、
ことを特徴とする請求項1に記載のDMAコントローラ。 - 前記データ転送部は、前記n個の処理装置のうち完了したデータ転送に対応するDMAコマンドを発行した処理装置に対して前記割込みフラグを送信することを特徴とする請求項1又は2に記載のDMAコントローラ。
- 前記データ転送部は、前記n個の処理装置に前記割込みフラグを送信することを特徴とする請求項1又は2に記載のDMAコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015061045A JP2016181126A (ja) | 2015-03-24 | 2015-03-24 | Dmaコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015061045A JP2016181126A (ja) | 2015-03-24 | 2015-03-24 | Dmaコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016181126A true JP2016181126A (ja) | 2016-10-13 |
Family
ID=57132590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015061045A Pending JP2016181126A (ja) | 2015-03-24 | 2015-03-24 | Dmaコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016181126A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733127B2 (en) | 2017-11-17 | 2020-08-04 | Fujitsu Limited | Data transmission apparatus and data transmission method |
-
2015
- 2015-03-24 JP JP2015061045A patent/JP2016181126A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10733127B2 (en) | 2017-11-17 | 2020-08-04 | Fujitsu Limited | Data transmission apparatus and data transmission method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4456490B2 (ja) | Dma装置 | |
JP5498505B2 (ja) | データバースト間の競合の解決 | |
JP6146128B2 (ja) | データ処理装置 | |
US10169256B2 (en) | Arbitrating direct memory access channel requests | |
CN106856663B (zh) | 半导体装置 | |
US9330025B2 (en) | Information processing apparatus, memory control apparatus, and control method thereof | |
JP7436953B2 (ja) | メモリ制御装置、メモリ制御方法及び画像形成装置 | |
JPH0550018B2 (ja) | ||
JP6231899B2 (ja) | 半導体装置、プロセッサシステム、及びその制御方法 | |
US7822952B2 (en) | Context switching device | |
JP2022543151A (ja) | 複数の異なるマスタによって不揮発性メモリに非干渉アクセスするためのメモリコントローラおよび関連するシステムならびに方法 | |
JP6372262B2 (ja) | 印刷装置、およびプログラム | |
JP3999943B2 (ja) | マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法 | |
US20100180056A1 (en) | Bus access control apparatus and method | |
JP6007516B2 (ja) | リソース配分システム、リソース配分方法、及びリソース配分プログラム | |
JP2016181126A (ja) | Dmaコントローラ | |
WO2013022943A2 (en) | Method and apparatus for dynamic channel access and loading in multichannel dma | |
US11467880B2 (en) | Method for accessing shared resources of a computer platform, associated computer program and computer platform | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
JP2006251875A (ja) | バス調停装置及びバス調停方法 | |
JP4335327B2 (ja) | 調停装置および方法 | |
US9977751B1 (en) | Method and apparatus for arbitrating access to shared resources | |
JP6885627B1 (ja) | デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 | |
JP2009205573A (ja) | バッファ制御装置およびバッファ制御方法 | |
JP2013073297A (ja) | 時分割方式による割り込み制御回路および割り込み制御方法 |