JP2916045B2 - Fifoモジュール - Google Patents

Fifoモジュール

Info

Publication number
JP2916045B2
JP2916045B2 JP4219336A JP21933692A JP2916045B2 JP 2916045 B2 JP2916045 B2 JP 2916045B2 JP 4219336 A JP4219336 A JP 4219336A JP 21933692 A JP21933692 A JP 21933692A JP 2916045 B2 JP2916045 B2 JP 2916045B2
Authority
JP
Japan
Prior art keywords
fifo
flip
module
flop
data
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
JP4219336A
Other languages
English (en)
Other versions
JPH07282576A (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.)
INDASUTORIARU TEKUNOROJII RISAACHI INST
Original Assignee
INDASUTORIARU TEKUNOROJII RISAACHI INST
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 INDASUTORIARU TEKUNOROJII RISAACHI INST filed Critical INDASUTORIARU TEKUNOROJII RISAACHI INST
Publication of JPH07282576A publication Critical patent/JPH07282576A/ja
Application granted granted Critical
Publication of JP2916045B2 publication Critical patent/JP2916045B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のFIFO(Fi
rst In First Out memory)モ
ジュールにより形成されるFIFOに関するものであ
る。ここで、各FIFOモジュールは、データ記憶部と
制御部とより形成され、制御部は、所望数のFIFOモ
ジュールを接続することにより任意サイズのFIFOを
形成できるように構成されている。
【0002】
【従来の技術】種々の集積回路、特に、通信に用いられ
るようなものにおいては、一般的に、FIFOが利用さ
れている。そして、ほとんどの場合、FIFOはバッフ
ァリングを行うために利用されている。たとえば、ある
集積回路では、非同期な2つのクロック信号によってそ
れぞれ制御される、2つの異なる回路間で送信されるデ
ータをバッファするのに用いられる。
【0003】同様に、外部のマイクロコンピュータとイ
ンタフェースする集積回路においては、集積回路とマイ
クロプロセッサとの間のデータの連続転送を開始するの
に充分な数となるまで、FIFOにデータが蓄えられ
る。これにより、集積回路よりのデータ受信の際の、マ
イクロコンピュータの割込み処理の実行の必要を減ずる
ことができる。
【0004】図1に示す従来のFIFO10は、所定数
のデータを格納するデータ記憶ユニットを有している。
図中、FIFO10に書き込まれるデータはDATAI
Nで示した。このデータは、クロック信号CKINの制
御下でFIFOに書き込まれる。一方、FIFO10よ
り読みだされるデータはDATAOUTで示した。この
データは、クロック信号CKOUTの制御下でFIFO
より読みだされる。FIFOが満杯になり、もデータ
が書き込めなく成ると、FULL信号が出力される。ま
た、FIFO内の全てのデータが読みだされると、EM
PTY信号が出力される。
【0005】FIFO10の内部構成を図2に示す。
【0006】図2に示すように、FIFO10は、メモ
リ部12と中央制御ユニット14より構成される。メモ
リ部12は、規則的に配置された複数のメモリユニット
16より構成される。制御ユニット14は、クロック信
号CLKINとCLKOUTに応じて、各メモリユニッ
ト16へのデータの書き込みと、各メモリユニットより
のデータの読みだしを制御する。制御ユニット14は、
また、メモリユニット16が全て満杯となった場合にF
ULL信号を、メモリユニット16が全てからになった
場合にEMPTY信号を生成する。
【0007】
【発明が解決しようとする課題】このような、従来のF
IFOにおいては、FIFOを集積回路上に構築する
際、中央制御ユニットの設計がしばしば主要な仕事とな
る。特に、異なるサイズ(異なるデータ記憶容量)のF
IFOのそれぞれについては、通常、それぞれに中央処
理ユニットを設計する必要がある。さらに、中央処理ユ
ニットはモジュール化されてないので、集積回路化には
特別のレイアウト作業が必要となる。
【0008】この問題を解決するひとつのアプローチ
は、モジュール化である。これに関する従来の技術とし
ては、米国特許4,839,866号(Ward他)、
米国特許4,592,019(Huang他)が知られ
ている。特に、単純に、適当な数のモジュールを接続す
ることにより任意サイズのFIFOが提供できるよう
に、メモリ部とモジュール制御部を有するFIFOモジ
ュールに分割できれば望ましい。
【0009】そこで、本発明は、このようなFIFOモ
ジュールを提供することを目的とする。また、特に、こ
のようなFIFOモジュールであって、単純かつ効率よ
く分配された、集積回路内に構築しやすい制御部を有す
るFIFOモジュールを提供することを目的とする。
【0010】
【課題を解決するための手段】本発明の一実施態様によ
れば、FIFOは、一続きに配置された複数のFIFO
モジュールより構成される。各FIFOモジュールは、
制御部と、複数バイトのデータを格納するためのメモリ
部を有している。
【0011】本発明の好適な実施態様においては、各モ
ジュールの制御部は、それぞれ論理1と0を取ることの
できる4信号を生成する4つのフリップフロップを備え
る。これらは、書き込みポインタを生成する書き込みポ
インタフリップフロップと、読みだしポインタ信号を生
成する読みだしポインタフリップフロップと、当該モジ
ュールがFIFO全体が満杯になったと判断したときに
にセットされるFULL*フラグを生成するFULL*
フリップフロップ43と、当該モジュールがFIFO全
体が空になったと判断したときに利用されるEMPTY
*フラグを生成するEMPTY*フリップフロップであ
る。
【0012】
【作用】以下、記号WPiは、FIFOのi段目のモジ
ュールの書き込みポインタもしくは書き込みポインタフ
リップフロップの出力する書き込みポインタ信号を示す
ものとし、記号RPiは、FIFOのi段目のモジュー
ルの読みだしポインタもしくは読みだしポインタフリッ
プフロップの出力する読みだしポインタ信号を示すもの
として説明する。
【0013】本実施態様においては、各ポインタをフリ
ップフロップを用いて構成する。
【0014】各モジュールの書き込みポインタフリップ
フロップは、リング状に接続されている。モジュールi
(i=0、1、2、、、N)を有するフリップフロップ
において、モジュール0の書き込みポインタフリップフ
ロップWP0の出力は、モジュール1の書き込みポイン
タフリップフロップであるWP1フリップフロップの入
力に接続されている。同様に、WP1フリップフロップ
WP1の出力は、モジュール2の書き込みポインタフリ
ップフロップWP2の入力に接続されている。そして、
さらに、モジュールNの書き込みポインタフリップフロ
ップWPNの出力は、フリップフロップWP0の入力に
接続されている。各モジュールの読みだしポインタフリ
ップフロップも同様にリング状に接続されている。
【0015】さて、このようなFIFOにおいて、1度
には、一つの書き込みフリップフロップ、読みだしフリ
ップフロップのみが論理1に設定される。あるモジュー
ルiの書き込みポインタWPiが1のとき、データが接
続しているメモリ部に書き込まれる。この書き込み動作
が完了すると、モジュールiの書き込みポインタWPi
は状態を1→0に変化し、モジュールi+1へデータを
書き込む、次の書き込み動作のために、モジュールi+
1の書き込みポインタWPi+1は、状態を0→1に変
化する。同様に、あるモジュールiの読み出しポインタ
RPiが1のとき、データが接続しているメモリ部より
読みだされる。この読みだし動作が完了すると、モジュ
ールiの読みだしポインタRPiは状態を1→0に変化
し、モジュールi+1からデータを読みだす、次の読み
だし動作のために、モジュールi+1の読みだしポイン
タRPi+1は、状態を0→1に変化する。
【0016】このようにして、引き続くデータについて
の書き込み動作が、引き続くモジュールに順次行われる
ように、論理1の書き込みポインタ信号が、書き込みフ
リップフロップWPによるリング上を伝達される。また
引き続くデータについての読みだし動作が、引き続くモ
ジュールに順次行われるように、論理1の読みだしポイ
ンタ信号が、読みだしフリップフロップRPによるリン
グ上を伝達される。さらに、書き込み動作と読みだし動
作は完全非同期に行われても、1度に、一つの書き込み
フリップフロップ、読みだしフリップフロップのみを論
理1に設定することができる。
【0017】ところで、あるモジュールiのWPiとR
Piが同時に論理1と成る場合が起こりえる。この場
合、最後の動作が読みだし動作であれば、FIFOの全
てのデータが読みだされ、FIFO全体が空であること
を示す。一方、最後の動作が書き込み動作であれば、F
IFO全体が満杯であることを示す。この二つの状態を
区別するために、各モジュールの制御部は、EMPTY
*フラグを格納するEMPTY*フリップフロップと、
FULL*フラグを格納するFULL*フリップフロッ
プとを備えている。いずれかのモジュールのEMPTY
*フラグがアサートされた場合は、FIFO全体が空で
あり、いずれかのモジュールのFULL*フラグがアサ
ートされた場合は、FIFO全体が満杯である。
【0018】あるモジュールiにおいて、WPiが0→
1に変化したとき、FULL*の値が、RPiをラッチ
することにより得られる。もし、このときに、RPiが
1であれば、FULL*は1であり、書き込みポインタ
信号がFIFOを前述したように回り、読みだしポイン
タ信号に追い着いたことにより、全体としてFIFOが
満杯になったことを示す。この満杯の状況は、次の読み
だし動作が行われると解消される。すなわち、この時、
フリップフロップRPiは1から0に変化され、モジュ
ールiのFULL*は0にリセットされる。同様に、モ
ジュールiにおいて、RPiが0から1に変化した時
に、このモジュールの書き込みポインタ信号WPiの出
力をラッチすることにより、EMPTY*フラグの値が
定められる。このとき、もし、WPiが論理1であれ
ば、EMPTY*=1となり、読みだしポインタ信号が
FIFOの各モジュールを前述したように回り、書き込
みポインタ信号に追い着いたことにより、全体としてF
IFOは空になったことを示している。この空の状況
は、次の書き込みが行われると解消される。すなわち、
この時、WPiは1から0に変化され、モジュールiの
EMPTY*フラグは0にリセットされる。
【0019】要するに、本発明は、複数のFIFOモジ
ュールにより形成されたFIFOを提供する。FIFO
の制御系は、個々のモジュールに分配される。各モジュ
ールの制御部のモジュラー的性質より、所望数のモジュ
ールを接続して任意サイズのFIFOを構成することが
できるようになる。また、各モジュールの制御部は、単
純で、効率的で、集積回路内に構築に適している。
【0020】
【実施例】以下、本発明の一実施例に係るFIFOにつ
いて説明する。
【0021】図3に、本実施例に係るFIFO20を示
す。
【0022】図示するように、本実施例に係るFIFO
20は、複数のモジュール22より形成されている。各
モジュール22には、0、1、2、、Nと番号を付す。
各モジュール22は、データを記憶するメモリ部24
と、制御部26より構成されている。制御部26は、対
応するメモリ部24へのデータの書き込みとメモリ部2
4よりのデータの読みだしを制御する。図中のDATA
INは、クロック信号CKINで定まるタイミングでメ
モリ部24に書き込まれるデータを示している。また、
DATAOUTは、クロック信号CKOUTで定まるタ
イミングでメモリ部24より読みだされたデータを示し
ている。
【0023】後に詳述するように、0〜Nの各モジュー
ルの制御部26は、全体のFIFO構造についてのコン
トロールユニット28となるように、協調して動作す
る。また、図3に示すように、各制御部26はコントロ
ールユニット28を形成するよう、特にリング状に接続
されている。コントロールユニット28は、全体として
のFIFO20が満杯もしくはの場合に、それぞれF
ULL信号、EMPTY信号を出力する。
【0024】次に、図4に、図3に示したFIFO20
のi段目を構成するモジュール22の内部構成を示す。
i段目を構成するモジュールをモジュールiとして説明
する。
【0025】図4に示すように、モジュール22は、メ
モリ部24と制御部26より成る。そして、メモリ部2
4は記憶手段32と、第1ゲート手段34と、第2ゲー
ト手段36を有している。書き込みポインタ信号がライ
ン35を介して第1ゲート手段34に供給されると、デ
ータDATAINが記憶手段32に書き込まれる。ま
た、読みだしポインタ信号がライン37を介して第2ゲ
ート手段36に供給されると、データDATAOUTが
記憶手段32から読みだされる。
【0026】モジュールiの制御部26は、書き込みポ
インタ信号をライン35に出力する書き込みポインタフ
リップフロップWP(i)41と、読みだしポインタ信
号をライン37に出力する読みだしポインタフリップフ
ロップRP(i)42と、FIFO20全体が満杯にな
ったときにFULL*フラッグをライン53にセットす
るFULL*フリップフロップ43と、FIFO20全
体が空になったときにEMPTY*フラッグをライン5
4にセットするEMPTY*フリップフロップ44とを
有している。
【0027】FIFO20の全てのモジュール22のフ
リップフロップWP41はリング状に接続されている。
1度に一つのWPのみが論理1に設定され一つの記憶手
段32のみがデータを受け取れるように、論理1の書き
込みポインタ信号がこのリング上を、順次、フリップフ
ロップWPからフリップフロップWPへと渡される。こ
のように、フリップフロップWPのリング上を、書き込
みポインタ信号を周回させることにより、メモリ部24
にデータをシーケンシャルに書き込んでいくことができ
る。ここで、このようなリングを形成するために、モジ
ュールiのフリップフロップWP(i)41の入力61
を、モジュールiー1のフリップフロップWP(iー
1)の出力に接続し、ライン35を介して第1ゲート手
段34に接続されているフリップフロップWP(i)4
1の出力63を、モジュールi+1のフリップフロップ
WP(i+1)の入力にも接続している。また、フリッ
プフロップWP41は、クロック信号CKINを受け取
る入力62を有している。
【0028】一方、FIFO20の全てのモジュール2
2のフリップフロップRP42もリング状に接続されて
いる。そして、1度に一つのRPのみが論理1に設定さ
れ一つの記憶手段32からデータを読みだせるように、
論理1の読みだしポインタ信号がこのリング上を、順
次、フリップフロップRPからフリップフロップRPへ
と渡される。このように、フリップフロップRPのリン
グ上を、読みだしポインタ信号を周回させることによ
り、データをメモリ部24よりシーケンシャルに読みだ
すことができる。ここで、このようなリングを形成する
ために、i段目のモジュールiのフリップフロップRP
(i)42の入力72を、モジュールiー1のフリップ
フロップRP(iー1)の出力に接続し、ライン37を
介して第2ゲート手段36に接続されているフリップフ
ロップRP(i)41の出力73を、モジュールi+1
のフリップフロップRP(i+1)の入力にも接続して
いる。また、フリップフロップRP42は、クロック信
号CKOUTを受け取る入力72を有している。
【0029】時として、同モジュールのフリップフロッ
プWP42とフリップフロップRPに論理1が同時にセ
ットされることがある。この場合は、全体としてのFI
FO20が満杯であるか、空であることを示している。
また、この場合において、最後の動作が読みだしであれ
ば全体としてのFIFO20が空であることを意味して
いる。一方、最後の動作が書き込みであれば全体として
のFIFO20が満杯であることを意味している。そこ
で、この2つの状態を区別するために、図4のモジュー
ルiの制御部26は、FULL*フラグを格納するFU
LL*フリップフロップ43と、EMPTY*フラグを
格納するEMPTY*フリップフロップ44を備えてい
る。モジュールiのFULL*フラグがアサートされた
場合は全体としてのFIFO20が空であることを示
し、モジュールiのEMPTY*フラグがアサートされ
た場合は全体としてFIFO20が満杯であることを示
している。
【0030】すなわち、モジュールiにおいては、FU
LL*フリップフロップ43の入力82に与えられる書
き込みポインタ信号が0から1に変化した時に、FUL
L*フリップフロップ43が、入力81を介して、読み
だしポインタフリップフロップRPi42の出力をラッ
チすることにより、FULL*フラグの値が定められ
る。このとき、もし、読みだしポインタフリップフロッ
プRPi42の論理状態が1であれば、FULL*フラ
グは1となり、書き込みポインタ信号がFIFO20の
各モジュールを前述したように回り、読みだしポインタ
信号に追い着いたことにより、全体としてFIFO20
が満杯になったことを示す。
【0031】この満杯の状況は、次の読みだしが行われ
ると解消される。すなわち、この時、フリップフロップ
RPi42は1から0に変化され、モジュールiのFU
LL*フリップフロップ43の内容FULL*は0にリ
セットされる。
【0032】同様に、モジュールiにおいて、EMPT
Y*フリップフロップ44の入力83に与えられる読み
だしポインタ信号が0から1に変化した時に、EMPT
Y*フリップフロップ44が、入力85を介して、書き
込みポインタフリップフロップWPi41の出力をラッ
チすることにより、EMPTY*フラグの値が定められ
る。このとき、もし、書き込みポインタが論理1であれ
ば、EMPTY*=1となり、読みだしポインタ信号が
FIFO20の各モジュールを前述したように回り、書
き込みポインタ信号に追い着いたことにより、全体とし
てFIFO20は空になったことを示している。この空
の状況は、次の書き込みが行われると解消される。すな
わち、この時、フリップフロップWPi41は1から0
に変化され、モジュールiのEMPTY*フラグは0に
リセットされる。
【0033】モジュールiのFULL*フリップフロッ
プ43の出力53のFULLフラグは、モジュールiー
1より送られたFULL*フラグと、排他的論理和(X
ーOR)ゲート91で演算される。排他的論理和ゲート
91の出力は、モジュールi+1の排他的論理和ゲート
91に相当する排他的論理和ゲートの入力に接続され
る。また、同様に、モジュールiのEMPTY*フリッ
プフロップ44の出力54のEMPTYフラグは、モジ
ュールiー1のEMPTY*フラグと、排他的論理和
(XーOR)ゲート92で演算される。排他的論理和ゲ
ート92の出力は、i+1段目のモジュールi+1の排
他的論理和ゲート92に相当する排他的論理和ゲートの
入力に接続される。
【0034】次に、本実施例に係るFIFOの、より詳
細な構成を図5〜図8に分割して示す。
【0035】図5は、FIFOの左上1/4部分を、図
6は右上1/4部分を、図7は左下1/4部分を、図8
は右下1/4部分を示す。
【0036】図5〜図8のFIFO100は、4バイト
のデータを格納することができる。1バイトの読みだし
データは、1度の読みだし動作で読みだされ、1バイト
の書き込みデータは、1度の書き込み動作で書き込まれ
る。読みだし動作と書き込み動作は、完全に非同期に行
われる。
【0037】図5〜図8中において、FIFO100の
上部102は、データの入出力を行う部位であり、1D
001〜1D474の符号を付して示す。なお、図中に
おいては、煩雑となるのを避けるため、符号1D101
〜1D474までの符号のうち1部の符号は省略して示
したが、1Dnnnの下3桁目はモジュ−ルの段目を、
下2桁目はモジュ−ル内の担当ビット番号を、最下位桁
は、それぞれが1ビットのデータを格納するメモリセル
内の素子番号を示す。
【0038】また、下の制御部は104は、読みだしポ
インタ信号や書き込みポインタ信号やFULL*フラグ
やEMPTY*フラグを処理する部位であり、1C00
1〜1C411までの符号を付して示す。
【0039】図5〜図8のFIFO100は、0、1、
2、3の番号を付した4つのモジュールより成る。各モ
ジュールは、メモリ部110、111、112、113
と、これにそれぞれ対応する制御部120、121、1
22、123を有している。また、各メモリ部は、1バ
イトのデータ用のメモリを有している。すなわち、各メ
モリ部は、並列に配置された8個の1ビットメモリ素子
114を有している。
【0040】あるモジュールにおいて、メモリ素子11
4にデータを書き込むためには、接続されているゲート
素子115を書き込みポインタ信号によってイネーブル
にする必要がある。同様に、メモリ素子114からデー
タを読みだすためには、接続されているゲート素子11
6を読みだしポインタ信号によってイネーブルにする必
要がある。また、この際、データは1バイト単位に書き
込み/読みだすので、同じ1つのモジュール内の全ての
ゲート素子114/ゲート素子115はパラレルにイネ
ーブルとする。なお、図5〜図8のFIFO100にお
いては、メモリ部110、111、112、113に書
き込まれるところの、1バイトを構成する8ビットのデ
ータは、並列に配置された8個のインバータ117によ
って反転されている。
【0041】図5〜図8において、DATAIN(7:
0)は、FIFO100に書き込まれる一バイトのデー
タを表し、DATAOUT(7:0)は、FIFO10
0から読みだされた1バイトのデータを表している。書
き込み動作および読みだし動作は、FIFO100の制
御部104に供給されるWDN信号およびRDN信号に
よって、それぞれ制御される。WND信号が論理0であ
るときに、1バイトのデータDATAIN(7:0)が
FIFO100のトップに書き込まれる。また、RDN
信号が論理0であるときに、1バイトのデータDATA
OUT(7:0)がFIFO100のボトムより読みだ
される。FIFO100のトップとは、次にデータが書
き込まれるモジュールの位置を意味し、FIFO100
のボトムとは、次にデータが読みだされるデータを記憶
しているモジュールの位置を意味する。
【0042】図5〜図8のFIFO100において、読
みだし動作は、読みだしポインタRP0、RP1、RP
2、RP3を利用して行う。また、書き込み動作は、書
き込みポインタWP0、WP1、WP2、WP3を利用
して行う。読みだしポインタRP0と書き込みポインタ
WP0はモジュール0に関係している。同様に、読みだ
しポインタRP1と書き込みポインタWP1はモジュー
ル1に関係し、読みだしポインタRP2と書き込みポイ
ンタWP2はモジュール2に関係し、読みだしポインタ
RP3と書き込みポインタWP3はモジュール3に関係
している。論理1を示す読みだしポインタ(RP0、R
P1、RP2、RP3)は、1度に一つのみであり、残
りは論理0を示す。論理1の読みだしポインタは、次の
読みだし動作で1バイトのデータが読みだされるところ
のFIFOのボトムを示す。また、論理1を示す書き込
みポインタ(WP0、WP1、WP2、WP3)は、1
度に一つのみであり、残りは論理0を示し、論理1の書
き込みポインタは、次の書き込み動作で1バイトのデー
タが書き込まれるところのFIFOのトップを示す。
【0043】各書き込みポインタは、前記リング構造上
で相互に接続している。1度の書き込み動作が終了する
と、WP0からWP1へ、WP1からWP2へ、WP2
からWP3へ、WP3からWP0へというシーケンス
で、各書き込みポインタは論理値1をリング上、次のモ
ジュールに渡し、自身は論理値0となる。読みだしポイ
ンタも書き込みポインタの動作と同様になるように、書
き込みポインタ同様リング条に構築されている。
【0044】FIFO100の制御部104はFULL
信号とEMPTY信号を生成する。FIFOのボトムが
同時にトップでもある場合、先に述べたように2つの可
能性がある。最後の動作が読みだし動作であった場合に
は、FIFOの全てのデータが読みだされたことを意味
するので、FIFOが空であり、EMPTY信号が1に
セットされる。その他の場合には、EMPTY信号は0
にセットされる。反対に、最後の動作が書き込み動作で
あった場合には、FIFOが読みだされたいない新たな
4組のデータを記憶していることを意味するので、FI
FOは満杯であり、FULL信号が1にセットされる。
その他の場合には、FULL信号は0にセットされる。
この二つの状態を区別するために、各FIFOモジュー
ルには、FULL*とEMPTY*の2つのフラグが与
えられている。もし、4つのモジュール0、1、2、3
のうちの一つのモジュールで、FULL*=1であれ
ば、このモジュールがFIFOの満杯を検出したことに
なる。これにより、全体としてのFIFOは、FULL
=1を示す。また、4つのモジュール0、1、2、3の
うちの一つのモジュールで、EMPTY*=1であれ
ば、このモジュールがFIFOの空を検出したことにな
る。これにより、全体としてのFIFOは、EMPTY
=1を示す。
【0045】全てのモジュールにおいて、書き込みポイ
ンタWP、読みだしポインタRP、FULL*、EMP
TY*は、全てフリッップフロップとして実現されてい
る。起動時、FIFO100は、モジュール0において
書き込みポインタWP0=1、読みだしポインタRP0
=0、EMPTY*=1、FULL*=1となり、FI
FO100全体において、EMPTYT=1となるよう
な初期状態にセットされる。また、他のモジュールの全
てのフリップフロップは論理0にセットされる。
【0046】図5〜図8のFIFO100は、モジュー
ル0、1、2、3に加えて、いくらかの論理部分を備え
ている。1C001、1C002はNORゲートであ
り、(1)FIFOがリセットされている時に、WRN
とRDNをデゼーブルにする機能、(2)FIFOがE
MPTY=1の状態の時に、既に読みだしたデータを、
また読みださないように、読みだし動作をデゼーブルに
する機能、(3)さらにデータがFIFOの記憶されな
いように、書き込み動作をデゼーブルにする機能の3つ
の機能を担っている。本FIFOは、ノンオーバラップ
クロッキング(nonーoverlap clocki
ng)方式を用いる。たとえば、1C003、1C00
4は、書き込み動作と読みだし動作のための、ノンオー
バラップなクロックを生成している。1D001〜1D
008(インバータ117)は先に述べたように、DA
TIN(7:0)を反転するために用いられる。この操
作は、メモリ素子114が入力から出力までのプロセス
中に各ビットを1度反転させるために必要な操作であ
り、DATAIN(7:0)とDATAOUT(7:
0)の極性を一致させるために、極性を初めにDATA
IN(7:0)のところで反転させているのである。
【0047】RESET=1のときに、FIFOに初期
値をセットするために、モジュール0は他のモジュール
と多少異なっている。RESET=1のとき、読みだし
ポインタをRP0=1、RP1=RP2=RP3=0に
セットし、書き込みポインタをWRP0=1、WP1=
WP2=WP3=0にセットするために、論理値1が、
フリップフロップ1C101、1C102に送られ、論
理値0がフリップフロップ1C201、1C202、1
C301、1C302、1C401、1C402に送ら
れる。モジュール0において、RP0=1、WP=1と
なるので、1C105=1C107=0、1C106=
1C108=1とすることができ、このとき、フリップ
フロップ1C103と1C104に信号がラッチされ
る。フリップフロップ1C103と1C104にラッチ
される信号の値は、1C106=0によって定まり、1
C109(EMPTY*)=1、1C110(FULL
*)=0となる。他のモジュールについては、RESE
T=1であれば、1C205=1C207=1C305
=1C307=1C405=1C407=0、1C20
6=1C208=1C306=1C308=1C406
=1C408=1となり、このとき、フリップフロップ
1C203、1C204、1C303、1C304、1
C403、1C404に信号がラッチされる。ここで、
WP1=WP2=WP3=0、RP1=RP2=RP3
=0であるので、ラッチされた信号は、これよりEMP
TY*(1C209、1C309、1C409)=0、
FULL*(1C210、1C310、1C410)=
0とする。このように、FIFOの各初期値が設定され
る。
【0048】先に述べたように、各モジュールの込みポ
インタと読みだしポインタは、それぞれ、リング構造上
で相互に接続されている。すなわち、フリップフロップ
1C101の出力WP0は、フリップフロップ1C20
1の入力端子に接続し、その出力WP1は、フリップフ
ロップ1C301の入力端子に接続し、その出力WP2
は、フリップフロップ1C401の入力端子に接続し、
その出力WP3は、フリップフロップ1C101の入力
端子に戻されている。そして、過去込み動作が完了した
際(1C007:0→1、1C008:1→0)、各フ
リップフロップ1C101、1C201、1C301、
1C401は、入力する信号をラッチする。また、WP
0、WP1、WP2、WP3のうちの一つのみが論理1
にセットされているので、書き込み動作完了後、この論
理値1が次のモジュールに移ることになる。同様に、論
理1の読みだし信号は、読みだし終了後、次のモジュー
ルに送られる。
【0049】書き込み動作において、書き込みポインタ
が論理1にセットされているモジュール0、1、2、3
は、DATAIN(7:0)のデータを、対応するメモ
リ部110、111、112、113内に記憶する。W
P1=1で、WP0=WP2=WP3=0とすると、書
き込み動作中、1C008=1となると、1C220=
1、1C120=1C320=1C420=0となり、
DATAIN(7:0)のデータを、対応するメモリ部
110、111、112、113内に記憶されるよう、
1D201、1D211、1D221、、、1D271
が開く。同様に、読みだし動作において、読みだしポイ
ンタが論理1のモジュールは、対応するメモリ部内の信
号を、DATAOUT(7:0)に開放する。
【0050】いずれのモジュール0、1、2、3でも、
書き込みポインタが0→1に変化す際に、同モジュー
ルの読みだしポインタの値をラッチすることによりFU
LL*の値を得ることができる。もし、このとき、読み
だしポインタの値が1であれば、FULL*=1とな
り、書き込みポインタ信号がFIFOの各モジュールを
前述したように回り、読みだしポインタ信号に追い着い
たことにより、全体としてFIFOが満杯になったこと
を示す。たとえば、モジュール1において、RP1=
1、WP1=0、WP0=1の場合を考えると、書き込
み動作が完了(モジュール0へデータが書き込まれ
る)、すなわち、1C007:0→1、1C008:1
→0となると、この際、フリップフロップ1C201
は、WP0の値をラッチし、WP1=1となる。そし
て、1C205:1→0、1C206:0→1となり、
フリップフロップ1C203は、1C208の値をラッ
チし、1C210(FULL*)=1となる。その後、
次の読みだし動作が完了し、読みだしポインタが移動
し、RP1=0、1C211=1となり、フリップフロ
ップ1C203がリセットされると、1C210(FU
LL*)=0となり、これによりFIFOのFULL信
号が解除される。EMPTY*(1C209等)の値の
決定も、この同様な実行手順が適用され、同様な動作結
果が得られる。
【0051】なお、以上説明してきた実施例は、本発明
の一例示にすぎず、当業者であれば、本発明の意図や展
望よりそれることなく、数々の実施態様を得ることがで
きる。
【0052】
【発明の効果】以上のように、本発明によれば、単純
に、適当な数のモジュールを接続することにより任意サ
イズのFIFOが提供できるFIFOモジュールを提供
することができる。また、このようなFIFOモジュー
ルであって、単純かつ効率よく分配された、集積回路内
に構築しやすい制御部を有するFIFOモジュールを提
供することができる。
【図面の簡単な説明】
【図1】従来のFIFOを示すブロック図である。
【図2】従来のFIFOの内部構成を示すブロック図で
ある。
【図3】本発明の一実施例に係る、複数のFIFOモジ
ュールより形成されたFIFOの構成を示すブロック図
である。
【図4】FIFOモジュールの内部構成を示すブロック
図である。
【図5】FIFOの内部回路を示す回路図の左上1/4
部分である。
【図6】FIFOの内部回路を示す回路図の右上1/4
部分である。
【図7】FIFOの内部回路を示す回路図の左下1/4
部分である。
【図8】FIFOの内部回路を示す回路図の右下1/4
部分である。
【符号の説明】
20 FIFO 22 モジュール22 24 メモリ部 26 制御部 32 記憶手段 34 第1ゲート手段 36 第2ゲート手段36 41 書き込みポインタフリップフロップWP 42 ポインタフリップフロップRP 43 FULL*フリップフロップ 44 EMPTY*フリップフロップ

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】FIFO(First In First
    Out memory)であって、 シーケンシャルに接続された複数のモジュールを有し、 前記モジュールは、制御部と、データを記憶するメモリ
    部とを有し、 前記各モジュールの制御部は、 セットされているときに、対応するメモリ部へのデータ
    を書き込みを可能とする書き込みポインタを出力する第
    1のフリップフロップと、セットされているときに、対
    応するメモリ部よりのデータの読みだしを可能とする読
    みだしポインタを出力する第2のフリップフロップと、
    FIFOが満杯であることを示す第1のフラグを出力す
    る第3のフリップフロップと、FIFOが空であること
    を示す第2のフラグを出力する第4のフリップフロップ
    とを有し、 前記各モジュールの各第1のフリップフロップは、デー
    タが各モジュールのメモリ部にシーケンシャルに書き込
    まれるよう、各モジュールの前記書き込みポインタがシ
    ーケンシャルにセットされるように、リング状に接続さ
    れ、 前記各モジュールの各第2のフリップフロップは、デー
    タが各モジュールのメモリ部よりシーケンシャルに読み
    だされるよう、各モジュールの前記読みだしポインタが
    シーケンシャルにセットされるように、リング状に接続
    されていることを特徴とするFIFO。
  2. 【請求項2】請求項1記載のFIFOであって、 前記メモリ部へのデータの書き込みと、前記メモリ部よ
    りのデータの読みだしは非同期に行われることを特徴と
    するFIFO。
  3. 【請求項3】請求項2記載のFIFOであって、 1度に、FIFOの1つのモジュールの書き込みポイン
    タのみがセットされ、1度に、FIFOの1つのモジュ
    ールの読みだしポインタのみがセットされることを特徴
    とするFIFO。
  4. 【請求項4】請求項1記載のFIFOであって、 前記複数のモジュールのうちの、あるモジュールにおい
    て、当該モジュールの読みだしポインタがセットされて
    おり、かつ、当該モジュール書き込みポインタがセット
    状態に変化したときに、FIFOが満杯であることを示
    すよう、当該モジュールの前記第1のフラグがセットさ
    れることを特徴とするFIFO。
  5. 【請求項5】請求項4記載のFIFOであって、 前記複数のモジュールのうちの、あるモジュールにおい
    て、当該モジュールの書き込みポインタがセットされて
    おり、かつ、当該モジュール読みだしポインタがセット
    状態に変化したときに、FIFOが空であることを示す
    よう、当該モジュールの前記第2のフラグがセットされ
    ることを特徴とするFIFO。
  6. 【請求項6】FIFO(First In First
    Out memory)であって、 シーケンシャルに接続された複数のモジュールを有し、 前記複数のモジュールの各々は、データを記憶する1つ
    のメモリ部と、前記メモリ部へのデータの書き込みおよ
    び前記メモリ部よりのデータの読みだしを制御する1つ
    の制御部とをそれぞれ有し、 前記各モジュールの制御部は、対応するメモリ部へのデ
    ータを書き込みを可能とする書き込みポインタを生成す
    る手段と、対応するメモリ部よりのデータの読みだしを
    可能とする読みだしポインタを生成する手段と、当該F
    IFOが空になったか否かおよび満杯になったか否かを
    判定する手段とを有し、 前記複数のモジュールの制御部は、データが各モジュー
    ルのメモリ部にシーケンシャルに書き込まれ、データが
    各モジュールのメモリ部よりシーケンシャルに読みださ
    れるように、相互に接続され 前記FIFOが空になったか否かおよび満杯になったか
    否かを判定する手段は、前記FIFOが満杯であること
    を示すための第1のフラグをセットする手段としての第
    3のフリップフロップと、前記FIFOが空であること
    を示すための第 2のフラグをセットする手段としての第
    4のフリップフロップとを備えている ことを特徴とする
    FIFO。
  7. 【請求項7】請求項6記載のFIFOであって、 各モジュールの制御部は、 前記書き込みポインタを生成する第1のフリップフロッ
    プと、前記読みだしポインタを生成する第2のフリップ
    フロップとを有していることを特徴とするFIFO。
  8. 【請求項8】請求項7記載のFIFOであって、 前記各モジュールの第1のフリップフロップは、リング
    状に接続されていることを特徴とするFIFO。
  9. 【請求項9】請求項8記載のFIFOであって、 前記各モジュールの第2のフリップフロップは、リング
    状に接続されていることを特徴とするFIFO。
  10. 【請求項10】請求項6記載のFIFOであって、 前記第1のフラグをセットする手段は、前記読みだしポ
    インタが読みだしを可能とするようにセットされてお
    り、かつ、前記書き込みポインタが書き込みを可能とす
    るようにセットされる変化があったときに、FIFOが
    満杯であることを示すことを特徴とするFIFO。
  11. 【請求項11】請求項10記載のFIFOであって、 前記第2のフラグをセットする手段は、前記書き込みポ
    インタが書き込みを可能とするようにセットされてお
    り、かつ、前記読みだしポインタが読みだしを可能とす
    るようにセットされるように変化したときに、FIFO
    が空であることを示すことを特徴とするFIFO。
  12. 【請求項12】複数個をシーケンシャルに接続すること
    により、FIFO(First InFirst Ou
    t memory)を形成するFIFOモジュールであ
    って、 データを記憶する1つのメモリ部と、前記メモリ部への
    データの書き込みおよび前記メモリ部よりのデータの読
    みだしを制御する1つの制御部とを有し、 前記制御部は、第1、第2、第3及び第4のフリップフ
    ロップを備え、 前記第1のフリップフロップは、前記接続のシーケンシ
    ャル上前後のモジュールにそれぞれ備えられている第1
    のフリップフロップに接続され、前記メモリ部へのデー
    タの書き込みを可能とする場合に第1の2値状態をと
    り、その他の場合は、第2の2値状態をとり、 前記第2のフリップフロップは、前記接続のシーケンシ
    ャル上前後のモジュールにそれぞれ備えられている第2
    のフリップフロップに接続され、前記メモリ部よりのデ
    ータの読みだしを可能とする場合に第1の2値状態をと
    り、その他の場合は、第2の2値状態をとり、 前記第3のフリップフロップは、前記第2のフリップフ
    ロップが前記第1の2値状態であり、かつ、前記第1の
    フリップフロップが前記第2の2値状態から前記第1の
    2値状態に変化した場合に、当該FIFOが満杯である
    ことを示す2値状態のうちの一方の状態にセットされ、 前記第4のフリップフロップは、前記第1のフリップフ
    ロップが前記第1の2値状態であり、かつ、前記第2の
    フリップフロップが前記第2の2値状態から前記第1の
    2値状態に変化した場合に、当該FIFOが空であるこ
    とを示す2値状態のうちの一方の状態にセットされるこ
    とを特徴とするFIFOモジュール。
JP4219336A 1991-08-27 1992-08-18 Fifoモジュール Expired - Fee Related JP2916045B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/750,641 1991-08-27
US07/750,641 US5262996A (en) 1991-08-27 1991-08-27 FIFO module

Publications (2)

Publication Number Publication Date
JPH07282576A JPH07282576A (ja) 1995-10-27
JP2916045B2 true JP2916045B2 (ja) 1999-07-05

Family

ID=25018672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4219336A Expired - Fee Related JP2916045B2 (ja) 1991-08-27 1992-08-18 Fifoモジュール

Country Status (2)

Country Link
US (1) US5262996A (ja)
JP (1) JP2916045B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325401A (en) * 1992-03-13 1994-06-28 Comstream Corporation L-band tuner with quadrature downconverter for PSK data applications
KR950015189B1 (ko) * 1993-10-28 1995-12-23 대우전자주식회사 광폭의 선입선출버퍼(fifo)의 에러검출장치
KR960014169B1 (ko) * 1994-05-17 1996-10-14 금성일렉트론 주식회사 메모리의 데이타 입출력 상태 검출 회로
US5546347A (en) * 1994-07-22 1996-08-13 Integrated Device Technology, Inc. Interleaving architecture and method for a high density FIFO
US5491659A (en) * 1995-01-13 1996-02-13 Hughes Aircraft Corp. Hazard-free circuitry for determining full and empty conditions in first-in-first-out memory
US5898893A (en) * 1995-10-10 1999-04-27 Xilinx, Inc. Fifo memory system and method for controlling
US5712820A (en) * 1995-11-17 1998-01-27 Cypress Semiconductor Corporation Multiple word width memory array clocking scheme
US5642318A (en) * 1995-12-05 1997-06-24 Cypress Semicondcutor Corporation Testing method for FIFOS
US5809339A (en) * 1995-12-06 1998-09-15 Cypress Semiconductor Corp. State machine design for generating half-full and half-empty flags in an asynchronous FIFO
US5712992A (en) * 1995-12-06 1998-01-27 Cypress Semiconductor Corporation State machine design for generating empty and full flags in an asynchronous FIFO
US5673234A (en) * 1995-12-13 1997-09-30 Cypress Semiconductor Corp. Read bitline writer for fallthru in FIFO's
US5963056A (en) * 1995-12-14 1999-10-05 Cypress Semiconductor Corp. Full and empty flag generator for synchronous FIFOs
US5844423A (en) * 1995-12-14 1998-12-01 Cypress Semiconductor Corporation Half-full flag generator for synchronous FIFOs
US5880997A (en) * 1995-12-22 1999-03-09 Cypress Semiconductor Corp. Bubbleback for FIFOS
US5850568A (en) * 1995-12-22 1998-12-15 Cypress Semiconductor Corporation Circuit having plurality of carry/sum adders having read count, write count, and offset inputs to generate an output flag in response to FIFO fullness
US5852748A (en) * 1995-12-29 1998-12-22 Cypress Semiconductor Corp. Programmable read-write word line equality signal generation for FIFOs
US5682356A (en) * 1996-01-11 1997-10-28 Cypress Semiconductor Corp. Multiple word width memory array clocking scheme for reading words from a memory array
US5661418A (en) * 1996-03-13 1997-08-26 Cypress Semiconductor Corp. Signal generation decoder circuit and method
US6510486B1 (en) 1996-03-25 2003-01-21 Cypress Semiconductor Corp. Clocking scheme for independently reading and writing multiple width words from a memory array
US5764967A (en) * 1996-03-29 1998-06-09 Cypress Semiconductor Corporation Multiple frequency memory array clocking scheme for reading and writing multiple width digital words
US5872802A (en) * 1996-05-03 1999-02-16 Cypress Semiconductor Corp. Parity generation and check circuit and method in read data path
US5812465A (en) * 1996-08-02 1998-09-22 Cypress Semiconductor Corp. Redundancy circuit and method for providing word lines driven by a shift register
US6023777A (en) * 1996-09-11 2000-02-08 Cypress Semiconductor Corp. Testing method for devices with status flags
US5968190A (en) * 1996-10-31 1999-10-19 Cypress Semiconductor Corp. Redundancy method and circuit for self-repairing memory arrays
US5860160A (en) * 1996-12-18 1999-01-12 Cypress Semiconductor Corp. High speed FIFO mark and retransmit scheme using latches and precharge
US6434642B1 (en) 1999-10-07 2002-08-13 Xilinx, Inc. FIFO memory system and method with improved determination of full and empty conditions and amount of data stored
US6581165B1 (en) 2000-01-14 2003-06-17 Applied Micro Circuits Corporation System for asynchronously transferring timed data using first and second clock signals for reading and writing respectively when both clock signals maintaining predetermined phase offset
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US9436432B2 (en) * 2005-12-30 2016-09-06 Stmicroelectronics International N.V. First-in first-out (FIFO) memory with multi-port functionality
US7701764B2 (en) * 2006-05-17 2010-04-20 Micron Technology, Inc. Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices
KR102029806B1 (ko) 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
US9715909B2 (en) 2013-03-14 2017-07-25 Micron Technology, Inc. Apparatuses and methods for controlling data timing in a multi-memory system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4592019A (en) * 1983-08-31 1986-05-27 At&T Bell Laboratories Bus oriented LIFO/FIFO memory
EP0206743A3 (en) * 1985-06-20 1990-04-25 Texas Instruments Incorporated Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution
US4751675A (en) * 1985-08-19 1988-06-14 American Telephone And Telegraph Company, At&T Bell Laboratories Memory access circuit with pointer shifting network
US4839866A (en) * 1987-05-29 1989-06-13 Texas Instruments Incorporated Cascadable first-in, first-out memory

Also Published As

Publication number Publication date
JPH07282576A (ja) 1995-10-27
US5262996A (en) 1993-11-16

Similar Documents

Publication Publication Date Title
JP2916045B2 (ja) Fifoモジュール
US5079693A (en) Bidirectional FIFO buffer having reread and rewrite means
US4809161A (en) Data storage device
JP2538067B2 (ja) 条件書き込み手段を有するランダム・アクセス・メモリ回路
US5175819A (en) Cascadable parallel to serial converter using tap shift registers and data shift registers while receiving input data from FIFO buffer
US5088061A (en) Routing independent circuit components
US4884192A (en) Information processor capable of data transfer among plural digital data processing units by using an active transmission line having locally controlled storage of data
US5392442A (en) Data-driven processor having an output unit for providing only operand data in a predetermined order
JPH0391188A (ja) Fifoメモリ
JPS607812B2 (ja) デ−タバツフアリング装置
US4641278A (en) Memory device with a register interchange function
JPH02100737A (ja) データ転送制御装置
US5262997A (en) Extendable FIFO
US6397272B1 (en) Interruption processing circuit for receiving and storing data associated with an event
JPH0721103A (ja) データ転送装置
US6175518B1 (en) Remote register hierarchy accessible using a serial data line
JPH10112178A (ja) Fifoメモリおよびその製造方法
KR950007880B1 (ko) 중앙제어 장치와 인터페이스 되는 피포 회로
JP2538095B2 (ja) 同期保護回路
JP2000341256A (ja) エラスティック回路および集積回路
JPH01233514A (ja) 書込み/読出し非同期形fifo式バッファ
JP2975814B2 (ja) コマンド入力およびテスト項目設定回路
US6360295B1 (en) Serially loadable digital electronic memory and method of loading the same
Lee The Memory
JP3027765B2 (ja) 時刻機構制御装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees