JP2004070656A - Data transfer unit, data transfer method and program including the same method - Google Patents

Data transfer unit, data transfer method and program including the same method Download PDF

Info

Publication number
JP2004070656A
JP2004070656A JP2002228913A JP2002228913A JP2004070656A JP 2004070656 A JP2004070656 A JP 2004070656A JP 2002228913 A JP2002228913 A JP 2002228913A JP 2002228913 A JP2002228913 A JP 2002228913A JP 2004070656 A JP2004070656 A JP 2004070656A
Authority
JP
Japan
Prior art keywords
data
block
signal
blocks
storage device
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
JP2002228913A
Other languages
Japanese (ja)
Inventor
Hitoshi Yamamoto
山本 斉
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 JP2002228913A priority Critical patent/JP2004070656A/en
Publication of JP2004070656A publication Critical patent/JP2004070656A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To validly and efficiently use the storage area of a storage device incorporated in a data transfer unit. <P>SOLUTION: In this data transfer unit for temporarily storing data for transmission or reception in a storage device such as a single port memory 27, and for transferring the data, the storage device is divided into a plurality of blocks of predetermined same units. In response to transmission data writing request signal ITXFWREQB or ATXFWREQB at transferring and transmitting data, one unused block is selected from the plurality of blocks, and the selected block is turned into a use state, and the data for transmission are written in the selected block, and then read out and transferred. In response to a reception data writing request signal RXFRREQB at transferring and receiving the data, one unused block is selected from the plurality of blocks, and the selected block is turned into a use state, and the data for reception are written in the selected block, and read out and transferred. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、データ転送装置、データ転送方法及びデータ転送方法を記録したプログラムに関し、特に、IEEE1394準拠の装置とコンピュータ等のPCIバスとの間でデータを転送するためのデータ転送装置、データ転送方法及びデータ転送方法を記録したプログラムに関する。
【0002】
【従来の技術】
図25は、通常用いられているIEEE1394準拠のデータ送受信用の、FIFOメモリ等の記憶装置を用いた、従来技術に係るIEEE1394インターフェース装置110の構成を示すブロック図である。図25に示すように、IEEE1394インターフェース装置110は、IEEE1394バスB1と、パーソナルコンピュータ113のPCIバスB2との間のインターフェースを提供している。IEEE1394バスB1とPCIバスB2とでは、互いにクロック周波数が異なっているので、IEEE1394インターフェース装置110においてFIFO記憶装置等にバッファリングしてから転送動作を行うために、受信用、同期送信用、及び非同期送信用のためにそれぞれ別のFIFO記憶装置105,106,107が設けられている。
【0003】
IEEE1394バスB1を介して入力されたパケットは、パーソナルコンピュータ113のIEEE1394インターフェース装置10において、物理層の信号変換などのインターフェース処理を行うPHY回路9を介して、リンク層の信号変換などのインターフェース処理を行うLINK回路108に送られ、そして受信用FIFO記憶装置105に格納される。次に、受信用FIFO記憶装置105に格納されたパケットは、受信用DMAコントローラ102によって読み出されて、PCIバスとの信号変換などのインターフェース処理を行うPCIインターフェースコントローラ1を介してPCIバスB2上に送信され、RAM11に蓄えられる。そして、CPU12はそのRAM11に蓄えられたデータを受信パケットデータとして使用することができる。また、CPU12はRAM11に同期送信用パケットのデータを準備し、次いで、同期送信用DMAコントローラ103が、そのRAM11のデータをPCIインターフェースコントローラを介して読み出して同期送信用FIFO記憶装置106に格納する。そして、LINK回路108が、その格納されたデータを読み出して、PHY回路9を介してIEEE1394バスB1上に送信する。また、RAM11における非同期送信パケットも、非同期送信用DMAコントローラ104及び非同期送信用FIFO記憶装置107を用いて同様のデータの流れでIEEE1394バスB1に送信される。
【0004】
また、IEEE1394インターフェース装置110では、そこで用いる送信用及び受信用FIFO記憶装置が大きなゲート規模を必要とするので、例えば、特開2001−134421号公報に示されるように小さなサイズの非同期の2ポートメモリと大きなサイズの1ポートメモリを用いて構成することにより、IEEE1394インターフェース装置110におけるFIFO記憶装置を占有する割合を減少させる等の努力がなされてきた。
【0005】
図25のIEEE1394インターフェース装置110に対して、当該公報に開示された技術を用いた場合の受信用FIFO記憶装置105、同期送信用FIFO記憶装置106及び非同期送信用FIFO記憶装置107の詳細構成を図26に示す。また、これ以降、信号名にXXXXB(すなわち、信号名の末尾が“B”で終わる信号)とした場合は、ローレベルでアクティブなローイネーブル信号とし、それ以外の場合はハイレベルでアクティブなハイイネーブル信号とする。
【0006】
図26において、LINK回路108と受信用FIFO記憶装置105との間は、LINK回路108から送られるデータを伝送する受信データバスRXDO[31:0](ここで、[31:0]はビット31からビット0までの信号ビットを有し、以下同様にして表示する。)と、その受信パケットの最終データであることを示す信号を伝送するバスRXDO[32]とによって接続され、LINK回路108と受信用FIFO記憶装置105との間はさらに、LINK回路108から受信用FIFO記憶装置105に受信データを書き込む許可を示すRXWRB信号と、受信用FIFO記憶装置105に書き込みできる領域がなくなったこと(メモリフル状態)をLINK回路108に示すRXFULL信号とを用いて接続される。また、受信用DMAコントローラ102と受信用FIFO記憶装置105との間は、受信用DMAコントローラ102が受信用FIFO記憶装置105から受信データを読み出すための受信データバスRXDI[31:0]と、その受信パケットの最終データであることを示す信号を伝送するバスRXDI[32]とによって接続され、受信用DMAコントローラ102と受信用FIFO記憶装置105との間はさらに、受信用DMAコントローラ102からの、受信用FIFO記憶装置105内のデータの読み出し要求であるRXFRREQB信号と、受信用FIFO記憶装置105が受信用DMAコントローラ102からの読み出し要求に対して読み出し許可することを示すRXFRACKB信号と、受信用DMAコントローラ102が受信用FIFO記憶装置105からデータを読み出しているときであっても一時的の読み出しの停止を指示するRXFRWAIT信号とを用いて接続される。
【0007】
また、図26に示すように、同期送信用DMAコントローラ103と同期送信用FIFO記憶装置106との間は、同期送信用DMAコントローラ103から送られるデータを伝送する送信データバスITXDO[31:0]と、その送信パケットの最終データであることを示す信号を伝送するバスITXDO[32]とによって接続され、同期送信用DMAコントローラ103と同期送信用FIFO記憶装置106との間はさらに、同期送信用FIFO記憶装置106に対する、同期送信用DMAコントローラ103から送られる送信データの書き込み要求であるITXFWREQB信号と、同期送信用DMAコントローラ103からの送信データの書き込み要求に対する、同期送信用FIFO記憶装置106の書き込み許可であるITXFWACKB信号と、同期送信用DMAコントローラ103が書き込み要求してデータを送信していること及びそのデータが有効であることを示すITXFWDTVL信号とを用いて接続される。さらに、同期送信用FIFO記憶装置106とLINK回路108との間は、LINK回路108が同期送信用FIFO記憶装置106から同期送信データを読み出すための送信データバスITXDI[31:0]と、その送信データの最終データであることを示す信号を伝送するバスITXDI[32]とによって接続され、同期送信用FIFO記憶装置106とLINK回路108との間はさらに、LINK回路108による、同期送信用FIFO記憶装置106からの送信データの読み出し要求であるITXRDB信号を用いて接続される。
【0008】
さらに、図26に示すように、非同期送信用DMAコントローラ104と非同期送信用FIFO記憶装置107との間は、非同期送信用DMAコントローラ104から送られるデータを伝送する送信データバスATXDO[31:0]と、その送信パケットの最終データであることを示す信号を伝送するバスATXDO[32]とによって接続され、非同期送信用DMAコントローラ104と非同期送信用FIFO記憶装置107との間はさらに、非同期送信用FIFO記憶装置107に対する、非同期送信用DMAコントローラ104から送られる送信データの書き込み要求であるATXFWREQB信号と、非同期送信用DMAコントローラ104からの送信データの書き込み要求に対する、非同期送信用FIFO記憶装置107の書き込み許可であるATXFWACKB信号と、非同期送信用DMAコントローラ104が書き込み要求してデータを送信していること及びそのデータが有効であることを示すATXFWDTVL信号とを用いて接続される。また、非同期送信用FIFO記憶装置107とLINK回路108との間は、LINK回路108が非同期送信用FIFO記憶装置107から非同期送信データを読み出すための送信データバスATXDI[31:0]と、その送信データの最終データであることを示す信号を伝送するATXDI[32]とによって接続され、非同期送信用FIFO記憶装置107とLINK回路108との間にさらに、LINK回路108による、非同期送信用FIFO記憶装置107からの送信データの読み出し要求であるATXRDB信号を用いて接続される。
【0009】
また、受信用FIFO記憶装置105は、受信データを順次蓄えるための、例えばSRAMで構成される、33ビット×1024ワードのシングルポートメモリ122と、33ビット×32ワードのFIFOメモリ121と、また、受信パケットの書き込み中に受信用FIFO記憶装置105がフル状態になったときにそれを受信用DMAコントローラ102に知らせるためにそのパケットの最終データをある固定値に変更するための2対1の33ビットマルチプレクサ123とを備え、さらに、受信用FIFO記憶装置105に接続されたLINK回路108、受信用DMAコントローラ102、そして前述のシングルポートメモリ122、FIFOメモリ121、マルチプレクサ123を制御するタイミングコントローラ124を備えている。
【0010】
それらの構成要素の構成及び動作について説明する。マルチプレクサ123の第1の入力端子には、LINK回路108から受信データバスRXDO[32:0]を介して到来するデータが入力される一方、マルチプレクサ123の第2の入力端子には、受信用FIFO記憶装置105がフル状態になったときに使用する固定データ値33’h100000014が入力される。上記データ値において、「33’」はデータサイズが33ビットであることを意味し、「h」はデータ値が16進数で表示されていることを意味するが、この値は一例である。そして、そのマルチプレクサ123からの出力信号は、バスMDI[32:0]を介してシングルポートメモリ122に入力され、シングルポートメモリ122の出力データバスMDO[32:0]はFIFOメモリ121の入力バスに接続される。そして、FIFOメモリ121の出力バスは、受信用DMAコントローラ102へ接続された受信データバスRXDI[32:0]であって、FIFOメモリ121から出力された信号は受信データバスRXDI[32:0]を介して受信用DMAコントローラ102に入力される。そして、受信用FIFO記憶装置105のタイミングコントローラ124には、LINK回路108からのRXWRB信号が入力され、タイミングコントローラ124は、メモリフル状態を示すRXFULL信号をLINK回路108に出力する。また、タイミングコントローラ124は、シングルポートメモリ122のアドレスを表すデータを、アドレスバスMAD[9:0]を介してシングルポートメモリ122に出力し、また、シングルポートメモリ122のデータ書き込みを許可する信号であるMWRB信号をシングルポートメモリ122に出力する。また、タイミングコントローラ124は、FIFOメモリ121へのデータ書き込み許可を示すFWRB信号と、FIFOメモリ121からのデータ読み出し許可を示すFRDB信号とをFIFOメモリ121に出力する。また、タイミングコントローラ124には、受信用DMAコントローラ102からRXFRREQB信号及びRXFRWAIT信号が入力され、タイミングコントローラ124は、RXFRACKB信号を受信用DMAコントローラ102に出力する。
【0011】
また、同期送信用FIFO記憶装置106は、例えばSRAMにてなり、同期送信データを順次蓄えるための33ビット×512ワードのシングルポートメモリ132と、33ビット×32ワードのFIFOメモリ131とを備え、さらに、同期送信用FIFO記憶装置106に接続されたLINK回路108、同期送信用DMAコントローラ103、そして前述のシングルポートメモリ132及びFIFOメモリ131を制御するタイミングコントローラ133を備えている。
【0012】
それらの構成要素の構成及び動作について説明する。FIFOメモリ131の入力バスには、同期送信用DMAコントローラ103から同期送信データバスITXDO[32:0]を介して到来するデータが入力される。そして、FIFOメモリ131の出力バスMDI[32:0]はシングルポートメモリ132の入力バスに接続され、シングルポートメモリ132の出力バスであるMDO[32:0]はITXDI[32:0]となってLINK回路108に接続される。そして、同期送信用FIFO記憶装置106のタイミングコントローラ133には、LINK回路108からITXRDB信号が入力される。また、タイミングコントローラ133は、シングルポートメモリ132のアドレスを表すデータを、アドレスバスMAD[9:0]を介してシングルポートメモリ132に出力し、また、シングルポートメモリ132のデータ書き込みを許可する信号であるMWRB信号をシングルポートメモリ132に出力する。また、タイミングコントローラ133は、FIFOメモリ131へのデータ書き込み許可を示すFWRB信号と、FIFOメモリ131からのデータ読み出し許可を示すFRDB信号とをFIFOメモリ131に出力する。また、タイミングコントローラ133には、同期送信用DMAコントローラ103からITXFWREQB信号及びITXFWDTVL信号が入力され、タイミングコントローラ133はITXFWACKB信号を同期送信用DMAコントローラ103に出力する。
【0013】
また、非同期送信用FIFO記憶装置107は、例えばSRAMにてなり、非同期送信データを順次蓄える33ビット×512ワードのシングルポートメモリ142と、33ビット×32ワードのFIFOメモリ141とを備え、さらに、非同期送信用FIFO記憶装置107に接続されたLINK回路108、非同期送信用DMAコントローラ104、そして前述のシングルポートメモリ142及びFIFOメモリ141を制御するタイミングコントローラ143を備えている。
【0014】
それらの構成要素の構成及び動作について説明する。FIFOメモリ141の入力バスには、非同期送信用DMAコントローラ104から非同期送信データバスATXDO[32:0]を介してデータが入力される。そして、FIFOメモリ141の出力バスMDI[32:0]はシングルポートメモリ142の入力バスに接続され、その出力バスであるMDO[32:0]はATXDI[32:0]となってLINK回路108に接続される。そして、非同期送信用FIFO記憶装置107のタイミングコントローラ143には、LINK回路108からATXRDB信号が入力される。また、タイミングコントローラ143は、シングルポートメモリ142のアドレスを表すデータを、アドレスバスMAD[9:0]を介してシングルポートメモリ142に出力し、また、シングルポートメモリ142のデータ書き込みを許可する信号であるMWRB信号をシングルポートメモリ142に出力する。また、タイミングコントローラ143は、FIFOメモリへのデータ書き込み許可を示すFWRB信号と、FIFOメモリからのデータ読み出し許可を示すFRDB信号とをFIFOメモリに出力する。また、タイミングコントローラ143には非同期送信用DMAコントローラ104からATXFWREQB信号及びATXFWDTVL信号が入力され、タイミングコントローラ143はATXFWACKB信号を非同期送信用DMAコントローラ104に出力する。
【0015】
【発明が解決しようとする課題】
そして、IEEE1394機器であるDVCR(ディジタルビデオカセットレコーダ)を図25のようなデータ転送装置と接続して、DVCRのデータをパーソナルコンピュータ113内に蓄えようとする場合は、IEEE1394バスB1には、ほとんど同期受信データのパケットしか存在しない。そのため、受信用FIFO記憶装置105は使用しているが、同期送信用FIFO記憶装置106及び非同期送信用FIFO記憶装置107はほとんど使用されない。また、逆にパーソナルコンピュータ113内にあるデータをDVCRに蓄えようとする場合には、IEEE1394バスB1には同期送信データのパケットしか存在しない。そのため、同期送信用FIFO記憶装置106は使用しているが、それ以外の受信用FIFO記憶装置105及び非同期送信用FIFO記憶装置107は使用されない。
【0016】
また、IEEE1394機器であるハードディスクドライブ等のSBP2プロトコルを用いた機器を図25のようなデータ転送装置と接続して、IEEE1394バスB1の先に接続した機器からパーソナルコンピュータ113にデータを蓄えようとする場合は、IEEE1394バスB1の大半を非同期受信データのパケットがほとんど占有する。そのため受信用FIFO記憶装置105は使用しているが、同期送信用FIFO記憶装置106及び非同期送信用FIFO記憶装置107はほとんど使用されない。また、逆に、パーソナルコンピュータ113内にあるデータをIEEE1394バスB1の先に接続した機器に蓄えようとする場合は、IEEE1394バスB1には非同期送信パケットが大半を占有する。そのため、非同期送信用FIFO記憶装置107は使用しているがそれ以外の受信用FIFO記憶装置105及び非同期送信用FIFO記憶装置106は使用されない。
【0017】
以上のことからIEEE1394インターフェース装置110において大きなゲート規模を占めるFIFO記憶装置は有効には使用されていない。それは、図26のように各FIFO記憶装置105,106,107が小さくなるような構成であっても同様である。
【0018】
本発明の目的は以上の問題点を解決し、IEEE1394インターフェース装置などのデータ転送装置において、内蔵された記憶装置の記憶領域を有効にかつ効率的に利用することができるデータ転送装置、データ転送方法及びその方法を含むプログラムを提供することにある。
【0019】
【課題を解決するための手段】
第1の発明に係るデータ転送装置は、送信又は受信のためのデータを記憶装置に一時的に格納した後転送するデータ転送装置において、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御する制御手段を備えたことを特徴とする。
【0020】
上記データ転送装置において、上記制御手段は、好ましくは、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保することを特徴とする。
【0021】
また、上記データ転送装置において、好ましくは、上記各ブロックに対応して設けられ、次のブロックのアドレスを記憶する第1のレジスタ手段をさらに備えたことを特徴とする。
【0022】
さらに、上記データ転送装置において、好ましくは、上記各ブロックに対応して設けられ、次のブロックのアドレスが選択されて確保されているか否かを示すデータを記憶する第2のレジスタ手段をさらに備えたことを特徴とする。
【0023】
また、上記データ転送装置において、上記制御手段は、好ましくは、上記ブロックからデータを読み出したとき、当該ブロックを未使用状態として解放することを特徴とする。
【0024】
さらに、上記データ転送装置において、好ましくは、上記各ブロックに対応して設けられ、上記各ブロックが使用状態であるか否かを示すデータを記憶する第3のレジスタ手段をさらに備えたことを特徴とする。
【0025】
第2の発明に係るデータ転送方法は、送信又は受信のためのデータを記憶装置に一時的に格納した後転送するデータ転送方法において、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御するステップを含むことを特徴とする。
【0026】
上記データ転送方法において、上記制御するステップは、好ましくは、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保することを特徴とする。
【0027】
また、上記データ転送方法において、好ましくは、上記各ブロックに対応して設けられた第1のレジスタ手段に、次のブロックのアドレスを記憶するステップをさらに含むことを特徴とする。
【0028】
さらに、上記データ転送方法において、好ましくは、上記各ブロックに対応して設けられた第2のレジスタ手段に、次のブロックのアドレスが選択されて確保されているか否かを示すデータを記憶するステップをさらに含むことを特徴とする。
【0029】
また、上記データ転送方法において、上記制御するステップは、好ましくは、上記ブロックからデータを読み出したとき、当該ブロックを未使用状態として解放することを特徴とする。
【0030】
さらに、上記データ転送方法において、好ましくは、上記各ブロックに対応して設けられた第3のレジスタ手段に、上記各ブロックが使用状態であるか否かを示すデータを記憶するステップをさらに含むことを特徴とする。
【0031】
第3の発明に係るデータ転送方法を含むプログラムは、上記各ステップを備えたデータ転送方法を含むことを特徴とする。
【0032】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。
【0033】
図1は、本発明の実施形態に係るIEEE1394インターフェース装置10の構成を示すブロック図である。図25の従来技術では、受信用FIFO記憶装置105と同期送信用FIFO記憶装置106と非同期送信用FIFO記憶装置107の3つに分かれているが、本実施形態においては、これら3つの記憶装置105,106,107を、ただ1つの3ポートFIFO記憶装置5に統合化したことを特徴としている。
【0034】
図1の実施形態に係るデータ転送装置は、送信又は受信のためのデータを、例えばシングルポートメモリ27である記憶装置に一時的に格納した後転送するデータ転送装置であり、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号ITXFWREQB又はATXFWREQBに応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号RXFRREQBに応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御することを特徴としている。また、上記データ転送装置において、上記制御手段は、好ましくは、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保することを特徴としている。
【0035】
図1において、IEEE1394バスB1からパーソナルコンピュータ13に到来した受信データは、IEEE1394インターフェース装置10のPHY回路7において受信され、PHY回路7は入力された受信データに対して物理層における信号変換などのインターフェース処理を実行した後、LINK回路6に出力する。LINK回路6は入力された受信データに対してリンク層における信号変換などのインターフェース処理を実行した後、3ポートFIFO記憶装置5に書き込む。次いで、受信用DMAコントローラ2は3ポートFIFO記憶装置5内の受信データを読み出してPCIインターフェースコントローラ1に出力し、これに応答して、PCIインターフェースコントローラ1は読み出された受信データに対して信号変換などのインターフェース処理を実行した後、PCIバスB2を介してRAM11に出力して記憶する。
【0036】
また、パーソナルコンピュータ13からIEEE1394バスB1にデータを送信するときは、CPU12がRAM11内の送信データをPCIインターフェースコントローラ1に送り、PCIインターフェースコントローラ1は当該送信データに対して信号変換などのインターフェース処理を実行した後、同期送信するならば、同期送信用DMAコントローラ3に出力し、これに応答して、同期送信用DMAコントローラ3は上記送られた送信データを3ポートFIFO記憶装置5に書き込む。また、送信データを非同期送信するならば、送信データはPCIインターフェースコントローラ1から非同期送信用DMAコントローラ4に出力され、非同期送信用DMAコントローラ4は上記送られた送信データを3ポートFIFO記憶装置5に書き込む。次いで、LINK回路6は、3ポートFIFO記憶装置5内のデータを読み出してリンク層の信号変換などのインターフェース処理を実行した後、物理層の信号変換などのインターフェース処理を実行するPHY回路7を介してIEEE1394バスB1に送信する。
【0037】
図2は、3ポートFIFO記憶装置5の詳細構成を示すブロック図である。図25乃至図27の従来技術と相違点について以下に説明する。
【0038】
図26の受信用FIFO記憶装置105、同期送信用FIFO記憶装置106及び非同期送信用FIFO記憶装置107は、図2では3ポートFIFO記憶装置5に相当する。図26の受信用FIFO記憶装置105のFIFOメモリ121、同期送信用FIFO記憶装置106のFIFOメモリ131及び非同期送信用FIFO記憶装置107のFIFOメモリ141はそれぞれ、図2の受信用FIFOメモリ21、同期送信用FIFOメモリ22、非同期送信用FIFOメモリ23に相当し、そのデータ容量も同じである。図26の受信用FIFO記憶装置105のシングルポートメモリ122、同期送信用FIFO記憶装置106のシングルポートメモリ132及び非同期送信用FIFO記憶装置107のシングルポートメモリ142は、図2のシングルポートメモリ27に相当し、図26の3つのシングルポートメモリの総容量と図2の容量は同じである。シングルポートメモリ27は、例えばSRAMで構成される。
【0039】
また、図2のシングルポートメモリ27の第1の入力端子には、入力データバスMDI[32:0]を介して、4対1の33ビットマルチプレクサ24からのデータが入力され、そのマルチプレクサ24の第1の入力端子(0)には、データバスATDO[32:0]を介して非同期送信用FIFOメモリ23の出力データが入力され、マルチプレクサ24の第2の入力端子(1)にはデータバスITDO[32:0]を介して同期送信用FIFOメモリ22の出力データが入力され、マルチプレクサ24の第3の入力端子(2)にはデータバスRXDO[32:0]を介してLINK回路6からの受信データが入力され、そして、マルチプレクサ24の第4の入力端子(3)には、図26の受信用FIFO記憶装置105で受信用FIFO記憶装置105がフル状態になったときにマルチプレクサ123の入力に用いるものと同じデータ33’h10000014の固定値(この値は一例である。)が入力される。また、図2のシングルポートメモリ27の第2の入力端子は、アドレスバスMAD[10:0]を介して4対1の11ビットマルチプレクサ25の出力端子に接続され、そのマルチプレクサ25の第1の入力端子(0)は、アドレスバスAAD[10:0]を介してFIFOタイミングコントローラ28から非同期送信用のアドレスデータが入力され、マルチプレクサ25の第2の入力端子(1)はアドレスバスIAD[10:0]を介してFIFOタイミングコントローラ28から同期送信用のアドレスデータが入力され、マルチプレクサ25の第3の入力端子(2)及び第4の入力端子(3)はアドレスバスRAD[10:0]を介してFIFOタイミングコントローラ28からの受信用のアドレスデータが入力される。また、図2のシングルポートメモリ27の第3の入力端子には、4対1の1ビットマルチプレクサ26から出力された読み出し書き込み制御信号MWRBが入力され、そのマルチプレクサ26の第1の入力端子(0)にはFIFOタイミングコントローラ28からの非同期送信用FIFOメモリ23の読み出し要求信号AFRDBが入力され、マルチプレクサ26の第2の入力端子(1)にはFIFOタイミングコントローラ28からの同期送信用FIFOメモリ22の読み出し要求信号IFRDBが入力され、マルチプレクサ26の第3の入力端子(2)及び第4の入力端子(3)には、FIFOタイミングコントローラ28からの受信用FIFOメモリ21の書き込み要求信号RFWRBが入力される。そして、前述の3つのマルチプレクサ24,25,26へのデータセレクト信号を伝送するために、バスDISEL[1:0]が、FIFOタイミングコントローラ28と各マルチプレクサ24,25,26との間で接続される。
【0040】
また、シングルポートメモリ27の出力データバスMDO[32:0]は、LINK回路6へのデータバスITXDI[32:0]及びATXDI[32:0]となり、また、受信用FIFOメモリ21の入力データバスとなる。また、受信用FIFOメモリ21の出力データバスは受信用DMAコントローラ2へのデータバスRXDI[32:0]となり、同期送信用DMAコントローラ3からのデータバスITXDO[32:0]は同期送信用FIFOメモリ22の入力データバスとなり、非同期送信用DMAコントローラ4からのデータバスATXDO[32:0]は非同期送信用FIFOメモリ23の入力データバスとなる。
【0041】
さらに、受信用FIFOメモリ21の読み出し要求信号として、FIFOタイミングコントローラ28からRFRDB信号が受信用FIFOメモリ21に入力され、受信用FIFOメモリ21の書き込み要求信号として、FIFOタイミングコントローラ28からRFWRB信号が受信用FIFOメモリ21に入力される。また、同期送信用FIFOメモリ22の読み出し要求信号として、FIFOタイミングコントローラ28からIFRDB信号が同期送信用FIFOメモリ22に入力され、同期送信用FIFOメモリ22の書き込み要求信号として、FIFOタイミングコントローラ28からIFWRB信号が同期送信用FIFOメモリ22に入力される。さらに、非同期送信用FIFOメモリ23の読み出し要求信号として、FIFOタイミングコントローラ28からAFRDB信号が非同期送信用FIFOメモリ23に入力され、非同期送信用FIFOメモリ23の書き込み要求信号として、FIFOタイミングコントローラ28からAFWRB信号が非同期送信用FIFOメモリ23に入力される。
【0042】
以上の実施形態においては、シングルポートメモリ27と各DMAコントローラ2,3,4との間の記憶装置として、FIFOメモリ21,22,23が用いたが、本発明はこれに限らず、この記憶装置は非同期デュアルポートメモリ等のメモリであってもよい。
【0043】
次いで、図3乃至図7を参照して、図1及び図2のIEEE1394インターフェース装置10の記憶方法について説明する。
【0044】
本実施形態においては、図3に示すように、3ポートFIFO記憶装置5内のシングルポートメモリ27のデータ記憶領域を所定の小さなブロックに分割し、その各ブロックは受信用、同期送信用及び非同期送信用のいずれにも使用できるようにすることを特徴としている。図3に示されたシングルポートメモリ27は、33ビット幅×2048ワードのメモリ容量を有し、メモリ領域を64ワード毎に、32個のブロックB00乃至B31に分割して使用する。また、図3に示すように、各ブロックB00乃至B31に対して、以下のレジスタが設けられる。
(a)各ブロック内のデータが次にどのブロックに続くかを示すためのアドレスポインタ又はブロックポインタの5ビットデータを格納するレジスタB00NXPT[4:0]乃至B31NXPT[4:0]。
(b)各ブロックが、受信用、同期送信用又は非同期送信用のいずれかのFIFO記憶装置のメモリとして割り当てられて使用しているか否かを示す1ビットデータを記憶するレジスタB00USE乃至B31USE。
(c)各ブロックの次のブロックが割り当てられているか否かを示す1ビットデータを記憶するレジスタB00NOK乃至B31NOK。
これらのレジスタの詳細構成については後述される。
【0045】
図4乃至図7に、図3のシングルポートメモリ27の動作に係る概略説明図を示す。図4乃至図7に示すように、受信FIFOデータ、同期送信FIFOデータ及び非同期送信FIFOデータに対応してそれぞれ、シングルポートメモリ27内のどのブロックに対してデータを書き込み、もしくはデータを読み出ししているかを示すブロックポインタが設けられる。また、本実施形態の基本的な条件として、シングルポートメモリ27内のすべてのブロックは、現在データを書き込んでいるブロックに対してその次に書き込みできるブロックを1つ割り当てる。次いで、図4乃至図7を用いてその動作例について以下に説明する。
【0046】
図4の初期状態では、受信FIFOデータ読み出し用ブロックポインタ“RRDBPTR”及び書き込み用ブロックポインタ“RWRBPTR”はともに“00h”(「h」は16進数であることを示す。)となり、ブロックB00を指す。また、同期送信用FIFOデータ読み出し用ブロックポインタ“IRDBTPR”及び書き込み用ブロックポインタ“IWRBTPR”はともに“01h”となりブロックB01を指す。また、非同期送信用FIFOデータ読み出し用ブロックポインタ“ARDBPTR”及び書き込み用ブロックポインタ“AWRBPTR”はともに“02h”となりブロックB02を指す。上述の各ブロックポインタの詳細構成は後述される。また、ブロックB00に続くブロックを示すアドレスポインタのレジスタB00NXPTは“03h”となりブロックB03を指す。また、レジスタB01NXPTは“04h”となりブロックB04を指す。また、レジスタB02NXPTは“05h”となりブロックB05を指す。また、ブロックB00〜B02に次のブロックが割り当てられていることから、レジスタB00NOK、B01NOK及びB02NOKはハイレベルとなる。またブロックB00〜B05は、受信と同期送信と非同期送信の各FIFOデータに割り当てられているので、レジスタB00USE、B01USE、B02USE、B03USE、B04USE及びB05USEはハイレベルとなる。
【0047】
図5のパケット受信では、図4の初期状態から、受信パケットがLINK回路6からデータ転送されてシングルポートメモリ27内に書き込まれた後の状態を示す。LINK回路6から送られた受信データがブロックB00のすべてに書き込まれてしまうと、次に、レジスタB00NXPTのデータ値は“03h”であるので、ブロックB03に受信データの続きを書き込みを開始する。また、同時にブロックB03の次のブロックが割り当てられていないので、未使用ブロックであるブロックB06が受信FIFOデータのために割り当てられる。そのため、レジスタB03NXPTは“06h”(すなわち、ブロックB06のアドレスを示す。)となり、レジスタB03NOKはハイレベルになり、レジスタB06USEはハイレベルになる。また、受信データがブロックB03のすべてに書き込まれてしまうと、次に、レジスタB03NXPTのデータ値は“06h”であるので、受信データの続きをブロックB06に書き込みを開始する。また、同時にブロックB06の次のブロックが割り当てられていないので、未使用ブロックであるブロックB07が受信FIFOデータのために割り当てられる。そのため、レジスタB06NXPTは“07h”(すなわち、ブロックB07のアドレスを示す。)となり、レジスタB06NOKはハイレベルになり、レジスタB07USEはハイレベルになる。
【0048】
図6の受信パケット処理では、図5のパケット受信状態から、シングルポートメモリ27に蓄えられた受信パケットを受信用DMAコントローラ2が読み出してPCIRAM11上への書き込みが終了した状態を示す。受信用DMAコントローラ2がブロックB00のデータをすべて読み出して、その読み出しを終了する、レジスタB00NXPTのデータ値“03h”が指示しているブロックB03内のデータを読み出しを開始する。また、同時にブロックB00のデータはすべて読み出しを終えてデータが必要でなくなったため、レジスタB00NOK及びB00USEをローレベルにする。このことによって、必然的に、レジスタB00NXPTのデータは意味のないデータになる。また、ブロックB03のデータをすべて読み出しを終了すると、レジスタB03NXPTのデータ値“06h”が指示しているブロックB06のデータを読み出しを開始する。また、同時にブロックB03のデータはすべて読み出しを終了してデータが必要でなくなったため、レジスタB03NOK及びB03USEをローレベルにする。このことによって、必然的に、レジスタB03NXPTのデータは意味のないデータとなる。
【0049】
図7の同期送信パケット準備では、図6の受信パケット処理状態の後で同期送信用DMAコントローラが同期送信用FIFOメモリ22に同期送信データを準備した後の状態を示す。同期送信用DMAコントローラから送られた同期送信データがブロックB01のすべてに書き込まれてしまうと、次に、レジスタB01NXPTのデータ値は“04h”であるので、ブロックB04に同期送信データの続きを書き込みを開始する。また、同時にブロックB04の次のブロックが割り当てられていないので、未使用ブロックであるブロックB08が同期送信データのために割り当てられる。そのため、レジスタB04NXPTは“08h”となり、レジスタB04NOKはハイレベルになり、レジスタB08USEはハイレベルになる。また、同期送信データがブロックB04のすべてに書き込まれてしまうと、次に、レジスタB04NXPTのデータ値は“08h”であるので、ブロックB08に書き込みを開始する。また、同時にブロックB08の次のブロックが割り当てられていないので、未使用ブロックであるブロックB09が同期送信データのために割り当てられる。そのため、レジスタB08NXPTは“09h”となり、レジスタB08NOKはハイレベルになり、レジスタB09USEはハイレベルになる。
【0050】
以上のように1つのFIFOデータに対して常に2つ以上のブロックが割り当てられていて、使用し終わったブロックは割り当てを開放するため、状況に応じて有効的でかつ効率的なFIFO記憶装置の使用方法を実行できる。上述しなかったが、シングルポートメモリ27に非同期送信データを書き込み及び/又は読み出しするときも、同様に処理することができる。また、図4乃至図7の例は常に先の空きブロックを割り当て、ブロックB31まで割り当ててしまった場合はブロックB00から割り当てる方法の例である。しかし、常にブロックB00からもっとも近い空きブロックを割り当てる方法でもよく、図8乃至図12の詳細構成の説明ではこの方法を用いている。
【0051】
以下に、図1及び図2で説明されたIEEE1394インターフェース装置10のさらに詳細な構成を説明する。
【0052】
図8は、図2のFIFOタイミングコントローラ28の構成例を示す。図8の受信用タイミングコントローラ31、同期送信用タイミングコントローラ32及び非同期送信用タイミングコントローラ33は基本的にはそれぞれ、図26の受信用FIFO記憶装置105のタイミングコントローラ124、同期送信用FIFO記憶装置106のタイミングコントローラ133及び非同期送信用FIFO記憶装置107のタイミングコントローラ143と同様であり、受信用FIFOメモリ21、同期送信用FIFOメモリ22及び非同期送信用FIFOメモリ23のタイミング制御を実行する。また、図8には本実施形態のシングルポートメモリ27をある一定サイズでブロック化した各ブロックを制御するためのコントローラとしてブロックコントローラ35が設けられる。このブロックコントローラ35は、図3で説明したレジスタB00NXPT乃至B31NXPT[4:0]、レジスタB00NOK乃至B31NOK、及びレジスタB00USE乃至B31USEを備える。
【0053】
ブロックコントローラ35には、受信用タイミングコントローラ31から、現在の書き込みブロックの値を示すRWB[4:0]信号と、現在書き込んでいるブロックの次に使用できるブロックが割り当てられていないときにブロックの割り当て要求をするRBALREQB信号と、現在読み出しているブロックの値を示すRRB[4:0]信号と、現在読み出していたブロックのすべてのデータを読み出したためそのブロックの割り当てを解除できることを示すRRBFREE信号が受信用の信号として入力される。また、ブロックコントローラ35は、受信用タイミングコントローラ31に、現在選択されている空きブロック値を示すBEMP[4:0]信号と、新しいブロックの割り当て要求に対してブロックの割り当てを許可するRBALACKB信号と、現在読み出しているブロックの次に読み出すブロックを示すRNRB[4:0]信号と、前述の次に読み出すブロックが既に割り当てられていることを示すRNRBOK信号とを受信用の信号として出力する。
【0054】
また、ブロックコントローラ35には、同期送信用タイミングコントローラ32から、現在の書き込みブロックの値を示すIWB[4:0]信号と、現在書き込んでいるブロックの次に使用できるブロックが割り当てられていないときにブロックの割り当て要求をするIBALREQB信号と、現在読み出しているブロックの値を示すIRB[4:0]信号と、現在読み出していたブロックのすべてのデータを読み出したためそのブロックの割り当てを解除できることを示すIRBFREE信号が同期送信用の信号として入力される。また、ブロックコントローラ35は、同期送信用タイミングコントローラ32に、現在選択されている空きブロック値を示すBEMP[4:0]信号と、新しいブロックの割り当て要求に対してブロックの割り当てを許可するIBALACKB信号と、現在読み出しているブロックの次に読み出すブロックを示すINRB[4:0]信号とを同期送信用の信号として出力する。
【0055】
また、ブロックコントローラ35には、非同期送信用タイミングコントローラ33から、現在の書き込みブロックの値を示すAWB[4:0]信号と、現在書き込んでいるブロックの次に使用できるブロックが割り当てられていないときにブロックの割り当て要求をするABALREQB信号と、現在読み出しているブロックの値を示すARB[4:0]信号と、現在読み出していたブロックのすべてのデータを読み出したためそのブロックの割り当てを解除できることを示すARBFREE信号が非同期送信用の信号として入力される。また、ブロックコントローラ35は、非同期送信用タイミングコントローラ33に、現在選択されている空きブロック値を示すBEMP[4:0]信号と、新しいブロックの割り当て要求に対してブロックの割り当てを許可するABALACKB信号と、現在読み出しているブロックの次に読み出すブロックを示すANRB[4:0]信号とを非同期送信用の信号として出力する。
【0056】
また、受信用タイミングコントローラ31には、受信用DMAコントローラ2からRXFRREQB信号及びRXFRWAIT信号が入力され、受信用タイミングコントローラ31は受信用DMAコントローラ2にRXFRACKB信号を出力する。また、受信用タイミングコントローラ31には、LINK回路6からRXWRB信号が入力され、受信用タイミングコントローラ31はLINK回路6にRXFULL信号を出力する。また、受信用タイミングコントローラ31には、図2に示すアドレスバスRAD[10:0]が接続され、受信用タイミングコントローラ31はRFRDB信号及びRFWRB信号を出力する。また、同期送信用タイミングコントローラ32には、同期送信用DMAコントローラ3からITXFWREQB信号及びITXFWDTVL信号が入力され、同期送信用タイミングコントローラ32は同期送信用DMAコントローラ3にITXFWACKB信号を出力する。また、同期送信用タイミングコントローラ32には、LINK回路6からITXRDB信号が入力される。また、同期送信用タイミングコントローラ32には、図2に示すアドレスバスIAD[10:0]が接続され、同期送信用タイミングコントローラ32は、IFRDB信号及びIFWRB信号を出力する。また、非同期送信用タイミングコントローラ33には、非同期送信用DMAコントローラ4からATXFWREQB信号及びATXFWDTVL信号が入力され、非同期送信用タイミングコントローラ33は非同期送信用DMAコントローラ4にATXFWACKB信号を出力する。また、非同期送信用タイミングコントローラ33には、LINK回路6からATXRDB信号が入力される。また、非同期送信用タイミングコントローラ33には、図2に示すアドレスバスAAD[10:0]が接続され、非同期送信用タイミングコントローラ33は、AFRDB信号及びAFWRB信号を出力する。そして、データ選択コントローラ34には、RXWRB信号、ITXRDB信号、ATXRDB信号、RFWRB信号、IFRDB信号及びAFRDB信号が入力され、さらに、3ポートFIFO記憶装置5がフル状態でLINK回路6からの書き込みデータが最終のデータであるときにハイレベルになるRFT信号が入力され、また、データ選択コントローラ34からバスDISEL[1:0]を介してデータセレクト信号が出力される。このバスDISEL[1:0]を介して出力されるデータセレクト信号は、データの受信処理をする期間は“10b”となり、データの同期送信処理をする期間は“01b”となり、データの非同期送信処理をする期間は“00b”となり、並びに、データの受信処理を実行しているときにRFT信号がハイレベルである期間つまり3ポートFIFO記憶装置5がフル状態であってLINK回路6からの書き込みデータが最終のデータである期間は“11b”となる。また、LINK回路6の動作の条件として、RXWRB信号、ITXRDB信号及びATXRDB信号は同時にアクティブになることはなく、これらの信号のうちいずれをアクティブにするのかは、LINK回路6の動作において最優先に選択される。また、それらの信号がアクティブではないときでRFWRB信号、IFRDB信号及びAFRDB信号がアクティブになったときは、シングルポートメモリ27と、受信用FIFOメモリ21、同期送信用FIFOメモリ22又は非同期送信用FIFOメモリ23との間のパケットの読み出し/書き込みを、順番に優先順位を変えて選択する。
【0057】
図9は図8のブロックコントローラ35の実施例を示す。前述したように、図4乃至図7の概略説明図で使用したレジスタB00NXPT[4:0]乃至B31NXPT[4:0]、レジスタB00NOK乃至B31NOK、及びレジスタB00USE乃至B31USEがブロックコントローラ35に設けられる。以下の説明において、「##」は00乃至31を示す。
【0058】
ブロックコントローラ35のブロックアクセスコントローラ41は、これらのレジスタを制御して、シングルポートメモリ27のメモリ領域を分割することによって作られた各ブロックB00乃至B31に対するアクセスを制御するものである(図4乃至図7参照)。各レジスタB##NXPT[4:0]は同期データロードイネーブル(EB)付きの5ビットレジスタで、各レジスタB##NXPT[4:0]には、ブロックアクセスコントローラ41から出力されるB##NXB信号が入力される。そして、各レジスタB##NXPT[4:0]の入力端子には、32ビットプライオリティエンコーダ42から出力されるBEMP[4:0]信号が入力される。また、各レジスタB##NXPT[4:0]の出力端子は、3つの32対1の5ビットマルチプレクサ44,45,46の入力端子に接続される。そして、マルチプレクサ44のセレクト信号端子にはRRB[4:0]信号が入力され、そのマルチプレクサ44の出力端子からRNRB[4:0]信号が出力される。また、マルチプレクサ45のセレクト信号端子にはIRB[4:0]信号が入力され、マルチプレクサ45の出力端子からINRB[4:0]信号が出力される。さらに、マルチプレクサ46のセレクト信号端子にはARB[4:0]信号が入力され、そのマルチプレクサ46の出力端子からANRB[4:0]信号が出力される。
【0059】
また、Dタイプのフリップフロップである各レジスタB##NOKは、同期データロードイネーブル(EB)付きの1ビットレジスタで、各レジスタB##NOKには、ブロックアクセスコントローラ41から出力されるB##NXB信号が入力される。また、各レジスタB##NOKには同期リセット(RB)端子を有し、その端子にはブロックアクセスコントローラ41から出力されるB##FLB信号が入力される。各レジスタB##NOKのD入力端子はそれぞれハイレベルを示す電圧源Vccに接続されている。そして、各レジスタB##NOKからの出力信号は32対1の1ビットマルチプレクサ43の入力信号となり、そのマルチプレクサ43のセレクト信号端子にはRRB[4:0]信号が入力され、そのマルチプレクサ43の出力端子からRNRBOK信号が出力される。また、Dタイプのフリップフロップである各レジスタB##USEは、同期データロードイネーブル(EB)付きの1ビットレジスタで、各レジスタB##USEにはブロックアクセスコントローラ41から出力されるB##ALB信号が入力される。また、各レジスタB##USEは同期リセット(RB)端子を有し、各レジスタB##USEにはブロックアクセスコントローラ41から出力されるB##FLB信号が入力される。各レジスタB##USEのD入力端子はハイレベルを示す電圧源Vccに接続されている。そして、これら各レジスタB##USEからの出力信号は32ビットプライオリティエンコーダ42の入力信号となり、32ビットプライオリティエンコーダ42からの出力信号は、BEMP[4:0]信号としてブロックコントローラ35の外部に出力されかつブロックアクセスコントローラ41に入力される。
【0060】
また、各レジスタB##USEからの出力信号は、32個の入力端子を有するオアゲートAND1に入力され、そのオアゲートAND1からの出力信号は、BFULL信号としてブロックアクセスコントローラ41に入力される。また、ブロックアクセスコントローラ41には、RWB[4:0]信号、RBALREQB信号、RRBFREE信号、IWB[4:0]信号、IBALREQB信号、IRBFREE信号、AWB[4:0]信号、ABALREQB信号及びARBFREE信号が入力され、ブロックアクセスコントローラ41は、RBALACKB信号、IBALACKB信号及びABALACKB信号を出力する。ここで、ブロックアクセスコントローラ41は、入力されるRBALREQB信号、IBALREQB信号、ABALREQB信号及びBFULL信号に基づいて、受信、同期送信及び非同期送信の新規ブロック割り当て要求に対する許可信号であるRBALACKB信号、IBALACKB信号及びABALACKB信号を生成して出力する。その信号生成方法は、RBALREQB信号、IBALREQB信号及びABALREQB信号からなる3種類の要求信号に対して、均等にプライオリティを割り当てたり、例えば受信>同期送信>非同期送信というようなプライオリティを与えてもよい。また、B##ALB信号、B##FRB信号及びB##NXB信号は次式で生成される。
【0061】
【数1】

Figure 2004070656
【0062】
【数2】
Figure 2004070656
【0063】
【数3】
Figure 2004070656
【0064】
ここで、“INV”は否定演算又は反転演算を意味し、“OR”は論理和演算を意味し、“AND”は論理積演算を意味する。
【0065】
図10は、図8の受信用タイミングコントローラ31に内蔵される回路の一部であるカウンターの構成例を示すブロック図である。図10のレジスタRWRNBPTRは5ビットのレジスタであって、現在書き込んでいるブロックの次に書き込みできるブロックを示す値が格納される。そして、そのレジスタRWRNBPTRの入力端子にはBEMP[4:0]信号が入力される。また、レジスタRWRBPTRは5ビットのレジスタであって、現在書き込んでいるブロックを示す値が格納され、その出力信号はRWB[4:0]信号として出力される。そして、レジスタRWRBPTRの入力端子には、レジスタRWRNBPTRからの出力信号が入力される。また、6ビットアップカウンタ51には、現在書き込んでいるブロックのどのアドレスを書き込むかを示す値が格納される。そして、現在の外部のシングルポートメモリ27の書き込んでいるアドレスを示すRWRCNT[10:0]信号のうちの上位5ビットの信号は、レジスタRWRBPTRからのRWRCNT[10:6]信号であり、その下位6ビットの信号は6ビットアップカウンタ51のDO[5:0]端子からのRWRCNT[5:0]信号である。
【0066】
また、RBALACKB信号は、オアゲートOR1の第1の入力端子に入力され、オアゲートOR1からの出力信号はナンドゲートNAND2の第1の入力端子に入力され、オアゲートOR1からの出力信号はレジスタRWRNBPTRのLB入力端子に同期ロードイネーブル信号として入力されるとともに、2ビット同期アップダウンカウンタ52のDB入力端子及びナンドゲートNAND2の第1の入力端子に入力される。ナンドゲートNAND2からの出力信号はDタイプのフリップフロップF1のD入力端子に出力され、フリップフロップF1からのQ出力信号は、RBALREQB信号としてブロックコントローラ35に出力されるとともに、オアゲートOR1の第2の入力端子及びナンドゲートNAND1の第2の入力端子とに入力され、ナンドゲートNAND1からの出力信号はレジスタRWRBPTRのLB入力端子に同期ロードイネーブル信号として入力される。フリップフロップF1からの反転QB出力信号はオアゲートOR2の第2の入力端子に入力され、オアゲートOR2からの出力信号はナンドゲートNAND2の第2の入力端子に出力される。6ビットアップカウンタ51からのキャリーアウト信号(CO)はナンドゲートNAND3の第1の入力端子に入力され、ナンドゲートNAND3の第2の入力端子にはRXWRB信号がインバータN1を介して入力される。ナンドゲートNAND3からの出力信号は2ビット同期アップダウンカウンタ52のUB入力端子に出力されるとともに、インバータN2を介してアンドゲートAND2の第1の入力端子に入力され、アンドゲートAND2からの出力信号はRFT信号としてデータ選択コントローラ34に出力される。2ビット同期アップダウンカウンタ52からD0出力信号はアンドゲートAND2の第2の入力端子とオアゲートOR3の第1の入力端子とに入力され、2ビット同期アップダウンカウンタ52のD1出力信号はオアゲートOR3の第2の入力端子に入力されるとともに、RXFULL信号としてLINK回路6に出力される。オアゲートOR3からの出力信号はナンドゲートNAND1の第1の入力端子とオアゲートOR2の第1の入力端子とに入力される。
【0067】
また、レジスタRRDBPTRは5ビットのレジスタであって、現在読み出しているブロックを示すRNRB[4:0]信号の値が格納され、その出力信号はRRB[4:0]信号として出力される。また、6ビットアップカウンタ53は、現在読み出しているブロックのどのアドレスを読み出すかを示す値が格納される。そして、現在の外部のシングルポートメモリ27の読み出しているアドレスを示すRRDCNT[10:0]信号は、その上位5ビットの信号がレジスタRRDBPTRからのRRDCNT[10:6]信号となり、その下位6ビットの信号が6ビットアップカウンタ53から出力DO[5:0]信号であるRRDCNT[5:0]信号となる。また、RNRBOK信号はナンドゲートNAND4の第1の入力端子に入力され、ナンドゲートNAND4の出力信号は、レジスタRRDBPTRのLB入力端子に同期ロードイネーブル信号として入力されるとともに、DタイプのフリップフロップF2のD入力端子に入力される。フリップフロップF2のQ出力信号はDタイプのフリップフロップF3のRB入力端子に出力される。6ビットアップカウンタ53のキャリーアウト信号(CO)はナンドゲートNAND4の第1の入力端子に入力され、ナンドゲートNAND4の第2の入力端子にはRFWRB信号がインバータN3を介して入力される。ナンドゲートNAND4からの出力信号はRRBFREE信号としてブロックコントローラ35に入力されるとともに、クロック信号としてフリップフロップF3に入力される。フリップフロップF3のD入力端子はハイレベルを示す電圧源Vccに接続され、フリップフロップF3からのQ出力信号はナンドゲートNAND4の第2の入力端子に入力される。
【0068】
図11は、図8の同期送信用タイミングコントローラ32に内蔵される回路の一部であるカウンターの構成例を示すブロック図である。図11のレジスタIWRNBPTRは5ビットのレジスタであって、現在書き込んでいるブロックの次に書き込みできるブロックを示す値が格納される。そして、そのレジスタIWRNBPTRの入力端子にはBEMP[4:0]信号が入力される。また、レジスタIWRBPTRは5ビットのレジスタであって、現在書き込んでいるブロックを示す値が格納され、その出力信号はIWB[4:0]信号として出力される。そして、レジスタIWRBPTRの入力端子にはレジスタIWRNBPTRからの出力信号が入力される。また、6ビットアップカウンタ54は現在書き込んでいるブロックのどのアドレスを書き込むかを示す値が格納される。そして、現在の外部のシングルポートメモリ27の書き込んでいるアドレスを示すIIWRCNT[10:0]信号は、その上位5ビットがレジスタIWRBPTRからの出力信号であるIWRCNT[10:6]信号となり、その下位6ビットが6ビットアップカウンタ54からの出力DO[5:0]信号であるIWRCNT[5:0]信号となる。
【0069】
また、IBALACKB信号はオアゲートOR4の第1の入力端子に入力され、オアゲートOR4からの出力信号は、ナンドゲートNAND6の第1の入力端子に入力されるとともに、レジスタIWRNBPTRのLB入力端子に同期ロードイネーブル信号として入力される。ナンドゲートNAND6からの出力信号はDタイプのフリップフロップF4のD入力端子に入力され、フリップフロップF4からのQ出力信号は、IBALREQB信号としてブロックコントローラ35に出力されるとともに、オアゲートOR4の第2の入力端子とナンドゲートNAND5の第2の入力端子とに入力される。ナンドゲートNAND5からの出力信号はレジスタIWRBPTRのLB入力端子に同期ロードイネーブル信号として入力される。6ビットアップカウンタ54のキャリーアウト信号(CO)はアンドゲートAND4の第1の入力端子に入力され、アンドゲートAND4の第2の入力端子にはIFRDB信号がインバータN4を介して入力される。アンドゲートAND4からの出力信号は、ナンドゲートNAND5の第1の入力端子とオアゲートOR5の第1の入力端子とに入力され、フリップフロップF4からの反転QB出力信号はオアゲートOR5の第2の入力端子に入力される。オアゲートOR5からの出力信号はナンドゲートNAND6の第2の入力端子に入力される。
【0070】
また、レジスタIRDBPTRは5ビットのレジスタであって、現在読み出しているブロックを示すINRB[4:0]信号の値が格納され、その出力信号はIRB[4:0]信号として出力される。また、6ビットアップカウンタ55は現在読み出しているブロックのどのアドレスを読み出すかを示す値が格納される。そして、現在の外部のシングルポートメモリ27の読み出しているアドレスを示すIRDCNT[10:0]信号は、その上位5ビットがレジスタIRDBPTRからの出力信号であるIRDCNT[10:6]信号となり、その下位6ビットが6ビットアップカウンタ55からの出力DO[5:0]信号であるIRDCNT[5:0]信号となる。また、6ビットアップカウンタ55からのキャリーアウト信号(CO)はナンドゲートNAND7の第1の入力端子に入力され、ナンドゲートNAND7の第2の入力端子にはITXRDB信号がインバータN5を介して入力される。ナンドゲートNAND7からの出力信号は、IRBFREE信号としてブロックコントローラ35に出力されるとともに、レジスタIRDBPTRのLB入力端子に同期ロードイネーブル信号として入力される。
【0071】
図12は、図8の非同期送信用タイミングコントローラ33に内蔵される回路の一部であるカウンターの構成例を示すブロック図である。図12のレジスタAWRNBPTRは5ビットのレジスタであって、現在書き込んでいるブロックの次に書き込みできるブロックを示す値が格納される。そして、そのレジスタAWRNBPTRの入力端子にはBEMP[4:0]信号が入力される。また、レジスタAWRBPTRは5ビットのレジスタであって、現在書き込んでいるブロックを示す値が格納され、その出力信号はAWB[4:0]信号として出力される。そして、レジスタAWRBPTRの入力端子にはレジスタAWRNBPTRからの出力信号が入力される。また、6ビットアップカウンタ56は現在書き込んでいるブロックのどのアドレスを書き込むかを示す値が格納される。そして、現在の外部のシングルポートメモリ27の書き込んでいるアドレスを示すAWRCNT[10:0]信号は、その上位5ビット信号がレジスタAWRBPTRからの出力信号であるAWRCNT[10:6]となり、その下位6ビット信号が6ビットアップカウンタ56からの出力DO[5:0]信号であるAWRCNT[5:0]信号となる。
【0072】
また、ABALACKB信号はオアゲートOR6の第1の入力端子に入力され、オアゲートOR6からの出力信号は、ナンドゲートNAND9の第1の入力端子に入力され、レジスタAWRNBPTRのLB入力端子に同期ロードイネーブル信号として入力される。ナンドゲートNAND9からの出力信号はDタイプのフリップフロップF5のD入力端子に入力され、フリップフロップF5からのQ出力信号は、ABALREQB信号としてブロックコントローラ35に出力されるとともに、オアゲートOR6の第2の入力端子とナンドゲートNAND8の第1の入力端子とに入力される。ナンドゲートNAND8からの出力信号はレジスタAWRBPTRのLB入力端子に同期ロードイネーブル信号として入力される。6ビットアップカウンタ56のキャリーアウト信号(CO)はアンドゲートAND5の第1の入力端子に入力され、アンドゲートAND5の第2の入力端子にはAFRDB信号がインバータN6を介して入力される。アンドゲートAND5からの出力信号は、ナンドゲートNAND8の第1の入力端子とオアゲートOR7の第1の入力端子とに入力され、フリップフロップF5からの反転QB出力信号はオアゲートOR7の第2の入力端子に入力される。オアゲートOR7からの出力信号はナンドゲートNAND9の第2の入力端子に入力される。
【0073】
また、レジスタARDBPTRは5ビットのレジスタであって、現在読み出しているブロックを示すANRB[4:0]信号の値が格納され、その出力信号はARB[4:0]信号として出力される。また、6ビットアップカウンタ57は現在読み出しているブロックのどのアドレスを読み出すかを示す値が格納される。そして、現在の外部のシングルポートメモリ27の読み出しているアドレスを示すARDCNT[10:0]信号は、その上位5ビットがレジスタARDBPTRからの出力信号であるARDCNT[10:6]信号となり、その下位6ビットが6ビットアップカウンタ57からの出力DO[5:0]信号であるARDCNT[5:0]信号となる。また、6ビットアップカウンタ57のキャリーアウト信号(CO)はナンドゲートNAND10の第1の入力端子に入力され、ナンドゲートNAND10の第2の入力端子にはATXRDB信号がインバータN7を介して入力される。ナンドゲートNAND10からの出力信号は、ARBFREE信号としてブロックコントローラ35に出力されるとともに、レジスタARDBPTRのLB入力端子に同期ロードイネーブル信号として入力される。
【0074】
次に、上述されたIEEE1394インターフェース装置10の動作について図13乃至図24を参照して、各信号のタイミングチャートを参照して説明をする。
【0075】
図13は本実施形態のブロックコントローラ35における各信号の初期タイミングチャートを示す。「LCLK」は、IEEE194バスB1側のクロック信号を示す。図13に示すように受信用、同期送信用及び非同期送信用としてそれぞれブロックB00、B01及びB02が割り当てられている。また、上記のブロックはいずれも、次の書き込みブロックを割り当てられていないため、ブロックB00、B01及びB02の次のブロックとしてそれぞれタイミングt4、タイミングt6及びタイミングt8でそれぞれブロックB03、B04及びB05が割り当てられ、各レジスタB00NXPT、B01NXPT及びB02NXPTにそれぞれの値が設定される。
【0076】
図14は、書き込みブロックの切替えがない場合の、本実施形態の3ポートFIFO記憶装置5における受信時の各信号のタイミングチャートを示す。「DCLK」は、PCIバスB2側のクロック信号を示す。このタイミングチャートは、受信用の読み出し/書き込みブロックがブロックB00のアドレス“00h”から指定されて動作が開始された場合の実施例である。そして、タイミングT2、T4、T6、T8及びT10においてそれぞれ、LINK回路6から3ポートFIFO記憶装置5にそれぞれデータD0、D1、D2、D3及びD4が書き込まれ、そのため各タイミングでRWRCNT信号がインクリメントされ、順次にデータはシングルポートメモリ27に蓄えられる。また、それらのデータは、タイミングT3、T5、T7、T9及びT11において、RRDCNT信号をインクリメントしてシングルポートメモリ27から順次読み出され、受信用FIFOメモリ21に書き込まれる。そして、タイミングt13、t16、t21、t22及びt23で、順次、3ポートFIFO記憶装置5から読み出されたデータは、受信用DMAコントローラ2に出力される。
【0077】
図15は、書き込みブロックの切替えがない場合の、本実施形態の3ポートFIFO記憶装置5における同期送信時の各信号のタイミングチャートを示す。このタイミングチャートは、同期送信用の読み出し/書き込みブロックがブロックB01のアドレス“00h”から指定された動作が開始された場合の実施例である。同期送信用DMAコントローラ3から同期送信用FIFOメモリ22にタイミングt2、t3、t4、t6及びt7でそれぞれデータD0、D1、D2、D3及びD4が書き込まれ、タイミングT3、T4、T5、T6及びT7で同期送信用FIFOメモリ22から読み出され、各タイミングでIWRCNT信号がインクリメントされ、順次にデータはシングルポートメモリ27に蓄えられる。そして、タイミングT11、T12、T13、T14及びT15で、LINK回路6は、IRDCNT信号をインクリメントしながら、シングルポートメモリ27からデータを順次読み出す。
【0078】
図16は、書き込みブロックの切替えがない場合の、本実施形態の3ポートFIFO記憶装置5における非同期送信時の各信号タイミングチャートを示す。このタイミングチャートは、非同期送信用の読み出し/書き込みブロックがブロックB02のアドレス“00h”から指定されて動作が開始された場合の実施例である。非同期送信用DMAコントローラ4から非同期送信用FIFOメモリ23にタイミングt2、t3、t4、t6及びt7でそれぞれデータD0、D1、D2、D3及びD4が書き込まれ、タイミングT3、T4、T5、T6及びT7で非同期送信用FIFOメモリ23から読み出され、各タイミングでAWRCNT信号がインクリメントされ、順次にデータはシングルポートメモリ27に蓄えられる。そして、タイミングT11、T12、T13、T14及びT15で、LINK回路6は、ARDCNT信号をインクリメントしながらシングルポートメモリ27からデータを順次読み出す。
【0079】
図17は、書き込みブロックの切替えがある場合の、本実施形態の3ポートFIFO記憶装置5における受信時の各信号のタイミングチャートを示す。このタイミングチャートは、受信用の読み出し/書き込みブロックがブロックB00のアドレス“3Eh”から指定されて動作が開始された場合の実施例である。そして、タイミングT2、T4、T6、T8及びT10においてLINK回路6から3ポートFIFO記憶装置5にそれぞれデータD0、D1、D2、D3及びD4が書き込まれ、そのため各タイミングでRWRCNT信号がインクリメントされ、順次にデータはシングルポートメモリ27に蓄えられる。また、タイミングT3、T5、T7、T9及びT11において、それらのデータは、RRDCNT信号をインクリメントしながら、シングルポートメモリ27から順次読み出され、受信用FIFOメモリ21に書き込まれる。そして、タイミングt13、t16、t21、t22及びt23で順次3ポートFIFO記憶装置5から読み出されたデータは受信用DMAコントローラ2に出力される。そして、タイミングT4の書き込み時、ブロックB00の最終データであるため次のタイミングT6でRBALREQB信号がローレベルとなり次の書き込みブロックの割り当て処理が実行され、タイミングT8でブロックB06が次の書き込みブロックであるブロックB03の次のブロックとして割り当てられる。また、タイミングT5ではブロックB00の最終データを読み出したため、タイミングT6でブロックB00の割り当てが開放され、レジスタB00USEがローレベルにされる。
【0080】
図18は、書き込みブロックの切替えがある場合の、本実施形態の3ポートFIFO記憶装置5における同期送信時の各信号のタイミングチャートを示す。このタイミングチャートは、同期送信用の読み出し/書き込みブロックがブロックB01のアドレス“3Eh”から指定されて動作が開始された場合の実施例である。同期送信用DMAコントローラ3から同期送信用FIFOメモリ22にタイミングt2、t3、t4、t6及びt7でそれぞれデータD0、D1、D2、D3及びD4が書き込まれ、上記データはタイミングT3、T4、T7、T8及びT9で同期送信用FIFOメモリ22から読み出され、各タイミングでIWRCNT信号がインクリメントされ、順次にデータはシングルポートメモリ27に蓄えられる。そして、タイミングT11、T12、T13、T14及びT15において、LINK回路6は、IRDCNT信号をインクリメントしながらシングルポートメモリ27からデータを順次読み出す。そして、タイミングT4の書き込み時、ブロックB01の最終データであるため、次のタイミングT5でIBALREQB信号がローレベルとなり、次の書き込みブロックの割り当て処理が実行される。また、タイミングT5、T6の間は次の書き込みブロックの割り当てが完了していないため、同期送信用FIFOメモリ22への書き込みもストップされている。そして、タイミングT7において、ブロックB06が、次の書き込みブロックであるブロックB04の次のブロックとして割り当てられる。また、タイミングT12ではブロックB01の最終データを読み出したため、タイミングT13でブロックB01の割り当てが開放され、レジスタB01USEがローレベルにされる。
【0081】
図19は、書き込みブロックの切替えがある場合の、本実施形態の3ポートFIFO記憶装置5における非同期送信時の各信号のタイミングチャートを示す。このタイミングチャートは、非同期送信用の読み出し/書き込みブロックがブロックB02のアドレス“3Eh”から指定されて動作が開始された場合の実施例である。非同期送信用DMAコントローラ4から非同期送信用FIFOメモリ23にタイミングt2、t3、t4、t6及びt7でそれぞれデータD0、D1、D2、D3及びD4が書き込まれ、上記データはタイミングT3、T4、T7、T8及びT9で非同期送信用FIFOメモリ23から読み出され、各タイミングでAWRCNT信号がインクリメントされ、順次にデータはシングルポートメモリ27に蓄えられる。そして、タイミングT11、T12、T13、T14及びT15で、LINK回路6は、ARDCNT信号をインクリメントしながら、シングルポートメモリ27からデータを順次読み出す。そして、タイミングT4の書き込み時、ブロックB02の最終データであるため次のタイミングT5でABALREQB信号がローレベルとなり、次の書き込みブロックの割り当て処理が実行される。また、タイミングT5、T6の間は次の書き込みブロックの割り当てが完了していないため、非同期送信用FIFOメモリ23への書き込みもストップされている。そして、タイミングT7でブロックB06が次の書き込みブロックであるブロックB05の次のブロックとして割り当てられる。また、タイミングT12ではブロックB02の最終データを読み出したため、タイミングT13でブロックB02の割り当てが開放され、レジスタB02USEがローレベルにされる。
【0082】
図20は、書き込みブロックの切替えがある場合でかつ空きブロックが存在せずにFIFO記憶装置がフル状態になってしまう場合の、本実施形態の3ポートFIFO記憶装置5における受信時の各信号のタイミングチャートを示す。このタイミングチャートは、受信用の読み出し/書き込みブロックにおいて、ブロックB00が使用されていて何らかの理由で受信用FIFOメモリ21の読み出しがストップしてしまい、そのため読み出しアドレスであるRRDCNT信号が“010h”でストップしているときの実施例である。タイミングT0、T2及びT4においてLINK回路6からデータがシングルポートメモリ27に書き込まれるがタイミングT2でブロックB00の最終データが書き込まれるため、タイミングT4でRBALREQB信号がローレベルになる。しかしながら、空きブロックが存在しない(BFULL信号がハイレベル)ので、RBALACKB信号はローレベルにならない。そして、更にLINK回路6からのデータ書き込みが順次なされ、タイミングT8においてブロックB03も最終データの書き込みを実行してしまう。そのためタイミングT8ではDISEL[1:0]信号が“3”となりシングルポートメモリ27がフル状態になって、強制的にそれを示すデータである「33’h100000014」がシングルポートメモリ27に書き込まれる。そして、タイミングT9からRXFULL信号がハイレベルとなり、LINK回路6に3ポートFIFO記憶装置5への書き込みをストップするように要求する。そして、しばらくして受信用DMAコントローラ2が受信用FIFOメモリ21からデータの読み出しを開始し、データは順次タイミングT10、T11、T12及びT13で読み出されていく。そして、タイミングT10においてブロックB00の最終データを読み出したため、タイミングT11でブロックB00の割り当てが開放されレジスタB00USEがローレベルになる。しかし、タイミングT11で空きブロックとなったブロックB00が現在の書き込みブロックであるブロックB03の次の書き込みブロックとして割り当てられるため、タイミングT12でレジスタB00USEはハイレベルとなる。また、ブロックB03に次の書き込みブロックが割り当てられたためRXFULL信号はタイミングT12でローレベルになり、それによってLINK回路6からの次の受信パケットの書き込みが許可される。しかし、ブロックB00の次の書き込みブロックが割り当てられていないことから、RBALREQB信号はタイミングT13で再びローレベルになる。そして、順次受信用DMAコントローラ2は受信用FIFOメモリ21からデータを読み出し、タイミングT14でブロックB03の最終データを読み出したことから、タイミングT15でブロックB03が開放され、レジスタB03USEがローレベルとなる。しかし、ブロックB00の次の書き込みブロックが割り当てられていないことから、タイミングT15から空きブロックとなったブロックB03を、タイミングT16でブロックB00の次の書き込みブロックとして割り当てる。そのためタイミングT16でレジスタB03USEはハイレベルとなる。
【0083】
図21は、本実施形態の3ポートFIFO記憶装置5における、受信及び同期送信混在時のタイミングチャートを示す。このタイミングチャートは、受信用の読み出し/書き込みブロックがブロックB00のアドレス“00h”から指定されて動作が開始され、同期送信用の読み出し/書き込みブロックがブロックB01のアドレス“00h”から指定されて動作が開始された場合の実施例である。タイミングT2、T4、T6及びT8において、データR0、R1、R2及びR3が、LINK回路6からシングルポートメモリ27に順次書き込まれる。また、タイミングt2、t3、t4及びt6において、データI0、I1、I2及びI3が、同期送信用DMAコントローラ3から同期送信用FIFOメモリ22に順次書き込まれる。そして、タイミングT5、T9、T11及びT13において、データR0、R1、R2及びR3が、シングルポートメモリ27から受信用FIFOメモリ21に順次書き込まれる。また、タイミングT3、T7、T10及びT12において、データI0、I1、I2及びI3が、同期送信用FIFOメモリ22からシングルポートメモリ27に順次書き込まれる。そして、タイミングt20、t23、t24及びt26において、データR0、R1、R2及びR3が、受信用FIFOメモリ21から受信用DMAコントローラ2に順次読み出される。そして、タイミングT14、T15、T16及びT17において、LINK回路6はシングルポートメモリ27からデータI0、I1、I2及びI3を順次読み出す。
【0084】
図22は、本実施形態の3ポートFIFO記憶装置5における、受信及び非同期送信混在時のタイミングチャートを示す。このタイミングチャートは、受信用の読み出し/書き込みブロックがブロックB00のアドレス“00h”から指定されて動作が開始され、非同期送信用の読み出し/書き込みブロックがブロックB02のアドレス“00h”から指定されて動作が開始される場合の実施例である。タイミングT2、T4、T6及びT8において、データR0、R1、R2及びR3が、LINK回路6からシングルポートメモリ27に順次書き込まれる。また、タイミングt2、t3、t4及びt6において、データA0、A1、A2及びA3が、非同期送信用DMAコントローラ4から非同期送信用FIFOメモリ23に順次書き込まれる。そして、タイミングT5、T9、T11及びT13において、データR0、R1、R2及びR3が、シングルポートメモリ27から受信用FIFOメモリ21に順次書き込まれる。また、タイミングT3、T7、T10及びT12において、データA0、A1、A2及びA3が、非同期送信用FIFOメモリ23からシングルポートメモリ27に順次書き込まれる。そして、タイミングt20、t23、t24及びt26において、データR0、R1、R2及びR3が、受信用FIFOメモリ21から受信用DMAコントローラ2に順次読み出される。そして、タイミングT14、T15、T16及びT17において、LINK回路6はシングルポートメモリ27からデータA0、A1、A2及びA3を順次読み出す。
【0085】
図23は、本実施形態の3ポートFIFO記憶装置5における、同期送信及び非同期送信混在時のタイミングチャートを示す。このタイミングチャートは、非同期送信用の読み出し/書き込みブロックがブロックB01のアドレス“00h”から指定されて動作が開始され、非同期送信用の読み出し/書き込みブロックがブロックB02のアドレス“00h”から指定されて動作が開始された場合の実施例である。タイミングt2、t3及びt5において、データI0、I1及びI2が、同期送信用DMAコントローラ3から同期送信用FIFOメモリ22に順次書き込まれる。また、タイミングt4、t5、t6及びt8において、データA0、A1、A2及びA3が、非同期送信用DMAコントローラ4から非同期送信用FIFOメモリ23に順次書き込まれる。また、タイミングT3、T5及びT7において、データI0、I1及びI2が、同期送信用FIFOメモリ22からシングルポートメモリ27に順次書き込まれる。また、タイミングT4、T6、T8及びT12において、データA0、A1、A2及びA3が、非同期送信用FIFOメモリ23からシングルポートメモリ27に順次書き込まれる。そして、タイミングT9、T10及びT11において、LINK回路6はシングルポートメモリ27からデータI0、I1及びI2を順次読み出す。そして、タイミングT14、T15、T16及びT17において、LINK回路6はシングルポートメモリ27からデータA0、A1、A2及びA3を順次読み出す。
【0086】
図24は、本実施形態の3ポートFIFO記憶装置5における、受信及び同期送信及び非同期送信混在時のタイミングチャートを示す。このタイミングチャートは、受信用の読み出し/書き込みブロックがブロックB00のアドレス“00h”から指定されて動作が開始され、非同期送信用の読み出し/書き込みブロックがブロックB01のアドレス“00h”から指定されて動作が開始され、非同期送信用の読み出し/書き込みブロックがブロックB02のアドレス“00h”から指定されて動作が開始された場合の実施例である。タイミングT2、T4及びT6において、データR0、R1及びR2が、LINK回路から順次シングルポートメモリ27に書き込まれる。タイミングt2、t3及びt4において、データI0、I1及びI2が、同期送信用DMAコントローラ3から同期送信用FIFOメモリ22に順次書き込まれる。また、タイミングt4、t5及びt6において、データA0、A1及びA2が、非同期送信用DMAコントローラ4から非同期送信用FIFOメモリ23に順次書き込まれる。そして、タイミングT5、T9及びT12において、データR0、R1及びR2が、シングルポートメモリ27から受信用FIFOメモリ21に順次書き込まれる。また、タイミングT3、T8及びT11において、データI0、I1及びI2が、同期送信用FIFOメモリ22からシングルポートメモリ27に順次書き込まれる。また、タイミングT7、T10及びT16において、データA0、A1及びA2が、非同期送信用FIFOメモリ23からシングルポートメモリ27に順次書き込まれる。そして、タイミングt20、t21及びt22において、データR0、R1及びR2が、受信用FIFOメモリ21から受信用DMAコントローラ2に順次読み出される。そして、タイミングT13、T14及びT15において、LINK回路6はシングルポートメモリ27からデータI0、I1及びI2を順次読み出す。そして、図示しないタイミングT18以降において、LINK回路6はシングルポートメモリ27からデータA0、A1、A2及びA3を順次読み出す。
【0087】
以上説明したように、本実施形態によれば、送信又は受信のためのデータを、例えばシングルポートメモリ27である記憶装置に一時的に格納した後転送するデータ転送装置において、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号ITXFWREQB又はATXFWREQBに応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号RXFRREQBに応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御する。従って、1つの記憶装置を、例えば受信パケットが多い状態では記憶領域のほとんどを受信用に、また、送信用のパケットが多いい状態では記憶領域のほとんどを送信用に使用できるため、それぞれの送信用及び受信用として記憶装置として使用できる容量が見かけ上増加したように処理でき、すなわち、当該記憶装置を有効的にかつ効率的に使用することができ、当該記憶装置としての処理能力が向上する。
【0088】
また、従来技術のように複数のFIFO記憶装置を持った場合と同じ処理能力で良ければ、本実施形態に係る1つのFIFO記憶装置5のメモリ容量を、従来の複数のFIFO記憶装置の最大容量サイズにすることが可能となる。つまり、転送装置として大きなゲートを占めるFIFO記憶装置5のメモリ容量を大きく減らすことができる。言い換えれば、FIFO記憶装置5のメモリ容量を少なくして従来技術と同様の動作を得ることができる。
【0089】
また、本実施形態に係るデータ転送装置を実現するための従来技術からの付加回路の規模は、図9のブロックコントローラ35全体の約3000ゲートと図10乃至図12に示すタイミングコントローラ31,32,33のカウンター構成例の約900ゲートから、図26に示す従来技術のタイミングコントローラ124,133,143のカウンター構成例の約600ゲートを減算した分である。つまり約3300ゲートのわずかな増加だけである。つまり、処理能力を向上するためには約3300ゲートの回路増加のみを必要とし、また、処理能力は同等で良いのであれば、約3300ゲートの回路増加を必要とするものの、ゲート規模の多くを占めるFIFO記憶装置を大きく減少できるので、全体としては大きな回路規模の減少をはかれる。
【0090】
上記データ転送装置において、上記制御手段は、好ましくは、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保する。従って、選択したブロックに続いてデータを書き込むための次のブロックを確実に確保して次のブロックのデータ書き込み動作に移行することができる。
【0091】
この場合において、現在書き込んでいるブロックの書き込み領域が存在しない場合には、次の書き込みブロックに処理が移るが、次の書き込みブロックのその次の書き込みブロックが割り当てられないと書き込み処理が出来ない。例えば、本実施例の送信用としてのFIFO記憶装置5の図20のタイミングT5〜T6において書き込み処理がストップされている。しかし、本実施例の受信用としてのFIFO記憶装置5は上述のように構成されているので、図19のタイミングT5のように現在の書き込みブロック領域がなくなっても書き込み処理が連続的に実行でき、処理の連続化をはかることができる。
【0092】
以上の実施形態においては、シングルポートメモリ27の動作を制御するFIFOタイミングコントローラ28はハードウエア回路で構成しているが、本発明はこれに限らず、デジタルシグナルプロセッサ(DSP)により実行されるコンピュータで読取可能なプログラムで構成してもよい。すなわち、FIFOタイミングコントローラ28のシングルポートメモリ27を制御するステップは、コンピュータで読取可能なプログラムで表現することができ、当該プログラムをCD−ROM、CD−R、CD−RW、DVD,DVD−R、DVD−RW、DVD−RAMなどの光ディスク等のコンピュータで読取可能な記録媒体に記録することができる。これにより、ソフトウェアで動作するデータ転送装置におけるメモリー領域の使用量の削減又は処理能力の向上がはかれる。
【0093】
【発明の効果】
以上詳述したように本発明に係るデータ転送装置又はデータ転送方法によれば、送信又は受信のためのデータを記憶装置に一時的に格納した後転送するデータ転送装置において、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御する。従って、1つの記憶装置を、例えば受信パケットが多い状態では記憶領域のほとんどを受信用に、また、送信用のパケットが多いい状態では記憶領域のほとんどを送信用に使用できるため、それぞれの送信用及び受信用として記憶装置として使用できる容量が見かけ上増加したように処理でき、すなわち、当該記憶装置を有効的にかつ効率的に使用することができ、当該記憶装置としての処理能力が向上する。
【0094】
上記データ転送装置又はデータ転送方法において、上記制御手段は、好ましくは、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保する。従って、選択したブロックに続いてデータを書き込むための次のブロックを確実に確保して次のブロックのデータ書き込み動作に移行することができる。
【0095】
また、上記データ転送装置又はデータ転送方法において、好ましくは、上記各ブロックに対応して設けられ、次のブロックのアドレスを記憶する第1のレジスタ手段をさらに備える。従って、選択したブロックに続いてデータを書き込むための次のブロックを確実に示して次のブロックのデータ書き込み動作に移行することができる。
【0096】
さらに、上記データ転送装置又はデータ転送方法において、好ましくは、上記各ブロックに対応して設けられ、次のブロックのアドレスが選択されて確保されているか否かを示すデータを記憶する第2のレジスタ手段をさらに備える。従って、選択したブロックに続いてデータを書き込むための次のブロックが確保されているか否かの情報を得ることができ、次のブロックのデータ書き込み動作に移行することができる。
【0097】
また、上記データ転送装置又はデータ転送方法において、上記制御手段は、好ましくは、上記ブロックからデータを読み出したとき、当該ブロックを未使用状態として解放する。従って、使用しなくなったブロックを確実に解放することにより、当該記憶装置を有効的にかつ効率的に使用することができる。
【0098】
さらに、上記データ転送装置又はデータ転送方法において、好ましくは、上記各ブロックに対応して設けられ、上記各ブロックが使用状態であるか否かを示すデータを記憶する第3のレジスタ手段をさらに備えたことを特徴とする。従って、上記記憶装置の書くブロックが使用中であるか否かの情報を得ることができ、次のブロックの検索を容易にかつ高速で実行できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るIEEE1394インターフェース装置の構成を示すブロック図である。
【図2】図1の3ポートFIFO記憶装置の詳細な構成を示すブロック図である。
【図3】図2のシングルポートメモリ27を用いたデータの記憶方法を説明するための図である。
【図4】図3のシングルポートメモリ27に受信FIFOデータ、同期送信FIFOデータ及び非同期送信FIFOデータを記憶するときの初期状態を示す図である。
【図5】図4のシングルポートメモリ27においてパケットを受信するときの状態を示す図である。
【図6】図5のシングルポートメモリ27において受信されたパケットを処理する方法を説明するための図である。
【図7】図5のシングルポートメモリ27においてパケットを同期送信する準備をする方法を説明するための図である。
【図8】図2のFIFOタイミングコントローラ28の詳細な構成を示すブロック図である。
【図9】図8のブロックコントローラ35の詳細な構成を示すブロック図である。
【図10】図8の受信用タイミングコントローラ31の詳細な構成を示すブロック図である。
【図11】図8の同期送信用タイミングコントローラ32の詳細な構成を示すブロック図である。
【図12】図8の非同期送信用タイミングコントローラ33の詳細な構成を示すブロック図である。
【図13】図8のブロックコントローラ35における各信号の初期状態を示すタイミングチャートである。
【図14】図1の3ポートFIFO記憶装置5における受信時の各信号を示すタイミングチャートである。
【図15】図1の3ポートFIFO記憶装置5における同期送信時の各信号を示すタイミングチャートである。
【図16】図1の3ポートFIFO記憶装置5における非同期送信時の各信号を示すタイミングチャートである。
【図17】図1の3ポートFIFO記憶装置5における受信時の各信号を示すタイミングチャートである。
【図18】図1の3ポートFIFO記憶装置5における同期送信時の各信号を示すタイミングチャートである。
【図19】図1の3ポートFIFO記憶装置5における非同期送信時の各信号を示すタイミングチャートである。
【図20】図1の3ポートFIFO記憶装置5における受信時の各信号を示すタイミングチャートである。
【図21】図1の3ポートFIFO記憶装置5における受信及び同期送信時の各信号を示すタイミングチャートである。
【図22】図1の3ポートFIFO記憶装置5における受信及び非同期送信時の各信号を示すタイミングチャートである。
【図23】図1の3ポートFIFO記憶装置5における同期送信及び非同期送信時の各信号を示すタイミングチャートである。
【図24】図1の3ポートFIFO記憶装置5における受信及び同期送信及び非同期送信時の各信号を示すタイミングチャートである。
【図25】従来技術のIEEE1394インターフェース装置の構成を示すブロック図である。
【図26】図25の受信用FIFO記憶装置105、同期送信用FIFO記憶装置106及び非同期送信用FIFO記憶装置107の詳細な構成を示すブロック図である。
【図27】(a)、(b)及び(c)はそれぞれ、図26のタイミングコントローラ124、133及び144の詳細な構成を示すブロック図である。
【符号の説明】
1…PCIインターフェースコントローラ、
2…受信用DMAコントローラ、
3…同期送信用DMAコントローラ、
4…非同期送信用DMAコントローラ、
5…3ポートFIFO記憶装置、
6…LINK回路、
7…PHY回路、
10…IEEE1394インターフェース装置、
11…RAM、
12…CPU、
13…パーソナルコンピュータ、
21…受信用FIFOメモリ、
22…同期送信用FIFOメモリ、
23…非同期送信用FIFOメモリ、
24,25,26,43乃至46…マルチプレクサ、
27…シングルポートメモリ、
28…タイミングコントローラ、
31…受信用タイミングコントローラ、
32…同期送信用タイミングコントローラ、
33…非同期送信用タイミングコントローラ、
34…データ選択コントローラ、
35…ブロックコントローラ、
41…ブロックアクセスコントローラ、
42…32ビットプライオリティエンコーダ、
51,53,54,55,56,57…6ビットアップカウンタ、
52…2ビット同期アップダウンカウンタ、
B1…IEEE1394バス、
B2…PCIバス、
B00NXPT乃至B31NXPT,B00NOK乃至B31NOK,B00USE乃至B31USE,RRDBPTR,RWRBPTR,IRDBPTR,IWRBPTR,ARDBPTR,AWRBPTR,RWRNBPTR,IWRNBPTR,AWRNBPTR…レジスタ、
B00乃至B31…ブロック、
AND1乃至AND5…アンドゲート、
OR1乃至OR7…オアゲート、
NAND1乃至NAND10…ナンドゲート、
N1乃至N7…インバータ、
F1乃至F5…フリップフロップ。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data transfer device, a data transfer method, and a program recording the data transfer method, and more particularly, to a data transfer device and a data transfer method for transferring data between an IEEE1394-compliant device and a PCI bus such as a computer. And a program recording a data transfer method.
[0002]
[Prior art]
FIG. 25 is a block diagram showing a configuration of an IEEE 1394 interface device 110 according to the prior art, which uses a storage device such as a FIFO memory for data transmission and reception in accordance with IEEE 1394, which is generally used. As shown in FIG. 25, the IEEE 1394 interface device 110 provides an interface between the IEEE 1394 bus B1 and the PCI bus B2 of the personal computer 113. Since the IEEE 1394 bus B1 and the PCI bus B2 have different clock frequencies, the IEEE 1394 interface device 110 performs reception operation, synchronous transmission operation, and asynchronous operation in order to perform a transfer operation after buffering the FIFO storage device or the like in the IEEE 1394 interface device 110. Separate FIFO storage devices 105, 106, and 107 are provided for transmission.
[0003]
The packet input via the IEEE 1394 bus B1 is subjected to interface processing such as signal conversion of the link layer via the PHY circuit 9 which performs interface processing such as signal conversion of the physical layer in the IEEE 1394 interface device 10 of the personal computer 113. The link is transmitted to the LINK circuit 108 and stored in the FIFO memory 105 for reception. Next, the packet stored in the receiving FIFO storage device 105 is read out by the receiving DMA controller 102 and is sent to the PCI bus B2 via the PCI interface controller 1 which performs interface processing such as signal conversion with the PCI bus. And stored in the RAM 11. Then, the CPU 12 can use the data stored in the RAM 11 as received packet data. Further, the CPU 12 prepares the data of the packet for synchronous transmission in the RAM 11, and then the DMA controller 103 for synchronous transmission reads out the data in the RAM 11 via the PCI interface controller and stores it in the FIFO memory 106 for synchronous transmission. Then, the LINK circuit 108 reads out the stored data and transmits the data via the PHY circuit 9 onto the IEEE1394 bus B1. The asynchronous transmission packet in the RAM 11 is also transmitted to the IEEE 1394 bus B1 with the same data flow using the asynchronous transmission DMA controller 104 and the asynchronous transmission FIFO storage device 107.
[0004]
In the IEEE 1394 interface device 110, the transmission and reception FIFO storage devices used therein require a large gate scale. For example, as described in JP-A-2001-134421, a small-sized asynchronous two-port memory is used. Efforts have been made to reduce the ratio of occupying the FIFO storage device in the IEEE 1394 interface device 110 by using a one-port memory having a large size.
[0005]
The detailed configuration of the receiving FIFO storage device 105, the synchronous transmission FIFO storage device 106, and the asynchronous transmission FIFO storage device 107 when the technology disclosed in the publication is used for the IEEE 1394 interface device 110 of FIG. 25 is shown. 26. Thereafter, when the signal name is XXXXB (that is, the signal name ends with "B"), the signal is a low level active low enable signal; otherwise, it is a high level active high signal. This is an enable signal.
[0006]
In FIG. 26, a reception data bus RXDO [31: 0] for transmitting data sent from the LINK circuit 108 (where [31: 0] is bit 31) is provided between the LINK circuit 108 and the reception FIFO storage device 105. , And signal bits from 0 to 0, and are similarly displayed in the following.) And a bus RXDO [32] that transmits a signal indicating the final data of the received packet. Further, an RXWRB signal indicating permission to write received data from the LINK circuit 108 to the receiving FIFO storage device 105 and an area that can be written to the receiving FIFO storage device 105 have disappeared from the receiving FIFO storage device 105 (memory). (Full state) using the RXFULL signal shown in the LINK circuit 108. Further, between the receiving DMA controller 102 and the receiving FIFO storage device 105, a receiving data bus RXDI [31: 0] through which the receiving DMA controller 102 reads out received data from the receiving FIFO storage device 105 is provided. It is connected by a bus RXDI [32] that transmits a signal indicating that it is the last data of the received packet, and further between the receiving DMA controller 102 and the receiving FIFO storage device 105, An RXFRREQB signal, which is a request to read data in the reception FIFO storage device 105; an RXFRACKB signal, which indicates that the reception FIFO storage device 105 permits reading in response to a read request from the reception DMA controller 102; Controller 102 Credit from the FIFO storage device 105 a when the data is read out is connected with the RXFRWAIT signal for instructing the stop of the temporary reading.
[0007]
As shown in FIG. 26, a transmission data bus ITXDO [31: 0] for transmitting data transmitted from the synchronous transmission DMA controller 103 is provided between the synchronous transmission DMA controller 103 and the synchronous transmission FIFO storage device 106. And a bus ITXDO [32] for transmitting a signal indicating that the data is the final data of the transmission packet. The synchronous transmission DMA controller 103 and the synchronous transmission FIFO storage device 106 further have a synchronous transmission The ITXFWREQB signal, which is a request to write the transmission data sent from the synchronous transmission DMA controller 103, to the FIFO storage device 106, and the synchronous transmission FIFO storage device 106 writes the transmission data write request from the synchronous transmission DMA controller 103. ITX which is permission And WACKB signal, is connected with the ITXFWDTVL signal indicating that it and its data synchronization transmission DMA controller 103 is transmitting the data write request is valid. Further, between the synchronous transmission FIFO storage device 106 and the LINK circuit 108, a transmission data bus ITXDI [31: 0] for the LINK circuit 108 to read synchronous transmission data from the synchronous transmission FIFO storage device 106, and the transmission thereof. It is connected by a bus ITXDI [32] for transmitting a signal indicating that it is the last data of the data, and between the synchronous transmission FIFO storage device 106 and the LINK circuit 108, the LINK circuit 108 further stores the synchronous transmission FIFO storage. The connection is made using an ITXRDB signal that is a request to read transmission data from the device 106.
[0008]
Further, as shown in FIG. 26, a transmission data bus ATXDO [31: 0] for transmitting data transmitted from the asynchronous transmission DMA controller 104 is provided between the asynchronous transmission DMA controller 104 and the asynchronous transmission FIFO storage device 107. And a bus ATXDO [32] for transmitting a signal indicating that the data is the last data of the transmission packet. The asynchronous transmission DMA controller 104 and the asynchronous transmission FIFO storage device 107 further have an asynchronous transmission The ATXFWREQB signal, which is a request to write transmission data sent from the asynchronous transmission DMA controller 104, to the FIFO storage device 107, and the writing of the asynchronous transmission FIFO storage device 107 in response to the transmission data writing request from the asynchronous transmission DMA controller 104. And ATXFWACKB signal is allowed only, is connected with the ATXFWDTVL signal indicating that asynchronous transmission DMA controller 104 is a possible and the data is valid is transmitting data to the write request. A transmission data bus ATXDI [31: 0] for the LINK circuit 108 to read out asynchronous transmission data from the asynchronous transmission FIFO storage device 107 is provided between the asynchronous transmission FIFO storage device 107 and the LINK circuit 108. The ATXDI [32] that transmits a signal indicating that the data is the last data, is connected between the asynchronous transmission FIFO storage device 107 and the LINK circuit 108, and is further connected to the asynchronous transmission FIFO storage device by the LINK circuit 108. The connection is made using an ATXRDB signal, which is a request to read out transmission data from 107.
[0009]
The receiving FIFO storage device 105 includes, for example, a single-port memory 122 of 33 bits × 1024 words, a FIFO memory 121 of 33 bits × 32 words, and is formed of, for example, an SRAM, for sequentially storing received data. A two-to-one 33 for changing the last data of the packet to a fixed value in order to notify the receiving DMA controller 102 when the receiving FIFO storage device 105 becomes full during the writing of the received packet. A bit multiplexer 123, a LINK circuit 108 connected to the reception FIFO storage device 105, a reception DMA controller 102, and a timing controller 124 for controlling the single-port memory 122, the FIFO memory 121, and the multiplexer 123. Have You.
[0010]
The configuration and operation of those components will be described. The data input from the LINK circuit 108 via the reception data bus RXDO [32: 0] is input to the first input terminal of the multiplexer 123, while the reception FIFO is input to the second input terminal of the multiplexer 123. A fixed data value 33'h1000000014 used when the storage device 105 is full is input. In the above data values, “33 ′” means that the data size is 33 bits, and “h” means that the data value is displayed in hexadecimal, but this value is an example. The output signal from the multiplexer 123 is input to the single port memory 122 via the bus MDI [32: 0], and the output data bus MDO [32: 0] of the single port memory 122 is connected to the input bus of the FIFO memory 121. Connected to. An output bus of the FIFO memory 121 is a reception data bus RXDI [32: 0] connected to the reception DMA controller 102, and a signal output from the FIFO memory 121 is a reception data bus RXDI [32: 0]. Is input to the receiving DMA controller 102 via the. Then, the RXWRB signal from the LINK circuit 108 is input to the timing controller 124 of the receiving FIFO storage device 105, and the timing controller 124 outputs an RXFULL signal indicating a memory full state to the LINK circuit 108. Further, the timing controller 124 outputs data representing the address of the single-port memory 122 to the single-port memory 122 via the address bus MAD [9: 0], and a signal for permitting the single-port memory 122 to write data. Is output to the single-port memory 122. Further, the timing controller 124 outputs to the FIFO memory 121 a FWRB signal indicating permission to write data to the FIFO memory 121 and an FRDB signal indicating permission to read data from the FIFO memory 121. The timing controller 124 receives the RXFRREQB signal and the RXFRWAIT signal from the receiving DMA controller 102, and outputs the RXFRACKB signal to the receiving DMA controller 102.
[0011]
The synchronous transmission FIFO storage device 106 is, for example, an SRAM, and includes a 33-bit × 512-word single-port memory 132 for sequentially storing synchronous transmission data, and a 33-bit × 32-word FIFO memory 131. Further, it includes a LINK circuit 108 connected to the synchronous transmission FIFO storage device 106, a synchronous transmission DMA controller 103, and a timing controller 133 for controlling the above-described single port memory 132 and FIFO memory 131.
[0012]
The configuration and operation of those components will be described. The data arriving from the synchronous transmission DMA controller 103 via the synchronous transmission data bus ITXDO [32: 0] is input to the input bus of the FIFO memory 131. The output bus MDI [32: 0] of the FIFO memory 131 is connected to the input bus of the single port memory 132, and the output bus MDO [32: 0] of the single port memory 132 is ITXDI [32: 0]. To the LINK circuit 108. The ITXRDB signal is input from the LINK circuit 108 to the timing controller 133 of the synchronous transmission FIFO storage device 106. Further, the timing controller 133 outputs data representing the address of the single port memory 132 to the single port memory 132 via the address bus MAD [9: 0], and a signal for permitting the data writing of the single port memory 132. Is output to the single-port memory 132. Further, the timing controller 133 outputs to the FIFO memory 131 a FWRB signal indicating permission to write data to the FIFO memory 131 and an FRDB signal indicating permission to read data from the FIFO memory 131. Further, the ITXFWREQB signal and the ITXFWDTVL signal are input from the synchronous transmission DMA controller 103 to the timing controller 133, and the timing controller 133 outputs the ITXFWACKB signal to the synchronous transmission DMA controller 103.
[0013]
The asynchronous transmission FIFO storage device 107 is, for example, an SRAM, and includes a 33-bit × 512-word single-port memory 142 for sequentially storing asynchronous transmission data, and a 33-bit × 32-word FIFO memory 141. A link circuit 108 connected to the FIFO memory 107 for asynchronous transmission, a DMA controller 104 for asynchronous transmission, and a timing controller 143 for controlling the single-port memory 142 and the FIFO memory 141 are provided.
[0014]
The configuration and operation of those components will be described. Data is input from the asynchronous transmission DMA controller 104 to the input bus of the FIFO memory 141 via the asynchronous transmission data bus ATXDO [32: 0]. The output bus MDI [32: 0] of the FIFO memory 141 is connected to the input bus of the single port memory 142, and the output bus MDO [32: 0] becomes ATXDI [32: 0] and becomes the LINK circuit 108. Connected to. Then, the ATXRDB signal is input from the LINK circuit 108 to the timing controller 143 of the FIFO memory device 107 for asynchronous transmission. In addition, the timing controller 143 outputs data representing the address of the single port memory 142 to the single port memory 142 via the address bus MAD [9: 0], and a signal for permitting the single port memory 142 to write data. Is output to the single-port memory 142. Further, the timing controller 143 outputs to the FIFO memory a FWRB signal indicating permission to write data to the FIFO memory and a FRDB signal indicating permission to read data from the FIFO memory. The ATXFWREQB signal and the ATXFWDTVL signal are input from the asynchronous transmission DMA controller 104 to the timing controller 143, and the timing controller 143 outputs the ATXFWACKB signal to the asynchronous transmission DMA controller 104.
[0015]
[Problems to be solved by the invention]
When a DVCR (Digital Video Cassette Recorder), which is an IEEE 1394 device, is connected to a data transfer device as shown in FIG. 25 to store data of the DVCR in the personal computer 113, the IEEE 1394 bus B1 has almost no connection. Only the packet of the synchronous reception data exists. For this reason, the reception FIFO storage device 105 is used, but the synchronous transmission FIFO storage device 106 and the asynchronous transmission FIFO storage device 107 are hardly used. On the other hand, when data stored in the personal computer 113 is to be stored in the DVCR, only packets of synchronous transmission data exist on the IEEE1394 bus B1. Therefore, the synchronous transmission FIFO storage device 106 is used, but the other reception FIFO storage device 105 and asynchronous transmission FIFO storage device 107 are not used.
[0016]
Also, a device using the SBP2 protocol such as a hard disk drive, which is an IEEE 1394 device, is connected to a data transfer device as shown in FIG. 25, and data is stored in the personal computer 113 from the device connected to the end of the IEEE 1394 bus B1. In this case, most of the IEEE 1394 bus B1 is mostly occupied by asynchronously received data packets. Therefore, the reception FIFO storage device 105 is used, but the synchronous transmission FIFO storage device 106 and the asynchronous transmission FIFO storage device 107 are hardly used. Conversely, when data stored in the personal computer 113 is to be stored in a device connected to the end of the IEEE 1394 bus B1, asynchronous transmission packets occupy most of the IEEE 1394 bus B1. Therefore, the asynchronous transmission FIFO storage device 107 is used, but the other reception FIFO storage device 105 and the asynchronous transmission FIFO storage device 106 are not used.
[0017]
From the above, the FIFO storage device occupying a large gate scale in the IEEE 1394 interface device 110 is not effectively used. The same applies to a configuration in which each of the FIFO storage devices 105, 106, and 107 is small as shown in FIG.
[0018]
SUMMARY OF THE INVENTION An object of the present invention is to solve the above-mentioned problems, and in a data transfer device such as an IEEE1394 interface device, a data transfer device and a data transfer method capable of effectively and efficiently using a storage area of a built-in storage device. And a program including the method.
[0019]
[Means for Solving the Problems]
A data transfer device according to a first invention is a data transfer device that temporarily stores data for transmission or reception in a storage device and then transfers the data, wherein the storage device is divided into a plurality of blocks of a predetermined same unit. Then, in response to a transmission data write request signal when transferring and transmitting data, one of the plurality of blocks is selected and an unused block is used, and the selected block is used. The data is written to the selected block and then read and transferred. In response to a data write request signal for reception when transferring and receiving the data, an unused one of the plurality of blocks is written. A control unit for selecting and setting the selected block in a use state, and controlling to write and read reception data to the selected block, and to transfer the received data. And wherein the door.
[0020]
In the data transfer device, the control unit preferably selects a next block for writing data following the selected block when selecting one unused block among the plurality of blocks. The next block selected is secured as a use state.
[0021]
Preferably, the data transfer device further comprises a first register means provided corresponding to each of the blocks and storing an address of a next block.
[0022]
Further, the data transfer device preferably further comprises a second register means provided corresponding to each of the blocks and storing data indicating whether or not the address of the next block is selected and secured. It is characterized by having.
[0023]
Further, in the data transfer device, preferably, when the data is read from the block, the control unit releases the block as an unused state.
[0024]
Further, the data transfer device preferably further comprises a third register means provided corresponding to each of the blocks and storing data indicating whether or not each of the blocks is in use. And
[0025]
A data transfer method according to a second invention is a data transfer method for temporarily storing data for transmission or reception in a storage device and then transferring the data, wherein the storage device is divided into a plurality of blocks of a predetermined same unit. Then, in response to a transmission data write request signal when transferring and transmitting data, one of the plurality of blocks is selected and an unused block is used, and the selected block is used. The data is written to the selected block and then read and transferred. In response to a data write request signal for reception when transferring and receiving the data, an unused one of the plurality of blocks is written. And selecting the selected block to be in a use state, and writing the data for reception to the selected block, and then reading and transferring the data. The features.
[0026]
In the data transfer method, preferably, the controlling step includes, when selecting one unused block from among the plurality of blocks, selecting a next block for writing data following the selected block. In this case, the selected next block is secured as a use state.
[0027]
Preferably, the data transfer method further includes a step of storing an address of a next block in first register means provided corresponding to each of the blocks.
[0028]
Further, in the data transfer method, preferably, a step of storing data indicating whether or not an address of a next block is selected and secured in a second register means provided corresponding to each of the blocks. Is further included.
[0029]
In the data transfer method, the control step preferably releases the block as an unused state when data is read from the block.
[0030]
Further, the data transfer method preferably further includes a step of storing data indicating whether or not each of the blocks is in use, in a third register means provided corresponding to each of the blocks. It is characterized.
[0031]
A program including the data transfer method according to the third invention is characterized in that it includes a data transfer method including the above steps.
[0032]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0033]
FIG. 1 is a block diagram showing a configuration of an IEEE 1394 interface device 10 according to an embodiment of the present invention. In the prior art shown in FIG. 25, the reception FIFO storage device 105, the synchronous transmission FIFO storage device 106, and the asynchronous transmission FIFO storage device 107 are divided into three, but in the present embodiment, these three storage devices 105 are used. , 106, and 107 are integrated into a single three-port FIFO storage device 5.
[0034]
The data transfer device according to the embodiment of FIG. 1 is a data transfer device that temporarily stores data for transmission or reception in a storage device such as a single-port memory 27 and then transfers the data. In response to a transmission data write request signal ITXFWREQB or ATXFWREQB when data is transferred and transmitted, and selects one unused block from the plurality of blocks. Then, the selected block is put into a use state, and the transmission data is written to the selected block, read and transferred, and in response to the reception data write request signal RXFRREQB when the data is transferred and received. Selecting one unused block from among the plurality of blocks and setting the selected block to a use state; Credit data is characterized by controlling to transfer by reading after writing to the selected block. In the data transfer device, preferably, when selecting one unused block from among the plurality of blocks, the control unit selects a next block for writing data following the selected block. Then, the selected next block is secured as a use state.
[0035]
In FIG. 1, received data arriving at the personal computer 13 from the IEEE 1394 bus B1 is received by a PHY circuit 7 of the IEEE 1394 interface device 10, and the PHY circuit 7 converts the input received data into an interface such as a signal conversion in a physical layer. After the processing is executed, it is output to the LINK circuit 6. The LINK circuit 6 performs interface processing such as signal conversion in the link layer on the input received data, and then writes the data in the 3-port FIFO storage device 5. Next, the receiving DMA controller 2 reads the received data in the 3-port FIFO storage device 5 and outputs it to the PCI interface controller 1, and in response, the PCI interface controller 1 sends a signal to the read received data. After executing interface processing such as conversion, the data is output to the RAM 11 via the PCI bus B2 and stored.
[0036]
When transmitting data from the personal computer 13 to the IEEE 1394 bus B1, the CPU 12 sends the transmission data in the RAM 11 to the PCI interface controller 1, and the PCI interface controller 1 performs interface processing such as signal conversion on the transmission data. If the synchronous transmission is performed after the execution, the synchronous transmission DMA controller 3 outputs the transmitted data to the 3-port FIFO storage device 5 in response to the output. If the transmission data is transmitted asynchronously, the transmission data is output from the PCI interface controller 1 to the asynchronous transmission DMA controller 4, and the asynchronous transmission DMA controller 4 stores the transmitted transmission data in the 3-port FIFO storage device 5. Write. Next, the LINK circuit 6 reads out the data in the three-port FIFO storage device 5 and executes interface processing such as signal conversion of the link layer, and then via the PHY circuit 7 which executes interface processing such as signal conversion of the physical layer. To the IEEE 1394 bus B1.
[0037]
FIG. 2 is a block diagram showing a detailed configuration of the 3-port FIFO storage device 5. The differences from the prior art of FIGS. 25 to 27 will be described below.
[0038]
The reception FIFO storage device 105, the synchronous transmission FIFO storage device 106, and the asynchronous transmission FIFO storage device 107 in FIG. 26 correspond to the three-port FIFO storage device 5 in FIG. The FIFO memory 121 of the reception FIFO storage device 105, the FIFO memory 131 of the synchronous transmission FIFO storage device 106, and the FIFO memory 141 of the asynchronous transmission FIFO storage device 107 of FIG. 26 are respectively the reception FIFO memory 21 of FIG. They correspond to the transmission FIFO memory 22 and the asynchronous transmission FIFO memory 23, and have the same data capacity. The single port memory 122 of the reception FIFO storage device 105, the single port memory 132 of the synchronous transmission FIFO storage device 106, and the single port memory 142 of the asynchronous transmission FIFO storage device 107 of FIG. Correspondingly, the total capacity of the three single-port memories of FIG. 26 is the same as the capacity of FIG. The single port memory 27 is constituted by, for example, an SRAM.
[0039]
The data from the 4-to-1 33-bit multiplexer 24 is input to the first input terminal of the single port memory 27 in FIG. 2 via the input data bus MDI [32: 0]. The output data of the FIFO memory 23 for asynchronous transmission is input to the first input terminal (0) via the data bus ATDO [32: 0], and the second input terminal (1) of the multiplexer 24 is connected to the data bus ATDO [32: 0]. The output data of the synchronous transmission FIFO memory 22 is input via ITDO [32: 0], and the third input terminal (2) of the multiplexer 24 is supplied from the LINK circuit 6 via the data bus RXDO [32: 0]. 26 is input to the fourth input terminal (3) of the multiplexer 24 in the receiving FIFO storage device 105 shown in FIG. Fixed value of the same data 33'h10000014 shall be used to input of the multiplexer 123 when 憶 device 105 becomes full state (this value is an example.) Is input. A second input terminal of the single port memory 27 shown in FIG. 2 is connected to an output terminal of a 4-to-1 11-bit multiplexer 25 via an address bus MAD [10: 0]. The input terminal (0) receives address data for asynchronous transmission from the FIFO timing controller 28 via the address bus AAD [10: 0], and the second input terminal (1) of the multiplexer 25 connects the address bus IAD [10 : 0], the address data for synchronous transmission is input from the FIFO timing controller 28, and the third input terminal (2) and the fourth input terminal (3) of the multiplexer 25 are connected to the address bus RAD [10: 0]. , Receiving address data from the FIFO timing controller 28 is input. The read / write control signal MWRB output from the 4-to-1 1-bit multiplexer 26 is input to the third input terminal of the single-port memory 27 in FIG. 2, and the first input terminal (0 ) Is supplied with a read request signal AFRDB of the asynchronous transmission FIFO memory 23 from the FIFO timing controller 28, and the second input terminal (1) of the multiplexer 26 receives the synchronous transmission FIFO memory 22 from the FIFO timing controller 28. The read request signal IFRDB is input, and the write request signal RFWRB of the receiving FIFO memory 21 from the FIFO timing controller 28 is input to the third input terminal (2) and the fourth input terminal (3) of the multiplexer 26. You. A bus DISEL [1: 0] is connected between the FIFO timing controller 28 and each of the multiplexers 24, 25, 26 in order to transmit a data select signal to the three multiplexers 24, 25, 26 described above. You.
[0040]
The output data bus MDO [32: 0] of the single port memory 27 becomes the data bus ITXDI [32: 0] and ATXDI [32: 0] to the LINK circuit 6, and the input data of the reception FIFO memory 21. Become a bus. The output data bus of the receiving FIFO memory 21 is the data bus RXDI [32: 0] to the receiving DMA controller 2, and the data bus ITXDO [32: 0] from the synchronous transmitting DMA controller 3 is the synchronous transmitting FIFO. The data bus ATXDO [32: 0] from the asynchronous transmission DMA controller 4 serves as an input data bus for the asynchronous transmission FIFO memory 23.
[0041]
Further, an RFRDB signal is input from the FIFO timing controller 28 to the reception FIFO memory 21 as a read request signal of the reception FIFO memory 21, and an RFWRB signal is received from the FIFO timing controller 28 as a write request signal of the reception FIFO memory 21. Input to the FIFO memory 21 for use. Also, an IFRDB signal is input from the FIFO timing controller 28 to the synchronous transmission FIFO memory 22 as a read request signal for the synchronous transmission FIFO memory 22, and the IFRDB signal is output from the FIFO timing controller 28 as a write request signal for the synchronous transmission FIFO memory 22. The signal is input to the FIFO memory 22 for synchronous transmission. Further, the AFRDB signal is input from the FIFO timing controller 28 to the asynchronous transmission FIFO memory 23 as a read request signal of the asynchronous transmission FIFO memory 23, and the FIFO timing controller 28 outputs the AFWRB signal as a write request signal of the asynchronous transmission FIFO memory 23. The signal is input to the FIFO memory 23 for asynchronous transmission.
[0042]
In the above embodiment, the FIFO memories 21, 22, and 23 are used as storage devices between the single port memory 27 and each of the DMA controllers 2, 3, and 4. However, the present invention is not limited to this. The device may be a memory such as an asynchronous dual port memory.
[0043]
Next, a storage method of the IEEE 1394 interface device 10 of FIGS. 1 and 2 will be described with reference to FIGS.
[0044]
In the present embodiment, as shown in FIG. 3, the data storage area of the single port memory 27 in the 3-port FIFO storage device 5 is divided into predetermined small blocks, and each block is used for reception, synchronous transmission, and asynchronous transmission. It is characterized in that it can be used for any transmission. The single-port memory 27 shown in FIG. 3 has a memory capacity of 33 bits × 2048 words, and divides the memory area into 32 blocks B00 to B31 every 64 words. Further, as shown in FIG. 3, the following registers are provided for each of the blocks B00 to B31.
(A) Registers B00NXPT [4: 0] to B31NXPT [4: 0] for storing an address pointer for indicating which block the data in each block follows next, or 5-bit data of the block pointer.
(B) Registers B00USE to B31USE each storing 1-bit data indicating whether each block is allocated and used as a memory of a FIFO storage device for reception, synchronous transmission, or asynchronous transmission.
(C) Registers B00NOK to B31NOK for storing 1-bit data indicating whether a block next to each block is allocated.
The detailed configuration of these registers will be described later.
[0045]
4 to 7 are schematic explanatory diagrams relating to the operation of the single-port memory 27 in FIG. As shown in FIG. 4 to FIG. 7, data is written to or read from any block in the single port memory 27 corresponding to the reception FIFO data, the synchronous transmission FIFO data, and the asynchronous transmission FIFO data, respectively. Is provided. Further, as a basic condition of the present embodiment, as for all the blocks in the single port memory 27, one block to which data can be written next is assigned to the block to which data is currently written. Next, an example of the operation will be described below with reference to FIGS.
[0046]
In the initial state of FIG. 4, the reception FIFO data read block pointer “RRDBPTR” and the write block pointer “RWRBPTR” are both “00h” (“h” indicates a hexadecimal number), and indicates the block B00. . The synchronous transmission FIFO data read block pointer “IRDBTPR” and the write block pointer “IWRBTPR” both become “01h”, indicating the block B01. The asynchronous transmission FIFO data read block pointer “ARDBPTR” and the write block pointer “AWRBPTR” are both “02h”, indicating the block B02. The detailed configuration of each of the above-described block pointers will be described later. Further, the register B00NXPT of the address pointer indicating the block following the block B00 becomes "03h", indicating the block B03. Also, the register B01NXPT becomes “04h” and indicates the block B04. Further, the register B02NXPT becomes “05h” and indicates the block B05. Further, since the next block is allocated to the blocks B00 to B02, the registers B00NOK, B01NOK and B02NOK become high level. Further, since the blocks B00 to B05 are allocated to the respective FIFO data of reception, synchronous transmission, and asynchronous transmission, the registers B00USE, B01USE, B02USE, B03USE, B04USE, and B05USE become high level.
[0047]
5 shows a state after the received packet is transferred from the LINK circuit 6 and written into the single port memory 27 from the initial state of FIG. When the received data sent from the LINK circuit 6 has been written into all the blocks B00, the data value of the register B00NXPT is "03h", so that the writing of the continuation of the received data to the block B03 is started. At the same time, since the block next to the block B03 is not allocated, the block B06, which is an unused block, is allocated for the reception FIFO data. Therefore, the register B03NXPT becomes "06h" (that is, indicates the address of the block B06), the register B03NOK becomes high level, and the register B06USE becomes high level. When the received data has been written to all of the blocks B03, the data value of the register B03NXPT is "06h", so that the continuation of the received data is started to be written to the block B06. At the same time, since the block next to the block B06 is not allocated, the block B07, which is an unused block, is allocated for the reception FIFO data. Therefore, the register B06NXPT becomes "07h" (that is, the address of the block B07 is indicated), the register B06NOK goes high, and the register B07USE goes high.
[0048]
In the reception packet processing of FIG. 6, the reception DMA controller 2 reads out the reception packet stored in the single port memory 27 from the packet reception state of FIG. The receiving DMA controller 2 reads out all the data of the block B00 and ends the reading, and starts reading out the data in the block B03 indicated by the data value "03h" of the register B00NXPT. At the same time, since all the data of the block B00 has been read and no longer required, the registers B00NOK and B00USE are set to low level. This inevitably makes the data in the register B00NXPT meaningless. When reading of all data of the block B03 is completed, reading of data of the block B06 indicated by the data value “06h” of the register B03NXPT is started. At the same time, all the data in the block B03 has been read out, and the data is no longer needed. Therefore, the registers B03NOK and B03USE are set to low level. As a result, the data of the register B03NXPT necessarily becomes meaningless data.
[0049]
7 shows a state after the synchronous transmission DMA controller prepares synchronous transmission data in the synchronous transmission FIFO memory 22 after the reception packet processing state in FIG. When the synchronous transmission data sent from the synchronous transmission DMA controller has been written to all of the blocks B01, the data value of the register B01NXPT is "04h", so that the continuation of the synchronous transmission data is written to the block B04. To start. Since the block next to the block B04 is not allocated at the same time, the block B08, which is an unused block, is allocated for synchronous transmission data. Therefore, the register B04NXPT becomes “08h”, the register B04NOK goes high, and the register B08USE goes high. When the synchronous transmission data has been written to all blocks B04, the data value of the register B04NXPT is "08h", so that writing to the block B08 is started. At the same time, since the block next to the block B08 is not allocated, the block B09, which is an unused block, is allocated for synchronous transmission data. Therefore, the register B08NXPT becomes "09h", the register B08NOK goes high, and the register B09USE goes high.
[0050]
As described above, two or more blocks are always allocated to one FIFO data, and the used blocks are released from the allocation, so that an effective and efficient FIFO storage device can be used according to the situation. Can perform usage. Although not described above, the same processing can be performed when writing and / or reading asynchronous transmission data in the single port memory 27. In addition, the examples of FIGS. 4 to 7 are examples of a method of always allocating the first empty block, and allocating from the block B00 when the block B31 is allocated. However, a method of always allocating an empty block closest to the block B00 may be used, and this method is used in the description of the detailed configurations in FIGS.
[0051]
Hereinafter, a more detailed configuration of the IEEE 1394 interface device 10 described with reference to FIGS. 1 and 2 will be described.
[0052]
FIG. 8 shows a configuration example of the FIFO timing controller 28 of FIG. The reception timing controller 31, the synchronous transmission timing controller 32, and the asynchronous transmission timing controller 33 in FIG. 8 are basically the timing controller 124 and the synchronous transmission FIFO storage device 106 of the reception FIFO storage device 105 in FIG. The timing controller 133 and the timing controller 143 of the asynchronous transmission FIFO storage device 107 perform the timing control of the reception FIFO memory 21, the synchronous transmission FIFO memory 22, and the asynchronous transmission FIFO memory 23. In FIG. 8, a block controller 35 is provided as a controller for controlling each block obtained by dividing the single port memory 27 of the present embodiment into a certain size. The block controller 35 includes the registers B00NXPT to B31NXPT [4: 0], the registers B00NOK to B31NOK, and the registers B00USE to B31USE described with reference to FIG.
[0053]
The block controller 35 receives a signal RWB [4: 0] indicating the value of the current write block from the reception timing controller 31 and a signal of the block when a block that can be used next to the block currently being written is not allocated. An RBALREQB signal for making an allocation request, an RRB [4: 0] signal indicating the value of the block currently being read, and an RRBFREE signal indicating that all the data of the block currently being read have been read and thus the block can be deallocated. Input as a signal for reception. In addition, the block controller 35 transmits to the reception timing controller 31 a BEMP [4: 0] signal indicating the currently selected empty block value and an RBALACKB signal for permitting block allocation in response to a new block allocation request. Then, an RNRB [4: 0] signal indicating a block to be read next to the block currently being read and an RNRBOK signal indicating that the block to be read next has already been allocated are output as signals for reception.
[0054]
Also, when the block controller 35 is not assigned from the synchronous transmission timing controller 32 an IWB [4: 0] signal indicating the value of the current write block and a block that can be used next to the block currently being written. , An IBALREQB signal for requesting block allocation, an IRB [4: 0] signal indicating the value of the block currently being read, and indicating that all the data of the block currently being read have been read, so that the block can be deallocated. The IRBFREE signal is input as a signal for synchronous transmission. In addition, the block controller 35 supplies the synchronous transmission timing controller 32 with a BEMP [4: 0] signal indicating the currently selected empty block value and an IBALACKKB signal for permitting block allocation in response to a new block allocation request. And an INRB [4: 0] signal indicating the block to be read next to the block currently being read, as a signal for synchronous transmission.
[0055]
Also, when the AWB [4: 0] signal indicating the value of the current write block and the block that can be used next to the block currently being written are not allocated to the block controller 35 from the timing controller 33 for asynchronous transmission. , An ARBREQB signal for requesting block allocation, an ARB [4: 0] signal indicating the value of the block currently being read, and that all blocks of the block currently being read have been read, so that the block can be deallocated. The ARBFREE signal is input as a signal for asynchronous transmission. Further, the block controller 35 supplies the asynchronous transmission timing controller 33 with a BEMP [4: 0] signal indicating the currently selected empty block value and an ABALACKB signal for permitting block allocation in response to a new block allocation request. And an ANRB [4: 0] signal indicating the block to be read next to the block currently being read are output as signals for asynchronous transmission.
[0056]
The reception timing controller 31 receives an RXFRREQB signal and an RXFRWAIT signal from the reception DMA controller 2, and the reception timing controller 31 outputs an RXFRACKB signal to the reception DMA controller 2. Further, the RX timing signal from the LINK circuit 6 is input to the reception timing controller 31, and the reception timing controller 31 outputs an RXFULL signal to the LINK circuit 6. The address bus RAD [10: 0] shown in FIG. 2 is connected to the reception timing controller 31, and the reception timing controller 31 outputs an RFRDB signal and an RFWRB signal. The ITXFWREQB signal and the ITXFWDTVL signal are input from the synchronous transmission DMA controller 3 to the synchronous transmission timing controller 32, and the synchronous transmission timing controller 32 outputs an ITXFWACKB signal to the synchronous transmission DMA controller 3. The synchronous transmission timing controller 32 receives an ITXRDB signal from the LINK circuit 6. The address bus IAD [10: 0] shown in FIG. 2 is connected to the synchronous transmission timing controller 32, and the synchronous transmission timing controller 32 outputs an IFRDB signal and an IFWRB signal. The ATXFWREQB signal and the ATXFWDTVL signal are input from the asynchronous transmission DMA controller 4 to the asynchronous transmission timing controller 33, and the asynchronous transmission timing controller 33 outputs the ATXFWACKB signal to the asynchronous transmission DMA controller 4. The ATXRDB signal is input from the LINK circuit 6 to the asynchronous transmission timing controller 33. The address bus AAD [10: 0] shown in FIG. 2 is connected to the asynchronous transmission timing controller 33, and the asynchronous transmission timing controller 33 outputs an AFRDB signal and an AFWRB signal. Then, the RXWRB signal, the ITXRDB signal, the ATXRDB signal, the RFWRB signal, the IFRDB signal, and the AFRDB signal are input to the data selection controller 34. Further, when the 3-port FIFO storage device 5 is in the full state, the write data from the LINK circuit 6 is received. An RFT signal that goes high when the last data is input is input, and a data select signal is output from the data selection controller 34 via the bus DISEL [1: 0]. The data select signal output via the bus DISEL [1: 0] is "10b" during the data reception processing, "01b" during the data synchronous transmission processing, and the asynchronous data transmission. The processing period is “00b”, and the period in which the RFT signal is at the high level during the data receiving process, that is, when the 3-port FIFO memory device 5 is in the full state and the writing from the LINK circuit 6 is performed. The period in which the data is the last data is “11b”. As a condition for the operation of the LINK circuit 6, the RXWRB signal, the ITXRDB signal, and the ATXRDB signal are not activated at the same time, and which of these signals is activated is given the highest priority in the operation of the LINK circuit 6. Selected. When the RFWRB signal, the IFRDB signal, and the AFRDB signal become active when those signals are not active, the single port memory 27, the reception FIFO memory 21, the synchronous transmission FIFO memory 22, or the asynchronous transmission FIFO The read / write of the packet to / from the memory 23 is selected by changing the priority in order.
[0057]
FIG. 9 shows an embodiment of the block controller 35 of FIG. As described above, the registers B00NXPT [4: 0] to B31NXPT [4: 0], the registers B00NOK to B31NOK, and the registers B00USE to B31USE used in the schematic explanatory diagrams of FIGS. 4 to 7 are provided in the block controller 35. In the following description, “##” indicates 00 to 31.
[0058]
The block access controller 41 of the block controller 35 controls these registers to control access to each of the blocks B00 to B31 created by dividing the memory area of the single port memory 27 (FIGS. 4 to 4). (See FIG. 7). Each register B ## NXPT [4: 0] is a 5-bit register with a synchronous data load enable (EB), and each register B ## NXPT [4: 0] has a B # output from the block access controller 41. The #NXB signal is input. The BEMP [4: 0] signal output from the 32-bit priority encoder 42 is input to the input terminal of each register B ## NXPT [4: 0]. The output terminal of each register B ## NXPT [4: 0] is connected to the input terminals of three 32-to-1 5-bit multiplexers 44, 45 and 46. The RRB [4: 0] signal is input to the select signal terminal of the multiplexer 44, and the RNRB [4: 0] signal is output from the output terminal of the multiplexer 44. Further, the IRB [4: 0] signal is input to the select signal terminal of the multiplexer 45, and the INRB [4: 0] signal is output from the output terminal of the multiplexer 45. Further, the ARB [4: 0] signal is input to the select signal terminal of the multiplexer 46, and the ANRB [4: 0] signal is output from the output terminal of the multiplexer 46.
[0059]
Each register B ## NOK which is a D-type flip-flop is a 1-bit register with a synchronous data load enable (EB), and each register B ## NOK has a B # output from the block access controller 41. The #NXB signal is input. Each register B # NOK has a synchronous reset (RB) terminal, and a B ## FLB signal output from the block access controller 41 is input to the terminal. The D input terminal of each register B ## NOK is connected to a voltage source Vcc indicating a high level. The output signal from each register B ## NOK becomes an input signal of a 32-to-1 1-bit multiplexer 43, and an RRB [4: 0] signal is input to a select signal terminal of the multiplexer 43. An RNRBOK signal is output from the output terminal. Each register B ## USE, which is a D-type flip-flop, is a 1-bit register with a synchronous data load enable (EB), and each register B ## USE has a B ## output from the block access controller 41. The ALB signal is input. Further, each register B ## USE has a synchronous reset (RB) terminal, and a B ## FLB signal output from the block access controller 41 is input to each register B ## USE. The D input terminal of each register B ## USE is connected to a voltage source Vcc indicating a high level. The output signal from each of these registers B ## USE becomes an input signal to the 32-bit priority encoder 42, and the output signal from the 32-bit priority encoder 42 is output to the outside of the block controller 35 as a BEMP [4: 0] signal. And input to the block access controller 41.
[0060]
An output signal from each register B ## USE is input to an OR gate AND1 having 32 input terminals, and an output signal from the OR gate AND1 is input to the block access controller 41 as a BFULL signal. In addition, the block access controller 41 includes an RWB [4: 0] signal, an RBALREQB signal, an RRBFREE signal, an IWB [4: 0] signal, an IBALREQB signal, an IRBFREE signal, an AWB [4: 0] signal, an ABALREQB signal, and an ARBFREE signal. Are input, and the block access controller 41 outputs an RBALACKB signal, an IBALACKKB signal, and an ABALACKKB signal. Here, based on the input RBALREQB signal, IBALREQB signal, ABALREQB signal, and BFULL signal, the block access controller 41 generates an RBALACKB signal, an IBALACKKB signal, which is a permission signal for a new block allocation request for reception, synchronous transmission, and asynchronous transmission. Generate and output an ABALACKB signal. In the signal generation method, priorities may be equally assigned to the three types of request signals including the RBALREQB signal, the IBALREQB signal, and the ABALREQB signal, or priorities such as reception> synchronous transmission> asynchronous transmission may be given. The B ## ALB signal, B ## FRB signal, and B ## NXB signal are generated by the following equations.
[0061]
(Equation 1)
Figure 2004070656
[0062]
(Equation 2)
Figure 2004070656
[0063]
[Equation 3]
Figure 2004070656
[0064]
Here, “INV” means a negation operation or an inversion operation, “OR” means a logical sum operation, and “AND” means a logical product operation.
[0065]
FIG. 10 is a block diagram showing a configuration example of a counter which is a part of a circuit built in the reception timing controller 31 of FIG. The register RWRNBPTR in FIG. 10 is a 5-bit register, and stores a value indicating a block which can be written next to the block currently being written. Then, a BEMP [4: 0] signal is input to an input terminal of the register RWRNBPTR. The register RWRBPTR is a 5-bit register that stores a value indicating the block currently being written, and outputs an output signal thereof as an RWB [4: 0] signal. Then, an output signal from the register RWRBPTR is input to an input terminal of the register RWRBPTR. The 6-bit up counter 51 stores a value indicating which address of the block currently being written is to be written. The upper 5 bits of the RWRCNT [10: 0] signal indicating the address currently being written to the external single port memory 27 are the RWRCNT [10: 6] signals from the register RWRBPTR, and the lower 5 bits. The 6-bit signal is the RWRCNT [5: 0] signal from the DO [5: 0] terminal of the 6-bit up counter 51.
[0066]
The RBALACKB signal is input to the first input terminal of the OR gate OR1, the output signal from the OR gate OR1 is input to the first input terminal of the NAND gate NAND2, and the output signal from the OR gate OR1 is input to the LB input terminal of the register RWRNBPTR. At the same time as the synchronous load enable signal, and is also inputted to the DB input terminal of the 2-bit synchronous up / down counter 52 and the first input terminal of the NAND gate NAND2. The output signal from the NAND gate NAND2 is output to the D input terminal of the D-type flip-flop F1, the Q output signal from the flip-flop F1 is output to the block controller 35 as the RBALREQB signal, and the second input of the OR gate OR1. The input signal is input to the terminal and the second input terminal of the NAND gate NAND1, and the output signal from the NAND gate NAND1 is input to the LB input terminal of the register RWRBPTR as a synchronous load enable signal. The inverted QB output signal from the flip-flop F1 is input to a second input terminal of the OR gate OR2, and the output signal from the OR gate OR2 is output to a second input terminal of the NAND gate NAND2. The carry-out signal (CO) from the 6-bit up counter 51 is input to the first input terminal of the NAND gate NAND3, and the RXWRB signal is input to the second input terminal of the NAND gate NAND3 via the inverter N1. The output signal from the NAND gate NAND3 is output to the UB input terminal of the 2-bit synchronous up / down counter 52, and is also input to the first input terminal of the AND gate AND2 via the inverter N2, and the output signal from the AND gate AND2 is It is output to the data selection controller 34 as an RFT signal. The D0 output signal from the 2-bit synchronous up / down counter 52 is input to the second input terminal of the AND gate AND2 and the first input terminal of the OR gate OR3, and the D1 output signal of the 2-bit synchronous up / down counter 52 is output to the OR gate OR3. The signal is input to the second input terminal and is output to the LINK circuit 6 as an RXFULL signal. An output signal from the OR gate OR3 is input to a first input terminal of the NAND gate NAND1 and a first input terminal of the OR gate OR2.
[0067]
The register RRDBPTR is a 5-bit register that stores the value of the RNRB [4: 0] signal indicating the block currently being read, and outputs its output signal as the RRB [4: 0] signal. The 6-bit up counter 53 stores a value indicating which address of the block currently being read is to be read. The upper 5 bits of the RRDCNT [10: 0] signal indicating the address currently being read from the external single port memory 27 are the RRDCNT [10: 6] signals from the register RRDBPTR, and the lower 6 bits Becomes the RRDCNT [5: 0] signal which is the DO [5: 0] signal output from the 6-bit up counter 53. The RNRBOK signal is input to the first input terminal of the NAND gate NAND4, and the output signal of the NAND gate NAND4 is input to the LB input terminal of the register RRDBPTR as a synchronous load enable signal, and the D input of the D-type flip-flop F2. Input to the terminal. The Q output signal of the flip-flop F2 is output to the RB input terminal of the D-type flip-flop F3. The carry-out signal (CO) of the 6-bit up counter 53 is input to the first input terminal of the NAND gate NAND4, and the RFWRB signal is input to the second input terminal of the NAND gate NAND4 via the inverter N3. The output signal from the NAND gate NAND4 is input to the block controller 35 as an RRB FREE signal, and is also input to the flip-flop F3 as a clock signal. The D input terminal of the flip-flop F3 is connected to the voltage source Vcc indicating a high level, and the Q output signal from the flip-flop F3 is input to the second input terminal of the NAND gate NAND4.
[0068]
FIG. 11 is a block diagram showing a configuration example of a counter which is a part of a circuit built in the synchronous transmission timing controller 32 of FIG. The register IWRNBPTR in FIG. 11 is a 5-bit register, and stores a value indicating a block to which data can be written next to a block to which data is currently written. Then, a BEMP [4: 0] signal is input to an input terminal of the register IWRNBPTR. The register IWRBPTR is a 5-bit register that stores a value indicating the block currently being written, and outputs an output signal thereof as an IWB [4: 0] signal. Then, an output signal from the register IWRBPTR is input to an input terminal of the register IWRBPTR. The 6-bit up counter 54 stores a value indicating which address of the block currently being written is to be written. The upper five bits of the IIWRCNT [10: 0] signal indicating the address currently being written to the external single-port memory 27 become the IWRCNT [10: 6] signal which is the output signal from the register IWRBPTR, and the lower five bits. Six bits become an IWRCNT [5: 0] signal which is an output DO [5: 0] signal from the 6-bit up counter 54.
[0069]
The IBALACKB signal is input to the first input terminal of the OR gate OR4, and the output signal from the OR gate OR4 is input to the first input terminal of the NAND gate NAND6, and the synchronous load enable signal is input to the LB input terminal of the register IWRNBPTR. Is entered as The output signal from the NAND gate NAND6 is input to the D input terminal of the D-type flip-flop F4, the Q output signal from the flip-flop F4 is output to the block controller 35 as an IBALREQB signal, and the second input of the OR gate OR4. And the second input terminal of the NAND gate NAND5. The output signal from the NAND gate NAND5 is input to the LB input terminal of the register IWRBPTR as a synchronous load enable signal. The carry-out signal (CO) of the 6-bit up counter 54 is input to a first input terminal of the AND gate AND4, and an IFRDB signal is input to a second input terminal of the AND gate AND4 via the inverter N4. The output signal from the AND gate AND4 is input to the first input terminal of the NAND gate NAND5 and the first input terminal of the OR gate OR5, and the inverted QB output signal from the flip-flop F4 is input to the second input terminal of the OR gate OR5. Is entered. An output signal from the OR gate OR5 is input to a second input terminal of the NAND gate NAND6.
[0070]
The register IRDBPTR is a 5-bit register that stores the value of the INRB [4: 0] signal indicating the block currently being read, and outputs its signal as the IRB [4: 0] signal. The 6-bit up counter 55 stores a value indicating which address of the block currently being read is to be read. The upper five bits of the IRDCNT [10: 0] signal indicating the address currently being read from the external single-port memory 27 are the IRDCNT [10: 6] signals output from the register IRDBPTR, and the lower five bits. Six bits become an IRDCNT [5: 0] signal which is an output DO [5: 0] signal from the 6-bit up counter 55. The carry-out signal (CO) from the 6-bit up counter 55 is input to the first input terminal of the NAND gate NAND7, and the ITXRDB signal is input to the second input terminal of the NAND gate NAND7 via the inverter N5. The output signal from the NAND gate NAND7 is output to the block controller 35 as an IRBF FREE signal, and is input to the LB input terminal of the register IRDBPTR as a synchronous load enable signal.
[0071]
FIG. 12 is a block diagram showing a configuration example of a counter which is a part of a circuit built in the asynchronous transmission timing controller 33 of FIG. The register AWRNBPTR in FIG. 12 is a 5-bit register and stores a value indicating a block to which data can be written next to a block to which data is currently written. Then, a BEMP [4: 0] signal is input to an input terminal of the register AWRNBPTR. The register AWRBPTR is a 5-bit register that stores a value indicating the block currently being written, and outputs an output signal thereof as an AWB [4: 0] signal. Then, an output signal from the register AWRNBPTR is input to an input terminal of the register AWRBPTR. The 6-bit up counter 56 stores a value indicating which address of the block currently being written is to be written. The AWRCNT [10: 0] signal indicating the current address of the external single-port memory 27 to which data is being written has its upper 5-bit signal as AWRCNT [10: 6], which is the output signal from the register AWRBPTR, and its lower 5 bits. The 6-bit signal becomes the AWRCNT [5: 0] signal which is the DO [5: 0] signal output from the 6-bit up counter 56.
[0072]
The ABALACKB signal is input to the first input terminal of the OR gate OR6, and the output signal from the OR gate OR6 is input to the first input terminal of the NAND gate NAND9, and is input to the LB input terminal of the register AWRNBPTR as a synchronous load enable signal. Is done. The output signal from the NAND gate NAND9 is input to the D input terminal of the D-type flip-flop F5, the Q output signal from the flip-flop F5 is output to the block controller 35 as an ABALREQB signal, and the second input of the OR gate OR6. And the first input terminal of the NAND gate NAND8. The output signal from the NAND gate NAND8 is input to the LB input terminal of the register AWRBPTR as a synchronous load enable signal. The carry-out signal (CO) of the 6-bit up counter 56 is input to a first input terminal of the AND gate AND5, and an AFRDB signal is input to a second input terminal of the AND gate AND5 via the inverter N6. An output signal from the AND gate AND5 is input to a first input terminal of the NAND gate NAND8 and a first input terminal of the OR gate OR7, and an inverted QB output signal from the flip-flop F5 is input to a second input terminal of the OR gate OR7. Is entered. An output signal from the OR gate OR7 is input to a second input terminal of the NAND gate NAND9.
[0073]
The register ARDBPTR is a 5-bit register that stores the value of the ANRB [4: 0] signal indicating the block currently being read, and outputs its output signal as the ARB [4: 0] signal. The 6-bit up counter 57 stores a value indicating which address of the block currently being read is to be read. The upper five bits of the ARDCNT [10: 0] signal indicating the address currently being read from the external single-port memory 27 are the ARDCNT [10: 6] signals output from the register ARDBPTR, and the lower five bits thereof. Six bits become an ARDCNT [5: 0] signal which is an output DO [5: 0] signal from the 6-bit up counter 57. The carry-out signal (CO) of the 6-bit up counter 57 is input to the first input terminal of the NAND gate NAND10, and the ATXRDB signal is input to the second input terminal of the NAND gate NAND10 via the inverter N7. The output signal from the NAND gate NAND10 is output to the block controller 35 as an ARBF FREE signal, and is input to the LB input terminal of the register ARDBPTR as a synchronous load enable signal.
[0074]
Next, the operation of the above-described IEEE 1394 interface device 10 will be described with reference to FIGS. 13 to 24 and a timing chart of each signal.
[0075]
FIG. 13 shows an initial timing chart of each signal in the block controller 35 of the present embodiment. “LCLK” indicates a clock signal on the IEEE 194 bus B1 side. As shown in FIG. 13, blocks B00, B01, and B02 are allocated for reception, for synchronous transmission, and for asynchronous transmission, respectively. In addition, since none of the above blocks has been assigned a next write block, blocks B03, B04 and B05 are respectively assigned at timings t4, t6 and t8 as blocks following blocks B00, B01 and B02, respectively. Then, respective values are set in the registers B00NXPT, B01NXPT, and B02NXPT.
[0076]
FIG. 14 is a timing chart of each signal at the time of reception in the 3-port FIFO storage device 5 of the present embodiment when there is no switching of the write block. “DCLK” indicates a clock signal on the PCI bus B2 side. This timing chart is an embodiment in the case where the read / write block for reception is specified from the address “00h” of the block B00 and the operation is started. Then, at timings T2, T4, T6, T8, and T10, data D0, D1, D2, D3, and D4 are written from the LINK circuit 6 to the three-port FIFO storage device 5, respectively, so that the RWRCNT signal is incremented at each timing. , Data is sequentially stored in the single port memory 27. The data is sequentially read from the single-port memory 27 by incrementing the RRDCNT signal at timings T3, T5, T7, T9, and T11, and written to the reception FIFO memory 21. Then, at timings t13, t16, t21, t22 and t23, the data read from the three-port FIFO storage device 5 is sequentially output to the receiving DMA controller 2.
[0077]
FIG. 15 shows a timing chart of each signal at the time of synchronous transmission in the 3-port FIFO storage device 5 of the present embodiment when there is no switching of the write block. This timing chart is an embodiment in the case where the read / write block for synchronous transmission starts the operation specified by the address “00h” of the block B01. The data D0, D1, D2, D3, and D4 are written from the synchronous transmission DMA controller 3 to the synchronous transmission FIFO memory 22 at timings t2, t3, t4, t6, and t7, respectively, and timings T3, T4, T5, T6, and T7. Is read from the synchronous transmission FIFO memory 22, the IWRCNT signal is incremented at each timing, and the data is sequentially stored in the single port memory 27. Then, at timings T11, T12, T13, T14 and T15, the LINK circuit 6 sequentially reads data from the single port memory 27 while incrementing the IRDCNT signal.
[0078]
FIG. 16 is a timing chart of each signal at the time of asynchronous transmission in the 3-port FIFO storage device 5 according to the present embodiment when there is no switching of the write block. This timing chart is an embodiment in the case where the read / write block for asynchronous transmission is specified from the address “00h” of the block B02 and the operation is started. Data D0, D1, D2, D3 and D4 are written from the asynchronous transmission DMA controller 4 to the asynchronous transmission FIFO memory 23 at timings t2, t3, t4, t6 and t7, respectively, and the timings T3, T4, T5, T6 and T7. Is read from the asynchronous transmission FIFO memory 23, the AWRCNT signal is incremented at each timing, and data is sequentially stored in the single port memory 27. Then, at timings T11, T12, T13, T14, and T15, the LINK circuit 6 sequentially reads data from the single port memory 27 while incrementing the ARDCNT signal.
[0079]
FIG. 17 shows a timing chart of each signal at the time of reception in the three-port FIFO storage device 5 of the present embodiment when the write block is switched. This timing chart is an embodiment when the read / write block for reception is specified from the address “3Eh” of the block B00 and the operation is started. Then, at timings T2, T4, T6, T8, and T10, the data D0, D1, D2, D3, and D4 are written from the LINK circuit 6 to the three-port FIFO storage device 5, respectively. Therefore, the RWRCNT signal is incremented at each timing, and sequentially. Is stored in the single port memory 27. At timings T3, T5, T7, T9, and T11, the data is sequentially read from the single-port memory 27 and written to the reception FIFO memory 21 while incrementing the RRDCNT signal. The data sequentially read from the 3-port FIFO storage device 5 at timings t13, t16, t21, t22 and t23 is output to the receiving DMA controller 2. Then, at the time of writing at the timing T4, the RBALREQB signal goes low at the next timing T6 because the last data of the block B00, and the allocation processing of the next writing block is executed. At the timing T8, the block B06 is the next writing block. The block is allocated as a block next to the block B03. At timing T5, the last data of block B00 has been read, so at timing T6 the allocation of block B00 is released, and register B00USE is set to low level.
[0080]
FIG. 18 shows a timing chart of each signal at the time of synchronous transmission in the 3-port FIFO storage device 5 of the present embodiment when the write block is switched. This timing chart is an embodiment in the case where the read / write block for synchronous transmission is specified from the address “3Eh” of the block B01 and the operation is started. Data D0, D1, D2, D3, and D4 are written from the synchronous transmission DMA controller 3 to the synchronous transmission FIFO memory 22 at timings t2, t3, t4, t6, and t7, respectively, and the data is written at timings T3, T4, T7, and T7. At T8 and T9, the data is read from the synchronous transmission FIFO memory 22, the IWRCNT signal is incremented at each timing, and the data is sequentially stored in the single port memory 27. Then, at timings T11, T12, T13, T14 and T15, the LINK circuit 6 sequentially reads data from the single port memory 27 while incrementing the IRDCNT signal. Then, at the time of writing at the timing T4, since it is the last data of the block B01, the IBALREQB signal becomes low level at the next timing T5, and the allocation processing of the next write block is executed. Further, since the allocation of the next write block is not completed between the timings T5 and T6, the writing to the synchronous transmission FIFO memory 22 is also stopped. Then, at a timing T7, the block B06 is allocated as a block next to the block B04 which is the next write block. At timing T12, the last data of the block B01 is read, so at timing T13, the allocation of the block B01 is released, and the register B01USE is set to low level.
[0081]
FIG. 19 shows a timing chart of each signal at the time of asynchronous transmission in the three-port FIFO storage device 5 of the present embodiment when the write block is switched. This timing chart is an embodiment in the case where the read / write block for asynchronous transmission is specified from the address “3Eh” of the block B02 and the operation is started. Data D0, D1, D2, D3, and D4 are written from the asynchronous transmission DMA controller 4 to the asynchronous transmission FIFO memory 23 at timings t2, t3, t4, t6, and t7, respectively, and the data is written at timings T3, T4, T7, At T8 and T9, the data is read from the asynchronous transmission FIFO memory 23, the AWRCNT signal is incremented at each timing, and the data is sequentially stored in the single port memory 27. Then, at timings T11, T12, T13, T14, and T15, the LINK circuit 6 sequentially reads data from the single port memory 27 while incrementing the ARDCNT signal. Then, at the time of writing at the timing T4, the ABALREQB signal becomes low level at the next timing T5 because it is the last data of the block B02, and the next write block allocation processing is executed. Further, since the allocation of the next write block has not been completed between the timings T5 and T6, the writing to the asynchronous transmission FIFO memory 23 is also stopped. Then, at a timing T7, the block B06 is allocated as a block next to the block B05 which is the next write block. At timing T12, the last data of the block B02 is read, so at timing T13, the allocation of the block B02 is released, and the register B02USE is set to low level.
[0082]
FIG. 20 shows the state of each signal at the time of reception in the three-port FIFO storage device 5 according to the present embodiment when the write block is switched and the FIFO storage device becomes full without an empty block. 4 shows a timing chart. This timing chart shows that in the read / write block for reception, the block B00 is used and reading of the reception FIFO memory 21 is stopped for some reason, so that the RRDCNT signal which is the read address is stopped at "010h". This is an example when the operation is performed. At timings T0, T2, and T4, data is written from the LINK circuit 6 to the single-port memory 27. Since the last data of the block B00 is written at timing T2, the RBALREQB signal goes low at timing T4. However, since there is no empty block (the BFULL signal is at a high level), the RBALACKB signal does not go to a low level. Then, data writing from the LINK circuit 6 is sequentially performed, and the block B03 also executes writing of the final data at the timing T8. Therefore, at timing T8, the DISEL [1: 0] signal becomes "3" and the single port memory 27 becomes full, and the data "33'h1000000014" indicating this is forcibly written to the single port memory 27. Then, from timing T9, the RXFULL signal becomes high level, requesting the LINK circuit 6 to stop writing to the 3-port FIFO storage device 5. Then, after a while, the receiving DMA controller 2 starts reading data from the receiving FIFO memory 21, and the data is sequentially read at timings T10, T11, T12, and T13. Then, since the last data of the block B00 is read at the timing T10, the allocation of the block B00 is released at the timing T11, and the register B00USE becomes the low level. However, since the block B00 that has become an empty block at the timing T11 is allocated as the next write block after the block B03 that is the current write block, the register B00USE goes high at the timing T12. Further, since the next write block is allocated to the block B03, the RXFULL signal goes low at the timing T12, whereby the writing of the next received packet from the LINK circuit 6 is permitted. However, since the write block next to the block B00 is not allocated, the RBALREQB signal goes low again at the timing T13. Then, the receiving DMA controller 2 sequentially reads data from the receiving FIFO memory 21 and reads the last data of the block B03 at the timing T14, so that the block B03 is released at the timing T15 and the register B03USE goes to a low level. However, since the write block next to the block B00 has not been allocated, the block B03 that has become an empty block from timing T15 is allocated as the write block next to the block B00 at timing T16. Therefore, the register B03USE goes high at the timing T16.
[0083]
FIG. 21 is a timing chart when the reception and the synchronous transmission are mixed in the three-port FIFO storage device 5 of the present embodiment. In this timing chart, the operation starts when the read / write block for reception is specified from the address “00h” of the block B00, and the operation starts when the read / write block for synchronous transmission is specified from the address “00h” of the block B01. Is an example in the case where is started. At timings T2, T4, T6 and T8, data R0, R1, R2 and R3 are sequentially written from the LINK circuit 6 to the single port memory 27. At timings t2, t3, t4 and t6, data I0, I1, I2 and I3 are sequentially written from the synchronous transmission DMA controller 3 to the synchronous transmission FIFO memory 22. Then, at timings T5, T9, T11 and T13, the data R0, R1, R2 and R3 are sequentially written from the single port memory 27 to the reception FIFO memory 21. At timings T3, T7, T10 and T12, data I0, I1, I2 and I3 are sequentially written from the synchronous transmission FIFO memory 22 to the single port memory 27. Then, at timings t20, t23, t24, and t26, the data R0, R1, R2, and R3 are sequentially read from the receiving FIFO memory 21 to the receiving DMA controller 2. Then, at timings T14, T15, T16, and T17, the LINK circuit 6 sequentially reads the data I0, I1, I2, and I3 from the single port memory 27.
[0084]
FIG. 22 is a timing chart when reception and asynchronous transmission are mixed in the 3-port FIFO storage device 5 of the present embodiment. In this timing chart, the operation starts when the read / write block for reception is specified from the address “00h” of the block B00, and the operation starts when the read / write block for asynchronous transmission is specified from the address “00h” of the block B02. Is an example in which is started. At timings T2, T4, T6 and T8, data R0, R1, R2 and R3 are sequentially written from the LINK circuit 6 to the single port memory 27. At timings t2, t3, t4 and t6, data A0, A1, A2 and A3 are sequentially written from the asynchronous transmission DMA controller 4 to the asynchronous transmission FIFO memory 23. Then, at timings T5, T9, T11 and T13, the data R0, R1, R2 and R3 are sequentially written from the single port memory 27 to the reception FIFO memory 21. At timings T3, T7, T10, and T12, data A0, A1, A2, and A3 are sequentially written from the asynchronous transmission FIFO memory 23 to the single port memory 27. Then, at timings t20, t23, t24, and t26, the data R0, R1, R2, and R3 are sequentially read from the receiving FIFO memory 21 to the receiving DMA controller 2. Then, at timings T14, T15, T16 and T17, the LINK circuit 6 sequentially reads the data A0, A1, A2 and A3 from the single port memory 27.
[0085]
FIG. 23 shows a timing chart when the synchronous transmission and the asynchronous transmission are mixed in the 3-port FIFO storage device 5 of the present embodiment. In this timing chart, the operation starts when the read / write block for asynchronous transmission is specified from the address “00h” of the block B01, and the read / write block for asynchronous transmission is specified from the address “00h” of the block B02. It is an embodiment when the operation is started. At timings t2, t3 and t5, the data I0, I1 and I2 are sequentially written from the synchronous transmission DMA controller 3 to the synchronous transmission FIFO memory 22. At timings t4, t5, t6 and t8, data A0, A1, A2 and A3 are sequentially written from the asynchronous transmission DMA controller 4 to the asynchronous transmission FIFO memory 23. At timings T3, T5 and T7, the data I0, I1 and I2 are sequentially written from the synchronous transmission FIFO memory 22 to the single port memory 27. At timings T4, T6, T8 and T12, data A0, A1, A2 and A3 are sequentially written from the asynchronous transmission FIFO memory 23 to the single port memory 27. Then, at timings T9, T10, and T11, the LINK circuit 6 sequentially reads the data I0, I1, and I2 from the single port memory 27. Then, at timings T14, T15, T16 and T17, the LINK circuit 6 sequentially reads the data A0, A1, A2 and A3 from the single port memory 27.
[0086]
FIG. 24 is a timing chart when reception, synchronous transmission, and asynchronous transmission are mixed in the 3-port FIFO storage device 5 of the present embodiment. In this timing chart, the operation starts when the read / write block for reception is specified from the address “00h” of the block B00, and the operation starts when the read / write block for asynchronous transmission is specified from the address “00h” of the block B01. Is started, and the operation is started when the read / write block for asynchronous transmission is designated from the address “00h” of the block B02. At timings T2, T4, and T6, data R0, R1, and R2 are sequentially written to the single-port memory 27 from the LINK circuit. At timings t2, t3 and t4, data I0, I1 and I2 are sequentially written from the synchronous transmission DMA controller 3 to the synchronous transmission FIFO memory 22. At timings t4, t5, and t6, the data A0, A1, and A2 are sequentially written from the asynchronous transmission DMA controller 4 to the asynchronous transmission FIFO memory 23. Then, at timings T5, T9, and T12, the data R0, R1, and R2 are sequentially written from the single port memory 27 to the reception FIFO memory 21. At timings T3, T8 and T11, the data I0, I1 and I2 are sequentially written from the synchronous transmission FIFO memory 22 to the single port memory 27. At timings T7, T10, and T16, data A0, A1, and A2 are sequentially written from the asynchronous transmission FIFO memory 23 to the single port memory 27. Then, at timings t20, t21, and t22, the data R0, R1, and R2 are sequentially read from the reception FIFO memory 21 to the reception DMA controller 2. Then, at timings T13, T14, and T15, the LINK circuit 6 sequentially reads the data I0, I1, and I2 from the single port memory 27. After timing T18 (not shown), the LINK circuit 6 sequentially reads the data A0, A1, A2, and A3 from the single port memory 27.
[0087]
As described above, according to the present embodiment, in a data transfer device that temporarily stores data for transmission or reception in a storage device such as the single port memory 27 and then transfers the data, In response to a transmission data write request signal ITXFWREQB or ATXFWREQB when data is transferred and transmitted, and selects one unused block from the plurality of blocks. Then, the selected block is put into a use state, and the transmission data is written to the selected block, read and transferred, and in response to the reception data write request signal RXFRREQB when the data is transferred and received. Selecting one unused block from the plurality of blocks and setting the selected block as a use state. , Controls the reception data to forward reading after writing to the selected block. Accordingly, one storage device can be used for receiving most of the storage area when there are many received packets, and most of the storage area can be used for transmitting when there are many packets for transmission. It can be processed as if the capacity that can be used as a storage device for trust and reception is apparently increased, that is, the storage device can be used effectively and efficiently, and the processing capability as the storage device is improved. .
[0088]
Further, if the same processing capacity as in the case of having a plurality of FIFO storage devices as in the prior art is sufficient, the memory capacity of one FIFO storage device 5 according to the present embodiment is changed to the maximum capacity of the conventional plurality of FIFO storage devices. It is possible to reduce the size. That is, the memory capacity of the FIFO memory device 5 occupying a large gate as a transfer device can be greatly reduced. In other words, the same operation as the related art can be obtained by reducing the memory capacity of the FIFO storage device 5.
[0089]
Further, the scale of the additional circuit from the prior art for realizing the data transfer device according to the present embodiment is approximately 3000 gates of the entire block controller 35 of FIG. 9 and the timing controllers 31, 32, and 30 shown in FIGS. 26 is obtained by subtracting about 600 gates of the counter configuration example of the conventional timing controllers 124, 133 and 143 shown in FIG. 26 from about 900 gates of the 33 counter configuration example. That is, only a slight increase of about 3300 gates. That is, in order to improve the processing capacity, only a circuit increase of about 3300 gates is required, and if the processing capacity is the same, a circuit increase of about 3300 gates is required. Since the occupied FIFO memory device can be greatly reduced, the overall circuit size can be largely reduced.
[0090]
In the data transfer device, the control unit preferably selects a next block for writing data following the selected block when selecting one unused block among the plurality of blocks. The selected next block is reserved for use. Therefore, it is possible to reliably secure the next block for writing data following the selected block and shift to the data writing operation of the next block.
[0091]
In this case, if there is no write area of the block currently being written, the process proceeds to the next write block, but the write process cannot be performed unless the next write block of the next write block is allocated. For example, the writing process is stopped at timings T5 to T6 in FIG. 20 of the FIFO storage device 5 for transmission according to the present embodiment. However, since the FIFO memory device 5 for reception of the present embodiment is configured as described above, the write process can be continuously executed even when the current write block area runs out as shown at the timing T5 in FIG. In addition, the process can be continuous.
[0092]
In the above embodiment, the FIFO timing controller 28 for controlling the operation of the single port memory 27 is constituted by a hardware circuit. However, the present invention is not limited to this, and a computer executed by a digital signal processor (DSP) It may be constituted by a program which can be read by. That is, the step of controlling the single port memory 27 of the FIFO timing controller 28 can be represented by a computer-readable program, and the program is stored in a CD-ROM, a CD-R, a CD-RW, a DVD, a DVD-R. , A DVD-RW, a DVD-RAM, or other optical disk, or other computer-readable recording medium. As a result, it is possible to reduce the use amount of the memory area or to improve the processing capacity in the data transfer device operated by software.
[0093]
【The invention's effect】
As described above in detail, according to the data transfer device or the data transfer method of the present invention, in a data transfer device that temporarily stores data for transmission or reception in a storage device and then transfers the data, In response to a transmission data write request signal when data is transferred and transmitted, one unused block is selected from the plurality of blocks and the block is selected. The selected block is put into a use state, the transmission data is written to the selected block, read and transferred, and in response to a reception data write request signal when the data is transferred and received, the plurality of transmission data are written. One unused block is selected from the blocks, the selected block is used, the reception data is written to the selected block, and then read. Controls so as to feed. Accordingly, one storage device can be used for receiving most of the storage area when there are many received packets, and most of the storage area can be used for transmitting when there are many packets for transmission. It can be processed as if the capacity that can be used as a storage device for trust and reception is apparently increased, that is, the storage device can be used effectively and efficiently, and the processing capability as the storage device is improved. .
[0094]
In the data transfer device or the data transfer method, preferably, when selecting one unused block among the plurality of blocks, a next block for writing data following the selected block is preferably used. Is selected to secure the selected next block as a use state. Therefore, it is possible to reliably secure the next block for writing data following the selected block and shift to the data writing operation of the next block.
[0095]
Further, in the data transfer device or the data transfer method, preferably, the data transfer device or the data transfer method further includes first register means provided corresponding to each of the blocks and storing an address of a next block. Therefore, it is possible to reliably indicate the next block for writing data following the selected block and shift to the data writing operation of the next block.
[0096]
Further, in the data transfer device or the data transfer method, preferably, a second register is provided corresponding to each of the blocks and stores data indicating whether an address of a next block is selected and secured. Means are further provided. Therefore, information as to whether or not the next block for writing data following the selected block is secured can be obtained, and the process can proceed to the data writing operation of the next block.
[0097]
In the data transfer device or the data transfer method, preferably, when reading out data from the block, the control unit releases the block as an unused state. Therefore, by reliably releasing the blocks that are no longer used, the storage device can be used effectively and efficiently.
[0098]
Further, in the data transfer device or the data transfer method, preferably, the data transfer apparatus or the data transfer method further includes a third register unit that is provided corresponding to each of the blocks and stores data indicating whether each of the blocks is in use. It is characterized by having. Therefore, it is possible to obtain information as to whether or not a block to be written in the storage device is in use, and search for the next block can be executed easily and at high speed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an IEEE 1394 interface device according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a detailed configuration of the 3-port FIFO storage device of FIG.
FIG. 3 is a diagram for explaining a data storage method using the single port memory 27 of FIG. 2;
FIG. 4 is a diagram showing an initial state when receiving FIFO data, synchronous transmission FIFO data, and asynchronous transmission FIFO data are stored in the single port memory 27 of FIG. 3;
FIG. 5 is a diagram showing a state when a packet is received in the single port memory 27 of FIG. 4;
6 is a diagram for explaining a method of processing a packet received in the single port memory 27 of FIG.
FIG. 7 is a diagram for explaining a method of preparing for synchronous transmission of a packet in the single port memory 27 of FIG. 5;
FIG. 8 is a block diagram showing a detailed configuration of a FIFO timing controller 28 of FIG. 2;
FIG. 9 is a block diagram showing a detailed configuration of a block controller 35 of FIG. 8;
FIG. 10 is a block diagram showing a detailed configuration of a reception timing controller 31 of FIG. 8;
11 is a block diagram showing a detailed configuration of the synchronous transmission timing controller 32 of FIG. 8;
FIG. 12 is a block diagram showing a detailed configuration of an asynchronous transmission timing controller 33 of FIG. 8;
FIG. 13 is a timing chart showing an initial state of each signal in the block controller 35 of FIG. 8;
FIG. 14 is a timing chart showing signals at the time of reception in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 15 is a timing chart showing signals at the time of synchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 16 is a timing chart showing signals at the time of asynchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 17 is a timing chart showing signals at the time of reception in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 18 is a timing chart showing signals at the time of synchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 19 is a timing chart showing signals at the time of asynchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
20 is a timing chart showing signals at the time of reception in the three-port FIFO storage device 5 of FIG. 1;
21 is a timing chart showing signals at the time of reception and synchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 22 is a timing chart showing signals at the time of reception and asynchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
FIG. 23 is a timing chart showing signals at the time of synchronous transmission and asynchronous transmission in the 3-port FIFO storage device 5 of FIG. 1;
24 is a timing chart showing signals at the time of reception, synchronous transmission, and asynchronous transmission in the three-port FIFO storage device 5 of FIG. 1;
FIG. 25 is a block diagram showing the configuration of a conventional IEEE 1394 interface device.
26 is a block diagram showing a detailed configuration of the receiving FIFO storage device 105, the synchronous transmission FIFO storage device 106, and the asynchronous transmission FIFO storage device 107 of FIG.
27 (a), (b) and (c) are block diagrams showing a detailed configuration of the timing controllers 124, 133 and 144 of FIG. 26, respectively.
[Explanation of symbols]
1: PCI interface controller,
2 ... DMA controller for reception,
3 ... DMA controller for synchronous transmission,
4: DMA controller for asynchronous transmission
5 ... 3-port FIFO storage device,
6 ... LINK circuit,
7 ... PHY circuit,
10 ... IEEE1394 interface device,
11 ... RAM,
12 ... CPU,
13. Personal computer,
21: FIFO memory for reception,
22: FIFO memory for synchronous transmission,
23: FIFO memory for asynchronous transmission,
24, 25, 26, 43 to 46 ... multiplexer,
27 ... Single port memory,
28 ... Timing controller,
31 ... Reception timing controller
32 ... Synchronous transmission timing controller,
33 ... Asynchronous transmission timing controller
34 ... data selection controller
35 ... Block controller,
41 ... Block access controller,
42 ... 32-bit priority encoder,
51, 53, 54, 55, 56, 57 ... 6-bit up counter,
52 2-bit synchronous up / down counter,
B1 ... IEEE 1394 bus,
B2: PCI bus,
B00NXPT to B31NXPT, B00NOK to B31NOK, B00USE to B31USE, RRDBPTR, RWRBPTR, IRDBPTR, IWRBPTR, ARDBPTR, AWRBPTR, RWRNBPTR, IWRNBBPTR, AWRNBPTR ... registers,
B00 to B31 ... block,
AND1 to AND5 ... AND gate,
OR1 to OR7 ... OR gate,
NAND1 to NAND10: NAND gate,
N1 to N7 ... inverters
F1 to F5: flip-flops.

Claims (13)

送信又は受信のためのデータを記憶装置に一時的に格納した後転送するデータ転送装置において、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御する制御手段を備えたことを特徴とするデータ転送装置。In a data transfer device that temporarily stores data for transmission or reception in a storage device and then transfers the data, the storage device is divided into a plurality of blocks of a predetermined same unit, and data is transferred and transmitted. In response to the transmission data write request signal, one unused block is selected from the plurality of blocks, the selected block is used, and the transmission data is written to the selected block and then read. In response to a data write request signal for reception when data is transferred and received, one of the plurality of blocks is selected and the selected block is set to a use state. A data transfer device comprising: a control unit that controls reception data to be written to the selected block, read out, and transferred. 上記制御手段は、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保することを特徴とする請求項1記載のデータ転送装置。When selecting one unused block from among the plurality of blocks, the control means selects a next block for writing data following the selected block, and sets the selected next block in a use state. The data transfer device according to claim 1, wherein the data transfer device is secured. 上記各ブロックに対応して設けられ、次のブロックのアドレスを記憶する第1のレジスタ手段をさらに備えたことを特徴とする請求項2記載のデータ転送装置。3. The data transfer device according to claim 2, further comprising first register means provided corresponding to each of said blocks and storing an address of a next block. 上記各ブロックに対応して設けられ、次のブロックのアドレスが選択されて確保されているか否かを示すデータを記憶する第2のレジスタ手段をさらに備えたことを特徴とする請求項2又は3記載のデータ転送装置。4. The apparatus according to claim 2, further comprising second register means provided for each of said blocks and storing data indicating whether an address of a next block is selected and secured. A data transfer device according to claim 1. 上記制御手段は、上記ブロックからデータを読み出したとき、当該ブロックを未使用状態として解放することを特徴とする請求項1乃至4のうちのいずれか1つに記載のデータ転送装置。5. The data transfer device according to claim 1, wherein the control unit releases the block as an unused state when reading data from the block. 上記各ブロックに対応して設けられ、上記各ブロックが使用状態であるか否かを示すデータを記憶する第3のレジスタ手段をさらに備えたことを特徴とする請求項1乃至5のうちいずれか1つに記載のデータ転送装置。6. The apparatus according to claim 1, further comprising a third register provided in correspondence with each of said blocks and storing data indicating whether each of said blocks is in use. The data transfer device according to one. 送信又は受信のためのデータを記憶装置に一時的に格納した後転送するデータ転送方法において、上記記憶装置を所定の同一の単位の複数のブロックに分割し、データを転送して送信するときの送信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、送信用データを当該選択したブロックに書き込んだ後読み出して転送するとともに、データを転送して受信するときの受信用データ書込要求信号に応答して、上記複数のブロックのうち未使用の1つのブロックを選択して当該選択したブロックを使用状態とし、受信用データを当該選択したブロックに書き込んだ後読み出して転送するように制御するステップを含むことを特徴とするデータ転送方法。In a data transfer method in which data for transmission or reception is temporarily stored in a storage device and then transferred, the storage device is divided into a plurality of blocks of a predetermined same unit, and data is transferred and transmitted. In response to the transmission data write request signal, one unused block among the plurality of blocks is selected, the selected block is used, and the transmission data is written to the selected block and then read. In response to a reception data write request signal when data is transferred and received, one of the plurality of blocks is selected and an unused block is set to a use state. Controlling the writing of the receiving data into the selected block, and then reading and transferring the data. 上記制御するステップは、上記複数のブロックのうち未使用の1つのブロックを選択するときに、選択したブロックに続いてデータを書き込むための次のブロックを選択して当該選択した次のブロックを使用状態として確保することを特徴とする請求項7記載のデータ転送方法。The step of controlling includes, when selecting an unused block among the plurality of blocks, selecting a next block for writing data following the selected block and using the selected next block 8. The data transfer method according to claim 7, wherein the state is secured. 上記各ブロックに対応して設けられた第1のレジスタ手段に、次のブロックのアドレスを記憶するステップをさらに含むことを特徴とする請求項8記載のデータ転送方法。9. The data transfer method according to claim 8, further comprising the step of storing an address of a next block in first register means provided for each of said blocks. 上記各ブロックに対応して設けられた第2のレジスタ手段に、次のブロックのアドレスが選択されて確保されているか否かを示すデータを記憶するステップをさらに含むことを特徴とする請求項8又は9記載のデータ転送方法。9. The method according to claim 8, further comprising the step of storing data indicating whether or not the address of the next block is selected and secured in the second register means provided for each of the blocks. Or the data transfer method according to 9. 上記制御するステップは、上記ブロックからデータを読み出したとき、当該ブロックを未使用状態として解放することを特徴とする請求項7乃至10のうちのいずれか1つに記載のデータ転送方法。11. The data transfer method according to claim 7, wherein in the controlling step, when data is read from the block, the block is released as an unused state. 上記各ブロックに対応して設けられた第3のレジスタ手段に、上記各ブロックが使用状態であるか否かを示すデータを記憶するステップをさらに含むことを特徴とする請求項7乃至11のうちいずれか1つに記載のデータ転送方法。12. The method according to claim 7, further comprising the step of storing data indicating whether or not each of the blocks is in use in a third register provided for each of the blocks. The data transfer method according to any one of the above. 請求項7乃至12のうちのいずれか1つに記載のデータ転送方法を含むことを特徴とするコンピュータで読取可能なデータ転送方法を含むプログラム。A program including a computer-readable data transfer method, comprising the data transfer method according to any one of claims 7 to 12.
JP2002228913A 2002-08-06 2002-08-06 Data transfer unit, data transfer method and program including the same method Pending JP2004070656A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002228913A JP2004070656A (en) 2002-08-06 2002-08-06 Data transfer unit, data transfer method and program including the same method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002228913A JP2004070656A (en) 2002-08-06 2002-08-06 Data transfer unit, data transfer method and program including the same method

Publications (1)

Publication Number Publication Date
JP2004070656A true JP2004070656A (en) 2004-03-04

Family

ID=32015480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002228913A Pending JP2004070656A (en) 2002-08-06 2002-08-06 Data transfer unit, data transfer method and program including the same method

Country Status (1)

Country Link
JP (1) JP2004070656A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8049923B2 (en) 2005-05-31 2011-11-01 Ricoh Company Ltd. Method and apparatus for image processing capable of efficiently interfacing with different digital signal processors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8049923B2 (en) 2005-05-31 2011-11-01 Ricoh Company Ltd. Method and apparatus for image processing capable of efficiently interfacing with different digital signal processors

Similar Documents

Publication Publication Date Title
US6070205A (en) High-speed processor system having bus arbitration mechanism
US7908416B2 (en) Data processing unit and bus arbitration unit
US5816921A (en) Data transferring device and video game apparatus using the same
JP3649226B2 (en) Data transfer control device, electronic device, and data transfer control method
JP2000148444A (en) Multi-logical fifo system
US7925804B2 (en) FIFO device and method of storing data in FIFO buffer
JP3732139B2 (en) Memory control circuit and memory bus arbitration method
EP1006451B1 (en) A DMA transfer device capable of high-speed consecutive access to pages in a memory
JPH06202970A (en) Data path providing method and device and data processing system
JP2003196226A (en) Computer system component
US6684278B1 (en) Microcomputer and memory access control method
JP3614161B2 (en) Data transfer control device, electronic device, and data transfer control method
JP3467382B2 (en) High speed processor
JP2004070656A (en) Data transfer unit, data transfer method and program including the same method
JP2000029826A (en) Three-port fifo data buffer having multilevel caching
JP4536189B2 (en) DMA transfer apparatus and DMA transfer system
WO2006004166A1 (en) Data processing unit and compatible processor
JPH10228446A (en) Bus arbitration system
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
JP2001189935A (en) Mpeg decoder using common use memory
JP3343207B2 (en) Memory interface device
US20020029306A1 (en) System LSI having communication function
WO2021226919A1 (en) Removing invisible layers from rendering queue
JP3910165B2 (en) High speed processor
JP2000347929A (en) Memory ic