JPH11175312A - データ転送制御装置 - Google Patents

データ転送制御装置

Info

Publication number
JPH11175312A
JPH11175312A JP33711197A JP33711197A JPH11175312A JP H11175312 A JPH11175312 A JP H11175312A JP 33711197 A JP33711197 A JP 33711197A JP 33711197 A JP33711197 A JP 33711197A JP H11175312 A JPH11175312 A JP H11175312A
Authority
JP
Japan
Prior art keywords
fifo
data
write
data transfer
block
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
Application number
JP33711197A
Other languages
English (en)
Inventor
Mitsushige Baba
充茂 馬場
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP33711197A priority Critical patent/JPH11175312A/ja
Publication of JPH11175312A publication Critical patent/JPH11175312A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 FIFOとして用いるバッファメモリの利用
効率を向上させたデータ転送制御装置を提供する。 【解決手段】 一つのメモリを4つのFIFOブロック
(各ブロックのサイズをB1,B2,B3,B4とす
る)として機能させ、例えば、第2のFIFOブロック
に対する書込要求において、そのサイズ(B2)が書込
データのパケットサイズ(PS)よりも小さい場合に、
他のFIFOブロックがエンプティか否かを判断し(ス
テップ3,ステップ4,ステップ6、ステップ9、ステ
ップ13)、エンプティのときには、当該エンプティの
FIFOブロックを使用して書き込むことができるかど
うかを判断し(ステップ5,ステップ7,ステップ8,
ステップ10、ステップ11、ステップ12,ステップ
14)、書込可能であれば書込処理を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、先入れ先だしメモ
リ(FIFO)を用いる場合のデータ転送制御装置に関
する。
【0002】
【従来の技術】特公平3−75906号公報には、FI
FOの使用効率を向上させたバッファメモリ制御装置が
開示されている。この装置は、バッファメモリの読出/
書込指令に応じてカウンタの計数値をアップダウンして
バッファメモリ内のデータ量が一定値以下になったとき
に、データ転送要求信号を出力するものであり、且つ、
インターリーブ構成の主記憶装置に対応できるように、
カウンタの計数値をインターリーブ段数分、加算できる
ようにしたものである。
【0003】特公平7−78781号公報には、転送用
バッファを使用してデータ転送を行う場合の情報伝送方
法が開示されている。この方法は、データ転送において
転送用バッファの状況を取得し、転送元がこの状況を知
って転送先が受信可能かどうかを判断し、受信可能とな
るまで転送元がデータ転送を待つようにした技術であ
る。
【0004】米国特許公報USP5097442には、
FIFOの段数をレジスタによって可変とし、フル/エ
ンプティの判断やその他のステータスフラグの制御を行
うようにした技術が開示されている。
【0005】
【発明が解決しようとする課題】しかしながら、前記特
公平3−75906号公報の技術では、パケットデータ
のごときフォーマットが一つ或いは複数の種類で予め決
まっていてパケット単位で処理が必要な場合において、
バッファメモリの空き量がパケットのデータサイズより
も小さかった場合には、途中までデータを書き込んだ後
にオーバーフローが判明することになり、データ転送要
求処理が滞るということがある。
【0006】また、前記特公平7−78781号公報の
技術では、シリアルバスインターフェースなどのように
連続して書込データを転送するように転送元が構成され
るような場合には、対応できないうという欠点がある。
【0007】そして、米国特許公報USP509744
2の技術では、使用するFIFOの段数を変更できるよ
うに構成したとしても、予め使用するFIFOの段数を
決めておくものであるため、パケット等のデータサイズ
が一定していないデータブロックを扱うときには、メモ
リ不足を生じることがある。
【0008】この発明は、上記の事情に鑑み、バッファ
メモリの利用効率を向上させるとともに、データ転送要
求処理を滞らせることなく、また、データの転送元が書
込データを連続して転送するように構成される場合にも
対応できるデータ転送制御装置を提供することを目的と
する。
【0009】
【課題を解決するための手段】この発明のデータ転送制
御装置は、上記の課題を解決するために、データ転送元
とデータ転送先との間に介在して転送データの一時的保
持を行うデータ転送制御装置において、一つのメモリを
複数のFIFOブロックとして機能させるために各FI
FOブロックについての初期値としての書込開始アドレ
ス及び書込終了アドレスを保持する初期値保持レジスタ
と、FIFOブロックのサイズの拡張を可能にするため
に拡張書込開始アドレス及び拡張書込終了アドレスを保
持する拡張値保持レジスタと、各FIFOブロックごと
に設けられ、書込と読出に対応してカウントされるカウ
ンタと、各FIFOブロックがエンプティか否かを判断
する判断手段と、或るFIFOブロックに対して書込要
求が発生した場合で、それに隣接するアドレス拡張が可
能な他のFIFOブロックがエンプティのときには前記
拡張書込開始アドレス及び拡張書込終了アドレスに基づ
いて書込/読出処理を行わせる制御手段と、を備えたこ
とを特徴とする。
【0010】上記の構成によれば、或るFIFOブロッ
クに対してデータ書込を行う場合に空いているFIFO
ブロックがあればこれを利用してデータ書込を行うの
で、サイズが大きい転送データ(書込データ)に対する
書込の失敗を低減することができる。
【0011】各FIFOブロックの拡張が行われるとき
には、書込開始側または書込終了側のいずれか一方のア
ドレスが変更されるようにしてもよい。これによれば、
書込開始側と書込終了側の両アドレスを変更する場合に
比べて拡張制御が容易に行えることになる。
【0012】また、この発明のデータ転送制御装置は、
データ転送元とデータ転送先との間に介在して転送デー
タの一時的保持を行うデータ転送制御装置において、一
つのメモリを複数のFIFOブロックとして機能させる
ために各FIFOブロックについての初期値としての書
込開始アドレス及び書込終了アドレスを保持する初期値
保持レジスタと、各FIFOブロックごとに設けられ、
書込と読出に対応してカウントされるカウンタと、各F
IFOブロックがエンプティか否かを判断する判断手段
と、書き込むべき転送データのサイズを検出するサイズ
検出手段と、或るFIFOブロックに対して書込要求が
発生し、転送データのサイズが当該FIFOブロックの
初期割当サイズより大きい場合で、当該FIFOブロッ
クのアドレス下位側又は上位側の他のFIFOブロック
がエンプティのときには当該エンプティのFIFOブロ
ックを使用して書込/読出処理を行わせる制御手段と、
を備えたことを特徴とする。
【0013】上記の構成であれば、或るFIFOブロッ
クに対してデータ書込を行う場合でそのブロックの容量
では足りないとされる場合に、空いているFIFOブロ
ックを転送データ(書込データ)のサイズに対応して必
要な分だけ利用してデータ書込を行うので、必要以上に
FIFOブロックを確保することなく、サイズが大きい
転送データに対する書込の失敗を低減することができ
る。
【0014】各FIFOブロックにおける使用不許可領
域を外部から設定するための手段を備え、エンプティで
ある他のFIFOブロックであるとして使用される際に
は、前記使用不許可領域以外の領域が用いられ、当該使
用不許可領域はそのFIFOブロックとしての使用が確
保されるように構成されていてもよい。これによれば、
各FIFOブロックとして一定量の領域が確保されるの
で、各FIFOブロックに対するアクセスを保証するこ
とができる。
【0015】転送データのサイズが当該FIFOブロッ
クの初期割当サイズより大きい場合で、当該FIFOブ
ロックのアドレス下位側又は上位側の他のFIFOブロ
ックの使用も行えない場合に、データの受け取り不可能
を示す情報をデータ転送元に転送する制御手段を備えて
もよい。これによれば、データ転送元が転送要求状態の
まま待たされるといったことが無くなる。即ち、データ
転送元では、前記データの受け取り不可能を示す情報を
受け取ったときには、任意の他の処理を進めるといった
ことが可能になる。そして、前記制御手段による処理
は、CPUを用いたソフト処理で行うのではなく、前記
制御手段がFIFOを見てハード的に行うから処理が速
いという利点がある。
【0016】複数のFIFOブロックのうち、幾つかが
データ転送元から送られてくるデータを保持する受信用
に、他の幾つかがデータ転送元に送信するデータを保持
する送信用に適宜用いられるように構成されているとと
もに、前記送信用のFIFOブロックについてのエンプ
ティを示す信号をマスクする手段を備えていてもよい。
ここで、前記送信用のFIFOブロックがエンプティで
あると判断されて当該FIFOブロックに書込を開始し
た後に受領未完の応答があると、再び送信データを当該
FIFOブロックに書き込む処理が必要になり、データ
転送処理が滞ることになるが、エンプティを示す信号を
マスクする(例えば、受領完の応答が得られるまで)の
で、送信データの消去はなされず、再送が必要な場合に
迅速に対応できる。
【0017】
【発明の実施の形態】(実施の形態1)以下、この発明
の実施の形態を図に基づいて説明する。
【0018】図1に示すように、この実施の形態では、
一つのメモリ1は複数の先入れ先出しメモリ(FIF
O)として機能させられる。即ち、図示しないメモリコ
ントローラは、メモリ1を複数のFIFOのようにアク
セスする制御を行う。ここで、同図(a)は二つのFI
FOブロックを構成した場合を、同図(b)は三つのF
IFOブロックを構成した場合を、同図(c)は四つの
FIFOブロックを構成した場合をそれぞれ示してい
る。なお、同図(b)においては、第1BLKのサイズ
を拡張する際には、矢示A部分が変化することを示し、
第2BLK及び第3BLKのサイズを拡張する際には矢
示B部分が変化することを示している。また、同図
(c)においては、第1BLK及び第2BLKのサイズ
を拡張する際には、矢示C部分が変化することを示し、
第3BLK及び第4BLKのサイズを拡張する際には矢
示D部分が変化することを示し、矢示E部分は固定であ
ることを示している。
【0019】以下、図1(a)に示した一つのメモリ1
を二つのFIFOとして機能させる場合を例に説明をし
ていく。図2に示しているように、第1BLKの書込終
了アドレスはEOB1で表し、第2BLKの書込開始ア
ドレスはBOB2で表している。これらEOB1,BO
B2は、図示しないレジスタに保持され、外部から初期
値として設定することができる。一方、第1BLKの書
込開始アドレス、及び第2BLKの書込終了アドレス
は、固定である。なお、アドレスは、メモリ全体に対し
てリニアにつけられているとする(例えば、1Kbyt
であれば000h〜3FFh)。そして、各BLKにお
いては、そのサイズを変更(拡張)することが可能にな
っている。図2では、第1BLKにおける拡張終了アド
レスをEXEOB1で表し、第2BLKの拡張開始アド
レスをEXBOB2で表している。これらEXEOB
1,EXBOB2は、図示しないレジスタに保持され、
外部から設定することができる。
【0020】図3は、第1BLKにおけるFULL/E
MPTY出力回路を示したブロック図である。セレクタ
回路5の入力端子部には、EOB1、EXEOB1、E
MPTY2、及びライトリクエスト(WriteReq
est)といった各種信号が入力される。前記のEMP
TY2は、後述する図4の回路の出力信号である。セレ
クタ回路5は、初期設定時には前記のEOB1を選択し
て出力する。また、第1BLKにおいて書込要求が発生
した場合(前記ライトリクエスト信号で判断できる)で
あって、前記のEMPTY2により、第2BLKがEM
PTYであることが確認されたときには、EXEOB1
を選択して出力し、第2BLKがEMPTYでないとさ
れたときには、EOB1を選択して出力する。
【0021】ライトカウンタ6は、データ書込の度に発
生するライトパルス(Writepulse)を入力し
て書込アドレスを生成して出力する。リードカウンタ7
は、データ読出の度に発生するリードパルス(Read
pules)を入力して読出アドレスを生成して出力す
る。比較器8は、前記ライトカウンタ6が出力する書込
アドレスと前記セレクタ5が出力するEOB1又はEX
EOB1とを入力し、これらを比較し、その差(メモリ
残量)が0であるか否かによってフル状態を示す信号
(FULL1)を出力する。また、比較器9は、前記ラ
イトカウンタ6が出力する書込アドレスと前記リードカ
ウンタ7が出力する読出アドレスとを比較し、メモリ内
にデータが無いか否かによってエンプティ状態を示す信
号(EMPTY1)を出力する。
【0022】図4は、第2BLKにおけるFULL/E
MPTY出力回路を示したブロック図である。セレクタ
回路10の入力端子部には、EMPTY1、及びライト
リクエスト(WriteReqest)といった信号が
入力される。前記のEMPTY1は、前述した図3の回
路の出力信号である。セレクタ回路10は、第2BLK
において書込要求が発生した場合(前記ライトリクエス
ト信号で判断できる)であって、前記のEMPTY1に
より、第1BLKがEMPTYであることが確認された
ときには、ライトカウンタ11およびリードカウンタ1
2において、EXBOB2を選択させるようにLOAD
信号を出力する。即ち、第1BLKがエンプティであれ
ば、カウンタ11,12の初期値をEXBOB2に変更
してここから書き込みを始めることになる。一方、第1
BLKがエンプティでなければ、カウンタ11,12の
初期値は変更されない。
【0023】ライトカウンタ11は、データ書込の度に
発生するライトパルス(Writepulse)を入力
して書込アドレスを生成して出力する一方、前記LOA
D信号に基づき、EXBOB2を比較器13に出力する
ことができる。リードカウンタ7は、データ読出の度に
発生するリードパルス(Readpules)を入力し
て読出アドレスを生成して出力する一方、前記LOAD
信号に基づき、EXBOB2を比較器14に出力するこ
とができる。比較器13は、前記ライトカウンタ11が
出力するアドレスとEOB2とを入力し、これらを比較
し、その差(メモリ残量)が0であるか否かによってフ
ル状態を示す信号(FULL2)を出力する。また、比
較器14は、前記リードカウンタ12が出力する読出ア
ドレスと前記ライトカウンタ11が出力する書込アドレ
スとを比較し、メモリ内にデータが無いか否かによって
エンプティ状態を示す信号(EMPTY2)を出力す
る。
【0024】このように、各BLKに対して書込要求が
発生した場合に、アドレス拡張で浸食を受ける側にある
BLKがエンプティであることを条件に、書込要求がな
されたBLKに対する拡張がダイナミックに行われるこ
とになる。
【0025】なお、図1(b)、(c)に示した3分割
或いは4分割の場合において、各FIFOブロックの拡
張を行うときには、同図に示しているごとく、書込開始
側または書込終了側のいずれか一方のアドレスを変更す
ることで、上述した2分割と同様の構成でアドレスを生
成することができ、書込開始側と書込終了側の両アドレ
スを変更する場合に比べて拡張制御が容易に行えること
になる。
【0026】(実施の形態2)図5に示すように、この
実施の形態では、一つのメモリ15は四つの先入れ先だ
しメモリ(FIFO)として機能させられる。即ち、図
6,図7にて示される回路等から成るメモリコントロー
ラは、メモリ15を四つのFIFOのようにアクセスす
る制御を行う。また、この図では、第1BLK、第2B
LK、第3BLK、及び第4BLKの書込開始アドレス
はBOB1、BOB2、BOB3、及びBOB4で表
し、第1BLK、第2BLK、第3BLK、及び第4B
LKの書込終了アドレスはEOB1、EOB2、EOB
3、及びEOB4で表している。各BLKについて、書
込アドレスを示すライトカウンタ16,18,20,2
2が設けられ、また、読出アドレスを示すリードカウン
タ17,19,21,23が設けられている。なお、図
5の4分割構成は、図1(c)の4分割構成とは異な
る。
【0027】図6は、前記メモリ15における第2BL
Kのサイズ変更を担う回路を示したブロック図である。
BOB1、BOB2、EOB2、EOB3、及びEOB
4は、図示しないレジスタに保持され、外部から設定す
ることができる。
【0028】MUX26、MUX27、MUX35、及
びMUX36は、BOB1、BOB2、BOB3、BO
B4、EOB1、EOB2、EOB3、及びEOB4を
図に示すごとく入力し、ステート設定部34からの信号
(Sel1,Sel3,Sel4,Sel5)に基づい
て入力信号のいずれかを選択して出力する。MUX26
にて選択された信号は、EOBレジスタ28に保持さ
れ、MUX27にて選択された信号は、BOBレジスタ
29に保持される。この二つの保持された信号は、減算
器30に入力され、その減算結果はMUX32に供給さ
れる。ここで、例えば、第2BLKに対する書込要求が
なされたときには、MUX26にてEOB2が選択さ
れ、MUX27にてBOB2が選択される。従って、減
算結果は第2BLKのブロックサイズ(B2)を示すこ
とになる。MUX32は、ステート設定部34からの信
号(Sel2)に基づいて、前記の減算結果若しくはM
UX25の出力のいずれかを選択して比較器33に与え
る。
【0029】レジスタ(PS)31は、ライトリクエス
トを受けた際に書込要求サイズ情報(DB)を保持し、
これを比較器33に与える。比較器33は、前記DB
(以下、PSと表記する)と前記のMUX32を経て出
力されたブロックサイズBS(第2BLKであればB
2)とを比較し、BS>PSか、BS=PSか、BS<
PSかの結果をステート設定部34に与える。この結果
に基づくステート設定部34の処理内容については、後
に図8のフローチャートを用いて詳述する。
【0030】また、かかる図6の回路では、前述した第
2BLKのブロックサイズ(B2)の生成の他、第1B
LKから第2BLKまでのトータルのブロックサイズ
(B1+B2)、第2BLKから第3BLKまでのトー
タルのブロックサイズ(B2+B3)、第2BLKから
第4BLKまでのトータルのブロックサイズ(B2+B
3+B4)、第1BLKから第3BLKまでのトータル
のブロックサイズ(B1+B2+B3)、及び第1BL
Kから第4BLKまでのトータルのブロックサイズ(B
1+B2+B3+B4)の生成も行う。かかる演算は、
MUX35,36にて選択された信号を減算器37で減
算することによって算出され、その結果はラッチ38,
39,40,41に保持される。さらに、これらの結果
をMUX32で選択し、比較器33によって、PSとの
比較を行うことで、B1+B2>PS、B2+B3>P
S、B2+B3+B4>PS、B1+B2+B3>P
S、及びB1+B2+B3+B4>PSの演算を行う。
【0031】第1BLK、第3BLK,第4BLKにお
けるFULL/EMPTY出力回路も、図6と同様に構
成される。
【0032】図7は、第2BLKにおけるFULL/E
MPTY出力回路を示したブロック図である。MUX4
2は、BOB1及びBOB2を入力し、SelBOBに
基づいていずれかを選択して出力する。SelBOB
は、ステート設定部34から出力される信号であり、拡
張なしであればBOB2を選択させ、第1BLKを用い
た拡張を行うときには、BOB1を選択させる。リード
カウンタ43は、リードパルス(Readpulse)
をカウントすることで読出アドレスを生成するものであ
り、そのカウント初期値はMUX42からの出力値を採
る。MUX42からの出力値を採るか否か(即ち初期値
を設定するか否か)はLoad2にて制御される。Lo
ad2はステート設定部34から出力される。その出力
タイミングは、拡張するかどうかの判断がなされたとき
である。ライトカウンタ44は、ライトパルス(Wri
tepulse)をカウントすることで書込アドレスを
生成するものであり、そのカウント初期値はMUX42
からの出力値を採る。MUX42からの出力値を採るか
否かはLoad2にて制御される。比較器45は、前記
リードカウンタ43が出力する読出アドレスと前記ライ
トカウンタ44が出力する書込アドレスとを比較し、メ
モリ内にデータが無いか否かによってエンプティ状態を
示す信号(EMPTY2)を出力する。比較器46は、
前記ライトカウンタ44が出力する書込アドレスと前記
EOBレジスタ28に格納されている値(拡張なし→E
OB2、拡張あり→EOB3orEOB4)とを入力
し、これらを比較し、その差(メモリ残量)が0となっ
たときにフル状態を示す信号(FULL2)を出力す
る。
【0033】第1BLK、第3BLK,第4BLKにお
けるFULL/EMPTY出力回路も、図7と同様に構
成される。
【0034】次に、図8のフローチャートを用い、第2
BLKに対して書込要求が発生した場合を例に主に前記
ステート設定部34が行う処理の内容を説明していく。
まず、ライトリクエストの有無を判断する(ステップ
1)。ライトリクエストが無ければ、アイドル状態を採
り、ライトリクエストが有ればステートST1に移行す
る。ステートST1では、B2>PSか否かを判断する
(ステップ2)。YESの場合、即ち、書込データサイ
ズよりも第2BLKのサイズの方が大きければ、データ
書込処理に移行することになる。一方、NOの場合に
は、EMPTY1がエンプティを示しているか否かを判
断する(ステップ3)。YESの場合、即ち、第1BL
Kにデータが無い場合には、第1BLKを使用してデー
タ書込が行えるか否かを調べるステートST2に移行す
る。
【0035】ステートST2では、B1+B2>PSか
否かを判断する(ステップ5)。YESの場合、即ち、
書込データサイズよりも第2BLKと第1BLKの合計
サイズの方が大きければ、第1BLKを利用したデータ
書込処理に移行することになる。NOの場合には、EM
PTY3がエンプティを示しているか否かを判断する
(ステップ6)。ステップ6でNOとされた場合には、
データ書込処理へは移行しないことになる。一方、ステ
ップ6でYESとされた場合、即ち、第3BLKにデー
タが無い場合には、第3BLKを使用してデータ書込が
行えるか否かを調べるステートST3に移行する。
【0036】ステートST3では、まず、B2+B3>
PSか否かを判断する(ステップ7)。YESの場合、
即ち、書込データサイズよりも第2BLKと第3BLK
の合計サイズの方が大きければ、第3BLKを利用した
データ書込処理に移行することになる。NOの場合に
は、B1+B2+B3>PSか否かを判断する(ステッ
プ8)。ステップ8でYESとされた場合、即ち、書込
データサイズよりも第1BLKと第2BLKと第3BL
Kのその時点の合計サイズの方が大きければ、第1BL
K及び第3BLKを利用したデータ書込処理に移行する
ことになる。一方、ステップ8でNOとされた場合に
は、EMPTY4がエンプティを示しているか否かを判
断する(ステップ9)。ステップ9でNOとされた場合
には、データ書込処理へは移行しないことになる。一
方、ステップ9でYESとされた場合、即ち、第4BL
Kにデータが無い場合には、第4BLKを使用してデー
タ書込が行えるか否かを調べるステートST4に移行す
る。
【0037】ステートST4では、まず、B2+B3+
B4>PSか否かを判断する(ステップ10)。YES
の場合、即ち、書込データサイズよりも第2BLKと第
3BLKと第4BLKの合計サイズの方が大きければ、
第3BLK及び第4BLKを利用したデータ書込処理に
移行することになる。NOの場合には、B1+B2+B
3+B4>PSか否かを判断する(ステップ11)。ス
テップ11でYESとされた場合、即ち、書込データサ
イズよりも第1BLKと第2BLKと第3BLKと第4
BLKの合計サイズの方が大きければ、第1BLK、第
3BLK、及び第4BLKを利用したデータ書込処理に
移行することになる。一方、ステップ11でNOとされ
た場合には、データ書込処理へは移行しないことにな
る。
【0038】前記のステップ3でNOとされた場合に
は、EMPTY3がエンプティを示しているか否かを判
断する(ステップ4)。ステップ4でNOとされた場合
には、データ書込処理へは移行しないことになる。一
方、ステップ4でYESとされた場合、即ち、第3BL
Kにデータが無い場合には、B2+B3>PSか否かを
判断する(ステップ12)。ステップ12でYESとさ
れた場合には第3BLKを利用したデータ書込処理に移
行する。一方、ステップ12でNOとされた場合には、
EMPTY4がエンプティを示しているか否かを判断す
る(ステップ13)。ステップ13でNOとされた場合
には、データ書込処理へは移行しないことになる。ステ
ップ13でYESとされた場合、即ち、第4BLKにデ
ータが無い場合には、第4BLKを使用してデータ書込
が行えるか否かを調べるステートST5に移行する。
【0039】ステートST5では、B2+B3+B4>
PSか否かを判断する(ステップ14)。ステップ14
でYESとされた場合には、データ書込処理に移行し、
NOとされた場合には、データ書込処理へは移行しない
ことになる。
【0040】図9は、図6に記載のMUX36に入力さ
れるEOB3及びEOB4を加工生成することで、第3
BLK又は第4BLKにおいて所定のサイズの領域を確
保し、これら第3BLK又は第4BLKに対するアクセ
スを保証することを可能にする回路である。即ち、BO
BXレジスタ47には第3BLK又は第4BLKの本来
的な最終アドレスを格納し、ミニサイズレジスタ48に
は確保しておきたいサイズを外部から設定しておき、減
算器49でそれらの減算結果(EOBX)をMUX36
に与えるようにしてある。なお、第1BLKを用いた拡
張を行う場合において、この第1BLKに一定領域を確
保するときには、その本来的な開始アドレスに一定領域
に相当するサイズを加算した結果を開始アドレスとして
出力するようにすればよい。
【0041】図10は、データ転送制御装置の全体構成
を示した概略のブロック図である。バスインターフェー
ス53には、例えば、図示しないIEEE1394対応
のディジタルビデオが接続される。そして、このディジ
タルビデオからの映像データは、バスインターフェース
53にて受信され、パケットコントローラにてデータが
抽出される。そして、かかるデータは、メモリコントロ
ーラ51にてメモリ(FIFO)50に転送される。そ
して、かかるメモリ50から例えば図示しないホストの
ハードディスクに前記映像データが格納されていく。な
お、図10のメモリコントーラ51は、図6,図7の回
路等を備えて構成されるものである。
【0042】ここで、図6に示したように、ステート設
定部34からは、書き込み不能とされた場合にWrit
eFail信号が出力される。図10のパケットコント
ローラ52は、前記のWriteFail信号を受け取
ると、受信パケットのデータの書き込みに失敗したこと
を通知するためのパケットを生成する。バスインターフ
ェース53は、当該パケットをデータ転送元に送出す
る。これにより、データ転送元では、図10の回路側で
の書込失敗に対してそれを知らずに待たされるといった
ことが無くなる。即ち、転送処理の滞りを回避し、処理
の迅速性及び信頼性を向上できる。
【0043】また、図10のデータ転送制御装置におい
て、メモリ(FIFO)50に存在する複数のFIFO
ブロックのうち、幾つかがデータ転送元から送られてく
るデータを保持する受信用に、他の幾つかがデータ転送
元に送信するデータを保持する送信用に適宜用いられる
ように構成される場合がある。送信用のFIFOブロッ
クに格納されている送信データは、メモリコントローラ
51及びパケットコントローラ52を経てデータ転送元
に送出される。送信データの送信が完了したときには、
そのFIFOブロックはエンプティと判断され、拡張用
に用いられることが可能な状態となるのであるが、この
場合において、以下のような不具合が考えられる。デー
タ転送元が前記送信データの受信に失敗したときに、そ
の旨を返送(アクノリッジ送出)するプロトコルが採用
されるシステムにおいては、当該返送に応えて送信デー
タを再度送信することになるが、前述のごとく、FIF
Oブロックがエンプティと判断され、拡張用に用いられ
てしまった場合には、当該FIFOブロックには送信デ
ータは無くなっており、再び送信データを書き込まなく
てはならず、データ転送処理が滞る。
【0044】そこで、前記送信用のFIFOブロックが
エンプティと判断されても、このエンプティを示す信号
をマスクすることを案出した。図11は、これを実現す
る回路図である。ステート設定部34に入力される第1
BLK、第3BLK、及び第4BLKについての各エン
プティ信号(EMPTY1′,EMPTY3′,EMP
TY4′)は、図7と同様に構成される第1BLK、第
3BLK、及び第4BLKの各FULL/EMPTY出
力回路のエンプティ出力(EMPTY1,EMPTY
3,EMPTY4)と、エンプティマスクレジスタ5
7,58,59にそれぞれ格納されているマスク信号
(マスクを行う場合はLow信号)との論理積をアンド
回路54,55,56にて各々得ることで生成される。
即ち、データの消去を防止したいとするFIFOブロッ
クについては、その対応するエンプティマスクレジスタ
にLow信号を例えば外部から設定しておけばよい。な
お、パケットの種類に応じてエンプティマスクレジスタ
の設定を自動的に行うようにしてもよい。また、受領完
を示す信号を受け取ったときにはマスクレジスタにHi
gh信号を自動設定するようにしてもよいものである。
【0045】
【発明の効果】以上説明したように、この発明によれ
ば、或るFIFOブロックに対してデータ書込を行う場
合に空いているFIFOブロックをダイナミックに利用
してデータ書込を行うので、サイズが大きい転送データ
(書込データ)に対する書込の失敗を低減することがで
きる。また、或るFIFOブロックに対してデータ書込
を行う場合でそのブロックの容量では足りないとされる
場合に、空いているFIFOブロックを必要な分利用し
てデータ書込を行うことができるので、必要以上にFI
FOブロックを確保することなく、サイズが大きい転送
データに対する書込の失敗を低減することができる。ま
た、各FIFOブロックとして一定量の領域が確保され
るので、各FIFOブロックに対するアクセスを保証す
ることができる。また、データ転送元を転送要求状態の
まま待たしてしまうのを回避することができる。また、
エンプティ信号をマスクすることで、送信データの再書
込を防止できるという効果を奏する。
【図面の簡単な説明】
【図1】この発明のデータ転送制御装置においてメモリ
を複数のFIFOブロックに分割する例を示した説明図
である。
【図2】図1(a)の分割態様において、各々のFIF
Oブロック(第1BLK,第2BLK)に他のFIFO
ブロック(第2BLK,第1BLK)が使用するのを許
可しない一定量の領域を確保した場合を示した説明図で
ある。
【図3】図2の第1BLKにおけるFULL/EMPT
Y出力回路を示したブロック図である。
【図4】図2の第2BLKにおけるFULL/EMPT
Y出力回路を示したブロック図である。
【図5】この発明のデータ転送制御装置においてメモリ
を4つのFIFOブロックに分割し、各FIFOブロッ
クについてライトカウンタ及びリードカウンタを備えた
例を示した説明図である。
【図6】図5の分割態様のメモリを用いる場合のデータ
転送制御装置の回路の要部を示したブロック図である。
【図7】図5の第2BLKにおけるFULL/EMPT
Y出力回路を示したブロック図である。
【図8】この発明の第2BLKに書込要求があった場合
の書込可能/不可能の判断処理を示したフローチャート
である。
【図9】図5の分割態様において、各々のFIFOブロ
ックが他のFIFOブロックが使用するのを許可しない
一定量の領域を確保するための回路部分を示したブロッ
ク図である。
【図10】この発明のデータ転送制御装置の全体の概略
構成を示したブロック図である。
【図11】この発明のエンプティ信号をマスクする回路
を備えた構成を示したブロック図である。
【符号の説明】
1,2,3,15,50 メモリ 5 セレクタ 6 ライトカウンタ 7 リードカウンタ 8 比較器 9 比較器 10 セレクタ 11 ライトカウンタ 12 リードカウンタ 13 比較器 14 比較器 25,26,27,32,35,36 MUX 33 比較器 34 ステート設定部 51 メモリコントローラ 52 パケットコントローラ 53 バスインターフェース

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 データ転送元とデータ転送先との間に介
    在し、転送データをメモリに書き込む処理と、メモリか
    らデータを読み出す処理を行うデータ転送制御装置にお
    いて、 一つのメモリを複数のFIFOブロックとして機能させ
    るために各FIFOブロックについての初期値としての
    書込開始アドレス及び書込終了アドレスを保持する初期
    値保持レジスタと、FIFOブロックのサイズの拡張を
    可能にするために拡張書込開始アドレス及び拡張書込終
    了アドレスを保持する拡張値保持レジスタと、各FIF
    Oブロックごとに設けられ、書込と読出に対応してカウ
    ントされるカウンタと、各FIFOブロックがエンプテ
    ィか否かを判断する判断手段と、或るFIFOブロック
    に対して書込要求が発生した場合で、それに隣接するア
    ドレス拡張が可能な他のFIFOブロックがエンプティ
    のときには前記拡張書込開始アドレス及び拡張書込終了
    アドレスに基づいて書込/読出処理を行わせる制御手段
    と、を備えたことを特徴とするデータ転送制御装置。
  2. 【請求項2】 各FIFOブロックの拡張が行われると
    きには、書込開始側または書込終了側のいずれか一方の
    アドレスが変更されることを特徴とする請求項1に記載
    のデータ転送制御装置。
  3. 【請求項3】 データ転送元とデータ転送先との間に介
    在し、転送データをメモリに書き込む処理と、メモリか
    らデータを読み出す処理を行うデータ転送制御装置にお
    いて、 一つのメモリを複数のFIFOブロックとして機能させ
    るために各FIFOブロックについての初期値としての
    書込開始アドレス及び書込終了アドレスを保持する初期
    値保持レジスタと、各FIFOブロックごとに設けら
    れ、書込と読出に対応してカウントされるカウンタと、
    各FIFOブロックがエンプティか否かを判断する判断
    手段と、書き込むべき転送データのサイズを検出するサ
    イズ検出手段と、或るFIFOブロックに対して書込要
    求が発生し、転送データのサイズが当該FIFOブロッ
    クの初期割当サイズより大きい場合で、当該FIFOブ
    ロックのアドレス下位側又は上位側の他のFIFOブロ
    ックがエンプティのときには当該エンプティのFIFO
    ブロックを使用して書込/読出処理を行わせる制御手段
    と、を備えたことを特徴とするデータ転送制御装置。
  4. 【請求項4】 各FIFOブロックにおける使用不許可
    領域を外部から設定するための手段を備え、エンプティ
    である他のFIFOブロックであるとして使用される際
    には、前記使用不許可領域以外の領域が用いられ、当該
    使用不許可領域はそのFIFOブロックとしての使用が
    確保されるように構成されていることを特徴とする請求
    項1乃至請求項3のいずれかに記載のデータ転送制御装
    置。
  5. 【請求項5】 転送データのサイズが当該FIFOブロ
    ックの初期割当サイズより大きい場合で、当該FIFO
    ブロックのアドレス下位側又は上位側の他のFIFOブ
    ロックの使用も行えない場合に、データの受け取り不可
    能を示す情報をデータ転送元に転送する制御手段を備え
    たことを特徴とする請求項3又は請求項4に記載のデー
    タ転送制御装置。
  6. 【請求項6】 複数のFIFOブロックのうち、幾つか
    がデータ転送元から送られてくるデータを保持する受信
    用に、他の幾つかがデータ転送元に送信するデータを保
    持する送信用に適宜用いられるように構成されていると
    ともに、前記送信用のFIFOブロックについてのエン
    プティを示す信号をマスクする手段を備えたことを特徴
    とする請求項1乃至請求項5のいずれかに記載のデータ
    転送制御装置。
JP33711197A 1997-12-08 1997-12-08 データ転送制御装置 Pending JPH11175312A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33711197A JPH11175312A (ja) 1997-12-08 1997-12-08 データ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33711197A JPH11175312A (ja) 1997-12-08 1997-12-08 データ転送制御装置

Publications (1)

Publication Number Publication Date
JPH11175312A true JPH11175312A (ja) 1999-07-02

Family

ID=18305548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33711197A Pending JPH11175312A (ja) 1997-12-08 1997-12-08 データ転送制御装置

Country Status (1)

Country Link
JP (1) JPH11175312A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005512227A (ja) * 2001-12-11 2005-04-28 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信
JP2012190415A (ja) * 2011-03-14 2012-10-04 Toshiba Corp バッファ管理装置、バッファ管理方法及び記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005512227A (ja) * 2001-12-11 2005-04-28 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション Fifoメモリにおけるインターリーブされた多数の同時トランザクションからのデータの受信
JP2012190415A (ja) * 2011-03-14 2012-10-04 Toshiba Corp バッファ管理装置、バッファ管理方法及び記憶装置

Similar Documents

Publication Publication Date Title
US6047339A (en) Buffering data that flows between buses operating at different frequencies
US5592629A (en) Apparatus and method for matching data rates to transfer data between two asynchronous devices
JP3127523B2 (ja) 通信制御装置およびデータ送信方法
CN115905086A (zh) 基于axi同步读写单口sram的控制方法及控制器
CN115794722A (zh) 一种AXI outstanding接口转换实现方法
JPH10143466A (ja) バス通信システム
CN108984148B (zh) 一种基于同步fifo存储器的数据存储的方法及存储器
JPH11175312A (ja) データ転送制御装置
JPH1040215A (ja) Pciバス・システム
US7224622B2 (en) Method for writing data into memory and the control device
US6715021B1 (en) Out-of-band look-ahead arbitration method and/or architecture
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
JPH03108182A (ja) メモリー制御装置及びメモリー制御方法
JP3019917B2 (ja) 高速fifo回路
JP2870468B2 (ja) データ転送速度差吸収方式
JPH11161467A (ja) データ転送制御装置
JP2834948B2 (ja) データ転送方式
CN117435535A (zh) 一种存储系统、主控芯片、数据存储方法及数据读取方法
US20050165988A1 (en) Bus communication system
JPH0589027A (ja) 監視機能付ライトバツフア
JP2933039B2 (ja) 通信用コントローラ
JPH09274599A (ja) バッファメモリ装置
JP2570986B2 (ja) データ転送制御装置及び方法
JP3264316B2 (ja) ダイレクトメモリアクセス制御装置
CN117116323A (zh) 对单端口sram进行读写的方法、fifo模块、芯片