(57)【要約】【課題】  デ−タの異常を正確に、信頼性高く検出可能なチェ−ンメモリ及びチェ−ンメモリの管理方法を提供することを目的とする。【解決手段】可変長デ−タを複数のデ−タブロックに分割し、デ−タブロックごとに次のデ−タブロックが記憶されるアドレスを有することにより繋いで記憶するチェ−ンメモリ装置において、チェ−ンメモリ装置の書き込み時に、デ−タブロックごとに可変長デ−タに対応する同一の可変長デ−タＩＤを付与し、デ−タブロックごとにデ−タブロックの繋ぎ順を示すシ−ケンス番号を付与する工程と、チェ−ンメモリ装置の読み出し時に、読み出したデ−タブロックから可変長デ−タＩＤとシ−ケンス番号とを検出する工程と、検出した可変長デ−タＩＤとシ−ケンス番号の適否を判断する工程とを備えるチェ−ンメモリ装置の管理方法とする。【選択図】    図１
2009042895.tif 000002
【特許請求の範囲】
【請求項１】
可変長デ−タを複数のデ−タブロックに分割し、前記デ−タブロックごとに次のデ−タブロックが記憶されるアドレスを有することにより繋いで記憶するチェ−ンメモリ装置において、
前記チェ−ンメモリ装置の書き込み時に、前記デ−タブロックごとに可変長デ−タに対応する同一の可変長デ−タＩＤを付与し、前記デ−タブロックごとに前記デ−タブロックの繋ぎ順を示すシ−ケンス番号を付与する工程と、
前記チェ−ンメモリ装置の読み出し時に、読み出した前記デ−タブロックから前記可変長デ−タＩＤと前記シ−ケンス番号とを検出する工程と、
前記検出した可変長デ−タＩＤと前記シ−ケンス番号の適否を判断する工程と
を備えることを特徴とするチェ−ンメモリ装置の管理方法。
【請求項２】
請求項１に記載のチェ−ンメモリ装置の管理方法において、
前記検出した可変長デ−タＩＤの適否を判断する工程は、前記検出した可変長デ−タＩＤが、可変長デ−タとの対応で同一であるかどうかを判断する工程であり、
前記検出したシ−ケンス番号の適否を判断する工程は、前記検出したシ−ケンス番号が前記分割された複数のデ−タブロックのチェ−ン順であるかどうかを判断する工程である
ことを特徴とするチェ−ンメモリ装置の管理方法。
【請求項３】
請求項１又は請求項２に記載のチェ−ンメモリ装置の管理方法において、
前記チェ−ンメモリ装置は、可変長デ−タを記憶するチェ−ンメモリとは別に管理用メモリを備え、
複数の前記可変長デ−タを記憶する場合において、
前記チェ−ンメモリ装置への書き込み時に、各可変長デ−タに対応して、
前記可変長デ−タＩＤと、前記シ−ケンス番号と、最初の前記デ−タブロックが記憶されるアドレスとを前記管理用メモリに記憶する工程と、
前記チェ−ンメモリ装置からの読み出し時に、前記管理用メモリを参照して、読み出す可変長デ−タの最初のデ−タブロックを読み出す工程と
を有することを特徴とするチェ−ンメモリ装置の管理方法。
【請求項４】
バルクデ−タを、複数のデ−タブロックに分割し、チェ−ン方式で順次繋いで記憶部に記録する書き込み回路と、前記記憶部から前記複数のデ−タブロックを順次読み出す読み出し回路とを備えるチェ−ンメモリ装置であって、
前記書き込み回路は、
前記デ−タブロックに対して各々、次に繋がるデ−タブロックが記録される記憶部のアドレスを付与するポインタ付与部と、
前記デ−タブロックごとに前記バルクデ−タに対応して同一の識別ＩＤを付与するＩＤ付与部と、
前記デ−タブロックごとに前記バルクデ−タの分割順に対応して所定の順序でシ−ケンス番号を付与するシ−ケンス番号付与部とを備え、
前記読み出し回路は、
前記記憶部から読み出した前記デ−タブロックの前記ポインタを検出するポインタ検出部と、
前記記憶部から読み出した前記デ−タブロックの前記同一の識別ＩＤを検出するＩＤ検出部と、
前記記憶部から読み出した前記デ−タブロックの所定の順序の前記シ−ケンス番号を検出するシ−ケンス番号検出部とを備える
ことを特徴とするチェ−ンメモリ装置。
【請求項５】
請求項４に記載のチェ−ンメモリ装置において、
前記記録するバルクデ−タに対応する前記デ−タブロックの可変長デ−タＩＤと、
前記所望のバルクデ−タに対応する最初の前記デ−タブロックが記憶される記憶部のアドレスと、
前記最初のデ−タブロックのシ−ケンス番号と
を記憶する管理用メモリを備える
ことを特徴とするチェ−ンメモリ装置。
【請求項６】
請求項４又は請求項５に記載のチェ−ンメモリ装置において、
前記書き込み回路は、
前記デ−タブロックが記録されるアドレスに対応する記憶部が使用中であることを示す使用中判定番号を、前記デ−タブロックごとに付与する使用中判定番号付与部を備え、
前記読み出し回路は、
前記使用中判定番号を、読み出し時に前記デ−タブロックごとに検出する使用中判定番号検出部を備える
ことを特徴とするチェ−ンメモリ装置。
【請求項７】
請求項６に記載のチェ−ンメモリ装置において、
前記記録するデ−タブロックの異常を知らせるアラ−ム出力部を備え、
前記読み出し回路は、
前記読み出した同一のバルクデ−タに対応するデ−タブロックの可変長ＩＤが同一でない場合、又は
前記読み出したデ−タブロックのシ−ケンス番号の順序が適当でない場合に、
前記アラ−ム出力部にアラ−ムを出力させる
ことを特徴とするチェ−ンメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デ−タをチェ−ン方式で記憶する記憶装置とその管理方法に関し、特に信頼性高く安定してデ−タの異常を検出可能な、チェ−ンメモリ装置とチェ−ンメモリ装置の管理方法に関する。
【背景技術】
【０００２】
昨今、インタ−ネットをはじめとする通信伝達網の複雑化、高速化と共に、通信伝達網で取り扱うデ−タの大容量化が著しい。
【０００３】
デ−タの大容量化が進むにつれ、迅速かつ多量の可変長デ−タフレ−ム等の処理が求められるようになってきた。
【０００４】
このため、大容量のデ−タをバッファメモリ等の一時記憶装置等に効率よく格納して、次の読み出しや転送に迅速に対応する技術の一つとして、チェ−ン方式により空領域を効率良く利用する記憶装置が用いられている。
【０００５】
また、一時記憶装置等への効率の良い書き込みや読み出しだけではなく、書き込みや読み出し時等におけるデ−タの誤り等についても対応できるよう、例えばデ−タ長の情報を有するデ−タとして、パリティチェック等によるデ−タの信頼性の確認等が行われている。
【０００６】
図７に示すのは、従来のチェ−ンメモリ構成の典型例である。チェ−ンメモリを構成する一つのデ−タブロック７０は、デ−タ本体部７２と、ポインタ７４とからなる。ポインタ７４は、デ−タブロック７０に繋がる次のデ−タブロックが格納されているＲＡＭ等のアドレスを示すものである。ポインタ７４が示すアドレスを順次たどることで、デ−タの断片であるデ−タブロックがチェ−ン方式に繋がる。また、ポインタ７４と共にパリティビットを設ける場合もある。
【０００７】
また、チェ−ン方式の記憶装置においては、バルクデ−タを複数のデ−タブロックに分割して、デ−タブロックごとに記憶装置の異なるアドレス部分に別個に記憶する。
【０００８】
この場合、デ−タブロック間の連携は、ポインタ領域に記憶されている次のデ−タブロックのアドレスを示す情報に依存し、このデ−タが誤るとデ−タブロックが繋がらず、いわゆるハングアップやフリ−ズ等の現象が生じる場合もある。
【０００９】
このような、記憶装置やその管理方法の一例が、下記特許文献１等に開示されている。
【特許文献１】特開２００４−２８０３３３
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、デ−タの大容量化とともに、必要とされるデ−タの信頼性もさらに飛躍的に高まるところ、パリティチェックによるデ−タ長の長さのチェック等だけでは確実にデ−タ誤り等を検出することは困難であった。
【００１１】
例えば、誤りビット数が２ビット発生すると、１ビットのパリティチェックでは偶数か奇数かの判断となることから、異常を認識し得ないこととなる。また、ポインタの誤りにより正常に繋がらず、デ−タ全体が技術的に無意味となる場合でも、デ−タ読み出し段階で異常を検出することは困難であった。
【００１２】
本発明は、ポインタを含めた記憶装置に書き込み読み出しするデ−タ全体についての信頼性を飛躍的に向上させ、そのデ−タの異常を正確に、信頼性高く検出可能なチェ−ンメモリ及びチェ−ンメモリの管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明にかかるチェ−ンメモリ装置の管理方法は、可変長デ−タを複数のデ−タブロックに分割し、デ−タブロックごとに次のデ−タブロックが記憶されるアドレスを有することにより繋いで記憶するチェ−ンメモリ装置において、チェ−ンメモリ装置の書き込み時に、デ−タブロックごとに可変長デ−タに対応する同一の可変長デ−タＩＤを付与し、デ−タブロックごとにデ−タブロックの繋ぎ順を示すシ−ケンス番号を付与する工程と、チェ−ンメモリ装置の読み出し時に、読み出したデ−タブロックから可変長デ−タＩＤとシ−ケンス番号とを検出する工程と、検出した可変長デ−タＩＤとシ−ケンス番号の適否を判断する工程とを備えることを特徴とする。
【００１４】
また、本発明にかかるチェ−ンメモリ装置の管理方法は、好ましくは検出した可変長デ−タＩＤの適否を判断する工程が、検出した可変長デ−タＩＤが、可変長デ−タとの対応で同一であるかどうかを判断する工程であり、検出したシ−ケンス番号の適否を判断する工程は、検出したシ−ケンス番号が分割された複数のデ−タブロックのチェ−ン順であるかどうかを判断する工程であることを特徴とする。
【００１５】
また、本発明にかかるチェ−ンメモリ装置の管理方法は、さらに好ましくはチェ−ンメモリ装置が、可変長デ−タを記憶するチェ−ンメモリとは別に管理用メモリを備え、複数の可変長デ−タを記憶する場合において、チェ−ンメモリ装置への書き込み時に、各可変長デ−タに対応して、可変長デ−タＩＤと、シ−ケンス番号と、最初のデ−タブロックが記憶されるアドレスとを管理用メモリに記憶する工程と、チェ−ンメモリ装置からの読み出し時に、管理用メモリを参照して、読み出す可変長デ−タの最初のデ−タブロックを読み出す工程とを有することを特徴とする。
【００１６】
また、本発明にかかるチェ−ンメモリ装置は、記録するバルクデ−タを、複数のデ−タブロックに分割し、チェ−ン方式で順次繋いで記憶部に記録する書き込み回路と、記憶部から複数のデ−タブロックを順次読み出す読み出し回路とを備えるチェ−ンメモリ装置であって、書き込み回路は、デ−タブロックに対して各々、次に繋がるデ−タブロックが記録される記憶部のアドレスを付与するポインタ付与部と、デ−タブロックごとにバルクデ−タに対応して同一の識別ＩＤを付与するＩＤ付与部と、デ−タブロックごとにバルクデ−タの分割順に対応して所定の順序でシ−ケンス番号を付与するシ−ケンス番号付与部とを備え、読み出し回路は、記憶部から読み出したデ−タブロックのポインタを検出するポインタ検出部と、記憶部から読み出したデ−タブロックの同一の識別ＩＤを検出するＩＤ検出部と、記憶部から読み出したデ−タブロックの所定の順序のシ−ケンス番号を検出するシ−ケンス番号検出部とを備えることを特徴とする。
【００１７】
また、本発明にかかるチェ−ンメモリ装置は、好ましくは記録するバルクデ−タに対応するデ−タブロックの可変長デ−タＩＤと、所望のバルクデ−タに対応する最初のデ−タブロックが記憶される記憶部のアドレスと、最初のデ−タブロックのシ−ケンス番号とを記憶する管理用メモリを備えることを特徴とする。
【００１８】
また、本発明にかかるチェ−ンメモリ装置は、さらに好ましくは書き込み回路が、デ−タブロックが記録されるアドレスに対応する記憶部が使用中であることを示す使用中判定番号を、デ−タブロックごとに付与する使用中判定番号付与部を備え、読み出し回路は、使用中判定番号を、読み出し時にデ−タブロックごとに検出する使用中判定番号検出部を備えることを特徴とする。
【００１９】
また、本発明にかかるチェ−ンメモリ装置は、さらに好ましくは記録するデ−タブロックの異常を知らせるアラ−ム出力部を備え、読み出し回路は、読み出した同一のバルクデ−タに対応するデ−タブロックの可変長ＩＤが同一でない場合、又は読み出したデ−タブロックのシ−ケンス番号の順序が適当でない場合に、アラ−ム出力部にアラ−ムを出力させることを特徴とする。
【発明の効果】
【００２０】
本発明により、デ−タの異常を効率良く、また信頼性高く正確に検出できるチェ−ンメモリ装置及びチェ−ンメモリ装置の管理方法とできる。
【発明を実施するための最良の形態】
【００２１】
以下、図面に基づいて実施形態について説明する。
【００２２】
図１（ａ）は、記憶装置の典型例として、バッファメモリ等に用いるＲＡＭ１０のアドレス構造を模式的に示すものである。
【００２３】
図１において、ＲＡＭ１０はアドレス＃１からアドレス＃２０まで、２０個の領域１０＃１〜１０＃２０を有する。各領域１０＃１〜１０＃２０は、各々固有のアドレス＃１〜＃２０を有し、各領域１０＃１〜１０＃２０ごとに独立して所望のデ−タを格納し、また読み出しできる構成となる。
【００２４】
例えば、ＲＡＭ１０をチェ−ンメモリとして用いる場合、有効なデ−タのない空き領域が、１０＃１、１０＃６、１０＃１９であれば、図１（ｂ）に示す格納対象となる所望のバルクデ−タ１１をアドレス＃１、＃６、＃１９に分割して格納することとなる。
【００２５】
バルクデ−タ１１は、上述のように大容量化の一途をたどり、必然的に分割してＲＡＭ１０に格納する機会が増加している。
【００２６】
図１（ｃ）は、バルクデ−タ１１をＲＡＭ１０に分割して格納したチェ−ンメモリの各分割デ−タの繋ぎ状況を概念的に示すものである。
【００２７】
この場合、バルクデ−タ１１を３つのデ−タブロック１２ａ、１２ｂ、１２ｃに分割して格納する。例えば、デ−タブロック１２ａは、ＲＡＭ１０のアドレス＃１（領域１０＃１に対応）に格納する。
【００２８】
また、デ−タブロック１２ｂは、ＲＡＭ１０のアドレス＃６（領域１０＃６に対応）に格納する。また、デ−タブロック１２ｃは、ＲＡＭ１０のアドレス＃１９（領域１０＃１９に対応）に格納する。各領域１０＃１、１０＃６、１０＃１９の記憶容量の合計は、バルクデ−タ１１のデ−タ容量に等しいか、バルクデ−タ１１のデ−タ容量より大きいものとなる。また、バルクデ−タ１１は、ＪＰＥＧ方式等による圧縮デ−タであってもよい。
【００２９】
各デ−タブロック１２ａ，１２ｂ，１２ｃは、伝達したいデ−タの中身で構成される本体１３ａ，１３ｂ，１３ｃと、例えばパリティビット等の管理情報から構成される付帯部１４ａ，１４ｂ，１４ｃとからなる。
【００３０】
従って、デ−タブロック１２ａは、デ−タの本体１３ａと管理情報の付帯部１４ａとから構成される。また、デ−タブロック１２ｂは、デ−タの本体１３ｂと管理情報の付帯部１４ｂとから構成される。また、デ−タブロック１２ｃは、デ−タの本体１３ｃと管理情報の付帯部１４ｃとから構成される。
【００３１】
付帯部１４ａ，１４ｂ，１４ｃが有する管理情報は、例えば１ビットで構成されるパリティビットの他に、例えば１バイトで構成されるポインタがある。これについて、図２及び図３を用いてさらに詳細に説明する。
【００３２】
図２は、デ−タブロック２０の構成の一例について模式的に示すものである。この図において、２１は、ＲＡＭ１０に格納するバルクデ−タ１１ごとに分別する可変長デ−タＩＤである。
【００３３】
また、２２はデ−タの本体であり、２３は、デ−タブロックの通し番号を示すシ−ケンス番号である。また、２４は、デ−タブロック２０の次に繋がるデ−タブロックが格納されるＲＡＭ１０のアドレスを示すポインタである。
【００３４】
デ−タブロック２０は、典型的には５バイト相当のメモリ領域とすることができる。また、可変長デ−タＩＤ２１は、例えば１バイト相当のメモリ領域とできる。
【００３５】
また、デ−タ本体２２は、例えば約３バイトの相当のメモリ領域とできる。また、シ−ケンス番号２３は、例えば１バイト相当のメモリ領域とできる。また、シ−ケンス番号２３は、例えば００〜０９までの通し番号を、チェ−ンの順に順次有することとしてもよい。
【００３６】
また、ポインタ２４は、１バイト相当のメモリ領域とできる。ポインタは、チェ−ンメモリには必須のメモリ領域であり、次に繋がるデ−タブロックの先頭番地を格納する。
【００３７】
デ−タを読み出す場合には、ポインタ２４を参照することで、いわばバルクデ−タ１１（全体デ−タ）の断片であるデ−タブロック２０が順次繋がり、数珠つなぎになることで、もとのバルクデ−タ１１に対応する全体デ−タとして復元され読み出し可能となる。
【００３８】
上述のようにデ−タブロック２０は、例えば５バイト相当のデ−タであり、デ−タ本体２２とは別に付帯部１４ａ，１４ｂ，１４ｃを有する。付帯部１４ａ，１４ｂ，１４ｃは、ＲＡＭ１０に格納される時に付与される可変長デ−タＩＤ２１、シ−ケンス番号２３、ポインタ２４から構成される。
【００３９】
これにより、デ−タブロック２０の読み出し時に、可変長デ−タＩＤ２１を検出して確認すれば、読み出したデ−タが正しいデ−タであるのかどうかが判断可能となる。
例えば、ポインタ２４の記憶デ−タに誤りがあり所望のバルクデ−タ１１とは無関係のアドレス（例えば＃５）のデ−タが読み出された場合には、可変長デ−タＩＤ２１が異なることとなるので、誤りを早期にかつ確実に検出可能となる。
【００４０】
また、デ−タブロック２０の読み出し時に、シ−ケンス番号２３を検出して確認すれば、読み出したデ−タが正しいデ−タであるのかどうかが判断可能となる。例えば、ポインタ２４の記憶デ−タに誤りがあり所望のバルクデ−タ１１とは無関係のアドレスのデ−タ（例えば＃５）が読み出された場合には、シ−ケンス番号２３が連続する値ではなくなり、誤りを早期にかつ確実に検出可能となる。
【００４１】
なお、可変長デ−タＩＤ２１は、デ−タブロック２０の先頭又は、先頭と共にデ−タ本体２２の後ろ側に、ポインタ２４やシ−ケンス番号２３に近接して設けることとしてもよい。
【００４２】
図３は、デ−タブロックの他の構成例を示すものである。この図において、デ−タブロック３０は、先頭から順に、可変長デ−タＩＤ３１とデ−タ本体３２と使用中判定番号３５とシ−ケンス番号３３とポインタ３４とを有する。
【００４３】
デ−タ本体３２は、記憶したいバルクデ−タ１１に対して所望の分割をして構成されるデ−タの中身である。
【００４４】
デ−タブロック３０は、デ−タブロック２０の構成に加えて、さらに使用中判定番号３５を有する。
【００４５】
使用中判定番号３５は、デ−タブロック３０が格納されるＲＡＭ１０の領域（例えば１０＃１９等）が、使用中であることを示すフラグである。使用中判定番号３５に立てるフラグとして、例えばデ−タ本体３２が空き領域であれば“０”とし、デ−タ本体３２が使用中（デ−タ満状態）であれば“１”としてもよい。
【００４６】
デ−タブロック３０は、使用中判定番号３５を有するので、読み出される際にチェックできる項目がさらに増えることとなり好ましい。
【００４７】
例えば、所望のバルクデ−タ１１に対応するデ−タブロック３０を順次読み出ししている時には、使用中判定番号３５には、使用中である“１”のフラグが立てられている状態が正常である。
【００４８】
しかし、何らかの異常発生により、使用中判定番号３５が空き状態のフラグ“０”であるデ−タブロックが読み出された場合には、フラグをモニタ−することで迅速に異常を検出できることとなる。
【００４９】
また、読み出しされた後等の不要なデ−タブロックの使用中判定番号３５には、順次空き状態を示す“０”を付与することで、空き領域のチェ−ンメモリを作成することとしてもよい。使用中判定番号３５は、例えば１ビット相当の記憶領域とすることができるが、これに限られず任意のデ−タ量としてもよい。
【００５０】
次に、デ−タブロック２０，３０をＲＡＭ１０に格納し、読み出しするチェ−ンメモリ装置の典型例について図４を用いて説明する。
【００５１】
図４は、チェ−ンメモリ装置４０の構成ブロックを概念的に示すものである。
【００５２】
チェ−ンメモリ装置４０は、ＲＡＭ１０に所望のデ−タを書き込み（格納）するための書き込み回路４１を備える。また、チェ−ンメモリ装置４０は、ＲＡＭ１０から所望のデ−タを読み出しするための読み出し回路４９を備える。
【００５３】
書き込み回路４１は、デ−タブロック３０に可変長デ−タＩＤ３１を付与するＩＤ付与部４２を備える。また、書き込み回路４１は、デ−タブロック３０にシ−ケンス番号３３を付与するシ−ケンス番号付与部４３を備える。
【００５４】
また、書き込み回路４１は、デ−タブロック３０にポインタ３４を付与するポインタ付与部４４を備える。また、書き込み回路４１は、デ−タブロック３０の使用中判定番号３５に使用中判定番号（フラグ）を付与する使用中判定番号付与部４５を備える。
【００５５】
また、書き込み回路４１は、パリティ付与部４６を備えることで、読み出し回路４９での読み出し時にパリティ長のチェックも行えるよう、デ−タブロック３０にパリティビットを設けて構成し、パリティ長を書き込むこととしてもよい。例えば、パリティビットは１ビットとしてデ−タブロック３０のポインタ３４の後ろ領域に有することとしてもよい。
【００５６】
また、書き込み回路４１は、不図示の書き込み回路用ＣＰＵ等により上述の処理を行える構成としてもよい。
【００５７】
読み出し回路４９は、デ−タブロック３０の読み出し時に可変長デ−タＩＤ３１を検出するＩＤ検出部４ａを備える。また、読み出し回路４９は、デ−タブロック３０の読み出し時にシ−ケンス番号３３を検出するシ−ケンス番号検出部４ｂを備える。
【００５８】
また、読み出し回路４９は、デ−タブロック３０の読み出し時にポインタ３４を検出するポインタ検出部４ｃを備える。ポインタ検出部４ｃで検出する、次のデ−タブロックのアドレスデ−タにより、読み出し回路４９は、ＲＡＭ１０の中に分割して格納されるデ−タの断片（デ−タブロック）を順次繋げ、所望のバルクデ−タを復元して読み出すことが可能となる。
【００５９】
また、読み出し回路４９は、デ−タブロック３０の使用中判定番号３５のフラグを検出する使用中判定番号検出部４ｄを備える。
【００６０】
また、読み出し回路４９は、パリティ検出部４ｅを備えることで、デ−タブロック３０の読み出し時にパリティ長のチェックも行えることとできる。
【００６１】
また、読み出し回路４９は、不図示の読み出し回路用ＣＰＵ等により上述の処理を行える構成としてもよい。
【００６２】
読み出し回路４９は、書き込み回路４１により付与された可変長デ−タＩＤ３１や使用中判定番号３５やシ−ケンス番号３３をデ−タブロック３０の読み出しと共に検出し、所望の値であるかどうかや所望の番号順序であるかどうかを確認する。これにより、デ−タブロックの異常が迅速に検出できるだけでなく、より高い確度で安定した異常の検出が可能となる。
【００６３】
また、読み出し回路４９は、上述の異常を検知した場合には、アラ−ム出力部４ｆを介してオペレ−タ等に注意喚起することとできる。アラ−ム出力部４ｆは、例えば不図示の表示画面やモニタ等への警告表示をすることとできる。また、アラ−ム出力部４ｆは、例えば不図示の警報装置により警告音を発報することとしてもよい。
【００６４】
チェ−ンメモリ装置４０は、ＲＡＭ１０とは別に、管理用メモリ４７を備える。管理用メモリ４７は、ＲＡＭを用いて構成してもよい。
【００６５】
管理用メモリ４７には、可変長デ−タテ−ブル４８が記録される。可変長デ−タテ−ブル４８について、図５を用いて以下に詳述する。
【００６６】
図５は、可変長デ−タテ−ブル４８の一例を示すものである。可変長デ−タテ−ブル４８は、ＲＡＭ１０に格納されているデ−タについて、そのデ−タごとに可変長デ−タＩＤ５１と最初のデ−タブロックポインタ５２とそのシ−ケンス番号５３と使用中判定番号５４とを関連付けた一覧表である。
【００６７】
図５において、可変長デ−タＩＤ５１は、１〜ＭまでのＭ種類となる。すなわち、Ｍ種類のバルクデ−タ１１が、ＲＡＭ１０に格納されていることとなる。可変長デ−タＩＤは、ＩＤ付与部４２により、バルクデ−タ１１のカテゴリ−ごと、用途ごと、種類ごと等に個別に付与される。
【００６８】
そして、その可変長デ−タＩＤ５１に対応するバルクデ−タ１１の最初のデ−タブロックが格納されるアドレス（例えば、＃１）が、ポインタ付与部４４から与えられると共に、可変長デ−タテ−ブル４８の最初のデ−タブロックポインタ５２に記録される。
【００６９】
また、最初のデ−タブロックに対してシ−ケンス番号付与部４３から与えられたシ−ケンス番号が、可変長デ−タテ−ブル４８のシ−ケンス番号５３に記録される。
【００７０】
また、デ−タが格納されるＲＡＭ１０の各領域が使用中（又は満状態）であることを示す使用中判定番号３５は、使用中判定番号付与部４５によりフラグが“１”とされるとともに可変長デ−タテ−ブル４８の使用中判定番号５４にフラグ“１”が記録される。
【００７１】
例えば、新たな書き込みデ−タが入力される場合、書き込み回路４１は、可変長デ−タテ−ブル４８の使用中判定番号５４が“０”とされるチェ−ンを用いてＲＡＭ１０に順次書き込むこととしてもよい。換言すれば、可変長デ−タテ−ブル４７の使用中判定番号５４が“０”とフラグ設定されるチェ−ンは、ＲＡＭ１０のいわゆる空き領域のチェ−ンとなる。
【００７２】
また、使用中判定番号５４が“０”とフラグ設定されたＲＡＭ領域を空き領域として、そのアドレスのみ順次チェ−ン化した空き領域テ−ブルを別途作成してもよい。
【００７３】
なお、管理用メモリ４７は、ＲＡＭ１０の一部として設けてもよく、また書き込み回路４１内や読み出し回路４９内に設けてもよい。
【００７４】
次に、チェ−ンメモリ装置４０の動作について、図６の動作フロ−を用いて説明する。
【００７５】
（ステップＳ６１）書き込み回路４１は、ＲＡＭ１０へのデ−タ書き込み指示があるかどうかを判断する。書き込み指示があれば、ステップ６２へと進み、書き込み指示がなければ、ステップ６７へと進む。
【００７６】
（ステップＳ６２）書き込み回路４１のＩＤ付与部４２は、可変長デ−タＩＤを生成し、書き込みデ−タに付与する。ＩＤ付与部４２は、可変長デ−タＩＤを書き込み対象となるバルクデ−タの用途や目的に対応して任意に付与してもよい。
【００７７】
また、予め書き込むデ−タの種類等と可変長デ−タＩＤとが定義付けされたテ−ブルを別途書き込み回路４１等に備えておき、このテ−ブルを参照することで、書き込み対象となるデ−タに該当する可変長デ−タＩＤを、テ−ブルから選択して付与してもよい。ＩＤ番号は、Ｍビットの整数としてもよい。
【００７８】
（ステップＳ６３）ポインタ付与部４４は、次に繋がるデ−タブロックのアドレスを生成し、付与する。ポインタ付与部４４は、ＲＡＭ１０の空き領域から書き込もうとするデ−タブロックの容量に対応する領域を適宜選択し、そのアドレスを付与することとしてもよい。
【００７９】
（ステップＳ６４）シ−ケンス番号付与部４３は、所望の数のデ−タブロックに分割された各デ−タブロックに対し、順次、通し番号等を付与する。シ−ケンス番号付与部４３は、ＲＡＭ１０に格納されるすべてのデ−タブロックに対する通し番号を付与してもよい。また、シ−ケンス番号付与部４３は、ＲＡＭに格納されるデ−タブロックのうち、現在書き込もうとするバルクデ−タを構成する各デ−タブロックについて、例えば“００“〜“０９“等の通し番号を付与してもよい。
【００８０】
また、シ−ケンス番号は、Ｎビットの整数（Ｎ＞１）としてもよく、１つのデ−タブロックをＲＡＭ１０に書き込むごとに、例えば＋１してもよい。シ−ケンス番号がオ−バ−フロ−した場合には、０に戻り新たにカウントを開始してもよい。
【００８１】
（ステップ６５）使用中判定番号付与部４５は、書き込み対象となるデ−タブロック３０の使用中判定番号３５にフラグ“１”を設定する。この設定により、使用中判定番号検出部４ｄは、このデ−タブロック３０が格納されるＲＡＭ１０の対応領域は、有効なデ−タの格納領域として使用中であると認識できる。
【００８２】
一方、デ−タブロックに対応するＲＡＭ１０の領域に何らかのデ−タが格納されていたとしても、使用中判定番号３５のフラグが“０”であれば、そのデ−タブロックに対応するＲＡＭ１０の領域は、有効なデ−タではなく空き領域として使用可能であることを意味する。
【００８３】
（ステップ６６）書き込み回路４１は、管理用メモリ４７にアクセスし、可変長デ−タテ−ブル４７に、管理上必要なデ−タを書き込む。書き込み回路４１は、管理用メモリ４７へのアクセスと共に、あるいはそれに連続してＲＡＭ１０にデ−タブロックを順次書き込むこととしてもよい。
【００８４】
書き込み回路４１が、可変長デ−タテ−ブル４７に書き込むデ−タは、典型的には、可変長デ−タＩＤ５１や最初のデ−タブロックポインタ５２やシ−ケンス番号５３や使用中判定番号５４であるが、これに以外のデ−タを記録しても良くこれに限られることはない。
【００８５】
（ステップ６７）読み出し回路４９は、上位の制御演算装置（中央ＣＰＵ）等からの読み出し指示があるかないかを判断する。ＲＡＭ１０のデ−タ読み出し指示があれば、ステップ６８へと進みＲＡＭ１０のデ−タ読み出し指示がなければステップ６１へと戻る。
【００８６】
（ステップ６８）読み出し回路４９は、管理用メモリ４７の可変長デ−タテ−ブル４７を参照し、読み出し対象となるバルクデ−タの可変長デ−タＩＤ５１を確認する。また、対応する最初のデ−タブロックが格納されているＲＡＭ１０のアドレスを、最初のデ−タブロックポインタ５２から読み出す。また、対応する最初のデ−タブロックのシ−ケンス番号５３や使用中判定番号５４のフラグを確認する。
【００８７】
この動作により、読み出し回路４９は、ＲＡＭ１０から例えばシリアル接続、バス接続等を介して読み出し対象となるデ−タブロックを順次読み出し可能となる。
【００８８】
（ステップ６９）ポインタ検出部４ｃは、読み出し回路４９がＲＡＭ１０から順次読み出す各デ−タブロックから、次のデ−タブロックが格納されているアドレスを示すポインタ３４を順次検出する。読み出し回路４９は、検出したアドレスを手掛かりとして次のデ−タブロックをＲＡＭ１０から読み出すこととなる。
【００８９】
（ステップ６ａ）使用中判定番号検出部４ｄは、読み出したデ−タブロックの使用中判定番号３４のフラグが“１”であるかどうかを検出する。読み出すデ−タブロックは、有用なデ−タとして使用中である“１”のフラグが立っているのが正常となる。
【００９０】
（ステップ６ｂ）ＩＤ検出部４ａは、読み出し回路４９が読み出したデ−タブロックの可変長デ−タＩＤ３１を検出する。可変長デ−タＩＤ３１は、ＲＡＭ１０に格納されているバルクデ−タごとに固有の値として、ＩＤ付与部４２から与えられる。従って、読み出し対象となるデ−タに対応する各デ−タブロック間では、同一のＩＤとなるのが正常である。
【００９１】
（ステップ６ｃ）シ−ケンス番号検出部４ｂは、読み出し回路４９が読み出したデ−タブロックのシ−ケンス番号３３を検出する。シ−ケンス番号３３は、シ−ケンス番号付与部４３によりデ−タブロックの通し番号としてデ−タブロックごとに固有の値が与えられる。従って、シ−ケンス番号３３は、例えば１，２，３，・・という具合にチェ−ンの順に従って順次所望の配列となるのが正常である。典型的には、シ−ケンス番号検出部４ｂは、読み出した複数のデ−タブロックの間で、シ−ケンス番号が順次＋１の通し番号（連番）の関係となっているかどうかを確認する。
【００９２】
（ステップ６ｄ）読み出し回路４９は、図示しない読み出し回路用ＣＰＵ等により、上述のステップＳ６ａ〜Ｓ６ｃで検出した番号等が正常であるかどうかを判断する。使用中判定番号３５が異常な場合とは、典型的には空き領域ではないのに、読み出したデ−タブロックのフラグが“０”となっている場合である。
【００９３】
可変長デ−タＩＤ３１が異常な場合とは、典型的には読み出し対象となるバルクデ−タに対応する同一のＩＤを、読み出したデ−タブロックが有していない場合である。
【００９４】
シ−ケンス番号３３が異常な場合とは、典型的には順次読み出したデ−タブロックのシ−ケンス番号が、通し番号として所望の順序の配列となっていない場合である。
【００９５】
読み出し回路４９は、検出値等に異常があればステップ６ｅへと進み、検出値等に異常がなければステップ６ｆに進む。
【００９６】
（ステップ６ｅ）読み出し回路４９は、ステップ６ｄで異常があればアラ−ム出力部４ｆにより警告音の発報等のアラ−ム動作を行う。また、可変長デ−タテ−ブル４７の対応する使用中判定番号５４を、フラグ“０”に設定する。
【００９７】
（ステップ６ｆ）読み出し回路４９は、読み出し対象のバルクデ−タに対応する全てのデ−タブロックをＲＡＭ１０から読み出せば、読み出し完了となる。
【００９８】
上述のステップ６ｅにおいてアラ−ムの発報としたがこれに限られず、例えば異常のあるデ−タに対応する全デ−タブロックの使用中判定番号３５のフラグを“０”とする動作処理としてもよい。これにより、ポインタの誤り等により誤ったチェ−ンとなったデ−タに対応するＲＡＭ１０の記憶領域を、空き領域として新たなデ−タの記録を行うこととしてもよい。
【００９９】
ポインタ等の誤りにより繋がらなくなったデ−タは、最早デ−タの断片であって有用でない場合も多い。このような有用でないデ−タが格納される領域についてＲＡＭ１０は、フラグ“０”により空き領域と認識可能なので、ＲＡＭ１０の記憶容量を高効率で利用可能とできる。
【０１００】
また、ＲＡＭ１０は、例えば可変長デ−タを５バイトずつの任意の数のデ−タブロックとして任意の領域に格納できることとしてもよい。また、５バイトに限られず任意の数バイト又は、領域ごとの可変バイトのデ−タブロックとしてデ−タを格納してもよい。例えば、可変長デ−タＩＤ２１，３１やシ−ケンス番号２３，３３等の付帯部１４に２バイト要する場合には付帯部１４を減算し、本体１３が３バイト相当ずつのデ−タブロックとしてもよい。
また、シ−ケンス番号３３は、可変長デ−タＩＤごとに個別の通し番号としてもよいし、ＲＡＭ１０に格納されている全デ−タブロックについて一連の通し番号としてもよい。
【０１０１】
また、チェ−ンメモリ装置４０は、ＲＡＭ１０の空き領域のポインタのみ順次チェ−ンで繋いだテ−ブルを格納する記憶装置を別途備えても良い。そして、ステップ６ｄで異常のあるデ−タに対応するデ−タブロックを、空き領域ポインタのチェ−ンメモリに加える動作処理としてもよい。
【０１０２】
チェ−ンメモリ装置４０は、チェ−ンメモリのデ−タ読み出し段階で早期に異常検出可能であるので、デ−タ異常による障害への対応を早期に行え、損害を最小限に抑えることが可能となる。また、異常の発生したデ−タを適確に検出できるので、対応するデ−タが格納されるＲＡＭ１０の領域を空き領域とし、記憶領域の減少を抑止可能となる。
【０１０３】
この実施形態にかかるチェ−ンメモリ装置４０は、その構成と動作を自明な範囲で適宜変更して用いてもよい。
【産業上の利用可能性】
【０１０４】
本発明は、多量のデ−タを送受信等する際に用いるバッファメモリや各種記憶装置、チェ−ン方式の各種メモリ装置に適用可能である。
【図面の簡単な説明】
【０１０５】
【図１】（ａ）ＲＡＭのアドレス構造、（ｂ）バルクデ−タ、（ｃ）チェ−ンメモリの繋ぎ概念図
【図２】デ−タブロックの構成例
【図３】デ−タブロックの他の構成例
【図４】チェ−ンメモリ装置の構成概念図
【図５】可変長デ−タテ−ブルの一例
【図６】チェ−ンメモリ装置の動作フロ−概要図
【図７】従来のチェ−ンメモリ構成例
【符号の説明】
【０１０６】
１０・・ＲＡＭ、１１・・バルクデ−タ、１２・・デ−タブロック、１３・・本体、１４・・付帯部、２１・・可変長デ−タＩＤ、２３・・シ−ケンス番号、２４・・ポインタ、３５・・使用中判定番号
【図１】
2009042895.tif 000003
【図２】
2009042895.tif 000004
【図３】
2009042895.tif 000005
【図４】
2009042895.tif 000006
【図５】
2009042895.tif 000007
【図６】
2009042895.tif 000008
【図７】
2009042895.tif 000009