(57)【要約】【課題】非同期のクロック信号を用いてデータの書き込みおよび読み出しを行う際に、書き込みおよび読み出しの許可／禁止を外部に通知するための信号にスパイクが発生することを防止できるデータバッファ装置を提供する。【解決手段】書き込みおよび読み出しの許可／禁止は、フラグ信号Ｆ１、Ｆ２、ＵＦ１、ＵＦ２の状態に応じて決定される。入力データＤＩがクロック信号ＣＫ１に同期してフリップフロップ１０７に書き込まれる時、フラグ信号Ｆ１の値が反転する。これに応じて、信号Ｆ１をクロック信号ＣＫ２に同期化した信号ＵＦ１が反転すると、読み出し許可信号ＲＯはハイレベルに変化する。また、記憶データＤＯがクロック信号ＣＫ２に同期して読み出される時、フラグ信号Ｆ２の値が反転する。これに応じて、信号Ｆ２をクロック信号ＣＫ１に同期化した信号ＵＦ１が反転すると、書き込み許可信号ＷＯはハイレベルに変化する。【選択図】      図１
2004295819.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータを第１のクロック信号に同期して記憶する記憶手段と、
第１のフラグ信号を保持する第１のフラグ信号保持手段と、
第２のフラグ信号を保持する第２のフラグ信号保持手段と、
上記記憶手段において上記データ書き込みが行われる場合、上記第１のフラグ信号保持手段に保持される第１のフラグ信号を変更する第１の信号変更手段と、
上記第１のフラグ信号保持手段に保持される第１のフラグ信号を、第２のクロック信号に同期化した第１の同期化フラグ信号に変換する第１の同期化手段と、
上記第１の同期化フラグ信号の変更を検出した場合、上記読み出し許可信号を出力し、当該読み出し許可信号の出力中に上記第２のクロック信号に同期して上記記憶手段からデータが読み出される場合、当該読み出し許可信号の出力を停止する読み出し許可信号出力手段と、
上記記憶手段において上記データ読み出しが行われる場合、上記第２のフラグ信号保持手段に保持される第２のフラグ信号を変更する第２の信号変更手段と、
上記第２のフラグ信号保持手段に保持される第２のフラグ信号を、上記第１のクロック信号に同期化した第２の同期化フラグ信号に変換する第２の同期化手段と、
上記第２の同期化フラグ信号の変更を検出した場合、上記書き込み許可信号を出力し、上記記憶手段において上記データ書き込みが行われる場合、当該書き込み許可信号の出力を停止する書き込み許可信号出力手段とを有し、
上記記憶手段は、上記書き込み許可信号出力手段から書き込み許可信号が出力される場合に上記データ書き込みを行う、
データバッファ装置。
【請求項２】
上記第１の信号変更手段および上記第２の信号変更手段は、変更対象のフラグ信号を、異なる２種類の信号の一方から他方へ変更し、
上記読み出し許可信号出力手段は、上記第２のフラグ信号保持手段に保持される第２のフラグ信号と、上記第１の同期化手段から出力される第１の同期化フラグ信号とを比較する第１の比較手段を含み、
上記書き込み許可信号出力手段は、上記第１のフラグ信号保持手段に保持される第１のフラグ信号と、上記第２の同期化手段から出力される第２の同期化フラグ信号とを比較する第２の比較手段を含む、
請求項１に記載のデータバッファ装置。
【請求項３】
上記読み出し許可信号出力手段は、
上記記憶手段からデータが読み出される場合、上記第２のクロック信号に同期して、上記第１の同期化手段から出力される第１の同期化フラグ信号を保持する第１の信号保持手段と、
上記第１の信号保持手段に保持される第１の同期化フラグ信号と、上記第１の同期化手段から出力される第１の同期化フラグ信号とを比較する第３の比較手段とを含み、
上記書き込み許可信号出力手段は、
上記記憶手段からデータが読み出される場合、上記第１のクロック信号に同期して、上記第２の同期化手段から出力される第２の同期化フラグ信号を保持する第２の信号保持手段と、
上記第２の信号保持手段に保持される第２の同期化フラグ信号と、上記第２の同期化手段から出力される第２の同期化フラグ信号とを比較する第４の比較手段とを含む、
請求項１に記載のデータバッファ装置。
【請求項４】
上記記憶手段、上記第１のフラグ信号保持手段、上記第２のフラグ信号保持手段、上記第１の同期化手段、上記第２の同期化手段、上記第１の信号変更手段、上記読み出し許可信号出力手段、上記第２の信号変更検出手段、および上記書き込み許可信号出力手段をそれぞれ含んだ複数のバッファユニットと、
上記複数のバッファユニットの中から、書き込み対象のバッファユニットを指示する書き込み指示手段と、
上記複数のバッファユニットの中から、読み出し対象のバッファユニットを指示する読み出し指示手段と、
上記書き込み指示手段において指示されたバッファユニットから出力される書き込み許可信号を選択して出力する第１の選択手段と、
上記読み出し指示手段において指示されたバッファユニットから出力される読み出し許可信号を選択して出力する第２の選択手段と、
上記読み出し指示手段において指示されたバッファユニットの記憶装置に記憶されたデータを選択して出力する第３の選択手段とを有し、
上記記憶手段は、所属するバッファユニットが上記書き込み指示手段において指示されない場合にデータの書き込みを禁止し、
上記第２の信号変更手段は、所属するバッファユニットの記憶装置に記憶されたデータが上記第３の選択手段において選択されない場合に、上記第２のフラグ信号の変更を禁止する、
請求項１に記載のデータバッファ装置。
【請求項５】
上記書き込み指示手段は、初期状態において所定のユニットを指示し、指示したユニットの記憶手段において上記データの書き込みが行われるたびに、上記複数のユニットに設定された所定の順序に従って、指示対象を変更し、上記所定の順序における末尾のユニットの記憶手段において上記データの書き込みが行われる場合は、上記所定の順序における先頭のユニットへ指示対象を変更し、
上記読み出し指示手段は、上記初期状態において上記所定のユニットを指示し、指示したユニットの記憶手段において上記データの読み出しが行われるたびに、上記所定の順序に従って指示対象を変更し、上記所定の順序における末尾のユニットの記憶手段において上記データの読み出しが行われる場合は、上記所定の順序における先頭のユニットへ指示対象を変更する、
請求項４に記載のデータバッファ装置。
【請求項６】
上記書き込み指示手段は、指示したユニットの記憶手段において上記データの書き込みが行われるたびに、上記複数のユニットに設定された所定の順序に従って指示対象を変更し、指示したユニットの記憶手段において上記データの読み出しが行われるたびに、当該読み出しが行われたユニットへ指示対象を変更し、
上記読み出し指示手段は、指示したユニットの記憶手段において上記データの書き込みが行われるたびに、当該書き込みが行われたユニットへ指示対象を変更し、指示したユニットの記憶手段において上記データの読み出しが行われるたびに、上記所定の順序とは逆の順序に従って指示対象を変更する、
請求項４に記載のデータバッファ装置。
【請求項７】
上記第１の同期化手段は、
初段に入力される上記第１のフラグ信号を、上記第２のクロック信号に同期して順次後段にシフトさせ、終段から上記第１の同期化信号を出力する、複数の縦続接続された信号保持手段を含み、
上記第２の同期化手段は、
初段に入力される上記第２のフラグ信号を、上記第１のクロック信号に同期して順次後段にシフトさせ、終段から上記第２の同期化信号を出力する、複数の縦続接続された信号保持手段を含む、
請求項４に記載のデータバッファ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、互いに独立したクロック信号を用いてデータの書き込みおよび読み出しを行うことができるデータバッファ装置に関し、たとえば、非同期のＦＩＦＯ型データバッファ装置や、非同期のＦＩＬＯ型データバッファ装置に関するものである。
【０００２】
【従来の技術】
一般に、ＦＩＦＯ型のデータバッファ装置（以降、ＦＩＦＯと表記する）は、内部の状態を外部回路に知らせるための２つのフラグ信号を出力する。１つはフル・フラグ（ｆｕｌｌ  ｆｌａｇ）と呼ばれ、書き込みデータによって記憶領域が満杯になっている状態（以降、フル状態と表記する）を示す。他の１つはエンプティ・フラグ（ｅｍｐｔｙ  ｆｌａｇ）と呼ばれ、記憶領域に未読の書き込みデータが存在しない状態（以降、エンプティ状態と表記する）を示す。
【０００３】
フル・フラグが有効な場合、データの上書きを防止するため、ＦＩＦＯに対するデータの書き込みは許可されず、フル・フラグが無効の場合に書き込みは許可される。また、エンプティ・フラグが有効の場合、読み出すべきデータが記憶領域に存在しないため、ＦＩＦＯからのデータの読み出しは許可されず、エンプティ・フラグが無効の場合に読み出しは許可される。
このように、外部回路からＦＩＦＯを見た場合、ＦＩＦＯが生成するフル／エンプティ・フラグはその状態を知るための唯一の情報であることから、ＦＩＦＯの正常な動作においてフル／エンプティ・フラグの働きは重要である。
【０００４】
通常、ＦＩＦＯの先入れ先だし動作は、データの書き込みアドレスを指す書き込みポインタＷＰ（ｗｒｉｔｅ  ｐｏｉｎｔｅｒ）と、データの読み出しアドレスを指す読み出しポインタＲＰ（ｒｅａｄ  ｐｏｉｎｔｅｒ）とを用いて制御される。上述のフル／エンプティ・フラグは、この書き込みポインタＷＰと読み出しポインタＲＰとを用いて生成される。
【０００５】
書き込みと読み出しが共通のクロック信号に同期して行われる同期ＦＩＦＯの場合、書き込みポインタＷＰおよび読み出しポインタＲＰは共通のクロック信号に同期して更新されるため、フル／エンプティ・フラグもこの共通のクロック信号に同期して生成される。
【０００６】
これに対し、互いに独立したクロック信号を用いてデータの書き込みおよび読み出しを行うことができる非同期ＦＩＦＯの場合、書き込みポインタＷＰおよび読み出しポインタＲＰは異なるクロック信号に同期して更新される。すなわち、書き込みポインタＷＰおよび読み出しポインタＲＰはそれぞれ任意のタイミングで独立に更新される。このため、これらのフラグに応じて生成されるフル／エンプティ・フラグには、時間幅の狭いパルス（スパイク）が含まれる可能性がある。外部回路は、フル／エンプティ・フラグの状態を見ながらＦＩＦＯとデータの受渡しを行うので、これらのフラグにスパイクが含まれると、データの授受に誤動作を生じる可能性がある。
【０００７】
たとえば、残り１ワードのデータでＦＩＦＯがフル状態になる場合において読み出しと書き込みが同時に実行されると、フル・フラグにスパイクが乗る可能性がある。また、有効データが１ワードだけ存在する場合において読み出しと書き込みが同時に実行されると、エンプティ・フラグにスパイクが乗る可能性がある。
【０００８】
このような非同期ＦＩＦＯにおけるフル／エンプティ・フラグのスパイクを防止する手法として、特許文献１に記載された従来技術が存在する。
特許文献１に記載された非同期ＦＩＦＯでは、ＦＩＦＯ内の有効データの有無がトークン信号によって表されており、フル／エンプティ・フラグはこのトークン信号を用いて生成される。
【０００９】
【特許文献１】
特許第３０１３８００号
【００１０】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載された非同期ＦＩＦＯでは、トークン信号を伝播するための回路として、ＦＩＦＯの記憶容量（図１の例では４ワード）に相当する段数のユニット（１−１９〜１−２２）を設ける必要がある。特許文献１の図２に示すように、このユニット内を伝播するトークン信号は複数のゲート回路を通過するため、ＦＩＦＯの記憶容量に比例してユニット数が増えると、トークン信号の伝播遅延が増大する。
【００１１】
すなわち、特許文献１に記載された手法では、エンプティ状態でデータが書き込まれてから読み出し可能になるまでの遅延時間や、フル状態でデータが読み出されてから書き込み可能になるまでの遅延時間が、ＦＩＦＯの記憶容量に比例して長くなってしまう不利益が生じる。特に記憶容量の大きなＦＩＦＯでは、レイテンシの面において性能の劣化が著しくなる。
【００１２】
本発明はかかる事情に鑑みてなされたものであり、その目的は、互いに独立したクロック信号を用いてデータの書き込みおよび読み出しを行う場合において、書き込み許可信号および読み出し許可信号にスパイクが発生することを防止でき、また、書き込み許可信号および読み出し許可信号の生成に要する遅延時間が記憶容量の増加にともなって長くなることを防止できるデータバッファ装置を提供することにある。
【００１３】
【課題を解決するための手段】
上記の目的を達成するため、本発明のデータバッファ装置は、入力されるデータを第１のクロック信号に同期して記憶する記憶手段と、第１のフラグ信号を保持する第１のフラグ信号保持手段と、第２のフラグ信号を保持する第２のフラグ信号保持手段と、記憶手段において上記データ書き込みが行われる場合、第１のフラグ信号保持手段に保持される第１のフラグ信号を変更する第１の信号変更手段と、第１のフラグ信号保持手段に保持される第１のフラグ信号を、第２のクロック信号に同期化した第１の同期化フラグ信号に変換する第１の同期化手段と、第１の同期化フラグ信号の変更を検出した場合、読み出し許可信号を出力し、この読み出し許可信号の出力中に第２のクロック信号に同期して記憶手段からデータが読み出される場合、読み出し許可信号の出力を停止する読み出し許可信号出力手段と、記憶手段において上記データ読み出しが行われる場合、第２のフラグ信号保持手段に保持される第２のフラグ信号を変更する第２の信号変更手段と、第２のフラグ信号保持手段に保持される第２のフラグ信号を、第１のクロック信号に同期化した第２の同期化フラグ信号に変換する第２の同期化手段と、第２の同期化フラグ信号の変更を検出した場合、書き込み許可信号を出力し、記憶手段において上記データ書き込みが行われる場合、書き込み許可信号の出力を停止する書き込み許可信号出力手段とを有する。記憶手段は、書き込み許可信号出力手段から書き込み許可信号が出力される場合に、上記データ書き込みを行う。
【００１４】
本発明のデータバッファ装置によれば、書き込み許可信号が記憶手段に入力されると、第１のクロック信号に同期して、入力データが記憶手段に記憶される。記憶手段において上記データ書き込みが行われると、第１の信号変更手段において、第１のフラグ信号保持手段に保持される第１のフラグ信号が変更される。変更された第１のフラグ信号は、第１の同期化手段において、第２のクロック信号に同期化した第１の同期化フラグ信号に変換される。第１の同期化フラグ信号の変更が読み出し許可信号出力手段において検出されると、読み出し許可信号出力手段から読み出し許可信号が出力される。読み出し許可信号の出力中に、第２のクロック信号に同期して記憶手段からデータが読み出されると、読み出し許可信号出力手段からの読み出し許可信号の出力が停止される。
記憶手段において上記データ読み出しが行われると、第２の信号変更手段において、第２のフラグ信号保持手段に保持される第２のフラグ信号が変更される。変更された第２のフラグ信号は、第２の同期化手段において、第１のクロック信号に同期化した第２の同期化フラグ信号に変換される。第２の同期化フラグ信号の変更が書き込み許可信号出力手段において検出されると、書き込み許可信号出力手段から書き込み許可信号が出力される。記憶手段において上記データ書き込みが行われると、書き込み許可手段からの書き込み許可信号の出力は停止される。
【００１５】
また、第１の観点のデータバッファ装置において、第１の信号変更手段および上記第２の信号変更手段は、変更対象のフラグ信号を、異なる２種類の信号の一方から他方へ変更しても良い。この場合、読み出し許可信号出力手段は、第２のフラグ信号保持手段に保持される第２のフラグ信号と、第１の同期化手段から出力される第１の同期化フラグ信号とを比較する第１の比較手段を含み、書き込み許可信号出力手段は、第１のフラグ信号保持手段に保持される第１のフラグ信号と、第２の同期化手段から出力される第２の同期化フラグ信号とを比較する第２の比較手段を含む。
【００１６】
【発明の実施の形態】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係るデータバッファ装置の構成の一例を示すブロック図である。
図１に示すデータバッファ装置は、バッファユニット１−０〜１−７と、書き込み指示部２と、読み出し指示部３と、デコード部４および５と、選択部６〜８と、ＡＮＤ回路９および１０とを有する。
バッファユニット１−０〜１−７は、本発明のバッファユニットの一実施形態である。
書き込み指示部２は、本発明の書き込み指示手段の一実施形態である。
読み出し指示部３は、本発明の読み出し指示手段の一実施形態である。
選択部６は、本発明の第１の選択手段の一実施形態である。
選択部７は、本発明の第２の選択手段の一実施形態である。
選択部８は、本発明の第３の選択手段の一実施形態である。
【００１７】
（バッファユニット１−ｎ）
バッファユニット１−ｎ（ｎは０から７までの整数を示す）は、入力データＤＩを記憶するための記憶部を有しており、この記憶部に未読のデータが記憶されていない場合、クロック信号ＣＫ１に同期して、データの書き込みが可能であることを示すハイレベルの書き込み許可信号ＷＯ［ｎ］を出力する。ハイレベルの書き込み許可信号ＷＯ［ｎ］を出力している期間において、入力される書き込み要求信号ＷＩおよび書き込みイネーブル信号ＷＥ［ｎ］が共にハイレベルの場合、バッファユニット１−ｎは、クロック信号ＣＫ１に同期して入力データＤＩを記憶部に書き込む。また、このデータ書き込み時において、書き込み許可信号ＷＯ［ｎ］をローレベルに変化させる。
【００１８】
一方、記憶部に未読のデータが書き込まれている場合、バッファユニット１−ｎは、クロック信号ＣＫ２に同期して、データの読み出しが可能であることを示すハイレベルの読み出し許可信号ＲＯ［ｎ］を出力する。ハイレベルの読み出し許可信号ＲＯ［ｎ］を出力している期間において、入力される読み出し要求信号ＲＩおよび読み出しイネーブル信号ＲＥ［ｎ］が共にハイレベルの場合、クロック信号ＣＫ２に同期して、記憶部に記憶されたデータの読み出しが行われる。このデータ読み出し時において、バッファユニット１−ｎは、読み出し許可信号ＲＯ［ｎ］をローレベルに変化させる。
【００１９】
図２は、バッファユニット１−ｎの構成の一例を示す回路図である。
図２に示すバッファユニット１−ｎは、フリップフロップ１０１〜１０７と、ＡＮＤ回路１１０〜１１３と、インバータ１２０および１２１と、排他的ＮＯＲ回路１３０と、排他的ＯＲ回路１３１とを有する。
フリップフロップ１０１は、本発明の第１のフラグ信号保持手段の一実施形態である。
フリップフロップ１０４は、本発明の第２のフラグ信号保持手段の一実施形態である。
ＡＮＤ回路１１０、１１１およびインバータ１２０を含むユニットは、本発明の第１の信号変更手段の一実施形態である。
フリップフロップ１０２および１０３は、本発明の第１の同期化手段の一実施形態である。
排他的ＯＲ回路１３１は、本発明の読み出し許可信号出力手段の一実施形態であるとともに、本発明の第１の比較手段の一実施形態である。
ＡＮＤ回路１１２、１１３およびインバータ１２１を含むユニットは、本発明の第２の信号変更手段の一実施形態である。
フリップフロップ１０５および１０６は、本発明の第２の同期化手段の一実施形態である。
排他的ＮＯＲ回路１３０は、本発明の書き込み許可信号出力手段の一実施形態であるとともに、本発明の第２の比較手段の一実施形態である。
【００２０】
ＡＮＤ回路１１０は、書き込み許可信号ＷＯ［ｎ］、書き込みイネーブル信号ＷＥ［ｎ］および書き込み要求信号ＷＩを入力し、この３つの入力信号の論理積を演算する。
ＡＮＤ回路１１１は、ＡＮＤ回路１１０の演算結果とクロック信号ＣＫ１とを入力し、この２つの入力信号の論理積を演算する。
【００２１】
フリップフロップ１０１は、自らの保持するフラグ信号Ｆ１がインバータ１２０において論理反転された信号を入力する。そして、この入力信号を、ＡＮＤ回路１１１を介して入力されるクロック信号ＣＫ１に同期して保持し、フラグ信号Ｆ１として出力する。
【００２２】
フリップフロップ１０２は、フリップフロップ１０１から出力されるフラグ信号Ｆ１を、クロック信号ＣＫ２に同期して保持する。
フリップフロップ１０３は、フリップフロップ１０２に保持された信号を、クロック信号ＣＫ２に同期して保持し、同期化フラグ信号ＵＦ１として出力する。
【００２３】
ＡＮＤ回路１１２は、読み出し許可信号ＲＯ［ｎ］、読み出しイネーブル信号ＲＥ［ｎ］および読み出し要求信号ＲＩを入力し、この３つの入力信号の論理積を演算する。
ＡＮＤ回路１１３は、ＡＮＤ回路１１２の演算結果とクロック信号ＣＫ２とを入力し、この２つの入力信号の論理積を演算する。
【００２４】
フリップフロップ１０４は、自らの保持するフラグ信号Ｆ２がインバータ１２１において論理反転された信号を入力する。そして、この入力信号を、ＡＮＤ回路１１３を介して入力されるクロック信号ＣＫ２に同期して保持し、フラグ信号Ｆ２として出力する。
【００２５】
フリップフロップ１０５は、フリップフロップ１０４から出力されるフラグ信号Ｆ２を、クロック信号ＣＫ１に同期して保持する。
フリップフロップ１０６は、フリップフロップ１０５に保持された信号を、クロック信号ＣＫ１に同期して保持し、同期化フラグ信号ＵＦ２として出力する。
【００２６】
排他的ＮＯＲ回路１３０は、フラグ信号Ｆ１と同期化フラグ信号ＵＦ２との排他的反転論理和を演算し、その演算結果を書き込み許可信号ＷＯ［ｎ］として出力する。
排他的ＯＲ回路１３１は、フラグ信号Ｆ２と同期化フラグ信号ＵＦ１との排他的論理和を演算し、その演算結果を読み出し許可信号ＲＯ［ｎ］として出力する。
【００２７】
フリップフロップ１０７は、ＡＮＤ回路１１１を介して入力されるクロック信号ＣＫ１に同期して、入力データＤＩを保持し、保持したデータを記憶データＤＯ［ｎ］として出力する。
【００２８】
（書き込み指示部２）
書き込み指示部２は、バッファユニット１−０〜１−７の中から、書き込み対象のバッファユニットを指示するための書き込みポインタＷＰを出力する。
選択部６から出力される書き込み許可信号ＷＯと書き込み要求信号ＷＩとがハイレベルとなり、この２つの信号の論理積としてＡＮＤ回路９から出力される信号ＷＸがハイレベルになる場合、書き込みポインタＷＰに指示されたバッファユニットに対し、クロック信号ＣＫ１に同期して入力データＤＩの書き込みが行われる。書き込み指示部２は、このデータの書き込みが行われるたびに、バッファユニット１−０，１−１，…，１−７の順序に従って、書き込みポインタＷＰの指示対象を変更する。この順序における末尾のバッファユニット１−７に対してデータの書き込みが行われる場合は、この順序における先頭のバッファユニット１−０へ指示対象を変更する。
【００２９】
図３は、書き込み指示部２の構成の一例を示す回路図である。
図３に示す書き込み指示部２は、ＡＮＤ回路２０１と、フリップフロップ２０２と、加算部２０３とを有する。
ＡＮＤ回路２０１は、ＡＮＤ回路９の出力信号ＷＸおよびクロック信号ＣＫ１を入力し、この２つの信号の論理積を演算する。
フリップフロップ２０２は、ＡＮＤ回路２０３を介して入力されるクロック信号ＣＫ１に同期して、加算部２０３の加算結果を保持し、保持した信号を書き込みポインタＷＰとして出力する。
加算部２０３は、フリップフロップ２０２に保持された書き込みポインタＷＰに値‘１’を加算する。加算部２０３は、たとえば３ビットの加算結果を出力する加算器であり、加算結果が２進数で‘１１１’の場合は、これに値‘１’を加算した結果として‘０００’を出力する。
【００３０】
上述した構成を有する書き込み指示部２によれば、ＡＮＤ回路９の出力信号ＷＸがローレベルの場合、ＡＮＤ回路２０１が遮断状態となり、フリップフロップ２０２に保持された書き込みポインタＷＰは変化しない。ＡＮＤ回路９の出力信号ＷＸがハイレベルになると、ＡＮＤ回路２０１が透過状態となり、フリップフロップ２０２に対してクロック信号ＣＫ１が供給される。これにより、クロック信号ＣＫ１に同期して、加算部２０３の加算結果がフリップフロップ２０２に保持され、書き込みポインタＷＰが更新される。更新後の書き込みポインタＷＰは、更新前の書き込みポインタＷＰに値‘１’が加算された値を有する。
【００３１】
（読み出し指示部３）
読み出し指示部３は、バッファユニット１−０〜１−７の中から、読み出し対象のバッファユニットを指示するための読み出しポインタＲＰを出力する。
選択部７から出力される読み出し許可信号ＲＯと読み出し要求信号ＲＩとがハイレベルとなり、この２つの信号の論理積としてＡＮＤ回路１０から出力される信号ＲＸがハイレベルになる場合、読み出しポインタＲＰに指示されたバッファユニットから、クロック信号ＣＫ２に同期してデータの読み出しが行われる。読み出し指示部３は、このデータの読み出しが行われるたびに、バッファユニット１−０，１−１，…，１−７の順序に従って、読み出しポインタＲＰの指示対象を変更する。この順序における末尾のバッファユニット１−７からデータの読み出しが行われる場合は、この順序における先頭のバッファユニット１−０へ指示対象を変更する。
【００３２】
読み出し指示部３は、たとえば図３に示す書き込み指示部２と同様な構成によって実現可能である。すなわち、ＡＮＤ回路２０１に対してＡＮＤ回路１０の出力信号ＲＸとクロック信号ＣＫ２とを入力することにより、フリップフロップ２０２の保持信号として読み出しポインタＲＰを得ることができる。
【００３３】
（デコード部４）
デコード部４は、書き込み指示部２において生成される書き込みポインタＷＰを、８ビットの書き込みイネーブル信号ＷＥ［７：０］へ変換する。
書き込みイネーブル信号ＷＥ［７：０］の各ビットの信号（ＷＥ［０］〜ＷＥ［７］）は、バッファユニット１−０〜１−７のそれぞれに対応しており、デコード部４は、これら８ビットの信号のうち、書き込みポインタＷＰに応じた１ビットの信号をハイレベル、残りの信号をローレベルに設定する。
【００３４】
（デコード部５）
デコード部５は、読み出し指示部３において生成される読み出しポインタＲＰを、８ビットの読み出しイネーブル信号ＲＥ［７：０］へ変換する。
読み出しイネーブル信号ＲＥ［７：０］の各ビットの信号（ＲＥ［０］〜ＲＥ［７］）は、バッファユニット１−０〜１−７のそれぞれに対応しており、デコード部５は、これら８ビットの信号のうち、読み出しポインタＲＰに応じた１ビットの信号をハイレベル、残りの信号をローレベルに設定する。
【００３５】
（選択部６）
選択部６は、バッファユニット１−０〜１−７から出力される書き込み許可信号ＷＯ［０］〜ＷＯ［７］のうち、書き込みイネーブル信号ＷＥ［７：０］に応じた１つの書き込み許可信号を選択して出力する。すなわち、８ビットの信号（ＷＥ［０］〜ＷＥ［７］）のうち、ハイレベルのビット信号に対応するバッファユニットからの書き込み許可信号を選択して出力する。
【００３６】
（選択部７）
選択部７は、バッファユニット１−０〜１−７から出力される読み出し許可信号ＲＯ［０］〜ＲＯ［７］のうち、読み出しイネーブル信号ＲＥ［７：０］に応じた１つの書き込み許可信号を選択して出力する。すなわち、８ビットの信号（ＲＥ［０］〜ＲＥ［７］）のうち、ハイレベルのビット信号に対応するバッファユニットからの読み出し許可信号を選択して出力する。
【００３７】
（選択部８）
選択部８は、バッファユニット１−０〜１−７に記憶されたデータＤＯ［０］〜ＤＯ［７］のうち、読み出しイネーブル信号ＲＥ［７：０］に応じた１つのデータを選択して出力する。すなわち、８ビットの信号（ＲＥ［０］〜ＲＥ［７］）のうち、ハイレベルのビット信号に対応するバッファユニットの記憶データを選択して出力する。
【００３８】
ここで、上述した構成を有する図１に示すデータバッファ装置の動作を説明する。
例として、初期状態における書き込みポインタＷＰおよび読み出しポインタＲＰの指示対象は、共にバッファユニット１−０に設定されるものとする。また、この初期状態において、全てのバッファユニット（１−０〜１−７）は書き込み許可状態にあるとともに、読み出し禁止状態にあるものとする。すなわち、書き込み許可信号ＷＯ［０］〜ＷＯ［７］は、書き込み許可を示すハイレベルになり、読み出し許可信号ＲＯ［０］〜ＲＯ［７］は、書き込み禁止を示すローレベルになるものとする。
【００３９】
この場合、デコード部４の出力において、書き込みイネーブル信号ＷＥ［０］がハイレベル、他の書き込みイネーブル信号ＷＥ［１］〜ＷＥ［７］がローレベルになり、選択部６ではバッファユニット１−０の書き込み許可信号ＷＯ［０］が選択されて出力される。このため、選択部６から出力される書き込み許可信号ＷＯはハイレベルになり、データバッファ装置に対するデータの書き込みが許可された状態となる。
また、デコード部５の出力において、読み出しイネーブル信号ＲＥ［０］がハイレベル、他の読み出し許可信号ＲＯ［１］〜ＲＯ［７］がローレベルになり、選択部７ではバッファユニット１−０の読み出し許可信号ＲＯ［０］が選択されて出力される。このため、選択部７から出力される読み出し許可信号ＲＯはローレベルになり、データバッファ装置は、データ読み出しが禁止されたエンプティ状態になる。
【００４０】
この初期状態において、ハイレベルの書き込み要求信号ＷＩが入力されると、クロック信号ＣＫ１に同期して、バッファユニット１−０に入力データＤＩが書き込まれるとともに、書き込み許可信号ＷＯ［０］がローレベルへ変化する。
また、このデータ書き込み時において、書き込みポインタＷＰの値がインクリメントされ、指示対象がバッファユニット１−１へ変更される。これにより、書き込みイネーブル信号ＷＥ［１］がハイレベル、他の書き込みイネーブル信号ＷＥ［０］，ＷＥ［２］〜ＷＥ［７］がローレベルになり、選択部６ではバッファユニット１−１の書き込み許可信号ＷＯ［１］が選択されて出力される。書き込み許可信号ＷＯ［１］はハイレベルであるため、データバッファ装置に対するデータの書き込みは引き続き許可された状態になる。
【００４１】
また、バッファユニット１−０に未読のデータＤＯ［０］が保持されることから、クロック信号ＣＫ２に同期して、読み出し許可信号ＲＯ［０］がハイレベルに変化する。これにより、選択部７から出力される読み出し許可信号ＲＯがハイレベルになり、データバッファ装置は読み出し許可状態になる。
【００４２】
バッファユニット１−０にデータが書き込まれた後、さらにハイレベルの書き込み要求信号ＷＩが入力されると、上述と同様に、クロック信号ＣＫ１に同期して、バッファユニット１−１，１−０，…１−７に入力データＤＩが順次書き込まれ、書き込み許可信号ＷＯ［１］〜ＷＯ［７］が順次ローレベルになる。また、クロック信号ＣＫ２に同期して、読み出し許可信号ＲＯ［１］〜ＲＯ［７］が順次ハイレベルになる。
【００４３】
仮に、データ読み出しが全く行われないままバッファユニット１−０〜１−７に対するデータ書き込みが行われると、書き込みポインタＷＰおよび読み出しポインタＲＰの指示対象が共にバッファユニット１−０になり、両者の指示対象が一致する。このとき、選択部６ではバッファユニット１−０の書き込み許可信号ＷＯ［０］が選択されて出力されるが、バッファユニット１−０ではデータ書き込みの後に読み出しが行われておらず、書き込み許可信号ＷＯ［０］がローレベルのままであるため、選択部６から出力される書き込み許可信号ＷＯはローレベルになる。すなわち、データバッファ装置は、データ書き込みが禁止されたフル状態になる。
フル状態になると、ハイレベルの書き込み要求信号ＷＩが入力されても書き込みポインタＷＰの指示対象に対してデータの書き込みが行われなくなり、書き込み指示対象の変更も行われなくなる。
【００４４】
こうしたフル状態は、書き込みポインタＷＰおよび読み出しポインタＲＰの指示対象であるバッファユニット１−０に対してデータ読み出しが行われることにより解消される。
すなわち、ハイレベルの読み出し許可信号ＲＯ［０］が選択部７において選択された状態で、ハイレベルの読み出し要求信号ＲＩが入力されると、クロック信号ＣＫ２に同期して、選択部８の出力データＤＯが図示しない後段の装置において読み出される。選択部８では、読み出しポインタＲＰで指示対象であるバッファユニット１−０の記憶データＤＯ［０］が選択されるため、後段の装置には、記憶データＤＯ［０］が読み込まれる。データ読み出しが行われると、クロック信号ＣＫ１に同期して、ローレベルの書き込み許可信号ＷＯ［０］が再びハイレベルに変化する。これにより、選択部６から出力される書き込み許可信号ＷＯがハイレベルになり、データバッファ装置のフル状態が解消されて、データ書き込みが可能になる。
【００４５】
また、仮に、バッファユニット１−０〜１−７に対するデータ書き込みが行われたあと、書き込みが停止されたまま、バッファユニット１−０〜１−７からのデータ読み出しが行われると、書き込みポインタＷＰおよび読み出しポインタＲＰの指示対象が共にバッファユニット１−０になり、両者の指示対象が一致する。このとき、選択部７ではバッファユニット１−０の読み出し許可信号ＲＯ［０］が選択されて出力されるが、バッファユニット１−０ではデータの読み出しの後に書き込みが行われておらず、読み出し許可信号ＲＯ［０］がローレベルのままであるため、選択部７から出力される読み出し許可信号ＲＯ［０］はローレベルになる。すなわち、データバッファ装置は、データ読み出しが禁止されたエンプティ状態になる。
エンプティ状態になると、ハイレベルの読み出し要求信号ＲＩが入力されても読み出しポインタＲＰの指示対象に対してデータの読み出しが行われなくなり、読み出し指示対象の変更も行われなくなる。
【００４６】
こうしたエンプティ状態は、書き込みポインタＷＰおよび読み出しポインタＲＰの指示対象であるバッファユニット１−０に対してデータ書き込みが行われることにより解消される。
すなわち、ハイレベルの書き込み許可信号ＷＯ［０］が選択部６において選択された状態で、ハイレベルの書き込み要求信号ＷＩが入力されると、クロック信号ＣＫ１に同期して、入力データＤＩがバッファユニット１−０に書き込まれる。データ書き込みが行われると、クロック信号ＣＫ２に同期して、ローレベルの読み出し許可信号ＲＯ［０］が再びハイレベルに変化する。これにより、選択部７から出力される読み出し許可信号ＲＯがハイレベルになり、データバッファ装置のエンプティ状態が解消されて、データ読み出しが可能になる。
【００４７】
このように、書き込みポインタＷＰによって指示されたバッファユニットに対しデータ書き込みが行われるたびに、書き込みポインタＷＰの指示対象は、バッファユニット１−０，１−１，…，１−７，１−０，１−１，…の順序で変更される。また、読み出しポインタＲＰによって指示されたバッファユニットに対しデータ読み出しが行われるたびに、読み出しポインタＷＰの指示対象は、書き込みポインタＷＰと同じ順序で変更される。
初期状態において、書き込みポインタＷＰおよび読み出しポインタＲＰが同一のバッファユニットを指示するものとすると、各バッファユニットに書き込まれるデータは、この書き込み順序と同一の順序で読み出される。すなわち、図１に示すデータバッファ装置においては、先に書き込まれたデータから順に読み出される、ＦＩＦＯ型のデータバッファ装置としての機能が実現される。
【００４８】
次に、各バッファユニットの動作について、図４の状態遷移図を参照しながら更に詳しく説明する。
図４は、図２に示すバッファユニット１−ｎにおけるフラグ信号（Ｆ１、Ｆ２）および同期化フラグ信号（ＵＦ１、ＵＦ２）の状態遷移の一例を示す図である。
【００４９】
状態ＳＴ１：
各バッファユニットは、初期状態において、この状態ＳＴ１に設定される。状態ＳＴ１では、図５（Ａ）に示すように、フリップフロップ１０１〜１０６の保持信号が全て値‘０’、すなわちローレベルに初期化される。
この場合、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致するため、排他的ＮＯＲ回路１３０から出力される書き込み許可信号ＷＯ［ｎ］は値‘１’、すなわちハイレベルになる。この状態ＳＴ１において、書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、選択部６から出力される書き込み許可信号ＷＯはハイレベルになり、データバッファ装置は書き込み許可状態となる。
また、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１の値が一致するため、排他的ＯＲ回路１３１から出力される読み出し許可信号ＲＯ［ｎ］は値‘０’、すなわちローレベルになる。この状態ＳＴ２において、読み出しポインタＲＰの指示対象がバッファユニット１−ｎに設定されると、選択部７から出力される読み出し許可信号ＲＯはローレベルになり、データバッファ装置は読み出し禁止状態になる。
書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定された状態で、ハイレベルの書き込み要求信号ＷＩが入力されると、クロック信号ＣＫ１に同期して、フリップフロップ１０７に入力データＤＩが保持される。また、このとき、フリップフロップ１０１に保持されたフラグ信号Ｆ１がローレベルからハイレベルに反転し、状態ＳＴ１から状態ＳＴ２への遷移が起こる。
【００５０】
状態ＳＴ２：
状態ＳＴ２においては、図５（Ｂ）に示すように、フリップフロップ１０１の保持信号がハイレベル、フリップフロップ１０２〜１０６の保持信号がローレベルになる。
この場合、フラグ信号Ｆ１がハイレベル、同期化フラグ信号ＵＦ２がローレベルになり、両者の値が一致しないため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。したがって、状態ＳＴ２において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み禁止状態になる。
また、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１の値が一致するため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。したがって、状態ＳＴ２において読み出しポインタＲＰがバッファユニット１−ｎに設定されると、データバッファ装置は読み出し禁止状態になる。
状態ＳＴ２への遷移が起こったあと、２サイクル分のクロック信号ＣＫ２が入力されると、フリップフロップ１０３に保持された同期化フラグ信号ＵＦ１がハイレベルに変化し、状態ＳＴ２から状態ＳＴ３への遷移が起こる。
【００５１】
状態ＳＴ３：
状態ＳＴ３においては、図５（Ｃ）に示すように、フリップフロップ１０１〜１０３の保持信号がハイレベル、フリップフロップ１０４〜１０６の保持信号がローレベルになる。
この場合、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致しないため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。したがって、状態ＳＴ３において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み禁止状態になる。
また、フラグ信号Ｆ２がローレベル、同期化フラグ信号ＵＦ１がハイレベルになり、両者の値が一致しないため、読み出し許可信号ＲＯ［ｎ］はハイレベルになる。したがって、状態ＳＴ３において読み出しポインタＲＰがバッファユニット１−ｎに設定されると、データバッファ装置は読み出し許可状態になる。
読み出しポインタＲＰの指示対象がバッファユニット１−ｎに設定された状態で、ハイレベルの読み出し要求信号ＲＩが入力されると、フリップフロップ１０７に保持されたデータＤＩは、クロック信号ＣＫ２に同期して、後段の装置に読み込まれる。このとき、フリップフロップ１０４に保持されたフラグ信号Ｆ２はローレベルからハイレベルに反転し、状態ＳＴ３から状態ＳＴ４への遷移が起こる。
【００５２】
状態ＳＴ４：
状態ＳＴ４においては、図５（Ｄ）に示すように、フリップフロップ１０１〜１０４の保持信号がハイレベル、フリップフロップ１０５および１０６の保持信号がローレベルになる。
この場合、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致しないため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。したがって、状態ＳＴ４において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み禁止状態になる。
また、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１がハイレベルになり、両者の値が一致するため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。したがって、状態ＳＴ４において読み出しポインタＲＰがバッファユニット１−ｎに設定されると、データバッファ装置は読み出し禁止状態になる。
状態ＳＴ４への遷移が起こったあと、２サイクル分のクロック信号ＣＫ１が入力されると、フリップフロップ１０６に保持された同期化フラグ信号ＵＦ２がハイレベルに変化し、状態ＳＴ４から状態ＳＴ５への遷移が起こる。
【００５３】
状態ＳＴ５：
状態ＳＴ５では、図６（Ａ）に示すように、フリップフロップ１０１〜１０６の保持信号が全てハイレベルになる。
この場合、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致するため、排他的ＮＯＲ回路１３０から出力される書き込み許可信号ＷＯ［ｎ］はハイレベルになる。したがって、状態ＳＴ５において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み許可状態となる。
また、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１の値が一致するため、排他的ＯＲ回路１３１から出力される読み出し許可信号ＲＯ［ｎ］はローレベルになる。したがって、状態ＳＴ５において、読み出しポインタＲＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は読み出し禁止状態になる。
書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定された状態で、ハイレベルの書き込み要求信号ＷＩが入力されると、クロック信号ＣＫ１に同期して、フリップフロップ１０７に新たな入力データＤＩが保持される。また、このとき、フリップフロップ１０１に保持されたフラグ信号Ｆ１がハイレベルからローレベルに反転し、状態ＳＴ５から状態ＳＴ６への遷移が起こる。
【００５４】
状態ＳＴ６：
状態ＳＴ６においては、図６（Ｂ）に示すように、フリップフロップ１０１の保持信号がローレベル、フリップフロップ１０２〜１０６の保持信号がハイレベルになる。
この場合、フラグ信号Ｆ１がローレベル、同期化フラグ信号ＵＦ２がハイレベルになり、両者の値が一致しないため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。したがって、状態ＳＴ６において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み禁止状態になる。
また、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１の値が一致するため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。したがって、状態ＳＴ６において読み出しポインタＲＰがバッファユニット１−ｎに設定されると、データバッファ装置は読み出し禁止状態になる。
状態ＳＴ６への遷移が起こったあと、２サイクル分のクロック信号ＣＫ２が入力されると、フリップフロップ１０３に保持された同期化フラグ信号ＵＦ１がローレベルに変化し、状態ＳＴ６から状態ＳＴ７への遷移が起こる。
【００５５】
状態ＳＴ７：
状態ＳＴ７においては、図６（Ｃ）に示すように、フリップフロップ１０１〜１０３の保持信号がローレベル、フリップフロップ１０４〜１０６の保持信号がハイレベルになる。
この場合、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致しないため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。したがって、状態ＳＴ７において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み禁止状態になる。
また、フラグ信号Ｆ２がハイレベル、同期化フラグ信号ＵＦ１がローレベルになり、両者の値が一致しないため、読み出し許可信号ＲＯ［ｎ］はハイレベルになる。したがって、状態ＳＴ７において読み出しポインタＲＰがバッファユニット１−ｎに設定されると、データバッファ装置は読み出し許可状態になる。
読み出しポインタＲＰの指示対象がバッファユニット１−ｎに設定された状態で、ハイレベルの読み出し要求信号ＲＩが入力されると、フリップフロップ１０７に保持されたデータＤＩは、クロック信号ＣＫ２に同期して、後段の装置に読み込まれる。このとき、フリップフロップ１０４に保持されたフラグ信号Ｆ２はハイレベルからローレベルに反転し、状態ＳＴ７から状態ＳＴ８への遷移が起こる。
【００５６】
状態ＳＴ８：
状態ＳＴ８においては、図６（Ｄ）に示すように、フリップフロップ１０１〜１０４の保持信号がローレベル、フリップフロップ１０５および１０６の保持信号がハイレベルになる。
この場合、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致しないため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。したがって、状態ＳＴ８において書き込みポインタＷＰの指示対象がバッファユニット１−ｎに設定されると、データバッファ装置は書き込み禁止状態になる。
また、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１がローレベルになり、両者の値が一致するため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。したがって、状態ＳＴ８において読み出しポインタＲＰがバッファユニット１−ｎに設定されると、データバッファ装置は読み出し禁止状態になる。
状態ＳＴ８への遷移が起こったあと、２サイクル分のクロック信号ＣＫ１が入力されると、フリップフロップ１０６に保持された同期化フラグ信号ＵＦ２がローレベルに変化する。これにより、状態ＳＴ８から上述した状態ＳＴ１へ再び状態が戻る。
【００５７】
このように、バッファユニット１−ｎに対する書き込みおよび読み出しの許可／不許可は、４つの信号（Ｆ１、ＵＦ１、Ｆ２、ＵＦ２）に応じて決定され、この信号状態は、８つの状態（ＳＴ１〜ＳＴ８）の間を巡回的に遷移する。
【００５８】
状態遷移の発生と停止は、４つの制御信号（書き込みポインタＷＰ、読み出しポインタＲＰ、書き込み要求信号ＷＩ、読み出し要求信号ＲＩ）とクロック信号ＣＫ１およびＣＫ２に応じて制御される。
すなわち、状態ＳＴ１から状態ＳＴ２への遷移および状態ＳＴ５から状態ＳＴ６への遷移は、書き込みポインタＷＰにおいてバッファユニット１−ｎが指示されることにより書き込みイネーブル信号ＷＥ［ｎ］がハイレベルとなり、かつ、ハイレベルの書き込み要求信号ＷＩが入力されることを条件に、クロック信号ＣＫ１に同期して発生する。この状態遷移は、バッファユニット１−ｎに対するデータの書き込みとともに発生し、上述した条件が満たされない場合、データ書き込みは行われず、状態遷移も発生しない。
状態ＳＴ３から状態ＳＴ４への遷移および状態ＳＴ７から状態ＳＴ８への遷移は、読み出しポインタＲＰにおいてバッファユニット１−ｎが指示されることにより読み出しイネーブル信号ＲＥ［ｎ］がハイレベルとなり、かつ、ハイレベルの読み出し要求信号ＲＩが入力されることを条件に、クロック信号ＣＫ２に同期して発生する。この状態遷移は、バッファユニット１−ｎに対するデータの読み出しとともに発生し、上述した条件が満たされない場合、データ読み出しは行われず、状態遷移も発生しない。
他の状態遷移（ＳＴ２−ＳＴ３、ＳＴ４−ＳＴ５、ＳＴ６−ＳＴ７、ＳＴ８−ＳＴ１）は、クロック信号ＣＫ１またはクロック信号ＣＫ２の入力に応じて自動的に発生する。
【００５９】
図４に示す状態遷移図から明らかなように、データの書き込みと読み出しは異なる状態において許可される。このため、たとえ同一のバッファユニットに対して書き込みと読み出しが同時に要求されても、これらが同時に実行される不具合は発生しない。
更に、図４に示すように、８つの状態間の遷移には分岐が存在しないため、状態遷移の順序は一定に保たれる。制御信号の値や、クロック信号ＣＫ１とクロック信号ＣＫ２との位相関係に応じて、状態遷移の順序が変更されることはない。
したがって、個々のバッファユニットに対する書き込みおよび読み出しの許可／不許可は、何れも図４に示す８つの状態の遷移に基づいて決定され、制御信号の値やクロック信号の位相関係に応じて、同一のバッファユニットに対する書き込みと読み出しが同時に実行される不具合は発生しない。加えて、書き込み許可信号ＷＯおよび読み出し許可信号ＲＯの値は、各ポインタ（ＷＰ，ＲＰ）で指示されるデータ保持部が上述した８つの状態の何れにあるかに応じて決定され、これ以外の不安定な状態によって不適切な値に設定される不具合は発生しない。
【００６０】
また、クロック信号ＣＫ１に同期したフラグ信号Ｆ１がクロック信号ＣＫ２に同期した同期化フラグ信号ＵＦ１に変換される場合、ならびに、クロック信号ＣＫ２に同期したフラグ信号Ｆ２がクロック信号ＣＫ１に同期した同期化フラグ信号ＵＦ１に変換される場合、変換元のフラグ信号は、何れも直列接続された２段のフリップフロップにおいて、変換先のクロック信号に同期して保持し直される。
【００６１】
一般に、クロック信号に対して非同期の信号がフリップフロップに保持される場合、クロック信号の保持タイミングに近い時点で非同期信号にレベル変化が生じると、フリップフロップのセットアップ時間やホールド時間といったタイミング条件に違反し、保持された信号がハイレベルとローレベルの中間的なレベルになるメタステーブルと呼ばれる状態を起こす可能性がある。
したがって、図２に示すバッファユニットにおいて、フリップフロップ１０２やフリップフロップ１０５はこのようなメタステーブルを起こす可能性がある。しかしながら、こうしたメタステーブルの持続期間がクロック信号の１周期よりも十分短いものであれば、メタステーブルが発生した次のクロック・サイクルにおいてフリップフロップ１０２、フリップフロップ１０５の出力信号はハイレベルまたはローレベルの安定状態になるため、メタステーブル状態が次段のフリップフロップ１０３、フリップフロップ１０６に伝播することはない。
【００６２】
このように、一方のクロック信号に同期したフラグ信号Ｆ１、Ｆ２が、２段のフリップフロップにおいて他方のクロック信号に同期して保持し直されることにより同期化フラグ信号ＵＦ１，ＵＦ２が得られるため、クロック信号ＣＫ１およびクロック信号ＣＫ２が非同期の場合であっても、同期化フラグ信号ＵＦ１，ＵＦ２に対するメタステーブルの影響は効果的に除去される。
【００６３】
なお、メタステーブルの持続期間がクロック信号ＣＫ１、ＣＫ２の１周期よりも長い場合は、２段のフリップフロップを３段またはそれ以上の段数に変更することによって、同期化フラグ信号ＵＦ１，ＵＦ２に対するメタステーブルの影響は容易に除去可能である。
【００６４】
次に、上述したバッファユニットに対するデータの書き込み動作および読み出し動作について、タイミングチャートを参照しながら説明する。
図７は、書き込みポインタＷＰおよび読み出しポインタＲＰが特定のバッファユニットに固定されるものとした場合における、各制御信号のタイミング関係の一例を示すタイミングチャートである。
図７（Ａ）〜（Ｈ）は、それぞれ、クロック信号ＣＫ１、書き込み要求信号ＷＩ、書き込み許可信号ＷＯ、入力データＤＩ、クロック信号ＣＫ２、読み出し要求信号ＲＩ、読み出し許可信号ＲＯ、および、バッファユニットの記憶データＤＯを示す。
図７の例においては、書き込み要求信号ＷＩおよび読み出し要求信号ＲＩがハイレベルで一定に保持されている。
【００６５】
時刻Ｔ１：
バッファユニットが状態ＳＴ１または状態ＳＴ５の状態にあると、書き込み許可信号ＷＯはハイレベルになる。この状態でクロック信号ＣＫ１の立ち上がり変化が生じると、この立ち上がりに同期して、入力データＤＩがフリップフロップ１０７に保持される。図７の例では、値‘１’の入力データＤＩがフリップフロップ１０７に保持される。また、このとき、状態ＳＴ２または状態ＳＴ６への状態遷移が起こるため、書き込み許可信号ＷＯはハイレベルからローレベルへ変化する。
【００６６】
時刻Ｔ２、Ｔ３：
状態ＳＴ２または状態ＳＴ６において、クロック信号ＣＫ２の立ち上がり変化が２回起こると、状態ＳＴ３または状態ＳＴ７への状態遷移が生じる。この状態遷移によって、読み出し許可信号ＲＯがローレベルからハイレベルに変化する。
【００６７】
時刻Ｔ４：
読み出し許可信号ＲＯがハイレベルの状態で、クロック信号ＣＫ２の立ち上がり変化が生じると、この立ち上がりに同期して、フリップフロップ１０７に保持されたデータが後段の装置に読み込まれるとともに、状態ＳＴ４または状態ＳＴ８への状態遷移が生じる。この状態遷移に応じて、読み出し許可信号ＲＯはハイレベルからローレベルに変化する。
【００６８】
時刻Ｔ５、Ｔ６：
状態ＳＴ４または状態ＳＴ８において、クロック信号ＣＫ１の立ち上がり変化が２回起こると、状態ＳＴ５または状態ＳＴ１への状態遷移が生じる。この状態遷移によって、書き込み許可信号ＷＯがローレベルからハイレベルに変化する。
【００６９】
時刻Ｔ７：
書き込み許可信号ＷＯがハイレベルの状態でクロック信号ＣＫ１の立ち上がり変化が生じると、この立ち上がりに同期して、新たな入力データＤＩがフリップフロップ１０７に保持される。図７の例では、値‘２’の入力データＤＩが新たにフリップフロップ１０７に保持される。また、このとき、状態ＳＴ２または状態ＳＴ６への状態遷移が起こるため、書き込み許可信号ＷＯはハイレベルからローレベルへ変化する。
以降、時刻Ｔ９、Ｔ１０において時刻Ｔ３、Ｔ４と同様な状態遷移が起こり、フリップフロップ１０７に保持された値‘２’のデータが後段の装置に読み込まれる。
【００７０】
以上説明したように、図１に示すデータバッファ装置によれば、フラグ信号Ｆ１、フラグ信号Ｆ２、同期化フラグ信号ＵＦ１および同期化フラグ信号ＵＦ２の値が一致し、書き込み許可信号ＷＯ［ｎ］がハイレベル、読み出し許可信号ＲＯ［ｎ］がローレベルになる状態（状態ＳＴ１または状態ＳＴ５）において、書き込み要求信号ＷＩおよび書き込みイネーブル信号ＷＥ［ｎ］が共にハイレベルになると、クロック信号ＣＫ１に同期して、バッファユニットにデータが書き込まれる。このデータ書き込み時において、フリップフロップ１０１に保持されるフラグ信号Ｆ１が論理反転され、書き込み許可信号ＷＯ［ｎ］はローレベルに変化する（状態ＳＴ２または状態ＳＴ６）。
論理反転されたフラグ信号Ｆ１は、２段のフリップフロップ１０２および１０３において、クロック信号ＣＫ２に同期化した同期化フラグ信号Ｆ２に変換される。フラグ信号Ｆ１の論理反転に応じて同期化フラグ信号Ｆ１に論理反転が生じると、フラグ信号Ｆ２および同期化フラグ信号ＵＦ１の値が不一致となり、読み出し許可信号ＲＯ［ｎ］がハイレベルに変化する（状態ＳＴ３または状態ＳＴ７）。読み出し許可信号ＲＯ［ｎ］がハイレベルの期間に、読み出し要求信号ＲＩおよび読み出しイネーブル信号ＲＥ［ｎ］がハイレベルになると、クロック信号ＣＫ２に同期して、バッファユニットの記憶データが後段の装置に読み出される。このデータ読み出し時において、フリップフロップ１０４に保持されたフラグ信号Ｆ２が論理反転され、読み出し許可信号ＲＯ［ｎ］はローレベルに変化する（状態ＳＴ４または状態ＳＴ８）。
論理反転されたフラグ信号Ｆ２は、２段のフリップフロップ１０５および１０６において、クロック信号ＣＫ１に同期化した同期化フラグ信号ＵＦ２に変換される。フラグ信号Ｆ２の論理反転に応じて同期化フラグ信号ＵＦ２に論理反転が生じると、フラグ信号Ｆ１および同期化フラグ信号ＵＦ２の値が一致し、書き込み許可信号ＷＯ［ｎ］がハイレベルに変化する（状態ＳＴ５または状態ＳＴ１）。この状態において、書き込み要求信号ＷＩおよび書き込みイネーブル信号ＷＥ［ｎ］が共にハイレベルになると、クロック信号ＣＫ１に同期して、バッファユニットに再びデータが書き込まれる。
【００７１】
すなわち、バッファユニットに対する書き込みの許可／禁止、および、読み出しの許可／禁止は、各バッファユニットが持つ４つのフラグ信号（Ｆ１、Ｆ２、ＵＦ１、ＵＦ２）の状態に応じてそれぞれ決定されており、データの書き込み動作と読み出し動作は異なる信号状態において許可される。したがって、同一のバッファユニットが同時に書き込みポインタＷＰおよび読み出しポインタＲＰの指示対象になり、更に書き込み要求信号ＷＩおよび読み出し要求信号ＲＩが同時にハイレベルになる場合においても、バッファユニットは書き込みの許可／読み出し禁止の状態か、書き込みの禁止／読み出し許可の状態か、または、書き込みの禁止／読み出し禁止の状態の何れかになる。
加えて、信号状態の遷移先が、制御信号（ＷＥ［ｎ］、ＲＥ［ｎ］、ＷＩ、ＲＩ）の値や、クロック信号ＣＫ１およびＣＫ２の位相関係に応じて変化することはなく、図４に示す８つの状態の遷移順序は一定に保たれる。
したがって、図１に示すデータバッファ装置によれば、データの書き込みと読み出しとが同時に実行される不具合を確実に防止することができる。
【００７２】
また、同期化フラグ信号ＵＦ１は、２段のフリップフロップ（１０２、１０３）においてメタステーブルの影響を除去しつつクロック信号ＣＫ２に同期化された信号であり、フラグ信号Ｆ２は、フリップフロップ１０４においてクロック信号ＣＫ２に同期して論理反転される信号である。このため、同期化フラグ信号ＵＦ１およびフラグ信号Ｆ２に応じて生成される読み出し許可信号ＲＯ［ｎ］も、クロック信号ＣＫ２に同期化した信号になり、メタステーブルの影響を持たない。したがって、図１に示すデータバッファ装置によれば、読み出し許可信号ＲＯ［ｎ］のスパイクを効果的に防止することが可能であり、これに起因したデータ読み出しの誤動作を防止することができる。
同様に、同期化フラグ信号ＵＦ２およびフラグ信号Ｆ１は、クロック信号ＣＫ１に同期した信号であり、メタステーブルの影響を持たないため、これに応じて生成される書き込み許可信号ＷＯ［ｎ］も、クロック信号ＣＫ１に同期化した信号になり、メタステーブルの影響を持たない。したがって、図１に示すデータバッファ装置によれば、書き込み許可信号ＷＯ［ｎ］のスパイクを効果的に防止することが可能であり、これに起因したデータ書き込みの誤動作を防止することができる。
【００７３】
また、図７のタイミングチャートに示すように、１つのデータがバッファユニットに書き込まれてから、この書き込まれたデータが読み出されるまでの遅延時間（Ｔ１〜Ｔ４）は、クロック信号ＣＫ１の１サイクル分と、クロック信号ＣＫ２の３サイクル分との和に概ね等しくなる。すなわち、データバッファ装置の記憶容量に応じて、データの書き込みから読み出しまでの遅延時間が長くなる不利益は生じない。したがって、遅延時間の性能を劣化させることなく、データバッファ装置の記憶容量を大きくすることができる。
【００７４】
また、フラグ信号Ｆ１から同期化フラグ信号ＵＦ１への変換、フラグ信号Ｆ２から同期化フラグ信号ＵＦ２への変換は、２段のフリップフロップを用いた簡易な回路で実現可能であるため、図１に示すデータバッファ装置は、ＨＤＬ（ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）を用いた一般的な手法を用いて設計することが可能である。このため、一般的な回路設計ツールを用いて回路記述の検証を自動化することも可能である。
【００７５】
＜第２の実施形態＞
次に、本発明の第２の実施形態について述べる。
第２の実施形態に係るデータバッファ装置においては、たとえば、図１に示すデータバッファ装置におけるバッファユニット１−０〜１−７が、次に述べるバッファユニット１Ａ−０〜１Ａ−７に置き換えられる。
【００７６】
図８は、本発明の第２の実施形態に係るデータバッファ装置における、バッファユニット１Ａ−ｎの構成の一例を示す回路図であり、図２と図８の同一符号は同一の構成要素を示す。
図８に示すバッファユニット１Ａ−ｎは、図２に示すバッファユニット１−ｎにおける排他的ＮＯＲ回路１３０および排他的ＯＲ回路１３１を除いた構成を有するとともに、フリップフロップ１０８および１０９と、インバータ１２２と、排他的ＯＲ回路１３２および１３３とを有する。
フリップフロップ１０８は、本発明の第１の信号保持手段の一実施形態である。
排他的ＯＲ回路１３３は、本発明の第３の比較手段の一実施形態である。
フリップフロップ１０９は、本発明の第２の信号保持手段の一実施形態である。
排他的ＯＲ回路１３４は、本発明の第４の比較手段の一実施形態である。
【００７７】
フリップフロップ１０８は、フリップフロップ１０３から出力される同期化フラグ信号ＵＦ１を、ＡＮＤ回路１１３の出力信号に同期して保持し、保持信号Ｚ１として出力する。
フリップフロップ１０９は、フリップフロップ１０６から出力される同期化フラグ信号ＵＦ２がインバータ１２２において論理反転された信号／ＵＦ２を、ＡＮＤ回路１１１の出力信号に同期して保持し、保持信号Ｚ２として出力する。
【００７８】
排他的ＯＲ回路１３２は、反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２の排他的論理和を演算し、その演算結果を書き込み許可信号ＷＯ［ｎ］として出力する。
排他的ＯＲ回路１３３は、同期化フラグ信号ＵＦ１および保持信号Ｚ１の排他的論理和を演算し、その演算結果を読み出し許可信号ＲＯ［ｎ］として出力する。
【００７９】
ここで、上述した構成を有する図８に示すバッファユニット１Ａ−ｎの動作を説明する。
図２と図８を比較して分かるように、バッファユニット１Ａ−ｎのフリップフロップ１０１〜１０６に対する入力信号は、既に述べたバッファユニット１−ｎの各フリップフロップに対する入力信号と同じであるため、フラグ信号（Ｆ１、Ｆ２、ＵＦ１、ＵＦ２）の状態遷移も同じになる。したがって、ここでは、各状態（ＳＴ１〜ＳＴ８）における保持信号Ｚ１、Ｚ２、書き込み許可信号ＷＯ［ｎ］、読み出し許可信号ＲＯ［ｎ］の値を示しながら、図８に示すバッファユニット１Ａ−ｎの動作を説明する。
【００８０】
状態ＳＴ１：
状態ＳＴ１において、フリップフロップ１０１〜１０９の保持信号は全てローレベルになるものとする。
この場合、反転同期化フラグ信号／ＵＦ２がハイレベル、保持信号Ｚ２がローレベルになるため、書き込み許可信号ＷＯ［ｎ］はハイレベルになる。
また、同期化フラグ信号ＵＦ１および保持信号Ｚ１がともローレベルになるため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。
【００８１】
状態ＳＴ２：
状態ＳＴ１から状態ＳＴ２への遷移時において、ＡＮＤ回路１１１からクロック信号ＣＫ１のパルスが出力されると、ハイレベルの反転同期化フラグ信号／ＵＦ２がフリップフロップ１０９に保持される。これにより、反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２が共にハイレベルになるため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。
また、同期化フラグ信号ＵＦ１および保持信号Ｚ１がローレベルのままであるため、読み出し許可信号ＲＯ［ｎ］は引き続きローレベルになる。
【００８２】
状態ＳＴ３：
反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２がハイレベルのままであるため、書き込み許可信号ＷＯ［ｎ］は引き続きローレベルになる。
また、状態ＳＴ２から状態ＳＴ３への遷移によって、同期化フラグ信号ＵＦ１がハイレベルに変化すると、保持信号Ｚ１がローレベルであるため、読み出し許可信号ＲＯ［ｎ］はハイレベルになる。
【００８３】
状態ＳＴ４：
反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２がハイレベルのままであるため、書き込み許可信号ＷＯ［ｎ］は引き続きローレベルになる。
また、状態ＳＴ３から状態ＳＴ４への遷移時において、ＡＮＤ回路１１３からクロック信号ＣＫ２のパルスが出力されると、ハイレベルの同期化フラグ信号ＵＦ１がフリップフロップ１０９に保持される。これにより、同期化フラグ信号ＵＦ１および保持信号Ｚ１が共にハイレベルになるため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。
【００８４】
状態ＳＴ５：
状態ＳＴ４から状態ＳＴ５への遷移によって、同期化フラグ信号ＵＦ２がハイレベルに変化すると、これに応じて反転同期化フラグ信号／ＵＦ２がローレベルになる。これにより、反転同期化フラグ信号／ＵＦ２がローレベル、保持信号Ｚ２がハイレベルになるため、書き込み許可信号ＷＯ［ｎ］はハイレベルになる。
また、同期化フラグ信号ＵＦ１および保持信号Ｚ１がハイレベルのままであるため、読み出し許可信号ＲＯ［ｎ］は引き続きローレベルになる。
【００８５】
状態ＳＴ６：
状態ＳＴ５から状態ＳＴ６への遷移時において、ＡＮＤ回路１１１からクロック信号ＣＫ１のパルスが出力されると、ローレベルの反転同期化フラグ信号／ＵＦ２がフリップフロップ１０９に保持される。これにより、反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２が共にローレベルになるため、書き込み許可信号ＷＯ［ｎ］はローレベルになる。
また、同期化フラグ信号ＵＦ１および保持信号Ｚ１がハイレベルのままであるため、読み出し許可信号ＲＯ［ｎ］は引き続きローレベルになる。
【００８６】
状態ＳＴ７：
反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２がローレベルのままであるため、書き込み許可信号ＷＯ［ｎ］は引き続きローレベルになる。
また、状態ＳＴ６から状態ＳＴ７への遷移によって、同期化フラグ信号ＵＦ１がローレベルに変化すると、保持信号Ｚ１がハイレベルであるため、読み出し許可信号ＲＯ［ｎ］はハイレベルになる。
【００８７】
状態ＳＴ８：
反転同期化フラグ信号／ＵＦ２および保持信号Ｚ２がローレベルのままであるため、書き込み許可信号ＷＯ［ｎ］は引き続きローレベルになる。
また、状態ＳＴ７から状態ＳＴ８への遷移時において、ＡＮＤ回路１１３からクロック信号ＣＫ２のパルスが出力されると、ローレベルの同期化フラグ信号ＵＦ１がフリップフロップ１０９に保持される。これにより、同期化フラグ信号ＵＦ１および保持信号Ｚ１が共にローレベルになるため、読み出し許可信号ＲＯ［ｎ］はローレベルになる。
【００８８】
以上説明したように、バッファユニット１Ａ−ｎの各状態（ＳＴ１〜ＳＴ８）における書き込み許可信号ＷＯ［ｎ］および読み出し許可信号ＲＯ［ｎ］の値は、バッファユニット１−ｎと全く同じになるため、バッファユニット１Ａ−ｎにおいても、バッファユニット１−ｎと同様な動作が実現される。
したがって、バッファユニット１−ｎの替わりにバッファユニット１Ａ−ｎを設けたデータバッファ装置においても、データの書き込みと読み出しとが同時に実行される不具合を確実に防止することができる。
また、バッファユニット１Ａ−ｎにおいても、２段のフリップフロップによって同期化フラグ信号ＵＦ１および同期化フラグ信号ＵＦ２からメタステーブルの影響が除去されるため、読み出し許可信号ＲＯ［ｎ］および書き込み許可信号ＷＯ［ｎ］のスパイクを効果的に防止することができる。
また、データバッファ装置の記憶容量に応じて、データの書き込みから読み出しまでの遅延時間が長くなる不利益は生じないため、遅延時間の性能を劣化させることなく、データバッファ装置の記憶容量を大きくすることができる。
【００８９】
なお、本発明は上述した実施形態に限定されない。
たとえば、バッファユニットの数や入力データのデータ長、書き込みポインタＷＰおよび読み出しポインタＲＰの値、各信号の論理値など、上述した実施形態において示した種々の定数値は何れも説明上で与えた一例に過ぎず、任意に設定可能である。
バッファユニットが１つの場合は、書き込みポインタＷＰおよび読み出しポインタＲＰが固定値になるため、書き込み指示部２および読み出し指示部３を省略することができる。
【００９０】
上述した実施形態では、データバッファ装置がＦＩＦＯとして動作する例を説明したが、本発明はこれに限定されず、たとえばＦＩＬＯ（ｆｉｒｓｔ−ｉｎ  ｌａｓｔ−ｏｕｔ）として動作させることも可能である。
【００９１】
すなわち、書き込み指示部２は、指示したユニットに対してデータの書き込みが行われるたびに、複数のバッファユニットに設定された所定の順序、たとえばバッファユニット１−０，１−１，…，１−７といった順序に従って指示対象を変更する。また、指示したバッファユニットに対してデータの読み出しが行われるたびに、当該読み出しが行われたバッファユニットへ指示対象を変更する。
読み出し指示部３は、指示したユニットに対してデータの書き込みが行われるたびに、当該書き込みが行われたバッファユニットへ指示対象を変更する。また、指示したユニットに対してデータの読み出しが行われるたびに、上記所定の順序とは逆の順序に従って指示対象を変更する。
書き込み指示部２および読み出し指示部３においてこのような指示動作を行わせることにより、図１に示すデータバッファ装置をＦＩＬＯとして動作させることも可能である。この場合も、ＦＩＦＯの場合と同様の効果を奏することができる。
【００９２】
【発明の効果】
本発明によれば、互いに独立したクロック信号を用いてデータの書き込みおよび読み出しを行う場合において、書き込み許可信号および読み出し許可信号にスパイクが発生することを防止できる。また、書き込み許可信号および読み出し許可信号の生成に要する遅延時間が記憶容量の増加にともなって長くなることを防止できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るデータバッファ装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態に係るバッファユニットの構成の一例を示す回路図である。
【図３】書き込み指示部の構成の一例を示す回路図である。
【図４】図２に示すバッファユニットおけるフラグ信号および同期化フラグ信号の状態遷移の一例を示す図である。
【図５】各状態におけるフリップフロップの保持信号の値を図解した第１の図である。
【図６】各状態におけるフリップフロップの保持信号の値を図解した第２の図である。
【図７】書き込みポインタおよび読み出しポインタが特定のバッファユニットに固定されるものとした場合における、各制御信号のタイミング関係の一例を示すタイミングチャートである。
【図８】本発明の第２の実施形態に係るバッファユニットの構成の一例を示す回路図である。
【符号の説明】
１−０〜１−７，１Ａ−０〜１Ａ−７…バッファユニット、２…書き込み指示部、３…読み出し指示部、４，５…デコード部、６〜８…選択部、９，１０，１１０〜１１３，２０１…ＡＮＤ回路、１０７〜１０９，２０２…フリップフロップ、１２０〜１２２…インバータ、１３０〜１３３…排他的ＮＯＲ回路、１３１…排他的ＯＲ回路、２０３…加算部
【図１】
2004295819.tif 000003
【図２】
2004295819.tif 000004
【図３】
2004295819.tif 000005
【図４】
2004295819.tif 000006
【図５】
2004295819.tif 000007
【図６】
2004295819.tif 000008
【図７】
2004295819.tif 000009
【図８】
2004295819.tif 000010