JP4478731B2 - 通信装置及びゲートウェイ装置 - Google Patents

通信装置及びゲートウェイ装置 Download PDF

Info

Publication number
JP4478731B2
JP4478731B2 JP2009036036A JP2009036036A JP4478731B2 JP 4478731 B2 JP4478731 B2 JP 4478731B2 JP 2009036036 A JP2009036036 A JP 2009036036A JP 2009036036 A JP2009036036 A JP 2009036036A JP 4478731 B2 JP4478731 B2 JP 4478731B2
Authority
JP
Japan
Prior art keywords
flag
data
frame data
search
transmission
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.)
Expired - Fee Related
Application number
JP2009036036A
Other languages
English (en)
Other versions
JP2009225441A (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.)
Renesas Technology Corp
Denso Ten Ltd
Toyota Motor Corp
Original Assignee
Renesas Technology Corp
Denso Ten Ltd
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 Renesas Technology Corp, Denso Ten Ltd, Toyota Motor Corp filed Critical Renesas Technology Corp
Priority to JP2009036036A priority Critical patent/JP4478731B2/ja
Priority to US12/379,352 priority patent/US8041747B2/en
Publication of JP2009225441A publication Critical patent/JP2009225441A/ja
Application granted granted Critical
Publication of JP4478731B2 publication Critical patent/JP4478731B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

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

Description

本発明は、バッファに格納されたフレームデータを検索する通信装置におけるデータ検索装置に関する。より詳細には、少なくとも2以上のバス間で転送されるフレームデータを中継するゲートウェイ装置に用いられるデータ検索装置に関する。
少なくも2以上のバス間で転送されるフレームデータの中継を行うゲートウェイECU(Electronic Control Unit:電子制御ユニット)の中継手法として、フレームデータを受信した順序に従って中継する方法と、受信した順序には従わず、平準化を行って送信する方法とがある。
平準化とは、フレームデータの優先度や送信周期に関わらず均一に送信を行うことをいう。例えば、A,B,C,A,D,E,A,B,C,A,D,E・・・の順に連続してフレームデータを受信した場合、A,B,C,D,E,A,B,C,D,E・・・の順にフレームデータを並び替えて送信する。
フレームデータを平準化して送信する技術の1つとして、フレームデータを識別するID(IDentifier Number)ごとにバッファを設けて、送信時にはこのバッファからフレームデータを送信順に読み出す技術が知られている。IDは、フレームデータを送信するバス上のノード(例えば、ECU)によって付与されるものであり、IDによって送信元のノードやそのフレームデータの優先度などが判る。
IDごとに分割されたバッファをID毎バッファと呼ぶ。また、ID毎バッファの各領域に対応して、各領域にデータが記録されているか否かを示すフラグがメモリに記録されている。
さらに、ID毎バッファは、中継するチャネルごとに設けられている。例えば、ゲートウェイECUが中継を担当するチャネル数が2チャネルであれば、ID毎バッファも2つ設けられている。
フレームデータの送信時には、ID毎バッファの各領域に対応して設けられたフラグに対して線形検索を行う。フラグの記録された(つまり、ON状態)ID毎バッファの領域にはフレームデータが格納されているので、フラグが記録されているID毎バッファの領域からフレームデータを読み出して送信する。
線形検索について図1(A)を参照しながら説明する。線形検索では、フラグの検索は初回は先頭から行うが、次回以降は、前回検索が終了したバッファ領域の次のバッファ領域から行う。すなわち、1回目の検索で図1(A)に示す上から7段目(ID192)の領域のフラグが記録されていることを検出すると、2回目の検索は8段目(ID216)から行う。また、検索がID毎バッファの最後の領域まで達すると、再度先頭に戻って検索を行う。検索を行った結果、最初に検索を開始した位置までフラグが記録されたバッファ領域がなければそこで検索を終了する。
特許文献1では、送信先を示すIDコードの優先順位を予め決めておくRAMを設けて、データの送信完了後に、次に送信するデータが複数ある場合にはRAMのIDコード優先順位から送信の優先順位を判定する技術を開示している。
特許文献2は、データ中継装置におけるデータ消失を防止することを目的としている。特許文献2では、受信するデータを一時保存するバッファを中継するデータの種類ごとに設けると共に、受信したデータの種別を識別しその種別に応じたバッファの書き込み先を指定するデータコントローラを設けている。
特開2005−159568号公報 特開2000−244548号公報
しかしながら、ゲートウェイECUが中継するバス数が増加してくると、検索にかかる時間が増大し、ゲートウェイECUの中継性能が低下してしまうという課題がある。
例えば、図1(B)に示すようにID毎バッファが100種類のIDを格納できるバッファであるとする。100番目のバッファ領域に格納されたフレームデータを検索するためには、先頭のバッファ領域から検索を開始して100回の検索を行わなければならない。従って、ゲートウェイECUの中継性能を維持できるようにするためには、高性能なCPUを搭載するか、中継を行うバスの数を制限する必要がある。
また、特許文献1及び2にも、バッファに格納されたフレームデータの検索効率を改善するような技術の開示はない。
本発明は上記事情に鑑みてなされたものであり、バッファに記憶したフレームデータのデータ数が増加しても、フレームデータの検索を効率的に行うことができる通信装置及びゲートウェイ装置を提供することを目的とする。
かかる目的を達成するために本発明の通信装置は、データのIDごとに記憶領域が分割された記憶手段から、送信すべきデータを記憶した記憶領域を検索し、検索で抽出されたデータの送信を行う通信装置であって、前記記憶手段の記憶領域ごとに設けられ、前記記憶領域のデータが更新されているか否かを示す第1フラグと、前記第1フラグを所定数ごとにまとめたグループごとに設けられ、前記グループにおける第1フラグの少なくとも1つのデータが更新された状態を示しているときに、データの更新状態を示す第2フラグと、前記第2フラグを検索してから対応する第1フラグを検索することで、送信すべきデータを記憶した記憶領域から送信すべきデータを抽出する検索処理を行い、抽出した送信すべきデータをメッセージボックスにセットする送信データセット処理部と、前記メッセージボックスにセットされた送信すべきデータを送信する送信処理部と、を有し、
前記送信データセット処理部は、所定周期で前記検索処理を行うが、前記メッセージボックスに送信すべきデータを格納する空き領域がない場合には前記検索処理を行わないことを特徴としている
本発明によれば、第1フラグを所定数ごとにまとめたグループごとに設けた第2フラグの検索を行ってから第1フラグの検索を行うので、検索するデータ数が増加してもフレームデータの検索を効率的に行うことができる。
また、メッセージボックスに空き領域がない場合には検索処理を行わないようにすることで、処理負荷をより軽減して送信データの送信遅れをより少なくすることが可能となる。また、メッセージボックスに送信データのセットができるようになった時点での最新のデータ状態に基づいて検索処理を行うことができるので、前回検索を行わなかった時点で更新されていなかったIDのデータが新たに更新された場合や、更新されていたIDの送信データがさらに上書き更新されるような場合にも、対応した検索処理が可能となる。
上記通信装置において、前記検索制御手段は、データの更新状態を示す第2フラグを検索してから対応する第1フラグをデータの送信順に検索して、前記第1フラグがデータ更新状態を表し、かつ最も先に送信を行うべきデータを記憶した前記記憶手段の記憶領域を検出するハードウェアを用いて検索を行うとよい。
従って、フレームデータの検索をハードウェアを用いて効率的に行うことができる。
上記通信装置において前記第1フラグ及び前記第2フラグを記憶するフラグ記憶部と、送信すべきデータを前記記憶手段に記憶させた場合に、対応する前記第1フラグと前記第2フラグとを記憶する前記フラグ記憶部の記憶領域を検出して、検出した記憶領域の前記第1フラグのフラグ状態を変更すると共に、検出した記憶領域の前記第2フラグのフラグ状態を変更する必要がある場合に変更するフラグ変更処理部とをさらに有し、前記フラグ記憶部の前記第1フラグを記憶する記憶領域は、マトリクス状に形成されると共に、該マトリクス状に形成された記憶領域の列数は、2 (nは任意の自然数)であり、前記フラグ変更処理部は、2進数で表された前記送信すべきデータのID番号が前記フラグ記憶部の前記第1フラグと前記2フラグとを記憶させる記憶領域を示していることを利用して、フラグ状態を変更する前記フラグ記憶部の前記第1フラグと前記第2フラグの記憶領域を検出するとよい。
従って、送信すべきデータを記憶した記憶手段の記憶領域に対応する第1フラグと第2フラグとを記憶したフラグ記憶部の記憶領域の検出が容易になる。
本発明のゲートウェイ装置は、複数の通信チャネル間でのフレームデータの転送制御を行うゲートウェイ装置であって、通信チャネルから受信したフレームデータを転送する通信チャネルを検索するルーティング処理部と、前記ルーティング処理部で処理されたフレームデータを記憶する、フレームデータのIDごとに記憶領域が分割された送信バッファと、前記送信バッファの記憶領域ごとに設けられ、前記記憶領域のデータが更新されているか否かを示す第1フラグと、前記第1フラグを所定数ごとにまとめたグループごとに設けられ、前記グループにおける第1フラグの少なくとも1つのデータが更新された状態を示しているときにデータの更新状態を示す第2フラグとを記憶するフラグ記憶部と、前記ルーティング処理部で処理されたフレームデータを前記送信バッファに記憶すると共に、前記フラグ記憶部に記憶された第1フラグと第2フラグを更新するデータ記憶処理部と、前記フラグ記憶部に記憶された第2フラグを検索してから対応する第1フラグを検索することで、前記送信バッファからフレームデータを抽出する検索処理を行い、抽出したフレームデータをメッセージボックスにセットする送信データセット処理部と、前記メッセージボックスにセットされたフレームデータを通信チャネルに送信する送信処理部と、を有し、前記送信データセット処理部は、所定周期で前記検索処理を行うが、前記メッセージボックスにフレームデータを格納する空き領域がない場合には前記検索処理を行わないことを特徴としている。
また、本発明のゲートウェイ装置は、複数の通信チャネル間でのフレームデータの転送制御を行うゲートウェイ装置であって、通信チャネルから受信したフレームデータを転送する通信チャネルを検索し、検索した通信チャネルに対応する送信FIFOにフレームデータを記憶するルーティング処理部と、前記送信FIFOから読み出されたフレームデータを記憶する、フレームデータのIDごとに記憶領域が分割された送信バッファと、前記送信バッファの記憶領域ごとに設けられ、前記記憶領域のデータが更新されているか否かを示す第1フラグと、前記第1フラグを所定数ごとにまとめたグループごとに設けられ、前記グループにおける第1フラグの少なくとも1つのデータが更新された状態を示しているときにデータの更新状態を示す第2フラグとを記憶するフラグ記憶部と、前記送信FIFOから読み出されたフレームデータを前記送信バッファに記憶するとともに、前記フラグ記憶部に記憶された第1フラグと第2フラグを更新するデータ記憶処理部と、前記フラグ記憶部に記憶された第2フラグを検索してから対応する第1フラグを検索することで、前記送信バッファからフレームデータを抽出する検索処理を行い、抽出したフレームデータをメッセージボックスにセットする送信データセット処理部と、前記メッセージボックスにセットされたフレームデータを通信チャネルに送信する送信処理部と、を有し、前記送信データセット処理部は、所定周期で前記検索処理を行うが、前記メッセージボックスにフレームデータを格納する空き領域がない場合には前記検索処理を行わないことを特徴としている。
本発明は、第1フラグを所定数ごとにまとめたグループの更新状態を示す第2フラグを設けて、第2フラグを検索してから対応する第1フラグを検索する。従って、送信バッファに記憶したフレームデータのデータ数が増加しても、フレームデータの検索を効率的に行うことができる。
上記ゲートウェイ装置において、前記送信FIFOに記憶されたフレームデータを読み出し、該読み出したフレームデータを、該フレームデータに付加されている付加情報に基づいて前記フレームデータの送信順を並び替える平準化処理を行ってから送信するフレームデータと、前記平準化処理を行わずに送信するフレームデータとに振り分ける振り分け処理部と、前記平準化処理を行ってから送信するフレームデータを前記送信バッファに記憶させた後に、前記フレームデータを記憶させた送信バッファの記憶領域に応じて、前記フラグ記憶部の対応する前記第1フラグと前記第2フラグとを書き替える書き替え処理と、前記平準化処理を行わずに送信するフレームデータを通信チャネルごとに用意されたメッセージボックスにセットする第1送信データセット処理と、前記ビット検索器に、前記フラグ記憶部に記憶された第2フラグを検索させてから対応する第1フラグを検索させ、前記ビット検索器から取得した情報に基づいて前記送信バッファからフレームデータを予め設定された送信順に取り出す前記平準化処理を行い、前記平準化処理後のフレームデータを前記メッセージボックスにセットする第2送信データセット処理とを有する前記送信データセット処理とを有するとよい。
本発明によれば、バッファに記憶したフレームデータのデータ数が増加しても、フレームデータの検索を効率的に行うことができる。
線形検索について説明するための図である。 ゲートウェイ装置の構成を示す図である。 CANコントローラの構成を示す図である。 ハードウェア中継部の構成を示す図である。 検索エンジン部の処理手順を示すフローチャートである。 ルーティングマップの一例を示す図である。 検索エンジン部によるルーティグ後のフレームデータの処理の流れを示す図である。 ゲートウェイ装置のハードウェア構成を示す図である。 データ更新フラグとインデックスフラグを示す図である。 ビット検索器を用いたビット検索時にソフトウェア処理部が利用するレジスタを示す図である。 インデックスフラグ検索時のソフトウェア処理部の処理手順を示す図である。 データ更新フラグ検索時のソフトウェア処理部の処理手順を示す図である。 (A)はインデックスフラグの1回目の検索時に、ビット検索サポートレジスタに書き込まれるビット情報を示し、(B)はインデックスフラグの2回目の検索時に、ビット検索サポートレジスタに書き込まれるビット情報を示し、(C)及び(D)はビット検索器によるデータ更新フラグの検索手順を示す図である。 (A)はデータ更新フラグの検索開始位置及び検索開始行を示す図であり、(B)はデータ更新フラグの1回目の検索時に、ビット検索サポートレジスタに書き込まれるビット情報を示し、(C)はデータ更新フラグの2回目の検索時に、ビット検索サポートレジスタに書き込まれるビット情報を示す図である。 間接テーブルの一例を示す図である。 送信FIFOに書き込まれる時のフレームデータの構成を示す図である。 (A)はフレームデータの種別を表す情報の構成を示す図であり、(B)はID毎バッファ格納位置情報の構成を示す図である。
以下、添付図面を参照しながら本発明の好適な実施例を説明する。
まず、図2を参照しながら本実施例の構成を説明する。図2には、本発明の通信装置の実施例としてのゲートウェイ装置1000の構成を示す。
ゲートウェイ装置1000は、通信バスに接続したECU間で送受信されるフレームデータの中継を行う装置である。本実施例のゲートウェイ装置1000には、通信バスとしてCAN(Controller Area Network)バス2000、CANバス2001、CANバス2002の3つが接続されている。
CANバス2000、2001、2002には、それぞれ複数のECUが接続されている。本実施例では、CANバス2000には、ECU2010、2011、2012が接続されており、CANバス2001には、ECU2020、2021、2022が接続されており、CANバス2002には、ECU2030、2031、2032が接続されている。
ECU2010〜2012、2020〜2022、2030〜2032は、例えば、エンジンECU、ボディECU、パワーマネジメントECU、エアバッグECU等の車両制御用のECUである。
ECU2010〜2012、2020〜2022、2030〜2032は、図示を省略するが、異なる通信方式又は通信速度で通信する通信網(つまり、ネットワーク)を介してゲートウェイ装置1000と接続する。なお、本実施例においては、ECU2010〜2012、2020〜2022、2030〜2032は、CANプロトコルを用いてゲートウェイ装置1000と通信を行うとして説明するが、これに限定される訳ではなく、例えば、ECU2010〜2012、2020〜2022、2030〜2032は、LIN(Local Interconnect Network)プロトコルを用いて通信する構成を採用できる。
ゲートウェイ装置1000は、ECU2010〜2012、2020〜2022、2030〜2032からフレームデータを受信し、受信したフレームデータを中継する中継先の通信網で使用される通信速度及び通信方式に従って変換した後に中継する。尚、ゲートウェイ装置1000がデータを中継するために、一度に受信又は送信するデータの単位をフレームデータという。本実施例では、フレームデータは、例えば、CANプロトコルに従った枠となる所定のデータから開始する所定の長さを有するデータであるとして説明するが、これに限定される訳ではない。
本発明に係るゲートウェイ装置1000は、主にハードウェア処理によってフレームデータを中継する中継部と、主にソフトウェア処理によってフレームデータを中継する中継部との2つの中継部によって構成される。
ゲートウェイ装置1000のハードウェア構成の一例について図2を参照しながら説明する。ゲートウェイ装置1000は、CANコントローラ1110、1120、1130、CANインタフェース部1200、ハードウェア中継部(以下、ハードマクロともいう)1300及びソフトウェア処理部1400で構成される。なお、ソフトウェア処理部1400が、本実施例における通信装置のデータ検索装置として機能する。
なお、本実施例において、ゲートウェイ装置1000は、3つのCANコントローラ1110から1130で構成されるとして説明するが、この数に限定される訳ではなく、CANコントローラの数が複数であればよい。
また、CANコントローラ1110から1130は、それぞれ同様の接続、構成及び機能を有するため、以下では、代表してCANコントローラ1110について説明を行う。
CANコントローラ1110は、CANバス2000に接続し、かつCANインタフェース部1200に接続している。CANコントローラ1110は、フレームデータを制御装置であるECU2010ないし2012から受信し、受信したフレームデータをハードウェア中継部1300又はソフトウェア処理部1400へ出力する。
また、CANコントローラ1110は、ハードウェア中継部1300又はソフトウェア処理部1400から、中継先であるECU2010ないし2012へ中継するフレームデータを取得し、取得したフレームデータをECU2010ないし2012へ送信する。
尚、CANコントローラ1110ないし1130とCANバス2000ないし2002とを結ぶ伝送路をチャネルという。本実施例では、CANコントローラ1110とCANバス2000とを結ぶ伝送路をチャネルCH0とし、CANコントローラ1120とCANバス2001とを結ぶ伝送路をチャネルCH1とし、CANコントローラ1130とCANバス2003とを結ぶ伝送路をチャネルCH2とする。
ここで図3を参照して、CANコントローラ1110のハードウェア構成の一例について説明する。図3は、CANコントローラ1110のハードウェア構成の一例を表す図である。
CANコントローラ1110は、バッファ1111及びCAN通信部1114で構成される。
バッファ1111は、例えば、RAM(Random Access Memory)及びレジスタで構成され、CAN通信部1114に接続している。バッファ1111は、互いに関連付けられた複数のメッセージボックス1112と完了フラグ1113とで構成される。
メッセージボックス1112は、例えば、RAMで構成され、受信用のメッセージボックス(以下、受信用メッセージボックスと呼ぶ。図4参照)1112Aと、送信用のメッセージボックス(以下、送信用メッセージボックスと呼ぶ。図4参照)1112Bとに分けられている。受信用メッセージボックス1112Aは、CAN通信部1114が受信したフレームデータを記憶する記憶領域である。また、送信用メッセージボックス1112Bは、CANバス2000へと送信されるフレームデータを保存する記憶領域である。なお、図4では、メッセージボックス1112、1122は、便宜上、受信用メッセージボックス1112A、1122Aと送信用メッセージボックス1112B、1122Bとに分けて示しているが、1つのメッセージボックス1112、1122を送信用と受信用とに分けて使用しているだけである。もちろん、受信用メッセージボックスと送信用メッセージボックスとを別途設けることもできる。
完了フラグ1113は、例えば、レジスタによって記憶され、受信用メッセージボックス1112Aと、送信用メッセージボックス1112Bとのそれぞれに設けられている。受信用の完了フラグ1113は、CAN通信部1114が実行するフレームデータを受信するための処理が完了した場合に立てられる(つまり、ONとなる)フラグである。より詳細に説明すると、受信用の完了フラグ1113は、CAN通信部1114が受信したフレームデータであって、ハードウェア中継部1300又はソフトウェア処理部1400が未だ取得していないデータを、メッセージボックス1112が記憶していることを表すフラグである。
また、送信用の完了フラグ1113は、送信用メッセージボックス1112Bにフレームデータが格納された場合に立ち下げられる(つまり、OFFとなる)フラグである。また、記憶していたフレームデータがECU2010に送信されると、フラグが立ち上げられる(つまり、ONとなる)。
CAN通信部1114は、バッファ1111、CANインタフェース部1200及びCANバス2000に接続する。
CAN通信部1114は、CAN受信処理を実行することで、CANプロトコルに従ってCANバス2000からフレームデータを受信する。また、CAN通信部1114は、受信したフレームデータを受信用メッセージボックス1112Aに保存すると共に、フレームデータを保存した受信用メッセージボックス1112Aに関連付けた受信用の完了フラグ1113を立てる。
更に、CAN通信部1114は、フレームデータを受信したことを通知する受信割込信号を、CANインタフェース部1200を介してハードウェア中継部1300及びソフトウェア処理部1400へ出力する。
ハードウェア中継部1300又はソフトウェア処理部1400は、受信割込信号を取得すると、CANインタフェース部1200を介してフレームデータを参照する。ハードウェア中継部1300又はソフトウェア処理部1400は、参照したデータを保存した受信用メッセージボックス1112Aに関連付けられている完了フラグを立ち下げる。
また、CAN通信部1114は、CAN送信処理を実行することで、CANプロトコルに従って、CANインタフェース部1200から出力されるフレームデータをCANバス2000へ送信する。
フレームデータのCANバス2000への送信が完了すると、CAN通信部1114は、送信が完了したデータを保存した送信用メッセージボックス1112Bに関連付けた完了フラグを立ち上げる。
尚、CAN受信処理及びCAN送信処理は、CANプロトコルに従ってフレームデータを送受信するための公知の処理により実現できるため、説明を省略する。
ここで図2に戻り、ゲートウェイ装置1000の構成について引き続き説明を行う。
CANインタフェース部1200は、CANコントローラ1110から1130及びハードウェア中継部1300に接続している。CANインタフェース部1200は、CANコントローラ1110から1130とCANインタフェース部1200との間でデータ転送を可能とするバスB10から12と、CANインタフェース部1200とハードウェア中継部1300又はソフトウェア処理部1400との間でデータ転送を可能とする内部バスB2とのインタフェースを提供する。
尚、CANインタフェース部1200、ハードウェア中継部1300及びソフトウェア処理部1400は、内部バスB2を介して互いにデータ転送が可能なように接続している。
ハードウェア中継部1300は、車両の挙動を制御する制御装置であるECU2010〜2012、2020〜2022、2030〜2032間で送受信されるデータを、後述するハードウェア中継処理を実行することによって中継する。尚、ハードウェア中継処理は、ハードウェアを用いて実行される処理である。
ここで図4を参照して、ハードウェア中継部1300のハードウェア構成について説明する。図4は、ハードウェア中継部1300のハードウェア構成の一例を表す図である。
ハードウェア中継部1300は、検索エンジン部1310、ルーティングマップ1320及び送信バッファ1330で構成される。
検索エンジン部1310は、図示を省略するが、例えば、RAMで構成されるメモリを有し、CANインタフェース部1200、ルーティングマップ1320、送信バッファ1330及びソフトウェア処理部1400に接続している。検索エンジン部1310は、経路検索処理を実行することで、フレームデータに基づいて中継先のチャネル等を検索する。図5を参照して、検索エンジン部1310が実行する経路検索処理について説明する。図5は、検索エンジン部1310が実行する経路検索処理の一例を表すフローチャートである。
先ず、検索エンジン部1310は、CANコントローラ1110ないし1130から、受信割込信号を取得したか否かを判断する(ステップS1)。検索エンジン部1310は、受信割込信号を取得したと判断する場合にはステップS2の処理を実行し、そうで無い場合には経路検索処理の実行を終了する。
ステップS1において、検索エンジン部1310は、受信割込信号を取得したと判断した場合には、CANインタフェース部1200を介して、CANコントローラ1110ないし1130から中継フレームのフレームデータを取得する(ステップS2)。
その後、検索エンジン部1310は、取得した中継フレームデータに関連付けたCANコントローラ1110ないし1130の受信用の完了フラグを下げる(以下、OFFにするともいう)(ステップS3)。次に、検索エンジン部1310は、取得したフレームデータから、フレームデータのフォーマット種別IDE、フレーム種別RTR及びフレームデータを発信した装置のIDや中継元のチャネル、中継先のチャネル等を取得する(ステップS4)。
その後、検索エンジン部1310は、ルーティングマップ1320から、取得したフォーマット種別IDE、フレーム種別RTR、IDや中継元のチャネル、中継先のチャネル等を保存する行を検索する(ステップS5)。
次に、検索エンジン部1310は、検索した行のデータをパリティを用いて検査するパリティ検査処理を実行する(ステップS6)。尚、検査処理は、パリティ検査処理に限定される訳ではなく、例えば、チェックサム、CRC(Cyclic Redundancy Check)、ハッシュ値、ハミング符号、疎グラフ符号(Sparse graph code)又は畳込符号(Convolutional code)を用いてデータの誤りを検出する構成を採用できる。
ステップS6を実行した後に、検索エンジン部1310は、検索した行が保存する中継する先のチャネル(以下単に、中継先チャネルという)TxCHの送信FIFO(First In First Out)へフレームデータを出力する(ステップS7)。
尚、送信FIFOは、後述する送信バッファ1330を構成する記憶領域であって、フレームデータの先入れ先出しに用いられるものである。送信バッファ1330は、保存するフレームデータの送信先チャネル及び送信するフレームデータの種類毎に、複数の送信FIFOを有する。
ステップS7を実行した後に、検索エンジン部1310は、フレームデータを出力したFIFOに関連付けられたハードウェアカウンタ(以下、メッセージカウンタともいう)をインクリメントする(ステップS8)。その後、検索エンジン部1310は、経路検索処理の実行を終了する。
尚、ハードウェアカウンタとは、関連付けられたFIFOが保存するデータの数を表すカウンタであって、ハードウェア中継部1300が中継するデータの数を表すカウンタである。
ここで図4に戻り、ハードウェア中継部1300の構成について引き続き説明を行う。
ルーティングマップ1320は、例えば、ROMやRAM等の各種メモリで構成される。ルーティングマップ1320は、検索エンジン部1310に接続している。
ルーティングマップ1320は、フレームデータのフォーマット種別IDE、フレーム種別RTR及びIDと、フレームデータの中継元及び中継先とを関連付けて保存するテーブルを保存する。
ここで、図6を参照して、ルーティングマップ1320が保存するテーブルについて説明を行う。図6は、ルーティングマップ1320が保存するテーブルの一例を表す図である。
図6に示すテーブルは、Par1フィールド、IDEフィールド、RTRフィールド、IDフィールド、Par2フィールド、FIFOフィールド、TxCHフィールド、Label(ラベル)1フィールド、Label(ラベル)0フィールド、RxCHフィールド及びMaskInfoフィールドを有する。
Par1フィールドはIDEフィールド、RTRフィールド及びIDフィールドが保存するデータのパリティを、IDEフィールドはフレームデータのフォーマット種別を、RTRフィールドはフレーム種別を、IDフィールドはCAN IDを保存する。なお、以下の説明では、CAN IDを単にIDと表記する。IDは、フレームデータを送信するバス上のCANノード(例えば、ECU)によって付与されるものであり、IDによって送信元のノードやそのフレームデータの優先度などが判る。
Par2フィールドはFIFOフィールドからMaskInfoフィールドまでのフィールドが保存するデータのパリティを、FIFOフィールドは中継先のFIFOを、TxCHフィールドは中継先チャネルを、Label1及びLabel0は中継するデータに付加するデータを、RxCHは受信した元のチャネル(以下単に、受信元チャネルという)を、MaskInfoは行のソートに用いるインデックスの計算時に用いるマスク値を保存する。
尚、IDEフィールド、RTRフィールド及びIDフィールドは、キーフィールドであって、IDEフィールド、RTRフィールド及びIDフィールドが保存するデータが全て重複する行は、テーブル中に存在しない。
ここで図4に戻り、ハードウェア中継部1300の構成について引き続き説明を行う。
送信バッファ1330は、例えば、RAM及びレジスタで構成される。送信バッファ1330は、検索エンジン部1310及びソフトウェア処理部1400に接続している。
送信バッファ1330を構成するRAMのメモリ領域は、フレームデータを保存する送信FIFO1331、1333、1335及び1337を構成し、送信バッファ1330を構成するレジスタは、送信FIFO1331、1333、1335及び1337に保存されたデータ数を表すハードウェアカウンタ(つまり、メッセージカウンタ)1332、1334、1336及び1338を保存する。尚、FIFOについては、既に説明したため、詳細な説明を省略する。
ここで、送信FIFO1331及び1333は、チャネルCH0へ中継されるフレームデータを保存し、送信FIFO1335及び1337は、チャネルCH1へ中継されるデータを保存する。
送信FIFO1331及び1333には、それぞれ異なる種類のフレームデータが保存される。また、送信FIFO1331及び1333へのフレームデータの保存は、ルーティングマップ1320の検索によってIDE、RTR、IDが一致したエントリ(Entry)の情報TxCH、FIFO(中継先情報)に従って行われる。尚、送信FIFO1335及び1337についても同様であるので、説明を省略する。
尚、図4において、ハードウェア中継部1300が、チャネルCH2へ中継するフレームデータを保存するFIFOと、FIFOが保存するデータ数を表すカウンタとの図示を省略しているために説明を省略するが、ハードウェア中継部1300がフレームデータをチャネルCH2へ中継する機能を有することは当然である。
ここで図2に戻り、ゲートウェイ装置1000の構成について、引き続き説明を行う。
ソフトウェア処理部1400は、車両の挙動を制御する制御装置であるECU2010〜2012、2020〜2022、2030〜2032の間で送受信されるデータを中継するソフトウェア処理を実行する。
ソフトウェア処理部1400は、例えば、CPU(Central Processing Unit)等の演算部1401、例えば、フラッシュ・メモリ等の記憶部1402及び割込制御部1403で構成され、演算部1401、記憶部1402及び割込制御部1403は、それぞれバスによってデータの授受が可能なように接続している。
ソフトウェア処理部1400は、記憶部1402に格納したプログラムを演算部1401が読み、読込んだプログラムに従って演算部1401が演算を行うことで後述する各部の機能を実現する。
なお、記憶部1402には、後述する図9に示すデータ更新フラグ2100とインデックスフラグ2200とが記録される。
また、割込制御部1403は、プログラムに従った演算を行う演算部1401に対して、ハードウェア中継部1300等の他のハードウェアを制御するための演算等を割込んで実行することを要求する割込信号の入出力を制御する。
次に、図7を参照しながらフレームデータを平準化して送信するときの処理の流れを説明する。なお、ここでは、ソフトウェア処理部1400は、検索エンジン部1310からの割込信号を入力して、送信FIFO1331,1333,1335,1337へのアクセスを行うとして説明するが、検索エンジン部1310からの割込信号によらず、ソフトウェア処理部1400が一定周期で送信FIFO1331,1333,1335,1337にアクセスして、送信FIFO1331,1333,1335,1337に格納されたフレームデータに対する処理を行うようにしてもよい。
検索エンジン部1310によって、フレームデータが送信先のチャネルに対応した送信FIFO(ここでは説明を簡略化するため、フレームデータが送信FIFO1331に格納されたものとして説明を行う)に格納されると、検索エンジン部1310はソフトウェア処理部1400に対して割込信号を出力する。なお、割込信号の出力タイミングは、検索エンジン部1310が1フレームのフレームデータを送信FIFO1331に格納するごとに行ってもよいし、一定数のフレームデータを送信FIFO1331に格納した後に行ってもよい。また、図7には、検索エンジン部1310がソフトウェア処理部1400に割込信号を出力するパスについては示していない。検索エンジン部1310から出力された割込信号は、図2に示す割込制御部1403の制御によって演算部1401に出力される。
ソフトウェア処理部1400は、検索エンジン部1310からの割込信号を入力すると、送信FIFO1331に格納されたフレームデータが平準化を行うフレームデータであるか否かを判定する。ソフトウェア処理部1400は、検索エンジン部1310によってフレームデータに付加された付加情報に基づいて、平準化を行うフレームデータであるのか、平準化を行わずに中継するフレームデータであるのかを判定する。検索エンジン部1310は、フレームデータに付加されたIDに基づいて、フレームデータが平準化して送信するフレームであるのか、平準化せずに送信するフレームデータであるのかを判断する。そして、検索エンジン部1310は、ルーティングを行い、転送先の送信FIFO1331(1333、1335、1337)にフレームデータを書き込むときにフレームデータに付加情報としてのラベル値を付加する(ラベル値の詳細については、図15を参照しながら後ほど説明する)。ソフトウェア処理部1400は、検索エンジン部1310によって付加されたラベル値に基づいてフレームデータが平準化を行うフレームであるのか、平準化せずに送信するフレームデータであるのかを判定する。
なお、IDは、CAN通信を行うノード(すなわち、図2に示すCANバス2000、2001、2002に接続した各ECU)ごとに設定されており、フレームデータを送信する送信元のノードによってフレームデータに付与される。また、ID(すなわち送信先ノード)に応じて平準化して送信するフレームであるのか、平準化せずに送信するフレームデータであるのかが予め設定されている。
ソフトウェア処理部1400は、ラベル値に基づいて平準化を行うフレームデータであると判定すると、このフレームデータをID毎バッファ(説明を簡略化するため、以下では、ID毎バッファ1501にフレームデータが格納されたものとする)に一旦格納する。また、ソフトウェア処理部1400は、ラベル値に基づいて平準化を行わないフレームデータであると判定すると、フレームデータをID毎バッファ1501ではなく送信用メッセージボックス1112Bに格納する。また、ソフトウェア処理部1400は、送信FIFO133、1337に格納されたフレームデータについても同様の処理を行い、平準化を行わないフレームデータを送信用メッセージボックス1122Bに格納する。また、ソフトウェア処理部1400は、平準化を行うフレームデータをID毎バッファ1502に一旦格納する。
ID毎バッファ1501及び1502には、IDごとに分割された記憶領域が用意されており、ソフトウェア処理部1400は、フレームデータに付与されたラベル値から図15に示す間接テーブルを参照して、該当するID毎バッファ1501、1502にフレームデータを格納する。また、各ID毎バッファ1501、1502の各領域ごとに、各領域にフレームデータが格納されているか否かを示すフラグを記録する領域がRAM3001(記憶部1402)に設けられている。ソフトウェア処理部1400は、ID毎バッファ1501、1502にフレームデータを格納すると、フレームデータを格納したID毎バッファに対応するRAM3001の領域にフラグを記録する(すなわち、ID毎バッファにデータが格納又は更新されたことを示すデータをRAM3001に記録する)。
ID毎バッファ1501、1502にフレームデータが格納されると、フレームデータを平準化して送信するために、線形検索を実行する。線形検索には、ゲートウェイ装置1000に搭載されているビット検索器1600(ハードウェア:図8参照)を利用する。ソフトウェア処理部1400は、ビット検索器1600を利用して送信すべきフレームデータを記憶したID毎バッファ1501、1502の記憶領域を検出する。
ビット検索器1600によって送信すべきフレームデータを記憶したID毎バッファ1501、1502の記憶領域を検出すると、ソフトウェア処理部1400は、検出した記憶領域からフレームデータを取り出して、送信用メッセージボックス1112Bに格納する。
なお、ソフトウェア処理部1400からビット検索器1600への検索要求は、一定周期で行ってもよいし、送信用メッセージボックス1112Bに空きができた場合に行ってもよい。また、ソフトウェア処理部1400は、一定周期でビット検索器1600に検索要求を出力すると共に、送信用メッセージボックス1112Bに空きができたことを検出したときにも、検索要求をビット検索器1600に出力するようにしてもよい。送信用メッセージボックス1112Bに空きがあるか否かの判定は、CANコントローラ1110ないし1130からの送信完了の割込信号によって判定することができる。CANコントローラ1110ないし1130は、送信用メッセージボックス1112Bに格納されたフレームデータを送信相手として設定されたECU宛てに送信すると、ソフトウェア処理部1400に対して送信完了の割込信号を出力する。ソフトウェア処理部1400は、この割込信号を入力して、送信用メッセージボックス1112Bに空きができたことを認識する。
図8に、ゲートウェイ装置1000のハードウェア構成を示す。ゲートウェイ装置1000は、CPUコア3000、RAM3001、ROM3002、乗算器3003、ビット検索器1600、ハードマクロ(ハードウェア中継部)1300、CANモジュール1800、システムクロック発生回路1700等を有している。なお、CANモジュール1800は、CAN通信を行うCANコントローラ1110から1130に該当する。また、システムクロック発生回路1700は、CPUコア3000の動作クロックを提供する。
ROM3002には、CPUコア3000が演算に使用するプログラムが格納されており、CPUコア3000がプログラムに従った演算を行うことで、図2に示すソフトウェア処理部1400内の演算部1401、割込制御部1403が構成される。また、RAM3001には、CPUコア3000が演算に使用する変数等が格納される。また、RAM3001は、図2に示す記憶部1402に該当する。RAM3001(記憶部1402)には、後述する図9に示すデータ更新フラグ2100とインデックスフラグ2200とが記録される。乗算器3003は、CPUコア3000に代わって乗算演算を行う演算部である。
図9に、ID毎バッファ1501、1502にフレームデータが格納されているか否かを示すフラグを記録するRAM3001のフラグデータ記憶領域の構成を示す。
図9に示すようにRAM3001のフラグデータ記憶領域には、第1フラグとしてのデータ更新フラグ2100と、第2フラグとしてのインデックスフラグ2200とが記録されている。
本実施例のデータ更新フラグ2100は、16行8列のマトリクス状に構成したRAM3001のフラグデータ記憶領域に記憶される。ID毎バッファ1501、1502にフレームデータが格納されると、対応するデータ更新フラグ2100の状態が[0]から[1]に変更される。すなわち、フラグを記録した状態となり、フレームデータが更新された状態を表す。
また、インデックスフラグ2200は、データ更新フラグ2100の複数ビットをまとめたグループごとに設けられており、グループに含まれるデータ更新フラグ2100の少なくとも1つがデータ更新された状態を示しているときに、データの更新状態を表す。本実施例では、図9に示すようにデータ更新フラグ2100の1行分の情報を、インデックスフラグ2200の1ビットで表現している。
例えば、図9に示すデータ更新フラグ2100の6行目(図9に示すデータ更新フラグ2100では、0行から15行のうちの5行)のいずれかのビットに1が記録されていると、対応するインデックスフラグ2200のビット「05」に1が記録される。
このように、データ更新フラグ2100の複数ビットの情報を集約したインデックスフラグ2200を設けることで、フレームデータを記憶したID毎バッファの記憶領域の検索を効率的に行うことができる。
なお、図9に示すデータ更新フラグ2100を記憶するRAM3001のフラグデータ記憶領域は、16行8列で128種類のIDまで格納可能な状態であるが、ID毎バッファ1501、1502の領域拡張に伴ってデータ更新フラグ2100を記憶するRAM3001のフラグデータ記憶領域も拡張させる。例えば、データ更新フラグ2100を16行16列の構成としてフラグデータ記憶領域に記憶させてもよいし、同じ16行8列のデータ更新フラグ2100を第2データ更新フラグとしてフラグデータ記憶領域に記憶させてもよい。
また、データ更新フラグ2100の1行のビット数を2のべき乗とすることで、データ更新フラグ2100のビット位置、インデックスフラグ2200のビット位置の割り出しを簡単に行うことができる。
例えば、フレームデータをID毎バッファ1501、1502に格納すると、ソフトウェア処理部1400は、ID番号を8で割ってデータ更新フラグ2100のビット位置と、インデックスフラグ2200のビット位置とを算出する。このとき、データ更新フラグ2100のビット数を2のべき乗とすると、ID番号を8で除算する処理を省くことができる。例えば、IDを[50]とすると、[50]は2進数で110010であるが、上位3ビット(110)がデータ更新フラグ2100の行情報、すなわち、インデックスフラグ2200のビット位置情報を表す。また、下位3ビットがデータ更新フラグ2100の列情報を表している。
ソフトウェア処理部1400は、ビット検索器1600にデータ更新フラグ2100及びインデックスフラグ2200の検索を行わせるときには、図10に示すビット検索サポートレジスタ2300に検索を行うデータ更新フラグ2100又はインデックスフラグ2200のビット情報を書き込む。なお、ビット情報とは、ビット検索器1600に、フラグが記録されたインデックスフラグ2200又はデータ更新フラグ2100を検索させるビット位置情報を示す。例えば、図9に示すインデックスフラグ2200では、「00」〜「15」のいずれかを示し、データ更新フラグ2100では、0行〜15行までのいずれかを示す。ビット検索器1600は、ビット検索サポートレジスタ2300に書き込まれたビット情報を参照して、フラグが記録されたデータ更新フラグ2100又はインデックスフラグ2200のビット位置を検出する。ビット検索器1600は、データ更新フラグ2100又はインデックスフラグ2200を検索すると、フラグが記録されたビット位置を図10に示すビット検索ステータスレジスタ2400に書き込む。また、フラグが記録されたビット位置が検出されなければ、ビット検索器1600は、フラグが記録されたビット位置なしの情報をビット検索ステータスレジスタ2400に書き込む。又は、ビット検索器1600は、ビット検索ステータスレジスタ2400への書き込みを行わない。ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400を参照してビット検索器1600によるデータ更新フラグ2100又はインデックスフラグ2200の検索結果を認識する。
フラグが記録されたインデックスフラグ2200又はデータ更新フラグ2100のビット位置をハードウェアのビット検索器1600に行わせるので、ソフトウェア処理部1400の処理負荷を軽減させることができる。
なお、図10に示すビット検索サポートレジスタ2300やビット検索ステータスレジスタ2400も、図8に示すCPUコア3000やビット検索器1600が図8に示すRAM3001を記憶領域として使用することで実現される。
次に、ソフトウェア処理部1400の処理手順を説明する。図11及び図12には、ソフトウェア処理部1400のビット検索器1600を用いたフラグ検索の処理手順を示す。
まず、図11を参照しながらビット検索器1600にインデックスフラグ2200を検索させる処理について説明する。
ソフトウェア処理部1400は、まず、送信用メッセージボックス(以下では説明を簡略化するため、送信用メッセージボックス1112Bへのデータの格納を例に説明する)1112Bに空き領域があるか否かと、インデックスフラグ2200のビットがすべて0であるか否かを判定する(ステップS11)。送信用メッセージボックス1112Bに空き領域がなかった場合や、インデックスフラグ2200のビットがすべて0であった場合には(ステップS11/no)、ソフトウェア処理部1400は、この処理を終了する。
送信用メッセージボックス1112Bに空き領域があり、インデックスフラグ2200のビットがすべて0ではなかった場合(ステップS11/yes)、ソフトウェア処理部1400は検索変数に検索開始のビット位置を代入し、検索回数を表す変数を初期化する(ステップS12)。すなわち、検索回数を表す変数は「0」に設定される。また、検索変数は、ソフトウェア処理部1400がインデックスフラグ2200やデータ更新フラグ2100の検索位置を識別する変数である。
初回の検索(検索回数が0回)の場合には、検索変数はビット検索器1600に検索を行わせるインデックスフラグ2200の検索開始のビット位置を示している。
次に、ソフトウェア処理部1400は、検索回数を表す変数を参照して検索回数を判定する(ステップS13)。
検索回数が0回であった場合には(ステップS13/0回)、ソフトウェア処理部1400は、検索変数が示すインデックスフラグ2200のビット(検索開始のビット位置)よりも小さいビットをマスクする。そして、ソフトウェア処理部1400は、検索変数が示すインデックスフラグ2200のビットと、それよりも上位のビットとをビット情報としてビット検索サポートレジスタ2300に書き込む(ステップS14)。例えば、図13(A)に示すように、検索変数が示す検索開始のビット位置が、インデックスフラグ2200のビット4であった場合には、ビット4よりも下位のビット0〜ビット3をマスクしたインデックスフラグ2200のビット情報をビット検索サポートレジスタ2300に書き込む。すなわち、インデックスフラグ2200のビット4〜ビット15の情報がビット検索サポートレジスタ2300に書き込まれる。
ビット検索器1600は、ビット検索サポートレジスタ2300に書き込まれたインデックスフラグ2200のビット情報を取得し、取得したビット情報が示すインデックスフラグ2200のビット位置のうち、フラグが記録されているビット位置を検索する。ビット検索器1600は、検索結果をビット検索ステータスレジスタ2400に書き込む。図13(A)に示す例では、インデックスフラグ2200のビット4からビット15の中でフラグが記録されたビット位置の情報が検索される。ソフトウェア処理部1400は、ビット検索器1600の検索結果を記録したビット検索ステータスレジスタ2400を参照して、フラグが記録されているインデッスフラグ2200のビット位置を判定する。
また、検索回数が1回であった場合には(ステップS13/1回)、ソフトウェア処理部1400は、検索変数が示すインデックスフラグ2200のビット位置よりも小さいビットと、検索開始位置のビット及びこのビットよりも上位のビットとをマスクする。そして、ソフトウェア処理部1400は、マスクしたインデックスフラグ2200のビット情報をビット検索サポートレジスタ2300に書き込む(ステップS15)。すなわち、検索回数が0回のときには、検索開始位置のビットと、この検索開始位置のビットよりも上位のビットの検索を終了しているので、今度は検索開始位置のビットよりも下位のビットの検索を行う。
例えば、検索開始位置のビットがインデックスフラグ2200のビット4であり、検索変数が示すインデックスフラグ2200のビット位置がビット1であった場合、ソフトウェア処理部1400は、図13(B)に示すようにビット4よりも上位のビット(ビット4〜ビット15ビット)と、検索変数が示すインデックスフラグ2200のビット位置(ビット1)よりも下位のビット(ビット0)とをマスクしてビット検索サポートレジスタ2300に書き込む。ビット検索器1600は、ビット検索サポートレジスタ2300に書き込まれたインデックスフラグ2200のビット情報を取得する。そして、ビット検索器1600は、取得したビット情報が示すインデックスフラグ2200のビット位置のうち、フラグが記録されているビット位置を検索する。ビット検索器1600は、検索結果をビット検索ステータスレジスタ2400に書き込む。
また、検索回数が2回であった場合には(ステップS13/2回)、ソフトウェア処理部1400はこの処理を終了する。
次に、ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400を参照して、1が記録されているインデックスフラグ2200のビットがあるか否かを判定する(ステップS16)。
ソフトウェア処理部1400は、1が記録されていると判定されたインデックスフラグ2200のビット位置情報がビット検索ステータスレジスタ2400に記録されていなかった場合には(ステップS16/yes)、検索変数を初期化する(ステップS18)。その後、ソフトウェア処理部1400は、検索回数を1インクリメントして(ステップS19)、次の検索をビット検索器1600に実行させる(ステップS13)。
また、ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400に、1が記録されていると判定されたインデックスフラグ2200のビット位置情報が記録されている場合には(ステップS16/no)、データ更新フラグ2100の検索を行う(ステップS17)。データ更新フラグ2100の検索処理については図12に示すフローチャートを参照しながら後ほど説明する。
データ更新フラグ2100の検索が終了すると、ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400を参照して、フラグが記録されたデータ更新フラグ2100があるか否かを判定する(ステップS20)。フラグが記録されたデータ更新フラグ2100がなかった場合、すなわちフレームデータを格納したID毎バッファ1501がなかった場合には(ステップS20/no)、ソフトウェア処理部1400は、ステップS13に戻ってインデックスフラグ2200の検索を再度行う。また、ソフトウェア処理部1400は、フレームデータを格納した任意数のID毎バッファを検出すると(ステップS20/yes)、検索変数を検索開始位置に保存する(ステップS21)。
次に、ビット検索器1600を用いてデータ更新フラグ2100を検索させるソフトウェア処理部1400の処理を説明する前に、図13(C)及び(D)を参照しながらビット検索器1600によるデータ更新フラグ2100の検索の概略を説明する。
初回の検索では、ビット検索器1600は、図13(C)に示す右上(0,0)のSからビットの検索(データありを示すフラグが記録されているか否かの検索)を開始する。その後、ビット検索器1600は、Sの左側のゾーンAを右から左に検索する。ゾーンAを検索終了すると、ビット検索器1600は、図13(C)に示すゾーンBを右から左、上から下に検索する。
例えば、図13(C)に示すマトリクス(データ更新フラグの記憶領域)の4行4列目に、フラグが記録されているとする。ビット検索器1600は、フラグが記録されている4行4列目のビット(図13(C)に示すビットG)を検出すると、次の検索開始位置をフラグが記録されていたビット(G)(図13(C)に示す4行4列目のビット)の位置に変更(検索変数が示すビット位置の変更)し、検索を終了する。
2回目の検索では、ビット検索器1600は、図13(D)に示すように前回検索終了位置(図13(D)に示す4行4列目のビット)の左側のゾーンCを右から左へ検索する。
ゾーンCを検索終了後、ビット検索器1600は、図13(D)に示すゾーンDを右から左、上から下に検索する。ゾーンDの検索を終了すると、ビット検索器1600は、ゾーンEを右から左、上から下に検索する。
最後にビット検索器1600は、検索開始位置(図13(D)に示す4行4列目のビット)の右側のゾーンFを右から左へ検索する。また、検索の途中でフラグが記録されているビットを検出した場合、次回の検索開始位置を、検出したフラグの記録されているビット位置に変更(検索変数が示すビット位置の変更)し、検索処理を終了する。
次に、図12に示すフローチャートを参照しながらビット検索器1600を用いてデータ更新フラグ2100を検索させるソフトウェア処理部1400の処理手順を説明する。
まず、ソフトウェア処理部1400は、ビット検索器1600によってフラグが記録されている(1が記録されている)と判定されたインデックスフラグ2200のビット位置が、検索変数の示すインデックスフラグ2200のビット位置と同じであるか否かを判定する(ステップS31)。すなわち、ソフトウェア処理部1400は、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置を検索変数が示しているか否かを判定する。
例えば、ビット検索器1600によるインデックスフラグ2200の検索において、検索変数の示すインデックスフラグ2200のビット位置がビット4であった場合、ソフトウェア処理部1400は、上述したようにインデックスフラグ2200のビット0〜ビット3をマスクしたビット情報をビット検索サポートレジスタ2300に書き込み、ビット検索器1600にインデックスフラグ2200の検索を行わせている。このとき、ビット検索器1600の検索結果には、検索変数が示すビット4に1が記録されているという判定結果と、それよりも上位のビット5〜ビット15のいずれかに1が記録されているという判定結果と、ビット4〜ビット15には1が記録されているビットは無いという判定結果とがある。
検索変数が示すビット4に1が記録されているという判定結果であれば、ビット検索器1600によるインデックスフラグ2200の検索結果は、検索変数が示すインデックスフラグ2200のビット位置と同じになる。また、ビット5〜ビット15のいずれかに1が記録されているという判定結果であれば、ビット検索器1600のインデックスフラグ2200の検索結果と、検索変数が示すインデックスフラグ2200のビット位置とは異なる。
ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置を検索変数が示している場合には(ステップS31/yes)、ソフトウェア処理部1400はステップS32に移行する。
ステップS32では、ソフトウェア処理部1400は、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置が、データ更新フラグ2100の検索開始行を示しており、検索回数が0回であるか否かを判定する。
ステップS31で、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置を検索変数が示していると判定された場合(ステップS31/yes)、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置と、データ更新フラグ2100の検索開始行とが一致する。この場合、図14(A)に示すようにデータ更新フラグ2100の検索開始行の途中のビット(図14(A)に示す例では、ビット2)から検索を開始してしまう可能性がある。すなわち、前回の検索終了位置から検索を開始するため、検索開始行の途中のビットから検索を開始する可能性がある。このため、ステップS32の判定ステップを設けている。
ステップS32の判定結果がyesの場合、すなわち、データ更新フラグ2100の初回の検索では、ソフトウェア処理部1400は、図14(B)に示すように検索変数が示すデータ更新フラグ2100のビット位置よりも小さいビットをマスクしたビット情報をビット検索サポートレジスタ2300に書き込む(ステップS34)。なお、ここでの検索変数は、データ更新フラグ2100の検索位置を示す変数である。また、ステップS32の判定結果がnoの場合、ソフトウェア処理部1400は、図14(C)に示すように検索変数が示すデータ更新フラグ2100のビット位置以下のビットと、検索開始位置のデータ更新フラグ2100のビット及びこのビットよりも上位のビットとをマスクし、マスクしたデータ更新フラグ2100のビット情報をビット検索サポートレジスタ2300に書き込む(ステップS33)。
次に、ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400を参照して、1が記録されているデータ更新フラグ2100のビットがあるか否かを判定する(ステップS35)。
ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400に1が記録されていると判定されたデータ更新フラグ2100のビット位置情報が記録されていなかった場合には(ステップS35/yes)、データ更新フラグ2100の検索位置を示す検索変数をデータ更新フラグ2100の0ビット(先頭)に変更する。また、インデックスフラグ2200のビット位置を示す検索変数を、ステップS33、S34で処理したビット位置から1つ下の行に変更する。例えば、ステップS33、S34の処理をデータ更新フラグ2100の3行目で行っていれば、処理対象の行をデータ更新フラグ2100の4行目に移す。
また、ステップS31で、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置を検索変数が示していない場合には(ステップS31/no)、ソフトウェア処理部1400はステップS40に移行する。
ステップS40では、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置を検索変数が示していない。このため、ソフトウェア処理部1400は、ビット検索器1600によって1が記録されていると判定されたインデックスフラグ2200のビット位置を検索変数の示す位置とする(ステップS40)。
次に、ソフトウェア処理部1400は、ステップS40で変更した検索変数が示す行のデータ更新フラグ2100のビット情報を、ビット検索サポートレジスタ2300に書き込む(ステップS41)。
ビット検索器1600は、ビット検索サポートレジスタ2300に書き込まれたデータ更新フラグ2100のビット情報から、1が記録されているデータ更新フラグ2100のビット位置を検索する。ビット検索器1600は、検索結果をビット検索ステータスレジスタ2400に格納する。
ソフトウェア処理部1400は、ビット検索ステータスレジスタ2400を参照して、ビット検索器1600によるデータ更新フラグ2100の検索結果を判定する。1が記録されているデータ更新フラグ2100のビットを検出すると、検出したデータ更新フラグ2100のビット位置に検索変数を設定する(ステップS42)。
次に、ソフトウェア処理部1400は、検索変数が示すID毎バッファの記憶領域からフレームデータを読み出して送信用メッセージボックス1112Bに格納し、該当するデータ更新フラグ2100のフラグ情報を1から0に変更する(ステップS43)。
次に、ソフトウェア処理部1400は、検索変数の示すデータ更新フラグ2100のビット位置を次のビットへ1ビットシフトし(ステップS44)、フレームデータの発見回数をカウントするカウンタの値を1インクリメントする(ステップS45)。
次に、ソフトウェア処理部1400は、ID毎バッファ1501の最後の記憶領域まで検索を終了したか否かを判定する(ステップS37)。ID毎バッファ1501の最後の記憶領域まで検索を終了した場合には(ステップS37/yes)、ソフトウェア処理部1400は、検索変数を初期化して(ステップS38)、検索回数を示すカウンタの値を1インクリメントする(ステップS39)。また、ID毎バッファ1501の最後の記憶領域まで検索を終了していない場合には(ステップS37/no)、ソフトウェア処理部1400は、ステップS31から繰り返し処理を行う。
このように本実施例は、データ更新フラグ2100の複数ビットの情報を集約したインデックスフラグ2200を設け、インデックスフラグ2200の検索を行ってから該当するデータ更新フラグの検索を行う。このため、フレームデータを記憶したID毎バッファの記憶領域の検索を効率的に行うことができる。
また、前回ビット検索器1600が検索したフレームデータの記憶領域よりもよりも送信順位が高いフレームデータを記憶した記憶領域のフラグ情報をマスクする。これにより、フレームデータを平準化してデータ送信するときに有効な検索を提供することができる。
なお、ID毎バッファ1501、1502に格納されたフレームデータを送信順に検索する処理として、間接テーブルとフレームデータに付加されたラベル値とを用いてもよい。ラベル値とは、検索エンジン部1310によって送信FIFO1331、1333、1335、1337に書き込まれるときにフレームデータに付与される情報であり、複数ビットの情報を有している。
ソフトウェア処理部1400は、フレームデータに付与されたラベル値から間接テーブルを参照して、フレームデータに対する処理を決定する。図15に間接テーブルの一例を示す。また、図16に送信FIFOに書き込まれる時のフレームデータの構成示す。
図15に示す間接テーブルは、フレームデータの種別を示す1バイトの情報と、ID毎バッファの格納位置を示す1バイトの情報とがラベル値ごとに区分けして記録されている。例えば、図15に示す間接テーブルでは、ラベル値が15のフレームデータは、状態系の一般フレームデータであり、一般ID毎バッファの[0x10]に格納するように示されている。また、ラベル値が16のフレームデータは、状態系の優先フレームデータであり、優先ID毎バッファの[0x20]に格納するように示されている。なお、優先ID毎バッファとは、優先的に送信するフレームデータを格納するID毎バッファであり、一般ID毎バッファは、優先的には送信しないフレームデータを格納するID毎バッファである。図9に示す各ID毎バッファ1501、1502、・・・は、優先ID毎バッファ又は一般ID毎バッファに設定されている。
図17(A)に、図15の間接テーブルに記録されたフレーム種別を示す1バイトの情報の一例を示し、図17(B)に、同じく間接テーブルに記録されたID毎バッファの格納位置を示す1バイトの情報の一例を示す。
フレームデータの種別を示す1バイトの情報は、図17(A)に示すようにビット0に一般フレームデータであるのか、優先フレームデータであるのかが示されており、ビット1には、状態系フレームデータであるのか、イベント系フレームデータであるのかが示されている。状態系フレームデータが送信順を平準化をして送信するフレームデータであり、イベント系フレームデータが送信FIFOに格納された順に、送信用メッセージボックス1112Bに格納して送信するフレームデータである。
また、図17(B)に示すID毎バッファ格納位置情報は、ID毎バッファへの格納位置を示す情報である。イベント系フレームデータは、ID毎バッファには格納しないので、フレーム種別がイベント系フレームデータであった場合には、ID毎バッファ格納位置情報の参照は行わない。
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
例えば、上述した実施例では、通信装置(ゲートウェイ装置1000におけるデータ検索装置(ソフトウェア処理部1400)を例に説明を行ったが、表示装置等の通信装置以外の装置に適用することも可能である。
以上本発明の好ましい一実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1000 ゲートウェイ装置
1110、1120、1130 CANコントローラ
1111 バッファ
1112 メッセージボックス
1112A 受信用メッセージボックス
1112B 送信用メッセージボックス
1113 フラグ
1114 CAN通信部
1200 CANインタフェース部
1300 ハードウェア中継部
1310 検索エンジン部
1320 ルーティングマップ
1330 送信バッファ
1331、1333、1335、1337 送信FIFO
1332、1334、1336、1338 メッセージカウンタ
1400 ソフトウェア処理部
1501、1502 ID毎バッファ
1600 ビット検索器
2100 データ更新フラグ
2200 インデックスフラグ
2300 ビット検索サポートレジスタ
2400 ビット検索ステータスレジスタ

Claims (6)

  1. データのIDごとに記憶領域が分割された記憶手段から、送信すべきデータを記憶した記憶領域を検索し、検索で抽出されたデータの送信を行う通信装置であって、
    前記記憶手段の記憶領域ごとに設けられ、前記記憶領域のデータが更新されているか否かを示す第1フラグと、
    前記第1フラグを所定数ごとにまとめたグループごとに設けられ、前記グループにおける第1フラグの少なくとも1つのデータが更新された状態を示しているときに、データの更新状態を示す第2フラグと、
    前記第2フラグを検索してから対応する第1フラグを検索することで、送信すべきデータを記憶した記憶領域から送信すべきデータを抽出する検索処理を行い、抽出した送信すべきデータをメッセージボックスにセットする送信データセット処理部と、
    前記メッセージボックスにセットされた送信すべきデータを送信する送信処理部と、を有し、
    前記送信データセット処理部は、所定周期で前記検索処理を行うが、前記メッセージボックスに送信すべきデータを格納する空き領域がない場合には前記検索処理を行わないことを特徴とする通信装置
  2. 前記検索制御手段は、データの更新状態を示す第2フラグを検索してから対応する第1フラグをデータの送信順に検索して、前記第1フラグがデータ更新状態を表し、かつ最も先に送信を行うべきデータを記憶した前記記憶手段の記憶領域を検出するハードウェアを用いて検索を行うことを特徴とする請求項1記載の通信装置
  3. 前記第1フラグ及び前記第2フラグを記憶するフラグ記憶部と、
    送信すべきデータを前記記憶手段に記憶させた場合に、対応する前記第1フラグと前記第2フラグとを記憶する前記フラグ記憶部の記憶領域を検出して、検出した記憶領域の前記第1フラグのフラグ状態を変更すると共に、検出した記憶領域の前記第2フラグのフラグ状態を変更する必要がある場合に変更するフラグ変更処理部とをさらに有し、
    前記フラグ記憶部の前記第1フラグを記憶する記憶領域は、マトリクス状に形成されると共に、該マトリクス状に形成された記憶領域の列数は、2 (nは任意の自然数)であり、
    前記フラグ変更処理部は、2進数で表された前記送信すべきデータのID番号が前記フラグ記憶部の前記第1フラグと前記2フラグとを記憶させる記憶領域を示していることを利用して、フラグ状態を変更する前記フラグ記憶部の前記第1フラグと前記第2フラグの記憶領域を検出することを特徴とする請求項1又は2記載の通信装置。
  4. 複数の通信チャネル間でのフレームデータの転送制御を行うゲートウェイ装置であって、
    通信チャネルから受信したフレームデータを転送する通信チャネルを検索するルーティング処理部と、
    前記ルーティング処理部で処理されたフレームデータを記憶する、フレームデータのIDごとに記憶領域が分割された送信バッファと、
    前記送信バッファの記憶領域ごとに設けられ、前記記憶領域のデータが更新されているか否かを示す第1フラグと、前記第1フラグを所定数ごとにまとめたグループごとに設けられ、前記グループにおける第1フラグの少なくとも1つのデータが更新された状態を示しているときにデータの更新状態を示す第2フラグとを記憶するフラグ記憶部と、
    前記ルーティング処理部で処理されたフレームデータを前記送信バッファに記憶すると共に、前記フラグ記憶部に記憶された第1フラグと第2フラグを更新するデータ記憶処理部と、
    前記フラグ記憶部に記憶された第2フラグを検索してから対応する第1フラグを検索することで、前記送信バッファからフレームデータを抽出する検索処理を行い、抽出したフレームデータをメッセージボックスにセットする送信データセット処理部と、
    前記メッセージボックスにセットされたフレームデータを通信チャネルに送信する送信処理部と、を有し、
    前記送信データセット処理部は、所定周期で前記検索処理を行うが、前記メッセージボックスにフレームデータを格納する空き領域がない場合には前記検索処理を行わないことを特徴とするゲートウェイ装置。
  5. 複数の通信チャネル間でのフレームデータの転送制御を行うゲートウェイ装置であって、
    通信チャネルから受信したフレームデータを転送する通信チャネルを検索し、検索した通信チャネルに対応する送信FIFOにフレームデータを記憶するルーティング処理部と、
    前記送信FIFOから読み出されたフレームデータを記憶する、フレームデータのIDごとに記憶領域が分割された送信バッファと、
    前記送信バッファの記憶領域ごとに設けられ、前記記憶領域のデータが更新されているか否かを示す第1フラグと、前記第1フラグを所定数ごとにまとめたグループごとに設けられ、前記グループにおける第1フラグの少なくとも1つのデータが更新された状態を示しているときにデータの更新状態を示す第2フラグとを記憶するフラグ記憶部と、
    前記送信FIFOから読み出されたフレームデータを前記送信バッファに記憶するとともに、前記フラグ記憶部に記憶された第1フラグと第2フラグを更新するデータ記憶処理部と、
    前記フラグ記憶部に記憶された第2フラグを検索してから対応する第1フラグを検索することで、前記送信バッファからフレームデータを抽出する検索処理を行い、抽出したフレームデータをメッセージボックスにセットする送信データセット処理部と、
    前記メッセージボックスにセットされたフレームデータを通信チャネルに送信する送信処理部と、を有し、
    前記送信データセット処理部は、所定周期で前記検索処理を行うが、前記メッセージボックスにフレームデータを格納する空き領域がない場合には前記検索処理を行わないことを特徴とするゲートウェイ装置。
  6. 前記送信FIFOに記憶されたフレームデータを読み出し、該読み出したフレームデータを、該フレームデータに付加されている付加情報に基づいて前記フレームデータの送信順を並び替える平準化処理を行ってから送信するフレームデータと、前記平準化処理を行わずに送信するフレームデータとに振り分ける振り分け処理部と、
    前記平準化処理を行ってから送信するフレームデータを前記送信バッファに記憶させた後に、前記フレームデータを記憶させた送信バッファの記憶領域に応じて、前記フラグ記憶部の対応する前記第1フラグと前記第2フラグとを書き替える書き替え処理と、
    前記平準化処理を行わずに送信するフレームデータを通信チャネルごとに用意されたメッセージボックスにセットする第1送信データセット処理と、前記ビット検索器に、前記フラグ記憶部に記憶された第2フラグを検索させてから対応する第1フラグを検索させ、前記ビット検索器から取得した情報に基づいて前記送信バッファからフレームデータを予め設定された送信順に取り出す前記平準化処理を行い、前記平準化処理後のフレームデータを前記メッセージボックスにセットする第2送信データセット処理とを有する前記送信データセット処理と、
    を有することを特徴とする請求項4又は5記載のゲートウェイ装置。
JP2009036036A 2008-02-20 2009-02-19 通信装置及びゲートウェイ装置 Expired - Fee Related JP4478731B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009036036A JP4478731B2 (ja) 2008-02-20 2009-02-19 通信装置及びゲートウェイ装置
US12/379,352 US8041747B2 (en) 2008-02-20 2009-02-19 Data search device and gateway device in communication apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008039432 2008-02-20
JP2009036036A JP4478731B2 (ja) 2008-02-20 2009-02-19 通信装置及びゲートウェイ装置

Publications (2)

Publication Number Publication Date
JP2009225441A JP2009225441A (ja) 2009-10-01
JP4478731B2 true JP4478731B2 (ja) 2010-06-09

Family

ID=40956026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009036036A Expired - Fee Related JP4478731B2 (ja) 2008-02-20 2009-02-19 通信装置及びゲートウェイ装置

Country Status (2)

Country Link
US (1) US8041747B2 (ja)
JP (1) JP4478731B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529728B2 (en) * 2010-10-07 2016-12-27 Vmware, Inc. Method for improving memory system performance in virtual machine systems
JP5708273B2 (ja) * 2011-06-06 2015-04-30 トヨタ自動車株式会社 通信装置、情報処理装置、データ送信方法
JP5702829B2 (ja) * 2013-05-23 2015-04-15 本田技研工業株式会社 中継装置
JP6318654B2 (ja) * 2014-01-30 2018-05-09 株式会社デンソー データ中継装置、データ中継装置の診断方法、車両用通信システム
JP6344348B2 (ja) 2015-09-14 2018-06-20 株式会社デンソー バッファ制御装置、通信ノード、及び中継装置
JP2017147662A (ja) 2016-02-18 2017-08-24 株式会社オートネットワーク技術研究所 中継装置
JP7088075B2 (ja) * 2019-02-22 2022-06-21 株式会社デンソー 電子制御装置
JP7284673B2 (ja) * 2019-09-17 2023-05-31 株式会社日立ソリューションズ 変換装置、変換方法、および変換プログラム
CN113852532B (zh) * 2021-09-22 2023-01-06 河北通合新能源科技有限公司 用于机号匹配的can通讯方法和can控制器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121390A (en) * 1990-03-15 1992-06-09 International Business Machines Corporation Integrated data link controller with synchronous link interface and asynchronous host processor interface
US5218680A (en) * 1990-03-15 1993-06-08 International Business Machines Corporation Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots
JPH0744431A (ja) 1993-07-28 1995-02-14 Toshiba Corp ファイルセーブ方式
JP3445183B2 (ja) 1999-02-18 2003-09-08 株式会社日本自動車部品総合研究所 データ中継装置および多重通信システム
JP2005159568A (ja) 2003-11-21 2005-06-16 Calsonic Kansei Corp ゲートウェイ装置
JP4235646B2 (ja) 2005-12-28 2009-03-11 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム

Also Published As

Publication number Publication date
US20090210397A1 (en) 2009-08-20
JP2009225441A (ja) 2009-10-01
US8041747B2 (en) 2011-10-18

Similar Documents

Publication Publication Date Title
JP4478731B2 (ja) 通信装置及びゲートウェイ装置
US10038571B2 (en) Method for reading and writing forwarding information base, and network processor
US6654855B1 (en) Method and apparatus for improving the efficiency of cache memories using chained metrics
CN112947856A (zh) 一种内存数据的管理方法、装置、计算机设备及存储介质
JPS63163930A (ja) アライメント補正方式
JP5821744B2 (ja) データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム
CN113168314A (zh) 更新管理装置、更新管理系统及更新管理方法
CN107704604A (zh) 一种消息持久化方法、服务器和计算机可读存储介质
KR101926324B1 (ko) 압축 매치 열거 기법
CN111241088A (zh) 数据写入方法、数据查询方法、装置及设备
CN114817232A (zh) 访问数据的方法及装置
JP4673299B2 (ja) 情報処理方法及び情報処理システム
CN105389394A (zh) 基于多个数据库集群的数据请求处理方法及装置
EP4394619A1 (en) Data processing method and apparatus based on blockchain, and device and readable storage medium
CN104125169B (zh) 链表处理装置、链表处理方法及相关网络交换机
JP2019200744A (ja) 制御装置及びデータ記録方法
EP3588319B1 (en) Memory module
CN111008002B (zh) 自动计算并更新fifo深度的装置和方法
CA2358323A1 (en) Transporting data transmission units of different sizes using segments of fixed sizes
EP3036665B1 (en) A method of transmitting data structures from one computer to another computer
CN112527896B (zh) 区块链账本数据的处理方法、装置、存储介质及电子设备
JP2019197465A (ja) シミュレーション制御方法及び計算機システム
CN112052074B (zh) 处理器建模系统及处理器建模方法
EP3665580B1 (en) Method of operating a cache
JPWO2005073880A1 (ja) 分散メモリ型情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090626

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100208

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100315

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4478731

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees