JPH0277936A - Fifoバッファメモリの制御方式 - Google Patents
Fifoバッファメモリの制御方式Info
- Publication number
- JPH0277936A JPH0277936A JP63231101A JP23110188A JPH0277936A JP H0277936 A JPH0277936 A JP H0277936A JP 63231101 A JP63231101 A JP 63231101A JP 23110188 A JP23110188 A JP 23110188A JP H0277936 A JPH0277936 A JP H0277936A
- Authority
- JP
- Japan
- Prior art keywords
- data
- input
- pointer
- same value
- output
- 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
- 238000013500 data storage Methods 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は同値データを効率良く入力することが出来るP
IFOバッファメモリの制御方式に関する。
IFOバッファメモリの制御方式に関する。
B1発明の概要
本発明はFIFOバッファメモリの制御方式に於いて、
連続した同値データをカウンタ・レジスタでカウントす
ることによって、連続した同値データをデータ格納部に
効率良く格納するようにしたものである。
連続した同値データをカウンタ・レジスタでカウントす
ることによって、連続した同値データをデータ格納部に
効率良く格納するようにしたものである。
C1従来の技術
複数のジョブやタスク等を実行するスケジューリングの
中に、入力順に出力するFIFO法があり、これにはF
IFOバッファメモリが一般に使用される。
中に、入力順に出力するFIFO法があり、これにはF
IFOバッファメモリが一般に使用される。
前記FIFOバッファメモリは、例えば第4図のブロッ
ク図に示す如く構成されている。このメモリはデータ幅
(一般にはバイト幅)任意、深さnのFIFOバッファ
メモリの例である。
ク図に示す如く構成されている。このメモリはデータ幅
(一般にはバイト幅)任意、深さnのFIFOバッファ
メモリの例である。
第4図のF’lFOバッファメモリについて説明すると
、図中、D、〜D、、はデータバッファ内のデータ格納
部の1単位(セル)を表し、これらのセルD1〜I)n
には各々データ幅分のデータ・バス及びアドレス選択線
を有し、リード/ライト制御回路5を介してリード、ラ
イト制御信号が与えられる。そして、これらD1〜Dn
のセルのうちの1つを入力/出力側で選択し、データの
書き込み(入力)及び読み出しく出力)を行うために、
入力/出力側で独立した入力ポインタ及び出力ポインタ
をもっている。
、図中、D、〜D、、はデータバッファ内のデータ格納
部の1単位(セル)を表し、これらのセルD1〜I)n
には各々データ幅分のデータ・バス及びアドレス選択線
を有し、リード/ライト制御回路5を介してリード、ラ
イト制御信号が与えられる。そして、これらD1〜Dn
のセルのうちの1つを入力/出力側で選択し、データの
書き込み(入力)及び読み出しく出力)を行うために、
入力/出力側で独立した入力ポインタ及び出力ポインタ
をもっている。
ここで入力ポインタの値をi(1≦i≦n)、その入力
ポインタが指すセルをD(i)とし、また出力ポインタ
の値をj(1≦j≦n)、その入力ポインタが指すセル
をD (j)とすると、このFIFOバッファメモリの
動作は以下の如くである。
ポインタが指すセルをD(i)とし、また出力ポインタ
の値をj(1≦j≦n)、その入力ポインタが指すセル
をD (j)とすると、このFIFOバッファメモリの
動作は以下の如くである。
入力ポインタはセルD(+)に入力データを書き込むと
ポインタを1つ進め(i=i+1)、ポインタiの値が
nを超えるとi=1に戻す。即ち、セル数nのリングバ
ッファを周回するように入力ポインタが動く。
ポインタを1つ進め(i=i+1)、ポインタiの値が
nを超えるとi=1に戻す。即ち、セル数nのリングバ
ッファを周回するように入力ポインタが動く。
出力ポインタも同様に、セルD (Dの内容を読み出し
て出力データとした後にポインタを1つ進め(j=j+
1)、ポインタjの値かnを超えるとj=1に戻す。
て出力データとした後にポインタを1つ進め(j=j+
1)、ポインタjの値かnを超えるとj=1に戻す。
このとき出力ポインタは入力されたデータを読み出すた
めに、入力ポインタを超えることはない。
めに、入力ポインタを超えることはない。
即ち、入力ポインタiと、出力ポインタjが等しいとき
は、FtFOバッファは空(Empty)の状態であり
、出力側はデータを読み出すことが出来ないものである
。同様に周回してきた入カポインクは出力ポインタを超
えることはない。即ち、入力ポインタの次のポインタ(
i+1)が出力ポインタjであるときは、空いているセ
ルがなく、FIFOバッファは満杯(Full)の状態
であり、入力側はデータを書き込むことが出来ないから
である。前記入力ポインタはポインタ制御回路6によっ
て制御される。
は、FtFOバッファは空(Empty)の状態であり
、出力側はデータを読み出すことが出来ないものである
。同様に周回してきた入カポインクは出力ポインタを超
えることはない。即ち、入力ポインタの次のポインタ(
i+1)が出力ポインタjであるときは、空いているセ
ルがなく、FIFOバッファは満杯(Full)の状態
であり、入力側はデータを書き込むことが出来ないから
である。前記入力ポインタはポインタ制御回路6によっ
て制御される。
D1発明が解決しようとする課題
前述の如く、従来のFIFOバッファメモリにあっては
、入力されるデータの内容に関係なく、1つのデータは
FIFOバッファ内の1つのセルを占有する。このため
、仮にn個の同じデータが入力された場合であっても、
n個のセルを占有してFIFOバッファメモリが満杯に
なってしまう。
、入力されるデータの内容に関係なく、1つのデータは
FIFOバッファ内の1つのセルを占有する。このため
、仮にn個の同じデータが入力された場合であっても、
n個のセルを占有してFIFOバッファメモリが満杯に
なってしまう。
このことは、例えばプリンタ・バッファ等で、すスト出
力等をする場合、空白(スペース)コードがかなりの頻
度て、ある一定の数だけ連続して入力されろが、前記空
白コードの連続したデータ列は、そのままFIFOバッ
ファメモリを占有すること意味する。
力等をする場合、空白(スペース)コードがかなりの頻
度て、ある一定の数だけ連続して入力されろが、前記空
白コードの連続したデータ列は、そのままFIFOバッ
ファメモリを占有すること意味する。
従って、同じデータが連続して多数入力される場合でも
、FXFOバッファメモリの容量を大きくするためには
、セル数を多くし、制御回路の速度を高めなければなら
ない。
、FXFOバッファメモリの容量を大きくするためには
、セル数を多くし、制御回路の速度を高めなければなら
ない。
本発明の目的は、従来の前記課題を解決し、セル数を増
やさなくても同値データを効率良く入出力し得るFIF
Oバッファメモリの制御方式を提供することにある。
やさなくても同値データを効率良く入出力し得るFIF
Oバッファメモリの制御方式を提供することにある。
E0課題を解決するための手段
前記課題を解決するための本発明に係る手段は、複数個
のデータ格納部を有し、入力ポインタの指すデータ格納
部にデータを格納し、出力ポインタの指すデータ格納部
からデータを取り出すFXFOバッファメモリの制御方
式に於いて、前記データ格納部に夫々対応する、同値デ
ータをカウントするためのカウンタ・レジスタを有し、
入力ポインタの指すデータ格納部にデータを入力すると
きは、入力されたデータと1つ前の入力データとを比較
し、比較値が等しいときは入力ポインタを更新せずに該
入力ポインタの指すデータ格納部に対応するカウンタ・
レジスタのカウント値を加算し、等しくないとき及びカ
ウンタ・レジスタのカウント値が満杯のときは入力ポイ
ンタを更新してデータ格納部に格納し、出力ポインタの
指すデータ格納部からデータを取り出すときは、前記出
力ポインタの指すデータ格納部に対応するカウンタ・レ
ジスタのカウント数だけ同値データを取り出すことを特
徴としてなる。
のデータ格納部を有し、入力ポインタの指すデータ格納
部にデータを格納し、出力ポインタの指すデータ格納部
からデータを取り出すFXFOバッファメモリの制御方
式に於いて、前記データ格納部に夫々対応する、同値デ
ータをカウントするためのカウンタ・レジスタを有し、
入力ポインタの指すデータ格納部にデータを入力すると
きは、入力されたデータと1つ前の入力データとを比較
し、比較値が等しいときは入力ポインタを更新せずに該
入力ポインタの指すデータ格納部に対応するカウンタ・
レジスタのカウント値を加算し、等しくないとき及びカ
ウンタ・レジスタのカウント値が満杯のときは入力ポイ
ンタを更新してデータ格納部に格納し、出力ポインタの
指すデータ格納部からデータを取り出すときは、前記出
力ポインタの指すデータ格納部に対応するカウンタ・レ
ジスタのカウント数だけ同値データを取り出すことを特
徴としてなる。
21作用
前記手段によれば、同値データが連続して入力されたと
きは、同値データ数をカウントするのみで入力ポインタ
が更新されない。従って、データ格納部には異なるデー
タを効率良く格納することが出来るものである。
きは、同値データ数をカウントするのみで入力ポインタ
が更新されない。従って、データ格納部には異なるデー
タを効率良く格納することが出来るものである。
G、実施例
次に前記手段を適用した本発明の一実施例を説明する。
第1図は本発明のFIFOバッファメモリのブロック図
であって、深さnのメモリの例である。
であって、深さnのメモリの例である。
図に於いて、D1〜Dnはデータバッファ内のデータ格
納部の1単位(以下「セル」という)を表 。
納部の1単位(以下「セル」という)を表 。
し、データ幅は任意のものである。これらn個のセル各
々はデータ幅分のデータ・バス、アドレス選択線を何し
、リード/ライト制御回路lを介してリード信号及びラ
イト信号が与えられる。また入力ポインタ及び出力ポイ
ンタは前3i!n個のセルのうち、1つを入力/出力側
で選択し、データの書き込み(入力)及び読み出しく出
力)を行う。
々はデータ幅分のデータ・バス、アドレス選択線を何し
、リード/ライト制御回路lを介してリード信号及びラ
イト信号が与えられる。また入力ポインタ及び出力ポイ
ンタは前3i!n個のセルのうち、1つを入力/出力側
で選択し、データの書き込み(入力)及び読み出しく出
力)を行う。
そして、この入力ポインタと出力ポインタはポインタ制
御回路2によって、入出カポインタが相互に追い越さな
いように制御される。
御回路2によって、入出カポインタが相互に追い越さな
いように制御される。
CI”” C−はカウンタ・レジスタよりなるセル・カ
ウンタであって、各セルD1〜Dnが夫々有し、各々の
セルD、−D、が有する同値データをカウントするもの
である。このセル・カウンタc1〜cnは、入力端の比
較回路及びカウンタ制御回路3によって、連続して入力
されるデータを比較し、それらが同値データであるとき
に、同値データ数をカウントするように制御される。
ウンタであって、各セルD1〜Dnが夫々有し、各々の
セルD、−D、が有する同値データをカウントするもの
である。このセル・カウンタc1〜cnは、入力端の比
較回路及びカウンタ制御回路3によって、連続して入力
されるデータを比較し、それらが同値データであるとき
に、同値データ数をカウントするように制御される。
また前記セル・カウンタC1〜Cnは出力側の読み出し
カウンタ制御回路4によって、入力された同値データが
連続して読み出されるときに、これをカウントダウンす
るように制御される。
カウンタ制御回路4によって、入力された同値データが
連続して読み出されるときに、これをカウントダウンす
るように制御される。
次に前記11’FOバツフアメモリの制御動作について
説明する。尚、入力ポインタの値をi(1≦i≦n)、
その入力ポインタiが指すセルをD(i)と定義し、出
力ポインタの値をj(1≦j≦n)、その出力ポインタ
jが指すセルをD(j)と定義する。
説明する。尚、入力ポインタの値をi(1≦i≦n)、
その入力ポインタiが指すセルをD(i)と定義し、出
力ポインタの値をj(1≦j≦n)、その出力ポインタ
jが指すセルをD(j)と定義する。
先ず、データを入力する場合の、入力制御動作は第2図
のフローチャートに示す如く行われる。
のフローチャートに示す如く行われる。
即ち、初期状態とじ入力ポインタをi、出力ポインタを
jとしてi−jとし、そのポインタに於けるセル・カウ
ンタC(i)を「0」とする。
jとしてi−jとし、そのポインタに於けるセル・カウ
ンタC(i)を「0」とする。
前記状態に於いて、最初に入力されたデータを入力ポイ
ンタiが指すセルD(i)に書き込むと同時に、比較回
路にも書き込む。そして、前記データが書き込まれたセ
ルD(i)に対応するセル・カウンタC(i)の値をN
Jにする。この状態で入力側は次のデータを持つ。
ンタiが指すセルD(i)に書き込むと同時に、比較回
路にも書き込む。そして、前記データが書き込まれたセ
ルD(i)に対応するセル・カウンタC(i)の値をN
Jにする。この状態で入力側は次のデータを持つ。
次のデータが入力端に入力されると、その入力データの
値を比較回路で保持している値と比較する。そして、入
力データが比較回路内の値と同値であるときは、セル・
カウンタC(i)を1つ進める。従って、同値データが
連続して入力される場合には1、セル・カウンタC(i
)のカウント数が増えるのみで、入力ポインタiは更新
されない。
値を比較回路で保持している値と比較する。そして、入
力データが比較回路内の値と同値であるときは、セル・
カウンタC(i)を1つ進める。従って、同値データが
連続して入力される場合には1、セル・カウンタC(i
)のカウント数が増えるのみで、入力ポインタiは更新
されない。
また前記比較値が同値でないときは、入力ポインタiを
更新しくi=i+I)、その入力データをセルD(i+
1)に書き込むと共に、比較回路にも書き込む。そして
前記と同様にセル・カウンタC(i+1)を「1」にす
る。
更新しくi=i+I)、その入力データをセルD(i+
1)に書き込むと共に、比較回路にも書き込む。そして
前記と同様にセル・カウンタC(i+1)を「1」にす
る。
−ここで、入力ポインタの更新条件は、1つ前の入力デ
ータと違うデータが入力されたとき、又は対応するビッ
ト幅任意のセル・カウンタがフルカウントになったとき
である。尚、入力ポインタの更新は+−t+iであり、
i>nであるときはi−1に戻って周回するものである
。
ータと違うデータが入力されたとき、又は対応するビッ
ト幅任意のセル・カウンタがフルカウントになったとき
である。尚、入力ポインタの更新は+−t+iであり、
i>nであるときはi−1に戻って周回するものである
。
また、このFIFOバッファが満杯(Full)の条件
は、入力ポインタiを更新すると出力ポインタjに追い
つく場合であって(i+1=j)、且つその入力ポイン
タiのセル・カウンタC(i)がフルカウントになった
ときである。
は、入力ポインタiを更新すると出力ポインタjに追い
つく場合であって(i+1=j)、且つその入力ポイン
タiのセル・カウンタC(i)がフルカウントになった
ときである。
次に書き込んだデータを取り出す場合の出力制御動作は
第3図のフローチャートに示す如く行われる。
第3図のフローチャートに示す如く行われる。
この出力制御動作は、出力ポインタjの指すセルD(j
)に対応するセル・カウンタC(j)の値を取り出し、
そのカウント数だけセルD(j)に書き込まれたデータ
を取り出す。即ち、セル・カウンタC(j) −〇、
(f2 >1)であるときは、4個の連続した同値デ
ータが入力されていることを意味する。従って、セルD
(j)のデータを取り出す毎に、セル・カウンタC(j
)の値を減算しくC(D −C(D−1)、セル・カウ
ンタC(j)−〇になるまで同値データの取り出しを繰
り返す。
)に対応するセル・カウンタC(j)の値を取り出し、
そのカウント数だけセルD(j)に書き込まれたデータ
を取り出す。即ち、セル・カウンタC(j) −〇、
(f2 >1)であるときは、4個の連続した同値デ
ータが入力されていることを意味する。従って、セルD
(j)のデータを取り出す毎に、セル・カウンタC(j
)の値を減算しくC(D −C(D−1)、セル・カウ
ンタC(j)−〇になるまで同値データの取り出しを繰
り返す。
更に前記セル・カウンタC(j)−〇になると、出力ポ
インタjを更新(j=j+1)、前記と同様にデータを
取り出す。尚、更新した出力ポインタjがj>nになる
と、j=1に戻って周回するのは入力動作の場合と同様
である。
インタjを更新(j=j+1)、前記と同様にデータを
取り出す。尚、更新した出力ポインタjがj>nになる
と、j=1に戻って周回するのは入力動作の場合と同様
である。
前記FIFOバッファメモリが空(Emp t y )
となる条件は、出力ポインタjを更新すると入力ポイン
タlに追いつく場合であって(j+1−1)、且つその
出力ポインタjに対応するセル・カウンタC(j)=0
のときである。
となる条件は、出力ポインタjを更新すると入力ポイン
タlに追いつく場合であって(j+1−1)、且つその
出力ポインタjに対応するセル・カウンタC(j)=0
のときである。
前記の如くして、入力データをデータ格納部に格納する
と共に、連続する同値データをセル・カウンタでカウン
トし、また前記データ格納部内のデータをセル・カウン
タのカウント数に応じて出力するらのである。
と共に、連続する同値データをセル・カウンタでカウン
トし、また前記データ格納部内のデータをセル・カウン
タのカウント数に応じて出力するらのである。
H,発明の効果
本発明は前述した如く、連続して入力される同値データ
を、対応するカウンタ・レジスタの範囲で、その連続す
る回数をカウンタ・レジスタに書き込むことにより、同
値データを効率良く入力及び出力することが出来る。従
って、データ格納部の数と同数の同値入力データによっ
て1’;”IFOバッファが満たされてしまうことがな
くなり、FIFOバッファメモリの使用効率を著しく高
めることが可能となるものである。
を、対応するカウンタ・レジスタの範囲で、その連続す
る回数をカウンタ・レジスタに書き込むことにより、同
値データを効率良く入力及び出力することが出来る。従
って、データ格納部の数と同数の同値入力データによっ
て1’;”IFOバッファが満たされてしまうことがな
くなり、FIFOバッファメモリの使用効率を著しく高
めることが可能となるものである。
第1図は本発明の一実施例に係りFIFOバッファメモ
リのブロック図、第2図は入力制御動作のフローチャー
ト、第3図は出力制御動作のフローチャート、第4図は
従来のFIFOバッファメモリのブロック図である。 D(i)〜Dn・・セル、cI〜Cn・・・セル・カウ
ンタ、l・・・リード/ライト制御回路、2・・・ポイ
ンタ制御回路、3・・・比較回路及びカウンタ制御回路
、4・・読み出しカウンタ制御回路である。 第3図
リのブロック図、第2図は入力制御動作のフローチャー
ト、第3図は出力制御動作のフローチャート、第4図は
従来のFIFOバッファメモリのブロック図である。 D(i)〜Dn・・セル、cI〜Cn・・・セル・カウ
ンタ、l・・・リード/ライト制御回路、2・・・ポイ
ンタ制御回路、3・・・比較回路及びカウンタ制御回路
、4・・読み出しカウンタ制御回路である。 第3図
Claims (1)
- (1)複数個のデータ格納部を有し、入力ポインタの指
すデータ格納部にデータを格納し、出力ポインタの指す
データ格納部からデータを取り出すFIFOバッファメ
モリの制御方式に於いて、前記データ格納部に夫々対応
する、同値データをカウントするためのカウンタ・レジ
スタを有し、入力ポインタの指すデータ格納部にデータ
を入力するときは、入力されたデータと1つ前の入力デ
ータとを比較し、比較値が等しいときは入力ポインタを
更新せずに該入力ポインタの指すデータ格納部に対応す
るカウンタ・レジスタのカウント値を加算し、等しくな
いとき及びカウンタ・レジスタのカウント値が満杯のと
きは入力ポインタを更新してデータ格納部に格納し、出
力ポインタの指すデータ格納部からデータを取り出すと
きは、前記出力ポインタの指すデータ格納部に対応する
カウンタ・レジスタのカウント数だけ同値データを取り
出すことを特徴としたFIFOバッファメモリの制御方
式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63231101A JPH0277936A (ja) | 1988-09-14 | 1988-09-14 | Fifoバッファメモリの制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63231101A JPH0277936A (ja) | 1988-09-14 | 1988-09-14 | Fifoバッファメモリの制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0277936A true JPH0277936A (ja) | 1990-03-19 |
Family
ID=16918315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63231101A Pending JPH0277936A (ja) | 1988-09-14 | 1988-09-14 | Fifoバッファメモリの制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0277936A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011227919A (ja) * | 2000-06-09 | 2011-11-10 | Trustees Of Columbia Univ In The City Of New York | 混合された非同期および同期システム用少待ち時間fifo回路 |
-
1988
- 1988-09-14 JP JP63231101A patent/JPH0277936A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
---|---|---|
US4507760A (en) | First-in, first-out (FIFO) memory configuration for queue storage | |
US4486854A (en) | First-in, first-out memory system | |
US4959771A (en) | Write buffer for a digital processing system | |
US5587953A (en) | First-in-first-out buffer memory | |
US10133549B1 (en) | Systems and methods for implementing a synchronous FIFO with registered outputs | |
EP0509722B1 (en) | Data transfer system | |
US3771142A (en) | Digital data storage system | |
JPS6235949A (ja) | メモリ−装置 | |
JPH04233634A (ja) | ファジィ推論システム | |
AU642547B2 (en) | First-in first-out buffer | |
US5019969A (en) | Computer system for directly transferring vactor elements from register to register using a single instruction | |
EP0367995A2 (en) | Vector data transfer controller | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
JPH0277936A (ja) | Fifoバッファメモリの制御方式 | |
KR20020054235A (ko) | 공유메모리 스위치에서의 멀티캐스팅 장치 및 그 방법 | |
US4751631A (en) | Apparatus for fast generation of signal sequences | |
CN115905038B (zh) | 缓存数据读取方法、装置、计算机设备和存储介质 | |
SU1069001A1 (ru) | Оперативное запоминающее устройство | |
SU881863A1 (ru) | Стековое запоминающее устройство | |
US5937430A (en) | Buffer circuit with control device to directly output input data or to output input data written in storage device | |
US3359542A (en) | Variable length address compouter | |
EP0382699A2 (en) | Interprocessor data transfer system and method | |
JP2989962B2 (ja) | ベクトル処理装置 | |
US5822752A (en) | Method and apparatus for fast parallel determination of queue entries | |
KR0134461B1 (ko) | 스택 겸용 선입 선출 메모리 장치 |