(57)【要約】  【課題】  リングバッファに順次データが格納されず欠落したブロックが生じた場合であっても、消失位置を特定して誤り訂正を正しく行うことを可能にするメモリ管理方法、及びメモリ管理装置を提供することを目的とする。  【解決手段】  リングバッファに対してデータを再帰的に循環させて格納する際に、リングバッファの先頭アドレスよりデータを格納する周回と、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行することで、前回バッファリングしたデータに対して新たにバッファリングしたデータをずらして格納し、該格納されたデータの訂正演算結果により、消失位置を把握する構成とした。  【選択図】  図１
2005196591.tif 000002
【特許請求の範囲】
【請求項１】
データを蓄積するためのメモリを、データを再帰的に循環させて上書き格納するリングバッファとして用いる際のメモリ管理方法であって、
前記リングバッファに対してデータを再帰的に循環させて格納する際に、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行する、
ことを特徴とするメモリ管理方法。
【請求項２】
請求項１に記載のメモリ管理方法において、
前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回では、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファの終端直後の連続するアドレス領域に格納する、
ことを特徴とするメモリ管理方法。
【請求項３】
請求項１に記載のメモリ管理方法において、
前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回では、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ先頭のアドレスシフトした領域に格納する、
ことを特徴とするメモリ管理方法。
【請求項４】
請求項１に記載のメモリ管理方法において、
前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回では、リングバッファを構成するアドレス領域の終端を、少なくとも１ブロックのデータ分少なく設定して使用し、
リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファ終端に連続する、前記少なくとも１ブロックのデータ分の空き領域に格納する、
ことを特徴とするメモリ管理方法。
【請求項５】
請求項１に記載のメモリ管理方法において、
データ部を前記メモリが有するデータ部リングバッファに格納するデータ部格納ステップと、
前記データ部に付加された誤り訂正符号であるパリティ部を前記メモリが有するパリティ部リングバッファに格納するパリティ部格納ステップとを有し、
前記リングバッファに対して前記データ部及び前記パリティ部を再帰的に循環させて格納する際には、前記データ部格納ステップ、または前記パリティ部格納ステップ、或いは前記データ部格納ステップと前記パリティ部格納ステップとの両方で、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを予め定めた所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行する、
ことを特徴とするメモリ管理方法。
【請求項６】
データを蓄積するためのメモリを、データを再帰的に循環させて上書き格納するリングバッファとして用いる際のメモリ管理装置であって、
前記リングバッファに格納されたデータに対する、アドレスポインタを管理するアドレス管理部と、
前記アドレス管理部の情報を基に、リングバッファが循環したことを検出する循環検出部と、
前記リングバッファの先頭アドレスを所定のバイト分シフトするアドレスシフト部と、
前記リングバッファに対してデータを再帰的に循環させて格納する際に、前記循環検出部における検出結果に基づいて、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行する格納制御部とを備える、
ことを特徴とするメモリ管理装置。
【請求項７】
請求項６に記載のメモリ管理装置において、
前記格納制御部は、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファの終端直後の連続するアドレス領域に格納する、
ことを特徴とするメモリ管理装置。
【請求項８】
請求項６に記載のメモリ管理装置において、
前記格納制御部は、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ先頭のアドレスシフトした領域に格納する、
ことを特徴とするメモリ管理装置。
【請求項９】
請求項６に記載のメモリ管理装置において、
前記格納制御部は、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端を、少なくとも１ブロックのデータ分少なく設定してデータを格納し、
リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファ終端に連続する、前記少なくとも１ブロックのデータ分の空き領域に格納する、
ことを特徴とするメモリ管理装置。
【請求項１０】
請求項６に記載のメモリ管理装置において、
前記メモリは、データ部を格納するデータ部リングバッファと、
前記データ部に付加された誤り訂正符号であるパリティ部を格納するパリティ部リングバッファとを備え、
前記リングバッファに対してデータを再帰的に循環させて格納する際には、前記格納制御部は、前記データ部リングバッファ、または前記パリティ部リングバッファ、或いは前記データ部リングバッファと前記パリティ部リングバッファとの両方に対して、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行する、
ことを特徴とするメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リングバッファとして用いるメモリに蓄積したデータに対してECC誤り訂正および消失訂正を行うためのメモリ管理方法、及びメモリ管理装置に関するものである。
【背景技術】
【０００２】
まず、リングバッファについて説明する。従来、データ蓄積装置に用いるメモリ装置は、その装置の有限な資源を活用するために、リングバッファ方式を採用していることが多い。一般的に、リングバッファとは、データを一時的に格納するためのものであり、データもしくはデータの塊（以下、ブロック）を先入れ先出し（FIFO：First In First Out）方式や、後入れ先出し（LIFO：Last In First Out）方式などの形態で管理するメモリ装置である。リングバッファの最も大きな特徴としては、自身のもつブロック数よりも多くのブロック数を管理する場合に備え、循環してバッファを使用できるようにＲＡＭのアドレスポインタを管理して、リング構造を形成していることである。また、アドレスへのポインタとしては、データの書き込みポインタと読み出しポインタとを持ち、各ポインタの指し示すアドレスにアクセスすることでバッファとして機能することができる。
【０００３】
バッファが循環する際のリングバッファのデータ更新方式としては、以下の２つが考えられる。
１．以前に格納したブロックを消去するための初期化処理を行った後に、新しいデータを格納する、
２．以前のブロックを上書きして、新しいブロックを格納する、
【０００４】
上記方式１．については、バッファの初期化によるオーバーヘッドの増加という問題がある。そこで、データが必ず、「順次」格納される場合には、速度向上のために方式２．のように初期化を行わずに、上書き的に新しいデータを格納する方法が採用されている。
【０００５】
次に、ECC誤り訂正および消失訂正について説明する。ここでは、光ディスクのDVD-ROMを例に説明を行う。
DVD-ROMでは、誤り訂正符号である、縦方向、横方向の２次元のパリティを保持している。通常は、データ部、および、パリティ部を前述のリングバッファに格納し、演算を行うことでデータ部に対するECC誤り訂正を行う。公知のとおり、ECC誤り訂正では、縦、または、横方向のECC誤り訂正の結果より、横（行）、または、縦（列）方向における誤り位置が特定できるので、この演算結果をもとに、最大でECC誤り訂正の２倍の訂正が可能な「消失訂正」を行うことができる。
【０００６】
消失訂正の方式に関して言えば、誤り位置を記録するために「消失フラグ」を用いる方式が多く採用されている。さらに、通常のECC誤り訂正時ではなく、データ変調時に誤り箇所を検知して、消失フラグに反映させる方法などがあり、これらは通常の誤り訂正前に消失位置を特定することで、訂正能力の高い消失訂正を実現するものである。
【特許文献１】特開２０００−２２８６３４号公報（請求項７、図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、例えば、DVD-ROMに代表される光ディスクなどのデータ（図６参照）をリングバッファに格納する時、傷や不正規ディスクなどの事情により、ディスクのシンクが正常に検出されず、あるブロック(セクタ)の情報が途中から欠落して格納される場合がある（図７参照）（なお、以後、これをセクタジャンプと呼ぶ）。
【０００８】
セクタジャンプが発生すると、セクタデータが正常に格納されない箇所がリングバッファ上に形成される。そのため、初期化処理をしない場合には、以前に格納した古いデータがそのままバッファ上に残ってしまう。
【０００９】
このようなときに、なにも対策をしないで「横方向の」誤り訂正を行った場合、古いデータおよびパリティによって演算が行われるので正しいと誤判定し、消失位置を正しく把握することができないという問題がある。それが、訂正能力の低下を招き、データを正しく訂正することができない原因となっていた。
【００１０】
従来の技術では、このような場合、セクタジャンプ時、もしくは、セクタジャンプのあったセクタのデータ変調の際に、「消失フラグ」を用いて消失位置情報を反映させ、この問題を回避することは可能である。しかしながら、これらの問題解決方法では、このような条件判定を行い、消失フラグに消失位置情報を反映するための、所定の機構の回路や、ソフトウェアの規模を拡大することにつながる。また、時々刻々とバッファリングされるデータ群の中で、セクタジャンプした箇所の消失フラグの処理を一気に実行するためのオーバーヘッドも問題となる。
【００１１】
尚、セクタジャンプ時の別の問題解決方法として、バッファの初期化処理も挙げられるが、この方法では、初期化処理によるオーバーヘッドの増大という問題があるほか、例えば、データ部もパリティ部も０の場合、誤り訂正の演算が正しいと誤認識されてしまうので、そのような状況を回避するために、初期化データのパターンを選定するのに困難さを伴うという問題がある。
【００１２】
そこで、本発明は、上記のような従来の問題点に鑑みてなされたものであり、リングバッファに順次データが格納されず欠落したブロックが生じた場合であっても、リングバッファの初期化処理を行わないで且つ消失判定の専用回路も備えることなく、消失位置を特定して誤り訂正を正しく行うことを可能にするメモリ管理方法、及びメモリ管理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の請求項１に記載のメモリ管理方法は、データを蓄積するためのメモリを、データを再帰的に循環させて上書き格納するリングバッファとして用いる際のメモリ管理方法であって、前記リングバッファに対してデータを再帰的に循環させて格納する際に、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行することを特徴とするものである。
【００１４】
また、本発明の請求項２に記載のメモリ管理方法は、請求項１に記載のメモリ管理方法において、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回では、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファの終端直後の連続するアドレス領域に格納することを特徴とするものである。
【００１５】
また、本発明の請求項３に記載のメモリ管理方法は、請求項１に記載のメモリ管理方法において、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回では、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ先頭のアドレスシフトした領域に格納することを特徴とするものである。
【００１６】
また、本発明の請求項４に記載のメモリ管理方法は、請求項１に記載のメモリ管理方法において、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回では、リングバッファを構成するアドレス領域の終端を、少なくとも１ブロックのデータ分少なく設定して使用し、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファ終端に連続する、前記少なくとも１ブロックのデータ分の空き領域に格納することを特徴とするものである。
【００１７】
また、本発明の請求項５に記載のメモリ管理方法は、請求項１に記載のメモリ管理方法において、データ部を前記メモリが有するデータ部リングバッファに格納するデータ部格納ステップと、前記データ部に付加された誤り訂正符号であるパリティ部を前記メモリが有するパリティ部リングバッファに格納するパリティ部格納ステップとを有し、前記リングバッファに対して前記データ部及び前記パリティ部を再帰的に循環させて格納する際には、前記データ部格納ステップ、または前記パリティ部格納ステップ、或いは前記データ部格納ステップと前記パリティ部格納ステップとの両方で、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを予め定めた所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行することを特徴とするものである。
【００１８】
また、本発明の請求項６に記載のメモリ管理装置は、データを蓄積するためのメモリを、データを再帰的に循環させて上書き格納するリングバッファとして用いる際のメモリ管理装置であって、前記リングバッファに格納されたデータに対する、アドレスポインタを管理するアドレス管理部と、前記アドレス管理部の情報を基に、リングバッファが循環したことを検出する循環検出部と、前記リングバッファの先頭アドレスを所定のバイト分シフトするアドレスシフト部と、前記リングバッファに対してデータを再帰的に循環させて格納する際に、前記循環検出部における検出結果に基づいて、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行する格納制御部とを備えることを特徴とするものである。
【００１９】
また、本発明の請求項７に記載のメモリ管理装置は、請求項６に記載のメモリ管理装置において、前記格納制御部が、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファの終端直後の連続するアドレス領域に格納することを特徴とするものである。
【００２０】
また、本発明の請求項８に記載のメモリ管理装置は、請求項６に記載のメモリ管理装置において、前記格納制御部が、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ先頭のアドレスシフトした領域に格納することを特徴とするものである。
【００２１】
また、本発明の請求項９に記載のメモリ管理装置は、請求項６に記載のメモリ管理装置において、前記格納制御部が、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端を、少なくとも１ブロックのデータ分少なく設定してデータを格納し、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファ終端に連続する、前記少なくとも１ブロックのデータ分の空き領域に格納することを特徴とするものである。
【００２２】
また、本発明の請求項１０に記載のメモリ管理装置は、請求項６に記載のメモリ管理装置において、前記メモリは、データ部を格納するデータ部リングバッファと、前記データ部に付加された誤り訂正符号であるパリティ部を格納するパリティ部リングバッファとを備え、前記リングバッファに対してデータを再帰的に循環させて格納する際には、前記格納制御部が、前記データ部リングバッファ、または前記パリティ部リングバッファ、或いは前記データ部リングバッファと前記パリティ部リングバッファとの両方に対して、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行することを特徴とするものである。
【００２３】
上記構成により、以前格納したデータの位置に対して、新しく格納するデータは必ずずれるため、たとえリングバッファの初期化処理を行っていなくても、セクタジャンプしたデータに対して誤り訂正を行う場合、古いデータとパリティに対する演算結果は不正になり、消失位置を把握することができる。このことにより、セクタジャンプが発生しても、データを正しく訂正することが可能である。また、データをずらして格納することだけで、消失位置を特定できることから、それ以上の回路や、ソフトウェアによる判定機構を、必要としない。
【発明の効果】
【００２４】
本発明によるメモリ管理方法、及びメモリ管理装置によれば、セクタジャンプなどによるリングバッファ内での欠落したブロックに関する情報に対して、初期化処理や、消失位置判定機構を備えていなくても、データをずらして管理することにより、消失位置を特定することができる。
【００２５】
また、上記構成によれば、消失位置を把握することで、訂正能力の低下を回避することができるとともに、初期化処理のオーバーヘッドや、消失位置特定のための回路や、ソフトウェアの規模を削減することが可能となる。
【００２６】
具体的には、本発明の請求項１に係るメモリ管理方法、及び本発明の請求項７に係るメモリ管理装置によれば、リングバッファに対してデータを再帰的に循環させて格納する際に、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行するようにしたので、前周回と今周回で格納したブロックデータの位置が必ずずれるため、メモリの初期化処理を行わず、リングバッファを上書き的に使用している場合、誤り訂正の演算結果によりセクタジャンプの発生した位置を消失位置として特定することができる。これにより、訂正能力の低下を回避することができるとともに、初期化処理のオーバーヘッドや、消失位置判定のための回路や、ソフトウェアの規模を削減することができる。
【００２７】
本発明の請求項２に係るメモリ管理方法、及び本発明の請求項８に係るメモリ管理装置によれば、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファの終端直後の連続するアドレス領域に格納するようにしたので、装置のメモリ資源に余裕がある場合に、アドレスポインタをシフトしたままデータを格納することができ、リングバッファにおいてデータ格納の制御管理を簡単に行うことができる。
【００２８】
本発明の請求項３に係るメモリ管理方法、及び本発明の請求項９に係るメモリ管理装置によれば、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ先頭のアドレスシフトした領域に格納するようにしたので、リングバッファのメモリ資源を有効に活用することができる。
【００２９】
本発明の請求項４に係るメモリ管理方法、及び本発明の請求項１０に係るメモリ管理装置によれば、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端を、少なくとも１ブロックのデータ分少なく設定して使用し、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、前記リングバッファ終端に連続する、前記少なくとも１ブロックのデータ分の空き領域に格納するようにしたので、リングバッファにおいてデータ格納の制御管理を簡単に行うことができる。
【００３０】
本発明の請求項５に係るメモリ管理方法、及び本発明の請求項１１に係るメモリ管理装置によれば、データ部を前記メモリが有するデータ部リングバッファに格納するデータ部格納ステップと、前記データ部に付加された誤り訂正符号であるパリティ部を前記メモリが有するパリティ部リングバッファに格納するパリティ部格納ステップとを有し、前記リングバッファに対して前記データ部及び前記パリティ部を再帰的に循環させて格納する際には、前記データ部格納ステップ、または前記パリティ部格納ステップ、或いは前記データ部格納ステップと前記パリティ部格納ステップとの両方で、前記リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを予め定めた所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行するようにしたので、メモリの初期化処理を行わず、リングバッファを上書き的に使用している場合、誤り訂正の演算結果によりセクタジャンプの発生した位置を消失位置として特定することができるため、訂正能力の低下を回避することができるとともに、初期化処理のオーバーヘッドや、消失位置判定のための回路や、ソフトウェアの規模を削減することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について、図面に基づいて詳しく説明する。
（実施の形態１）
図１は、本発明の実施の形態１によるメモリ管理装置の構成を示すブロック図である。
【００３２】
図１において、１０は、データを再帰的に循環させて上書き格納するリングバッファであり、リングバッファ１０は、複数のブロックにより構成される。２０は、前記リングバッファに格納されたデータに対するアドレスポインタを管理するアドレス管理部であり、アドレス管理部が管理するアドレスポインタとしては、書き込みポインタと読み出しポインタとがある。３０は、アドレス管理部２０に管理されている情報を基にアドレスポインタがリングバッファの終端に到達したことを検出し、リングバッファの終端に到達した場合には、リングバッファが循環したことを示す制御信号を出力する循環検出部、４０は、リングバッファ１０の先頭アドレスを所定バイト数分シフトするアドレスシフト部、５０は、リングバッファに対してデータを再帰的に循環させて格納する際に、循環検出部３０により出力された制御信号に基づいて、リングバッファの先頭アドレスよりブロックデータを格納する周回と、リングバッファの先頭アドレスを所定のバイト分シフトしてからブロックデータを格納する周回とを交互に実行するようにアドレスシフト部４０を制御する格納制御部である。なお、アドレスシフト部４０がシフトを行う所定バイト数は、予め定め任意に設定された正の整数値であり、前周回と今周回でそれぞれ格納されたブロックデータの位置を互いにずらすことができる任意の値である。
【００３３】
次に、上記のように構成されている本実施の形態１によるメモリ管理装置が行うメモリ管理方法について、図２から図４を参照しながら説明する。
図２は、本実施の形態１によるメモリ管理装置におけるリングバッファの管理構成を示す概念図である。なお、以下に、図１及び図２を用いて説明するメモリ管理装置が行うメモリ管理方法では、説明を簡単にするために、奇数周回においてリングバッファの先頭アドレスをそのまま起点としてデータを格納し、偶数周回においてリングバッファの先頭アドレスを複数バイトシフトしてからデータを格納するものについて説明する。
【００３４】
先ず、始めの１周回目は奇数周回であるため、格納制御部５０は、リングバッファ１０の先頭アドレスをそのまま書き込みアドレスの起点として、データを順次格納していく。アドレス管理部２０は順次格納されたデータの書き込みアドレスポインタを管理し、循環検出部３０に渡し、循環検出部３０では前記書き込みアドレスポインタがリングバッファ終端に到達したか否かの検出を行う。
【００３５】
そして、循環検出部３０が前記書き込みアドレスポインタがリングバッファ終端に到達したことを検出した場合には、リングバッファが循環したことを示す制御信号を格納制御部５０に出力する。なお、これにより、１周回目のデータの格納が終了し、書き込みアドレスポインタがリングバッファ１０の先端に戻される。
【００３６】
次に、循環検出部３０からのリングバッファが循環したことを示す制御信号を受けた格納制御部５０は、２周回目のデータの格納を開始するが、２周回目は偶数周回であるため、格納制御部５０は、アドレスシフト部４０を制御してリングバッファ１０の先頭アドレスを所定バイト数分シフトさせ、この数バイト分シフトされたアドレスを書き込みアドレスの起点とし、順次リングバッファ１０にデータを格納する。また、この際においても同様に循環検出部３０は、アドレス管理部２０からの書き込みアドレスポインタ情報をもとに、現在の書き込みアドレスポインタがリングバッファ終端に到達したか否かの検出を行う。
【００３７】
そして、循環検出部３０が前記書き込みアドレスポインタがリングバッファ終端に到達したことを検出した場合には、現在格納中のデータが全て格納されるのをまって、リングバッファが循環したことを示す制御信号を格納制御部５０に出力する。なお、これにより、２周回目のデータの格納が終了し、書き込みアドレスポインタがリングバッファ１０の先端に戻される。
【００３８】
以下、同様に奇数周回の場合には、リングバッファの先頭アドレスをそのまま起点としてデータの格納を行い、偶数周回の場合には、偶数周回においてリングバッファの先頭アドレスを複数バイトシフトしてからデータの格納を行う。
【００３９】
このように、奇数周回と偶数周回のリング循環で、偶数周回のみリングバッファの先頭アドレスを数バイト分シフトさせてからデータを格納することにより、前周回格納したブロックデータと、新しく格納するブロックデータを必ず互いにずれる位置にすることができ、これによりセクタジャンプしたデータに対して誤り訂正を行う場合には、古いデータ、及びパリティに対する演算結果が不正になり、消失位置を把握することができ、訂正能力の低下を回避することが可能になる。
【００４０】
なお、ここでは、偶数周回の循環のみでリングバッファの先頭アドレスをシフトさせることとしたが、リングバッファの先頭アドレスよりデータを格納する周回と、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行するものであれば良く、奇数周回の循環のみでリングバッファの先頭アドレスをシフトさせることとしても同様な効果が得られる。
【００４１】
また、上記の説明では、図２に示すように、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファの終端直後の連続するアドレス領域に格納する方式について示したが、かかる方式は、メモリ資源に余裕がある場合に実現可能な方式であり、書き込みポインタ及び読み出しポインタをシフトさせたまま用いる方法である。
【００４２】
一方で、メモリ資源に余裕がない場合には、リングバッファの最終ブロックにおいてデータを格納するための容量を確保することができないため、図３に示すように、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ先頭のアドレスシフトした領域に格納する方式を採用することが考えられる。
【００４３】
なお、この方式を採用することにより、リングバッファのメモリ資源を有効に活用することができる。
【００４４】
また、図４に示すように、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回で、リングバッファを構成するアドレス領域の終端を、少なくとも１ブロックのデータ分少なく設定して使用し、リングバッファを構成するアドレス領域の終端までで格納しきれないシフトした所定のバイト分のデータを、リングバッファ終端に連続する、前記少なくとも１ブロックのデータ分の空き領域に格納する方式を採用することも考えられる。
【００４５】
なお、この方式を採用することにより、リングバッファにおいてデータ格納の制御管理を簡単に行うことができる。
【００４６】
このように、本実施の形態１によるメモリ管理方法、及びメモリ管理装置では、リングバッファに対してデータを再帰的に循環させて格納する際に、リングバッファの先頭アドレスよりデータを格納する周回と、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行するようしたことにより、前回の循環で格納したブロックデータの位置に対して、新しく格納するブロックデータは必ずずれるため、セクタジャンプしたデータに対して誤り訂正を行う場合、該セクタジャンプしたデータを格納すべき位置にある古いデータ及びパリティに対する誤り訂正の演算結果が不正になり、該セクタジャンプの位置を消失位置として把握することが可能となる。
【００４７】
これにより、セクタジャンプが発生したとしても、データを正しく訂正することができるとともに、初期化処理のオーバーヘッドの削減や、消失位置判定のための回路やソフトウェアをシュリンクすることができる。
【００４８】
（実施の形態２）
本発明の実施の形態２によるメモリ管理方法、及びメモリ管理装置は、リングバッファに蓄積したデータに対してＥＣＣ誤り訂正、及び消失訂正を行うことを目的として、データ部と該データ部に付加された誤り訂正符号であるパリティ部とをそれぞれの別々のリングバッファで管理する際のメモリ管理方法、及びメモリ管理装置について説明するものである。
【００４９】
図５は、本発明の実施の形態２によるメモリ管理装置の構成を示すブロック図である。
図５において、６０は、データを蓄積するためのメモリであり、誤り訂正の対象となるデータ部を格納するデータ部リングバッファ６１と、データ部に付加された誤り訂正符号であるパリティ部を格納するパリティ部リングバッファ６２とを有する。また、７０は、データを再帰的に循環させて格納する際に、循環検出部３０から出力されるリングバッファが循環したことを示す制御信号に基づいて、データ部リングバッファ６１、またはパリティ部リングバッファ６２、或いはデータ部リングバッファ６１とパリティ部リングバッファ６２の両方、の何れかに対して、リングバッファの先頭アドレスよりブロックデータを格納する周回と、リングバッファの先頭アドレスを所定のバイト分シフトしてからブロックデータを格納する周回とを交互に実行するようにアドレスシフト部４０を制御する格納制御部である。なお、その他の構成要素は、前述実施の形態１による消失訂正用メモリ装置と同様のため、説明を省略する。
【００５０】
次に、上記のように構成されている本実施の形態２によるメモリ管理装置が行うメモリ管理方法について説明する。
本発明の実施の形態２によるメモリ管理方法は、メモリ６０がデータ部と該データ部に付加された誤り訂正符号であるパリティ部とをそれぞれの別々のリングバッファで管理する構成としたことに伴い、リングバッファに対してデータを再帰的に循環させて格納する際に、データ部リングバッファ６１、またはパリティ部リングバッファ６２、或いはデータ部リングバッファ６１とパリティ部リングバッファ６２との両方に対して、リングバッファの先頭アドレスよりデータを格納する周回と、前記リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行するものである。
【００５１】
これにより、少なくともデータ部リングバッファ６１或いはパリティ部リングバッファ６２の何れかにおいて、前周回で格納されたデータと新しく格納されたデータとが必ず互いにずれる位置に格納されることとなり、セクタジャンプしたデータに対して誤り訂正を行う場合には、古いデータ、及びパリティに対する演算結果が不正になり、消失位置を把握することができ、訂正能力の低下を回避することが可能になる。
【００５２】
このように、本実施の形態２によるメモリ管理装置、及びメモリ管理方法では、データ部を格納するデータ部リングバッファ６１と、パリティ部を格納するパリティ部リングバッファ６２とを備え、データを再帰的に循環させて格納する際に、データ部リングバッファ６１、またはパリティ部リングバッファ６２、或いはデータ部リングバッファ６１とパリティ部リングバッファ６２との両方、の何れかに対してリングバッファの先頭アドレスよりデータを格納する周回と、リングバッファの先頭アドレスを所定のバイト分シフトしたアドレス位置からデータを格納する周回と、を交互に実行することにより、セクタジャンプしたデータに対して誤り訂正を行う場合、該セクタジャンプしたデータを格納すべき位置にある古いデータ或いは／及びパリティに対する誤り訂正の演算結果が不正になり、該セクタジャンプの位置を消失位置として把握することが可能となる。これにより、セクタジャンプが発生したとしても、データを正しく訂正することができるとともに、初期化処理のオーバーヘッドの削減や、消失位置判定のための回路やソフトウェアをシュリンクすることができる。
【産業上の利用可能性】
【００５３】
本発明に係るメモリ管理方法、及びメモリ管理装置は、リングバッファに順次データが格納されず欠落したブロックが生じた場合であっても、消失位置を特定して誤り訂正を正しく行うことを可能にするという効果を有し、データを再帰的に循環させて格納するリングバッファを用いて誤り訂正を行うデータ蓄積装置におけるメモリ管理方法、及びメモリ管理装置として有用である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態１によるメモリ管理装置の構成を示す図である。
【図２】本発明の実施の形態１、及び実施の形態２におけるリングバッファの管理構成を示す概念図である。
【図３】本発明の実施の形態１、及び実施の形態２におけるリングバッファの管理構成を示す概念図である。
【図４】本発明の実施の形態１、及び実施の形態２におけるリングバッファの管理構成を示す概念図である。
【図５】本発明の実施の形態２によるメモリ管理装置の構成を示す図である。
【図６】光ディスクに格納されたデータの一例を示す図である。
【図７】セクタジャンプを説明する図である。
【符号の説明】
【００５５】
１０  リングバッファ
２０  アドレス管理部
３０  循環検出部
４０  アドレスシフト部
５０、７０  格納制御部
６０  メモリ
６１  データ部リングバッファ
６２  パリティ部リングバッファ
【図１】
2005196591.tif 000003
【図２】
2005196591.tif 000004
【図３】
2005196591.tif 000005
【図４】
2005196591.tif 000006
【図５】
2005196591.tif 000007
【図６】
2005196591.tif 000008
【図７】
2005196591.tif 000009