JP2973941B2 - 非同期fifoバッファ装置 - Google Patents

非同期fifoバッファ装置

Info

Publication number
JP2973941B2
JP2973941B2 JP8256239A JP25623996A JP2973941B2 JP 2973941 B2 JP2973941 B2 JP 2973941B2 JP 8256239 A JP8256239 A JP 8256239A JP 25623996 A JP25623996 A JP 25623996A JP 2973941 B2 JP2973941 B2 JP 2973941B2
Authority
JP
Japan
Prior art keywords
data
fifo buffer
asynchronous fifo
write
read
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
JP8256239A
Other languages
English (en)
Other versions
JPH10105375A (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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8256239A priority Critical patent/JP2973941B2/ja
Publication of JPH10105375A publication Critical patent/JPH10105375A/ja
Application granted granted Critical
Publication of JP2973941B2 publication Critical patent/JP2973941B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は非同期に入出力され
るFIFOバッファ装置に関し、特にFIFOバッファ
に対するデータの入出力制御方式に関する。
【0002】
【従来の技術】従来、異なるクロックで動作している2
つの装置の間のデータ転送を行う場合、データは各装置
内においてそれぞれの装置内のクロックに同期して扱わ
れる。そのため、異なるクロックの装置から送られてく
るデータに対しては、そのデータを自己のクロックに同
期化させなくてはならない。この非同期タイミングで扱
われるデータの同期化には、通常非同期FIFOバッフ
ァが使用される。この非同期FIFOバッファは、FI
FOバッファへの書き込みタイミングとFIFOバッフ
ァからの読み出しタイミングが完全に独立しており、転
送データを容易に装置内のクロックに同期化することが
できる。
【0003】例えば、SCSIバスに接続されたハード
ディスク装置内部では、SCSIバス上から送られてく
るデータを受け取る際、ハードディスク装置内の動作と
は非同期にSCSIバスから転送されてくるため、非同
期FIFOを置くことによって送られてきたデータをハ
ードディスク装置内の動作クロックに合わせて装置内に
取り込むことが容易にできるる。例えば、特開平3−1
02450号公報には非同期FIFOバッファを使用し
てデータを効率よく転送することが記載されている。
【0004】この非同期FIFOバッファの基本的な構
成を図3に示す。このFIFOバッファはnビット×8
段のレジスタから構成されるFIFOレジスタ1と、そ
のレジスタの1つを選択するためのライトポインタ2及
びリードポインタ3と、FIFOレジスタが空きか、あ
るいはデータが存在するかを示すためのステータス信号
を生成するステータス生成回路4から構成される。ライ
トポインタ2、リードポインタ3は基本的な構成は同じ
であり、例えば、ライトポインタであれば、このFIF
Oにデータを書き込む毎に順にFIFOレジスタ内の1
本のレジスタを指し示して行く。そして、ライトポイン
タ2の更新は、ライト制御信号によってのみ更新され、
リード制御側には影響を受けない。同様に、リードポイ
ンタ3の更新はリード制御信号によってのみ更新され、
ライト制御側の影響を受けない。
【0005】図4に、図3の非同期FIFOバッファの
内部構成を示す。ライトポインタ2、リードポインタ3
の内部は1ビット×8段の巡回型シフトレジスタで構成
される。これらのシフトレジスタば初期化された状態で
は、どちらも同じFIFOレジスタを示すように1ビッ
トだけが“1”となり、それ以外は全て“0”となるよ
うに設定される。FIFOレジスタ1への書き込みにお
いては、ライト制御信号によってライトポインタ2の示
すFIFOレジスタにデータが1つ書き込まれる。ま
た、書き込みが終了する毎にライトポインタ2内のシフ
トレジスタが1ビットだけシフトされ、次のFIFOレ
ジスタ1を選択することになる。
【0006】FIFOレジスタ1からの読み出しの場合
は、リードポインタ3によって選択されたFIFOレジ
スタ1のデータがリード制御信号によって出力される。
そして、読み出しの終了とともにリードポインタ3内の
シフトレジスタが1ビットだけシフトされ、次のFIF
Oレジスタが選択される。これら、書き込み動作と読み
出し動作には互いに同期して行う必要がなく、FIFO
レジスタに対する書き込みと読み出しはそれぞれ独立に
行うことができる。
【0007】また、ステータス生成回路4では、各ポイ
ンタの出力信号を元にリード動作後に2つのポインタの
状態が一致した場合には空きであることから、empt
y信号17を、逆にライト動作後に2つのポインタの状
態が一致した場合には占領されていることを示すことか
らfull信号16をアクティブにする。これらの信号
は、2つのポインタの状態が一致しなくなった時点でク
リアされる。
【0008】
【発明が解決しようとする課題】前記したように非同期
FIFOバッファの役割は2つの異なるクロックで動作
するシステム間でのデータ転送をスムーズに行うことで
あり、従来の非同期FIFOバッファは、その点におい
てはFIFOへの書き込み、FIFOからの読み出しが
互いに影響を与えないで行えることから、十分にその役
割を果している。しかし、FIFOにどれだけのデータ
が存在するのかを知ることは、書き込みと読み出しが非
同期であるためにリアルタイムで得ることは難しい。従
来の非同期FIFOバッファを例にとると、FIFOに
データがあるか無いかはリードポインタとライトポイン
タの内容が異なるかどうかで判断できる。しかし、デー
タがどれだけ格納されているかは2つのポインタの差
求めなければならない。差を求めるのに、2つが同じ動
作クロックで動作するものであれば、ポインタの内容を
比較することは容易であり、差を求めるまでの時間も短
いが、2つ動作か非同期である場合には、どちらかのポ
インタの内容をもう一方のポインタの動作クロックに同
期化して取り出した後でなくては比較ができない。2つ
のポインタの動作速度か大きく異なる場合には、このポ
インタの比較に要する時間は大きくなる。
【0009】通常、非同期FIFOバッファが使用され
ているシステムでは、読み出し側、あるいは書き込み側
の一方のデータバスは、同じデータバスをアクセスする
他のデバイスと共有されていることが多い。例えば、S
CSIバスに接続するコンピュータの場合、SCSIバ
ス上のデータの送受信に使用される非同期FIFOバッ
ファは、一方をコンピュータのデータバスに接続する
が、このデータバスは通常CPUやDMAコントローラ
等が共有している。このとき、データバスを効率良く使
用するには、バスのアクセス権の獲得のための手続きを
減らし、1回データバスを獲得したら連続してデータ転
送を行わなければならない。そのためには、FIFOバ
ッファ内のデータ数を把握し、ある所定のレベルに達し
てからFIFOバッファにアクセスしなければならな
い。しかし、前記したように、非同期FIFOバッファ
は、FIFOバッファ内のデータ数量を把握するのが難
しく、所定のレベルに達したかどうかの判断に時間を要
していた。そのため、転送の開始までの判断時間がなが
くなる。または、非同期FIFOバッファに対するアク
セスは、書き込みであれば空きがあるかどうかを、読み
出しであればデータが有るかどうかを1回のアクセスご
とに行い、その都度アクセス権獲得のためのオーバヘッ
ドを必要としている。
【0010】本発明の目的は、非同期情報を簡易な制御
方法によって同期化し、非同期FIFOバッファのデー
タ数量を把握して確実な連続アクセスを保証し、アクセ
ス効率の高い非同期FIFOバッファ装置を提供するこ
とにある。
【0011】
【課題を解決するための手段】本発明は、データが非同
期で書き込み、読み出し可能な第1非同期FIFOバッ
ファと、前記書き込みデータ数書き込み、読み出し
可能な第2非同期FIFOバッファとを備えており、前
記第1非同期FIFOバッファへの書き込みデータ数が
所定数に達したときに、該データ数を前記第2非同期F
IFOバッファに書き込み、該データ数のデータを前記
第1非同期FIFOバッファから連続的に読み出すこと
を特徴としている。また、本発明は、データが非同期で
書き込み、読み出し可能な第1非同期FIFOバッファ
と、前記書き込みのデータ数が書き込み、読み出し可能
な第2非同期FIFOバッファとを備えており、前記第
1非同期FIFOバッファからの読み出しデータ数が所
定数に達したときに、該データ数を前記第2非同期FI
FOバッファに書き込み、該データ数のデータを前記第
1非同期FIFOバッファに連続的に書き込むことを特
徴としている。
【0012】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して説明する。図1は本発明の第1の実施形
態の構成図てある。この実施形態のFIFOバッファ
は、nビット×m段(n,mは1以上の整数)の非同期
FIFOバッファ、ここではm=8の8段非同期FIF
Oバッファ20に対してデータの入出力を行う例であ
り、この非同期FIFOバッファ20に加えてn’ビッ
ト×m’段(n’,m’は1以上の整数)、ここでは
m’=2の2段非同期FIFOバッファ24を設けてい
る。8段非同期FIFOバッファには、入力データバス
10を通してライト制御回路21の生成するライト制御
信号12によったデータが書き込まれる。また、リード
制御回路22の生成するリード制御信号13によって8
段非同期FIFOバッファ20のデータが読み出され、
出力データバス11に出力される。また、前記ライト制
御回路21にはカウンタ23とANDゲート25が接続
され、カウンタ23のデータバス32の出力がANDゲ
ート25の出力に基づいて前記2段非同期FIFOバッ
ファ24に書き込むことが可能な構成とされる。さら
に、前記リード制御回路22は、この2段非同期FIF
Oバッファ24に入力されたデータを読み出すことが可
能な構成とされる。
【0013】この構成において、8段非同期FIFOバ
ッファ20へのデータの書き込み時には、ライト制御回
路21は、8段非同期FIFOバッファ20より出力さ
れるステータス信号16(8段非同期FIFOバッファ
が占領されていることを示す信号)によってライト制御
信号12を生成し、8段非同期FIFOバッファ20へ
のデータの書き込みを行う。カウンタ23は、ライト制
御信号12をクロックとしてカウンタ動作を行い、所定
の数に達すると制御信号33をアクティブにする。AN
Dゲート25は、この制御信号33とライト制御信号1
6の論理積を生成し、その信号34を2段非同期FIF
Oバッファ24のライト制御信号とする。このとき、2
段非同期FIFOバッファ24に書き込まれる値は、カ
ウンタ23から出力される値であり、この値はそれまで
に8段非同期FIFOバッファ20に書き込まれたデー
タの数を示している。
【0014】2段非同期FIFOバッファ24への書き
込みが終了すると、カウンタ23はクリアされ、次に所
定の数の8段非同期FIFOバッファ20へのデータ書
き込みが行われると、再び制御信号33がアクティブと
なって同じ動作が繰り返される。例えば、8段非同期F
IFOバッファ20に対して4回のデータ書き込みが行
われる毎に前記動作が行われるとすると、4回目のデー
タ書き込み時に、それまで書き込んだデータ数の“4”
の値が2段非同期FIFOバッファ24に書き込まれ
る。
【0015】一方、8段非同期FIFOバッファ20か
らのデータの読み出し時には、リード制御回路22で
は、2段非同期FIFOバッファ24から出力されてい
るステータス信号31(2段非同期FIFOバッファ2
4が空きであるかどうかを示す信号)から2段非同期F
IFOバッファ24内にデータがあることを認識する
と、2段非同期FIFOバッファ24の先頭のデータを
読み出す。2段非同期FIFOバッファ24はリード制
御信号30によって先頭のデータをデータバス35に出
力し、そのデータがリード制御回路22に入力される。
このデータは8段非同期FIFOバッファ20に対し
て、そのデータの示す数のデータが書き込まれているこ
とを示すものであるので、リード制御回路22はその数
だけのデータを8段非同期FIFOバッファ20から読
み出すべくリード制御信号13を連続して出力し、デー
タを読み出す。
【0016】このように、8段非同期FIFOバッファ
20の書き込み側から所定数のデータを書き込むと、こ
のデータ数を示す情報データが2段非同期FIFOバッ
ファ24に書き込まれる。そして、読み出し側からこの
2段非同期FIFOバッファ24に書き込まれている情
報データを読み出すことにより、その情報データの示す
回数だけ無条件で8段非同期FIFOバッファ20から
データを取り出すことが可能となる。これは、書き込み
側に対して読み出し側のデータ転送速度が速い場合で、
かつ読み出し側のデータバスが複数のアクセス回路と共
有している場合に、データ転送を効率的に行うことが可
能となる。すなわち、読み出し側のデータバスを獲得し
たときに、連続して転送できる数が保証されるため、バ
ス獲得のためのオーバヘッドを減らすことが可能となる
ためである。
【0017】図2は本発明の第2の実施形態の構成図で
ある。ここで、図1の第1の実施形態と等価な部分には
同一符号を付してある。この第2の実施形態では、リー
ド制御回路22におけるリード回数をカウンタ23がカ
ウントし、その値32をANDゲート25の信号34に
よって2段非同期FIFOバッファ24に書き込むよう
に構成される。また、この2段非同期FIFOバッファ
24に書き込まれたリード回数は、ライト制御回路21
において読み出すことができるように構成される。
【0018】この構成では、ライト制御回路21は従来
と同様に8段非同期FIFOバッファ20に対してデー
タを書き込む。一方、リード制御回路22では、8段非
同期FIFOバッファ20から出力されるステータス信
号17(8段非同期FIFOバッファ20が空であるか
どうかを示す信号)によって8段非同期FIFOバッフ
ァ20からデータを読み出せるがどうかを判断しながら
リード制御信号13によってデータを読み出す。そし
て、このデータ読み出しの回数はカウンタ23でカウン
トされ、ANDゲート25からの制御信号33とリード
制御信号13との論理積の信号34によって読み出し回
数を2段非同期FIFOバッファ24に書き込む。
【0019】そして、2段非同期FIFOバッファ24
はリード制御信号30によって先頭のデータをデータバ
ス35に出力し、そのデータがライト制御回路21に入
力される。このデータは8段非同期FIFOバッファ2
0に対して、そのデータの示す数の空きが存在している
ことを示すものであるので、ライト制御回路21はその
数だけのデータが8段非同期FIFOバッファ20から
読み出され、空きが生じてその数のデータの書き込みが
可能とされたことを認識する。したがって、ライト制御
回路21は、次のデータ書き込みを所定の数だけ連続し
て行うことが可能となる。
【0020】このように、8段非同期FIFOバッファ
20の書き込み側から所定数のデータを読み出すと、こ
のデータ数を示す情報データが2段非同期FIFOバッ
ファ24に書き込まれる。そして、書き込み側からこの
2段非同期FIFOバッファ24に書き込まれている情
報データを読み出すことにより、その情報データの示す
回数だけ無条件で8段非同期FIFOバッファ20にデ
ータを書き込むことが可能となる。これは、読み出し側
に対して書き込み側のデータ転送速度が速い場合で、か
つ書き込み側のデータバスが複数のアクセス回路と共有
している場合に、データ転送を効率的に行うことが可能
となる。すなわち、書き込み側のデータバスを獲得した
ときに、連続して転送できる数が保証されるため、バス
獲得のためのオーバヘッドを減らすことが可能となるた
めである。
【0021】ここで、前記各実施形態では、第1及び第
2の各非同期FIFOバッファの段数がm=8,m’=
2の場合について説明したが、システム構成によって最
も好適な段数の非同期FIFOバッファとして構成でき
ることは言うまでもない。
【0022】
【発明の効果】以上説明したように本発明は、読み出し
可能な第1非同期FIFOバッファと、前記書き込みデ
ータ数または読み出しデータ数書き込み、読み出し可
能な第2非同期FIFOバッファとを備えており、第1
非同期FIFOバッファに対するデータの書き込みデー
タ数又はデータの読み出しデータ数が所定数に達したと
きに該データ数を第2非同期FIFOバッファに書き込
み、この第2非同期FIFOバッファから読み出したデ
ータ数に基づいて該データ数のデータを第1非同期FI
FOバッファへ書き込み又は読み出しを連続的に行う構
成としているので、書き込み側や読み出し側のデータバ
スが複数のアクセス回路と共有している場合でも、バス
獲得のためのオーバヘッドを減らすことができ、データ
転送を効率的に行うことができるという効果がある。ま
た、書き込み量、読み出し量が第2の非同期FIFOバ
ッファを介して書き込み側と読み出し側との間で伝達さ
れるため、受けて側でのその情報の取り出し制御が非常
に容易となり、複雑なタイミング制御やそのための回路
が不要になるという効果も得られる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態の回路構成図である。
【図2】本発明の第2の実施形態の回路構成図である。
【図3】従来の一般的な非同期FIFOバッファの構成
図である。
【図4】従来の非同期FIFOバッファレジスタの構成
図である。
【符号の説明】
20 8段非同期FIFOバッファ(第1の非同期FI
FOバッファ) 21 ライト制御回路 22 リード制御回路 23 カウンタ 24 2段非同期FIFOバッファ(第2の非同期FI
FOバッファ) 25 ANDゲート 30 リード制御信号 31 ステータス信号 32 データバス 33 制御信号 34 ライト制御信号 35 データバス

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 データが非同期で書き込み、読み出し可
    能な第1非同期FIFOバッファと、前記書き込み
    ータ数書き込み、読み出し可能な第2非同期FIFO
    バッファとを備え、前記第1非同期FIFOバッファ
    の書き込みデータ数が所定数に達したときに、該データ
    数を前記第2非同期FIFOバッファに書き込み、該デ
    ータ数のデータを前記第1非同期FIFOバッファから
    連続的に読み出すことを特徴とする非同期FIFOバッ
    ファ装置。
  2. 【請求項2】 データが非同期で書き込み、読み出し可
    能な第1非同期FIFOバッファと、前記書き込みのデ
    ータ数が書き込み、読み出し可能な第2非同期FIFO
    バッファとを備え、前記第1非同期FIFOバッファか
    らの読み出しデータ数が所定数に達したときに、該デー
    タ数を前記第2非同期FIFOバッファに書き込み、該
    データ数のデータを前記第1非同期FIFOバッファに
    連続的に書き込むことを特徴とする非同期FIFOバッ
    ファ装置。
  3. 【請求項3】 nビット×m段(n,mは1以上の整
    数)の第1非同期FIFOバッファと、n’ビット×
    m’段(n’,m’は1以上の整数)の第2非同期FI
    FOバッファと、前記第1非同期FIFOバッファに対
    するデータの書き込みを制御するライト制御回路と、前
    記第1非同期FIFOバッファからのデータの読み出し
    を制御するリード制御回路とを備え、前記ライト制御回
    路には前記第1非同期FIFOバッファへの書き込みデ
    ータ数が所定数に達したときに、該データ数を前記第2
    非同期FIFOバッファに書き込む手段が設けられ、前
    記リード制御回路は前記第2非同期FIFOバッファに
    書き込まれた前記データ数を読み出し、この読み出した
    データ数のデータを連続的に前記第1非同期FIFOバ
    ッファから読み出す機能を備えることを特徴とする非同
    期FIFOバッファ装置。
  4. 【請求項4】 nビット×m段(n,mは1以上の整
    数)の第1非同期FIFOバッファと、n’ビット×
    m’段(n’,m’は1以上の整数)の第2非同期FI
    FOバッファと、前記第1非同期FIFOバッファに対
    するデータの書き込みを制御するライト制御回路と、前
    記第1非同期FIFOバッファからのデータの読み出し
    を制御するリード制御回路とを備え、前記リード制御回
    路には前記 第1非同期FIFOバッファからの読み出し
    データ数が所定数に達したときに、該データ数を前記第
    2非同期FIFOバッファに書き込む手段が設けられ、
    前記ライト制御回路は前記第2非同期FIFOバッファ
    に書き込まれた前記データ数を読み出し、この読み出し
    たデータ数のデータを連続的に前記第1非同期FIFO
    バッファに書き込む機能を備えることを特徴とする非同
    期FIFOバッファ装置。
JP8256239A 1996-09-27 1996-09-27 非同期fifoバッファ装置 Expired - Fee Related JP2973941B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8256239A JP2973941B2 (ja) 1996-09-27 1996-09-27 非同期fifoバッファ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8256239A JP2973941B2 (ja) 1996-09-27 1996-09-27 非同期fifoバッファ装置

Publications (2)

Publication Number Publication Date
JPH10105375A JPH10105375A (ja) 1998-04-24
JP2973941B2 true JP2973941B2 (ja) 1999-11-08

Family

ID=17289876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8256239A Expired - Fee Related JP2973941B2 (ja) 1996-09-27 1996-09-27 非同期fifoバッファ装置

Country Status (1)

Country Link
JP (1) JP2973941B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4060097B2 (ja) 2002-03-07 2008-03-12 シャープ株式会社 自己同期型fifoメモリ装置および非同期型情報処理装置
JP4517741B2 (ja) * 2004-06-23 2010-08-04 富士ゼロックス株式会社 記憶装置

Also Published As

Publication number Publication date
JPH10105375A (ja) 1998-04-24

Similar Documents

Publication Publication Date Title
JP3598321B2 (ja) 異なる周波数で動作するバス間でやりとりされるバッファリングデータ
JP3156813B2 (ja) バッファ制御回路
US5745793A (en) Apparatus having a circular buffer that maintains a one entry gap between elements written to the microprocessor and elements operated on by the clock
US5587953A (en) First-in-first-out buffer memory
US5592629A (en) Apparatus and method for matching data rates to transfer data between two asynchronous devices
US6321233B1 (en) Apparatus for controlling pipelined memory access requests
US20020184453A1 (en) Data bus system including posted reads and writes
US5537582A (en) Bus interface circuitry for synchronizing central processors running at multiple clock frequencies to other computer system circuitry
US5079696A (en) Apparatus for read handshake in high-speed asynchronous bus interface
US5894567A (en) Mechanism for enabling multi-bit counter values to reliably cross between clocking domains
KR100288177B1 (ko) 메모리 액세스 제어 회로
US6058439A (en) Asynchronous first-in-first-out buffer circuit burst mode control
US6292807B1 (en) Method for controlling pipelined memory access requests
US5790891A (en) Synchronizing unit having two registers serially connected to one clocked elements and a latch unit for alternately activating the registers in accordance to clock signals
JP2973941B2 (ja) 非同期fifoバッファ装置
US6880050B1 (en) Storage device, system and method which can use tag bits to synchronize queuing between two clock domains, and detect valid entries within the storage device
JPH04279945A (ja) メモリ回路
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
EP0382342B1 (en) Computer system DMA transfer
JP3592169B2 (ja) 非同期データ転送制御装置および非同期データ転送制御方法
JP4569163B2 (ja) データ入出力装置およびデータ入出力方法
US6865654B2 (en) Device for interfacing asynchronous data using first-in-first-out
JP2000276435A (ja) データ転送装置及びデータ転送方法
JP2000003332A (ja) 双方向バスサイズ変換回路
JP3082384B2 (ja) 先入れ先出し記憶装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees