JP4893071B2 - バッファ回路、および、バッファ制御方法 - Google Patents

バッファ回路、および、バッファ制御方法 Download PDF

Info

Publication number
JP4893071B2
JP4893071B2 JP2006097595A JP2006097595A JP4893071B2 JP 4893071 B2 JP4893071 B2 JP 4893071B2 JP 2006097595 A JP2006097595 A JP 2006097595A JP 2006097595 A JP2006097595 A JP 2006097595A JP 4893071 B2 JP4893071 B2 JP 4893071B2
Authority
JP
Japan
Prior art keywords
buffer
unit
data
read
capacity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006097595A
Other languages
English (en)
Other versions
JP2007272577A (ja
Inventor
泰洋 西垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2006097595A priority Critical patent/JP4893071B2/ja
Priority to US11/729,824 priority patent/US7623395B2/en
Publication of JP2007272577A publication Critical patent/JP2007272577A/ja
Application granted granted Critical
Publication of JP4893071B2 publication Critical patent/JP4893071B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/063Dynamically variable buffer size

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Description

この発明は、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減できるバッファ回路、および、バッファ制御方法に関する。
一般に、ハードディスクなどの入出力装置と、メモリ等との間において、バッファ回路を介したデータ転送が行われている。
一例として、従来のFIFO(First-In First-Out)バッファ回路の構成を図13に示す。図示するように、このFIFOバッファ回路は、書き込み制御部5と、読み出し制御部6と、データ保持部7とを備えて構成される。
書き込み制御部5は、wp生成部51を有しており、外部からの書き込み指示によりwp(書き込みポインタ)を生成し、データ保持部7へのデータ書き込みを行う。
読み出し制御部6は、rp生成部61を有しており、外部からの読み出し指示によりrp(読み出しポインタ)を生成し、データ保持部7からのデータ読み出しを行う。
データ保持部7は、容量Nのバッファ領域(バッファ部A71,バッファ部B72)を有しており、データの書き込み/保持/読み出しを行う。
なお、各部には、外部から同期用のclk(クロック)が供給される。
以下、これら各構成の詳細について、それぞれ図面を参照して説明する。
まず、書き込み制御部5の詳細について、図14を参照して説明する。
書き込み制御部5は、書き込み指示we53が1(high)である場合に、書き込みデータwd52の値を、書き込みポインタwp54で指定されるバッファ領域に書き込むように制御する。
また、wp生成部51は、バッファ領域への書き込み先を示す書き込みポインタwp54の生成を行う。この書き込みポインタwp54は、具体的に、書き込み指示we53が1の場合に、次のタイミング(clk)で加算器55によって+1される。
なお、書き込みポインタwp54は、最大バッファ容量Nのリングカウンタ(周期Nのカウンタ)で実現される。
次に、読み出し制御部6の詳細について、図15を参照して説明する。
読み出し制御部6は、読み出し指示re63が1である場合に、読み出しポインタrp64で指定されるバッファ領域から、データを読み出すように制御する。つまり、読み出し指示re63が1である場合が、読み出しデータrd62の有効タイミングである。
また、rp生成部61は、バッファ領域からの読み出し先を示す読み出しポインタrp64の生成を行う。具体的に読み出しポインタrp64は、読み出し指示re63が1の場合に、次のタイミングで加算器65によって+1される。
なお、読み出しポインタrp64も、最大バッファ容量Nのリングカウンタで実現される。
続いて、データ保持部7の詳細について、図16を参照して説明する。なお、一例として、バッファ領域が2つのバッファ部A,B(71,72)で構成されている場合を説明する。
バッファ部A71は、clkAで示されるタイミングに従い、weAが1の場合に、wpAで示されるバッファ領域にデータwdAを書き込む。また、clkAで示されるタイミングに従い、rpAで示されるバッファ領域からデータを読み出しrdAとして出力する。
バッファB72も同様に、clkBで示されるタイミングに従い、weBが1の場合にwpBで示されるバッファ領域にデータwdBを書き込む。また、clkBで示されるタイミングに従い、rpBで示されるバッファ領域からデータを読み出しrdBとして出力する。
データ保持部7は、入力されるweおよびwpの最上位ビットを用いて、バッファ部A71への書き込み指示(アンド回路73の出力)および、バッファ部B72への書き込み指示(アンド回路74の出力)を生成する。
また、データ保持部7は、入力されるrpの最上位ビットを用いて、バッファ部A71からの読み出しデータrdA、もしくは、バッファ部B72からの読み出しデータrdBを選択して読み出しデータrd(セレクタ75の出力)を生成する。
以下、このような構成からなる従来のFIFOバッファ回路の動作について、図17のタイムチャートを参照して説明する。なお、理解を容易にするために、最大バッファ容量Nを16とし、wp/rpが4ビット(0から15)のリングカウンタとなっている場合を一例として説明する。
図示するように、タイミング(時刻)0でWEに1が与えられると、タイミング1でweが1に変化し、wpが0であるため、バッファ部A71にデータを書き込み、タイミング2でwpが+1される。
また、タイミング1でREに1が与えられると、タイミング2でreが1に変化し、rpが0であるためバッファ部A71からデータを読み出し、タイミング3でrpが+1される。
その後、タイミング10でWEに1が与えられると、タイミング11でweが1に変化し、wpが8(最上位ビットが1)であるため、バッファ部B72にデータを書き込む。また、タイミング13でrpが8であるため、バッファ部B72からデータを読み出す。更に、タイミング20でwpが0に戻ると、バッファ部A71にデータを書き込み、同様に、タイミング23でrpが0に戻ると、バッファ部A71からデータを読み出す。
このようなFIFOバッファ(FIFOメモリ)を用いたデータ転送制御装置の技術も開示されている(例えば、特許文献1参照)。
特開2003−36145公報 (第3−5頁、第1図)
上述したように、FIFOバッファは、周期Nのカウンタを用いて記憶領域をリング状に構成することで実現されている。このため、従来のFIFOバッファ回路においては、幾つかの課題が指摘されていた。
第1の課題は、最大バッファ容量Nのリングカウンタを単純に用いて制御を行っているため、バッファ容量Nが固定されたものであり、その容量を動的に変化させることができないということである。
また、第2の課題は、有効データ量(書き込まれていて、読み出されていないバッファ領域のデータ残量)に応じた制御が行われていないため、不要なバッファ部であっても常に動作し、消費電力が低減できないということである。
本発明は、上記実状に鑑みてなされたもので、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減できるバッファ回路、および、バッファ制御方法を提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係るバッファ回路は、
外部からの書き込み要求に対してデータをバッファ領域に順次格納すると共に、外部からの読み出し要求に対して書き込まれた順序でバッファ領域からデータを読み出すFIFOバッファを制御するバッファ回路であって、
前記FIFOバッファにて、書き込まれていて読み出されていない有効データ量に応じて、動作状態若しくは停止状態に制御することにより、使用するバッファ領域の容量を動的に変化させることを特徴とする。
この発明によれば、書き込まれていて読み出されていない有効データ量に応じて、動作状態若しくは停止状態に制御することにより、使用するバッファ領域の容量を動的に変化させる。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
上記バッファ回路は、
容量を変化させた際の書き込みポインタの値を、バッファ切り替えポインタとして保持し、当該バッファ切り替えポインタの値により、使用しているバッファ領域の容量内で、書き込み及び読み出しポインタを生成するポインタ生成部を備えており、
前記ポインタ生成部により生成される書き込み及び読み出しポインタに従って、容量を動的に変化させたバッファ領域の書き込み及び読み出しを行ってもよい。
上記バッファ回路は、ッファ領域に対するクロック供給若しくは停止を切り替えることにより、使用するバッファ領域の容量を動的に変化させてもよい。
上記目的を達成するため、本発明の第2の観点に係るバッファ回路は、
データを記憶するための複数のバッファ部を有するバッファ手段と、
前記バッファ手段にデータを書き込む書き込み手段と、
前記書き込み手段により書き込まれたデータを前記バッファ手段から読み出す読み出し手段と、
前記バッファ手段に書き込まれていて読み出されていない有効データ量に基づいて、少なくとも1つの前記バッファ部を動作状態若しくは停止状態に制御することにより、前記バッファ手段の容量を動的に変化させる制御手段と、
を備えることを特徴とする。
この発明によれば、バッファ手段は、データを記憶するための複数のバッファ部を有している。書き込み手段は、バッファ手段にデータを書き込み、一方、読み出し手段は、書き込み手段により書き込まれたデータをバッファ手段から読み出す。そして、制御手段は、バッファ手段に書き込まれていて読み出されていない有効データ量に基づいて、少なくとも1つのバッファ部を動作状態若しくは停止状態に制御することにより、バッファ手段の容量を動的に変化させる。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
前記制御手段は、前記バッファ手段に記憶される有効データ量が、予め規定された基準値未満である場合に、使用されていない前記バッファ部の動作を停止させ、
前記書き込み手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対象として、前記バッファ手段へデータを書き込み、
前記読み出し手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対象として、前記バッファ手段からデータを読み出してもよい。
前記制御手段は、前記バッファ手段に書き込まれていて読み出されていない有効データ量に基づいて、前記バッファ部の動作に必要なクロックの供給若しくは停止を切り替えて、少なくとも1つの前記バッファ部を、動作状態若しくは停止状態に制御することにより前記バッファ手段の容量を動的に変化させてもよい。
上記目的を達成するため、本発明の第3の観点に係るバッファ制御方法は、
データを記憶するための複数のバッファ部を有するデータ保持部と、当該データ保持部にデータを書き込む書き込み制御部と、当該書き込み制御部により書き込まれたデータを当該データ保持部から読み出す読み出し制御部と、を備えた回路のバッファ制御方法であって、
前記データ保持部に書き込まれていて読み出されていない有効データ量に基づいて、少なくとも1つの前記バッファ部を動作状態若しくは停止状態に制御することにより、前記データ保持部の容量を動的に変化させる、
ことを特徴とする。
この発明によれば、データ保持部に書き込まれていて読み出されていない有効データ量に基づいて、少なくとも1つのバッファ部を動作状態若しくは停止状態に制御することにより、データ保持部の容量を動的に変化させる。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
本発明によれば、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
本発明の実施形態にかかるバッファ回路について、図面を参照して説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、この発明の実施形態に適用されるFIFOバッファ回路の構成の一例を示す模式図である。
図示するように、このFIFOバッファ回路は、バッファ制御部1と、書き込み制御部2と、読み出し制御部3と、データ保持部4とを備えて構成される。
バッファ制御部1は、クロック制御部11、バッファ部B有効フラグ12、バッファ切り替えポインタ保持部13、及び、有効データ量カウンタ14を有しており、書き込み制御部2における書き込み動作を制御する信号や、読み出し制御部3における読み出し動作を制御する信号を生成すると共に、データ保持部4の各バッファ部(41,42)にクロック(clkA.clkB)を供給する。
書き込み制御部2は、wp生成部21を有しており、データ保持部4への書き込み動作を制御する。
読み出し制御部3は、rp生成部31を有しており、データ保持部4からの読み出し動作を制御する。
データ保持部4は、最大バッファ容量Nのバッファ領域(バッファ部A41,バッファ部B42)を有しており、データの書き込み/保持/読み出しを行う。
なお、バッファ制御部1、書き込み制御部2、及び、読み出し制御部3には、外部から同期用のclk(クロック)が供給される。
以下、これら各構成の詳細について、それぞれ図面を参照して説明する。
まず、書き込み制御部2の詳細について、図2を参照して説明する。
書き込み制御部2は、書き込み指示we23が1である場合に、書き込みデータwd22の値を、書き込みポインタwp24で指定されるバッファ領域に書き込むように制御する。
また、wp生成部21は、バッファ領域への書き込み先を示す書き込みポインタwp24の生成を行う。具体的に書き込みポインタwp24は、書き込み指示we23が1(high)の場合に、次のタイミング(clk)で加算器25によって+1される。
ところで、書き込みポインタwp24の最上位ビットは、データ保持部4の各バッファ部(41,42)何れへの書き込みであるかを示すビットである。具体的には、最上位ビットが0の場合に、バッファ部A41への書き込みであることを示し、一方、1の場合に、バッファ部B42へ書き込みであることを示す。
本願発明の特徴となる、有効データ量に応じて動的にバッファ容量を変化させる仕組みは、この最上位ビットを工夫して、有効データ量が少ない場合にバッファB42を使用しないことで実現される。
より詳細には、書き込みポインタwp24の最上位ビットの変化点を、オア回路29の出力(high)により制御可能とする。つまり、バッファB有効フラグ(後述するflg)が1、かつ、切り替えポインタ値(後述するpnt)と書き込みポインタwp24の最上位ビットを除いた値とが一致した場合(アンド回路28の出力が1の場合)、もしくは、バッファB有効フラグ点灯タイミング(flgが0から1に変化した場合)に、ノット回路26の出力がセレクタ200にて選択され、書き込みポインタwp24の最上位ビットが変化する。
次に、読み出し制御部3の詳細について、図3を参照して説明する。
読み出し制御部3は、読み出し指示re33が1である場合に、読み出しポインタrp34で指定されるバッファ領域から、データを読み出すように制御する。つまり、読み出し指示re33が1である場合が、読み出しデータrd32の有効タイミングである。
また、rp生成部31は、バッファ領域からの読み出し先を示す読み出しポインタrp34の生成を行う。具体的に読み出しポインタrp34は、読み出し指示re33が1の場合に、次のタイミングで加算器35によって+1される。
読み出し制御部3でも、上述した書き込み制御部2と同様に、この最上位ビットを工夫して、有効データ量が少ない場合にはバッファ部B42を使用しないことで動的にバッファ容量を変化させる。
より詳細には、読み出しポインタrp34の最上位ビットの変化点を、アンド回路38の出力(high)により制御可能とする。つまり、バッファB有効フラグが1、かつ、切り替えポインタ値と読み出しポインタrp34の最上位ビットを除いた値とが一致した場合に、ノット回路36の出力がセレクタ300にて選択され、読み出しポインタrp34の最上位ビットが変化する。
続いて、データ保持部4の詳細について、図4を参照して説明する。なお、一例として、バッファ領域が2つのバッファ部A,B(41,42)で構成されている場合を説明する。
バッファ部A41は、clkAで示されるタイミングに従い、weAが1の場合に、wpAで示されるバッファ領域にデータwdAを書き込む。また、clkAで示されるタイミングに従い、rpAで示されるバッファ領域からデータを読み出しrdAとして出力する。
バッファB42も同様に、clkBで示されるタイミングに従い、weBが1の場合にwpBで示されるバッファ領域にデータwdBを書き込む。また、clkBで示されるタイミングに従い、rpBで示されるバッファ領域からデータを読み出しrdBとして出力する。
データ保持部4は、入力されるweおよびwpの最上位ビットを用いて、バッファ部A41への書き込み指示(アンド回路43の出力)および、バッファ部B42への書き込み指示(アンド回路44の出力)を生成する。
また、データ保持部4は、入力されるrpの最上位ビットを用いて、バッファ部A41の読み出しデータrdA、もしくは、バッファ部B42の読み出しデータrdBを選択して読み出しデータrd(セレクタ45の出力)を生成する。
続いて、バッファ制御部1の詳細について、図5を参照して説明する。
有効データ量カウンタ14は、アップダウンカウンタであり、WEが1の場合にカウントアップ、REが1の場合にカウントダウンされる。
バッファ部B有効フラグ12は、バッファ部B42が有効であることを示すフラグである。具体的には、有効データ量カウンタ14の値がN/2(Nは最大バッファ量)と等しいと比較器16により判定された場合に、アンド回路17によって1がセットされる。一方、wpとバッファ切り替えポインタ保持部13で保持されているポインタ値との一致が比較器19により判定され、かつ、有効データ量カウンタ14の値がN/2未満であると比較器15により判定された場合に、アンド回路18によって0にリセットされる。
バッファ切り替えポインタ保持部13は、バッファ部B有効フラグ12が0から1に変化するタイミング(アンド回路17のセットタイミング)におけるwpの値を保持する。
これはリングカウンタを使用してFIFO制御を行っているので、バッファ部B有効フラグ12が0から1に変化するタイミング、つまりバッファ部A41の領域がすべて有効データとなるタイミングのwpの値が一意に決まらないため、以降のwp生成/rp生成の際に利用することを目的に保持する。
クロック制御部11は、バッファ部B有効フラグ12の値により、バッファ部A41およびバッファ部B42へのクロック供給を行う。
このバッファ制御部1の詳細について、更に、図6を参照して説明する。
有効データ量カウンタ14は、cnt141の値を、WEが1の場合にカウントアップし、REが1の場合にカウントダウンする。
バッファ部B有効フラグ12は、アンド回路17から1が出力されると(flg121が0の状態で、cnt141の値がN/2と等しくなると)、flg121のフラグを立てる(1をセットする)。一方、アンド回路18から1が出力されると(wpとpnt131とが一致し、かつ、cnt141の値がN/2未満であると)、flg121のフラグを下げる(0にリセットする)。
バッファ切り替えポインタ保持部13は、アンド回路17から1が出力されると(flg121が0から1に変化するタイミングで)、wpの値をpnt131として保持する。
クロック制御部11は、アンド回路111によってflg121が1の場合にだけ、clkからclkBを生成して出力する。また、クロック制御部11は、clkをそのままclkAとして出力する。
以下、このような構成のFIFOバッファ回路の動作について、図7〜9のタイムチャートを参照して説明する。なお、発明の理解を容易にするために、最大バッファ容量Nを16とし、バッファ部B42の使用時に、wp/rpが0から15のリングカウンタとなり、バッファ部B42の不使用時に、wp/rpが0から7のリングカウンタとなる場合を一例として説明する。
まず、図7を参照して、有効データ量カウンタ14の値が少ない状態でのFIFOバッファ回路の動作を説明する。
図示するように、タイミング(時刻)0でWEに1が与えられると、タイミング1でweは1に変化し、wpが0であるため、バッファ部A41にデータを書き込み、タイミング2でwpは+1される。
また、タイミング1でREに1が与えられると、タイミング2でreは1に変化し、rpが0であるためバッファ部A41からデータを読み出し、タイミング3でrpは+1される。
なお、有効データ量カウンタ14(バッファ制御部1)は、タイミング0でWEに1が与えられるので、タイミング1でcnt(cnt141)が+1され1となり、一方、タイミング1でREに1が与えられるので、タイミング2でcntが−1され0となる。
このように、cntの値が、N/2(つまり、8)に達していないため、flg(flg121)が0(low)のままとなり、clkBは停止している。つまり、バッファ部B42は、使用されていない(動作していない)。
次に、図8を参照して、有効データ量カウンタ14の値が増加した状態でのFIFOバッファ回路の動作を説明する。
図示するように、タイミング(時刻)0ですでにcnt(cnt141)が4となっており、以降書き込みを続けることにより、タイミング4でcntの値は8となる。このようにcntの値が、最大容量16の半分(N/2)の8となったことにより、タイミング5で、flg(flg121)が1となり、バッファ部B42へのclkBの供給が開始される。
また、タイミング4でのwpの値である2が、タイミング5でpnt(pnt131)に設定され保持される。同時にwpの最上位ビットが1に変化するため、+1されたwpは11を示すことになり、これ以降、バッファ部B42が有効となる(バッファ部B42が使用される)。
バッファ部B42が有効となった後、タイミング12でwpの値が10となると、pntで保持している値(つまり、切り替えポイント値)の2と、wpの最上位ビットを除いた値の2(つまり、ビット表記で「×010」)とが一致しており、かつ、flgが1であるため、タイミング13で最上位ビットが反転され0に変化する。これにより、+1されたwpは3を示すことになる。
一方、タイミング16でrpの値が2となると、pntで保持している値の2と、wpの最上位ビットを除いても一致しており、かつ、flgが1であるため、タイミング17で最上位ビットが反転され1に変化する。これにより、+1されたrpは11を示すことになる。
このように、cntの値が、N/2(つまり、8)に達すると、flgが1となり、バッファ部B42へのclkBの供給が開始される。これ以降、バッファ部B42にデータが書き込まれ、また、バッファ部B42からデータが読み出されることになる。つまり、バッファ部B42が、不使用状態から使用状態となる。
続いて、図9を参照して、増加した有効データ量カウンタ14の値が逆に減少した状態でのFIFOバッファ回路の動作を説明する。
図示するように、タイミング(時刻)0でcnt(cnt141)が12であったが、以降読み出しを続けることにより、タイミング5から、N/2未満まで減少している。そして、タイミング14でwpの値が2となると、pnt(pnt131)で保持している値の2と、wpの最上位ビットを除いても一致しており、かつ、cntの値がN/2未満の4であるため、タイミング15でflg(flg121)が0にリセットされ、バッファ部B42へのclkBの供給が停止される。また、flgが0に変化したため、以降wpは、最上位ビットが0のままで、通常に+1される。
以上説明したように、FIFOバッファ回路は、以下の効果を奏する。
第1の効果は、有効データ量に応じて、書き込み/読み出しを制御しているため、バッファ容量を動的に変化できることである。
第2の効果は、バッファ容量を動的に変化出来ることにより、不要なバッファ部の動作を停止できることである。
この結果、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
上記の実施形態では、clkBの供給開始と同時に、バッファ部B42を有効とする(書き込み等を行う)場合について説明したが、バッファ部B42を有効とする少し前から、clkBの供給を開始するようにしてもよい。つまり、事前にクロック供給を開始してバッファ部B42を安定させてから、使用するようにしてもよい。
以下、その仕組みを、図10,11を参照して説明する。
バッファ制御部1において、有効データ量カウンタ14の値を、比較器15,16だけで使用するのではなく、図10に示すように、更に、有効データ量カウンタ14の値をクロック制御部11でも使用する。つまり、クロック制御部11に有効データ量カウンタ14の値を入力する。
より詳細には、図11に示すように、クロック制御部11は、上述したアンド回路111に加えて、比較器112及び、オア回路113を有している。
比較器112は、cnt141の値と定数Mとを比較し、cnt141の値が定数Mより大きければ、オア回路113に1を出力する。
オア回路113は、比較器112からの値とflg121の値をオアして、アンド回路111に出力する。
これにより、クロック制御部11は、アンド回路111によって、flg121が1の場合だけでなく、cnt141の値が定数Mより大きければ、clkからclkBを生成して出力する。
このような構成のバッファ制御部1を採用したFIFOバッファ回路の動作について、図12のタイムチャートを参照して説明する。なお、定数Mが5の場合を一例として説明する。なお、最大バッファ容量Nは、同様に16とする。
図示するように、タイミング(時刻)2でcnt(cnt141)が6となると、定数Mよりも大きくなるため、バッファ部B42へのclkBの供給が開始される。以降書き込みを続けることにより、タイミング4でcntの値が8となる。このようにcntの値が、N/2の8となったことにより、タイミング5で、flg(flg121)が1となる。
また、タイミング4でのwpの値である2が、タイミング5でpnt(pnt131)に設定され保持される。同時にwpの最上位ビットが1に変化するため、+1されたwpは11を示すことになり、これ以降、バッファ部B42が有効となる。
このように、バッファ部B42を有効とする少し前から、clkBの供給を開始することで、バッファ部B42を安定させてから使用することができる。
上記の実施形態では、バッファ領域が、2つのバッファ部A,B(41,42)から構成される場合について説明したが、このバッファ部の数は一例であり、3つ以上であっても適宜適用可能である。
例えば、バッファ部Aの代わりに、丁度半分の容量の2つのバッファ部Ax,Ayを使用し(つまり、バッファ部Aの容量=バッファ部Axの容量+バッファ部Ay)、バッファ領域が、3つのバッファ部Ax,Ay,Bから構成される場合について、簡単に説明する。
この例の場合、有効データ量カウンタ14がN/4未満であればバッファ部Axのみを使用し、有効データ量カウンタ14がN/4に達すると、バッファ部Ayを有効にして使用する。更に、有効データ量カウンタ14が2/4に達すると、バッファ部Bを有効にして使用する。
このように、バッファ領域が、3つのバッファ部から構成される場合でも、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
以上説明したように、本発明によれば、有効データ量に応じてバッファ容量を動的に変化させ、消費電力を適切に低減することができる。
本発明の実施形態に適用されるFIFOバッファ回路の構成の一例を示す模式図である。 書き込み制御部の構成の一例を示す模式図である。 読み出し制御部の構成の一例を示す模式図である。 データ保持部の構成の一例を示す模式図である。 バッファ制御部の構成の一例を示す模式図である。 バッファ制御部の詳細な構成の一例を示す模式図である。 有効データ量カウンタの値が少ない状態でのFIFOバッファ回路の動作を説明するためのタイムチャートである。 有効データ量カウンタの値が増加した状態でのFIFOバッファ回路の動作を説明するためのタイムチャートである。 増加した有効データ量カウンタの値が逆に減少した状態でのFIFOバッファ回路の動作を説明するためのタイムチャートである。 他のバッファ制御部の構成の一例を示す模式図である。 他のバッファ制御部の詳細な構成の一例を示す模式図である。 他のバッファ制御部を採用したFIFOバッファ回路の動作を説明するためのタイムチャートである。 従来のFIFOバッファ回路の構成の一例を示す模式図である。 従来の書き込み制御部の構成の一例を示す模式図である。 従来の読み出し制御部の構成の一例を示す模式図である。 従来のデータ保持部の構成の一例を示す模式図である。 従来のFIFOバッファ回路の動作を説明するためのタイムチャートである。
符号の説明
1 バッファ制御部
11 クロック制御部
12 バッファ部B有効フラグ
13 バッファ切り替えポインタ保持部
14 有効データ量カウンタ
2 書き込み制御部
21 wp生成部
3 読み出し制御部
31 rp生成部
4 データ保存部
41 バッファ部A
42 バッファ部B

Claims (7)

  1. 外部からの書き込み要求に対してデータをバッファ領域に順次格納すると共に、外部からの読み出し要求に対して書き込まれた順序でバッファ領域からデータを読み出すFIFOバッファを制御するバッファ回路であって、
    前記FIFOバッファにて、書き込まれていて読み出されていない有効データ量に応じて、動作状態若しくは停止状態に制御することにより、使用するバッファ領域の容量を動的に変化させることを特徴とするバッファ回路。
  2. 容量を変化させた際の書き込みポインタの値を、バッファ切り替えポインタとして保持し、当該バッファ切り替えポインタの値により、使用しているバッファ領域の容量内で、書き込み及び読み出しポインタを生成するポインタ生成部を備えており、
    前記ポインタ生成部により生成される書き込み及び読み出しポインタに従って、容量を動的に変化させたバッファ領域の書き込み及び読み出しを行う、
    ことを特徴とする請求項1に記載のバッファ回路。
  3. ッファ領域に対するクロック供給若しくは停止を切り替えることにより、使用するバッファ領域の容量を動的に変化させることを特徴とする請求項1又は2に記載のバッファ回路。
  4. データを記憶するための複数のバッファ部を有するバッファ手段と、
    前記バッファ手段にデータを書き込む書き込み手段と、
    前記書き込み手段により書き込まれたデータを前記バッファ手段から読み出す読み出し手段と、
    前記バッファ手段に書き込まれていて読み出されていない有効データ量に基づいて、少なくとも1つの前記バッファ部を動作状態若しくは停止状態に制御することにより、前記バッファ手段の容量を動的に変化させる制御手段と、
    を備えることを特徴とするバッファ回路。
  5. 前記制御手段は、前記バッファ手段に記憶される有効データ量が、予め規定された基準値未満である場合に、使用されていない前記バッファ部の動作を停止させ、
    前記書き込み手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対象として、前記バッファ手段へデータを書き込み、
    前記読み出し手段は、前記制御手段により動作が停止された前記バッファ部を除いた残りの前記バッファ部だけを対象として、前記バッファ手段からデータを読み出す、
    ことを特徴とする請求項4に記載のバッファ回路。
  6. 前記制御手段は、前記バッファ手段に書き込まれていて読み出されていない有効データ量に基づいて、前記バッファ部の動作に必要なクロックの供給若しくは停止を切り替えて、少なくとも1つの前記バッファ部を、動作状態若しくは停止状態に制御することにより前記バッファ手段の容量を動的に変化させる、
    ことを特徴とする請求項4又は5に記載のバッファ回路。
  7. データを記憶するための複数のバッファ部を有するデータ保持部と、当該データ保持部にデータを書き込む書き込み制御部と、当該書き込み制御部により書き込まれたデータを当該データ保持部から読み出す読み出し制御部と、を備えた回路のバッファ制御方法であって、
    前記データ保持部に書き込まれていて読み出されていない有効データ量に基づいて、少なくとも1つの前記バッファ部を動作状態若しくは停止状態に制御することにより、前記データ保持部の容量を動的に変化させる、
    ことを特徴とするバッファ制御方法。
JP2006097595A 2006-03-31 2006-03-31 バッファ回路、および、バッファ制御方法 Expired - Fee Related JP4893071B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006097595A JP4893071B2 (ja) 2006-03-31 2006-03-31 バッファ回路、および、バッファ制御方法
US11/729,824 US7623395B2 (en) 2006-03-31 2007-03-30 Buffer circuit and buffer control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006097595A JP4893071B2 (ja) 2006-03-31 2006-03-31 バッファ回路、および、バッファ制御方法

Publications (2)

Publication Number Publication Date
JP2007272577A JP2007272577A (ja) 2007-10-18
JP4893071B2 true JP4893071B2 (ja) 2012-03-07

Family

ID=38558685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006097595A Expired - Fee Related JP4893071B2 (ja) 2006-03-31 2006-03-31 バッファ回路、および、バッファ制御方法

Country Status (2)

Country Link
US (1) US7623395B2 (ja)
JP (1) JP4893071B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5263538B2 (ja) * 2009-07-28 2013-08-14 直 岩附 アスベスト溶解剤およびアスベスト無害化湿式処理方法
JP5574832B2 (ja) * 2010-06-07 2014-08-20 三菱電機株式会社 バッファ制御装置およびバッファ制御方法
WO2012169032A1 (ja) * 2011-06-09 2012-12-13 富士通株式会社 バッファ装置,バッファ制御装置,及びバッファ制御方法
JPWO2012169032A1 (ja) * 2011-06-09 2015-02-23 富士通株式会社 バッファ装置,バッファ制御装置,及びバッファ制御方法
JP5828746B2 (ja) * 2011-11-24 2015-12-09 ルネサスエレクトロニクス株式会社 半導体装置
KR102029806B1 (ko) 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
JP2015095823A (ja) * 2013-11-13 2015-05-18 株式会社オー・エフ・ネットワークス ネットワーク装置、バッファ制御装置及びバッファ制御方法
TWI658470B (zh) * 2018-05-03 2019-05-01 智原科技股份有限公司 運用於雙倍資料率記憶體系統的先進先出電路

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4258418A (en) * 1978-12-28 1981-03-24 International Business Machines Corporation Variable capacity data buffer system
JPH0497416A (ja) * 1990-08-16 1992-03-30 Nec Corp 受信バッファの制御方式
JPH0529849A (ja) * 1991-07-18 1993-02-05 Mitsubishi Electric Corp マイクロ波デバイス
US5426639A (en) * 1991-11-29 1995-06-20 At&T Corp. Multiple virtual FIFO arrangement
JPH0614058A (ja) * 1992-06-26 1994-01-21 Hitachi Ltd マルチキャスト通信方式
JP3444906B2 (ja) * 1992-06-29 2003-09-08 キヤノン株式会社 光電変換装置
JP3486498B2 (ja) * 1996-01-10 2004-01-13 キヤノン株式会社 バッファ管理方法及びそれを用いた印刷装置
JPH10262291A (ja) * 1997-03-17 1998-09-29 Oki Electric Ind Co Ltd 通信システム
JP2000122675A (ja) * 1998-10-13 2000-04-28 Casio Comput Co Ltd 音声情報処理装置
JP4679750B2 (ja) * 2001-04-05 2011-04-27 旭化成エレクトロニクス株式会社 デジタル・ビデオフレームを構成する装置
JP2003036145A (ja) 2001-07-24 2003-02-07 Sharp Corp Fifoメモリのデータ転送制御装置
JP2003318940A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd データプロセッサ及びデータ転送システム
KR100450682B1 (ko) * 2002-08-29 2004-10-01 삼성전자주식회사 테스트 효율을 향상시키기 위한 내부회로를 가지는 반도체메모리 장치 및 그 테스트 방법
JP2005063358A (ja) * 2003-08-20 2005-03-10 Matsushita Electric Ind Co Ltd 命令供給制御装置および半導体装置
JP2005092764A (ja) * 2003-09-19 2005-04-07 Ricoh Co Ltd 画像形成装置、インタフェースボード、インタフェース用チップ及び情報処理装置

Also Published As

Publication number Publication date
US7623395B2 (en) 2009-11-24
JP2007272577A (ja) 2007-10-18
US20070230259A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4893071B2 (ja) バッファ回路、および、バッファ制御方法
TW594785B (en) Semiconductor memory device having external data load signal and serial-to-parallel data prefetch method thereof
JP3715716B2 (ja) 半導体メモリ装置のクロック発生回路
JP4694040B2 (ja) 半導体記憶装置
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
JP5125028B2 (ja) 集積回路
US7280418B2 (en) Internal voltage generation control circuit and internal voltage generation circuit using the same
JP2015103262A (ja) 半導体装置
JP5108690B2 (ja) Dma装置及びdma転送方法
JP6004463B2 (ja) 記憶装置及びその制御方法
JP4943681B2 (ja) 半導体メモリ
JP5000872B2 (ja) 半導体メモリ
JP2009251888A (ja) 半導体メモリ装置
JP4696003B2 (ja) データ転送回路
JP4943682B2 (ja) 半導体メモリ
JP2007149201A (ja) 半導体装置及びその制御方法
JP2015011474A (ja) 半導体装置
JP2013008265A (ja) パイプライン演算装置
US20200312383A1 (en) Semiconductor device
JP2011138567A (ja) 半導体記憶装置
JP3935152B2 (ja) バッファメモリ装置
JP5322519B2 (ja) メモリ制御装置
JP2003196972A (ja) メモリ装置
JP4789624B2 (ja) ページモード動作を実行する半導体メモリ装置
JP2007094647A (ja) メモリコントローラ及び書込み制御方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111006

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111205

R150 Certificate of patent or registration of utility model

Ref document number: 4893071

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees