説明

リングバッファメモリ制御装置

【課題】先頭アドレスに基づいてデータの読出しを行うリングバッファメモリ制御装置において、ノイズなどで先頭アドレスが書き変わっていたとしても正常にデータを読み出す。
【解決手段】リングバッファメモリ10に各データが書き込まれる際、各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加し、読出制御部2によって各データを読み出す際、その読み出された先頭データがデータ開始フラグであるか否かを判断し、先頭データがデータ開始フラグでないと判断された場合には、先頭データの位置の前方または後方に向かってデータ開始フラグを検索し、その検索によって見つけ出されたデータ開始フラグの位置からデータの読出しを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力データの循環的な書込みおよび読出しが可能に構成されたリングバッファメモリを制御するリングバッファメモリ制御装置に関するものであり、特に、入力データの先頭位置を示す先頭位置情報に誤りがある場合においても正常な入力データを読み出すことができるリングバッファメモリ制御装置に関するものである。
【背景技術】
【0002】
従来、入力されたデータを順次受け付け、その受け付けたデータを一旦、バッファメモリに記憶した後、順次読み出して処理を行うデータ処理装置が種々提案されている。
【0003】
そして、上記のようなデータ処理装置において用いられるバッファメモリとして、データをFIFO(First In First Out)方式で書込みおよび読出しが可能に構成されたリングバッファメモリが提案されている。
【0004】
ここで、上記のようなリングバッファメモリにデータを書き込む際には、そのデータの先頭を示す先頭アドレスが取得され、その先頭アドレスは一旦保持される。そして、リングバッファメモリからデータを読み出す際には、その保持された先頭アドレスが用いられるが、先頭アドレスを取得する際や先頭アドレスを保持している間、または保持された先頭アドレスを読み出す際にノイズやバグなどによって先頭アドレスが、本来の先頭アドレスから書き変わってしまう場合がある。そして、その書き変わってしまった先頭アドレスをそのまま用いてリングバッファメモリからデータを読み出すと正常なデータを読み出すことができない問題を生じていた。
【0005】
そこで、たとえば、特許文献1においては、先頭アドレスのバックアップを別個に保持しておき、そのバックアップの先頭アドレスを用いて書き変わってしまった先頭アドレスを訂正することによって正常なデータの読出しを行う方法が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−108066号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の方法では、先頭アドレスのバックアップを保持するバッファが別個に必要になるため、バッファの容量が増大し、またそのバッファの管理処理も必要となるため回路規模が大きくなり、コストアップになるという問題がある。
【0008】
本発明は、上記の事情に鑑み、たとえ、先頭アドレスが書き変わっていたとしても、先頭アドレスのバックアップを保持するバッファを設けることなく、正常なデータを読み出すことができるリングバッファメモリ制御装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明のリングバッファメモリ制御装置は、メモリの所定の記憶領域の終端の次を記憶領域の先端に割り当てることによって入力された複数のデータを循環的にメモリへ書き込む書込制御部と、書込制御部によってメモリへ各データを書き込む際の各データの記憶領域における先頭位置情報を取得する先頭位置情報取得部と、先頭位置情報取得部によって取得された先頭位置情報に基づいてメモリから各データを読み出す読出制御部とを備えたリングバッファメモリ制御装置において、メモリに各データが書き込まれる際、各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加するフラグ付加部と、読出制御部によって読み出された先頭データがデータ開始フラグであるか否かを判断するフラグ判断部と、フラグ判断部によって先頭データがデータ開始フラグでないと判断された場合に、先頭データの位置の前方または後方に向かってデータ開始フラグを検索する検索部とを備え、読出制御部が、フラグ判断部によって先頭データがデータ開始フラグでないと判断された場合には、検索部により検索されたデータ開始フラグの位置からデータの読出しを行うものであることを特徴とする。
【0010】
また、上記本発明のリングバッファメモリ制御装置においては、メモリに各データが書き込まれる際、各データを識別するための識別情報を各データに付加する識別情報付加部と、フラグ判断部によって先頭データがデータ開始フラグでないと判断され、検索部によってデータ開始フラグが検索された際、データ開始フラグに対応するデータが、次に読み出すべきデータであるか否かをデータに付加された識別情報に基づいて判断する識別情報判断部とをさらに設け、検索部を、識別情報判断部によってデータ開始フラグに対応するデータが次に読み出すべきデータでないと判断された場合には、再びその他のデータ開始フラグを検索するものとし、読出制御部を、識別情報判断部によってデータ開始フラグに対応するデータが次に読み出すべきデータであると判断された場合に、データ開始フラグの位置からデータの読出しを行うものとすることができる。
【発明の効果】
【0011】
本発明のリングバッファメモリ制御装置によれば、メモリに各データが書き込まれる際、各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加し、読出制御部によって各データを読み出す際、その読み出された先頭データがデータ開始フラグであるか否かを判断し、先頭データがデータ開始フラグでないと判断された場合には、先頭データの位置の前方または後方に向かってデータ開始フラグを検索し、その検索によって見つけ出されたデータ開始フラグの位置からデータの読出しを行うようにしたので、たとえ、先頭アドレスが書き変わっていたとしても、特許文献1に記載の方法のように先頭アドレスのバックアップを保持するバッファを設けることなく、正常なデータを読み出すことができる。
【0012】
また、上記本発明のリングバッファメモリ制御装置において、メモリに各データが書き込まれる際、各データを識別するための識別情報を各データに付加し、検索により見つけ出されたデータ開始フラグに対応するデータが、次に読み出すべきデータであるか否かをそのデータに付加された識別情報に基づいて判断し、次に読み出すべきデータでないと判断された場合には、再びその他のデータ開始フラグを検索し、検索されたデータ開始フラグに対応するデータが次に読み出すべきデータであると判断された場合に、そのデータ開始フラグの位置からデータの読出しを行うようにした場合には、たとえば、ノイズやバグで書き変えられた先頭アドレスの位置が、次に読み出すべきデータのデータ開始フラグの位置から大きく外れ、検索により最初に見つけ出したデータ開始フラグに対応するデータが次に読み出すべきデータではない場合においても、再びデータ開始フラグを検索して次に読み出すべきデータを見つけることができるので、正常な順番でデータを読み出すことができる。
【図面の簡単な説明】
【0013】
【図1】本発明のリングバッファメモリ制御装置の第1の実施形態の概略構成を示すブロック図
【図2】リングバッファメモリのアドレス構造の一例を示す図
【図3】リングバッファメモリに入力データ1〜3とデータ開始フラグとが記憶された状態を示す図
【図4】本発明のリングバッファメモリ制御装置の第1の実施形態の作用を説明するためのフローチャート
【図5】本発明のリングバッファメモリ制御装置の第2の実施形態の概略構成を示すブロック図
【図6】リングバッファメモリに入力データ1〜3とデータ開始フラグと識別情報1〜3とが記憶された状態を示す図
【図7】本発明のリングバッファメモリ制御装置の第2の実施形態の作用を説明するためのフローチャート
【図8】本発明のリングバッファメモリ制御装置の第1および第2の実施形態を利用した印刷システムの概略構成を示す図
【図9】本発明のリングバッファメモリ制御装置の第1および第2の実施形態を利用した通信システムの概略構成を示す図
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明のリングバッファメモリ制御装置の第1の実施形態について詳細に説明する。図1は、第1の実施形態のリングバッファメモリ制御装置の概略構成図である。
【0015】
第1の実施形態のリングバッファメモリ制御装置1は、図1に示すように、RAM等で構成されたリングバッファメモリ10の記憶領域の終端の次をその記憶領域の先端に割り当てることによって入力された複数のデータを循環的にメモリへ書き込む書込制御部2と、書込制御部2によってリングバッファメモリ10へ各データを書き込む際の各データの記憶領域における先頭アドレスを取得する先頭位置情報取得部3と、先頭位置情報取得部3によって取得された先頭アドレスに基づいてリングバッファメモリ10から各データを読み出す読出制御部4とを備えている。
【0016】
図2に、リングバッファメモリ10のアドレス構造の一例を示す。リングバッファメモリ10は、たとえば、1Kbyte〜1Mbyteの容量を有するものとして構成することができる。そして、この場合、リングバッファメモリ10の書込アドレスWPは00hから27hまであり、入力データの書込みはWPを+01hから順次インクリメントすることによって行われる。そして、WPが+27hまでインクメントされると、次のWPは+00hに戻る。
【0017】
また、入力データの読出アドレスRPは、RP=WP−1に設定され、書込アドレスWPが進んでデータが順次書き込まれるとともに、それに応じて読出アドレスが進んでデータの読出しが行われ、循環的にデータの書込みと読出しが行われる。
【0018】
そして、書込制御部2は、入力されたデータをリングバッファメモリ10に書き込む際、入力されたデータの先頭にそのデータの開始を示すデータ開始フラグを付加するフラグ付加部20と、書込アドレスWPを順次インクリメントするとともに、入力データを書き込む際の先頭アドレスを取得して出力するアドレスカウンタ部21とを備えている。
【0019】
図3は、入力データ1から入力データ3が書込制御部2によってリングバッファメモリ10に入力データ開始フラグとともに記憶されている状態の一例を示す図である。
【0020】
そして、先頭位置情報取得部3は、書込制御部2のアドレスカウンタ部21から出力された各データの先頭アドレスとその各データのデータサイズとを対応付けて、書込制御部2から出力された順番で記憶するものである。
【0021】
読出制御部4は、先頭位置情報取得部3から出力された先頭アドレスの位置から読み出し行うことによって、リングバッファメモリ10から各データを読み出すものであるが、先頭位置情報取得部3から出力された先頭アドレスの位置から読み出した先頭データがデータ開始フラグであるか否かを判断するフラグ判断部40を備えている。そして、さらに、そのフラグ判断部40によって先頭データがデータ開始フラグでないと判断された場合に、その先頭データの位置から前方または後方に向かって読出アドレスを進めて読出しを行い、データ開始フラグが記憶されている位置を検索する検索部41とを備えている。
【0022】
そして、読出制御部4は、読み出した先頭データがフラグ判断部40によってデータ開始フラグでないと判断された場合には、検索部41によって検索されたデータ開始フラグの位置からデータの読出しを行うものである。
【0023】
次に、本実施形態のリングバッファメモリ制御装置1の作用を、図4に示すフローチャートを参照しながら説明する。
【0024】
まず、書込制御部2にデータが入力されると、書込処理が行われる(S10)。具体的には、書込制御部2は、まず、リングバッファメモリ10にアクセスし、リングバッファメモリ10の記憶領域に未使用領域があるか否かを検索する(S12)。
【0025】
そして、検索された未使用領域の記憶容量と入力されたデータのデータサイズとを比較し、検索された未使用領域に入力データを配置可能であるか否かを判断する(S14)。そして、いずれの検索された未使用領域にも入力データが配置できないと判断した場合には、そのまま処理を終了する。なお、このとき入力データの書き込みが不可能であることを示すエラー信号を出力するようにしてもよい。
【0026】
一方、リングバッファメモリ10において、入力データを配置できる未使用領域がある場合には、入力されたデータの先頭にフラグ付加部20によってデータ開始フラグを付加し、そのデータ開始フラグが付加されたデータを検索した未使用領域に記憶する(S16)。
【0027】
また、このときアドレスカウンタ部21によってデータ開始フラグが付加されたデータを記憶した領域の先頭アドレスが取得され、その先頭アドレスと記憶したデータのデータサイズとが先頭位置情報取得部3に出力される。
【0028】
そして、先頭位置情報取得部3は、入力された先頭アドレスとデータサイズとを対応付けて保持する。
【0029】
そして、上述した書込処理を繰り返し行うことによって、図3に示すように、リングバッファメモリ10に入力データ1から入力データ3が記憶されたものとする。また、先頭位置情報取得部3には、入力データ1から入力データ3のそれぞれに対応する先頭アドレスおよびデータサイズが保持されているものとする。
【0030】
そして、次に、リングバッファメモリ10からの読出処理が行われる(S10)。具体的には、先頭位置情報取得部3から先頭アドレスおよびデータサイズが、保持された順番で読出制御部4に出力される。なお、本実施形態においては、リングバッファメモリ10からの読出しをFIFO(First In、First Out)で行うようにしたが、これに限らず、ランダムアクセスで読み出すようにしてもよい。そして、読出制御部4は、まず、リングバッファメモリ10にアクセスし、入力された先頭アドレスの位置に記憶されている内容を読み出す。そして、その読み出した内容が、データ開始フラグであるか否かをフラグ判断部40によって判断する(S18)。なお、データ開始フラグであるか否かの判断については、たとえばサムチェックなどを行うようにすればよい。
【0031】
そして、入力された先頭アドレスの位置から読み出した内容が、データ開始フラグである場合には、読出制御部4は、入力されたデータサイズに基づいて、先頭アドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S20)。
【0032】
ここで、本来、先頭アドレスの位置に記憶されている内容はデータ開始フラグであるはずであるが、読出制御部4に入力される先頭アドレスが、先頭位置情報取得部3により取得される際や保持されている間、または先頭位置情報取得部3から読出制御部4に出力されるときなどにおいて、ノイズやバグなどの原因によって書き変わっていることがある。そして、このように先頭アドレスが書き変わっている場合には、読出制御部4によって読み出される内容は、書き変わった先頭アドレスの位置のデータとなるためデータ開始フラグではないことになり、その後に続いて読み出されるデータも正常なデータではないことになる。
【0033】
そこで、S18においてフラグ判断部40によってデータ開始フラグではないと判断された場合には、検索部41によって、入力された先頭アドレスの位置からアドレスの末端方向に向かって(リングバッファメモリのアドレス構造が、図2に示すようなアドレス構
造の場合にはアドレス+27hに向かって)一定の範囲でデータ開始フラグが検索される(S22)。
【0034】
そして、このときデータ開始フラグが見つかった場合には(S24、YES)、読出制御部4は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S20)。
【0035】
一方、S24においてデータ開始フラグが見つからなかった場合には、検索部41は、今度は、入力された先頭アドレスの位置からアドレスの先端方向に向かって(リングバッファメモリのアドレス構造が、図2に示すようなアドレス構造の場合にはアドレス+00hに向かって)一定の範囲でデータ開始フラグを検索する(S26)。
【0036】
そして、このときデータ開始フラグが見つかった場合には(S28、YES)、読出制御部4は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S20)。
【0037】
一方、S28においてデータ開始フラグが見つからなかった場合には、読出制御部4は、エラー処理を実行した後(S30)、処理を終了する。なお、エラー処理としては、たとえば、読出制御部4に入力された先頭アドレスにエラーがあり、データが読み出せなかったことを示すエラー信号を出力するようにすればよい。
【0038】
また、たとえば、S18において、入力された先頭アドレスの位置に記憶された内容がデータ開始フラグではないと判断されたが、その後のデータ開始フラグの検索によって正常なデータが読み出せた場合においても、読出制御部4に入力された先頭アドレスにエラーがあることを示すエラー信号を出力し、警告するようにしてもよい。
【0039】
なお、読出制御部4によってデータが読み出された後は、その読み出されたデータ開始フラグはリングバッファメモリ10から削除される。
【0040】
また、本実施形態のリングバッファメモリ制御装置においては、検索部41が、アドレスの末端方向に向かってデータ開始フラグを検索した後、アドレスの先端方向に向かってデータ開始フラグを検索するようにしたが、逆に、アドレスの先端方向に向かってデータ開始フラグを検索した後、アドレスの末端方向に向かってデータ開始フラグを検索するようにしてもよい。
【0041】
次に、本発明のリングバッファメモリ制御装置の第2の実施形態について詳細に説明する。図5は、第2の実施形態のリングバッファメモリ制御装置の概略構成図である。
【0042】
第2の実施形態のリングバッファメモリ制御装置5は、第1の実施形態のリングバッファメモリ制御装置1と同様に、書込制御部2と、先頭位置情報取得部3と、読出制御部4とを備えているが、各部の内部の構成が異なる。
【0043】
第1の実施形態のリングバッファメモリ制御装置1においては、上述したように先頭アドレスが書き変わっている場合には、データ開始フラグを検索し、最初に見つけたデータ開始フラグの位置からデータの読出しを行うようにしたので、正常なデータの読み出しを行うことができるが、各データに付加されるデータ開始フラグを同じものとしているため、たとえば、書き変えられた先頭アドレスの位置が、次に読み出す順番のデータのデータ開始フラグの位置から大きく外れている場合などには、最初に見つけ出したデータ開始フラグに対応するデータが次に読み出す順番のデータではない場合がある。
【0044】
そこで、第2の実施形態のリングバッファメモリ制御装置5においては、上記のような不都合が生じないように、データ開始フラグを検索して見つけ出した後、そのデータ開始フラグに対応するデータが、次に読み出す順番のデータであるか否かを判断するように各部を構成している。
【0045】
具体的には、第2の実施形態の書込制御部2は、さらに各データを識別するための識別情報を各データに付加する識別情報付加部22を備えている。そして、書込制御部2は、入力されたデータをリングバッファメモリ10に書き込む際、入力されたデータの先頭にそのデータの開始を示すデータ開始フラグをフラグ付加部20によって付加するとともに、そのデータに識別情報を付加するものである。
【0046】
図6は、入力データ1から入力データ3が、書込制御部2によってリングバッファメモリ10にデータ開始フラグおよび識別情報とともに記憶されている状態の一例を示す図である。識別情報1から識別情報3は、それぞれ入力データ1から入力データ3を識別するためのものであり、各入力データに特有なものとして生成されるものである。具体的には、たとえば、識別情報としてチェックサムなどを生成して付加するようにすればよい。
【0047】
そして、先頭位置情報取得部3は、書込制御部2のアドレスカウンタ部21から出力された各データの先頭アドレスとその各データのデータサイズと各データの識別情報とを対応付けて、書込制御部2から出力された順番で記憶するものである。
【0048】
そして、読出制御部4は、フラグ判断部40によって先頭データがデータ開始フラグでないと判断され、検索部41によってデータ開始フラグが検索されて見つけ出された際、そのデータ開始フラグに対応するデータが、次に読み出す順番のデータであるか否かをそのデータに付加された識別情報に基づいて判断する識別情報判断部42をさらに備えている。
【0049】
そして、読出制御部4における検索部41は、識別情報判断部42によってデータ開始フラグに対応するデータが次に読み出す順番のデータでないと判断された場合には、再びその他のデータ開始フラグの検索を行うものである。
【0050】
そして、読出制御部4は、識別情報判断部42によってデータ開始フラグに対応するデータが、次に読み出す順番のデータであると判断された場合に、そのデータ開始フラグの位置からデータの読出しを行うものである。
【0051】
次に、本実施形態のリングバッファメモリ制御装置5の作用を、図7に示すフローチャートを参照しながら説明する。
【0052】
まず、書込制御部2にデータが入力されると、書込処理が行われる(S40)。具体的には、書込制御部2は、まず、リングバッファメモリ10にアクセスし、リングバッファメモリ10の記憶領域に未使用領域があるか否かを検索する(S42)。
【0053】
そして、検索された未使用領域の記憶容量と入力されたデータのデータサイズとを比較し、検索された未使用領域に入力データを配置可能であるか否かを判断する(S44)。そして、いずれの検索された未使用領域にも入力データが配置できないと判断した場合には、そのまま処理を終了する。なお、このとき入力データの書き込みが不可能であることを示すエラー信号を出力するようにしてもよい。
【0054】
一方、リングバッファメモリ10において、入力データを配置できる未使用領域がある場合には、入力されたデータの先頭にフラグ付加部20によってデータ開始フラグを付加するとともに、その入力されたデータに識別情報を付加し、そのデータ開始フラグおよび識別情報が付加されたデータを検索した未使用領域に記憶する(S46)。
【0055】
また、このときアドレスカウンタ部21によってデータ開始フラグが付加されたデータを記憶した領域の先頭アドレスが取得され、その先頭アドレスと記憶したデータのデータサイズとそのデータに付加された識別情報とが先頭位置情報取得部3に出力される。
【0056】
そして、先頭位置情報取得部3は、入力された先頭アドレスとデータサイズと識別情報とを対応付けて保持する。
【0057】
そして、上述した書込処理を繰り返し行うことによって、図6に示すように、リングバッファメモリ10に入力データ1から入力データ3が記憶されたものとする。また、先頭位置情報取得部3には、入力データ1から入力データ3のそれぞれに対応する先頭アドレス、データサイズおよび識別情報1から3が保持されているものとする。
【0058】
そして、次に、リングバッファメモリ10からの読出処理が行われる(S40)。具体的には、先頭位置情報取得部3から先頭アドレス、データサイズおよび識別情報が、保持された順番で読出制御部4に出力される。そして、読出制御部4は、まず、リングバッファメモリ10にアクセスし、入力された先頭アドレスの位置に記憶されている内容を読み出す。そして、その読み出した内容が、データ開始フラグであるか否かをフラグ判断部40によって判断する(S48)。なお、データ開始フラグであるか否かの判断については、たとえばサムチェックなどを行うようにすればよい。
【0059】
そして、入力された先頭アドレスの位置から読み出した内容が、データ開始フラグである場合には、読出制御部4は、入力されたデータサイズに基づいて、先頭アドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S50)。
【0060】
一方、S48においてフラグ判断部40によってデータ開始フラグではないと判断された場合には、検索部41によって、入力された先頭アドレスの位置からアドレスの末端方向に向かって(リングバッファメモリのアドレス構造が、図2に示すようなアドレス構
造の場合にはアドレス+27hに向かって)一定の範囲でデータ開始フラグが検索される(S52)。
【0061】
そして、このときデータ開始フラグが見つかった場合には(S54、YES)、識別情報判断部42において、その見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部3から出力された識別情報とが同一のものであるか否かが判断される(S56)。
【0062】
そして、識別情報判断部42によって同一のものであると判断された場合には、読出制御部4は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S50)。
【0063】
一方、S56において、識別情報判断部42によって同一のものではないと判断された場合には、再び、検索部41によって、アドレスの末端方向に向かって一定の範囲でその他のデータ開始フラグが検索される(S58)。
【0064】
そして、その検索部41による再検索によってその他のデータ開始フラグを見つけ出した場合には、再びその見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部3から出力された識別情報とが同一のものであるか否かが判断される(S56)。
【0065】
そして、識別情報判断部42によって同一のものであると判断された場合には、読出制御部4は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S50)。
【0066】
一方、検索部41によってリングバッファメモリ10の先頭アドレスの位置からアドレスの末端まで検索しても、データ開始フラグが見つからなかった場合またはデータ開始フラグが見つかったとしても、その見つけ出した全てのデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部3から出力された識別情報とが同一でない場合には(S54、NO)、検索部41は、今度は、入力された先頭アドレスの位置からアドレスの先端方向に向かって一定の範囲でデータ開始フラグを検索する(S60)。
【0067】
そして、このときデータ開始フラグが見つかった場合には(S62、YES)、識別情報判断部42において、その見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部3から出力された識別情報とが同一のものであるか否かが判断される(S64)。
【0068】
そして、識別情報判断部42によって同一のものであると判断された場合には、読出制御部4は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S50)。
【0069】
一方、S64において、識別情報判断部42によって同一のものではないと判断された場合には、再び、検索部41によって、アドレスの先端方向に向かって一定の範囲でその他のデータ開始フラグが検索される(S66)。
【0070】
そして、その検索部41による再検索によってその他のデータ開始フラグを見つけ出した場合には、再びその見つけ出したデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部3から出力された識別情報とが同一のものであるか否かが判断される(S64)。
【0071】
そして、識別情報判断部42によって同一のものであると判断された場合には、読出制御部4は、入力されたデータサイズに基づいて、データ開始フラグが記憶されたアドレス以降に記憶されたデータをデータサイズ分だけ読み出す(S50)。
【0072】
一方、検索部41によってリングバッファメモリ10の先頭アドレスの位置からアドレスの先端まで検索しても、データ開始フラグが見つからなかった場合またはデータ開始フラグが見つかったとしても、その見つけ出した全てのデータ開始フラグとともに記憶されている識別情報と先頭位置情報取得部3から出力された識別情報とが同一でない場合には(S62、NO)、読出制御部4は、エラー処理を実行した後(S68)、処理を終了する。なお、エラー処理としては、たとえば、読出制御部4に入力された先頭アドレスにエラーがあり、データが読み出せなかったことを示すエラー信号を出力するようにすればよい。
【0073】
また、たとえば、S48において、入力された先頭アドレスの位置に記憶された内容がデータ開始フラグではないと判断されたが、その後のデータ開始フラグの検索によって正常なデータが読み出せた場合においても、読出制御部4に入力された先頭アドレスにエラーがあることを示すエラー信号を出力し、警告するようにしてもよい。
【0074】
なお、読出制御部4によってデータが読み出された後は、その読み出されたデータ開始フラグはリングバッファメモリ10から削除される。
【0075】
また、本実施形態のリングバッファメモリ制御装置においては、検索部41が、アドレスの末端方向に向かってデータ開始フラグを検索した後、アドレスの先端方向に向かってデータ開始フラグを検索するようにしたが、逆に、アドレスの先端方向に向かってデータ開始フラグを検索した後、アドレスの末端方向に向かってデータ開始フラグを検索するようにしてもよい。
【0076】
また、上述した実施形態のリングバッファメモリ制御装置1,5は、たとえば、画像データを含む印刷ジョブを受け付けて、その印刷ジョブに基づいて印刷を行う印刷装置に利用することができる。図8に、上記実施形態のリングバッファメモリ制御装置1,5を利用した印刷装置を備えた印刷システムの概略構成を示す。
【0077】
図8に示す印刷システムは、印刷ジョブを生成して出力する複数のコンピュータ60〜63と、複数のコンピュータ60〜63から出力された印刷ジョブを受け付け、その印刷ジョブに基づいて印刷を行う印刷装置7と、コンピュータ60〜63と印刷装置7とを接続するネットワーク6とから構成されている。
【0078】
印刷装置7は、複数のコンピュータ60〜63から出力された印刷ジョブを受け付けて記憶するリングバッファメモリ制御装置1,5を備えたプリンタコントローラ30と、プリンタコントローラ30から出力された印刷データに基づいて印刷を行う印刷エンジン31とを備えている。
【0079】
プリンタコントローラ30のリングバッファメモリ制御装置1,5は、複数のコンピュータ60〜63から出力された印刷ジョブを受け付けた順番でリングバッファメモリ10に書き込むとともに、その受け付けた順番で読み出して出力するものである。すなわち、複数のコンピュータ60〜63から出力される印刷ジョブが、上述した実施形態の説明における入力データ1から入力データ3に相当する。なお、リングバッファメモリ10は、上記のように受信した印刷ジョブを記憶するためだけでなく、画像展開処理において利用するために設けるようにしてもよい。すなわち、1つの印刷ジョブに含まれる頁毎の画像データを記憶するものとして利用してもよい。この場合、たとえば、1つの印刷ジョブに含まれる1頁目の画像データが、上述した実施形態の説明における入力データ1に相当し、2頁目の画像データが入力データ2に相当し、3頁目の画像データが入力データ3に相当する。
【0080】
そして、プリンタコントローラ30は、リングバッファメモリ制御装置1,5から順次出力される印刷ジョブを印刷データに展開した後、その印刷データを印刷エンジンに順次
出力するものである。
【0081】
また、上述した実施形態のリングバッファメモリ制御装置1,5は、たとえば、パケット通信を用いた通信システムにおける受信機にも利用することができる。
【0082】
図9に、上記実施形態のリングバッファメモリ制御装置1,5を利用した受信機を備えた通信システムの概略構成を示す。
【0083】
図9に示す通信システムは、音声データや画像データをパケットデータとして時系列で出力する送信機8と、送信機8から出力されたパケットデータを受け付け、そのパケットデータに基づいて音声や画像データを復元する受信機9とを備えている。なお、送信機8と受信機9は、無線通信で接続するようにしてもよい、有線通信で接続するようにしてもよい。
【0084】
受信機9のリングバッファメモリ制御装置1,5は、送信機8から出力されたパケットデータを受け付けた順番でリングバッファメモリ10に書き込むとともに、その受け付けた順番で読み出して出力するものである。すなわち、送信機8から出力されるパケットデータが、上述した実施形態の説明における入力データ1から入力データ3に相当する。
【0085】
そして、受信機9は、リングバッファメモリ制御装置1,5から順次出力されるパケットデータを順次処理して音声を出力したり、画像を表示したりするものである。
【符号の説明】
【0086】
1 リングバッファメモリ制御装置
2 書込制御部
3 先頭位置情報取得部
4 読出制御部
5 リングバッファメモリ制御装置
6 ネットワーク
7 印刷装置
8 送信機
9 受信機
10 リングバッファメモリ
20 フラグ付加部
21 アドレスカウンタ部
22 識別情報付加部
30 プリンタコントローラ
31 印刷エンジン
40 フラグ判断部
41 検索部
42 識別情報判断部

【特許請求の範囲】
【請求項1】
メモリの所定の記憶領域の終端の次を記憶領域の先端に割り当てることによって入力された複数のデータを循環的に前記メモリへ書き込む書込制御部と、書込制御部によって前記メモリへ前記各データを書き込む際の前記各データの前記記憶領域における先頭位置情報を取得する先頭位置情報取得部と、先頭位置情報取得部によって取得された先頭位置情報に基づいて前記メモリから前記各データを読み出す読出制御部とを備えたリングバッファメモリ制御装置において、
前記メモリに前記各データが書き込まれる際、前記各データの先頭に各データの開始を示すデータ開始フラグをそれぞれ付加するフラグ付加部と、
読出制御部によって読み出された先頭データが前記データ開始フラグであるか否かを判断するフラグ判断部と、
フラグ判断部によって前記先頭データが前記データ開始フラグでないと判断された場合に、前記先頭データの位置の前方または後方に向かって前記データ開始フラグを検索する検索部とを備え、
前記読出制御部が、前記フラグ判断部によって前記先頭データが前記データ開始フラグでないと判断された場合には、前記検索部により検索されたデータ開始フラグの位置から前記データの読出しを行うものであることを特徴とするリングバッファメモリ制御装置。
【請求項2】
前記メモリに前記各データが書き込まれる際、前記各データを識別するための識別情報を前記各データに付加する識別情報付加部と、
前記フラグ判断部によって前記先頭データが前記データ開始フラグでないと判断され、前記検索部によって前記データ開始フラグが検索された際、データ開始フラグに対応するデータが、次に読み出すべきデータであるか否かを前記データに付加された識別情報に基づいて判断する識別情報判断部と、
前記検索部が、識別情報判断部によって前記データ開始フラグに対応するデータが次に読み出すべきデータでないと判断された場合には、再びその他の前記データ開始フラグを検索するものであり、
前記読出制御部が、前記識別情報判断部によって前記データ開始フラグに対応するデータが次に読み出すべきデータであると判断された場合に、前記データ開始フラグの位置から前記データの読出しを行うものであることを特徴とする請求項1記載のリングバッファメモリ制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−186212(P2010−186212A)
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2009−28106(P2009−28106)
【出願日】平成21年2月10日(2009.2.10)
【出願人】(000250502)理想科学工業株式会社 (1,191)
【復代理人】
【識別番号】100128451
【弁理士】
【氏名又は名称】安田 隆一