(57)【要約】【課題】時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に用いるＤＭＡコントローラに関し、ＣＰＵ処理の介在なしに、受信した時分割多重パケット・データ・ストリームをデマルチプレクス処理できるようにしてＣＰＵの負荷を軽減し、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムＯＳの導入に容易に対応できるようにする。【解決手段】受信時には、データ送受信装置の送受信部からデータ転送先にＤＭＡ転送するパケット・データ毎に転送バイト数をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段（１３Ａ、１３Ｂ、１４Ａ、１４Ｂ、１９、２０、２２、２４、２５）を設ける。【選択図】    図３
2004252693.tif 000002
【特許請求の範囲】
【請求項１】
時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡコントローラであって、
受信時には、前記データ送受信装置の送受信部からデータ転送先にＤＭＡ転送するパケット・データ毎に転送量をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段を有することを特徴とするＤＭＡコントローラ。
【請求項２】
前記制御手段は、個々のパケット・データ・ストリームのパケット・サイズを記憶するパケット・サイズ記憶手段と、ＤＭＡ転送するパケット・データ毎に転送バイト数をカウントするカウント手段と、前記パケット・サイズ記憶手段に記憶されたパケット・サイズのうち、パケット・データをＤＭＡ転送中のパケット・データ・ストリームのパケット・サイズと前記カウント手段によるカウント値とを比較する比較手段を有し、該比較手段の比較結果によりデータ転送先を切り換えることを特徴とする請求項１記載のＤＭＡコントローラ。
【請求項３】
前記制御手段は、データ転送先のメモリ領域のバンクを切り換えるバンク切換手段を有することを特徴とする請求項２記載のＤＭＡコントローラ。
【請求項４】
時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡコントローラであって、
送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元から前記データ送受信装置の送受信部にＤＭＡ転送するパケット・データ毎に転送量をカウントし、前記個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御する制御手段を有することを特徴とするＤＭＡコントローラ。
【請求項５】
前記制御手段は、個々のパケット・データ・ストリームのパケット・サイズを記憶するパケット・サイズ記憶手段と、ＤＭＡ転送するパケット・データ毎に転送バイト数をカウントするカウント手段と、前記パケット・サイズ記憶手段に記憶されたパケット・サイズのうち、パケット・データをＤＭＡ転送中のパケット・データ・ストリームのパケット・サイズと前記カウント手段によるカウント値とを比較する比較手段を有し、該比較手段の比較結果によりデータ転送元を切り換えることを特徴とする請求項４記載のＤＭＡコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のパケット・データ・ストリームを時分割多重化した時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラに関する。
【０００２】
複数のパケット・データ・ストリームを時分割多重化した時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置では、送信時には、複数のパケット・データ・ストリームの時分割多重パケット・データ・ストリームへのマルチプレクス（ｍｕｌｔｉｐｌｅｘ）処理が必要であり、受信時には、時分割多重パケット・データ・ストリームの時分割多重化前の複数のパケット・データ・ストリームへのデマルチプレクス（ｄｅ−ｍｕｌｔｉｐｌｅｘ）処理が必要である。
【０００３】
【従来の技術】
従来、データ送受信装置として、受信時における送受信部の入出力バッファからデータ転送先へのデータ転送、及び、送信時におけるデータ転送元から送受信部の入出力バッファへのデータ転送にＤＭＡコントローラを使用するものが知られている（例えば、特許文献１、２参照）。
【０００４】
図５は従来のデータ送受信装置の要部を示すブロック図である。図５中、１は装置本体、２は送受信部、３は送受信部２が備える入出力バッファ、４は従来のＤＭＡコントローラ、５は受信時にはデータ転送先、送信時にはデータ転送元となるＲＡＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、６はＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）である。
【０００５】
従来のＤＭＡコントローラ４は、マルチプレクス／デマルチプレクス処理機能を持たないため、たとえば、図５に示す従来のデータ送受信装置を時分割多重パケット・データ・ストリームの受信装置として使用する場合、受信時には、ＤＭＡコントローラ４に、送受信部２が受信する時分割多重パケット・データ・ストリームを一旦ＲＡＭ５に書き込ませ、その後、ＣＰＵ６に、ＲＡＭ５に書き込まれた時分割多重パケット・データ・ストリームのデマルチプレクス処理を行わせる必要がある。
【０００６】
図６は図５に示す従来のデータ送受信装置の時分割多重パケット・データ・ストリーム受信時の動作例を示すタイミングチャートであり、この例では、２個のパケット・データ・ストリームＡ、Ｂを１パケット・データ毎に時分割多重化してなる時分割多重パケット・データ・ストリームを受信する場合を示している。
【０００７】
図６Ａは送受信部２の入出力バッファ３に書き込まれたパケット・データを示しており、パケット・データＡｎ＋１、Ａｎ＋２はパケット・データ・ストリームＡのパケット・データ、パケット・データＢｎ、Ｂｎ＋１はパケット・データ・ストリームＢのパケット・データである。
【０００８】
図６ＢはＤＭＡコントローラ４による受信したパケット・データの入出力バッファ３からＲＡＭ５へのＤＭＡ転送状態を示しており、矢印Ｔ１〜Ｔ３はＤＭＡコントローラ４がＤＭＡ転送を行っている期間を示している。実際のＤＭＡ転送は、パケットを構成する最小単位のデータが入出力バッファ３に書き込まれる度にＤＭＡコントローラ４がキックされて各パケットデータの最小データ単位毎に実行されるが、ここでは、最終データ受信時の転送のみを記載している。
【０００９】
図６ＣはＣＰＵ６によるメイン・タスク処理状態を示しており、矢印Ｔ４〜Ｔ７はＣＰＵ６がメイン・タスク処理を行っている期間を示している。図６ＤはＣＰＵ６によるＤＭＡ転送への割り込み処理状態を示しており、矢印Ｔ８、Ｔ１０、Ｔ１２はＣＰＵ６がＲＡＭ５内の時分割多重パケット・データ・ストリームについてデマルチプレクス処理を行っている期間、矢印Ｔ９、Ｔ１１、Ｔ１３はＣＰＵ６がＤＭＡコントローラ４の再起動処理を行っている期間である。
【００１０】
図６Ｅはリアル・タイム（ｒｅａｌ  ｔｉｍｅ）ＯＳによる割り込みマスク期間の発生例を示しており、矢印Ｔ１４はリアル・タイムＯＳにより発生した割り込みマスク期間を示している。
【００１１】
即ち、この例では、時分割多重パケット・データ・ストリームは、パケット・データＢｎ、Ａｎ＋１、Ｂｎ＋１、Ａｎ＋２の順に入出力バッファ３に書き込まれている。ここで、パケット・データＢｎが入出力バッファ３に書き込まれると、ＤＭＡコントローラ４は、キックされ、矢印Ｔ１に示すように、入出力バッファ３からＲＡＭ５にパケット・データＢｎを転送している。これが終了すると、ＤＭＡ転送カウンタの値は０となる。なお、ＤＭＡ転送カウンタの値が０となることで、パケット・データの種類（ＡもしくはＢ）が変わることをＣＰＵ６へ通知するために割り込みが発生する。
【００１２】
この時、リアルタイムＯＳによる割り込みマスク期間が発生していないので、ＣＰＵ６は、ＤＭＡ転送制御に割り込んで、ＲＡＭ５内の時分割多重パケット・データ・ストリームについて、矢印Ｔ８に示すように、デマルチプレクス処理を行い、デマルチプレクス処理が終了すると、矢印Ｔ９に示すように、ＤＭＡコントローラ４の再起動処理を行っている。
【００１３】
次に、矢印Ｔ２に示すように、ＤＭＡコントローラ４は、入出力バッファ３からＲＡＭ５にパケット・データＡｎ＋１を転送している。これが終了すると、ＤＭＡ転送カウンタの値は０となる。この時、リアルタイムＯＳによる割り込みマスク期間が発生していないので、ＣＰＵ６は、ＤＭＡ転送制御に割り込んで、ＲＡＭ５内の時分割多重パケット・データ・ストリームについて、矢印Ｔ１０に示すように、デマルチプレクス処理を行い、デマルチプレクス処理が終了すると、矢印Ｔ１１に示すように、ＤＭＡコントローラ４の再起動処理を行っている。
【００１４】
次に、矢印Ｔ３に示すように、ＤＭＡコントローラ４は入出力バッファ３からＲＡＭ５にパケット・データＢｎ＋１を転送している。これが終了すると、ＤＭＡ転送カウンタの値は０となるが、この時、矢印Ｔ１４に示すように、リアルタイムＯＳによる割り込みマスク期間が発生している。
【００１５】
このため、ＣＰＵ６は、リアルタイムＯＳによる割り込みマスク期間が終了した後、矢印Ｔ１２に示すように、ＲＡＭ５内の時分割多重パケット・データ・ストリームのデマルチプレクス処理を行い、続いて、矢印Ｔ１３に示すように、ＤＭＡコントローラ４の再起動処理を行っている。
【００１６】
【特許文献１】特開平７−２１１１７号公報
【特許文献２】特開平７−２１１１８号公報
【００１７】
【発明が解決しようとする課題】
このように、従来のＤＭＡコントローラ４を使用したデータ送受信装置においては、ＤＭＡコントローラ４による時分割多重パケット・データ・ストリームのＲＡＭ５への転送と、ＲＡＭ５に書き込まれた時分割多重パケット・データ・ストリームのＣＰＵ６によるデマルチプレクス処理が必要となるので、データ転送処理が二重に発生し、無駄な時間を費やしてしまうという問題点がある。
【００１８】
また、従来のＤＭＡコントローラ４では、ＤＭＡ転送カウンタが０になると、それ以上のＤＭＡ転送処理を行うことができないため、ＣＰＵ６による割り込み処理によるＤＭＡコントローラ４の再起動処理の設定が必要となるが、ＣＰＵ６の割り込み処理は、時分割多重パケット・データ・ストリームの転送速度よりも十分に高速にできるものでなければならず、ＣＰＵ６の処理能力が低い場合、受信時にはデータの取りこぼしが発生し、送信時には目的の通信速度を達成することができない場合があるという問題点がある。
【００１９】
更に、リアルタイムＯＳが搭載されると、ＣＰＵ６には更なる処理能力が要求されることになり、ＣＰＵ６の処理能力が低い場合、例えば、図６に矢印Ｔ１５で示すように、受信時に時分割多重パケット・データ・ストリームの受信不可期間が発生してしまう場合があるという問題点がある。
【００２０】
ここで、たとえば、時分割多重パケット・データ・ストリームの送受信を行うＵＡＲＴ（ｕｎｉｖｅｒｓａｌ  ａｓｙｎｃｈｒｏｎｏｕｓ  ｒｅｃｅｉｖｅｒ−ｔｒａｎｓｃｅｉｖｅｒ）においては、ボード・レート（ｂａｕｄ  ｒａｔｅ）が高くなれば高くなるほど、パケット・データのデータ転送周期は短くなるので、ＣＰＵ６に高い処理能力が要求されることになるし、また、多チャネル多重データ通信やリアルタイムＯＳの搭載の要求からも、ＣＰＵ６に高い処理能力が要求されることになる。
【００２１】
本発明は、かかる点に鑑み、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡコントローラであって、ＣＰＵ処理の介在なしに、受信した時分割多重パケット・データ・ストリームのデマルチプレクス処理を行うことができるようにし、受信時におけるＣＰＵの負荷を軽減することにより、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムＯＳの導入に容易に対応することができるようにしたＤＭＡコントローラを提供することを第１の目的とする。
【００２２】
また、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡコントローラであって、ＣＰＵ処理の介在なしに、送信するパケット・データ・ストリームのマルチプレクス処理を行うことができるようにし、送信時におけるＣＰＵの負荷を軽減することにより、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムＯＳの導入に容易に対応することができるようにしたＤＭＡコントローラを提供することを第２の目的とする。
【００２３】
【課題を解決するための手段】
本発明中、第１の発明は、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡコントローラであって、受信時には、データ送受信装置の送受信部からデータ転送先にＤＭＡ転送するパケット・データ毎に転送量をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段を有するというものである。
【００２４】
本発明中、第１の発明によれば、制御手段は、受信時には、データ送受信装置の送受信部からデータ転送先にＤＭＡ転送するパケット・データ毎に転送量をカウントし、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御するので、受信時におけるＣＰＵの負荷を軽減することができる。
【００２５】
本発明中、第２の発明は、時分割多重パケット・データ・ストリームの送受信を行うデータ送受信装置に使用されるＤＭＡコントローラであって、送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元からデータ送受信装置の送受信部にＤＭＡ転送するパケット・データ毎に転送量をカウントし、個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御する制御手段を有するというものである。
【００２６】
本発明中、第２の発明によれば、制御手段は、送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元からデータ送受信装置の送受信部にＤＭＡ転送するパケット・データ毎に転送量をカウントし、個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御するので、送信時におけるＣＰＵの負荷を軽減することができる。
【００２７】
【発明の実施の形態】
図１は本発明の一実施形態のＤＭＡコントローラを備えるデータ送受信装置の要部を示すブロック図である。図１中、７は装置本体、８は送受信部、９は送受信部８内の入出力バッファ、１０は本発明の一実施形態のＤＭＡコントローラ、１１は受信時にはデータ転送先、送信時にはデータ転送元となるＲＡＭ、１２はＣＰＵである。図２はＲＡＭ１１の構成を示す図であり、ＲＡＭ１１は２個のバンク（ＢＡＮＫ）ＢＫ１、ＢＫ２を持っている。
【００２８】
図３は本発明の一実施形態のＤＭＡコントローラ１０の要部を示すブロック回路図である。本実施形態のＤＭＡコントローラ１０は、受信時には、２個のパケット・データ・ストリームＡ、Ｂを１パケット・データ毎に時分割多重化した時分割多重パケット・データ・ストリームのデマルチプレクス処理を伴うＤＭＡ転送を行うことができ、送信時には、２個のパケット・データ・ストリームＡ、Ｂのマルチプレクス処理を伴うＤＭＡ転送を行うことができるようにしたものである。
【００２９】
図３中、１３Ａはパケット・データ・ストリームＡのパケット・サイズ（バイト数）を設定するパケット・サイズ設定レジスタ、１３Ｂはパケット・データ・ストリームＢのパケット・サイズ（バイト数）を設定するパケット・サイズ設定レジスタである。
【００３０】
１４ＡはＲＡＭ１１のバンクＢＫ１内のパケット・データ・ストリームＡの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタ、１４ＢはＲＡＭ１１のバンクＢＫ１内のパケット・データ・ストリームＢの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタである。
【００３１】
１５ＡはＲＡＭ１１のバンクＢＫ２内のパケット・データ・ストリームＡの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタ、１５ＢはＲＡＭ１１のバンクＢＫ２内のパケット・データ・ストリームＢの転送先のメモリ領域の先頭アドレスを設定する転送先トップ・アドレス設定レジスタである。
【００３２】
１６ＡはＲＡＭ１１のバンクＢＫ１内のパケット・データ・ストリームＡの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタ、１６ＢはＲＡＭ１１のバンクＢＫ１内のパケット・データ・ストリームＢの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタである。
【００３３】
１７ＡはＲＡＭ１１のバンクＢＫ２内のパケット・データ・ストリームＡの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタ、１７ＢはＲＡＭ１１のバンクＢＫ２内のパケット・データ・ストリームＢの転送元のメモリ領域の先頭アドレスを設定する転送元トップ・アドレス設定レジスタである。
【００３４】
１８は１バンクに又は１バンクからＤＭＡ転送すべき総ＤＭＡ転送回数、すなわち、バンクＢＫ１、ＢＫ２を切り換えるＤＭＡ転送回数を設定するバンク切換レジスタである。また、１９はパケット・サイズ設定レジスタ１３Ａ、１３Ｂのいずれかの設定値を選択して出力するセレクタである。
【００３５】
２０は受信時においてパケット・データの転送先がバンクＢＫ１の場合には、転送先トップ・アドレス設定レジスタ１４Ａ、１４Ｂの選択動作を行い、受信時においてパケット・データの転送先がバンクＢＫ２の場合には、転送先トップ・アドレス設定レジスタ１５Ａ、１５Ｂの選択動作を行うセレクタである。
【００３６】
２１は送信時においてパケット・データの転送元がバンクＢＫ１の場合には、転送元トップ・アドレス設定レジスタ１６Ａ、１６Ｂの選択動作を行い、送信時においてパケット・データの転送元がバンクＢＫ２の場合には、転送元トップ・アドレス設定レジスタ１７Ａ、１７Ｂの選択動作を行うセレクタである。
【００３７】
２２は１パケット・データをＤＭＡ転送する毎に、初期値を０として、受信時には入出力バッファ９からＲＡＭ１１にＤＭＡ転送されるバイト数をカウントし、送信時にはＲＡＭ１１から入出力バッファ９にＤＭＡ転送されるバイト数をカウントするＤＭＡ転送バイト・カウンタである。
【００３８】
２３はバンク切換レジスタ１８に設定された総ＤＭＡ転送回数を初期値とし、ＲＡＭ１１に１バイトのＤＭＡ転送が行われる毎にカウント値を１デクリメントし、カウントが終了する毎に（カウント値が０になる毎に）、同様の動作を繰り返すと共に、カウントが終了する毎に、セレクタ２０、２１に対してバンク先を指示するデクリメント・カウンタである。
【００３９】
ここで、デクリメント・カウンタ２３がバンクＢＫ１を指示する場合、受信時には、セレクタ２０は、転送先トップ・アドレス設定レジスタ１４Ａ、１４Ｂの選択動作を行い、送信時には、セレクタ２１は、転送元トップ・アドレス設定レジスタ１６Ａ、１６Ｂの選択動作を行う。
【００４０】
これに対して、デクリメント・カウンタ２３がバンクＢＫ２を指示する場合、受信時には、セレクタ２０は、転送先トップ・アドレス設定レジスタ１５Ａ、１５Ｂの選択動作を行い、送信時には、セレクタ２１は、転送元トップ・アドレス設定レジスタ１７Ａ、１７Ｂの選択動作を行う。
【００４１】
２４はセレクタ１９の制御、パケット・サイズ設定レジスタ１３Ａ、１３Ｂのうち、セレクタ１９により選択されているパケット・サイズ設定レジスタの設定値（パケット・サイズ）とＤＭＡ転送バイト・カウンタ２２のカウント値との比較、ＤＭＡ転送バイト・カウンタ２２のリセット及びセレクタ２０、２１の制御を行う比較器である。
【００４２】
比較器２４は、まず、セレクタ１９に対して、パケット・サイズ設定レジスタ１３Ａの設定値を選択することを指示し、パケット・サイズ設定レジスタ１３Ａの設定値とＤＭＡ転送バイト・カウンタ２２のカウント値とを比較する。
【００４３】
そして、パケット・サイズ設定レジスタ１３Ａの設定値とＤＭＡ転送バイト・カウンタ２２のカウント値が一致した時は、ＤＭＡ転送バイト・カウンタ２２をリセットすると共に、セレクタ１９に対してパケット・サイズ設定レジスタ１３Ｂの設定値を選択することを指示し、パケット・サイズ設定レジスタ１３Ｂの設定値とＤＭＡ転送バイト・カウンタ２２のカウント値とを比較する。
【００４４】
そして、パケット・サイズ設定レジスタ１３Ｂの設定値とＤＭＡ転送バイト・カウンタ２２のカウント値が一致した時は、ＤＭＡ転送バイト・カウンタ２２をリセットすると共に、セレクタ１９に対してパケット・サイズ設定レジスタ１３Ａの設定値を選択することを指示し、パケット・サイズ設定レジスタ１３Ａの設定値とＤＭＡ転送バイト・カウンタ２２のカウント値とを比較する。以下、同様の動作を繰り返す。
【００４５】
そして、比較器２４は、パケット・サイズ設定レジスタ１３Ａの設定値とＤＭＡ転送バイト・カウンタ２２のカウント値とを比較している間は、セレクタ２０に対してパケット・データ・ストリームＡのパケット・データの転送先トップ・アドレス設定レジスタを選択することを指示し、セレクタ２１に対してパケット・データ・ストリームＡのパケット・データの転送元トップ・アドレス設定レジスタを選択することを指示する。
【００４６】
これに応答して、セレクタ２０は、デクリメント・カウンタ２３から転送先としてバンクＢＫ１を指示されている場合には、転送先トップ・アドレス設定レジスタ１４Ａ、１４Ｂの選択動作を行い、デクリメント・カウンタ２３から転送先としてバンクＢＫ２を指示されている場合には、転送先トップ・アドレス設定レジスタ１５Ａ、１５Ｂの選択動作を行う。
【００４７】
これに対して、セレクタ２１は、デクリメント・カウンタ２３から転送元としてバンクＢＫ１を指示されている場合には、転送元トップ・アドレス設定レジスタ１６Ａ、１６Ｂの選択動作を行い、デクリメント・カウンタ２３から転送元としてバンクＢＫ２を指示されている場合には、転送元トップ・アドレス設定レジスタ１７Ａ、１７Ｂの選択動作を行う。
【００４８】
２５は受信時に、転送先トップ・アドレス設定レジスタ１４Ａ、１４Ｂ、１５Ａ、１５Ｂのうち、セレクタ２０が選択している転送先トップ・アドレス設定レジスタの値を初期値として転送バイト数をカウントし、そのカウント値を、転送先アドレスとしてＲＡＭ１１に供給すると共に、書き換え値としてセレクタ２０が選択している転送先トップ・アドレス設定レジスタに供給するインクリメント／デクリメント・カウンタである。
【００４９】
２６は送信時に、転送元トップ・アドレス設定レジスタ１６Ａ、１６Ｂ、１７Ａ、１７Ｂのうち、セレクタ２１が選択している転送元トップ・アドレス設定レジスタの値を初期値として転送バイト数をカウントし、そのカウント値を、転送元アドレスとしてＲＡＭ１１に供給すると共に、書き換え値としてセレクタ２１が選択している転送元トップ・アドレス設定レジスタに供給するインクリメント／デクリメント・カウンタである。
【００５０】
このように構成された本実施形態のＤＭＡコントローラ１０においては、送受信時には、パケット・サイズ設定レジスタ１３Ａにパケット・データ・ストリームＡのパケット・サイズが設定され、パケット・サイズ設定レジスタ１３Ｂにパケット・データ・ストリームＢのパケット・サイズが設定される。
【００５１】
また、転送先トップ・アドレス設定レジスタ１４ＡにバンクＢＫ１内のパケット・データ・ストリームＡを書き込むべきメモリ領域の先頭アドレスが設定され、転送先トップ・アドレス設定レジスタ１４ＢにバンクＢＫ１内のパケット・データ・ストリームＢを書き込むべきメモリ領域の先頭アドレスが設定される。
【００５２】
また、転送先トップ・アドレス設定レジスタ１５ＡにバンクＢＫ２内のパケット・データ・ストリームＡを書き込むべきメモリ領域の先頭アドレスが設定され、転送先トップ・アドレス設定レジスタ１５ＢにバンクＢＫ２内のパケット・データ・ストリームＢを書き込むべきメモリ領域の先頭アドレスが設定される。
【００５３】
また、転送元トップ・アドレス設定レジスタ１６ＡにバンクＢＫ１内のパケット・データ・ストリームＡが書き込まれるメモリ領域の先頭アドレスが設定され、転送元トップ・アドレス設定レジスタ１６ＢにバンクＢＫ１内のパケット・データ・ストリームＢが書き込まれるメモリ領域の先頭アドレスが設定される。
【００５４】
また、転送元トップ・アドレス設定レジスタ１７ＡにバンクＢＫ２内のパケット・データ・ストリームＡが書き込まれるメモリ領域の先頭アドレスが設定され、転送元トップ・アドレス設定レジスタ１７ＢにバンクＢＫ２内のパケット・データ・ストリームＢが書き込まれるメモリ領域の先頭アドレスが設定される。
【００５５】
また、バンク切換レジスタ１８には、１バンクに（１バンクから）ＤＭＡ転送すべき総ＤＭＡ転送回数（バンクＢＫ１、ＢＫ２を切り換えるＤＭＡ転送回数）が設定される。また、比較器２４は、セレクタ１９にパケット・サイズ設定レジスタ１３Ａの選択を指示し、セレクタ２０にパケット・データ・ストリームＡのパケット・データの転送先トップ・アドレス設定レジスタ１４Ａの選択を指示する。
【００５６】
そして、例えば、受信が開始され、入出力バッファ９にパケット・データ・ストリームＡの１パケット・データが書き込まれると、本実施形態のＤＭＡコントローラ１０により、入出力バッファ９に書き込まれたパケット・データ・ストリームＡのパケット・データのバンクＢＫ１のパケット・データ・ストリームＡ用のメモリ領域へのＤＭＡ転送が行われる。
【００５７】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ａの設定値（パケット・データ・ストリームＡのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ｂに変更し、セレクタ２０は、比較器２４の制御により選択先を転送先トップ・アドレス設定レジスタ１４Ｂに変更する。
【００５８】
次に、入出力バッファ９にパケット・データ・ストリームＢの１パケット・データが書き込まれると、本実施形態のＤＭＡコントローラ１０により、入出力バッファ９に書き込まれたパケット・データ・ストリームＢのパケット・データのバンクＢＫ１のパケット・データ・ストリームＢ用のメモリ領域へのＤＭＡ転送が行われる。
【００５９】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ｂの設定値（パケット・データ・ストリームＢのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ａに変更し、セレクタ２０は、比較器２４の制御により選択先を転送先トップ・アドレス設定レジスタ１４Ａに変更する。
【００６０】
以下、同様の動作が繰り返され、バンクＢＫ１へのＤＭＡ転送回数がバンク切換レジスタ１８の設定値（１バンクにＤＭＡ転送すべき総ＤＭＡ転送回数）になると（デクリメント・カウンタ２３のカウント値が０になると）、デクリメント・カウンタ２３は、セレクタ２０に転送先トップ・アドレス設定レジスタ１５Ａ、１５Ｂの選択動作を指示する。
【００６１】
そして、入出力バッファ９にパケット・データ・ストリームＡの１パケット・データが書き込まれると、本実施形態のＤＭＡコントローラ１０により、入出力バッファ９に書き込まれたパケット・データ・ストリームＡのパケット・データのバンクＢＫ２のパケット・データ・ストリームＡ用のメモリ領域へのＤＭＡ転送が行われる。
【００６２】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ａの設定値（パケット・データ・ストリームＡのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ｂに変更し、セレクタ２０は、比較器２４の制御により選択先を転送先トップ・アドレス設定レジスタ１５Ｂに変更する。
【００６３】
次に、入出力バッファ９にパケット・データ・ストリームＢの１パケット・データが書き込まれると、本実施形態のＤＭＡコントローラ１０により、入出力バッファ９に書き込まれたパケット・データ・ストリームＢのパケット・データのバンクＢＫ２のパケット・データ・ストリームＢ用のメモリ領域へのＤＭＡ転送が行われる。
【００６４】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ｂの設定値（パケット・データ・ストリームＢのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ａに変更し、セレクタ２０は、比較器２４の制御により選択先を転送先トップ・アドレス設定レジスタ１５Ａに変更する。
【００６５】
以下、同様の動作が繰り返され、バンクＢＫ２へのＤＭＡ転送回数がバンク切換レジスタ１８の設定値（１バンクにＤＭＡ転送すべき総ＤＭＡ転送回数）になると（デクリメント・カウンタ２３のカウント値が０になると）、デクリメント・カウンタ２３は、セレクタ２０に転送先トップ・アドレス設定レジスタ１４Ａ、１４Ｂの選択動作を指示する。以下、同様の動作が繰り返される。
【００６６】
図４は図１に示すデータ送受信装置の受信時の動作例を示すタイミングチャートであり、図４Ａは入出力バッファ９に書き込まれたパケット・データを示しており、パケット・データＡｎ＋１、Ａｎ＋２は、パケット・データ・ストリームＡのパケット・データ、パケット・データＢｎ、Ｂｎ＋１、Ｂｎ＋２は、パケット・データ・ストリームＢのパケット・データを示している。
【００６７】
図４Ｂは本実施形態のＤＭＡコントローラ１０による入出力バッファ９からＲＡＭ１１へのパケット・データ転送状態を示しており、矢印Ｔ１６〜Ｔ２０はＤＭＡコントローラ１０がＤＭＡ転送を行っている期間を示している。実際のＤＭＡ転送は、パケットを構成する最小単位のデータが入出力バッファ９に書き込まれる度に本実施形態のＤＭＡコントローラ１０がキックされて各パケットデータの最小データ単位毎に実行されるが、ここでは、最終データ受信時の転送のみを記載している。
【００６８】
図４ＣはＣＰＵ１２によるメイン・タスク処理状態を示しており、矢印Ｔ２１、Ｔ２２はＣＰＵ１２がメイン・タスク処理を行っている期間を示している。また、図４Ｄはリアル・タイムＯＳによる割り込みマスク期間の発生例を示しており、矢印Ｔ２３はリアル・タイムＯＳにより発生した割り込みマスク期間を示している。
【００６９】
即ち、この例では、時分割多重パケット・データ・ストリームは、パケット・データＢｎ、Ａｎ＋１、Ｂｎ＋１、Ａｎ＋２、Ｂｎ＋２の順に入出力バッファ９に書き込まれている。ここで、パケット・データＢｎが入出力バッファ９に書き込まれると、本実施形態のＤＭＡコントローラ１０は、矢印Ｔ１６に示すように、入出力バッファ９からＲＡＭ１１のバンクＢＫ１、ＢＫ２のうち、指示されているバンクのパケット・データ・ストリームＢ用のメモリ領域にパケット・データＢｎを転送する。
【００７０】
次に、パケット・データＡｎ＋１が入出力バッファ９に書き込まれると、本実施形態のＤＭＡコントローラ１０は、矢印Ｔ１７に示すように、入出力バッファ９に書き込まれているパケット・データＡｎ＋１をＲＡＭ１１のバンクＢＫ１、ＢＫ２のうち、指示されているバンクのパケット・データ・ストリームＡ用のメモリ領域に転送する。
【００７１】
次に、パケット・データＢｎ＋１が入出力バッファ９に書き込まれると、本実施形態のＤＭＡコントローラ１０は、矢印Ｔ１８に示すように、入出力バッファ９に書き込まれているパケット・データＢｎ＋１をＲＡＭ１１のバンクＢＫ１、ＢＫ２のうち、指示されているバンクのパケット・データ・ストリームＢ用のメモリ領域に転送する。
【００７２】
次に、パケット・データＡｎ＋２が入出力バッファ９に書き込まれると、本実施形態のＤＭＡコントローラ１０は、矢印Ｔ１９に示すように、入出力バッファ９に書き込まれているパケット・データＡｎ＋２をＲＡＭ１１のバンクＢＫ１、ＢＫ２のうち、指示されているバンクのパケット・データ・ストリームＡ用のメモリ領域に転送する。
【００７３】
次に、パケット・データＢｎ＋２が入出力バッファ９に書き込まれると、本実施形態のＤＭＡコントローラ１０は、矢印Ｔ２０に示すように、入出力バッファ９に書き込まれているパケット・データＢｎ＋２をＲＡＭ１１のバンクＢＫ１、ＢＫ２のうち、指示されているバンクのパケット・データ・ストリームＢ用のメモリ領域に転送する。
【００７４】
このようにして、図１に示すデータ送受信装置においては、本実施形態のＤＭＡコントローラ１０がデマルチプレクス処理を伴うデータ転送を行うので、例えば、矢印Ｔ２３に示すように、リアルタイムＯＳによる割り込みマスク期間が発生したとしても、本実施形態のＤＭＡコントローラ１０によるデマルチプレクス処理を伴うＲＡＭ１１へのデータ転送に何らの影響を与えることもない。
【００７５】
また、図１に示すデータ送受信装置において送信が行われる場合には、本実施形態のＤＭＡコントローラ１０により、ＲＡＭ１１のバンクＢＫ１のパケット・データ・ストリームＡ用のメモリ領域から入出力バッファ９にパケット・データ・ストリームＡの１パケット・データのＤＭＡ転送が行われる。
【００７６】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ａの設定値（パケット・データ・ストリームＡのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ｂに変更し、セレクタ２１は、比較器２４の制御により選択先を転送元トップ・アドレス設定レジスタ１６Ｂに変更する。
【００７７】
次に、入出力バッファ９に書き込まれたパケット・データ・ストリームＡのパケット・データの送信が行われると共に、本実施形態のＤＭＡコントローラ１０により、ＲＡＭ１１のバンクＢＫ１のパケット・データ・ストリームＢ用のメモリ領域から入出力バッファ９にパケット・データ・ストリームＢの１パケット・データのＤＭＡ転送が行われる。
【００７８】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ｂの設定値（パケット・データ・ストリームＢのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ａに変更し、セレクタ２１は、比較器２４の制御により選択先を転送元トップ・アドレス設定レジスタ１６Ａに変更する。
【００７９】
以下、同様の動作が繰り返され、バンクＢＫ１からのＤＭＡ転送回数がバンク切換レジスタ１８の設定値（１バンクからＤＭＡ転送すべき総ＤＭＡ転送回数）になると（デクリメント・カウンタ２３のカウント値が０になると）、デクリメント・カウンタ２３は、セレクタ２１に転送元トップ・アドレス設定レジスタ１７Ａ、１７Ｂの選択動作を指示する。
【００８０】
次に、入出力バッファ９に書き込まれたパケット・データ・ストリームＢのパケット・データの送信が行われると共に、本実施形態のＤＭＡコントローラ１０により、ＲＡＭ１１のバンクＢＫ２内のパケット・データ・ストリームＡ用のメモリ領域から入出力バッファ９にパケット・データ・ストリームＡの１パケット・データのＤＭＡ転送が行われる。
【００８１】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ａの設定値（パケット・データ・ストリームＡのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ｂに変更し、セレクタ２１は、比較器２４の制御により選択先を転送元トップ・アドレス設定レジスタ１７Ｂに変更する。
【００８２】
次に、入出力バッファ９に書き込まれたパケット・データ・ストリームＡのパケット・データの送信が行われると共に、本実施形態のＤＭＡコントローラ１０により、ＲＡＭ１１のバンクＢＫ２のパケット・データ・ストリームＢ用のメモリ領域から入出力バッファ９にパケット・データ・ストリームＢの１パケット・データのＤＭＡ転送が行われる。
【００８３】
そして、ＤＭＡ転送バイト・カウンタ２２のカウント値とパケット・サイズ設定レジスタ１３Ｂの設定値（パケット・データ・ストリームＢのパケット・サイズ）が一致すると、セレクタ１９は、比較器２４の制御により選択先をパケット・サイズ設定レジスタ１３Ａに変更し、セレクタ２１は、比較器２４の制御により選択先を転送元トップ・アドレス設定レジスタ１７Ａに変更する。
【００８４】
以下、同様の動作が繰り返され、バンクＢＫ２からのＤＭＡ転送回数がバンク切換レジスタ１８の設定値（１バンクからＤＭＡ転送すべき総ＤＭＡ転送回数）になると（デクリメント・カウンタ２３のカウント値が０になると）、デクリメント・カウンタ２３は、セレクタ２１に転送先トップ・アドレス設定レジスタ１６Ａ、１６Ｂの選択動作を指示する。以下、同様の動作が繰り返される。
【００８５】
以上のように、本実施形態のＤＭＡコントローラ１０によれば、ＣＰＵ処理の介在なしに、時分割多重パケット・データ・ストリームのマルチプレクス／デマルチプレクス処理を行うことができるので、送受信時のＣＰＵの負荷を軽減し、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムＯＳの導入に容易に対応することができる。
【００８６】
なお、本発明の一実施形態においては、ＤＭＡコントローラ１０は、マルチプレクス処理及びデマルチプレクス処理を行うことができるようにしたが、この代わりに、マルチプレクス処理又はデマルチプレクス処理のいずれかを行うことができるようにしても良い。マルチプレクス処理のみを行うことができるように構成する場合には、少なくとも、受信時におけるＣＰＵの負荷を軽減することができ、デマルチプレクス処理のみを行うことができるように構成する場合には、少なくとも、送信時におけるＣＰＵの負荷を軽減することができる。
【００８７】
【発明の効果】
本発明中、第１の発明によれば、受信時には、受信した時分割多重パケット・データ・ストリームを個々のパケット・データ・ストリームにデマルチプレクスするようにデータ転送先を切換制御する制御手段を有するとしたことにより、受信時のＣＰＵの負荷を軽減することができるので、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムＯＳの導入に容易に対応することができる。
【００８８】
本発明中、第２の発明によれば、送信時には、個々のパケット・データ・ストリームが分離して書き込まれているデータ転送元から送受信部にＤＭＡ転送するパケット・データ毎に転送量をカウントし、個々のパケット・データ・ストリームをマルチプレクスして時分割多重パケット・データ・ストリームとするようにデータ転送元を切換制御する制御手段を有するとしたことにより、送信時のＣＰＵの負荷を軽減することができるので、高速転送レート・データ通信、多チャネル多重データ通信及びリアルタイムＯＳの導入に容易に対応することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態のＤＭＡコントローラを備えるデータ送受信装置の要部を示すブロック図である。
【図２】図１に示すデータ送受信装置が備えるＲＡＭの構成を示す図である。
【図３】本発明の一実施形態のＤＭＡコントローラの要部を示す回路図である。
【図４】図１に示すデータ送受信装置の受信時の動作例を示すタイミングチャートである。
【図５】従来のデータ送受信装置の要部を示すブロック図である。
【図６】図５に示す従来のデータ送受信装置の時分割多重パケット・データ・ストリーム受信時の動作例を示すタイミングチャートである。
【符号の説明】
１…装置本体
２…送受信部
３…入出力バッファ
４…従来のＤＭＡコントローラ
５…ＲＡＭ
６…ＣＰＵ
７…装置本体
８…送受信部
９…入出力バッファ
１０…本発明の一実施形態のＤＭＡコントローラ
１１…ＲＡＭ
１２…ＣＰＵ
１３Ａ、１３Ｂ…パケット・サイズ設定レジスタ
１４Ａ、１４Ｂ、１５Ａ、１５Ｂ…転送先トップ・アドレス設定レジスタ
１６Ａ、１６Ｂ、１７Ａ、１７Ｂ…転送元トップ・アドレス設定レジスタ
１８…バンク切換レジスタ
１９、２０、２１…セレクタ
２２…ＤＭＡ転送バイト・カウンタ
２３…デクリメント・カウンタ
２４…比較器
２５、２６…インクリメント／デクリメント・カウンタ
【図１】
2004252693.tif 000003
【図２】
2004252693.tif 000004
【図３】
2004252693.tif 000005
【図４】
2004252693.tif 000006
【図５】
2004252693.tif 000007
【図６】
2004252693.tif 000008