JP4686104B2 - Dmaコントローラ - Google Patents

Dmaコントローラ Download PDF

Info

Publication number
JP4686104B2
JP4686104B2 JP2002119752A JP2002119752A JP4686104B2 JP 4686104 B2 JP4686104 B2 JP 4686104B2 JP 2002119752 A JP2002119752 A JP 2002119752A JP 2002119752 A JP2002119752 A JP 2002119752A JP 4686104 B2 JP4686104 B2 JP 4686104B2
Authority
JP
Japan
Prior art keywords
transfer
register
value
transfer destination
destination address
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.)
Expired - Fee Related
Application number
JP2002119752A
Other languages
English (en)
Other versions
JP2003316722A (ja
Inventor
祐介 林
昌昭 谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2002119752A priority Critical patent/JP4686104B2/ja
Priority to US10/370,523 priority patent/US6763401B2/en
Publication of JP2003316722A publication Critical patent/JP2003316722A/ja
Application granted granted Critical
Publication of JP4686104B2 publication Critical patent/JP4686104B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、低消費電力型のDMA(ダイレクト・メモリ・アクセス)コントローラに関する。
【0002】
近年、家庭電化製品等の電気機器においては、低消費電力化が望まれている。そのため、電気機器に内蔵されるマイクロコンピュータについても、低消費電力で動作するものが要求されている。一方で、マイクロコンピュータを使用する電気機器はますます高性能化されてきており、より高速で動作する回路が必要である。したがって、マイクロコンピュータを搭載した電気機器では、データ転送等の性能を落とさずに低消費電力化をおこなう必要がある。
【0003】
【従来の技術】
一般に、コンピュータの分野において、メモリ間やメモリと周辺機器との間で高速にデータ転送をおこなう方式として、CPUを介さずに直接データの授受をおこなうDMA転送方式がある。図5は、従来の一般的なDMAコントローラの回路構成を示す図である。図5に示すように、従来のDMAコントローラは、データバス1からCPUライトによる転送元アドレス、転送先アドレスおよび転送回数が供給されると、転送元アドレスを転送元アドレス生成部2の転送元アドレスレジスタ(SA)21および転送元リロードレジスタ(SAR)22に格納する。
【0004】
また、転送先アドレスは転送先アドレス生成部3の転送先アドレスレジスタ(DA)31および転送先リロードレジスタ(DAR)32に格納される。さらに、転送回数が転送回数設定部4の転送回数レジスタ(TN)41および転送回数リロードレジスタ(TNR)42に格納される。このように、各リロードレジスタにそれぞれの初期値が格納されることによって、リロード機能が実現されている。
【0005】
上述した6個のレジスタ21,22,31,32,41,42にそれぞれ現状値および初期値が書き込まれ、開始信号を受け付けると、1回目のデータ転送が開始される。DMAコントローラは、転送元アドレスおよび転送先アドレスを出力する。それによって、転送元のメモリ等の、転送元アドレスに該当する領域に格納されたデータが、転送先のメモリ等の、転送先アドレスに該当する領域に書き込まれる。
【0006】
1回目のデータ転送が終了すると、演算器24により、転送元アドレスレジスタ21の格納値に対して、予め設定された増減幅設定値(符号25で示す)の加算または減算がおこなわれる。その演算の結果得られた値は、セレクタ23を介して転送元アドレスレジスタ21に、新たな転送元アドレスとして格納される。
【0007】
転送先アドレスについても同様であり、1回のデータ転送が終了すると、演算器34により、転送先アドレスレジスタ31の格納値に対して、予め設定された増減幅設定値(符号35で示す)の加算または減算がおこなわる。その演算結果は、セレクタ33を介して転送先アドレスレジスタ31に、新たな転送先アドレスとして格納される。ここで、本明細書では、転送元アドレスの増減幅と転送先アドレスの増減幅とは同じであることを前提としている。
【0008】
また、転送回数については、1回のデータ転送が終了すると、演算器44により、転送回数レジスタ41の格納値が1だけ減算される。その演算結果は、セレクタ43を介して転送回数レジスタ41に、新たな転送回数として格納される。転送元アドレスレジスタ21、転送先アドレスレジスタ31および転送回数レジスタ41にそれぞれ新たな値が格納されると、2回目のデータ転送が開始される。データ転送は、転送回数レジスタ41に格納された値が転送の最終値(たとえば「1」)になるまで繰り返しおこなわれる。
【0009】
転送回数レジスタ41の格納値が転送の最終値のときのデータ転送が終了すると、転送元リロードレジスタ22、転送先リロードレジスタ32および転送回数リロードレジスタ42にそれぞれ格納されている初期値が、転送元アドレスレジスタ21、転送先アドレスレジスタ31および転送回数レジスタ41に書き込まれる。そして、転送開始を示す信号に応答して、再び上述した動作でデータ転送が繰り返され、停止信号の発生により、停止する。なお、CPUが現在の転送元アドレス、転送先アドレスまたは転送回数を参照する場合には、転送元アドレスレジスタ21、転送先アドレスレジスタ31または転送回数レジスタ41の各格納値がデータバス1を介してCPUへ送られる。
【0010】
図6に、図5に示す従来のDMAコントローラにおける転送元アドレスレジスタ21および転送先アドレスレジスタ31の更新タイミング、並びに転送データの読み出しおよび書き込みのタイミングを示す。図6に示すように、従来は、転送元のメモリ等から転送対象のデータを読み出した直後に、転送元アドレスレジスタ21の格納値が更新される。
【0011】
ところで、転送元アドレスと転送先アドレスの変位量(オフセット)を設定するレジスタを設け、転送元の各アドレスにこの変位量を加減算して転送先の各アドレスを求めるようにした画像編集装置のDMAコントローラ用アドレス発生回路が提案されている(たとえば、特開昭63−89984号公報)。
【0012】
【発明が解決しようとする課題】
しかしながら、図5に示す従来のDMAコントローラでは、転送元アドレス生成部2、転送先アドレス生成部3および転送回数設定部4のそれぞれについて、現状値を格納するための転送元アドレスレジスタ21、転送先アドレスレジスタ31および転送回数レジスタ41と、初期値を格納するための転送元リロードレジスタ22、転送先リロードレジスタ32および転送回数リロードレジスタ42が必要である。
【0013】
そのため、フリップフロップの数が、チャネル数にレジスタのビット数を掛け合わせた数の2倍になってしまい、電力消費の増大および回路規模の増大を招く原因となっている。フリップフロップの電力消費を抑えるため、たとえば周波数を低くすることが考えられるが、この場合には性能低下を招くという不都合が生じる。
【0014】
また、前記特開昭63−89984号の提案は、データ転送を高速におこなうためのものであり、消費電力の削減を図るものではない。
【0015】
本発明は、上記問題点に鑑みてなされたものであって、性能を低下させることなく、低消費電力化および回路規模の縮小化が可能であり、さらには既存の回路に容易に組み込むことが可能な構成のDMAコントローラを提供することを目的とする。
【0016】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかるDMAコントローラは、転送先アドレス生成部に、転送先アドレスと転送元アドレスとの差分を計算する演算器と、その演算器により求められた差分を格納する差分保持レジスタと、差分保持レジスタに格納された差分と転送元アドレスとに基づいて転送先アドレスを計算して求める演算器とを備える。また、転送元アドレス生成部には、転送元アドレスの現状値を格納する転送元アドレスレジスタと、転送元アドレスの初期値を格納する転送元リロードレジスタを備える。
【0017】
この発明によれば、転送先アドレス生成部には、転送先アドレスレジスタと転送先リロードレジスタの代わりに、差分保持レジスタが設けられているため、従来に比べてアドレスを保持する一群のレジスタが削減されるので、フリップフロップの数が、チャネル数にレジスタのビット数を掛け合わせた数だけ減る。
【0018】
また、上記目的を達成するため、本発明にかかるDMAコントローラは、転送元アドレス生成部に、転送元アドレスと転送先アドレスとの差分を計算する演算器と、その演算器により求められた差分を格納する差分保持レジスタと、差分保持レジスタに格納された差分と転送先アドレスとに基づいて転送元アドレスを計算して求める演算器とを備える。また、転送先アドレス生成部には、転送先アドレスの現状値を格納する転送先アドレスレジスタと、転送先アドレスの初期値を格納する転送先リロードレジスタを備える。
【0019】
この発明によれば、転送元アドレス生成部には、転送元アドレスレジスタと転送元リロードレジスタの代わりに、差分保持レジスタが設けられているため、従来に比べてアドレスを保持する一群のレジスタが削減されるので、フリップフロップの数が、チャネル数にレジスタのビット数を掛け合わせた数だけ減る。
【0020】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照しつつ詳細に説明する。
【0021】
(実施の形態1)
図1は、本発明の実施の形態1にかかるDMAコントローラの回路構成を示す図である。図1に示すように、このDMAコントローラでは、転送元アドレス生成部2は、転送元アドレスレジスタ(SA)21、転送元リロードレジスタ(SAR)22およびセレクタ23を有する。転送先アドレス生成部5は、第1の差分計算用演算器51、差分保持レジスタ52および第2の差分計算用演算器53を有する。転送回数設定部4は、転送回数レジスタ(TN)41、転送回数リロードレジスタ(TNR)42およびセレクタ43を有する。また、転送元アドレス更新用演算器24および転送回数更新用演算器44が設けられている。
【0022】
転送元アドレスレジスタ21は、転送元アドレスの現状値を格納するレジスタである。転送元アドレスレジスタ21に格納された転送元アドレスの現状値は、転送元アドレスとして、転送元のメモリ等に供給される。転送元リロードレジスタ22は、CPUライトによりデータバス1から供給された転送元アドレスの初期値を格納するレジスタである。
【0023】
セレクタ23は、CPUライトによりデータバス1から初期値として転送元アドレスが供給されたときには、そのCPUライトにより供給された転送元アドレスを選択する。また、セレクタ23は、転送回数レジスタ41により指定された回数のデータ転送が終了したときには、転送元リロードレジスタ22に格納されている転送元アドレスの初期値を選択する。
【0024】
また、セレクタ23は、CPUライトにより初期値としての転送元アドレスが供給された後、転送回数レジスタ41により指定された回数のデータ転送が終了する前までは、つぎのアクセスのために転送元アドレス更新用演算器24により更新された転送元アドレスを選択する。セレクタ23により選択されたアドレスは現状値として転送元アドレスレジスタ21に格納される。
【0025】
転送元アドレス更新用演算器24は、転送元アドレスレジスタ21に格納されている転送元アドレスの現状値に対して、予め設定された増減幅設定値(符号25で示す)の加算または減算をおこなう。その演算結果は、セレクタ23を介して転送元アドレスレジスタ21に、新たな転送元アドレスとして格納される。図示しないCPUが現在の転送元アドレスを参照する場合には、転送元アドレスレジスタ21の格納値がデータバス1を介してCPUへ送られる。
【0026】
第1の差分計算用演算器51は、CPUライトによりデータバス1から初期値として供給された転送先アドレスの、転送元リロードレジスタ22に格納されている転送元アドレスの初期値に対する差分を計算する。差分保持レジスタ52は、第1の差分計算用演算器51により求められた差分値を格納するレジスタである。
【0027】
第2の差分計算用演算器53は、差分保持レジスタ52に格納された差分値を用いて、転送元アドレスレジスタ21に格納されている転送元アドレスの現状値から転送先アドレスの現状値を計算して求める。第2の差分計算用演算器53により求められた転送先アドレスの現状値は、転送先アドレスとして、転送先のメモリ等に供給される。転送元アドレスの増減幅と転送先アドレスの増減幅とは同じである。図示しないCPUが現在の転送先アドレスを参照する場合には、第2の差分計算用演算器53により求められた転送先アドレスの現状値がデータバス1を介してCPUへ送られる。
【0028】
転送回数レジスタ41は、転送回数の現状値を格納するレジスタである。転送回数リロードレジスタ42は、CPUライトによりデータバス1から供給された転送回数の初期値を格納するレジスタである。
【0029】
セレクタ43は、CPUライトによりデータバス1から初期値として転送回数が供給されたときには、そのCPUライトにより供給された転送回数を選択する。また、セレクタ43は、転送回数レジスタ41により指定された回数のデータ転送が終了したときには、転送回数リロードレジスタ42に格納されている転送回数の初期値を選択する。
【0030】
また、セレクタ43は、CPUライトにより初期値としての転送回数が供給された後、転送回数レジスタ41により指定された回数のデータ転送が終了する前までは、転送回数更新用演算器44により更新された転送回数を選択する。セレクタ43により選択された転送回数は現状値として転送回数レジスタ41に格納される。
【0031】
転送回数更新用演算器44は、転送回数レジスタ41に格納されている転送回数の現状値から1を引く演算をおこなう。その演算結果は、セレクタ43を介して転送回数レジスタ41に、新たな転送回数として格納される。図示しないCPUが現在の転送回数を参照する場合には、転送回数レジスタ41の格納値がデータバス1を介してCPUへ送られる。
【0032】
つぎに、図1に示す構成のDMAコントローラの動作について説明する。まず、データバス1からCPUライトによる転送元アドレス、転送先アドレスおよび転送回数が供給される。転送元アドレス生成部2では、供給された転送元アドレスを、転送元アドレスレジスタ21は現状値として格納し、また転送元リロードレジスタ22は初期値として格納する。
【0033】
一方、転送先アドレス生成部5では、供給された転送先アドレスと、転送元リロードレジスタ22に格納された転送元アドレスの初期値とに基づいて、第1の差分計算用演算器51によりそれらの差分を求め、それを差分保持レジスタ52に格納する。また、転送回数は、転送回数レジスタ41および転送回数リロードレジスタ42にそれぞれ現状値および初期値として格納される。
【0034】
転送元アドレスレジスタ21、転送元リロードレジスタ22、差分保持レジスタ52、転送回数レジスタ41および転送回数リロードレジスタ42に値が格納され、開始信号を受け付けると、1回目のデータ転送が開始される。DMAコントローラは、転送元アドレスレジスタ21の格納値を1回目のデータ転送の転送元アドレスとして転送元のメモリ等に出力する。
【0035】
このとき、第2の差分計算用演算器53は、転送元アドレスレジスタ21に格納されている転送元アドレスに対して、差分保持レジスタ52の格納値を用いて元の転送先アドレスを求める演算をおこなう。その演算結果は、1回目のデータ転送の転送先アドレスとして転送先のメモリ等に出力される。それによって、転送元のメモリ等の、転送元アドレスに該当する領域に格納されたデータが、転送先のメモリ等の、転送先アドレスに該当する領域に書き込まれる。
【0036】
1回目のデータ転送が終了すると、転送回数更新用演算器44により、転送回数レジスタ41の格納値が1だけ減算される。その演算結果は、セレクタ43を介して転送回数レジスタ41に、新たな転送回数として格納される。また、転送元アドレス更新用演算器24により、転送元アドレスレジスタ21の格納値に対して、予め設定された増減幅設定値25の加算または減算がおこなわれる。その演算結果は、転送元アドレスレジスタ21に2回目のデータ転送の転送元アドレスとして格納され、2回目のデータ転送時に出力される。
【0037】
一方、2回目のデータ転送時の転送先アドレスは、2回目のデータ転送の転送元アドレスと差分保持レジスタ52の格納値とに基づいて、第2の差分計算用演算器53による演算処理によって求められ、2回目のデータ転送時に出力される。3回目以降のデータ転送も同様にしておこなわれる。転送回数レジスタ41の格納値が転送の最終値のときのデータ転送が終了すると、転送元リロードレジスタ22に格納されている初期値が、転送元アドレスレジスタ21に書き込まれる。
【0038】
このとき、転送先アドレスの初期値は、転送元リロードレジスタ22から転送元アドレスレジスタ21に書き込まれた転送元アドレスの初期値と差分保持レジスタ52の格納値とに基づいて、第2の差分計算用演算器53による演算処理によって求められる。また、転送回数レジスタ41には、転送回数リロードレジスタ42に格納されている初期値が書き込まれる。そして、転送開始を示す信号に応答して、再び上述した動作でデータ転送が繰り返され、停止信号の発生により、停止する。
【0039】
図2に、図1に示す構成のDMAコントローラにおける転送元アドレスレジスタ21の更新タイミング、並びに転送データの読み出しおよび書き込みのタイミングを示す。図2に示すように、実施の形態1では、転送先のメモリ等に転送対象のデータを書き込んだ直後に、転送元アドレスレジスタ21の格納値が更新される。したがって、転送元アドレスレジスタ21の格納値と差分保持レジスタ52の格納値とに基づいて転送先アドレスを求めるために、転送元アドレスの現状値を格納するレジスタを別途設けずに済む。
【0040】
一例として、転送元アドレスと転送先アドレスの増減幅が同じである、32ビットアドレス空間からチャネル数が8の場合について考察する。転送元アドレス生成部2は、転送元アドレスレジスタ21と転送元リロードレジスタ22を有するため、つぎの計算式(1)より512ビットのフリップフロップを有する。また、転送先アドレス生成部5は、差分保持レジスタ52を有するため、差分保持レジスタ52が32ビットであるとすると、つぎの計算式(2)より256ビットのフリップフロップを有する。
【0041】
(32×2)×8=512ビット ・・・(1)
(32×1)×8=256ビット ・・・(2)
【0042】
それに対して、図5に示す従来のDMAコントローラでは、転送先アドレス生成部3が転送先アドレスレジスタ31と転送先リロードレジスタ32を有するため、転送先アドレス生成部3も512ビットのフリップフロップを有する。したがって、実施の形態1によれば、つぎの計算式(3)より256ビットのフリップフロップを削減することができ、これは従来のフリップフロップの数の25%に相当する。
【0043】
512ビット×2−(512ビット+256ビット)=256ビット ・・・(3)
【0044】
また、差分保持レジスタ52に格納されている差分値は、新たな転送元アドレスと新たな転送先アドレスがCPUライトにより供給されるまでは、普遍である。このため、差分保持レジスタ52の格納値を書き換えるとき以外は、差分保持レジスタ52にクロックを供給する必要がない。したがって、差分保持レジスタ52の書き換え時以外は、クロックを止めても何ら問題がなく、そのようにすることによって、さらに消費電力を低減することができる。具体的に上述した計算例によれば、差分保持レジスタ52の、前記(2)式より得られた256ビットのフリップフロップがほとんど動作することがないため、約50%の電力の削減効果と25%の面積削減効果が得られる。
【0045】
上述した実施の形態1によれば、転送先アドレス生成部5が、転送先アドレスレジスタと転送先リロードレジスタの代わりに、差分保持レジスタ52を有する構成であるため、従来に比べてアドレスを保持する一群のレジスタが削減され、電力消費の原因であったフリップフロップの数が、チャネル数にレジスタのビット数を掛け合わせた数だけ減る。したがって、DMAコントローラの消費電力を低減することができる。
【0046】
また、実施の形態1によれば、フリップフロップの削減により、フリップフロップに付随して存在するクロックバッファを削減することができる。クロックバッファは、クロックを伝える動作をするため、動作率が高く、電力を消費する原因となっているが、これを削減することにより、さらなる低消費電力化を図ることができる。
【0047】
また、実施の形態1によれば、差分を計算する2つの演算器51,53は、削減されたフリップフロップよりも小さい論理回路で構成されるため、回路規模を縮小することができる。
【0048】
また、実施の形態1によれば、低消費電力化を図るために動作周波数を低くする必要がないので、性能低下を防ぐことができる。
【0049】
また、実施の形態1によれば、従来のDMAコントローラと同様に、DMAコントローラから転送先および転送元の各メモリ等にそれぞれ転送先アドレスおよび転送元アドレスが出力され、かつDMAコントローラからデータバス1を介してCPUへ転送先アドレス、転送元アドレスおよび転送回数が出力されるので、DMAコントローラとその外部との接続関係が従来と同じであり、接続関係の変更をおこなわずに済む。したがって、実施の形態1のDMAコントローラを既存の回路に容易に組み込むことができる。
【0050】
(実施の形態2)
図3は、本発明の実施の形態2にかかるDMAコントローラの回路構成を示す図である。図3に示すように、このDMAコントローラでは、転送先アドレス生成部3は、転送先アドレスレジスタ(DA)31、転送先リロードレジスタ(DAR)32およびセレクタ33を有する。転送元アドレス生成部6は、第3の差分計算用演算器61、差分保持レジスタ62および第4の差分計算用演算器63を有する。転送回数設定部4および転送回数更新用演算器44は、実施の形態1と同じ構成であるため、実施の形態1と同一の符号を付して説明を省略する。また、転送先アドレス更新用演算器34が設けられている。
【0051】
転送先アドレスレジスタ31は、転送先アドレスの現状値を格納するレジスタである。転送先アドレスレジスタ31に格納された転送先アドレスの現状値は、転送先アドレスとして、転送先のメモリ等に供給される。転送先リロードレジスタ32は、CPUライトによりデータバス1から供給された転送先アドレスの初期値を格納するレジスタである。
【0052】
セレクタ33は、CPUライトによりデータバス1から初期値として転送先アドレスが供給されたときには、そのCPUライトにより供給された転送先アドレスを選択する。また、セレクタ33は、転送回数設定部4の転送回数レジスタ41により指定された回数のデータ転送が終了したときには、転送先リロードレジスタ32に格納されている転送先アドレスの初期値を選択する。
【0053】
また、セレクタ33は、CPUライトにより初期値としての転送先アドレスが供給された後、転送回数レジスタ41により指定された回数のデータ転送が終了する前までは、つぎのアクセスのために転送先アドレス更新用演算器34により更新された転送先アドレスを選択する。セレクタ33により選択されたアドレスは現状値として転送先アドレスレジスタ31に格納される。
【0054】
転送先アドレス更新用演算器34は、転送先アドレスレジスタ31に格納されている転送先アドレスの現状値に対して、予め設定された増減幅設定値(符号35で示す)の加算または減算をおこなう。その演算結果は、セレクタ33を介して転送先アドレスレジスタ31に、新たな転送先アドレスとして格納される。図示しないCPUが現在の転送先アドレスを参照する場合には、転送先アドレスレジスタ31の格納値がデータバス1を介してCPUへ送られる。
【0055】
第3の差分計算用演算器61は、CPUライトによりデータバス1から初期値として供給された転送元アドレスの、転送先リロードレジスタ32に格納されている転送先アドレスの初期値に対する差分を計算する。差分保持レジスタ62は、第3の差分計算用演算器61により求められた差分値を格納するレジスタである。
【0056】
第4の差分計算用演算器63は、差分保持レジスタ62に格納された差分値を用いて、転送先アドレスレジスタ31に格納されている転送先アドレスの現状値から転送元アドレスの現状値を計算して求める。第4の差分計算用演算器63により求められた転送元アドレスの現状値は、転送元アドレスとして、転送元のメモリ等に供給される。転送先アドレスの増減幅と転送元アドレスの増減幅とは同じである。図示しないCPUが現在の転送元アドレスを参照する場合には、第4の差分計算用演算器63により求められた転送元アドレスの現状値がデータバス1を介してCPUへ送られる。
【0057】
つぎに、図3に示す構成のDMAコントローラの動作について説明する。まず、データバス1からCPUライトによる転送先アドレス、転送元アドレスおよび転送回数が供給される。転送先アドレス生成部3では、供給された転送先アドレスを、転送先アドレスレジスタ31は現状値として格納し、また転送先リロードレジスタ32は初期値として格納する。
【0058】
一方、転送元アドレス生成部6では、供給された転送元アドレスと、転送先リロードレジスタ32に格納された転送先アドレスの初期値とに基づいて、第3の差分計算用演算器61によりそれらの差分を求め、それを差分保持レジスタ62に格納する。また、転送回数は、転送回数設定部4の転送回数レジスタ41および転送回数リロードレジスタ42にそれぞれ現状値および初期値として格納される。
【0059】
転送先アドレスレジスタ31、転送先リロードレジスタ32、差分保持レジスタ62、転送回数レジスタ41および転送回数リロードレジスタ42に値が格納され、開始信号を受け付けると、1回目のデータ転送が開始される。DMAコントローラは、転送先アドレスレジスタ31の格納値を1回目のデータ転送の転送先アドレスとして転送先のメモリ等に出力する。
【0060】
一方、第4の差分計算用演算器63は、転送先アドレスレジスタ31に格納されている転送先アドレスと、差分保持レジスタ62の格納値とに基づいて、転送元アドレスを求め、それを1回目のデータ転送の転送元アドレスとして転送元のメモリ等に出力する。それによって、転送元のメモリ等の、転送元アドレスに該当する領域に格納されたデータが、転送先のメモリ等の、転送先アドレスに該当する領域に書き込まれる。
【0061】
1回目のデータ転送が終了すると、転送回数更新用演算器44により、転送回数レジスタ41の格納値が1だけ減算され、その値が、転送回数設定部4のセレクタ43を介して転送回数レジスタ41に、新たな転送回数として格納される。また、転送先アドレス更新用演算器34により、転送先アドレスレジスタ31の格納値に対して、予め設定された増減幅設定値35の加算または減算がおこなわれる。その演算結果は、転送先アドレスレジスタ31に2回目のデータ転送の転送先アドレスとして格納され、2回目のデータ転送時に出力される。
【0062】
一方、2回目のデータ転送時の転送元アドレスは、2回目のデータ転送の転送先アドレスと差分保持レジスタ62の格納値とに基づいて、第4の差分計算用演算器63により求められ、2回目のデータ転送時に出力される。3回目以降のデータ転送も同様にしておこなわれる。転送回数レジスタ41の格納値が転送の最終値のときのデータ転送が終了すると、転送先リロードレジスタ32に格納されている初期値が、転送先アドレスレジスタ31に書き込まれる。
【0063】
転送元アドレスの初期値は、転送先リロードレジスタ32から転送先アドレスレジスタ31に書き込まれた転送先アドレスの初期値と差分保持レジスタ62の格納値とに基づいて、第4の差分計算用演算器63により求められる。また、転送回数レジスタ41には、転送回数リロードレジスタ42に格納されている初期値が書き込まれる。そして、転送開始を示す信号に応答して、再び上述した動作でデータ転送が繰り返され、停止信号の発生により、停止する。
【0064】
図4に、図3に示す構成のDMAコントローラにおける転送先アドレスレジスタ31の更新タイミング、並びに転送データの読み出しおよび書き込みのタイミングを示す。図4に示すように、実施の形態2では、転送先のメモリ等に転送対象のデータを書き込んだ直後に、転送先アドレスレジスタ31の格納値が更新される。
【0065】
上述した実施の形態2によれば、実施の形態1と同様に、従来に比べてアドレスを保持する一群のレジスタが削減されるため、フリップフロップの数が、チャネル数にレジスタのビット数を掛け合わせた数だけ減るので、性能低下を招くことなく、DMAコントローラの消費電力を低減するとともに、回路規模を縮小することができる。
【0066】
また、実施の形態2によれば、実施の形態1と同様に、DMAコントローラとその外部との接続関係の変更をおこなわずに済むため、実施の形態2のDMAコントローラを既存の回路に容易に組み込むことができる。
【0067】
以上において本発明は、上述した各実施の形態に限らず、種々変更可能である。たとえば、アドレス空間の大きさにより差分保持レジスタのビット数が決まるため、小さい空間しか持たない場合には、差分保持レジスタのビット数を減らすことができる。
【0068】
(付記1)転送先アドレスの加算値または減算値と、転送元アドレスの加算値または減算値とが同じであるDMAコントローラにおいて、
転送元アドレスの現状値を格納する転送元アドレスレジスタと、
転送元アドレスの初期値を格納する転送元リロードレジスタと、
転送元アドレスの初期値と転送先アドレスの初期値との差分を求める第1の差分計算用演算器と、
前記第1の差分計算用演算器により求められた差分値を格納する差分保持レジスタと、
前記差分保持レジスタに格納された差分値と前記転送元アドレスレジスタに格納された転送元アドレスの現状値とに基づいて転送先アドレスの現状値を求める第2の差分計算用演算器と、
を具備することを特徴とするDMAコントローラ。
【0069】
(付記2)前記第1の差分計算用演算器には、前記転送元リロードレジスタから転送元アドレスの初期値が供給されることを特徴とする付記1に記載のDMAコントローラ。
【0070】
(付記3)前記転送元アドレスレジスタに格納されている転送元アドレスの現状値は、当該転送元アドレスの現状値に基づいて転送元から読み出されたデータが転送先に書き込まれた直後に、前記加算値または前記減算値により更新されることを特徴とする付記1または2に記載のDMAコントローラ。
【0071】
(付記4)前記転送元アドレスレジスタに格納されている転送元アドレスの現状値は、データ転送が指定された回数だけ終了すると、前記転送元リロードレジスタに格納されている転送元アドレスの初期値に書き換えられることを特徴とする付記1〜3のいずれか一つに記載のDMAコントローラ。
【0072】
(付記5)前記転送元アドレスレジスタに格納されている転送元アドレスの現状値が、前記転送元リロードレジスタに格納されている転送元アドレスの初期値に書き換えられると、前記第2の差分計算用演算器は、書き換えられた転送元アドレスの現状値と前記差分保持レジスタに格納された差分値とに基づいて転送先アドレスの初期値を求めることを特徴とする付記4に記載のDMAコントローラ。
【0073】
(付記6)転送先アドレスの加算値または減算値と、転送元アドレスの加算値または減算値とが同じであるDMAコントローラにおいて、
転送先アドレスの現状値を格納する転送先アドレスレジスタと、
転送先アドレスの初期値を格納する転送先リロードレジスタと、
転送先アドレスの初期値と転送元アドレスの初期値との差分を求める第3の差分計算用演算器と、
前記第3の差分計算用演算器により求められた差分値を格納する差分保持レジスタと、
前記差分保持レジスタに格納された差分値と前記転送先アドレスレジスタに格納された転送先アドレスの現状値とに基づいて転送元アドレスの現状値を求める第4の差分計算用演算器と、
を具備することを特徴とするDMAコントローラ。
【0074】
(付記7)前記第3の差分計算用演算器には、前記転送先リロードレジスタから転送先アドレスの初期値が供給されることを特徴とする付記6に記載のDMAコントローラ。
【0075】
(付記8)前記転送先アドレスレジスタに格納されている転送先アドレスの現状値は、当該転送先アドレスの現状値に該当する領域に、転送元から読み出されたデータが書き込まれた直後に、前記加算値または前記減算値により更新されることを特徴とする付記6または7に記載のDMAコントローラ。
【0076】
(付記9)前記転送先アドレスレジスタに格納されている転送先アドレスの現状値は、データ転送が指定された回数だけ終了すると、前記転送先リロードレジスタに格納されている転送先アドレスの初期値に書き換えられることを特徴とする付記6〜8のいずれか一つに記載のDMAコントローラ。
【0077】
(付記10)前記転送先アドレスレジスタに格納されている転送先アドレスの現状値が、前記転送先リロードレジスタに格納されている転送先アドレスの初期値に書き換えられると、前記第4の差分計算用演算器は、書き換えられた転送先アドレスの現状値と前記差分保持レジスタに格納された差分値とに基づいて転送元アドレスの初期値を求めることを特徴とする付記9に記載のDMAコントローラ。
【0078】
(付記11)前記差分保持レジスタには、前記第1の差分計算用演算器により新たに求められた差分値を格納するときのみ、クロックが供給されることを特徴とする付記1〜5のいずれか一つに記載のDMAコントローラ。
【0079】
(付記12)前記差分保持レジスタには、前記第3の差分計算用演算器により新たに求められた差分値を格納するときのみ、クロックが供給されることを特徴とする付記6〜10のいずれか一つに記載のDMAコントローラ。
【0080】
【発明の効果】
本発明によれば、従来に比べてアドレスを保持する一群のレジスタが削減され、フリップフロップの数が、チャネル数にレジスタのビット数を掛け合わせた数だけ減るので、性能低下を招くことなく、DMAコントローラの消費電力を低減するとともに、回路規模を縮小することができるという効果が得られる。また、本発明によれば、DMAコントローラとその外部との接続関係の変更をおこなわずに済むため、DMAコントローラを既存の回路に容易に組み込むことができるという効果が得られる。また、本発明によれば、差分保持レジスタに格納されている差分値は、新たな転送元アドレスと新たな転送先アドレスがCPUライトにより供給されるまでは普遍であり、差分保持レジスタの格納値を書き換えるとき以外は、差分保持レジスタにクロックを供給する必要がないため、差分保持レジスタの書き換え時以外は、クロックを止めることができ、さらに消費電力を低減することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかるDMAコントローラの回路構成を示す図である。
【図2】図1に示すDMAコントローラの動作タイミングを示す図である。
【図3】本発明の実施の形態2にかかるDMAコントローラの回路構成を示す図である。
【図4】図3に示すDMAコントローラの動作タイミングを示す図である。
【図5】従来のDMAコントローラの回路構成を示す図である。
【図6】図5に示すDMAコントローラの動作タイミングを示す図である。
【符号の説明】
21 転送元アドレスレジスタ
22 転送元リロードレジスタ
31 転送先アドレスレジスタ
32 転送先リロードレジスタ
51 第1の差分計算用演算器
52,62 差分保持レジスタ
53 第2の差分計算用演算器
61 第3の差分計算用演算器
63 第4の差分計算用演算器

Claims (8)

  1. 転送先アドレスの加算値または減算値と、転送元アドレスの加算値または減算値とが同じであるDMAコントローラにおいて、
    転送元アドレスの現状値を格納する転送元アドレスレジスタと、
    転送元アドレスの初期値を格納する転送元リロードレジスタと、
    転送元アドレスの初期値と転送先アドレスの初期値との差分を求める第1の差分計算用演算器と、
    前記第1の差分計算用演算器により求められた差分値を格納する差分保持レジスタと、
    前記差分保持レジスタに格納された差分値と前記転送元アドレスレジスタに格納された転送元アドレスの現状値とに基づいて転送先アドレスの現状値を求める第2の差分計算用演算器とを具備し、
    前記差分保持レジスタには、前記第1の差分計算用演算器により新たに求められた差分値を格納するときのみ、クロックが供給され
    前記転送元アドレスレジスタに格納された前記転送元アドレスの現状値をデータ転送の転送元アドレスとして出力し、
    前記第2の差分計算用演算器の求めた前記転送先アドレスの現状値を転送先アドレスとして出力し、
    前記転送元アドレスレジスタに格納されている前記転送元アドレスの現状値は、当該転送元アドレスの現状値に基づいて転送元から読み出されたデータが転送先に書き込まれた直後に、前記加算値または前記減算値により更新されることを特徴とするDMAコントローラ。
  2. 前記第1の差分計算用演算器には、前記転送元リロードレジスタから転送元アドレスの初期値が供給されることを特徴とする請求項1に記載のDMAコントローラ。
  3. 前記転送元アドレスレジスタに格納されている転送元アドレスの現状値は、データ転送が指定された回数だけ終了すると、前記転送元リロードレジスタに格納されている転送元アドレスの初期値に書き換えられることを特徴とする請求項1または2に記載のDMAコントローラ。
  4. 前記転送元アドレスレジスタに格納されている転送元アドレスの現状値が、前記転送元リロードレジスタに格納されている転送元アドレスの初期値に書き換えられると、前記第2の差分計算用演算器は、書き換えられた転送元アドレスの現状値と前記差分保持レジスタに格納された差分値とに基づいて転送先アドレスの初期値を求めることを特徴とする請求項3に記載のDMAコントローラ。
  5. 転送先アドレスの加算値または減算値と、転送元アドレスの加算値または減算値とが同じであるDMAコントローラにおいて、
    転送先アドレスの現状値を格納する転送先アドレスレジスタと、
    転送先アドレスの初期値を格納する転送先リロードレジスタと、
    転送先アドレスの初期値と転送元アドレスの初期値との差分を求める第3の差分計算用演算器と、
    前記第3の差分計算用演算器により求められた差分値を格納する差分保持レジスタと、
    前記差分保持レジスタに格納された差分値と前記転送先アドレスレジスタに格納された転送先アドレスの現状値とに基づいて転送元アドレスの現状値を求める第4の差分計算用演算器とを具備し、
    前記差分保持レジスタには、前記第3の差分計算用演算器により新たに求められた差分値を格納するときのみ、クロックが供給され
    前記転送先アドレスレジスタに格納された前記転送先アドレスの現状値をデータ転送の転送先アドレスとして出力し、
    前記第4の差分計算用演算器の求めた前記転送元アドレスの現状値を転送元アドレスとして出力し、
    前記転送先アドレスレジスタに格納されている前記転送先アドレスの現状値は、当該転送先アドレスの現状値に該当する領域に、転送元から読み出されたデータが書き込まれた直後に、前記加算値または前記減算値により更新されることを特徴とするDMAコントローラ。
  6. 前記第3の差分計算用演算器には、前記転送先リロードレジスタから転送先アドレスの初期値が供給されることを特徴とする請求項5に記載のDMAコントローラ。
  7. 前記転送先アドレスレジスタに格納されている転送先アドレスの現状値は、データ転送が指定された回数だけ終了すると、前記転送先リロードレジスタに格納されている転送先アドレスの初期値に書き換えられることを特徴とする請求項5または6に記載のDMAコントローラ。
  8. 前記転送先アドレスレジスタに格納されている転送先アドレスの現状値が、前記転送先リロードレジスタに格納されている転送先アドレスの初期値に書き換えられると、前記第4の差分計算用演算器は、書き換えられた転送先アドレスの現状値と前記差分保持レジスタに格納された差分値とに基づいて転送元アドレスの初期値を求めることを特徴とする請求項7に記載のDMAコントローラ。
JP2002119752A 2002-04-22 2002-04-22 Dmaコントローラ Expired - Fee Related JP4686104B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002119752A JP4686104B2 (ja) 2002-04-22 2002-04-22 Dmaコントローラ
US10/370,523 US6763401B2 (en) 2002-04-22 2003-02-24 Direct memory access controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002119752A JP4686104B2 (ja) 2002-04-22 2002-04-22 Dmaコントローラ

Publications (2)

Publication Number Publication Date
JP2003316722A JP2003316722A (ja) 2003-11-07
JP4686104B2 true JP4686104B2 (ja) 2011-05-18

Family

ID=29207958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002119752A Expired - Fee Related JP4686104B2 (ja) 2002-04-22 2002-04-22 Dmaコントローラ

Country Status (2)

Country Link
US (1) US6763401B2 (ja)
JP (1) JP4686104B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271542A (ja) * 2002-03-18 2003-09-26 Fujitsu Ltd ダイレクトアクセスコントローラ
JP2004029898A (ja) * 2002-06-21 2004-01-29 Renesas Technology Corp データプロセッサ
JP4908017B2 (ja) 2006-02-28 2012-04-04 富士通株式会社 Dmaデータ転送装置及びdmaデータ転送方法
FR2935056A1 (fr) * 2008-08-14 2010-02-19 St Microelectronics Rousset Systeme de traitement de donnees disposant de moyens de traitement repartis pour exploiter des latences intrinseques du systeme

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6389984A (ja) 1986-10-03 1988-04-20 Fuji Xerox Co Ltd 画像編集装置のdmaコントロ−ラ用アドレス発生回路
JPH06332790A (ja) 1993-05-18 1994-12-02 Sansei Denshi Japan Kk メモリ空間制御方法及びメモリ装置
US5628026A (en) * 1994-12-05 1997-05-06 Motorola, Inc. Multi-dimensional data transfer in a data processing system and method therefor
US5706483A (en) * 1994-12-13 1998-01-06 Microsoft Corporation Run-time code compiler for data block transfer
US5737638A (en) * 1995-07-14 1998-04-07 International Business Machines Corporation System for determining plurality of data transformations to be performed upon single set of data during single transfer by examining communication data structure
JP2002342262A (ja) * 2001-05-11 2002-11-29 Fujitsu Ltd ダイレクトメモリアクセス制御装置およびダイレクトメモリアクセス制御方法

Also Published As

Publication number Publication date
JP2003316722A (ja) 2003-11-07
US6763401B2 (en) 2004-07-13
US20030200362A1 (en) 2003-10-23

Similar Documents

Publication Publication Date Title
JP4408712B2 (ja) 多倍長データ積和演算処理回路及びモンゴメリ積和剰余演算回路
US7454589B2 (en) Data buffer circuit, interface circuit and control method therefor
US6560691B2 (en) Modulus address generator and method for determining a modulus address
CN110704109B (zh) 一种椭圆曲线密码协处理器
JP4686104B2 (ja) Dmaコントローラ
JP3977592B2 (ja) データ処理装置
JP3789316B2 (ja) ベクトル処理装置のルーティングアドレス生成方式
US6760790B2 (en) Direct access controller
JP2008282065A (ja) アドレス変換メモリアクセス機構を備える半導体装置
US7363465B2 (en) Semiconductor device, microcomputer, and electronic equipment
JP4790545B2 (ja) 画像処理装置、画像処理方法
JP2530826B2 (ja) 表示制御装置
JP3553815B2 (ja) 演算装置
JP3473746B2 (ja) データ送受信回路
JP2004078714A (ja) データ処理装置
CN116647318A (zh) 防御密码系统时间攻击的方法及密码系统处理电路
JP4771619B2 (ja) ダイレクトメモリアクセス制御装置
JP2008117279A (ja) 電子回路、電子機器、プロジェクタ、画像生成方法
JP3001545B1 (ja) ベクトルデータ処理装置
JP2001325244A (ja) 半導体装置、マイクロコンピュータ及び電子機器
JP2010054396A (ja) タイミングデータ転送回路
JP2004021750A (ja) バス制御装置及びバス制御方法
JP2005322176A (ja) アドレス生成装置および演算装置
JPH0643216A (ja) アドレス発生器
JPH05157815A (ja) アドレス発生器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080619

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080728

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20081205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110214

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees