(57)【特許請求の範囲】
【請求項１】
可変長のフレームデータの書き込み及び読み出しが行われるバッファメモリにおいて、
チャネル毎に、受信される前記フレームデータの最大サイズよりも大きなサイズの面を一面ずつ備え、
受信されるフレームデータの書き込みを制御する書込制御部と、
書き込まれたフレームデータの読み出しを制御する読出制御部と、
チャネル毎に書き込まれたフレームデータ数を保存するメモリと、
チャネル毎に読み出されたフレームデータ数を保存するメモリと、
チャネル毎にバッファメモリの書き込み位置を保存するライトポインタと、
チャネル毎にバッファメモリの読み出し位置を保存するリードポインタと、
チャネル毎に書き込まれたフレームデータ数と読み出されたフレームデータ数を比較する比較部とを供え、
書き込まれたデータ数が読み出されたフレームデータ数と異なる場合に、フレームデータを読み出すこと
を特徴とするバッファメモリ。
【請求項２】
前記比較部による比較の結果、書き込まれたフレームデータ数が読み出されたフレームデータ数よりも大きいチャネルが複数ある場合、その結果の差分の大きなチャネルから読み出しが行われることを特徴とする請求項１に記載のバッファメモリ。
【請求項３】
前記比較部は前記読出制御部に備えられることを特徴とする請求項１又は２に記載のバッファメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、可変長のフレームデータの書き込み及び読み出しが行われるバッファメモリに関するものである。
【背景技術】
【０００２】
交換機システム上には時分割ハイウェイ（ＨＷ）があり、ＨＷ上には複数のタイムスロットに分けられデータの送受信が行われる。
まず、フレームデータの送受信について説明する。
交換機システムにて各チャネルのフレームデータを送信する時にはチャネル毎に時分割ＨＷ上のタイムスロットを使用してタイムスロットのデータサイズにあわせて分割して送信が行われる。例えば、タイムスロット０に０チャネル、タイムスロット１に１チャネルを使用する。
受信側ではチャネル毎に該当するタイムスロットのデータを受信し、メモリに順番に書き込みを行い、フレームデータを組立てることができる。例えば、０チャネルのデータは０チャネル用のバッファの受信用領域に、１チャネルのデータは１チャネル用のバッファの受信用領域を使用する。
フレームデータの受信が完了すると次処理を行うために読み出される。
【０００３】
ＨＷ上に複数のチャネルが収容されている場合、上記の受信処理をチャネル毎に並列に行う必要がある。
この時、受信フレームデータの組立てに必要なメモリは、扱うフレームデータの最大サイズをＡbyteとすると、チャネル毎に必要なメモリサイズは１フレームデータのサイズＡbyteとなる。
また、読み出し処理中においても次のフレームデータの受信も可能でなければならないため、読み出し中に書き込みを行うためのバッファが少なくとも１面必要となり、合計でバッファメモリは２面以上必要となっていた。
複数のチャネルに対して連続してフレーム受信を行うためには全体でチャネル数×Ａbyte×２面以上が必要となる。
【０００４】
例として０チャネル、１チャネルとを受信する場合では図３のような構成になる。バッファメモリは受信メモリ３０１、受信データ書込制御部３０２、受信データ読出制御部３０３、ライトポインタ３０４、リードポインタ３０５から構成される。受信メモリ３０１は、０チャネル用受信領域及び１チャネル用受信領域を有し、０チャネル用受信領域はバッファ０１及びバッファ０２、１チャネル用受信領域はバッファ１１及びバッファ１２からなる。バッファ０１、バッファ０２、バッファ１１、バッファ１２はそれぞれＡbyteの領域を有する。
またライトポインタ３０４は０チャネル用ライトポインタ及び１チャネル用ライトポインタ、リードポインタ３０５は０チャネル用リードポインタ及び１チャネル用リードポインタを有する。
【０００５】
例として０チャネルについての動作を説明するが１チャネルについても同様の動作となる。まず書き込み動作について説明する。ＨＷよりデータを受信すると、受信データ書込制御部３０２は０チャネルのライトポインタ値に従いバッファ０１にデータの書き込みを行い、ライトポインタを＋１する。
同様にフレームの最終データ受信まで繰り返し、最終データ受信をすると受信データ書込制御部３０２は０チャネルのライトポインタ値に従いバッファ０１にデータの書き込みを行い、ライトポインタをバッファ０２の先頭にする。また、１フレーム受信完了なので、受信データ書込制御部３０２は受信データ読出制御部３０３に対してフレームデータ書込完了を通知する。
【０００６】
新たにＨＷよりデータを受信すると、受信データ書込制御部３０２は０チャネルのライトポインタ値に従いバッファ０２にデータの書き込みを行い、ライトポインタを＋１する。
同様にフレームの最終データ受信まで繰り返し、最終データ受信をすると、受信データ書込制御部３０２は０チャネルのライトポインタ値に従いバッファ０２にデータの書き込みを行い、ライトポインタをバッファ０１の先頭にする。また、１フレーム受信完了なので、受信データ書込制御部３０２は受信データ読出制御部３０３に対してフレームデータ書き込み完了を通知する。
以下同様に繰り返しを行う。
【０００７】
次に、読み出し動作について説明する。０チャネルのフレームデータ書込完了を検出すると、受信データ読出制御部３０３は読み出し可能なフレームがあると判断する。
受信データ読出制御部３０３は読み出しチャネルのリードポインタ値に従い、バッファ０１よりデータの読み出しを行い、リードポインタを＋１する。
受信データ読出制御部３０３は１フレーム分の読出しが完了するまで、データを読出し、リードポインタを＋１する動作を繰り返す。
１フレーム分のデータ読出しが完了すると、受信データ読出制御部３０３は受信データ書込制御部３０２に対してフレームデータ読出完了通知をする。
以降は、受信データ読出制御部３０３はフレームデータ書込完了通知が来るごとにバッファ０２、バッファ０１と同様の読み出し処理を行う。
以上の動作を処理を行うチャネルのデータを受信する毎に行っていく。
【０００８】
バッファ０２へのフレームデータ書込み完了時にバッファ０１のフレームデータが読み出されていないことが起こるような場合は、次のフレームを受けるためにバッファ０３を用意する必要がある。
例えば、バッファ０１のフレームデータが長く、読出し処理に時間がかかり、以降のフレームデータが短く、短時間で１フレーム受信されるような場合には読み出し側の処理よりもはやく、バッファ０２にフレームデータが書き込まれることが考えられるため次のデータの受信ができない。
バッファ０３を用意しても同様のことが起こりうる条件の場合はバッファを０４，０５というように、さらに増やしていく必要がある。
【０００９】
また下記特許文献１のように、受信バッファのメモリ容量を最小限にしても、オーバーランを防止してパケットデータを確実に伝送することができるデータ伝送装置に関する特許が出願されている。
【特許文献１】特開２００２−２７１４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のバッファメモリの構成では、扱うフレームデータの最大サイズをＡバイトとすると、１面あたりのバッファメモリサイズはＡバイトを必要とし、フレームデータのとりうる最小サイズが小さいほど同一時間あたりの受信フレーム数が多くなるため、すべてを受信するためにはメモリの面数が多数必要になる。
以上より、受信フレームの取りこぼさないためにはチャネル毎のバッファメモリの面数が多くなるという問題があった。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため、本発明による第一のバッファメモリは、可変長のフレームデータの書き込み及び読み出しが行われるバッファメモリにおいて、チャネル毎に、受信されるフレームデータの最大サイズよりも大きなサイズの面を一面ずつ備え、受信されるフレームデータの書き込みを制御する書込制御部と、書き込まれたフレームデータの読み出しを制御する読出制御部と、チャネル毎に書き込まれたフレームデータ数を保存するメモリと、チャネル毎に読み出されたフレームデータ数を保存するメモリと、チャネル毎にバッファメモリの書き込み位置を保存するライトポインタと、チャネル毎にバッファメモリの読み出し位置を保存するリードポインタと、チャネル毎に書き込まれたフレームデータ数と読み出されたフレームデータ数を比較する比較部とを供え、書き込まれたデータ数が読み出されたフレームデータ数と異なる場合に、フレームデータを読み出すことを特徴とする。
【００１２】
また、本発明による第二のバッファメモリは、第一のバッファメモリにおいて、比較部による比較の結果、書き込まれたフレームデータ数が読み出されたフレームデータ数よりも大きいチャネルが複数ある場合、その結果の差分の大きなチャネルから読み出しが行われることを特徴とする。
【００１３】
さらに、本発明による第三のバッファメモリは、第一又は第二のバッファメモリにおいて、比較部は読出制御部に備えられることを特徴とする。
【発明の効果】
【００１４】
発明の効果として、本発明のバッファメモリによれば、１つのメモリの中に複数のチャネルのバッファメモリを持ちながら、受信フレーム数によるバッファ面数を必要とせず、受信フレームの合計サイズによるバッファの管理が行えるため、フレームデータのサイズが小さい時にも  メモリの使用効率が上がる。結果としてトータルのバッファメモリ容量を小さくすることが可能になる。
また、書込みフレーム数、読出しフレーム数よりバッファに溜まっているフレーム数を知ることができる。
さらにバッファに溜まっているフレーム数を各チャネルで比較し、バッファからの読出しに優先順位をつけることが可能となる。
【発明を実施するための最良の形態】
【００１５】
可変長のフレームデータの書き込み及び読み出しが行われるバッファメモリにおいて、チャネル毎に、受信される前記フレームデータの最大サイズよりも大きなサイズの面を一面ずつ備え、フレームデータの最大サイズよりも大きなサイズは、フレームデータの最大サイズと受信完了したフレームデータを読み出す間に新たなフレームデータを受信可能なサイズとの合計サイズとし、受信されるフレームデータの書き込みを制御する書込制御部と、書き込まれたフレームデータの読み出しを制御する読出制御部と、チャネル毎に書き込まれたフレームデータ数を保存するメモリと、チャネル毎に読み出されたフレームデータ数を保存するメモリと、チャネル毎にバッファメモリの書き込み位置を保存するライトポインタと、チャネル毎にバッファメモリの読み出し位置を保存するリードポインタと、チャネル毎に書き込まれたフレームデータ数と読み出されたフレームデータ数を比較する比較部とを備え、書き込まれたデータ数が読み出されたフレームデータ数と異なる場合に、フレームデータを読み出すようにする。
【実施例１】
【００１６】
以下、本発明によるバッファメモリの実施例１は、図１及び図２を用いて説明される。図１は本発明のバッファメモリの構成を示す図である。図２は本発明のバッファメモリの動作を示す図である。
【００１７】
まず図１を用いてバッファメモリの構成が説明される。
バッファメモリは、受信メモリ１０１、受信データ書込制御部１０２、受信データ読出制御部１０３、ライトポインタ１０４、リードポインタ１０５、書込フレーム数保存部１０６、読出フレーム数保存部１０７、比較部１０８から構成される。
【００１８】
受信メモリ１０１は、扱うフレームデータの最大サイズをＡバイトとすると、チャネル毎にバッファメモリをＡ＋αbyteずつ用意される。図１に示されるように、受信メモリ１０１はＡ＋αbyteの０チャネル用受信用領域、１チャネル用受信用領域というようにチャネル毎にバッファが構成される。αは、受信完了したフレームデータを次処理のために読み出す間にＨＷからのデータを十分に受信可能なサイズであり、読出し及び書込み処理速度によりサイズが決められる。通常書込み側の処理に比べ読出し側の処理の方が速いためαはＡよりも小さな値となる。書込み側の処理に比べ読出し側の処理が遅いとバッファメモリからデータが溢れてしまうからである。
【００１９】
受信データ書込制御部１０２はライトポインタ１０４により書き込みチャネルのライトポインタ値に従い受信メモリ１０１に受信データの書込制御を行う。
受信データ読出制御部１０３はリードポインタ１０５により読み出しチャネルのリードポインタ値に従い、受信メモリ１０１よりデータの読出制御を行う。
【００２０】
ライトポインタ１０４は、チャネル毎にバッファメモリの書き込み位置を保存するものであり、０チャネル用ライトポインタ、１チャネル用ライトポインタというようにチャネル毎に構成される。
リードポインタ１０５は、チャネル毎にバッファメモリの読み出し位置を保存するものであり、０チャネル用リードポインタ、１チャネル用リードポインタというようにチャネル毎に構成される。
【００２１】
書込フレーム数保存部１０６は、チャネル毎に受信データの書込フレーム数を保存するメモリであり、０チャネル用書込フレーム数、１チャネル用書込フレーム数というようにチャネル毎に書込フレーム数が保存される。
読出フレーム数保存部１０７は、チャネル毎に受信データの読出フレーム数を保存するメモリであり、０チャネル用読出フレーム数、１チャネル用読出フレーム数というようにチャネル毎に読出フレーム数が保存される。
【００２２】
比較部１０８は、書込フレーム数保存部１０６と読出フレーム数保存部１０７より、それぞれチャネル毎に書き込まれたフレームデータ数と読み出されたフレームデータ数の情報を受信し、比較し、書き込まれたフレームデータ数が読み出されたフレームデータ数よりも大きい場合に、受信データ読出制御部１０３にフレームデータを読み出させる。また、フレーム数のカウンタ値の上限があるので、単純に、書き込まれたフレームデータ数から読み出されたフレームデータ数を引き算すると、マイナスになる場合がある。そのため、比較部１０８は、書き込まれたフレームデータ数が読み出されたフレームデータ数と異なる場合に、フレームデータを読み出させるようにしてもよい。
【００２３】
次に図２を用いて本発明のバッファメモリの動作が説明される。以下の動作は処理を行うチャネルのデータを受信する毎に行われる。まず、書込み側の動作が説明される。
ＨＷよりデータを受信すると、受信データ書込制御部１０２は該当する各チャネルのライトポインタ値に従い受信メモリ１０１の該当するバッファの受信用領域に受信データの書き込みを行い、ライトポインタを＋１する（Ｓ２０１）。
同様にフレームの最終データ受信まで繰り返し、最終データ受信をすると受信データ書込制御部１０２は該当する各チャネルのライトポインタ値に従いバッファメモリにデータの書き込みを行い、ライトポインタを＋１する。また、受信フレーム１の受信完了なので書込フレーム数保存部１０６は該当するチャネルの書込フレーム数を＋１する（Ｓ２０２）。
【００２４】
ＨＷより新たなデータを受信すると、受信データ書込制御部１０２は該当する各チャネルのライトポインタ値に従い受信メモリ１０１の該当するバッファの受信用領域に受信フレーム１の後にデータの書き込みを行い、ライトポインタを＋１する（Ｓ２０３）。
同様にフレームの最終データ受信まで繰り返し、最終データ受信をすると該当する各チャネルのライトポインタ値に従いバッファメモリに受信データの書き込みを行い、ライトポインタを＋１する。また、受信フレーム２の受信完了なので書込みフレーム数を＋１する（Ｓ２０４）。
【００２５】
以降は同様に処理を行い、新たな受信データを受信メモリ１０１の該当するバッファの受信用領域に受信フレーム２の後にデータの書込みを行う（Ｓ２０５）。そして最終データ受信をすると該当する各チャネルのライトポインタ値に従いバッファメモリに受信データの書き込みを行い、ライトポインタを＋１し、受信フレーム３の書込みを完了して、書込フレーム数を＋１する（Ｓ２０６）。ただし、ライトポインタ値が受信メモリ１０１の各チャネルの受信用領域の最後まできた場合はライトポインタ値を０にする。
【００２６】
次に読出し側の動作が説明される。比較部１０８は各チャネルの書込フレーム数と読出フレーム数を比較し、「書き込みフレーム数＞読出しフレーム数」であるチャネルがあれば該当するチャネルのバッファに読み出し可能なフレームがあると判断する。そして受信データ読出制御部１０３は該当する読出しチャネルのリードポインタ値に従い、バッファメモリ１０１よりデータの読出しを行い、リードポインタを＋１する（Ｓ２０７）。
受信データ読出制御部１０３は受信フレーム１の１フレーム分の読出しが完了するまで、データ読出し、リードポインタを＋１する動作を繰り返す。
【００２７】
受信フレーム１の１フレーム分のデータ読出しが完了すると、読出フレーム数保存部１０７は該当するチャネルの読出フレーム数を＋１する（Ｓ２０８）。次に受信フレーム読出制御部１０３はバッファより受信フレーム２のデータを読み出す（Ｓ２０９）。そして受信フレーム２の１フレーム分のデータ読出しが完了すると、読出フレーム数保存部１０７は読出フレーム数を＋１する（Ｓ２１０）。
【００２８】
また、比較部１０８は、受信フレームをバッファから読み出す時にチャネル毎のバッファに蓄積されているフレーム数を「書込みフレーム数−読出しフレーム数」として比較し、比較した結果、「書込みフレーム数−読出しフレーム数」の差分の多いチャネルから優先して読出しを行うようにしてもよい。
【００２９】
本実施例ではチャネル数を２つで説明しているが必要とするチャネル数分にあわせて受信メモリ１０１、ライトポインタ１０４、書込フレーム数保存部１０６、リードポインタ１０５、読出フレーム数保存部１０７のメモリを用意することにより多チャネルにも対応できる。
また、実施例では時分割ＨＷによるフレームデータ受信について説明しているが、他のインタフェースでの受信、たとえばEthernet（登録商標）によるフレームデータ受信についても同様に対応できる。
【図面の簡単な説明】
【００３０】
【図１】本発明のバッファメモリの構成を示す図
【図２】本発明のバッファメモリの動作を示す図
【図３】従来のバッファメモリの構成を示す図
【符号の説明】
【００３１】
１０１…受信メモリ、１０２…受信データ書込制御部、１０３…受信データ読出制御部、１０４…ライトポインタ、１０５…リードポインタ、１０６…書込フレーム数保存部、１０７…読出フレーム数保存部、１０８…比較部
【図１】
0004715645.tif 000002
【図２】
0004715645.tif 000003
【図３】
0004715645.tif 000004