(57)【要約】【課題】ＤＭＡ転送ブロックによって制御されるＦＩＦＯ内蔵ブロックとのＤＭＡ転送において、高速なバースト転送を用いた効率的なデータ転送を実現する。【解決手段】ＤＭＡ転送装置１０１に、バースト転送可能なＤＭＡバスにバスマスターとして接続され、コマンドを送った後にアドレスをインクリメントしながらデータを一定回数連続して送るバーストアクセスを発生させバースト転送を制御する機能を有するＤＭＡ制御ブロック１０２と、ＤＭＡバスのスレーブとして接続され、連続したアドレス空間にアドレスがマッピングされたＦＩＦＯを有するＦＩＦＯ内蔵ブロック１０３とを備える。ＤＭＡ制御ブロック１０２の制御レジスタ群のアドレッシングモード設定レジスタにはＦＩＦＯ転送専用のパラメータを設定可能にし、連続的にアドレス空間がマップされたＦＩＦＯとのバースト転送を制御する。【選択図】図１
2007172510.tif 000002
【特許請求の範囲】
【請求項１】
バースト転送可能なＤＭＡバスにバスマスターとして接続され、コマンドを送った後にアドレスをインクリメントしながらデータを一定回数連続して送るバーストアクセスを発生させバースト転送を制御する機能を有するＤＭＡ制御ブロックと、前記ＤＭＡバスのスレーブとして接続され、連続したアドレス空間にアドレスがマッピングされたＦＩＦＯを有するＦＩＦＯ内蔵ブロックと、を備えたＤＭＡ転送装置。
【請求項２】
バースト転送終了後のアドレスがＦＩＦＯのアドレス空間をオーバーすることをバーストアクセス開始時に検出してエラー通知を出力するアドレスデコーダを前記ＦＩＦＯ内臓ブロックに備えた請求項１記載のＤＭＡ転送装置。
【請求項３】
ＣＰＵから転送パラメータを設定するための制御レジスタ部と、前記制御レジスタ部のパラメータに従って前記ＤＭＡバスにバーストアクセスを発生することが可能なバスインターフェース部と、バースト転送終了中は転送先アドレスまたは転送元アドレスの加算を行い、転送終了時にバースト転送開始時のアドレスまで自動的に減算するアドレッシングモードと、を前記ＤＭＡ制御ブロックに備えた請求項１記載のＤＭＡ転送装置。
【請求項４】
複数段のデータを入出力する送信ＦＩＦＯと、前記送信ＦＩＦＯからデータを取り出し所定のフォーマットで外部へのデータ出力を行う出力インターフェース部と、前記送信ＦＩＦＯに積まれたデータ段数と使用可能なバースト長設定値テーブルによりＦＩＦＯがオーバーフローしない最大のバースト長を前記ＤＭＡ制御ブロックへ通知するバースト長選択回路と、を前記ＦＩＦＯ内臓ブロックに備えた請求項１記載のＤＭＡ転送装置。
【請求項５】
複数段のデータを入出力する受信ＦＩＦＯと、所定のフォーマットで外部からのデータ入力を行い前記受信ＦＩＦＯにデータを積み込む入力インターフェース部と、前記受信ＦＩＦＯに積まれたデータ段数と使用可能なバースト長設定値テーブルによりＦＩＦＯがアンダーフローしない最大のバースト長を前記ＤＭＡ制御ブロックへ通知するバースト長選択回路と、を前記ＦＩＦＯ内臓ブロックに備えた請求項１記載のＤＭＡ転送装置。
【請求項６】
複数のバースト長のバーストアクセスを発生することが可能であり、使用可能なバースト長設定値テーブルとＦＩＦＯに格納されたデータの段数により、データ転送の度にオーバーフローあるいはアンダーフローが起こらない最大のバースト長のアクセスを選択するバースト長選択回路を前記ＤＭＡ制御ブロックに備えた請求項１記載のＤＭＡ転送装置。
【請求項７】
請求項１から６に記載のいずれかのＤＭＡ転送装置を搭載した半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＭＡ転送装置に関し、特に低速な周辺ハードウェアを接続する入出力インターフェースとバッファメモリとしてのＦＩＦＯを備えたＤＭＡ転送装置においてバースト転送を可能にする技術に関する。
【背景技術】
【０００２】
従来、ＣＰＵと高速な周辺ハードウェアを含むコンピュータシステムにおいては、ＤＭＡ転送装置を用いてメモリと高速な周辺ハードウェアとの間で直接データ転送を行い、ＣＰＵの処理負荷を軽減している。
【０００３】
また、ＤＭＡ転送を行うコンピュータシステムにおいては、クロック信号に同期しながらアドレスを１回送り、次にアドレスをインクリメントしながら一定回数データを連続的に転送するバースト転送機能を備えたものがあり、メモリと高速な周辺ハードウェアとの間の高速データ転送を可能にしている。
【０００４】
一方、比較的低速な周辺ハードウェアとのデータの入出力を行うために、低速な周辺ハードウェアを接続するローカルバスとしての入出力インターフェースと、ＤＭＡ転送と低速な周辺ハードウェアとの速度差を緩衝するためのバッファメモリとしてのＦＩＦＯ（Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔ）を備えた周辺ハードウェアがある（例えば、特許文献１参照）。
【特許文献１】特開２００４−９４９７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記従来技術では、ＦＩＦＯを備えた周辺ハードウェアとのＤＭＡ転送を行う際に、ＦＩＦＯのデータ送信用レジスタやデータ受信用レジスタはそれぞれ単一のアドレスにマッピングされるため、連続してデータを転送するためには同じアドレスに繰り返しアクセスする必要があり、バースト転送を使用することができなかった。
【０００６】
そのため、ＦＩＦＯを備えた周辺ハードウェアとのシングル転送を繰り返す必要があり、低速な周辺ハードウェアのためにバス帯域を不必要に多く占有してしまうことになり、バス帯域を必要とする他の高速な周辺ハードウェアのデータ転送に影響を与え、システム全体の性能を低下させてしまうという問題があった。
【０００７】
本発明は、低速な周辺ハードウェアを接続する入出力インターフェースとバッファメモリとしてのＦＩＦＯを備えたＤＭＡ転送装置においてＦＩＦＯに対するバースト転送を可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明のＤＭＡ転送装置は、バースト転送可能なＤＭＡバスにバスマスターとして接続され、コマンドを送った後にアドレスをインクリメントしながらデータを一定回数連続して送るバーストアクセスを発生させバースト転送を制御する機能を有するＤＭＡ制御ブロックと、前記ＤＭＡバスのスレーブとして接続され、連続したアドレス空間にアドレスがマッピングされたＦＩＦＯを有するＦＩＦＯ内蔵ブロックと、を備える。
【０００９】
上記構成によれば、ＦＩＦＯ内蔵ブロックのＦＩＦＯに対して連続的にアドレス空間がマッピングされているため、ＦＩＦＯに対して最初にコマンドを送り、次にアドレスをインクリメントしながら一定回数連続してデータを送るバーストアクセスが可能となり、ＦＩＦＯに対する高速なＤＭＡ転送を実現することができる。
【００１０】
また本発明のＤＭＡ転送装置は、上記構成において、バースト転送終了後のアドレスがＦＩＦＯのアドレス空間をオーバーすることをバーストアクセス開始時に検出してエラー通知を出力するアドレスデコーダをＦＩＦＯ内臓ブロックに備える。
【００１１】
上記構成によれば、バーストアクセス開始時にエラー発生の可能性を検出するため、バースト転送によりアドレスがＦＩＦＯのアドレス空間をオーバーすることをＤＭＡ転送の開始前に回避することができる。
【００１２】
また本発明のＤＭＡ転送装置は、上記構成において、ＣＰＵから転送パラメータを設定するための制御レジスタ部と、前記制御レジスタ部のパラメータに従ってＤＭＡバスにバーストアクセスを発生することが可能なバスインターフェース部と、バースト転送終了中は転送先アドレスまたは転送元アドレスの加算を行い、転送終了時にバースト転送開始時のアドレスまで自動的に減算するアドレッシングモードとをＤＭＡ制御ブロックに備える。
【００１３】
アドレス空間は有限であるため、アドレスのインクリメントを繰り返し行なっていくとＦＩＦＯに割り振られたアドレス空間を超えてしまうが、上記構成によれば、１回のバースト転送の度に発生するアドレスをリセットする機能を備えているため、任意回数の繰り返しバーストアクセスが可能となる。
【００１４】
また本発明のＤＭＡ転送装置は、上記構成において、複数段のデータを入出力する送信ＦＩＦＯと、前記送信ＦＩＦＯからデータを取り出し所定のフォーマットで外部へのデータ出力を行う出力インターフェース部と、前記送信ＦＩＦＯに積まれたデータ段数と使用可能なバースト長設定値テーブルによりＦＩＦＯがオーバーフローしない最大のバースト長をＤＭＡ制御ブロックへ通知するバースト長選択回路とをＦＩＦＯ内臓ブロックに備える。
【００１５】
上記構成によれば、ＦＩＦＯに積まれたデータ段数によって自動的に最適なバースト長のアクセスを選択する機構を備えているため、ＦＩＦＯのオーバーフローを回避するとともに、バスの占有時間を最小限に抑えることができる。
【００１６】
また本発明のＤＭＡ転送装置は、上記構成において、複数段のデータを入出力する受信ＦＩＦＯと、所定のフォーマットで外部からのデータ入力を行い前記受信ＦＩＦＯにデータを積み込む入力インターフェース部と、前記受信ＦＩＦＯに積まれたデータ段数と使用可能なバースト長設定値テーブルによりＦＩＦＯがアンダーフローしない最大のバースト長をＤＭＡ制御ブロックへ通知するバースト長選択回路とをＦＩＦＯ内臓ブロックに備える。
【００１７】
上記構成によれば、ＦＩＦＯに積まれたデータ段数によって自動的に最適なバースト長のアクセスを選択する機構を備えているため、ＦＩＦＯのアンダーフローを回避するとともに、バスの占有時間を最小限に抑えることができる。
【００１８】
また本発明のＤＭＡ転送装置は、上記構成において、複数のバースト長のバーストアクセスを発生することが可能であり、使用可能なバースト長設定値テーブルとＦＩＦＯに格納されたデータの段数により、データ転送の度にオーバーフローあるいはアンダーフローが起こらない最大のバースト長のアクセスを選択するバースト長選択回路をＤＭＡ制御ブロックに備える。
【００１９】
上記構成によれば、ＦＩＦＯのオーバーフローあるいはアンダーフローが発生することなく常に使用可能な最長のバースト長によってＤＭＡ転送を行うことができるため、バスの占有時間を最小限に抑えることができる。
【発明の効果】
【００２０】
本発明によれば、ＦＩＦＯとのＤＭＡ転送においてバースト転送が可能となるため、ＦＩＦＯを備えた低速な周辺ハードウェアへのバースト転送を用いた高速なＤＭＡ転送が実現でき、低速な周辺ハードウェアによるバス帯域の占有率を低下させ、システム全体の性能を向上させることができる。
【発明を実施するための最良の形態】
【００２１】
図１は本発明の一実施の形態に係るＤＭＡ転送装置の構成を示すブロック図である。図１において、１０１は本発明のＤＭＡ転送装置であり、１０４はＣＰＵ、１０５はメモリ、１０６はＣＰＵ１０４をバスマスターとするＣＰＵバス、１０７はシングル転送および２回、４回、８回、１６回のバースト転送が可能なＤＭＡ用バスである。その他、システムの用途によって接続される各種周辺ハードウェアは省略されている。
【００２２】
また、ＤＭＡ転送装置１０１において、１０２はＣＰＵ１０４から設定可能な制御レジスタ群１１１〜１１６とバスマスターインターフェース１１７を有しＤＭＡ用バスのバスマスターとなるＤＭＡ制御ブロックであり、１０３は外部デバイスとデータ通信を行なう通信インターフェースとバッファメモリとしてのＦＩＦＯを備えたＦＩＦＯ内蔵ブロックである。
【００２３】
ＦＩＦＯ内蔵ブロック１０３はバス調停回路によりＣＰＵバス１０６とＤＭＡバス１０７の双方からアクセス可能であり、外部デバイスとデータの送受信を行う際は、ＣＰＵ１０４がＤＭＡ制御ブロック１０２の制御レジスタ群１１１〜１１６に設定を行ってから、ＦＩＦＯ内蔵ブロック１０３からのＤＭＡ要求信号１３７、１３８によりＤＭＡ転送が開始され、外部デバイスと送受信したデータはそれぞれ１６ワードの深さをもつ送信ＦＩＦＯ１２３、受信ＦＩＦＯ１２４にバッファされ、メモリ１０５との間でデータ転送が行われる。
【００２４】
ＦＩＦＯ内蔵ブロック１０３のバスインターフェース部１２１は、ＣＰＵ１０４またはＤＭＡ制御ブロック１０２からのアクセス要求コマンドを受けると、アドレスデコーダ１２２にてバスマスターから指定されたアドレスのデコードを行い、制御レジスタ群１２７〜１３０、送信ＦＩＦＯ１２３、受信ＦＩＦＯ１２４へのアクセスを発生する。
【００２５】
図２はＦＩＦＯ内蔵デバイス１０３のアドレスマップ例を示す図である。アドレスデコーダ１２２は１６ワード分の連続したアドレス領域へのアクセスをすべて送信ＦＩＦＯ１２３へのアクセスへデコードし、次の１６ワード分の連続したアドレス領域へのアクセスをすべて受信ＦＩＦＯ１２４へのアクセスへデコードする。
【００２６】
例えば、アドレスとデータがともに３２ビットの場合に１６ワード＝６４バイトの連続領域をＦＩＦＯにマッピングするには、アドレスデコーダ１２２は、アドレス信号のビット３２〜６の上位ビットが送信／受信ＦＩＦＯ領域と一致する場合に、ビット５〜０の下位ビットを無視し、すべて送信／受信ＦＩＦＯへのアクセスとする。この非常に簡単に実現できる構成により、最大１６回までアドレスを自動的にインクリメントしながらデータ転送を行うバーストアクセスが可能となる。
【００２７】
図３は本発明のＤＭＡ転送装置におけるＦＩＦＯとのＤＭＡ転送のタイミング図である。ＤＭＡ制御ブロック１０２は、ＦＩＦＯを指す転送元または転送先アドレスのアドレッシングモード設定により、ＦＩＦＯ内臓ブロック１０３に対して最初にコマンドを送り、次にアドレスをインクリメントしながら一定回数連続してデータを送るバーストアクセスを発生する。
【００２８】
ＦＩＦＯ内臓ブロック１０３は、ＦＩＦＯがマッピングされた空間にバーストアクセスがあった場合は、毎回ＦＩＦＯへのデータ転送を行うために一定サイクル分連続してＦＩＦＯにアクセスすることができる。例えば、８ワードのデータを転送する場合は、ＤＭＡ制御ブロック１０１がバースト長８のバーストアクセスを発生すると、コマンドを送る１サイクルとデータを送る８サイクルの合計９サイクルで転送を完了する。
【００２９】
比較のために、図４に従来手法によるＦＩＦＯ内蔵デバイスのアドレスマップ例を、図５にＦＩＦＯとのＤＭＡ転送のタイミング図を示す。ＦＩＦＯは単一のアドレスにマッピングされており、アドレスを自動的にインクリメントしながら転送するバースト転送は使用できず、８ワードのデータを転送する場合は、コマンドを１サイクル送りデータを１サイクルのみ送るシングル転送の繰り返しとなり、合計１６サイクルが必要になる。
【００３０】
以下、本発明のＤＭＡ転送装置を用いた基本的なデータ転送手順について説明する。ＤＭＡ制御ブロック１０２は、バースト長レジスタ１１１、転送回数レジスタ１１２、転送元アドレッシングモード設定レジスタ１１３、転送先アドレッシングモード設定レジスタ１１４、転送元アドレスレジスタ１１５、転送先アドレスレジスタ１１６、１６ワードの内部バッファ１１８を有する。
【００３１】
各レジスタはＣＰＵ１０４からバススレーブインターフェース１１０を通じてデータ設定が可能であり、ＤＭＡ要求信号を受けると、転送回数レジスタ１１２の設定値がバースト長レジスタ１１１の設定値以上であれば、転送元アドレスレジスタ１１５の示すアドレスからバースト長レジスタ１１１に設定されたバースト長のリードアクセスでデータを読み出し、内部バッファに一時蓄積した後、転送先アドレスレジスタ１１６の示すアドレスへバースト長レジスタ１１１に設定されたバースト長のライトアクセスで書き込む。
【００３２】
１回の転送の度に転送回数レジスタ１１２はバースト長レジスタ１１１に設定された値だけ減算した値に更新され、転送元アドレスレジスタ１１５および転送先アドレスレジスタ１１６はそれぞれ転送元アドレッシングモード設定レジスタ１１３および転送先アドレッシングモード設定レジスタ１１４に設定されたパラメータに従って更新される。
【００３３】
転送元アドレッシングモード設定レジスタ１１３と転送先アドレッシングモード設定レジスタ１１４には、それぞれインクリメント／デクリメント／固定／ＦＩＦＯ転送専用に対応したパラメータが設定可能である。インクリメントモードでは転送終了時のアドレスから１ワードアドレス分加算した値を、デクリメントモードでは転送終了時のアドレスから１ワードアドレス分減算した値を、固定モードでは転送終了時のアドレスを転送元アドレスレジスタ１１５および転送先アドレスレジスタ１１６に反映する。
【００３４】
ＦＩＦＯ転送専用アドレッシングモードは本発明に特有のアドレッシングモードであり、転送終了時のアドレスから１ワードアドレス分にバースト長を乗じた値だけ減算したアドレスを転送元アドレスレジスタ１１５および転送先アドレスレジスタ１１６に反映する。
【００３５】
なお、デクリメントおよび固定アドレッシングモードの際は、アドレスを自動的にインクリメントしながら転送するバースト転送は使用できず、バースト長レジスタ１１１の値は常に１に固定される。インクリメントおよび固定アドレッシングモードの場合にのみバースト転送回数レジスタ１１１に１以外の値の設定が可能である。
【００３６】
また、ＤＭＡ制御ブロック１０２は複数のＤＭＡ転送を時分割で行うために複数のＤＭＡチャネルを備え、それぞれが設定レジスタ群１１１〜１１６を有し、バスマスターインターフェース１１７に各チャネルの転送が同時に発生した場合の調停機構を備えても良い。
【００３７】
次に、本発明のＤＭＡ転送装置を用いた送信ＦＩＦＯ１２３へのバースト転送によるデータ送信手順を図６に示すタイミング図を用いて具体的に説明する。送信インターフェース１２５は送信ＦＩＦＯ１２３からデータを取り出し規定のタイミングと信号フォーマットで外部にデータを出力するが、詳細な動作は本発明に直接関係ないため省略する。また、ここでは送信ＦＩＦＯ１２３は十分な空きがあるものとし、空きが少なくなった場合の動作は後述する。
【００３８】
ＣＰＵ１０４は転送元アドレスレジスタ１１５にメモリ１０５の転送元領域のアドレスを、転送先アドレスレジスタ１１６にＦＩＦＯ内蔵ブロック１０３の送信ＦＩＦＯ領域の先頭アドレスを設定し、転送元アドレッシングモード設定レジスタ１１３にはインクリメント、転送先アドレッシングモード設定レジスタ１１４にはＦＩＦＯ転送専用に対応したパラメータを設定する。
【００３９】
転送回数レジスタ１１２には必要なデータ量に対応する転送回数を設定する。バースト長レジスタ１１１には、転送先アドレッシングモード設定レジスタ１１４にＦＩＦＯ転送専用モードを設定したときに、送信バースト長選択回路１３５の出力信号１３９によりバースト長が自動的に反映されるため、ＣＰＵによる設定の必要はない。
【００４０】
ＦＩＦＯ内蔵ブロック１０３は、送信ＦＩＦＯ段数レジスタ１３１としきい値レジスタ１２９を比較器１３３で比較し、ＦＩＦＯ段数がしきい値を下回ったときにＤＭＡ要求信号１３７を有効にする。
【００４１】
ＤＭＡ制御ブロック１０２は、ＤＭＡ要求信号１３７が有効で転送回数レジスタ１１２の設定値がバースト長レジスタ１１１の設定値以上であれば、転送元アドレスレジスタ１１５の示すメモリ１０５の転送元領域のデータを内部バッファ１１８にバーストリードで読み込み、内部バッファ１１８から転送先アドレスレジスタ１１６の示す送信ＦＩＦＯ１２４へバーストライトでＤＭＡ転送をする。
【００４２】
バースト転送終了後、転送回数はバースト長の設定値分デクリメントされ、転送元アドレスはバースト長のワード数分インクリメントされ、転送先アドレスはバースト長のワード数分デクリメントされてバースト転送開始前のアドレスに戻る。この手順により、ＤＭＡ制御ブロック１０２は転送回数レジスタ１１２の値が正値の間は送信ＦＩＦＯ１２３へ繰り返しバースト転送を用いてデータを転送する。
【００４３】
次に、本発明のＤＭＡ転送装置を用いた受信ＦＩＦＯ１２４からのバースト転送によるデータ受信手順を図７に示すタイミング図を用いて具体的に説明する。受信インターフェース１２６は規定のタイミングと信号フォーマットで外部からデータを入力し受信ＦＩＦＯ１２４へデータを格納するが、詳細な動作は本発明に直接関係ないため省略する。また、ここでは受信ＦＩＦＯ１２４には十分なワード数のデータが格納されているものとし、格納されたデータ数が少なくなった場合の動作は後述する。
【００４４】
ＣＰＵ１０４は転送元アドレスレジスタ１１５にＦＩＦＯ内蔵ブロック１０３の受信ＦＩＦＯ領域の先頭アドレスを、転送先アドレスレジスタ１１６にメモリ１０５の転送先領域のアドレスを設定し、転送元アドレッシングモード設定レジスタ１１３にはＦＩＦＯ転送専用、転送先アドレッシングモード設定レジスタ１１４にはインクリメントに対応したパラメータを設定する。
【００４５】
転送回数レジスタ１１２には必要なデータ量に対応する転送回数を設定する。バースト長レジスタ１１１には、転送元アドレッシングモード設定レジスタ１１３にＦＩＦＯ転送専用モードを設定したときに、受信バースト長選択回路１３６の出力信号１４０によりバースト長が自動的に反映されるため、ＣＰＵによる設定の必要はない。
【００４６】
ＦＩＦＯ内蔵ブロック１０３は、受信ＦＩＦＯ段数レジスタ１３２としきい値レジスタ１３０を比較器１３４で比較し、ＦＩＦＯ段数がしきい値を上回ったときにＤＭＡ要求信号１３８を有効にする。
【００４７】
ＤＭＡ制御ブロック１０２は、ＤＭＡ要求信号１３８が有効で転送回数レジスタ１１２の設定値がバースト長レジスタ１１１の設定値以上であれば、転送元アドレスレジスタ１１５の示す受信ＦＩＦＯ１２４のデータを内部バッファ１１８にバーストリードで読み込み、内部バッファ１１８から転送先アドレスレジスタ１１６の示すメモリ１０５の転送先領域へバーストライトでＤＭＡ転送をする。
【００４８】
バースト転送終了後、転送回数はバースト長の設定値分デクリメント、転送先アドレスはバースト長のワード数分インクリメントされ、転送元アドレスはバースト長のワード数分デクリメントされてバースト転送開始前のアドレスに戻る。この手順により、ＤＭＡ制御ブロック１０２は転送回数レジスタ１１２の値が正値の間は受信ＦＩＦＯ１２３から繰り返しバースト転送を用いてデータを転送する。
【００４９】
アドレスデコーダ１２２はバスインターフェース部１２１からバースト長を示す信号を受け取り、バースト転送開始時のアドレスがＦＩＦＯがマッピングされた空間内であり、バースト長を加算したバースト転送終了後のアドレスがそのＦＩＦＯがマッピングされた空間を外れるときはアドレスオーバーランを検出し、ＤＭＡ制御ブロック１０２へエラー通知信号１４２を返す。
【００５０】
ＤＭＡ制御ブロックはエラー通知信号１４２を受けた場合はＤＭＡ転送を中止する。本実施例では送信／受信ＦＩＦＯにマッピングされたアドレス空間はそれぞれ１６ワード分であり、バースト長も最大１６ワードであるため、ＦＩＦＯ領域の先頭アドレスからバースト転送を開始すれば、どのバースト長においてもアドレスオーバーランが発生することはない。
【００５１】
ＦＩＦＯを指す転送元／転送先アドレスレジスタは１回の転送ごとにバースト転送前のアドレスに戻るため、本発明のＤＭＡ転送装置を用いた転送手順を実行するソフトウェアは、常にＦＩＦＯの先頭アドレスを転送先／転送元アドレスとして設定することにより、ＦＩＦＯがマッピングされたアドレスが連続した領域であることを意識することなく、従来のＤＭＡ制御ソフトウェアのアドレッシングモードを固定からＦＩＦＯ転送専用に変えるだけで、本発明によるＤＭＡ転送装置を利用することができる。
【００５２】
図８は本発明のＤＭＡ転送装置における送信ＦＩＦＯ１２３のオーバーフローを回避するためのバースト長制御を示したタイミング図である。ＦＩＦＯ内臓ブロック１０３に備えた送信ＦＩＦＯ段数レジスタ１３１は、送信ＦＩＦＯ１２３へのデータストアがある度に１インクリメントされ、送信インターフェース１２５からのデータロードがある度に１デクリメントされ、１６段の送信ＦＩＦＯ１２３に格納されたデータのワード数を常に記憶している。
【００５３】
送信バースト長選択回路１３５は、送信ＦＩＦＯ段数レジスタ１３１の値とバースト長テーブル１４１により、オーバーフローが起こらない最大バースト長を選択するように制御される。図８において、最初の転送時は送信ＦＩＦＯ段数レジスタ１３１の値は２であるから空きは１４ワード分あり、それより小さい最大のバースト長である８を選択する。２回目の転送時には送信ＦＩＦＯ段数レジスタ１３１の値は１０であるから空きは６ワード分あり、それより小さい最大のバースト長である４を選択する。
【００５４】
転送先アドレッシングモードレジスタ１１４にＦＩＦＯ転送専用モードが設定されている場合は、１回のバースト転送の度に選択されたバースト長でＤＭＡ制御ブロック１０２のバースト長レジスタ１１１を更新する。これにより、ＦＩＦＯのオーバーフローが発生することなく、常に最長のバースト長によってＤＭＡ転送を行うことができ、バスの占有時間を最小限に抑えることができる。送信ＦＩＦＯしきい値レジスタ１２９には１２を設定しているため、２回目の転送終了時にはＤＭＡ要求は無効になる。
【００５５】
図９は本発明のＤＭＡ転送装置における受信ＦＩＦＯ１２４のアンダーフローを回避するためのバースト長制御を示したタイミング図である。ＦＩＦＯ内臓ブロック１０３に備えた受信ＦＩＦＯ段数レジスタ１３２は、受信インターフェース１２６へのデータストアがある度に１インクリメント、受信ＦＩＦＯ１２４からのデータロードがある度に１デクリメントし、１６段の受信ＦＩＦＯ１２４に格納されたデータのワード数を常に記憶する。
【００５６】
受信バースト長選択回路１３６は、受信ＦＩＦＯ段数レジスタ１３２の値とバースト長テーブル１４１により、アンダーフローが起こらない最大バースト長を選択するように制御される。図９において、最初の転送時は受信ＦＩＦＯ段数レジスタ１３２の値は１４であるから、それより小さい最大のバースト長である８を選択する。２回目の転送時には送信ＦＩＦＯ段数レジスタ１３２の値は６であるから、それより小さい最大のバースト長である４を選択する。
【００５７】
転送元アドレッシングモードレジスタ１１３にＦＩＦＯ転送専用モードが設定されている場合は、１回の転送の度に選択されたバースト長でＤＭＡ制御ブロック１０２のバースト長レジスタ１１１を更新する。これにより、ＦＩＦＯのアンダーフローが発生することなく、常に最長のバースト長によって転送を行うことができ、バスの占有時間を最小限に抑えることができる。受信ＦＩＦＯしきい値レジスタ１３０には４を設定しているため、２回目の転送終了時にはＤＭＡ要求は無効になる。
【００５８】
なお、ＦＩＦＯ内蔵ブロック１０３の変更を最小限にするために、送信ＦＩＦＯ段数レジスタ１３１および受信ＦＩＦＯ段数レジスタ１３２の値を通知する構成とし、送信バースト長選択回路１３５および受信バースト長選択回路１３６およびバースト長テーブル１４１は、ＤＭＡ制御ブロック１０２の中に配置する構成としても良い。
【００５９】
また、以上の構成は本発明の実施形態を限定するものではなく、ＦＩＦＯの深さや設定可能なバースト長、アドレスマップやアドレスデコーダの回路構成、各設定レジスタの機能等について、本発明の趣旨を逸脱しない範囲で各種の構成が可能である。
【産業上の利用可能性】
【００６０】
本発明のＤＭＡ転送装置は、高速なメモリ等のインターフェースと低速なＦＩＦＯ内蔵デバイスの混在する信号処理システムにおいて、とりわけクロック周波数を上げずに低消費電力を保ちながらシステム性能を向上させることができ、モバイル用途のシステムＬＳＩ等において実施効果が期待される。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施の形態に係るＤＭＡ転送装置の構成を示すブロック図。
【図２】本発明のＤＭＡ転送装置におけるＦＩＦＯ内蔵デバイスのアドレスマップ例。
【図３】本発明のＤＭＡ転送装置におけるＦＩＦＯとのＤＭＡ転送のタイミング図。
【図４】従来手法によるＦＩＦＯ内蔵デバイスのアドレスマップ例。
【図５】従来のＦＩＦＯ内蔵デバイスとのＤＭＡ転送のタイミング図。
【図６】本発明のＤＭＡ転送装置を用いたバースト転送によるＦＩＦＯへのデータ送信手順を示すタイミング図。
【図７】本発明のＤＭＡ転送装置を用いたバースト転送によるＦＩＦＯからのデータ受信手順を示すタイミング図。
【図８】本発明のＤＭＡ転送装置を用いたバースト転送においてＦＩＦＯオーバーフローを回避するためのバースト長制御を示すタイミング図。
【図９】本発明のＤＭＡ転送装置を用いたバースト転送においてＦＩＦＯアンダーフローを回避するためのバースト長制御を示すタイミング図。
【符号の説明】
【００６２】
１０１  ＤＭＡ転送装置
１０２  ＤＭＡ制御ブロック
１０３  ＦＩＦＯ内臓ブロック
１０４  ＣＰＵ
１０５  メモリ
１０６  ＣＰＵバス
１０７  ＤＭＡバス
１１０  バススレーブインターフェース
１１１  バースト長レジスタ
１１２  転送回数レジスタ
１１３  転送元アドレッシングモード設定レジスタ
１１４  転送先アドレッシングモード設定レジスタ
１１５  転送元アドレスレジスタ
１１６  転送先アドレスレジスタ
１１７  バスマスターインターフェース
１１８  内部バッファ
１２１  バスインターフェース部
１２２  アドレスデコーダ
１２３  送信ＦＩＦＯ
１２４  受信ＦＩＦＯ
１２５  送信インターフェース
１２６  受信インターフェース
１２９  送信ＦＩＦＯしきい値レジスタ
１３０  受信ＦＩＦＯしきい値レジスタ
１３１  送信ＦＩＦＯ段数レジスタ
１３２  受信ＦＩＦＯ段数レジスタ
１３３、１３４  比較器
１３５  送信バースト長選択回路
１３６  受信バースト長選択回路
１３７、１３８  ＤＭＡ要求信号
１４１  バースト長テーブル
【図１】
2007172510.tif 000003
【図２】
2007172510.tif 000004
【図３】
2007172510.tif 000005
【図４】
2007172510.tif 000006
【図５】
2007172510.tif 000007
【図６】
2007172510.tif 000008
【図７】
2007172510.tif 000009
【図８】
2007172510.tif 000010
【図９】
2007172510.tif 000011