(57)【要約】【課題】先頭アドレスに基づいてデータの読出しを行うリングバッファメモリ制御装置において、ノイズなどで先頭アドレスが書き変わっていたとしても正常にデータを読み出す。【解決手段】リングバッファメモリ１０に各データが書き込まれる際、各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加し、読出制御部２によって各データを読み出す際、その読み出された先頭データがデータ開始フラグであるか否かを判断し、先頭データがデータ開始フラグでないと判断された場合には、先頭データの位置の前方または後方に向かってデータ開始フラグを検索し、その検索によって見つけ出されたデータ開始フラグの位置からデータの読出しを行う。【選択図】図１
2010186212.tif 000002
【特許請求の範囲】
【請求項１】
メモリの所定の記憶領域の終端の次を記憶領域の先端に割り当てることによって入力された複数のデータを循環的に前記メモリへ書き込む書込制御部と、書込制御部によって前記メモリへ前記各データを書き込む際の前記各データの前記記憶領域における先頭位置情報を取得する先頭位置情報取得部と、先頭位置情報取得部によって取得された先頭位置情報に基づいて前記メモリから前記各データを読み出す読出制御部とを備えたリングバッファメモリ制御装置において、
前記メモリに前記各データが書き込まれる際、前記各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加するフラグ付加部と、
読出制御部によって読み出された先頭データが前記データ開始フラグであるか否かを判断するフラグ判断部と、
フラグ判断部によって前記先頭データが前記データ開始フラグでないと判断された場合に、前記先頭データの位置の前方または後方に向かって前記データ開始フラグを検索する検索部とを備え、
前記読出制御部が、前記フラグ判断部によって前記先頭データが前記データ開始フラグでないと判断された場合には、前記検索部により検索されたデータ開始フラグの位置から前記データの読出しを行うものであることを特徴とするリングバッファメモリ制御装置。
【請求項２】
前記メモリに前記各データが書き込まれる際、前記各データを識別するための識別情報を前記各データに付加する識別情報付加部と、
前記フラグ判断部によって前記先頭データが前記データ開始フラグでないと判断され、前記検索部によって前記データ開始フラグが検索された際、データ開始フラグに対応するデータが、次に読み出すべきデータであるか否かを前記データに付加された識別情報に基づいて判断する識別情報判断部と、
前記検索部が、識別情報判断部によって前記データ開始フラグに対応するデータが次に読み出すべきデータでないと判断された場合には、再びその他の前記データ開始フラグを検索するものであり、
前記読出制御部が、前記識別情報判断部によって前記データ開始フラグに対応するデータが次に読み出すべきデータであると判断された場合に、前記データ開始フラグの位置から前記データの読出しを行うものであることを特徴とする請求項１記載のリングバッファメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データの循環的な書込みおよび読出しが可能に構成されたリングバッファメモリを制御するリングバッファメモリ制御装置に関するものであり、特に、入力データの先頭位置を示す先頭位置情報に誤りがある場合においても正常な入力データを読み出すことができるリングバッファメモリ制御装置に関するものである。
【背景技術】
【０００２】
従来、入力されたデータを順次受け付け、その受け付けたデータを一旦、バッファメモリに記憶した後、順次読み出して処理を行うデータ処理装置が種々提案されている。
【０００３】
そして、上記のようなデータ処理装置において用いられるバッファメモリとして、データをＦＩＦＯ（First In First Out）方式で書込みおよび読出しが可能に構成されたリングバッファメモリが提案されている。
【０００４】
ここで、上記のようなリングバッファメモリにデータを書き込む際には、そのデータの先頭を示す先頭アドレスが取得され、その先頭アドレスは一旦保持される。そして、リングバッファメモリからデータを読み出す際には、その保持された先頭アドレスが用いられるが、先頭アドレスを取得する際や先頭アドレスを保持している間、または保持された先頭アドレスを読み出す際にノイズやバグなどによって先頭アドレスが、本来の先頭アドレスから書き変わってしまう場合がある。そして、その書き変わってしまった先頭アドレスをそのまま用いてリングバッファメモリからデータを読み出すと正常なデータを読み出すことができない問題を生じていた。
【０００５】
そこで、たとえば、特許文献１においては、先頭アドレスのバックアップを別個に保持しておき、そのバックアップの先頭アドレスを用いて書き変わってしまった先頭アドレスを訂正することによって正常なデータの読出しを行う方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１０８０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の方法では、先頭アドレスのバックアップを保持するバッファが別個に必要になるため、バッファの容量が増大し、またそのバッファの管理処理も必要となるため回路規模が大きくなり、コストアップになるという問題がある。
【０００８】
本発明は、上記の事情に鑑み、たとえ、先頭アドレスが書き変わっていたとしても、先頭アドレスのバックアップを保持するバッファを設けることなく、正常なデータを読み出すことができるリングバッファメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のリングバッファメモリ制御装置は、メモリの所定の記憶領域の終端の次を記憶領域の先端に割り当てることによって入力された複数のデータを循環的にメモリへ書き込む書込制御部と、書込制御部によってメモリへ各データを書き込む際の各データの記憶領域における先頭位置情報を取得する先頭位置情報取得部と、先頭位置情報取得部によって取得された先頭位置情報に基づいてメモリから各データを読み出す読出制御部とを備えたリングバッファメモリ制御装置において、メモリに各データが書き込まれる際、各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加するフラグ付加部と、読出制御部によって読み出された先頭データがデータ開始フラグであるか否かを判断するフラグ判断部と、フラグ判断部によって先頭データがデータ開始フラグでないと判断された場合に、先頭データの位置の前方または後方に向かってデータ開始フラグを検索する検索部とを備え、読出制御部が、フラグ判断部によって先頭データがデータ開始フラグでないと判断された場合には、検索部により検索されたデータ開始フラグの位置からデータの読出しを行うものであることを特徴とする。
【００１０】
また、上記本発明のリングバッファメモリ制御装置においては、メモリに各データが書き込まれる際、各データを識別するための識別情報を各データに付加する識別情報付加部と、フラグ判断部によって先頭データがデータ開始フラグでないと判断され、検索部によってデータ開始フラグが検索された際、データ開始フラグに対応するデータが、次に読み出すべきデータであるか否かをデータに付加された識別情報に基づいて判断する識別情報判断部とをさらに設け、検索部を、識別情報判断部によってデータ開始フラグに対応するデータが次に読み出すべきデータでないと判断された場合には、再びその他のデータ開始フラグを検索するものとし、読出制御部を、識別情報判断部によってデータ開始フラグに対応するデータが次に読み出すべきデータであると判断された場合に、データ開始フラグの位置からデータの読出しを行うものとすることができる。
【発明の効果】
【００１１】
本発明のリングバッファメモリ制御装置によれば、メモリに各データが書き込まれる際、各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加し、読出制御部によって各データを読み出す際、その読み出された先頭データがデータ開始フラグであるか否かを判断し、先頭データがデータ開始フラグでないと判断された場合には、先頭データの位置の前方または後方に向かってデータ開始フラグを検索し、その検索によって見つけ出されたデータ開始フラグの位置からデータの読出しを行うようにしたので、たとえ、先頭アドレスが書き変わっていたとしても、特許文献１に記載の方法のように先頭アドレスのバックアップを保持するバッファを設けることなく、正常なデータを読み出すことができる。
【００１２】
また、上記本発明のリングバッファメモリ制御装置において、メモリに各データが書き込まれる際、各データを識別するための識別情報を各データに付加し、検索により見つけ出されたデータ開始フラグに対応するデータが、次に読み出すべきデータであるか否かをそのデータに付加された識別情報に基づいて判断し、次に読み出すべきデータでないと判断された場合には、再びその他のデータ開始フラグを検索し、検索されたデータ開始フラグに対応するデータが次に読み出すべきデータであると判断された場合に、そのデータ開始フラグの位置からデータの読出しを行うようにした場合には、たとえば、ノイズやバグで書き変えられた先頭アドレスの位置が、次に読み出すべきデータのデータ開始フラグの位置から大きく外れ、検索により最初に見つけ出したデータ開始フラグに対応するデータが次に読み出すべきデータではない場合においても、再びデータ開始フラグを検索して次に読み出すべきデータを見つけることができるので、正常な順番でデータを読み出すことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明のリングバッファメモリ制御装置の第１の実施形態の概略構成を示すブロック図
【図２】リングバッファメモリのアドレス構造の一例を示す図
【図３】リングバッファメモリに入力データ１〜３とデータ開始フラグとが記憶された状態を示す図
【図４】本発明のリングバッファメモリ制御装置の第１の実施形態の作用を説明するためのフローチャート
【図５】本発明のリングバッファメモリ制御装置の第２の実施形態の概略構成を示すブロック図
【図６】リングバッファメモリに入力データ１〜３とデータ開始フラグと識別情報１〜３とが記憶された状態を示す図
【図７】本発明のリングバッファメモリ制御装置の第２の実施形態の作用を説明するためのフローチャート
【図８】本発明のリングバッファメモリ制御装置の第１および第２の実施形態を利用した印刷システムの概略構成を示す図
【図９】本発明のリングバッファメモリ制御装置の第１および第２の実施形態を利用した通信システムの概略構成を示す図
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明のリングバッファメモリ制御装置の第１の実施形態について詳細に説明する。図１は、第１の実施形態のリングバッファメモリ制御装置の概略構成図である。
【００１５】
第１の実施形態のリングバッファメモリ制御装置１は、図１に示すように、ＲＡＭ等で構成されたリングバッファメモリ１０の記憶領域の終端の次をその記憶領域の先端に割り当てることによって入力された複数のデータを循環的にメモリへ書き込む書込制御部２と、書込制御部２によってリングバッファメモリ１０へ各データを書き込む際の各データの記憶領域における先頭アドレスを取得する先頭位置情報取得部３と、先頭位置情報取得部３によって取得された先頭アドレスに基づいてリングバッファメモリ１０から各データを読み出す読出制御部４とを備えている。
【００１６】
図２に、リングバッファメモリ１０のアドレス構造の一例を示す。リングバッファメモリ１０は、たとえば、１Ｋｂｙｔｅ〜１Ｍｂｙｔｅの容量を有するものとして構成することができる。そして、この場合、リングバッファメモリ１０の書込アドレスＷＰは００ｈから２７ｈまであり、入力データの書込みはＷＰを＋０１ｈから順次インクリメントすることによって行われる。そして、ＷＰが＋２７ｈまでインクメントされると、次のＷＰは＋００ｈに戻る。
【００１７】
また、入力データの読出アドレスＲＰは、ＲＰ＝ＷＰ−１に設定され、書込アドレスＷＰが進んでデータが順次書き込まれるとともに、それに応じて読出アドレスが進んでデータの読出しが行われ、循環的にデータの書込みと読出しが行われる。
【００１８】
そして、書込制御部２は、入力されたデータをリングバッファメモリ１０に書き込む際、入力されたデータの先頭にそのデータの開始を示すデータ開始フラグを付加するフラグ付加部２０と、書込アドレスＷＰを順次インクリメントするとともに、入力データを書き込む際の先頭アドレスを取得して出力するアドレスカウンタ部２１とを備えている。
【００１９】
図３は、入力データ１から入力データ３が書込制御部２によってリングバッファメモリ１０に入力データ開始フラグとともに記憶されている状態の一例を示す図である。
【００２０】
そして、先頭位置情報取得部３は、書込制御部２のアドレスカウンタ部２１から出力された各データの先頭アドレスとその各データのデータサイズとを対応付けて、書込制御部２から出力された順番で記憶するものである。
【００２１】
読出制御部４は、先頭位置情報取得部３から出力された先頭アドレスの位置から読み出し行うことによって、リングバッファメモリ１０から各データを読み出すものであるが、先頭位置情報取得部３から出力された先頭アドレスの位置から読み出した先頭データがデータ開始フラグであるか否かを判断するフラグ判断部４０を備えている。そして、さらに、そのフラグ判断部４０によって先頭データがデータ開始フラグでないと判断された場合に、その先頭データの位置から前方または後方に向かって読出アドレスを進めて読出しを行い、データ開始フラグが記憶されている位置を検索する検索部４１とを備えている。
【００２２】
そして、読出制御部４は、読み出した先頭データがフラグ判断部４０によってデータ開始フラグでないと判断された場合には、検索部４１によって検索されたデータ開始フラグの位置からデータの読出しを行うものである。
【００２３】
次に、本実施形態のリングバッファメモリ制御装置１の作用を、図４に示すフローチャートを参照しながら説明する。
【００２４】
まず、書込制御部２にデータが入力されると、書込処理が行われる（Ｓ１０）。具体的には、書込制御部２は、まず、リングバッファメモリ１０にアクセスし、リングバッファメモリ１０の記憶領域に未使用領域があるか否かを検索する（Ｓ１２）。
【００２５】
そして、検索された未使用領域の記憶容量と入力されたデータのデータサイズとを比較し、検索された未使用領域に入力データを配置可能であるか否かを判断する（Ｓ１４）。そして、いずれの検索された未使用領域にも入力データが配置できないと判断した場合には、そのまま処理を終了する。なお、このとき入力データの書き込みが不可能であることを示すエラー信号を出力するようにしてもよい。
【００２６】
一方、リングバッファメモリ１０において、入力データを配置できる未使用領域がある場合には、入力されたデータの先頭にフラグ付加部２０によってデータ開始フラグを付加し、そのデータ開始フラグが付加されたデータを検索した未使用領域に記憶する（Ｓ１６）。
【００２７】
また、このときアドレスカウンタ部２１によってデータ開始フラグが付加されたデータを記憶した領域の先頭アドレスが取得され、その先頭アドレスと記憶したデータのデータサイズとが先頭位置情報取得部３に出力される。
【００２８】
そして、先頭位置情報取得部３は、入力された先頭アドレスとデータサイズとを対応付けて保持する。
【００２９】
そして、上述した書込処理を繰り返し行うことによって、図３に示すように、リングバッファメモリ１０に入力データ１から入力データ３が記憶されたものとする。また、先頭位置情報取得部３には、入力データ１から入力データ３のそれぞれに対応する先頭アドレスおよびデータサイズが保持されているものとする。
【００３０】
そして、次に、リングバッファメモリ１０からの読出処理が行われる（Ｓ１０）。具体的には、先頭位置情報取得部３から先頭アドレスおよびデータサイズが、保持された順番で読出制御部４に出力される。なお、本実施形態においては、リングバッファメモリ１０からの読出しをＦＩＦＯ（Ｆｉｒｓｔ Ｉｎ、Ｆｉｒｓｔ Ｏｕｔ）で行うようにしたが、これに限らず、ランダムアクセスで読み出すようにしてもよい。そして、読出制御部４は、まず、リングバッファメモリ１０にアクセスし、入力された先頭アドレスの位置に記憶されている内容を読み出す。そして、その読み出した内容が、データ開始フラグであるか否かをフラグ判断部４０によって判断する（Ｓ１８）。なお、データ開始フラグであるか否かの判断については、たとえばサムチェックなどを行うようにすればよい。
【００３１】
そして、入力された先頭アドレスの位置から読み出した内容が、データ開始フラグである場合には、読出制御部４は、入力されたデータサイズに基づいて、先頭アドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ２０）。
【００３２】
ここで、本来、先頭アドレスの位置に記憶されている内容はデータ開始フラグであるはずであるが、読出制御部４に入力される先頭アドレスが、先頭位置情報取得部３により取得される際や保持されている間、または先頭位置情報取得部３から読出制御部４に出力されるときなどにおいて、ノイズやバグなどの原因によって書き変わっていることがある。そして、このように先頭アドレスが書き変わっている場合には、読出制御部４によって読み出される内容は、書き変わった先頭アドレスの位置のデータとなるためデータ開始フラグではないことになり、その後に続いて読み出されるデータも正常なデータではないことになる。
【００３３】
そこで、Ｓ１８においてフラグ判断部４０によってデータ開始フラグではないと判断された場合には、検索部４１によって、入力された先頭アドレスの位置からアドレスの末端方向に向かって（リングバッファメモリのアドレス構造が、図２に示すようなアドレス構
造の場合にはアドレス＋２７ｈに向かって）一定の範囲でデータ開始フラグが検索される（Ｓ２２）。
【００３４】
そして、このときデータ開始フラグが見つかった場合には（Ｓ２４、ＹＥＳ）、読出制御部４は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ２０）。
【００３５】
一方、Ｓ２４においてデータ開始フラグが見つからなかった場合には、検索部４１は、今度は、入力された先頭アドレスの位置からアドレスの先端方向に向かって（リングバッファメモリのアドレス構造が、図２に示すようなアドレス構造の場合にはアドレス＋００ｈに向かって）一定の範囲でデータ開始フラグを検索する（Ｓ２６）。
【００３６】
そして、このときデータ開始フラグが見つかった場合には（Ｓ２８、ＹＥＳ）、読出制御部４は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ２０）。
【００３７】
一方、Ｓ２８においてデータ開始フラグが見つからなかった場合には、読出制御部４は、エラー処理を実行した後（Ｓ３０）、処理を終了する。なお、エラー処理としては、たとえば、読出制御部４に入力された先頭アドレスにエラーがあり、データが読み出せなかったことを示すエラー信号を出力するようにすればよい。
【００３８】
また、たとえば、Ｓ１８において、入力された先頭アドレスの位置に記憶された内容がデータ開始フラグではないと判断されたが、その後のデータ開始フラグの検索によって正常なデータが読み出せた場合においても、読出制御部４に入力された先頭アドレスにエラーがあることを示すエラー信号を出力し、警告するようにしてもよい。
【００３９】
なお、読出制御部４によってデータが読み出された後は、その読み出されたデータ開始フラグはリングバッファメモリ１０から削除される。
【００４０】
また、本実施形態のリングバッファメモリ制御装置においては、検索部４１が、アドレスの末端方向に向かってデータ開始フラグを検索した後、アドレスの先端方向に向かってデータ開始フラグを検索するようにしたが、逆に、アドレスの先端方向に向かってデータ開始フラグを検索した後、アドレスの末端方向に向かってデータ開始フラグを検索するようにしてもよい。
【００４１】
次に、本発明のリングバッファメモリ制御装置の第２の実施形態について詳細に説明する。図５は、第２の実施形態のリングバッファメモリ制御装置の概略構成図である。
【００４２】
第２の実施形態のリングバッファメモリ制御装置５は、第１の実施形態のリングバッファメモリ制御装置１と同様に、書込制御部２と、先頭位置情報取得部３と、読出制御部４とを備えているが、各部の内部の構成が異なる。
【００４３】
第１の実施形態のリングバッファメモリ制御装置１においては、上述したように先頭アドレスが書き変わっている場合には、データ開始フラグを検索し、最初に見つけたデータ開始フラグの位置からデータの読出しを行うようにしたので、正常なデータの読み出しを行うことができるが、各データに付加されるデータ開始フラグを同じものとしているため、たとえば、書き変えられた先頭アドレスの位置が、次に読み出す順番のデータのデータ開始フラグの位置から大きく外れている場合などには、最初に見つけ出したデータ開始フラグに対応するデータが次に読み出す順番のデータではない場合がある。
【００４４】
そこで、第２の実施形態のリングバッファメモリ制御装置５においては、上記のような不都合が生じないように、データ開始フラグを検索して見つけ出した後、そのデータ開始フラグに対応するデータが、次に読み出す順番のデータであるか否かを判断するように各部を構成している。
【００４５】
具体的には、第２の実施形態の書込制御部２は、さらに各データを識別するための識別情報を各データに付加する識別情報付加部２２を備えている。そして、書込制御部２は、入力されたデータをリングバッファメモリ１０に書き込む際、入力されたデータの先頭にそのデータの開始を示すデータ開始フラグをフラグ付加部２０によって付加するとともに、そのデータに識別情報を付加するものである。
【００４６】
図６は、入力データ１から入力データ３が、書込制御部２によってリングバッファメモリ１０にデータ開始フラグおよび識別情報とともに記憶されている状態の一例を示す図である。識別情報１から識別情報３は、それぞれ入力データ１から入力データ３を識別するためのものであり、各入力データに特有なものとして生成されるものである。具体的には、たとえば、識別情報としてチェックサムなどを生成して付加するようにすればよい。
【００４７】
そして、先頭位置情報取得部３は、書込制御部２のアドレスカウンタ部２１から出力された各データの先頭アドレスとその各データのデータサイズと各データの識別情報とを対応付けて、書込制御部２から出力された順番で記憶するものである。
【００４８】
そして、読出制御部４は、フラグ判断部４０によって先頭データがデータ開始フラグでないと判断され、検索部４１によってデータ開始フラグが検索されて見つけ出された際、そのデータ開始フラグに対応するデータが、次に読み出す順番のデータであるか否かをそのデータに付加された識別情報に基づいて判断する識別情報判断部４２をさらに備えている。
【００４９】
そして、読出制御部４における検索部４１は、識別情報判断部４２によってデータ開始フラグに対応するデータが次に読み出す順番のデータでないと判断された場合には、再びその他のデータ開始フラグの検索を行うものである。
【００５０】
そして、読出制御部４は、識別情報判断部４２によってデータ開始フラグに対応するデータが、次に読み出す順番のデータであると判断された場合に、そのデータ開始フラグの位置からデータの読出しを行うものである。
【００５１】
次に、本実施形態のリングバッファメモリ制御装置５の作用を、図７に示すフローチャートを参照しながら説明する。
【００５２】
まず、書込制御部２にデータが入力されると、書込処理が行われる（Ｓ４０）。具体的には、書込制御部２は、まず、リングバッファメモリ１０にアクセスし、リングバッファメモリ１０の記憶領域に未使用領域があるか否かを検索する（Ｓ４２）。
【００５３】
そして、検索された未使用領域の記憶容量と入力されたデータのデータサイズとを比較し、検索された未使用領域に入力データを配置可能であるか否かを判断する（Ｓ４４）。そして、いずれの検索された未使用領域にも入力データが配置できないと判断した場合には、そのまま処理を終了する。なお、このとき入力データの書き込みが不可能であることを示すエラー信号を出力するようにしてもよい。
【００５４】
一方、リングバッファメモリ１０において、入力データを配置できる未使用領域がある場合には、入力されたデータの先頭にフラグ付加部２０によってデータ開始フラグを付加するとともに、その入力されたデータに識別情報を付加し、そのデータ開始フラグおよび識別情報が付加されたデータを検索した未使用領域に記憶する（Ｓ４６）。
【００５５】
また、このときアドレスカウンタ部２１によってデータ開始フラグが付加されたデータを記憶した領域の先頭アドレスが取得され、その先頭アドレスと記憶したデータのデータサイズとそのデータに付加された識別情報とが先頭位置情報取得部３に出力される。
【００５６】
そして、先頭位置情報取得部３は、入力された先頭アドレスとデータサイズと識別情報とを対応付けて保持する。
【００５７】
そして、上述した書込処理を繰り返し行うことによって、図６に示すように、リングバッファメモリ１０に入力データ１から入力データ３が記憶されたものとする。また、先頭位置情報取得部３には、入力データ１から入力データ３のそれぞれに対応する先頭アドレス、データサイズおよび識別情報１から３が保持されているものとする。
【００５８】
そして、次に、リングバッファメモリ１０からの読出処理が行われる（Ｓ４０）。具体的には、先頭位置情報取得部３から先頭アドレス、データサイズおよび識別情報が、保持された順番で読出制御部４に出力される。そして、読出制御部４は、まず、リングバッファメモリ１０にアクセスし、入力された先頭アドレスの位置に記憶されている内容を読み出す。そして、その読み出した内容が、データ開始フラグであるか否かをフラグ判断部４０によって判断する（Ｓ４８）。なお、データ開始フラグであるか否かの判断については、たとえばサムチェックなどを行うようにすればよい。
【００５９】
そして、入力された先頭アドレスの位置から読み出した内容が、データ開始フラグである場合には、読出制御部４は、入力されたデータサイズに基づいて、先頭アドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ５０）。
【００６０】
一方、Ｓ４８においてフラグ判断部４０によってデータ開始フラグではないと判断された場合には、検索部４１によって、入力された先頭アドレスの位置からアドレスの末端方向に向かって（リングバッファメモリのアドレス構造が、図２に示すようなアドレス構
造の場合にはアドレス＋２７ｈに向かって）一定の範囲でデータ開始フラグが検索される（Ｓ５２）。
【００６１】
そして、このときデータ開始フラグが見つかった場合には（Ｓ５４、ＹＥＳ）、識別情報判断部４２において、その見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部３から出力された識別情報とが同一のものであるか否かが判断される（Ｓ５６）。
【００６２】
そして、識別情報判断部４２によって同一のものであると判断された場合には、読出制御部４は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ５０）。
【００６３】
一方、Ｓ５６において、識別情報判断部４２によって同一のものではないと判断された場合には、再び、検索部４１によって、アドレスの末端方向に向かって一定の範囲でその他のデータ開始フラグが検索される（Ｓ５８）。
【００６４】
そして、その検索部４１による再検索によってその他のデータ開始フラグを見つけ出した場合には、再びその見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部３から出力された識別情報とが同一のものであるか否かが判断される（Ｓ５６）。
【００６５】
そして、識別情報判断部４２によって同一のものであると判断された場合には、読出制御部４は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ５０）。
【００６６】
一方、検索部４１によってリングバッファメモリ１０の先頭アドレスの位置からアドレスの末端まで検索しても、データ開始フラグが見つからなかった場合またはデータ開始フラグが見つかったとしても、その見つけ出した全てのデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部３から出力された識別情報とが同一でない場合には（Ｓ５４、ＮＯ）、検索部４１は、今度は、入力された先頭アドレスの位置からアドレスの先端方向に向かって一定の範囲でデータ開始フラグを検索する（Ｓ６０）。
【００６７】
そして、このときデータ開始フラグが見つかった場合には（Ｓ６２、ＹＥＳ）、識別情報判断部４２において、その見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部３から出力された識別情報とが同一のものであるか否かが判断される（Ｓ６４）。
【００６８】
そして、識別情報判断部４２によって同一のものであると判断された場合には、読出制御部４は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ５０）。
【００６９】
一方、Ｓ６４において、識別情報判断部４２によって同一のものではないと判断された場合には、再び、検索部４１によって、アドレスの先端方向に向かって一定の範囲でその他のデータ開始フラグが検索される（Ｓ６６）。
【００７０】
そして、その検索部４１による再検索によってその他のデータ開始フラグを見つけ出した場合には、再びその見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部３から出力された識別情報とが同一のものであるか否かが判断される（Ｓ６４）。
【００７１】
そして、識別情報判断部４２によって同一のものであると判断された場合には、読出制御部４は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す（Ｓ５０）。
【００７２】
一方、検索部４１によってリングバッファメモリ１０の先頭アドレスの位置からアドレスの先端まで検索しても、データ開始フラグが見つからなかった場合またはデータ開始フラグが見つかったとしても、その見つけ出した全てのデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部３から出力された識別情報とが同一でない場合には（Ｓ６２、ＮＯ）、読出制御部４は、エラー処理を実行した後（Ｓ６８）、処理を終了する。なお、エラー処理としては、たとえば、読出制御部４に入力された先頭アドレスにエラーがあり、データが読み出せなかったことを示すエラー信号を出力するようにすればよい。
【００７３】
また、たとえば、Ｓ４８において、入力された先頭アドレスの位置に記憶された内容がデータ開始フラグではないと判断されたが、その後のデータ開始フラグの検索によって正常なデータが読み出せた場合においても、読出制御部４に入力された先頭アドレスにエラーがあることを示すエラー信号を出力し、警告するようにしてもよい。
【００７４】
なお、読出制御部４によってデータが読み出された後は、その読み出されたデータ開始フラグはリングバッファメモリ１０から削除される。
【００７５】
また、本実施形態のリングバッファメモリ制御装置においては、検索部４１が、アドレスの末端方向に向かってデータ開始フラグを検索した後、アドレスの先端方向に向かってデータ開始フラグを検索するようにしたが、逆に、アドレスの先端方向に向かってデータ開始フラグを検索した後、アドレスの末端方向に向かってデータ開始フラグを検索するようにしてもよい。
【００７６】
また、上述した実施形態のリングバッファメモリ制御装置１,５は、たとえば、画像データを含む印刷ジョブを受け付けて、その印刷ジョブに基づいて印刷を行う印刷装置に利用することができる。図８に、上記実施形態のリングバッファメモリ制御装置１,５を利用した印刷装置を備えた印刷システムの概略構成を示す。
【００７７】
図８に示す印刷システムは、印刷ジョブを生成して出力する複数のコンピュータ６０〜６３と、複数のコンピュータ６０〜６３から出力された印刷ジョブを受け付け、その印刷ジョブに基づいて印刷を行う印刷装置７と、コンピュータ６０〜６３と印刷装置７とを接続するネットワーク６とから構成されている。
【００７８】
印刷装置７は、複数のコンピュータ６０〜６３から出力された印刷ジョブを受け付けて記憶するリングバッファメモリ制御装置１,５を備えたプリンタコントローラ３０と、プリンタコントローラ３０から出力された印刷データに基づいて印刷を行う印刷エンジン３１とを備えている。
【００７９】
プリンタコントローラ３０のリングバッファメモリ制御装置１,５は、複数のコンピュータ６０〜６３から出力された印刷ジョブを受け付けた順番でリングバッファメモリ１０に書き込むとともに、その受け付けた順番で読み出して出力するものである。すなわち、複数のコンピュータ６０〜６３から出力される印刷ジョブが、上述した実施形態の説明における入力データ１から入力データ３に相当する。なお、リングバッファメモリ１０は、上記のように受信した印刷ジョブを記憶するためだけでなく、画像展開処理において利用するために設けるようにしてもよい。すなわち、１つの印刷ジョブに含まれる頁毎の画像データを記憶するものとして利用してもよい。この場合、たとえば、１つの印刷ジョブに含まれる１頁目の画像データが、上述した実施形態の説明における入力データ１に相当し、２頁目の画像データが入力データ２に相当し、３頁目の画像データが入力データ３に相当する。
【００８０】
そして、プリンタコントローラ３０は、リングバッファメモリ制御装置１,５から順次出力される印刷ジョブを印刷データに展開した後、その印刷データを印刷エンジンに順次
出力するものである。
【００８１】
また、上述した実施形態のリングバッファメモリ制御装置１,５は、たとえば、パケット通信を用いた通信システムにおける受信機にも利用することができる。
【００８２】
図９に、上記実施形態のリングバッファメモリ制御装置１,５を利用した受信機を備えた通信システムの概略構成を示す。
【００８３】
図９に示す通信システムは、音声データや画像データをパケットデータとして時系列で出力する送信機８と、送信機８から出力されたパケットデータを受け付け、そのパケットデータに基づいて音声や画像データを復元する受信機９とを備えている。なお、送信機８と受信機９は、無線通信で接続するようにしてもよい、有線通信で接続するようにしてもよい。
【００８４】
受信機９のリングバッファメモリ制御装置１,５は、送信機８から出力されたパケットデータを受け付けた順番でリングバッファメモリ１０に書き込むとともに、その受け付けた順番で読み出して出力するものである。すなわち、送信機８から出力されるパケットデータが、上述した実施形態の説明における入力データ１から入力データ３に相当する。
【００８５】
そして、受信機９は、リングバッファメモリ制御装置１,５から順次出力されるパケットデータを順次処理して音声を出力したり、画像を表示したりするものである。
【符号の説明】
【００８６】
１     リングバッファメモリ制御装置
２     書込制御部
３     先頭位置情報取得部
４     読出制御部
５     リングバッファメモリ制御装置
６     ネットワーク
７     印刷装置
８     送信機
９     受信機
１０   リングバッファメモリ
２０   フラグ付加部
２１   アドレスカウンタ部
２２   識別情報付加部
３０   プリンタコントローラ
３１   印刷エンジン
４０   フラグ判断部
４１   検索部
４２   識別情報判断部
【図１】
2010186212.tif 000003
【図２】
2010186212.tif 000004
【図３】
2010186212.tif 000005
【図４】
2010186212.tif 000006
【図５】
2010186212.tif 000007
【図６】
2010186212.tif 000008
【図７】
2010186212.tif 000009
【図８】
2010186212.tif 000010
【図９】
2010186212.tif 000011