JP4410978B2 - Data transfer apparatus and operation control method thereof - Google Patents
Data transfer apparatus and operation control method thereof Download PDFInfo
- Publication number
- JP4410978B2 JP4410978B2 JP2002207105A JP2002207105A JP4410978B2 JP 4410978 B2 JP4410978 B2 JP 4410978B2 JP 2002207105 A JP2002207105 A JP 2002207105A JP 2002207105 A JP2002207105 A JP 2002207105A JP 4410978 B2 JP4410978 B2 JP 4410978B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transmission
- circuit unit
- system device
- data transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、データ送信用にFIFO等の記憶装置を用いたIEEE1394等で使用するデータ転送装置に関し、特にOHCI(Open Host Controller Interface)規格に準拠したLINKデバイスをなすデータ転送装置に関する。
【0002】
【従来の技術】
従来、データ送信用にFIFO等の記憶装置を用いIEEE1394の規格に準拠したデータ転送装置では、パケット送信の開始タイミングが遅いと転送性能を低下させるという問題があった。このような問題が特に顕著に表れるのは、IEEE1394規格に準拠したインタフェース(以下、IEEE1394インタフェースと呼ぶ)を有するパーソナルコンピュータ(以下、PCと呼ぶ)にハードディスク装置(以下、HDD装置と呼ぶ)を接続して、その相互間でデータ転送したときである。
【0003】
このような場合、PCとHDD装置は、IEEE1394の規格で規定されているアイソクロナス(Isochronous)パケットとアシンクロナス(Asynchronous)パケットの内、アシンクロナスパケットを使用している。また、アシンクロナスパケットの内でもソフトウェアが介在せずハードウェアのみで高速にデータ転送を行うために用意されたフィジカル・リクエスト(Physical Request)パケットがHDD装置からPCに送信される。そして、PC内のIEEE1394インタフェース装置は、受信したフィジカル・リクエストパケットに対する処理を実行した後、フィジカル・レスポンス(Physical Response)パケットを送信する。
【0004】
PCのIEEE1394インタフェース装置とHDD装置はIEEE1394の規格に準拠したバス(以下、IEEE1394バスと呼ぶ)で接続されており、IEEE1394インタフェース装置は、PCIバスを介してPCのCPUに接続されている。このようなPC内のIEEE1394インタフェース装置でのデータの流れについて説明する。図15は、IEEE1394バス及びPCIバスでのデータの流れにおける概略のタイミング例を示した図である。
【0005】
図15で示しているように、A期間では、HDD装置からIEEE1394バス上にPCへのフィジカル・リードリクエストパケットが送信される。次に、B期間では、PC内のIEEE1394インタフェース装置は、PCIバス及びチップセットを介してPC内のメモリ部からデータを読み出し、該メモリ部からのデータ読み出しが完了して送信用FIFOにパケットを準備する。次に、C期間では、IEEE1394バス上にフィジカル・リードレスポンスパケットがPCからHDD装置に送信される。
【0006】
このような状態では、HDD装置からPCへのデータ転送要求はフィジカル・リードリクエストパケットでなされ、ソフトウェアが介在せずにハードウェアのみで高速にデータ転送しようとしているため、図16で示すように、B期間でのデータ読み出し処理が終了していない状態でも、送信用FIFOには送信パケットの最初のデータは用意できていることから、C期間のスタートを早めて処理能力を向上させる方法が考えられる。
【0007】
【発明が解決しようとする課題】
しかし、IEEE1394の規格では、一度パケットを送信し始めるとそのデータ送信を止めることできなかった。このため、前記のような処理能力を向上させる方法では、前記送信開始時間を早め過ぎると、図17で示すように、PCIバス側のデータ読み出しが間に合わず、IEEE1394バス上に送信しているフィジカル・レスポンスパケットのデータが途切れ、図17の斜線で示した部分が不完全なデータ部分となり、不完全なパケットになってしまうという問題があった。
【0008】
また、前記送信開始時間をあまり早めないような場合においても、PCIバスには様々なデバイスが接続されており、これらのデバイスのアクセスによって、IEEE1394インタフェース装置に割り当てられるPCIバス使用時間が短くなり、送信パケットにおける最後の方のデータが準備できない場合があった。このような場合、IEEE1394のプロトコルでは、再度HDD装置が前記と同じフィジカル・リクエストパケットを送信して再処理が開始されることから、処理能力が低下するという問題があった。
【0009】
本発明は、上記のような問題を解決するためになされたものであり、送信パケットの送信開始タイミングを早くして処理能力を向上させることができると共に、不完全なデータエラーパケットの発生を抑えることができるデータ転送装置及びその動作制御方法を得ることを目的とする。
【0010】
【課題を解決するための手段】
この発明に係るデータ転送装置は、外部システム装置と内部システム装置との間でデータ転送を行うデータ転送装置において、
前記内部システム装置とのインタフェースを行う第1インタフェース回路部と、
前記外部システム装置とのインタフェースを行う第2インタフェース回路部と、
前記第1インタフェース回路部を介して前記内部システム装置から入力されたデータを一時的に記憶し、入力された制御信号に応じて、該記憶したデータを第2インタフェース回路部を介して前記外部システム装置へ送信する送信用データ記憶部と、
該送信用データ記憶部に記憶されるライトデータ総数をモニタし、該モニタしたライトデータ総数が所定値を超えると、前記送信用データ記憶部に記憶されたライトデータを前記第2インタフェース回路部へ送信させる、送信用データ記憶部の動作制御を行う制御回路部と、
を備え、
前記制御回路部は、前記モニタしたライトデータ総数が所定値になる前の期間において、データ転送可能な状態であることを示す信号が前記第1インタフェース回路部から入力されると共にデータ転送不可能な状態であることを示す信号が前記内部システム装置から入力される期間をモニタし、該期間を前記ライトデータのカウント時間に対応するように前記所定値をインクリメントさせ、前記モニタしたライトデータ総数が、該所定値未満であると共に前記外部システム装置から送信要求があったデータ量未満である場合は、前記送信用データ記憶部に対して前記第2インタフェース回路部へのデータ送信を禁止するものである。
【0011】
具体的には、前記制御回路部は、データ転送が不可能な状態であることを示す信号が前記内部システム装置から入力されている間は、あらかじめ設定された値を前記所定値に加算するようにした。
【0012】
また、前記制御回路部は、データ転送が可能な状態であることを示す信号が前記内部システム装置から入力されている間は、前記所定値に対する、前記あらかじめ設定された値の加算を停止するようにしてもよい。
【0013】
一方、前記制御回路部は、送信用データ記憶部から第2インタフェース回路部へデータ送信を行っている際に、前記内部システム装置からのデータ送信が間に合わず該送信用データ記憶部からのデータ送信に失敗すると、内部システム装置から再度データ転送が行われるときに、前記モニタしたライトデータ総数が、前記外部システム装置から送信要求があったデータ量になると、前記送信用データ記憶部に対して前記第2インタフェース回路部へのデータ送信を行わせるようにしてもよい。
また、この発明に係るデータ転送装置の動作制御方法は、内部システム装置とのインタフェースを行う第1インタフェース回路部と、
外部システム装置とのインタフェースを行う第2インタフェース回路部と、
前記第1インタフェース回路部を介して前記内部システム装置から入力されたデータを一時的に記憶し、入力された制御信号に応じて、該記憶したデータを第2インタフェース回路部を介して前記外部システム装置へ送信する送信用データ記憶部とを備えた、前記外部システム装置と前記内部システム装置との間でデータ転送を行うデータ転送装置の動作制御方法において、
前記送信用データ記憶部に記憶されたライトデータ総数をモニタし、
該モニタしたライトデータ総数が所定値になる前の期間において、
データ転送可能な状態であることを示す信号が前記第1インタフェース回路部から入力されると共にデータ転送不可能な状態であることを示す信号が前記内部システム装置から入力される期間をモニタし、
該期間を前記ライトデータのカウント時間に対応するように前記所定値をインクリメントさせ、
前記モニタしたライトデータ総数が、該所定値未満であると共に前記外部システム装置から送信要求があったデータ量未満である場合は、前記送信用データ記憶部に対して前記第2インタフェース回路部へのデータ送信を禁止するようにした。
具体的には、データ転送が不可能な状態であることを示す信号が前記内部システム装置から入力されている間は、あらかじめ設定された値を前記所定値に加算するようにした。
また、データ転送が可能な状態であることを示す信号が前記内部システム装置から入力されている間は、前記所定値に対する、前記あらかじめ設定された値の加算を停止するようにしてもよい。
一方、前記送信用データ記憶部から前記第2インタフェース回路部へデータ送信を行っている際に、前記内部システム装置からのデータ送信が間に合わず該送信用データ記憶部からのデータ送信に失敗すると、内部システム装置から再度データ転送が行われるときに、前記モニタしたライトデータ総数が、前記外部システム装置から送信要求があったデータ量になると、前記送信用データ記憶部に対して前記第2インタフェース回路部へのデータ送信を行わせるようにしてもよい。
【0014】
【発明の実施の形態】
次に、図面に示す実施の形態に基づいて、本発明を詳細に説明する。
第1の実施の形態.
図1は、本発明の第1の実施の形態におけるデータ転送装置の例を示したブロック図である。なお、図1では、IEEE1394規格に準拠したPCに、IEEE1394規格に準拠したHDD装置を接続し、該PCとHDD装置との相互間でデータ転送を行う場合を例にして示している。また、図1で示した各ブロック間の矢印は、データの流れのみを示している。
【0015】
図1において、データ転送装置1は、IEEE1394インタフェース装置をなしてPC2内に設けられており、IEEE1394バス3を介してIEEE1394規格に準拠したHDD装置4に接続されている。更に、データ転送装置1は、PC2内で、PCIバス5を介してチップセット6に接続され、該チップセット6はCPU7及びメモリ部8にそれぞれ接続されている。チップセット6は、PCIバス5とCPU7及びメモリ部8とのインタフェースを行うものである。なお、HDD装置4は外部システム装置をなし、PCIバス5、チップセット6、CPU7及びメモリ部8は内部システム装置をなす。
【0016】
一方、データ転送装置1は、IEEE1394規格に準拠したリンク(LINK)層と物理(PHY)層が形成されてなるLINK/PHY回路11と、受信用FIFO12と、受信用DMAC(Direct Memory Access Controller)13と、送信用DMAC14と、送信用FIFO15と、PCIバス5との間でのデータ送受信の制御を行うPCIインタフェース制御回路16とを備えている。なお、LINK/PHY回路11は第2インタフェース回路部を、PCIインタフェース制御回路16は第1インタフェース回路部をそれぞれなし、送信用DMAC14は制御回路部を、送信用FIFO15は送信用データ記憶部をそれぞれなす。
【0017】
LINK/PHY回路11は、IEEE1394バス3を介してHDD装置4から入力されたデータを受信用FIFO12に一時的に記憶し、受信用DMAC13は、受信用FIFO12に記憶されたデータを読み出し(以下、データの読み出しをリードと呼ぶ)、該リードしたデータに応じて該データを送信用DMAC14又はPCIインタフェース制御回路16に出力する。PCIインタフェース制御回路16は、入力されたデータをPCIバス5を介してチップセット6に出力する。一方、送信用DMAC14は、PCIインタフェース制御回路16に入力されたデータを送信用FIFO15に一時的に記憶させ、送信用FIFO15に記憶されたデータは、LINK/PHY回路11を介してIEEE1394バス3に出力される。
【0018】
PC2とHDD装置4は、相互間でデータ転送を行う場合、IEEE1394規格で規定されているアイソクロナスパケットとアシンクロナスパケットの内、アシンクロナスパケットを使用している。また、アシンクロナスパケットの内でも、ソフトウェアが介在せずハードウェアのみで高速にデータ転送をするために用意されたフィジカル・リクエストパケットがHDD装置4からPC2に送信される。そして、PC2にあるデータ転送装置1は、受信したフィジカル・リクエストパケットに対する処理を実行した後、フィジカル・レスポンスパケットをHDD装置4に送信する。
【0019】
このような場合におけるデータ転送装置1内のデータの流れについて、もう少し詳細に説明する。まず、HDD装置4からフィジカル・リクエストパケットがPC2にIEEE1394バス3を介して送信される。該フィジカル・リクエストパケットは、LINK/PHY回路11を経て受信用FIFO12に蓄えられる。そして、受信用DMAC13は、受信用FIFO12から前記フィジカル・リクエストパケットをリードし、該リードしたパケットが単純なアシンクロナスパケットではなくフィジカルパケットであると判断すると、送信用DMAC14に該パケットを転送する。
【0020】
次に、送信用DMAC14は、入力されたパケットの内容にしたがって、PCIバス5に接続されたチップセット6を経由して、メモリ部8から所望のデータをリードして送信用FIFO15に蓄える。PCIバス5を介してメモリ部8から所定のデータをリードして、送信用FIFO15に、フィジカル・レスポンスパケットが送信用DMAC14内に内蔵されたレジスタ値数分準備できると、送信用DMAC14は、LINK/PHY回路11に送信準備ができたことを示す制御信号をイネーブルにして、LINK/PHY回路11から該フィジカル・レスポンスパケットがIEEE1394バス3を介してHDD装置4へ送信される。
【0021】
一方、PCIバス5を使用してメモリ部8の内部データをリードしているとき、PCIバス5の空き状況やメモリ部8にデータが用意できているかどうか等でデータリードに要する時間が時々刻々と変化する。送信用DMAC14は、該変化をPCIバス5の状態を示す信号から判断し、内蔵レジスタ(図示せず)の値を変える。例えば、PCIバス5が空いていないためデータリードができない場合は該レジスタ値を大きくし、PCIバス5が空いていてデータをスムーズにリードできる場合は該レジスタ値を小さくする。
【0022】
このようにすることにより、図16で示したC期間の開始時期が、PCIバス5を介してのデータリード状況に応じて自動的に前後し、図17で示したような状態になりにくくすることができる。また、受信したフィジカル・リクエストパケットに対するフィジカル・レスポンスパケットの送信を最適な時間に開始するだけでなく、単純なアシンクロナスパケットの送信を最適な時間で開始することにも使用することができる。
【0023】
ここで、図2は、IEEE1394規格のパケットの概略構成例を示した図である。図2に示すように、IEEE1394のパケットは、1wordが32bitで4word以下で構成された、パケットのタイプやアドレス等の情報が入ったヘッダー部と、1wordが32bitで2048word以下で構成された、データが入っているデータ部とに大別される。また、パケットの種類によってはデータ部がないパケットも存在する。
【0024】
また、送信用DMAC14は、送信用パケットを作成するためのプログラムに似たデスクリプタというデータを使用する。図3は、このようなデスクリプタの概略構成例を示した図である。図3に示すように、デスクリプタは、1wordが32bitで4wordを1つの基本単位とし、1つのデスクリプタは最大8wordで構成されている。デスクリプタDescriptor0〜Descriptor3には、デスクリプタのタイプ、データ部を作成するためのメモリアドレス及び次のデスクリプタメモリアドレス等が入ったコントロール部分が、デスクリプタDescriptor4〜Descriptor7には、送信用FIFO15に書き込まれる(以下、データの書き込みをライトと呼ぶ)送信パケットのヘッダー部のデータが蓄えられている。
【0025】
次に、図4は、送信用DMAC14の構成例を示したブロック図である。図4で示すように、送信用DMAC14は、送信パケットを作成するプログラムのようなものであるデスクリプタ又は前述したようなフィジカル・リードリクエストパケットを蓄えるレジスタ21を備え、該レジスタ21は、32bit×8wordのレジスタで構成されている。フィジカル・リードリクエストパケットは、受信用DMAC13からデータバスREQD[31:0]から入力され、デスクリプタは、PCIインタフェース制御回路16内のPCIマスタコントローラ(図示せず)からリードデータバスMD[31:0]を介して入力される。
【0026】
また、送信用DMAC14は、マルチプレクサ(MUX)22を備え、該マルチプレクサ22は、レジスタ21から入力される送信用パケットにおけるヘッダー部のデータ、又はリードデータバスMD[31:0]から入力される送信用パケットにおけるデータ部のデータのいずれかを排他的に選択し、データバスFD[31:0]を介して送信用FIFO15に出力する。また、送信用DMAC14は、送信用DMAC14内のすべてのタイミング制御信号を作成するタイミング制御回路部23を備えている。該タイミング制御回路部23には、フィジカル・リードリクエストパケットのデータライト期間を示す信号REQWRBが受信用DMAC13から入力される。
【0027】
タイミング制御回路部23は、前記PCIマスタコントローラに対して、PCIマスタコントローラへのアドレスをデータバスMA[31:0]へ、及びリード要求のデータレングス値を示すデータをデータバスML[15:0]へそれぞれ出力すると共に、リード要求開始を示す信号MREQ及びデータをリードすることを示す信号MRDBをそれぞれ出力する。信号MREQはハイレベルでアクティブとなり、信号MRDBはローレベルでアクティブとなる。
【0028】
タイミング制御回路部23は、前記PCIマスタコントローラ内にあるFIFO(図示せず)にリードされたデータがないことを示す信号MEMPが入力される。また、タイミング制御回路部23は、PCIインタフェース制御回路16内のPCIスレーブコントローラ(図示せず)に接続された入出力データバスSD[31:0]が接続され、該PCIスレーブコントローラからのライト要求信号SWRBが入力され、タイミング制御回路部23内にあるスタートレジスタ31へのライトを実現する。
【0029】
タイミング制御回路部23は、タイミング制御を実施するために必要なデータが、レジスタ21からデータバスDD#[31:0](#は0から3の4系統のバスであることを示す)を介して入力される。また、タイミング制御回路部23は、送信用FIFO15へのライトパケットの最終データであることを示す信号FEOP、送信用FIFO15へのライト要求信号FWRB、及び送信用FIFO15にデータが用意できLINK/PHY回路11に送信開始を要求する信号FREQBを出力する。
【0030】
該信号FREQBは、コンパレータ32から出力され、該コンパレータ32には、入力として送信用パケットのデータ部のデータを送信用FIFO15にライトしたワード数をカウントするデータアップカウンタ33からの出力データバスDTC[15:0]からのデータ、及びデータバスDD#[31:0]からのデータから要求バイト数データを伝送するデータバスDL[15:0]からのデータがそれぞれ入力される。
【0031】
更に、コンパレータ32には、外部から設定可能なスタートレジスタ31から出力データバスSTV[15:0]を介して出力されたデータを、演算回路34によって、信号PIRDYB及びPTRDYBから最適値に自動的に変更されたデータが、データバスCSTV[15:0]を介して入力される。信号PIRDYBは、PCIマスタコントローラがデータ転送可能な状態であるか否かを示すPCIマスタコントローラから出力された信号であり、信号PTRDYBは、メモリ部8がデータ転送可能な状態にあるか否かを示すチップセット6から出力された信号である。
【0032】
コンパレータ32の出力信号FREQBが、(データバスDTC[15:0]からのデータ)≧(データバスDL[15:0]からのデータ)及び/又は(データバスDTC[15:0]からのデータ)≧(データバスCSTV[15:0]からのデータ)である場合、ロー(Low)レベルとなってアサートされ、送信用FIFO15に対して送信要求が行われる。送信用DMAC14は、レスポンスパケットを準備するために必要なPCIバス5からのデータリードの処理状況によって、該パケットの送信開始時間を自動的に変更させるようにした。
【0033】
図5は、演算回路34の内部構成例を示したブロック図である。図5に示すように、演算回路34は、16bitのレジスタ41を備え、マルチプレクサ(MUX)42からデータが入力される。マルチプレクサ42には、データバスSTV[15:0]及び加算器43から出力された加算結果が入力され、マルチプレクサ42は、信号MREQがハイ(High)レベルのときは、データバスSTV[15:0]からのデータを、信号MREQがローレベルのときは、加算器43の出力信号を選択して出力する。また、加算器43は、レジスタ41からデータバスCSTV[15:0]を介して出力されたデータと、マルチプレクサ(MUX)44から出力されたデータを加算して出力する。
【0034】
また、信号PIRDYBがインバータ45に入力され、該インバータ45の出力信号と信号PTRDYBが入力されたAND回路46の出力信号が、マルチプレクサ44のセレクト信号として入力される。マルチプレクサ44は、該セレクト信号がハイレベルのときは所定値「0004h」を、該セレクト信号がローレベルのときは所定値「0000h」を選択して出力する。
【0035】
次に、図6〜図10は、送信用DMAC14が送信用FIFO15に送信パケットをライトし、LINK/PHY回路11にパケットリード要求を出すまでのタイミング例を示している。図6〜図10を用いてパケット送信時のデータ転送装置1の動作について、もう少し詳細に説明する。
パケットを送信する際には、まず、送信パケットを作成するための情報としてデスクリプタ又はフィジカル・リードリクエストパケットのいずれかをレジスタ21にライトする必要がある。
【0036】
図6は、デスクリプタをレジスタ21にライトするための各信号を示したタイミングチャートである。
図6において、タイミングT2で、PCIマスタコントローラへのリード要求を示す信号MREQがハイレベルになってアサートされ、同時に図4のタイミング制御回路部23内にあるレジスタ(図示せず)に格納されたデスクリプタのメモリアドレスレジスタ値がデータバスMA[31:0]に出力され、32バイト分のデータをリードするためにデータバスML[15:0]にデータ「0020h」が出力される。
【0037】
そして、PCIインタフェース制御回路16内のPCIマスタコントローラは、PCIバス5側からデータリードができると、前記PCIマスタコントローラ内にあるFIFO(図示せず)が、格納するデータがない状態であるエンプティ状態でなくなるため、信号MEMPがローレベルになる。タイミング制御回路部23は、信号MEMPがローレベルになると、前記PCIマスタコントローラへのデータリード要求信号MRDBをローレベルにする。次に、リードデータバスMD[31:0]を介して順次リードされたデスクリプタデータS0〜S7が、レジスタ21に蓄えられる。
【0038】
次に、図7は、フィジカル・リードリクエストパケットをレジスタ21にライトするためのタイミングを示したタイミングチャートである。
図7に示すように、タイミングT6〜T9の期間、受信用DMAC13から信号REQWRBがローレベルになり、データバスREQD[31:0]からフィジカル・リードリクエストパケットP0〜P3がリードされ、レジスタ21にライトされる。このようにデスクリプタ又はフィジカル・リードリクエストパケットのいずれかがレジスタ21にライトされ、送信用FIFO15に送信パケットをライトする準備が整う。
【0039】
次に、図8は、送信パケットのヘッダ部を送信用FIFO15にライトするタイミング例を示したタイミングチャートである。
図8では、タイミングT6〜T9の期間、信号FWRBがローレベルになって、送信用FIFO15にデータがライトされることを示している。この場合、送信用DMAC14は、信号FWRBをローレベルにすると共に、レジスタ21にすでに蓄えられているヘッダー部のデータをデータバスFD[31:0]に出力する。また、このときのパケットの最終データはまだライトしないことから、信号FEOPはローレベルのままである。このようにして、送信用DMAC14は、送信用FIFO15にパケットのヘッダー部をライトさせる。
【0040】
次に、図9及び図10は、図6又は図7のタイミングでレジスタ21に蓄えたデータを基にして、送信用DMAC14が送信用FIFO15にデータ部をライトするときのタイミング例を示したタイミングチャートである。なお、図9及び図10で示した信号PFRMB,PIRDYB,PTRDYB,PSTOPB及びデータバスPAD[31:0]は、PCIバス5と接続される信号である。また、PCI規格で用いる用語「イニシエータ」及び「ターゲット」において、ここではPCIバス5からのデータリードのみの説明であるため、イニシエータはデータ転送装置1であり、ターゲットはメモリ部8となる。
【0041】
図9及び図10において、信号PFRMBは、PCIバス5のバスサイクルが実行されているか否かを示す信号であり、チップセット6から出力される。また、信号PSTOPBはターゲットがイニシエータに対して現在実行中のトランザクションの中止を要求するときにチップセット6がアサートする信号であり、データバスPAD[31:0]は、PCIバス5上における、アドレスとデータの入出力バスである。
【0042】
図9において、タイミングT1で、送信用DMAC14は信号MREQをハイレベルに立ち上げてPCIマスタコントローラへリード要求を行う。同時に、送信用DMAC14は、データバスMA[31:0]にメモリアドレスデータMSAを、また、例えば「30h」byteのデータを用意しようとしている場合、データバスML[15:0]にデータ「0030h」をそれぞれ出力する。これらを受けて、PCIマスタコントローラは、タイミングT2から信号PFRMBをローレベルにしてアサートし、かつデータバスPAD[31:0]にメモリ部8に対するメモリアドレスデータMSAを出力する。
【0043】
次に、PCIマスタコントローラは、タイミングT3から信号PIRDYBをローレベルにしてアサートし、データリードが可能であることをチップセット6に知らせる。そして、チップセット6は、タイミングT4から信号PTRDYBをローレベルにしてアサートしデータ送信が可能であることを示すと同時に、データバスPAD[31:0]に順次データを出力する。タイミングT10でチップセット6によって信号PSTOPBがローレベルになってアサートされデータ転送を中止する要求が起こり、タイミングT11からチップセット6によって信号PTRDYBがハイレベルになってデアサートされる。PCIマスタコントローラは、タイミングT11で信号PFRMBを、タイミングT12で信号PIRDYBをそれぞれハイレベルにしてデアサートし、データ転送を中断する。
【0044】
しかし、送信用DMAC14からPCIマスタコントローラへのリード要求は「30h」byteであるため、PCIマスタコントローラは、タイミングT13から信号PFRMBを再度ローレベルにしてアサートすることによってリード要求を行い、タイミングT13で前回のデータリードの続きのアドレス「MSA+1Ch」をデータバスPAD[31:0]に出力する。
【0045】
チップセット6は、タイミングT15で信号PTRDYBをローレベルにしてアサートし、タイミングT15〜T19でメモリ部8からのデータをデータバスPAD[31:0]に順次出力する。また、PCIマスタコントローラは、タイミングT19で合計「30h」byteのデータリードが終了するため、信号PFRMBをハイレベルにしてデアサートし、トランザクションの終了をチップセット6に知らせる。信号PIRDYB及びPTRDYBは、タイミングT20からそれぞれハイレベルになってデアサートされる。
【0046】
このようなことから、タイミングT5〜T11及びタイミングT16〜T20で、PCIマスタコントローラから送信用DMAC14に入力される信号MEMPがローレベルになる。このため、送信用DMAC14は、タイミングT5で信号MRDB及びFWRBをローレベルにし、送信用FIFO15に順次データをライトさせ、タイミングT20では最終データであるため信号FEOPをハイレベルにし、送信用FIFO15に最終データがライトされる。
【0047】
また、送信用FIFO15へのデータライトしたバイト数を示すデータバスDTC[15:0]からのデータは、タイミングT2のデータライト開始タイミングでデータ「0h」にされてから、送信用FIFO15にデータがライトされるごとに4インクリメントされる。また、スタートレジスタ31からデータバスSTV[15:0]に出力されるデータが「14h」である場合、演算回路34からデータバスCSTV[15:0]にタイミングT2でデータバスSTV[15:0]からのデータ「14h」が出力される。
【0048】
信号PIRDYBがローレベルであると共に信号PTRDYBがハイレベルであり、データリードしようとしているがターゲット側からデータが来ない期間を示すタイミングのとき、すなわちタイミングT3及びT14のとき、マルチプレクサ44からデータ「0004h」が出力され、データバスCSTV[15:0]のデータが加算器43によって4インクリメントされる。また、タイミングT11では、図4におけるコンパレータ32の比較結果が変化するため、タイミングT12で信号FREQBがローレベルになってアサートされ、LINK/PHY回路11に対してパケットリード要求が行われる。
【0049】
図9と同様のタイミング例ではあるが、信号PIRDYBがローレベルであると共に信号PTRDYBがハイレベルであり、データリードしようとしているがターゲット側からデータが来ない期間を示すタイミングが図9より長い場合の例を図10に示す。
図10に示すように、前記データが来ない期間がタイミングT3,T4,T14,T15で存在し、これらのときにデータバスCSTV[15:0]のデータは順次4インクリメントされる。また、タイミングT20で図4のコンパレータ32の比較結果が変化するため、タイミングT21で信号FREQBがローレベルになってアサートされ、LINK/PHY回路11に対してパケットリード要求が行われる。
【0050】
このように、本第1の実施の形態におけるデータ転送装置は、図10では図9よりもターゲットのPCIバス5へのデータ転送能力が低く、かつ、図9ではデータ部の「18h」byte目、図10では「24h」byte目のデータが用意できた時点で、送信用DMAC14が、LINK/PHY回路11に対してパケットリード要求を行っている。このことから、PCIバス5のトランザクションでターゲットの状態及び転送能力に応じて自動的に送信パケットリード要求タイミングを変更することできる。
【0051】
第2の実施の形態.
図11は、本発明の第2の実施の形態におけるデータ転送装置の演算回路の構成例を示した図である。なお、本発明の第2の実施の形態におけるデータ転送装置の例を示したブロック図は、図1の送信用DMAC14を送信用DMAC14aにし、図1のデータ転送装置1をデータ転送装置1aにした以外は図1と同じであるので省略する。また、送信用DMAC14aの構成例を示したブロック図は、図4のタイミング制御回路部23をタイミング制御回路部23aにした以外は図4と同じであるので省略する。図11では、図5と同じものは同じ符号で示している。送信用DMAC14aは制御回路部をなしている。
【0052】
図11に示すように、演算回路34aは、16bitのレジスタ41を備え、マルチプレクサ42からデータが入力される。マルチプレクサ42には、データバスSTV[15:0]からのデータ及び加算器43から出力された加算結果が入力されている。マルチプレクサ42は、OR回路52によって、信号MREQがハイレベルのとき又はコンパレータ51の比較結果がハイレベルのときには、データバスSTV[15:0]からのデータが選択され、これ以外のときは加算器43から出力されたデータが選択される。コンパレータ51は、データバスSTV[15:0]からのデータと加算器43から出力されたデータとの比較を行い、データバスSTV[15:0]からのデータが加算器43から出力されたデータよりも小さい場合はハイレベルの信号を出力し、これ以外の場合はローレベルの信号を出力する。
【0053】
加算器43には、レジスタ41からデータバスCSTV[15:0]を介して出力されたデータと、マルチプレクサ44から出力されたデータを加算して出力する。また、信号PIRDYB及びPTRDYBが対応する入力端に入力されたNOR回路53の出力信号は、マルチプレクサ44のセレクト信号として入力される。マルチプレクサ44は、該セレクト信号がハイレベルのときは所定値「FFFCh」を、該セレクト信号がローレベルのときは所定値「0004h」を選択して出力する。
【0054】
このような構成において、図12は、送信用DMAC14aが送信用FIFO15に送信パケットをライトし、LINK/PHY回路11にパケットリード要求を出すまでのタイミング例を示したタイミングチャートである。
図12は、図10で示したタイミングとほぼ同様であるが、図10との相違点は、データバスSTV[15:0]からのデータが「1Ch」であることと、データバスCSTV[15:0]からのデータが異なることにある。データバスCSTV[15:0]からのデータは、タイミングT2でデータバスSTV[15:0]の値である「1Ch」に設定された後、実際にPCIバス5上でデータ転送されているタイミングT5〜T10及びタイミングT16〜T21でそれぞれ4デクリメントされ、これ以外のデータ転送が実行されていないタイミングでは4インクリメントされている。
【0055】
しかし、タイミングT9〜T11及びタイミングT22では、コンパレータ51の出力がハイレベルになるため、マルチプレクサ42はデータバスSTV[15:0]からのデータを選択し、レジスタ41からデータバスCSTV[15:0]へ出力されるデータは、データバスSTV[15:0]からのデータ「1Ch」のままである。また、タイミングT20で図4のコンパレータ32の比較結果が変化するため、タイミングT21で信号FREQBがローレベルになってアサートされ、送信用DMAC14aからLINK/PHY回路11へパケットリード要求が出力される。
このようにすることにより、本第2の実施の形態におけるデータ転送装置は、前記第1の実施の形態と同様の効果を得ることができる。
【0056】
第3の実施の形態.
図13は、本発明の第3の実施の形態におけるデータ転送装置の送信用DMACの構成例を示した図である。なお、本発明の第3の実施の形態におけるデータ転送装置の例を示したブロック図は、図1の送信用DMAC14を送信用DMAC14bにし、図1のデータ転送装置1をデータ転送装置1bにした以外は図1と同じであるので省略する。また、図13では、図4と同じものは同じ符号で示し、ここではその説明を省略すると共に図4との相違点のみ説明する。送信用DMAC14bは制御回路部をなす。
【0057】
図13における図4との相違点は、マルチプレクサ(MUX)61、D型フリップフロップ62、AND回路63及びインバータ64を追加したことにあり、これに伴って図4の送信用DMAC14を送信用DMAC14bにしたことにある。
図13において、インバータ64には、送信用FIFO15に準備されたデータをLINK/PHY回路11からIEEE1394バス3へ送信を開始したが、送信用FIFO15内へのデータの準備が間に合わなくなって送信パケットがデータエラーになったときにハイレベルになる信号UNDERTMが送信用FIFO15から入力される。
【0058】
マルチプレクサ61には、データバスDL[15:0]からのデータとデータバスCSTV[15:0]からのデータがそれぞれ入力されている。マルチプレクサ61は、D型フリップフロップ62の出力端QBからの出力信号に応じて、データバスDL[15:0]からのデータ又はデータバスCSTV[15:0]からのデータのいずれか一方をコンパレータ32の対応する入力端に出力する。D型フリップフロップ62のD入力端には電源電圧VDDが入力され、リセット端RBにはインバータ64の出力信号が入力されている。また、D型フリップフロップ62のクロック信号入力端にはAND回路63の出力信号が入力され、AND回路63の各入力端には、D型フリップフロップ62から出力された信号と信号FREQBが対応して入力されている。
【0059】
このような構成において、図14は、図13の各信号のタイミング例を示したタイミングチャートである。図14において、タイミングT1〜T6及びタイミングT8〜T13で送信用FIFO15にパケットをライトする。また、タイミングT3で信号FREQBがローレベルになってアサートされ、送信用FIFO15からLINK/PHY回路11を介してIEEE1394バス3へパケット送信が開始されたが、タイミングT5で送信用FIFO15内へのデータ準備が間に合わず信号UNDERTMがハイレベルとなる。これに伴って、タイミングT5でD型フリップフロップ62の出力端QBがハイレベルに立ち上がる。このため、マルチプレクサ61は、データバスDL[15:0]からのデータを選択し、データバスNSTV[15:0]を介してコンパレータ32の対応する入力端に出力する。
【0060】
したがって、コンパレータ32は、データバスDTC[15:0]からのデータとデータバスDL[15:0]からのデータとの比較を行うことになる。このことから、データエラーが発生した次のパケットは、必ず送信用FIFO15にデータが用意できたときのみ送信要求が行われる。しかし、一度確実にパケット送信を行った後は、タイミングT18でAND回路63の出力端がローレベルからハイレベルに立ち上がり、D型フリップフロップ62の出力端QBはローレベルになる。
【0061】
このため、マルチプレクサ61からはデータバスCSTV[15:0]からのデータが選択されて出力され、コンパレータ32は、データバスDTC[15:0]、データバスDL[15:0]及びデータバスCSTV[15:0]からの各データの比較を行った結果を示した信号FREQBを出力する。このことから、送信用FIFO15からLINK/PHY回路11へのデータ転送を開始するタイミングは、演算回路34の機能が作用したタイミングになる。
【0062】
このように、本第3の実施の形態におけるデータ転送装置は、前記第1の実施の形態と同様の効果を得ることができると共に、パケット送信を行っているときにデータエラーが発生した場合、次の送信パケットの送信が確実に行うことができるため、システム上の安定度を向上させることができる。
【0063】
なお、前記第1から第3の各実施の形態において、符号の末尾にBを付けている信号、信号入力端及び信号出力端は、ローレベルでアクティブになり、符号の末尾にBが付いていない信号、信号入力端及び信号出力端は、ハイレベルでアクティブになることをそれぞれ示している。
【0064】
【発明の効果】
上記の説明から明らかなように、本発明のデータ転送装置及びその動作制御方法によれば、データ転送装置の処理能力を向上させるため、パケット送信タイミングを早めたような場合でも、その送信データの準備をするための内部システム装置の状態によって自動的に送信開始タイミングを変更することができるため、データエラーとなった送信パケットの発生を低減させることができ、データ転送処理能力を更に向上させることができる。また、データ転送処理能力を向上させるために送信開始タイミングを早めた際に送信パケットがデータエラーになった場合、該データエラーとなった送信パケットを再送する際は、送信開始タイミングを早める処理を無効にすることによって、確実なデータ転送が可能となる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態におけるデータ転送装置の例を示したブロック図である。
【図2】 IEEE1394規格のパケットの概略構成例を示した図である。
【図3】 デスクリプタの概略構成例を示した図である。
【図4】 図1の送信用DMAC14の構成例を示したブロック図である。
【図5】 図4の演算回路34の内部構成例を示したブロック図である。
【図6】 デスクリプタをレジスタ21にライトするための各信号を示したタイミングチャートである。
【図7】 フィジカル・リードリクエストパケットをレジスタ21にライトするためのタイミングを示したタイミングチャートである。
【図8】 送信パケットのヘッダー部を送信用FIFO15にライトするタイミング例を示したタイミングチャートである。
【図9】 送信用FIFO15にデータ部をライトするときの図4及び図5で示した各信号のタイミング例を示したタイミングチャートである。
【図10】 送信用FIFO15にデータ部をライトするときの図4及び図5で示した各信号の他のタイミング例を示したタイミングチャートである。
【図11】 本発明の第2の実施の形態におけるデータ転送装置の演算回路の構成例を示した図である。
【図12】 送信用FIFO15に送信パケットをライトし、LINK/PHY回路11にパケットリード要求を出すまでの各信号のタイミング例を示したタイミングチャートである。
【図13】 本発明の第3の実施の形態におけるデータ転送装置の送信用DMACの構成例を示した図である。
【図14】 図13の各信号のタイミング例を示したタイミングチャートである。
【図15】 IEEE1394バス及びPCIバスでのデータの流れにおける概略のタイミング例を示した図である。
【図16】 IEEE1394バス及びPCIバスでのデータの流れにおける概略の他のタイミング例を示した図である。
【図17】 IEEE1394バス及びPCIバスでのデータの流れにおける概略の他のタイミング例を示した図である。
【符号の説明】
1,1a,1b データ転送装置
2 PC
3 IEEE1394バス
4 HDD装置
5 PCIバス
6 チップセット
7 CPU
8 メモリ部
11 LINK/PHY回路
12 受信用FIFO
13 受信用DMAC
14,14b 送信用DMAC
15 送信用FIFO
16 インタフェース制御回路
21,41 レジスタ
22,42,44,61 マルチプレクサ
23,23b タイミング制御回路部
31 スタートレジスタ
32,51 コンパレータ
33 データアップカウンタ
34,34a 演算回路
43 加算器
45,64 インバータ
46,63 AND回路
52 OR回路
53 NOR回路
62 D型フリップフロップ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data transfer device used in IEEE 1394 or the like using a storage device such as a FIFO for data transmission, and more particularly to a data transfer device forming a LINK device compliant with the OHCI (Open Host Controller Interface) standard.
[0002]
[Prior art]
Conventionally, in a data transfer device that uses a storage device such as a FIFO for data transmission and conforms to the IEEE 1394 standard, there is a problem that transfer performance deteriorates if the packet transmission start timing is late. Such a problem appears particularly prominently when a hard disk device (hereinafter referred to as an HDD device) is connected to a personal computer (hereinafter referred to as PC) having an interface conforming to the IEEE 1394 standard (hereinafter referred to as IEEE 1394 interface). When the data is transferred between them.
[0003]
In such a case, the PC and the HDD device use an asynchronous packet among isochronous packets and asynchronous packets defined by the IEEE 1394 standard. Also, a physical request packet prepared for performing high-speed data transfer only by hardware without any software among asynchronous packets is transmitted from the HDD device to the PC. Then, the IEEE 1394 interface device in the PC performs processing on the received physical request packet, and then transmits a physical response packet.
[0004]
The IEEE 1394 interface device of the PC and the HDD device are connected by a bus conforming to the IEEE 1394 standard (hereinafter referred to as the IEEE 1394 bus), and the IEEE 1394 interface device is connected to the CPU of the PC via the PCI bus. A data flow in such an IEEE 1394 interface device in the PC will be described. FIG. 15 is a diagram showing a schematic timing example in the data flow in the IEEE 1394 bus and the PCI bus.
[0005]
As shown in FIG. 15, in the period A, a physical read request packet is transmitted from the HDD device to the PC on the IEEE 1394 bus. Next, in period B, the IEEE 1394 interface device in the PC reads data from the memory unit in the PC via the PCI bus and chipset, completes the data reading from the memory unit, and sends a packet to the transmission FIFO. prepare. Next, in period C, a physical read response packet is transmitted from the PC to the HDD device on the IEEE 1394 bus.
[0006]
In such a state, the data transfer request from the HDD device to the PC is made by a physical read request packet, and since data is being transferred at high speed only by hardware without software, as shown in FIG. Even in a state where the data reading process in the B period is not completed, the first data of the transmission packet is prepared in the transmission FIFO, so a method for improving the processing capability by accelerating the start of the C period can be considered. .
[0007]
[Problems to be solved by the invention]
However, in the IEEE 1394 standard, once the packet transmission is started, the data transmission cannot be stopped. For this reason, in the method for improving the processing capability as described above, if the transmission start time is set too early, as shown in FIG. 17, the data reading on the PCI bus side is not in time, and the physical data being transmitted on the IEEE 1394 bus is not in time. There is a problem that the data in the response packet is interrupted, and the hatched portion in FIG. 17 becomes an incomplete data portion, resulting in an incomplete packet.
[0008]
Also, even when the transmission start time is not so advanced, various devices are connected to the PCI bus, and access to these devices shortens the PCI bus usage time allocated to the IEEE 1394 interface device. In some cases, the last data in the transmission packet could not be prepared. In such a case, according to the IEEE 1394 protocol, the HDD apparatus transmits the same physical request packet as described above, and reprocessing is started.
[0009]
The present invention has been made to solve the above-described problems, and can improve the processing performance by increasing the transmission packet transmission start timing, and suppress the generation of incomplete data error packets. Data transfer device that can And its operation control method The purpose is to obtain.
[0010]
[Means for Solving the Problems]
A data transfer device according to the present invention is a data transfer device that transfers data between an external system device and an internal system device.
A first interface circuit unit for interfacing with the internal system device;
A second interface circuit unit for interfacing with the external system device;
Data input from the internal system device via the first interface circuit unit is temporarily stored, and the stored data is stored via the second interface circuit unit in response to the input control signal. A data storage unit for transmission to be transmitted to the device;
The total number of write data stored in the transmission data storage unit is monitored. When the monitored total number of write data exceeds a predetermined value, the write data stored in the transmission data storage unit is sent to the second interface circuit unit. A control circuit unit for controlling the operation of the transmission data storage unit,
With
In the period before the total number of write data monitored reaches a predetermined value, the control circuit unit A signal indicating that data transfer is possible is input from the first interface circuit unit. A period during which a signal indicating that data transfer is impossible is input from the internal system apparatus is monitored, and the predetermined value is set so that the period corresponds to the count time of the write data. Increment When the total number of the write data monitored is less than the predetermined value and less than the amount of data requested to be transmitted from the external system device, the second interface circuit unit is connected to the transmission data storage unit. Data transmission to is prohibited.
[0011]
Specifically, the control circuit unit is While a signal indicating that data transfer is impossible is input from the internal system device A preset value is added to the predetermined value.
[0012]
In addition, the control circuit unit is A signal indicating that data transfer is possible is input from the internal system device. During this time, the addition of the preset value to the predetermined value may be stopped.
[0013]
On the other hand, when the control circuit unit is transmitting data from the transmission data storage unit to the second interface circuit unit, the data transmission from the internal system device is not in time and data transmission from the transmission data storage unit When the data transfer is performed again from the internal system device, if the total number of the monitored write data becomes the amount of data requested to be transmitted from the external system device, the transmission data storage unit Data transmission to the second interface circuit unit may be performed.
In addition, an operation control method for a data transfer device according to the present invention includes a first interface circuit unit that interfaces with an internal system device,
A second interface circuit unit for interfacing with an external system device;
Data input from the internal system device via the first interface circuit unit is temporarily stored, and the stored data is stored via the second interface circuit unit in response to the input control signal. In an operation control method of a data transfer device that includes a data storage unit for transmission to be transmitted to the device and performs data transfer between the external system device and the internal system device,
Monitor the total number of write data stored in the transmission data storage unit,
In the period before the total number of monitored write data reaches a predetermined value,
A signal indicating that data transfer is possible is input from the first interface circuit unit. Monitoring a period during which a signal indicating that data transfer is impossible is input from the internal system device;
The predetermined value is set so that the period corresponds to the count time of the write data. Increment Let
When the total number of monitored write data is less than the predetermined value and less than the amount of data requested for transmission from the external system device, the transmission data storage unit is connected to the second interface circuit unit. Data transmission is prohibited.
Specifically, while a signal indicating that data transfer is impossible is input from the internal system device, a preset value is added to the predetermined value.
The addition of the preset value to the predetermined value may be stopped while a signal indicating that data transfer is possible is input from the internal system device.
On the other hand, when performing data transmission from the transmission data storage unit to the second interface circuit unit, if data transmission from the internal system device is not in time and data transmission from the transmission data storage unit fails, When the data transfer is performed again from the internal system device, the second interface circuit is connected to the transmission data storage unit when the monitored total number of write data reaches the data amount requested to be transmitted from the external system device. Data transmission to the unit may be performed.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Next, the present invention will be described in detail based on the embodiments shown in the drawings.
First embodiment.
FIG. 1 is a block diagram showing an example of a data transfer apparatus according to the first embodiment of the present invention. FIG. 1 shows an example in which an HDD device conforming to the IEEE 1394 standard is connected to a PC conforming to the IEEE 1394 standard, and data is transferred between the PC and the HDD device. Also, the arrows between the blocks shown in FIG. 1 indicate only the data flow.
[0015]
In FIG. 1, a
[0016]
On the other hand, the
[0017]
The LINK /
[0018]
When transferring data between the
[0019]
The data flow in the
[0020]
Next, the
[0021]
On the other hand, when the internal data of the memory unit 8 is read using the
[0022]
By doing so, the start time of the C period shown in FIG. 16 is automatically changed according to the data read status via the
[0023]
Here, FIG. 2 is a diagram illustrating a schematic configuration example of a packet of the IEEE 1394 standard. As shown in FIG. 2, an IEEE 1394 packet includes a header part including information such as packet type and address, which is composed of 32 bits and 1 word, and data composed of 1 word and 32 bits and less than 2048 words. It is roughly divided into the data part that contains. Further, there is a packet having no data part depending on the type of packet.
[0024]
The
[0025]
Next, FIG. 4 is a block diagram showing a configuration example of the
[0026]
In addition, the
[0027]
The timing
[0028]
The timing
[0029]
The timing
[0030]
The signal FREQB is output from the
[0031]
Further, the data output from the externally
[0032]
The output signal FREQB of the
[0033]
FIG. 5 is a block diagram showing an example of the internal configuration of the
[0034]
The signal PIRDYB is input to the
[0035]
Next, FIG. 6 to FIG. 10 show timing examples until the
When transmitting a packet, first, it is necessary to write either a descriptor or a physical read request packet to the
[0036]
FIG. 6 is a timing chart showing signals for writing the descriptor to the
In FIG. 6, at timing T2, a signal MREQ indicating a read request to the PCI master controller is asserted at a high level, and is simultaneously stored in a register (not shown) in the timing
[0037]
When the PCI master controller in the PCI
[0038]
Next, FIG. 7 is a timing chart showing the timing for writing the physical read request packet to the
As shown in FIG. 7, during the period of timings T6 to T9, the signal REQWRB becomes low level from the receiving
[0039]
Next, FIG. 8 is a timing chart showing an example of timing for writing the header part of the transmission packet to the
FIG. 8 shows that the signal FWRB becomes a low level during the period of the timings T6 to T9 and data is written to the
[0040]
Next, FIG. 9 and FIG. 10 are timings showing examples of timing when the
[0041]
9 and 10, a signal PFRMB is a signal indicating whether the bus cycle of the
[0042]
In FIG. 9, at timing T1, the
[0043]
Next, the PCI master controller asserts the signal PIRDYB at a low level from the timing T3 to inform the chip set 6 that data reading is possible. The chip set 6 asserts the signal PTRDYB at the low level from timing T4 to indicate that data transmission is possible, and at the same time, sequentially outputs data to the data bus PAD [31: 0]. At timing T10, the signal PSTOPB is asserted at the low level by the chip set 6 to request to stop the data transfer, and the signal PTRDYB is deasserted at the high level by the chip set 6 from the timing T11. The PCI master controller deasserts the signal PFRMB at the timing T11 and the signal PIRDYB at the timing T12, and interrupts the data transfer.
[0044]
However, since the read request from the
[0045]
The chip set 6 asserts the signal PTRDYB at a low level at timing T15, and sequentially outputs data from the memory unit 8 to the data bus PAD [31: 0] at timings T15 to T19. Further, since the data read of the total “30h” bytes is completed at the timing T19, the PCI master controller deasserts the signal PFRMB to high level and notifies the chip set 6 of the end of the transaction. The signals PIRDYB and PTRDYB are respectively deasserted at a high level from the timing T20.
[0046]
For this reason, at time T5 to T11 and time T16 to T20, the signal MEMP input from the PCI master controller to the
[0047]
The data from the data bus DTC [15: 0] indicating the number of bytes written to the
[0048]
When the signal PIRDYB is at the low level and the signal PTRDYB is at the high level and the timing indicates a period in which data is to be read but no data comes from the target side, that is, at the timings T3 and T14, the data "0004h" ”Is output, and the data on the data bus CSTV [15: 0] is incremented by 4 by the
[0049]
Although the timing example is the same as that in FIG. 9, the signal PIRDYB is at a low level and the signal PTRDYB is at a high level, and the timing indicating a period in which data is read but no data comes from the target side is longer than that in FIG. 9. An example of this is shown in FIG.
As shown in FIG. 10, there is a period in which the data does not come at timings T3, T4, T14, and T15. At these times, the data on the data bus CSTV [15: 0] is sequentially incremented by four. Further, since the comparison result of the
[0050]
As described above, the data transfer apparatus according to the first embodiment has a lower data transfer capability to the
[0051]
Second embodiment.
FIG. 11 is a diagram illustrating a configuration example of an arithmetic circuit of the data transfer device according to the second embodiment of the present invention. In the block diagram showing an example of the data transfer apparatus according to the second embodiment of the present invention, the
[0052]
As shown in FIG. 11, the
[0053]
The
[0054]
In such a configuration, FIG. 12 is a timing chart showing an example of timing from when the transmission DMAC 14 a writes a transmission packet to the
FIG. 12 is almost the same as the timing shown in FIG. 10 except that the data from the data bus STV [15: 0] is “1Ch” and the data bus CSTV [15 : The data from 0] is different. The data from the data bus CSTV [15: 0] is set to “1Ch” which is the value of the data bus STV [15: 0] at the timing T2, and then the data is actually transferred on the
[0055]
However, at timing T9 to T11 and timing T22, the output of the
By doing so, the data transfer apparatus according to the second embodiment can obtain the same effects as those of the first embodiment.
[0056]
Third embodiment.
FIG. 13 is a diagram illustrating a configuration example of the transmission DMAC of the data transfer apparatus according to the third embodiment of the present invention. In the block diagram showing an example of the data transfer apparatus according to the third embodiment of the present invention, the
[0057]
13 differs from FIG. 4 in that a multiplexer (MUX) 61, a D-type flip-
In FIG. 13, the
[0058]
The
[0059]
In such a configuration, FIG. 14 is a timing chart showing a timing example of each signal of FIG. In FIG. 14, the packet is written to the
[0060]
Therefore, the
[0061]
Therefore, the
[0062]
As described above, the data transfer apparatus according to the third embodiment can obtain the same effects as those of the first embodiment, and when a data error occurs during packet transmission, Since the next transmission packet can be transmitted reliably, the stability on the system can be improved.
[0063]
In each of the first to third embodiments, the signal having a B at the end of the code, the signal input terminal and the signal output terminal are active at a low level, and the code has a B at the end. No signal, signal input end, and signal output end indicate that they are active at a high level, respectively.
[0064]
【The invention's effect】
As is apparent from the above description, the data transfer device of the present invention. And its operation control method According to the above, in order to improve the processing capability of the data transfer device, even when the packet transmission timing is advanced, the transmission start timing is automatically changed according to the state of the internal system device for preparing the transmission data Therefore, it is possible to reduce the occurrence of transmission packets causing data errors, and to further improve the data transfer processing capability. In addition, if the transmission packet has a data error when the transmission start timing is advanced in order to improve the data transfer processing capability, when retransmitting the transmission packet having the data error, a process for increasing the transmission start timing is performed. By invalidating the data, reliable data transfer is possible.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of a data transfer apparatus according to a first embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of a schematic configuration of an IEEE 1394 standard packet.
FIG. 3 is a diagram illustrating a schematic configuration example of a descriptor.
4 is a block diagram showing a configuration example of a
5 is a block diagram showing an example of an internal configuration of an
FIG. 6 is a timing chart showing signals for writing a descriptor to the
FIG. 7 is a timing chart showing timing for writing a physical read request packet to a
FIG. 8 is a timing chart showing an example of timing for writing a header part of a transmission packet to a
9 is a timing chart showing an example of the timing of each signal shown in FIGS. 4 and 5 when a data part is written in the
10 is a timing chart showing another timing example of each signal shown in FIG. 4 and FIG. 5 when a data part is written in the
FIG. 11 is a diagram illustrating a configuration example of an arithmetic circuit of a data transfer device according to a second embodiment of the present invention.
12 is a timing chart showing an example of the timing of each signal until a transmission packet is written in the
FIG. 13 is a diagram illustrating a configuration example of a transmission DMAC of a data transfer apparatus according to a third embodiment of the present invention.
14 is a timing chart showing an example timing of each signal in FIG. 13;
FIG. 15 is a diagram showing an example of a schematic timing in the data flow in the IEEE 1394 bus and the PCI bus.
FIG. 16 is a diagram showing another schematic timing example of the data flow in the IEEE 1394 bus and the PCI bus.
FIG. 17 is a diagram showing another schematic timing example of the data flow in the IEEE 1394 bus and the PCI bus.
[Explanation of symbols]
1, 1a, 1b Data transfer device
2 PC
3 IEEE1394 bus
4 HDD device
5 PCI bus
6 Chipset
7 CPU
8 Memory part
11 LINK / PHY circuit
12 Receive FIFO
13 DMAC for reception
14, 14b DMAC for transmission
15 FIFO for transmission
16 Interface control circuit
21,41 registers
22, 42, 44, 61 Multiplexer
23, 23b Timing control circuit section
31 Start register
32,51 comparator
33 Data up counter
34, 34a arithmetic circuit
43 Adder
45, 64 inverter
46, 63 AND circuit
52 OR circuit
53 NOR circuit
62 D-type flip-flop
Claims (8)
前記内部システム装置とのインタフェースを行う第1インタフェース回路部と、
前記外部システム装置とのインタフェースを行う第2インタフェース回路部と、
前記第1インタフェース回路部を介して前記内部システム装置から入力されたデータを一時的に記憶し、入力された制御信号に応じて、該記憶したデータを第2インタフェース回路部を介して前記外部システム装置へ送信する送信用データ記憶部と、
該送信用データ記憶部に記憶されるライトデータ総数をモニタし、該モニタしたライトデータ総数が所定値を超えると、前記送信用データ記憶部に記憶されたライトデータを前記第2インタフェース回路部へ送信させる、送信用データ記憶部の動作制御を行う制御回路部と、
を備え、
前記制御回路部は、前記モニタしたライトデータ総数が所定値になる前の期間において、データ転送可能な状態であることを示す信号が前記第1インタフェース回路部から入力されると共にデータ転送不可能な状態であることを示す信号が前記内部システム装置から入力される期間をモニタし、該期間を前記ライトデータのカウント時間に対応するように前記所定値をインクリメントさせ、前記モニタしたライトデータ総数が、該所定値未満であると共に前記外部システム装置から送信要求があったデータ量未満である場合は、前記送信用データ記憶部に対して前記第2インタフェース回路部へのデータ送信を禁止することを特徴とするデータ転送装置。In a data transfer device that transfers data between an external system device and an internal system device,
A first interface circuit unit for interfacing with the internal system device;
A second interface circuit unit for interfacing with the external system device;
Data input from the internal system device via the first interface circuit unit is temporarily stored, and the stored data is stored via the second interface circuit unit in response to the input control signal. A data storage unit for transmission to be transmitted to the device;
The total number of write data stored in the transmission data storage unit is monitored. When the monitored total number of write data exceeds a predetermined value, the write data stored in the transmission data storage unit is sent to the second interface circuit unit. A control circuit unit for controlling the operation of the transmission data storage unit,
With
In the period before the total number of monitored write data reaches a predetermined value, the control circuit unit receives a signal indicating that data transfer is possible from the first interface circuit unit and can not transfer data. A period in which a signal indicating a state is input from the internal system device, the predetermined value is incremented so that the period corresponds to the count time of the write data, and the total number of the monitored write data is When the amount is less than the predetermined value and less than the amount of data requested by the external system device, the transmission data storage unit is prohibited from transmitting data to the second interface circuit unit. A data transfer device.
外部システム装置とのインタフェースを行う第2インタフェース回路部と、
前記第1インタフェース回路部を介して前記内部システム装置から入力されたデータを一時的に記憶し、入力された制御信号に応じて、該記憶したデータを第2インタフェース回路部を介して前記外部システム装置へ送信する送信用データ記憶部とを備えた、前記外部システム装置と前記内部システム装置との間でデータ転送を行うデータ転送装置の動作制御方法において、
前記送信用データ記憶部に記憶されたライトデータ総数をモニタし、
該モニタしたライトデータ総数が所定値になる前の期間において、
データ転送可能な状態であることを示す信号が前記第1インタフェース回路部から入力されると共にデータ転送不可能な状態であることを示す信号が前記内部システム装置から入力される期間をモニタし、
該期間を前記ライトデータのカウント時間に対応するように前記所定値をインクリメントさせ、
前記モニタしたライトデータ総数が、該所定値未満であると共に前記外部システム装置から送信要求があったデータ量未満である場合は、前記送信用データ記憶部に対して前記第2インタフェース回路部へのデータ送信を禁止することを特徴とするデータ転送装置の動作制御方法。A first interface circuit unit for interfacing with an internal system device;
A second interface circuit unit for interfacing with an external system device;
Data input from the internal system device via the first interface circuit unit is temporarily stored, and the stored data is stored via the second interface circuit unit in response to the input control signal. In an operation control method of a data transfer device that includes a data storage unit for transmission to be transmitted to the device and performs data transfer between the external system device and the internal system device,
Monitor the total number of write data stored in the transmission data storage unit,
In the period before the total number of monitored write data reaches a predetermined value,
Monitoring a period in which a signal indicating that data transfer is possible is input from the first interface circuit unit and a signal indicating that data transfer is not possible is input from the internal system device;
The said period is incremented the predetermined value so as to correspond to the counting time of the write data,
When the total number of monitored write data is less than the predetermined value and less than the amount of data requested for transmission from the external system device, the transmission data storage unit is connected to the second interface circuit unit. An operation control method for a data transfer apparatus, wherein data transmission is prohibited.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002207105A JP4410978B2 (en) | 2002-07-16 | 2002-07-16 | Data transfer apparatus and operation control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002207105A JP4410978B2 (en) | 2002-07-16 | 2002-07-16 | Data transfer apparatus and operation control method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004054344A JP2004054344A (en) | 2004-02-19 |
JP4410978B2 true JP4410978B2 (en) | 2010-02-10 |
Family
ID=31931652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002207105A Expired - Fee Related JP4410978B2 (en) | 2002-07-16 | 2002-07-16 | Data transfer apparatus and operation control method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4410978B2 (en) |
-
2002
- 2002-07-16 JP JP2002207105A patent/JP4410978B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004054344A (en) | 2004-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5740466A (en) | Flexible processor-driven SCSI controller with buffer memory and local processor memory coupled via separate buses | |
US6151651A (en) | Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system | |
JP4008987B2 (en) | Bus communication system, bus arbitration method, and data transfer method | |
JP3636157B2 (en) | Data transfer control device, electronic device, and data transfer control method | |
US7752374B2 (en) | Method and apparatus for host messaging unit for peripheral component interconnect busmaster devices | |
US6148357A (en) | Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes | |
JP4837659B2 (en) | Bus controller for processing split transactions | |
IL95445A (en) | High speed flexible source/destination data burst direct memory access controller | |
US6671765B1 (en) | Architecture enabling code overlay using a dedicated endpoint | |
CN114051611B (en) | DMA scatter and gather operations for non-contiguous memory | |
KR930002787B1 (en) | Universal peripheral controller self-configuring bootloadable ramware | |
US6401142B1 (en) | Apparatus and method for selective bus transfer using master and slave modes | |
JP2009502072A (en) | FlexRay communication module, FlexRay communication control device, and method for transmitting a message between a FlexRay communication connection and a FlexRay subscriber device | |
JP3636158B2 (en) | Data transfer control device and electronic device | |
US6370607B1 (en) | Automatic disabling of interrupts upon entry into interrupt service routine | |
JP3614161B2 (en) | Data transfer control device, electronic device, and data transfer control method | |
JP2004500656A (en) | Data transaction access system and method | |
US6279044B1 (en) | Network interface for changing byte alignment transferring on a host bus according to master and slave mode memory and I/O mapping requests | |
JP4410978B2 (en) | Data transfer apparatus and operation control method thereof | |
US6216193B1 (en) | Apparatus and method in a network interface for recovering from complex PCI bus termination conditions | |
JP3431025B2 (en) | Data transfer system | |
US6446154B1 (en) | Method and mechanism for virtualizing legacy sideband signals in a hub interface architecture | |
US6507609B1 (en) | Mechanism for capturing and reporting interrupt events of different clock domains | |
US20230134412A1 (en) | Serial transmission controller and data transmission method thereof | |
US7065669B2 (en) | System and method for providing a write strobe signal to a receiving element before both an address and data signal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071204 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080708 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080908 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090624 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091116 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131120 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |