(57)【要約】【課題】ＤＭＡ転送要求可能なリソース数が増加しても、すべてのリソースがＤＭＡ転送をできるＤＭＡ転送制御システムを提供することである。【解決手段】ＤＭＡ転送をする複数のリソースと、ＤＭＡコントローラとを有する半導体装置である。該半導体装置は、前記複数のリソースの各々が転送設定レジスタを有する。【選択図】図２
2008210280.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡ転送をする複数のリソースと、
ＤＭＡコントローラとを有する半導体装置であって、
前記複数のリソースの各々が転送設定レジスタを有することを特徴とする半導体装置。
【請求項２】
請求項１に記載の半導体装置であって、
前記ＤＭＡコントローラは、ＤＭＡ転送を要求したリソースに応じて前記リソースの転送設定レジスタのアドレスを生成するデコーダを有することを特徴とする半導体装置。
【請求項３】
請求項１または２に記載の半導体装置であって、
前記ＤＭＡコントローラは、ＤＭＡ転送を要求したリソースの転送設定レジスタから読み出したデータを格納しＤＭＡ転送を実行するためのＤＭＡ転送設定レジスタを有することを特徴とする半導体装置。
【請求項４】
請求項１または２に記載の半導体装置であって、
前記ＤＭＡコントローラは、前記複数のリソースの転送設定レジスタをＤＭＡ転送設定レジスタとして使用してＤＭＡ転送を行うことを特徴とする半導体装置。
【請求項５】
各々が転送設定レジスタを有する複数のリソースからのＤＭＡ転送要求を受けて、ＤＭＡ転送を要求しているリソースの前記転送設定レジスタのアドレスを生成するデコーダを有することを特徴とするＤＭＡコントローラ。
【請求項６】
ＤＭＡ転送をする複数のリソースとＤＭＡコントローラとを有する半導体装置におけるＤＭＡ転送制御方法であって、
前記複数のリソースのうちの１つがＤＭＡ転送を要求する段階と、
前記ＤＭＡコントローラが、前記ＤＭＡ転送を要求したリソースの転送設定レジスタのアドレスを生成する段階と、
前記ＤＭＡ転送を要求したリソースが、前記ＤＭＡコントローラにより生成された前記アドレスに基づいてＤＭＡ転送する段階とを有することを特徴とするＤＭＡ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、より具体的には、ＤＭＡ転送をする複数のリソースとＤＭＡコントローラとを有する半導体装置とかかる半導体装置におけるＤＭＡ転送方法とに関する。
【背景技術】
【０００２】
従来、ディスクリプタ形式のＤＭＡ（Direct Memory Access）転送システムにおいては、ＤＭＡ転送をできる最大チャネル数があらかじめ決定されており、リソースからＤＭＡ転送要求があると、そのリソースに対応するチャネルの転送設定データがＤＭＡ転送設定レジスタに読み出され、ＤＭＡ転送が行われる。
【０００３】
図１は、従来のディスクリプタ形式のＤＭＡ転送システムを有する半導体装置の構成を示すブロック図である。図１に示した半導体装置１００において、ＤＭＡ転送をできる最大チャネル（この場合、１６チャネル）分の転送設定データが、ＤＭＡコントローラ１１０内の書き換え可能メモリ（この場合、ディスクリプタ用ＲＡＭ１１６）に記憶されている。リソース（例えば、リソース１２０）がＤＭＡ転送を要求すると、そのリソースに対応する所定のチャネル（例えば、チャネル１）の転送設定データがＤＭＡ転送設定レジスタ１１２に書き込まれる。ＤＭＡコントローラ１１０は、このＤＭＡ転送設定レジスタ１１２を使用してＤＭＡ転送を行う。
【０００４】
かかるＤＭＡ転送を効率化するために、様々なＤＭＡ転送方式が提案されている。例えば、特許文献１には、簡単な構成で記憶部を効率的に利用するために、ＤＭＡ転送制御システムにおいて、受信データが第１範囲のデータサイズである場合に第１ディスクリプタリストから読み出した小さい記憶容量の格納先アドレスに受信データをＤＭＡ転送して格納し、受信データが第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズである場合に第２ディスクリプタリストから読み出した大きい記憶容量の格納先アドレスに受信データをＤＭＡ転送して格納することが開示されている。
【特許文献１】特開２００５−２２２４６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のＤＭＡ転送方式では、ＤＭＡコントローラがＤＭＡ転送設定レジスタと転送設定データを記憶する書き換え可能メモリとを有しているため、転送設定データを記憶する書き換え可能メモリのメモリ容量により、ＤＭＡ転送の最大チャネル数が制限されていた。
【０００６】
しかし、システムの大規模化に伴い半導体装置に設けられるリソース数が増加して、ＤＭＡ転送を必要とするリソース数が、ＤＭＡコントローラに設けられる最大チャネル数を越えると、ＤＭＡ転送を必要とする全てのリソースにチャネルを割り当てることができないという問題があった。
【０００７】
本発明は、かかる問題を解決し、ＤＭＡ転送要求可能なリソース数が増加しても、すべてのリソースがＤＭＡ転送をできるＤＭＡ転送制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によると、ＤＭＡ転送をする複数のリソースと、ＤＭＡコントローラとを有する半導体装置を提供することができる。該半導体装置は、前記複数のリソースの各々が転送設定レジスタを有する。
【０００９】
上記半導体装置において、前記ＤＭＡコントローラは、ＤＭＡ転送を要求したリソースに応じて前記リソースの転送設定レジスタのアドレスを生成するデコーダを有してもよい。
【００１０】
また、上記半導体装置において、前記ＤＭＡコントローラは、ＤＭＡ転送を要求したリソースの転送設定レジスタから読み出したデータを格納しＤＭＡ転送を実行するためのＤＭＡ転送設定レジスタを有してもよい。
【００１１】
本発明の一実施形態による半導体装置では、前記ＤＭＡコントローラは、前記複数のリソースの転送設定レジスタをＤＭＡ転送設定レジスタとして使用してＤＭＡ転送を行ってもよい。
【００１２】
本発明の他の態様によると、各々が設定レジスタを有する複数のリソースからのＤＭＡ転送要求を受けて、ＤＭＡ転送を要求しているリソースの転送設定レジスタのアドレスを生成するデコーダを有することを特徴とするＤＭＡコントローラを提供することができる。
【００１３】
本発明のさらに別の態様によると、各々がＤＭＡ転送に係わる転送設定レジスタを有する複数のリソースを有することを特徴とする半導体装置を提供することができる。
【発明の効果】
【００１４】
ＤＭＡ転送できるリソースの数がＤＭＡコントローラの最大チャネル数で制限されないので、ＤＭＡ転送可能なリソースの数を増やすことができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施形態を詳細に説明する。しかし、言うまでもなく、以下に説明する実施形態は本発明を例示するためのものであり、本発明の権利範囲を限定するものではない。
【００１６】
図２は、本発明の一実施形態による、ＤＭＡ転送制御システムを含む半導体装置の構成を示すブロック図である。図２に示した半導体装置２００は、例えば、いわゆるシステムＬＳＩであり、ＤＭＡコントローラ２１０と、リソース２２０、２３０と、ＲＡＭ２４０とを有し、これらの構成要素はバス２５０で相互に通信可能に接続されている。
【００１７】
ＤＭＡコントローラ２１０は、ＤＭＡ転送設定レジスタ２１２と、デコーダ２１４とを有する。
【００１８】
ＤＭＡ転送設定レジスタ２１２には、例えばリソース間またはリソースとＲＡＭ間のＤＭＡ転送に必要な転送設定データが格納される。ＤＭＡコントローラ２１０はこのＤＭＡ転送設定レジスタ２１２を用いてＤＭＡ転送を行う。転送設定データには、例えば、ＤＭＡ転送の回数（例えば、４バイトデータ）、ＤＭＡ転送先アドレス（例えば、４バイトデータ）、ＤＭＡ転送元アドレス（例えば、６バイトデータ）、その他の設定データ（例えば、２バイトデータ）が含まれる。
【００１９】
デコーダ２１４は、各リソース２２０、２３０からのＤＭＡ転送要求に応じて、そのリソース２２０、２３０を特定し、その転送設定レジスタ２２２、２３２のアドレスを生成する。
【００２０】
リソース２２０、２３０は、例えば、ＵＡＲＴ、タイマ、アナログ・デジタルコンバータ、外部割り込み制御部、シリアルＩ／Ｏ、画像処理マクロ等である。リソース２２０、２３０はそれぞれ転送設定レジスタ２２２、２３２を有する。転送設定レジスタ２２０には、例えばＲＡＭの間またはリソースとＲＡＭ間のＤＭＡ転送に必要な転送設定データが格納されている。転送設定データには、例えば、ＤＭＡ転送回数（例えば、４バイトデータ）、ＤＭＡ転送先アドレス（例えば、４バイトデータ）、ＤＭＡ転送元アドレス（例えば、６バイトデータ）、その他の設定データ（例えば、２バイトデータ）が含まれる。その他の設定データとは、例えばアドレス変更の要否やワード転送／ビット転送を設定するデータである。転送設定レジスタ２３０についても同様である。
【００２１】
ＲＡＭ２４０は、半導体装置２００が処理するデータを記憶するメモリであり、リソース２２０、２３０からＲＡＭ２４０にＤＭＡ転送することもできるし、ＲＡＭ２４０からリソース２２０、２３０にＤＭＡ転送することもできる。また、ＲＡＭ２４０には、ＣＰＵ（図示せず）を動作させるコンピュータプログラムが格納されてもよい。
【００２２】
半導体装置２００において、ＤＭＡコントローラ２１０は、転送設定データを格納する書き換え可能メモリ（図１に示したディスクリプタ用ＲＡＭ１１６）を有していない。転送設定データは、各リソース２２０、２３０に設けられた転送設定レジスタ２２２、２３２にそれぞれ格納されている。
【００２３】
例えば、リソース２２０がＤＭＡ転送を要求すると、ＤＭＡコントローラ２１０のデコーダ２１４はリソース２２０の転送設定レジスタ２２２のアドレスを生成する。転送設定レジスタ２２２の転送設定データがＤＭＡ転送設定レジスタ２１２にコピーされる。ＤＭＡコントローラ２１０は、リソース２２０の転送設定レジスタ２２２から転送設定データがコピーされたＤＭＡ転送設定レジスタ２１２を使用して、ＤＭＡ転送を実行する。
【００２４】
ここで、ＤＭＡ転送設定レジスタは、ＤＭＡコントローラがＤＭＡ転送を実行する際に使用するレジスタであり、ＤＭＡ転送の進行に伴ってその内容（例えば転送元アドレスや転送先アドレス）は順次書き換えられていくものである。一方、リソースの転送設定レジスタは、ＤＭＡ転送を開始するのに必要な転送設定データを格納するレジスタであり、ＤＭＡ転送の進行に伴ってその内容が書き換えられるものではない。
【００２５】
このように、ＤＭＡコントローラ内にチャネル分の転送設定データを格納するための書き換え可能メモリを置かずに、ＤＭＡ転送要求可能な各リソース内にそれぞれの転送設定レジスタを置く。また、どのリソースからのＤＭＡ転送要求かを判断し、そのリソースの転送設定レジスタのアドレスを生成するデコーダをＤＭＡコントローラ内に置く。かかる構成により、本発明の一実施形態による半導体装置は、ＤＭＡ要求可能な各リソースが転送設定レジスタを持つので、ＤＭＡコントローラによるチャネル数の制限がなくなり、ＤＭＡ転送可能なリソース数の制限がなくなる。
【００２６】
図３は、本発明の他の実施形態によるＤＭＡ転送システムを有する半導体装置の構成を示すブロック図である。図３に示した半導体装置３００は、ＤＭＡコントローラ３１０がＤＭＡ転送設定レジスタを有さず、各リソース３２０、３３０の転送設定レジスタ３２２、３３２がＤＭＡ転送設定レジスタを兼ねる点で、図２に示した半導体装置２００と異なる。
【００２７】
例えば、リソース３２０がＤＭＡ転送を要求した場合、ＤＭＡコントローラ３１０は、リソース３２０の転送設定レジスタ３２２をＤＭＡ転送設定レジスタとして使用してＤＭＡ転送を実行する。この場合、ＤＭＡコントローラ３１０により、ＤＭＡ転送の進行に伴ってリソース３２０の転送設定レジスタ３２２の内容（例えば転送元アドレスや転送先アドレス）が順次書き換えられていく。ＤＭＡ転送設定レジスタとして使用される転送設定レジスタ３２２の書き換えは、バス３５０を介して行われるので時間的なオーバーヘッドは増大するが、ＤＭＡコントローラにＤＭＡ転送設定レジスタを設けなくてよいというメリットがあり、例えば転送回数が少ない場合、転送先アドレス・転送元アドレスが変化しない場合、ＤＭＡコントローラ３１０とリソース３２０とがバスを介して近くに配置されている場合などでは、かかる構成を採用することも可能となる。
【００２８】
このように、ＤＭＡコントローラ内にＤＭＡ転送設定レジスタを設けず、ＤＭＡ転送要求したリソースの転送設定レジスタをＤＭＡ転送設定レジスタとして使用することにより、ＤＭＡ内の転送設定レジスタを省き、ＤＭＡコントローラを小さくすることができる。
【００２９】
図４は、本発明の一実施形態によるデコーダの構成を示すブロック図である。図４に示したデコーダ４００は、図２、３に示したデコーダ２１４、３１４に相当するものであり、セレクタ４１０とアドレス生成部４２０とを含む。複数のリソースのいずれかからＤＭＡ転送要求があると、セレクタ４１０がそのリソースに対応するアドレスをアドレス生成部４２０に生成させる。
【００３０】
図５は、本発明の一実施形態によるＤＭＡ転送システムの動作を示すフローチャートである。ＤＭＡコントローラ（例えば、図２のＤＭＡコントローラ２１０）は、リソース（例えば、図２のリソース２２０）からのＤＭＡ転送要求を受ける（ステップＳ５００）。この要求に応じて、ＤＭＡコントローラは、ＣＰＵに対してデータバス（例えば、図２のバス２５０）をＤＭＡ転送に使用するためのバス権確保要求を出し（ステップＳ５０２）、バス権を確保する（ステップＳ５０４）。また、ＤＭＡ要求を行ったリソースに対応するアドレスをデコーダ（例えば、図２のデコーダ２１４）により生成し、そのアドレスに基づき転送設定レジスタ（この場合、図２の転送設定レジスタ２２２）から転送設定データを読み出して、ＤＭＡ転送設定レジスタ（この場合、図２のＤＭＡ転送設定レジスタ２１２）に格納する。ＤＭＡコントローラは、以上のステップを実行することにより、リソースから要求されたＤＭＡ転送の実行準備を完了する。
【００３１】
続いて、ＤＭＡコントローラは、ＤＭＡ転送を以下のステップにより実行する。ＤＭＡコントローラは、まず転送元アドレスを指定し（ステップ５０８）、転送元からデータを読み込み（ステップＳ５１０）、ＤＭＡコントローラ内のバッファに格納する。そして、転送先アドレスを指定し（ステップ５１２）、バッファに格納されたデータを転送先に
書き込む（ステップＳ５１４）。
【００３２】
次に、ＤＭＡコントローラは、ＤＭＡ転送設定レジスタに設定された転送回数分のＤＭＡ転送が終了したか、またはＣＰＵ等からのストップ要求があるか判断する（ステップＳ５１６）。転送回数分のＤＭＡ転送が終了しておらず、ストップ要求もなければ（ステップＳ５１６でＮＯ）、ステップＳ５０８に戻り、ＤＭＡ転送を繰り返す。
【００３３】
転送回数分のＤＭＡ転送が終了したか、またはストップ要求があれば（ステップＳ５１６でＹＥＳ）、ＤＭＡ転送を終了する（ステップＳ５１８）。
【００３４】
本開示にあたり、以下の付記を記す。
（付記１）
ＤＭＡ転送をする複数のリソースと、
ＤＭＡコントローラとを有する半導体装置であって、
前記複数のリソースの各々が転送設定レジスタを有することを特徴とする半導体装置。
（付記２）
付記１に記載の半導体装置であって、
前記ＤＭＡコントローラは、ＤＭＡ転送を要求したリソースに応じて前記リソースの転送設定レジスタのアドレスを生成するデコーダを有することを特徴とする半導体装置。
（付記３）
付記１または２に記載の半導体装置であって、
前記ＤＭＡコントローラは、ＤＭＡ転送を要求したリソースの転送設定レジスタから読み出したデータを格納しＤＭＡ転送を実行するためのＤＭＡ転送設定レジスタを有することを特徴とする半導体装置。
（付記４）
付記１または２に記載の半導体装置であって、
前記ＤＭＡコントローラは、前記複数のリソースの転送設定レジスタをＤＭＡ転送設定レジスタとして使用してＤＭＡ転送を行うことを特徴とする半導体装置。
（付記５）
付記２に記載の半導体装置であって、
前記デコーダは、前記複数のリソースに対応するアドレスを生成できることを特徴とする半導体装置。
（付記６）
付記１乃至５いずれか一項に記載の半導体装置であって、
前記複数のリソースはＵＡＲＴ、タイマ、アナログ・デジタルコンバータ、外部割り込み制御、シリアルＩＯ、画像マクロのうち少なくとも１つを含むことを特徴とする半導体装置。
（付記７）
各々が設定レジスタを有する複数のリソースからのＤＭＡ転送要求を受けて、ＤＭＡ転送を要求しているリソースの転送設定レジスタのアドレスを生成するデコーダを有することを特徴とするＤＭＡコントローラ。
（付記８）
付記７に記載のＤＭＡコントローラであって、
ＤＭＡ転送を要求しているリソースの転送設定レジスタから読み出したデータを格納するＤＭＡ転送設定レジスタをさらに有することを特徴とするＤＭＡコントローラ。
（付記９）
付記７または８に記載のＤＭＡコントローラであって、
前記デコーダは、セレクタとアドレス生成部とを有することを特徴とするＤＭＡコントローラ。
（付記１０）
ＤＭＡ転送をする複数のリソースとＤＭＡコントローラとを有する半導体装置におけるＤＭＡ転送制御方法であって、
前記複数のリソースのうちの１つがＤＭＡ転送を要求する段階と、
前記ＤＭＡコントローラが、前記ＤＭＡ転送を要求したリソースの転送設定レジスタのアドレスを生成する段階と、
前記ＤＭＡ転送を要求したリソースが、前記ＤＭＡコントローラにより生成された前記アドレスに基づいてＤＭＡ転送する段階とを有することを特徴とするＤＭＡ転送制御方法。
【図面の簡単な説明】
【００３５】
【図１】従来のＤＭＡ転送システムを有する半導体装置の構成を示すブロック図である。
【図２】本発明の一実施形態によるＤＭＡ転送システムを有する半導体装置の構成を示すブロック図である。
【図３】本発明の他の実施形態によるＤＭＡ転送システムを有する半導体装置の構成を示すブロック図である。
【図４】本発明の一実施形態によるデコーダの構成を示すブロック図である。
【図５】本発明の一実施形態によるＤＭＡ転送システムの動作を示すフローチャートである。
【符号の説明】
【００３６】
２００、３００  半導体装置
２１０、３１０  ＤＭＡコントローラ
２１２  ＤＭＡ転送設定レジスタ
２１４、３１４  デコーダ
２２０、２３０、３２０、３３０  リソース
２２２、２３２、３２２、３３２  転送設定レジスタ
２４０、３４０  ＲＡＭ
２５０、３５０  バス
４００  デコーダ
４１０  セレクタ
４２０  アドレス生成部
【図１】
2008210280.tif 000003
【図２】
2008210280.tif 000004
【図３】
2008210280.tif 000005
【図４】
2008210280.tif 000006
【図５】
2008210280.tif 000007