(57)【要約】【課題】  データの書き込み側と読み出し側の動作周波数に依存しない形でデータ転送を可能にし、システム内のデバイス間の動作速度差の吸収、転送速度の向上に寄与することができる「バッファメモリ装置及びデータ転送システム」を提供すること。【解決手段】  ２つのバッファＡ，Ｂを備えたダブルバッファ１１と、その後段に接続されたＦＩＦＯメモリ１２と、制御部１３〜１７とを備えたバッファメモリ装置において、制御部１３〜１７により、ダブルバッファ１１に対し、一方のバッファＡにデータ供給元の動作周波数ｆ１のタイミングでデータの書き込みを行い、かつ、データ供給先の動作周波数ｆ２のタイミングで他方のバッファＢからＦＩＦＯメモリ１２へのデータの読み出しを行うよう制御する。【選択図】  図２
2007065948.tif 000002
【特許請求の範囲】
【請求項１】
データ供給元とデータ供給先の間に介在されるバッファメモリ装置であって、
２つのバッファ領域を備えたダブルバッファと、
前記ダブルバッファの後段に接続されたＦＩＦＯメモリと、
前記ダブルバッファ及びＦＩＦＯメモリに動作可能に接続された制御部とを備え、
前記制御部は、前記ダブルバッファに対し、一方のバッファ領域に前記データ供給元の動作周波数のタイミングでデータの書き込みを行い、かつ、前記データ供給先の動作周波数のタイミングで他方のバッファ領域から前記ＦＩＦＯメモリへのデータの読み出しを行うよう制御することを特徴とするバッファメモリ装置。
【請求項２】
前記制御部は、前記ダブルバッファに対し、各バッファ領域に対するデータの書き込みと前記ＦＩＦＯメモリへのデータの読み出しを交互に切り替えるよう制御することを特徴とする請求項１に記載のバッファメモリ装置。
【請求項３】
前記制御部は、
前記データ供給元から供給されるバッファ書き込み信号に応答し、前記データ供給元の動作周波数に同期して前記ダブルバッファ内の書き込みアドレスをカウントする第１のカウンタと、
バッファ読み出し信号に応答し、前記データ供給先の動作周波数に同期して前記ダブルバッファ内の読み出しアドレスをカウントする第２のカウンタと、
前記第１のカウンタから出力された書き込みアドレス又は前記第２のカウンタから出力された読み出しアドレスに基づいて、前記ダブルバッファ内のデータの書き込み状態又は読み出し状態を指示する状態指示信号を生成する第１の機能ブロックと、
該第１の機能ブロックから出力された状態指示信号に基づいて、前記第２のカウンタに対するバッファ読み出し信号の供給を制御する第２の機能ブロックとを有することを特徴とする請求項１に記載のバッファメモリ装置。
【請求項４】
前記第２の機能ブロックは、前記第１の機能ブロックから出力された状態指示信号に基づいて、前記ダブルバッファの一方のバッファ領域に対するデータの書き込みの終了又はデータが書き込まれた他方のバッファ領域からの読み出しの終了を検出するための第３のカウンタを有することを特徴とする請求項３に記載のバッファメモリ装置。
【請求項５】
前記第２の機能ブロックは、前記ＦＩＦＯメモリから供給されるフラグの論理レベルに応じて、前記ダブルバッファに書き込まれたデータの前記ＦＩＦＯメモリへのデータ転送を制御することを特徴とする請求項３に記載のバッファメモリ装置。
【請求項６】
請求項１から５のいずれか一項に記載のバッファメモリ装置を用いたデータ転送システムであって、
地図ディスクを搭載したディスクドライブと、
該ディスクドライブと通信可能に接続されたナビゲーションユニットと、
前記ディスクドライブと前記ナビゲーションユニットの間に通信可能に接続され、前記バッファメモリ装置を内蔵したＬＳＩとを備え、
前記ディスクドライブから前記地図ディスクのデータを第１のクロックのタイミングで前記ＬＳＩ内のバッファメモリ装置に取り込み、該バッファメモリ装置を通して当該データを第２のクロックのタイミングで読み出して前記ナビゲーションユニットに転送するようにしたことを特徴とするデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送を制御するバッファリング技術に関し、特に、データ書き込み／読み出し用の２つのバッファ領域（以下、単に「バッファ」ともいう。）を備え、データ書き込み側とデータ読み出し側の動作周波数の違いを整合させる機能を備えたバッファメモリ装置、及びデータ転送システムに関する。
【０００２】
以下の記述では、データ書き込み／読み出し用の２つのバッファをまとめて「ダブルバッファ」ともいう。このダブルバッファは、必ずしも物理的に分離された２つのバッファのみを指すものではなく、バッファ領域が２つに分離された単一のバッファをも含むものである。
【背景技術】
【０００３】
データ転送システムには、データを処理するための回路ブロック（データ処理部）が含まれているが、このようなデータ処理部の前段には、このデータ処理部へのデータ転送のタイミングを調整するためのバッファリングを行うブロック（バッファメモリ）が設けられている。かかるバッファメモリの形態としては、上記のダブルバッファの他に、同期式のＦＩＦＯ（First-In First-Out）メモリ、非同期式のＦＩＦＯメモリなどがある。
【０００４】
ダブルバッファは、上記のように２つのバッファを備え、各バッファは同じ容量を有している。このダブルバッファでは、一方のバッファにデータを書き込んでいる間、他方のバッファからデータを読み出すようにし、各バッファに対するデータ書き込みとデータ読み出しを交互に切り替えるようにしている。このようなバッファリングの形態では、ダブルバッファを介在して接続されるデータ書き込み側のデバイスとデータ読み出し側のデバイスの動作周波数（クロック）が同じであれば動作上の制約は生じないが、書き込み側と読み出し側とで動作周波数（クロック）が異なる場合、一方のバッファから後段のデータ処理部へデータ読み出しを行うには、他方のバッファへのデータ書き込みが終了している必要がある。
【０００５】
一方、同期式のＦＩＦＯメモリにおいては、全ての回路が一つのクロックにタイミングを合わせて動作する。このため、あるクロックで動作している同期式の回路に別のクロックのタイミングで動作している信号を入力するには、別のクロックのタイミングで動作する信号を、回路が動作しているクロックのタイミングに合わせるための「同期化」が必要である。現状の技術では、回路が問題なく動作するには、同期化されるクロックに対して同期化するクロックの周波数を４倍程度高くする必要がある。例えば、１６．９ＭＨｚのクロックを同期化するには６７．９ＭＨｚのクロック周波数を必要とする。このように同期式のＦＩＦＯメモリでは、「同期化」を行うために回路のクロックの周波数を十分に高くする必要があり、これを実現するには位相固定ループ（ＰＬＬ）回路等の特別な回路を必要とする。
【０００６】
これに対し、非同期式のＦＩＦＯメモリでは、クロックのタイミングに関係なく、書き込み側と読み出し側で別のクロックで動作することが可能である。しかしその反面、動作タイミングが一定ではないため、書き込み側と読み出し側のタイミングの組合せは無数に存在することになる。
【０００７】
上記の従来技術に関連する技術としては、例えば、特許文献１に記載されるように、低解像度仕様に係るハードコピーインタフェースと高解像度仕様に係るハードコピー装置本体との間にハードコピーインタフェース変換装置を設け、ハードコピー装置本体からのライン送信要求を間引いてハードコピーインタフェースに供給すると共に１ライン分のビデオデータを重複してハードコピー装置本体に出力することにより、１頁当りライン数の差を補うようにしたものがある。ここに開示された技術では、ドットクロック周波数の相違は、２つのバンクを備えるダブルバッファのメモリを用いて周波数変換処理を実行することにより補っている。
【特許文献１】特開平６−３０１５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように従来の技術では、バッファメモリの形態としてダブルバッファを使用した場合、書き込み側と読み出し側とで動作周波数（クロック）が異なると、一方のバッファからのデータ読み出しを行うには他方のバッファへのデータ書き込みが終了していなければならないという動作上の制約が生じる。この場合、ダブルバッファの容量を大きくすれば、一方のバッファへの書き込み終了前であっても他方のバッファからの読み出しを行うことは可能である。
【０００９】
しかしながら、ダブルバッファの容量を大きくすると１回のバッファを読み出すまでの時間が長くなるため、それに伴い後段のデータ処理部へのデータ転送時間も長くなり、転送速度が損なわれるといった問題が生じる。
【００１０】
一方、同期式のＦＩＦＯメモリでは、あるクロックで動作している同期式の回路に別のクロックのタイミングで動作している信号を入力するには、別のクロックに対して回路のクロックの周波数を高くするための「同期化」が必要であり、これを行うにはＰＬＬ回路等をＦＩＦＯメモリ（ＬＳＩチップ）内に設ける必要があった。このため、ゲート数の増加やそれに伴う消費電力の増大、チップサイズの大型化、チップ単価のコストアップといった問題があった。
【００１１】
また、非同期式のＦＩＦＯメモリでは、同期式の場合のようなＰＬＬ回路等は不要であるが、データの書き込み側と読み出し側のタイミングの組合せが無数に存在するため、回路設計の難易度が高く、全てのタイミングについてシミュレーション（問題なく動作するか否かの検証）を行うことができないといった問題があった。このため、シミュレーションの検証期間の長期化や検証の際のバグの発生率が高くなってしまい、結果として、開発期間の長期化や作り直しによる開発コストの増大を招くおそれがあった。
【００１２】
本発明は、かかる従来技術における課題に鑑み創作されたもので、データの書き込み側と読み出し側の動作周波数に依存しない形でデータ転送を可能にし、システム内のデバイス間の動作速度差の吸収、ひいては転送速度の向上に寄与することができるバッファメモリ装置及びデータ転送システムを提供することを目的とする。
【００１３】
さらに本発明は、同期式のＦＩＦＯメモリ及び非同期式のＦＩＦＯメモリが呈している問題点を解消することができるバッファメモリ装置及びデータ転送システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の従来技術の課題を解決するため、本発明によれば、データ供給元とデータ供給先の間に介在されるバッファメモリ装置であって、２つのバッファ領域を備えたダブルバッファと、前記ダブルバッファの後段に接続されたＦＩＦＯメモリと、前記ダブルバッファ及びＦＩＦＯメモリに動作可能に接続された制御部とを備え、前記制御部は、前記ダブルバッファに対し、一方のバッファ領域に前記データ供給元の動作周波数のタイミングでデータの書き込みを行い、かつ、前記データ供給先の動作周波数のタイミングで他方のバッファ領域から前記ＦＩＦＯメモリへのデータの読み出しを行うよう制御することを特徴とするバッファメモリ装置が提供される。
【００１５】
本発明に係るバッファメモリ装置によれば、ダブルバッファの後段に各バッファ領域からの読み出しデータを格納しておくためのＦＩＦＯメモリを配置し、書き込み側（データ供給元）の動作周波数のタイミングで一方のバッファ領域にデータを書き込み、他方のバッファ領域に書き込まれたデータを読み出し側（データ供給先）の動作周波数のタイミングで読み出してＦＩＦＯメモリに転送するようにしている。
【００１６】
このように本発明では、データの書き込み側と読み出し側の動作周波数に依存しない形でデータ転送を行うことができるので、システム内のデバイス間の動作速度差を吸収することが可能となる。
【００１７】
また、従来の技術ではダブルバッファを使用した場合の動作上の制約を解消するためにダブルバッファの容量を大きくする必要があったが、本発明では、ダブルバッファの容量を大きくしなくても、従来の転送速度の問題を解消することができる。これについては、後述する本発明の実施の形態において詳細に説明する。
【００１８】
さらに、本発明に係るバッファメモリ装置によれば、同期式のＦＩＦＯメモリ及び非同期式のＦＩＦＯメモリが呈している問題点を解消することができる。これについても、後述する本発明の実施の形態において説明する。
【００１９】
また、本発明の他の形態によれば、上記のバッファメモリ装置を用いたデータ転送システムが提供される。このデータ転送システムは、地図ディスクを搭載したディスクドライブ（例えば、ＤＶＤドライブ）と、該ディスクドライブと通信可能に接続されたナビゲーションユニットと、前記ディスクドライブと前記ナビゲーションユニットの間に通信可能に接続され、前記バッファメモリ装置を内蔵したＬＳＩとを備え、前記ディスクドライブから前記地図ディスクのデータを第１のクロックのタイミングで前記ＬＳＩ内のバッファメモリ装置に取り込み、該バッファメモリ装置を通して当該データを第２のクロックのタイミングで読み出して前記ナビゲーションユニットに転送するようにしたことを特徴とする。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、添付の図面を参照しながら説明する。
【００２１】
図１は本発明の一実施形態に係るバッファメモリ装置の構成を示したものである。
【００２２】
本実施形態に係るバッファメモリ装置１０は、基本的には、データ転送システムにおいて本装置を介在して接続されるデータ書き込み側のデバイス（データ供給元）とデータ読み出し側のデバイス（データ供給先）とで動作周波数（クロック）が異なっている状況下で使用される。つまり、本実施形態のバッファメモリ装置１０は、データを処理する回路ブロック（データ供給先）の前段に配置され、この回路ブロックへのデータ読み出しが不定期に行われるため書き込みデータを取りこぼさないようにバッファリングすることを想定している。また、書き込み側のクロックと読み出し側のクロックが異なるため、本装置１０により、後述するようにクロックの周波数変換を行っている。また、本実施形態のバッファメモリ装置１０は、後述するようにＡＳＩＣ（特定用途向けＬＳＩ）に内蔵されている。
【００２３】
本実施形態のバッファメモリ装置１０は、ダブルバッファ１１と、このダブルバッファ１１の後段に接続されたＦＩＦＯメモリ１２と、書き込み用カウンタ１３と、読み出し用カウンタ１４と、ステータス信号生成回路１５と、データ転送制御回路１６とを備えており、さらに、データ転送制御回路１６にはカウンタ１７が内蔵されている。
【００２４】
ダブルバッファ１１は、データ書き込み／読み出し用の２つのバッファ領域（バッファＡ、バッファＢともに同じ容量で、ｎ段×２）を備えており、そのバッファ容量は、周波数変換の対象とされる動作周波数に依存して選定される。また、ＦＩＦＯメモリ１２の容量は、その動作周波数には依存しないが、ダブルバッファ１１の容量と比べて十分に大きな容量を有している必要がある。
【００２５】
書き込み用カウンタ１３は、データ供給元から供給されるバッファ書き込み信号ＢＷＳに応答してカウント動作を開始し、データ供給元の動作周波数（クロックＣＫ１）に同期して書き込みアドレスＷＡＤの値をカウントアップする。これにより、データ供給元から供給される書き込みデータが、ダブルバッファ１１内の、書き込みアドレスＷＡＤに対応するメモリ領域に書き込まれる。
【００２６】
読み出し用カウンタ１４は、データ転送制御回路１６から供給されるバッファ読み出し信号ＢＲＳに応答してカウント動作を開始し、データ供給先の動作周波数（クロックＣＫ２）に同期して読み出しアドレスＲＡＤの値をカウントアップする。これにより、ダブルバッファ１１内の、読み出しアドレスＲＡＤに対応するメモリ領域に書き込まれたデータが、ダブルバッファ１１の出力データとして読み出され、ＦＩＦＯメモリ１２に書き込まれる。
【００２７】
ステータス信号生成回路１５は、ダブルバッファ１１の状態（各バッファＡ，Ｂにおけるデータの書き込み／読み出しの状態）を指示する信号を生成する機能ブロックである。具体的には、書き込み用カウンタ１３の書き込みアドレスＷＡＤの値が「ｎ」に達したとき（一方のバッファに対する書き込みが終了したとき）に、書き込みアドレスＷＡＤから生成したバッファ書き込み領域フラグをアクティブ状態とし、さらに、バッファ書き込み領域フラグをデータ供給先の動作周波数（クロックＣＫ２）に同期化させて、書き込み終了フラグＷＥＦをアクティブ状態とする。同様に、読み出し用カウンタ１４の読み出しアドレスＲＡＤの値が「ｎ」に達したとき（データが書き込まれた当該バッファからＦＩＦＯメモリ１２へのデータ読み出しが終了したとき）に、読み出し終了フラグＲＥＦをアクティブ状態とする。
【００２８】
データ転送制御回路１６は、ダブルバッファ１１に書き込まれたデータのＦＩＦＯメモリ１２へのデータ転送を制御する機能ブロックである。具体的には、ステータス信号生成回路１５から出力された書き込み終了フラグＷＥＦに応答して内蔵のカウンタ１７がカウントアップし、これにより、ダブルバッファ１１の一方のバッファに対するデータ書き込みが終了したことを検出する。同様に、ステータス信号生成回路１５から出力された読み出し終了フラグＲＥＦに応答して内蔵のカウンタ１７がカウントダウンし、これにより、ダブルバッファ１１内のデータが書き込まれた当該バッファからＦＩＦＯメモリ１２へのデータ転送が終了したことを検出する。また、データ転送制御回路１６は、ＦＩＦＯメモリ１２のフルフラグＦＦをチェックし、その論理レベル（「Ｌ」又は「Ｈ」レベル）に応じて、バッファ読み出し信号ＢＲＳとＦＩＦＯ書き込み信号ＦＷＳを共に「Ｈ」レベル又は「Ｌ」レベルにする。本実施形態では、フルフラグＦＦが「Ｌ」レベルのときに各信号ＢＲＳ、ＦＷＳを「Ｈ」レベルとし、ＦＩＦＯメモリ１２へのデータ転送を可能な状態にする。
【００２９】
データ転送制御回路１６（カウンタ１７を含む）は、書き込み用カウンタ１３、読み出し用カウンタ１４及びステータス信号生成回路１５と共に、「データ書き込み／読み出し制御部」を構成する。このデータ書き込み／読み出し制御部１３〜１７は、後述するようにダブルバッファ１１へのデータの書き込みと、ダブルバッファ１１からＦＩＦＯメモリ１２へのデータの読み出し（データ転送）を制御する。
【００３０】
本実施形態に係るバッファメモリ装置１０は、その基本動作を図２に概略的に示すように、データ書き込み／読み出し制御部１３〜１７からの制御に基づき、ダブルバッファ１１の一方のバッファＡ（又はバッファＢ）に書き込み側のクロックのタイミング（動作周波数：ｆ１）でデータを書き込んでいる間、他方のバッファＢ（又はバッファＡ）から読み出し側のクロックのタイミング（動作周波数：ｆ２）でデータを読み出してＦＩＦＯメモリ１２に転送し、以降、各バッファＡ，Ｂに対するデータの書き込みと読み出しを交互に切り替える（つまり、（ａ）の状態と（ｂ）の状態を交互に繰り返す）ようにしたことを特徴とする。
【００３１】
以下、本実施形態に係るバッファメモリ装置１０の具体的な動作について、そのタイミング波形の一例を示す図３を参照しながら説明する。図３に示す例では、説明の簡単化のため、ダブルバッファ１１の一方のバッファ（例えば、バッファＡ）に対するデータの書き込みとその読み出し（ＦＩＦＯメモリ１２へのデータ転送）についての動作タイミング波形のみを示している。
【００３２】
先ず、バッファ書き込み信号ＢＷＳが「Ｌ」レベルから「Ｈ」レベルになると、書き込み用カウンタ１３は、データ供給元の動作周波数（クロックＣＫ１）に同期してカウントアップする。それと同時に、ダブルバッファ１１の一方のバッファ（この場合、バッファＡ）内の、カウンタ１３のカウント値が指示する書き込みアドレスＷＡＤに対応するメモリ領域に、データ供給元から供給される書き込みデータが書き込まれる。この時点では、当該バッファＡからのデータ読み出しは行わない。
【００３３】
次に、カウンタ１３のカウント値（書き込みアドレスＷＡＤ）が「ｎ」に達する（つまり、ダブルバッファ１１の１面分のメモリ領域（バッファＡ）に対する書き込みが終了する）と、ステータス信号生成回路１５では、書き込みアドレスＷＡＤから生成したバッファ書き込み領域フラグを「Ｌ」レベルから「Ｈ」レベルにする。
【００３４】
さらにステータス信号生成回路１５では、バッファ書き込み領域フラグをデータ供給先の動作周波数（クロックＣＫ２）に同期化させた後、書き込み終了フラグＷＥＦを「Ｌ」レベルから「Ｈ」レベルにする。
【００３５】
書き込み終了フラグＷＥＦが「Ｈ」レベルになると、データ転送制御回路１６内のカウンタ１７がカウントアップする（０→１）。これにより、データ転送制御回路１６は、ダブルバッファ１１の１面分のメモリ領域（バッファＡ）に対するデータ書き込みが終了したことを検出する。
【００３６】
さらにデータ転送制御回路１６では、ＦＩＦＯメモリ１２のフルフラグＦＦをチェックし、フルフラグＦＦが「Ｌ」レベルの場合、すなわち、ＦＩＦＯメモリ１２にデータを書き込む領域がある場合は、バッファ読み出し信号ＢＲＳとＦＩＦＯ書き込み信号ＦＷＳを共に「Ｌ」レベルから「Ｈ」レベルにする。つまり、ＦＩＦＯメモリ１２へのデータ転送が可能な状態にする。
【００３７】
もしＦＩＦＯメモリ１２のフルフラグＦＦが「Ｈ」レベルの場合（ＦＩＦＯメモリ１２にデータを書き込む領域がない場合）は、ＦＩＦＯメモリ１２へのデータ転送は行えないので、バッファ読み出し信号ＢＲＳとＦＩＦＯ書き込み信号ＦＷＳを共に「Ｌ」レベルに維持する（図３において破線で表示）。
【００３８】
バッファ読み出し信号ＢＲＳが「Ｌ」レベルから「Ｈ」レベルになると、読み出し用カウンタ１４は、データ供給先の動作周波数（クロックＣＫ２）に同期してカウントアップする。それと同時に、ダブルバッファ１１の一方のバッファ（この場合、バッファＡ）内の、カウンタ１４のカウント値が指示する読み出しアドレスＲＡＤに対応するメモリ領域に書き込まれたデータが、ダブルバッファ１１の出力データとして読み出され、ＦＩＦＯメモリ１２に書き込まれる。
【００３９】
カウンタ１４のカウント値（読み出しアドレスＲＡＤ）が「ｎ」に達する（つまり、ダブルバッファ１１の１面分のメモリ領域（バッファＡ）からＦＩＦＯメモリ１２へのデータ転送が終了する）と、ステータス信号生成回路１５では、読み出し終了フラグＲＥＦを「Ｌ」レベルから「Ｈ」レベルにする。
【００４０】
読み出し終了フラグＲＥＦが「Ｈ」レベルになると、データ転送制御回路１６内のカウンタ１７がカウントダウンする（１→０）。これにより、データ転送制御回路１６は、ダブルバッファ１１の１面分のメモリ領域（バッファＡ）からＦＩＦＯメモリ１２へのデータ転送が終了したことを検出する。
【００４１】
以上の動作（バッファへのデータの書き込みとその読み出し）を、ダブルバッファ１１の各バッファＡ，Ｂに対し交互に切り替えて繰り返す（図２参照）。
【００４２】
なお、図３の動作タイミング波形図には特に示していないが、ＦＩＦＯメモリ１２に書き込まれたデータは、データ供給先の動作周波数（クロック）のタイミングに合わせて順次読み出され、データ供給先に転送される。すなわち、データ供給先では、ＦＩＦＯメモリ１２のエンプティフラグＥＦをチェックし、そのフラグＥＦが「Ｌ」レベルの場合、すなわち、ＦＩＦＯメモリ１２にデータが書き込まれている場合は、ＦＩＦＯ読み出し信号ＦＲＳを「Ｈ」レベルにし、ＦＩＦＯメモリ１２からのデータ転送が可能な状態にする。もしエンプティフラグＥＦが「Ｈ」レベルの場合（ＦＩＦＯメモリ１２にデータが書き込まれていない場合）は、ＦＩＦＯ読み出し信号ＦＲＳを「Ｌ」レベルにする。
【００４３】
また、一方のバッファＡ（又はＢ）からのデータ読み出しが終了する前に、もう一方のバッファＢ（又はＡ）に対するデータ書き込みが終了した場合には、データ転送制御回路１６からデータ供給元に対し、書き込み停止信号ＷＳＳを「Ｈ」レベルにして書き込みデータの供給を停止させるようにする。
【００４４】
以上説明したように、本実施形態に係るバッファメモリ装置１０によれば、ダブルバッファ１１（バッファＡ、バッファＢ）の後段に各バッファＡ，Ｂからの読み出しデータを蓄えておくためのＦＩＦＯメモリ１２を配置し、書き込み側のクロックのタイミング（動作周波数：ｆ１）で各バッファＡ，Ｂに書き込まれたデータを、読み出し側のクロックのタイミング（動作周波数：ｆ２）で読み出してＦＩＦＯメモリ１２にいったん書き込んだ後、当該データを読み出し側のクロックのタイミングに合わせて順次読み出し、データ供給先に転送するようにしている。
【００４５】
このようにデータの書き込み側と読み出し側の動作周波数に依存しない形でデータ転送を行うことができるので、本装置１０を内蔵したＡＳＩＣ（特定用途向けＬＳＩ）内部の動作速度差やシステム内のデバイス間の動作速度差を吸収することが可能となる。
【００４６】
また、従来の技術では、ダブルバッファを使用した場合の動作上の制約を解消するためにダブルバッファの容量を大きくする必要があったが、本実施形態では、ダブルバッファ１１の容量を大きくしなくても転送速度の問題を解消することができる。これについて、図４を参照しながら説明する。
【００４７】
従来例では（図４（ａ）参照）、ダブルバッファ（バッファＡ’、バッファＢ’）を使用し、データの書き込み側と読み出し側とで動作周波数（クロック）が異なる場合、一方のバッファから後段のデータ処理部へデータ読み出しを行うには、他方のバッファへのデータ書き込みが終了している必要がある（動作上の制約）。この場合、ダブルバッファの容量を大きくすれば、一方のバッファへの書き込み終了前であっても他方のバッファからの読み出しを行うことは可能である。しかし、ダブルバッファの容量を大きくすると１回のバッファを読み出すまでの時間が長くなるため、転送速度に問題が生じてしまう。例えば、バッファの容量を２０４８バイトとし、データ書き込みを１０ＭＨｚのクロック（１００ｎｓの周期）で１バイト分行うと、読み出しを開始できるまでに要する時間は１００ｎｓ×２０４８＝２０４．８μｓとなる。このように従来例では、バッファの容量を大きくすると、読み出し開始までの時間が長くなり、転送速度が損なわれる。
【００４８】
これに対し、本実施形態では（図４（ｂ）参照）、ダブルバッファ１１（バッファＡ、バッファＢ）の後段にＦＩＦＯメモリ１２を配置し、このＦＩＦＯメモリ１２に各バッファＡ，Ｂからの読み出しデータ（転送データ）を蓄えることができるので、ダブルバッファ１１の容量を大きくしなくても、一方のバッファへの書き込み終了前でも他方のバッファからの読み出しを行うことができる。言い換えると、ダブルバッファ１１の容量を小さくしてもその小さくなった容量分はＦＩＦＯメモリ１２の容量を増やすことで対応が可能なため、上記の転送速度の問題を解消することができる。例えば、バッファの容量を８バイト（従来例の１／２５６の容量）とし、データ書き込みを１０ＭＨｚのクロック（１００ｎｓの周期）で１バイト分行うと、読み出しを開始できるまでに要する時間は１００ｎｓ×８＝８００ｎｓとなる。つまり、従来例と比べてバッファの容量が小さくなった分、読み出し開始までに要する時間を短縮することができ、転送速度の向上に寄与することができる。
【００４９】
また、本実施形態に係るバッファメモリ装置１０によれば、従来の同期式のＦＩＦＯメモリ及び非同期式のＦＩＦＯメモリが呈している問題点を解消することができる。
【００５０】
すなわち、従来の同期式のＦＩＦＯメモリでは、「同期化」を行うにはＰＬＬ回路等をＦＩＦＯメモリ（ＬＳＩチップ）内に設ける必要があり、このため、ゲート数の増加やそれに伴う消費電力の増大、チップサイズの大型化、チップ単価のコストアップといった問題があったが、本実施形態では、高速データを受信するためにＬＳＩの動作周波数を高くする必要がないので、上記の問題点を解消することができる。
【００５１】
また、従来の非同期式のＦＩＦＯメモリでは、データの書き込み側と読み出し側の動作タイミングが一定ではないため、シミュレーションによる検証が非常に困難であり、検証期間の長期化やバグの発生、開発期間の長期化やそれに伴う開発コストの増大といった問題があったが、本実施形態では、同期化を行っている制御信号が一つであることや動作タイミングがほぼ一定であるため、シミュレーションによる検証が容易になり、上記の問題点を解消することができる。
【００５２】
図５は、本実施形態に係るバッファメモリ装置１０を車載のデータ転送システムに適用した場合の構成例を示したものである。図示の例では、本実施形態のバッファメモリ装置１０をＡＳＩＣ（特定用途向けＬＳＩ）２０に内蔵し、このＡＳＩＣ２０を、データ供給元である書き込み側のデバイス（３．５世代のＤＶＤドライブ２１）とデータ供給先である読み出し側のデバイス（ナビゲーションユニット２２）の間に介在させた場合のシステム構成を示している。また、ＡＳＩＣ２０には発振器２３が接続されている。このＡＳＩＣ２０は、オーディオ／ビデオ（Ａ／Ｖ）データ転送用のインタフェース（図示せず）を介してＤＶＤドライブ２１にバス接続され、ＳＲＡＭインタフェース（図示せず）を介してナビゲーションユニット２２にバス接続されている。また、ＤＶＤドライブ２１とナビゲーションユニット２２の間は専用の通信回線を介して接続されている。
【００５３】
このシステム構成において、ナビゲーションユニット２２は、ＤＶＤドライブ２１をシリアル通信で制御している。ナビゲーションユニット２２が、ＤＶＤドライブ２１に搭載されている地図ディスク（ＤＶＤ−ＲＯＭ）を読み出すように制御を行うと、Ａ／Ｖインタフェースを介してバスに地図ディスクのデータが出力される。
【００５４】
この地図ディスクのデータは、図示のように１６．９ＭＨｚのクロックに同期してＡＳＩＣ２０（バッファメモリ装置１０）に入力される。このＡＳＩＣ２０は、発振器２３が出力している３３ＭＨｚのクロックに同期して動作しているため、書き込み側の１６．９ＭＨｚのタイミングに合わせることができない。
【００５５】
そこで、本実施形態のバッファメモリ装置１０を用いて、ＤＶＤドライブ２１（データ供給元）からダブルバッファ１１（図１）に取り込んだ１６．９ＭＨｚのデータを、上記のデータ書き込み／読み出し制御部１３〜１７によるクロックの周波数変換処理により、読み出し側のクロックのタイミング（３３ＭＨｚ）で読み出してＦＩＦＯメモリ１２にいったん書き込む。このＦＩＦＯメモリ１２上のデータはクロックに依存しないため、書き込み側（ダブルバッファ１１）から転送されてきた当該データを３３ＭＨｚのタイミングに合わせて順次読み出し、ナビゲーションユニット２２（データ供給先）に転送することができる。
【００５６】
上述した実施形態では、本発明に係るバッファメモリ装置を車載用に適用した場合を例にとって説明したが、本発明の要旨からも明らかなように、車載用に限定されないことはもちろんである。要は、本装置を介在して接続されるデータ書き込み側のデバイスとデータ読み出し側のデバイスとで動作周波数（クロック）の違いがある場合において両者間でデータ転送の際にバッファリングを行う必要がある状況下にあれば、本発明は、一般的な各種データ転送システムにも広く適用することが可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態に係るバッファメモリ装置の構成を示すブロック図である。
【図２】図１のバッファメモリ装置の基本動作を説明するための図である。
【図３】図１のバッファメモリ装置の具体的な動作の一例を示すタイミング波形図である。
【図４】図１のバッファメモリ装置による効果を従来例と比較して説明するための図である。
【図５】図１のバッファメモリ装置を車載のデータ転送システムに適用した場合の構成例を示すブロック図である。
【符号の説明】
【００５８】
１０…バッファメモリ装置、
１１…ダブルバッファ（バッファＡ、バッファＢ）、
１２…ＦＩＦＯメモリ、
１３…書き込み用カウンタ（第１のカウンタ）、
１４…読み出し用カウンタ（第２のカウンタ）、
１５…ステータス信号生成回路（第１の機能ブロック）、
１６…データ転送制御回路（第２の機能ブロック）、
１７…カウンタ（第３のカウンタ）、
２０…ＡＳＩＣ（ＬＳＩ）、
２１…ＤＶＤドライブ（データ供給元）、
２２…車載ナビゲーションユニット（データ供給先）、
２３…発振器、
ＢＲＳ…バッファ読み出し信号、
ＢＷＳ…バッファ書き込み信号、
ＣＫ１，ＣＫ２…動作周波数（クロック）、
ＥＦ…ＦＩＦＯメモリのエンプティフラグ、
ＦＦ…ＦＩＦＯメモリのフルフラグ、
ＦＲＳ…ＦＩＦＯ読み出し信号、
ＦＷＳ…ＦＩＦＯ書き込み信号、
ＲＡＤ…読み出しアドレス、
ＲＥＦ…読み出し終了フラグ（状態指示信号）、
ＷＡＤ…書き込みアドレス、
ＷＥＦ…書き込み終了フラグ（状態指示信号）、
ＷＳＳ…書き込み停止信号。
【図１】
2007065948.tif 000003
【図２】
2007065948.tif 000004
【図３】
2007065948.tif 000005
【図４】
2007065948.tif 000006
【図５】
2007065948.tif 000007