JP6531750B2 - 送信装置 - Google Patents

送信装置 Download PDF

Info

Publication number
JP6531750B2
JP6531750B2 JP2016240684A JP2016240684A JP6531750B2 JP 6531750 B2 JP6531750 B2 JP 6531750B2 JP 2016240684 A JP2016240684 A JP 2016240684A JP 2016240684 A JP2016240684 A JP 2016240684A JP 6531750 B2 JP6531750 B2 JP 6531750B2
Authority
JP
Japan
Prior art keywords
message
buffer
transmission
stored
buffers
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.)
Active
Application number
JP2016240684A
Other languages
English (en)
Other versions
JP2018098616A (ja
Inventor
範人 大久保
範人 大久保
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2016240684A priority Critical patent/JP6531750B2/ja
Priority to DE102017127223.2A priority patent/DE102017127223A1/de
Priority to US15/819,744 priority patent/US10579555B2/en
Priority to CN201711296304.7A priority patent/CN108234352B/zh
Publication of JP2018098616A publication Critical patent/JP2018098616A/ja
Application granted granted Critical
Publication of JP6531750B2 publication Critical patent/JP6531750B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/6295Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、送信装置に関する。
従来、優先度の高いデータを優先的にバスに出力する出力部を備えたデータ送信装置が知られている。従来のデータ送信装置は、複数のメッセージバッファと、送信バッファに格納されたデータを、当該データの優先度が高いほど領域優先度の高いメッセージバッファに書き込む分配部とを備える。前記出力部は、前記複数のメッセージバッファに格納されたデータのうち領域優先度の高いメッセージバッファに格納されたデータを優先的にバスに出力する。
このデータ送信装置によれば、領域優先度の高いメッセージバッファに格納されたデータをバスへ出力することが、領域優先度の低いメッセージバッファに格納されたデータをバスへ出力することが完了するまで待たされることを防止することができる。このようなデータ送信装置に関する先行技術文献として、例えば、特許文献1が挙げられる。
特開2014−033339号公報
従来技術では、優先度の高いグループ内のデータが格納される領域優先度の高いメッセージバッファと、優先度の低いグループ内のメッセージが格納される領域優先度の低いメッセージバッファとが別々に存在する。そのため、優先度の高いグループ内のデータを領域優先度の高いメッセージバッファに格納することが、優先度の低いグループ内のデータが領域優先度の低いメッセージバッファから無くなるまで待たされることはない。
しかしながら、個々のグループに着目すると、一のグループ内で優先度の高いデータをメッセージバッファに格納することが、当該一のグループ内で優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象が発生するおそれがある。この滞留現象は、優先度の高いグループか低いグループかにかかわらず、発生するおそれがある。
このような滞留現象の発生を抑制するには、領域優先度の異なるメッセージバッファの数を増やして、一つのメッセージバッファに格納されるデータの優先度の範囲を狭める対策案が考えられる。しかしながら、この対策案では、滞留現象の発生を抑制する度合いを強めるほど、必要なメッセージバッファが増えるため、メッセージバッファの数を節約することが難しい。
そこで、本開示の一態様では、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制でき、且つ、メッセージバッファの数を節約できる、送信装置の提供を目的とする。
上記目的を達成するため、本開示の一態様では、
通信線に接続される送信装置であって、
複数の送信バッファと、
複数のメッセージバッファと、
前記複数の送信バッファに格納されたデータの中から、前記複数のメッセージバッファに格納されたデータよりも優先度の高いデータを探索するデータ探索部と、
データが格納されていない空きバッファを前記複数のメッセージバッファの中から順に探索する空きバッファ探索部と、
前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたデータを設定するデータ設定部と、
前記複数のメッセージバッファに格納されたデータを前記通信線へ送信する送信制御部とを備える、送信装置が提供される。
本開示の一態様に係る送信装置によれば、データが格納されていない空きバッファは、前記複数のメッセージバッファの中から順に前記空きバッファ探索部により探索される。そして、前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたデータが設定される。このため、前記複数のメッセージバッファのうち、データが格納されているバッファ(空き無しバッファ)が一つ以上存在していても、空き無しバッファ以外のバッファ(つまり、空きバッファ)に、前記データ探索部により探索されたデータが設定される。よって、前記複数の送信バッファに格納されたデータの中から探索された優先度の高いデータは、空きバッファが探索されれば、空き無しバッファが空きバッファに変わるまで待たされることなく、その探索された空きバッファに格納される。したがって、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制することができる。
また、本開示一態様に係る送信装置によれば、前記データ探索部により探索されたデータが設定される空きバッファは、前記複数のメッセージバッファの中から順に探索される。そのため、前記データ探索部により探索されたデータが設定されるバッファは、前記複数のメッセージバッファのうち、特定の一のバッファに固定されずに動的に変化する。よって、前記送信バッファと同じ数のメッセージバッファを必ずしも用意する必要が無くなるので、前記メッセージバッファを前記送信バッファの数よりも減らすことができる。したがって、前記メッセージバッファの数を節約することができる。
また、本開示の一態様に係る送信装置において、
データが格納されているデータ有状態とデータが格納されていないデータ無状態とのいずれか一方を表すデータ有無情報を前記複数のメッセージバッファのそれぞれについて記憶する記憶部と、
前記複数のメッセージバッファのうちデータが前記データ設定部により設定されたバッファについては、前記データ有無情報の状態を前記データ無状態から前記データ有状態に変更し、前記複数のメッセージバッファのうち前記通信線へのデータの送信が前記送信制御部により完了したバッファについては、前記データ有無情報の状態を前記データ有状態から前記データ無状態に変更する状態管理部とを備え、
前記空きバッファ探索部は、前記データ有無情報の状態が前記データ有状態であるのか前記データ無状態であるのかに基づいて、データが格納されていない空きバッファを前記複数のメッセージバッファの中から探索する。
これにより、前記複数のメッセージバッファのそれぞれが、データが格納されているデータ有状態であるのかデータが格納されていないデータ無状態であるのかを、容易に管理することができる。したがって、前記空きバッファ探索部は、データが格納されていない空きバッファを前記複数のメッセージバッファの中から容易に探索できる。
また、本開示の一態様に係る送信装置において、
前記データ探索部は、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータを探索する。
これにより、データが格納されていない空きバッファは、前記複数のメッセージバッファの中から順に前記空きバッファ探索部により探索される。そして、前記空きバッファ探索部により探索された空きバッファに、前記複数の送信バッファの格納されたデータの中で最も優先度の高いデータが設定される。このため、前記複数のメッセージバッファのうち、空き無しバッファが一つ以上存在していても、空きバッファに、前記複数の送信バッファの格納されたデータの中で最も優先度の高いデータが設定される。よって、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータは、空きバッファが探索されれば、空き無しバッファが空きバッファに変わるまで待たされることなく、その探索された空きバッファに格納される。したがって、前記複数の送信バッファに格納されたデータの中で最も優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制することができる。
また、本開示の一態様に係る送信装置において、
前記送信制御部は、前記複数のメッセージバッファに格納されたデータの中で最も優先度の高いデータを前記通信線へ送信する。
これにより、前記複数のメッセージバッファの中で最も優先度の高いデータが前記通信線へ送信される。したがって、前記複数のメッセージバッファに格納された最も優先度の高いデータの送信が、前記複数のメッセージバッファに格納された優先度の低いデータの送信が完了するまで待たされる送信滞留現象の発生を抑制することができる。
本開示の一態様によれば、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制でき、且つ、メッセージバッファの数を節約できる。
送信装置のハードウェア構成とその動作の一例を示す図である。 メッセージバッファ状態管理装置の機能的構成の一例を示す図である。 送信装置の動作の流れの一例を示すフローチャートである。 高優先メッセージの探索処理の流れの一例を示すフローチャートである。 空きの探索/送信要求処理の流れの一例を示すフローチャートである。 送信完了処理の流れの一例を示すフローチャートである。
以下、本開示に係る実施形態を図面を参照して説明する。
図1は、送信装置のハードウェア構成とその動作の一例を示す図である。送信ECU(Electronic Control Unit)1は、通信線に接続される送信装置の一例であり、通信バス60は、通信線の一例である。送信ECU1と通信バス60とは車両に搭載されている。通信バス60には、送信ECU1が通信バス60へ送信したデータを受信する受信ECU等の受信装置(不図示)が少なくとも一つ接続されている。図1に示される通信システムでは、送信ECU1と受信ECUとの間のデータの送受は、CAN(Control Area Network)通信により行われる。
送信ECU1は、通信バス60に接続されており、通信バス60へメッセージを送信する。メッセージは、データの一例である。受信ECUは、通信バス60に接続されており、通信バス60からメッセージを受信する。通信バス60は、送信ECU1と受信ECUとの間で送受されるメッセージが伝送する伝送路である。
送信ECU1は、マイコン11と、通信コントローラ17とを備える電子制御装置の一例である。マイコン11は、送信要求バッファ12と、メッセージバッファ状態管理装置10(以下、「管理装置10」と称する)とを備えるマイクロコンピュータの一例である。通信コントローラ17は、マイコン11と通信バス60との間のメッセージの送受を制御するハードウェア装置である。通信コントローラ17は、送信完了レジスタ18と、送信制御部19と、送信メッセージバッファ20とを備える。
送信要求バッファ12は、送信ECU1が通信バス60へ送信することが所定の上位アプリケーションプログラムから要求されたメッセージが格納される記憶領域である。この上位アプリケーションプログラムは、送信ECU1内で実行されるプログラム、又は送信ECU1以外のECU内で実行されるプログラムである。
送信要求バッファ12は、複数の送信バッファ[j]を有する。jは、非負の整数を表し、図1には、M個の送信バッファ[j]が示されている。また、図1は、優先度が低いメッセージAが送信バッファ[0]に格納され、優先度が中程度のメッセージBが送信バッファ[1]に格納され、優先度が高いメッセージCが送信バッファ[2]に格納されている一状態例を示す。
各メッセージに付与されている優先度は、通信バス60上を伝送する他のメッセージとの間で行われる通信調停での優先度を表す。例えば、各メッセージに付与されている識別番号は、通信調停での優先度を表し、その識別番号の数値が小さいほど、通信調停での優先度が高い(つまり、他のメッセージとの通信調停で勝ちやすい)ことを表す。識別番号の具体例として、周知のCAN_IDが挙げられる。
管理装置10は、送信メッセージバッファ20の状態を管理する。送信メッセージバッファ20は、通信バス60へ送信されるメッセージが通信バス60へ送信される前に一時的に格納される記憶領域である。送信メッセージバッファ20は、複数のメッセージバッファ[i]を有する。iは、非負の整数を表し、図1には、N個のメッセージバッファ[i]が示されている。Nは、Mよりも小さな正の整数を表す。管理装置10は、複数のメッセージバッファ[i]のそれぞれの状態が"送信中"であるのか"空き"であるのかを管理する。
管理装置10は、プロセッサの一例であるCPU(Central Processing Unit)15と、ROM(Read Only Memory)16と、RAM21(Random Access Memory)とを備える。RAM21には、保持バッファ13と、管理バッファ14とが含まれている。
保持バッファ13は、送信要求バッファ12から取得されたメッセージが一時的に格納される記憶領域である。
管理バッファ14は、データが格納されているデータ有状態とデータが格納されていないデータ無状態とのいずれか一方を表す内部保持情報[i]を複数のメッセージバッファ[i]のそれぞれについて記憶する記憶領域である。内部保持情報「i]は、データ有無情報の一例である。
内部保持情報[i]が"送信中"となっている状態は、データ有状態を表し、つまり、内部保持情報[i]とインデックスiが同じメッセージバッファ[i]にデータが格納されている状態を表す。より具体的には、内部保持情報[i]とインデックスiが同じメッセージバッファ[i]に格納されているメッセージが、通信バス60への送信が完了していない状態を"送信中"とする。
一方、内部保持情報[i]が"空き"となっている状態は、データ無状態を表し、つまり、内部保持情報[i]とインデックスiが同じメッセージバッファ[i]にデータが格納されていない状態を表す。より具体的には、内部保持情報[i]とインデックスiが同じメッセージバッファ[i]に、メッセージが格納されていない状態を"空き"とする。
図2は、メッセージバッファ状態管理装置の機能的構成の一例を示す図である。管理装置10は、メッセージ探索部31と、空きバッファ探索部32と、メッセージ設定部33と、状態管理部34とを備える。各部の処理機能を、図1を参照して以下説明する。
メッセージ探索部31は、データ探索部の一例である。メッセージ探索部31は、送信要求バッファ12内のM個の送信バッファ[j]に格納されたメッセージの中から、送信メッセージバッファ20内のN個のメッセージバッファ[i]に格納されたメッセージよりも優先度の高いメッセージを探索する。メッセージ探索部31は、例えば、M個の送信バッファ[j]に格納されたメッセージの中で最も優先度の高いメッセージを探索する。
空きバッファ探索部32は、空きバッファ探索部の一例である。空きバッファ探索部32は、データが格納されていない空きバッファをN個のメッセージバッファ[i]の中から順に探索する。
メッセージ設定部33は、データ設定部の一例である。メッセージ設定部33は、空きバッファ探索部32により探索された空きバッファに、メッセージ探索部31により探索されたメッセージを設定する。
状態管理部34は、状態管理部の一例である。状態管理部34は、N個のメッセージバッファ[i]のうちメッセージがメッセージ設定部33により設定されたバッファについては、内部保持情報[i]の状態を"空き"から"送信中"に変更する。一方、状態管理部34は、N個のメッセージバッファ[i]のうち通信バス60へのメッセージの送信が送信制御部19により完了したバッファについては、内部保持情報[i]の状態を"送信中"から"空き"に変更する。
したがって、空きバッファ探索部32は、内部保持情報[i]の状態が"空き"であるのか"送信中"であるのかに基づいて、メッセージが格納されていない空きバッファをN個のメッセージバッファ[i]の中から探索できる。
メッセージ探索部31と、空きバッファ探索部32、メッセージ設定部33及び状態管理部34の各部の処理機能は、ROM16に記憶されたプログラムをCPU15が実行することによって実現される。プログラムは、CPU15に処理の手順を実行させるプログラムを含む。RAM21は、CPU15が実行するプログラムによる演算の中間データなどを含む各種データを格納する。
図1において、送信制御部19は、送信メッセージバッファ20に格納されたメッセージ(以下、「メッセージX」と称する)を通信バス60へ送信することを制御する。メッセージA,B,Cは、それぞれ、メッセージXの一例である。送信制御部19は、メッセージXが送信メッセージバッファ20に格納された場合、送信メッセージバッファ20に格納されたメッセージXを通信バス60へ送信することを試みる。送信制御部19は、通信バス60上を伝送する他のメッセージとの通信調停に勝った場合、そのメッセージXの通信バス60への送信が完了したことを表す送信完了データを、送信完了レジスタ18に格納する。送信完了レジスタ18は、データ格納部の一例である。送信完了データは、送信完了フラグデータとも称する。通信コントローラ17は、送信完了レジスタ18をN個のメッセージバッファ[i]のそれぞれについて備える。
送信制御部19は、通信バス60へのメッセージXの送信を完了させたとき、通信バス60へのメッセージXの送信が完了したことを表す送信完了データを、その送信が完了したメッセージX用の送信完了レジスタ18に格納する。一方、送信制御部19は、メッセージXの送信完了データをその送信が完了したメッセージX用の送信完了レジスタ18に格納してから、通信バス60へのメッセージの送信を次に実行するまでに、送信完了レジスタ18からその送信完了データを削除する。
また、通信バス60へのメッセージXの送信が完了すると、その送信が完了したメッセージXが格納されていたメッセージバッファ[i]は、"空き"となる。
次に、送信ECU1の一動作例について、図1を参照して説明する。
一動作例の前提条件は、メッセージバッファ[0]に格納された低優先度のメッセージAと、メッセージバッファ[2]に格納された中優先度のメッセージBとについて、通信調停での負けにより、通信バス60への送信が完了していない状況とする。この状況で、高優先度のメッセージCが送信要求バッファ12の送信バッファ[2]に格納されてからの動作例について説明する。
メッセージ探索部31は、送信要求バッファ12内のM個の送信バッファ[j]に格納されたメッセージの中から、送信メッセージバッファ20内のN個のメッセージバッファ[i]に格納されたメッセージよりも優先度の高いメッセージを取得する。この場合、メッセージ探索部31は、送信バッファ[0][1][2]に格納されたメッセージA,B,Cのうち、メッセージバッファ[0][2]に格納されたメッセージA,Bよりも優先度の高いメッセージCを取得して保持バッファ13に格納する。送信バッファから取得されたメッセージは、その送信バッファから無くなる。
空きバッファ探索部32は、管理バッファ14に格納された内部保持情報[i]に基づいて、メッセージバッファ[1]が空きバッファであることを特定する。メッセージ設定部33は、空きバッファ探索部32により探索された空きのメッセージバッファ[1]に、メッセージ探索部31により探索されたメッセージCを設定する。
送信制御部19は、複数のメッセージバッファ[i]に格納されたメッセージの中で最も優先度の高いメッセージを通信バス60へ送信する。したがって、送信制御部19は、メッセージバッファ[0][1][2]に格納されたメッセージA,C,Bの中で最も優先度の高いメッセージCをメッセージA,Bよりも早く通信バス60へ送信できる。
したがって、最も優先度の高いメッセージCを送信メッセージバッファ20に格納することが、優先度の比較的低いメッセージA,Bが送信メッセージバッファ20から無くなるまで待たされる滞留現象の発生を抑制することができる。
また、送信メッセージバッファ20に格納された最も優先度の高いメッセージCの送信が、送信メッセージバッファ20に格納された優先度の比較的低いメッセージA,Bの送信が完了するまで待たされる送信滞留現象の発生を抑制することができる。
図3は、送信装置の動作の流れの一例を示すフローチャートである。送信装置の一例である送信ECU1の管理装置10は、図3に示されるスタートからエンドまでの処理を周期的に繰り返す。
管理装置10は、通信バス60へメッセージを送信することが要求されている場合、高優先メッセージの探索処理をステップS100にて実行した後に、空きの探索/送信要求処理をステップS200にて実行する。
図4は、高優先メッセージの探索処理の流れの一例を示すフローチャートである。
ステップS110にて、管理装置10のメッセージ探索部31は、ループカウンタを初期化するため、jを0に設定する。
ステップS120にて、メッセージ探索部31は、jが送信バッファ[j]のバッファ段数M以下であるか否かを判定する。メッセージ探索部31は、jが送信バッファ[j]のバッファ段数M以下であると判定した場合、ステップS130の処理を実行する。
ステップS130にて、メッセージ探索部31は、送信バッファ[j]が"空き"か否かを判定する。送信バッファ[j]が"空き"である場合(ステップS130Yes)、送信バッファ[j]にメッセージが格納されていないことになるので、メッセージ探索部31は、別の送信バッファが空きであるか否かを探索するため、jを一つインクリメントする(ステップS160)。メッセージ探索部31は、jのインクリメント後、ステップS120の処理を実行する。
一方、メッセージ探索部31は、送信バッファ[j]が"空き"ではないと判定した場合(ステップS130No)、送信バッファ[j]にメッセージが格納されていることになる。この場合、メッセージ探索部31は、ステップS140の処理を実行する。
ステップS140にて、メッセージ探索部31は、送信バッファ[j]に格納された優先度が、保持バッファ13に現在格納されているメッセージの優先度よりも高いか否かを判定する。
メッセージ探索部31は、送信バッファ[j]に格納された優先度が、保持バッファ13に現在格納されているメッセージの優先度よりも高い場合、その送信バッファ[j]に格納されたメッセージを取得する。そして、メッセージ探索部31は、保持バッファ13に現在格納されているメッセージをその取得したメッセージに置換する(ステップS150)。ステップS150の後、メッセージ探索部31は、別の送信バッファについて探索するため、jを一つインクリメントする(ステップS160)。
一方、メッセージ探索部31は、送信バッファ[j]に格納された優先度が、保持バッファ13に現在格納されているメッセージの優先度よりも高くない場合、その送信バッファ[j]からメッセージを取得することなく、ステップS160の処理を実行する。
ステップS160の処理後、ステップS120の処理が再び行われる。ステップS120にて、メッセージ探索部31は、インデックスjが送信バッファ[j]のバッファ段数Mを超えたと判定した場合、M個の送信バッファ[j]全てについて探索したことになるので、高優先メッセージの探索処理を終了させる。
高優先メッセージの探索処理が終了すると、保持バッファ13には、M個の送信バッファ[j]に格納されたメッセージの中で最も優先度の高いメッセージが格納されていることになる。高優先メッセージの探索処理の終了後、空きの探索/送信要求処理(図5)が実行される。
図5は、空きの探索/送信要求処理の流れの一例を示すフローチャートである。
ステップS210にて,管理装置10の空きバッファ探索部32は、ループカウンタを初期化するため、iを0に設定する。
ステップS220にて、空きバッファ探索部32は、iが内部保持情報[i]の総インデックス数N以下であるか否かを判定する。空きバッファ探索部32は、iが内部保持情報[i]の総インデックス数N以下であると判定した場合、ステップS230の処理を実行する。
ステップS230にて、空きバッファ探索部32は、内部保持情報[i]の状態が"空き"か否かを判定する。内部保持情報[i]が"空き"ではない場合(ステップS230No)、メッセージバッファ[i]にメッセージが格納されていることになる。よって、空きバッファ探索部32は、別の箇所のメッセージバッファ[i]の空きを探索するため、iを一つインクリメントする(ステップS240)。
空きバッファ探索部32は、iのインクリメント後、ステップS220の処理を再び実行する。ステップS220にて、空きバッファ探索部32は、iが内部保持情報[i]の総インデックス数Nを超えたと判定した場合(ステップS220No)、N個のメッセージバッファ[i]全ての空きについて探索したことになる。この場合、ステップS250の処理が実行される。
一方、ステップS230にて、空きバッファ探索部32は、内部保持情報[i]の状態が"空き"であると判定した場合(ステップS230Yes)、ステップS240を実行せずに、ステップS250の処理を実行する。つまり、空きがあるか否かをまだ探索していないメッセージバッファ[i]があっても、ステップS250の処理が実行される。
ステップS250にて、空きバッファ探索部32は、N個のメッセージバッファ[i]のいずれかに空きを発見したか否かを判定する。空きバッファ探索部32は、iがNよりも小さい場合、そのi番目のメッセージバッファに空きを発見したと判定する。
ステップS260には、メッセージ設定部33は、空きバッファ探索部32により探索された空きバッファ(i番目のメッセージバッファ)に、保持バッファ13に現在保持されているメッセージを設定する。ステップS270にて、状態管理部34は、そのi番目のメッセージバッファとインデックスiが同じ内部保持情報[i]の状態を、"空き"から"送信中"に変更する。この後、図3のステップS100が再開する。
一方、ステップS250にて、空きバッファ探索部32は、iがN以上である場合、メッセージバッファ[i]のいずれにも空きがないと判定する。この後、図3のステップS100が再開する。
図6は、送信完了処理の流れの一例を示すフローチャートである。状態管理部34は、図6に示されるスタートからエンドまでの処理を周期的に繰り返す。
ステップ310にて、状態管理部34は、内部保持情報[i]が"送信中"であるインデックスiを特定する。
ステップS320にて、状態管理部34は、ステップS310にて特定されたインデックスiのメッセージバッファ[i]の送信完了レジスタ18に送信完了データが格納されているか否かを判定する。状態管理部34は、ステップS310にて特定されたインデックスiのメッセージバッファ[i]の送信完了レジスタ18に送信完了データが格納されている場合、内部保持情報[i]の状態を"送信中"から"空き"に変更する。一方、状態管理部34は、ステップS310にて特定されたインデックスiのメッセージバッファ[i]の送信完了レジスタ18に送信完了データが格納されていない場合、内部保持情報[i]の状態を"送信中"で維持する。
したがって、本実施形態に係る送信装置によれば、メッセージが格納されていない空きバッファは、複数のメッセージバッファ[i]の中から順に空きバッファ探索部32により探索される。そして、空きバッファ探索部32により探索された空きバッファに、メッセージ探索部31により探索されたデータが設定される。このため、複数のメッセージバッファ[i]のうち、メッセージが格納されているバッファ(空き無しバッファ)が一つ以上存在していても、空き無しバッファ以外のバッファ(つまり、空きバッファ)に、メッセージ探索部31により探索されたデータが設定される。よって、複数の送信バッファ[j]に格納されたメッセージの中から探索された優先度の高いデータは、空きバッファが探索されれば、空き無しバッファが空きバッファに変わるまで待たされることなく、その探索された空きバッファに格納される。したがって、優先度の高いデータをメッセージバッファに格納することが、優先度の低いデータが当該メッセージバッファから無くなるまで待たされる滞留現象の発生を抑制することができる。
また、本実施形態に係る送信装置によれば、メッセージ探索部31により探索されたメッセージが設定される空きバッファは、複数のメッセージバッファ[i]の中から順に探索される。そのため、メッセージ探索部31により探索されたメッセージが設定されるバッファは、複数のメッセージバッファ[i]のうち、特定の一のバッファに固定されずに動的に変化する。よって、送信バッファ[j]と同じ数のメッセージバッファを必ずしも用意する必要が無くなるので、メッセージバッファ[i]を送信バッファ[j]の数よりも減らすことができる。したがって、メッセージバッファ[i]の数を節約することができる。
以上、送信装置を実施形態により説明したが、本発明は上記実施形態に限定されるものではない。他の実施形態の一部又は全部との組み合わせや置換などの種々の変形及び改良が、本発明の範囲内で可能である。
1 送信ECU
10 メッセージバッファ状態管理装置
11 マイコン
12 送信要求バッファ
13 保持バッファ
14 管理バッファ
20 送信メッセージバッファ
31 メッセージ探索部
32 空きバッファ探索部
33 メッセージ設定部
60 通信バス

Claims (7)

  1. 通信線に接続される送信装置であって、
    前記通信線への送信が要求されたメッセージが格納される複数の送信要求バッファと、
    前記通信線にメッセージが送信される前に一時的にメッセージを格納する複数の送信メッセージバッファと、
    前記複数の送信要求バッファに格納されたメッセージの中から、前記複数の送信メッセージバッファに格納されたメッセージよりも優先度の高いメッセージを探索するデータ探索部と、
    メッセージが格納されているメッセージ有状態とメッセージが格納されていないメッセージ無状態とのいずれか一方を表すメッセージ有無情報を前記複数の送信メッセージバッファのそれぞれについて記憶する管理バッファと、
    前記管理バッファを参照することにより、メッセージが格納されていない空きバッファを前記複数の送信メッセージバッファの中から前記空きバッファが探索されるまで順に探索することを繰り返す空きバッファ探索部と、
    前記空きバッファ探索部により探索された空きバッファに、前記データ探索部により探索されたメッセージを設定するデータ設定部と、
    前記複数の送信メッセージバッファに格納されたメッセージを前記通信線へ送信する送信制御部とを備える、送信装置。
  2. 記複数の送信メッセージバッファのうちメッセージが前記データ設定部により設定されたバッファについては、前記メッセージ有無情報の状態を前記メッセージ無状態から前記メッセージ有状態に変更し、前記複数の送信メッセージバッファのうち前記通信線へのメッセージの送信が前記送信制御部により完了したバッファについては、前記メッセージ有無情報の状態を前記メッセージ有状態から前記メッセージ無状態に変更する状態管理部とを備え、
    前記空きバッファ探索部は、前記メッセージ有無情報の状態が前記メッセージ有状態であるのか前記メッセージ無状態であるのかに基づいて、メッセージが格納されていない空きバッファを前記複数の送信メッセージバッファの中から探索する、請求項1に記載の送信装置。
  3. 前記データ探索部は、前記複数の送信要求バッファに格納されたメッセージの中で最も優先度の高いメッセージを探索する、請求項1又は2に記載の送信装置。
  4. 前記送信制御部は、前記複数の送信メッセージバッファに格納されたメッセージの中で最も優先度の高いメッセージを前記通信線へ送信する、請求項1から3のいずれか一項に記載の送信装置。
  5. 前記データ探索部により探索されたメッセージが格納される保持バッファを更に備え、
    前記データ設定部は、前記空きバッファ探索部により探索された空きバッファに、前記保持バッファに格納されているメッセージを設定する、請求項1から4のいずれか一項に記載の送信装置。
  6. 前記データ探索部は、前記保持バッファに格納されているメッセージよりも優先度が高いメッセージを前記送信要求バッファから取得し、前記保持バッファに格納されているメッセージをその取得したメッセージに置換する、請求項5に記載の送信装置。
  7. 前記データ探索部は、前記複数の送信要求バッファのうち一の送信要求バッファに格納されたメッセージの優先度を前記保持バッファに格納されているメッセージの優先度と比較し、前記一の送信要求バッファに格納されたメッセージの優先度が前記保持バッファに格納されているメッセージの優先度よりも高い場合、前記保持バッファに格納されているメッセージを前記一の送信要求バッファに格納されたメッセージに置換することを、前記複数の送信要求バッファのそれぞれについて順に行う、請求項5又は6に記載の送信装置。
JP2016240684A 2016-12-12 2016-12-12 送信装置 Active JP6531750B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016240684A JP6531750B2 (ja) 2016-12-12 2016-12-12 送信装置
DE102017127223.2A DE102017127223A1 (de) 2016-12-12 2017-11-20 Elektronische Steuereinheit und Datensendeverfahren
US15/819,744 US10579555B2 (en) 2016-12-12 2017-11-21 Electronic control unit and data transmission method
CN201711296304.7A CN108234352B (zh) 2016-12-12 2017-12-08 电子控制单元和数据发送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016240684A JP6531750B2 (ja) 2016-12-12 2016-12-12 送信装置

Publications (2)

Publication Number Publication Date
JP2018098616A JP2018098616A (ja) 2018-06-21
JP6531750B2 true JP6531750B2 (ja) 2019-06-19

Family

ID=62201881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016240684A Active JP6531750B2 (ja) 2016-12-12 2016-12-12 送信装置

Country Status (4)

Country Link
US (1) US10579555B2 (ja)
JP (1) JP6531750B2 (ja)
CN (1) CN108234352B (ja)
DE (1) DE102017127223A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579488B (zh) * 2020-12-05 2023-02-24 西安翔腾微电子科技有限公司 一种支持动态缓冲区分配的消息存储电路及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH033339A (ja) 1989-05-31 1991-01-09 Mitsubishi Electric Corp 半導体装置
JP3230339B2 (ja) * 1993-05-25 2001-11-19 ヤマハ株式会社 通信制御装置
JP3445183B2 (ja) * 1999-02-18 2003-09-08 株式会社日本自動車部品総合研究所 データ中継装置および多重通信システム
JP4522846B2 (ja) 2004-12-27 2010-08-11 ルネサスエレクトロニクス株式会社 データ処理モジュール及びその送付候補メッセージの決定方法
CN100420228C (zh) * 2006-08-22 2008-09-17 哈尔滨工业大学 不同优先级can报文发送和接收显示***及检测方法
JP5075868B2 (ja) * 2009-04-03 2012-11-21 本田技研工業株式会社 車載のゲートウェイ装置
US8761190B2 (en) * 2011-01-06 2014-06-24 GM Global Technology Operations LLC Message loss prevention by using sender and receiver buffers in event-triggered distributed embedded real-time systems
US8670314B2 (en) * 2011-01-06 2014-03-11 GM Global Technology Operations LLC Message loss prevention by using sender buffer and traffic shaping in event-triggered distributed embedded real-time systems
ES2805290T3 (es) * 2012-03-29 2021-02-11 Arilou Information Security Tech Ltd Dispositivo para proteger un sistema electrónico de un vehículo
US20140036680A1 (en) * 2012-07-31 2014-02-06 Futurewei Technologies, Inc. Method to Allocate Packet Buffers in a Packet Transferring System
JP6174305B2 (ja) * 2012-08-03 2017-08-02 トヨタ自動車株式会社 データ送信装置、通信制御方法、及び通信制御プログラム
JP2015023063A (ja) * 2013-07-16 2015-02-02 株式会社東芝 パターン形成方法及びマスクパターンデータ
US10123232B2 (en) * 2014-07-22 2018-11-06 Parallel Wireless, Inc. Signaling storm reduction from radio networks
CN106130930B (zh) * 2016-06-24 2019-04-19 西安电子科技大学 一种数据帧预入队处理的装置及方法

Also Published As

Publication number Publication date
US10579555B2 (en) 2020-03-03
CN108234352A (zh) 2018-06-29
DE102017127223A1 (de) 2018-06-14
CN108234352B (zh) 2021-12-14
US20180165230A1 (en) 2018-06-14
JP2018098616A (ja) 2018-06-21

Similar Documents

Publication Publication Date Title
US7953915B2 (en) Interrupt dispatching method in multi-core environment and multi-core processor
US8615629B2 (en) Access scheduler
US7111092B1 (en) Buffer management technique for a hypertransport data path protocol
US7117308B1 (en) Hypertransport data path protocol
US8364874B1 (en) Prioritized polling for virtual network interfaces
JP2006333438A (ja) ゲートウェイ装置及びルーティング方法
EP2882146B1 (en) Data transmission device, communication control method, and communication control program
US10397144B2 (en) Receive buffer architecture method and apparatus
US20140325114A1 (en) Multi-channel direct memory access controller and control method thereof
CN115934625B (zh) 一种用于远程直接内存访问的敲门铃方法、设备及介质
US9213660B2 (en) Receiver based communication permission token allocation
US20200252314A1 (en) Method and apparatus for managing network connection, and storage medium
CN113157465B (zh) 基于指针链表的消息发送方法及装置
JP6531750B2 (ja) 送信装置
US20150281109A1 (en) System for en-queuing and de-queuing data packets in communication network
US7688815B2 (en) Method and system for a multi-stage interconnect switch
CN108093047B (zh) 数据发送方法、装置、电子设备及中间件***
CN113225263B (zh) 一种流量请求处理方法、装置及网络芯片
CN113170500B (zh) 一种信息传输方法及装置
CN107153580B (zh) 获取队列精确状态的装置及其方法
US20200192667A1 (en) Arithmetic processing device, and control method for arithmetic processing device
US11196684B2 (en) Flow control device and method
JP6127872B2 (ja) 演算処理装置及び演算処理装置の制御方法
US11443783B2 (en) Semiconductor device
JP2015208004A (ja) 複数の待ち行列のうちの1つを選択する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190320

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: 20190423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190506

R151 Written notification of patent or utility model registration

Ref document number: 6531750

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151