[go: up one dir, main page]

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

Dmaコントローラ Download PDF

Info

Publication number
JP6364951B2
JP6364951B2 JP2014106365A JP2014106365A JP6364951B2 JP 6364951 B2 JP6364951 B2 JP 6364951B2 JP 2014106365 A JP2014106365 A JP 2014106365A JP 2014106365 A JP2014106365 A JP 2014106365A JP 6364951 B2 JP6364951 B2 JP 6364951B2
Authority
JP
Japan
Prior art keywords
bus
transfer
dma
data
master port
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
JP2014106365A
Other languages
English (en)
Other versions
JP2015222487A (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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2014106365A priority Critical patent/JP6364951B2/ja
Publication of JP2015222487A publication Critical patent/JP2015222487A/ja
Application granted granted Critical
Publication of JP6364951B2 publication Critical patent/JP6364951B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Description

本発明は、DMA(Direct Memory Access)方式によりデータを転送するDMAコントローラに関する。
例えばバスマスタとしてのCPU(Central Processing Unit)と、様々な機能を提供する複数のバススレーブとでシステムを構築する場合、これらが単一のバスで接続されることはない。この主な理由は、データの転送性能がバススレーブ毎に異なるためである。このため、転送性能の高いバススレーブや、CPU、DMAコントローラを高速バスに接続するとともに、転送性能の低いバススレーブを低速バスに接続して、高速バスおよび低速バス同士をバスブリッジで接続する構成が一般的である。
この構成において、データがDMA転送される場合、当該転送が低速バスで完結するにもかかわらず、DMA転送が高速バスを介して制御されるので、DMAコントローラによって高速バスが占有される。このため、CPUによるデータ転送が実行できず、高速バスの利用効率が低下する。
そこで、DMA転送が低速バスで完結する場合には、高速バスを切り離すとともに、DMAコントローラにおける処理をバスブリッジに移行させる技術が知られている(特許文献1参照)。この技術では、低速バスで完結するデータ転送をバスブリッジに実行させる。これにより、DMAコントローラは、別の転送処理を実行するので、高速バスの利用効率の低下が防止される。
特許第3328246号
しかしながら、上記技術において、バスブリッジを介して高速バスおよび低速バスの双方を使用したデータ転送は、低速バスの転送性能に律速されてしまう。すなわち、高速バスでは、より高速なデータ転送が可能であるにもかかわらず、低速バスの転送性能以上でデータを転送することができないのである。このため、高速バスの占有時間が長くなり、システム全体でみたときの効率が低下する、という問題があった。
一方、近年では、1つの半導体チップに必要とされる一連の機能(モジュールとしてのバススレーブ)を複数集積して、特定の用途に特化したSoC(System on Chip)が知られている。SoCで必要とされるバススレーブの転送性能は、非常に多岐にわたり、複数種類のバスを用いたデータ転送の効率化が要求されている。このため、バスとして、多数の3つ以上のバスを用意しなければならないが、上記技術では、そもそも2種類のバスしか想定されていない。
本発明は、このような事情に鑑みてなされたものであり、その目的の一つは、転送性能の異なる3つ以上のバスを有する構成において、データの転送効率の改善を図ったDMAコントローラを提供することにある。
上記目的を達成するために、本発明の一態様に係るDMAコントローラは、ソースアドレスからディスティネーションアドレスにデータを転送するDMAコントローラであって、少なくとも3つ以上のバスに対応して設けられ、それぞれが対応するバスに接続されるマスターポートと、前記バスに接続されたモジュールのアドレスを、当該接続されたバスに対応付けて記憶するアドレステーブルと、当該ソースアドレスのモジュールが属する転送元バスと、当該ディスティネーションアドレスのモジュールが属する転送先バスとを、前記アドレステーブルを参照して特定する特定部と、前記ソースアドレスから前記ディスティネーションアドレスにデータを転送する経路を、前記転送元バス、前記転送元バスに接続されたマスターポート、前記転送先バスに接続されたマスターポート、および、前記転送先バスに設定する転送制御部と、を具備することを特徴とする。
上記一態様に係るDMAコントローラによれば、ソースアドレスからディスティネーションアドレスへのデータが、転送元バスから転送先バスにダイレクトに転送される。このため、上記一態様によれば、3つ以上のバスを有する構成において、転送元バスおよび転送先バスの間にあるバスや、バス間のバスブリッジを経由させずに、最短経路でデータが転送されるので、テータの転送速度を改善することができる。
上記一態様において、前記3つ以上のバスに対応して設けられたマスターポートのうち、少なくとも2つ以上は、互いに異なる転送帯域で、それぞれに対応するバスにデータ転送する構成が好ましい。ここで、転送帯域とは、単位時間において実際に転送可能なデータ量をいい、主にバス幅、動作周波数、レイテンシ(遅延)によって定まる。
また、上記一態様において、前記3つ以上のバスが、バスブリッジを介して直列に接続される構成としても良い。
ここでいう直列に接続される、とは、例えば第1バスから第4バスまでの4つを有するのであれば、第1バスと第2バスとの間にバスブリッジが、第2バスと第3バスとの間にバスブリッジが、第3バスと第4バスとの間にバスブリッジが、それぞれ設けられて、バス間同士のデータ転送が可能な構成をいう。
上記一態様において、前記マスターポートは、リードマスターポートおよびライトマスターポートの組である構成が好ましい。この構成によれば、同じバスにおいてリードマスターポートを介したリード転送と、ライトマスターポートを介したライト転送とが実行可能であるので、DMAコントローラを含むシステム全体の効率を向上させることができる。
上記一態様において、前記転送元バスおよび転送先バスが同一である場合、当該転送元バスのリードマスターポートを介してリード転送されたデータが、当該転送先バスのライトマスターポートを介してライト転送される構成としても良い。
また、前記3つ以上のバスが、それぞれバスブリッジを介して直列に接続され、前記転送先バスが、前記転送元バスに前記バスブリッジを介して接続されたバスである場合、当該転送元バスまたは当該転送先バスのいずれかに対応するマスターポートと、当該バスブリッジとを介してデータが転送される構成としても良い。
上記一態様において、前記転送制御部によってデータ転送の機能が割り当てられる転送チャネルを複数有し、前記転送制御部は、前記複数の転送チャネルのうち、一の転送チャネルに、一のソースアドレスから一のディスティネーションアドレスへのデータ転送を割り当てた場合に、当該一のソースアドレスのモジュールが属する転送元バスに接続されたリードマスターポートと、当該一のディスティネーションアドレスのモジュールが属する転送先バスに接続されたライトマスターポートとを、他の転送チャネルによるデータ転送の経路に設定していなければ、当該一の転送チャネルに、割り当てたデータ転送を許可する構成としても良い。
この構成によれば、データ転送が割り当てられた一の転送チャネルは、リードマスターポートとライトマスターポートとが他の転送チャネルに使用されていない限り、データ転送を実行する。
実施形態に係るDMAコントローラを含むシステムの構成を示す図である。 DMAコントローラの構成を示すブロック図である。 DMAコントローラにおけるアドレステーブルの一例を示す図である。 DMAコントローラの動作を示すフローチャートである。 システムにおけるデータ転送経路の一例を示す図である。 DMAコントローラにおいて設定された転送経路の一例を示す図である。 システムにおけるデータ転送経路の一例を示す図である。 DMAコントローラにおいて設定された転送経路の一例を示す図である。 DMAコントローラにおいて設定された転送経路の一例を示す図である。 DMAコントローラにおいて設定された転送経路の一例を示す図である。 DMAコントローラにおいて設定された転送経路の一例を示す図である。 比較例のDMAコントローラにおけるデータ転送経路の例を示す図である。
以下、本発明の実施形態について図面を参照して説明する。
図1は、実施形態に係るDMAコントローラ50を含むシステム1の全体の構成を示すブロック図である。
この図に示されるように、システム1は、バス(A)110、バス(B)120、バス(C)130およびバス(D)140と、これらのバスの各々に接続されたDMAコントローラ50と、バス同士を接続するバスブリッジ12、23、34とを含み、各バスには、1または複数のモジュールが次のように接続されている。
すなわち、バス(A)110には、CPU112、動画デコーダ114、描画エンジン116およびSRAM(Static Random Access Memory)118が接続され、バス(B)120には、DRAM(Dynamic Random Access Memory)122、および、電源が遮断されても、記憶したデータを保持する不揮発性のメモリ124が接続される。また、バス(C)130には、サウンド回路(音源)132が接続され、バス(D)140には、SPI(Serial Peripheral Interface)142、I2C(Inter-Integrated Circuit)144、GPIO(General Purpose Input/Output)146、および、ROM(Read Only Memory)148が接続される。
DMAコントローラ50の詳細については後述するが、バスの各々に対応したマスターポートP1〜P4を有し、マスターポートP1〜P4の各々は、「R」と表記されたリードマスターポートと、「W」と表記されたライトマスターポートとの組をそれぞれ有する。マスターポートP1〜P4のうち、マスターポートP1は、バス(A)110に対応し、同様に、マスターポートP2、P3、P4は、バス(B)120、バス(C)130、バス(D)140に対応する。
一方、バス(A)110、バス(B)120、バス(C)130、バス(D)140の各々は、指定されたアドレス(ソースアドレス)のモジュールから読み出されたデータを転送するリードバスと、指定されたアドレス(ディスティネーションアドレス)に書き込むデータを転送するライトバスと、の独立した2つの単方向バスをそれぞれ有する。
なお、各バスにおける動作周波数(転送速度)は、互いに異なっている。図の例では、バスの転送速度は、速い順に、
バス(B)120>バス(A)110>バス(C)130>バス(D)140
となっている。
バス(A)110、バス(B)120、バス(C)130、バス(D)140の各々には、DMAコントローラ50にアクセスするためのポイントApがそれぞれ2つずつ設けられる。2つのポイントApの一方は、対応するマスターポートのリードマスターポートに接続され、他方は、ライトマスターポートに接続される。
バスブリッジ12は、バス(A)110およびバス(B)120の間において、バスアクセスを双方向に変換する。同様に、バスブリッジ23はバス(B)120およびバス(C)130の間において、また、バスブリッジ34はバス(C)130およびバス(D)140の間において、それぞれバスアクセスを双方向に変換する。このようにして、バス(A)110、バス(B)120、バス(C)130およびバス(D)140は、バスブリッジを介して直列に接続される。
図2は、DMAコントローラ50の構成を示すブロック図である。
図に示されるように、DMAコントローラ50は、上述したマスターポートP1〜P4のほか、転送制御部502、選択部504、特定部512、アドレステーブル514、および、DMAチャネル(転送チャネル)Ch0〜Ch15を含む。
転送制御部502は、CPU112からDMA転送命令を受け取ったとき、後述する処理を実行して、DMAコントローラ50の各部を制御したり、各部を設定したりする。
DMAチャネルCh0〜Ch15の各々は、それぞれ転送制御部502による制御にしたがって、ソースアドレスから読み出したデータを、図示省略したFIFO(Fast In Fast Out)メモリにバッファリングした上で、ディスティネーションアドレスに転送する。このとき、リードマスターポートからDMAチャネルの入力端までの経路、および、DMAチャネルの出力端からライトマスターポートまでの経路は、それぞれ転送制御部502の制御にしたがって選択部504で設定される。
選択部504は、DMAチャネルCh0〜Ch15の各々における入出力端と、マスターポートP1〜P4におけるリードマスターポートとライトマスターポートとを接続して、DMAコントローラ50での経路を設定する。なお、転送制御部502が経路を設定するために必要な情報を記憶する構成がアドレステーブル514であり、当該アドレステーブル514から必要な情報を特定し、転送制御部502に通知する構成が特定部512である。
図3は、アドレステーブル514の内容の一例を示す図である。この図に示されるように、アドレステーブル514では、バス(A)110、バス(B)120、バス(C)130、バス(D)140毎に、接続されたモジュールのアドレス範囲が対応付けられて記憶されている。このため、特定部512が、アドレステーブル514を参照することで、指定されたアドレスのモジュールがどのバスに接続されているのかを特定できるようになっている。
なお、CPU112については、DMA転送を命令するモジュールであり、CPU112自身はDMA転送の対象にならないので、アドレステーブル514の記載対象外となっている。
次に、DMAコントローラ50の動作について、図面を参照して説明する。
図4は、DMAコントローラ50における転送制御部502の制御内容を示すフローチャートである。
まず、転送制御部502は、DMA転送命令を受け取ったとき、DMAチャネルCh0〜Ch15のうち、未割当のチャネル(空きチャネル)、すなわち、DMA転送に関与していないDMAチャネルがあるか否かを判別する(ステップSa11)。転送制御部502は、空きチャネルがないと判別すれば(ステップSa11の判別結果が「No」であれば)、処理手順をステップSa11に戻す。このため、空きチャネルが発生するまで、転送制御部502は、当該DMA転送命令をステップSa11で待機(キュー)させることになる。
なお、DMA転送を完了したDMAチャネルは、後述するように割当が解除されるので、DMA転送命令を受け取ったときに空きチャネルがなく、判別結果が当初「No」であっても、ステップSa11で待機していれば、やがて「Yes」に転じることになる。
転送制御部502は、空きチャネルがあると判別すれば(ステップSa11の判別結果が「Yes」であれば)、当該空きチャネルの1つを、当該DMA転送命令を実行させるチャネルとして割り当てる(ステップSa12)。
次に、転送制御部502は、特定部512に対し、当該DMA転送命令に係るソースアドレスとディスティネーションアドレスとを通知して、転送元バスと転送先バスとの特定を指示する(ステップSa13)。この指示によって特定部512は、アドレステーブル514を参照して、ソースアドレスに対応するバスを転送元バスと特定し、ディスティネーションアドレスに対応するバスを転送先バスと特定して、転送制御部502に返送する。
転送制御部502は、割り当てたDMAチャネルが特定部512によって特定された転送元バスおよび転送先バスを用いてDMA転送が可能であるか否かを判別する(ステップSa14)。
詳細には、転送制御部502は、転送元バスのリードマスターポートと転送先バスのライトマスターポートとの少なくとも一方が割り当てたDMAチャネル以外の他のDMAチャネルによってDMA転送に使用されていれば、割り当てたDMAチャネルによるDMA転送を不可と判別し(ステップSa14の判別結果を「No」とし)、処理手順をステップSa14に戻す。なお、DMA転送が不可と判別されても、他のDMAチャネルによるDMA転送の完了によって、リードマスターポート、ライトマスターポートが使用されなくなる。このため、ステップSa14の判別結果が当初「No」であっても、当該ステップSa14で待機していれば、やがて「Yes」に転じることになる。
転送制御部502は、割り当てたDMAチャネルによるDMA転送が可能であると判別すれば(ステップSa14の判別結果が「Yes」であれば)、選択部504に対して次のような経路を設定させる(ステップSa15)。
すなわち、転送制御部502は、割り当てたDMAチャネルの入力端と転送元バスのリードマスターポートとを接続する経路と、当該DMAチャネルの出力端と転送先バスのライトマスターポートとを接続する経路と、を選択部504に設定するように制御する。選択部504は、この制御にしたがった経路を設定する。
転送制御部502は、選択部504に対して経路を設定させると、割り当てたDMAチャネルに対してDMA転送を指示する(ステップSa16)。これにより、当該DMAチャネルがDMA転送命令に係るデータのDMA転送を開始する。
転送制御部502は、割り当てたDMAチャネルによるDMA転送が終了したか否かを判別する(ステップSa17)。
転送制御部502は、割り当てたDMAチャネルによるDMA転送が進行中であると判別すれば(ステップSa17の判別結果が「No」であれば)、処理手順をステップSa17に戻す。すなわち、当該DMA転送が終了するまで、転送制御部502は、ステップSa17で待機する。
一方、割り当てたDMAチャネルによるDMA転送が終了したと判別すれば(ステップSa17の判別結果が「Yes」であれば)、転送制御部502は、当該DMAチャネルの割り当てを解除する(ステップSa18)。これにより、次のDMA転送命令を受け取ったときに、当該DMAチャネルを割り当てて、次のDMA転送を実行させることができる。
ステップSa18の後、転送制御部502において、DMA転送命令を受け取ったときの処理が終了する。転送制御部502は、DMA転送命令を受け取る毎に、図4に示した処理を実行する。
次に、DMA転送の具体例について説明する。図5は、DMA転送によるデータの経路の一例を示す図であり、次のような条件を想定して設定される。詳細には、この例では、当該DMA転送命令において、DMAチャネルCh0が未割当であるために(ステップSa11)、当該DMAチャネルCh0にDMA転送が割り当てられた場合(ステップSa12)を想定している。
また、当該DMA転送命令において、ソースアドレスで示されるモジュール(転送元)がROM148であり、ディスティネーションアドレスで示されるモジュール(転送先)がSRAM118である場合を想定している。この場合、特定部512は、アドレステーブル514を参照して、ソースアドレスに対応する転送元バスがバス(D)140であることを特定し、ディスティネーションアドレスに対応する転送先バスがバス(A)110であることを特定する(ステップSa13)。
ここで、マスターポートP4のリードマスターポートと、マスターポートP1のライトマスターポートと、の双方が他のDMAチャネルで使用されていなければ(ステップSa14の判別結果が「Yes」であれば)、図6に示されるように、DMAチャネルCh0の入力端がマスターポートP4のリードマスターポートに接続され、DMAチャネルCh0の出力端がマスターポートP1のライトマスターポートに接続されて、DMAコントローラ50内における転送経路が設定される(ステップSa15)。
このように転送経路が設定された状態においてDMAチャネルCh0に転送指示がなされると、当該DMAチャネルCh0は、図5および図6に示されるように、ROM148から読み出したデータを、ROM148→バス(D)140→マスターポートP4のリードマスターポート→DMAチャネルCh0(FIFOメモリ)という経路でリード転送して、一旦、FIFOメモリに蓄積する。このため、DMA転送のうち、ROM148からの読み出しについていえば、ROM148の読出速度またはバス(D)140の転送速度で決定され、他のバスの転送速度の影響を受けない。
一方、蓄積後、DMAチャネルCh0は、FIFOメモリから読み出したデータを、DMAチャネルCh0(FIFOメモリ)→マスターポートP1のライトマスターポート→バス(A)110→SRAM118という経路で、データを転送する。このため、当該DMA転送のうち、SRAM118への書き込みについていえば、SRAM118の書込速度またはバス(A)110の転送速度で決定され、他のバスの転送速度の影響を受けない。
そして、このような経路によるDMA転送が完了すると(ステップSa17の判別結果が「Yes」になると)、DMAチャネルCh0の割当が解除される(ステップSa18)。これにより、他のDMA転送命令が発行されたとき、DMAチャネルCh0が割当可能となる。
次に、本実施形態に係るDMAコントローラ50の優位性について、従来のDMAコントローラと比較して説明する。
図12は、比較例に係るDMAコントローラを含むシステムの構成を示す図である。図に示されるように、比較例に係るDMAコントローラ52は、1つのバス、この図の例では、バス(C)130のみに接続された構成となっている。このような構成において、DMAコントーラ52を基準とした場合、転送元のバススレーブの位置が遠ければ、それだけリードレイテンシ(遅延)が増加するので、読み出しに係るバスの占有時間が長くなる。同様に、転送先(書込先)のモジュールの位置が遠ければ、それだけライトレイテンシが増加するので、書き込みに係るバスの占有時間が長くなる。バスの占有時間が長くなると、他のバスマスタ(CPU112)のアクセスレイテンシも増加するので、システム全体の効率が低下してしまう。
また、リードの転送性能は、転送元のバススレーブの読出性能と、当該バススレーブが接続されたバスと、DMAコントーラ52が接続されたバスと、途中を経由するバスとのうち、転送性能が最も低いバスに律速されてしまう。同様に、ライトの転送性能は、転送先のバススレーブの書込性能と、当該バススレーブが接続されたバスと、DMAコントーラ52が接続されたバスと、途中を経由するバスとのうち、転送性能が最も低いバスに律速されてしまう。
例えば、この比較例では、DMAコントローラ52が、ROM148からSRAM118にDMA転送する場合、ROM148(リードポート)→バス(D)140→バスブリッジ34→バス(C)130(→DMAコントローラ52)という経路でデータを読み出す。この経路でのリードの転送性能は、ROM148の読出性能が十分に速い場合、バス(C)130の転送性能が高くても、低い方のバス(D)140の転送性能に律速されてしまう。
同様に、DMAコントローラ52は、(DMAコントローラ52→)バス(C)130→バスブリッジ23→バス(B)120→バスブリッジ12→バス(A)110→SRAM118(ライトポート)という経路で、データを書き込む。この経路でのライトの転送性能は、SRAM118の書込性能が十分に速い場合、バス(A)110、バス(B)120の転送性能が高くても、低い方のバス(C)130の転送性能に律速されてしまう。
これに対して、本実施形態に係るDMAコントローラ50は、データの読出経路としては転送元バスのみが用いられ、データの書込経路としては転送先バスのみが用いられるので、リードの転送性能においても、ライトの転送性能においても、他のバスの転送性能に律速されることはない。
これについて、図5で示した経路のDMA転送で説明すると、データの読出経路としては転送元のバス(D)140のみが用いられる。このため、リードの転送性能において、他のバスの転送性能に律速されることはないので、転送元となるバススレーブの転送性能(読出性能)を最大限に引き出すことができる。
同様に、データの書込経路としては転送先のバス(A)110のみが用いられる。このため、ライトの転送性能において、他のバスの転送性能に律速されることはないので、転送先となるバススレーブの転送性能(書込性能)を最大限に引き出すことができる。
このように、本実施形態に係るDMAコントローラ50によれば、4つのバスを有する構成において、転送元バスから転送先バスに最短経路でデータがDMA転送されるので、テータの転送速度を改善することができる。
また、本実施形態に係るDMAコントローラ50では、DMAチャネルCh0〜Ch15を有し、DMA転送に割り当てられた各チャネルにおいてDMA転送が可能であれば(ステップSa14の判別結果が「Yes」であれば)、同時並行してDMA転送が実行される。
例えば、DMAチャネルCh0がROM148からSRAM118にDMA転送している状態において(図5参照)、DMAチャネルCh1に対してメモリ124からSPI142へのDMA転送命令が割り当てられたとき、転送元バスのバス(B)120に接続されたマスターポートP2のリードマスターポートと、転送先バスのバス(D)140に接続されたマスターポートP4のライトマスターポートとがいずれもDMAチャネルCh0によって使用されていないので、当該DMAチャネルCh1に対しては転送指示がなされる。
さらに、DMAチャネルCh0、Ch1がDMA転送している状態において、DMAチャネルCh15に対してサウンド回路132からDRAM122へのDMA転送命令が割り当てられたとき、転送元バスのバス(C)130に接続されたマスターポートP3のリードマスターポートと、転送先バスのバス(B)120に接続されたマスターポートP2のライトマスターポートとがいずれも、DMAチャネルCh0、Ch1によって使用されていないので、当該DMAチャネルCh15に対しては転送指示がなされる。
図7は、このようにしてDMAチャネルCh0、Ch1、Ch15がDMA転送している場合におけるデータの転送経路を示す図であり、図8は、DMAコントローラ50におおて設定された転送経路を示す図である。
この図に示されるように、本実施形態では、3つのDMA転送が同時並行で実行されるので、システム全体でみたときの効率を、さらに向上させることができる。
また、図7、図8で示されるように、マスターポートP1のリードマスターポートと、マスターポートP3のライトマスターポートとはいずれも使用されていない。このため、転送元バスをバス(A)110とし、転送先バスをバス(C)130とするDMA転送が他のDMAチャネルによって可能となっている。
DMAコントローラ50において、転送元バスと転送先バスとが同一であっても良いのはもちろんである。
図9は、DMAコントローラ50が、転送元バスと転送先バスとが同じバス(D)140である場合におけるデータの転送経路の一例を示す図である。この図の例では、いずれかのDMAチャネルが、ROM148からI2C144にDMA転送する場合に、ROM148(リードポート)→バス(D)140(→DMAコントローラ50)という経路でデータを読み出す一方、(DMAコントローラ50→)バス(D)140→バス(D)140→I2C114(ライトポート)という経路でデータを書き込む。
また、DMAコントローラ50において、いずれかのバスブリッジを介して接続された2つのバスのうち、一方のバスのモジュールから、他方のバスのモジュールにDMA転送する場合、当該バスブリッジを介しても良い。
図10は、バスブリッジ23を介して接続されたバス(B)120、バス(C)130において、バス(C)130に属するサウンド回路132から、バス(B)120に属するメモリ122にDMA転送する場合におけるデータの転送経路を示す図である。この図の例では、いずれかのDMAチャネルが、サウンド回路132(リードポート)→バス(C)130→バスブリッジ23→バス(B)120(→DMAコントローラ50)という経路でデータを読み出す一方、(DMAコントローラ50→)バス(B)130→メモリ122(ライトポート)という経路でデータを書き込む。
なお、この場合に、DMAコントローラ50のマスターポートP2ではなく、図11に示されるように、マスターポートP3を用いても良い。詳細には、同図に示されるように、いずれかのDMAチャネルが、サウンド回路132(リードポート)→バス(C)130(→DMAコントローラ50)という経路でデータを読み出す一方、(DMAコントローラ50→)バス(C)130→バスブリッジ23→バス(B)120→メモリ122(ライトポート)という経路でデータを書き込む。
このように、本説明において、最短経路でデータの転送には、隣り合うバスにわたってバスブリッジを経由する転送を含み得る。
本発明は、上述した実施形態に限定されるものではなく、例えば次に述べるような各種の応用・変形が可能である。また、次に述べる応用・変形の態様は、任意に選択された一または複数を適宜に組み合わせることもできる。
上述した実施形態では、バス幅については言及していなかったが、バス(A)110、バス(B)120、バス(C)130およびバス(D)140のバス幅については、互いに異なっていても良い。なお、バス幅が異なっている場合のバス幅変換については、DMAコントローラ50(またはバスブリッジ12、23、34)が実行することになる。
また、実施形態では、DMAコントローラ50に接続されたバス数(およびマスターポート数)を「4」としたが、「3」以上であれば良い。3つ以上のバスにおいて、少なくとも2つのバスの転送帯域が異なっていれば良い。
50…DMAコントローラ、110…バス(A)、112…CPU、120…バス(B)、122…DRAM、124…メモリ、130…バス(C)、132…サウンド回路、140…バス(D)、142…SPI、148…ROM、502…転送制御部、504…選択部、512…特定部、514…アドレステーブル。

Claims (6)

  1. ソースアドレスからディスティネーションアドレスにデータを転送するDMAコントローラであって、
    少なくとも3つ以上のバスに対応して設けられ、それぞれが対応するバスに接続されるマスターポートと、
    前記バスに接続されたモジュールのアドレスを、当該接続されたバスに対応付けて記憶するアドレステーブルと、
    当該ソースアドレスのモジュールが属する転送元バスと、当該ディスティネーションアドレスのモジュールが属する転送先バスとを、前記アドレステーブルを参照して特定する特定部と、
    前記ソースアドレスから前記ディスティネーションアドレスにデータを転送する経路を、前記転送元バス、前記転送元バスに接続されたマスターポート、前記転送先バスに接続されたマスターポート、および、前記転送先バスに設定する転送制御部と、
    前記ソースアドレスから読み出されたデータが蓄積され、該蓄積されたデータが読み出されて前記ディスティネーションアドレスに転送されるFIFOメモリと、
    を具備し、
    前記3つ以上のバスに対応して設けられたマスターポートのうち、少なくとも2つ以上では、互いに異なる転送帯域で、それぞれに対応するバスにデータが転送される
    ことを特徴とする記載のDMAコントローラ。
  2. 前記3つ以上のバスが、バスブリッジを介して直列に接続される
    ことを特徴とする請求項に記載のDMAコントローラ。
  3. 前記マスターポートは、
    リードマスターポートおよびライトマスターポートの組である、
    ことを特徴とする請求項に記載のDMAコントローラ。
  4. 前記転送元バスおよび転送先バスが同一である場合、
    当該転送元バスのリードマスターポートを介してリード転送されたデータが、当該転送先バスのライトマスターポートを介してライト転送される、
    ことを特徴とする請求項に記載のDMAコントローラ。
  5. 前記3つ以上のバスが、それぞれバスブリッジを介して直列に接続され、
    前記転送先バスが、前記転送元バスに前記バスブリッジを介して接続されたバスである場合、当該転送元バスまたは当該転送先バスのいずれかに対応するマスターポートと、当該バスブリッジとを介してデータが転送される、
    ことを特徴とする請求項に記載のDMAコントローラ。
  6. 前記転送制御部によってデータ転送の機能が割り当てられる転送チャネルを複数有し、
    前記転送制御部は、
    前記複数の転送チャネルのうち、一の転送チャネルに、一のソースアドレスから一のディスティネーションアドレスへのデータ転送を割り当てた場合に、
    当該一のソースアドレスのモジュールが属する転送元バスに接続されたリードマスターポートと、当該一のディスティネーションアドレスのモジュールが属する転送先バスに接続されたライトマスターポートとを、他の転送チャネルによるデータ転送の経路に設定していなければ、
    当該一の転送チャネルに、割り当てたデータ転送を許可する、
    ことを特徴とする請求項3、4または5に記載のDMAコントローラ。
JP2014106365A 2014-05-22 2014-05-22 Dmaコントローラ Expired - Fee Related JP6364951B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014106365A JP6364951B2 (ja) 2014-05-22 2014-05-22 Dmaコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014106365A JP6364951B2 (ja) 2014-05-22 2014-05-22 Dmaコントローラ

Publications (2)

Publication Number Publication Date
JP2015222487A JP2015222487A (ja) 2015-12-10
JP6364951B2 true JP6364951B2 (ja) 2018-08-01

Family

ID=54785458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014106365A Expired - Fee Related JP6364951B2 (ja) 2014-05-22 2014-05-22 Dmaコントローラ

Country Status (1)

Country Link
JP (1) JP6364951B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232212A (ja) * 1998-02-09 1999-08-27 Mitsubishi Electric Corp バスシステム
JP2004213142A (ja) * 2002-12-27 2004-07-29 Renesas Technology Corp 半導体集積回路装置
JP2006318139A (ja) * 2005-05-11 2006-11-24 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法およびプログラム
JP2007299237A (ja) * 2006-04-28 2007-11-15 Toshiba Corp 情報転送装置及び情報転送方法
JP2008165463A (ja) * 2006-12-28 2008-07-17 Sharp Corp バス制御装置
TW200921395A (en) * 2007-11-14 2009-05-16 Sonix Technology Co Ltd System and method of direct memory access

Also Published As

Publication number Publication date
JP2015222487A (ja) 2015-12-10

Similar Documents

Publication Publication Date Title
US9426099B2 (en) Router, method for controlling router, and program
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US9961005B2 (en) Bus system and computer program
JP2006318139A (ja) データ転送装置、データ転送方法およびプログラム
JP6880402B2 (ja) メモリアクセス制御装置及びその制御方法
JP6146128B2 (ja) データ処理装置
KR20120040535A (ko) 버스 시스템 및 그것의 동작 방법
US20090240851A1 (en) Usb controller and buffer memory control method
KR20130106392A (ko) 다수의 메모리 채널들을 가진 컴퓨팅 시스템에서의 메모리 버퍼들의 할당
CN106021141A (zh) 半导体设备
CN105988968A (zh) 半导体装置
CN115905060A (zh) 直接存储器访问控制器、数据传输方法和系统
US8495268B2 (en) Card host LSI and set device including the same
JP2005084907A (ja) メモリ帯域制御装置
US9146693B2 (en) Storage control device, storage system, and storage control method
JP6364951B2 (ja) Dmaコントローラ
WO2013062109A1 (ja) I/oデバイス制御システムおよびi/oデバイス制御方法
JP2009116702A (ja) 半導体集積回路
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
JP6611011B2 (ja) 通信用入出力装置
CN102405466A (zh) 存储控制装置及其控制方法
US9747231B2 (en) Bus access arbiter and method of bus arbitration
JP6978670B2 (ja) 演算処理装置および演算処理装置の制御方法
JP6351073B2 (ja) 通信用入出力装置
CN101727426B (zh) 基于高速串行总线的计算机系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180618

R151 Written notification of patent or utility model registration

Ref document number: 6364951

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees