(57)【要約】【課題】  複雑な制御が必要なシンクロナイザーを用いることなく、より小規模な回路構成で非同期転送を行うパケット通信装置を提供する。【解決手段】  パケットを非同期で書き込み、読み出し可能なＫビット×Ｌ段（Ｋ、Ｌともに自然数）のパケット格納非同期ＦＩＦＯ(First-In First-Out)と、前記パケット格納非同期ＦＩＦＯにパケットを格納したことを示すフラグを書き込み、読み出し可能な１ビット×Ｍ段（Ｍは自然数）のパケット格納通知非同期ＦＩＦＯと、受信パケットのパケット長フィールドの値を格納するパケット長レジスタとを備えるとともに、前記パケット格納通知非同期ＦＩＦＯから読み出した情報と、前記パケット長レジスタに格納された値とに基づいて、前記パケット格納非同期ＦＩＦＯからパケットを読み出す。【選択図】          図１
2006165626.tif 000002
【特許請求の範囲】
【請求項１】
パケットを非同期で書き込み、読み出し可能なＫビット×Ｌ段（Ｋ、Ｌともに自然数）のパケット格納非同期ＦＩＦＯ(First-In First-Out)と、
前記パケット格納非同期ＦＩＦＯにパケットを格納したことを示すフラグを書き込み、読み出し可能な１ビット×Ｍ段（Ｍは自然数）のパケット格納通知非同期ＦＩＦＯと、
受信パケットのパケット長フィールドの値を格納するパケット長レジスタとを備えるとともに、
前記パケット格納通知非同期ＦＩＦＯから読み出した情報と、前記パケット長レジスタに格納された値とに基づいて、前記パケット格納非同期ＦＩＦＯからパケットを読み出すことを特徴とする非同期ＦＩＦＯパケット通信回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パケットの送信側回路と受信側回路で動作するクロック周波数が互いに異なる非同期ＦＩＦＯパケット通信装置に関するものである。
【背景技術】
【０００２】
パケットの送受信を行う通信装置には、パケットの送信側回路と受信側回路で動作するクロック周波数が互いに異なる非同期転送が必要となるものがある。このような通信装置では、送信側回路と受信側回路の間に非同期ＦＩＦＯ(First-In First-Out)を介してパケットの転送を行い、異なるクロック周波数を同期化するのが一般的である。
【０００３】
このような非同期ＦＩＦＯを用いたパケット通信装置では、パケットの送信側回路と受信側回路の双方が非同期ＦＩＦＯのパケット格納状態や相手の動作状況を把握することが必要である。これらを互いにやり取りするには送信側回路と受信側回路の間にいくつかの信号を定義して自分の状態を相手に伝える手法が用いられてきた。ここでは送信側回路と受信側回路で動作するクロック周波数が異なるため、それを同期化する方法としてシンクロナイザーと呼ばれる多段化したフリップフロップが用いられる。しかしながら、このようなシンクロナイザーを用いた方法は一般に複雑な制御と回路構成が必要とされ、かつ効率のよいパケット転送を行うことが困難であった。
【０００４】
これを解決する方法として、例えば特開平１０−１０５３７５号公報のような、データの実体を転送する非同期ＦＩＦＯ（以下データ格納ＦＩＦＯと呼ぶ）に加えてデータの書き込みデータ数（あるいはデータの読み込みデータ数）を転送するための非同期ＦＩＦＯ（以下データ数格納ＦＩＦＯと呼ぶ）を用いる方法がある。この方法では、書き込み側はデータ格納ＦＩＦＯにデータを書き込むのに加えて書き込んだデータ数をデータ数格納ＦＩＦＯに書き込み、読み出し側はデータ数格納ＦＩＦＯから書き込みデータ数を読み出し、このデータ数に相当するデータをデータ格納ＦＩＦＯから読み出す。送信側回路と受信側回路のやり取りは制御信号も含めて全て非同期ＦＩＦＯを介して行うため、シンクロナイザーを用いることなく異なるクロック間のデータ転送を容易に効率よく実行できる。
【０００５】
【特許文献１】特開平１０−１０５３７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
データ格納ＦＩＦＯとデータ数格納ＦＩＦＯを有した従来の非同期ＦＩＦＯバッファ装置をＴＣＰ／ＩＰ等の汎用の通信プロトコルを用いたパケット通信装置に適用する場合、データ数格納ＦＩＦＯに格納するデータ数はパケット長に対応する。例えば、上記特開平１０−１０５３７５号公報に記載の従来のパケット通信装置では、転送するデータ数をＮビットで表記した場合、データ数格納ＦＩＦＯはＮビット×Ｍ段の構成をとる。その一方で、ＴＣＰ／ＩＰ等のような汎用の通信プロトコルにはパケットの実体にパケット長を示すフィールドがあらかじめ用意されている。このためパケット長をデータ格納ＦＩＦＯとデータ数格納ＦＩＦＯの２つのＦＩＦＯに重複して格納することになる。例えばＴＣＰ／ＩＰでパケット長を示すフィールドは、パケット長をバイト単位で２進数表記した場合１６ビット（ＩＰの場合）〜３２ビット（ＴＣＰの場合）である。このフィールドを１パケット毎に重複して転送するため、回路構成に無駄が生じその規模が増大するという問題点があった。
【０００７】
この発明は上記のような問題点を解決するためになされたもので、複雑な制御が必要なシンクロナイザーを用いることなく、より小規模な回路構成で非同期転送を行う非同期ＦＩＦＯパケット通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る非同期ＦＩＦＯパケット通信装置は、パケットを非同期で書き込み、読み出し可能なＫビット×Ｌ段（Ｋ、Ｌともに自然数）のパケット格納非同期ＦＩＦＯ(First-In First-Out)と、前記パケット格納非同期ＦＩＦＯにパケットを格納したことを示すフラグを書き込み、読み出し可能な１ビット×Ｍ段（Ｍは自然数）のパケット格納通知非同期ＦＩＦＯと、受信パケットのパケット長フィールドの値を格納するパケット長レジスタとを備えるとともに、前記パケット格納通知非同期ＦＩＦＯから読み出した情報と、前記パケット長レジスタに格納された値とに基づいて、前記パケット格納非同期ＦＩＦＯからパケットを読み出すものである。
【発明の効果】
【０００９】
パケットを非同期で書き込み、読み出し可能なＫビット×Ｌ段（Ｋ、Ｌともに自然数）のパケット格納非同期ＦＩＦＯ(First-In First-Out)と、前記パケット格納非同期ＦＩＦＯにパケットを格納したことを示すフラグを書き込み、読み出し可能な１ビット×Ｍ段（Ｍは自然数）のパケット格納通知非同期ＦＩＦＯと、受信パケットのパケット長フィールドの値を格納するパケット長レジスタとを備えるとともに、前記パケット格納通知非同期ＦＩＦＯから読み出した情報と、前記パケット長レジスタに格納された値とに基づいて、前記パケット格納非同期ＦＩＦＯからパケットを読み出すことにより、ＦＩＦＯに必要なリソースを削減し、非同期ＦＩＦＯパケット通信に必要な回路をより小規模に構成することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は、本発明における非同期ＦＩＦＯを用いたパケット通信装置の構成を示す説明図である。図１において、非同期ＦＩＦＯパケット通信装置１００は、転送しようとするパケットの実体を格納するパケット格納非同期ＦＩＦＯ１０１と、入力側から出力側にパケット格納ＦＩＦＯ１０１のパケット格納状態を通知するパケット格納通知非同期ＦＩＦＯ１０２と、パケット格納非同期ＦＩＦＯ１０１にパケットを入力するとともにパケット格納通知非同期ＦＩＦＯ１０２にパケットを格納したことを示すフラグを書き込むライト制御回路１０３と、パケット格納非同期ＦＩＦＯ１０１からパケットを出力するとともにパケット格納通知非同期ＦＩＦＯ１０２からパケットを格納したことを示すフラグを読み出すリード制御回路１０４とを備える。また、前記各回路間において、パケットを入力するためのパケット入力信号１０５と、パケットを出力するためのパケット出力信号１０６と、パケット格納通知非同期ＦＩＦＯ１０２が満杯であることを示すＦｕｌｌ信号１０７と、ライト制御回路１０３がパケット格納通知非同期ＦＩＦＯ１０２にパケットを格納したことを示すフラグを書き込むためのＷｅｎ信号１０８と、リード制御回路１０４がパケット格納通知非同期ＦＩＦＯ１０２からパケットを格納したことを示すフラグを読み出すＲｅｎ信号１０９と、パケット格納通知非同期ＦＩＦＯ１０２が空であることを示すＥｍｐｔｙ信号１１０と、パケット格納非同期ＦＩＦＯ１０１のパケット格納量を示すＳｔａｔｕｓ信号１１１と、ライト制御回路１０３がパケット格納非同期ＦＩＦＯ１０１にパケットを書き込むためのＷｅｎ信号１１２と、リード制御回路１０４がパケット格納非同期ＦＩＦＯ１０１からパケットを読み出すためのＲｅｎ信号１１３の信号の入出力を行っている。
【００１１】
本実施の形態１におけるパケット格納非同期ＦＩＦＯ１０１の構成はＫビット×Ｌ段、パケット格納通知非同期ＦＩＦＯ１０２の構成は１ビット×Ｍ段である。ここでＫ、Ｌ、Ｍは１以上の整数である。例えば、ＴＣＰ／ＩＰ等の通信プロトコルではＫは一般に３２ビットである。ＬおよびＭは主に実装するハードウェアのリソースや転送するパケットの通信プロトコルレイヤー等に依存する。
【００１２】
図２は、非同期ＦＩＦＯパケット通信装置１００におけるライト制御回路１０３の構成を示す説明図である。図２において、ライト制御回路１０４は、パケット長をＫビット単位でカウントするカウンタ２０１と、パケット長を格納するパケット長レジスタ２０２と、カウンタ２０１とパケット長レジスタ２０２を比較する比較回路２０３と、パケット格納通知非同期ＦＩＦＯ１０２への書込み要求信号Ｗｅｎ１０８を制御するＷｅｎ制御回路２０４と、パケット格納非同期ＦＩＦＯ１０１への書込み要求信号Ｗｅｎ１１２を制御するＷｅｎ制御回路２０５とを備える。
【００１３】
図３は、非同期ＦＩＦＯパケット通信装置１００におけるリード制御回路１０４の構成を示す説明図である。図３において、パケット長をＫビット単位でカウントするカウンタ３０１と、パケット長を格納するパケット長レジスタ３０２と、カウンタ３０１とパケット長レジスタ３０２を比較する比較回路３０３と、パケット格納通知非同期ＦＩＦＯ１０２への読み出し要求信号Ｒｅｎ１０９を制御するＷｅｎ制御回路３０４と、パケット格納非同期ＦＩＦＯ１０１への読み出し要求信号Ｒｅｎ１１３を制御するＷｅｎ制御回路３０５とを備える。
【００１４】
図１〜３を用いて、本実施の形態１における非同期ＦＩＦＯパケット通信装置の動作について以下に説明する。
【００１５】
まず第１のステップとして、入力パケット信号をパケット格納非同期ＦＩＦＯ１０１に入力する前に、ライト制御回路１０３において入力パケット信号をチェックする。
ライト制御回路１０３は、入力パケット信号１０５にＫビット単位でパケットが入力されてくると、カウンタ２０１を１ずつインクリメントし、これを当該パケットの入力が完了するまで繰り返す。ライト制御回路１０３は、これと並行してパケットヘッダからパケット長フィールドを読み込み、パケット長レジスタ２０２に格納する。なお、ＴＣＰ／ＩＰ等の汎用の通信プロトコルでは、パケット内のパケット長フィールドの位置はパケット長に関わらず固定されており、パケット長レジスタ２０２へのパケット長の格納はカウンタ２０１が所定値になったときに実行すればよい。
続いて、ライト制御回路１０３のＷｅｎ制御回路２０５は、パケット格納非同期ＦＩＦＯ１０１のパケット格納量を示すＳｔａｔｕｓ信号１１１と、パケット長レジスタ２０２に格納された値とを比較し、パケット格納非同期ＦＩＦＯ１０１に当該パケットが格納可能か否かを判断する。格納可能であれば、ライト制御回路１０３のＷｅｎ制御回路２０５はＷｅｎ信号１１２を有効にして、パケット格納非同期ＦＩＦＯ１０１にパケットを格納する。格納不能であれば、ライト制御回路１０３のＷｅｎ制御回路２０５は、Ｗｅｎ信号１１２を無効にして当該パケットを廃棄し、次のパケットの入力開始を待つ。
【００１６】
パケット格納非同期ＦＩＦＯ１０１に当該パケットが格納可能で、当該パケットの格納を開始した場合、パケット格納非同期ＦＩＦＯ１０１への当該パケットの入力が完了したか否かの判断は、ライト制御回路１０３の比較回路２０３が、Ｋビットのパケット入力の都度、カウンタ２０１とパケット長レジスタ２０２を比較することで行う。Ｗｅｎ制御回路２０５は、カウンタ２０１の値とパケット長レジスタ２０２の値とが一致したという比較回路２０３からの比較結果が入力されると、当該パケットの入力が完了したと判断し、Ｗｅｎ信号１１２を無効にしてパケット格納非同期ＦＩＦＯ１０１へのパケットの入力を停止する。同時に、Ｗｅｎ制御回路２０４は、カウンタ２０１の値とパケット長レジスタ２０２の値とが一致したという比較回路２０３からの比較結果が入力されると、パケット格納通知非同期ＦＩＦＯ１０２に対しＷｅｎ信号１０８を１クロック分有効にして出力する。Ｗｅｎ信号１０８が１クロック分有効になると、パケット格納通知非同期ＦＩＦＯ１０２に入力フラグ信号１１４の１ビットのデータが書き込まれるが、これはパケット格納非同期ＦＩＦＯ１０１において１つのパケットの格納が完了したことに相当する。ここで入力フラグ信号１１４は１あるいは０に固定された任意の値である。なお、カウンタ２０１の値とパケット長レジスタ２０２の値とが一致しないうちは、ライト制御回路１０３ではカウンタ２０１におけるインクリメントとＷｅｎ制御回路２０５によるＷｅｎ信号１１２の有効出力を継続する。
【００１７】
次に第２のステップとして、リード制御回路１０４のＲｅｎ制御回路３０４は、Ｅｍｐｔｙ信号１１０を確認して、パケット格納通知非同期ＦＩＦＯ１０２に書き込まれたデータあるか否か、つまりパケット格納非同期ＦＩＦＯ１０１に既に１個以上のパケットが格納されているかどうかを判断する。Ｅｍｐｔｙ信号が無効（書き込まれたデータが有る）の場合、パケット格納非同期ＦＩＦＯ１０１には既にパケットが格納されているので、リード制御回路１０４のＲｅｎ制御回路３０５はＲｅｎ信号１１３を有効にしてパケット格納非同期ＦＩＦＯ１０１からパケットを出力する。
【００１８】
続いて、パケット格納非同期ＦＩＦＯ１０１から出力パケット信号１０６としてＫビット単位でパケットが出力されてくると、リード制御回路１０４はカウンタ３０１を１ずつインクリメントし、これを当該パケットの出力が完了するまで繰り返す。リード制御回路１０４は、これと並行してパケットヘッダからパケット長フィールドを読み込み、パケット長レジスタ３０２に格納する。なお、ライト制御回路１０３と同様に、ＴＣＰ／ＩＰ等の汎用の通信プロトコルではパケット内のパケット長フィールドの位置はパケット長に関わらず固定しており、パケット長レジスタ３０２へのパケット長の格納はカウンタ３０１が所定値になったときに実行すればよい。
【００１９】
パケット格納非同期ＦＩＦＯ１０１から当該パケットの出力が完了したか否かの判断は、リード制御回路１０４の比較回路３０３が、Ｋビットのパケット出力の都度、カウンタ３０１の値とパケット長レジスタ３０２の値とを比較することで行う。Ｒｅｎ制御回路３０５は、カウンタ３０１の値とパケット長レジスタ３０２の値とが一致したという比較回路３０３からの比較結果が入力されると、当該パケットの出力が完了したと判断し、Ｒｅｎ信号１１３を無効にして出力パケット信号１０６からのパケットの出力を停止する。同時に、Ｒｅｎ制御回路３０４は、パケット格納通知非同期ＦＩＦＯ１０２に対してＲｅｎ信号１０９を１クロック分有効にして出力する。Ｒｅｎ信号１０９が１クロック分有効になると、パケット格納通知非同期ＦＩＦＯ１０２から出力フラグ信号１１５の１ビットのデータが読み込まれるが、これはパケット格納非同期ＦＩＦＯ１０１から１つのパケットの読み込みを完了したことに相当する。ここで出力フラグ信号１１５はライト制御回路１０３により書き込まれた１あるいは０の任意の固定値、すなわち入力フラグ信号１１４であるが、Ｒｅｎ制御回路３０４はこれを破棄する。なお、カウンタ３０１の値とパケット長レジスタ３０２の値とが一致しないうちは、リード制御回路１０４ではカウンタ３０１におけるインクリメントとＲｅｎ信号１１３の有効出力を継続する。
【００２０】
以上のように、本発明によれば、パケット格納通知非同期ＦＩＦＯ１０２にはパケット格納非同期ＦＩＦＯ１０１に１個以上のパケットが格納されているかどうかの情報を示す１ビットのデータだけを格納することにより、パケット格納非同期ＦＩＦＯ１０１内のパケット格納状況を容易に把握することが可能となり、非同期ＦＩＦＯパケット通信に必要な回路をより小規模に構成することができる。つまり、従来技術では転送するパケットのパケット長を格納するのに必要とされたデータ数格納非同期ＦＩＦＯのＮビット×Ｍ段の構成を１ビット×Ｍ段の構成で実現することができ、このようにすることでＦＩＦＯに必要なリソースを削減し、非同期ＦＩＦＯパケット通信に必要な回路をより小規模に構成することができる。
【００２１】
なお、本実施の形態１では単一パケットの書き込みと読み込みの動作をそれぞれ説明したが、本発明によれば、複数パケットの処理においてライト制御回路１０３とリード制御回路１０４は並列に動作する場合でも同様の効果を得ることができる。
【図面の簡単な説明】
【００２２】
【図１】非同期ＦＩＦＯを用いたパケット通信装置の構成を示す説明図
【図２】非同期ＦＩＦＯパケット通信装置１００におけるライト制御回路１０３の構成を示す説明図
【図３】非同期ＦＩＦＯパケット通信装置１００におけるリード制御回路１０４の構成を示す説明図
【符号の説明】
【００２３】
１００  非同期ＦＩＦＯパケット通信装置
１０１  パケット格納非同期ＦＩＦＯ
１０２  パケット格納通知非同期ＦＩＦＯ
１０３  ライト制御回路
１０４  リード制御回路
１０５  入力パケット信号
１０６  出力パケット信号
１０７  Ｆｕｌｌ信号
１０８  Ｗｅｎ信号
１０９  Ｒｅｎ信号
１１０  Ｅｍｐｔｙ信号
１１１  Ｓｔａｔｕｓ信号
１１２  Ｗｅｎ信号
１１３  Ｒｅｎ信号
１１４  入力フラグ信号
１１５  出力フラグ信号
２０１  カウンタ
２０２  パケット長レジスタ
２０３  比較回路
２０４  Ｗｅｎ制御回路
２０５  Ｗｅｎ制御回路
３０１  カウンタ
３０２  パケット長レジスタ
３０３  比較回路
３０４  Ｒｅｎ制御回路
３０５  Ｒｅｎ制御回路
【図１】
2006165626.tif 000003
【図２】
2006165626.tif 000004
【図３】
2006165626.tif 000005