(57)【特許請求の範囲】
【請求項１】
１チャンネルから入力されたデータを他の１以上のチャンネルへルーティングするルーティングスイッチであって、
所定の処理期間を接続されたチャンネル数と同じ数のタイムスロットに時分割して各チャンネルに順に割り当て、
各チャンネルのルーティング処理をそれぞれのチャンネルに割り当てられたタイムスロット期間内に行い、
前記所定の処理期間の長さは、ルーティングすべきデータが受信され得る最短時間間隔の長さ以下である、ことを特徴とするルーティングスイッチ。
【請求項２】
請求項１記載のルーティングスイッチであって、
前記タイムスロットの期間長は、すべてのチャンネルで等しい、ことを特徴とするルーティングスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、１チャンネルから入力されたデータを他の１以上のチャンネルへルーティングするルーティングスイッチに係り、特に、チャンネル数の増加に柔軟に対応可能で、高速且つ確実なルーティング処理を実現したルーティングスイッチに関する。
【背景技術】
【０００２】
従来、１チャンネルから入力されたデータを他の１以上のチャンネルへルーティングするルーティングスイッチが知られている（例えば、特許文献１参照）。
【０００３】
特許文献１には、優先度別に設けられた転送データに関する接続リクエストを集約し、スケジューラの処理において考慮される優先度に応じて振り分け出力するリクエスト集約部を備えたルーティングスイッチが開示されている。
【特許文献１】特開２０００−３２４１６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
複数のバス間を接続するゲートウェイとして用いられる従来のルーティングスイッチのうちハードウェアにより構成されているものは、チャンネル数の増加に柔軟に対応できないという課題を有する。
【０００５】
また、ネットワーク全体の円滑な作動のためには、ルーティングされるデータを必要としている各ノードにおける所定の許容遅延時間が厳守されるような速度でルーティングしなければならず、特定のチャンネルのルーティング処理が遅延するような事態は回避されなければならない。すなわち、チャンネル数が増えるほどルーティングスイッチの処理能力が要求されることになる。
【０００６】
さらに、チャンネル数が増え、１つ１つのチャンネルに掛けられるルーティング処理時間が短くなった場合であっても、各データは取りこぼしなくルーティングされなければならない。
【０００７】
この点、上記特許文献１記載の従来装置は、データ受信ごとにルーティング処理のリクエストを行うリクエスト集約部と、そのリクエストを集約し、処理を行うチャンネルを決定するスケジューラと、グラント細分部とから構成されるが、チャンネル数が多い場合、リクエスト集約部やスケジューラの構成が複雑になる。なぜなら、受信タイミングがチャンネルごとに異なるため、ルーティング処理の状態にかかわらず、あらゆる状態でリクエストが発生することになり、それに対応して回路の複雑さが増すからである。
【０００８】
また、各チャンネルが、それぞれデータを受信した任意のタイミングでリクエストを出力するため、リクエスト集約部やスケジューラのタイミング設計が複雑化し、回路の検証に莫大な工数を要する。なぜなら、各チャンネルの受信タイミングを少しずつずらして回路の検証を行う必要があるからである。
【０００９】
さらに、優先制御を行うことによる弊害として、高優先データのトラフィックに圧迫されて、低優先のデータが処理されず、ネットワーク全体の通信品質が低下するおそれがある。なぜなら、ネットワーク自体のスループットとルーティング処理能力がルーティングの要求頻度に対して十分に確保されていないため、優先順位付けによる間引き制御を行う必要があるためである。
【００１０】
本発明はこのような課題を解決するためのものであり、チャンネル数の増加に柔軟に対応可能で、高速且つ確実なルーティング処理を実現したルーティングスイッチを提供することを主たる目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するための本発明の一態様は、１チャンネルから入力されたデータを他の１以上のチャンネルへルーティングするルーティングスイッチであって、所定の処理期間を接続されたチャンネル数と同じ数のタイムスロットに時分割して各チャンネルに順に割り当て、各チャンネルのルーティング処理をそれぞれのチャンネルに割り当てられたタイムスロット期間内に行い、上記所定の処理期間の長さはルーティングすべきデータが受信され得る最短時間間隔の長さ以下である、ルーティングスイッチである。
【００１２】
この一態様において、上記最短時間間隔とは、あるチャンネルにおいてルーティングすべきデータの一単位の受信が完了してから次のルーティングすべきデータの一単位の受信が完了するまで、換言すれば、一データ単位がバッファされてから次の一データ単位がバッファされるまでの時間間隔が最も短い場合でどの程度であるかを示す時間長パラメータである。
【００１３】
例えば、データがフレーム単位でルーティングされるプロトコル（規格）の場合、ルーティングスイッチが同じチャンネルにおいて２つのフレームを連続して受信した場合に、上記時間間隔が最短となり得る。よって、この場合、上記最短時間間隔は、そのプロトコル（規格）において採り得る最小フレーム長に等しい。例えばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）では、９６マイクロ秒（μｓ）である。
【００１４】
また、この一態様において、上記タイムスロットの期間長はすべてのチャンネルで等しいことが好ましい。この場合、上記最短時間間隔≧１チャンネルあたりの１回のルーティング処理時間（＝１タイムスロット期間長）×チャンネル数、となることが好ましい。
【００１５】
この一態様によれば、各チャンネルのルーティング処理を行う順番が予め固定的に決まっているため、ルーティングスイッチ内で複数チャンネルのルーティング処理が同時又は略同時又は連続して発生し、ルーティング処理に時間が掛かる、及び／又は、どのチャンネルのルーティング処理を優先すべきかを判断するなどして処理負荷が増える（それに対応した処理能力を予め備えておく）といった事態の発生が回避される。
【００１６】
また、この一態様によれば、ルーティング処理の際の１チャンネルあたりの１回の処理時間の長さが予め固定的に決まっており、各チャンネルの処理タイミングはそのチャンネルにルーティングすべきデータが有る無しにかかわらず回ってくるため、各チャンネルにおけるルーティングすべきデータがルーティングスイッチに受信されてからルーティング処理されるまでの最大待機時間が予め予測でき、待機時間にゆらぎが生じない。
【００１７】
また、この一態様によれば、すべてのチャンネルについてルーティング処理する順番が一巡するのに要する時間が上記最短時間間隔の長さ以下に設定されるため、あるチャンネルにおいてルーティングすべきデータが２単位（例えば２フレーム）連続して受信されたとしても、２つ目のデータ単位が受信完了するまでに１つ目のデータ単位のルーティング処理が実行されているため、当該チャンネルにおける受信バッファにルーティングすべきデータが滞留することがない。
【００１８】
なお、この一態様において、上記ルーティングスイッチのチャンネル数を変更する場合、動作周波数を変更して１チャンネルあたりの１回のルーティング処理時間を短くすればよいため、チャンネル数の変更に柔軟に対応可能であると言える。
【発明の効果】
【００１９】
本発明によれば、チャンネル数の増加に柔軟に対応可能で、高速且つ確実なルーティング処理を実現したルーティングスイッチを提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら実施例を挙げて説明する。なお、１チャンネルから入力されたデータを他の１以上のチャンネルへルーティングするルーティングスイッチの基本概念、主要なハードウェア構成、作動原理、及び基本的な制御手法等については当業者には既知であるため、詳しい説明を省略する。
【実施例】
【００２１】
以下、図１〜４を用いて、本発明の一実施例に係るルーティングスイッチについて説明する。本実施例においては、データがフレーム単位で送受信され、各フレームのヘッダには宛先ノードＩＤではなく、データ番号が付与される通信プロトコルが用いられるものとする。このような通信プロトコルの代表例は、自動車向けの車内ＬＡＮで一般的に採用されているＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
【００２２】
まず、本実施例に係るルーティングスイッチ１００の概略構成について、図１を参照して説明する。なお、本実施例において、ルーティングスイッチ１００は３２チャンネルを持つものとする。
【００２３】
ルーティングスイッチ１００は、主として、ハードウェア構成によりルーティング処理を行うルーティング処理回路１０１と、チャンネルごとに設けられたＣＡＮコントローラ１０２と、ソフトウェアによるルーティング処理を行うマイコン１０３とから成る。
【００２４】
ルーティングスイッチ１００において、ＣＡＮバス（チャンネル１〜３１：ＣＨ１〜３１）からＣＡＮバスへのルーティング処理はルーティング処理回路１０１によってハードウェアにより実現され、ＣＡＮバスから他のバス（例えば、ＦｌｅｘＲａｙバス、ＭＯＳＴバス、ＢＥＡＮバス、ＡＶＣバス、ＮＭバス、など）又はこの逆のルーティングはチャンネル３２（ＣＨ３２）を利用してマイコン１０３へ伝達され、マイコン１０３においてソフトウェアにより実現される。
【００２５】
ルーティング処理回路１０１は、受信処理実施のタイミングを決定するスケジュールカウンタ１０４と、受信処理を行うチャンネルを選択するカウンタであるチャンネル選択部１０５と、選択チャンネルの受信フレームからＩＤ（＝データ番号）を読み出すＩＤ選択部１０６と、ＩＤと出力先チャンネルとの対応関係テーブルを予め記憶保持している記憶部１０７と、ＩＤ選択部１０６により読み出されたＩＤを記憶部１０７に記憶保持されたテーブルに照らして出力先チャンネルを取得する出力先検索部１０８と、選択チャンネルの受信フレーム中のデータを出力先チャンネルと同じ数だけコピーするデータ複製部１０９とを含む。
【００２６】
次に、本実施例に係るルーティング処理回路１０１による受信処理の概略を図２を参照して説明する。
【００２７】
本実施例においては、チャンネル選択部１０５は、周期的に選択チャンネルを切り替え、所定の期間内に３２チャンネルすべてのルーティング処理が順に行われるようにする。換言すれば、上記所定の期間が３２のタイムスロットに時分割され、各タイムスロットが順に各チャンネルのルーティング処理に割り当てられるように、チャンネル選択部１０５は選択チャンネルを切り替える。
【００２８】
このように各チャンネルの受信データのルーティング処理について実行されるタイムスロットが予め固定的に決められていることにより、本実施例において、ルーティング処理回路１０１は、複数チャンネルのＣＡＮコントローラ１０２にルーティング処理すべき受信フレームが存在するとき、どのチャンネルにルーティング処理すべき受信フレームが存在するのかを検索する必要はなく、更に、いずれのチャンネルにおける受信フレームのルーティング処理を優先すべきかを判断する必要もない。したがって、あるチャンネルにおいて後から受信されたデータのルーティング処理を、それより前に他のチャンネルにおいて受信されたデータのルーティング処理に割り込んで優先的に処理する必要もない。これらのような複雑な処理が不要となることにより、本実施例では、ルーティング処理回路１０１の構成及び処理を簡易なものとすることができる。
【００２９】
また、本実施例では、上記のように所定の期間をチャンネル数で除算した数の各タイムスロットに対して各チャンネルのルーティング処理が予め固定的に割り当てられており、このチャンネル用のタイムスロットは各チャンネルにルーティング処理すべき受信データが有る無しにかかわらず順番が回ってくるため、すべてのチャンネルにおいて１フレームが受信完了してから当該フレームについてのルーティング処理が開始されるまでの待機時間が事前に予測できる。すなわち、本実施例において、あるチャンネルにおいて１フレームがＣＡＮコントローラ１０２にバッファ完了してから当該フレームについてルーティング処理回路１０１がルーティング処理を開始するまでの待機時間は、設計上、上記所定の期間未満と決定される。
【００３０】
換言すれば、本実施例においては、ルーティング処理回路１０１によるルーティング処理に起因するデータ転送遅延時間を上記所定の期間の長さ未満に抑えることができるため、各チャンネル上の各種ノードにおける最大許容遅延時間を参照して上記所定の期間を決定することにより、各種ノードの遅延時間要求に対応することができる。
【００３１】
さらに、本実施例においては、各チャンネルのＣＡＮコントローラ１０２（のバッファ）に受信フレームが滞留しないように、上記所定の期間の長さが決定される。具体的には、上記所定の期間の長さを、各チャンネルにおける１フレームの受信完了から次の１フレームの受信完了までの最短時間間隔以下とすることにより、最短の時間間隔で次のフレームが受信されたときには、その受信完了までに先に受信されたフレームのルーティング処理が開始されるようにする。
【００３２】
上記のような１フレームの受信完了から次の１フレームの受信完了までの最短時間間隔は、フレームが連続して受信した場合に生じる。すなわち、上記最短時間間隔は、当該通信プロトコルにおいてフレームフォーマットが採り得る最小フレーム長に等しい。
【００３３】
本実施例ではＣＡＮを前提としている。当業者には既知の通り、ＣＡＮの標準フォーマットでは、最小フレーム長は４７ビット＝９６μｓであり、最大フレーム長は１３３ビット＝２６６μｓである。
【００３４】
したがって、本実施例では、図２に示すように、上記所定の期間＝９６μｓとし、この９６μｓの間にチャンネル１〜３２についてのルーティング処理が予め決まった順番で順次実施されるものとする。
【００３５】
これにより、本実施例に係るルーティングスイッチ１００では、すべてのチャンネルにおいて、１フレームの受信がいずれのタイミングで完了したとしても、当該フレームのルーティング処理は９６μｓ以内に開始されることになる。そして、ＣＡＮを利用する本実施例においては、１フレームの受信に最低でも９６μｓ掛かることから、特定のチャンネルにおいて２つのフレームが連続して受信されたとしても、２つ目のフレームの受信完了までには１つ目のフレームのルーティング処理が開始されており、当該チャンネルのＣＡＮコントローラ１０２においてフレームが滞留することがない。
【００３６】
図２に沿って再度説明する。ここでは、チャンネル１（ＣＨ１）においてフレームＡ及びＢが連続して受信され、フレームＡと同時（又は略同時）にチャンネル２（ＣＨ２）においてフレームＣが受信された場合を示している。
【００３７】
まず、チャンネル１においてフレームＡの受信が完了すると、仮にその時点で他の受信フレームがルーティング処理されていなくても、チャンネル１に割り当てられたタイムスロットの順番が回ってくるまで待機される。そして、この待機時間は９６μｓ以上とはならない。
【００３８】
また、チャンネル１において、フレームＢは、フレームＡについてのルーティング処理が開始された後に受信完了となるため、フレームＢの受信完了時にフレームＡの全部又は一部が依然としてルーティング処理待機中という事態を回避できる。フレームＢが最小フレーム長（＝９６μｓ）より長い場合、この余裕が一層大きくなる。
【００３９】
さらに、チャンネル２においてフレームＣの受信が完了したとき、ルーティング処理回路１０１は、フレームＡとフレームＣのいずれのルーティング処理を優先すべきかを判断しない。チャンネル２のフレームＣは、チャンネル２に割り当てられたタイムスロットを待ってルーティング処理される。フレームＣについても、ルーティング処理開始までの待機時間は９６μｓ未満となる。
【００４０】
次いで、ルーティングスイッチ１００による受信処理について、図３を参照して説明する。
【００４１】
本実施例において、ルーティング処理回路１０１は、各チャンネルに割り当てられたタイムスロットをスケジュールカウンタ１０４が生成するカウンタ値によってカウンタ１〜２０に再時分割し、このカウンタ値に応じて対応する処理を行うものとする。
【００４２】
まず、ルーティング処理回路１０１のチャンネル選択部１０５は、スケジュールカウンタ１０４により出力されたカウンタ値が１であるか否かを判定する（Ｓ３０１）。スケジュールカウンタが１の場合（Ｓ３０１の「ＹＥＳ」）、チャンネル選択部１０５は、現在選択されているチャンネルにおいて、ＣＡＮコントローラ１０２においてルーティング処理を待機中の受信完了済みフレームが存在するか否かを判定する（Ｓ３０２）。
【００４３】
選択チャンネルにルーティング処理待機中の受信済みフレームが存在する場合（Ｓ３０２の「ＹＥＳ」）、チャンネル選択部１０５は当該フレームに対するルーティング処理の開始をＩＤ選択部１０６に指示する（Ｓ３０３）。
【００４４】
ルーティング処理は、スケジュールカウンタが２０となるまでに完了させる。詳しくは後述する。
【００４５】
スケジュールカウンタが２０となると（Ｓ３０４の「ＹＥＳ」）、チャンネル選択部１０５は選択チャンネルを１つインクリメントする（Ｓ３０６）。すなわち、次のタイムスロットに移る。
【００４６】
他方、スケジュールカウンタ１０４により出力されたカウンタ値が１でない場合（Ｓ３０１の「ＮＯ」）、又は、現在選択されているチャンネルにおいてルーティング処理を待機中の受信完了済みフレームがＣＡＮコントローラ１０２に存在しない場合（Ｓ３０２の「ＮＯ」）、ルーティング処理は実行されず、スケジュールカウンタが２０となるのが待機される（Ｓ３０５）。スケジュールカウンタが２０となると（Ｓ３０５の「ＹＥＳ」）、チャンネル選択部１０５が選択チャンネルを１つインクリメントし（Ｓ３０６）、本フローの１ルーチンを終了する。
【００４７】
次いで、図３のＳ３０３におけるルーティング処理について、図４を参照して詳細に説明する。
【００４８】
チャンネル選択部１０５から現在選択されているチャンネルでのルーティング処理開始の指示を受けると、ＩＤ選択部１０６は、選択チャンネルのＣＡＮコントローラ１０２からルーティング処理すべきフレームのＩＤ（ここでは、データ番号）を読み出す（Ｓ４０１）。
【００４９】
ＩＤ選択部１０６は、読み出したフレームＩＤを出力先検索部１０８へ渡す。出力先検索部１０８は、受け取ったＩＤを記憶部１０７に記憶保持されたテーブルに照らして、そのＩＤを持つフレームを転送すべきチャンネル（出力先チャンネル）を読み出す（Ｓ４０２）。
【００５０】
出力先検索部１０８は、読み出した出力先チャンネルをデータ複製部１０９へ渡す。データ複製部１０９は、選択チャンネルのＣＡＮコントローラ１０２からルーティング処理すべきフレームのデータ部分を読み出し（Ｓ４０３）、すべての出力先チャンネルのＣＡＮコントローラ１０２へ一括書き込みする（Ｓ４０４）。すなわち、この一括書き込み処理において、データは出力先チャンネルと同じ数だけコピーされることになる。
【００５１】
換言すれば、本実施例において、データ複製部１０９は、出力先チャンネルのＣＡＮコントローラ１０２の各々へ逐一（順次）フレームデータを書き込みする必要がなく、効率的である。
【００５２】
ルーティングすべきフレームデータが書き込まれた出力先チャンネルのＣＡＮコントローラ１０２は、当該フレームデータを自身のチャンネルにおいてブロードキャストする準備を行う（Ｓ４０５）。
【００５３】
各出力先チャンネルにおいて送信準備が整うと、受信チャンネルのＣＡＮコントローラ１０２は、バッファされていた受信フレームを破棄する（Ｓ４０６）。
【００５４】
図４において、スケジュールカウンタ１０４のカウンタ値に応じて、例えば、カウント値＝２〜４においてＳ４０１の処理、カウント値＝５〜７においてＳ４０２の処理、などのように定め、スケジュールカウンタが１９となるまでにＳ４０６の処理が完了するように設計される。
【００５５】
このように、本実施例によれば、各チャンネルのルーティング処理を行う順番が予め固定的に決まっているため、いずれのチャンネルのルーティング処理を優先すべきかを判断する必要がなく、ルーティングスイッチ１００の構成及び処理を簡易なものとすることができる。
【００５６】
また、本実施例によれば、スケジュールカウンタ１０４の動作周波数（単位時間あたりのカウント数）を変更して１チャンネルあたりの１回のルーティング処理時間を短くすることによってルーティングスイッチ１００のチャンネル数を容易に変更することができるため、チャンネル数の変更に柔軟に対応可能である。
【００５７】
また、本実施例によれば、ルーティング処理の際の１チャンネルあたりの１回の処理時間（タイムスロット）の長さが予め固定的に決まっており、各チャンネルに割り当てられたタイムスロットはそのチャンネルにルーティングすべきフレームが有る無しにかかわらず回ってくるため、各チャンネルにおけるルーティングすべきフレームがＣＡＮコントローラ１０２にバッファされてからルーティング処理されるまでの最大待機時間が事前に予測でき、待機時間にゆらぎが生じない。
【００５８】
さらに、本実施例によれば、すべてのチャンネルについてルーティング処理する順番が一巡するのに要する時間がフレーム受信最短間隔の長さ（ここでは９６μｓ）以下に設定されるため、あるチャンネルにおいてルーティングすべきデータが２フレーム連続して受信されたとしても、２つ目のフレームが受信完了するまでに１つ目のフレームのルーティング処理が開始されるため、２以上のフレームがルーティング処理待機中となることがない。
【００５９】
なお、上記一実施例においては、フレーム単位でデータが送受信されるＣＡＮが採用された場合について説明したが、本発明はこれに限られず、様々な通信プロトコルに適用可能である。
【００６０】
また、上記一実施例においては、すべてのタイムスロット長が等しいものとしたが、本発明はこれに限られず、タイムスロット長はチャンネルごとに異なってもよい。
【００６１】
さらに、当業者には明らかなように、上記一実施例における具体的数値は単なる一例に過ぎず、本発明はそれらに限定されるものではない。例えば、ルーティングスイッチ１００のチャンネル数は上述のように３２ＣＨに限られず柔軟に変更可能であり、また、１チャンネルの１回のルーティング処理に掛ける時間も（動作周波数の変更とは別に）スケジュールカウンタ１０４のカウント２０相当に限られない。
【産業上の利用可能性】
【００６２】
本発明は、１チャンネルから入力されたデータを他の１以上のチャンネルへルーティングするルーティングスイッチに利用できる。より具体的には、例えば、車内ＬＡＮにおいて複数のバスを接続するゲートウェイ装置として用いることができる。この場合、搭載される車両の外観、重量、サイズ、走行性能等は問わない。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施例に係るルーティングスイッチの概略構成図である。
【図２】本発明の一実施例に係るルーティングスイッチによる受信処理の概略を説明するための図である。
【図３】本発明の一実施例に係るルーティングスイッチによる受信処理の流れを示すフローチャートである。
【図４】本発明の一実施例に係るルーティングスイッチによるルーティング処理の流れを示すフローチャートである。
【符号の説明】
【００６４】
１００  ルーティングスイッチ
１０１  ルーティング処理回路
１０２  ＣＡＮコントローラ
１０３  マイコン
１０４  スケジュールカウンタ
１０５  チャンネル選択部
１０６  ＩＤ選択部
１０７  記憶部
１０８  出力先検索部
１０９  データ複製部
【図１】
0004407615.tif 000002
【図２】
0004407615.tif 000003
【図３】
0004407615.tif 000004
【図４】
0004407615.tif 000005