(57)【要約】【課題】タイマ割り込みサービスルーチンを利用したパケット伝送装置を提供する。【解決手段】中央処理装置で少なくとも１つのタスクを処理している最中にＵＤＰパケットを伝送するタスクが発生すれば、パケット伝送間隔を考慮した設定された時間ごとにタイマ割り込みイベントを発生させ、タイマ割り込みサービスルーチンを呼び出し、タイマ割り込みサービスルーチンを利用し、ＵＤＰパケットを目的地に等間隔で伝送するタイマ割り込みサービスルーチンを利用したパケット伝送装置である。【選択図】図１
2020198607.tif 000002
【特許請求の範囲】
【請求項１】
パケット伝送間隔を考慮して設定されたタイマ割り込みイベントが発生すれば、現在実行中の少なくとも１つのタスクを中止し、タイマ割り込みサービスルーチン（ＴＩＳＲ）を呼び出し、タイマ割り込みイベント処理が完了すれば、中止されたタスクを再開する中央処理装置と、
フロント側でのデータ引き出しを提供し、リア側でのデータ挿入を提供する先入先出構造を提供するペイロードキューと、
前記中央処理装置からタイマ割り込みイベントを処理せよという呼び出しを受ければ、フロントのデータを取り出してヘッダを生成するタイマ割り込みサービスルーチンと、
前記フロントで取り出したデータと、ヘッダとを含むＵＤＰパケットを目的地に伝送する通信部と、
を含み、
前記タイマ割り込みサービスルーチンは、タイマ割り込みイベントが発生する時期ごとに実行され、少なくとも１つのタスクを処理している最中にも、等間隔でＵＤＰパケット伝送が可能なようにし、
前記中央処理装置は、伝送に必要な時間を除いたパケット伝送間隔間の残り時間に、少なくとも１つのタスクを処理する
ことを特徴とするタイマ割り込みサービスルーチンを利用したパケット伝送装置。
【請求項２】
リア側にデータを挿入するとき、リアポインタ値のみを変更するエンコーディング部をさらに含み、
前記タイマ割り込みサービスルーチンは、フロント位置のデータを取り出すとき、フロントポインタ値のみを変更し、
前述のエンコーディング部とタイマ割り込みサービスルーチンは、同時にペイロードキューのアクセスと、ポインタ値の変更とが可能である
ことを特徴とする請求項１に記載のタイマ割り込みサービスルーチンを利用したパケット伝送装置。
【請求項３】
前記タイマ割り込みサービスルーチンは、ｊ個の目的地に対応する目的地別伝送間隔ごとにタイマ割り込みイベントが発生すれば、ｊ個の目的地別タイマ割り込みイベントを処理し、
前記通信部は、パケット伝送間隔でそれぞれの目的地にＵＤＰパケットを伝送し、目的地別伝送間隔ごとに目的地別順次的ＵＤＰパケット伝送を提供する
ことを特徴とする請求項１に記載のタイマ割り込みサービスルーチンを利用したパケット伝送装置。
【請求項４】
ｊ個の目的地に、同一ＵＤＰパケット伝送が必要なとき、ユーザスペースからカーネルスペースに、ＵＤＰパケットが１回のコンテクストスイッチングと、１回の複写とがなされるようにし、カーネルスペースで複写されたＵＤＰパケットをｊ回反復し、ｊ個の目的地に伝送する
ことを特徴とする請求項１に記載のタイマ割り込みサービスルーチンを利用したパケット伝送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイマ割り込みサービスルーチンを利用したパケット送信装置に係り、さらに詳細には、タイマ割り込みサービスルーチンを利用し、ＵＤＰ（user datagram protocol）パケットを等間隔で送信する技術に関する。
【背景技術】
【０００２】
撮影された映像をリアルタイムでエンコーディングしてパケットを生成し、生成されたパケットを目的地に伝送するパケット送信装置は、マルチタスキング構造を提供する。さらに詳細には、該パケット送信装置は、特許文献１に記載されているように、デジタル放送データを再生するタスク、アプリケーションを実行するタスク、またはデジタル放送データを背景に再生するタスクを処理することができる。
【０００３】
マルチタスキングの原理は、１つのタスクを行っていて、しばらく止め、他のタスクを行い、また止め、さらに他のタスクを行い、結局、全てのタスクを処理するのである。ユーザは、まさしくさまざまなタスクが一回に処理されると感じられる。
【０００４】
該パケット送信装置は、リアルタイムストリーミングを提供するために、主に、ＴＣＰ（transmission control protocol）方式よりは、ＵＤＰ方式を使用する。ＵＤＰ方式は、流れ混雑（flow congestion）を考慮せず、一方から一方的に送る方式であるために、パケットが損失される心配があるものの、ＴＣＰ方式に比べて伝送が迅速であり、オーバーヘッドが低く、リアルタイムストリーミングに汎用される。しかし、従来には、複数個のタスクを処理するとき、ＵＤＰパケットを伝送するタスクが追加されれば、マルチタスキング時間表（schedule）上、プロセス使用権を付与されるための時間を待たなければならないので、プロセス使用権を付与された時間の間は、パケットを急いで伝送し、次の使用権付与を待つ間は、パケット伝送が中断されることが反復される。その結果として、パケット間の伝送間隔が狭まり、ネットワーク上で伝送されていて、ルータ（router）の処理速度を超えれば、当該パケットは、ルータで廃棄され、受信地に達することができないという結果が発生する。ＴＣＰ伝送方式であるならば、パケットごとに受信を確認する手続きがあり、ルータでパケットが廃棄されることが発生しても、同一パケットを再伝送して克服するが、ＵＤＰ伝送方式は、パケット損失に帰結する。
【０００５】
非特許文献１のＵＤＰパケット間の伝送間隔と損失率との関係を参照すれば、伝送間隔が狭められるほど、パケット損失率は、急激に上昇する。そのような問題点を解決するためには、全般にわたり、偏って伝送される部分がないように、均一であって等間隔でＵＤＰパケットの伝送がなされなければならない。
【０００６】
従来、パケットを等間隔で送るために、スリープ（sleep）方式とビジーチェック（busy check）方式とが提示されたが、２つの方式とも、次のような問題点がある。
【０００７】
スリープ方式は、ＵＤＰパケット伝送タスクが、パケット一つを送った後、残り時間のプロセス使用権を放棄しつつ、マルチタスキングスケジューラに、一定時間後、ＵＤＰパケット伝送タスク自体を呼び出すように要求し、プロセス使用権を確保する方式である。しかし、マルチタスキング時間表は、数十ミリ秒（ｍｓ：millisecond）単位でタスクの日程を管理する一方、リアルタイム映像エンコーダは、伝送速度保証のために、数ミリ秒間隔でパケットを送らなければならないので、スリープ方式で等間隔パケット伝送を具現し難い。
【０００８】
ビジーチェック方式は、ＵＤＰパケット伝送タスクが、中央処理装置を独占しながら、数ミリ秒の一定間隔でパケットを伝送する方式である。しかし、そのようなビジーチェック方式は、中央処理装置を独占し、他のタスクが実行されえないという問題点がある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】韓国登録特許第１０−０７５１８５９号
【非特許文献】
【００１０】
【非特許文献１】Apu Kapadia, Annette C. Feng, Wu-chun Feng, The Effects of Inter-packet Spacing on the Delivery of Multimedia Content. ICDCS 2001: 665-672
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする課題は、中央処理装置で少なくとも１つのタスクを処理している最中、パケット伝送間隔を考慮し、あらかじめ設定された時間ごとに、タイマ割り込みイベント（timer interrupt event）を発生させ、タイマ割り込みイベントが発生したとき、タイマ割り込みサービスルーチンを呼び出し、ＵＤＰパケットを目的地に伝送することである。
【００１２】
本発明が解決しようとする課題は、また、エンコーディングされたデータにヘッダを生成するタスクをオペレーティングシステム（operating system）のプロトコルスタックに依頼せず、タイマ割り込みサービスルーチンでヘッダを生成することである。
【００１３】
本発明が解決しようとする課題は、また、エンコーディング部がリア側にデータを挿入するとき、リアポインタ値のみを変更し、タイマ割り込みサービスルーチンがフロント位置のデータを取り出すとき、フロントポインタ値のみを変更し、エンコーディング部とタイマ割り込みサービスルーチンとが、同時にペイロードキューのアクセスと、ポインタ値の変更とが可能となることである。
【課題を解決するための手段】
【００１４】
前述の解決しようとする課題のための本発明によるタイマ割り込みサービスルーチンを利用したパケット伝送装置は、マルチタスキング構造を提供し、割り込み発生時、現在状態でタスクを中止して保存し、割り込みと係わるイベントを緊急処理し、イベント処理が完了すれば、イベントが発生する以前の状態に復帰する中央処理装置１１０と、フロント側でのデータ取り出しを提供し、リア側でのデータ挿入を提供する先入先出構造を提供するペイロードキュー（payload queue）１３０と、パケット伝送間隔を考慮して設定されたタイマ割り込みイベントが発生すれば、フロントのデータを取り出してヘッダを生成するタイマ割り込みサービスルーチン（ＴＩＳＲ：timer interrupt service routine）１４０と、前記フロントで取り出したデータとヘッダとを含むＵＤＰパケットを目的地に伝送する通信部１５０と、を含み、タイマ割り込みサービスルーチンを利用し、ＵＤＰパケットを等間隔で送信することを特徴とする。
【００１５】
本発明によるタイマ割り込みサービスルーチンを利用したパケット伝送装置は、リア側にデータを挿入するとき、リアポインタ値のみを変更するエンコーディング部をさらに含み、前記タイマ割り込みサービスルーチンは、フロント位置のデータを取り出すとき、フロントポインタ値のみを変更し、前記エンコーディング部とタイマ割り込みサービスルーチンは、同時にペイロードキューのアクセスと、ポインタ値の変更とが可能であることを特徴とする。
【００１６】
前記タイマ割り込みサービスルーチンは、ｊ個の目的地に対応する目的地別伝送間隔ごとにタイマ割り込みイベントが発生すれば、ｊ個の目的地別パケットを送信し、前記通信部は、パケット伝送間隔でそれぞれの目的地にＵＤＰパケットを伝送し、目的地別伝送間隔ごとに目的地別順次的ＵＤＰパケット伝送を提供することを特徴とする。
【００１７】
本発明によるタイマ割り込みサービスルーチンを利用したパケット伝送装置は、ｊ個の目的地に、同一ＵＤＰパケッ伝送が必要なとき、ユーザスペースからカーネルスペースにＵＤＰパケットが１回のコンテクストスイッチングと、１回の複写とがなされるようにし、カーネルスペースで複写されたＵＤＰパケットをｊ回反復し、ｊ個の目的地に伝送することを特徴とする。
【発明の効果】
【００１８】
本発明は、パケット伝送間隔を考慮して設定された時間に、タイマ割り込みイベントを発生させ、タイマ割り込みサービスルーチンを呼び出すことにより、中央処理装置で少なくとも１つのタスクを処理している最中にも、等間隔でＵＤＰパケットを伝送することができ、受信側に達するパケット損失率を低下させることができる。
【００１９】
本発明は、エンコーディングされたデータを使用してヘッダを生成するタスクを、オペレーティングシステムのプロトコルスタックに依頼せず、タイマ割り込みサービスルーチンでヘッダを直接生成する。
【００２０】
本発明は、エンコーディング部とタイマ割り込みサービスルーチンとが互いに影響を与えずに、同時にペイロードキューのアクセスと、ポインタ値の変更とが可能になることにより、競争状態を防止するためのロッキングが不要である。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態によるタイマ割り込みサービスルーチンを利用したパケット伝送装置を図示したブロック図である。
【図２】データが空いているペイロードキューを図示した例の図面である。
【図３】Ｄ１が取り出したペイロードキューを図示した例の図面である。
【図４】Ｄ３が挿入されたペイロードキューを図示した例の図面である。
【図５】同時にＤ１が取り出されてＤ３が挿入されたペイロードキューを図示した例の図面である。
【図６】Ｄ（ｎ＋１）が挿入されたペイロードキューを図示した例の図面である。
【図７】マルチタスキングスケジューラを利用した従来のＵＤＰパケット伝送を図示した例の図面である。
【図８】本発明のタイマ割り込みサービスルーチンを利用したＵＤＰパケット伝送を図示した例の図面である。
【図９】本発明の複数個の目的地へのＵＤＰパケット伝送を図示した例の図面である。
【発明を実施するための形態】
【００２２】
以下、添付図面及び添付図面に記載された内容を参照し、本発明の実施形態について詳細に説明するが、本発明が、実施形態によって制限されたり限定されたりするものではない。
【００２３】
図１は、本発明の実施形態によるタイマ割り込みサービスルーチン（ＴＩＳＲ：timer interrupt service routine）を利用したパケット伝送装置を図示したブロック図であり、パケット伝送装置１００は、ネットワークを介してパケットを目的地に伝送する。例えば、該ネットワークは、イーサネット（Ethernet）であり、目的地は、少なくとも一つである。パケット伝送装置１００は、中央処理装置（ＣＰＵ：central processing unit）１１０、エンコーディング部１２０、ペイロードキュー（payload queue）１３０、タイマ割り込みサービスルーチン（ＴＩＳＲ）１４０及び通信部１５０を含む。
【００２４】
中央処理装置１１０は、多重作業またはマルチタスキング（multitasking）の構造を提供する。例えば、中央処理装置１１０は、映像を再生するタスク、映像を伝送するタスク、特定アプリケーションを実行するタスク、音楽を実行するタスク、または文書を閲覧するタスクのような多様なタスクを処理することができるが、それらに限定されるものではない。
【００２５】
中央処理装置１１０は、複数個のタスクを処理するとき、各タスク別に時間表のように設定された時間単位でプロセス使用権を付与し、各タスクを一つずつ処理するマルチタスキング構造を提供する。
【００２６】
中央処理装置１１０は、制御装置（control unit）、論理演算装置（ＡＬＵ：arithmetic logic unit）、及び少なくとも１以上のレジスタ（register）を含む。該制御装置は、プログラム命令語を解釈し、解釈された命令の意味により、論理演算装置、主記憶装置（main memory unit）または入出力装置（input-output unit）に動作を指示する。該論理演算装置は、算術と論理演算とを行う装置であり、該制御装置の指示によって演算を行う。
【００２７】
該レジスタは、主記憶装置から読み取った命令語またはデータを保存したり、演算された結果を保存したりする空間である。該レジスタは、中央処理装置１１０で命令語を実行する間、必要な情報を保存する記憶場所であり、汎用レジスタ（ＧＰＲ：general purpose register）と特殊目的レジスタ（ＳＰＲ：special purpose register）とを含んでもよい。
【００２８】
該汎用レジスタは、命令語実行中に演算と係わるデータを保存する。該特殊目的レジスタは、プログラム計数器（ＰＣ：program counter）、命令語レジスタ（ＩＲ：instruction register）及びスタックポインタ（ＳＰ：stack pointer）を含んでもよい。該プログラム計数器は、次に実行される命令語が保存された主記憶装置のアドレスを保存し、該命令語レジスタは、現在実行中の命令語を保存し、該スタックポインタは、主記憶装置スタックのデータ挿入とその取り出しとがなされるアドレスを保存する。
【００２９】
中央処理装置１１０は、マルチタスキング構造を提供し、割り込み（interrupt）発生時、現在状態でタスクを中止して保存し、割り込みと係わるイベントを緊急処理し、イベントを処理すれば、イベントが発生する以前の状態に復帰する。
【００３０】
該割り込みは、コンピュータ作動中、予期しえない問題が発生した場合でも、業務処理を続けさせるコンピュータオペレーションシステムの一機能であり、実行中のプログラムをしばらく中断し、他のプログラムを先に実行することを意味する。
【００３１】
該割り込みは、内部割り込み（internal interrupt）及び外部割り込み（external interrupt）を含む。該内部割り込みは、記憶装置、または論理演算装置のような中央処理装置１１０の内部で発生する割り込みであり、ハードウェア故障、実行することができない命令語、命令語実行誤謬、または使用権限違背によって発生する。該ハードウェア故障は、コンピュータ故障、データ伝達過程でのビット誤謬、または電源供給中断による故障である。実行することができない命令語は、記憶装置から引き出した命令語のビットパターンが定義されていない場合である。該命令語実行誤謬は、０で除算を行う場合である。該使用権限違背は、ユーザがオペレーティングシステムだけが使用することができる資源にアクセスする場合である。
【００３２】
外部割り込みは、タイマ割り込み及び入出力割り込みを含む。該タイマ割り込みは、タイマが一定時間間隔で中央処理装置１１０に割り込みを要請する割り込みである。中央処理装置１１０は、タイマから割り込みを要請するイベントを受ければ、現在実行中のタスクを中止し、タイマ割り込みサービスルーチン１４０を実行する。
【００３３】
タイマ割り込みサービスルーチン１４０は、中央処理装置１１０から当該イベントを処理せよという命令を受信すれば、当該イベントと係わるコードを実行し、当該イベントに対する割り込みを処理する。タイマ割り込みサービスルーチン１４０は、当該イベントに対応するコードが前もって登録されている。中央処理装置１１０は、タイマから割り込みを要請するイベントを受ければ、タイマ割り込みサービスルーチン１４０が当該イベントを処理して完了すれば、中止されたタスクを再開する。
【００３４】
該入出力割り込みは、速度が遅い入出力装置が入出力準備が完了したことを知らせるため、あるいは入出力装置に障害が発生し、遂行不可能であるとき、中央処理装置１１０に割り込みを要請する。
【００３５】
エンコーディング部１２０は、ソース映像をエンコーディングしてデータを生成し、ペイロードキュー１３０は、エンコーディング部１２０のソース映像を臨時保存する。該ソース映像は、ＨＤＭＩまたはＳＤＩのような外部端子を介して受信された映像でもあり、記録媒体に保存された映像でもある。ペイロードキュー１３０は、フロント側でのデータ取り出しを提供し、リア側でのデータ挿入を提供する先入先出（ＦＩＦＯ：first in first out）構造を提供する。
【００３６】
パケット伝送間隔を考慮して設定されたタイマ割り込みイベントが発生すれば、現在実行中のタスクは、直ちに保存・中断され、タイマ割り込みサービスルーチン１４０が呼び出されて実行される。タイマは、パケット伝送間隔ごとに、中央処理装置１１０にタイマ割り込みイベント処理を要請する割り込みを発生させ、中央処理装置１１０は、現在実行中のタスクを中止し、タイマ割り込みサービスルーチン１４０を実行する。
【００３７】
タイマ割り込みサービスルーチン１４０は、フロントのデータを取り出し、ヘッダを生成する。
【００３８】
該ヘッダは、ＵＤＰ（user datagram protocol）ヘッダ、ＩＰヘッダ及びＭＡＣヘッダを含む。該ＵＤＰヘッダには、データ送受信先のポート番号の情報を含み、ＩＰヘッダには、送受信先のＩＰアドレス、及びＴＣＰ（transmission control protocol）またはＵＤＰのうちいずれの方式を利用するかということに係わる情報を含み、該ＭＡＣヘッダには、送受信先のＭＡＣアドレスの情報が含まれもする。ヘッダに含まれた情報は、ＵＤＰパケットがどの経路に伝送されなければならないかという目的地に係わる情報を含んでもよい。
【００３９】
通信部１５０は、ネットワークカードを具備し、フロントで取り出したデータとヘッダとを含むＵＤＰパケットを目的地に伝送する。該ネットワークカードは、ＭＡＣドライバでもある。
【００４０】
従来には、複数個のタスクを処理するとき、ＵＤＰパケットを伝送するタスクが追加されれば、プロセス使用権を受けた時間の間、パケットを急いで送らなければならないので、パケットの平均間隔より狭めて送ったパケットが、伝送最中に、インターネット混雑によって損失されてもしまう。しかし、本発明は、プロセス使用権を受けるための時間を待つ必要なしに、パケットの平均間隔に近い等間隔でＵＤＰパケットを目的地に伝送することができる。
【００４１】
パケット伝送装置１００は、目的地でのリアルタイムストリーミング再生を保証するために、６Ｍｂｐｓの伝送速度が要求されると仮定する。イーサネットパケットは、パケット当たり１，５００バイトの大きさであるので、６Ｍｂｐｓは、およそ秒当たり５００個のパケットを伝送してこそ出される速度である。１秒に５００個を均一に送ろうとすれば、パケット伝送間隔は、平均して２ｍｓである。すなわち、従来には、２ｍｓ中にパケット伝送がなされなければならないが、例えば、２０ｍｓ時間区画（time slice）でマルチタスキング時間表を管理するリナックスオペレーティングシステムの場合、プロセス使用権を受けるために、２０ｍｓを待たなければならないので、スリープ方式で等間隔ＵＤＰパケット伝送を具現すれば、必要な速度を出すことができない。しかし、本発明は、２ｍｓごとに、タイマ割り込みサービスルーチン１４０から直接パケットを送信することにより、ＵＤＰパケットを等間隔で送信する。
【００４２】
従来には、データのヘッダを追加するタスクをオペレーティングシステムのプロトコルスタック（protocol stack）に依頼する方式を提供する。しかし、オペレーティングシステムのプロトコルスタックでヘッダを生成することも、マルチタスキング時間表に従わなければならない１つのタスクであるために、割り込みサービスルーチン１４０でプロトコルスタックを利用するためのソケットライブラリ呼び出しは許容されない。それにより、本発明は、タイマ割り込みサービスルーチン１４０でヘッダを生成するタスクを直接処理する。
【００４３】
本発明は、パケット伝送間隔を考慮して設定された時間に、タイマ割り込みイベントを発生させ、タイマ割り込みサービスルーチン１４０を呼び出して利用することにより、中央処理装置１１０で少なくとも１つのタスクを処理している最中にも、等間隔でＵＤＰパケットを伝送することができ、受信側に達するパケット損失率を低下させることができる。
【００４４】
本発明は、エンコーディングされたデータを使用してヘッダを生成するタスクを、オペレーティングシステムのプロトコルスタックに依頼せず、タイマ割り込みサービスルーチン１４０でヘッダを直接生成する。ヘッダ生成をオペレーションシステムのプロトコルスタックに依頼する普通の方式は、その実行のために、マルチタスキング時間表により、使用権が戻ってくるまで待機しなければならない過程を経るので、本発明においては、緊急処理のための割り込みサービスルーチンの性格上、それを許容しないからである。
【００４５】
図２は、データが空いているペイロードキューを図示した例であり、ペイロードキュー１３０は、一方でデータが挿入され、他の一方でデータが取り出される先入先出構造を有する。データの挿入が起こるところをリア（rear）と言い、データの取り出しが起こるところをフロント（front）と言う。ペイロードキュー１３０は、［１：ｎ］の一次元配列を有し、データが挿入される位置を示すリアポインタ、及びデータが取り出される位置を示すフロントポインタを有する。
【００４６】
エンコーディング部１２０とタイマ割り込みサービスルーチン１４０は、ペイロードキュー１３０にデータが空いているか、あるいは一杯になっているかということを確認することができる。エンコーディング部１２０は、新たなデータ挿入可能であるか否かということを確認するために、リアポインタ値とフロントポインタと値を読み取り、割り込みサービスルーチン１４０は、取り出すデータがあるか否かということを確認するために、リアポインタ値とフロントポインタ値とを読み取る。エンコーディング部１２０とタイマ割り込みサービスルーチン１４０は、図２に図示されているように、リアポインタ値とフロントポインタ値とが０であると読み取れば、ペイロードキュー１３０にデータが空いているということを知ることができる。
【００４７】
競争状態（race condition）は、２以上の入力や操作が同時に起こり、意図していない結果をもたらす状態を言う。さらに詳細には、該競争状態は、共有資源に対して、さまざまなプロセスが同時にアクセスを試みるとき、アクセスタイミングや順序と係わる結果値に影響を与えることができる状態を言う。従来には、競争状態を解決するために、１つのプロセスが共有資源を占有する間、他のプロセスが共有資源をアクセスすることができないようにロッキングするロッキング機能を提供する。しかし、従来には、ＵＤＰパケットを伝送しようとするとき、他のプロセスが、共有資源にアクセスすれば、他のプロセスのタスクが完了するまで待たなければならないので、伝送遅延が発生し、競争状態防止のために、特定変数をロッキングする過程を割り込みサービスルーチン１４０に含めることができなかった。本発明は、エンコーディング部１２０とタイマ割り込みサービスルーチン１４０とが全て満ちているか、あるいは空いているか、ペイロードキュー１３０の状態を把握するために、フロントポインタとリアポインタとにアクセスし、その値を読み取るが、前者において、リアポインタ値のみを書き換え、後者において、フロントポインタ値のみを書き換えるという点に着眼して競争状態を防止するためのロッキングする過程を置かなかった。
【００４８】
図３は、Ｄ１が取り出したペイロードキューを図示した例であり、エンコーディング部１２０は、リア側にデータを挿入するとき、リアポインタ値を変更し、タイマ割り込みサービスルーチン１４０は、フロント位置のデータを取り出すとき、フロントポインタ値を変更する。
【００４９】
タイマ割り込みサービスルーチン１４０は、ペイロードキュー１３０のリアポインタ値とフロントポインタ値とを読み取り、取り出すデータがあるか否かということを確認し、フロントポインタ０に位置するＤ１という取り出すデータがあるか否かということが確認されれば、Ｄ１を取り出し、フロントポイント値を０から１に変更する。フロントポイント値を０から１に変更するという意味は、現在フロントポインタを左側に１枠移動させるという意味である。
【００５０】
図４は、Ｄ３が挿入されたペイロードキューを図示した例であり、エンコーディング部１２０は、ペイロードキュー１３０のリアポインタ値とフロントポインタ値とを読み取り、データが一杯になっているか否かということを確認し、リアポインタ２に位置する配列が空いていると確認されれば、リアポイント２に位置する配列にＤ３を挿入し、リアポイント値を２から３に変更する。リアポイント値を２から３に変更するという意味は、現在リアポインタを左側に１枠移動させるという意味である。
【００５１】
図５は、同時にＤ１が取り出されてＤ３が挿入されたペイロードキューを図示した例であり、エンコーディング部１２０とタイマ割り込みサービスルーチン１４０は、同時に共有資源を保存するペイロードキュー１３０のアクセスと、ポインタ値の変更とが可能である。
【００５２】
本発明は、エンコーディング部１２０とタイマ割り込みサービスルーチン１４０とが互いに影響を与えずに、同時にペイロードキュー１３０のアクセスと、ポインタ値の変更とが可能になることにより、競争状態を防止するためのロッキングが不要である。１変数を双方で同時に変更して生じうる問題を防止するために、いずれか一方が変数をロッキングする方法は、その変数を他方があらかじめロッキングしておいた場合、ロッキングが解除されるまで待たなければならない可能性があるので、本発明においては、緊急処理のための割り込みルーチンの性格上、これを許容しない。
【００５３】
本発明は、エンコーディング部１２０がリアポインタだけ新たに書き換え、タイマ割り込みサービスルーチン１４０が、フロントポインタだけ改めて書き換えるために、２つのタスクが１つのデータに同時にアクセスして変更する状態が発生しない。
【００５４】
図６は、Ｄ（ｎ＋１）が挿入されたペイロードキューを図示した例であり、エンコーディング部１２０は、ペイロードキュー１３０のリアポインタ値が（ｎ＋１）のように、最大値であるか否かということを確認し、フロントポインタ値が０を超えるか否かということを確認し、２つの条件が確認されれば、リアポインタ値（ｎ＋１）を０に変更する。本発明は、保存空間が制限されたペイロードキュー１３０のリアポインタ値とフロントポインタ値とを比較し、保存空間効率を向上させることができる。
【００５５】
中央処理装置１１０は、少なくとも１つのタスクを処理している最中、タイマ割り込みイベントが発生すれば、現在状態でタスクを中止して保存し、タイマ割り込みサービスルーチン１４０は、タイマ割り込みイベントを処理する。中央処理装置１１０は、タイマ割り込みイベントの処理が完了すれば、イベントが発生する以前の状態に復帰する。
【００５６】
タイマ割り込みサービスルーチン１４０が実行される間は、中央処理装置１１０で正常に動作する少なくとも１つのタスクを妨害する作用を行うために、割り込みサービスルーチンの実行時間を極小化させるために待機したり、待機する可能性があったりする作業を、割り込みサービスルーチン１４０に含めることは許容されない。さらに詳細には、ヘッダを生成するタスクを、オペレーティングシステムのプロトコルスタックに依頼するために、関連ライブラリを呼び出す作業は、普通のタスクと同様に、プロセス使用権を受けるために待機したり、待機する可能性があったりするために、割り込みサービスルーチン１４０では、許容されないので、タイマ割り込みサービスルーチン１４０は、ヘッダを生成するタスクを直接処理する。また、競争状態防止のために、フロントポインタをロッキングする作業も、他のタスクにおいて同じ変数をまずロッキングしておいた場合、そのロッキングした状態が解除されるまで待たなければならない可能性があるために、タイマ割り込みサービスルーチン１４０で許容されないので、タイマ割り込みサービスルーチン１４０は、フロントポインタをロッキングする過程なしに、書き改めることになる。
【００５７】
タイマ割り込みサービスルーチン１４０とエンコーディング部１２０は、フロントポイントにいずれもアクセスするが、エンコーディング部１２０は、フロントポイント値を読み取るのみで、書き込みを行わないので、競争状態が発生しない。そのために、タイマ割り込みサービスルーチン１４０において、フロントポインタ値をロッキング過程なしに、すぐ書き込んでも、意図しない誤謬が発生しない。
【００５８】
図７は、マルチタスキングスケジューラを利用した従来のＵＤＰパケット伝送を図示した例であり、ＵＤＰパケット１個は、１，５００バイトであり、１秒に６Ｍｂｉｔを送信地から目的地に送り、マルチタスキングスケジューラに割り当てられるタスク間隔が、２０ｍｓまたは４０ｍｓと仮定する。従来には、割り当てられた時間に伝送タスクを遂行し、６Ｍｂｐｓを維持したり、リアルタイム映像再生のために、パケット間の間隔が非常に狭まったりした。さらに詳細には、従来には、プロセス使用権を受けた時間の間にパケットを急いで伝送し、次の使用権付与を待つ間にパケット伝送が中断される事が反復されるので、パケット間の伝送間隔が平均間隔より詰まり、ルータの処理容量を超えてしまう。従来には、ルータの処理容量を超えれば、当該パケットは、ルータで廃棄され、受信地に達することができないという結果が発生する。
【００５９】
図８は、本発明のタイマ割り込みサービスルーチンを利用したＵＤＰパケット伝送を図示した例であり、本発明は、２ｍｓのパケット伝送間隔を考慮して設定された時間ごとにタイマ割り込みイベントを発生させ、タイマ割り込みイベントが発生したとき、タイマ割り込みサービスルーチンを呼び出し、ＵＤＰパケットを目的地に伝送する。タイマ割り込みサービスルーチン１４０は、２ｍｓごとに呼び出され、ヘッダを生成し、通信部１５０に伝達するまで、数マイクロ秒（μｓ）ほどかかり、例えば、１μｓがかかる。中央処理装置１１０は、タイマ割り込みサービスルーチン１４０が動作するたびに１μｓかかるために、タイマ割り込みサービスルーチン１４０のイベント処理が完了すれば、イベントが発生する以前の状態に復帰する。中央処理装置１１０は、タイマ割り込みサービスルーチン１４０の呼び出しがさらに発生するまで、マルチタスキングスケジューラの時間表通りタスクを処理することができる。
【００６０】
本発明は、タイマ割り込みサービスルーチン１４０を利用し、ＵＤＰパケットを等間隔で伝送することができ、ＵＤＰパケットを等間隔で伝送するとき、伝送に必要な時間を除いた伝送間隔間の残り時間（例えば、２ｍｓ内の時間）に、他タスクを遂行することができる。本発明は、ＵＤＰパケットを等間隔で均一に伝送し、パケットの損失危険性を低下させることができ、伝送に必要な時間を除いた伝送間隔間の残り時間に、他タスクを遂行し、システム効率を向上させることができる。
【００６１】
従来には、ｊ個の目的地にＵＤＰパケットを伝送するために、ユーザスペースからカーネルスペースに、ｊ回のコンテクストスイッチングと、ｊ回の複写とがなされる。しかし、従来には、目的地個数別にコンテクストスイッチングと複写とが発生し、システム過負荷または消費電力増加が発生してしまう。
【００６２】
図９は、本発明の複数個の目的地へのＵＤＰパケット伝送を図示した例であり、パケット伝送装置１００は、ｊ個の目的地に、同一ＵＤＰパケット伝送が必要なとき、ユーザスペースからカーネルスペースに、ＵＤＰパケットが１回のコンテクストスイッチングと、１回の複写とがなされるようにし、カーネルスペースで複写されたＵＤＰパケットをｊ回反復し、ｊ個の目的地に伝送し、パケット伝送間隔でそれぞれの目的地にＵＤＰパケットを伝送する。図９は、目的地が３個である例を図示したものであり、パケット伝送装置１００は、ＵＤＰパケットを３回反復し、３個の目的地に伝送することができる。
【００６３】
本発明は、カーネルスペース上で、目的地伝送関数を呼び出し、１回の複写がなされたＵＤＰパケットをｊ個の目的地に伝送することができる。本発明においては、タイマ割り込みサービスルーチン１４０を介して、目的地伝送関数として使用することができる。本発明は、１回のコンテクストスイッチングと、１回のＵＤＰパケットとの複写がなされることにより、パケット伝送装置１００の負荷と消費電力とを低減させることができる。
【００６４】
タイマ割り込みサービスルーチン１４０は、ｊ個の目的地に対応する目的地別伝送間隔ごとにタイマ割り込みイベントが発生すれば、ｊ個の目的地別タイマ割り込みイベントを処理することができる。例えば、図９に図示されているように、単一目的地にＵＤＰパケットを伝送するならば、タイマ割り込みサービスルーチン１４０は、２ｍｓの間隔で呼び出され、単一目的地に係わるパケットを送信することができる。また、図９に図示されているように、３個の目的地にＵＤＰパケットを伝送するならば、タイマ割り込みサービスルーチン１４０は、２／３ｍｓの間隔で呼び出され、３個目的地に係わるパケットを送信することができる。通信部１５０は、図９に図示されているように、２ｍｓのパケット伝送間隔でそれぞれの目的地にＵＤＰパケットを伝送し、２／３ｍｓの目的地別伝送間隔ごとに目的地別順次的ＵＤＰパケット伝送を提供することができる。
【００６５】
本発明は、ＵＤＰパケットをｊ個の目的地に等間隔で伝送するとき、伝送に必要な時間を除いた目的地別伝送間隔間の残り時間（例えば、２／３ｍｓ内の時間）に他タスクを遂行することができる。また、本発明は、目的地の個数を考慮し、タイマ割り込みサービスルーチン１４０が呼び出しされる間隔を調整することができ、複数の目的地に同一データを等間隔で伝送することができ、ユーザスペースとカーネルスペースとのコンテクストスイッチングと、データ複写とを最小化させることができる。
【符号の説明】
【００６６】
１００  パケット伝送装置
１１０  中央処理装置
１２０  エンコーディング部
１３０  ペイロードキュー
１４０  タイマ割り込みサービスルーチン
１５０  通信部
【図１】
2020198607.tif 000003
【図２】
2020198607.tif 000004
【図３】
2020198607.tif 000005
【図４】
2020198607.tif 000006
【図５】
2020198607.tif 000007
【図６】
2020198607.tif 000008
【図７】
2020198607.tif 000009
【図８】
2020198607.tif 000010
【図９】
2020198607.tif 000011