JPH05197520A - Fifoメモリ - Google Patents
FifoメモリInfo
- Publication number
- JPH05197520A JPH05197520A JP4008823A JP882392A JPH05197520A JP H05197520 A JPH05197520 A JP H05197520A JP 4008823 A JP4008823 A JP 4008823A JP 882392 A JP882392 A JP 882392A JP H05197520 A JPH05197520 A JP H05197520A
- Authority
- JP
- Japan
- Prior art keywords
- full
- data
- empty
- signal
- processor
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 フル信号検出後のデータ送出によるデータ溢
れをなくす。 【構成】 完全フルになる前にフル信号fullを出力す
る。フル信号fullの発生タイミングはpreset_fullで設
定する。 【効果】 フル信号full検出後にデータを送出するプロ
セッサであってもデータ溢れがなく、ハーフフルを用い
る場合よりFIFOメモリ使用効率が良い。preset_fu
llの設定で各種プロセッサに対応できる。
れをなくす。 【構成】 完全フルになる前にフル信号fullを出力す
る。フル信号fullの発生タイミングはpreset_fullで設
定する。 【効果】 フル信号full検出後にデータを送出するプロ
セッサであってもデータ溢れがなく、ハーフフルを用い
る場合よりFIFOメモリ使用効率が良い。preset_fu
llの設定で各種プロセッサに対応できる。
Description
【0001】
【産業上の利用分野】本発明は、非同期に動作する複数
のプロセッサ、専用処理ハードウエア等の間をパイプラ
イン的にデータが流れる情報処理システムに関し、特
に、上流側プロセッサ等から下流側プロセッサ等への授
受に係るデータを一旦格納するFIFO(Fast-In Fast
-Out)メモリの改良に関する。
のプロセッサ、専用処理ハードウエア等の間をパイプラ
イン的にデータが流れる情報処理システムに関し、特
に、上流側プロセッサ等から下流側プロセッサ等への授
受に係るデータを一旦格納するFIFO(Fast-In Fast
-Out)メモリの改良に関する。
【0002】
【従来の技術】従来から、各種情報処理システムにおい
てFIFOメモリが用いられている。例えば上流側プロ
セッサから下流側プロセッサに向けデータを流すパイプ
ライン型のシステムでは、特に上流側と下流側が非同期
の場合に、授受に係るデータを一旦格納するためFIF
Oメモリを用いる。
てFIFOメモリが用いられている。例えば上流側プロ
セッサから下流側プロセッサに向けデータを流すパイプ
ライン型のシステムでは、特に上流側と下流側が非同期
の場合に、授受に係るデータを一旦格納するためFIF
Oメモリを用いる。
【0003】このようなシステムにおいては、一般に、
FIFOメモリにおけるデータ格納状況を検出しつつ、
通信を行う。検出する状況としては、例えばFIFOメ
モリのエンプティやフルがある。エンプティとはFIF
Oメモリが空の状況であり、フルとは書き込みの余地が
ない状況である。FIFOメモリは、これらの状況を、
エンプティ信号、フル信号によりプロセッサ等に知らせ
る。
FIFOメモリにおけるデータ格納状況を検出しつつ、
通信を行う。検出する状況としては、例えばFIFOメ
モリのエンプティやフルがある。エンプティとはFIF
Oメモリが空の状況であり、フルとは書き込みの余地が
ない状況である。FIFOメモリは、これらの状況を、
エンプティ信号、フル信号によりプロセッサ等に知らせ
る。
【0004】上流側のプロセッサ、専用処理ハードウエ
ア等は、フル信号を検出してデータの送出をやめる。こ
れは、FIFOメモリがフルであるにもかかわらずデー
タが送出されてしまうと、このデータがFIFOメモリ
から溢れてしまい、システムの誤動作につながるからで
ある。
ア等は、フル信号を検出してデータの送出をやめる。こ
れは、FIFOメモリがフルであるにもかかわらずデー
タが送出されてしまうと、このデータがFIFOメモリ
から溢れてしまい、システムの誤動作につながるからで
ある。
【0005】
【発明が解決しようとする課題】しかしながら、プロセ
ッサ等には、フル信号を検知してただちにデータの送出
を停止するものの他、フル信号検出後1以上のデータを
送出する構成のものもある。従って、実際にフルとなっ
ている状態でフル信号を出力するのでは遅く、データ溢
れが生じてしまう場合がある。
ッサ等には、フル信号を検知してただちにデータの送出
を停止するものの他、フル信号検出後1以上のデータを
送出する構成のものもある。従って、実際にフルとなっ
ている状態でフル信号を出力するのでは遅く、データ溢
れが生じてしまう場合がある。
【0006】このような不具合を防止するFIFOメモ
リとしては、従来、完全にフルになる以前の状態(ハー
フフル)でフル信号を出力する構成があった。この構成
のFIFOメモリを使用した場合、フル信号検出後1以
上のデータを送出する構成のプロセッサであっても、デ
ータ溢れが生じることはない。しかし、このように早め
にフル信号を出力する構成では、FIFOメモリの内部
メモリを有効活用できなくなる。
リとしては、従来、完全にフルになる以前の状態(ハー
フフル)でフル信号を出力する構成があった。この構成
のFIFOメモリを使用した場合、フル信号検出後1以
上のデータを送出する構成のプロセッサであっても、デ
ータ溢れが生じることはない。しかし、このように早め
にフル信号を出力する構成では、FIFOメモリの内部
メモリを有効活用できなくなる。
【0007】本発明は、このような問題点を解決するこ
とを課題としてなされたものであり、データ溢れが生じ
ないようかつ内部メモリを有効活用できるようFIFO
メモリを構成し、さらにアクセスの高速化を実現するこ
とを目的とする。
とを課題としてなされたものであり、データ溢れが生じ
ないようかつ内部メモリを有効活用できるようFIFO
メモリを構成し、さらにアクセスの高速化を実現するこ
とを目的とする。
【0008】
【課題を解決するための手段】このような目的を達成す
るために、本発明の請求項1に係るFIFOメモリは、
各段毎に順に書き込み/読み出し可能な複数段の記憶手
段と、書き込みクロックを計数することにより複数段の
記憶手段からデータの書き込み先を指定する第1の計数
手段と、読み出しクロックを計数することにより複数段
の記憶手段からデータの読み出し先を指定する第2の計
数手段と、第2の計数手段により指定された段が第1の
計数手段により指定された段からみて設定値以上前の段
である場合に、前記記憶手段への書き込み余地がない旨
のフル信号を出力するフル信号出力手段と、この設定値
を設定する設定手段と、を備えることを特徴とする。
るために、本発明の請求項1に係るFIFOメモリは、
各段毎に順に書き込み/読み出し可能な複数段の記憶手
段と、書き込みクロックを計数することにより複数段の
記憶手段からデータの書き込み先を指定する第1の計数
手段と、読み出しクロックを計数することにより複数段
の記憶手段からデータの読み出し先を指定する第2の計
数手段と、第2の計数手段により指定された段が第1の
計数手段により指定された段からみて設定値以上前の段
である場合に、前記記憶手段への書き込み余地がない旨
のフル信号を出力するフル信号出力手段と、この設定値
を設定する設定手段と、を備えることを特徴とする。
【0009】請求項2に係るFIFOメモリは、書き込
みクロックに応じてフル信号をラッチする第1のラッチ
手段を備えることを特徴とする。
みクロックに応じてフル信号をラッチする第1のラッチ
手段を備えることを特徴とする。
【0010】請求項3に係るFIFOメモリは、第1及
び第2の計数手段の計数値が一致している場合にエンプ
ティ信号を出力するエンプティ信号出力手段と、読み出
しクロックに応じてエンプティ信号をラッチする第2の
ラッチ手段と、を備えることを特徴とする。
び第2の計数手段の計数値が一致している場合にエンプ
ティ信号を出力するエンプティ信号出力手段と、読み出
しクロックに応じてエンプティ信号をラッチする第2の
ラッチ手段と、を備えることを特徴とする。
【0011】そして、請求項4に係る情報処理システム
は、非同期に動作する複数の情報処理手段の間をパイプ
ライン的に上流から下流に向けデータが流れ、各情報処
理手段の間でのデータの授受にあたって請求項1乃至3
記載のFIFOメモリにより当該データを一旦格納する
ことを特徴とする。
は、非同期に動作する複数の情報処理手段の間をパイプ
ライン的に上流から下流に向けデータが流れ、各情報処
理手段の間でのデータの授受にあたって請求項1乃至3
記載のFIFOメモリにより当該データを一旦格納する
ことを特徴とする。
【0012】
【作用】本発明のFIFOメモリにおいては、書き込み
段及び読み出し段が、それぞれ第1又は第2の計数手段
により指定される。すなわち、第1の計数手段は例えば
上流側のプロセッサからの書き込みクロックを計数して
データの書き込み先を指定し、第2の計数手段は例えば
下流側のプロセッサからの読み出しクロックを計数して
データの読み出し先を指定する。FIFOメモリの記憶
手段がフル状態となった場合、先に述べたようにフル信
号を出力する必要がある。本発明では、記憶手段がフル
であるか否かの判定を、第2の計数手段により指定され
た段が第1の計数手段により指定された段からみて設定
値以上前の段であるか否かの判定として実行している。
従って、例えば上流側のプロセッサがフル信号検出後に
1以上データを送出してしまうプロセッサであったとし
ても、記憶手段が完全にフルになっている状態に至る前
にフル信号が出力されているため、データ溢れを防止で
きる。さらに、この設定値の設定により、完全フル以前
の任意の時点でフル信号を出力させることが可能にな
り、データ送出に係るプロセッサ等の構成・動作に応じ
た設定が可能である。
段及び読み出し段が、それぞれ第1又は第2の計数手段
により指定される。すなわち、第1の計数手段は例えば
上流側のプロセッサからの書き込みクロックを計数して
データの書き込み先を指定し、第2の計数手段は例えば
下流側のプロセッサからの読み出しクロックを計数して
データの読み出し先を指定する。FIFOメモリの記憶
手段がフル状態となった場合、先に述べたようにフル信
号を出力する必要がある。本発明では、記憶手段がフル
であるか否かの判定を、第2の計数手段により指定され
た段が第1の計数手段により指定された段からみて設定
値以上前の段であるか否かの判定として実行している。
従って、例えば上流側のプロセッサがフル信号検出後に
1以上データを送出してしまうプロセッサであったとし
ても、記憶手段が完全にフルになっている状態に至る前
にフル信号が出力されているため、データ溢れを防止で
きる。さらに、この設定値の設定により、完全フル以前
の任意の時点でフル信号を出力させることが可能にな
り、データ送出に係るプロセッサ等の構成・動作に応じ
た設定が可能である。
【0013】請求項2においては、第1のラッチ手段に
よりフル信号がラッチされる。ラッチタイミングは例え
ば上流側プロセッサからの書き込みクロックで与えられ
る。これにより、上流側プロセッサの動作周波数に好適
に対応できる。
よりフル信号がラッチされる。ラッチタイミングは例え
ば上流側プロセッサからの書き込みクロックで与えられ
る。これにより、上流側プロセッサの動作周波数に好適
に対応できる。
【0014】請求項3においては、第1及び第2の計数
手段の計数値が一致している場合にエンプティ信号が出
力される。また、第2のラッチ手段によりこのエンプテ
ィ信号がラッチされる。ラッチタイミングは例えば下流
側プロセッサからの読み出しクロックで与えられる。こ
れにより、下流側プロセッサの動作周波数に好適に対応
できる。
手段の計数値が一致している場合にエンプティ信号が出
力される。また、第2のラッチ手段によりこのエンプテ
ィ信号がラッチされる。ラッチタイミングは例えば下流
側プロセッサからの読み出しクロックで与えられる。こ
れにより、下流側プロセッサの動作周波数に好適に対応
できる。
【0015】そして、請求項4においては、非同期に動
作する複数の情報処理手段の間でパイプライン的に上流
から下流に向けデータが流される。このとき、各情報処
理手段の間で授受されるデータが本発明のFIFOメモ
リにより一旦格納される。従って、互いに非同期の情報
処理手段の間でのデータの授受が、データ溢れなく、さ
らには高速に、実現される。
作する複数の情報処理手段の間でパイプライン的に上流
から下流に向けデータが流される。このとき、各情報処
理手段の間で授受されるデータが本発明のFIFOメモ
リにより一旦格納される。従って、互いに非同期の情報
処理手段の間でのデータの授受が、データ溢れなく、さ
らには高速に、実現される。
【0016】
【実施例】以下、本発明の好適な実施例について図面に
基づき説明する。
基づき説明する。
【0017】実施例の構成 図1には、本発明の一実施例に係るFIFOメモリの構
成が示されている。この図に示されるFIFOメモリ
は、図示しない複数のプロセッサ、専用処理ハードウエ
ア等によりアクセスされる。これらのプロセッサ等は一
般に非同期である。この図に示されるFIFOメモリ
は、上流側プロセッサ等から下流側プロセッサ等に向け
パイプライン的に流されるデータを一旦格納する。
成が示されている。この図に示されるFIFOメモリ
は、図示しない複数のプロセッサ、専用処理ハードウエ
ア等によりアクセスされる。これらのプロセッサ等は一
般に非同期である。この図に示されるFIFOメモリ
は、上流側プロセッサ等から下流側プロセッサ等に向け
パイプライン的に流されるデータを一旦格納する。
【0018】この図に示されるFIFOメモリは、N個
のレジスタ10−i(i=0,1,…N−1から構成さ
れるレジスタファイル12を備えている。すなわち、レ
ジスタ10−iはFIFOメモリの内部メモリである。
レジスタ10−iは、ライトポインタ14及びリードポ
インタ16によって巡回的に指定され、上流側プロセッ
サによるデータin_dataの書き込み及び下流側プロセッ
サによるデータout _dataの読み出しが実行される。
のレジスタ10−i(i=0,1,…N−1から構成さ
れるレジスタファイル12を備えている。すなわち、レ
ジスタ10−iはFIFOメモリの内部メモリである。
レジスタ10−iは、ライトポインタ14及びリードポ
インタ16によって巡回的に指定され、上流側プロセッ
サによるデータin_dataの書き込み及び下流側プロセッ
サによるデータout _dataの読み出しが実行される。
【0019】すなわち、ライトポインタ14は、上流側
プロセッサ等から書き込み信号wrが発せられているとき
に当該上流側プロセッサ等からの書き込みクロックclk1
(以下、wr_clk ともいう)を計数する。上流側プロセ
ッサ等から供給されるデータin_dataは、ライトポイン
タ14の数値wr_pointer によって指定されたレジスタ
10−iに書き込まれる。この書き込み動作は、書き込
みクロックclk1の立ち上がりエッジで行う。
プロセッサ等から書き込み信号wrが発せられているとき
に当該上流側プロセッサ等からの書き込みクロックclk1
(以下、wr_clk ともいう)を計数する。上流側プロセ
ッサ等から供給されるデータin_dataは、ライトポイン
タ14の数値wr_pointer によって指定されたレジスタ
10−iに書き込まれる。この書き込み動作は、書き込
みクロックclk1の立ち上がりエッジで行う。
【0020】また、リードポインタ16は、下流側プロ
セッサ等から読み出し信号rdが発せられているときに当
該下流側プロセッサ等からの読み出しクロックclk2(以
下、rd_clk ともいう)を計数する。リードポインタ1
6の計数値rd_pointer は、レジスタファイル12に付
設されたマルチプレクサ18に供給され、マルチプレク
サ18からは、リードポインタ16の計数値rd_pointe
r に対応した段のレジスタ10−iに格納されているデ
ータがout _dataとして出力され、下流側プロセッサ等
はこれを読み込む。この読み出し動作は、読み出しクロ
ックclk2の立ち下がりエッジで行う。
セッサ等から読み出し信号rdが発せられているときに当
該下流側プロセッサ等からの読み出しクロックclk2(以
下、rd_clk ともいう)を計数する。リードポインタ1
6の計数値rd_pointer は、レジスタファイル12に付
設されたマルチプレクサ18に供給され、マルチプレク
サ18からは、リードポインタ16の計数値rd_pointe
r に対応した段のレジスタ10−iに格納されているデ
ータがout _dataとして出力され、下流側プロセッサ等
はこれを読み込む。この読み出し動作は、読み出しクロ
ックclk2の立ち下がりエッジで行う。
【0021】この実施例は、さらに、フラグチェッカ2
0、フルタイミング設定器22、フリップフロップ24
及び26を有している。
0、フルタイミング設定器22、フリップフロップ24
及び26を有している。
【0022】フラグチェッカ20は、wr_pointer 及び
rd_pointer が後述する条件を満たす場合、逐次エンプ
ティ信号empty 又はフル信号fullを出力する。フラグチ
ェッカ18に接続されているフリップフロップ24及び
26は、それぞれ、empty 又はfullをラッチする。empt
y 及びfullは、それぞれ、clk2(rd _clk)又はclk1(wr
_clk)の立ち上がりでラッチされる。ラッチされたempt
y 及びfull、すなわち図中のlat _empty 及びlat _fu
llは、プロセッサ等に出力される。
rd_pointer が後述する条件を満たす場合、逐次エンプ
ティ信号empty 又はフル信号fullを出力する。フラグチ
ェッカ18に接続されているフリップフロップ24及び
26は、それぞれ、empty 又はfullをラッチする。empt
y 及びfullは、それぞれ、clk2(rd _clk)又はclk1(wr
_clk)の立ち上がりでラッチされる。ラッチされたempt
y 及びfull、すなわち図中のlat _empty 及びlat _fu
llは、プロセッサ等に出力される。
【0023】そして、フルタイミング設定器22は、外
部から供給される信号preset_fullに応じ、フラグチェ
ッカ20からのfullの出力時点を設定する。すなわち、
レジスタファイル12におけるデータ溢れが生じること
なくかつレジスタ10−iが効率的に使用されるよう、
preset_fullにより、プロセッサ等の仕様に応じてfull
の出力時点を設定できる。
部から供給される信号preset_fullに応じ、フラグチェ
ッカ20からのfullの出力時点を設定する。すなわち、
レジスタファイル12におけるデータ溢れが生じること
なくかつレジスタ10−iが効率的に使用されるよう、
preset_fullにより、プロセッサ等の仕様に応じてfull
の出力時点を設定できる。
【0024】本実施例の大きな特徴は、empty 及びfull
の生成アルゴリズム、すなわちフラグチェッカ20の動
作原理にある。特にfullの生成により、データ溢れの防
止という顕著な効果を得ることができる。以下、次の論
理式で表される信号生成アルゴリズムを参照しつつ、こ
れらの特徴に関して説明する。
の生成アルゴリズム、すなわちフラグチェッカ20の動
作原理にある。特にfullの生成により、データ溢れの防
止という顕著な効果を得ることができる。以下、次の論
理式で表される信号生成アルゴリズムを参照しつつ、こ
れらの特徴に関して説明する。
【0025】
【数1】 エンプティ時の動作 図2には、本実施例におけるエンプティ時の動作がタイ
ミングチャートとして示されている。なお、この図は負
論理で描かれている。
ミングチャートとして示されている。なお、この図は負
論理で描かれている。
【0026】まず、上流側プロセッサ等からの書き込み
信号wr- がオンしていない時点(t1 以前)でwr_poin
ter =rd_pointer =n(0≦n≦N−1)であったと
する。この場合、図3に示されるように、wr_pointer
とrd_pointer が同一のレジスタ10−iを指してい
る。wr_pointer は最後に書き込みを行ったレジスタ1
0−iを示しており、rd_pointer は最後に読み出しを
行ったレジスタ10−iを示しているから、wr_pointe
r =rd_pointer の場合、N個のレジスタ10−iすべ
てに対して書き込みが可能である。
信号wr- がオンしていない時点(t1 以前)でwr_poin
ter =rd_pointer =n(0≦n≦N−1)であったと
する。この場合、図3に示されるように、wr_pointer
とrd_pointer が同一のレジスタ10−iを指してい
る。wr_pointer は最後に書き込みを行ったレジスタ1
0−iを示しており、rd_pointer は最後に読み出しを
行ったレジスタ10−iを示しているから、wr_pointe
r =rd_pointer の場合、N個のレジスタ10−iすべ
てに対して書き込みが可能である。
【0027】この状態、すなわちエンプティ状態では、
上記アルゴリズムにおける第1の判定式が成立する。す
なわち、wr_pointer =rd_pointer であるから、フラ
グチェッカ20はエンプティ信号empty をオンさせてい
る。フリップフロップ26は、タイミングt3 以前のcl
k2(rd _clk)の立ち上がりエッジでこれをラッチしてい
る。従って、lat _empty もオンしている。
上記アルゴリズムにおける第1の判定式が成立する。す
なわち、wr_pointer =rd_pointer であるから、フラ
グチェッカ20はエンプティ信号empty をオンさせてい
る。フリップフロップ26は、タイミングt3 以前のcl
k2(rd _clk)の立ち上がりエッジでこれをラッチしてい
る。従って、lat _empty もオンしている。
【0028】タイミングt1 においては、上流側プロセ
ッサ等からの書き込み信号wr- がオンする。この状態で
clk1(wr _clk)が立ち上がると(t2 )、wr_pointer
が1インクリメントし、上流側プロセッサ等からのin_
dataがwr_pointer により示されるレジスタ10に書き
込まれる。このとき、図4に示されるような状態とな
り、wr_pointer ≠rd_pointer となるため、エンプテ
ィ信号empty をオンさせる条件が成立しなくなる。この
ため、フラグチェッカ20はエンプティ信号empty をオ
フさせる。フリップフロップ26は、タイミングt3 、
すなわちタイミングt2 直後のclk2(rd _clk)の立ち上
がりでエンプティ信号empty をラッチする。すなわちla
t _empty がオフする。
ッサ等からの書き込み信号wr- がオンする。この状態で
clk1(wr _clk)が立ち上がると(t2 )、wr_pointer
が1インクリメントし、上流側プロセッサ等からのin_
dataがwr_pointer により示されるレジスタ10に書き
込まれる。このとき、図4に示されるような状態とな
り、wr_pointer ≠rd_pointer となるため、エンプテ
ィ信号empty をオンさせる条件が成立しなくなる。この
ため、フラグチェッカ20はエンプティ信号empty をオ
フさせる。フリップフロップ26は、タイミングt3 、
すなわちタイミングt2 直後のclk2(rd _clk)の立ち上
がりでエンプティ信号empty をラッチする。すなわちla
t _empty がオフする。
【0029】図2においては、下流側プロセッサ等は読
み出し信号rdを常にオンさせている。従って、タイミン
グt3 直後のclk2(rd _clk)の立ち下がり(t4 )でリ
ードポインタ16はrd_pointer を1インクリメントさ
せ、n+1番目のレジスタ10からのデータの読み出し
が実行される。
み出し信号rdを常にオンさせている。従って、タイミン
グt3 直後のclk2(rd _clk)の立ち下がり(t4 )でリ
ードポインタ16はrd_pointer を1インクリメントさ
せ、n+1番目のレジスタ10からのデータの読み出し
が実行される。
【0030】この読み出しが行われる結果、再び、レジ
スタファイル12は図5に示されるようにエンプティ状
態となる。すなわち、フラグチェッカ20は、wr_poin
ter=rd_pointer の条件が成り立つため、再びエンプ
ティ信号empty をオンさせる。
スタファイル12は図5に示されるようにエンプティ状
態となる。すなわち、フラグチェッカ20は、wr_poin
ter=rd_pointer の条件が成り立つため、再びエンプ
ティ信号empty をオンさせる。
【0031】上流側プロセッサ等からの書き込み信号wr
は、次のclk1(wr _clk)の立ち上がり(t5 )までオン
している。タイミングt5 では、ライトポインタ14は
clk1(wr _clk)の立ち上がりに応じwr_pointer を1イ
ンクリメントさせ、レジスタ10への書き込みが行われ
る。すると、図6に示されるようにエンプティ状態でな
くなるため、フラグチェッカ20は再びエンプティ信号
empty をオフさせる。この直後のclk2(rd _clk)の立ち
上がり(t6 )では、このエンプティ信号empty がラッ
チされるが、タイミングt4 からt5 の間にclk2(rd _
clk)の立ち上がりがないためlat _empty の値には変化
がない。すなわち、上流側プロセッサ等と下流側プロセ
ッサ等とが非同期であるために短時間エンプティ信号em
pty がオンしても、これは、上流側プロセッサ等からは
見えなくなる。
は、次のclk1(wr _clk)の立ち上がり(t5 )までオン
している。タイミングt5 では、ライトポインタ14は
clk1(wr _clk)の立ち上がりに応じwr_pointer を1イ
ンクリメントさせ、レジスタ10への書き込みが行われ
る。すると、図6に示されるようにエンプティ状態でな
くなるため、フラグチェッカ20は再びエンプティ信号
empty をオフさせる。この直後のclk2(rd _clk)の立ち
上がり(t6 )では、このエンプティ信号empty がラッ
チされるが、タイミングt4 からt5 の間にclk2(rd _
clk)の立ち上がりがないためlat _empty の値には変化
がない。すなわち、上流側プロセッサ等と下流側プロセ
ッサ等とが非同期であるために短時間エンプティ信号em
pty がオンしても、これは、上流側プロセッサ等からは
見えなくなる。
【0032】次のclk2(rd _clk)の立ち下がりタイミン
グt7 では、rd_pointer が1インクリメントされデー
タの読み出しが行われるため、図7に示されるようにレ
ジスタファイル12は再びエンプティ状態となる。従っ
て、フラグチェッカ20はempty をオンさせる。さら
に、次のclk1(wr _clk)の立ち上がりタイミングt8 で
はすでに書き込み信号wrがオフしているためwr_pointe
r は変わらず書き込みは行われない。従って、エンプテ
ィ状態が続き、次のclk2(rd _clk)の立ち下がりタイミ
ングt9 でlat _empty もオンする。
グt7 では、rd_pointer が1インクリメントされデー
タの読み出しが行われるため、図7に示されるようにレ
ジスタファイル12は再びエンプティ状態となる。従っ
て、フラグチェッカ20はempty をオンさせる。さら
に、次のclk1(wr _clk)の立ち上がりタイミングt8 で
はすでに書き込み信号wrがオフしているためwr_pointe
r は変わらず書き込みは行われない。従って、エンプテ
ィ状態が続き、次のclk2(rd _clk)の立ち下がりタイミ
ングt9 でlat _empty もオンする。
【0033】このように、エンプティ時には、clk1(wr
_clk)の立ち上がりに応じてレジスタファイル12への
書き込みを行い、clk2(rd _clk)の立ち下がりに応じて
読み出しを行うことができる。従って、上流側プロセッ
サ等と下流側プロセッサ等とが非同期であっても構わな
い。むろん、エンプティ時でなくてもこの点は同様であ
る。
_clk)の立ち上がりに応じてレジスタファイル12への
書き込みを行い、clk2(rd _clk)の立ち下がりに応じて
読み出しを行うことができる。従って、上流側プロセッ
サ等と下流側プロセッサ等とが非同期であっても構わな
い。むろん、エンプティ時でなくてもこの点は同様であ
る。
【0034】フル時の動作 図8には、本実施例におけるフル時の動作がタイミング
チャートとして示されている。この図も負論理で示され
ている。この実施例の場合、preset_fullは2に設定さ
れており、これにより、従来における完全フルの一つ前
のタイミングで、すなわち上流側プロセッサがfull検知
後データを1個送出してもデータ溢れが生じないよう、
フル信号fullが出力される。これにつき、次に説明す
る。
チャートとして示されている。この図も負論理で示され
ている。この実施例の場合、preset_fullは2に設定さ
れており、これにより、従来における完全フルの一つ前
のタイミングで、すなわち上流側プロセッサがfull検知
後データを1個送出してもデータ溢れが生じないよう、
フル信号fullが出力される。これにつき、次に説明す
る。
【0035】まず、図9に示されるように、最初wr_po
inter =n−2、rd_pointer =nであったとする。こ
の場合、図9から明らかなように、あと1回データの書
き込みを行うとレジスタファイル12が完全フル(wr_
pointer =rd_pointer −1の状態)である。本実施例
では、この状態で、フル信号fullをオンさせている。す
なわち、wr_pointer =rd_pointer が成り立たず、wr
_pointer <rd_pointer であり、its _difference=
preset_full=2であるから、先に記したアルゴリズム
により、フラグチェッカ20はフル信号fullをオンさせ
る。
inter =n−2、rd_pointer =nであったとする。こ
の場合、図9から明らかなように、あと1回データの書
き込みを行うとレジスタファイル12が完全フル(wr_
pointer =rd_pointer −1の状態)である。本実施例
では、この状態で、フル信号fullをオンさせている。す
なわち、wr_pointer =rd_pointer が成り立たず、wr
_pointer <rd_pointer であり、its _difference=
preset_full=2であるから、先に記したアルゴリズム
により、フラグチェッカ20はフル信号fullをオンさせ
る。
【0036】なお、このフル信号fullはタイミングt11
以前のclk2(rd _clk)の立ち上がりでフリップフロップ
24にラッチされており、また、書き込み信号wrはオ
ン、読み出し信号rdはオフしているものとする。
以前のclk2(rd _clk)の立ち上がりでフリップフロップ
24にラッチされており、また、書き込み信号wrはオ
ン、読み出し信号rdはオフしているものとする。
【0037】clk2(rd _clk)の立ち上がりタイミングt
11において下流側プロセッサ等が読み出しを開始し、読
み出し信号rdがオンしたとする。すると、フラグチェッ
カ20は直後のclk2(rd _clk)の立ち下がりタイミング
t12でrd_pointer を1インクリメントさせる。これに
より、rd_pointer =n+1となり、図10に示される
状態となる。マルチプレクサ18からは、n+1番目の
レジスタ10からのデータがout _dataとして出力され
る。この状態では、its _difference=3であるから、
its _difference≦preset_fullの条件が満たされなく
なる。この結果、フル信号fullはオフする。これに伴
い、次のclk1(wr _clk)立ち上がりタイミングt13でla
t _fullもオフする。
11において下流側プロセッサ等が読み出しを開始し、読
み出し信号rdがオンしたとする。すると、フラグチェッ
カ20は直後のclk2(rd _clk)の立ち下がりタイミング
t12でrd_pointer を1インクリメントさせる。これに
より、rd_pointer =n+1となり、図10に示される
状態となる。マルチプレクサ18からは、n+1番目の
レジスタ10からのデータがout _dataとして出力され
る。この状態では、its _difference=3であるから、
its _difference≦preset_fullの条件が満たされなく
なる。この結果、フル信号fullはオフする。これに伴
い、次のclk1(wr _clk)立ち上がりタイミングt13でla
t _fullもオフする。
【0038】この後、rdがオンしているので、次のclk2
(rd _clk)の立ち下がりタイミングt14で再び読み出し
が実行される。すなわち、図11に示されるようにrd_
pointer が1インクリメントしn+2となる。この状態
でもits _difference=4であるから、its _differen
ce≦preset_fullの条件が満たさず、やはりフル信号fu
llはオフしている。
(rd _clk)の立ち下がりタイミングt14で再び読み出し
が実行される。すなわち、図11に示されるようにrd_
pointer が1インクリメントしn+2となる。この状態
でもits _difference=4であるから、its _differen
ce≦preset_fullの条件が満たさず、やはりフル信号fu
llはオフしている。
【0039】次のclk1(wr _clk)立ち上がりタイミング
t15では、wrがオンしているためライトポインタ14は
wr_pointer を1インクリメントさせ図12に示される
ようにn−1とする。上流側プロセッサ等からのin_da
taは、n−1番目のレジスタ10に書き込まれる。この
状態でも、its _difference=3であるから、its _di
fference≦preset_fullの条件は満たされず、フル信号
fullはオフしている。この後rdがオフし、clk2(rd _cl
k)の立ち下がりタイミングt16ではすでにオフとなって
いるとすると、次のclk1(wr _clk)立ち上がりタイミン
グt17でwr_pointer =nとなる結果、its _differen
ce=2となりits _difference≦preset_fullの条件が
成立する。従って、フラグチェッカ20はフル信号full
をオンさせ、これに伴いlat _fullも次のclk1(wr _cl
k)立ち上がりタイミングt18でオンする。上流側プロセ
ッサ等がlat _fullがオンした後データを1個送出して
しまうものであった場合、このタイミングt18でも書き
込みが行われてしまうが、フル信号fullは完全フルの手
前でオンしているため、レジスタファイル12からのデ
ータ溢れは生じない。
t15では、wrがオンしているためライトポインタ14は
wr_pointer を1インクリメントさせ図12に示される
ようにn−1とする。上流側プロセッサ等からのin_da
taは、n−1番目のレジスタ10に書き込まれる。この
状態でも、its _difference=3であるから、its _di
fference≦preset_fullの条件は満たされず、フル信号
fullはオフしている。この後rdがオフし、clk2(rd _cl
k)の立ち下がりタイミングt16ではすでにオフとなって
いるとすると、次のclk1(wr _clk)立ち上がりタイミン
グt17でwr_pointer =nとなる結果、its _differen
ce=2となりits _difference≦preset_fullの条件が
成立する。従って、フラグチェッカ20はフル信号full
をオンさせ、これに伴いlat _fullも次のclk1(wr _cl
k)立ち上がりタイミングt18でオンする。上流側プロセ
ッサ等がlat _fullがオンした後データを1個送出して
しまうものであった場合、このタイミングt18でも書き
込みが行われてしまうが、フル信号fullは完全フルの手
前でオンしているため、レジスタファイル12からのデ
ータ溢れは生じない。
【0040】従って、本実施例では、非同期のプロセッ
サ等から構成されるパイプライン型情報処理システムに
おいて、FIFOメモリのデータ溢れによる誤動作等が
防止される。さらに、ハーフフル等に比べ、FIFOメ
モリの有効活用を図ることができる。
サ等から構成されるパイプライン型情報処理システムに
おいて、FIFOメモリのデータ溢れによる誤動作等が
防止される。さらに、ハーフフル等に比べ、FIFOメ
モリの有効活用を図ることができる。
【0041】さらには、完全フル状態からみてどの程度
前の時点でフル信号fullを発生させるかを決めるのは、
preset_fullである。これは、例えば上流側プロセッサ
等からの制御の可能なものであるから、当該プロセッサ
等の仕様、プロトコルに応じてフル信号full発生タイミ
ングを調整できる。これにより、汎用性を確保できる。
前の時点でフル信号fullを発生させるかを決めるのは、
preset_fullである。これは、例えば上流側プロセッサ
等からの制御の可能なものであるから、当該プロセッサ
等の仕様、プロトコルに応じてフル信号full発生タイミ
ングを調整できる。これにより、汎用性を確保できる。
【0042】なお、wr_pointer >rd_pointer が成立
している場合については説明しなかった。このような状
況は、rd_pointer がN−1を越えると0に戻るために
生じるものである。この場合のフル信号full発生条件
は、先に示したように、レジスタファイル12の大きさ
FIFO_LENGTH=N−1を考慮にいれた条件となる。
している場合については説明しなかった。このような状
況は、rd_pointer がN−1を越えると0に戻るために
生じるものである。この場合のフル信号full発生条件
は、先に示したように、レジスタファイル12の大きさ
FIFO_LENGTH=N−1を考慮にいれた条件となる。
【0043】
【発明の効果】以上説明したように、本発明のFIFO
メモリによれば、第1の計数手段により指定された段か
らみて第2の計数手段により指定された段が所定値以上
前の段であるか否かを判定してフル信号を出力すること
により、まもなくフル状態となることを完全フル状態に
至る前にプロセッサ等に知らせることができる。従っ
て、例えば上流側のプロセッサがフル信号検出後に1以
上データを送出してしまうプロセッサであったとして
も、データ溢れを防止できる。さらに、フル信号発生時
点はデータ送出に係るプロセッサ等の構成・動作に応じ
設定可能であるため汎用性が高くなり、特にN/2以下
に設定した場合には、従来のハーフフル等に比べ記憶手
段を有効活用できる。
メモリによれば、第1の計数手段により指定された段か
らみて第2の計数手段により指定された段が所定値以上
前の段であるか否かを判定してフル信号を出力すること
により、まもなくフル状態となることを完全フル状態に
至る前にプロセッサ等に知らせることができる。従っ
て、例えば上流側のプロセッサがフル信号検出後に1以
上データを送出してしまうプロセッサであったとして
も、データ溢れを防止できる。さらに、フル信号発生時
点はデータ送出に係るプロセッサ等の構成・動作に応じ
設定可能であるため汎用性が高くなり、特にN/2以下
に設定した場合には、従来のハーフフル等に比べ記憶手
段を有効活用できる。
【0044】請求項2によれば、上流側プロセッサ等か
らの書き込みクロックでフル信号をラッチするようにし
たため、上流側プロセッサ等の動作周波数に好適に対応
できる。
らの書き込みクロックでフル信号をラッチするようにし
たため、上流側プロセッサ等の動作周波数に好適に対応
できる。
【0045】請求項3によれば、エンプティ信号を出力
可能であるとともに、下流側プロセッサ等からの読み出
しクロックでエンプティ信号をラッチするようにしたた
め、下流側プロセッサ等の動作周波数に好適に対応でき
る。また、第2のラッチ手段によりこのエンプティ信号
がラッチされる。
可能であるとともに、下流側プロセッサ等からの読み出
しクロックでエンプティ信号をラッチするようにしたた
め、下流側プロセッサ等の動作周波数に好適に対応でき
る。また、第2のラッチ手段によりこのエンプティ信号
がラッチされる。
【0046】そして、請求項4によれば、非同期に動作
する複数の情報処理手段の間でパイプライン的にデータ
を流す際、本発明のFIFOメモリを用いることによ
り、非同期の情報処理手段の間でのデータの授受が、デ
ータ溢れなく行われ、システムの動作が正確となる。
する複数の情報処理手段の間でパイプライン的にデータ
を流す際、本発明のFIFOメモリを用いることによ
り、非同期の情報処理手段の間でのデータの授受が、デ
ータ溢れなく行われ、システムの動作が正確となる。
【図1】本発明の一実施例に係るFIFOメモリの構成
を示す図である。
を示す図である。
【図2】この実施例におけるエンプティ時の動作の一例
を示すタイミングチャートである。
を示すタイミングチャートである。
【図3】図2の動作におけるタイミングt2 以前の書き
込み段/読み出し段指定を示す説明図である。
込み段/読み出し段指定を示す説明図である。
【図4】図2の動作におけるタイミングt2 以後t4 以
前の書き込み段/読み出し段指定を示す説明図である。
前の書き込み段/読み出し段指定を示す説明図である。
【図5】図2の動作におけるタイミングt4 以後t5 以
前の書き込み段/読み出し段指定を示す説明図である。
前の書き込み段/読み出し段指定を示す説明図である。
【図6】図2の動作におけるタイミングt5 以後t7 以
前の書き込み段/読み出し段指定を示す説明図である。
前の書き込み段/読み出し段指定を示す説明図である。
【図7】図2の動作におけるタイミングt7 以後の書き
込み段/読み出し段指定を示す説明図である。
込み段/読み出し段指定を示す説明図である。
【図8】この実施例におけるフル時の動作の一例を示す
タイミングチャートである。
タイミングチャートである。
【図9】図8の動作におけるタイミングt12以前の書き
込み段/読み出し段指定を示す説明図である。
込み段/読み出し段指定を示す説明図である。
【図10】図8の動作におけるタイミングt12以後t14
以前の書き込み段/読み出し段指定を示す説明図であ
る。
以前の書き込み段/読み出し段指定を示す説明図であ
る。
【図11】図8の動作におけるタイミングt14以後t15
以前の書き込み段/読み出し段指定を示す説明図であ
る。
以前の書き込み段/読み出し段指定を示す説明図であ
る。
【図12】図8の動作におけるタイミングt15以後t17
以前の書き込み段/読み出し段指定を示す説明図であ
る。
以前の書き込み段/読み出し段指定を示す説明図であ
る。
【図13】図8の動作におけるタイミングt17以後の書
き込み段/読み出し段指定を示す説明図である。
き込み段/読み出し段指定を示す説明図である。
10−0,10−1,…10−N−1 レジスタ 12 レジスタファイル 14 ライトポインタ 16 リードポインタ 18 マルチプレクサ 20 フラグチェッカ 22 フルタイミング設定器 24,26 フリップフロップ in_data 書き込みデータ out _data 読み出しデータ wr 書き込み信号 rd 読み出し信号 clk1(wr _clk) 書き込みクロック clk2(rd _clk) 読み出しクロック full フル信号 empty エンプティ信号 lat _full ラッチされたフル信号 lat _empty ラッチされたエンプティ信号 preset_full フルタイミングを表すプリセット値
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成4年4月22日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図9
【補正方法】変更
【補正内容】
【図9】
【手続補正7】
【補正対象書類名】図面
【補正対象項目名】図10
【補正方法】変更
【補正内容】
【図10】
【手続補正8】
【補正対象書類名】図面
【補正対象項目名】図11
【補正方法】変更
【補正内容】
【図11】
【手続補正9】
【補正対象書類名】図面
【補正対象項目名】図12
【補正方法】変更
【補正内容】
【図12】
【手続補正10】
【補正対象書類名】図面
【補正対象項目名】図13
【補正方法】変更
【補正内容】
【図13】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山戸 佐知男 東京都三鷹市下連雀五丁目1番1号 日本 無線株式会社内 (72)発明者 三浦 浩 東京都三鷹市下連雀五丁目1番1号 日本 無線株式会社内
Claims (4)
- 【請求項1】 各段毎に順に書き込み/読み出し可能な
複数段の記憶手段と、 書き込みクロックを計数することにより複数段の記憶手
段からデータの書き込み先を指定する第1の計数手段
と、 読み出しクロックを計数することにより複数段の記憶手
段からデータの読み出し先を指定する第2の計数手段
と、 第2の計数手段により指定された段が第1の計数手段に
より指定された段からみて設定値以上前の段である場合
に、前記記憶手段への書き込み余地がない旨のフル信号
を出力するフル信号出力手段と、 前記設定値を設定する設定手段と、 を備えることを特徴とするFIFOメモリ。 - 【請求項2】 請求項1記載のFIFOメモリにおい
て、 書き込みクロックに応じてフル信号をラッチする第1の
ラッチ手段を備えることを特徴とするFIFOメモリ。 - 【請求項3】 請求項1記載のFIFOメモリにおい
て、 第1及び第2の計数手段の計数値が一致している場合に
複数段の記憶手段が空である旨のエンプティ信号を出力
するエンプティ信号出力手段と、 読み出しクロックに応じてエンプティ信号をラッチする
第2のラッチ手段と、を備えることを特徴とするFIF
Oメモリ。 - 【請求項4】 非同期に動作する複数の情報処理手段の
間をパイプライン的に上流から下流に向けデータが流れ
る情報処理システムにおいて、 各情報処理手段の間でのデータの授受にあたって請求項
1乃至3記載のFIFOメモリにより当該データを一旦
格納することを特徴とする情報処理システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4008823A JPH05197520A (ja) | 1992-01-22 | 1992-01-22 | Fifoメモリ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4008823A JPH05197520A (ja) | 1992-01-22 | 1992-01-22 | Fifoメモリ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05197520A true JPH05197520A (ja) | 1993-08-06 |
Family
ID=11703526
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4008823A Pending JPH05197520A (ja) | 1992-01-22 | 1992-01-22 | Fifoメモリ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05197520A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100489880B1 (ko) * | 1995-12-06 | 2005-09-06 | 사이프러스 세미컨덕터 코포레이션 | 비동기fifo에서반-충만및반-빈플래그를발생시키기위한상태기계설계 |
| JP2011227919A (ja) * | 2000-06-09 | 2011-11-10 | Trustees Of Columbia Univ In The City Of New York | 混合された非同期および同期システム用少待ち時間fifo回路 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53109437A (en) * | 1977-03-01 | 1978-09-25 | Ericsson Telefon Ab L M | Address and break signal generator |
| JPH0315941A (ja) * | 1989-06-14 | 1991-01-24 | Hitachi Ltd | 半導体集積回路 |
-
1992
- 1992-01-22 JP JP4008823A patent/JPH05197520A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53109437A (en) * | 1977-03-01 | 1978-09-25 | Ericsson Telefon Ab L M | Address and break signal generator |
| JPH0315941A (ja) * | 1989-06-14 | 1991-01-24 | Hitachi Ltd | 半導体集積回路 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100489880B1 (ko) * | 1995-12-06 | 2005-09-06 | 사이프러스 세미컨덕터 코포레이션 | 비동기fifo에서반-충만및반-빈플래그를발생시키기위한상태기계설계 |
| JP2011227919A (ja) * | 2000-06-09 | 2011-11-10 | Trustees Of Columbia Univ In The City Of New York | 混合された非同期および同期システム用少待ち時間fifo回路 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8291138B2 (en) | Skip based control logic for first in first out buffer | |
| US8001409B2 (en) | Synchronization device and methods thereof | |
| JP2004062630A (ja) | Fifoメモリ及び半導体装置 | |
| US6442627B1 (en) | Output FIFO data transfer control device | |
| CN108108148B (zh) | 一种数据处理方法和装置 | |
| US7523232B2 (en) | Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system | |
| US7870310B2 (en) | Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system | |
| JPH05197520A (ja) | Fifoメモリ | |
| US6510483B1 (en) | Circuit, architecture and method for reading an address counter and/or matching a bus width through one or more synchronous ports | |
| JP4569163B2 (ja) | データ入出力装置およびデータ入出力方法 | |
| EP0790552A2 (en) | Data processing apparatus for performing pipeline processing | |
| JPH06197009A (ja) | 出力ラッチ機能付カウンタ | |
| CN115658568B (zh) | 一种fifo装置及其数据处理方法 | |
| JPH0581165A (ja) | データ転送回路 | |
| JPS6073730A (ja) | バツフア制御装置 | |
| JPS5919375B2 (ja) | デ−タバッフア制御方式 | |
| JP3443215B2 (ja) | シリアル入力及び出力装置 | |
| JP2862647B2 (ja) | Fifoバッファ制御方式 | |
| JPS638983Y2 (ja) | ||
| JP2005174090A (ja) | データ転送回路 | |
| JP3335926B2 (ja) | リードアンドクリア回路 | |
| JPH04369756A (ja) | データ転送方法 | |
| JPH05298066A (ja) | Fifoバッファ装置 | |
| KR100247062B1 (ko) | 링구조를 갖는 선입선출 방식 및 회로 | |
| JPH07253920A (ja) | Fifo ram コントローラ |