JP2006126938A - Data transfer system and its data transfer method - Google Patents

Data transfer system and its data transfer method Download PDF

Info

Publication number
JP2006126938A
JP2006126938A JP2004311041A JP2004311041A JP2006126938A JP 2006126938 A JP2006126938 A JP 2006126938A JP 2004311041 A JP2004311041 A JP 2004311041A JP 2004311041 A JP2004311041 A JP 2004311041A JP 2006126938 A JP2006126938 A JP 2006126938A
Authority
JP
Japan
Prior art keywords
dma
dmac
data transfer
dma controller
transfer
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.)
Withdrawn
Application number
JP2004311041A
Other languages
Japanese (ja)
Inventor
Koichi Morishita
浩一 森下
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004311041A priority Critical patent/JP2006126938A/en
Publication of JP2006126938A publication Critical patent/JP2006126938A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To realize multi-dimensional addressing by connecting a plurality of DMA controllers, each having high reusability, simple specifications and small circuit scale. <P>SOLUTION: In this data transfer method of a data transfer system including a first DMA controller for supporting multi-dimensional addressing, a second DMA controller exclusive for memory write and a third DMA controller exclusive for memory read, the third DMA controller reads information showing an address to start data transfer and the length of transfer from a predetermined memory, and transfers it to the second DMA controller, and the second DMA controller writes information transferred from the third DMA controller in the first DMA controller, and executes the data transfer based on the information written by the first DMA controller. Then, the predetermined memory is made to store a plurality of information showing the address to start the data transfer and the length of transfer, and the data transfer for any discontinuous memory region is made possible. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、ソフトウェアの介在を極力減らして多次元アドレッシングを実現する技術に関する。   The present invention relates to a technique for realizing multidimensional addressing by reducing software intervention as much as possible.

従来のダイレクトメモリアクセス(DMA)コントローラでは、不連続なメモリ領域に対するデータ転送のアドレッシングを実現するために、いくつかの方法が用いられている。以下に3種類の方法を挙げる。   In a conventional direct memory access (DMA) controller, several methods are used to realize addressing of data transfer to a discontinuous memory area. Three types of methods are listed below.

最もシンプルな方法としては、アドレスが連続する範囲については1度のDMA転送で行い、不連続なアドレスに飛ばす必要がある場合は再びDMAの再設定、再起動をするというやり方がある。この方法は、転送速度に対する要求があまり高くない場合やアドレスが連続する領域がそれなりの大きさを持つ場合、大きな影響はでないが、CPUの介在が増え過ぎるとパフォーマンスは低下する。   As the simplest method, there is a method of performing DMA transfer once in a range where addresses are continuous, and resetting and restarting DMA again when it is necessary to skip to discontinuous addresses. This method does not have a great influence when the request for the transfer rate is not so high or the area where the addresses are continuous has a certain size, but the performance decreases when the CPU intervention increases too much.

そこで、CPUの介在を減らす方法として、DMAコントローラ(以下、DMAC)内に複数のオフセットアドレスレジスタを用意し、ある設定した転送長に達すると自動的にオフセットアドレスレジスタに設定された分だけアドレスをジャンプさせ、DMAが再びある設定した転送長に達すると次は別のオフセットアドレスレジスタの値分だけアドレスをジャンプさせるという方法が良く用いられている。   Therefore, as a method of reducing CPU intervention, a plurality of offset address registers are prepared in the DMA controller (hereinafter referred to as DMAC), and when the set transfer length is reached, addresses are automatically set by the amount set in the offset address register. A method is often used in which jumping is performed, and when the DMA reaches a set transfer length again, the address is jumped by the value of another offset address register.

上述の方法によれば、DMAC自体が不連続な領域に対してアドレスをジャンプさせることができるので、CPUの介在も減り、パフォーマンスを最大限まで向上させることができる。但し、この方法の場合、1つのDMAC内にオフセットレジスタをいくつ用意すればIP化された画像処理ブロックや通信処理ブロックなどが要求する次元数(アドレスが不連続な領域に飛ぶ回数)を満足できるかというのを断定するのが非常に難しいという問題がある。   According to the above-described method, since the address can be jumped to a region where the DMAC itself is discontinuous, the intervention of the CPU is reduced and the performance can be improved to the maximum. However, in this method, if the number of offset registers is prepared in one DMAC, the number of dimensions required by the IP image processing block or communication processing block (the number of times the address jumps to a discontinuous area) can be satisfied. There is a problem that it is very difficult to determine.

例えば、今回の特定用途向け集積回路(ASIC)に搭載する画像処理では、4次元で充分ということで4次元アドレッシング対応のDMACを設計したところ、次期ASICでは6次元アドレッシングが必須な画像処理モジュールを採用する場合、これに対応するDMACを新たに設計しなくてはならない。これでは限られた開発期間中に設計、検証を行うことは厳しいと思われる。   For example, in the image processing to be installed in the application specific integrated circuit (ASIC), a four-dimensional addressing-compatible DMAC is designed because four-dimensional is sufficient. In the next ASIC, an image processing module that requires six-dimensional addressing is required. When it is adopted, a DMAC corresponding to this must be newly designed. It seems to be difficult to design and verify this during a limited development period.

このような次元数(アドレスが不連続な領域に飛ぶ回数)の変更に影響を受けないDMACとして、不連続なアドレスへジャンプする際に、DMAパラメータ、特にオフセットアドレス値をメモリ領域からリードして自らDMAパラメータを書き換えることのできるものがある。これは、更新予定のDMAパラメータを予めメモリ領域に置いておくことで実現可能である。   As a DMAC that is not affected by the change in the number of dimensions (the number of times the address jumps to a discontinuous area), when jumping to a discontinuous address, the DMA parameter, especially the offset address value, is read from the memory area. Some can rewrite the DMA parameters themselves. This can be realized by placing the DMA parameter to be updated in a memory area in advance.

この方法によれば、次元数(アドレスが不連続な領域に飛ぶ回数)が増えてもソフトの介在なしで不連続アドレッシングが可能であり、且つDMAC自体の仕様を変えずに使用できるので、再利用性も高いと考えられる。   According to this method, even if the number of dimensions (the number of times the address jumps to a discontinuous area) increases, discontinuous addressing is possible without software intervention, and it can be used without changing the specifications of the DMAC itself. The usability is also considered high.

DMACによるデータ転送のアドレッシングに関する先行技術として、例えば特許文献1〜5が提案されている。
特開平05-120205号公報 特開平07-306825号公報 特開平05-108548号公報 特開平07-210496号公報 特開平05-120205号公報
For example, Patent Documents 1 to 5 have been proposed as prior arts related to addressing data transfer by DMAC.
Japanese Patent Laid-Open No. 05-120205 Japanese Unexamined Patent Publication No. 07-306825 Japanese Patent Laid-Open No. 05-108548 Japanese Unexamined Patent Publication No. 07-210496 Japanese Patent Laid-Open No. 05-120205

しかしながら、一般的に、上記従来例のようなアドレッシング方法のDMACの設計は難易度が高く、バグを内在させてしまう仕様であると言える。また、再利用性は高いが、この冗長な機能を持ったDMACを、多次元アドレッシングを必要としない通常デバイスに対しても使用することで、回路規模が大きくなってしまうという問題もある。   However, in general, it can be said that the DMAC design of the addressing method as in the conventional example has a high degree of difficulty and has a specification that causes bugs. In addition, although the reusability is high, there is a problem that the circuit scale becomes large by using the DMAC having the redundant function for a normal device that does not require multidimensional addressing.

本発明は、上記課題を解決するためになされたものであり、再利用性の高いシンプルな仕様で、且つ回路規模の小さいDMAコントローラを複数接続して多次元アドレッシングを実現することを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to realize multidimensional addressing by connecting a plurality of DMA controllers having a simple reusability and a small circuit scale. .

本発明は、多次元アドレッシングをサポートする第1のDMAコントローラと、メモリライト専用の第2のDMAコントローラと、メモリリード専用の第3のDMAコントローラとを含むデータ転送システムであって、前記第1、第2、第3のDMAコントローラは、システムバスに接続するための第1のインターフェースと、周辺デバイスとの間でデータ転送を行う第2のインターフェースと、先頭アドレスレジスタと転送長レジスタとを有し、転送終了後、外部へ転送終了信号を生成する手段と、ソフトウェアによる起動以外に外部トリガによりデータ転送を起動する手段とを有し、前記第1のDMAコントローラの前記転送終了信号を前記第2のDMAコントローラの外部トリガ入力に接続し、前記第2及び第3のDMAコントローラを前記第2のインターフェースを介して直接、或いは選択手段を介して接続する手段を有し、前記選択手段を介して接続した場合は、ソフトウェアによって周辺デバイスとの接続を有効にするか、前記第2及び第3のDMAコントローラの間の接続を有効にするかを選択可能とすることを特徴とする。   The present invention provides a data transfer system including a first DMA controller that supports multidimensional addressing, a second DMA controller dedicated to memory write, and a third DMA controller dedicated to memory read. The second and third DMA controllers have a first interface for connecting to the system bus, a second interface for transferring data between peripheral devices, a head address register and a transfer length register. And a means for generating a transfer end signal to the outside after the transfer is completed and a means for starting data transfer by an external trigger in addition to the start by software, and the transfer end signal of the first DMA controller is sent to the first DMA controller. The second and third DMA controllers connected to the external trigger input of the second DMA controller A means for connecting via the second interface directly or via a selection means; when connected via the selection means, the connection with the peripheral device is enabled by software, or the second And enabling the connection between the third DMA controller and the third DMA controller.

また、本発明は、多次元アドレッシングをサポートする第1のDMAコントローラと、メモリライト専用の第2のDMAコントローラと、メモリリード専用の第3のDMAコントローラとを含むデータ転送システムのデータ転送方法であって、前記第3のDMAコントローラが所定のメモリからデータ転送を開始するアドレス及び転送長を示す情報を読み出し、前記第2のDMAコントローラへ転送させる工程と、前記第2のDMAコントローラが前記第3のDMAコントローラから転送された情報を第1のDMAコントローラへ書き込み、前記第1のDMAコントローラにて書き込まれた情報に基づいてデータ転送を実行させる工程とを有し、前記所定のメモリに前記データ転送を開始するアドレス及び転送長を示す情報を複数個記憶させておき、不連続なメモリ領域に対するデータ転送を可能とすることを特徴とする。   The present invention also provides a data transfer method for a data transfer system including a first DMA controller supporting multidimensional addressing, a second DMA controller dedicated to memory write, and a third DMA controller dedicated to memory read. The third DMA controller reads information indicating an address and transfer length at which data transfer starts from a predetermined memory and transfers the information to the second DMA controller, and the second DMA controller transfers the information to the second DMA controller. And writing the information transferred from the third DMA controller to the first DMA controller and executing the data transfer based on the information written by the first DMA controller. Store multiple pieces of information indicating the address and transfer length at which data transfer starts. Place, characterized in that to enable data transfer to a discontinuous memory areas.

本発明によれば、再利用性の高いシンプルな仕様で、且つ回路規模の小さいDMAコントローラを複数接続して多次元アドレッシングを実現することができる。   According to the present invention, it is possible to realize multidimensional addressing by connecting a plurality of DMA controllers having a simple specification with high reusability and a small circuit scale.

以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。本実施形態では、ダイレクトメモリアクセス(DMA)コントローラ(以下、DMAC)単体の構成及び動作を詳細に説明し、次に、当該DMACを複数使用するシステムの構成及び動作について説明する。   The best mode for carrying out the invention will be described below in detail with reference to the drawings. In this embodiment, the configuration and operation of a single direct memory access (DMA) controller (hereinafter referred to as DMAC) will be described in detail, and then the configuration and operation of a system that uses a plurality of DMACs will be described.

本実施形態におけるDMACにはライトDMACとリードDMACの2種類が存在する。このライトDMACはIOデバイスからのデータをDMAバスで受信し、システムバスを介してメモリ空間又はIO空間へライトする専用DMACである。一方、リードDMACはその逆の動作を行うものであり、システムバスを介してメモリ空間又はIO空間からデータを受信し、DMAバスを介してIOデバイスへ送信する専用DMACである。   There are two types of DMACs in the present embodiment: write DMAC and read DMAC. This write DMAC is a dedicated DMAC that receives data from the IO device via the DMA bus and writes it to the memory space or the IO space via the system bus. On the other hand, the read DMAC performs the reverse operation, and is a dedicated DMAC that receives data from the memory space or the IO space via the system bus and transmits it to the IO device via the DMA bus.

図1は、本実施形態におけるDMACの内部構成の一例を示す概略図である。ここでは代表してライトDMACのみを示している。図1に示すように、ライトDMAC100は、バスマスタI/F102、DMAバスI/F103、DMA制御ブロック106、制御レジスタブロック(バススレーブI/Fを有する)105、データFIFO104で構成されている。   FIG. 1 is a schematic diagram showing an example of the internal configuration of the DMAC in the present embodiment. Here, only the write DMAC is shown as a representative. As shown in FIG. 1, the write DMAC 100 includes a bus master I / F 102, a DMA bus I / F 103, a DMA control block 106, a control register block (having a bus slave I / F) 105, and a data FIFO 104.

DMA制御ブロック106は、不図示のCPU等のレジスタアクセスによるDMA起動要求(Start116)や外部トリガ(Start113)によるDMA起動要求を受けてDMAを開始し、DMAが終了すると、転送終了信号(End114)や割り込み信号(Int115)を出力するブロックである。   The DMA control block 106 starts DMA in response to a DMA activation request (Start 116) by register access of a CPU or the like (not shown) or a DMA activation request by an external trigger (Start 113), and when the DMA ends, a transfer end signal (End 114). And an interrupt signal (Int115).

図2は、図1に示す信号とDMA実行に関する関係を示す図である。図2に示すように、DMA起動要求(Start116)や外部トリガ(Start113)が1サイクルで入力されると、DMA動作が実行される。その後、DMA動作が終了すると、転送終了信号(End114)を1サイクルアサートする。尚、割り込み信号(Int115)は転送終了信号と同時にアサートされるが、割り込み要因がクリアされるまで“1”を保持する。   FIG. 2 is a diagram showing the relationship between the signals shown in FIG. 1 and DMA execution. As shown in FIG. 2, when a DMA start request (Start 116) or an external trigger (Start 113) is input in one cycle, a DMA operation is executed. Thereafter, when the DMA operation is completed, the transfer end signal (End 114) is asserted for one cycle. The interrupt signal (Int115) is asserted at the same time as the transfer end signal, but keeps “1” until the interrupt factor is cleared.

ここで図1に戻り、制御レジスタブロック105は、内部にバススレーブI/Fを有し、バスマスタからアクセス制御が行われる制御レジスタ(詳細は後述する)で構成されている。データFIFO104は、DMAバスを介してIOデバイスから受信したデータを格納するためのFIFOである。   Here, referring back to FIG. 1, the control register block 105 includes a bus slave I / F inside and a control register (details will be described later) for which access control is performed from the bus master. The data FIFO 104 is a FIFO for storing data received from the IO device via the DMA bus.

バスマスタI/F102は、データFIFO104の空き状態や、アドレスのアラインメント或いは残転送長などを監視し、システムバス101に対して最適なバスコマンドの要求を出力するブロックである。また、バスマスタI/F102は発行するバスアドレスを生成するカウンタを有するアドレス生成ブロック107、システムバス101へのバスリクエストを発行するバス要求発行制御ブロック108、システムバス101に出力するデータをデータFIFO104から取り出して送信するデータ制御ブロック109で構成されている。   The bus master I / F 102 is a block that monitors an empty state of the data FIFO 104, an address alignment, a remaining transfer length, and the like, and outputs an optimal bus command request to the system bus 101. The bus master I / F 102 also receives an address generation block 107 having a counter for generating a bus address to be issued, a bus request issue control block 108 for issuing a bus request to the system bus 101, and data to be output to the system bus 101 from the data FIFO 104. It consists of a data control block 109 that extracts and transmits.

DMAバスI/F103は、DMAバスのプロトコルである「valid110」、「data111」、「busy112」信号を制御し、データFIFO104へ「data111」を書き込むブロックである。   The DMA bus I / F 103 is a block that controls “valid110”, “data111”, and “busy112” signals, which are DMA bus protocols, and writes “data111” to the data FIFO 104.

図3は、DMAバスにおけるプロトコルの仕様を説明するための図である。データ送信元はvalidが“1”の時に有効データdataを出力するので、受信側はこれを受け取らなくてはならない。但し、受信側の事情でデータを受け取れない場合は、受信側はbusy信号を“1”にすることで、データ受信を拒否できる。その間、送信元はvalidと有効データを保持し続ける。   FIG. 3 is a diagram for explaining protocol specifications in the DMA bus. Since the data transmission source outputs valid data data when valid is “1”, the receiving side must receive this data. However, if data cannot be received due to circumstances on the receiving side, the receiving side can refuse data reception by setting the busy signal to “1”. In the meantime, the transmission source keeps valid and valid data.

尚、リードDMACの内部構成は図示していないが、ライトDMACの内部構成と同じである。また、リードDMACでは、データの流れが逆になるので、DMAバスI/F、バスマスタI/Fなどの制御が若干異なる。   Although the internal configuration of the read DMAC is not shown, it is the same as the internal configuration of the write DMAC. In the read DMAC, since the data flow is reversed, the control of the DMA bus I / F, the bus master I / F, etc. is slightly different.

次に、上述したDMAC内の制御レジスタブロック105における制御レジスタの仕様について説明する。   Next, the specifications of the control register in the control register block 105 in the DMAC will be described.

図4は、制御レジスタブロック105における制御レジスタの構成例を示す図である。図4に示すように、制御レジスタは2種類存在し、どちらも32ビットで構成されている。そして、ライトDMAC及びリードDMACに共通である。   FIG. 4 is a diagram illustrating a configuration example of a control register in the control register block 105. As shown in FIG. 4, there are two types of control registers, both of which are composed of 32 bits. It is common to the write DMAC and the read DMAC.

401はDMA先頭アドレスレジスタであり、DMAを開始する先頭アドレス(SA)を32ビット幅のアドレス空間で指定するものである。また、初期値は「0x0000_0000」である。402はDMA制御レジスタであり、4つのフィールドで構成されている。また、初期値は「0x0000_0000」である。   Reference numeral 401 denotes a DMA head address register for designating a head address (SA) for starting DMA in a 32-bit width address space. The initial value is “0x0000_0000”. Reference numeral 402 denotes a DMA control register, which is composed of four fields. The initial value is “0x0000_0000”.

DMA制御レジスタ402において、0ビット目はDMA起動ビット(S)で、“1”を書くとDMAを起動でき、DMAを実行中に“0”を書くとDMAを強制終了できる。1ビット目は割り込みイネーブルビット(IE)で、“1”を書くとDMAを終了後に、不図示の割り込みコントローラに対して割り込みを通知する。“0”を書くと割り込みはアサートされない。   In the DMA control register 402, the 0th bit is a DMA start bit (S). When “1” is written, the DMA can be started, and when “0” is written during DMA execution, the DMA can be forcibly terminated. The first bit is an interrupt enable bit (IE). When "1" is written, an interrupt is notified to an interrupt controller (not shown) after DMA is completed. When “0” is written, the interrupt is not asserted.

2ビット目は割り込みステータスビット(IS)で、不図示の割り込みコントローラに対して出力する割り込み信号と対応している。割り込みイネーブル状態で、DMAが終了するとこのビットは“1”にセットされ、このビットに“0”を書くことでクリアされ、割り込み信号も“0”になる。また、割り込みディセーブル状態では、このビットは常に“0”である。   The second bit is an interrupt status bit (IS), which corresponds to an interrupt signal output to an interrupt controller (not shown). When DMA is completed in the interrupt enable state, this bit is set to “1”, cleared by writing “0” in this bit, and the interrupt signal also becomes “0”. In the interrupt disabled state, this bit is always “0”.

4ビット目〜31ビット目までの上位28ビットはDMA転送長フィールド(LEN)で、単位はバイトである。その他の空ビットはリザーブ領域である。   The upper 28 bits from the 4th bit to the 31st bit are a DMA transfer length field (LEN), and the unit is a byte. Other empty bits are reserved areas.

DMA先頭アドレスレジスタ401及びDMA制御レジスタ402の何れも、初期値は「0x0000_0000」で、DMA先頭アドレスレジスタ401、DMA制御レジスタ402の順でIOアドレス空間に連続して配置されている。   The initial value of each of the DMA head address register 401 and the DMA control register 402 is “0x0000_0000”, and the DMA head address register 401 and the DMA control register 402 are sequentially arranged in the IO address space.

以上がDMAC単体の仕様であり、非常にシンプルで、小規模な回路構成が可能であることが分かる。   The above is the specification of the DMAC alone, and it can be seen that a very simple and small circuit configuration is possible.

次に、図5を用いて複数のライトDMAC及びリードDMACを使用したDMACシステムについて説明する。   Next, a DMAC system using a plurality of write DMACs and read DMACs will be described with reference to FIG.

図5は、本実施形態におけるDMACシステムの一例を示すブロック図である。図5に示すように、システム(アドレス、データ)バス1に接続されるバスマスタは4つあり、CPU21、DMAC5、DMAC6、DMAC7である。   FIG. 5 is a block diagram showing an example of the DMAC system in the present embodiment. As shown in FIG. 5, there are four bus masters connected to the system (address, data) bus 1, which are CPU 21, DMAC 5, DMAC 6, and DMAC 7.

一方、バススレーブとしてアービタ4、メモリコントローラ2、割り込みコントローラINTC23、デバイス選択ブロック11、IOデバイス8、9、10が存在する。   On the other hand, there are an arbiter 4, a memory controller 2, an interrupt controller INTC23, a device selection block 11, and IO devices 8, 9, and 10 as bus slaves.

尚、全てのDMAC5〜7は、バスマスタであるのに加えてバススレーブとしても動作する。また、DMAC5〜7は、上述したライトDMAC(リードDMAC)と同一仕様のDMACである。そして、DMAC5はIOデバイス8とDMAバス19を介して直結されており、本発明の主題である多次元アドレッシングを行うべきDMACとして定義されている。   All of the DMACs 5 to 7 operate as bus slaves in addition to being a bus master. The DMACs 5 to 7 are DMACs having the same specifications as the write DMAC (read DMAC) described above. The DMAC 5 is directly connected to the IO device 8 via the DMA bus 19, and is defined as a DMAC that should perform multidimensional addressing, which is the subject of the present invention.

図5では、DMAC5をライトDMACとしているが、本来、多次元アドレッシングをサポートすべきDMACにはDMACがライトDMACかリードDMACかという制限はなく、リードDMACであっても、図5に示す構成は変らないことになる。   In FIG. 5, the DMAC 5 is a write DMAC. However, there is no restriction on whether a DMAC is to be a write DMAC or a read DMAC, and the configuration shown in FIG. It will not change.

DMAC6はライトDMACであり、DMAバス14と接続されている。ここでDMAバス14はIOデバイス9のDMAバス16とセレクタ(デマルチプレクサ)13の出力であるDMAバス17の何れかがセレクタ(マルチプレクサ)12でセレクトされたものである。DMAバス17はリードDMACであるDMAC7と接続されているDMAバス15に対応している。   The DMAC 6 is a write DMAC and is connected to the DMA bus 14. Here, the DMA bus 14 is one in which either the DMA bus 16 of the IO device 9 or the DMA bus 17 that is the output of the selector (demultiplexer) 13 is selected by the selector (multiplexer) 12. The DMA bus 17 corresponds to the DMA bus 15 connected to the DMAC 7 which is a read DMAC.

セレクタ12及び13のセレクト信号はデバイス選択ブロック11で生成され、CPU21がレジスタ設定で切り替えている。切り替えるタイミングはDMAバスがアクティブでない状態でなければならない。   The select signals of the selectors 12 and 13 are generated by the device selection block 11, and the CPU 21 is switched by register setting. The timing for switching must be in a state where the DMA bus is not active.

DMAC7はリードDMACであり、セレクタ13を介してIOデバイス10に接続されている。セレクタ12は2入力のうち、選択された入力のみを出力するマルチプレクサであり、セレクタ13は選択された出力番号のみに入力を通過させ、他方の出力にはインアクティブのレベルを通過させるデマルチプレクサである。また、図5中のDMAバスの矢印はあくまでデータの流れを示したものであり、全てのバスの信号が矢印方向へ向いているわけではない。   The DMAC 7 is a read DMAC and is connected to the IO device 10 via the selector 13. The selector 12 is a multiplexer that outputs only the selected input of the two inputs, and the selector 13 is a demultiplexer that passes the input only to the selected output number and passes the inactive level to the other output. is there. Further, the DMA bus arrows in FIG. 5 merely indicate the flow of data, and not all bus signals are directed in the direction of the arrows.

多次元アドレッシング対象のDMAC5のDMA転送終了信号(End)、即ち、図5の信号20はライトDMACであるDMAC6のDMA外部トリガ(Start)と接続されている。   The DMA transfer end signal (End) of the multi-dimensional addressing DMAC 5, that is, the signal 20 in FIG. 5 is connected to the DMA external trigger (Start) of the DMAC 6 that is the write DMAC.

IOデバイス8、9、10は画像処理を行う専用のモジュール、又は外部デバイスとの間で通信を制御するためのモジュールである。このIOデバイスはDMAバスプロトコルをサポートするためにDMAバスインターフェース回路を内蔵している。   The IO devices 8, 9, and 10 are dedicated modules for performing image processing, or modules for controlling communication with external devices. This IO device incorporates a DMA bus interface circuit to support the DMA bus protocol.

INTC22は割り込みコントローラであり、DMAC5、6、7からの割り込み信号23、24、25のうち選択された割り込み要因のみを最終的な割り込み信号26としてCPU21へ通知する。   The INTC 22 is an interrupt controller, and notifies the CPU 21 of only the interrupt factor selected from the interrupt signals 23, 24 and 25 from the DMACs 5, 6 and 7 as the final interrupt signal 26.

メモリコントローラ2は各バスマスタとDRAM3との間でデータ転送を取り持つブロックである。そして、アービタ4は複数のマスタのバスリクエストを調停するモジュールである。   The memory controller 2 is a block that handles data transfer between each bus master and the DRAM 3. The arbiter 4 is a module that arbitrates bus requests from a plurality of masters.

以上が、DMAC5が多次元アドレッシングDMAを実行できる最小システムの構成である。   The above is the minimum system configuration in which the DMAC 5 can execute the multidimensional addressing DMA.

もしDMAC5を多次元アドレッシングとして使用する場合、DMAC7のDMAバス15とDMAC6のDMAバス14が接続されるように、セレクタ12とセレクタ13のセレクト信号を設定する必要がある。即ち、この場合、DMAバス15とDMAバス17とDMAバス14が接続され、IOデバイス9、10が使用不可状態になる。DMAC6とDMAC7は連携してDMAC5の多次元アドレッシング機能を有効にする。   If the DMAC 5 is used as multidimensional addressing, it is necessary to set the select signal of the selector 12 and the selector 13 so that the DMA bus 15 of the DMAC 7 and the DMA bus 14 of the DMAC 6 are connected. That is, in this case, the DMA bus 15, the DMA bus 17, and the DMA bus 14 are connected, and the IO devices 9 and 10 are disabled. DMAC 6 and DMAC 7 cooperate to enable the multidimensional addressing function of DMAC 5.

上述したDMACシステムにおいて、DMAC5が多次元アドレッシングDMAを行う簡単な動作を以下に説明する。   A simple operation in which the DMAC 5 performs the multidimensional addressing DMA in the DMAC system described above will be described below.

多次元アドレッシングを行いたいDMAC5は、単体では1次元アドレッシングDMAしか実行できない。そこで、他の2つのDMAC6及びDMAC7でDMAC5が有している転送パラメータ(DMA先頭アドレスレジスタ401、DMA制御レジスタ402)を動的に書き換えることでDMAC5の多次元アドレッシングを実現する。ここで、書き換えるレジスタのデータはメモリ領域内に予め配置しておくものとする。   The DMAC 5 that wants to perform multidimensional addressing can execute only one-dimensional addressing DMA by itself. Therefore, the multi-dimensional addressing of DMAC 5 is realized by dynamically rewriting the transfer parameters (DMA start address register 401 and DMA control register 402) that DMAC 5 has in the other two DMACs 6 and 7. Here, it is assumed that the register data to be rewritten is arranged in advance in the memory area.

リードDMACであるDMAC7がメモリ中の転送パラメータを順序通りにリードし、DMAバス15(同DMAバス14)を介してライトDMACであるDMAC6へ送る。これにより、DMAC6はこのデータ群をDMAC5の制御レジスタに対して書き込む。ここで、DMAC6に設定されたDMA先頭アドレスはDMAC5の制御レジスタのIOアドレスをポイントしておかなければならない。DMAC5のパラメータの更新はDMAC5の1次元DMAが終了する度に発生する。このときDMAC5のDMA転送終了信号(End)とDMAC6の外部トリガ信号(Start)の接続関係が、DMAパラメータの更新ループを可能にしている。   The DMAC 7 that is the read DMAC reads the transfer parameters in the memory in order and sends them to the DMAC 6 that is the write DMAC via the DMA bus 15 (same DMA bus 14). As a result, the DMAC 6 writes this data group to the control register of the DMAC 5. Here, the DMA head address set in the DMAC 6 must point to the IO address of the control register of the DMAC 5. The update of the parameters of the DMAC 5 occurs every time the one-dimensional DMA of the DMAC 5 is finished. At this time, the connection relationship between the DMA transfer end signal (End) of the DMAC 5 and the external trigger signal (Start) of the DMAC 6 enables a DMA parameter update loop.

尚、DMAC5が多次元アドレッシングを必要としない構成の場合、DMAC6とIOデバイス9が、DMAC7とIOデバイス10が接続されるように、セレクタ12、13をセレクトすれば良い。この場合、DMAC6とDMAC7は、通常のIOデバイスとのDMA転送が可能となる。   In the case where the DMAC 5 does not require multidimensional addressing, the selectors 12 and 13 may be selected so that the DMAC 6 and the IO device 9 are connected to the DMAC 7 and the IO device 10. In this case, the DMAC 6 and the DMAC 7 can perform DMA transfer with a normal IO device.

次に、具体的に不連続な転送領域を仮定し、どのようなレジスタの設定を行えば、仮定した不連続領域のアドレッシングが可能となるか、また、どのような手順でDMAを起動すれば、仮定した不連続領域のアドレッシングが可能となるかについて説明する。   Next, assuming a specific discontinuous transfer area, what kind of register setting should enable addressing of the assumed discontinuous area, and what kind of procedure should start DMA? An explanation will be given of whether or not the assumed discontinuous area can be addressed.

図6は、本実施形態における不連続領域を仮定した場合の一例を示す図である。図6に示すように、全てのDMA転送領域は5つの不連続領域(領域0、領域1、領域2、領域3、領域4)に分かれている。その領域内部では、アドレスは全て連続である。各領域中でSA(x=0〜4)を先頭アドレスとして図の右向きへアドレッシングを行い、終端まで到達すると次の領域の先頭アドレスまでジャンプする。即ち、この不連続アドレスへのジャンプが本実施形態では4度行われる。それぞれの領域の転送範囲(転送バイト数)はLENで表される。 FIG. 6 is a diagram illustrating an example when a discontinuous region is assumed in the present embodiment. As shown in FIG. 6, all DMA transfer areas are divided into five discontinuous areas (area 0, area 1, area 2, area 3, and area 4). Within the area, all addresses are continuous. In each area, SA x (x = 0 to 4) is used as a head address, and addressing is performed to the right in the figure, and when reaching the end, a jump is made to the head address of the next area. That is, this jump to the discontinuous address is performed four times in this embodiment. The transfer range (number of transfer bytes) of each area is represented by LEN x .

以上のような領域で転送を行うためには、図7に示すように、転送パラメータをメモリ(DRAM3)中に予め格納しておく必要がある。転送パラメータはメモリ中の「0x0001_0000」番地をベースアドレス(BA)として隙間無く全ての領域分配置される。また、配置する順番は、領域0のDMA先頭アドレスレジスタ、DMA制御レジスタ、領域1のDMA先頭アドレスレジスタ、DMA制御レジスタ、…というように、領域順、レジスタ順である。   In order to perform the transfer in the area as described above, it is necessary to store the transfer parameter in the memory (DRAM 3) in advance as shown in FIG. The transfer parameters are arranged for all the areas without a gap with the address “0x0001 — 0000” in the memory as the base address (BA). The order of arrangement is the order of the areas and the order of the registers, such as the DMA start address register in the area 0, the DMA control register, the DMA start address register in the area 1, the DMA control register, and so on.

ここで、DMA先頭アドレスレジスタ(SA)には、各領域の先頭アドレス(SA〜SA)を指定する。DMA制御レジスタの転送長フィールド(LEN)には、各領域の転送長(LEN〜LEN)を指定する。スタートビット(S)は全ての領域で“1”を、割り込みイネーブルビット(IE)は最後の領域(領域4)を除いて“0”を、最後の領域のみ“1”を設定する。これはDMA転送が全ての領域での転送を終了したときの割り込みのみを検出するために、最後の領域のみの割り込みを有効にするためである。 Here, the start address (SA 0 to SA 4 ) of each area is designated in the DMA start address register (SA). The transfer length (LEN 0 to LEN 4 ) of each area is designated in the transfer length field (LEN) of the DMA control register. The start bit (S) is set to “1” in all areas, the interrupt enable bit (IE) is set to “0” except for the last area (area 4), and “1” is set only in the last area. This is because the interrupt of only the last area is made valid in order to detect only the interrupt when the DMA transfer ends the transfer in all areas.

尚、用途によって途中の割り込みを検出したければ、割り込みイネーブルフィールドを適宜“1”に設定すれば良い。割り込みステータスフィールドは同フィールドが“1”のとき“0”クリアしか作用しないので、割り込み要因をクリアしたいときのみ“0”で、それ以外は全て“1”を設定すると安全である。   If it is desired to detect an intermediate interrupt depending on the application, the interrupt enable field may be set to “1” as appropriate. Since the interrupt status field is only “0” clear when the field is “1”, it is safe to set “0” only when it is desired to clear the interrupt factor, and to set “1” in all other cases.

このパラメータをリードDMAC7が逐一リードしてライトDMAC6へ送り、ライトDMAC6がそのパラメータを多次元アドレッシングサポートDMAC5の制御レジスタへ書き込むことになる。   These parameters are read one by one by the read DMAC 7 and sent to the write DMAC 6, and the write DMAC 6 writes the parameters into the control register of the multidimensional addressing support DMAC 5.

図8は、各DMACの制御レジスタに設定すべき値を示す図である。まず、DMAC5のレジスタ値は全てBAをベースアドレスにするメモリ内に置かれているので、何も設定する必要はない。   FIG. 8 is a diagram showing values to be set in the control register of each DMAC. First, since all the register values of the DMAC 5 are placed in a memory having BA as a base address, there is no need to set anything.

次に、DMAC6のDMA先頭ベースアドレスレジスタ(SA)にはDMAC5のレジスタベースアドレスである「0xF000_0000」を、DMA制御レジスタの転送長フィールド(LEN)に32ビットレジスタ2個分の「0x8」を設定する。つまり、1度のDMAでDMAC5の2つのレジスタに書き込みを行うという設定である。各レジスタに割り当てられているアドレスは図中に示してある。   Next, “0xF000_0000” which is the register base address of DMAC5 is set in the DMA start base address register (SA) of DMAC6, and “0x8” corresponding to two 32-bit registers is set in the transfer length field (LEN) of the DMA control register. To do. That is, the setting is such that writing is performed to two registers of the DMAC 5 by one DMA. The addresses assigned to each register are shown in the figure.

スタートビット(S)は“1”にして、最初の一度のDMAのみソフトウェアによって起動させる必要がある。図5から分かるように、DMAC6の外部スタート(Start)はDMAC5のDMA転送終了信号(End)に接続され、DMAC5のDMA終了によって起動するようになっているが、最初のDMAC5の転送開始を設定するのはDMAC6であるので、最初のDMAC6の起動はソフトウェアでなければならない。また、割り込みイネーブルフィールドは“0”で構わない。   It is necessary to set the start bit (S) to “1” and activate only the first one DMA by software. As can be seen from FIG. 5, the external start (Start) of the DMAC 6 is connected to the DMA transfer end signal (End) of the DMAC 5 and is started by the DMA end of the DMAC 5, but the transfer start of the first DMAC 5 is set. Since it is the DMAC 6 that performs, the first activation of the DMAC 6 must be software. The interrupt enable field may be “0”.

DMAC7のDMA先頭アドレスレジスタ(SA)は、DMAC5の転送領域パラメータが格納されたメモリ領域のベースアドレス(BA)の値を入れる。この場合、「0x0001_0000」である。   The DMA start address register (SA) of the DMAC 7 stores the value of the base address (BA) of the memory area in which the transfer area parameter of the DMAC 5 is stored. In this case, “0x0001_0000”.

DMA制御レジスタの転送長フィールド(LEN)はメモリ内のパラメータの個数分をバイト換算したものであるので、「0x28」となる。スタートビットには“1”を設定する。割り込みイネーブルフィールドは“0”で構わない。このDMAC7は、一度の多次元DMACで1度しか起動することはない。   The transfer length field (LEN) of the DMA control register is “0x28” because the number of parameters in the memory is converted into bytes. Set the start bit to “1”. The interrupt enable field may be “0”. This DMAC 7 is activated only once in one multidimensional DMAC.

図9は、図8の設定でDMA転送を行う場合の、時系列でのDMA転送の推移と起動の関係を示す図である。尚、図9には示していないが、DMA転送を行う前に、CPU21からDRAM3の任意のメモリ領域に対してDMAC5の転送パラメータを配置する作業が必要である。   FIG. 9 is a diagram showing the relationship between transition and activation of DMA transfer in time series when DMA transfer is performed with the setting of FIG. Although not shown in FIG. 9, before the DMA transfer is performed, it is necessary for the CPU 21 to arrange the transfer parameters of the DMAC 5 in an arbitrary memory area of the DRAM 3.

まず、CPU21がDMAC6、DMAC7の転送パラメータを設定し、DMAを起動する。最初に動作するDMACはDMAC7で、メモリ領域からDMAC7のパラメータ情報をリードしてくる。ここで、リードデータはDMAC6に対してDMAバス15及び14を介して送られる。DMAC6がDMAC7より8バイト分のデータを受信すると、バスリクエストを発行して8バイト分のDMAを行う。ここでターゲットはDMAC5のレジスタアドレスである。   First, the CPU 21 sets DMAC6 and DMAC7 transfer parameters and starts DMA. The first DMAC that operates is DMAC7, which reads parameter information of DMAC7 from the memory area. Here, the read data is sent to the DMAC 6 via the DMA buses 15 and 14. When the DMAC 6 receives 8 bytes of data from the DMAC 7, it issues a bus request and performs DMA for 8 bytes. Here, the target is the register address of DMAC5.

次に、DMAC6の8バイト分、つまり、DMAC5の先頭アドレスレジスタ及び制御レジスタの書き込みが終了すると同時に、DMAC5のDMAが開始され、最初の領域の転送長(LEN)分のデータ転送が行われる。この間、DMAC6はDMAバス14側からのデータ受信は引き続き行うが、システムバス1に対してのデータ転送は完全に停止している。また、DMAC7はこの間を含めて設定された転送長分のDMAを続けるが、DMAC6のDMAが停止しているので、DMAC7のDMA自体も止まってしまう可能性がある。特に、DMAC6の内部に段数の少ないFIFOを有している場合、この状態が起こりやすい。逆に、複数段のFIFOを有している場合、DMAC7のDMA転送は図9に示すものより早い段階で終了するかもしれない。 Next, 8 bytes of DMAC6, that is, writing of the start address register and control register of DMAC5 is completed, and at the same time, DMA of DMAC5 is started and data transfer for the transfer length (LEN 0 ) of the first area is performed. . During this time, the DMAC 6 continues to receive data from the DMA bus 14, but the data transfer to the system bus 1 is completely stopped. The DMAC 7 continues DMA for the set transfer length including this period, but since the DMAC 6 DMA is stopped, the DMAC 7 DMA itself may also stop. This state is likely to occur particularly when the DMAC 6 has a FIFO with a small number of stages. Conversely, if a multi-stage FIFO is provided, the DMA transfer of the DMAC 7 may be completed at an earlier stage than that shown in FIG.

その後、DMAC5が領域0のDMAを終了すると、DMAC6に対して外部トリガをかけ、DMAC6はそれに応えて再DMAを行う。そして、このシーケンスをDMAC5の最終領域(LEN)のDMAが終了するまで繰り返し実行する。 Thereafter, when the DMAC 5 finishes the DMA in the area 0, an external trigger is applied to the DMAC 6, and the DMAC 6 performs re-DMA in response thereto. This sequence is repeatedly executed until the DMA of the last area (LEN 4 ) of DMAC 5 is completed.

尚、DMAC5のDMA転送終了信号(End)をDMAC6のスタートトリガ(Start)としているので、DMAC6の最後1回のDMAが余計に開始されてしまう。そのため、DMAC5の転送終了割り込み検出後にDMAC6のDMAを強制終了する必要がある。このとき、DMAC7では既にDMA転送を終了しており、またDMAC6内には余分なデータが存在するわけではないので、DMAC6がDMAC5を余計に起動をかけることはない。   Since the DMAC5 DMA transfer end signal (End) is used as the start trigger (Start) of the DMAC6, the last DMA of the DMAC6 is started excessively. Therefore, it is necessary to forcibly terminate the DMAC 6 DMA after detecting the DMAC 5 transfer end interrupt. At this time, the DMAC 7 has already finished the DMA transfer, and there is no extra data in the DMAC 6, so the DMAC 6 does not activate the DMAC 5 excessively.

以上説明したように、少なくとも1つのライトDMACと1つのリードDMACと多次元アドレッシングを行いたいライトDMAC(若しくはリードDMAC)を組み合わせることで、簡単に多次元DMACを実現することができる。   As described above, a multidimensional DMAC can be easily realized by combining at least one write DMAC, one read DMAC, and a write DMAC (or read DMAC) to be subjected to multidimensional addressing.

本実施形態におけるDMACの仕様は、リード専用とライト専用の違いは当然あるものの、非常にシンプルな1次元DMACである。共通のシンプルな仕様であるDMACだけを用いて多次元DMACを実現できるところが最大の利点である。   The DMAC specification in this embodiment is a very simple one-dimensional DMAC, although there is naturally a difference between read-only and write-only. The greatest advantage is that a multidimensional DMAC can be realized using only the DMAC which is a common simple specification.

そのため、多次元アドレッシングを使用しない状況では、図5に示すDMAシステムのセレクタ12、13でDMAC6とDMAC7の接続を解除し、通常のIOデバイス用にDMACを使用できる。この場合、セレクタ12、13を切り替えるタイミングは完全にスタティックなものであって、確実にDMAが終了したことを確認した後に行わなければならない。   Therefore, in a situation where multidimensional addressing is not used, the DMAC 6 and DMAC 7 can be disconnected by the selectors 12 and 13 of the DMA system shown in FIG. 5, and the DMAC can be used for a normal IO device. In this case, the timing of switching the selectors 12 and 13 is completely static and must be performed after confirming that the DMA has been completed.

本実施形態では、図5に示すように、1つの多次元アドレッシング対象であるDMACと、それを実現するために必要なライトDMACとリードDMACを用意し、後者2つのDMACは別の用途(IOデバイス用DMA)としても使用できるように、DMAバスにセレクタを置いて切り替え可能としている。   In this embodiment, as shown in FIG. 5, a DMAC that is one multidimensional addressing target and a write DMAC and a read DMAC necessary to realize the DMAC are prepared. The device can be switched by placing a selector on the DMA bus so that it can also be used as a device DMA.

これを拡張して考えると、図10に示すようなシステムを構成することも可能である。図10は、任意のDMACを多次元アドレッシング対象のDMACとする構成の一例を示す図である。図10に示すように、このシステムに存在する全てのDMACのDMAバスをDMAバスセレクタ205に接続し、デバイス選択モジュール202にてデバイス選択信号200を制御して切り替える。   If this is expanded, it is possible to configure a system as shown in FIG. FIG. 10 is a diagram illustrating an example of a configuration in which an arbitrary DMAC is set as a multidimensional addressing target DMAC. As shown in FIG. 10, all DMAC DMA buses existing in this system are connected to a DMA bus selector 205, and a device selection signal 200 is controlled and switched by a device selection module 202.

また同時に、多次元アドレッシングを行いたいDMACとライトDMAC間で外部起動トリガと終了信号の接続を行う必要があるので、DMAバスセレクタ205の場合と同様に、トリガ転送終了セレクタ204を備え、トリガ選択モジュール203にてトリガ選択信号201を制御して切り替えを行う。   At the same time, since it is necessary to connect an external activation trigger and an end signal between the DMAC to which multi-dimensional addressing is to be performed and the write DMAC, as in the case of the DMA bus selector 205, a trigger transfer end selector 204 is provided to select a trigger. The module 203 controls the trigger selection signal 201 to perform switching.

このように制御することで多次元アドレッシングを行うべきDMAチャネルに対して、その時点で使用されていないDMACチャネルを多次元DMAC用のサポート用途に切り替えることができるようになり、より柔軟性が高まる。   By controlling in this way, it becomes possible to switch a DMAC channel that is not used at that time to a support application for multidimensional DMAC with respect to a DMA channel to be subjected to multidimensional addressing, thereby increasing flexibility. .

或いは、最初から多次元DMAC用のサポートDMACとしてライトDMACとリードDMACを1組用意しておき、使用することも可能である。   Alternatively, one set of write DMAC and read DMAC can be prepared and used as support DMAC for multidimensional DMAC from the beginning.

以上説明したように、本実施形態によれば、非常にシンプルな1次元アドレッシングのみをサポートしたDMACを複数個使用することで多次元アドレッシングが可能となる。また、同一仕様のDMACだけを使いまわすことで、他のIOデバイス用のDMACとしても使用でき、更に設計、検証期間の短縮が可能となる。   As described above, according to the present embodiment, multi-dimensional addressing can be performed by using a plurality of DMACs that support only very simple one-dimensional addressing. Further, by using only the DMAC having the same specification, it can be used as a DMAC for other IO devices, and the design and verification period can be further shortened.

尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。   Even if the present invention is applied to a system composed of a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), it is applied to an apparatus (for example, a copier, a facsimile machine, etc.) composed of a single device. It may be applied.

また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。   Another object of the present invention is to supply a recording medium in which a program code of software realizing the functions of the above-described embodiments is recorded to a system or apparatus, and the computer (CPU or MPU) of the system or apparatus stores it in the recording medium. Needless to say, this can also be achieved by reading and executing the programmed program code.

この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。   In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiment, and the recording medium storing the program code constitutes the present invention.

このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。   As a recording medium for supplying the program code, for example, a floppy (registered trademark) disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like is used. be able to.

また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) operating on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.

更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, after the program code read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.

本実施形態におけるDMACの内部構成の一例を示す概略図である。It is the schematic which shows an example of the internal structure of DMAC in this embodiment. 図1に示す信号とDMA実行に関する関係を示す図である。It is a figure which shows the relationship regarding the signal shown in FIG. 1, and DMA execution. DMAバスにおけるプロトコルの仕様を説明するための図である。It is a figure for demonstrating the specification of the protocol in a DMA bus. 制御レジスタブロック105における制御レジスタの構成例を示す図である。3 is a diagram illustrating a configuration example of a control register in a control register block 105. FIG. 本実施形態におけるDMACシステムの一例を示すブロック図である。It is a block diagram which shows an example of the DMAC system in this embodiment. 本実施形態における不連続領域を仮定した場合の一例を示す図である。It is a figure which shows an example at the time of assuming the discontinuous area | region in this embodiment. メモリ領域の配置を説明するための図である。It is a figure for demonstrating arrangement | positioning of a memory area. 各DMACの制御レジスタに設定すべき値を示す図である。It is a figure which shows the value which should be set to the control register of each DMAC. 図8の設定でDMA転送を行う場合の、時系列でのDMA転送の推移と起動の関係を示す図である。FIG. 9 is a diagram illustrating a relationship between transition and activation of DMA transfer in a time series when DMA transfer is performed with the setting of FIG. 8. 任意のDMACを多次元アドレッシング対象のDMACとする構成の一例を示す図である。It is a figure which shows an example of the structure which makes arbitrary DMAC DMAC of multidimensional addressing object.

符号の説明Explanation of symbols

1 システムバス(アドレスバス、データバス)
2 メモリコントローラ
3 DRAM
4 バスアービター
5 ライトDMAC
6 ライトDMAC
7 リードDMAC
8 IOデバイス(送信専用)
9 IOデバイス(送信専用)
10 IOデバイス(受信専用)
11 デバイス選択ブロック
12 DMAバスセレクタ(マルチプレクサ)
13 DMAバスセレクタ(デマルチプレクサ)
14 DMAC6用DMAバス
15 DMAC7用DMAバス
16 IOデバイス9用DMAバス
17 DMAC連結用DMAバス
18 IOデバイス10用DMAバス
19 IOデバイス8用DMAバス(DMAC5用DMAバス)
20 DMAC5のDMA転送終了信号
21 CPU
22 割り込みコントローラ(INTC)
23 DMAC5の割り込み信号
24 DMAC6の割り込み信号
25 DMAC7の割り込み信号
100 ライトDMAC
101 システムバス
102 バスマスタインターフェース
103 DMAバスインターフェース
104 データFIFO
105 制御レジスタブロック
106 DMA制御ブロック
107 アドレス生成回路
108 バス要求発行制御ブロック
109 データ制御ブロック
110 valid信号
111 data信号
112 busy信号
113 外部トリガ信号Start
114 DMA転送終了信号End
115 割り込み信号Int
116 内部トリガ信号Start
200 デバイス選択信号
201 トリガ選択信号
202 デバイス選択モジュール
203 トリガ選択モジュール
204 トリガ転送終了セレクタ
205 DMAバスセレクタ
1 System bus (address bus, data bus)
2 Memory controller 3 DRAM
4 Bus Arbiter 5 Light DMAC
6 Light DMAC
7 Lead DMAC
8 IO device (sending only)
9 IO device (sending only)
10 IO device (receive only)
11 Device selection block 12 DMA bus selector (multiplexer)
13 DMA bus selector (demultiplexer)
14 DMAC6 DMA bus 15 DMAC7 DMA bus 16 IO device 9 DMA bus 17 DMAC connection DMA bus 18 IO device 10 DMA bus 19 IO device 8 DMA bus (DMAC5 DMA bus)
20 DMAC5 DMA transfer end signal 21 CPU
22 Interrupt controller (INTC)
23 Interrupt signal of DMAC5 24 Interrupt signal of DMAC6 25 Interrupt signal of DMAC7 100 Write DMAC
101 System bus 102 Bus master interface 103 DMA bus interface 104 Data FIFO
105 control register block 106 DMA control block 107 address generation circuit 108 bus request issue control block 109 data control block 110 valid signal 111 data signal 112 busy signal 113 external trigger signal Start
114 DMA transfer end signal End
115 Interrupt signal Int
116 Internal trigger signal Start
200 Device selection signal 201 Trigger selection signal 202 Device selection module 203 Trigger selection module 204 Trigger transfer end selector 205 DMA bus selector

Claims (5)

多次元アドレッシングをサポートする第1のDMAコントローラと、メモリライト専用の第2のDMAコントローラと、メモリリード専用の第3のDMAコントローラとを含むデータ転送システムであって、
前記第1、第2、第3のDMAコントローラは、システムバスに接続するための第1のインターフェースと、周辺デバイスとの間でデータ転送を行う第2のインターフェースと、先頭アドレスレジスタと転送長レジスタとを有し、転送終了後、外部へ転送終了信号を生成する手段と、ソフトウェアによる起動以外に外部トリガによりデータ転送を起動する手段とを有し、
前記第1のDMAコントローラの前記転送終了信号を前記第2のDMAコントローラの外部トリガ入力に接続し、前記第2及び第3のDMAコントローラを前記第2のインターフェースを介して直接、或いは選択手段を介して接続する手段を有し、
前記選択手段を介して接続した場合は、ソフトウェアによって周辺デバイスとの接続を有効にするか、前記第2及び第3のDMAコントローラの間の接続を有効にするかを選択可能とすることを特徴とするデータ転送システム。
A data transfer system including a first DMA controller supporting multidimensional addressing, a second DMA controller dedicated to memory write, and a third DMA controller dedicated to memory read,
The first, second, and third DMA controllers include a first interface for connecting to a system bus, a second interface for transferring data between peripheral devices, a head address register, and a transfer length register. And means for generating a transfer end signal to the outside after the transfer is completed, and means for starting data transfer by an external trigger in addition to the start by software,
The transfer end signal of the first DMA controller is connected to an external trigger input of the second DMA controller, and the second and third DMA controllers are connected directly via the second interface or selection means. Having means for connecting via
When the connection is made via the selection means, it is possible to select whether the connection with the peripheral device is enabled by software or the connection between the second and third DMA controllers is enabled. And data transfer system.
複数のDMAコントローラから前記転送終了信号を入力し、前記転送終了信号を全ての外部トリガ信号の出力候補として選択可能な選択手段と、前記選択手段の選択信号を生成するための生成手段とを有することを特徴とする請求項1記載のデータ転送システム。   Selection means capable of inputting the transfer end signals from a plurality of DMA controllers and selecting the transfer end signals as output candidates of all external trigger signals; and generating means for generating selection signals of the selection means The data transfer system according to claim 1. 多次元アドレッシングをサポートする第1のDMAコントローラと、メモリライト専用の第2のDMAコントローラと、メモリリード専用の第3のDMAコントローラとを含むデータ転送システムのデータ転送方法であって、
前記第3のDMAコントローラが所定のメモリからデータ転送を開始するアドレス及び転送長を示す情報を読み出し、前記第2のDMAコントローラへ転送させる工程と、
前記第2のDMAコントローラが前記第3のDMAコントローラから転送された情報を第1のDMAコントローラへ書き込み、前記第1のDMAコントローラにて書き込まれた情報に基づいてデータ転送を実行させる工程とを有し、
前記所定のメモリに前記データ転送を開始するアドレス及び転送長を示す情報を複数個記憶させておき、不連続なメモリ領域に対するデータ転送を可能とすることを特徴とするデータ転送システムのデータ転送方法。
A data transfer method for a data transfer system, comprising: a first DMA controller supporting multidimensional addressing; a second DMA controller dedicated to memory write; and a third DMA controller dedicated to memory read,
Reading information indicating an address and transfer length at which the third DMA controller starts data transfer from a predetermined memory, and transferring the information to the second DMA controller;
The second DMA controller writing information transferred from the third DMA controller to the first DMA controller, and executing data transfer based on the information written by the first DMA controller; Have
A data transfer method for a data transfer system, wherein a plurality of pieces of information indicating an address for starting the data transfer and a transfer length are stored in the predetermined memory to enable data transfer to a discontinuous memory area .
請求項3記載のデータ転送システムのデータ転送方法をコンピュータに実行させるためのプログラム。   A program for causing a computer to execute the data transfer method of the data transfer system according to claim 3. 請求項4記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to claim 4 is recorded.
JP2004311041A 2004-10-26 2004-10-26 Data transfer system and its data transfer method Withdrawn JP2006126938A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004311041A JP2006126938A (en) 2004-10-26 2004-10-26 Data transfer system and its data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004311041A JP2006126938A (en) 2004-10-26 2004-10-26 Data transfer system and its data transfer method

Publications (1)

Publication Number Publication Date
JP2006126938A true JP2006126938A (en) 2006-05-18

Family

ID=36721668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004311041A Withdrawn JP2006126938A (en) 2004-10-26 2004-10-26 Data transfer system and its data transfer method

Country Status (1)

Country Link
JP (1) JP2006126938A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009817A (en) * 2006-06-30 2008-01-17 Fujitsu Ltd Semiconductor device and data transfer method
JP2010041154A (en) * 2008-07-31 2010-02-18 Ricoh Co Ltd Image processor, image processing control method, image processing control program, and recording medium
JP2013205928A (en) * 2012-03-27 2013-10-07 Fujitsu Semiconductor Ltd Semiconductor integrated circuit and dma control method thereof
CN109240954A (en) * 2017-07-10 2019-01-18 恩智浦美国有限公司 Dma controller with trigger sequence generator
CN114328322A (en) * 2022-03-17 2022-04-12 之江实验室 DMA controller operation method capable of configuring function mode
WO2023178859A1 (en) * 2022-03-21 2023-09-28 奥比中光科技集团股份有限公司 Dma data transfer method and device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009817A (en) * 2006-06-30 2008-01-17 Fujitsu Ltd Semiconductor device and data transfer method
JP2010041154A (en) * 2008-07-31 2010-02-18 Ricoh Co Ltd Image processor, image processing control method, image processing control program, and recording medium
JP2013205928A (en) * 2012-03-27 2013-10-07 Fujitsu Semiconductor Ltd Semiconductor integrated circuit and dma control method thereof
US9323700B2 (en) 2012-03-27 2016-04-26 Socionext Inc. Semiconductor integrated circuit and DMA control method of the same
CN109240954A (en) * 2017-07-10 2019-01-18 恩智浦美国有限公司 Dma controller with trigger sequence generator
CN114328322A (en) * 2022-03-17 2022-04-12 之江实验室 DMA controller operation method capable of configuring function mode
WO2023178859A1 (en) * 2022-03-21 2023-09-28 奥比中光科技集团股份有限公司 Dma data transfer method and device

Similar Documents

Publication Publication Date Title
CN100430886C (en) Data processing in which concurrently executed processes communicate via a FIFO buffer
JP2005202767A (en) Processor system, dma control circuit, dma control method, control method for dma controller, image processing method, and image processing circuit
JP2007206885A (en) Computer system and system starting method
JP2008009817A (en) Semiconductor device and data transfer method
JP2003296267A (en) Bus system and information processing system including bus system
JPH1153306A (en) Data processor, external storage device, data processing system and data transmission method
JP2006126938A (en) Data transfer system and its data transfer method
JPH10116187A (en) Microcomputer
JP2010198171A (en) Usb host controller and method for controlling the same
JP6774147B2 (en) Control device
JP2005303718A (en) Matrix bus connection system
EP0359232A2 (en) Computer system and method for setting recovery time
JPH1185673A (en) Method and device for controlling shared bus
JP6940283B2 (en) DMA transfer control device, DMA transfer control method, and DMA transfer control program
JP5489871B2 (en) Image processing device
JP4472402B2 (en) Bus equipment
JP2004046891A (en) Data processing system, data processor, external device, and data transmission method
JP2005063351A (en) Device and method for transferring data
JP2008276557A (en) Communication control device, image forming apparatus, communication control method and communication control program
JP6840470B2 (en) Information transfer device and information transfer method
JP2007011884A (en) Data transfer unit
JP2008077389A (en) Data processor
JP6119997B2 (en) Data processing apparatus and data processing apparatus control method
JPH11203059A (en) Image input and output device and its memory access method, and storage medium storing computer readable program
JP2020035336A (en) Bridge device and control method of bridge device, and information processor having the bridge device

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080108