JP2004252693A - Dmaコントローラ - Google Patents
Dmaコントローラ Download PDFInfo
- Publication number
- JP2004252693A JP2004252693A JP2003042035A JP2003042035A JP2004252693A JP 2004252693 A JP2004252693 A JP 2004252693A JP 2003042035 A JP2003042035 A JP 2003042035A JP 2003042035 A JP2003042035 A JP 2003042035A JP 2004252693 A JP2004252693 A JP 2004252693A
- Authority
- JP
- Japan
- Prior art keywords
- packet data
- dma
- transfer
- data stream
- packet
- 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.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【解決手段】受信時には、データ送受信装置の送受信部からデータ転送先にDMA転送するパケット・データ毎に転送バイト数をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段(13A、13B、14A、14B、19、20、22、24、25)を設ける。
【選択図】 図3
Description
【発明の属する技術分野】
本発明は、複数のパケット・データ・ストリームを時分割多重化した時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMA(direct memory access)コントローラに関する。
【0002】
複数のパケット・データ・ストリームを時分割多重化した時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置では、送信時には、複数のパケット・データ・ストリームの時分割多重パケット・データ・ストリームへのマルチプレクス(multiplex)処理が必要であり、受信時には、時分割多重パケット・データ・ストリームの時分割多重化前の複数のパケット・データ・ストリームへのデマルチプレクス(de−multiplex)処理が必要である。
【0003】
【従来の技術】
従来、データ送受信装置として、受信時における送受信部の入出力バッファからデータ転送先へのデータ転送、及び、送信時におけるデータ転送元から送受信部の入出力バッファへのデータ転送にDMAコントローラを使用するものが知られている(例えば、特許文献1、2参照)。
【0004】
図5は従来のデータ送受信装置の要部を示すブロック図である。図5中、1は装置本体、2は送受信部、3は送受信部2が備える入出力バッファ、4は従来のDMAコントローラ、5は受信時にはデータ転送先、送信時にはデータ転送元となるRAM(read only memory)、6はCPU(central processing unit)である。
【0005】
従来のDMAコントローラ4は、マルチプレクス/デマルチプレクス処理機能を持たないため、たとえば、図5に示す従来のデータ送受信装置を時分割多重パケット・データ・ストリームの受信装置として使用する場合、受信時には、DMAコントローラ4に、送受信部2が受信する時分割多重パケット・データ・ストリームを一旦RAM5に書き込ませ、その後、CPU6に、RAM5に書き込まれた時分割多重パケット・データ・ストリームのデマルチプレクス処理を行わせる必要がある。
【0006】
図6は図5に示す従来のデータ送受信装置の時分割多重パケット・データ・ストリーム受信時の動作例を示すタイミングチャートであり、この例では、2個のパケット・データ・ストリームA、Bを1パケット・データ毎に時分割多重化してなる時分割多重パケット・データ・ストリームを受信する場合を示している。
【0007】
図6Aは送受信部2の入出力バッファ3に書き込まれたパケット・データを示しており、パケット・データAn+1、An+2はパケット・データ・ストリームAのパケット・データ、パケット・データBn、Bn+1はパケット・データ・ストリームBのパケット・データである。
【0008】
図6BはDMAコントローラ4による受信したパケット・データの入出力バッファ3からRAM5へのDMA転送状態を示しており、矢印T1〜T3はDMAコントローラ4がDMA転送を行っている期間を示している。実際のDMA転送は、パケットを構成する最小単位のデータが入出力バッファ3に書き込まれる度にDMAコントローラ4がキックされて各パケットデータの最小データ単位毎に実行されるが、ここでは、最終データ受信時の転送のみを記載している。
【0009】
図6CはCPU6によるメイン・タスク処理状態を示しており、矢印T4〜T7はCPU6がメイン・タスク処理を行っている期間を示している。図6DはCPU6によるDMA転送への割り込み処理状態を示しており、矢印T8、T10、T12はCPU6がRAM5内の時分割多重パケット・データ・ストリームについてデマルチプレクス処理を行っている期間、矢印T9、T11、T13はCPU6がDMAコントローラ4の再起動処理を行っている期間である。
【0010】
図6Eはリアル・タイム(real time)OSによる割り込みマスク期間の発生例を示しており、矢印T14はリアル・タイムOSにより発生した割り込みマスク期間を示している。
【0011】
即ち、この例では、時分割多重パケット・データ・ストリームは、パケット・データBn、An+1、Bn+1、An+2の順に入出力バッファ3に書き込まれている。ここで、パケット・データBnが入出力バッファ3に書き込まれると、DMAコントローラ4は、キックされ、矢印T1に示すように、入出力バッファ3からRAM5にパケット・データBnを転送している。これが終了すると、DMA転送カウンタの値は0となる。なお、DMA転送カウンタの値が0となることで、パケット・データの種類(AもしくはB)が変わることをCPU6へ通知するために割り込みが発生する。
【0012】
この時、リアルタイムOSによる割り込みマスク期間が発生していないので、CPU6は、DMA転送制御に割り込んで、RAM5内の時分割多重パケット・データ・ストリームについて、矢印T8に示すように、デマルチプレクス処理を行い、デマルチプレクス処理が終了すると、矢印T9に示すように、DMAコントローラ4の再起動処理を行っている。
【0013】
次に、矢印T2に示すように、DMAコントローラ4は、入出力バッファ3からRAM5にパケット・データAn+1を転送している。これが終了すると、DMA転送カウンタの値は0となる。この時、リアルタイムOSによる割り込みマスク期間が発生していないので、CPU6は、DMA転送制御に割り込んで、RAM5内の時分割多重パケット・データ・ストリームについて、矢印T10に示すように、デマルチプレクス処理を行い、デマルチプレクス処理が終了すると、矢印T11に示すように、DMAコントローラ4の再起動処理を行っている。
【0014】
次に、矢印T3に示すように、DMAコントローラ4は入出力バッファ3からRAM5にパケット・データBn+1を転送している。これが終了すると、DMA転送カウンタの値は0となるが、この時、矢印T14に示すように、リアルタイムOSによる割り込みマスク期間が発生している。
【0015】
このため、CPU6は、リアルタイムOSによる割り込みマスク期間が終了した後、矢印T12に示すように、RAM5内の時分割多重パケット・データ・ストリームのデマルチプレクス処理を行い、続いて、矢印T13に示すように、DMAコントローラ4の再起動処理を行っている。
【0016】
【特許文献1】特開平7−21117号公報
【特許文献2】特開平7−21118号公報
【0017】
【発明が解決しようとする課題】
このように、従来のDMAコントローラ4を使用したデータ送受信装置においては、DMAコントローラ4による時分割多重パケット・データ・ストリームのRAM5への転送と、RAM5に書き込まれた時分割多重パケット・データ・ストリームのCPU6によるデマルチプレクス処理が必要となるので、データ転送処理が二重に発生し、無駄な時間を費やしてしまうという問題点がある。
【0018】
また、従来のDMAコントローラ4では、DMA転送カウンタが0になると、それ以上のDMA転送処理を行うことができないため、CPU6による割り込み処理によるDMAコントローラ4の再起動処理の設定が必要となるが、CPU6の割り込み処理は、時分割多重パケット・データ・ストリームの転送速度よりも十分に高速にできるものでなければならず、CPU6の処理能力が低い場合、受信時にはデータの取りこぼしが発生し、送信時には目的の通信速度を達成することができない場合があるという問題点がある。
【0019】
更に、リアルタイムOSが搭載されると、CPU6には更なる処理能力が要求されることになり、CPU6の処理能力が低い場合、例えば、図6に矢印T15で示すように、受信時に時分割多重パケット・データ・ストリームの受信不可期間が発生してしまう場合があるという問題点がある。
【0020】
ここで、たとえば、時分割多重パケット・データ・ストリームの送受信を行うUART(universal asynchronous receiver−transceiver)においては、ボード・レート(baud rate)が高くなれば高くなるほど、パケット・データのデータ転送周期は短くなるので、CPU6に高い処理能力が要求されることになるし、また、多チャネル多重データ通信やリアルタイムOSの搭載の要求からも、CPU6に高い処理能力が要求されることになる。
【0021】
本発明は、かかる点に鑑み、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMAコントローラであって、CPU処理の介在なしに、受信した時分割多重パケット・データ・ストリームのデマルチプレクス処理を行うことができるようにし、受信時におけるCPUの負荷を軽減することにより、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムOSの導入に容易に対応することができるようにしたDMAコントローラを提供することを第1の目的とする。
【0022】
また、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMAコントローラであって、CPU処理の介在なしに、送信するパケット・データ・ストリームのマルチプレクス処理を行うことができるようにし、送信時におけるCPUの負荷を軽減することにより、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムOSの導入に容易に対応することができるようにしたDMAコントローラを提供することを第2の目的とする。
【0023】
【課題を解決するための手段】
本発明中、第1の発明は、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMAコントローラであって、受信時には、データ送受信装置の送受信部からデータ転送先にDMA転送するパケット・データ毎に転送量をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段を有するというものである。
【0024】
本発明中、第1の発明によれば、制御手段は、受信時には、データ送受信装置の送受信部からデータ転送先にDMA転送するパケット・データ毎に転送量をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御するので、受信時におけるCPUの負荷を軽減することができる。
【0025】
本発明中、第2の発明は、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMAコントローラであって、送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元からデータ送受信装置の送受信部にDMA転送するパケット・データ毎に転送量をカウントし、個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御する制御手段を有するというものである。
【0026】
本発明中、第2の発明によれば、制御手段は、送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元からデータ送受信装置の送受信部にDMA転送するパケット・データ毎に転送量をカウントし、個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御するので、送信時におけるCPUの負荷を軽減することができる。
【0027】
【発明の実施の形態】
図1は本発明の一実施形態のDMAコントローラを備えるデータ送受信装置の要部を示すブロック図である。図1中、7は装置本体、8は送受信部、9は送受信部8内の入出力バッファ、10は本発明の一実施形態のDMAコントローラ、11は受信時にはデータ転送先、送信時にはデータ転送元となるRAM、12はCPUである。図2はRAM11の構成を示す図であり、RAM11は2個のバンク(BANK)BK1、BK2を持っている。
【0028】
図3は本発明の一実施形態のDMAコントローラ10の要部を示すブロック回路図である。本実施形態のDMAコントローラ10は、受信時には、2個のパケット・データ・ストリームA、Bを1パケット・データ毎に時分割多重化した時分割多重パケット・データ・ストリームのデマルチプレクス処理を伴うDMA転送を行うことができ、送信時には、2個のパケット・データ・ストリームA、Bのマルチプレクス処理を伴うDMA転送を行うことができるようにしたものである。
【0029】
図3中、13Aはパケット・データ・ストリームAのパケット・サイズ(バイト数)を設定するパケット・サイズ設定レジスタ、13Bはパケット・データ・ストリームBのパケット・サイズ(バイト数)を設定するパケット・サイズ設定レジスタである。
【0030】
14AはRAM11のバンクBK1内のパケット・データ・ストリームAの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタ、14BはRAM11のバンクBK1内のパケット・データ・ストリームBの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタである。
【0031】
15AはRAM11のバンクBK2内のパケット・データ・ストリームAの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタ、15BはRAM11のバンクBK2内のパケット・データ・ストリームBの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタである。
【0032】
16AはRAM11のバンクBK1内のパケット・データ・ストリームAの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタ、16BはRAM11のバンクBK1内のパケット・データ・ストリームBの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタである。
【0033】
17AはRAM11のバンクBK2内のパケット・データ・ストリームAの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタ、17BはRAM11のバンクBK2内のパケット・データ・ストリームBの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタである。
【0034】
18は1バンクに又は1バンクからDMA転送すべき総DMA転送回数、すなわち、バンクBK1、BK2を切り換えるDMA転送回数を設定するバンク切換レジスタである。また、19はパケット・サイズ設定レジスタ13A、13Bのいずれかの設定値を選択して出力するセレクタである。
【0035】
20は受信時においてパケット・データの転送先がバンクBK1の場合には、転送先トップ・アドレス設定レジスタ14A、14Bの選択動作を行い、受信時においてパケット・データの転送先がバンクBK2の場合には、転送先トップ・アドレス設定レジスタ15A、15Bの選択動作を行うセレクタである。
【0036】
21は送信時においてパケット・データの転送元がバンクBK1の場合には、転送元トップ・アドレス設定レジスタ16A、16Bの選択動作を行い、送信時においてパケット・データの転送元がバンクBK2の場合には、転送元トップ・アドレス設定レジスタ17A、17Bの選択動作を行うセレクタである。
【0037】
22は1パケット・データをDMA転送する毎に、初期値を0として、受信時には入出力バッファ9からRAM11にDMA転送されるバイト数をカウントし、送信時にはRAM11から入出力バッファ9にDMA転送されるバイト数をカウントするDMA転送バイト・カウンタである。
【0038】
23はバンク切換レジスタ18に設定された総DMA転送回数を初期値とし、RAM11に1バイトのDMA転送が行われる毎にカウント値を1デクリメントし、カウントが終了する毎に(カウント値が0になる毎に)、同様の動作を繰り返すと共に、カウントが終了する毎に、セレクタ20、21に対してバンク先を指示するデクリメント・カウンタである。
【0039】
ここで、デクリメント・カウンタ23がバンクBK1を指示する場合、受信時には、セレクタ20は、転送先トップ・アドレス設定レジスタ14A、14Bの選択動作を行い、送信時には、セレクタ21は、転送元トップ・アドレス設定レジスタ16A、16Bの選択動作を行う。
【0040】
これに対して、デクリメント・カウンタ23がバンクBK2を指示する場合、受信時には、セレクタ20は、転送先トップ・アドレス設定レジスタ15A、15Bの選択動作を行い、送信時には、セレクタ21は、転送元トップ・アドレス設定レジスタ17A、17Bの選択動作を行う。
【0041】
24はセレクタ19の制御、パケット・サイズ設定レジスタ13A、13Bのうち、セレクタ19により選択されているパケット・サイズ設定レジスタの設定値(パケット・サイズ)とDMA転送バイト・カウンタ22のカウント値との比較、DMA転送バイト・カウンタ22のリセット及びセレクタ20、21の制御を行う比較器である。
【0042】
比較器24は、まず、セレクタ19に対して、パケット・サイズ設定レジスタ13Aの設定値を選択することを指示し、パケット・サイズ設定レジスタ13Aの設定値とDMA転送バイト・カウンタ22のカウント値とを比較する。
【0043】
そして、パケット・サイズ設定レジスタ13Aの設定値とDMA転送バイト・カウンタ22のカウント値が一致した時は、DMA転送バイト・カウンタ22をリセットすると共に、セレクタ19に対してパケット・サイズ設定レジスタ13Bの設定値を選択することを指示し、パケット・サイズ設定レジスタ13Bの設定値とDMA転送バイト・カウンタ22のカウント値とを比較する。
【0044】
そして、パケット・サイズ設定レジスタ13Bの設定値とDMA転送バイト・カウンタ22のカウント値が一致した時は、DMA転送バイト・カウンタ22をリセットすると共に、セレクタ19に対してパケット・サイズ設定レジスタ13Aの設定値を選択することを指示し、パケット・サイズ設定レジスタ13Aの設定値とDMA転送バイト・カウンタ22のカウント値とを比較する。以下、同様の動作を繰り返す。
【0045】
そして、比較器24は、パケット・サイズ設定レジスタ13Aの設定値とDMA転送バイト・カウンタ22のカウント値とを比較している間は、セレクタ20に対してパケット・データ・ストリームAのパケット・データの転送先トップ・アドレス設定レジスタを選択することを指示し、セレクタ21に対してパケット・データ・ストリームAのパケット・データの転送元トップ・アドレス設定レジスタを選択することを指示する。
【0046】
これに応答して、セレクタ20は、デクリメント・カウンタ23から転送先としてバンクBK1を指示されている場合には、転送先トップ・アドレス設定レジスタ14A、14Bの選択動作を行い、デクリメント・カウンタ23から転送先としてバンクBK2を指示されている場合には、転送先トップ・アドレス設定レジスタ15A、15Bの選択動作を行う。
【0047】
これに対して、セレクタ21は、デクリメント・カウンタ23から転送元としてバンクBK1を指示されている場合には、転送元トップ・アドレス設定レジスタ16A、16Bの選択動作を行い、デクリメント・カウンタ23から転送元としてバンクBK2を指示されている場合には、転送元トップ・アドレス設定レジスタ17A、17Bの選択動作を行う。
【0048】
25は受信時に、転送先トップ・アドレス設定レジスタ14A、14B、15A、15Bのうち、セレクタ20が選択している転送先トップ・アドレス設定レジスタの値を初期値として転送バイト数をカウントし、そのカウント値を、転送先アドレスとしてRAM11に供給すると共に、書き換え値としてセレクタ20が選択している転送先トップ・アドレス設定レジスタに供給するインクリメント/デクリメント・カウンタである。
【0049】
26は送信時に、転送元トップ・アドレス設定レジスタ16A、16B、17A、17Bのうち、セレクタ21が選択している転送元トップ・アドレス設定レジスタの値を初期値として転送バイト数をカウントし、そのカウント値を、転送元アドレスとしてRAM11に供給すると共に、書き換え値としてセレクタ21が選択している転送元トップ・アドレス設定レジスタに供給するインクリメント/デクリメント・カウンタである。
【0050】
このように構成された本実施形態のDMAコントローラ10においては、送受信時には、パケット・サイズ設定レジスタ13Aにパケット・データ・ストリームAのパケット・サイズが設定され、パケット・サイズ設定レジスタ13Bにパケット・データ・ストリームBのパケット・サイズが設定される。
【0051】
また、転送先トップ・アドレス設定レジスタ14AにバンクBK1内のパケット・データ・ストリームAを書き込むべきメモリ領域の先頭アドレスが設定され、転送先トップ・アドレス設定レジスタ14BにバンクBK1内のパケット・データ・ストリームBを書き込むべきメモリ領域の先頭アドレスが設定される。
【0052】
また、転送先トップ・アドレス設定レジスタ15AにバンクBK2内のパケット・データ・ストリームAを書き込むべきメモリ領域の先頭アドレスが設定され、転送先トップ・アドレス設定レジスタ15BにバンクBK2内のパケット・データ・ストリームBを書き込むべきメモリ領域の先頭アドレスが設定される。
【0053】
また、転送元トップ・アドレス設定レジスタ16AにバンクBK1内のパケット・データ・ストリームAが書き込まれるメモリ領域の先頭アドレスが設定され、転送元トップ・アドレス設定レジスタ16BにバンクBK1内のパケット・データ・ストリームBが書き込まれるメモリ領域の先頭アドレスが設定される。
【0054】
また、転送元トップ・アドレス設定レジスタ17AにバンクBK2内のパケット・データ・ストリームAが書き込まれるメモリ領域の先頭アドレスが設定され、転送元トップ・アドレス設定レジスタ17BにバンクBK2内のパケット・データ・ストリームBが書き込まれるメモリ領域の先頭アドレスが設定される。
【0055】
また、バンク切換レジスタ18には、1バンクに(1バンクから)DMA転送すべき総DMA転送回数(バンクBK1、BK2を切り換えるDMA転送回数)が設定される。また、比較器24は、セレクタ19にパケット・サイズ設定レジスタ13Aの選択を指示し、セレクタ20にパケット・データ・ストリームAのパケット・データの転送先トップ・アドレス設定レジスタ14Aの選択を指示する。
【0056】
そして、例えば、受信が開始され、入出力バッファ9にパケット・データ・ストリームAの1パケット・データが書き込まれると、本実施形態のDMAコントローラ10により、入出力バッファ9に書き込まれたパケット・データ・ストリームAのパケット・データのバンクBK1のパケット・データ・ストリームA用のメモリ領域へのDMA転送が行われる。
【0057】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Aの設定値(パケット・データ・ストリームAのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Bに変更し、セレクタ20は、比較器24の制御により選択先を転送先トップ・アドレス設定レジスタ14Bに変更する。
【0058】
次に、入出力バッファ9にパケット・データ・ストリームBの1パケット・データが書き込まれると、本実施形態のDMAコントローラ10により、入出力バッファ9に書き込まれたパケット・データ・ストリームBのパケット・データのバンクBK1のパケット・データ・ストリームB用のメモリ領域へのDMA転送が行われる。
【0059】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Bの設定値(パケット・データ・ストリームBのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Aに変更し、セレクタ20は、比較器24の制御により選択先を転送先トップ・アドレス設定レジスタ14Aに変更する。
【0060】
以下、同様の動作が繰り返され、バンクBK1へのDMA転送回数がバンク切換レジスタ18の設定値(1バンクにDMA転送すべき総DMA転送回数)になると(デクリメント・カウンタ23のカウント値が0になると)、デクリメント・カウンタ23は、セレクタ20に転送先トップ・アドレス設定レジスタ15A、15Bの選択動作を指示する。
【0061】
そして、入出力バッファ9にパケット・データ・ストリームAの1パケット・データが書き込まれると、本実施形態のDMAコントローラ10により、入出力バッファ9に書き込まれたパケット・データ・ストリームAのパケット・データのバンクBK2のパケット・データ・ストリームA用のメモリ領域へのDMA転送が行われる。
【0062】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Aの設定値(パケット・データ・ストリームAのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Bに変更し、セレクタ20は、比較器24の制御により選択先を転送先トップ・アドレス設定レジスタ15Bに変更する。
【0063】
次に、入出力バッファ9にパケット・データ・ストリームBの1パケット・データが書き込まれると、本実施形態のDMAコントローラ10により、入出力バッファ9に書き込まれたパケット・データ・ストリームBのパケット・データのバンクBK2のパケット・データ・ストリームB用のメモリ領域へのDMA転送が行われる。
【0064】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Bの設定値(パケット・データ・ストリームBのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Aに変更し、セレクタ20は、比較器24の制御により選択先を転送先トップ・アドレス設定レジスタ15Aに変更する。
【0065】
以下、同様の動作が繰り返され、バンクBK2へのDMA転送回数がバンク切換レジスタ18の設定値(1バンクにDMA転送すべき総DMA転送回数)になると(デクリメント・カウンタ23のカウント値が0になると)、デクリメント・カウンタ23は、セレクタ20に転送先トップ・アドレス設定レジスタ14A、14Bの選択動作を指示する。以下、同様の動作が繰り返される。
【0066】
図4は図1に示すデータ送受信装置の受信時の動作例を示すタイミングチャートであり、図4Aは入出力バッファ9に書き込まれたパケット・データを示しており、パケット・データAn+1、An+2は、パケット・データ・ストリームAのパケット・データ、パケット・データBn、Bn+1、Bn+2は、パケット・データ・ストリームBのパケット・データを示している。
【0067】
図4Bは本実施形態のDMAコントローラ10による入出力バッファ9からRAM11へのパケット・データ転送状態を示しており、矢印T16〜T20はDMAコントローラ10がDMA転送を行っている期間を示している。実際のDMA転送は、パケットを構成する最小単位のデータが入出力バッファ9に書き込まれる度に本実施形態のDMAコントローラ10がキックされて各パケットデータの最小データ単位毎に実行されるが、ここでは、最終データ受信時の転送のみを記載している。
【0068】
図4CはCPU12によるメイン・タスク処理状態を示しており、矢印T21、T22はCPU12がメイン・タスク処理を行っている期間を示している。また、図4Dはリアル・タイムOSによる割り込みマスク期間の発生例を示しており、矢印T23はリアル・タイムOSにより発生した割り込みマスク期間を示している。
【0069】
即ち、この例では、時分割多重パケット・データ・ストリームは、パケット・データBn、An+1、Bn+1、An+2、Bn+2の順に入出力バッファ9に書き込まれている。ここで、パケット・データBnが入出力バッファ9に書き込まれると、本実施形態のDMAコントローラ10は、矢印T16に示すように、入出力バッファ9からRAM11のバンクBK1、BK2のうち、指示されているバンクのパケット・データ・ストリームB用のメモリ領域にパケット・データBnを転送する。
【0070】
次に、パケット・データAn+1が入出力バッファ9に書き込まれると、本実施形態のDMAコントローラ10は、矢印T17に示すように、入出力バッファ9に書き込まれているパケット・データAn+1をRAM11のバンクBK1、BK2のうち、指示されているバンクのパケット・データ・ストリームA用のメモリ領域に転送する。
【0071】
次に、パケット・データBn+1が入出力バッファ9に書き込まれると、本実施形態のDMAコントローラ10は、矢印T18に示すように、入出力バッファ9に書き込まれているパケット・データBn+1をRAM11のバンクBK1、BK2のうち、指示されているバンクのパケット・データ・ストリームB用のメモリ領域に転送する。
【0072】
次に、パケット・データAn+2が入出力バッファ9に書き込まれると、本実施形態のDMAコントローラ10は、矢印T19に示すように、入出力バッファ9に書き込まれているパケット・データAn+2をRAM11のバンクBK1、BK2のうち、指示されているバンクのパケット・データ・ストリームA用のメモリ領域に転送する。
【0073】
次に、パケット・データBn+2が入出力バッファ9に書き込まれると、本実施形態のDMAコントローラ10は、矢印T20に示すように、入出力バッファ9に書き込まれているパケット・データBn+2をRAM11のバンクBK1、BK2のうち、指示されているバンクのパケット・データ・ストリームB用のメモリ領域に転送する。
【0074】
このようにして、図1に示すデータ送受信装置においては、本実施形態のDMAコントローラ10がデマルチプレクス処理を伴うデータ転送を行うので、例えば、矢印T23に示すように、リアルタイムOSによる割り込みマスク期間が発生したとしても、本実施形態のDMAコントローラ10によるデマルチプレクス処理を伴うRAM11へのデータ転送に何らの影響を与えることもない。
【0075】
また、図1に示すデータ送受信装置において送信が行われる場合には、本実施形態のDMAコントローラ10により、RAM11のバンクBK1のパケット・データ・ストリームA用のメモリ領域から入出力バッファ9にパケット・データ・ストリームAの1パケット・データのDMA転送が行われる。
【0076】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Aの設定値(パケット・データ・ストリームAのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Bに変更し、セレクタ21は、比較器24の制御により選択先を転送元トップ・アドレス設定レジスタ16Bに変更する。
【0077】
次に、入出力バッファ9に書き込まれたパケット・データ・ストリームAのパケット・データの送信が行われると共に、本実施形態のDMAコントローラ10により、RAM11のバンクBK1のパケット・データ・ストリームB用のメモリ領域から入出力バッファ9にパケット・データ・ストリームBの1パケット・データのDMA転送が行われる。
【0078】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Bの設定値(パケット・データ・ストリームBのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Aに変更し、セレクタ21は、比較器24の制御により選択先を転送元トップ・アドレス設定レジスタ16Aに変更する。
【0079】
以下、同様の動作が繰り返され、バンクBK1からのDMA転送回数がバンク切換レジスタ18の設定値(1バンクからDMA転送すべき総DMA転送回数)になると(デクリメント・カウンタ23のカウント値が0になると)、デクリメント・カウンタ23は、セレクタ21に転送元トップ・アドレス設定レジスタ17A、17Bの選択動作を指示する。
【0080】
次に、入出力バッファ9に書き込まれたパケット・データ・ストリームBのパケット・データの送信が行われると共に、本実施形態のDMAコントローラ10により、RAM11のバンクBK2内のパケット・データ・ストリームA用のメモリ領域から入出力バッファ9にパケット・データ・ストリームAの1パケット・データのDMA転送が行われる。
【0081】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Aの設定値(パケット・データ・ストリームAのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Bに変更し、セレクタ21は、比較器24の制御により選択先を転送元トップ・アドレス設定レジスタ17Bに変更する。
【0082】
次に、入出力バッファ9に書き込まれたパケット・データ・ストリームAのパケット・データの送信が行われると共に、本実施形態のDMAコントローラ10により、RAM11のバンクBK2のパケット・データ・ストリームB用のメモリ領域から入出力バッファ9にパケット・データ・ストリームBの1パケット・データのDMA転送が行われる。
【0083】
そして、DMA転送バイト・カウンタ22のカウント値とパケット・サイズ設定レジスタ13Bの設定値(パケット・データ・ストリームBのパケット・サイズ)が一致すると、セレクタ19は、比較器24の制御により選択先をパケット・サイズ設定レジスタ13Aに変更し、セレクタ21は、比較器24の制御により選択先を転送元トップ・アドレス設定レジスタ17Aに変更する。
【0084】
以下、同様の動作が繰り返され、バンクBK2からのDMA転送回数がバンク切換レジスタ18の設定値(1バンクからDMA転送すべき総DMA転送回数)になると(デクリメント・カウンタ23のカウント値が0になると)、デクリメント・カウンタ23は、セレクタ21に転送先トップ・アドレス設定レジスタ16A、16Bの選択動作を指示する。以下、同様の動作が繰り返される。
【0085】
以上のように、本実施形態のDMAコントローラ10によれば、CPU処理の介在なしに、時分割多重パケット・データ・ストリームのマルチプレクス/デマルチプレクス処理を行うことができるので、送受信時のCPUの負荷を軽減し、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムOSの導入に容易に対応することができる。
【0086】
なお、本発明の一実施形態においては、DMAコントローラ10は、マルチプレクス処理及びデマルチプレクス処理を行うことができるようにしたが、この代わりに、マルチプレクス処理又はデマルチプレクス処理のいずれかを行うことができるようにしても良い。マルチプレクス処理のみを行うことができるように構成する場合には、少なくとも、受信時におけるCPUの負荷を軽減することができ、デマルチプレクス処理のみを行うことができるように構成する場合には、少なくとも、送信時におけるCPUの負荷を軽減することができる。
【0087】
【発明の効果】
本発明中、第1の発明によれば、受信時には、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段を有するとしたことにより、受信時のCPUの負荷を軽減することができるので、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムOSの導入に容易に対応することができる。
【0088】
本発明中、第2の発明によれば、送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元から送受信部にDMA転送するパケット・データ毎に転送量をカウントし、個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御する制御手段を有するとしたことにより、送信時のCPUの負荷を軽減することができるので、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムOSの導入に容易に対応することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態のDMAコントローラを備えるデータ送受信装置の要部を示すブロック図である。
【図2】図1に示すデータ送受信装置が備えるRAMの構成を示す図である。
【図3】本発明の一実施形態のDMAコントローラの要部を示す回路図である。
【図4】図1に示すデータ送受信装置の受信時の動作例を示すタイミングチャートである。
【図5】従来のデータ送受信装置の要部を示すブロック図である。
【図6】図5に示す従来のデータ送受信装置の時分割多重パケット・データ・ストリーム受信時の動作例を示すタイミングチャートである。
【符号の説明】
1…装置本体
2…送受信部
3…入出力バッファ
4…従来のDMAコントローラ
5…RAM
6…CPU
7…装置本体
8…送受信部
9…入出力バッファ
10…本発明の一実施形態のDMAコントローラ
11…RAM
12…CPU
13A、13B…パケット・サイズ設定レジスタ
14A、14B、15A、15B…転送先トップ・アドレス設定レジスタ
16A、16B、17A、17B…転送元トップ・アドレス設定レジスタ
18…バンク切換レジスタ
19、20、21…セレクタ
22…DMA転送バイト・カウンタ
23…デクリメント・カウンタ
24…比較器
25、26…インクリメント/デクリメント・カウンタ
Claims (5)
- 時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMAコントローラであって、
受信時には、前記データ送受信装置の送受信部からデータ転送先にDMA転送するパケット・データ毎に転送量をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段を有することを特徴とするDMAコントローラ。 - 前記制御手段は、個々のパケット・データ・ストリームのパケット・サイズを記憶するパケット・サイズ記憶手段と、DMA転送するパケット・データ毎に転送バイト数をカウントするカウント手段と、前記パケット・サイズ記憶手段に記憶されたパケット・サイズのうち、パケット・データをDMA転送中のパケット・データ・ストリームのパケット・サイズと前記カウント手段によるカウント値とを比較する比較手段を有し、該比較手段の比較結果によりデータ転送先を切り換えることを特徴とする請求項1記載のDMAコントローラ。
- 前記制御手段は、データ転送先のメモリ領域のバンクを切り換えるバンク切換手段を有することを特徴とする請求項2記載のDMAコントローラ。
- 時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるDMAコントローラであって、
送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元から前記データ送受信装置の送受信部にDMA転送するパケット・データ毎に転送量をカウントし、前記個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御する制御手段を有することを特徴とするDMAコントローラ。 - 前記制御手段は、個々のパケット・データ・ストリームのパケット・サイズを記憶するパケット・サイズ記憶手段と、DMA転送するパケット・データ毎に転送バイト数をカウントするカウント手段と、前記パケット・サイズ記憶手段に記憶されたパケット・サイズのうち、パケット・データをDMA転送中のパケット・データ・ストリームのパケット・サイズと前記カウント手段によるカウント値とを比較する比較手段を有し、該比較手段の比較結果によりデータ転送元を切り換えることを特徴とする請求項4記載のDMAコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003042035A JP2004252693A (ja) | 2003-02-20 | 2003-02-20 | Dmaコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003042035A JP2004252693A (ja) | 2003-02-20 | 2003-02-20 | Dmaコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004252693A true JP2004252693A (ja) | 2004-09-09 |
Family
ID=33025423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003042035A Pending JP2004252693A (ja) | 2003-02-20 | 2003-02-20 | Dmaコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004252693A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099659A1 (ja) * | 2006-03-01 | 2007-09-07 | Matsushita Electric Industrial Co., Ltd. | データ転送装置及びデータ転送方法 |
-
2003
- 2003-02-20 JP JP2003042035A patent/JP2004252693A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099659A1 (ja) * | 2006-03-01 | 2007-09-07 | Matsushita Electric Industrial Co., Ltd. | データ転送装置及びデータ転送方法 |
JPWO2007099659A1 (ja) * | 2006-03-01 | 2009-07-16 | パナソニック株式会社 | データ転送装置及びデータ転送方法 |
CN101361050B (zh) * | 2006-03-01 | 2010-09-22 | 松下电器产业株式会社 | 数据传输装置和数据传输方法 |
US7861012B2 (en) | 2006-03-01 | 2010-12-28 | Panasonic Corporation | Data transmitting device and data transmitting method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7640374B2 (en) | Data transfer apparatus by direct memory access controller | |
US5633865A (en) | Apparatus for selectively transferring data packets between local area networks | |
US7660916B2 (en) | Emulation of independent active DMA channels with a single DMA capable bus master hardware and firmware | |
US7472213B2 (en) | Resource management device | |
EP1675014B1 (en) | Data stream processor and information processing apparatus | |
US8412864B2 (en) | Information processing apparatus and information processing method | |
US9471521B2 (en) | Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit | |
JP2006338538A (ja) | ストリームプロセッサ | |
US5533203A (en) | Start of packet receive interrupt for ethernet controller | |
US20050141534A1 (en) | Packet processing method and device | |
JP2004094452A (ja) | Dmaコントローラおよびdma転送方法 | |
JP2004252693A (ja) | Dmaコントローラ | |
JP2006202271A (ja) | ストリームプロセッサ及び情報処理装置 | |
US9367496B2 (en) | DMA transfer device and method | |
EP2783286B1 (en) | Data processing system and method of controlling access to a shared memory unit | |
JP2004253960A (ja) | データ転送装置 | |
US6763405B2 (en) | Process for interfacing a microprocessor with a packet based device and respective system | |
JP3317150B2 (ja) | 情報処理装置 | |
KR20020051545A (ko) | 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 | |
JP2000115174A (ja) | パケット回線処理装置 | |
JP2004318315A (ja) | データ通信装置 | |
JP2004164067A (ja) | 受信装置 | |
JP2000250847A (ja) | データ転送方式 | |
JPH05158864A (ja) | Dma制御装置 | |
JPH04160459A (ja) | データ転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060202 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090224 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090804 |