JP2597040B2 - Fifoメモリ装置 - Google Patents
Fifoメモリ装置Info
- Publication number
- JP2597040B2 JP2597040B2 JP2244887A JP24488790A JP2597040B2 JP 2597040 B2 JP2597040 B2 JP 2597040B2 JP 2244887 A JP2244887 A JP 2244887A JP 24488790 A JP24488790 A JP 24488790A JP 2597040 B2 JP2597040 B2 JP 2597040B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory cell
- amount
- data amount
- register
- 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
Links
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、たとえば演算処理装置間の通信用バッファ
として用いるFIFO(ファーストイン・ファーストアウ
ト)メモリ装置に関する。
として用いるFIFO(ファーストイン・ファーストアウ
ト)メモリ装置に関する。
FIFOメモリ装置は演算処理装置間のデータの受け渡し
あるいはデータ伝送路の途中にバッファとして挿入し
て、伝送スピードの調整等に使用する装置である。 第3図は従来のFIFOメモリ装置(以下、「FIFO」とい
う。)のブロック図であり、101はメモリセル、102は上
記メモリセル101へのデータの入力を制御する入力制御
回路、103は上記メモリセル101からのデータの出力を制
御する出力制御回路、104は上記メモリセル101へデータ
を書き込む位置を指定し、上記データの書き込み毎にイ
ンクリメントするレジスタからなる書き込みポインタ、
105は上記メモリセル101からデータを読み出す位置を指
定し、上記データの読み出し毎にインクリメントするレ
ジスタからなる読み出しポインタ、201は上記FIFO内の
データの蓄積の状態を検出する検出ロジックである。上
記検出ロジック201は上記メモリセル101が満ぱいである
時すなわち上記FIFOがフルである時にはフル信号を出力
する。また、上記検出ロジック201は、上記メモリセル1
01の蓄積データ量が零になった時すなわち上記FIFOがエ
ンプティになった時にはエンプティ信号を出力する。11
5は上記書き込みポインタ104および上記読み出しポイン
タ105をリセットするリセットロジックである。第4図
は上記FIFOの使用例を示す。この使用例では、FIFO303
を演算処理部301と演算処理部302の間に接続している。
そして、上記演算処理部301からのデータを上記演算処
理部302へ伝送するためのバッファとして上記FIFO303を
使用している。まず、上記FIFO303にデータを入力する
場合を説明する。上記演算処理部301はデータをDI線に
出力すると共に、シフトインパルスをSI線に出力して、
上記データを上記FIFO303内に伝送する。ここで、上記F
IFO303のデータのビット長が複数ビットでも、同様の動
作を行う。そして、上記FIFO303は、上記書き込みポイ
ンタ104が指定するメモリセル101の位置に上記データを
書き込む。そして、上記書き込みポインタ104はインク
リメントする。ここで、例えば、上記メモリセル101が
リングバッファからなる場合には、上記書き込みポイン
タ104を構成するレジスタの値に1を加えた値と、上記
読み出しポインタ105を構成するレジスタの値とが一致
していれば、上記検出ロジック201は上記バッファとし
てのFIFO303がフルであると判断して、フル信号を演算
処理部301に出力する。また、上記FIFO303がフルでない
場合には、上記入力制御回路102が、上記FIFO303へデー
タを入力することが可能であることを示すインプットレ
ディ信号を上記演算処理部301に出力する。したがっ
て、上記演算処理部301は、データを上記FIFO303に入力
する前には必ず、上記フル信号または上記インプットレ
ディ信号をチェックして、上記FIFO303へのデータ入力
が可能であることを確認する必要がある。そして、上記
フル信号がアクティブになるまで、あるいは上記インプ
ットレディ信号がインアクティブになるまでは、上記FI
FO303にデータを入力することができる。次に、上記FIF
O303から上記演算処理部302へデータを出力する場合を
説明する。まず、上記演算処理部301がリセット信号を
上記FIFO303へ出力すると、上記FIFO303のリセットロジ
ック115は上記書き込みポインタ104および上記読み出し
ポインタ105をリセットして、上記書き込みポインタ104
および上記読み出しポインタ105の示す値は零となり、
上記FIFOの内部にはデータがなくなる(初期化状態)。
そして、上記書き込みポインタ104と上記読み出しポイ
ンタ105の示す値が一致したときには、上記検出ロジッ
ク201は、上記FIFO303の内部にはデータがないと判断し
て、エンプティ信号を上記演算処理部302へ出力する。
次に、上記演算処理部301が上記FIFO303にデータを入力
すると、上記書き込みポインタ104がインクリメントす
る。すると、上記検出ロジック201は、エンプティ信号
をインアクティブにする。また、上記FIFOがDO線にデー
タを出力しているときには、上記出力制御回路103はア
ウトプットレディ信号をアクティブにする。そして、上
記演算処理部302は、上記FIFO303のデータのアンダーフ
ローを避けるために、上記FIFO303からデータを読み出
す前には必ず、上記エンプティ信号がインアクティブで
あることまたは上記アウトプットレディ信号がアクティ
ブであることを確認する必要がある。そして、上記演算
処理部302は上記FIFO303がDO端子に出力したデータを読
み出した後に、シフトアウトパルスをSO線に出力する。
すると、上記FIFO303の読み出しポインタ105がインクリ
メントし、上記FIFO30が次のデータをDO線に出力する。
このようにして、上記演算処理部301から上記FIFO303に
最初に書き込んだデータを、上記演算処理部302は、上
記FIFO303から最初に読み出すことができる。さらに、
上記FIFO303へのデータの書き込み動作と、上記FIFO303
からのデータの読み出し動作は独立に行なうことができ
るので、上記FIFO303は上記演算処理部301と302のデー
タの処理スピードが異なる場合にも両者間のデータの伝
送が可能であり、処理スピードの違う演算処理装置間の
データバッファとして使用できる。 また、今1つのFIFOとしては、上記従来のFIFO303に
おいて、上記検出ロジック201は、フル信号とエンプテ
ィ信号に加えて、上記メモリセル101が上記メモリセル1
01のデータ容量の半分以上データを蓄積した時に、ハー
フフル信号を出力するようにしたものである。
あるいはデータ伝送路の途中にバッファとして挿入し
て、伝送スピードの調整等に使用する装置である。 第3図は従来のFIFOメモリ装置(以下、「FIFO」とい
う。)のブロック図であり、101はメモリセル、102は上
記メモリセル101へのデータの入力を制御する入力制御
回路、103は上記メモリセル101からのデータの出力を制
御する出力制御回路、104は上記メモリセル101へデータ
を書き込む位置を指定し、上記データの書き込み毎にイ
ンクリメントするレジスタからなる書き込みポインタ、
105は上記メモリセル101からデータを読み出す位置を指
定し、上記データの読み出し毎にインクリメントするレ
ジスタからなる読み出しポインタ、201は上記FIFO内の
データの蓄積の状態を検出する検出ロジックである。上
記検出ロジック201は上記メモリセル101が満ぱいである
時すなわち上記FIFOがフルである時にはフル信号を出力
する。また、上記検出ロジック201は、上記メモリセル1
01の蓄積データ量が零になった時すなわち上記FIFOがエ
ンプティになった時にはエンプティ信号を出力する。11
5は上記書き込みポインタ104および上記読み出しポイン
タ105をリセットするリセットロジックである。第4図
は上記FIFOの使用例を示す。この使用例では、FIFO303
を演算処理部301と演算処理部302の間に接続している。
そして、上記演算処理部301からのデータを上記演算処
理部302へ伝送するためのバッファとして上記FIFO303を
使用している。まず、上記FIFO303にデータを入力する
場合を説明する。上記演算処理部301はデータをDI線に
出力すると共に、シフトインパルスをSI線に出力して、
上記データを上記FIFO303内に伝送する。ここで、上記F
IFO303のデータのビット長が複数ビットでも、同様の動
作を行う。そして、上記FIFO303は、上記書き込みポイ
ンタ104が指定するメモリセル101の位置に上記データを
書き込む。そして、上記書き込みポインタ104はインク
リメントする。ここで、例えば、上記メモリセル101が
リングバッファからなる場合には、上記書き込みポイン
タ104を構成するレジスタの値に1を加えた値と、上記
読み出しポインタ105を構成するレジスタの値とが一致
していれば、上記検出ロジック201は上記バッファとし
てのFIFO303がフルであると判断して、フル信号を演算
処理部301に出力する。また、上記FIFO303がフルでない
場合には、上記入力制御回路102が、上記FIFO303へデー
タを入力することが可能であることを示すインプットレ
ディ信号を上記演算処理部301に出力する。したがっ
て、上記演算処理部301は、データを上記FIFO303に入力
する前には必ず、上記フル信号または上記インプットレ
ディ信号をチェックして、上記FIFO303へのデータ入力
が可能であることを確認する必要がある。そして、上記
フル信号がアクティブになるまで、あるいは上記インプ
ットレディ信号がインアクティブになるまでは、上記FI
FO303にデータを入力することができる。次に、上記FIF
O303から上記演算処理部302へデータを出力する場合を
説明する。まず、上記演算処理部301がリセット信号を
上記FIFO303へ出力すると、上記FIFO303のリセットロジ
ック115は上記書き込みポインタ104および上記読み出し
ポインタ105をリセットして、上記書き込みポインタ104
および上記読み出しポインタ105の示す値は零となり、
上記FIFOの内部にはデータがなくなる(初期化状態)。
そして、上記書き込みポインタ104と上記読み出しポイ
ンタ105の示す値が一致したときには、上記検出ロジッ
ク201は、上記FIFO303の内部にはデータがないと判断し
て、エンプティ信号を上記演算処理部302へ出力する。
次に、上記演算処理部301が上記FIFO303にデータを入力
すると、上記書き込みポインタ104がインクリメントす
る。すると、上記検出ロジック201は、エンプティ信号
をインアクティブにする。また、上記FIFOがDO線にデー
タを出力しているときには、上記出力制御回路103はア
ウトプットレディ信号をアクティブにする。そして、上
記演算処理部302は、上記FIFO303のデータのアンダーフ
ローを避けるために、上記FIFO303からデータを読み出
す前には必ず、上記エンプティ信号がインアクティブで
あることまたは上記アウトプットレディ信号がアクティ
ブであることを確認する必要がある。そして、上記演算
処理部302は上記FIFO303がDO端子に出力したデータを読
み出した後に、シフトアウトパルスをSO線に出力する。
すると、上記FIFO303の読み出しポインタ105がインクリ
メントし、上記FIFO30が次のデータをDO線に出力する。
このようにして、上記演算処理部301から上記FIFO303に
最初に書き込んだデータを、上記演算処理部302は、上
記FIFO303から最初に読み出すことができる。さらに、
上記FIFO303へのデータの書き込み動作と、上記FIFO303
からのデータの読み出し動作は独立に行なうことができ
るので、上記FIFO303は上記演算処理部301と302のデー
タの処理スピードが異なる場合にも両者間のデータの伝
送が可能であり、処理スピードの違う演算処理装置間の
データバッファとして使用できる。 また、今1つのFIFOとしては、上記従来のFIFO303に
おいて、上記検出ロジック201は、フル信号とエンプテ
ィ信号に加えて、上記メモリセル101が上記メモリセル1
01のデータ容量の半分以上データを蓄積した時に、ハー
フフル信号を出力するようにしたものである。
ところが、前者のFIFOでは、演算処理装置301は、上
記FIFO303がもうすぐフルになるという情報を得ること
ができないので、上記FIFO303のオーバフローを避ける
ため、上記演算処理装置301は、上記FIFO303にデータを
書き込む前に必らず上記FIFO303のフル信号あるいはイ
ンプットレディ信号をチェックしなければならない。ま
た、上記演算処理装置302は、上記FIFO303がもうすぐエ
ンプティになるという情報を得ることができないので、
上記FIFO303のアンダーフローを避けるため、上記演算
処理装置302は、上記FIFO303からデータを読み出す前に
必らず、上記FIFO303のエンプティ信号あるいはアウト
プットレディ信号のチェックをしなければならない。そ
して、これらのことは、上記演算処理装置301および302
のデータ処理に必要なソフトウェアのステップ数を増加
させる原因となり、上記演算処理装置301および302自体
のデータ処理スピードを低下させるという問題がある。 また、後者のFIFOでは、このFIFOのハーフフル信号が
アクティブでない時には、書き込み側の装置は、上記FI
FOのフル信号あるいはインプットレディ信号のチェック
なしで、上記FIFOのメモリセルのデータ容量の半分まで
の量のデータを書き込むことができる。また、上記FIFO
のハーフフル信号がアクティブである時には、読み出し
側の装置は、上記FIFOのエンプティ信号あるいはアウト
プットレディ信号のチェックなしで上記FIFOのメモリセ
ルのデータ容量の半分までの量のデータを読み出すこと
ができる。 しかしながら、上記後者のFIFOでは、このFIFOのエン
プティ信号あるいはアウトプットレディ信号のチェック
なしで、上記FIFOからデータを出力するには、上記FIFO
のメモリセルのデータ蓄積量がこのメモリセルのデータ
容量の半分以上になるまで、待たねばならず、上記メモ
リセルのデータ容量が大きい場合には、上記FIFOからの
データの出力の待機時間が長すぎて実際の使用に耐えな
いという問題がある。 また、FIFOに接続する演算処理部のデータ処理単位あ
るいは伝送制御部のデータ処理単位は上記演算処理部や
上記伝送制御部のシステム設計時に最適値が選択され、
一般に上記データ処理単位は各システムにおいて異な
る。例えば、符号圧縮の処理を行なう演算処理部と伝送
制御部との間にFIFOをバッファとして用いる場合、上記
演算処理部は一般的に可変長符号を出力するが、1回の
データ処理単位の最大値は決まっている場合が多い。し
たがって、上記演算処理部は、上記FIFOに上記演算処理
部の最大の符号長分のデータ容量があいていることを確
認した後に、上記最大の符号長分以下のデータを連続し
て上記FIFOに出力するようにして、データ処理スピード
を向上させることが要望されている。また、上記伝送制
御部はデータ転送路に一定速度でデータを送信するが、
このとき、送信すべきデータがない場合には、このこと
を示すフラグ信号や無効データの送信が必要になった
り、データの同期を取るためにデータのフレーミングが
必要になる。このように、上記伝送制御部では、フレー
ミングしたフレーム単位のデータ量を上記FIFOから一括
して読み出す必要がある。したがって、上記伝送制御部
は、上記FIFOが上記フレーム単位のデータ量を蓄積した
ことを確認した後に、上記フレーム単位のデータを一括
して上記FIFOから読み出すようにして、データのアンダ
ーフローを避けることが要望されている。 しかしながら、上記従来のFIFOでは、FIFO内のデータ
量の外部への情報は、フル信号とエンプティ信号の2つ
だけか、あるいはフル信号とエンプティ信号とハーフフ
ル信号の3つだけであるので、処理単位のデータ量だけ
連続して読み出すことと、処理単位のデータ量だけ連続
して書き込みを行なうこととの2つの要望に答えること
ができないという問題がある。 そこで、本発明の目的は、外部に接続したデータ処理
装置がデータ入出力毎にフル信号やエンプティ信号のチ
ェックをする必要がなく、上記データ処理装置のデータ
入出力時のデータ処理時間を短かくすると共に、所定の
データ単位毎のデータの入出力に対応できるFIFOメモリ
装置を提供することにある。
記FIFO303がもうすぐフルになるという情報を得ること
ができないので、上記FIFO303のオーバフローを避ける
ため、上記演算処理装置301は、上記FIFO303にデータを
書き込む前に必らず上記FIFO303のフル信号あるいはイ
ンプットレディ信号をチェックしなければならない。ま
た、上記演算処理装置302は、上記FIFO303がもうすぐエ
ンプティになるという情報を得ることができないので、
上記FIFO303のアンダーフローを避けるため、上記演算
処理装置302は、上記FIFO303からデータを読み出す前に
必らず、上記FIFO303のエンプティ信号あるいはアウト
プットレディ信号のチェックをしなければならない。そ
して、これらのことは、上記演算処理装置301および302
のデータ処理に必要なソフトウェアのステップ数を増加
させる原因となり、上記演算処理装置301および302自体
のデータ処理スピードを低下させるという問題がある。 また、後者のFIFOでは、このFIFOのハーフフル信号が
アクティブでない時には、書き込み側の装置は、上記FI
FOのフル信号あるいはインプットレディ信号のチェック
なしで、上記FIFOのメモリセルのデータ容量の半分まで
の量のデータを書き込むことができる。また、上記FIFO
のハーフフル信号がアクティブである時には、読み出し
側の装置は、上記FIFOのエンプティ信号あるいはアウト
プットレディ信号のチェックなしで上記FIFOのメモリセ
ルのデータ容量の半分までの量のデータを読み出すこと
ができる。 しかしながら、上記後者のFIFOでは、このFIFOのエン
プティ信号あるいはアウトプットレディ信号のチェック
なしで、上記FIFOからデータを出力するには、上記FIFO
のメモリセルのデータ蓄積量がこのメモリセルのデータ
容量の半分以上になるまで、待たねばならず、上記メモ
リセルのデータ容量が大きい場合には、上記FIFOからの
データの出力の待機時間が長すぎて実際の使用に耐えな
いという問題がある。 また、FIFOに接続する演算処理部のデータ処理単位あ
るいは伝送制御部のデータ処理単位は上記演算処理部や
上記伝送制御部のシステム設計時に最適値が選択され、
一般に上記データ処理単位は各システムにおいて異な
る。例えば、符号圧縮の処理を行なう演算処理部と伝送
制御部との間にFIFOをバッファとして用いる場合、上記
演算処理部は一般的に可変長符号を出力するが、1回の
データ処理単位の最大値は決まっている場合が多い。し
たがって、上記演算処理部は、上記FIFOに上記演算処理
部の最大の符号長分のデータ容量があいていることを確
認した後に、上記最大の符号長分以下のデータを連続し
て上記FIFOに出力するようにして、データ処理スピード
を向上させることが要望されている。また、上記伝送制
御部はデータ転送路に一定速度でデータを送信するが、
このとき、送信すべきデータがない場合には、このこと
を示すフラグ信号や無効データの送信が必要になった
り、データの同期を取るためにデータのフレーミングが
必要になる。このように、上記伝送制御部では、フレー
ミングしたフレーム単位のデータ量を上記FIFOから一括
して読み出す必要がある。したがって、上記伝送制御部
は、上記FIFOが上記フレーム単位のデータ量を蓄積した
ことを確認した後に、上記フレーム単位のデータを一括
して上記FIFOから読み出すようにして、データのアンダ
ーフローを避けることが要望されている。 しかしながら、上記従来のFIFOでは、FIFO内のデータ
量の外部への情報は、フル信号とエンプティ信号の2つ
だけか、あるいはフル信号とエンプティ信号とハーフフ
ル信号の3つだけであるので、処理単位のデータ量だけ
連続して読み出すことと、処理単位のデータ量だけ連続
して書き込みを行なうこととの2つの要望に答えること
ができないという問題がある。 そこで、本発明の目的は、外部に接続したデータ処理
装置がデータ入出力毎にフル信号やエンプティ信号のチ
ェックをする必要がなく、上記データ処理装置のデータ
入出力時のデータ処理時間を短かくすると共に、所定の
データ単位毎のデータの入出力に対応できるFIFOメモリ
装置を提供することにある。
上記目的を達成するため本発明のFIFOメモリ装置はメ
モリセルと、上記メモリセルへのデータの入力を制御す
る入力制御回路と、上記メモリセルへ入力するデータの
上記メモリセルへの書き込み位置を指定し、上記データ
を書き込む毎にインクリメントする書き込みポインタ
と、上記メモリセルからのデータの出力を制御する出力
制御回路と、上記メモリセルから出力するデータの上記
メモリセルからの読み出し位置を指定し、上記データを
読み出す毎にインクリメントする読み出しポインタと、
上記メモリセルへデータを書き込む毎にインクリメント
する一方、上記メモリセルからデータを読み出す毎にデ
ィクリメントして、上記メモリセル内のデータ量を示す
データカウンタと、上記データカウンタが示す上記メモ
リセル内のデータ量が零であることを検出して、データ
エンプティを示すエンプティ信号を出力する第1のコン
パレータと、上記書き込みポインタと上記読み出しポイ
ンタと上記データカウンタを初期化するリセット回路
と、外部バスからのアクセスが可能であって、上記メモ
リセルに蓄えるデータ量の上限値を設定するデータ量上
限レジスタと、上記データ量上限レジスタが設定する上
記データ量の上限値と上記データカウンタが示す上記メ
モリセル内のデータ量を比較して、両者が一致した時
に、データフルを示すフル信号を出力する第2のコンパ
レータと、外部バスからのアクセスが可能で、上記メモ
リセル内のデータ量が上記上限値に達する前の上記デー
タ量の第1のしきい値を設定するデータ量プリフルレジ
スタと、上記データ量プリフルレジスタが設定する上記
第1のしきい値と上記データカウンタが示す上記メモリ
セル内のデータ量を比較して、上記メモリセル内のデー
タ量が上記第1のしきい値以上になった時に、上記メモ
リセル内のデータ量がもうすぐ上記上限値に達すること
を示すプリフル信号を出力する第3のコンパレータと、
上記バスとのアクセスが可能で、上記メモリセル内のデ
ータ量が零になる前の上記メモリセル内のデータ量の第
2のしきい値を設定するデータ量プリエンプティレジス
タと、上記データ量プリエンプティレジスタが設定する
上記第2のしきい値と上記データカウンタが示す上記メ
モリセル内のデータ量を比較して、上記メモリセル内の
データ量が上記第2のしきい値以下になった時に、上記
メモリセル内のデータ量がもうすぐ零になることを示す
プリエンプティ信号を出力する第4のコンパレータと、
上記データ量上限レジスタと上記データ量プリフルレジ
スタと上記データ量プリエンプティレジスタを外部バス
から読み書き可能にするバスコントローラを備えて、上
記メモリセル内のデータ量が上記上限値に近づいたこと
を示すための第1のしきい値と、上記メモリセル内のデ
ータ量が零に近づいたことを示すための第2のしきい値
を任意に設定して、メモリセル内のデータ量が第1のし
きい値以上になったときにプリフル信号を出力し、上記
メモリセル内のデータ量が第2のしきい値以下になった
ときにプリエンプティ信号を出力するようにしたことを
特徴としている。 また、上記リセット回路により初期化可能で、上記デ
ータカウンタの示す上記メモリセル内のデータ量をバッ
ファリングして、上記メモリセル内のデータ量を外部バ
スから読み出し可能にするデータカウンタレジスタを備
えたことが望ましい。
モリセルと、上記メモリセルへのデータの入力を制御す
る入力制御回路と、上記メモリセルへ入力するデータの
上記メモリセルへの書き込み位置を指定し、上記データ
を書き込む毎にインクリメントする書き込みポインタ
と、上記メモリセルからのデータの出力を制御する出力
制御回路と、上記メモリセルから出力するデータの上記
メモリセルからの読み出し位置を指定し、上記データを
読み出す毎にインクリメントする読み出しポインタと、
上記メモリセルへデータを書き込む毎にインクリメント
する一方、上記メモリセルからデータを読み出す毎にデ
ィクリメントして、上記メモリセル内のデータ量を示す
データカウンタと、上記データカウンタが示す上記メモ
リセル内のデータ量が零であることを検出して、データ
エンプティを示すエンプティ信号を出力する第1のコン
パレータと、上記書き込みポインタと上記読み出しポイ
ンタと上記データカウンタを初期化するリセット回路
と、外部バスからのアクセスが可能であって、上記メモ
リセルに蓄えるデータ量の上限値を設定するデータ量上
限レジスタと、上記データ量上限レジスタが設定する上
記データ量の上限値と上記データカウンタが示す上記メ
モリセル内のデータ量を比較して、両者が一致した時
に、データフルを示すフル信号を出力する第2のコンパ
レータと、外部バスからのアクセスが可能で、上記メモ
リセル内のデータ量が上記上限値に達する前の上記デー
タ量の第1のしきい値を設定するデータ量プリフルレジ
スタと、上記データ量プリフルレジスタが設定する上記
第1のしきい値と上記データカウンタが示す上記メモリ
セル内のデータ量を比較して、上記メモリセル内のデー
タ量が上記第1のしきい値以上になった時に、上記メモ
リセル内のデータ量がもうすぐ上記上限値に達すること
を示すプリフル信号を出力する第3のコンパレータと、
上記バスとのアクセスが可能で、上記メモリセル内のデ
ータ量が零になる前の上記メモリセル内のデータ量の第
2のしきい値を設定するデータ量プリエンプティレジス
タと、上記データ量プリエンプティレジスタが設定する
上記第2のしきい値と上記データカウンタが示す上記メ
モリセル内のデータ量を比較して、上記メモリセル内の
データ量が上記第2のしきい値以下になった時に、上記
メモリセル内のデータ量がもうすぐ零になることを示す
プリエンプティ信号を出力する第4のコンパレータと、
上記データ量上限レジスタと上記データ量プリフルレジ
スタと上記データ量プリエンプティレジスタを外部バス
から読み書き可能にするバスコントローラを備えて、上
記メモリセル内のデータ量が上記上限値に近づいたこと
を示すための第1のしきい値と、上記メモリセル内のデ
ータ量が零に近づいたことを示すための第2のしきい値
を任意に設定して、メモリセル内のデータ量が第1のし
きい値以上になったときにプリフル信号を出力し、上記
メモリセル内のデータ量が第2のしきい値以下になった
ときにプリエンプティ信号を出力するようにしたことを
特徴としている。 また、上記リセット回路により初期化可能で、上記デ
ータカウンタの示す上記メモリセル内のデータ量をバッ
ファリングして、上記メモリセル内のデータ量を外部バ
スから読み出し可能にするデータカウンタレジスタを備
えたことが望ましい。
メモリセルに蓄積されたデータ量が、データ量上限レ
ジスタによって設定される上記データ量の上限値に近づ
き、データ量プリフルレジスタが設定する第1のしきい
値以上になると、第3のコンパレータが上記メモリセル
内のデータ量がもうすぐ上記上限値になることを示すプ
リフル信号を出力する。一方、上記メモリセルに蓄積さ
れたデータ量が零に近づき、データ量プリエンプティレ
ジスタが設定する第2のしきい値以下になると、第4の
コンパレータが、上記メモリセル内のデータ量がもうす
ぐ零になることを示すプリエンプティ信号を出力する。
したがって、上記プリフル信号がインアクティブの時
は、データ書き込み側の外部装置が、データ書き込み毎
にフル信号をチェックすることなしに、フルまでの残り
のデータ数分({最大バッファ量−データ量プリフルレ
ジスタ値}以下)を書き込んでも、オーバーフローする
ことがない。また、上記プリエンプティ信号がインアク
ティブの時は、データ読み出し側の外部装置が、データ
読み出し毎にエンプティ信号をチェックすることなし、
エンプティまでの残りのデータ(データ量プリエンプテ
ィレジスタ値以下のデータ)を読み出してもアンダーフ
ローすることがない。さらに、上記データ書き込み側の
外部装置および上記データ読み出し側の外部装置がデー
タ処理単位を有する場合には、上記メモリセルに蓄える
データ量の上限値とこの上限値より小さい上記第1のし
きい値との差を上記データ書き込み側の外部装置のデー
タ処理単位の最大値と等しく設定し、上記第2のしきい
値を上記データ読み出し側の外部装置のデータ処理単位
の最大値と等しく設定すれば、アンダーフローやオーバ
ーフローすることなく上記データ処理単位毎のデータ入
出力がなされ、データ処理速度が速くなる。また、上記
メモリセルに蓄えるデータ量の上限値を任意に設定し
て、データ蓄積能力を可変にすることにより、データ蓄
積能力と通信路のデータ伝送速度との関係を適切にし
て、伝送すべきデータの遅延量の最大値を適切に制御で
きる。 また、上記メモリセル内の蓄積データ量を外部バスか
ら読み出し可能にするデータカウンタレジスタを備えた
場合には、外部バスから上記メモリセル内の蓄積データ
量をデータ生成側すなわちデータ書き込み側の外部装置
にフィードバックして、上記外部装置のデータ生成量を
適切な値にコントロールするための信号として使用でき
る。
ジスタによって設定される上記データ量の上限値に近づ
き、データ量プリフルレジスタが設定する第1のしきい
値以上になると、第3のコンパレータが上記メモリセル
内のデータ量がもうすぐ上記上限値になることを示すプ
リフル信号を出力する。一方、上記メモリセルに蓄積さ
れたデータ量が零に近づき、データ量プリエンプティレ
ジスタが設定する第2のしきい値以下になると、第4の
コンパレータが、上記メモリセル内のデータ量がもうす
ぐ零になることを示すプリエンプティ信号を出力する。
したがって、上記プリフル信号がインアクティブの時
は、データ書き込み側の外部装置が、データ書き込み毎
にフル信号をチェックすることなしに、フルまでの残り
のデータ数分({最大バッファ量−データ量プリフルレ
ジスタ値}以下)を書き込んでも、オーバーフローする
ことがない。また、上記プリエンプティ信号がインアク
ティブの時は、データ読み出し側の外部装置が、データ
読み出し毎にエンプティ信号をチェックすることなし、
エンプティまでの残りのデータ(データ量プリエンプテ
ィレジスタ値以下のデータ)を読み出してもアンダーフ
ローすることがない。さらに、上記データ書き込み側の
外部装置および上記データ読み出し側の外部装置がデー
タ処理単位を有する場合には、上記メモリセルに蓄える
データ量の上限値とこの上限値より小さい上記第1のし
きい値との差を上記データ書き込み側の外部装置のデー
タ処理単位の最大値と等しく設定し、上記第2のしきい
値を上記データ読み出し側の外部装置のデータ処理単位
の最大値と等しく設定すれば、アンダーフローやオーバ
ーフローすることなく上記データ処理単位毎のデータ入
出力がなされ、データ処理速度が速くなる。また、上記
メモリセルに蓄えるデータ量の上限値を任意に設定し
て、データ蓄積能力を可変にすることにより、データ蓄
積能力と通信路のデータ伝送速度との関係を適切にし
て、伝送すべきデータの遅延量の最大値を適切に制御で
きる。 また、上記メモリセル内の蓄積データ量を外部バスか
ら読み出し可能にするデータカウンタレジスタを備えた
場合には、外部バスから上記メモリセル内の蓄積データ
量をデータ生成側すなわちデータ書き込み側の外部装置
にフィードバックして、上記外部装置のデータ生成量を
適切な値にコントロールするための信号として使用でき
る。
以下、本発明を図示の実施例により詳細に説明する。 第1図は本発明のFIFOのブロック図である。第1図に
おいて、1はメモリセル、2は上記メモリセル1へのデ
ータの入力を制御する入力制御回路、3は上記メモリセ
ル1からのデータの出力を制御する出力制御回路、4は
上記メモリセル1へデータを書き込む位置を指定し、上
記データの書き込み毎にインクリメントするレジスタか
らなる書き込みポインタ、5は上記メモリセル1からデ
ータを読み出す位置を指定し、上記データの読み出し毎
にインクリメントするレジスタからなる読み出しポイン
タである。また、6は上記メモリセル1にデータを書き
込む毎にインクリメントする一方、上記メモリセル1か
らデータを読み出す毎にディクリメントして、上記メモ
リセル1内のデータ量P1を示すデータカウンタである。
7は上記データカウンタ6の出力P1が零に設定した信号
Q4と等しいか等しくないかをチェックして、上記データ
カウンタ6の出力P1が零であるときにデータエンプティ
を示すエンプティ信号を出力する第1のコンパレータで
ある。11は外部バスからのアクセスが可能であって、上
記メモリセル1に蓄えるデータ量の上限値Q1を設定する
データ量上限レジスタである。8は上記データカウンタ
6の出力P1と上記データ量上限レジスタ11の出力Q1を比
較して、P1=Q1になったときに、データフルを示すフル
信号を出力する第2のコンパレータである。12は外部バ
スからのアクセスが可能であって、上記データ量上限レ
ジスタ11の出力Q1より小さい値Q2を設置するデータ量プ
リフルレジスタである。ここで、外部機器から一括入力
を必要とするデータ量の最大値をRImaxとすると、上記
データ量プリフルレジスタ12が設定する値Q2は次の
(1)式により設定する。 Q2=Q1−RImax …(1) 9は上記データカウンタ6の出力P1と上記データ量プリ
フルレジスタ12の出力Q2を比較して、P1≧Q2のときにプ
リフル信号を出力する第3のコンパレータである。13は
外部バスからのアクセスが可能であって、零より大きい
値Q3を設定するデータ量プリエンプティレジスタであ
る。ここで、外部機器への一括出力を必要とするデータ
量の最大値をROmaxとすると、上記データ量プリエンプ
ティレジスタ13が設定する値Q3は、次の(2)式により
設定する。 Q2≧Q3=ROmax≧0 …(2) 10は上記データカウンタ6の出力P1と上記データ量プリ
エンプティレジスタ13の出力Q3とを比較して、P1≦Q3の
ときにプリエンプティ信号を出力する第4のコンパレー
タである。14は外部バスからのアクセスが可能であっ
て、上記データカウンタ6の出力P1をラッチするデータ
カウンタレジスタである。15は外部機器からのリセット
信号を受けて、上記書き込みポインタ4,読み出しポイン
タ5,データカウンタ6,データカウンタレジスタ14の示す
値を零に初期化するリセットロジックである。16はアド
レスデコーダとチップセレクトコントロールとアウトプ
ットイネーブルコントロールからなり、上記11〜14のレ
ジスタを外部バスを介して外部機器と接続するためのイ
ンターフェイス用のバスコントローラである。 第2図は上記実施例のFIFOの使用例を示す。第2図に
示すように、この使用例では上記FIFO43は演算処理部41
と伝送制御部42の間に接続している。上記演算処理部41
は上記伝送制御部42に伝送するためのデータを生成し、
上記伝送制御部42は上記データを図示しない伝送路に送
出する。上記FIFO43は上記演算処理部41と上記伝送制御
部42との間のバッファとして使用している。上記使用例
に基づいて、上記FIFO43の動作を説明する。まず、上記
演算処理部41は上記FIFO43にリセット信号を出力し、上
記FIFO43および図示しない周辺装置を初期化する。次
い、上記演算処理部41は、外部バスを介して上記FIFO43
のデータ量上限レジスタ11の値Q1をセットして、使用す
るデータ容量の最大値を規定する。次に、上記演算処理
部41は一括入力するデータ量の最大値RImaxおよび一括
出力するデータ量の最大値ROmaxを決めて、上記(1)
式および上記(2)式により、上記データ量プリフルレ
ジスタ12の設定値Q2および上記データ量プリエンプティ
レジスタ13の設定値Q3を設定する。次に、上記演算処理
部41は上記FIFO43のプリフル信号をチェックする。プリ
フル信号がアクティブであるときには、上記演算処理部
41はデータを生成せず、別の処理を行なう。上記プリフ
ル信号がインアクティブになった時には、上記演算処理
部41はデータを生成し、DI線に上記データをセットし、
SI線にシフトインパルスを出力して、上記データを上記
FIFO43に書き込む。上記演算処理部41は、1単位のデー
タ生成処理が終わったら、再び上記FIFO43のプリフル信
号をチェックして、上述と同じ動作を繰り返す。このよ
うに、上記演算処理部41は、最大RImaxまでの値をとり
うる上記1単位のデータの量だけのデータを上記FIFO43
に送る毎にプリフル信号をチェックすればよいので、従
来のように1データ書き込み毎にフル信号をチェックす
る必要がなく、データ入力動作を高速化できる。また、
上記演算処理部41は、上述の動作を数回繰り返し毎に1
回程度の割合で、上記FIFO43内に蓄積したデータ量を示
す値P1を上記データカウンタレジスタ14から外部バスを
介して読み出す。そして、上記FIFO43内の蓄積データ量
が所定の値以上になったとき、上記演算処理部41は徐々
にデータ生成量を減少させて処理を行なう。逆に、上記
演算処理部41が上記蓄積データ量が減りすぎたと判断し
たときには、上記演算処理部41はそのデータ生成量を増
加させる処理を行なう。このように、上記FIFO43内に蓄
積したデータ量P1を上記演算処理部にフィードバックし
て、上記演算処理部のデータ生成速度を適切に調整でき
る。一方、上記伝送制御部42はプリエンプティ信号をチ
ェックし、上記プリエンプティ信号インアクティブにな
ったときに、規定のデータ量が上記FIFO43内に蓄積して
いると判断して、上記FIFO43から一括して上記規定の量
のデータを読み出す。そして、上記伝送制御部42は、上
記規定の量のデータをフレーミングして、伝送路へ出力
する。また、上記プリエンプティ信号がアクティブであ
るときには、上記伝送制御部42は上記伝送路へ出力する
だけのデータが上記FIFO43内にないと判断して、無効フ
レームあるいは上述の状態を表わすフラグを上記伝送路
へ出力する。このように、上記伝送制御部42は、最大RO
maxまでの値をとりうる上記フレーミング単位のデータ
量だけ、上記FIFO43から読み出す毎にプリエンプティ信
号をチェックすればよいので、従来のように1データ読
み出す毎にエンプティ信号をチェックする必要がなく、
データ出力動作を高速化できる。 次に、上記FIFO43のバッファリングによる送信データ
の遅延時間の計算方法を示す。ここで、データの伝送路
のデータ伝送スピードをVビット/秒、上記データカウ
ンタレジスタ14が示す上記FIFO43内に積蓄しているデー
タ量をMビットとすると、上記FIFO43の内部でのデータ
の遅延時間T秒は次の(3)式で計算できる。 T=M/V …(3)
おいて、1はメモリセル、2は上記メモリセル1へのデ
ータの入力を制御する入力制御回路、3は上記メモリセ
ル1からのデータの出力を制御する出力制御回路、4は
上記メモリセル1へデータを書き込む位置を指定し、上
記データの書き込み毎にインクリメントするレジスタか
らなる書き込みポインタ、5は上記メモリセル1からデ
ータを読み出す位置を指定し、上記データの読み出し毎
にインクリメントするレジスタからなる読み出しポイン
タである。また、6は上記メモリセル1にデータを書き
込む毎にインクリメントする一方、上記メモリセル1か
らデータを読み出す毎にディクリメントして、上記メモ
リセル1内のデータ量P1を示すデータカウンタである。
7は上記データカウンタ6の出力P1が零に設定した信号
Q4と等しいか等しくないかをチェックして、上記データ
カウンタ6の出力P1が零であるときにデータエンプティ
を示すエンプティ信号を出力する第1のコンパレータで
ある。11は外部バスからのアクセスが可能であって、上
記メモリセル1に蓄えるデータ量の上限値Q1を設定する
データ量上限レジスタである。8は上記データカウンタ
6の出力P1と上記データ量上限レジスタ11の出力Q1を比
較して、P1=Q1になったときに、データフルを示すフル
信号を出力する第2のコンパレータである。12は外部バ
スからのアクセスが可能であって、上記データ量上限レ
ジスタ11の出力Q1より小さい値Q2を設置するデータ量プ
リフルレジスタである。ここで、外部機器から一括入力
を必要とするデータ量の最大値をRImaxとすると、上記
データ量プリフルレジスタ12が設定する値Q2は次の
(1)式により設定する。 Q2=Q1−RImax …(1) 9は上記データカウンタ6の出力P1と上記データ量プリ
フルレジスタ12の出力Q2を比較して、P1≧Q2のときにプ
リフル信号を出力する第3のコンパレータである。13は
外部バスからのアクセスが可能であって、零より大きい
値Q3を設定するデータ量プリエンプティレジスタであ
る。ここで、外部機器への一括出力を必要とするデータ
量の最大値をROmaxとすると、上記データ量プリエンプ
ティレジスタ13が設定する値Q3は、次の(2)式により
設定する。 Q2≧Q3=ROmax≧0 …(2) 10は上記データカウンタ6の出力P1と上記データ量プリ
エンプティレジスタ13の出力Q3とを比較して、P1≦Q3の
ときにプリエンプティ信号を出力する第4のコンパレー
タである。14は外部バスからのアクセスが可能であっ
て、上記データカウンタ6の出力P1をラッチするデータ
カウンタレジスタである。15は外部機器からのリセット
信号を受けて、上記書き込みポインタ4,読み出しポイン
タ5,データカウンタ6,データカウンタレジスタ14の示す
値を零に初期化するリセットロジックである。16はアド
レスデコーダとチップセレクトコントロールとアウトプ
ットイネーブルコントロールからなり、上記11〜14のレ
ジスタを外部バスを介して外部機器と接続するためのイ
ンターフェイス用のバスコントローラである。 第2図は上記実施例のFIFOの使用例を示す。第2図に
示すように、この使用例では上記FIFO43は演算処理部41
と伝送制御部42の間に接続している。上記演算処理部41
は上記伝送制御部42に伝送するためのデータを生成し、
上記伝送制御部42は上記データを図示しない伝送路に送
出する。上記FIFO43は上記演算処理部41と上記伝送制御
部42との間のバッファとして使用している。上記使用例
に基づいて、上記FIFO43の動作を説明する。まず、上記
演算処理部41は上記FIFO43にリセット信号を出力し、上
記FIFO43および図示しない周辺装置を初期化する。次
い、上記演算処理部41は、外部バスを介して上記FIFO43
のデータ量上限レジスタ11の値Q1をセットして、使用す
るデータ容量の最大値を規定する。次に、上記演算処理
部41は一括入力するデータ量の最大値RImaxおよび一括
出力するデータ量の最大値ROmaxを決めて、上記(1)
式および上記(2)式により、上記データ量プリフルレ
ジスタ12の設定値Q2および上記データ量プリエンプティ
レジスタ13の設定値Q3を設定する。次に、上記演算処理
部41は上記FIFO43のプリフル信号をチェックする。プリ
フル信号がアクティブであるときには、上記演算処理部
41はデータを生成せず、別の処理を行なう。上記プリフ
ル信号がインアクティブになった時には、上記演算処理
部41はデータを生成し、DI線に上記データをセットし、
SI線にシフトインパルスを出力して、上記データを上記
FIFO43に書き込む。上記演算処理部41は、1単位のデー
タ生成処理が終わったら、再び上記FIFO43のプリフル信
号をチェックして、上述と同じ動作を繰り返す。このよ
うに、上記演算処理部41は、最大RImaxまでの値をとり
うる上記1単位のデータの量だけのデータを上記FIFO43
に送る毎にプリフル信号をチェックすればよいので、従
来のように1データ書き込み毎にフル信号をチェックす
る必要がなく、データ入力動作を高速化できる。また、
上記演算処理部41は、上述の動作を数回繰り返し毎に1
回程度の割合で、上記FIFO43内に蓄積したデータ量を示
す値P1を上記データカウンタレジスタ14から外部バスを
介して読み出す。そして、上記FIFO43内の蓄積データ量
が所定の値以上になったとき、上記演算処理部41は徐々
にデータ生成量を減少させて処理を行なう。逆に、上記
演算処理部41が上記蓄積データ量が減りすぎたと判断し
たときには、上記演算処理部41はそのデータ生成量を増
加させる処理を行なう。このように、上記FIFO43内に蓄
積したデータ量P1を上記演算処理部にフィードバックし
て、上記演算処理部のデータ生成速度を適切に調整でき
る。一方、上記伝送制御部42はプリエンプティ信号をチ
ェックし、上記プリエンプティ信号インアクティブにな
ったときに、規定のデータ量が上記FIFO43内に蓄積して
いると判断して、上記FIFO43から一括して上記規定の量
のデータを読み出す。そして、上記伝送制御部42は、上
記規定の量のデータをフレーミングして、伝送路へ出力
する。また、上記プリエンプティ信号がアクティブであ
るときには、上記伝送制御部42は上記伝送路へ出力する
だけのデータが上記FIFO43内にないと判断して、無効フ
レームあるいは上述の状態を表わすフラグを上記伝送路
へ出力する。このように、上記伝送制御部42は、最大RO
maxまでの値をとりうる上記フレーミング単位のデータ
量だけ、上記FIFO43から読み出す毎にプリエンプティ信
号をチェックすればよいので、従来のように1データ読
み出す毎にエンプティ信号をチェックする必要がなく、
データ出力動作を高速化できる。 次に、上記FIFO43のバッファリングによる送信データ
の遅延時間の計算方法を示す。ここで、データの伝送路
のデータ伝送スピードをVビット/秒、上記データカウ
ンタレジスタ14が示す上記FIFO43内に積蓄しているデー
タ量をMビットとすると、上記FIFO43の内部でのデータ
の遅延時間T秒は次の(3)式で計算できる。 T=M/V …(3)
以上の説明から明らかなように、本発明のFIFOメモリ
装置は、メモリセル内のデータ量が上限値に近づき、第
1のしきい値に達すると、データ入力側の外部機器にプ
リフル信号を出力するので、プリフル信号を出力するま
では、上記データ入力側の外部機器はデータの入力毎に
上記メモリセル内のデータ量が上限値に達したか否かを
チェックする必要がなく、データ入力動作を高速化する
ことができる。また、上記プリフル信号を出力した後に
上記メモリセル内に入力できるデータ量を示す情報をあ
らかじめ上記データ入力側の外部機器に与えておけば、
上記プリフル信号を出力した後も、上記データ入力側の
外部機器は上記メモリセル内のデータ量が上限値に達し
たか否かをチェックすることなく、上記メモリセル内に
入力できるデータ量だけのデータ量を上記メモリセルへ
連続して入力でき、データ入力動作を高速化できる。ま
た上記メモリセル内のデータ量が零に近づき、第2のし
きい値に達すると、データ出力側の外部機器にプリエン
プティ信号を出力するので、プリエンプティ信号を出力
するまでは、上記データ出力側の外部機器は、データの
出力毎に上記メモリセル内のデータ量は零になったか否
かをチェックする必要がなく、データ出力動作を高速化
できる。また、上記プリエンプティ信号を出力した後
に、上記メモリセル内から出力できるデータ量に示す情
報をあらかじめ上記データ出力側の外部機器に与えてお
けば、上記プリエンプティ信号を出力した後も、上記デ
ータ出力側の外部機器は、上記メモリセル内のデータ量
が零になったか否かをチェックすることなく、上記メモ
リセル内から出力できるデータ量だけのデータ量を、上
記メモリセルから連続して出力できるので、データ出力
動作を高速化できる。また、上記第1のしきい値と上記
第2のしきい値は任意の値に設定できるので、上記デー
タ入力側およびデータ出力側の外部機器のデータ伝送単
位を任意に選択しても、データのオーバーフローやアン
ダーフローの心配がなく、システムの設計の自由度を大
巾に向上できる。また、上記メモリセル内のデータ量の
上限値を任意に動的に設定できるので、通信路における
バッファとして使用した場合のデータの遅延量を調整す
ることができる。 また、上記メモリセル内のデータ量をバッファリング
して、上記メモリセル内のデータ量を外部バスから読み
出し可能にするデータカウンタレジスタを備える場合に
は、上記データカウンタレジスタの示す値をデータの遅
延時間の計算に利用できる。また、上記データカウンタ
レジスタの示す値を、上記データ入力側の外部機器にフ
ィードバックして、上記データ入力側の外部機器のデー
タ生成量を調整するために利用できる。
装置は、メモリセル内のデータ量が上限値に近づき、第
1のしきい値に達すると、データ入力側の外部機器にプ
リフル信号を出力するので、プリフル信号を出力するま
では、上記データ入力側の外部機器はデータの入力毎に
上記メモリセル内のデータ量が上限値に達したか否かを
チェックする必要がなく、データ入力動作を高速化する
ことができる。また、上記プリフル信号を出力した後に
上記メモリセル内に入力できるデータ量を示す情報をあ
らかじめ上記データ入力側の外部機器に与えておけば、
上記プリフル信号を出力した後も、上記データ入力側の
外部機器は上記メモリセル内のデータ量が上限値に達し
たか否かをチェックすることなく、上記メモリセル内に
入力できるデータ量だけのデータ量を上記メモリセルへ
連続して入力でき、データ入力動作を高速化できる。ま
た上記メモリセル内のデータ量が零に近づき、第2のし
きい値に達すると、データ出力側の外部機器にプリエン
プティ信号を出力するので、プリエンプティ信号を出力
するまでは、上記データ出力側の外部機器は、データの
出力毎に上記メモリセル内のデータ量は零になったか否
かをチェックする必要がなく、データ出力動作を高速化
できる。また、上記プリエンプティ信号を出力した後
に、上記メモリセル内から出力できるデータ量に示す情
報をあらかじめ上記データ出力側の外部機器に与えてお
けば、上記プリエンプティ信号を出力した後も、上記デ
ータ出力側の外部機器は、上記メモリセル内のデータ量
が零になったか否かをチェックすることなく、上記メモ
リセル内から出力できるデータ量だけのデータ量を、上
記メモリセルから連続して出力できるので、データ出力
動作を高速化できる。また、上記第1のしきい値と上記
第2のしきい値は任意の値に設定できるので、上記デー
タ入力側およびデータ出力側の外部機器のデータ伝送単
位を任意に選択しても、データのオーバーフローやアン
ダーフローの心配がなく、システムの設計の自由度を大
巾に向上できる。また、上記メモリセル内のデータ量の
上限値を任意に動的に設定できるので、通信路における
バッファとして使用した場合のデータの遅延量を調整す
ることができる。 また、上記メモリセル内のデータ量をバッファリング
して、上記メモリセル内のデータ量を外部バスから読み
出し可能にするデータカウンタレジスタを備える場合に
は、上記データカウンタレジスタの示す値をデータの遅
延時間の計算に利用できる。また、上記データカウンタ
レジスタの示す値を、上記データ入力側の外部機器にフ
ィードバックして、上記データ入力側の外部機器のデー
タ生成量を調整するために利用できる。
第1図は本発明の一実施例のFIFOメモリ装置のブロック
図、第2図は上記実施例の使用例の説明図、第3図は従
来のFIFOメモリ装置のブロック図、第4図は従来のFIFO
メモリ装置の使用例の説明図である。 1,101……メモリセル、2,102……入力制御回路、3,103
……出力制御回路、4,104……書き込みポインタ、5,105
……読み出しポインタ、6……データカウンタ、7,8,9,
10……コンパレータ、11……データ量上限レジスタ、12
……データ量プリフルレジスタ、13……データ量プリエ
ンプティレジスタ、14……データカウンタレジスタ、15
……リセットロジック、16……バスコントローラ。
図、第2図は上記実施例の使用例の説明図、第3図は従
来のFIFOメモリ装置のブロック図、第4図は従来のFIFO
メモリ装置の使用例の説明図である。 1,101……メモリセル、2,102……入力制御回路、3,103
……出力制御回路、4,104……書き込みポインタ、5,105
……読み出しポインタ、6……データカウンタ、7,8,9,
10……コンパレータ、11……データ量上限レジスタ、12
……データ量プリフルレジスタ、13……データ量プリエ
ンプティレジスタ、14……データカウンタレジスタ、15
……リセットロジック、16……バスコントローラ。
Claims (2)
- 【請求項1】メモリセルと、 上記メモリセルへのデータの入力を制御する入力制御回
路と、 上記メモリセルへ入力するデータの上記メモリセルへの
書き込み位置を指定し、上記データを書き込む毎にイン
クリメントする書き込みポインタと、 上記メモリセルからのデータの出力を制御する出力制御
回路と、 上記メモリセルから出力するデータの上記メモリセルか
らの読み出し位置を指定し、上記データを読み出す毎に
インクリメントする読み出しポインタと、 上記メモリセルへデータを書き込む毎にインクリメント
する一方、上記メモリセルからデータを読み出す毎にデ
ィクリメントして、上記メモリセル内のデータ量を示す
データカウンタと、 上記データカウンタが示す上記メモリセル内のデータ量
が零であることを検出して、データエンプティを示すエ
ンプティ信号を出力する第1のコンパレータと、 上記書き込みポインタと上記読み出しポインタと上記デ
ータカウンタを初期化するリセット回路と、 外部バスからのアクセスが可能であって、上記メモリセ
ルに蓄えるデータ量の上限値を設定するデータ量上限レ
ジスタと、 上記データ量上限レジスタが設定する上記データ量の上
限値と上記データカウンタが示す上記メモリセル内のデ
ータ量を比較して、両者が一致した時に、データフルを
示すフル信号を出力する第2のコンパレータと、 外部バスからのアクセスが可能で、上記メモリセル内の
データ量が上記上限値に達する前の上記データ量の第1
のしきい値を設定するデータ量プリフルレジスタと、 上記データ量プリフルレジスタが設定する上記第1のし
きい値と上記データカウンタが示す上記メモリセル内の
データ量を比較して、上記メモリセル内のデータ量が上
記第1のしきい値以上になった時に、上記メモリセル内
のデータ量がもうすぐ上記上限値に達することを示すプ
リフル信号を出力する第3のコンパレータと、 上記バスからのアクセスが可能で、上記メモリセル内の
データ量が零になる前の上記メモリセル内のデータ量の
第2のしきい値を設定するデータ量プリエンプティレジ
スタと、 上記データ量プリエンプティレジスタが設定する上記第
2のしきい値と上記データカウンタが示す上記メモリセ
ル内のデータ量を比較して、上記メモリセル内のデータ
量が上記第2のしきい値以下になった時に、上記メモリ
セル内のデータ量がもうすぐ零になることを示すプリエ
ンプティ信号を出力する第4のコンパレータと、 上記データ量上限レジスタと上記データ量プリフルレジ
スタと上記データ量プリエンプティレジスタを外部バス
から読み書き可能にするバスコントローラを備えて、 上記メモリセル内のデータ量が上記上限値に近づいたこ
とを示すための第1のしきい値と、上記メモリセル内の
データ量が零に近づいたことを示すための第2のしきい
値を任意に設定して、メモリセル内のデータ量が第1の
しきい値以上になったときにプリフル信号を出力し、上
記メモリセル内のデータ量が第2のしきい値以下になっ
たときにプリエンプティ信号を出力するようにしたこと
を特徴とするFIFOメモリ装置。 - 【請求項2】請求項1に記載のFIFOメモリ装置におい
て、上記リセット回路により初期化可能で、上記データ
カウンタの示す上記メモリセル内のデータ量をバッファ
リングして、上記メモリセル内のデータ量を外部バスか
ら読み出し可能にするデータカウンタレジスタを備えた
ことを特徴とするFIFOメモリ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2244887A JP2597040B2 (ja) | 1990-09-12 | 1990-09-12 | Fifoメモリ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2244887A JP2597040B2 (ja) | 1990-09-12 | 1990-09-12 | Fifoメモリ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04121891A JPH04121891A (ja) | 1992-04-22 |
JP2597040B2 true JP2597040B2 (ja) | 1997-04-02 |
Family
ID=17125464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2244887A Expired - Fee Related JP2597040B2 (ja) | 1990-09-12 | 1990-09-12 | Fifoメモリ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2597040B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2883483B2 (ja) * | 1991-12-16 | 1999-04-19 | シャープ株式会社 | データフロー型情報処理装置 |
KR100761430B1 (ko) * | 2000-06-09 | 2007-09-27 | 더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕 | 혼합형 비동기 및 동기 시스템을 위한 낮은 대기시간fifo 회로 |
JP2009043275A (ja) * | 2001-03-05 | 2009-02-26 | Pact Xpp Technologies Ag | シーケンスの形成方法 |
GB2406014B (en) * | 2003-09-10 | 2007-01-31 | Thales Uk Plc | Video system |
JP2010170556A (ja) * | 2010-02-02 | 2010-08-05 | Canon Inc | 印刷管理装置、印刷管理方法及び制御プログラムが格納された記録媒体 |
-
1990
- 1990-09-12 JP JP2244887A patent/JP2597040B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04121891A (ja) | 1992-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5673416A (en) | Memory request and control unit including a mechanism for issuing and removing requests for memory access | |
US5283872A (en) | SCSI device having transfer parameter storage memory blocks which correspond to each apparatus | |
US5237660A (en) | Control method and apparatus for controlling the data flow rate in a FIFO memory, for synchronous SCSI data transfers | |
KR930016873A (ko) | 컴퓨터 시스템 및 시스템 메모리 액세스 제어방법 | |
JPS6318220B2 (ja) | ||
EP0260693B1 (en) | Program mode access control system | |
JP2597040B2 (ja) | Fifoメモリ装置 | |
CN100419723C (zh) | 多中断的缓存装置和方法 | |
US6584512B1 (en) | Communication DMA device for freeing the data bus from the CPU and outputting divided data | |
JP2001101128A (ja) | データ処理装置 | |
JP2746284B2 (ja) | Oamセル挿入装置 | |
JP4346506B2 (ja) | 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置 | |
US6421351B1 (en) | Cell phase control device applicable to data of size exceeding fixed length defined in advance with respect to cell length of write pulse signal or read pulse | |
US7239640B1 (en) | Method and apparatus for controlling ATM streams | |
JP2688245B2 (ja) | Dma制御装置 | |
JP2533958B2 (ja) | デ―タ先行セット装置 | |
JPH03942B2 (ja) | ||
JP2001134421A (ja) | Fifo記憶装置 | |
JP2000295295A (ja) | ブロック・データ転送用バッファメモリ及びシリアルデータ送受信システム | |
JPH06187123A (ja) | データ入出力装置 | |
KR100221298B1 (ko) | 개량된 선입선출형 버퍼 | |
KR100353816B1 (ko) | 통신용 수신 장치 | |
JPH0324844A (ja) | パケット転送方式 | |
JPH023345B2 (ja) | ||
JPS63267060A (ja) | 画情報バツフア制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080109 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090109 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |