(57)【要約】【目的】記憶領域の使用効率を高めることが可能なメモリ装置及びメモリ装置の制御方法を提供することを目的とする。【構成】データ片と、このデータ片が読出済みであるのか或いは未読出であるのかを示す識別フラグと、が対応付けして各番地に記憶されるメモリ部に対して、以下のような書込及び読出制御を行う。書込制御では、受信データ系列中のデータ片をメモリ部の番地に書き込むと共に、この書き込みの為された番地に対応した識別フラグとして、未読出を示す値を書き込む。読出制御では、メモリ部に書き込まれているデータ片を番地毎に読み出すと共に、この読み出しの為された番地に対応した識別フラグの値を読出済みを示す値に書き換える。この際、書込制御では、メモリ部の記憶領域内において読出済みを示す値を有する識別フラグに対応した番地のみにデータ片の書き込みを行う。【選択図】図１
2015170280.tif 000002
【特許請求の範囲】
【請求項１】
データ片と、前記データ片が読出済みであるのか或いは未読出であるのかを示す値を有する識別フラグと、が対応付けして各番地に記憶されるメモリ部と、
受信データ系列中の前記データ片を前記メモリ部の前記番地に書き込むと共に、この書き込みの為された前記番地に対応した前記識別フラグとして前記未読出を示す値を書き込む書込制御部と、
前記メモリ部に書き込まれている前記データ片を前記番地毎に読み出すと共に、この読み出しの為された前記番地に対応した前記識別フラグの値を前記読出済みを示す値に書き換える読出制御部と、を有し、
前記書込制御部は、前記メモリ部内において前記読出済みを示す値を有する前記識別フラグに対応した前記番地に前記データ片の書き込みを行うことを特徴とするメモリ装置。
【請求項２】
前記未読出を示す値を有する前記識別フラグの数がオーバーフロー閾値以上となった場合に、前記メモリ部がオーバーフロー手前の状態にあることを示すオーバーフロー検出信号を出力するオーバーフロー検出部を有することを特徴とする請求項１記載のメモリ装置。
【請求項３】
前記書込制御部は、前記オーバーフロー検出信号に応じて、前記受信データ系列中の前記データ片の前記メモリ部への書き込みを停止すると共に書き込み破棄された前記データ片の総数を計数し、当該総数をメモリ装置の現在の状態を示す信号として出力することを特徴とする請求項２記載のメモリ装置。
【請求項４】
前記書込制御部は、前記受信データ系列中から特定のデータ片のみを抽出し、前記特定のデータ片だけを前記メモリ部へ書き込むことを特徴とする請求項３記載のメモリ装置。
【請求項５】
受信データ系列中のデータ片をメモリ部に書き込みこれを読み出すメモリ装置の制御方法であって、
前記データ片を前記メモリ部の番地に書き込むと共に、この書き込みの為された前記番地に対応付けして、前記データ片が未読出であることを示す値を有する識別フラグを前記メモリ部に書き込む書込制御ステップと、
前記メモリ部に書き込まれている前記データ片を前記番地毎に読み出すと共に、この読み出しの為された前記番地に対応した前記識別フラグの値を読出済みを示す値に書き換える読出制御ステップと、を有し、
前記書込制御ステップでは、前記メモリ部内において前記読出済みを示す値を有する前記識別フラグに対応した前記番地に前記データ片の書き込みを行うことを特徴とするメモリ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報データを書き込み、これを読み出すメモリ装置及びメモリ装置の制御方法に関する。
【背景技術】
【０００２】
情報データの交換機システムに用いられるメモリ装置として、受信したデータ片をそのデータ片に対応したチャネルの領域に書き込み、書き込まれた順に読み出すバッファメモリが提案されている（例えば特許文献１参照）。
【０００３】
かかるバッファメモリは、データ片の書き込み先の位置を指定するライトポインタと、読み出す位置を指定するリードポインタとを制御する制御部を備えている。
【０００４】
当該制御部は、データ片を受信する度にライトポインタを１だけインクリメントしつつ、このライトポインタによって示される位置にデータ片を書き込ませる書込制御を繰り返し実行することにより、チャネル領域内に順次、データ片を書き込ませる。また、制御部は、１つのデータ片を読み出す度にリードポインタを１だけインクリメントしつつ、リードポインタにて示される位置からデータ片を読み出す読出制御を繰り返し実行することにより、そのチャネル領域に格納されている全てのデータ片を読み出すようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３３６４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したバッファメモリでは、チャネル領域内から全データ片が読み出されると、それ以降、かかるチャネル領域は、新たな受信データ片の書き込みが可能な書込可能チャネル領域となる。しかしながら、チャネル領域内から任意のデータ片のみが読み出される、いわゆるランダム読み出しが為された場合には、このデータ片が格納されていた位置の前後には、未だ読み出しが為されていないデータ片が存在することから、当該チャネル領域を書込可能チャネル領域とすることはできない。
【０００７】
従って、ランダム読み出しが為された場合には、データ片が読み出されたにも拘わらず、そのデータ片が格納されていた位置に新たなデータ片を書き込むことができないので、バッファメモリとしての記憶領域の使用効率が低いという問題があった。
【０００８】
本発明は、記憶領域の使用効率を高めることが可能なメモリ装置及びメモリ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るメモリ装置は、データ片と、前記データ片が読出済みであるのか或いは未読出であるのかを示す値を有する識別フラグと、が対応付けして各番地に記憶されるメモリ部と、受信データ系列中の前記データ片を前記メモリ部の前記番地に書き込むと共に、この書き込みの為された前記番地に対応した前記識別フラグとして前記未読出を示す値を書き込む書込制御部と、前記メモリ部に書き込まれている前記データ片を前記番地毎に読み出すと共に、この読み出しの為された前記番地に対応した前記識別フラグの値を前記読出済みを示す値に書き換える読出制御部と、を有し、前記書込制御部は、前記メモリ部内において前記読出済みを示す値を有する前記識別フラグに対応した前記番地に前記データ片の書き込みを行う。
【００１０】
また、本発明に係るメモリ装置の制御方法は、受信データ系列中のデータ片をメモリ部に書き込みこれを読み出すメモリ装置の制御方法であって、前記データ片を前記メモリ部の番地に書き込むと共に、この書き込みの為された前記番地に対応付けして、前記データ片が未読出であることを示す値を有する識別フラグを前記メモリ部に書き込む書込制御ステップと、前記メモリ部に書き込まれている前記データ片を前記番地毎に読み出すと共に、この読み出しの為された前記番地に対応した前記識別フラグの値を読出済みを示す値に書き換える読出制御ステップと、を有し、前記書込制御ステップでは、前記メモリ部内において前記読出済みを示す値を有する前記識別フラグに対応した前記番地に前記データ片の書き込みを行う。
【図面の簡単な説明】
【００１１】
【図１】本発明に係るメモリ装置としてのバッファメモリ１００の内部構成を示すブロック図である。
【図２】メモリ部１の記憶領域のフォーマットの一例を示す図である。
【図３】メモリ部１の初期設定時の識別フラグＷＦの状態の一例を示す図である。
【図４】書込制御ルーチンの一例を示すフローチャートである。
【図５】データ書き込み後の識別フラグＷＦの状態の一例を示す図である。
【図６】バースト読出制御ルーチンの一例を示すフローチャートである。
【図７】バースト読出実行後の識別フラグＷＦの状態の一例を示す図である。
【図８】ランダム読出制御ルーチンの一例を示すフローチャートである。
【図９】ランダム読出実行後の識別フラグＷＦの状態の一例を示す図である。
【図１０】本発明に係るメモリ装置としてのバッファメモリ１００の内部構成の他の一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
図１は、本発明に係るメモリ装置としてのバッファメモリ１００の構成を示すブロック図である。図１に示すように、バッファメモリ１００は、例えばＲＡＭ（Random Access Memory）からなるメモリ部１、書込制御部２、読出制御部３及びオーバーフロー検出部４を有する。
【００１３】
メモリ部１は、図２に示すように、番地０〜Ｎ（Ｎは整数）の各番地に、例えば１ビットの識別フラグＷＦと、Ｋ（Ｋは整数）ビット分のデータＤＡＴとが対応付けして格納される記憶領域を有する。
【００１４】
識別フラグＷＦは、例えば論理レベル０である場合には、その番地に格納されているデータの読み出しが既に実施された、いわゆる「データ読出済み」であることを表す。また、識別フラグＷＦが例えば論理レベル１である場合には、その番地に格納されているデータの読み出しが未だ実施されていない、いわゆる「データ未読出」であることを表す。尚、電源投入時には、全番地の識別フラグＷＦは、図３に示すように、データ読出済みを表す論理レベル０に初期化される。
【００１５】
書込制御部２は、書込指令信号ＷＲに応じて、図４に示す書込制御ルーチンを実行する。これにより、書込制御部２は、受信データ系列ＪＤＤをメモリ部１に書き込ませる。尚、受信データ系列ＪＤＤは、例えば夫々が固定長のフレームにて区切られるフレームデータの系列からなる。
【００１６】
図４において、先ず、書込制御部２は、書込初期の番地として例えばゼロを示すアドレスＡＤを設定する（ステップＳ１）。
【００１７】
次に、書込制御部２は、このアドレスＡＤにて示される番地に対応した識別フラグＷＦをメモリ部１から読み出し（ステップＳ２）、この識別フラグＷＦが、データ読出済みを表す論理レベル０であるか否かを判定する（ステップＳ３）。
【００１８】
ステップＳ３において、識別フラグＷＦがデータ読出済みを表す論理レベル０であると判定されると、書込制御部２は、アドレスＡＤ及びデータ書込信号をメモリ部１に供給することにより、受信データ系列ＪＤＤにおけるフレームデータをデータＤＡＴとして、アドレスＡＤにて示される番地に書き込ませる（ステップＳ４）。
【００１９】
次に、書込制御部２は、アドレスＡＤ及びフラグ書込信号をメモリ部１に供給することにより、このアドレスＡＤにて示される番地に対応した識別フラグＷＦを、データ未読出を表す論理レベル１に書き換える（ステップＳ５）。
【００２０】
次に、書込制御部２は、アドレスＡＤにて示される番地が最終の番地Ｎと等しいか否かの判定を行う（ステップＳ６）。
【００２１】
ステップＳ６においてアドレスＡＤが番地Ｎと等しくないと判定された場合、或いは上記ステップＳ３において識別フラグＷＦがデータ読出済みを表す論理レベル０ではないと判定されると、書込制御部２は、現在のアドレスＡＤにて示される番地に「１」を加算したものを新たなアドレスＡＤとして設定する（ステップＳ７）。
【００２２】
ステップＳ７の実行後、書込制御部２は、上記ステップＳ２に戻って前述したステップＳ２〜Ｓ７の制御を繰り返し実行する。
【００２３】
この間、ステップＳ６においてアドレスＡＤにて示される番地が番地Ｎと等しいと判定された場合、書込制御部２は、メモリ部１の記憶領域（番地０〜Ｎ）がオーバーフロー状態にあることを示す論理レベル１のオーバーフロー設定信号ＯＶWをオーバーフロー検出部４に供給する（ステップＳ８）。つまり、書込制御部２は、メモリ部１の全番地の識別フラグＷＦが全て、データの未読出を表す論理レベル１となった場合には、メモリ部１の記憶領域がオーバーフロー状態であることを示すオーバーフロー設定信号ＯＶWをオーバーフロー検出部４に供給するのである。
【００２４】
よって、図４に示す書込制御によれば、受信データ系列ＪＤＤがＫビット分毎に、データＤＡＴとしてメモリ部１の番地０〜番地Ｎに順次書き込まれると共に、各番地に対応した識別フラグＷＦの全てが図５に示すように、データの未読出を表す論理レベル１に書き換えられる。
【００２５】
読出制御部３は、バースト読出指令ＲＤB又はランダム読出指令ＲＤRを受け付け、その読出指令に応じて、メモリ部１に格納されているデータＤＡＴを読み出し、これを読出データＹＤＤとして出力させる。
【００２６】
図６は、上記したバースト読出指令ＲＤBに応じて読出制御部３が実行するバースト読出制御ルーチンを示すフローチャートである。
【００２７】
図６において、先ず、読出制御部３は、読出初期の番地として例えばゼロを示すアドレスＡＤを設定する（ステップＳ２１）。
【００２８】
次に、読出制御部３は、アドレスＡＤ及びデータ読出信号をメモリ部１に供給することにより、アドレスＡＤにて示される番地に格納されているデータＤＡＴを読み出し、これを読出データＹＤＤとして出力させる（ステップＳ２）。
【００２９】
次に、読出制御部３は、アドレスＡＤ及びフラグ書込信号をメモリ部１に供給することにより、このアドレスＡＤにて示される番地に対応した識別フラグＷＦを、データ読出済みを表す論理レベル０に書き換える（ステップＳ２３）。
【００３０】
次に、読出制御部３は、オーバーフローの状態が解除されたことを示す論理レベル０のオーバーフロー設定信号ＯＶRをオーバーフロー検出部４に供給する（ステップＳ２４）。すなわち、ステップＳ２３によりメモリ部１の記憶領域（番地０〜Ｎ）内にデータ書き込み可能な領域が設定されたことで、読出制御部３は、オーバーフローの状態が解除されたことを示すオーバーフロー設定信号ＯＶRをオーバーフロー検出部４に供給するのである。
【００３１】
次に、読出制御部３は、アドレスＡＤにて示される番地が最終の番地Ｎと等しいか否かの判定を行う（ステップＳ２５）。
【００３２】
ステップＳ２５においてアドレスＡＤが番地Ｎと等しくないと判定されると、読出制御部３は、現在のアドレスＡＤにて示される番地に「１」を加算したものを新たなアドレスＡＤとして設定する（ステップＳ２６）。
【００３３】
ステップＳ２６の実行後、読出制御部３は、上記ステップＳ２２に戻って前述したステップＳ２２〜Ｓ２６の制御を、ステップＳ２５においてアドレスＡＤにて示される番地が番地Ｎと等しいと判定されるまで繰り返し実行する。
【００３４】
よって、図６に示すバースト読出制御の実行により、読出制御部３は、メモリ部１の全番地（０〜Ｎ）に格納されているデータＤＡＴを番地順に読み出し、このデータＤＡＴの系列からなる読出データＹＤＤを出力させる。更に、読出制御部３は、図７に示すように、各番地に対応した識別フラグＷＦの全てをデータ読出済みを表す論理レベル０に書き換えると共に、オーバーフローの状態が解除されたことを示すオーバーフロー設定信号ＯＶRをオーバーフロー検出部４に供給する。
【００３５】
ランダム読出指令ＲＤRが供給された場合には、読出制御部３は、図８に示すランダム読出制御ルーチンを実行する。
【００３６】
図８において、先ず、読出制御部３は、ランダム読出指令ＲＤRによって読出指定された番地Ａｒを示すアドレスＡＤを設定する（ステップＳ３１）。
【００３７】
次に、読出制御部３は、アドレスＡＤ及びデータ読出信号をメモリ部１に供給することにより、アドレスＡＤにて示される番地に書き込まれているデータＤＡＴを読み出し、これを読出データＹＤＤとして出力させる（ステップＳ３２）。
【００３８】
次に、読出制御部３は、アドレスＡＤ及びフラグ書込信号をメモリ部１に供給することにより、このアドレスＡＤにて示される番地に対応した識別フラグＷＦを、データ読出済みを表す論理レベル０に書き換える（ステップＳ３３）。
【００３９】
次に、読出制御部３は、オーバーフローの状態が解除されたことを示す論理レベル０のオーバーフロー設定信号ＯＶRをオーバーフロー検出部４に供給する（ステップＳ３４）。すなわち、ステップＳ３３の実行によってメモリ部１の記憶領域（番地０〜Ｎ）内にデータを書き込むことが可能な領域が設定されたことで、読出制御部３は、オーバーフローの状態が解除されたことを示すオーバーフロー設定信号ＯＶRをオーバーフロー検出部４に供給するのである。
【００４０】
よって、図８に示すランダム読出制御の実行により、読出制御部３は、読出指定された番地Ａｒに対応したデータＤＡＴのみをメモリ部１から読み出し、これを読出データＹＤＤとして出力させる。
【００４１】
更に、読出制御部３は、この読出指定された番地Ａｒに対応した識別フラグＷＦを、データ読出済みを表す論理レベル０に書き換える。例えば、図５に示すようにメモリ部１の全番地に未読み出しのデータが格納されている状態において、上記したランダム読出制御により番地「３」に対応したデータＤＡＴのみを読み出した場合には、図９に示すように、番地「３」に対応した識別フラグＷＦのみがデータ読出済みを表す論理レベル０に書き換えられる。
【００４２】
よって、メモリ部１の番地「３」に、新たなデータを書き込むことが可能となるので、バッファメモリとしての記憶領域の使用効率が高まる。
【００４３】
更に、上記したランダム読出制御の実行により、読出制御部３は、オーバーフローの状態が解除されたことを示すオーバーフロー設定信号ＯＶRをオーバーフロー検出部４に供給する。
【００４４】
オーバーフロー検出部４は、書込制御部２からオーバーフロー状態を示すオーバーフロー設定信号ＯＶWが供給された場合には、メモリ部１の記憶領域がオーバーフロー状態にあることを示す例えば論理レベル１のオーバーフロー検出信号ＯＶＦを出力する。一方、読出制御部３から、オーバーフローの状態が解除されたことを示すオーバーフロー設定信号ＯＶRが供給された場合には、オーバーフロー検出部４は、オーバーフロー状態が解除されたことを示す例えば論理レベル０のオーバーフロー検出信号ＯＶＦを出力する。
【００４５】
以上のように、図１に示すバッファメモリ１００は、データ片（ＤＡＴ）と、このデータ片が読出済みであるのか或いは未読出であるのかを示す識別フラグ（ＷＦ）と、が対応付けして各番地に記憶されるメモリ部（１）に対して、以下のような書込及び読出制御を行う。すなわち、書込制御（２、２０）では、受信データ系列（ＪＤＤ）中のデータ片をメモリ部の番地に書き込むと共に、この書き込みの為された番地に対応した識別フラグとして、データの未読出を示す値を書き込む。読出制御（３、３０）では、メモリ部に書き込まれているデータ片を番地毎に読み出すと共に、この読み出しの為された番地に対応した識別フラグの値を、データの読出済みを示す値に書き換える。この際、書込制御では、メモリ部内において読出済みを示す値を有する識別フラグに対応した番地のみにデータ片の書き込みを行うようにしている。
【００４６】
かかる構成によれば、メモリ部の記憶領域（番地０〜Ｎ）内の一部の領域だけからデータ片の読み出しを行った場合でも、その一部の領域をデータ書込可能な領域として設定することができるので、バッファメモリとして、記憶領域の使用効率を高めることが可能となる。
【００４７】
尚、上記実施例におけるオーバーフロー検出部４では、図５に示すように識別フラグＷＦの全てがデータの未読出を表す論理レベル１となっている場合に、オーバーフロー状態にあることを示すオーバーフロー検出信号ＯＶＦを出力している。
【００４８】
しかしながら、オーバーフロー検出部４としては、データの未読出を表す論理レベル１の識別フラグＷＦの総数が所定の閾値（Ｎ以下）以上となった場合に、メモリ部１がオーバーフロー手前の状態にあることを示すオーバーフロー検出信号ＯＶＦを出力するものであっても良い。
【００４９】
また、上記のようにデータの未読出を表す論理レベル１の識別フラグＷＦの総数が所定の閾値以上となった場合には、その時点から、受信データ系列ＪＤＤの受け入れを停止し、廃棄されたフレームの総数を現在のメモリの状態を示す信号として出力するようにしても良い。また、データの未読出を表す論理レベル１の識別フラグＷＦの総数が所定の閾値以上となった場合には、受信データ系列ＪＤＤにおけるフレームデータ系列中から、特定のフレームに対応したフレームデータ片のみを、メモリ部１に書き込むようにしても良い。
【００５０】
図１０は、上記した点に鑑みて為されたバッファメモリ１００の構成の他の一例を示すブロック図である。図１０に示すバッファメモリ１００は、メモリ部１、書込制御部２０、読出制御部３０、オーバーフロー検出部４０を有する。
【００５１】
メモリ部１は、図１に示されるメモリ部１と同一構成を有する。
【００５２】
書込制御部２０は、書込指令信号ＷＲに応じて、図４に示す書込制御ルーチンのうちからステップＳ８を除く各ステップＳ１〜Ｓ７を実行することにより、図１に示す書込制御部２と同様に、受信データ系列ＪＤＤにおけるフレームデータをＫビットのデータＤＡＴとしてメモリ部１の番地０〜Ｎ各々に書き込ませる。更に、書込制御部２０は、図５に示すように、データを書き込んだ番地に対応した識別フラグＷＦを、データの未読出を表す論理レベル１に書き換える。
【００５３】
ただし、オーバーフロー検出部４０からオーバーフロー検出信号ＯＶＦが供給された場合には、書込制御部２０は、受信データ系列ＪＤＤをメモリ部１に書き込むのを停止する。尚、この際、書込制御部２０は、受信データ系列ＪＤＤ中から特定のフレームデータ片だけを抽出してメモリ部１に書き込ませるようにしても良い。例えば、ヘルスチェックやｐｉｎｇ等の導通確認、システムの正常性確認等を行う場合には、装置の稼動状態を確認する為に特定の周期でデータが送受信される。そこで、このような一度に大量のデータを受信することが無いデータのみを通過させるのである。この際、書込制御部では、データの識別コード等を認識して書き込むかどうかの判定を実施する。
【００５４】
そして、書込制御部２０は、受信データ系列ＪＤＤ中においてメモリ部１への書き込みを破棄したフレームデータ片の総数を計数し、その書き込み破棄したフレームデータ片の総数を、バッファメモリ１００の現状態を示すメモリステータス信号ＭＣＣとして出力する。
【００５５】
読出制御部３０は、バースト読出指令ＲＤBに応じて、図６に示すバースト読出制御ルーチンのうちからステップＳ２４を除く各ステップＳ２１〜Ｓ２６を実行することにより、図１に示す読出制御部３と同様に、メモリ部１の全番地に格納されているデータＤＡＴを番地順に読み出し、データＤＡＴの系列からなる読出データＹＤＤを出力させる。更に、読出制御部３０は、図７に示すように、データの読み出しが完了した番地に対応した識別フラグＷＦを、データ読出済みを表す論理レベル０に書き換える。
【００５６】
また、読出制御部３０は、ランダム読出指令ＲＤRに応じて、図８に示すランダム読出制御ルーチンのうちからステップＳ３４を除くＳ３１〜Ｓ３３を実行することにより、図１に示す読出制御部３と同様に、メモリ部１から、読出指定された番地Ａｒに対応したデータＤＡＴのみを読み出し、これを読出データＹＤＤとして出力させる。更に、読出制御部３は、この読出指定された番地Ａｒに対応した識別フラグＷＦを、データ読出済みを表す論理レベル０に書き換える。
【００５７】
オーバーフロー検出部４０は、メモリ部１に対してアクセス（書込、読出）が為される度に、メモリ部１から各番地に対応した識別フラグＷＦを読み出す。この際、オーバーフロー検出部４０は、データ未読出を表す論理レベル１の識別フラグＷＦの総数が所定のオーバーフロー閾値（Ｎ以下）以上である場合には、メモリ部１がオーバーフロー手前の状態にあることを示す論理レベル１のオーバーフロー検出信号ＯＶＦを出力し、これを書込制御部２０に供給する。
【符号の説明】
【００５８】
１                  メモリ部
２、２０            書込制御部
３、３０            読出制御部
４、４０            オーバーフロー検出部
【図１】
2015170280.tif 000003
【図２】
2015170280.tif 000004
【図３】
2015170280.tif 000005
【図４】
2015170280.tif 000006
【図５】
2015170280.tif 000007
【図６】
2015170280.tif 000008
【図７】
2015170280.tif 000009
【図８】
2015170280.tif 000010
【図９】
2015170280.tif 000011
【図１０】
2015170280.tif 000012