JP2004110742A - Dmaコントローラ - Google Patents
Dmaコントローラ Download PDFInfo
- Publication number
- JP2004110742A JP2004110742A JP2002276066A JP2002276066A JP2004110742A JP 2004110742 A JP2004110742 A JP 2004110742A JP 2002276066 A JP2002276066 A JP 2002276066A JP 2002276066 A JP2002276066 A JP 2002276066A JP 2004110742 A JP2004110742 A JP 2004110742A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- channel
- transfer request
- request signal
- dma transfer
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】多チャンネルのDMAコントローラにおいて、チャンネル間のDMA転送要求調停を高精度に制御することにより、効率の良いデータ転送を可能とするDMAコントローラを提供する。
【解決手段】メモリ−メモリ間でデータ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、リードDMA要求信号106とライトDMA要求信号107の2回に分けてDMA転送要求を出力するDMA転送要求信号生成回路101を各チャンネルに対して備え、DMA転送要求信号調停回路103が、各チャンネルのDMA転送要求信号生成回路101から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する。
【選択図】 図1
【解決手段】メモリ−メモリ間でデータ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、リードDMA要求信号106とライトDMA要求信号107の2回に分けてDMA転送要求を出力するDMA転送要求信号生成回路101を各チャンネルに対して備え、DMA転送要求信号調停回路103が、各チャンネルのDMA転送要求信号生成回路101から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、大規模半導体集積回路(以下「LSI」という)において、大容量のデータ転送を行うダイレクトメモリアクセス(DMA)を制御するDMAコントローラに関するものである。
【0002】
【従来の技術】
複数のチャンネルを有するDMAコントローラにおいて、メモリ間DMA転送を行なう際の従来の制御方法を、図9、図10を用いて説明する。本例では3チャンネル分の制御を行なうものとする。図9は、DMAコントローラ内の各チャンネルのDMA転送要求信号を制御してメモリアクセス部にDMA転送要求信号を生成する装置であり、701はDMA転送要求信号生成手段、702はDMA転送回数カウンタ、703はDMA転送要求信号調停手段、704は調停後の要求信号を保持するレジスタ、705はDMA転送要求信号生成手段から生成されたDMA転送要求信号、706はDMA転送要求信号調停手段を通過したDMA転送要求信号、707はカウンタ702のカウンタ値の0検出信号、708はDMA要求信号保持レジスタ704の出力信号、709は各チャンネルのDMA転送要求信号調停手段を通過したDMA転送要求信号を論理和した信号で、メモリアクセス制御回路への最終的なDMA転送要求信号である。710はメモリアクセス制御回路から入力されるDMA転送実行ACK信号である。
【0003】
図10は、図9のDMA転送要求信号生成手段701の要求状態の遷移図を表したもので、801はDMA転送要求なしの状態、802はDMA転送要求状態である。
【0004】
また、DMA転送要求信号調停手段703は、予めチャンネル間の要求優先順位を決めてあり、図9に示した例の場合は、1チャンネルの優先順位が一番高位で、続いて2チャンネル、3チャンネルの順となっている。ここで、1チャンネル、2チャンネル及び、3チャンネルが同時にDMA転送オンされたとすると、各チャンネルのDMA転送要求信号生成手段701は、要求なしの状態801からDMA転送要求状態802へと状態を遷移し、各チャンネルのDMA転送要求信号705が0から1に変化する。
【0005】
DMA転送要求信号調停手段703には、全チャンネルのDMA転送要求信号705が1で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により、1チャンネルの要求信号が選択される。この結果、各チャンネルのDMA転送要求信号調停手段703を通過したDMA転送要求信号705は、1チャンネルのみが1となり、2チャンネル、3チャンネルは0が出力される。本信号はDMA要求信号保持レジスタ704に保持され、各チャンネルの該レジスタ出力信号を論理和した信号709をメモリアクセス部に出力することで、次のDMA転送を要求する。
【0006】
DMA転送回数カウンタ702には、DMA転送実行ACK信号710とDMA要求信号保持レジスタ704の出力信号708が入力され、両信号が共に1であった場合にダウンカウントされる構成となっている。このため、前述の1チャンネルのDMA転送要求に対する転送実行ACK信号710が1になった際に、1チャンネルの転送回数カウンタ702はダウンカウントされる。1チャンネルのDMA転送はこの転送回数カウンタ702が0になるまで続き、カウンタ702が0になるとカウンタ値の0検出信号707が1となり、DMA転送要求信号生成手段701の状態がDMA転送状態から要求なし状態に遷移することで、DMA転送を終了する。
【0007】
1チャンネルのDMA転送が終了したことにより、次に2チャンネルのDMA要求信号が選択され、引き続き2チャンネルのDMA転送を開始する。このようにして3チャンネル分のDMA転送を実行することとなる。
【0008】
また、複数のチャンネル間のデータ転送要求を調停する従来のDMA装置として、例えば、チャネル毎のデータ蓄積用メモリの消費量に基づいて、各チャネルの優先順位を変更することにより、データ転送の効率化を図るものも知られている(特許文献1参照)。
【0009】
【特許文献1】
特開2000−132495号公報
【0010】
【発明が解決しようとする課題】
従来のDMAコントローラでは、リード/ライトをセットとして1回のDMA転送として制御する。このため、あるチャンネルが一旦DMA転送を開始すると、リード/ライトの両方のメモリアクセスが完了しないと、このアクセス中に発生した優先順位が高いチャンネルのDMA要求が受け付けられない、という問題があった。
【0011】
本発明は、このような従来の問題点に鑑みてなされたものであって、多チャンネルのDMAコントローラにおいて、チャンネル間のDMA転送要求調停を高精度に制御することにより、効率の良いデータ転送を可能とするDMAコントローラを提供することを目的とする。
【0012】
【課題を解決するための手段】
上記の目的を達成するために、本発明にかかるDMAコントローラは、データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、メモリからデータを読み出すリードDMA要求と読み出したデータをメモリに格納するライトDMA要求の2回に分けてDMA転送要求を出力するDMA転送要求信号生成手段と、メモリから読み出したデータを一旦保持する記憶手段とを、各チャンネルに対してそれぞれ備えると共に、各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段とを備えたことを特徴とする。
【0013】
【発明の実施の形態】
本発明にかかるDMAコントローラは、DMA転送要求をリードDMA要求とライトDMA要求との2回に分割し、各チャンネル間の転送要求調停を行うことで、あるチャンネルのリードDMAとライトDMAとの間に別の高位チャンネルのDMAを割り込ませることが可能となる。これにより、優先順位の高いチャンネルのDMA転送を、優先順位がそれより低いチャンネルのDMA転送を必要以上に待つことなく割り込ませることができる。この結果、効率の良いデータ転送を可能とするDMAコントローラを提供することができる。
【0014】
本発明にかかるDMAコントローラは、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクし、他のチャンネルに少なくとも1回はDMA転送を実行させる転送要求信号マスク手段を、各チャンネルに対してそれぞれさらに備えた構成であることが好ましい。
【0015】
この構成によれば、転送要求を出している各チャンネルが少なくとも1回はDMA転送するまで次のDMA転送を行なわないことにより、各チャンネルに均等にデータ転送させることが可能となる。
【0016】
なお、前記転送要求信号マスク手段が、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、前記該チャンネルのDMA転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする構成としても良い。
【0017】
この構成によれば、優先順位の高いチャンネルのDMA転送の優先度を確保しつつ、低位チャンネルのDMA転送も実行することができる。
【0018】
また、上記の目的を達成するために、本発明にかかるDMAコントローラは、データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、DMA転送要求を出力するDMA転送要求信号生成手段と、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクすることにより、他のチャンネルに少なくとも1回はDMA転送を実行させる転送要求信号マスク手段とを、各チャンネルに対してそれぞれ備えると共に、各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段とを備えた構成とすることも好ましい。
【0019】
この構成によれば、転送要求を出している各チャンネルが少なくとも1回はDMA転送するまで次のDMA転送を行なわないことにより、各チャンネルに均等にデータ転送させることが可能となる。
【0020】
また、上記の目的を達成するために、本発明にかかるDMAコントローラは、データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、DMA転送要求を出力するDMA転送要求信号生成手段を個々のチャンネルにそれぞれ備えると共に、各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段と、1回のDMA転送に必要なサイクル間、前記転送要求調停手段から出力されるDMA転送要求信号を記憶する手段とを備え、DMA転送要求信号生成を毎サイクル行なう構成とすることも好ましい。
【0021】
この構成によれば、システムクロックのサイクルで各チャンネルのDMA要求信号の調停を行うことができるので、高精度のDMA転送要求調停が可能なDMAコントローラを提供できる。
【0022】
また、前記複数のチャンネルが、メモリ−メモリ間のデータ転送を行うためのチャンネルと、外部I/O−メモリ間のデータ転送を行うためのチャンネルとを含み、前記転送要求調停手段が、各チャンネルのDMA転送要求の中から、外部I/O−メモリ間のDMA転送を優先的に実行する構成とすれば、さらに好ましい。
【0023】
この構成によれば、外部I/O−メモリ間DMAを確実に実行すると共に、システムクロック毎に最新の調停結果を出力することにより、高い優先順位の外部I/O−メモリ間DMAを効率良く実行することが可能となる。
【0024】
以下に、本発明にかかるDMAコントローラの具体的な実施形態について、図面を参照しながら説明する。
【0025】
(第1の実施形態)
本発明の第1の実施形態におけるDMAコントローラについて、図面を参照しながら説明する。
【0026】
図1は、本実施形態のDMAコントローラにおいて、DMA転送要求信号を生成するための構成を示すブロック図である。図1に示すように、本実施形態のDMAコントローラは、各チャンネルのDMA転送要求信号を制御してメモリアクセス制御回路(図示せず)へのDMA転送要求信号を生成するために、DMA転送要求信号生成回路101、DMA転送回数カウンタ102、DMA転送要求信号調停回路103、調停後の要求信号を保持するレジスタ104・105を備えている。
【0027】
DMA転送要求信号生成回路101は、DMA転送要求を、リードDMA転送要求信号106およびライトDMA転送要求信号107の2つの信号に分けて出力する。
【0028】
図1において、108は、DMA転送要求信号調停回路103を通過したリードDMA転送要求信号、109は、DMA転送要求信号調停回路103を通過したライトDMA転送要求信号、110はリードDMA要求信号保持レジスタ104の出力信号、111はライトDMA要求信号保持レジスタ105の出力信号である。113は、各チャンネルのDMA転送要求信号調停回路103を通過したDMA転送要求信号を論理和した信号で、メモリアクセス制御回路(図示せず)への最終的なDMA転送要求信号である。また、114は、カウンタ102のカウンタ値の0検出信号、115はメモリアクセス制御回路から入力されるDMA転送実行ACK信号である。
【0029】
図2は、DMA転送要求信号生成回路101の要求状態の遷移図である。201はDMA転送要求なしの状態、202はリードDMA転送要求状態、203はライトDMA転送要求状態である。
【0030】
DMA転送要求信号調停回路103は、チャンネル間の要求優先順位を予め決めてある。本実施形態では、1チャンネルのリードDMA優先順位が一番高位で、続いて2チャンネル、3チャンネル、の順となっているものとする。ここで、2チャンネル及び3チャンネルのDMA転送が先にオンされ、2チャンネルのDMA転送途中で1チャンネルのDMA転送がオンされたとする。
【0031】
この場合、2チャンネル及び3チャンネルのDMA転送要求信号生成回路101は、要求なしの状態201からリードDMA転送要求状態202へと状態を遷移し、2チャンネル及び3チャンネルのリードDMA転送要求信号106が0から1に変化する。
【0032】
DMA転送要求信号調停回路103には、2チャンネル及び3チャンネルのリードDMA転送要求信号106が1で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により、2チャンネルのリードDMA要求信号が選択される。この結果、DMA転送要求信号調停回路103の出力信号は、2チャンネルのリードDMA要求信号108が1となり、まず2チャンネルのリードDMA転送が実行される。メモリからリードしたデータは、チャンネル毎に設けられた一時保持レジスタ(後述)に保持される。
【0033】
2チャンネルのリードDMA転送を行ったことにより、DMA転送実行ACK信号115が1になると、2チャンネルのDMA転送要求信号生成回路101の状態はリードDMA要求状態202からライトDMA要求状態203へ変化し、リードDMA要求信号106は1から0へ、ライトDMA要求信号107は0から1に変化する。
【0034】
DMA転送回数カウンタ102にはDMA転送実行ACK信号115とライトDMA要求信号保持レジスタ105の出力信号111が入力され、両信号が共に1であった場合にダウンカウントされる構成となっている為、リードDMAが実行された場合にはダウンカウントされない。
【0035】
ここで1チャンネルのDMA転送がオンされたとすると、1チャンネルのDMA転送要求信号生成回路101は要求なしの状態201からリードDMA転送要求状態202へと状態を遷移し、1チャンネルのリードDMA転送要求信号106は0から1に変化する。3チャンネルは自チャンネルのリードDMAがまだ実行されていない為、リードDMA要求信号は1のままである。
【0036】
よってDMA転送要求信号調停回路103には、1チャンネルのリードDMA要求、2チャンネルのライトDMA要求、3チャンネルのリードDMA要求が入力されることになるが、ここでも予め決められた優先順位に基づいたチャンネル間調停により、1チャンネルのリードDMA要求信号が2チャンネルのライトDMA要求より優先されて選択される。
【0037】
この結果、1チャンネルのリードDMAが実行され、続いて同様の調停により1チャンネルのライトDMAが実行されることになる。なお、1チャンネルのライトDMAと2チャンネルのリードDMAとでは、1チャンネルのライトDMAの方が優先順位が高い。1チャンネルのライトDMA転送に対する実行ACK信号115が1になると、1チャンネルの転送回数カウンタ102はダウンカウントされる。1チャンネルのDMA転送は、この転送回数カウンタ102が0になるまで続き、カウンタ102が0になるとカウンタ値の0検出信号114が1となり、1チャンネルのDMA転送要求信号生成回路101の状態がライトDMA転送状態から要求なし状態に遷移することで、DMA転送を終了する。
【0038】
1チャンネルのDMA転送が終了すると、2チャンネルのDMA転送を再開するが、ここでは先にリードDMAを行っている為、ライトDMAから開始することになる。先にメモリから読み出したデータは、チャンネル毎に具備された一時保持レジスタ(図示せず)に格納している為、1チャンネルのDMA転送が割り込んでも破壊されることはない。
【0039】
以上のように、本実施形態によれば、メモリ間DMA転送をリードとライトの2回に分けて制御することにより、優先順位の高いチャンネルの転送がそれよりも低いチャンネルの転送完了を待つことなく開始できる為、高精度なデータ供給が可能となる。
【0040】
ここで、図3を用いて、本実施形態のDMAコントローラの全体構成を説明する。図3に示すように、本実施形態のDMAコントローラ1000は、読み出し側のメモリ1001からリードされたデータを、チャンネル毎に設けられた一時保持レジスタ1003に一旦保持する。なお、図3において、DMA転送要求信号生成部1007は、図1に示した構成に相当し、図3に示した信号110は、図1におけるリードDMA要求信号保持レジスタ104からの出力信号、信号111は、ライトDMA要求信号保持レジスタ105からの出力信号である。また、図3に示す信号113は、DMAコントローラ1000からメモリアクセス制御回路1008への最終的なDMA転送要求信号であり、信号113Aは、各チャンネルの信号110の論理和、信号113Bは、各チャンネルの信号111の論理和であり、DMA転送要求があった場合にリードDMAかライトDMAかを判定するために使用される。セレクタ1004は、ライトDMA転送要求があった場合に、書き込み側のメモリ1002へ書き込む一時保持レジスタ1003の出力を選択する。
【0041】
(第2の実施形態)
次に本発明の第2の実施形態におけるDMAコントローラについて、図面を参照しながら説明する。
【0042】
図4は、本実施形態のDMAコントローラにおいて、DMA転送要求信号を生成するための構成を示すブロック図である。図4に示すように、本実施形態のDMAコントローラは、各チャンネルのDMA転送要求信号を制御してメモリアクセス制御回路(図示せず)へのDMA転送要求信号を生成するために、DMA転送要求信号生成回路301と、転送要求信号マスク回路302と、DMA転送要求信号調停回路303を備えている。
【0043】
図4において、304は転送要求信号マスク回路302から出力される転送要求マスク信号、305はDMA転送要求信号生成回路301から生成されたDMA転送要求信号、306は転送要求マスク信号304に制御されたDMA転送要求信号、307は全チャンネルのDMA転送要求信号生成回路から生成されたDMA転送要求信号、308は2チャンネル及び3チャンネルのDMA転送要求信号生成回路301から生成されたDMA転送要求信号、309は3チャンネルのDMA転送要求信号生成回路301から生成されたDMA転送要求信号、310はメモリアクセス制御回路から入力されるDMA転送実行ACK信号である。
【0044】
図5は、転送要求信号マスク回路302の要求状態の遷移図を表したものである。401は転送要求信号マスクなしの状態、402は転送要求信号マスクの状態である。ここで、1チャンネル、2チャンネル及び、3チャンネルが同時にDMA転送オンされたとすると、各チャンネルのDMA転送要求信号305が0から1に変化する。転送要求信号マスク回路302は、転送開始時は要求信号マスクなし状態にある為、転送要求マスク信号304は1である。
【0045】
これにより、DMA転送要求信号調停回路303に入力されるDMA転送要求信号306は、各チャンネルとも1で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により1チャンネルの要求信号が選択される。本実施形態でも、1チャンネルが一番高位で、続いて2チャンネル、3チャンネル、の順に、優先順位が決められているものとする。この場合、1チャンネルのDMA転送が実行されることとなる。
【0046】
ここで1チャンネルのDMA転送要求に対する転送実行ACK信号310が1になった際、優先順位の低い2チャンネル、3チャンネルのDMA転送要求がある為、1チャンネルの転送要求信号マスク回路302は、要求信号マスクなし状態401から要求信号マスク状態402に遷移することになる。これにより転送要求マスク信号304は0になり、1チャンネルのDMA要求信号305はマスクされる。この結果、DMA転送要求信号調停回路303に入力されるDMA転送要求信号306は、2チャンネル及び3チャンネルが1となる為、次回DMA転送が実行されるのは2チャンネルとなる。以降同様にして2チャンネルのDMA転送要求がマスクされ、続いて3チャンネルのDMA転送が実行されることとなる。
【0047】
こうして各チャンネルのDMA転送が一巡すると、1チャンネル及び2チャンネルの転送要求信号マスク回路302は、最も優先順位の低い3チャンネルのDMA転送が実行されたことにより、要求信号マスク状態402から要求信号マスクなし状態401に遷移し、再度1チャンネルのDMA転送を開始する。
【0048】
従来、優先度の高いチャンネルのDMA転送が終了しないと他のチャンネルのDMA転送ができない為、データ転送のタイミングが遅れ、処理に必要なデータの転送が完了するまでCPU等の処理が待たされるという問題があった。
【0049】
これに対して、本実施形態によれば、チャンネル間の優先順位による特定チャンネルのデータ転送待ちが発生することなく、各チャンネルが均等にデータ転送することが可能となり、高精度なデータ供給が可能となる。
【0050】
(第3の実施形態)
次に本発明の第3の実施形態にかかるDMAコントローラについて、図面を参照しながら説明する。
【0051】
本実施形態のDMAコントローラは、図6に示すように、第2の実施形態にかかるDMAコントローラの構成において、転送要求信号マスク回路302の代わりに、転送回数カウンタ511付きの転送要求信号マスク回路502を備えた構成である。図6において、504は転送要求信号マスク回路502から出力される転送要求マスク信号、512は要求マスク用転送回数カウンタのカウンタ値0検出信号である。
【0052】
図7は、転送要求信号マスク回路502の要求状態の遷移図である。図7において、601は転送要求信号マスクなしの状態、602は転送要求信号マスクの状態である。転送要求信号マスク回路502には、転送要求信号マスク回路502が転送要求信号マスクなしの状態601から転送要求信号マスクの状態602へ遷移するための転送回数カウンタ511が具備されている。転送回数カウンタ511には、一度DMA転送実行権を得た場合、即ち、優先順位が最も高くなりDMA転送要求が受付可能状態になった場合に、何回転送するのかを設定することになる。
【0053】
ここで1チャンネルの転送回数カウンタ511に2が設定され、2チャンネル及び3チャンネルの転送回数カウンタ511に1が設定されているものとし、各チャンネルとも10個のデータを転送する場合の動作を説明する。
【0054】
1チャンネル、2チャンネル、及び3チャンネルが同時にDMA転送オンされたとすると、第2の実施形態の場合と同様に、1チャンネルのDMA転送が行なわれる。1チャンネルのDMA転送要求に対する転送実行ACK信号が1になった際、転送回数カウンタ511のカウント値は、1ダウンカウントすることにより1となるが、カウンタ値0検出信号512は0のままである。転送要求信号マスク回路502は、転送要求信号マスクなしの状態601から転送要求信号マスク状態602に遷移する為には、カウンタ値0検出信号512が1である必要がある。従って、状態の遷移は発生せず、転送要求信号マスクなしの状態を維持することになる。これにより、再度1チャンネルのDMA転送要求信号が1のままDMA転送要求信号調停回路303に入力されることになり、1チャンネルのDMA転送が実行される。
【0055】
2回目のDMA転送要求に対する転送実行ACK信号が1になると、転送回数カウンタ511のカウント値は0になり、カウンタ値0検出信号512は1となる為、転送要求信号マスク回路502は、転送要求信号マスクなしの状態601から転送要求信号マスク状態602に遷移する。この際、1チャンネルの転送回数カウンタ511は初期値2にリロードされるものとする。この結果、1チャンネルのDMA転送要求信号はマスクされ、次回のDMA転送時には2チャンネルが選択されることになる。
【0056】
2チャンネルの転送回数カウンタ511には1が設定されている為、一度2チャンネルのDMA転送が実行されれば、2チャンネルの転送要求信号マスク回路502は、転送要求信号マスクなしの状態601から転送要求信号マスク状態602に遷移することになり、次回のDMA転送時には3チャンネルが実行されることになる。
【0057】
以降、同様にチャンネル間を巡回しながらDMA転送を実行することになるが、1チャンネルは5巡目の転送でDMA転送を終了することになり、1チャンネルのDMA転送が終了した後は、2チャンネルと3チャンネルとの間で巡回してDMA転送を実行することになる。
【0058】
以上のように本実施形態によれば、1回の転送量が調整できる為、各チャンネルの総データ転送量に応じて高精度なデータ供給が可能となる。
【0059】
また、第1の実施形態に第2の実施形態または第3の実施形態を組み合わせることにより、さらに効率の良いDMA転送が可能となる。
【0060】
(第4の実施形態)
次に、本発明の第4の実施形態におけるDMAコントローラについて、図面を参照しながら説明する。
【0061】
図8は、メモリ−メモリ間DMAと、外部I/O−メモリ間DMAとの両方を有する場合のDMA転送要求信号生成回路である。なお、図8および以降の説明では、「メモリ−メモリ間DMA」を「メモリ間DMA」と略記し、「外部I/O−メモリ間DMA」を「外部I/ODMA」と略記する。
【0062】
図8において、901はメモリ間DMA転送要求信号生成回路、902はメモリ間DMA転送回数カウンタ、903はDMA転送要求信号調停回路、904は外部I/ODMA転送要求信号生成回路、905は外部I/ODMA転送回数カウンタ、906−A〜D、907−A〜D、908−A〜Dは、メモリアクセス制御回路(図示せず)から入力されるDMA転送実行ACK信号がどのチャンネルの要求信号であったかを判定するために、ACK信号が帰ってくるまでのサイクル数分だけ、調停後の各チャンネルの要求信号を保持するレジスタである。
【0063】
また、図8において、909はメモリ間DMA転送要求信号生成回路901から生成されたリードDMA転送要求信号、910は同ライト転送要求信号、911は外部I/ODMA転送要求信号生成回路904から生成されたDMA転送要求信号、912はDMA転送要求信号調停回路903を通過したメモリ間DMAリード要求信号、913は同DMAライト要求信号、914はDMA転送要求信号調停回路903を通過した外部I/ODMA転送要求信号、915〜917は各チャンネルのDMA要求信号保持レジスタの1段目の出力信号、918は各チャンネルのDMA要求信号の論理和をした信号、919〜921は各チャンネルのDMA要求信号保持レジスタの最終段の出力信号、922はメモリアクセス制御回路から入力されるDMA転送要求のACK信号である。
【0064】
DMA転送要求信号調停回路903は、チャンネル間の要求優先順位を予め決めてある。ここでは、外部I/ODMAがメモリ間DMAより優先順位が高く、外部I/ODMAの1チャンネル、同2チャンネル、メモリ間DMAの1チャンネル、2チャンネル、3チャンネルの順に、優先順位が決められているものとする。
【0065】
DMA転送要求信号保持レジスタ906−A〜D、907−A〜D、908−A〜Dがメモリアクセス制御回路と同じシステムクロックで動作し、システムクロックのサイクル毎に、DMA転送要求信号調停回路903で調停された最新の調停結果が、DMA要求信号918として出力される。
【0066】
ここで、メモリ間DMAの1チャンネルのみがオンされたとすると、メモリ間DMA転送要求信号生成回路901からのDMA要求信号909が0から1となり、その他のDMA要求信号は0のままである。DMA転送要求信号調停回路903で調停された結果は、メモリ間DMAの要求信号912のみが1となり、各チャンネル毎のDMA要求信号保持レジスタの1段目の出力の論理和が、メモリアクセス制御回路にDMA要求信号918として出力される。
【0067】
メモリ間DMAの要求信号は、DMA転送実行ACK信号が入力されるサイクルまでDMA要求信号保持レジスタでパイプライン的に保持され、ACK信号がどのDMAの要求信号のACK信号であったか判断される。
【0068】
本実施形態では、メモリアクセス制御回路がDMAコントローラからのDMA要求信号918を受け取り、メイン演算部からのアクセス要求との調停を行い、DMA転送実行ACK信号を返すまでに4サイクルを要するものとする。この場合、メモリ間DMAの要求信号を出力してから4サイクル後に、DMA転送実行ACK信号922と4サイクル前の要求信号919により、DMA要求信号生成回路の状態の更新を行う。DMA転送を受け付けた後の3サイクル間は、DMA要求信号生成回路の状態更新にかかるため、メモリアクセス制御回路ではDMA要求信号をマスクして要求を受け付けない制御を行う。また、メイン演算部からのアクセスと競合が生じたときには、メモリアクセス制御回路はメイン演算部からの転送を優先して実行するため、メモリアクセス制御回路からDMA転送実行ACK信号は帰らず、次サイクルのDMA転送要求信号でメイン演算部のアクセスとの調停をやり直す。
【0069】
次に、メモリ間DMAの転送中に外部I/ODMAの要求があった場合について説明する。ここでは、メモリ間DMAの転送要求信号をメモリアクセス制御回路に出力したタイミングで、外部I/Oから転送要求があったものとする。
【0070】
この場合、メモリアクセス制御回路には、メモリ間DMAの要求信号が出力されている。外部I/OからDMA転送要求があると、DMA転送要求信号調停回路903には、メモリ間DMAの要求信号909と外部I/ODMAの要求信号911が1として入力される。DMA転送要求信号調停回路903では、外部I/OのDMA要求信号914が選択され、メモリ間DMAに対するDMA転送実行ACK信号を待たずに、次のシステムクロックのタイミングで外部I/ODMAの要求信号917がDMA要求信号保持レジスタの1段目から出力され、メモリアクセス制御回路にDMA要求信号918として出力される。
【0071】
メモリ間DMAの要求がメモリアクセス制御回路で受け付けられたときは、外部I/ODMAの要求はメモリアクセス制御回路でマスクされる3サイクルに相当するので、メモリ間DMAの実行終了まで待たされる。しかし、メモリ間DMAがメイン演算部からのメモリアクセスと競合してキャンセルされた場合には、次のシステムクロックのサイクルで外部I/ODMAの要求とメイン演算部からのメモリアクセスとの調停を行うことが可能となる。
【0072】
以上のように、本実施形態によれば、システムクロックのサイクルで各チャンネルのDMA要求信号の調停を行うことが出来るため、メモリアクセス制御回路からのDMA転送実施ACK信号を待たずに、高精度のDMA転送要求調停が可能となる。
【0073】
また、従来、メモリ−メモリ間のデータ転送に加え、外部I/O−メモリ間のデータ転送との調停を行う場合、一旦転送を開始したメモリ−メモリ間のデータ転送により、外部I/O−メモリ間のデータ転送が確実に実行できないケースが発生するという問題があった。
【0074】
これに対して、本実施形態では、外部I/ODMAをメモリ間DMAより高い優先順位で実行することにより、メモリ間DMAのデータ転送中に外部I/Oの転送要求があった場合、外部I/ODMAの転送要求をメモリアクセス制御回路に出力することが可能となり、外部I/Oのデータ転送を確実に実行できる。
【0075】
【発明の効果】
以上のように、本発明によれば、優先順位の高いチャンネルのDMA転送を、それよりも低いチャンネルのDMA転送を必要以上に待つことなく割り込ませることが可能となるため、例えばアクセス速度の遅いメモリを対象としたDMA転送において効率良くデータを供給することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態におけるDMAコントローラのブロック図である。
【図2】本発明の第1の実施形態におけるDMAコントローラ内のDMA転送要求信号生成回路の状態遷移図である。
【図3】本発明の第1の実施形態におけるDMAコントローラとメモリとの接続関係を示すブロック図である。
【図4】本発明の第2の実施形態におけるDMAコントローラのブロック図である。
【図5】本発明の第2実施形態におけるDMAコントローラ内のDMA転送要求信号マスク回路の状態遷移図である。
【図6】本発明の第3実施形態におけるDMAコントローラ内のDMA転送要求信号マスク回路のブロック図である。
【図7】本発明の第3実施形態におけるDMAコントローラ内のDMA転送要求信号マスク回路の状態遷移図である。
【図8】本発明の第4実施形態におけるDMAコントローラのブロック図である。
【図9】従来のDMAコントローラのブロック図である。
【図10】従来のDMAコントローラ内のDMA転送要求信号生成回路の状態遷移図である。
【符号の説明】
101、301、701、901 DMA転送要求信号生成回路
102、702、902 DMA転送回数カウンタ
103、703、903 DMA転送要求信号調停回路
104、704、906 調停後のDMA要求信号を保持するレジスタ
302、502 転送要求信号マスク回路
511 転送要求信号マスク用回数カウンタ
1000 DMAコントローラ
1001、1002 メモリ
1003 一時保持レジスタ
1004 セレクタ
1007 DMA転送要求信号生成部
1008 メモリアクセス制御回路
【発明の属する技術分野】
本発明は、大規模半導体集積回路(以下「LSI」という)において、大容量のデータ転送を行うダイレクトメモリアクセス(DMA)を制御するDMAコントローラに関するものである。
【0002】
【従来の技術】
複数のチャンネルを有するDMAコントローラにおいて、メモリ間DMA転送を行なう際の従来の制御方法を、図9、図10を用いて説明する。本例では3チャンネル分の制御を行なうものとする。図9は、DMAコントローラ内の各チャンネルのDMA転送要求信号を制御してメモリアクセス部にDMA転送要求信号を生成する装置であり、701はDMA転送要求信号生成手段、702はDMA転送回数カウンタ、703はDMA転送要求信号調停手段、704は調停後の要求信号を保持するレジスタ、705はDMA転送要求信号生成手段から生成されたDMA転送要求信号、706はDMA転送要求信号調停手段を通過したDMA転送要求信号、707はカウンタ702のカウンタ値の0検出信号、708はDMA要求信号保持レジスタ704の出力信号、709は各チャンネルのDMA転送要求信号調停手段を通過したDMA転送要求信号を論理和した信号で、メモリアクセス制御回路への最終的なDMA転送要求信号である。710はメモリアクセス制御回路から入力されるDMA転送実行ACK信号である。
【0003】
図10は、図9のDMA転送要求信号生成手段701の要求状態の遷移図を表したもので、801はDMA転送要求なしの状態、802はDMA転送要求状態である。
【0004】
また、DMA転送要求信号調停手段703は、予めチャンネル間の要求優先順位を決めてあり、図9に示した例の場合は、1チャンネルの優先順位が一番高位で、続いて2チャンネル、3チャンネルの順となっている。ここで、1チャンネル、2チャンネル及び、3チャンネルが同時にDMA転送オンされたとすると、各チャンネルのDMA転送要求信号生成手段701は、要求なしの状態801からDMA転送要求状態802へと状態を遷移し、各チャンネルのDMA転送要求信号705が0から1に変化する。
【0005】
DMA転送要求信号調停手段703には、全チャンネルのDMA転送要求信号705が1で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により、1チャンネルの要求信号が選択される。この結果、各チャンネルのDMA転送要求信号調停手段703を通過したDMA転送要求信号705は、1チャンネルのみが1となり、2チャンネル、3チャンネルは0が出力される。本信号はDMA要求信号保持レジスタ704に保持され、各チャンネルの該レジスタ出力信号を論理和した信号709をメモリアクセス部に出力することで、次のDMA転送を要求する。
【0006】
DMA転送回数カウンタ702には、DMA転送実行ACK信号710とDMA要求信号保持レジスタ704の出力信号708が入力され、両信号が共に1であった場合にダウンカウントされる構成となっている。このため、前述の1チャンネルのDMA転送要求に対する転送実行ACK信号710が1になった際に、1チャンネルの転送回数カウンタ702はダウンカウントされる。1チャンネルのDMA転送はこの転送回数カウンタ702が0になるまで続き、カウンタ702が0になるとカウンタ値の0検出信号707が1となり、DMA転送要求信号生成手段701の状態がDMA転送状態から要求なし状態に遷移することで、DMA転送を終了する。
【0007】
1チャンネルのDMA転送が終了したことにより、次に2チャンネルのDMA要求信号が選択され、引き続き2チャンネルのDMA転送を開始する。このようにして3チャンネル分のDMA転送を実行することとなる。
【0008】
また、複数のチャンネル間のデータ転送要求を調停する従来のDMA装置として、例えば、チャネル毎のデータ蓄積用メモリの消費量に基づいて、各チャネルの優先順位を変更することにより、データ転送の効率化を図るものも知られている(特許文献1参照)。
【0009】
【特許文献1】
特開2000−132495号公報
【0010】
【発明が解決しようとする課題】
従来のDMAコントローラでは、リード/ライトをセットとして1回のDMA転送として制御する。このため、あるチャンネルが一旦DMA転送を開始すると、リード/ライトの両方のメモリアクセスが完了しないと、このアクセス中に発生した優先順位が高いチャンネルのDMA要求が受け付けられない、という問題があった。
【0011】
本発明は、このような従来の問題点に鑑みてなされたものであって、多チャンネルのDMAコントローラにおいて、チャンネル間のDMA転送要求調停を高精度に制御することにより、効率の良いデータ転送を可能とするDMAコントローラを提供することを目的とする。
【0012】
【課題を解決するための手段】
上記の目的を達成するために、本発明にかかるDMAコントローラは、データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、メモリからデータを読み出すリードDMA要求と読み出したデータをメモリに格納するライトDMA要求の2回に分けてDMA転送要求を出力するDMA転送要求信号生成手段と、メモリから読み出したデータを一旦保持する記憶手段とを、各チャンネルに対してそれぞれ備えると共に、各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段とを備えたことを特徴とする。
【0013】
【発明の実施の形態】
本発明にかかるDMAコントローラは、DMA転送要求をリードDMA要求とライトDMA要求との2回に分割し、各チャンネル間の転送要求調停を行うことで、あるチャンネルのリードDMAとライトDMAとの間に別の高位チャンネルのDMAを割り込ませることが可能となる。これにより、優先順位の高いチャンネルのDMA転送を、優先順位がそれより低いチャンネルのDMA転送を必要以上に待つことなく割り込ませることができる。この結果、効率の良いデータ転送を可能とするDMAコントローラを提供することができる。
【0014】
本発明にかかるDMAコントローラは、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクし、他のチャンネルに少なくとも1回はDMA転送を実行させる転送要求信号マスク手段を、各チャンネルに対してそれぞれさらに備えた構成であることが好ましい。
【0015】
この構成によれば、転送要求を出している各チャンネルが少なくとも1回はDMA転送するまで次のDMA転送を行なわないことにより、各チャンネルに均等にデータ転送させることが可能となる。
【0016】
なお、前記転送要求信号マスク手段が、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、前記該チャンネルのDMA転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする構成としても良い。
【0017】
この構成によれば、優先順位の高いチャンネルのDMA転送の優先度を確保しつつ、低位チャンネルのDMA転送も実行することができる。
【0018】
また、上記の目的を達成するために、本発明にかかるDMAコントローラは、データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、DMA転送要求を出力するDMA転送要求信号生成手段と、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクすることにより、他のチャンネルに少なくとも1回はDMA転送を実行させる転送要求信号マスク手段とを、各チャンネルに対してそれぞれ備えると共に、各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段とを備えた構成とすることも好ましい。
【0019】
この構成によれば、転送要求を出している各チャンネルが少なくとも1回はDMA転送するまで次のDMA転送を行なわないことにより、各チャンネルに均等にデータ転送させることが可能となる。
【0020】
また、上記の目的を達成するために、本発明にかかるDMAコントローラは、データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、DMA転送要求を出力するDMA転送要求信号生成手段を個々のチャンネルにそれぞれ備えると共に、各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段と、1回のDMA転送に必要なサイクル間、前記転送要求調停手段から出力されるDMA転送要求信号を記憶する手段とを備え、DMA転送要求信号生成を毎サイクル行なう構成とすることも好ましい。
【0021】
この構成によれば、システムクロックのサイクルで各チャンネルのDMA要求信号の調停を行うことができるので、高精度のDMA転送要求調停が可能なDMAコントローラを提供できる。
【0022】
また、前記複数のチャンネルが、メモリ−メモリ間のデータ転送を行うためのチャンネルと、外部I/O−メモリ間のデータ転送を行うためのチャンネルとを含み、前記転送要求調停手段が、各チャンネルのDMA転送要求の中から、外部I/O−メモリ間のDMA転送を優先的に実行する構成とすれば、さらに好ましい。
【0023】
この構成によれば、外部I/O−メモリ間DMAを確実に実行すると共に、システムクロック毎に最新の調停結果を出力することにより、高い優先順位の外部I/O−メモリ間DMAを効率良く実行することが可能となる。
【0024】
以下に、本発明にかかるDMAコントローラの具体的な実施形態について、図面を参照しながら説明する。
【0025】
(第1の実施形態)
本発明の第1の実施形態におけるDMAコントローラについて、図面を参照しながら説明する。
【0026】
図1は、本実施形態のDMAコントローラにおいて、DMA転送要求信号を生成するための構成を示すブロック図である。図1に示すように、本実施形態のDMAコントローラは、各チャンネルのDMA転送要求信号を制御してメモリアクセス制御回路(図示せず)へのDMA転送要求信号を生成するために、DMA転送要求信号生成回路101、DMA転送回数カウンタ102、DMA転送要求信号調停回路103、調停後の要求信号を保持するレジスタ104・105を備えている。
【0027】
DMA転送要求信号生成回路101は、DMA転送要求を、リードDMA転送要求信号106およびライトDMA転送要求信号107の2つの信号に分けて出力する。
【0028】
図1において、108は、DMA転送要求信号調停回路103を通過したリードDMA転送要求信号、109は、DMA転送要求信号調停回路103を通過したライトDMA転送要求信号、110はリードDMA要求信号保持レジスタ104の出力信号、111はライトDMA要求信号保持レジスタ105の出力信号である。113は、各チャンネルのDMA転送要求信号調停回路103を通過したDMA転送要求信号を論理和した信号で、メモリアクセス制御回路(図示せず)への最終的なDMA転送要求信号である。また、114は、カウンタ102のカウンタ値の0検出信号、115はメモリアクセス制御回路から入力されるDMA転送実行ACK信号である。
【0029】
図2は、DMA転送要求信号生成回路101の要求状態の遷移図である。201はDMA転送要求なしの状態、202はリードDMA転送要求状態、203はライトDMA転送要求状態である。
【0030】
DMA転送要求信号調停回路103は、チャンネル間の要求優先順位を予め決めてある。本実施形態では、1チャンネルのリードDMA優先順位が一番高位で、続いて2チャンネル、3チャンネル、の順となっているものとする。ここで、2チャンネル及び3チャンネルのDMA転送が先にオンされ、2チャンネルのDMA転送途中で1チャンネルのDMA転送がオンされたとする。
【0031】
この場合、2チャンネル及び3チャンネルのDMA転送要求信号生成回路101は、要求なしの状態201からリードDMA転送要求状態202へと状態を遷移し、2チャンネル及び3チャンネルのリードDMA転送要求信号106が0から1に変化する。
【0032】
DMA転送要求信号調停回路103には、2チャンネル及び3チャンネルのリードDMA転送要求信号106が1で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により、2チャンネルのリードDMA要求信号が選択される。この結果、DMA転送要求信号調停回路103の出力信号は、2チャンネルのリードDMA要求信号108が1となり、まず2チャンネルのリードDMA転送が実行される。メモリからリードしたデータは、チャンネル毎に設けられた一時保持レジスタ(後述)に保持される。
【0033】
2チャンネルのリードDMA転送を行ったことにより、DMA転送実行ACK信号115が1になると、2チャンネルのDMA転送要求信号生成回路101の状態はリードDMA要求状態202からライトDMA要求状態203へ変化し、リードDMA要求信号106は1から0へ、ライトDMA要求信号107は0から1に変化する。
【0034】
DMA転送回数カウンタ102にはDMA転送実行ACK信号115とライトDMA要求信号保持レジスタ105の出力信号111が入力され、両信号が共に1であった場合にダウンカウントされる構成となっている為、リードDMAが実行された場合にはダウンカウントされない。
【0035】
ここで1チャンネルのDMA転送がオンされたとすると、1チャンネルのDMA転送要求信号生成回路101は要求なしの状態201からリードDMA転送要求状態202へと状態を遷移し、1チャンネルのリードDMA転送要求信号106は0から1に変化する。3チャンネルは自チャンネルのリードDMAがまだ実行されていない為、リードDMA要求信号は1のままである。
【0036】
よってDMA転送要求信号調停回路103には、1チャンネルのリードDMA要求、2チャンネルのライトDMA要求、3チャンネルのリードDMA要求が入力されることになるが、ここでも予め決められた優先順位に基づいたチャンネル間調停により、1チャンネルのリードDMA要求信号が2チャンネルのライトDMA要求より優先されて選択される。
【0037】
この結果、1チャンネルのリードDMAが実行され、続いて同様の調停により1チャンネルのライトDMAが実行されることになる。なお、1チャンネルのライトDMAと2チャンネルのリードDMAとでは、1チャンネルのライトDMAの方が優先順位が高い。1チャンネルのライトDMA転送に対する実行ACK信号115が1になると、1チャンネルの転送回数カウンタ102はダウンカウントされる。1チャンネルのDMA転送は、この転送回数カウンタ102が0になるまで続き、カウンタ102が0になるとカウンタ値の0検出信号114が1となり、1チャンネルのDMA転送要求信号生成回路101の状態がライトDMA転送状態から要求なし状態に遷移することで、DMA転送を終了する。
【0038】
1チャンネルのDMA転送が終了すると、2チャンネルのDMA転送を再開するが、ここでは先にリードDMAを行っている為、ライトDMAから開始することになる。先にメモリから読み出したデータは、チャンネル毎に具備された一時保持レジスタ(図示せず)に格納している為、1チャンネルのDMA転送が割り込んでも破壊されることはない。
【0039】
以上のように、本実施形態によれば、メモリ間DMA転送をリードとライトの2回に分けて制御することにより、優先順位の高いチャンネルの転送がそれよりも低いチャンネルの転送完了を待つことなく開始できる為、高精度なデータ供給が可能となる。
【0040】
ここで、図3を用いて、本実施形態のDMAコントローラの全体構成を説明する。図3に示すように、本実施形態のDMAコントローラ1000は、読み出し側のメモリ1001からリードされたデータを、チャンネル毎に設けられた一時保持レジスタ1003に一旦保持する。なお、図3において、DMA転送要求信号生成部1007は、図1に示した構成に相当し、図3に示した信号110は、図1におけるリードDMA要求信号保持レジスタ104からの出力信号、信号111は、ライトDMA要求信号保持レジスタ105からの出力信号である。また、図3に示す信号113は、DMAコントローラ1000からメモリアクセス制御回路1008への最終的なDMA転送要求信号であり、信号113Aは、各チャンネルの信号110の論理和、信号113Bは、各チャンネルの信号111の論理和であり、DMA転送要求があった場合にリードDMAかライトDMAかを判定するために使用される。セレクタ1004は、ライトDMA転送要求があった場合に、書き込み側のメモリ1002へ書き込む一時保持レジスタ1003の出力を選択する。
【0041】
(第2の実施形態)
次に本発明の第2の実施形態におけるDMAコントローラについて、図面を参照しながら説明する。
【0042】
図4は、本実施形態のDMAコントローラにおいて、DMA転送要求信号を生成するための構成を示すブロック図である。図4に示すように、本実施形態のDMAコントローラは、各チャンネルのDMA転送要求信号を制御してメモリアクセス制御回路(図示せず)へのDMA転送要求信号を生成するために、DMA転送要求信号生成回路301と、転送要求信号マスク回路302と、DMA転送要求信号調停回路303を備えている。
【0043】
図4において、304は転送要求信号マスク回路302から出力される転送要求マスク信号、305はDMA転送要求信号生成回路301から生成されたDMA転送要求信号、306は転送要求マスク信号304に制御されたDMA転送要求信号、307は全チャンネルのDMA転送要求信号生成回路から生成されたDMA転送要求信号、308は2チャンネル及び3チャンネルのDMA転送要求信号生成回路301から生成されたDMA転送要求信号、309は3チャンネルのDMA転送要求信号生成回路301から生成されたDMA転送要求信号、310はメモリアクセス制御回路から入力されるDMA転送実行ACK信号である。
【0044】
図5は、転送要求信号マスク回路302の要求状態の遷移図を表したものである。401は転送要求信号マスクなしの状態、402は転送要求信号マスクの状態である。ここで、1チャンネル、2チャンネル及び、3チャンネルが同時にDMA転送オンされたとすると、各チャンネルのDMA転送要求信号305が0から1に変化する。転送要求信号マスク回路302は、転送開始時は要求信号マスクなし状態にある為、転送要求マスク信号304は1である。
【0045】
これにより、DMA転送要求信号調停回路303に入力されるDMA転送要求信号306は、各チャンネルとも1で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により1チャンネルの要求信号が選択される。本実施形態でも、1チャンネルが一番高位で、続いて2チャンネル、3チャンネル、の順に、優先順位が決められているものとする。この場合、1チャンネルのDMA転送が実行されることとなる。
【0046】
ここで1チャンネルのDMA転送要求に対する転送実行ACK信号310が1になった際、優先順位の低い2チャンネル、3チャンネルのDMA転送要求がある為、1チャンネルの転送要求信号マスク回路302は、要求信号マスクなし状態401から要求信号マスク状態402に遷移することになる。これにより転送要求マスク信号304は0になり、1チャンネルのDMA要求信号305はマスクされる。この結果、DMA転送要求信号調停回路303に入力されるDMA転送要求信号306は、2チャンネル及び3チャンネルが1となる為、次回DMA転送が実行されるのは2チャンネルとなる。以降同様にして2チャンネルのDMA転送要求がマスクされ、続いて3チャンネルのDMA転送が実行されることとなる。
【0047】
こうして各チャンネルのDMA転送が一巡すると、1チャンネル及び2チャンネルの転送要求信号マスク回路302は、最も優先順位の低い3チャンネルのDMA転送が実行されたことにより、要求信号マスク状態402から要求信号マスクなし状態401に遷移し、再度1チャンネルのDMA転送を開始する。
【0048】
従来、優先度の高いチャンネルのDMA転送が終了しないと他のチャンネルのDMA転送ができない為、データ転送のタイミングが遅れ、処理に必要なデータの転送が完了するまでCPU等の処理が待たされるという問題があった。
【0049】
これに対して、本実施形態によれば、チャンネル間の優先順位による特定チャンネルのデータ転送待ちが発生することなく、各チャンネルが均等にデータ転送することが可能となり、高精度なデータ供給が可能となる。
【0050】
(第3の実施形態)
次に本発明の第3の実施形態にかかるDMAコントローラについて、図面を参照しながら説明する。
【0051】
本実施形態のDMAコントローラは、図6に示すように、第2の実施形態にかかるDMAコントローラの構成において、転送要求信号マスク回路302の代わりに、転送回数カウンタ511付きの転送要求信号マスク回路502を備えた構成である。図6において、504は転送要求信号マスク回路502から出力される転送要求マスク信号、512は要求マスク用転送回数カウンタのカウンタ値0検出信号である。
【0052】
図7は、転送要求信号マスク回路502の要求状態の遷移図である。図7において、601は転送要求信号マスクなしの状態、602は転送要求信号マスクの状態である。転送要求信号マスク回路502には、転送要求信号マスク回路502が転送要求信号マスクなしの状態601から転送要求信号マスクの状態602へ遷移するための転送回数カウンタ511が具備されている。転送回数カウンタ511には、一度DMA転送実行権を得た場合、即ち、優先順位が最も高くなりDMA転送要求が受付可能状態になった場合に、何回転送するのかを設定することになる。
【0053】
ここで1チャンネルの転送回数カウンタ511に2が設定され、2チャンネル及び3チャンネルの転送回数カウンタ511に1が設定されているものとし、各チャンネルとも10個のデータを転送する場合の動作を説明する。
【0054】
1チャンネル、2チャンネル、及び3チャンネルが同時にDMA転送オンされたとすると、第2の実施形態の場合と同様に、1チャンネルのDMA転送が行なわれる。1チャンネルのDMA転送要求に対する転送実行ACK信号が1になった際、転送回数カウンタ511のカウント値は、1ダウンカウントすることにより1となるが、カウンタ値0検出信号512は0のままである。転送要求信号マスク回路502は、転送要求信号マスクなしの状態601から転送要求信号マスク状態602に遷移する為には、カウンタ値0検出信号512が1である必要がある。従って、状態の遷移は発生せず、転送要求信号マスクなしの状態を維持することになる。これにより、再度1チャンネルのDMA転送要求信号が1のままDMA転送要求信号調停回路303に入力されることになり、1チャンネルのDMA転送が実行される。
【0055】
2回目のDMA転送要求に対する転送実行ACK信号が1になると、転送回数カウンタ511のカウント値は0になり、カウンタ値0検出信号512は1となる為、転送要求信号マスク回路502は、転送要求信号マスクなしの状態601から転送要求信号マスク状態602に遷移する。この際、1チャンネルの転送回数カウンタ511は初期値2にリロードされるものとする。この結果、1チャンネルのDMA転送要求信号はマスクされ、次回のDMA転送時には2チャンネルが選択されることになる。
【0056】
2チャンネルの転送回数カウンタ511には1が設定されている為、一度2チャンネルのDMA転送が実行されれば、2チャンネルの転送要求信号マスク回路502は、転送要求信号マスクなしの状態601から転送要求信号マスク状態602に遷移することになり、次回のDMA転送時には3チャンネルが実行されることになる。
【0057】
以降、同様にチャンネル間を巡回しながらDMA転送を実行することになるが、1チャンネルは5巡目の転送でDMA転送を終了することになり、1チャンネルのDMA転送が終了した後は、2チャンネルと3チャンネルとの間で巡回してDMA転送を実行することになる。
【0058】
以上のように本実施形態によれば、1回の転送量が調整できる為、各チャンネルの総データ転送量に応じて高精度なデータ供給が可能となる。
【0059】
また、第1の実施形態に第2の実施形態または第3の実施形態を組み合わせることにより、さらに効率の良いDMA転送が可能となる。
【0060】
(第4の実施形態)
次に、本発明の第4の実施形態におけるDMAコントローラについて、図面を参照しながら説明する。
【0061】
図8は、メモリ−メモリ間DMAと、外部I/O−メモリ間DMAとの両方を有する場合のDMA転送要求信号生成回路である。なお、図8および以降の説明では、「メモリ−メモリ間DMA」を「メモリ間DMA」と略記し、「外部I/O−メモリ間DMA」を「外部I/ODMA」と略記する。
【0062】
図8において、901はメモリ間DMA転送要求信号生成回路、902はメモリ間DMA転送回数カウンタ、903はDMA転送要求信号調停回路、904は外部I/ODMA転送要求信号生成回路、905は外部I/ODMA転送回数カウンタ、906−A〜D、907−A〜D、908−A〜Dは、メモリアクセス制御回路(図示せず)から入力されるDMA転送実行ACK信号がどのチャンネルの要求信号であったかを判定するために、ACK信号が帰ってくるまでのサイクル数分だけ、調停後の各チャンネルの要求信号を保持するレジスタである。
【0063】
また、図8において、909はメモリ間DMA転送要求信号生成回路901から生成されたリードDMA転送要求信号、910は同ライト転送要求信号、911は外部I/ODMA転送要求信号生成回路904から生成されたDMA転送要求信号、912はDMA転送要求信号調停回路903を通過したメモリ間DMAリード要求信号、913は同DMAライト要求信号、914はDMA転送要求信号調停回路903を通過した外部I/ODMA転送要求信号、915〜917は各チャンネルのDMA要求信号保持レジスタの1段目の出力信号、918は各チャンネルのDMA要求信号の論理和をした信号、919〜921は各チャンネルのDMA要求信号保持レジスタの最終段の出力信号、922はメモリアクセス制御回路から入力されるDMA転送要求のACK信号である。
【0064】
DMA転送要求信号調停回路903は、チャンネル間の要求優先順位を予め決めてある。ここでは、外部I/ODMAがメモリ間DMAより優先順位が高く、外部I/ODMAの1チャンネル、同2チャンネル、メモリ間DMAの1チャンネル、2チャンネル、3チャンネルの順に、優先順位が決められているものとする。
【0065】
DMA転送要求信号保持レジスタ906−A〜D、907−A〜D、908−A〜Dがメモリアクセス制御回路と同じシステムクロックで動作し、システムクロックのサイクル毎に、DMA転送要求信号調停回路903で調停された最新の調停結果が、DMA要求信号918として出力される。
【0066】
ここで、メモリ間DMAの1チャンネルのみがオンされたとすると、メモリ間DMA転送要求信号生成回路901からのDMA要求信号909が0から1となり、その他のDMA要求信号は0のままである。DMA転送要求信号調停回路903で調停された結果は、メモリ間DMAの要求信号912のみが1となり、各チャンネル毎のDMA要求信号保持レジスタの1段目の出力の論理和が、メモリアクセス制御回路にDMA要求信号918として出力される。
【0067】
メモリ間DMAの要求信号は、DMA転送実行ACK信号が入力されるサイクルまでDMA要求信号保持レジスタでパイプライン的に保持され、ACK信号がどのDMAの要求信号のACK信号であったか判断される。
【0068】
本実施形態では、メモリアクセス制御回路がDMAコントローラからのDMA要求信号918を受け取り、メイン演算部からのアクセス要求との調停を行い、DMA転送実行ACK信号を返すまでに4サイクルを要するものとする。この場合、メモリ間DMAの要求信号を出力してから4サイクル後に、DMA転送実行ACK信号922と4サイクル前の要求信号919により、DMA要求信号生成回路の状態の更新を行う。DMA転送を受け付けた後の3サイクル間は、DMA要求信号生成回路の状態更新にかかるため、メモリアクセス制御回路ではDMA要求信号をマスクして要求を受け付けない制御を行う。また、メイン演算部からのアクセスと競合が生じたときには、メモリアクセス制御回路はメイン演算部からの転送を優先して実行するため、メモリアクセス制御回路からDMA転送実行ACK信号は帰らず、次サイクルのDMA転送要求信号でメイン演算部のアクセスとの調停をやり直す。
【0069】
次に、メモリ間DMAの転送中に外部I/ODMAの要求があった場合について説明する。ここでは、メモリ間DMAの転送要求信号をメモリアクセス制御回路に出力したタイミングで、外部I/Oから転送要求があったものとする。
【0070】
この場合、メモリアクセス制御回路には、メモリ間DMAの要求信号が出力されている。外部I/OからDMA転送要求があると、DMA転送要求信号調停回路903には、メモリ間DMAの要求信号909と外部I/ODMAの要求信号911が1として入力される。DMA転送要求信号調停回路903では、外部I/OのDMA要求信号914が選択され、メモリ間DMAに対するDMA転送実行ACK信号を待たずに、次のシステムクロックのタイミングで外部I/ODMAの要求信号917がDMA要求信号保持レジスタの1段目から出力され、メモリアクセス制御回路にDMA要求信号918として出力される。
【0071】
メモリ間DMAの要求がメモリアクセス制御回路で受け付けられたときは、外部I/ODMAの要求はメモリアクセス制御回路でマスクされる3サイクルに相当するので、メモリ間DMAの実行終了まで待たされる。しかし、メモリ間DMAがメイン演算部からのメモリアクセスと競合してキャンセルされた場合には、次のシステムクロックのサイクルで外部I/ODMAの要求とメイン演算部からのメモリアクセスとの調停を行うことが可能となる。
【0072】
以上のように、本実施形態によれば、システムクロックのサイクルで各チャンネルのDMA要求信号の調停を行うことが出来るため、メモリアクセス制御回路からのDMA転送実施ACK信号を待たずに、高精度のDMA転送要求調停が可能となる。
【0073】
また、従来、メモリ−メモリ間のデータ転送に加え、外部I/O−メモリ間のデータ転送との調停を行う場合、一旦転送を開始したメモリ−メモリ間のデータ転送により、外部I/O−メモリ間のデータ転送が確実に実行できないケースが発生するという問題があった。
【0074】
これに対して、本実施形態では、外部I/ODMAをメモリ間DMAより高い優先順位で実行することにより、メモリ間DMAのデータ転送中に外部I/Oの転送要求があった場合、外部I/ODMAの転送要求をメモリアクセス制御回路に出力することが可能となり、外部I/Oのデータ転送を確実に実行できる。
【0075】
【発明の効果】
以上のように、本発明によれば、優先順位の高いチャンネルのDMA転送を、それよりも低いチャンネルのDMA転送を必要以上に待つことなく割り込ませることが可能となるため、例えばアクセス速度の遅いメモリを対象としたDMA転送において効率良くデータを供給することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態におけるDMAコントローラのブロック図である。
【図2】本発明の第1の実施形態におけるDMAコントローラ内のDMA転送要求信号生成回路の状態遷移図である。
【図3】本発明の第1の実施形態におけるDMAコントローラとメモリとの接続関係を示すブロック図である。
【図4】本発明の第2の実施形態におけるDMAコントローラのブロック図である。
【図5】本発明の第2実施形態におけるDMAコントローラ内のDMA転送要求信号マスク回路の状態遷移図である。
【図6】本発明の第3実施形態におけるDMAコントローラ内のDMA転送要求信号マスク回路のブロック図である。
【図7】本発明の第3実施形態におけるDMAコントローラ内のDMA転送要求信号マスク回路の状態遷移図である。
【図8】本発明の第4実施形態におけるDMAコントローラのブロック図である。
【図9】従来のDMAコントローラのブロック図である。
【図10】従来のDMAコントローラ内のDMA転送要求信号生成回路の状態遷移図である。
【符号の説明】
101、301、701、901 DMA転送要求信号生成回路
102、702、902 DMA転送回数カウンタ
103、703、903 DMA転送要求信号調停回路
104、704、906 調停後のDMA要求信号を保持するレジスタ
302、502 転送要求信号マスク回路
511 転送要求信号マスク用回数カウンタ
1000 DMAコントローラ
1001、1002 メモリ
1003 一時保持レジスタ
1004 セレクタ
1007 DMA転送要求信号生成部
1008 メモリアクセス制御回路
Claims (7)
- メモリ−メモリ間でデータ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、
メモリからデータを読み出すリードDMA要求と読み出したデータをメモリに格納するライトDMA要求の2回に分けてDMA転送要求を出力するDMA転送要求信号生成手段と、
メモリから読み出したデータを一旦保持する記憶手段とを、各チャンネルに対してそれぞれ備えると共に、
各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段とを備えたことを特徴とするDMAコントローラ。 - 一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクし、他のチャンネルに少なくとも1回はDMA転送を実行させる転送要求信号マスク手段を、各チャンネルに対してそれぞれさらに備えた、請求項1に記載のDMAコントローラ。
- 前記転送要求信号マスク手段が、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、前記該チャンネルのDMA転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする、請求項2に記載のDMAコントローラ。
- データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、
DMA転送要求を出力するDMA転送要求信号生成手段と、
一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクすることにより、他のチャンネルに少なくとも1回はDMA転送を実行させる転送要求信号マスク手段とを、各チャンネルに対してそれぞれ備えると共に、
各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段とを備えたことを特徴とするDMAコントローラ。 - 前記転送要求信号マスク手段が、一つのチャンネルのDMA転送を実行中に、該チャンネルの優先順位より低いチャンネルのDMA転送要求が存在する場合、前記該チャンネルのDMA転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする、請求項4に記載のDMAコントローラ。
- データ転送を行うための複数のチャンネルを有するDMAコントローラにおいて、
DMA転送要求を出力するDMA転送要求信号生成手段を個々のチャンネルにそれぞれ備えると共に、
各チャンネルのDMA転送要求信号生成手段から出力されたDMA転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するDMA転送要求を決定する転送要求調停手段と、
1回のDMA転送に必要なサイクル間、前記転送要求調停手段から出力されるDMA転送要求信号を記憶する手段とを備え、DMA転送要求信号生成を毎サイクル行なうことを特徴とするDMAコントローラ。 - 前記複数のチャンネルが、メモリ−メモリ間のデータ転送を行うためのチャンネルと、外部I/O−メモリ間のデータ転送を行うためのチャンネルとを含み、
前記転送要求調停手段が、各チャンネルのDMA転送要求の中から、外部I/O−メモリ間のDMA転送を優先的に実行する、請求項6に記載のDMAコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002276066A JP2004110742A (ja) | 2002-09-20 | 2002-09-20 | Dmaコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002276066A JP2004110742A (ja) | 2002-09-20 | 2002-09-20 | Dmaコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110742A true JP2004110742A (ja) | 2004-04-08 |
Family
ID=32272067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002276066A Withdrawn JP2004110742A (ja) | 2002-09-20 | 2002-09-20 | Dmaコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004110742A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006053613A (ja) * | 2004-08-09 | 2006-02-23 | Fuji Xerox Co Ltd | データ転送制御装置及びデータ転送制御方法 |
JP2008192090A (ja) * | 2007-02-07 | 2008-08-21 | Sharp Corp | Dma転送装置およびデータ転送装置 |
-
2002
- 2002-09-20 JP JP2002276066A patent/JP2004110742A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006053613A (ja) * | 2004-08-09 | 2006-02-23 | Fuji Xerox Co Ltd | データ転送制御装置及びデータ転送制御方法 |
JP2008192090A (ja) * | 2007-02-07 | 2008-08-21 | Sharp Corp | Dma転送装置およびデータ転送装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6311234B1 (en) | Direct memory access controller with split channel transfer capability and FIFO buffering | |
EP1645968B1 (en) | Multi-threaded DMA | |
US7581054B2 (en) | Data processing system | |
JP5829890B2 (ja) | 半導体データ処理装置、タイムトリガ通信システム及び通信システム | |
EP3352090A1 (en) | Multi-channel dma system with command queue structure supporting three dma modes | |
JP5102789B2 (ja) | 半導体装置及びデータプロセッサ | |
JP5578713B2 (ja) | 情報処理装置 | |
US6944686B2 (en) | Data transfer control circuit with terminal sharing | |
JP4499008B2 (ja) | Dma転送システム | |
JP2010282405A (ja) | データ処理システム | |
US10261927B2 (en) | DMA controller with trigger sequence generator | |
JP2007058716A (ja) | データ転送バスシステム | |
US7975083B2 (en) | Alignment of instructions and replies across multiple devices in a cascaded system, using buffers of programmable depths | |
USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
WO2008108005A1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled | |
JPH076122A (ja) | データ要求方法とその装置 | |
JP2002163228A (ja) | 多重コアdsp装置のための外部バス裁定技術 | |
JP2004029898A (ja) | データプロセッサ | |
JP2004110742A (ja) | Dmaコントローラ | |
JP2005165508A (ja) | ダイレクトメモリアクセスコントローラ | |
WO2002093392A1 (fr) | Processeur de donnees | |
US20010005870A1 (en) | External bus control system | |
JP2004220309A (ja) | マルチプロセッサシステム | |
JPH10301897A (ja) | アービトレーション方法及びその装置 | |
JP2001297056A (ja) | 調停回路及びdmaコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |