JP2020198607A - タイマ割り込みサービスルーチンを利用したパケット送信装置 - Google Patents

タイマ割り込みサービスルーチンを利用したパケット送信装置 Download PDF

Info

Publication number
JP2020198607A
JP2020198607A JP2019229264A JP2019229264A JP2020198607A JP 2020198607 A JP2020198607 A JP 2020198607A JP 2019229264 A JP2019229264 A JP 2019229264A JP 2019229264 A JP2019229264 A JP 2019229264A JP 2020198607 A JP2020198607 A JP 2020198607A
Authority
JP
Japan
Prior art keywords
timer interrupt
service routine
interrupt service
packet transmission
destination
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
Application number
JP2019229264A
Other languages
English (en)
Inventor
ジェ グオン ナン,
Jae Guon Nam
ジェ グオン ナン,
ホ ジン チェ,
Ho Jin Choi
ホ ジン チェ,
チャン ヒュク リュウ,
Chan Hyuk Ryu
チャン ヒュク リュウ,
スン ミン リー,
Sun Min Lee
スン ミン リー,
ホン カン グエン,
Quang Nguyen Hong
ホン カン グエン,
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.)
OPEN STACK Inc
Original Assignee
OPEN STACK 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 OPEN STACK Inc filed Critical OPEN STACK Inc
Publication of JP2020198607A publication Critical patent/JP2020198607A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1816Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1838Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】タイマ割り込みサービスルーチンを利用したパケット伝送装置を提供する。【解決手段】中央処理装置で少なくとも1つのタスクを処理している最中にUDPパケットを伝送するタスクが発生すれば、パケット伝送間隔を考慮した設定された時間ごとにタイマ割り込みイベントを発生させ、タイマ割り込みサービスルーチンを呼び出し、タイマ割り込みサービスルーチンを利用し、UDPパケットを目的地に等間隔で伝送するタイマ割り込みサービスルーチンを利用したパケット伝送装置である。【選択図】図1

Description

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

Claims (4)

  1. パケット伝送間隔を考慮して設定されたタイマ割り込みイベントが発生すれば、現在実行中の少なくとも1つのタスクを中止し、タイマ割り込みサービスルーチン(TISR)を呼び出し、タイマ割り込みイベント処理が完了すれば、中止されたタスクを再開する中央処理装置と、
    フロント側でのデータ引き出しを提供し、リア側でのデータ挿入を提供する先入先出構造を提供するペイロードキューと、
    前記中央処理装置からタイマ割り込みイベントを処理せよという呼び出しを受ければ、フロントのデータを取り出してヘッダを生成するタイマ割り込みサービスルーチンと、
    前記フロントで取り出したデータと、ヘッダとを含むUDPパケットを目的地に伝送する通信部と、
    を含み、
    前記タイマ割り込みサービスルーチンは、タイマ割り込みイベントが発生する時期ごとに実行され、少なくとも1つのタスクを処理している最中にも、等間隔でUDPパケット伝送が可能なようにし、
    前記中央処理装置は、伝送に必要な時間を除いたパケット伝送間隔間の残り時間に、少なくとも1つのタスクを処理する
    ことを特徴とするタイマ割り込みサービスルーチンを利用したパケット伝送装置。
  2. リア側にデータを挿入するとき、リアポインタ値のみを変更するエンコーディング部をさらに含み、
    前記タイマ割り込みサービスルーチンは、フロント位置のデータを取り出すとき、フロントポインタ値のみを変更し、
    前述のエンコーディング部とタイマ割り込みサービスルーチンは、同時にペイロードキューのアクセスと、ポインタ値の変更とが可能である
    ことを特徴とする請求項1に記載のタイマ割り込みサービスルーチンを利用したパケット伝送装置。
  3. 前記タイマ割り込みサービスルーチンは、j個の目的地に対応する目的地別伝送間隔ごとにタイマ割り込みイベントが発生すれば、j個の目的地別タイマ割り込みイベントを処理し、
    前記通信部は、パケット伝送間隔でそれぞれの目的地にUDPパケットを伝送し、目的地別伝送間隔ごとに目的地別順次的UDPパケット伝送を提供する
    ことを特徴とする請求項1に記載のタイマ割り込みサービスルーチンを利用したパケット伝送装置。
  4. j個の目的地に、同一UDPパケット伝送が必要なとき、ユーザスペースからカーネルスペースに、UDPパケットが1回のコンテクストスイッチングと、1回の複写とがなされるようにし、カーネルスペースで複写されたUDPパケットをj回反復し、j個の目的地に伝送する
    ことを特徴とする請求項1に記載のタイマ割り込みサービスルーチンを利用したパケット伝送装置。
JP2019229264A 2019-06-03 2019-12-19 タイマ割り込みサービスルーチンを利用したパケット送信装置 Pending JP2020198607A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0065619 2019-06-03
KR1020190065619A KR102035740B1 (ko) 2019-06-03 2019-06-03 타이머 인터럽트 서비스 루틴을 이용한 패킷 송신 장치

Publications (1)

Publication Number Publication Date
JP2020198607A true JP2020198607A (ja) 2020-12-10

Family

ID=68460719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019229264A Pending JP2020198607A (ja) 2019-06-03 2019-12-19 タイマ割り込みサービスルーチンを利用したパケット送信装置

Country Status (4)

Country Link
US (1) US20200379798A1 (ja)
JP (1) JP2020198607A (ja)
KR (1) KR102035740B1 (ja)
CN (1) CN112039830A (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185942A (ja) * 2000-12-14 2002-06-28 Matsushita Electric Ind Co Ltd 映像送出サーバ
JP2005286856A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd Ip電話機及びip電話通話方法
JP2005341291A (ja) * 2004-05-27 2005-12-08 Canon Inc データ配信装置及びその制御方法及びプログラム及び記憶媒体
JP2006050360A (ja) * 2004-08-06 2006-02-16 Yokogawa Electric Corp 通信装置
JP2008059577A (ja) * 2006-08-03 2008-03-13 Matsushita Electric Ind Co Ltd ネットワークチップ及びネットワーク送受信装置
WO2008056622A1 (en) * 2006-11-06 2008-05-15 Panasonic Corporation Receiver
WO2009096029A1 (ja) * 2008-01-31 2009-08-06 Fujitsu Limited パケット処理装置およびパケット処理プログラム
WO2009141992A1 (ja) * 2008-05-19 2009-11-26 パナソニック株式会社 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
WO2012029575A1 (ja) * 2010-08-30 2012-03-08 ソニー株式会社 パケット送信制御装置、パケット送信制御方法、及びプログラム
WO2017081943A1 (ja) * 2015-11-10 2017-05-18 ソニー株式会社 電子装置、制御回路、および、電子装置の制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
WO2005015857A1 (en) * 2003-08-08 2005-02-17 Samsung Electronics Co., Ltd. Method and apparatus for configuring protocols for a multimedia broadcast/multicast service
KR100751859B1 (ko) 2006-06-08 2007-08-23 삼성전자주식회사 디지털 방송 휴대 단말기에서 멀티태스킹 장치 및 방법
CN100589626C (zh) * 2007-08-29 2010-02-10 中兴通讯股份有限公司 传输链路异常中断时传送监听报告的方法和系统
CN102957600B (zh) * 2011-08-19 2017-11-10 中兴通讯股份有限公司 一种数据报文转发方法及装置
IL217305A0 (en) * 2012-01-01 2012-02-29 Video Flow Ltd Transport over udp system and method
CN103501548B (zh) * 2013-09-06 2016-05-11 大连理工大学 面向多优先级数据硬件缓冲的无线通信网卡

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002185942A (ja) * 2000-12-14 2002-06-28 Matsushita Electric Ind Co Ltd 映像送出サーバ
JP2005286856A (ja) * 2004-03-30 2005-10-13 Matsushita Electric Ind Co Ltd Ip電話機及びip電話通話方法
JP2005341291A (ja) * 2004-05-27 2005-12-08 Canon Inc データ配信装置及びその制御方法及びプログラム及び記憶媒体
JP2006050360A (ja) * 2004-08-06 2006-02-16 Yokogawa Electric Corp 通信装置
JP2008059577A (ja) * 2006-08-03 2008-03-13 Matsushita Electric Ind Co Ltd ネットワークチップ及びネットワーク送受信装置
WO2008056622A1 (en) * 2006-11-06 2008-05-15 Panasonic Corporation Receiver
WO2009096029A1 (ja) * 2008-01-31 2009-08-06 Fujitsu Limited パケット処理装置およびパケット処理プログラム
WO2009141992A1 (ja) * 2008-05-19 2009-11-26 パナソニック株式会社 通信処理装置、通信処理方法、通信処理装置の制御方法および通信機器
WO2012029575A1 (ja) * 2010-08-30 2012-03-08 ソニー株式会社 パケット送信制御装置、パケット送信制御方法、及びプログラム
WO2017081943A1 (ja) * 2015-11-10 2017-05-18 ソニー株式会社 電子装置、制御回路、および、電子装置の制御方法

Also Published As

Publication number Publication date
KR102035740B1 (ko) 2019-10-23
CN112039830A (zh) 2020-12-04
US20200379798A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
US7549151B2 (en) Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment
US8218770B2 (en) Method and apparatus for secure key management and protection
US20040230979A1 (en) Command scheduling in computer networks
US7158964B2 (en) Queue management
US20160246657A1 (en) Reception according to a data transfer protocol of data directed to any of a plurality of destination entities
EP2618257B1 (en) Scalable sockets
EP0768609B1 (en) Multimedia data transferring method
US7698541B1 (en) System and method for isochronous task switching via hardware scheduling
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
EP1557755A1 (en) Method for transferring data in a multiprocessor system, multiprocessor system and processor carrying out this method.
US7424712B1 (en) System and method for controlling co-scheduling of processes of parallel program
CN113722103A (zh) 加密卡的调用控制方法及通信设备
US7739426B1 (en) Descriptor transfer logic
JP2020198607A (ja) タイマ割り込みサービスルーチンを利用したパケット送信装置
US9665519B2 (en) Using a credits available value in determining whether to issue a PPI allocation request to a packet engine
JP5553685B2 (ja) 情報処理装置および情報処理方法
US9069625B2 (en) Method of parallel processing of ordered data streams
US6816923B1 (en) Arbitrating and servicing polychronous data requests in direct memory access
CN114900486B (zh) 基于fpga的多算法核调用方法及系统
US9548947B2 (en) PPI de-allocate CPP bus command
JPH1196108A (ja) 計算機システム及びバス制御装置
TWI664842B (zh) 網路封包智能處理系統及其方法
US9413665B2 (en) CPP bus transaction value having a PAM/LAM selection code field
US9699107B2 (en) Packet engine that uses PPI addressing
KR101483603B1 (ko) 통신 시스템에서 효율이 개선된 자원 제어 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210917