(57)【要約】【課題】本発明は、高速スピードでの通信時には受信処理に関する割り込み間隔が非常に短くなることによりＣＰＵ処理の負荷（ソフト処理）が増大してしまうという問題点を解決する構内交換機を提供することを目的とする。【解決手段】本発明のＤＭＡリソース割り当て方法は、通信速度が閾値を越えた場合には、ＤＭＡ資源からＤＭＡデバイス部を少なくとも１つ以上ＤＭＡ制御に割り当て、割り当てたＤＭＡデバイス部を送信処理よりも受信処理に対して優先して割り当てることを特徴とするものであり、ハードウェアからのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェアのパフォーマンス低下を防ぐことができるという効果を有する。【選択図】図２
2005143009.tif 000002
【特許請求の範囲】
【請求項１】
通信速度が閾値を越えた場合には、ＤＭＡ資源からＤＭＡデバイス部を少なくとも１つ以上ＤＭＡ制御に割り当て、割り当てたＤＭＡデバイス部を送信処理よりも受信処理に対して優先して割り当てることを特徴とする構内交換機のＤＭＡリソース割り当て方法。
【請求項２】
通信端末とシリアル通信するためのシリアル通信デバイス部と、高速転送を行うための少なくとも１以上設けられたＤＭＡデバイス部と、前記シリアル通信デバイス部及び前記ＤＭＡデバイス部を制御し、通信を行うアプリケーション手段を前記通信端末に接続するシリアル通信制御手段が設けられた構内交換機であって、
空きＤＭＡリソース数管理テーブルが設けられ、前記シリアル通信制御手段が、前記空きＤＭＡリソース数管理テーブルの空きＤＭＡリソース数を更新するとともに、
通信速度が閾値を越え且つ前記空きＤＭＡリソース数が少なくとも１以上存在する場合には、ＤＭＡデバイス部の少なくとも１以上を送信処理よりも受信処理を優先してＤＭＡ制御に割り当て、
通信速度が閾値以下または前記空きＤＭＡリソース数がない場合には、前記シリアル通信デバイス部を使ってシリアル通信を行うことを特徴とする構内交換機。
【請求項３】
前記通信端末とシリアル通信するためのシリアル通信デバイス部に代えて、通信端末とＵＳＢ通信するためのＵＳＢ通信デバイス部が設けられたことを特徴とする請求項２記載の構内交換機。
【請求項４】
コンピュータに、空きＤＭＡリソース数管理テーブルの空きＤＭＡリソース数をカウントして更新する更新機能、通信速度を閾値と比較する通信速度比較機能、前記空きＤＭＡリソース数が少なくとも１以上存在する場合にＤＭＡデバイス部を少なくとも１以上割り当てる割り当て機能、割り当てたＤＭＡデバイス部を使って送信処理よりも受信処理を優先してＤＭＡ制御を実行させるＤＭＡ機能、空きＤＭＡリソース数がなければシリアル通信デバイス部を使ってシリアル通信を行うシリアル通信機能を実現させるための構内交換機のプログラム。
【請求項５】
請求項４記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構内交換機と通信相手端末が高速通信を行うための構内交換機のＤＭＡ（direct memory access）リソース割り当て方法、それを用いた構内交換機、プログラム及び記録媒体に関するものである。
【背景技術】
【０００２】
従来、構内交換機とその設定端末（パソコン等）とのシリアル通信は比較的遅い通信速度で行われていたが、最近の構内交換機と設定端末との通信速度は高速化しており、１１５kbps近くを実現することが望まれてきている。従来の調歩同期シリアル通信はシリアル通信制御を司るハードウェアに送信・受信それぞれ１６バイトほどのハードウェアＦＩＦＯ（First In First Out）バッファを用意し、受信時においては予め１６バイト以下の値で設定しておいた閾値に対し、受信したキャラクタ数がこの閾値を越えた時点でＣＰＵに割り込みを発生させ、その後ソフトウェア処理でＦＩＦＯバッファからメモリへ転送を行っていた。また、送信時においては送信用ＦＩＦＯバッファが空になった時点でＣＰＵに割り込みを発生させ、その後ソフトウェア処理でメモリから送信用ＦＩＦＯバッファへ転送を行っていた（例えば、特許文献１参照）。
【特許文献１】特開平６−８９２４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
シリアル送信処理はその割り込み処理が次に発生する割り込み前に終了していなくても通信エラーになることはない。しかし、受信の場合は、送信に比べ、次の受信データフル割り込み発生前に受信割り込み処理が終了していなければならない。もし、終了できないと受信データの取りこぼしが発生し、上位階層で動作しているアプリケーション間の通信では通信エラーとなってしまう。通信速度が速くなってくるとＣＰＵへの割り込み間隔が短くなり受信時の通信エラーの発生確率は高くなってくる。
【０００４】
そこで、本発明の解決しようとする問題点は、１１５kbpsなどの高速スピードでの通信時では受信処理に関する割り込み間隔が８７μsとなりＣＰＵ処理の負荷（ソフト処理）が増大してしまう点である。この解決のために、ＤＭＡを使用してＣＰＵ負荷を軽減することが必要となるが、組み込み製品ではコストと省スペース化のため搭載ＤＭＡの数は限られており、シリアル通信のためにＤＭＡリソースを占有することは困難である。
【課題を解決するための手段】
【０００５】
本発明は、この問題を解決するために、通信速度が閾値を越えた場合には、ＤＭＡ資源からＤＭＡデバイス部を少なくとも１つ以上ＤＭＡ制御に割り当て、割り当てたＤＭＡデバイス部を送信処理よりも受信処理に対して優先して割り当てることを主要な特徴とする。
【発明の効果】
【０００６】
本発明の構内交換機は、指定された通信速度がある閾値を越えれば、ＤＭＡを少なくとも１つ以上確保し、確保したＤＭＡを受信処理に優先して割り当てることによりシリアル通信制御ハードウェアからのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェア動作のパフォーマンス低下やアプリケーション間での再送処理を防ぐことができるという利点がある。
【発明を実施するための最良の形態】
【０００７】
本発明は、１１５kbpsの高速スピードでの通信時では受信処理に関する割り込み間隔が非常に短くなりＣＰＵ処理の負荷（ソフト処理）が増大してしまうという問題点を解決するために、ＤＭＡを使用することが考えられるが、組み込み製品ではコストと省スペース化のためＤＭＡリソース（ＤＭＡ資源）が贅沢に実装されていることは少ない。その少ないＤＭＡリソースの使用を最小限の使用にとどめＣＰＵ負荷を軽減するという目的を実現するため、予め構内交換機内に搭載されているＤＭＡハードリソース（ＤＭＡデバイス部）をメモリ内の管理テーブル（空きＤＭＡリソース数管理テーブル）に登録しておき、アプリケーションからシリアル通信制御手段が通信速度を設定されたときに、その指定された通信速度がある閾値を越えれば、ＤＭＡデバイス部を少なくとも１つ以上確保し、確保したＤＭＡデバイス部を受信ソフトウェア処理に優先して割り当てることによって通信エラーとなる状態を軽減させることで実現した。
【０００８】
上記課題を解決するためになされた第１の発明は、通信速度が閾値を越えた場合には、ＤＭＡ資源からＤＭＡデバイス部を少なくとも１つ以上ＤＭＡ制御に割り当て、割り当てたＤＭＡデバイス部を送信処理よりも受信処理に対して優先して割り当てるＤＭＡリソース割り当て方法であり、シリアル通信制御ハードウェア（シリアル通信デバイス部）からのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェアのパフォーマンス低下を防ぐことができるという効果を有するものである。
【０００９】
本発明の第２の発明は、通信端末とシリアル通信するためのシリアル通信デバイス部と、高速転送を行うための少なくとも１以上設けられたＤＭＡデバイス部と、シリアル通信デバイス部及びＤＭＡデバイス部を制御し、通信を行うアプリケーション手段を通信端末に接続するシリアル通信制御手段が設けられた構内交換機であって、空きＤＭＡリソース数管理テーブルが設けられ、シリアル通信制御手段が、空きＤＭＡリソース数管理テーブルの空きＤＭＡリソース数を更新するとともに、通信速度が閾値を越え且つ空きＤＭＡリソース数が少なくとも１以上存在する場合には、ＤＭＡデバイス部の少なくとも１以上を送信処理よりも受信処理を優先してＤＭＡ制御に割り当て、通信速度が閾値以下または空きＤＭＡリソース数がない場合には、シリアル通信デバイス部を使ってシリアル通信を行う構内交換機であり、予め構内交換機内に搭載されているＤＭＡデバイス部の空きＤＭＡデバイス部の数をメモリ内の空きＤＭＡリソース数管理テーブルに登録しておき、アプリケーションによってシリアル通信制御手段が通信速度を設定されたときに、その指定された通信速度がある閾値を越えれば、ＤＭＡデバイス部を少なくとも１つ以上確保し、確保したＤＭＡデバイス部を受信ソフトウェア処理に優先して割り当てることによって通信エラーとなる状態を軽減させることができる。
【００１０】
本発明の第３の発明は、第２発明の通信端末とシリアル通信するためのシリアル通信デバイス部に代えて、通信端末とＵＳＢ通信するためのＵＳＢ通信デバイス部が設けられた構内交換機であり、ＵＳＢにおいても、ＤＭＡデバイス部を少なくとも１つ以上確保し、確保したＤＭＡデバイス部を受信ソフトウェア処理に優先して割り当てることによって通信エラーとなる状態を軽減させることができる。
【００１１】
本発明の第４の発明は、コンピュータに、空きＤＭＡリソース数管理テーブルの空きＤＭＡリソース数をカウントして更新する更新機能、通信速度を閾値と比較する通信速度比較機能、空きＤＭＡリソース数が少なくとも１以上存在する場合にＤＭＡデバイス部を少なくとも１以上割り当てる割り当て機能、割り当てたＤＭＡデバイス部を使って送信処理よりも受信処理を優先してＤＭＡ制御を実行させるＤＭＡ機能、空きＤＭＡリソース数がなければシリアル通信デバイス部を使ってシリアル通信を行うシリアル通信機能を実現させるためのプログラムであり、構内交換機のコンピュータにプログラムをロードして実行するだけで、シリアル通信デバイス部からのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェアのパフォーマンス低下を防ぐことができ、ＣＰＵ負荷を軽減する
ことができる。
【００１２】
本発明の第５の発明は、第４の発明のプログラムを記録したコンピュータ読み取り可能な記録媒体であり、記録媒体にプログラムを格納しているため、シリアル通信デバイス部からのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェアのパフォーマンス低下を防ぐことができ、ＣＰＵ負荷を軽減することができる。
【００１３】
（実施の形態１）
以下、本発明の実施の形態について、各図に基づいて説明する。図１は本発明の実施の形態１における構内交換機のハードブロック図、図２は本発明の実施の形態１における構内交換機のソフトブロック図、図３は本発明の実施の形態１における構内交換機のＦＩＦＯ送信ソフトウェア処理の概略図、図４は本発明の実施の形態１における構内交換機のＤＭＡ送信ソフトウェア処理の概略図、図５は本発明の実施の形態１における構内交換機のＦＩＦＯ受信ソフトウェア処理の概略図、図６は本発明の実施の形態１における構内交換機のＤＭＡ受信ソフトウェア処理の概略図、図７は本発明の実施の形態１におけるアプリケーション選択方法を示すフローチャートである。
【００１４】
図１において、１は中央演算処理装置(以下、ＣＰＵ)、２はプログラムやデータを保存するフラッシュメモリ、３は書き換え可能なプログラムやデータを格納するランダムアクセスメモリ、４はリセットや運転モードを設定するスイッチ等で構成される入力部、５は構内交換機の運転モードやエラー表示などの表示に使用されるＬＥＤやＬＣＤ等で構成される出力部、６はメモリ間高速ブロック転送やシリアルモジュールとメモリ間を高速にデータ転送するＤＭＡ、７はシリアル通信を制御するシリアル通信制御部、８は電話の接続された内線や網回線の信号制御を行う回線制御部、９は電源ＯＮまたはリセット時に最初に実行されシステム全体を立ち上げるために必要最低限の機能を制御するプログラムを保存しておくブート領域、２は頻繁に書き換えることの無いプログラムやデータを保存しておくフラッシュメモリ、１１はフラッシュメモリ２の書き換えを行うプログラムやシステムを動作させるためのプログラムを保存しておくプログラム格納領域、１２は更新されるデータを保存しておくデータ格納領域、１２ａは空きＤＭＡリソース数を記録し更新する空きＤＭＡリソース数管理テーブル、１３はシリアル通信制御部７がハードウェアの内部にバッファとして持っている送信ＦＩＦＯバッファ、１４はシリアル通信制御部７がハードウェアの内部にバッファとして持っている受信ＦＩＦＯバッファを示している。
【００１５】
次に、実施の形態１のソフトブロック構成について説明する。図２において、１５，１６，１７はいずれも構内交換機内で動作しているアプリケーション（本発明のアプリケーション手段、以下、アプリケーションという）であり、ここではシリアル通信路を媒介して通信相手端末上で動作するアプリケーションと通信しながら動作するアプリケーションＡ、アプリケーションＢ、アプリケーションＣを示している。
【００１６】
１８は構内交換機内で動作するアプリケーション１５，１６，１７と通信相手端末上で動作するアプリケーションと通信を行っているデバイスドライバポートの関連付けを行っているシリアル通信制御手段、１９はシリアル通信の割り込み処理やハードの制御を行うシリアル通信デバイスドライバ、２０i（ｉ＝１，２，・・，Ｎ）はＤＭＡの割り込み処理やハードの制御を行うＤＭＡ制御デバイスドライバ、２１はＵＳＢ（Universal Serial
Bus）通信の割り込み処理やハードの制御を行うＵＳＢデバイスドライバ、２２i（ｉ＝１，２，・・，Ｎ）はＤＭＡ制御ハードウェア、２３はシリアル通信の調歩同期などハードよりの制御を行うシリアル通信制御ハードウェア、２４はＵＳＢハードウェア制御を行うＵＳＢ制御ハードウェア、２５i（ｉ＝１，２，・・，Ｎ）はシリアル通信制御ハードウェア２３内にあって送信用のハードウェアバッファである送信ＦＩＦＯバッファ、２６i（ｉ＝１，２，・・，Ｎ）はシリアル通信制御ハードウェア２３内にあって受信用のハ
ードウェアバッファである受信ＦＩＦＯバッファ、２７は構内交換機と通信を行う通信相手端末を示している。
【００１７】
シリアル通信制御手段１８はハードウェアの空きＤＭＡリソース数Ｎをカウントし、空きＤＭＡリソース数管理テーブル１２ａの内容を更新するとともに、空きＤＭＡリソース数Ｎを読み出してＤＭＡ制御を行う。なお、「ｉ」はＤＭＡリソースが複数個存在する場合のｉ番目を示すための添え字であり、ｉ＝１，２は２個のＤＭＡリソースが存在ることを示している。また、ＤＭＡリソースは、ＤＭＡ制御デバイスドライバ２０i，ＤＭＡ制御ハードウェア２２i，送信ＦＩＦＯバッファ２５i及び受信ＦＩＦＯバッファ２６i（ここでｉ＝１，２，・・，Ｎ）からなるＮ個のＤＭＡデバイス部(以下、ＤＭＡという)から構成される。同様に、シリアル通信デバイスドライバ１９，シリアル通信制御ハードウェア２３，送信ＦＩＦＯバッファ２５i及び受信ＦＩＦＯバッファ２６i（ｉ＝１，２，・・，Ｎ）からシリアル通信デバイス部が構成される。
【００１８】
まず、ＤＭＡの獲得方法を述べる前に、ＦＩＦＯを使用した送信、ＤＭＡを使用した送信、ＦＩＦＯを使用した受信、ＤＭＡを使用した受信の４つの基本動作をそれぞれ説明する。この場合、ｉ＝１であり、簡単のためｉ＝１の添え字は省略して以下説明する。なお、シリアル通信制御手段１８、シリアル通信デバイスドライバ１９、シリアル通信制御ハードウェア２３、送信ＦＩＦＯバッファ２５、通信相手端末２７については図２で説明したので説明を省略する。
【００１９】
図３において、３０１はアプリケーションから渡された送信データを含む送信用バッファ、３０２はアプリケーションから渡されたデータをシリアル通信デバイスドライバ１９に渡すために用意した送信待ちキュー、３０３はシリアル通信デバイスドライバ１９が送信待ちキュー３０２から取り出して送信用バッファ設定（先頭アドレス設定、サイズ設定）を行った送信データである送信用バッファ、３０４は送信用バッファ３０３の先頭数バイト除いた残り送信用バッファ、３０５はシリアル通信デバイスドライバ１９がシリアル通信制御手段１８へ送信用バッファのデータを送信完了したことを示す送信完了通知メッセージを示している。
【００２０】
構内交換機で動作するアプリケーションから通信相手端末２７への送信データはシリアル通信制御手段１８へ送信用バッファ３０１の形式で渡される。シリアル通信制御手段１８は、渡されたデータをアプリケーションから渡された順番通りにシリアル通信デバイスドライバ１９に渡すために送信待ちキュー３０２にキューイングする。シリアル通信デバイスドライバ１９は送信待ちキュー３０２からデータを取り出す。取り出したデータが送信用バッファ３０３となる。シリアル通信デバイスドライバ１９は、送信用バッファ３０３の先頭数バイトをシリアル通信制御ハードウェア２３内に存在する送信ＦＩＦＯバッファ２５に書き込む。その後、シリアル通信デバイスドライバ１９は、シリアル通信制御ハードウェア２３からの送信データエンプティ割り込みを待つ。送信データエンプティ割り込みが発生すると、シリアル通信デバイスドライバ１９は残り送信用バッファ３０４から数バイトだけ送信ＦＩＦＯバッファ２５に書き込み、その後また、シリアル通信制御ハードウェア２３からの送信データエンプティ割り込みを待つ。この割り込みと送信ＦＩＦＯバッファ２５への書き込みを残り送信用バッファ３０４が空になるまで繰り返す。残り送信用バッファ３０４が空になった時点でシリアル通信デバイスドライバ１９はシリアル通信制御手段１８へ送信完了通知メッセージ３０５を送る。このようにして構内交換機で動作するアプリケーションから通信相手端末２７への送信は行われる。
【００２１】
続いて、ＤＭＡ送信の処理について説明する。図４において、４０１はアプリケーションから渡された送信データを含む送信用バッファ、４０２はアプリケーションから渡されたデータをシリアル通信デバイスドライバ１９に渡すために用意した送信待ちキュー、４
０３はシリアル通信デバイスドライバ１９が送信待ちキュー４０２から取り出して送信用バッファ設定（先頭アドレス、転送サイズ）を行った送信データである送信用バッファ、４０４は送信用バッファ４０３の先頭数バイトを除いた残り送信用バッファ、４０５はシリアル通信デバイスドライバ１９がシリアル通信制御手段１８へ送信用バッファのデータを送信完了したことを示す送信完了通知メッセージを示している。
【００２２】
構内交換機で動作するアプリケーションから通信相手端末２７への送信データはシリアル通信制御手段１８へ送信用バッファ４０１の形式で渡される。ＤＭＡ送信を行う場合には、シリアル通信制御手段１８は、渡されたデータをアプリケーションから渡された順番通りにＤＭＡ制御デバイスドライバ２０に渡すために、送信待ちキュー４０２にキューイングする。ＤＭＡ制御デバイスドライバ２０は送信待ちキュー４０２からデータを取り出す。取り出したデータが送信用バッファ４０３となる。ＤＭＡ制御デバイスドライバ２０は送信データ４０３の先頭数バイトをシリアル通信制御ハードウェア２３内に存在する送信ＦＩＦＯバッファ２５に書き込む。その後、ＤＭＡ制御デバイスドライバ２０はＤＭＡ転送に必要なパラメータ（先頭アドレス、転送サイズ、転送モード）をＤＭＡ制御ハードウェア２２にＤＭＡ設定する。シリアル通信制御ハードウェア２３で送信データエンプティ割り込みが発生すると、その割り込みはＣＰＵではなくＤＭＡ制御ハードウェア２２に送られ、ＤＭＡでは設定されたパラメータの１つである転送サイズ分の転送が終了するまで、送信用バッファ４０４から送信ＦＩＦＯバッファ２５へ転送を数バイトずつ行う。この間、ソフトウェアが動作しているＣＰＵは割り込みを受付ける必要が無く、送信エンプティ割り込み処理を行う必要が無くなるため負荷が軽減される。ＤＭＡ転送が何回か行われ、残り送信用バッファ４０４が空になった時点で、ＤＭＡ制御ハードウェア２２からＣＰＵに対して転送完了割り込みが発生する。この割り込みを受信した時点ではじめてＤＭＡ制御デバイスドライバ２０はシリアル通信デバイスドライバ１９へ送信完了通知メッセージ４０５を送信する。このようにして構内交換機で動作するアプリケーションから通信相手端末２７への送信は行われる。
【００２３】
続いて、ＦＩＦＯ受信の処理について説明する。図５において、５０２，５０３，５０４は受信したデータを格納するために複数用意されたバッファのそれぞれを示しており受信用バッファＮ，受信用バッファ２，受信用バッファ１である。５０５はシリアル通信デバイスドライバ１９がシリアル通信制御手段１８へ送る受信完了通知メッセージである。５０２〜５０４で表されている受信用バッファの個数は定常状態では一定に保たれるように制御されている。５０１は受信用バッファの個数が減ったときに新たに作成された新規受信用バッファを示している。ここで、通信相手端末２７から受信されるデータが多く、新規受信用バッファ５０１の作成が間に合わなくなりバッファの個数が減ってきた場合にはシリアル通信制御手段１８がシリアル通信デバイスドライバ１９経由でシリアル通信制御ハードウェア２３を制御して通信相手端末２７へビジー状態（ビジー制御モード）を伝える。
【００２４】
ビジー制御モードがハードフロー制御の場合は該当する信号線を操作し、ビジー制御モードがソフトフローならば送信ＦＩＦＯバッファ２５にビジー制御用キャラクタを１バイト分書き込む。ビジー制御モードがビジー制御無しモードの場合は通信相手端末２７へ何も伝えない。
【００２５】
通信相手端末２７から受信されたデータは、まずシリアル通信制御ハードウェア２３内にある受信ＦＩＦＯバッファ２６に格納される。受信されたデータ数が予め設定した閾値以上になるとシリアル通信制御ハードウェア２３はＣＰＵに対して受信データフル割り込みを発生させる。割り込み発生後、シリアル通信デバイスドライバ１９が起動され、受信ＦＩＦＯバッファ２６から受信用バッファ１に受信データを転送する。その後、シリアル通信デバイスドライバ１９はシリアル通信制御ハードウェア２３からの受信データフル割
り込を待つ。この割り込みと受信ＦＩＦＯバッファ２６から受信用バッファ１である５０４への転送を受信用バッファ１である５０４の空きエリアがなくなるまで繰り返す。受信用バッファ１である５０４の空きエリアがなくなった時点でシリアル通信デバイスドライバ１９はシリアル通信制御手段１８へ受信完了通知メッセージ５０５を送ると同時に受信用バッファ２である５０３を受信用バッファ１である５０４に設定し受信待機する。このようにして通信相手端末２７から構内交換機で動作するアプリケーションへの受信処理は行われる。
【００２６】
次に、ＤＭＡ受信の処理について説明する。図６において、６０２，６０３，６０４は受信したデータを格納するために複数用意されたバッファのそれぞれを示しており、受信用バッファＮ、受信用バッファ２、受信用バッファ１である。６０２〜６０４で表されている受信用バッファの個数は定常状態では一定に保たれるように制御されている。６０１は受信用バッファの個数が減ったときに新たに作成された新規受信用バッファを示している。ここで、通信相手端末２７から受信されるデータが多く、新規受信用バッファ６０１の作成が間に合わなくなりバッファの個数が減ってきた場合にはシリアル通信制御手段１８がシリアル通信デバイスドライバ１９経由でシリアル通信制御ハードウェア２３を制御して通信相手端末２７へビジー状態（ビジー制御モード）を伝える。
【００２７】
ビジー制御モードがハードフロー制御の場合は該当する信号線を操作し、ビジー制御モードがソフトフローならば送信ＦＩＦＯバッファ２５にビジー制御用キャラクタを１バイト分書き込む。ビジー制御モードがビジー制御無しモードの場合は通信相手端末２７へ何も伝えない。
【００２８】
通信相手端末から受信されたデータはまずシリアル通信制御ハードウェア２３内にある受信ＦＩＦＯバッファ２６に格納される。受信されたデータ数が予め設定した閾値以上になると、シリアル通信制御ハードウェア２３はＣＰＵではなく、ＤＭＡ制御ハードウェア２２に対して受信データフル割り込みを発生させる。ＤＭＡ転送処理では設定されたパラメータの１つである転送サイズ分の転送が終了するまで、受信ＦＩＦＯバッファ２６から受信用バッファ１である６０４へ転送を数バイトずつ行う。この間、ソフトウェアが動作しているＣＰＵは割り込みを受付ける必要が無く、受信データフル割り込みに対する割り込み処理を行う必要が無くなるため負荷が軽減される。ＤＭＡ転送が何回か行われ、受信用バッファ１である６０４の空きエリアがなくなった時点で、ＤＭＡ制御ハードウェア２２からＣＰＵに対して転送完了割り込みが発生する。この割り込みを受信した時点ではじめてＤＭＡ制御デバイスドライバ２０はシリアル通信デバイスドライバ１９へ受信完了通知メッセージ６０５を送信する。このようにして通信相手端末２７から構内交換機で動作するアプリケーションへの受信処理は行われる。
【００２９】
以上説明した基本動作のように、ＦＩＦＯを使用した送信、ＤＭＡを使用した送信、ＦＩＦＯを使用した受信、ＤＭＡを使用した受信が行われるが、構内交換機に搭載されているＤＭＡの個数が限られているため、高速通信を行いたい場合にすべてのシリアル通信やＵＳＢ通信にＤＭＡを割り当てることは困難な場合が多い。具体的には、図２のシリアル物理ポート１，２、ＵＳＢ物理ポートが示すように、シリアル物理ポートが２つ、ＵＳＢが１つある構内交換機ですべてのポートで高速通信を行うためには、送信に１つ、受信に１つ割り当てることが必要で計６つのＤＭＡリソースが必要となる。従って、例えばハードウェアで用意しているＤＭＡリソース（ＤＭＡ制御デバイスドライバ２０i，ＤＭＡ制御ハードウェア２２i，送信ＦＩＦＯバッファ２５i及び受信ＦＩＦＯバッファ２６iからなるＤＭＡデバイス部）が４個（ｉ＝１，２，３，４）の場合にはＤＭＡリソースが不足してしまう。また、常にシリアル通信ポートを同時に２つ使用することはまれであるため、使用していないシリアル通信ポートにＤＭＡを割り当てておくことはハードウェアリソースの無駄使いである。
【００３０】
そこで、実施の形態１の少ないＤＭＡリソースを必要な時に必要なだけ優先度を考えて割り当てる方法を図７に基づいて説明する。
【００３１】
通信に先立ってアプリケーションがシリアル通信制御手段１８に通信速度の設定を要求する（Ｓ０１）。設定を要求されたシリアル通信制御手段１８は、予め設定しておいた通信速度の閾値を越えたかどうか判定する（Ｓ０２）。実施の形態１の構内交換機ではこの閾値を９６００bpsに設定している。すなわち、アプリケーションからの要求が９６００bps以下であればＤＭＡリソースを確保することなく、Ｓ１１、Ｓ１２に進み、ＤＭＡを割り当てず、受信の場合には上述したＦＩＦＯを使用した受信によるＦＩＦＯバッファ制御に設定してシリアル通信を行い（Ｓ１１）、送信の場合には上述したＦＩＦＯを使用した送信によるＦＩＦＯバッファ制御に設定してシリアル通信を行う（Ｓ１２）。
【００３２】
アプリケーションからの要求が９６００bpsを越えた場合は、シリアル通信制御手段１８はハードウェアの空きＤＭＡリソース数を図１のデータ格納領域１２の空きＤＭＡリソース数管理テーブル１２ａから取得する（Ｓ０３）。これによって空きＤＭＡが存在するかを判定し（Ｓ０４）、空きＤＭＡリソース数が０の場合（空きＤＭＡリソース数がない場合）には、アプリケーションに対してはＤＭＡが取得できなかった旨（ＤＭＡ未取得）を通知し（Ｓ１０）、通信を開始する。ＤＭＡが取得できなかったが通信を継続するか一旦切断するかはアプリケーション任せでＳ１１，Ｓ１２に進んで動作させる。
【００３３】
Ｓ０４でＤＭＡリソース数が１以上だった場合、受信側にＤＭＡリソースを割り当てる（Ｓ０５）。これは、送信時はキャラクタデータとキャラクタデータの間がいくら空いても問題ないが、受信時はＣＰＵのソフトウェア処理の遅延のために受信処理間隔が空き受信データの取りこぼしが発生するのを防ぎ、通信エラーの発生する確率を少なくするためである。
【００３４】
次に、図１のデータ格納領域１２に格納されているＤＭＡリソース数をディクリメントし（Ｓ０６）、再び空きＤＭＡが存在するか判定する（Ｓ０７）。Ｓ０７の判定でＤＭＡリソースがなかった場合には、送信側にはＤＭＡを割り当てずＦＩＦＯのみを用いてシリアル通信を行う（Ｓ１２）。この場合は、ＦＩＦＯを使用した送信、ＤＭＡを使用した受信でシリアル通信が行われる。Ｓ０７でＤＭＡリソース数が１以上の場合は送信にもＤＭＡを割り当て（Ｓ０８）、ＤＭＡリソース数をディクリメントし（Ｓ０９）、次いでＤＭＡを使用した送信・ＤＭＡを使用した受信の制御を行い、シリアル通信を行う。
【００３５】
以上説明した方法を用いれば、通信で負荷のかかる受信処理にできるだけＤＭＡを割り当てることができる。なお、本発明では、ＣＰＵにプログラムをロードし、機能実現手段として（１）空きＤＭＡリソース数管理テーブル１２ａの空きＤＭＡリソース数をカウントして更新する更新機能、（２）通信速度を閾値と比較する通信速度比較機能、（３）空きＤＭＡリソース数が存在する場合にＤＭＡデバイス部を少なくとも１以上を割り当てる割り当て機能、（４）割り当てたＤＭＡデバイス部を使って送信処理よりも受信処理を優先してＤＭＡ制御を実行させるＤＭＡ機能、（５）空きＤＭＡリソース数がなければシリアル通信デバイス部を使ってシリアル通信を行うシリアル通信機能の、５つの機能を実現させるから、シリアル通信デバイス部からのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェアのパフォーマンス低下を防ぐことができ、ＣＰＵ負荷を軽減することができる。
【００３６】
（実施の形態２）
次に、本発明の実施の形態２について説明する。図２においてＵＳＢを用いて通信する場合について説明する。構内交換機に搭載されるＵＳＢインターフェースはスレーブ側（
図２のデバイス側）のもので、パソコンに搭載されるＵＳＢマスター用のインターフェースは搭載していない。従って、通信相手はマスターとなるべきパソコンなどである。
【００３７】
ＵＳＢコネクタが構内交換機に挿入されると、ＵＳＢデバイスドライバ２１はコネクタが挿入されたことを検知する。ここで、通信に必要な最低限のＵＳＢ制御ハードウェア２４の設定を行う。その後、構内交換機のアプリケーションから通信に先立って通信速度の設定を行う。このアプリケーションからの通信速度の設定要求がなされると、シリアル通信制御手段１８は、図７のフローチャートにしたがって受信、送信の順でＤＭＡを割り当てていく。構内交換機のアプリケーションは何ら物理デバイスやデバイスドライバを意識することなく通信相手端末と通信を行うことが可能となる。
【産業上の利用可能性】
【００３８】
本発明は、構内交換機と通信相手端末が高速通信を行うためのＤＭＡリソース割り当て方法、そのとき使用される構内交換機、プログラム、記録媒体に関するものであり、指定された通信速度がある閾値を越えれば、ＤＭＡを少なくとも１つ以上確保し、確保したＤＭＡを受信処理に優先して割り当てることによりシリアル通信制御ハードウェアからのＣＰＵへの割り込み頻度を削減することが可能となり、ソフトウェアのパフォーマンス低下を防ぐことができるという利点がある。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施の形態１における構内交換機のハードブロック図
【図２】本発明の実施の形態１における構内交換機のソフトブロック図
【図３】本発明の実施の形態１における構内交換機のＦＩＦＯ送信ソフトウェア処理の概略図
【図４】本発明の実施の形態１における構内交換機のＤＭＡ送信ソフトウェア処理の概略図
【図５】本発明の実施の形態１における構内交換機のＦＩＦＯ受信ソフトウェア処理の概略図
【図６】本発明の実施の形態１における構内交換機のＤＭＡ受信ソフトウェア処理の概略図
【図７】本発明の実施の形態１におけるアプリケーション選択方法を示すフローチャート
【符号の説明】
【００４０】
１    中央演算処理装置
２    フラッシュメモリ
３    ランダムアクセスメモリ
４    入力部
５    出力部
６    ＤＭＡ
７    シリアル通信制御部
８    回線制御部
９    ブート領域
１０    プログラム・データ格納領域
１１    プログラム格納領域
１２    データ格納領域
１３    送信ＦＩＦＯバッファ
１４    受信ＦＩＦＯバッファ
１５    アプリケーションＡ
１６    アプリケーションＢ
１７    アプリケーションＣ
１８    シリアル通信制御手段
１９    シリアル通信デバイスドライバ
２０i    ＤＭＡ制御デバイスドライバ
２１    ＵＳＢデバイスドライバ
２２i    ＤＭＡ制御ハードウェア
２３    シリアル通信制御ハードウェア
２４    ＵＳＢ制御ハードウェア
２５i    送信ＦＩＦＯバッファ
２６i    受信ＦＩＦＯバッファ
２７    通信相手端末
３０１，４０１    送信用バッファ
３０２，４０２    送信待ちキュー
３０３，４０３    送信用バッファ
３０４，４０４    残り送信用バッファ
３０５，４０５    送信完了通知メッセージ
５０１，６０１    新規受信用バッファ
５０２，６０２    受信用バッファＮ
５０３，６０３    受信用バッファ２
５０４，６０４    受信用バッファ１
５０５，６０５    受信完了通知メッセージ
【図１】
2005143009.tif 000003
【図２】
2005143009.tif 000004
【図３】
2005143009.tif 000005
【図４】
2005143009.tif 000006
【図５】
2005143009.tif 000007
【図６】
2005143009.tif 000008
【図７】
2005143009.tif 000009