JP2019096930A - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2019096930A
JP2019096930A JP2017221998A JP2017221998A JP2019096930A JP 2019096930 A JP2019096930 A JP 2019096930A JP 2017221998 A JP2017221998 A JP 2017221998A JP 2017221998 A JP2017221998 A JP 2017221998A JP 2019096930 A JP2019096930 A JP 2019096930A
Authority
JP
Japan
Prior art keywords
transmission
time
unit
scheduling
scheduled
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.)
Granted
Application number
JP2017221998A
Other languages
English (en)
Other versions
JP6768625B2 (ja
Inventor
ヤースィン オゲ
Oge Yasin
ヤースィン オゲ
優太 小林
Yuta Kobayashi
優太 小林
隆博 山浦
Takahiro Yamaura
隆博 山浦
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2017221998A priority Critical patent/JP6768625B2/ja
Priority to EP18159578.6A priority patent/EP3487133B1/en
Priority to US15/911,385 priority patent/US10659557B2/en
Publication of JP2019096930A publication Critical patent/JP2019096930A/ja
Application granted granted Critical
Publication of JP6768625B2 publication Critical patent/JP6768625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • H04L49/206Real Time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • 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/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9023Buffering arrangements for implementing a jitter-buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】高精度な送信タイミング制御のためのスケジューリングが可能となる。【解決手段】情報処理装置10は、先読部20と、スケジューリング部26と、を備える。先読部20は、1または複数の送信キューの各々の送信可否状態(ゲートステート)と送信可否状態の維持タイミングとを規定した1または複数のエントリ34Dを含む送信スケジューリング情報34Aにおける、現在時刻より未来の維持タイミングに対応するエントリ34Dを、先読みする。スケジューリング部26は、先読みしたエントリ34Dに基づいて、送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングする。【選択図】図1

Description

本発明の実施の形態は、情報処理装置、情報処理方法、およびプログラムに関する。
工場内の各産業用機器間を接続する産業用ネットワーク、及び、車内の制御コントローラを接続する車載ネットワーク等の分野では、高いリアルタイム性が求められる。近年、産業用ネットワーク及び車載ネットワーク等では、イーサネット(登録商標)の利用が進んでおり、様々なリアルタイムイーサネット規格が提案されている。例えば、優先度や保証帯域、フレームの送信周期または送信間隔などに基づいて、送信制御を行う技術が開示されている。
しかしながら、従来技術では、送信キューに予め割り当てられた送信スケジューリング情報に基づいて動的に変化する送信可能時間の範囲内で、フレーム単位の厳密な送信タイミング制御を行うためのスケジューリングは困難であった。すなわち、従来では、高精度な送信タイミング制御を行うためのスケジューリングを行うことは困難であった。
特開2002−124985号公報 特開2005−260780号公報 特開2011−24027号公報
本発明が解決しようとする課題は、高精度な送信タイミング制御のためのスケジューリング可能な、情報処理装置、情報処理方法、およびプログラムを提供することである。
実施の形態の情報処理装置は、先読部と、スケジューリング部と、を備える。先読部は、1または複数の送信キューの各々の送信可否状態と前記送信可否状態の維持タイミングとを規定した1または複数のエントリを含む送信スケジューリング情報における、現在時刻より未来の前記維持タイミングに対応する前記エントリを先読みする。スケジューリング部は、先読みした前記エントリに基づいて、前記送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングする。
情報処理システムの機能構成を示す図。 送信スケジューリング情報のデータ構成を示す模式図。 将来時刻情報および送信可能時間情報を示す模式図。 情報処理の手順を示すフローチャート。 先読処理・スケジューリング処理の詳細フローチャート。 初期化処理の詳細フローチャート。 初期化処理の流れを示す模式図。 先読処理の詳細フローチャート。 先読処理の流れを示す模式図。 判定処理の詳細フローチャート。 判定処理の流れを示す模式図。 スケジューリング処理の詳細フローチャート。 スケジューリング処理の流れを示す模式図。 第1後処理の詳細フローチャート。 第1後処理の流れを示す模式図。 第2後処理の詳細フローチャート。 第2後処理の流れを示す模式図。 送信処理の詳細フローチャート。 送信処理の流れを示す模式図。 ゲートステートの典型的な周期性の例を示す図。 ゲートステートの典型的な周期性の例を示す図。 初期化直後を示す図。 初期化直後を示す図。 初期化から0.001秒後を示す図。 初期化から0.001秒後を示す図。 初期化から0.002秒後を示す図。 初期化から0.002秒後を示す図。 初期化から0.003秒後を示す図。 初期化から0.003秒後を示す図。 初期化から0.004秒後を示す図。 初期化から0.004秒後を示す図。 初期化から0.005秒後を示す図。 初期化から0.005秒後を示す図。 初期化から0.006秒後を示す図。 初期化から0.006秒後を示す図。 初期化から0.007秒後を示す図。 初期化から0.007秒後を示す図。 初期化から0.008秒後を示す図。 初期化から0.008秒後を示す図。 初期化から0.009秒後を示す図。 初期化から0.009秒後を示す図。 初期化から0.010秒後を示す図。 初期化から0.010秒後を示す図。 初期化から0.011秒後を示す図。 初期化から0.011秒後を示す図。 初期化から0.012秒後を示す図。 初期化から0.012秒後を示す図。 初期化から0.013秒後を示す図。 初期化から0.013秒後を示す図。 初期化から0.014秒後を示す図。 初期化から0.014秒後を示す図。 初期化から0.015秒後を示す図。 初期化から0.015秒後を示す図。 初期化から0.016秒後を示す図。 初期化から0.016秒後を示す図。 初期化から0.017秒後を示す図。 初期化から0.017秒後を示す図。 初期化から0.999985秒後を示す図。 初期化から0.999985秒後を示す図。 初期化から0.999986秒後を示す図。 初期化から0.999986秒後を示す図。 初期化から0.999987秒後を示す図。 初期化から0.999987秒後を示す図。 初期化から0.9999875秒後を示す図。 初期化から0.9999875秒後を示す図。 初期化から0.999988秒後を示す図。 初期化から0.999988秒後を示す図。 初期化から0.9999885秒後を示す図。 初期化から0.9999885秒後を示す図。 初期化から0.999989秒後を示す図。 初期化から0.999989秒後を示す図。 初期化から0.9999895秒後を示す図。 初期化から0.9999895秒後を示す図。 ハードウェア構成図。
以下に添付図面を参照して、情報処理装置、情報処理方法、およびプログラムを詳細に説明する。本実施の形態の情報処理装置は、特に、高いリアルタイム性の求められる分野に好適に適用される。
はじめに、高いリアルタイム性が求められる分野で利用されている規格の例について、説明する。高いリアルタイム性とは、例えば低遅延性や高い時刻同期精度を示す。高いリアルタイム性が求められる分野とは、例えば、産業用ネットワークや、車載ネットワークなどである。
例えば、イーサネット(登録商標)上でリアルタイム性を実現する規格として、TSN(Time−Sensitive Networking)の規格化が、IEEE 802.1 TSN Taskで進んでいる。TSNは複数の規格から構成される。TSNは、プロオーディオ等で用いられている低遅延性を実現するAVB(Audio/Video Bridging)を拡張した規格である。TSNは、産業用ネットワーク及び車載ネットワーク等にも適用できるようにするため、AVBよりも高いリアルタイム性に加えて、高信頼性の実現を目指す規格である。
TSN規格の1つであるIEEE 802.1Qbvは、エンドノードまたは中継ノード(スイッチ)の送信キューを、予め決められたスケジュールに基づいて制御するための通信規格である。具体的には、IEEE 802.1Qbvは、トラフィッククラスごとに割当てられた複数の送信キューの各々を、個別に有効(オープン)または無効(クローズ)の状態に適切に切り替えることで、各送信キューからのフレーム送信のタイミングを制御する。
IEEE 802.1Qbv規格には、ゲートコントロールリストと称される送信スケジューリング情報を用いて、複数の送信キューの各々の状態を制御することが定められている。ゲートコントロールリストは、ゲートステートとタイムインターバルとを含むゲートコントロールエントリから構成される。ゲートステートは、送信キューの送信可否状態を示す。送信可否状態は、送信可を示す有効(オープン)、または、送信不可を示す無効(クローズ)で表される。タイムインターバルは、対応するゲートステートを維持する時間を示す。ゲートコントロールリストは、上位レイヤのアプリケーションやネットワーク全体の通信要件などに応じて、予め設定される。
ゲートコントロールリストに設定されたタイミングで、複数の送信キューおよび送信キューの各々に対応するゲートの開閉処理が制御される。これにより、ゲートコントロールリストによってスケジューリングされたタイミングで、各送信キューからの送信タイミングが制御される。例えば、ネットワーク上の各ノードでは、時間の経過とともに変化する各送信キューの送信可否状態を、予め定められたスケジュールに基づいて制御することが可能となる。このため、各送信キューからのフレーム送信を許可するタイミングを厳密に制御することで、高いリアルタイム性が求められるデータ送信における、ネットワーク遅延やジッタを小さくすることが可能になる。
ここで、IEEE 802.1Qbv規格で定められている送信制御方法を有効に機能させるためには、数ナノ秒〜数マイクロ秒オーダーの精度のタイムインターバルを、正確に制御することが求められる。しかし、従来技術では、このような要求精度を実現することは困難であり、高精度な送信タイミング制御のためのスケジューリングを行うことは困難であった。
そこで、本実施の形態の情報処理装置では、以下の構成とすることで、高精度な送信タイミング制御のためのスケジューリングを実現する。
なお、本実施の形態の情報処理装置は、送信スケジューリング情報に基づいて、送信キューから送信されるフレームの送信タイミング制御を行う。本実施の形態では、送信制御に用いる規格として、IEEE 802.1Qbvを用いる場合を、一例として説明する。しかし、本実施の形態の情報処理装置が送信制御に用いる規格は、IEEE 802.1Qbvに限定されない。
[機能構成の例]
次に、本実施の形態の情報処理装置10について具体的に説明する。
図1は、本実施の形態の情報処理システム1の機能構成の例を示す図である。情報処理システム1は、情報処理装置10と、通信装置2と、を備える。情報処理装置10は、ネットワーク等を介して、通信装置2へフレームを出力する。
本実施の形態では、情報処理装置10は、ホスト12と、送信装置14と、を備える。ホスト12と送信装置14とは、例えば、PCI Expressおよびバスなどを介して接続されている。
通信装置2は、送信装置14に接続された機器である。通信装置2は、例えば、通信機器である。送信装置14と通信装置2との接続方式は、無線方式であってもよいし、有線方式であってもよい。また、送信装置14に接続された通信装置2の数は、1つに限定されず、2つ以上であってもよい。
なお、情報処理装置10を、ホスト12のみから構成してもよい。すなわち、情報処理装置10は、送信装置14を含まない構成であってもよい。また、情報処理装置10を、送信装置14のみから構成してもよい。この場合、送信装置14に、ホスト12の後述する機能部を搭載した構成とすればよい。本実施の形態では、情報処理装置10が、ホスト12と送信装置14とを含む場合を、一例として説明する。
ホスト12は、処理部31と、記憶部30と、を備える。処理部31と記憶部30とは、データや信号を授受可能に接続されている。
処理部31は、ホスト12全体を制御する。具体的には、処理部31は、フレームの送信開始予定時刻をスケジューリングする(詳細後述)。
処理部31の具体的な形態は任意でよい。処理部31は、例えばソフトウェア、パーソナルコンピュータ、サーバ装置、専用LSI(Large−Scale Integration)、及び、FPGA(Field Programmable Gate Array)等である。処理部31をソフトウェアにより実現する場合、例えばCPU(Central Processing Unit)、および、MPU(Micro−processing Unit)等に当該ソフトウェアを実行させることにより、処理部31を実現する。
また、処理部31による制御の対象となる具体的なアプリケーションは、任意でよい。具体的なアプリケーションは、例えば、車載システムおよびファクトリーオートメーションシステム等である。車載システムでは、例えば自動運転の各種制御等に係わるリアルタイム性が求められる通信を制御する。また、ファクトリーオートメーションシステムでは、例えばPLC(Programmable Logic Controller)、およびI/O機器等の各制御機器の制御信号等のリアルタイム性が求められる通信を制御する。
記憶部30は、各種のデータを記憶する。記憶部30の具体的な形態は任意でよい。記憶部30は、例えばSRAM(Static Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)、SSD(Solid State Drive)、HDD(Hard Disk Drive)、及び、SDカード等の記憶装置である。
本実施の形態では、記憶部30は、送信フレーム記憶部32と、送信スケジューリング情報記憶部34と、送信可能時間記憶部36と、将来時刻記憶部38と、を含む。
なお、送信フレーム記憶部32、送信スケジューリング情報記憶部34、送信可能時間記憶部36、および将来時刻記憶部38は、物理的に異なる複数の記憶装置から構成されてもよい。また、送信フレーム記憶部32、送信スケジューリング情報記憶部34、送信可能時間記憶部36、および将来時刻記憶部38は、同一の記憶装置の領域を論理的に分離することにより実現されてもよい。
また、記憶部30の少なくとも一部と、処理部31と、を、物理的に分離した別体として構成してもよい。例えば、記憶部30を、ネットワークに接続されたサーバ装置に記憶してもよい。また、例えば、記憶部30に記憶されている少なくとも一部の情報を、サーバ装置に記憶してもよい。
送信フレーム記憶部32は、1または複数の送信キューを含む。本実施の形態では、送信フレーム記憶部32が、N個(Nは2以上の整数)の送信キュー(送信キュー0〜送信キューN−1)を含む場合を一例として説明する。送信キューの各々は、フレームを記憶する。フレームは、例えば、リアルタイム性を要求されるトラフィックのデータなどである。フレームは、後述する処理によって、通信装置2に送信される。
送信フレーム記憶部32には、フレームが、フレームの属するトラフィッククラスに基づいて、送信キュー0〜送信キューN−1の何れかに記憶される。例えば、上位レイヤのアプリケーションが、任意のタイミングで各送信キューに新しいフレームを書込む。
送信スケジューリング情報記憶部34は、送信スケジューリング情報34Aを記憶する。送信スケジューリング情報34Aは、送信キューからのフレーム送信を許可するタイミングを、厳密に制御するために必要となる情報を含む。
なお、送信スケジューリング情報34Aは、あくまでも、送信キューからのフレーム送信を許可するタイミングを示すものであり、実際にフレームの送信が発生するか否かは、送信キューにフレームが書込まれているか否かによって定まる。すなわち、実際にフレームの送信が発生するか否かは、上位に位置するアプリケーションの動作等によって決定される。
具体的には、送信スケジューリング情報34Aは、1または複数のエントリを含む。本実施の形態では、送信スケジューリング情報34Aが、複数のエントリを含む場合を、一例として説明する。
エントリは、1または複数の送信キューの各々の送信可否状態と、送信可否状態の維持タイミングと、を規定したものである。例えば、エントリは、IEEE 802.1Qbv規格に規定されたゲートコントロールエントリに相当する。
送信可否状態は、送信可を示す有効(オープン)、または、送信不可を示す無効(クローズ)で表される。例えば、送信可否状態は、IEEE 802.1Qbv規格に規定されたゲートステートに相当する。
送信可否状態の維持タイミングは、対応する送信可否状態を維持するタイミングを示す。具体的には、維持タイミングは、対応する送信可否状態を維持する期間の開始時刻および終了時刻、または、対応する送信可否状態を維持する期間および該期間の開始時刻によって規定される、対応する送信可否状態を維持する期間は、IEEE 802.1Qbv規格に規定されたタイムインターバルに相当する。また、該期間の開始時刻は、IEEE 802.1Qbv規格に規定された、ゲートコントロール開始時刻に相当する。
本実施の形態では、送信スケジューリング情報34Aは、IEEE 802.1Qbv規格に規定された情報を含む場合を一例として説明する。すなわち、本実施の形態では、送信スケジューリング情報34Aが、ゲートコントロールリストと、ゲートコントロール開始時刻などの他のパラメータと、を含む形態を、一例として説明する。また、以下では、送信可否状態をゲートステートと称し、送信可否状態を維持する期間をタイムインターバルと称して説明する場合がある。
図2は、送信スケジューリング情報34Aのデータ構成の一例を示す模式図である。
本実施の形態では、送信スケジューリング情報34Aは、ゲートコントロールリスト34Bと、その他のパラメータ34Cと、を含む。
ゲートコントロールリスト34Bは、複数のエントリ34Dを含む。エントリ34Dは、リストインデックスと、ゲートステートと、タイムインターバルと、を含む。リストインデックスは、エントリ34Dのインデックスを示す情報である。図2のゲートコントロールリスト34Bには、8つのエントリ34D(エントリ34D0〜エントリ34D7)が登録されている場合を、一例として示した。
エントリ34Dは、リストインデックスと、ゲートステートと、タイムインターバルと、を含む。送信可否状態を示すゲートステートは、上述したように、トラフィッククラスごとに割当てられた複数の送信キューの各々に対する、送信可否状態を示す。図2中、ゲートステートに示される“o”は、送信可を示す有効(オープン)を示し、“C”は、送信不可を示す無効(クローズ)を示す。
具体的には、例えば、図2に示すリストインデックス“7”のエントリ34D7のゲートステート“CCCCCCCo”は、送信フレーム記憶部32における複数の送信キューの各々の送信可否状態(オープンまたはクローズ)を示している。上述したように、本実施の形態では、送信フレーム記憶部32は、8個の送信キュー(送信キュー0〜送信キュー7)を含む場合を説明する。このため、リストインデックス“7”のエントリ34D7のゲートステート“CCCCCCCo”は、送信キュー1〜送信キュー7が無効(クローズ)であり、送信キュー0が有効(オープン)であることを示す。そして、対応するインターバル“2500ナノ秒”は、送信キュー0を有効とする期間が2500ナノ秒であることを示す。
その他のパラメータ34Cは、例えば、ゲートコントロール開始時刻、ゲートコントロール周期時間、ゲートコントロールリスト34Bのエントリ数などを含む。ゲートコントロール周期時間は、ゲートコントロールリスト34Bに示される1周期分の時間を示す。例えば、ゲートコントロール周期時間として、ゲートコントロールリスト34Bに示されるタイムインターバルの合計値を設定してもよい。
図1に戻り説明を続ける。将来時刻記憶部38は、将来時刻情報38Aを記憶する。送信可能時間記憶部36は、送信可能時間情報36Aを記憶する。
図3は、将来時刻情報38Aおよび送信可能時間情報36Aの一例を示す模式図である。
将来時刻情報38Aは、将来時刻を示す情報である。
将来時刻は、次の送信開始予定時刻の候補となる時刻であって、現在時刻より将来の(未来の)時刻である。送信開始予定時刻とは、フレームの送信を開始する予定時刻であって、処理部31による後述する処理によってスケジューリングされる(詳細後述)。次の送信開始予定時刻とは、後述するスケジューリング部26が次にスケジューリングするフレームの、送信開始予定時刻の候補となる時刻である。
なお、現在時刻には、情報処理装置10のローカルクロックを用いればよい。また、現在時刻には、情報処理装置10と他の装置との装置間、または、ネットワーク内で同期している時刻を用いてもよい。
将来時刻は、次のフレームの送信開始予定時刻をスケジューリングする際に用いられる(詳細後述)。
なお、将来時刻情報38Aは、1つの将来時刻を示す。すなわち、本実施の形態における“将来時刻”は、将来時刻記憶部38に記憶されている1つの将来時刻を示す。この将来時刻は、後述する処理部31の処理によって、更新される(詳細後述)。
送信可能時間情報36Aは、送信キューごとの送信可能時間を示す情報である。詳細には、送信可能時間は、対応する送信キューからフレームを送信することの可能な残り時間を示す。送信可能時間は、送信キューごとに割当てられ、現在時刻や将来時刻の変化に連動する形で値が変化する。具体的には、各送信キューの送信可能時間は、後述する処理部31の処理によって更新される(詳細後述)。
図1に戻り説明を続ける。次に、処理部31について説明する。処理部31は、先読部20と、判定部22と、指示部24と、スケジューリング部26と、を備える。
先読部20は、送信スケジューリング情報34Aにおける、現在時刻より未来の維持タイミングに対応する、エントリ34Dを先読みする。言い換えると、先読部20は、現在時刻より未来のタイミングにおいて送信制御の対象となるエントリ34Dを、先読みする。なお、先読みする、とは、現在より未来の時刻において送信制御の対象となるエントリ34Dを、該未来の時刻より前に、事前に読み込むことを意味する。
本実施の形態では、先読部20は、指示部24から先読指示を受付けたときに、送信スケジューリング情報記憶部34から次のエントリ34Dを先読みする。
先読部20は、先読みした次のエントリ34Dに基づいて、後述するスケジューリング部26が次にスケジューリングするフレームの送信開始予定時刻の候補となる将来時刻、および該将来時刻において送信キューに割当てられる送信可能時間、を更新する。
例えば、先読部20は、先読みしたエントリ34Dに含まれるゲートステートが有効(オープン)状態の送信キューに対して、先読みしたエントリ34Dに含まれるタイムインターバルの値を送信可能時間として割り当てる。
なお、ゲートコントロールリスト34Bに、同じ送信キューに対して送信可を示す有効(オープン)が複数のエントリ34Dに連続して設定されている場合がある。この場合、先読部20は、これらの複数のエントリ34Dを先読みすることとなる。このため、この場合、先読部20は、先読みした複数のエントリ34Dの各々に含まれるタイムインターバルの合計値を当該送信キューの送信可能時間として割り当てればよい。
指示部24は、先読指示を、先読部20へ通知する。
例えば、指示部24は、将来時刻に送信キューに割当てられている送信可能時間に基づいて、先読指示を先読部20へ通知する。
詳細には、例えば、指示部24は、送信可能時間記憶部36に記憶されている将来時刻において、送信可能時間記憶部36に記憶されている送信キューの各々に割当てられている送信可能時間の全てがゼロ“0”である場合、先読指示を先読部20へ通知する。
また、指示部24は、後述する判定部22によって各送信キューのスケジューリングが不可能と判定された場合に、先読指示を先読部20へ通知してもよい。
なお、指示部24は、各送信キューの送信可能時間、および将来時刻と現在時刻との時間差に基づいて、先読指示を先読部20へ通知してもよい。
詳細には、指示部24は、将来時刻と現在時刻との時間差の閾値を予め定める。そして、指示部24は、将来時刻と現在時刻との時間差が、該閾値以下である場合、先読指示を先読部20へ通知する。
また、指示部24は、将来時刻と現在時刻との時間差に基づいて、各送信キューの送信可能時間を更新し、更新後の送信可能時間に応じて、先読指示を先読部20へ通知してもよい。
この場合、指示部24は、将来時刻と現在時刻との時間差に基づいて、該将来時刻において送信キューに割当てられる送信可能時間を更新する。例えばスケジューリング可能なフレームが存在する場合、この更新処理は、後述するスケジューリング部26によってスケジューリング処理が実行された後の、後処理として実行される。以下では、指示部24による、この更新処理を、第2後処理と称して説明する場合がある。
例えば、指示部24は、将来時刻記憶部38に記憶されている将来時刻と、現在時刻との時間差が閾値以下であり、且つ、時間差が前回のイテレーションで計算した値より小さい場合、送信可能時間情報36Aにおける送信キューの各々に対応する送信可能時間を、減少させる。例えば、指示部24は、送信可能時間情報36Aにおける送信可能時間から、予め定めた値を減算することで、送信可能時間を減少させる。減算に用いる値は、現在時刻が将来時刻に追いつく前に、各送信キューの送信可能時間をゼロにする条件を満たす値であればよい。具体的には、第2後処理時における、該減算に用いる値として、予め定めた固定値を用いてもよい。また、予め複数の固定値を設定した上で、前記時間差の値に応じて、該減算に用いる値を動的に選んでもよい。さらには、該減算に用いる値自体を動的に算出してもよい。一例として、前記閾値と前記時間差の差分に応じて、送信可能時間を減少させてもよい。
そして、指示部24は、第2後処理によって減算された後の、送信可能時間情報36Aに示される各送信キューの送信可能時間の全てがゼロ“0”となった場合に、先読指示を先読部20へ通知してもよい。
次に、判定部22について説明する。
判定部22は、送信キューに保持されている送信待機中のフレームの内、送信開始予定時刻をスケジューリング可能なフレームを判定する。
例えば、判定部22は、送信キューに保持されている送信待機中のフレームの内、送信所要時間が、次の送信開始予定時刻の候補となる将来時刻において該送信キューに割当てられている送信可能時間より小さいフレームを、送信開始予定時刻をスケジューリング可能なフレームとして判定する。
送信所要時間とは、送信部28から通信装置2へのフレームの送信に要する時間である。判定部22は、送信所要時間の算出に用いるパラメータを送信フレーム記憶部32から読取り、送信フレーム記憶部32に記憶されているフレーム毎に、送信所要時間を算出すればよい。送信所要時間の算出に用いるパラメータは、例えば、フレームサイズ、再送信の有無、送信リトライ回数・間隔、などである。
なお、判定部22は、送信待機中に代えて、送信キューに保持されている“送信可能な状態”にあるフレームの内、送信所要時間が将来時刻において送信キューに割当てられている送信可能時間より小さいフレームを、スケジューリング可能なフレームとして判定してもよい。例えば、特定の送信キューに対して何かしらのトラフィック・シェーピング・アルゴリズムを適用し、その結果として送信が許可されたフレームを“送信可能な状態”と見なしてもよい。また、前記トラフィック・シェーピング・アルゴリズムの具体例としては、例えばIEEE 802.1Qav規格で定められているCredit Based Shaperを用いてもよい。しかし、前記トラフィック・シェーピング・アルゴリズムは、IEEE 802.1Qavに限定されない。
次に、スケジューリング部26について説明する。
スケジューリング部26は、先読部20が先読みしたエントリ34Dに基づいて、送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングする。
具体的には、スケジューリング部26は、判定部22によってスケジューリング可能と判定されたフレームの、送信開始予定時刻をスケジューリングする。詳細には、スケジューリング部26は、判定部22によってスケジューリング可能と判定されたフレームを、送信フレーム記憶部32から読込む。そして、スケジューリング部26は、読込んだフレームの送信開始予定時刻をスケジューリングする。
本実施の形態では、スケジューリング部26は、判定部22によってスケジューリング可能と判定されたフレームから、スケジューリング対象のフレームを選択する。このとき、スケジューリング可能と判定されたフレームが複数存在する場合、スケジューリング部26は、情報処理装置10に設けられた送信部28の数と同じ数のフレームを選択することができる。本実施の形態では、情報処理装置10は、1つの送信部28を備える形態を一例として説明する。このため、本実施の形態では、スケジューリング部26は、判定部22によってスケジューリング可能と判定されたフレームから、1つのフレームをスケジューリング対象として選択する。この選択の際に用いるアルゴリズムは任意でよい。選択アルゴリズムの具体例としては、例えば固定優先度のアルゴリズムやラウンドロビン方式のアルゴリズムを用いてもよい。しかし、これらに限定されるものではない。
そして、スケジューリング部26は、選択したフレームに、送信開始予定時刻をスケジューリングする。
例えば、スケジューリング部26は、将来時刻記憶部38に記憶されている将来時刻を、選択したフレームの送信開始予定時刻としてスケジューリングする。すなわち、スケジューリング部26は、先読みしたエントリ34Dに基づいて先読部20によって設定または更新され、または前回のスケジューリング処理後の第1後処理(詳細後述)によって更新された将来時刻を、選択したフレームの送信開始予定時刻としてスケジューリングする。
このように、スケジューリング部26は、送信スケジューリング情報34Aによって定義された制約を満たす範囲で、各フレームの送信開始予定時刻をスケジューリングすることができる。
また、上述したように、スケジューリング部26は、先読部20によって先読みされたエントリ34Dに基づいて、フレームの送信開始予定時刻をスケジューリングする。このため、スケジューリング部26は、高精度な送信タイミング制御のための、送信開始予定時刻のスケジューリングを行うことができる。
スケジューリング部26は、スケジューリング可能と判定されたフレームの送信開始予定時刻をスケジューリングすると、後処理として、第1後処理を実行する。
第1後処理は、スケジューリング後に、スケジューリングしたフレームの送信所要時間を用いて、次の送信開始予定時刻の候補となる将来時刻、および該将来時刻において送信キューの各々に割当てられる送信可能時間、を更新する処理である。
例えば、スケジューリング部26は、将来時刻記憶部38に記憶されている将来時刻に、送信開始予定時刻をスケジューリングしたフレームの送信所要時間を加算した時刻を、更新後の将来時刻として計算する。
また、例えば、スケジューリング部26は、送信可能時間記憶部36に記憶されている各送信キューに割当てられている送信可能時間から、送信開始予定時刻をスケジューリングしたフレームの送信所要時間を減算した時間を、更新後の送信可能時間として計算する。
そして、スケジューリング部26は、送信可能時間記憶部36および将来時刻記憶部38の各々に記憶されている送信可能時間と将来時刻を、それぞれ、計算した更新後の送信可能時間と更新後の将来時刻に更新する。このようにして、スケジューリング部26は、送信開始予定時刻のスケジューリング後に、第1後処理を実行する。
次に、送信装置14について説明する。
送信装置14は、例えば、NIC(Network Interface Card)である。送信装置14は、送信部28を含む。
送信部28は、スケジューリング部26によってスケジューリングされた送信開始予定時刻に基づいて、フレームの送信を開始する。本実施の形態では、送信部28は、通信装置2へフレームを送信する。
送信部28は、スケジューリング部26によって送信開始予定時刻をスケジューリングされたフレームについて、送信開始条件を満たした場合に、フレームの送信を開始する。
送信開始条件は、例えば、現在時刻と送信開始予定時刻とが一致した場合や、現在時刻と送信開始予定時刻との時間差が所定の閾値を下回った場合や、現在時刻と送信開始予定時刻との時間差が所定の閾値以内であり、且つ、現在時刻が送信開始予定時刻を過ぎた場合などである。以下では、送信開始条件が、現在時刻と送信開始予定時刻とが一致した場合であることを、一例として説明する。
すなわち、本実施の形態では、送信部28は、スケジューリング部26によってフレームにスケジューリングされた送信開始予定時刻と、現在時刻と、が一致したときに、該フレームを通信装置2へ送信する。言い換えると、送信部28は、送信開始予定時刻と現在時刻とが一致したときに、該送信開始予定時刻をスケジューリングされたフレームの送信を開始する。
なお、スケジューリング部26および送信部28は、フレームを一時的にバッファリングする領域を備えていてもよい。
このように、送信部28は、スケジューリング部26によってスケジューリングされた送信開始予定時刻に基づいて、該送信開始予定時刻をスケジューリングされたフレームの送信を開始する。このため、情報処理装置10は、各フレームを、スケジューリングされた送信開始予定時刻に通信装置2へ送信することができる。すなわち、本実施の形態の情報処理装置10は、リアルタイム通信が要求されるデータの送信タイミングを保証することができる。
次に、情報処理装置10が実行する情報処理の手順の一例を説明する。
<情報処理>
図4は、本実施の形態の情報処理装置10が実行する、情報処理の手順の一例を示すフローチャートである。情報処理装置10は、処理部31による先読処理・スケジューリング処理(ステップS100)と、送信部28による送信処理(ステップS102)と、を同時に並列に実行する。
<先読処理・スケジューリング処理>
図5は、ステップS100(図4参照)の処理の詳細フローチャートである。図5に示すように、まず、先読部20が初期化処理を実行する(ステップS200)。ステップS200では、先読部20は、初期値として用いる、送信可能時間および将来時刻を計算する。ステップ200の初期化処理の詳細フローチャートは、後述する。
次に、先読部20は、先読処理を実行する(ステップS202)。ステップS202の処理によって、先読部20は、次のエントリ34Dの先読みと、送信可能時間および将来時刻の更新を行う。ステップS202の先読処理の詳細フローチャートは、後述する。
次に、ステップS202の先読処理時に、指示部24から先読指示が通知されたか否かを判定する(ステップS204)。先読指示が通知されたと判定した場合(ステップS204:Yes)、ステップS202へ戻る。
ステップS204で肯定判断(ステップS204:Yes)する場合とは、例えば、ゲートコントロールリスト34Bに、同じ送信キューに対して送信可を示す有効(オープン)が複数のエントリ34Dに連続して設定されている場合である。この場合、先読部20は、ステップS202の先読処理を繰返すことで、これらの複数のエントリ34Dを先読みすることとなる。
一方、先読指示が通知されなかったと判定した場合(ステップS204:No)、ステップS206へ進む。ステップS206では、判定部22が、判定処理を実行する(ステップS206)。ステップS206の判定処理によって、判定部22は、スケジューリング可能なフレームが有るか否かを判定する。ステップS206の判定処理の詳細フローチャートは、後述する。
ステップS206の判定処理によって、スケジューリング可能なフレームが無いと判定された場合(ステップS208:No)、後述するステップS214へ進む。一方、ステップS206の判定処理によって、スケジューリング可能なフレームが有ると判定された場合(ステップS208:Yes)、ステップS210へ進む。
ステップS210では、スケジューリング部26が、スケジューリング処理を実行する(ステップS210)。ステップS210の処理によって、スケジューリング部26は、フレームの送信開始予定時刻をスケジューリングする。ステップS210のスケジューリング処理の詳細フローチャートは、後述する。
次に、スケジューリング部26は、第1後処理を実行する(ステップS212)。ステップS212の処理によって、スケジューリング部26は、ステップS210でスケジューリングしたフレームの送信所要時間を用いて、次の送信開始予定時刻の候補となる将来時刻、および該将来時刻において送信キューの各々に割当てられる送信可能時間、を更新する。ステップS212の第1後処理の詳細フローチャートは、後述する。そして、ステップS214へ進む。
ステップS214では、指示部24が、第2後処理を実行する(ステップS214)。ステップS214の処理によって、指示部24は、将来時刻と現在時刻との時間差に基づいて、該将来時刻において送信キューに割当てられる送信可能時間を更新する。ステップS214の第2後処理の詳細フローチャートは後述する。
そして、ステップS214の処理によって、図5のフローチャートにおける、先読み処理・スケジューリング処理に係るループ1回分の処理が終了する。そして、上記ステップS202へ戻り、情報処理装置10は、上記処理を繰り返し実行する。この処理により、情報処理装置10は、継続的に、先読処理およびスケジューリング処理を実行することができる。
<初期化処理>
図6は、ステップS200(図5参照)の初期化処理の詳細フローチャートである。また、図7は、初期化処理の流れを示す模式図である。
まず、先読部20が、送信スケジューリング情報記憶部34から送信スケジューリング情報34Aを読込む(ステップS300)。詳細には、先読部20は、ゲートコントロールリスト34Bと、その他のパラメータ34C(図2参照)と、を含む送信スケジューリング情報34Aを読込む。
次に、先読部20は、ステップS300で読込んだ送信スケジューリング情報34Aを用いて、送信可能時間および将来時刻の初期値を決定する(ステップS302)。
例えば、先読部20は、その他のパラメータ34Cに含まれるゲートコントロール開始時刻(図2参照)を、将来時刻の初期値として設定する。
また、例えば、先読部20は、エントリ34Dに含まれる、各送信キューのゲートステートおよびタイムインターバルに基づいて、該将来時刻において各送信キューに割当てる送信可能時間を設定する。
具体的には、例えば、先読部20は、ゲートコントロールリスト34Bにおける、最初に送信制御するエントリ34D(例えば、エントリ34D0)を特定する(図2も参照)。そして、先読部20は、該エントリ34D0のゲートステートに示される、有効(オープン)の設定されている送信キュー(例えば、送信キュー7)に対して、該エントリ34D0に示されるタイムインターバル(例えば、2500ナノ秒)を、送信可能時間の初期値として決定する。
また、例えば、先読部20は、最初に送信制御するエントリ34Dのゲートステートに示される、有効(オープン)の設定されている送信キュー以外の送信キュー(例えば、送信キュー6〜送信キュー0)に対して、ゼロ“0”を、送信可能時間の初期値として決定する。
次に、先読部20は、ステップS302で決定した、送信可能時間および将来時刻の初期値を、それぞれ、送信可能時間情報36Aおよび将来時刻情報38Aに書込む(ステップS304)。そして、本ルーチンを終了する。
<先読処理>
図8は、ステップS202(図5参照)の先読処理の詳細フローチャートである。また、図9は、先読処理の流れを示す模式図である。
まず、指示部24は、送信可能時間記憶部36から各送信キューに割当てられている送信可能時間を読込む(ステップS400)。
次に、指示部24は、ステップS400で読込んだ送信可能時間がゼロ“0”であるか否かを判断する(ステップS402)。すなわち、指示部24は、各送信キューについて、フレームを送信することの可能な残り時間がゼロであるか否かを判断する。残り時間がゼロであるとは、残り時間が無い事を示す。
何れかの送信キューについて、送信可能時間が残っていると判断した場合(ステップS402:No)、本ルーチンを終了する。一方、すべての送信キューについて、送信可能時間がゼロであると判断した場合(ステップS402:Yes)、ステップS404へ進む。
なお、本実施の形態では、有効(オープン)の設定がなされている送信キュー以外の送信キューに対しては、送信可能時間としてゼロ“0”が設定されている場合を説明する。すなわち、無効(クローズ)の設定がなされている送信キューの送信可能時間はゼロ“0”となる。このため、指示部24は、送信可能時間情報36Aに登録されている全ての送信キューの各々に割当てられている送信可能時間が、全てゼロ“0”と判断した場合、ステップS402で肯定判断(ステップS402:Yes)をする。
ステップS404では、指示部24が、先読指示を先読部20へ通知する(ステップS404)。すなわち、指示部24は、送信可能時間記憶部36に記憶されている将来時刻において、送信キューに送信可能時間が残っていない場合に、先読指示を通知する。
先読指示を受付けた先読部20は、送信スケジューリング情報記憶部34から次のエントリ34Dを先読みする(ステップS406)。次のエントリ34Dとは、ゲートコントロールリスト34Bにおける、直前に処理したエントリ34Dの次のエントリ34Dである。先読処理の順序は、例えば、リストインデックスに示される値によって表される。なお、初期状態では、先読部20は、リストインデックスに示される最初のエントリ34D(例えば、図2のエントリ34D0)を、先読みすればよい。
次に、先読部20は、ステップS404で先読みした次のエントリ34Dに基づいて、次にスケジューリングするフレームの送信開始予定時刻の候補となる将来時刻、および該将来時刻において送信キューに割当てられる送信可能時間、を計算する(ステップS408)。
例えば、先読部20は、ステップS406で先読みしたエントリ34Dの開始時刻を、将来時刻記憶部38に記憶する更新後の将来時刻として計算してもよい。
また、例えば、先読部20は、ステップS406で先読みしたエントリ34Dに含まれるタイムインターバルの値を、該エントリ34Dのゲートステートに示される、有効(オープン)の設定されている送信キューに割当てる送信可能時間として計算する。なお、先読部20が、複数のエントリ34Dを先読みした場合、先読みした複数のエントリ34Dの各々に含まれるタイムインターバルの合計値を、送信可能時間として計算すればよい。
次に、先読部20は、ステップS408で計算した送信可能時間および将来時刻の各々を、それぞれ、送信可能時間情報36Aおよび将来時刻情報38Aに書込む。この書込みによって、先読部20は、送信可能時間情報36Aおよび将来時刻情報38Aにおける送信可能時間および将来時刻を更新する(ステップS410)。
詳細には、先読部20は、ステップS408で計算した将来時刻を、将来時刻記憶部38の将来時刻情報38Aに上書きすることで、将来時刻を更新する。また、先読部20は、ステップS408で計算した送信可能時間を、該送信可能時間に対応する送信キューに割当てる。そして、本ルーチンを終了する。
<判定処理>
図10は、ステップS206(図5参照)の判定処理の詳細フローチャートである。また、図11は、判定処理の流れを示す模式図である。
まず、判定部22は、各送信キューのステート情報を、送信フレーム記憶部32から読込む(ステップS500)。
ステート情報は、送信キューに保持されている、送信待機中のフレームの有無や、各送信キューに保持されているフレームの送信所要時間の算出、に用いるパラメータである。ステート情報は、例えば、フレームサイズ、再送信の有無、送信リトライ回数・間隔、などである。
なお、判定部22は、送信開始予定時刻をスケジューリング可能なフレームが複数存在する場合に備えて、各送信キューの優先度判断に用いる情報を更に含む、ステート情報を読込んでもよい。各送信キューの優先度判断に用いる情報は、例えば、予め定めた固定値であってもよいし、動的に変化する値であってもよい。具体的には、各送信キューの優先度判断に用いる情報は、IEEE 802.1Qbv規格に示される各送信キューのトラフィッククラスに応じた値であってもよい。
次に、判定部22は、送信可能時間記憶部36から、各送信キューに割当てられた送信可能時間を読込む(ステップS502)。すなわち、判定部22は、将来時刻記憶部38に記憶されている将来時刻において、各送信キューに割当てられている送信可能時間を、送信可能時間記憶部36から読込む。
次に、判定部22は、ステップS500で読込んだステート情報を用いて、各送信キューに保持されているフレームの各々について、送信所要時間を計算する(ステップS504)。
次に、判定部22は、送信キューに保持されている送信待機中のフレームの各々について、送信開始予定時刻をスケジューリング可能か否かを判定する(ステップS506)。例えば、判定部22は、送信キューに保持されている送信待機中のフレームの内、ステップS504で計算した送信所要時間が、ステップS502で読込んだ送信可能時間より小さいフレームを、送信開始予定時刻をスケジューリング可能なフレームとして判定する。すなわち、送信所要時間が送信キューに割当てられている送信可能時間以下である場合、判定部22は、スケジューリング可能なフレームとして判定する。
次に、判定部22は、スケジューリング不可能なフレームが有るか否かを判断する(ステップS508)。判定部22は、ステップS506の判定結果に、スケジューリング不可能と判定したフレームが含まれるか否かを判断することで、ステップS508の判断を行う。
判定部22が、スケジューリング不可能なフレームが無いと判断した場合(ステップS508:No)、ステップS512へ進む。
一方、判定部22が、スケジューリング不可能なフレームが有ると判断した場合(ステップS508:Yes)、ステップS510へ進む。ステップS510では、判定部22は、送信可能時間情報36Aにおける(図3参照)、スケジューリング不可能と判定したフレームを保持する送信キューに割当てられている送信可能時間を、ゼロ“0”に変更する(ステップS510)。
すなわち、ステップS510の処理は、送信所要時間が送信キューに割当てられている送信可能時間を超えている場合に実行される。このため、判定部22は、送信可能時間内にフレームの送信が完了しないフレームに対して、誤った送信開始予定時刻をスケジューリングすることを抑制することができる。このため、本実施の形態の情報処理装置10は、例えば、IEEE 802.1Qbv規格において定義されているガードバンドの制約を満たした送信制御を行うことができる。
次に、判定部22は、スケジューリング可能なフレームが有るか否かを判断する(ステップS512)。判定部22は、ステップS506の判定結果に、スケジューリング可能と判定したフレームが含まれるか否かを判断することで、ステップS512の判断を行う。
スケジューリング可能なフレームが無いと判断した場合(ステップS512:No)、本ルーチンを終了する。一方、スケジューリング可能なフレームが有ると判断した場合(ステップS512:Yes)、ステップS514へ進む。
ステップS514では、判定部22は、スケジューリング可能と判定したフレームを、スケジューリング部26へ通知する(ステップS514)。そして、本ルーチンを終了する。
<スケジューリング処理>
図12は、ステップS210(図5参照)のスケジューリング処理の詳細フローチャートである。また、図13は、スケジューリング処理の流れを示す模式図である。
スケジューリング部26は、判定部22からスケジューリング可能なフレームの通知を受付ける(ステップS600)。
具体的には、スケジューリング部26は、スケジューリング可能なフレームを保持している送信キュー、フレームが保持されているアドレス、フレームサイズ、等の情報を、判定部22から受付ける。このとき、スケジューリング部26は、判定部22によって計算されたフレームの送信所要時間を更に受付けてもよい。また、スケジューリング可能なフレームが複数ある場合、スケジューリング部26は、複数のフレームの各々の通知を、判定部22から受付けてもよい。また、スケジューリング部26は、複数のフレームの各々を保持する送信キューの優先度に関する情報を、更に、判定部22から受付けてもよい。
次に、スケジューリング部26は、ステップS600で受付けた、スケジューリング可能なフレームを、送信フレーム記憶部32から読込む(ステップS602)。なお、スケジューリング可能なフレームが複数通知される場合がある。この場合、スケジューリング部26は、読込むフレームを選択してもよいし、判定部22から受付けた指示に従ってフレームを選択してもよい。
次に、スケジューリング部26は、将来時刻記憶部38から将来時刻を読込む(ステップS604)。
次に、スケジューリング部26は、ステップS604で読込んだ将来時刻に基づいて、ステップS602で読込んだフレームの送信開始予定時刻をスケジューリングする(ステップS606)。上述したように、例えば、スケジューリング部26は、ステップS604で読込んだ将来時刻を、ステップS602で読込んだフレームの送信開始予定時刻としてスケジューリングする。そして、本ルーチンを終了する。
<第1後処理>
図14は、ステップS212(図5参照)の第1後処理の詳細フローチャートである。また、図15は、第1後処理の流れを示す模式図である。
まず、スケジューリング部26は、送信可能時間記憶部36に保持されている各送信キューに割当てられている送信可能時間の減少処理を実行する(ステップS700)。
例えば、スケジューリング部26は、送信可能時間記憶部36に記憶されている各送信キューに割当てられている送信可能時間から、直前のスケジューリング処理によって送信開始予定時刻をスケジューリングしたフレームの送信所要時間を、減算した時間を、更新後の送信可能時間として計算する。
なお、更新前の送信可能時間から減算する値は、送信所要時間に限定されない。例えば、スケジューリング部26は、送信所要時間に応じた値を、減算する値として用いてもよい。また、例えば、スケジューリング部26は、送信部28および物理レイヤのプロトコル処理等に起因するオーバーヘッドに基づいて、減算する値を調整してもよい。オーバーヘッドは、例えば、イーサネットフレームを送信する際のプリアンブルや、インターフレームギャップなどである。また、スケジューリング部26は、安全マージンを設ける目的で、減少する値を調整してもよい。
次に、スケジューリング部26は、更新後の将来時刻を計算する(ステップS702)。すなわち、スケジューリング部26は、将来時刻記憶部38に記憶されている将来時刻を、更に将来に向かって先に進めた時刻に更新するために、更新後の将来時刻を計算する。
例えば、スケジューリング部26は、将来時刻記憶部38に記憶されている将来時刻に、直前のスケジューリング処理によってスケジューリングしたフレームの送信所要時間を加算した時刻を、更新後の将来時刻として計算する。
なお、更新前の将来時刻に加算する値は、送信所要時間に限定されない。例えば、スケジューリング部26は、送信所要時間に応じた値を、加算する値として用いてもよい。また、例えば、スケジューリング部26は、直前のスケジューリング処理によってスケジューリングしたフレームの送信開始予定時刻に、該フレームの送信所要時間を加算した時刻を、更新後の将来時刻として計算してもよい。
また、例えば、スケジューリング部26は、送信部28および物理レイヤのプロトコル処理等に起因するオーバーヘッドに基づいて、更新後の将来時刻を調整してもよい。
そして、スケジューリング部26は、ステップS700で算出した送信可能時間、および、ステップS702で算出した将来時刻を、各々、送信可能時間情報36Aおよび将来時刻情報38Aへ書込む。この処理によって、スケジューリング部26は、送信可能時間および将来時刻を更新する(ステップS704)。
次に、スケジューリング部26は、直前のスケジューリング処理によって、送信開始予定時間をスケジューリングしたフレームと、該フレームにスケジューリングした送信開始予定時刻と、を、送信部28へ通知する(ステップS706)。そして、本ルーチンを終了する。
<第2後処理>
図16は、ステップS214(図5参照)の第2後処理の詳細フローチャートである。また、図17は、第2後処理の流れを示す模式図である。
まず、指示部24は、将来時刻記憶部38から将来時刻を読込む(ステップS800)。次に、指示部24は、ステップS800で読込んだ将来時刻と、現在時刻と、の時間差を計算する(ステップS802)。
次に、指示部24は、ステップS802で計算した時間差が閾値以下であるか否かを判断する(ステップS804)。例えば、この閾値には、予め定められた固定値を用いてもよいし、実行時に動的に変化する値を用いてもよい。また、複数の閾値を設定してもよい。何れの閾値を設定する場合であっても、現在時刻が将来時刻に迫るほど時間差が減少し、現在時刻が一定のラインを越えた時点で、時間差が閾値以下となる。
時間差が閾値より大きい場合(ステップS804:No)、本ルーチンを終了する。一方、時間差が閾値以下である場合(ステップS804:Yes)、ステップS806へ進む。
ステップS806では、ステップS802で計算した時間差が、前回のイテレーションで計算した値より小さいか否かを判断する。すなわち、時間差が縮まっているか否かを判断する(ステップS806)。縮まっていない場合(ステップS806:No)、本ルーチンを終了する。一方、縮まっている場合(ステップS806:Yes)、ステップS808へ進む。
ステップS808では、指示部24は、送信可能時間情報36Aにおける送信キューの各々に対応する送信可能時間を、減少させる(ステップS808)。そして、本ルーチンを終了する。
ここで、上述したように、将来時刻は、新しいフレームのスケジューリング、または、送信スケジューリング情報34Aにおけるエントリ34Dの先読みが行われた際に、適切な値に更新される。このため、スケジューリングや先読処理が行われない状態が継続すると、将来時刻の更新はストップしてしまう。一方、現在時刻は、時間の経過に応じて、徐々に将来時刻に近づいていく。これにより、現在時刻と将来時刻との時間差が、ステップS804の判断に用いる閾値以下となる場合がある。そこで、上述したように、本実施の形態では指示部24は、送信可能時間情報36Aに登録されている各送信キューの送信可能時間を強制的に減少させる(上記ステップS808参照)。
この処理により、判定部22によってスケジューリング可能なフレームが1つも存在しないと判定された場合であっても、現在時刻が将来時刻に追いつく前に、各送信キューの送信可能時間を減少させることができる。
上述したように、各送信キューの送信可能時間がゼロ“0”となると、指示部24から先読指示を受付けた先読部20が次のエントリ34Dの先読みを行い、将来時刻記憶部38に記憶されている将来時刻を更新する。このため、将来時刻と現在時刻との間に、常に一定のマージンを確保することが可能となる。
<送信処理>
図18は、ステップS102(図4参照)の送信処理の詳細フローチャートである。また、図19は、送信処理の流れを示す模式図である。
送信部28は、スケジューリング済のフレームが有るか否かを判断する(ステップS900)。例えば、送信部28は、スケジューリング部26からスケジューリングを完了したフレームと送信開始予定時刻の通知を受付けたか否かを判断することで、ステップS900の判断を行う。また、送信部28は、スケジューリング部26から受付けたフレームおよび送信開始予定時刻をバッファリングしておいてもよい。
スケジューリング済のフレームが無い場合(ステップS900:No)、本ルーチンを終了する。一方、スケジューリング済のフレームが有る場合(ステップS900:Yes)、ステップS902へ進む。
ステップS902では、送信部28は、現在時刻と送信開始予定時刻とを比較する(ステップS902)。送信部28で用いる現在時刻は、ホスト12で用いる現在時刻と同じ時刻であるものとする。そして、送信部28は、ステップS902の比較結果が、送信開始条件を満たすか否かを判断する(ステップS904)。送信開始条件は、上述したため、ここでは説明を省略する。例えば、送信部28は、現在時刻と送信開始予定時刻とが一致したか否かを判断する。
送信開始条件を満たす場合(ステップS904:Yes)、送信部28は、該送信開始予定時刻をスケジューリングされたフレームについて、該フレームの送信を開始する(ステップS906)。
例えば、送信部28は、現在時刻が送信開始予定時刻に一致したときに、フレームの送信を開始する。また、送信部28は、現在時刻が送信開始予定時刻を過ぎたときに、フレームの送信を開始してもよい。また、送信部28は、現在時刻が送信開始予定時刻を過ぎており、且つ、現在時刻と送信開始予定時刻との時間差が所定値以下の場合に、フレームの送信を開始してもよい。
また、送信部28は、現在時刻が送信開始予定時刻を過ぎており、且つ、現在時刻と送信開始予定時刻との時間差が所定値以上の場合に、フレームの送信をキャンセルしてもよい。この場合、送信部28は、送信をキャンセルしたフレームについて、何らかの例外処理を実行してもよい。具体的には、送信部28は、送信をキャンセルしたフレームを破棄してもよいし、該フレームを送信フレーム記憶部32の送信キューに入れ直してもよい。また、この場合、送信部28は、送信をキャンセルしたフレームに関する情報を、上位のアプリケーションに通知してもよい。
そして、本ルーチンを終了する。なお、送信装置14は、図18に示す送信処理を繰り返し実行する。すなわち、ステップS900で否定判断(ステップS900:No)、ステップS904で否定判断(ステップS904:No)、またはステップS906の処理終了後には、再度、ステップS900へ戻り、ステップS900〜ステップS906の処理を繰返し実行する。このため、送信装置14は、継続的に、送信処理を繰り返し実行することができる。
以上説明したように、本実施の形態の情報処理装置10は、先読部20と、スケジューリング部26と、を備える。先読部20は、1または複数の送信キューの各々の送信可否状態(ゲートステート)と送信可否状態の維持タイミングとを規定した1または複数のエントリ34Dを含む送信スケジューリング情報34Aにおける、現在時刻より未来の維持タイミングに対応するエントリ34Dを、先読みする。スケジューリング部26は、先読みしたエントリ34Dに基づいて、送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングする。
このように、本実施の形態の情報処理装置10では、スケジューリング部26が、送信スケジューリング情報34Aにおける、先読部20によって先読みされたエントリ34Dに基づいて、フレームの送信開始予定時刻をスケジューリングする。
従って、本実施の形態の情報処理装置10では、高精度な送信タイミング制御のためのスケジューリングが可能となる。
また、送信部28は、スケジューリング部26によってスケジューリングされた送信開始予定時刻に基づいて、フレームの送信を開始する。このため、本実施の形態の情報処理装置10は、上記効果に加えて、送信スケジューリング情報34Aに基づいた厳密な送信制御を実現することができる。すなわち、本実施の形態の情報処理装置10は、上記効果に加えて、リアルタイム通信を要求されるデータの、送信タイミングを保証することが可能となる。
また、本実施の形態の情報処理装置10では、処理部31の各機能(先読部20、判定部22、指示部24、スケジューリング部26)の少なくとも一部を、ソフトウェアで実現することができる。
このため、本実施の形態の情報処理装置10では、処理部31の全ての機能をハードウェアで実現する場合に比べて、改良や変更等に柔軟に対応可能な、情報処理装置10を提供することができる。また、本実施の形態の情報処理装置10では、複雑なスケジューリング処理を実現することができ、設計や実装の難易度の低下や、必要なハードウェアリソースの削減を図ることができる。また、本実施の形態の情報処理装置10では、任意のトラフィック・シェーピング・アルゴリズム(例えば、IEEE 802.1QavのCredit Based Shaper)と、IEEE 802.1Qbv規格のゲートコントロールによる送信制御と、を組み合わせることが可能となる。
また、本実施の形態の情報処理装置10では、先読部20がエントリ34Dの先読みを行い、スケジューリング部26がフレームの送信予定時刻をスケジューリングし、送信部28がフレームを送信する。このため、本実施の形態の情報処理装置10では、エントリ34Dを先読みするタイミングと、送信開始予定時刻をスケジューリングするタイミングと、フレームを実際に送信するタイミングと、の各々を明確に分離し、個別に実装することができる。このため、本実施の形態の情報処理装置10は、実装時の柔軟性の確保と、厳密な送信タイミング制御と、の両立を図ることができる。
また、各送信キューを、ホスト12に設けられた送信フレーム記憶部32に保持することで、各送信キューのサイズや送信キューの数を、必要に応じて柔軟に変更することが可能となる。
また、本実施の形態の情報処理装置10では、送信部28の機能をハードウェアで実現することができる。このため、本実施の形態の情報処理装置10では、送信部28をソフトウェアで実現する場合に比べて、より高精度に送信タイミングを制御することができる。
<具体例>
次に、本実施の形態の情報処理装置10が実行する情報処理について、具体的な例を挙げて説明する。なお、本具体例では、送信スケジューリング情報として、IEEE 802.1Qbv規格で定められているゲートコントロールリストを例に取り説明するが、本発明は、これに限定されるものではない。また同様に、本具体例では、ゲートコントロールリストの一例としてゲートコントロールリスト34Bを用いて説明するが、本発明はこれに限定されない。
―送信スケジューリング情報―
まず、送信スケジューリング情報34Aの一例を説明する。送信スケジューリング情報34Aは、例えば、図2に示したものである。
図2を用いて上記で説明したように、図2に示す例では、送信スケジューリング情報34Aは、ゲートコントロールリスト34Bおよびその他のパラメータ34Cを含む。
図2に示す例では、送信スケジューリング情報34Aは、8つのエントリ34D(エントリ34D0〜エントリ34D7)から構成されており、各エントリ34Dには、各々、0〜7のリストインデックスが付与されている。上述したように、ゲートステートに示される“o”は、送信可を示す有効(オープン)を示し、“C”は、送信不可を示す無効(クローズ)を示す。
例えば、図2に示すリストインデックス“7”のエントリ34D7のゲートステート“CCCCCCCo”は、送信フレーム記憶部32における複数の送信キューの各々の送信可否状態(オープンまたはクローズ)を示している。上述したように、本実施の形態では、送信フレーム記憶部32は、8個の送信キュー(送信キュー0〜送信キュー7)を含む場合を説明する。このため、リストインデックス“7”のエントリ34D7のゲートステート“CCCCCCCo”は、送信キュー1〜送信キュー7が無効(クローズ)であり、送信キュー0が有効(オープン)であることを示す。
すなわち、この場合、送信キュー0にのみ、送信許可が与えられていることを意味する。
なお、図2に示す例では、各エントリ34Dのゲートステートは、1つの送信キューのみを有効(オープン:o)とした例を示した。しかし、より一般的なケースでは、各エントリ34Dのゲートステートは、複数の送信キューについて、有効(オープン:o)としたものであってもよい。
また、図2に示す例では、複数のエントリ34Dに含まれるタイムインターバルが、全て同じ値(2500ナノ秒)に設定されている場合を示した。しかし、より一般的なケースでは、複数のエントリ34Dの間で、互いに異なる値のタイムインターバルが設定されていてもよい。また、図2には、一例として、ゲートコントロールリスト34Bが、8個のエントリ34Dを含む場合を示した。しかし、ゲートコントロールリスト34Bに含まれるエントリ34Dの数は、8個に限定されない。
また、図2には、IEEE 802.1Qbv規格に従い、8個の送信キューを想定した場合を示した。しかし、任意の数の送信キューを想定してもよい。
―ゲートステートの周期性―
次に、ゲートステートの周期性について説明する。図20および図21は、ゲートステートの典型的な周期性の例を示す図である。ゲートステートの周期性は、送信スケジューリング情報34Aに基づいて定義される。例えば、図20は、図2に示す送信スケジューリング情報34Aに基づいて定義されており、各送信キューの第1周期目および第2周期目のゲートステートの例を示す。各周期の開始時刻は、図2の送信スケジューリング情報34Aに含まれる、ゲートコントロール開始時刻(2017年10月16日12時00分00秒)、および、ゲートコントロール周期時間(20マイクロ秒)によって求めることができる。
また、n周期目の開始時刻は、下記式(1)で表すことができる。
n周期目の開始時刻=ゲートコントロール開始時刻+(n−1)×ゲートコントロール周期時間 ・・・式(1)
なお、式(1)中、nは、1以上の整数である。
図20の例では、第1周期目の開始時刻は、ゲートコントロール開始時刻として指定されている2017年10月16日12時00分00秒となる。また、第2周期目の開始時刻は、ゲートコントロール開始時刻から20マイクロ秒後の12時00分00.000020000秒となる。
図21は、各送信キューの第3周期目および第4周期目のゲートステートの例を示す。第3周期目の開始時刻は、ゲートコントロール開始時刻から40マイクロ秒後の12時00分00.000040000秒となる。また、第4周期目の開始時刻は、ゲートコントロール開始時刻から60マイクロ秒後の12時00分00.000060000秒となる。
各周期の送信処理が開始されると、ゲートコントロールリスト34Bのエントリ34Dに設定された順番に基づき、各送信キューのゲートステートが定まる。図20の例では第1周期の開始時刻(12時00分00秒)から2500ナノ秒間の間は、各送信キューの送信可否状態は、リストインデックス“0”のゲートステート(oCCCCCCC)により定まる。次に、12時00分00.000002500秒から2500ナノ秒間の間は、各送信キューの送信可否状態は、リストインデックス“1”のゲートステート(CoCCCCCC)により定まる。
さらに12時00分00.000005000秒から2500ナノ秒間の間は、各送信キューの送信可否状態は、リストインデックス“2”のゲートステート(CCoCCCCC)により定まる。
このように、ゲートコントロールリスト34Bに示される、リストインデックス“0”からリストインデックス“7”までの順序に従い、各送信キューのゲートステートと各ステートのタイムインターバルが定まる。
最後に、図20の例では、12時00分00.000017500秒から2500ナノ秒間の間は、各送信キューの送信可否状態は、リストインデックス“7”のゲートステート(CCCCCCCo)によって決定され定まり、これをもって第1周期目が終了する。
−先読みおよびスケジューリング処理−
次に、典型的な動作シナリオにおける、先読処理およびスケジューリング処理について説明する。
図22は、初期化直後の現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT0参照)。また、図23は、初期化直後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。
初期化の際には、先読部20が、図6および図7を用いて説明した初期化処理を実行する。図22および図23に示す例では、先読部20は、送信スケジューリング情報34Aに含まれるゲートコントロール開始時刻を、将来時刻tfとして設定し、送信キュー7に2500ナノ秒の送信可能時間を割り当てる。
−スケジューリング処理の具体例1−
図24は、初期化から0.001秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT1参照)。また、図25は、初期化から0.001秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図25は、初期化から0.001秒後において、送信キュー7に送信所要時間1000ナノ秒のフレームf0が書き込まれた場合の例を示した。
図25に示す例では、フレームf0の送信所要時間は、送信キュー7の送信可能時間以下である。このため、判定部22は、フレームf0の送信開始予定時刻をスケジューリング可能と判定する(図25の符号60参照)。その結果、スケジューリング部26は、初期化0.001秒後時点の将来時刻(2017年10月16日12時00分00.000000000秒)を、フレームf0の送信開始予定時刻としてスケジューリングする。
図26は、初期化から0.002秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT2参照)。また、図27は、初期化から0.002秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図27は、初期化から0.002秒後にフレームf0がスケジューリングされた後の例を示す。
スケジューリングの際には、判定部22およびスケジューリング部26が、図10〜図15を用いて説明した、判定処理、スケジューリング処理、および第1後処理の各々を実行する。
−スケジューリング処理の具体例2−
図28は、初期化から0.003秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT3参照)。また、図29は、初期化から0.003秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図29には、初期化0.003秒後において、送信キュー7に送信所要時間1200ナノ秒のフレームf1が書き込まれた例を示した。
図29の例では、フレームf1の送信所要時間は、送信キュー7の送信可能時間以下である(符号62参照)。このため、判定部22は、フレームf1の送信開始予定時刻をスケジューリング可能と判定する。その結果、スケジューリング部26は、初期化0.003秒後時点の将来時刻(2017年10月16日12時00分00.000001000秒)を、フレームf1の送信開始予定時刻としてスケジューリングする。
図30は、初期化から0.004秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT4参照)。また、図31は、初期化から0.004秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図31は、初期化0.004秒後に、フレームf1がスケジューリングされた後の例を示す。
なお、スケジューリングの際には、判定部22およびスケジューリング部26が、図10〜図15を用いて説明した、判定処理、スケジューリング処理、および第1後処理の各々を実行する。
―送信可能時間をゼロクリアする具体例―
図32は、初期化から0.005秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT5参照)。また、図33は、初期化から0.005秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図33は、初期化0.005秒後に、送信キュー7に送信所要時間1500ナノ秒のフレームf2が書き込まれた例を示す。
図33に示す例では、フレームf2の送信所要時間が、送信キュー7の送信可能時間以上である。このため、判定部22は、フレームf2の送信開始予定時刻のスケジューリングを不可能と判定する。
図34は、初期化から0.006秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT6参照)。また、図35は、初期化から0.006秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図35は、初期化0.006秒後に、送信キュー7の送信可能時間がゼロ“0”にクリアされた後の例を示している。ゼロクリア処理の際には、判定部22が、図10および図11を用いて説明した、送信可能時間をゼロに変更する処理を含む、一連の処理を実行する。
−先読処理の具体例1−
図36は、初期化から0.007秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT7参照)。また、図37は、初期化から0.007秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図37は、初期化0.007秒後に、ゲートコントロールリスト34Bにおける、リストインデックス“1”のエントリ34D1が先読処理された後の例を示す。
先読処理の際には、先読部20および指示部24が、図8および図9を用いて説明した一連の処理を実行する。
図36および図37に示す例では、先読部20が、将来時刻を2017年10月16日12時00分00.000002500秒に更新し、送信キュー6に2500ナノ秒の送信可能時間を割り当てる。
−スケジューリング処理の具体例3−
図38は、初期化から0.008秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT8参照)。また、図39は、初期化から0.008秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図39は、初期化0.008秒後に、送信キュー6に送信所要時間1000ナノ秒のフレームf3が書き込まれた例を示した。
図39に示す例では、フレームf3の送信所要時間は、送信キュー6の送信可能時間以下である。このため、判定部22は、フレームf3をスケジューリング可能と判定する。その結果、スケジューリング部26は、初期化0.008秒後の時点の将来時刻(2017年10月16日12時00分00.000002500秒)を、フレームf3の送信開始予定時刻としてスケジューリングする。
図40は、初期化から0.009秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT9参照)。また、図41は、初期化から0.009秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図41は、初期化0.009秒後に、フレームf3がスケジューリングされた後の例を示す。
スケジューリングの際には、判定部22およびスケジューリング部26が、図10〜図15を用いて説明した、判定処理、スケジューリング処理、および第1後処理の各々を実行する。
−スケジューリング処理の具体例4−
図42は、初期化から0.010秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT10参照)。また、図43は、初期化から0.010秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図43は、初期化0.010秒後に、送信キュー6に送信所要時間1500ナノ秒のフレームf4が書込まれた例を示す。
図43に示す例では、フレームf4の送信所要時間が、送信キュー6の送信可能時間と等しい。このため、判定部22は、フレームf4の送信開始予定時刻を、スケジューリング可能と判定する。その結果、スケジューリング部26は、初期化0.010秒後の将来時刻(2017年10月16日12時00分00.000003500秒)を、フレームf4の送信開始予定時刻としてスケジューリングする。
図44は、初期化から0.011秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT11参照)。また、図45は、初期化から0.011秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図45は、初期化0.011秒後に、フレームf4がスケジューリングされた後の例を示す。
スケジューリングの際には、判定部22およびスケジューリング部26が、図10〜図15を用いて説明した、判定処理、スケジューリング処理、および第1後処理の各々を実行する。
−先読処理の具体例2−
図46は、初期化から0.012秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT12参照)。また、図47は、初期化から0.012秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図47は、初期化0.012秒後に、ゲートコントロールリスト34Bにおけるリストインデックス“2”のエントリ34D2が先読みされた後の例を示す。
先読処理の際には、先読部20および指示部24が、図8および図9を用いて説明した一連の処理を実行する。
−スケジューリング可能なフレームが存在しない場合の具体例−
図48は、初期化から0.013秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT13参照)。また、図49は、初期化から0.013秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図49は、初期化0.013秒後に、スケジュール可能なフレームが1つも存在しない例を示す。
図49に示す例では、送信キュー7の送信可能時間がゼロとなっている(符号74参照)。このため、スケジューリング部26は、送信キュー7に保持されているフレームf2を、スケジューリングすることは出来ない。
また、送信キュー5には、2500ナノ秒の送信可能時間が割り当てられている。このため、送信キュー5には、十分な送信可能時間が残されている。しかし、送信キュー5にはフレームが保持されていないため、新しいフレームをスケジューリングすることができない。
このため、初期化0.013秒後の時点では、スケジュール可能なフレームが1つも存在しないことになる。
−将来時刻の更新がストップしてしまう場合の具体例−
図50は、初期化から0.014秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT14参照)。また、図51は、初期化から0.014秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図51は、初期化0.014秒後において、将来時刻の更新がストップしてしまう場合の例を示す。
将来時刻は、新しいフレームのスケジューリング、または、送信スケジューリング情報34Aにおけるエントリ34Dの先読みが行われた際に、適切な値に更新される。このため、スケジューリングや先読処理が行われない状態が継続すると、将来時刻の更新は、ストップする。
図51に示す例では、初期化0.014秒後以降、新しいフレームのスケジューリングおよびエントリ34Dの先読みが行われていないため、将来時刻の更新は完全にストップしている。
図52は、初期化から0.015秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT15参照)。また、図53は、初期化から0.015秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図54は、初期化から0.016秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT16参照)。また、図55は、初期化から0.016秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図56は、初期化から0.017秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT17参照)。また、図57は、初期化から0.017秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。
なお、図53、図55、および図57は、それぞれ、初期化0.015秒後、0.016秒後、および0.017秒後において、将来時刻の更新がストップしてしまう場合の例を示す。図53、図55、および図57の例では、現在時刻の進行に伴い、現在時刻が徐々に将来時刻に近づいている。その結果として、現在時刻と将来時刻の時間差が、徐々に縮まっている。
−現在時刻と将来時刻の時間差が縮まった場合の具体例−
図58は、初期化から0.999985秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT18参照)。また、図59は、初期化から0.999985秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図59は、現在時刻と将来時刻の時間差の閾値が20マイクロ秒に設定された場合の例を示す。
なお、上述したように、この時間差の閾値には、任意の値を設定してよい。図59の例では、現在時刻(2017年10月16日11時59分59.999985000秒)と将来時刻(2017年10月16日12時00分00.000005000秒)との時間差が、閾値(20マイクロ秒)以下の値となっている。このため、送信キューの送信可能時間を強制的に減少させる、第2後処理を実行する条件が成立した状態となる。
―第2後処理の具体例1−
図60は、初期化から0.999986秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT19参照)。また、図61は、初期化から0.999986秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図61は、初期化0.999986秒後に、送信キュー5の送信可能時間を強制的に減少させる、第2後処理の例を示す。
図61の例では、現在時刻と将来時刻の時間差(0.000019000秒=19マイクロ秒)が、閾値(20マイクロ秒)以下の値になっている。このため、指示部24が、送信可能時間の減少処理を実行している。上述したように、減算に用いる値は、現在時刻が将来時刻に追いつく前に、各送信キューの送信可能時間をゼロにする条件を満たす値であればよい。図61に示す例では、初期化0.999985秒後の時間差(20マイクロ秒)と初期化0.999986秒後の時間差(19マイクロ秒)との差分(1マイクロ秒)、送信キュー5に割り当てられた送信可能時間を減少させている。その結果、送信キュー5の送信可能時間は、0.000001500秒に更新される。
なお、送信キューの送信可能時間を減少させる第2後処理の際には、指示部24が、図16および図17を用いて説明した一連の処理を実行する。
−第2後処理の具体例2−
図62は、初期化から0.999987秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT20参照)。また、図63は、初期化から0.999987秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図63は、初期化0.999987秒後に、送信キュー5の送信可能時間を強制的に減少させる、第2後処理の例を示す。
図63に示す例では、現在時刻と将来時刻の時間差(0.000018000秒=18マイクロ秒)が、閾値(20マイクロ秒)以下の値となっている。このため、指示部24は、送信キュー5に割り当てられた送信可能時間を、強制的に減少させる。この例では、指示部24は、初期化0.999986秒後の時間差(19マイクロ秒)と初期化0.999987秒後の時間差(18マイクロ秒)との差分(1マイクロ秒)、送信キュー5に割り当てられた送信可能時間を減少させる。その結果、指示部24は、送信キュー5の送信可能時を0.000000500秒に更新する。
送信キューの送信可能時間を減少させる第2後処理の際には、指示部24が、図16および図17を用いて説明した一連の処理を実行する。
−第2後処理の具体例3−
図64は、初期化から0.9999875秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT21参照)。また、図65は、初期化から0.9999875秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図65は、初期化0.9999875秒後に、送信キュー5の送信可能時間を強制的に減少させる処理の例を示す。
図65に示す例では、現在時刻と将来時刻の時間差(0.000017500秒=17.5マイクロ秒)は、閾値(20マイクロ秒)以下の値である。このため、指示部24は、送信キュー5に割り当てられた送信可能時間を、強制的に減少させる。この例では、指示部24は、初期化0.999987秒後の時間差(18マイクロ秒)と初期化0.9999875秒後の時間差(17.5マイクロ秒)との差分(0.5マイクロ秒)、送信キュー5に割り当てられた送信可能時間を減少させる。その結果、指示部24は、送信キュー5の送信可能時を0.000000000秒に更新する。
送信キューの送信可能時間を減少させる第2後処理の際には、指示部24が、図16および図17を用いて説明した一連の処理を実行する。
―先読処理の具体例3―
図66は、初期化から0.999988秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT22参照)。また、図67は、初期化から0.999988秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図67は、初期化0.999988秒後に、送信キュー5の送信可能時間がゼロになった後の例を示す。
図67に示す例では、各送信キューに割り当てられた送信可能時間が、すべてゼロになっている。このため、次のエントリ34Dを先読みするための条件が成立している。
図68は、初期化から0.9999885秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT23参照)。また、図69は、初期化から0.9999885秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図69は、初期化0.9999885秒後に、送信スケジューリング情報34Aのゲートコントロールリスト34Bにおける、リストインデックス“3”のエントリ34D3が先読みされた後の例を示す。
先読処理の際には、先読部20および指示部24が、図8および図9を用いて説明した一連の処理を実行する。
図68および図69の例では、先読部20が、将来時刻を2017年10月16日12時00分00.000007500秒に更新し、送信キュー4に2500ナノ秒の送信可能時間を割り当てる。
−スケジューリング処理の具体例5−
図70は、初期化から0.999989秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT24参照)。また、図71は、初期化から0.999989秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。なお、図71は、初期化0.999989秒後において、送信キュー4に送信所要時間1000ナノ秒のフレームf5が書き込まれた例を示す。
図71に示す例では、現在時刻と将来時刻の時間差(0.000018500秒=18.5マイクロ秒)が閾値(20マイクロ秒)以下の値になっている。このため、この場合、指示部24が、送信キュー4に割り当てられた送信可能時間を強制的に減少させる。この例では、指示部24は、初期化0.9999885秒後の時間差(19マイクロ秒)と初期化0.999989秒後の時間差(18.5マイクロ秒)との差分(0.5マイクロ秒)、送信キュー4に割り当てられた送信可能時間を減少させる。その結果、送信キュー4の送信可能時間は、0.000002000秒に更新される。
また、図71の例では、フレームf5の送信所要時間は、送信キュー4の送信可能時間以下である(符号80参照)。このため、判定部22は、フレームf5をスケジューリング可能と判定する。その結果、スケジューリング部26は、初期化0.999989秒後時点の将来時刻(2017年10月16日12時00分00.000007500秒)を、フレームf5の送信開始予定時刻としてスケジューリングする。
図72は、初期化から0.9999895秒後の、現在時刻tc、将来時刻tf、および、現在時刻tcと将来時刻tfとの時間差tdを示す図である(タイミングT25参照)。また、図73は、初期化から0.9999895秒後における、現在時刻、将来時刻、送信可能時間、送信所要時間、および、スケジューリング済のフレームと送信開始予定時刻、を示す図である。また、図73は、初期化0.9999895秒後に、フレームf5がスケジューリングされた後の例を示す。
スケジューリングの際には、判定部22およびスケジューリング部26が、図10〜図15を用いて説明した、判定処理、スケジューリング処理、および第1後処理の各々を実行する。
以上、具体的な例を挙げて説明したように、本実施の形態の情報処理装置10は、スケジューリング部26が、送信スケジューリング情報34Aにおける、先読部20によって先読みされたエントリ34Dに基づいて、フレームの送信開始予定時刻をスケジューリングする。
従って、本実施の形態の情報処理装置10では、高精度な送信タイミング制御のためのスケジューリングが可能となる。すなわち、本実施の形態の情報処理装置10では、送信スケジューリング情報34Aに基づいた動的なスケジューリングによる、送信制御を実現することができる。
次に、上記実施の形態の情報処理装置10のハードウェア構成の一例を説明する。図74は、上記実施の形態の情報処理装置10のハードウェア構成図の一例である。
上記実施の形態の情報処理装置10は、CPU40などの制御装置と、ROM(Read Only Memory)41やRAM(Random Access Memory)42やHDD(ハードディスクドライブ)44などの記憶装置と、各種機器とのインターフェースであるI/F部43と、各部を接続するバス45とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
上記実施の形態の情報処理装置10では、CPU40が、ROM41からプログラムをRAM42上に読み出して実行することにより、上記各部がコンピュータ上で実現される。
なお、上記実施の形態の情報処理装置10で実行される上記各処理を実行するためのプログラムは、HDD44に記憶されていてもよい。また、上記実施の形態の情報処理装置10で実行される上記各処理を実行するためのプログラムは、ROM41に予め組み込まれて提供されていてもよい。
また、上記実施の形態の情報処理装置10で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施の形態の情報処理装置10で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施の形態の情報処理装置10で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
なお、上記には、本発明の実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理装置
20 先読部
22 判定部
24 指示部
26 スケジューリング部

Claims (16)

  1. 1または複数の送信キューの各々の送信可否状態と前記送信可否状態の維持タイミングとを規定した1または複数のエントリを含む送信スケジューリング情報における、現在時刻より未来の前記維持タイミングに対応する前記エントリを先読みする先読部と、
    先読みした前記エントリに基づいて、前記送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングするスケジューリング部と、
    を備える情報処理装置。
  2. スケジューリングされた前記送信開始予定時刻に基づいて、前記フレームの送信を開始する送信部、
    を備える請求項1に記載の情報処理装置。
  3. 前記スケジューリング情報から次の前記エントリを先読みする先読指示を前記先読部へ通知する指示部を備え、
    前記先読部は、前記先読指示を受付けたときに、次の前記エントリを先読みする、
    請求項1または請求項2に記載の情報処理装置。
  4. 前記指示部は、
    次の前記送信開始予定時刻の候補となる将来時刻に前記送信キューに割当てられている送信可能時間に基づいて、前記先読指示を前記先読部へ通知する、
    請求項3に記載の情報処理装置。
  5. 前記指示部は、
    次の前記送信開始予定時刻の候補となる将来時刻、および前記将来時刻と現在時刻との時間差に基づいて、前記先読指示を前記先読部へ通知する、
    請求項3に記載の情報処理装置。
  6. 前記送信キューに保持されている送信待機中の前記フレームの内、前記送信開始予定時刻をスケジューリング可能な前記フレームを判定する判定部を備え、
    前記スケジューリング部は、
    スケジューリング可能と判定された前記フレームの、前記送信開始予定時刻をスケジューリングする、
    請求項1〜請求項5の何れか1項に記載の情報処理装置。
  7. 前記判定部は、
    前記送信キューに保持されている送信待機中の前記フレームの内、送信所要時間が、次の前記送信開始予定時刻の候補となる将来時刻において前記送信キューに割当てられている送信可能時間より小さい前記フレームを、前記送信開始予定時刻をスケジューリング可能な前記フレームとして判定する、
    請求項6に記載の情報処理装置。
  8. 前記スケジューリング部は、
    前記判定部によって前記送信開始予定時刻をスケジューリング可能と判定された前記フレームから、スケジューリング対象の前記フレームを選択し、前記送信開始予定時刻をスケジューリングする、
    請求項6または請求項7に記載の情報処理装置。
  9. 前記先読部は、
    先読みした前記エントリに基づいて、次の前記送信開始予定時刻の候補となる将来時刻、および該将来時刻において前記送信キューに割当てられる送信可能時間、を更新する、
    請求項1〜請求項8の何れか1項に記載の情報処理装置。
  10. 前記スケジューリング部は、
    スケジューリングした前記フレームの送信所要時間を用いて、次の前記送信開始予定時刻の候補となる将来時刻、および該将来時刻において前記送信キューに割当てられる送信可能時間、を更新する、
    請求項1〜請求項9の何れか1項に記載の情報処理装置。
  11. 前記指示部は、
    次の前記送信開始予定時刻の候補となる将来時刻と現在時刻との時間差に基づいて、該将来時刻において前記送信キューに割当てられる送信可能時間を更新する、
    請求項3〜請求項5の何れか1項に記載の情報処理装置。
  12. 前記維持タイミングは、
    対応する前記送信可否状態を維持する期間の開始時刻および終了時刻、または、対応する前記送信可否状態を維持する期間および該期間の開始時刻によって規定される、
    請求項1〜請求項11の何れか1項に記載の情報処理装置。
  13. 前記スケジューリング情報は、
    IEEE 802.1Qbv規格に規定された情報を含む、
    請求項1〜請求項12の何れか1項に記載の情報処理装置。
  14. 1または複数の送信キューの各々の送信可否状態と前記送信可否状態の維持タイミングとを規定した1または複数のエントリを含む送信スケジューリング情報における、現在時刻より未来の前記維持タイミングに対応する前記エントリを先読みするステップと、
    先読みした前記エントリに基づいて、前記送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングするステップと、
    を含む情報処理方法。
  15. 1または複数の送信キューの各々の送信可否状態と前記送信可否状態の維持タイミングとを規定した1または複数のエントリを含む送信スケジューリング情報における、現在時刻より未来の前記維持タイミングに対応する前記エントリを先読みするステップと、
    先読みした前記エントリに基づいて、前記送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングするステップと、
    をコンピュータに実行させるためのプログラム。
  16. 1または複数の送信キューの各々の送信可否状態と前記送信可否状態の維持タイミングとを規定した1または複数のエントリを含む送信スケジューリング情報における、現在時刻より未来の前記維持タイミングに対応する前記エントリを先読みする先読部と、
    先読みした前記エントリに基づいて、前記送信キューに保持されている送信待機中のフレームの、送信開始予定時刻をスケジューリングするスケジューリング部と、
    スケジューリングされた前記送信開始予定時刻に基づいて、前記フレームの送信を開始する送信部と、
    を備える情報処理装置。
JP2017221998A 2017-11-17 2017-11-17 情報処理装置、情報処理方法、およびプログラム Active JP6768625B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017221998A JP6768625B2 (ja) 2017-11-17 2017-11-17 情報処理装置、情報処理方法、およびプログラム
EP18159578.6A EP3487133B1 (en) 2017-11-17 2018-03-01 Information processing apparatus, information processing method, and computer-readable medium
US15/911,385 US10659557B2 (en) 2017-11-17 2018-03-05 Information processing apparatus, information processing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017221998A JP6768625B2 (ja) 2017-11-17 2017-11-17 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019096930A true JP2019096930A (ja) 2019-06-20
JP6768625B2 JP6768625B2 (ja) 2020-10-14

Family

ID=61768044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017221998A Active JP6768625B2 (ja) 2017-11-17 2017-11-17 情報処理装置、情報処理方法、およびプログラム

Country Status (3)

Country Link
US (1) US10659557B2 (ja)
EP (1) EP3487133B1 (ja)
JP (1) JP6768625B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032208B2 (en) 2019-03-14 2021-06-08 KABUSHIKl KAISHA TOSHIBA Information processing apparatus, information processing method, and computer program product
JP2021190901A (ja) * 2020-06-01 2021-12-13 株式会社東芝 通信システム、通信方法およびプログラム
JP2021190902A (ja) * 2020-06-01 2021-12-13 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
US11425711B2 (en) 2018-11-20 2022-08-23 Kabushiki Kaisha Toshiba Transmission device, communication device, communication system, transmission method, and computer program product
WO2023012948A1 (ja) * 2021-08-04 2023-02-09 日本電信電話株式会社 通信装置、通信システム、及び通信方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110891026B (zh) * 2018-09-07 2022-11-25 华为技术有限公司 一种流量调度方法、设备及系统
US11228942B2 (en) * 2020-03-27 2022-01-18 Mitsubishi Electric Research Laboratories, Inc. Scheduling data traffic in wireless time sensitive networks
JP7467325B2 (ja) * 2020-12-17 2024-04-15 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
EP4099649A1 (en) * 2021-05-31 2022-12-07 Mitsubishi Electric R&D Centre Europe B.V. Integrated scheduler for iec/ieee 60802 end-stations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10276221A (ja) * 1997-03-25 1998-10-13 Internatl Business Mach Corp <Ibm> セル伝送のスケジューリング方法および装置
JP2019068387A (ja) * 2017-10-05 2019-04-25 オムロン株式会社 通信システム、通信装置および通信方法

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560230B1 (en) * 1999-02-01 2003-05-06 Redback Networks Inc. Packet scheduling methods and apparatus
US6470016B1 (en) * 1999-02-09 2002-10-22 Nortel Networks Limited Servicing output queues dynamically according to bandwidth allocation in a frame environment
US6952424B1 (en) * 2000-04-13 2005-10-04 International Business Machines Corporation Method and system for network processor scheduling outputs using queueing
JP3584859B2 (ja) * 2000-06-29 2004-11-04 日本電気株式会社 パケットスケジューリング装置
JP2002124985A (ja) 2000-10-18 2002-04-26 Sony Corp 送信装置、通信システムおよび送信方法
US20020089994A1 (en) * 2001-01-11 2002-07-11 Leach, David J. System and method of repetitive transmission of frames for frame-based communications
US7327674B2 (en) * 2002-06-11 2008-02-05 Sun Microsystems, Inc. Prefetching techniques for network interfaces
EP1509012A2 (en) * 2003-08-20 2005-02-23 Samsung Electronics Co., Ltd. Method and apparatus for scheduling uplink packet transmission in a mobile communication system
JP4335619B2 (ja) * 2003-09-04 2009-09-30 株式会社エヌ・ティ・ティ・ドコモ パケット優先制御装置及びその方法
JP4208710B2 (ja) * 2003-12-24 2009-01-14 富士通株式会社 フレーム伝送装置
US7843906B1 (en) * 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
JP2005260780A (ja) * 2004-03-15 2005-09-22 Canon Inc フレームを送信する送信装置およびフレーム送信の際の優先制御方法
JP2006245882A (ja) 2005-03-02 2006-09-14 Matsushita Electric Ind Co Ltd 送信タイミング制御装置
KR100704674B1 (ko) * 2005-06-27 2007-04-06 한국전자통신연구원 휴대 인터넷 시스템의 스케줄링 장치 및 그 방법
WO2007100547A2 (en) * 2006-02-24 2007-09-07 Interdigital Technology Corporation Wireless communication method and apparatus for selecting between transmission of short-version and full-version uplink scheduling requests
US7647446B2 (en) * 2006-10-03 2010-01-12 Silex Technology, Inc. Networked isochronous USB communication
CN101631137B (zh) * 2008-07-15 2012-10-10 株式会社日立制作所 通信控制装置及通信控制方法
JP2011024027A (ja) 2009-07-16 2011-02-03 Fujitsu Ltd パケット送信制御装置、ハードウェア回路およびプログラム
EP2309680B1 (en) * 2009-10-08 2017-07-19 Solarflare Communications Inc Switching API
US8611274B2 (en) * 2010-06-10 2013-12-17 Cambium Networks, Ltd Method for scheduling transmissions in communication systems
JP2012039539A (ja) * 2010-08-11 2012-02-23 Fujitsu Ltd 通信装置、中継装置及び通信制御方法
US9215486B2 (en) * 2010-08-13 2015-12-15 Simon Fraser University System and method for multiplexing of variable bit-rate video streams in mobile video systems
CN103931148B (zh) * 2012-02-02 2017-06-09 华为技术有限公司 流量调度设备
US9960872B2 (en) * 2012-03-08 2018-05-01 Marvell International Ltd. Systems and methods for performing a soft-block of a queue based on a size of a remaining period of a guard band
US9882823B2 (en) * 2012-03-08 2018-01-30 Marvell World Trade Ltd. Systems and methods for blocking transmission of a frame in a network device
US9288149B2 (en) * 2012-03-08 2016-03-15 Marvell World Trade Ltd. Method and apparatus for transmitting packets in accordance with IEEE 802.1 Qbv
KR101720319B1 (ko) * 2012-06-13 2017-04-04 한국전자통신연구원 무선랜 시스템에서의 프레임 스케쥴링 방법 및 장치
US9106557B2 (en) * 2013-03-13 2015-08-11 Comcast Cable Communications, Llc Scheduled transmission of data
US10064213B2 (en) * 2013-12-16 2018-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Method and network node for pre-scheduling grant transmission
EP3217614B1 (en) * 2016-03-09 2018-09-19 Mitsubishi Electric R&D Centre Europe B.V. Multiplexing method for scheduled frames in an ethernet switch
US10447606B2 (en) * 2017-04-12 2019-10-15 General Electric Company Time-sensitive networking differentiation of traffic based upon content
US10218628B2 (en) * 2017-04-12 2019-02-26 General Electric Company Time sensitive network (TSN) scheduler with verification
EP3491791B1 (en) * 2016-07-26 2022-01-05 Telefonaktiebolaget LM Ericsson (PUBL) Packet processing technique for a communication network
JP7013650B2 (ja) * 2017-01-30 2022-02-01 富士通株式会社 パケット処理装置及びパケット処理方法
US10425321B2 (en) * 2017-04-25 2019-09-24 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for testing time sensitive network (TSN) elements
US10659374B2 (en) * 2017-09-29 2020-05-19 Electronics And Telecommunications Research Institute Method and apparatus for controlling frame transmission
EP3468118B1 (en) * 2017-10-04 2023-10-04 TTTech Computertechnik AG Method and device to configure real-time networks
US10849142B2 (en) * 2018-03-19 2020-11-24 Qualcomm Incorporated Time-sensitive networking frame pre-emption across cellular interface
JP7040209B2 (ja) * 2018-03-27 2022-03-23 富士通株式会社 パケット処理装置及びパケット処理方法
US10754816B2 (en) * 2018-12-21 2020-08-25 Intel Corporation Time sensitive networking device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10276221A (ja) * 1997-03-25 1998-10-13 Internatl Business Mach Corp <Ibm> セル伝送のスケジューリング方法および装置
JP2019068387A (ja) * 2017-10-05 2019-04-25 オムロン株式会社 通信システム、通信装置および通信方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11425711B2 (en) 2018-11-20 2022-08-23 Kabushiki Kaisha Toshiba Transmission device, communication device, communication system, transmission method, and computer program product
US11032208B2 (en) 2019-03-14 2021-06-08 KABUSHIKl KAISHA TOSHIBA Information processing apparatus, information processing method, and computer program product
JP2021190901A (ja) * 2020-06-01 2021-12-13 株式会社東芝 通信システム、通信方法およびプログラム
JP2021190902A (ja) * 2020-06-01 2021-12-13 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
JP7337750B2 (ja) 2020-06-01 2023-09-04 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
JP7374849B2 (ja) 2020-06-01 2023-11-07 株式会社東芝 通信システム、通信方法およびプログラム
US11882053B2 (en) 2020-06-01 2024-01-23 Kabushiki Kaisha Toshiba Communication system, communication method, and computer program product
WO2023012948A1 (ja) * 2021-08-04 2023-02-09 日本電信電話株式会社 通信装置、通信システム、及び通信方法

Also Published As

Publication number Publication date
JP6768625B2 (ja) 2020-10-14
US20190158620A1 (en) 2019-05-23
US10659557B2 (en) 2020-05-19
EP3487133B1 (en) 2020-04-22
EP3487133A1 (en) 2019-05-22

Similar Documents

Publication Publication Date Title
JP6768625B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6889126B2 (ja) 転送制御装置、転送制御方法及びプログラム
US10412017B2 (en) Transfer device, transfer method, and computer program product
CN109690512B (zh) 具有触发操作的gpu远程通信
US11175854B2 (en) Data processing systems
JP7000088B2 (ja) 通知制御装置、通知制御方法及びプログラム
JP2020149503A (ja) 情報処理装置、情報処理方法、およびプログラム
JP7191253B2 (ja) パケット交換ネットワークにおいて通信エンティティのコンピューター手段によって実施される方法、並びにそのコンピュータープログラム及びコンピューター可読非一時的記録媒体、並びにパケット交換ネットワークの通信エンティティ
CN114390000A (zh) 基于入队整形的tsn流量调度方法及相关设备
JP7374849B2 (ja) 通信システム、通信方法およびプログラム
JP7354361B2 (ja) 処理装置、処理方法及びプログラム
JP5702708B2 (ja) パケット制御方法及びパケット制御装置
US9166804B2 (en) Packet transmission control device, packet transmission control method, and program
JP2020088514A (ja) 送信装置、通信装置、通信システム、送信方法、およびプログラム
CN112202596A (zh) 基于时间敏感网络系统的抽象模型构建装置
JP7467325B2 (ja) 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
WO2023012948A1 (ja) 通信装置、通信システム、及び通信方法
US20230171200A1 (en) Communication control device, information processing device, communication control method, information processing method, and storage medium
CN114095513B (zh) 有限带宽场景下转发流量和镜像流量调度的方法及应用
WO2024127519A1 (ja) 通信システム、制御装置、及びプログラム
JP2022157417A (ja) 情報処理装置、車両、プログラム、及び情報処理方法
CN117240728A (zh) 一种基于窗口缩小的tsn调度优化方法
CN114172851A (zh) 基于时间敏感网络的传输资源模型构建装置
JP5268477B2 (ja) 情報処理装置およびその制御方法、データ処理システム
CN114189452A (zh) 基于时间敏感网络的传输资源模型构建方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200923

R151 Written notification of patent or utility model registration

Ref document number: 6768625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151