JP6364951B2 - Dmaコントローラ - Google Patents
Dmaコントローラ Download PDFInfo
- 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
Links
- 230000006870 function Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000000052 comparative effect Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Description
そこで、DMA転送が低速バスで完結する場合には、高速バスを切り離すとともに、DMAコントローラにおける処理をバスブリッジに移行させる技術が知られている(特許文献1参照)。この技術では、低速バスで完結するデータ転送をバスブリッジに実行させる。これにより、DMAコントローラは、別の転送処理を実行するので、高速バスの利用効率の低下が防止される。
また、上記一態様において、前記3つ以上のバスが、バスブリッジを介して直列に接続される構成としても良い。
ここでいう直列に接続される、とは、例えば第1バスから第4バスまでの4つを有するのであれば、第1バスと第2バスとの間にバスブリッジが、第2バスと第3バスとの間にバスブリッジが、第3バスと第4バスとの間にバスブリッジが、それぞれ設けられて、バス間同士のデータ転送が可能な構成をいう。
また、前記3つ以上のバスが、それぞれバスブリッジを介して直列に接続され、前記転送先バスが、前記転送元バスに前記バスブリッジを介して接続されたバスである場合、当該転送元バスまたは当該転送先バスのいずれかに対応するマスターポートと、当該バスブリッジとを介してデータが転送される構成としても良い。
この構成によれば、データ転送が割り当てられた一の転送チャネルは、リードマスターポートとライトマスターポートとが他の転送チャネルに使用されていない限り、データ転送を実行する。
この図に示されるように、システム1は、バス(A)110、バス(B)120、バス(C)130およびバス(D)140と、これらのバスの各々に接続されたDMAコントローラ50と、バス同士を接続するバスブリッジ12、23、34とを含み、各バスには、1または複数のモジュールが次のように接続されている。
なお、各バスにおける動作周波数(転送速度)は、互いに異なっている。図の例では、バスの転送速度は、速い順に、
バス(B)120>バス(A)110>バス(C)130>バス(D)140
となっている。
図に示されるように、DMAコントローラ50は、上述したマスターポートP1〜P4のほか、転送制御部502、選択部504、特定部512、アドレステーブル514、および、DMAチャネル(転送チャネル)Ch0〜Ch15を含む。
DMAチャネルCh0〜Ch15の各々は、それぞれ転送制御部502による制御にしたがって、ソースアドレスから読み出したデータを、図示省略したFIFO(Fast In Fast Out)メモリにバッファリングした上で、ディスティネーションアドレスに転送する。このとき、リードマスターポートからDMAチャネルの入力端までの経路、および、DMAチャネルの出力端からライトマスターポートまでの経路は、それぞれ転送制御部502の制御にしたがって選択部504で設定される。
なお、CPU112については、DMA転送を命令するモジュールであり、CPU112自身はDMA転送の対象にならないので、アドレステーブル514の記載対象外となっている。
まず、転送制御部502は、DMA転送命令を受け取ったとき、DMAチャネルCh0〜Ch15のうち、未割当のチャネル(空きチャネル)、すなわち、DMA転送に関与していないDMAチャネルがあるか否かを判別する(ステップSa11)。転送制御部502は、空きチャネルがないと判別すれば(ステップSa11の判別結果が「No」であれば)、処理手順をステップSa11に戻す。このため、空きチャネルが発生するまで、転送制御部502は、当該DMA転送命令をステップSa11で待機(キュー)させることになる。
なお、DMA転送を完了したDMAチャネルは、後述するように割当が解除されるので、DMA転送命令を受け取ったときに空きチャネルがなく、判別結果が当初「No」であっても、ステップSa11で待機していれば、やがて「Yes」に転じることになる。
詳細には、転送制御部502は、転送元バスのリードマスターポートと転送先バスのライトマスターポートとの少なくとも一方が割り当てたDMAチャネル以外の他のDMAチャネルによってDMA転送に使用されていれば、割り当てたDMAチャネルによるDMA転送を不可と判別し(ステップSa14の判別結果を「No」とし)、処理手順をステップSa14に戻す。なお、DMA転送が不可と判別されても、他のDMAチャネルによるDMA転送の完了によって、リードマスターポート、ライトマスターポートが使用されなくなる。このため、ステップSa14の判別結果が当初「No」であっても、当該ステップSa14で待機していれば、やがて「Yes」に転じることになる。
すなわち、転送制御部502は、割り当てたDMAチャネルの入力端と転送元バスのリードマスターポートとを接続する経路と、当該DMAチャネルの出力端と転送先バスのライトマスターポートとを接続する経路と、を選択部504に設定するように制御する。選択部504は、この制御にしたがった経路を設定する。
転送制御部502は、割り当てたDMAチャネルによるDMA転送が進行中であると判別すれば(ステップSa17の判別結果が「No」であれば)、処理手順をステップSa17に戻す。すなわち、当該DMA転送が終了するまで、転送制御部502は、ステップSa17で待機する。
一方、割り当てたDMAチャネルによるDMA転送が終了したと判別すれば(ステップSa17の判別結果が「Yes」であれば)、転送制御部502は、当該DMAチャネルの割り当てを解除する(ステップSa18)。これにより、次のDMA転送命令を受け取ったときに、当該DMAチャネルを割り当てて、次のDMA転送を実行させることができる。
また、当該DMA転送命令において、ソースアドレスで示されるモジュール(転送元)がROM148であり、ディスティネーションアドレスで示されるモジュール(転送先)がSRAM118である場合を想定している。この場合、特定部512は、アドレステーブル514を参照して、ソースアドレスに対応する転送元バスがバス(D)140であることを特定し、ディスティネーションアドレスに対応する転送先バスがバス(A)110であることを特定する(ステップSa13)。
一方、蓄積後、DMAチャネルCh0は、FIFOメモリから読み出したデータを、DMAチャネルCh0(FIFOメモリ)→マスターポートP1のライトマスターポート→バス(A)110→SRAM118という経路で、データを転送する。このため、当該DMA転送のうち、SRAM118への書き込みについていえば、SRAM118の書込速度またはバス(A)110の転送速度で決定され、他のバスの転送速度の影響を受けない。
同様に、DMAコントローラ52は、(DMAコントローラ52→)バス(C)130→バスブリッジ23→バス(B)120→バスブリッジ12→バス(A)110→SRAM118(ライトポート)という経路で、データを書き込む。この経路でのライトの転送性能は、SRAM118の書込性能が十分に速い場合、バス(A)110、バス(B)120の転送性能が高くても、低い方のバス(C)130の転送性能に律速されてしまう。
これについて、図5で示した経路のDMA転送で説明すると、データの読出経路としては転送元のバス(D)140のみが用いられる。このため、リードの転送性能において、他のバスの転送性能に律速されることはないので、転送元となるバススレーブの転送性能(読出性能)を最大限に引き出すことができる。
同様に、データの書込経路としては転送先のバス(A)110のみが用いられる。このため、ライトの転送性能において、他のバスの転送性能に律速されることはないので、転送先となるバススレーブの転送性能(書込性能)を最大限に引き出すことができる。
このように、本実施形態に係るDMAコントローラ50によれば、4つのバスを有する構成において、転送元バスから転送先バスに最短経路でデータがDMA転送されるので、テータの転送速度を改善することができる。
さらに、DMAチャネルCh0、Ch1がDMA転送している状態において、DMAチャネルCh15に対してサウンド回路132からDRAM122へのDMA転送命令が割り当てられたとき、転送元バスのバス(C)130に接続されたマスターポートP3のリードマスターポートと、転送先バスのバス(B)120に接続されたマスターポートP2のライトマスターポートとがいずれも、DMAチャネルCh0、Ch1によって使用されていないので、当該DMAチャネルCh15に対しては転送指示がなされる。
この図に示されるように、本実施形態では、3つのDMA転送が同時並行で実行されるので、システム全体でみたときの効率を、さらに向上させることができる。
また、図7、図8で示されるように、マスターポートP1のリードマスターポートと、マスターポートP3のライトマスターポートとはいずれも使用されていない。このため、転送元バスをバス(A)110とし、転送先バスをバス(C)130とするDMA転送が他のDMAチャネルによって可能となっている。
図9は、DMAコントローラ50が、転送元バスと転送先バスとが同じバス(D)140である場合におけるデータの転送経路の一例を示す図である。この図の例では、いずれかのDMAチャネルが、ROM148からI2C144にDMA転送する場合に、ROM148(リードポート)→バス(D)140(→DMAコントローラ50)という経路でデータを読み出す一方、(DMAコントローラ50→)バス(D)140→バス(D)140→I2C114(ライトポート)という経路でデータを書き込む。
図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に接続されたバス数(およびマスターポート数)を「4」としたが、「3」以上であれば良い。3つ以上のバスにおいて、少なくとも2つのバスの転送帯域が異なっていれば良い。
Claims (6)
- ソースアドレスからディスティネーションアドレスにデータを転送するDMAコントローラであって、
少なくとも3つ以上のバスに対応して設けられ、それぞれが対応するバスに接続されるマスターポートと、
前記バスに接続されたモジュールのアドレスを、当該接続されたバスに対応付けて記憶するアドレステーブルと、
当該ソースアドレスのモジュールが属する転送元バスと、当該ディスティネーションアドレスのモジュールが属する転送先バスとを、前記アドレステーブルを参照して特定する特定部と、
前記ソースアドレスから前記ディスティネーションアドレスにデータを転送する経路を、前記転送元バス、前記転送元バスに接続されたマスターポート、前記転送先バスに接続されたマスターポート、および、前記転送先バスに設定する転送制御部と、
前記ソースアドレスから読み出されたデータが蓄積され、該蓄積されたデータが読み出されて前記ディスティネーションアドレスに転送されるFIFOメモリと、
を具備し、
前記3つ以上のバスに対応して設けられたマスターポートのうち、少なくとも2つ以上では、互いに異なる転送帯域で、それぞれに対応するバスにデータが転送される
ことを特徴とする記載のDMAコントローラ。 - 前記3つ以上のバスが、バスブリッジを介して直列に接続される
ことを特徴とする請求項1に記載のDMAコントローラ。 - 前記マスターポートは、
リードマスターポートおよびライトマスターポートの組である、
ことを特徴とする請求項1に記載のDMAコントローラ。 - 前記転送元バスおよび転送先バスが同一である場合、
当該転送元バスのリードマスターポートを介してリード転送されたデータが、当該転送先バスのライトマスターポートを介してライト転送される、
ことを特徴とする請求項3に記載のDMAコントローラ。 - 前記3つ以上のバスが、それぞれバスブリッジを介して直列に接続され、
前記転送先バスが、前記転送元バスに前記バスブリッジを介して接続されたバスである場合、当該転送元バスまたは当該転送先バスのいずれかに対応するマスターポートと、当該バスブリッジとを介してデータが転送される、
ことを特徴とする請求項3に記載のDMAコントローラ。 - 前記転送制御部によってデータ転送の機能が割り当てられる転送チャネルを複数有し、
前記転送制御部は、
前記複数の転送チャネルのうち、一の転送チャネルに、一のソースアドレスから一のディスティネーションアドレスへのデータ転送を割り当てた場合に、
当該一のソースアドレスのモジュールが属する転送元バスに接続されたリードマスターポートと、当該一のディスティネーションアドレスのモジュールが属する転送先バスに接続されたライトマスターポートとを、他の転送チャネルによるデータ転送の経路に設定していなければ、
当該一の転送チャネルに、割り当てたデータ転送を許可する、
ことを特徴とする請求項3、4または5に記載のDMAコントローラ。
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)
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 |
-
2014
- 2014-05-22 JP JP2014106365A patent/JP6364951B2/ja not_active Expired - Fee Related
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 |