(57)【要約】【課題】多チャンネルのＤＭＡコントローラにおいて、チャンネル間のＤＭＡ転送要求調停を高精度に制御することにより、効率の良いデータ転送を可能とするＤＭＡコントローラを提供する。【解決手段】メモリ−メモリ間でデータ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、リードＤＭＡ要求信号１０６とライトＤＭＡ要求信号１０７の２回に分けてＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成回路１０１を各チャンネルに対して備え、ＤＭＡ転送要求信号調停回路１０３が、各チャンネルのＤＭＡ転送要求信号生成回路１０１から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する。【選択図】　図１
2004110742.tif 000002
【特許請求の範囲】
【請求項１】
メモリ−メモリ間でデータ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、
メモリからデータを読み出すリードＤＭＡ要求と読み出したデータをメモリに格納するライトＤＭＡ要求の２回に分けてＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成手段と、
メモリから読み出したデータを一旦保持する記憶手段とを、各チャンネルに対してそれぞれ備えると共に、
各チャンネルのＤＭＡ転送要求信号生成手段から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する転送要求調停手段とを備えたことを特徴とするＤＭＡコントローラ。
【請求項２】
一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクし、他のチャンネルに少なくとも１回はＤＭＡ転送を実行させる転送要求信号マスク手段を、各チャンネルに対してそれぞれさらに備えた、請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記転送要求信号マスク手段が、一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、前記該チャンネルのＤＭＡ転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする、請求項２に記載のＤＭＡコントローラ。
【請求項４】
データ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、
ＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成手段と、
一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクすることにより、他のチャンネルに少なくとも１回はＤＭＡ転送を実行させる転送要求信号マスク手段とを、各チャンネルに対してそれぞれ備えると共に、
各チャンネルのＤＭＡ転送要求信号生成手段から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する転送要求調停手段とを備えたことを特徴とするＤＭＡコントローラ。
【請求項５】
前記転送要求信号マスク手段が、一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、前記該チャンネルのＤＭＡ転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする、請求項４に記載のＤＭＡコントローラ。
【請求項６】
データ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、
ＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成手段を個々のチャンネルにそれぞれ備えると共に、
各チャンネルのＤＭＡ転送要求信号生成手段から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する転送要求調停手段と、
１回のＤＭＡ転送に必要なサイクル間、前記転送要求調停手段から出力されるＤＭＡ転送要求信号を記憶する手段とを備え、ＤＭＡ転送要求信号生成を毎サイクル行なうことを特徴とするＤＭＡコントローラ。
【請求項７】
前記複数のチャンネルが、メモリ−メモリ間のデータ転送を行うためのチャンネルと、外部Ｉ／Ｏ−メモリ間のデータ転送を行うためのチャンネルとを含み、
前記転送要求調停手段が、各チャンネルのＤＭＡ転送要求の中から、外部Ｉ／Ｏ−メモリ間のＤＭＡ転送を優先的に実行する、請求項６に記載のＤＭＡコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大規模半導体集積回路（以下「ＬＳＩ」という）において、大容量のデータ転送を行うダイレクトメモリアクセス（ＤＭＡ）を制御するＤＭＡコントローラに関するものである。
【０００２】
【従来の技術】
複数のチャンネルを有するＤＭＡコントローラにおいて、メモリ間ＤＭＡ転送を行なう際の従来の制御方法を、図９、図１０を用いて説明する。本例では３チャンネル分の制御を行なうものとする。図９は、ＤＭＡコントローラ内の各チャンネルのＤＭＡ転送要求信号を制御してメモリアクセス部にＤＭＡ転送要求信号を生成する装置であり、７０１はＤＭＡ転送要求信号生成手段、７０２はＤＭＡ転送回数カウンタ、７０３はＤＭＡ転送要求信号調停手段、７０４は調停後の要求信号を保持するレジスタ、７０５はＤＭＡ転送要求信号生成手段から生成されたＤＭＡ転送要求信号、７０６はＤＭＡ転送要求信号調停手段を通過したＤＭＡ転送要求信号、７０７はカウンタ７０２のカウンタ値の０検出信号、７０８はＤＭＡ要求信号保持レジスタ７０４の出力信号、７０９は各チャンネルのＤＭＡ転送要求信号調停手段を通過したＤＭＡ転送要求信号を論理和した信号で、メモリアクセス制御回路への最終的なＤＭＡ転送要求信号である。７１０はメモリアクセス制御回路から入力されるＤＭＡ転送実行ＡＣＫ信号である。
【０００３】
図１０は、図９のＤＭＡ転送要求信号生成手段７０１の要求状態の遷移図を表したもので、８０１はＤＭＡ転送要求なしの状態、８０２はＤＭＡ転送要求状態である。
【０００４】
また、ＤＭＡ転送要求信号調停手段７０３は、予めチャンネル間の要求優先順位を決めてあり、図９に示した例の場合は、１チャンネルの優先順位が一番高位で、続いて２チャンネル、３チャンネルの順となっている。ここで、１チャンネル、２チャンネル及び、３チャンネルが同時にＤＭＡ転送オンされたとすると、各チャンネルのＤＭＡ転送要求信号生成手段７０１は、要求なしの状態８０１からＤＭＡ転送要求状態８０２へと状態を遷移し、各チャンネルのＤＭＡ転送要求信号７０５が０から１に変化する。
【０００５】
ＤＭＡ転送要求信号調停手段７０３には、全チャンネルのＤＭＡ転送要求信号７０５が１で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により、１チャンネルの要求信号が選択される。この結果、各チャンネルのＤＭＡ転送要求信号調停手段７０３を通過したＤＭＡ転送要求信号７０５は、１チャンネルのみが１となり、２チャンネル、３チャンネルは０が出力される。本信号はＤＭＡ要求信号保持レジスタ７０４に保持され、各チャンネルの該レジスタ出力信号を論理和した信号７０９をメモリアクセス部に出力することで、次のＤＭＡ転送を要求する。
【０００６】
ＤＭＡ転送回数カウンタ７０２には、ＤＭＡ転送実行ＡＣＫ信号７１０とＤＭＡ要求信号保持レジスタ７０４の出力信号７０８が入力され、両信号が共に１であった場合にダウンカウントされる構成となっている。このため、前述の１チャンネルのＤＭＡ転送要求に対する転送実行ＡＣＫ信号７１０が１になった際に、１チャンネルの転送回数カウンタ７０２はダウンカウントされる。１チャンネルのＤＭＡ転送はこの転送回数カウンタ７０２が０になるまで続き、カウンタ７０２が０になるとカウンタ値の０検出信号７０７が１となり、ＤＭＡ転送要求信号生成手段７０１の状態がＤＭＡ転送状態から要求なし状態に遷移することで、ＤＭＡ転送を終了する。
【０００７】
１チャンネルのＤＭＡ転送が終了したことにより、次に２チャンネルのＤＭＡ要求信号が選択され、引き続き２チャンネルのＤＭＡ転送を開始する。このようにして３チャンネル分のＤＭＡ転送を実行することとなる。
【０００８】
また、複数のチャンネル間のデータ転送要求を調停する従来のＤＭＡ装置として、例えば、チャネル毎のデータ蓄積用メモリの消費量に基づいて、各チャネルの優先順位を変更することにより、データ転送の効率化を図るものも知られている（特許文献１参照）。
【０００９】
【特許文献１】
特開２０００−１３２４９５号公報
【００１０】
【発明が解決しようとする課題】
従来のＤＭＡコントローラでは、リード／ライトをセットとして１回のＤＭＡ転送として制御する。このため、あるチャンネルが一旦ＤＭＡ転送を開始すると、リード／ライトの両方のメモリアクセスが完了しないと、このアクセス中に発生した優先順位が高いチャンネルのＤＭＡ要求が受け付けられない、という問題があった。
【００１１】
本発明は、このような従来の問題点に鑑みてなされたものであって、多チャンネルのＤＭＡコントローラにおいて、チャンネル間のＤＭＡ転送要求調停を高精度に制御することにより、効率の良いデータ転送を可能とするＤＭＡコントローラを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記の目的を達成するために、本発明にかかるＤＭＡコントローラは、データ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、メモリからデータを読み出すリードＤＭＡ要求と読み出したデータをメモリに格納するライトＤＭＡ要求の２回に分けてＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成手段と、メモリから読み出したデータを一旦保持する記憶手段とを、各チャンネルに対してそれぞれ備えると共に、各チャンネルのＤＭＡ転送要求信号生成手段から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する転送要求調停手段とを備えたことを特徴とする。
【００１３】
【発明の実施の形態】
本発明にかかるＤＭＡコントローラは、ＤＭＡ転送要求をリードＤＭＡ要求とライトＤＭＡ要求との２回に分割し、各チャンネル間の転送要求調停を行うことで、あるチャンネルのリードＤＭＡとライトＤＭＡとの間に別の高位チャンネルのＤＭＡを割り込ませることが可能となる。これにより、優先順位の高いチャンネルのＤＭＡ転送を、優先順位がそれより低いチャンネルのＤＭＡ転送を必要以上に待つことなく割り込ませることができる。この結果、効率の良いデータ転送を可能とするＤＭＡコントローラを提供することができる。
【００１４】
本発明にかかるＤＭＡコントローラは、一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクし、他のチャンネルに少なくとも１回はＤＭＡ転送を実行させる転送要求信号マスク手段を、各チャンネルに対してそれぞれさらに備えた構成であることが好ましい。
【００１５】
この構成によれば、転送要求を出している各チャンネルが少なくとも１回はＤＭＡ転送するまで次のＤＭＡ転送を行なわないことにより、各チャンネルに均等にデータ転送させることが可能となる。
【００１６】
なお、前記転送要求信号マスク手段が、一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、前記該チャンネルのＤＭＡ転送を予め指定した回数行った後、該チャンネルの次回転送要求信号をマスクする構成としても良い。
【００１７】
この構成によれば、優先順位の高いチャンネルのＤＭＡ転送の優先度を確保しつつ、低位チャンネルのＤＭＡ転送も実行することができる。
【００１８】
また、上記の目的を達成するために、本発明にかかるＤＭＡコントローラは、データ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、ＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成手段と、一つのチャンネルのＤＭＡ転送を実行中に、該チャンネルの優先順位より低いチャンネルのＤＭＡ転送要求が存在する場合、該チャンネルの次回転送要求信号をマスクすることにより、他のチャンネルに少なくとも１回はＤＭＡ転送を実行させる転送要求信号マスク手段とを、各チャンネルに対してそれぞれ備えると共に、各チャンネルのＤＭＡ転送要求信号生成手段から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する転送要求調停手段とを備えた構成とすることも好ましい。
【００１９】
この構成によれば、転送要求を出している各チャンネルが少なくとも１回はＤＭＡ転送するまで次のＤＭＡ転送を行なわないことにより、各チャンネルに均等にデータ転送させることが可能となる。
【００２０】
また、上記の目的を達成するために、本発明にかかるＤＭＡコントローラは、データ転送を行うための複数のチャンネルを有するＤＭＡコントローラにおいて、ＤＭＡ転送要求を出力するＤＭＡ転送要求信号生成手段を個々のチャンネルにそれぞれ備えると共に、各チャンネルのＤＭＡ転送要求信号生成手段から出力されたＤＭＡ転送要求の中から、予め決められたチャンネル間の優先順位に基づいて、実行するＤＭＡ転送要求を決定する転送要求調停手段と、１回のＤＭＡ転送に必要なサイクル間、前記転送要求調停手段から出力されるＤＭＡ転送要求信号を記憶する手段とを備え、ＤＭＡ転送要求信号生成を毎サイクル行なう構成とすることも好ましい。
【００２１】
この構成によれば、システムクロックのサイクルで各チャンネルのＤＭＡ要求信号の調停を行うことができるので、高精度のＤＭＡ転送要求調停が可能なＤＭＡコントローラを提供できる。
【００２２】
また、前記複数のチャンネルが、メモリ−メモリ間のデータ転送を行うためのチャンネルと、外部Ｉ／Ｏ−メモリ間のデータ転送を行うためのチャンネルとを含み、前記転送要求調停手段が、各チャンネルのＤＭＡ転送要求の中から、外部Ｉ／Ｏ−メモリ間のＤＭＡ転送を優先的に実行する構成とすれば、さらに好ましい。
【００２３】
この構成によれば、外部Ｉ／Ｏ−メモリ間ＤＭＡを確実に実行すると共に、システムクロック毎に最新の調停結果を出力することにより、高い優先順位の外部Ｉ／Ｏ−メモリ間ＤＭＡを効率良く実行することが可能となる。
【００２４】
以下に、本発明にかかるＤＭＡコントローラの具体的な実施形態について、図面を参照しながら説明する。
【００２５】
（第１の実施形態）
本発明の第１の実施形態におけるＤＭＡコントローラについて、図面を参照しながら説明する。
【００２６】
図１は、本実施形態のＤＭＡコントローラにおいて、ＤＭＡ転送要求信号を生成するための構成を示すブロック図である。図１に示すように、本実施形態のＤＭＡコントローラは、各チャンネルのＤＭＡ転送要求信号を制御してメモリアクセス制御回路（図示せず）へのＤＭＡ転送要求信号を生成するために、ＤＭＡ転送要求信号生成回路１０１、ＤＭＡ転送回数カウンタ１０２、ＤＭＡ転送要求信号調停回路１０３、調停後の要求信号を保持するレジスタ１０４・１０５を備えている。
【００２７】
ＤＭＡ転送要求信号生成回路１０１は、ＤＭＡ転送要求を、リードＤＭＡ転送要求信号１０６およびライトＤＭＡ転送要求信号１０７の２つの信号に分けて出力する。
【００２８】
図１において、１０８は、ＤＭＡ転送要求信号調停回路１０３を通過したリードＤＭＡ転送要求信号、１０９は、ＤＭＡ転送要求信号調停回路１０３を通過したライトＤＭＡ転送要求信号、１１０はリードＤＭＡ要求信号保持レジスタ１０４の出力信号、１１１はライトＤＭＡ要求信号保持レジスタ１０５の出力信号である。１１３は、各チャンネルのＤＭＡ転送要求信号調停回路１０３を通過したＤＭＡ転送要求信号を論理和した信号で、メモリアクセス制御回路（図示せず）への最終的なＤＭＡ転送要求信号である。また、１１４は、カウンタ１０２のカウンタ値の０検出信号、１１５はメモリアクセス制御回路から入力されるＤＭＡ転送実行ＡＣＫ信号である。
【００２９】
図２は、ＤＭＡ転送要求信号生成回路１０１の要求状態の遷移図である。２０１はＤＭＡ転送要求なしの状態、２０２はリードＤＭＡ転送要求状態、２０３はライトＤＭＡ転送要求状態である。
【００３０】
ＤＭＡ転送要求信号調停回路１０３は、チャンネル間の要求優先順位を予め決めてある。本実施形態では、１チャンネルのリードＤＭＡ優先順位が一番高位で、続いて２チャンネル、３チャンネル、の順となっているものとする。ここで、２チャンネル及び３チャンネルのＤＭＡ転送が先にオンされ、２チャンネルのＤＭＡ転送途中で１チャンネルのＤＭＡ転送がオンされたとする。
【００３１】
この場合、２チャンネル及び３チャンネルのＤＭＡ転送要求信号生成回路１０１は、要求なしの状態２０１からリードＤＭＡ転送要求状態２０２へと状態を遷移し、２チャンネル及び３チャンネルのリードＤＭＡ転送要求信号１０６が０から１に変化する。
【００３２】
ＤＭＡ転送要求信号調停回路１０３には、２チャンネル及び３チャンネルのリードＤＭＡ転送要求信号１０６が１で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により、２チャンネルのリードＤＭＡ要求信号が選択される。この結果、ＤＭＡ転送要求信号調停回路１０３の出力信号は、２チャンネルのリードＤＭＡ要求信号１０８が１となり、まず２チャンネルのリードＤＭＡ転送が実行される。メモリからリードしたデータは、チャンネル毎に設けられた一時保持レジスタ（後述）に保持される。
【００３３】
２チャンネルのリードＤＭＡ転送を行ったことにより、ＤＭＡ転送実行ＡＣＫ信号１１５が１になると、２チャンネルのＤＭＡ転送要求信号生成回路１０１の状態はリードＤＭＡ要求状態２０２からライトＤＭＡ要求状態２０３へ変化し、リードＤＭＡ要求信号１０６は１から０へ、ライトＤＭＡ要求信号１０７は０から１に変化する。
【００３４】
ＤＭＡ転送回数カウンタ１０２にはＤＭＡ転送実行ＡＣＫ信号１１５とライトＤＭＡ要求信号保持レジスタ１０５の出力信号１１１が入力され、両信号が共に１であった場合にダウンカウントされる構成となっている為、リードＤＭＡが実行された場合にはダウンカウントされない。
【００３５】
ここで１チャンネルのＤＭＡ転送がオンされたとすると、１チャンネルのＤＭＡ転送要求信号生成回路１０１は要求なしの状態２０１からリードＤＭＡ転送要求状態２０２へと状態を遷移し、１チャンネルのリードＤＭＡ転送要求信号１０６は０から１に変化する。３チャンネルは自チャンネルのリードＤＭＡがまだ実行されていない為、リードＤＭＡ要求信号は１のままである。
【００３６】
よってＤＭＡ転送要求信号調停回路１０３には、１チャンネルのリードＤＭＡ要求、２チャンネルのライトＤＭＡ要求、３チャンネルのリードＤＭＡ要求が入力されることになるが、ここでも予め決められた優先順位に基づいたチャンネル間調停により、１チャンネルのリードＤＭＡ要求信号が２チャンネルのライトＤＭＡ要求より優先されて選択される。
【００３７】
この結果、１チャンネルのリードＤＭＡが実行され、続いて同様の調停により１チャンネルのライトＤＭＡが実行されることになる。なお、１チャンネルのライトＤＭＡと２チャンネルのリードＤＭＡとでは、１チャンネルのライトＤＭＡの方が優先順位が高い。１チャンネルのライトＤＭＡ転送に対する実行ＡＣＫ信号１１５が１になると、１チャンネルの転送回数カウンタ１０２はダウンカウントされる。１チャンネルのＤＭＡ転送は、この転送回数カウンタ１０２が０になるまで続き、カウンタ１０２が０になるとカウンタ値の０検出信号１１４が１となり、１チャンネルのＤＭＡ転送要求信号生成回路１０１の状態がライトＤＭＡ転送状態から要求なし状態に遷移することで、ＤＭＡ転送を終了する。
【００３８】
１チャンネルのＤＭＡ転送が終了すると、２チャンネルのＤＭＡ転送を再開するが、ここでは先にリードＤＭＡを行っている為、ライトＤＭＡから開始することになる。先にメモリから読み出したデータは、チャンネル毎に具備された一時保持レジスタ（図示せず）に格納している為、１チャンネルのＤＭＡ転送が割り込んでも破壊されることはない。
【００３９】
以上のように、本実施形態によれば、メモリ間ＤＭＡ転送をリードとライトの２回に分けて制御することにより、優先順位の高いチャンネルの転送がそれよりも低いチャンネルの転送完了を待つことなく開始できる為、高精度なデータ供給が可能となる。
【００４０】
ここで、図３を用いて、本実施形態のＤＭＡコントローラの全体構成を説明する。図３に示すように、本実施形態のＤＭＡコントローラ１０００は、読み出し側のメモリ１００１からリードされたデータを、チャンネル毎に設けられた一時保持レジスタ１００３に一旦保持する。なお、図３において、ＤＭＡ転送要求信号生成部１００７は、図１に示した構成に相当し、図３に示した信号１１０は、図１におけるリードＤＭＡ要求信号保持レジスタ１０４からの出力信号、信号１１１は、ライトＤＭＡ要求信号保持レジスタ１０５からの出力信号である。また、図３に示す信号１１３は、ＤＭＡコントローラ１０００からメモリアクセス制御回路１００８への最終的なＤＭＡ転送要求信号であり、信号１１３Ａは、各チャンネルの信号１１０の論理和、信号１１３Ｂは、各チャンネルの信号１１１の論理和であり、ＤＭＡ転送要求があった場合にリードＤＭＡかライトＤＭＡかを判定するために使用される。セレクタ１００４は、ライトＤＭＡ転送要求があった場合に、書き込み側のメモリ１００２へ書き込む一時保持レジスタ１００３の出力を選択する。
【００４１】
（第２の実施形態）
次に本発明の第２の実施形態におけるＤＭＡコントローラについて、図面を参照しながら説明する。
【００４２】
図４は、本実施形態のＤＭＡコントローラにおいて、ＤＭＡ転送要求信号を生成するための構成を示すブロック図である。図４に示すように、本実施形態のＤＭＡコントローラは、各チャンネルのＤＭＡ転送要求信号を制御してメモリアクセス制御回路（図示せず）へのＤＭＡ転送要求信号を生成するために、ＤＭＡ転送要求信号生成回路３０１と、転送要求信号マスク回路３０２と、ＤＭＡ転送要求信号調停回路３０３を備えている。
【００４３】
図４において、３０４は転送要求信号マスク回路３０２から出力される転送要求マスク信号、３０５はＤＭＡ転送要求信号生成回路３０１から生成されたＤＭＡ転送要求信号、３０６は転送要求マスク信号３０４に制御されたＤＭＡ転送要求信号、３０７は全チャンネルのＤＭＡ転送要求信号生成回路から生成されたＤＭＡ転送要求信号、３０８は２チャンネル及び３チャンネルのＤＭＡ転送要求信号生成回路３０１から生成されたＤＭＡ転送要求信号、３０９は３チャンネルのＤＭＡ転送要求信号生成回路３０１から生成されたＤＭＡ転送要求信号、３１０はメモリアクセス制御回路から入力されるＤＭＡ転送実行ＡＣＫ信号である。
【００４４】
図５は、転送要求信号マスク回路３０２の要求状態の遷移図を表したものである。４０１は転送要求信号マスクなしの状態、４０２は転送要求信号マスクの状態である。ここで、１チャンネル、２チャンネル及び、３チャンネルが同時にＤＭＡ転送オンされたとすると、各チャンネルのＤＭＡ転送要求信号３０５が０から１に変化する。転送要求信号マスク回路３０２は、転送開始時は要求信号マスクなし状態にある為、転送要求マスク信号３０４は１である。
【００４５】
これにより、ＤＭＡ転送要求信号調停回路３０３に入力されるＤＭＡ転送要求信号３０６は、各チャンネルとも１で入力されるが、予め決められた優先順位に基づいたチャンネル間調停により１チャンネルの要求信号が選択される。本実施形態でも、１チャンネルが一番高位で、続いて２チャンネル、３チャンネル、の順に、優先順位が決められているものとする。この場合、１チャンネルのＤＭＡ転送が実行されることとなる。
【００４６】
ここで１チャンネルのＤＭＡ転送要求に対する転送実行ＡＣＫ信号３１０が１になった際、優先順位の低い２チャンネル、３チャンネルのＤＭＡ転送要求がある為、１チャンネルの転送要求信号マスク回路３０２は、要求信号マスクなし状態４０１から要求信号マスク状態４０２に遷移することになる。これにより転送要求マスク信号３０４は０になり、１チャンネルのＤＭＡ要求信号３０５はマスクされる。この結果、ＤＭＡ転送要求信号調停回路３０３に入力されるＤＭＡ転送要求信号３０６は、２チャンネル及び３チャンネルが１となる為、次回ＤＭＡ転送が実行されるのは２チャンネルとなる。以降同様にして２チャンネルのＤＭＡ転送要求がマスクされ、続いて３チャンネルのＤＭＡ転送が実行されることとなる。
【００４７】
こうして各チャンネルのＤＭＡ転送が一巡すると、１チャンネル及び２チャンネルの転送要求信号マスク回路３０２は、最も優先順位の低い３チャンネルのＤＭＡ転送が実行されたことにより、要求信号マスク状態４０２から要求信号マスクなし状態４０１に遷移し、再度１チャンネルのＤＭＡ転送を開始する。
【００４８】
従来、優先度の高いチャンネルのＤＭＡ転送が終了しないと他のチャンネルのＤＭＡ転送ができない為、データ転送のタイミングが遅れ、処理に必要なデータの転送が完了するまでＣＰＵ等の処理が待たされるという問題があった。
【００４９】
これに対して、本実施形態によれば、チャンネル間の優先順位による特定チャンネルのデータ転送待ちが発生することなく、各チャンネルが均等にデータ転送することが可能となり、高精度なデータ供給が可能となる。
【００５０】
（第３の実施形態）
次に本発明の第３の実施形態にかかるＤＭＡコントローラについて、図面を参照しながら説明する。
【００５１】
本実施形態のＤＭＡコントローラは、図６に示すように、第２の実施形態にかかるＤＭＡコントローラの構成において、転送要求信号マスク回路３０２の代わりに、転送回数カウンタ５１１付きの転送要求信号マスク回路５０２を備えた構成である。図６において、５０４は転送要求信号マスク回路５０２から出力される転送要求マスク信号、５１２は要求マスク用転送回数カウンタのカウンタ値０検出信号である。
【００５２】
図７は、転送要求信号マスク回路５０２の要求状態の遷移図である。図７において、６０１は転送要求信号マスクなしの状態、６０２は転送要求信号マスクの状態である。転送要求信号マスク回路５０２には、転送要求信号マスク回路５０２が転送要求信号マスクなしの状態６０１から転送要求信号マスクの状態６０２へ遷移するための転送回数カウンタ５１１が具備されている。転送回数カウンタ５１１には、一度ＤＭＡ転送実行権を得た場合、即ち、優先順位が最も高くなりＤＭＡ転送要求が受付可能状態になった場合に、何回転送するのかを設定することになる。
【００５３】
ここで１チャンネルの転送回数カウンタ５１１に２が設定され、２チャンネル及び３チャンネルの転送回数カウンタ５１１に１が設定されているものとし、各チャンネルとも１０個のデータを転送する場合の動作を説明する。
【００５４】
１チャンネル、２チャンネル、及び３チャンネルが同時にＤＭＡ転送オンされたとすると、第２の実施形態の場合と同様に、１チャンネルのＤＭＡ転送が行なわれる。１チャンネルのＤＭＡ転送要求に対する転送実行ＡＣＫ信号が１になった際、転送回数カウンタ５１１のカウント値は、１ダウンカウントすることにより１となるが、カウンタ値０検出信号５１２は０のままである。転送要求信号マスク回路５０２は、転送要求信号マスクなしの状態６０１から転送要求信号マスク状態６０２に遷移する為には、カウンタ値０検出信号５１２が１である必要がある。従って、状態の遷移は発生せず、転送要求信号マスクなしの状態を維持することになる。これにより、再度１チャンネルのＤＭＡ転送要求信号が１のままＤＭＡ転送要求信号調停回路３０３に入力されることになり、１チャンネルのＤＭＡ転送が実行される。
【００５５】
２回目のＤＭＡ転送要求に対する転送実行ＡＣＫ信号が１になると、転送回数カウンタ５１１のカウント値は０になり、カウンタ値０検出信号５１２は１となる為、転送要求信号マスク回路５０２は、転送要求信号マスクなしの状態６０１から転送要求信号マスク状態６０２に遷移する。この際、１チャンネルの転送回数カウンタ５１１は初期値２にリロードされるものとする。この結果、１チャンネルのＤＭＡ転送要求信号はマスクされ、次回のＤＭＡ転送時には２チャンネルが選択されることになる。
【００５６】
２チャンネルの転送回数カウンタ５１１には１が設定されている為、一度２チャンネルのＤＭＡ転送が実行されれば、２チャンネルの転送要求信号マスク回路５０２は、転送要求信号マスクなしの状態６０１から転送要求信号マスク状態６０２に遷移することになり、次回のＤＭＡ転送時には３チャンネルが実行されることになる。
【００５７】
以降、同様にチャンネル間を巡回しながらＤＭＡ転送を実行することになるが、１チャンネルは５巡目の転送でＤＭＡ転送を終了することになり、１チャンネルのＤＭＡ転送が終了した後は、２チャンネルと３チャンネルとの間で巡回してＤＭＡ転送を実行することになる。
【００５８】
以上のように本実施形態によれば、１回の転送量が調整できる為、各チャンネルの総データ転送量に応じて高精度なデータ供給が可能となる。
【００５９】
また、第１の実施形態に第２の実施形態または第３の実施形態を組み合わせることにより、さらに効率の良いＤＭＡ転送が可能となる。
【００６０】
（第４の実施形態）
次に、本発明の第４の実施形態におけるＤＭＡコントローラについて、図面を参照しながら説明する。
【００６１】
図８は、メモリ−メモリ間ＤＭＡと、外部Ｉ／Ｏ−メモリ間ＤＭＡとの両方を有する場合のＤＭＡ転送要求信号生成回路である。なお、図８および以降の説明では、「メモリ−メモリ間ＤＭＡ」を「メモリ間ＤＭＡ」と略記し、「外部Ｉ／Ｏ−メモリ間ＤＭＡ」を「外部Ｉ／ＯＤＭＡ」と略記する。
【００６２】
図８において、９０１はメモリ間ＤＭＡ転送要求信号生成回路、９０２はメモリ間ＤＭＡ転送回数カウンタ、９０３はＤＭＡ転送要求信号調停回路、９０４は外部Ｉ／ＯＤＭＡ転送要求信号生成回路、９０５は外部Ｉ／ＯＤＭＡ転送回数カウンタ、９０６−Ａ〜Ｄ、９０７−Ａ〜Ｄ、９０８−Ａ〜Ｄは、メモリアクセス制御回路（図示せず）から入力されるＤＭＡ転送実行ＡＣＫ信号がどのチャンネルの要求信号であったかを判定するために、ＡＣＫ信号が帰ってくるまでのサイクル数分だけ、調停後の各チャンネルの要求信号を保持するレジスタである。
【００６３】
また、図８において、９０９はメモリ間ＤＭＡ転送要求信号生成回路９０１から生成されたリードＤＭＡ転送要求信号、９１０は同ライト転送要求信号、９１１は外部Ｉ／ＯＤＭＡ転送要求信号生成回路９０４から生成されたＤＭＡ転送要求信号、９１２はＤＭＡ転送要求信号調停回路９０３を通過したメモリ間ＤＭＡリード要求信号、９１３は同ＤＭＡライト要求信号、９１４はＤＭＡ転送要求信号調停回路９０３を通過した外部Ｉ／ＯＤＭＡ転送要求信号、９１５〜９１７は各チャンネルのＤＭＡ要求信号保持レジスタの１段目の出力信号、９１８は各チャンネルのＤＭＡ要求信号の論理和をした信号、９１９〜９２１は各チャンネルのＤＭＡ要求信号保持レジスタの最終段の出力信号、９２２はメモリアクセス制御回路から入力されるＤＭＡ転送要求のＡＣＫ信号である。
【００６４】
ＤＭＡ転送要求信号調停回路９０３は、チャンネル間の要求優先順位を予め決めてある。ここでは、外部Ｉ／ＯＤＭＡがメモリ間ＤＭＡより優先順位が高く、外部Ｉ／ＯＤＭＡの１チャンネル、同２チャンネル、メモリ間ＤＭＡの１チャンネル、２チャンネル、３チャンネルの順に、優先順位が決められているものとする。
【００６５】
ＤＭＡ転送要求信号保持レジスタ９０６−Ａ〜Ｄ、９０７−Ａ〜Ｄ、９０８−Ａ〜Ｄがメモリアクセス制御回路と同じシステムクロックで動作し、システムクロックのサイクル毎に、ＤＭＡ転送要求信号調停回路９０３で調停された最新の調停結果が、ＤＭＡ要求信号９１８として出力される。
【００６６】
ここで、メモリ間ＤＭＡの１チャンネルのみがオンされたとすると、メモリ間ＤＭＡ転送要求信号生成回路９０１からのＤＭＡ要求信号９０９が０から１となり、その他のＤＭＡ要求信号は０のままである。ＤＭＡ転送要求信号調停回路９０３で調停された結果は、メモリ間ＤＭＡの要求信号９１２のみが１となり、各チャンネル毎のＤＭＡ要求信号保持レジスタの１段目の出力の論理和が、メモリアクセス制御回路にＤＭＡ要求信号９１８として出力される。
【００６７】
メモリ間ＤＭＡの要求信号は、ＤＭＡ転送実行ＡＣＫ信号が入力されるサイクルまでＤＭＡ要求信号保持レジスタでパイプライン的に保持され、ＡＣＫ信号がどのＤＭＡの要求信号のＡＣＫ信号であったか判断される。
【００６８】
本実施形態では、メモリアクセス制御回路がＤＭＡコントローラからのＤＭＡ要求信号９１８を受け取り、メイン演算部からのアクセス要求との調停を行い、ＤＭＡ転送実行ＡＣＫ信号を返すまでに４サイクルを要するものとする。この場合、メモリ間ＤＭＡの要求信号を出力してから４サイクル後に、ＤＭＡ転送実行ＡＣＫ信号９２２と４サイクル前の要求信号９１９により、ＤＭＡ要求信号生成回路の状態の更新を行う。ＤＭＡ転送を受け付けた後の３サイクル間は、ＤＭＡ要求信号生成回路の状態更新にかかるため、メモリアクセス制御回路ではＤＭＡ要求信号をマスクして要求を受け付けない制御を行う。また、メイン演算部からのアクセスと競合が生じたときには、メモリアクセス制御回路はメイン演算部からの転送を優先して実行するため、メモリアクセス制御回路からＤＭＡ転送実行ＡＣＫ信号は帰らず、次サイクルのＤＭＡ転送要求信号でメイン演算部のアクセスとの調停をやり直す。
【００６９】
次に、メモリ間ＤＭＡの転送中に外部Ｉ／ＯＤＭＡの要求があった場合について説明する。ここでは、メモリ間ＤＭＡの転送要求信号をメモリアクセス制御回路に出力したタイミングで、外部Ｉ／Ｏから転送要求があったものとする。
【００７０】
この場合、メモリアクセス制御回路には、メモリ間ＤＭＡの要求信号が出力されている。外部Ｉ／ＯからＤＭＡ転送要求があると、ＤＭＡ転送要求信号調停回路９０３には、メモリ間ＤＭＡの要求信号９０９と外部Ｉ／ＯＤＭＡの要求信号９１１が１として入力される。ＤＭＡ転送要求信号調停回路９０３では、外部Ｉ／ＯのＤＭＡ要求信号９１４が選択され、メモリ間ＤＭＡに対するＤＭＡ転送実行ＡＣＫ信号を待たずに、次のシステムクロックのタイミングで外部Ｉ／ＯＤＭＡの要求信号９１７がＤＭＡ要求信号保持レジスタの１段目から出力され、メモリアクセス制御回路にＤＭＡ要求信号９１８として出力される。
【００７１】
メモリ間ＤＭＡの要求がメモリアクセス制御回路で受け付けられたときは、外部Ｉ／ＯＤＭＡの要求はメモリアクセス制御回路でマスクされる３サイクルに相当するので、メモリ間ＤＭＡの実行終了まで待たされる。しかし、メモリ間ＤＭＡがメイン演算部からのメモリアクセスと競合してキャンセルされた場合には、次のシステムクロックのサイクルで外部Ｉ／ＯＤＭＡの要求とメイン演算部からのメモリアクセスとの調停を行うことが可能となる。
【００７２】
以上のように、本実施形態によれば、システムクロックのサイクルで各チャンネルのＤＭＡ要求信号の調停を行うことが出来るため、メモリアクセス制御回路からのＤＭＡ転送実施ＡＣＫ信号を待たずに、高精度のＤＭＡ転送要求調停が可能となる。
【００７３】
また、従来、メモリ−メモリ間のデータ転送に加え、外部Ｉ／Ｏ−メモリ間のデータ転送との調停を行う場合、一旦転送を開始したメモリ−メモリ間のデータ転送により、外部Ｉ／Ｏ−メモリ間のデータ転送が確実に実行できないケースが発生するという問題があった。
【００７４】
これに対して、本実施形態では、外部Ｉ／ＯＤＭＡをメモリ間ＤＭＡより高い優先順位で実行することにより、メモリ間ＤＭＡのデータ転送中に外部Ｉ／Ｏの転送要求があった場合、外部Ｉ／ＯＤＭＡの転送要求をメモリアクセス制御回路に出力することが可能となり、外部Ｉ／Ｏのデータ転送を確実に実行できる。
【００７５】
【発明の効果】
以上のように、本発明によれば、優先順位の高いチャンネルのＤＭＡ転送を、それよりも低いチャンネルのＤＭＡ転送を必要以上に待つことなく割り込ませることが可能となるため、例えばアクセス速度の遅いメモリを対象としたＤＭＡ転送において効率良くデータを供給することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるＤＭＡコントローラのブロック図である。
【図２】本発明の第１の実施形態におけるＤＭＡコントローラ内のＤＭＡ転送要求信号生成回路の状態遷移図である。
【図３】本発明の第１の実施形態におけるＤＭＡコントローラとメモリとの接続関係を示すブロック図である。
【図４】本発明の第２の実施形態におけるＤＭＡコントローラのブロック図である。
【図５】本発明の第２実施形態におけるＤＭＡコントローラ内のＤＭＡ転送要求信号マスク回路の状態遷移図である。
【図６】本発明の第３実施形態におけるＤＭＡコントローラ内のＤＭＡ転送要求信号マスク回路のブロック図である。
【図７】本発明の第３実施形態におけるＤＭＡコントローラ内のＤＭＡ転送要求信号マスク回路の状態遷移図である。
【図８】本発明の第４実施形態におけるＤＭＡコントローラのブロック図である。
【図９】従来のＤＭＡコントローラのブロック図である。
【図１０】従来のＤＭＡコントローラ内のＤＭＡ転送要求信号生成回路の状態遷移図である。
【符号の説明】
１０１、３０１、７０１、９０１　　ＤＭＡ転送要求信号生成回路
１０２、７０２、９０２　　ＤＭＡ転送回数カウンタ
１０３、７０３、９０３　　ＤＭＡ転送要求信号調停回路
１０４、７０４、９０６　　調停後のＤＭＡ要求信号を保持するレジスタ
３０２、５０２　　転送要求信号マスク回路
５１１　　　転送要求信号マスク用回数カウンタ
１０００　　ＤＭＡコントローラ
１００１、１００２　　メモリ
１００３　　一時保持レジスタ
１００４　　セレクタ
１００７　　ＤＭＡ転送要求信号生成部
１００８　　メモリアクセス制御回路
【図１】
2004110742.tif 000003
【図２】
2004110742.tif 000004
【図３】
2004110742.tif 000005
【図４】
2004110742.tif 000006
【図５】
2004110742.tif 000007
【図６】
2004110742.tif 000008
【図７】
2004110742.tif 000009
【図８】
2004110742.tif 000010
【図９】
2004110742.tif 000011
【図１０】
2004110742.tif 000012