(57)【要約】【課題】有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減できるバッファ回路等を提供する。【解決手段】データ保持部は、バッファ領域が２つのバッファ部Ａ，Ｂ（４１，４２）で構成されている。書き込み制御部２は、ｗｐ生成部２１により書き込みポインタｗｐを生成して、データ保持部４への書き込み動作を制御し、一方、読み出し制御部３は、ｒｐ生成部３１により読み出しポインタｒｐを生成して、データ保持部４からの読み出し動作を制御する。そして、バッファ制御部１は、データ保持部４における有効データ量をカウントし、カウントした有効データ量が最大バッファ容量Ｎ未満であれば、バッファ部Ｂ４２へのｃｌｋＢの供給を停止する。つまり、有効データ量に応じて、バッファ容量を動的に変化させる。【選択図】図１
2007272577.tif 000002
【特許請求の範囲】
【請求項１】
外部からの書き込み要求に対してデータをバッファ領域に順次格納すると共に、外部からの読み出し要求に対して書き込まれた順序でバッファ領域からデータを読み出すＦＩＦＯバッファを制御するバッファ回路であって、
前記ＦＩＦＯバッファにて、書き込まれていて読み出されていない有効データ量に応じて、使用するバッファ領域の容量を動的に変化させることを特徴とするバッファ回路。
【請求項２】
容量を変化させた際の書き込みポインタの値を、バッファ切り替えポインタとして保持し、当該バッファ切り替えポインタの値により、使用しているバッファ領域の容量内で、書き込み及び読み出しポインタを生成するポインタ生成部を備えており、
前記ポインタ生成部により生成される書き込み及び読み出しポインタに従って、容量を動的に変化させたバッファ領域の書き込み及び読み出しを行う、
ことを特徴とする請求項１に記載のバッファ回路。
【請求項３】
未使用のバッファ領域に対してクロック供給を停止することを特徴とする請求項１又は２に記載のバッファ回路。
【請求項４】
データを記憶するための複数のバッファ部を有するバッファ手段と、
前記バッファ手段にデータを書き込む書き込み手段と、
前記書き込み手段により書き込まれたデータを前記バッファ手段から読み出す読み出し手段と、
前記バッファ手段に記憶される有効データ量に基づいて、少なくとも１つの前記バッファ部を動作状態若しくは停止状態に制御し、前記バッファ手段の容量を動的に変化させる制御手段と、
を備えることを特徴とするバッファ回路。
【請求項５】
前記制御手段は、前記バッファ手段に記憶される有効データ量が、予め規定された基準値未満である場合に、使用されていない前記バッファ部の動作を停止させ、
前記書き込み手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対象として、前記バッファ手段へデータを書き込み、
前記読み出し手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対処として、前記バッファ手段からデータを読み出す、
ことを特徴とする請求項４に記載のバッファ回路。
【請求項６】
前記制御手段は、前記バッファ部の動作に必要なクロックの供給／停止を制御し、少なくとも１つの前記バッファ部を、動作状態若しくは停止状態に制御する、
ことを特徴とする請求項４又は５に記載のバッファ回路。
【請求項７】
データを記憶するための複数のバッファ部を有するデータ保持部と、当該データ保持部にデータを書き込む書き込み制御部と、当該書き込み制御部により書き込まれたデータを当該データ保持部から読み出す読み出し制御部と、を備えた回路のバッファ制御方法であって、
前記データ保持部に記憶される有効データ量に基づいて、少なくとも１つの前記バッファ部を動作状態若しくは停止状態に制御し、前記データ保持部の容量を動的に変化させる、
ことを特徴とするバッファ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減できるバッファ回路、および、バッファ制御方法に関する。
【背景技術】
【０００２】
一般に、ハードディスクなどの入出力装置と、メモリ等との間において、バッファ回路を介したデータ転送が行われている。
一例として、従来のＦＩＦＯ（First-In First-Out）バッファ回路の構成を図１３に示す。図示するように、このＦＩＦＯバッファ回路は、書き込み制御部５と、読み出し制御部６と、データ保持部７とを備えて構成される。
【０００３】
書き込み制御部５は、ｗｐ生成部５１を有しており、外部からの書き込み指示によりｗｐ（書き込みポインタ）を生成し、データ保持部７へのデータ書き込みを行う。
読み出し制御部６は、ｒｐ生成部６１を有しており、外部からの読み出し指示によりｒｐ（読み出しポインタ）を生成し、データ保持部７からのデータ読み出しを行う。
データ保持部７は、容量Ｎのバッファ領域（バッファ部Ａ７１，バッファ部Ｂ７２）を有しており、データの書き込み／保持／読み出しを行う。
なお、各部には、外部から同期用のｃｌｋ（クロック）が供給される。
以下、これら各構成の詳細について、それぞれ図面を参照して説明する。
【０００４】
まず、書き込み制御部５の詳細について、図１４を参照して説明する。
書き込み制御部５は、書き込み指示ｗｅ５３が１（high）である場合に、書き込みデータｗｄ５２の値を、書き込みポインタｗｐ５４で指定されるバッファ領域に書き込むように制御する。
また、ｗｐ生成部５１は、バッファ領域への書き込み先を示す書き込みポインタｗｐ５４の生成を行う。この書き込みポインタｗｐ５４は、具体的に、書き込み指示ｗｅ５３が１の場合に、次のタイミング（ｃｌｋ）で加算器５５によって＋１される。
なお、書き込みポインタｗｐ５４は、最大バッファ容量Ｎのリングカウンタ（周期Ｎのカウンタ）で実現される。
【０００５】
次に、読み出し制御部６の詳細について、図１５を参照して説明する。
読み出し制御部６は、読み出し指示ｒｅ６３が１である場合に、読み出しポインタｒｐ６４で指定されるバッファ領域から、データを読み出すように制御する。つまり、読み出し指示ｒｅ６３が１である場合が、読み出しデータｒｄ６２の有効タイミングである。
また、ｒｐ生成部６１は、バッファ領域からの読み出し先を示す読み出しポインタｒｐ６４の生成を行う。具体的に読み出しポインタｒｐ６４は、読み出し指示ｒｅ６３が１の場合に、次のタイミングで加算器６５によって＋１される。
なお、読み出しポインタｒｐ６４も、最大バッファ容量Ｎのリングカウンタで実現される。
【０００６】
続いて、データ保持部７の詳細について、図１６を参照して説明する。なお、一例として、バッファ領域が２つのバッファ部Ａ，Ｂ（７１，７２）で構成されている場合を説明する。
バッファ部Ａ７１は、ｃｌｋＡで示されるタイミングに従い、ｗｅＡが１の場合に、ｗｐＡで示されるバッファ領域にデータｗｄＡを書き込む。また、ｃｌｋＡで示されるタイミングに従い、ｒｐＡで示されるバッファ領域からデータを読み出しｒｄＡとして出力する。
バッファＢ７２も同様に、ｃｌｋＢで示されるタイミングに従い、ｗｅＢが１の場合にｗｐＢで示されるバッファ領域にデータｗｄＢを書き込む。また、ｃｌｋＢで示されるタイミングに従い、ｒｐＢで示されるバッファ領域からデータを読み出しｒｄＢとして出力する。
【０００７】
データ保持部７は、入力されるｗｅおよびｗｐの最上位ビットを用いて、バッファ部Ａ７１への書き込み指示（アンド回路７３の出力）および、バッファ部Ｂ７２への書き込み指示（アンド回路７４の出力）を生成する。
また、データ保持部７は、入力されるｒｐの最上位ビットを用いて、バッファ部Ａ７１からの読み出しデータｒｄＡ、もしくは、バッファ部Ｂ７２からの読み出しデータｒｄＢを選択して読み出しデータｒｄ（セレクタ７５の出力）を生成する。
【０００８】
以下、このような構成からなる従来のＦＩＦＯバッファ回路の動作について、図１７のタイムチャートを参照して説明する。なお、理解を容易にするために、最大バッファ容量Ｎを１６とし、ｗｐ／ｒｐが４ビット（０から１５）のリングカウンタとなっている場合を一例として説明する。
【０００９】
図示するように、タイミング（時刻）０でＷＥに１が与えられると、タイミング１でｗｅが１に変化し、ｗｐが０であるため、バッファ部Ａ７１にデータを書き込み、タイミング２でｗｐが＋１される。
また、タイミング１でＲＥに１が与えられると、タイミング２でｒｅが１に変化し、ｒｐが０であるためバッファ部Ａ７１からデータを読み出し、タイミング３でｒｐが＋１される。
【００１０】
その後、タイミング１０でＷＥに１が与えられると、タイミング１１でｗｅが１に変化し、ｗｐが８（最上位ビットが１）であるため、バッファ部Ｂ７２にデータを書き込む。また、タイミング１３でｒｐが８であるため、バッファ部Ｂ７２からデータを読み出す。更に、タイミング２０でｗｐが０に戻ると、バッファ部Ａ７１にデータを書き込み、同様に、タイミング２３でｒｐが０に戻ると、バッファ部Ａ７１からデータを読み出す。
【００１１】
このようなＦＩＦＯバッファ（ＦＩＦＯメモリ）を用いたデータ転送制御装置の技術も開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００３−３６１４５公報  （第３−５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述したように、ＦＩＦＯバッファは、周期Ｎのカウンタを用いて記憶領域をリング状に構成することで実現されている。このため、従来のＦＩＦＯバッファ回路においては、幾つかの課題が指摘されていた。
第１の課題は、最大バッファ容量Ｎのリングカウンタを単純に用いて制御を行っているため、バッファ容量Ｎが固定されたものであり、その容量を動的に変化させることができないということである。
また、第２の課題は、有効データ量（書き込まれていて、読み出されていないバッファ領域のデータ残量）に応じた制御が行われていないため、不要なバッファ部であっても常に動作し、消費電力が低減できないということである。
【００１３】
本発明は、上記実状に鑑みてなされたもので、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減できるバッファ回路、および、バッファ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の第１の観点に係るバッファ回路は、
外部からの書き込み要求に対してデータをバッファ領域に順次格納すると共に、外部からの読み出し要求に対して書き込まれた順序でバッファ領域からデータを読み出すＦＩＦＯバッファを制御するバッファ回路であって、
前記ＦＩＦＯバッファにて、書き込まれていて読み出されていない有効データ量に応じて、使用するバッファ領域の容量を動的に変化させることを特徴とする。
【００１５】
この発明によれば、書き込まれていて読み出されていない有効データ量に応じて、使用するバッファ領域の容量を動的に変化させる。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【００１６】
上記バッファ回路は、
容量を変化させた際の書き込みポインタの値を、バッファ切り替えポインタとして保持し、当該バッファ切り替えポインタの値により、使用しているバッファ領域の容量内で、書き込み及び読み出しポインタを生成するポインタ生成部を備えており、
前記ポインタ生成部により生成される書き込み及び読み出しポインタに従って、容量を動的に変化させたバッファ領域の書き込み及び読み出しを行ってもよい。
【００１７】
上記バッファ回路は、未使用のバッファ領域に対してクロック供給を停止してもよい。
【００１８】
上記目的を達成するため、本発明の第２の観点に係るバッファ回路は、
データを記憶するための複数のバッファ部を有するバッファ手段と、
前記バッファ手段にデータを書き込む書き込み手段と、
前記書き込み手段により書き込まれたデータを前記バッファ手段から読み出す読み出し手段と、
前記バッファ手段に記憶される有効データ量に基づいて、少なくとも１つの前記バッファ部を動作状態若しくは停止状態に制御し、前記バッファ手段の容量を動的に変化させる制御手段と、
を備えることを特徴とする。
【００１９】
この発明によれば、バッファ手段は、データを記憶するための複数のバッファ部を有している。書き込み手段は、バッファ手段にデータを書き込み、一方、読み出し手段は、書き込み手段により書き込まれたデータをバッファ手段から読み出す。そして、制御手段は、バッファ手段に記憶される有効データ量に基づいて、少なくとも１つのバッファ部を動作状態若しくは停止状態に制御し、バッファ手段の容量を動的に変化させる。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【００２０】
前記制御手段は、前記バッファ手段に記憶される有効データ量が、予め規定された基準値未満である場合に、使用されていない前記バッファ部の動作を停止させ、
前記書き込み手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対象として、前記バッファ手段へデータを書き込み、
前記読み出し手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対処として、前記バッファ手段からデータを読み出してもよい。
【００２１】
前記制御手段は、前記バッファ部の動作に必要なクロックの供給／停止を制御し、少なくとも１つの前記バッファ部を、動作状態若しくは停止状態に制御してもよい。
【００２２】
上記目的を達成するため、本発明の第３の観点に係るバッファ制御方法は、
データを記憶するための複数のバッファ部を有するデータ保持部と、当該データ保持部にデータを書き込む書き込み制御部と、当該書き込み制御部により書き込まれたデータを当該データ保持部から読み出す読み出し制御部と、を備えた回路のバッファ制御方法であって、
前記データ保持部に記憶される有効データ量に基づいて、少なくとも１つの前記バッファ部を動作状態若しくは停止状態に制御し、前記データ保持部の容量を動的に変化させる、
ことを特徴とする。
【００２３】
この発明によれば、データ保持部に記憶される有効データ量に基づいて、少なくとも１つのバッファ部を動作状態若しくは停止状態に制御し、データ保持部の容量を動的に変化させる。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【発明の効果】
【００２４】
本発明によれば、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【発明を実施するための最良の形態】
【００２５】
本発明の実施形態にかかるバッファ回路について、図面を参照して説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２６】
図１は、この発明の実施形態に適用されるＦＩＦＯバッファ回路の構成の一例を示す模式図である。
図示するように、このＦＩＦＯバッファ回路は、バッファ制御部１と、書き込み制御部２と、読み出し制御部３と、データ保持部４とを備えて構成される。
【００２７】
バッファ制御部１は、クロック制御部１１、バッファ部Ｂ有効フラグ１２、バッファ切り替えポインタ保持部１３、及び、有効データ量カウンタ１４を有しており、書き込み制御部２における書き込み動作を制御する信号や、読み出し制御部３における読み出し動作を制御する信号を生成すると共に、データ保持部４の各バッファ部（４１，４２）にクロック（ｃｌｋＡ．ｃｌｋＢ）を供給する。
書き込み制御部２は、ｗｐ生成部２１を有しており、データ保持部４への書き込み動作を制御する。
読み出し制御部３は、ｒｐ生成部３１を有しており、データ保持部４からの読み出し動作を制御する。
データ保持部４は、最大バッファ容量Ｎのバッファ領域（バッファ部Ａ４１，バッファ部Ｂ４２）を有しており、データの書き込み／保持／読み出しを行う。
なお、バッファ制御部１、書き込み制御部２、及び、読み出し制御部３には、外部から同期用のｃｌｋ（クロック）が供給される。
以下、これら各構成の詳細について、それぞれ図面を参照して説明する。
【００２８】
まず、書き込み制御部２の詳細について、図２を参照して説明する。
書き込み制御部２は、書き込み指示ｗｅ２３が１である場合に、書き込みデータｗｄ２２の値を、書き込みポインタｗｐ２４で指定されるバッファ領域に書き込むように制御する。
また、ｗｐ生成部２１は、バッファ領域への書き込み先を示す書き込みポインタｗｐ２４の生成を行う。具体的に書き込みポインタｗｐ２４は、書き込み指示ｗｅ２３が１（high）の場合に、次のタイミング（ｃｌｋ）で加算器２５によって＋１される。
ところで、書き込みポインタｗｐ２４の最上位ビットは、データ保持部４の各バッファ部（４１，４２）何れへの書き込みであるかを示すビットである。具体的には、最上位ビットが０の場合に、バッファ部Ａ４１への書き込みであることを示し、一方、１の場合に、バッファ部Ｂ４２へ書き込みであることを示す。
【００２９】
本願発明の特徴となる、有効データ量に応じて動的にバッファ容量を変化させる仕組みは、この最上位ビットを工夫して、有効データ量が少ない場合にバッファＢ４２を使用しないことで実現される。
より詳細には、書き込みポインタｗｐ２４の最上位ビットの変化点を、オア回路２９の出力（high）により制御可能とする。つまり、バッファＢ有効フラグ（後述するｆｌｇ）が１、かつ、切り替えポインタ値（後述するｐｎｔ）と書き込みポインタｗｐ２４の最上位ビットを除いた値とが一致した場合（アンド回路２８の出力が１の場合）、もしくは、バッファＢ有効フラグ点灯タイミング（ｆｌｇが０から１に変化した場合）に、ノット回路２６の出力がセレクタ２００にて選択され、書き込みポインタｗｐ２４の最上位ビットが変化する。
【００３０】
次に、読み出し制御部３の詳細について、図３を参照して説明する。
読み出し制御部３は、読み出し指示ｒｅ３３が１である場合に、読み出しポインタｒｐ３４で指定されるバッファ領域から、データを読み出すように制御する。つまり、読み出し指示ｒｅ３３が１である場合が、読み出しデータｒｄ３２の有効タイミングである。
また、ｒｐ生成部３１は、バッファ領域からの読み出し先を示す読み出しポインタｒｐ３４の生成を行う。具体的に読み出しポインタｒｐ３４は、読み出し指示ｒｅ３３が１の場合に、次のタイミングで加算器３５によって＋１される。
【００３１】
読み出し制御部３でも、上述した書き込み制御部２と同様に、この最上位ビットを工夫して、有効データ量が少ない場合にはバッファ部Ｂ４２を使用しないことで動的にバッファ容量を変化させる。
より詳細には、読み出しポインタｒｐ３４の最上位ビットの変化点を、アンド回路３８の出力（high）により制御可能とする。つまり、バッファＢ有効フラグが１、かつ、切り替えポインタ値と読み出しポインタｒｐ３４の最上位ビットを除いた値とが一致した場合に、ノット回路３６の出力がセレクタ３００にて選択され、読み出しポインタｒｐ３４の最上位ビットが変化する。
【００３２】
続いて、データ保持部４の詳細について、図４を参照して説明する。なお、一例として、バッファ領域が２つのバッファ部Ａ，Ｂ（４１，４２）で構成されている場合を説明する。
バッファ部Ａ４１は、ｃｌｋＡで示されるタイミングに従い、ｗｅＡが１の場合に、ｗｐＡで示されるバッファ領域にデータｗｄＡを書き込む。また、ｃｌｋＡで示されるタイミングに従い、ｒｐＡで示されるバッファ領域からデータを読み出しｒｄＡとして出力する。
バッファＢ４２も同様に、ｃｌｋＢで示されるタイミングに従い、ｗｅＢが１の場合にｗｐＢで示されるバッファ領域にデータｗｄＢを書き込む。また、ｃｌｋＢで示されるタイミングに従い、ｒｐＢで示されるバッファ領域からデータを読み出しｒｄＢとして出力する。
【００３３】
データ保持部４は、入力されるｗｅおよびｗｐの最上位ビットを用いて、バッファ部Ａ４１への書き込み指示（アンド回路４３の出力）および、バッファ部Ｂ４２への書き込み指示（アンド回路４４の出力）を生成する。
また、データ保持部４は、入力されるｒｐの最上位ビットを用いて、バッファ部Ａ４１の読み出しデータｒｄＡ、もしくは、バッファ部Ｂ４２の読み出しデータｒｄＢを選択して読み出しデータｒｄ（セレクタ４５の出力）を生成する。
【００３４】
続いて、バッファ制御部１の詳細について、図５を参照して説明する。
有効データ量カウンタ１４は、アップダウンカウンタであり、ＷＥが１の場合にカウントアップ、ＲＥが１の場合にカウントダウンされる。
バッファ部Ｂ有効フラグ１２は、バッファ部Ｂ４２が有効であることを示すフラグである。具体的には、有効データ量カウンタ１４の値がＮ／２（Ｎは最大バッファ量）と等しいと比較器１６により判定された場合に、アンド回路１７によって１がセットされる。一方、ｗｐとバッファ切り替えポインタ保持部１３で保持されているポインタ値との一致が比較器１９により判定され、かつ、有効データ量カウンタ１４の値がＮ／２未満であると比較器１５により判定された場合に、アンド回路１８によって０にリセットされる。
【００３５】
バッファ切り替えポインタ保持部１３は、バッファ部Ｂ有効フラグ１２が０から１に変化するタイミング（アンド回路１７のセットタイミング）におけるｗｐの値を保持する。
これはリングカウンタを使用してＦＩＦＯ制御を行っているので、バッファ部Ｂ有効フラグ１２が０から１に変化するタイミング、つまりバッファ部Ａ４１の領域がすべて有効データとなるタイミングのｗｐの値が一意に決まらないため、以降のｗｐ生成／ｒｐ生成の際に利用することを目的に保持する。
クロック制御部１１は、バッファ部Ｂ有効フラグ１２の値により、バッファ部Ａ４１およびバッファ部Ｂ４２へのクロック供給を行う。
【００３６】
このバッファ制御部１の詳細について、更に、図６を参照して説明する。
有効データ量カウンタ１４は、ｃｎｔ１４１の値を、ＷＥが１の場合にカウントアップし、ＲＥが１の場合にカウントダウンする。
バッファ部Ｂ有効フラグ１２は、アンド回路１７から１が出力されると（ｆｌｇ１２１が０の状態で、ｃｎｔ１４１の値がＮ／２と等しくなると）、ｆｌｇ１２１のフラグを立てる（１をセットする）。一方、アンド回路１８から１が出力されると（ｗｐとｐｎｔ１３１とが一致し、かつ、ｃｎｔ１４１の値がＮ／２未満であると）、ｆｌｇ１２１のフラグを下げる（０にリセットする）。
バッファ切り替えポインタ保持部１３は、アンド回路１７から１が出力されると（ｆｌｇ１２１が０から１に変化するタイミングで）、ｗｐの値をｐｎｔ１３１として保持する。
クロック制御部１１は、アンド回路１１１によってｆｌｇ１２１が１の場合にだけ、ｃｌｋからｃｌｋＢを生成して出力する。また、クロック制御部１１は、ｃｌｋをそのままｃｌｋＡとして出力する。
【００３７】
以下、このような構成のＦＩＦＯバッファ回路の動作について、図７〜９のタイムチャートを参照して説明する。なお、発明の理解を容易にするために、最大バッファ容量Ｎを１６とし、バッファ部Ｂ４２の使用時に、ｗｐ／ｒｐが０から１５のリングカウンタとなり、バッファ部Ｂ４２の不使用時に、ｗｐ／ｒｐが０から７のリングカウンタとなる場合を一例として説明する。
【００３８】
まず、図７を参照して、有効データ量カウンタ１４の値が少ない状態でのＦＩＦＯバッファ回路の動作を説明する。
図示するように、タイミング（時刻）０でＷＥに１が与えられると、タイミング１でｗｅは１に変化し、ｗｐが０であるため、バッファ部Ａ４１にデータを書き込み、タイミング２でｗｐは＋１される。
また、タイミング１でＲＥに１が与えられると、タイミング２でｒｅは１に変化し、ｒｐが０であるためバッファ部Ａ４１からデータを読み出し、タイミング３でｒｐは＋１される。
なお、有効データ量カウンタ１４（バッファ制御部１）は、タイミング０でＷＥに１が与えられるので、タイミング１でｃｎｔ（ｃｎｔ１４１）が＋１され１となり、一方、タイミング１でＲＥに１が与えられるので、タイミング２でｃｎｔが−１され０となる。
【００３９】
このように、ｃｎｔの値が、Ｎ／２（つまり、８）に達していないため、ｆｌｇ（ｆｌｇ１２１）が０（low）のままとなり、ｃｌｋＢは停止している。つまり、バッファ部Ｂ４２は、使用されていない（動作していない）。
【００４０】
次に、図８を参照して、有効データ量カウンタ１４の値が増加した状態でのＦＩＦＯバッファ回路の動作を説明する。
図示するように、タイミング（時刻）０ですでにｃｎｔ（ｃｎｔ１４１）が４となっており、以降書き込みを続けることにより、タイミング４でｃｎｔの値は８となる。このようにｃｎｔの値が、最大容量１６の半分（Ｎ／２）の８となったことにより、タイミング５で、ｆｌｇ（ｆｌｇ１２１）が１となり、バッファ部Ｂ４２へのｃｌｋＢの供給が開始される。
また、タイミング４でのｗｐの値である２が、タイミング５でｐｎｔ（ｐｎｔ１３１）に設定され保持される。同時にｗｐの最上位ビットが１に変化するため、＋１されたｗｐは１１を示すことになり、これ以降、バッファ部Ｂ４２が有効となる（バッファ部Ｂ４２が使用される）。
【００４１】
バッファ部Ｂ４２が有効となった後、タイミング１２でｗｐの値が１０となると、ｐｎｔで保持している値（つまり、切り替えポイント値）の２と、ｗｐの最上位ビットを除いた値の２（つまり、ビット表記で「×０１０」）とが一致しており、かつ、ｆｌｇが１であるため、タイミング１３で最上位ビットが反転され０に変化する。これにより、＋１されたｗｐは３を示すことになる。
一方、タイミング１６でｒｐの値が２となると、ｐｎｔで保持している値の２と、ｗｐの最上位ビットを除いても一致しており、かつ、ｆｌｇが１であるため、タイミング１７で最上位ビットが反転され１に変化する。これにより、＋１されたｒｐは１１を示すことになる。
【００４２】
このように、ｃｎｔの値が、Ｎ／２（つまり、８）に達すると、ｆｌｇが１となり、バッファ部Ｂ４２へのｃｌｋＢの供給が開始される。これ以降、バッファ部Ｂ４２にデータが書き込まれ、また、バッファ部Ｂ４２からデータが読み出されることになる。つまり、バッファ部Ｂ４２が、不使用状態から使用状態となる。
【００４３】
続いて、図９を参照して、増加した有効データ量カウンタ１４の値が逆に減少した状態でのＦＩＦＯバッファ回路の動作を説明する。
図示するように、タイミング（時刻）０でｃｎｔ（ｃｎｔ１４１）が１２であったが、以降読み出しを続けることにより、タイミング５から、Ｎ／２未満まで減少している。そして、タイミング１４でｗｐの値が２となると、ｐｎｔ（ｐｎｔ１３１）で保持している値の２と、ｗｐの最上位ビットを除いても一致しており、かつ、ｃｎｔの値がＮ／２未満の４であるため、タイミング１５でｆｌｇ（ｆｌｇ１２１）が０にリセットされ、バッファ部Ｂ４２へのｃｌｋＢの供給が停止される。また、ｆｌｇが０に変化したため、以降ｗｐは、最上位ビットが０のままで、通常に＋１される。
【００４４】
以上説明したように、ＦＩＦＯバッファ回路は、以下の効果を奏する。
第１の効果は、有効データ量に応じて、書き込み／読み出しを制御しているため、バッファ容量を動的に変化できることである。
第２の効果は、バッファ容量を動的に変化出来ることにより、不要なバッファ部の動作を停止できることである。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【００４５】
上記の実施形態では、ｃｌｋＢの供給開始と同時に、バッファ部Ｂ４２を有効とする（書き込み等を行う）場合について説明したが、バッファ部Ｂ４２を有効とする少し前から、ｃｌｋＢの供給を開始するようにしてもよい。つまり、事前にクロック供給を開始してバッファ部Ｂ４２を安定させてから、使用するようにしてもよい。
以下、その仕組みを、図１０，１１を参照して説明する。
【００４６】
バッファ制御部１において、有効データ量カウンタ１４の値を、比較器１５，１６だけで使用するのではなく、図１０に示すように、更に、有効データ量カウンタ１４の値をクロック制御部１１でも使用する。つまり、クロック制御部１１に有効データ量カウンタ１４の値を入力する。
【００４７】
より詳細には、図１１に示すように、クロック制御部１１は、上述したアンド回路１１１に加えて、比較器１１２及び、オア回路１１３を有している。
比較器１１２は、ｃｎｔ１４１の値と定数Ｍとを比較し、ｃｎｔ１４１の値が定数Ｍより大きければ、オア回路１１３に１を出力する。
オア回路１１３は、比較器１１２からの値とｆｌｇ１２１の値をオアして、アンド回路１１１に出力する。
これにより、クロック制御部１１は、アンド回路１１１によって、ｆｌｇ１２１が１の場合だけでなく、ｃｎｔ１４１の値が定数Ｍより大きければ、ｃｌｋからｃｌｋＢを生成して出力する。
【００４８】
このような構成のバッファ制御部１を採用したＦＩＦＯバッファ回路の動作について、図１２のタイムチャートを参照して説明する。なお、定数Ｍが５の場合を一例として説明する。なお、最大バッファ容量Ｎは、同様に１６とする。
【００４９】
図示するように、タイミング（時刻）２でｃｎｔ（ｃｎｔ１４１）が６となると、定数Ｍよりも大きくなるため、バッファ部Ｂ４２へのｃｌｋＢの供給が開始される。以降書き込みを続けることにより、タイミング４でｃｎｔの値が８となる。このようにｃｎｔの値が、Ｎ／２の８となったことにより、タイミング５で、ｆｌｇ（ｆｌｇ１２１）が１となる。
また、タイミング４でのｗｐの値である２が、タイミング５でｐｎｔ（ｐｎｔ１３１）に設定され保持される。同時にｗｐの最上位ビットが１に変化するため、＋１されたｗｐは１１を示すことになり、これ以降、バッファ部Ｂ４２が有効となる。
このように、バッファ部Ｂ４２を有効とする少し前から、ｃｌｋＢの供給を開始することで、バッファ部Ｂ４２を安定させてから使用することができる。
【００５０】
上記の実施形態では、バッファ領域が、２つのバッファ部Ａ，Ｂ（４１，４２）から構成される場合について説明したが、このバッファ部の数は一例であり、３つ以上であっても適宜適用可能である。
例えば、バッファ部Ａの代わりに、丁度半分の容量の２つのバッファ部Ａｘ，Ａｙを使用し（つまり、バッファ部Ａの容量＝バッファ部Ａｘの容量＋バッファ部Ａｙ）、バッファ領域が、３つのバッファ部Ａｘ，Ａｙ，Ｂから構成される場合について、簡単に説明する。
【００５１】
この例の場合、有効データ量カウンタ１４がＮ／４未満であればバッファ部Ａｘのみを使用し、有効データ量カウンタ１４がＮ／４に達すると、バッファ部Ａｙを有効にして使用する。更に、有効データ量カウンタ１４が２／４に達すると、バッファ部Ｂを有効にして使用する。
このように、バッファ領域が、３つのバッファ部から構成される場合でも、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【００５２】
以上説明したように、本発明によれば、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態に適用されるＦＩＦＯバッファ回路の構成の一例を示す模式図である。
【図２】書き込み制御部の構成の一例を示す模式図である。
【図３】読み出し制御部の構成の一例を示す模式図である。
【図４】データ保持部の構成の一例を示す模式図である。
【図５】バッファ制御部の構成の一例を示す模式図である。
【図６】バッファ制御部の詳細な構成の一例を示す模式図である。
【図７】有効データ量カウンタの値が少ない状態でのＦＩＦＯバッファ回路の動作を説明するためのタイムチャートである。
【図８】有効データ量カウンタの値が増加した状態でのＦＩＦＯバッファ回路の動作を説明するためのタイムチャートである。
【図９】増加した有効データ量カウンタの値が逆に減少した状態でのＦＩＦＯバッファ回路の動作を説明するためのタイムチャートである。
【図１０】他のバッファ制御部の構成の一例を示す模式図である。
【図１１】他のバッファ制御部の詳細な構成の一例を示す模式図である。
【図１２】他のバッファ制御部を採用したＦＩＦＯバッファ回路の動作を説明するためのタイムチャートである。
【図１３】従来のＦＩＦＯバッファ回路の構成の一例を示す模式図である。
【図１４】従来の書き込み制御部の構成の一例を示す模式図である。
【図１５】従来の読み出し制御部の構成の一例を示す模式図である。
【図１６】従来のデータ保持部の構成の一例を示す模式図である。
【図１７】従来のＦＩＦＯバッファ回路の動作を説明するためのタイムチャートである。
【符号の説明】
【００５４】
１    バッファ制御部
１１  クロック制御部
１２  バッファ部Ｂ有効フラグ
１３  バッファ切り替えポインタ保持部
１４  有効データ量カウンタ
２    書き込み制御部
２１  ｗｐ生成部
３    読み出し制御部
３１  ｒｐ生成部
４    データ保存部
４１  バッファ部Ａ
４２  バッファ部Ｂ
【図１】
2007272577.tif 000003
【図２】
2007272577.tif 000004
【図３】
2007272577.tif 000005
【図４】
2007272577.tif 000006
【図５】
2007272577.tif 000007
【図６】
2007272577.tif 000008
【図７】
2007272577.tif 000009
【図８】
2007272577.tif 000010
【図９】
2007272577.tif 000011
【図１０】
2007272577.tif 000012
【図１１】
2007272577.tif 000013
【図１２】
2007272577.tif 000014
【図１３】
2007272577.tif 000015
【図１４】
2007272577.tif 000016
【図１５】
2007272577.tif 000017
【図１６】
2007272577.tif 000018
【図１７】
2007272577.tif 000019