JP2007011884A - データ転送装置 - Google Patents

データ転送装置 Download PDF

Info

Publication number
JP2007011884A
JP2007011884A JP2005194208A JP2005194208A JP2007011884A JP 2007011884 A JP2007011884 A JP 2007011884A JP 2005194208 A JP2005194208 A JP 2005194208A JP 2005194208 A JP2005194208 A JP 2005194208A JP 2007011884 A JP2007011884 A JP 2007011884A
Authority
JP
Japan
Prior art keywords
data
host
pci
burst
access
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.)
Withdrawn
Application number
JP2005194208A
Other languages
English (en)
Inventor
Atsushi Kojima
淳 小嶋
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.)
Casio Computer Co Ltd
Casio Electronics Co Ltd
Original Assignee
Casio Computer Co Ltd
Casio Electronics 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 Casio Computer Co Ltd, Casio Electronics Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2005194208A priority Critical patent/JP2007011884A/ja
Publication of JP2007011884A publication Critical patent/JP2007011884A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】 PCIバスから一時的に保管しているデータの残量に応じて、外部機器によるメモリ装置のアクセスのバースト長を制限することにより、PCIバスアクセスが長時間待機させられることを回避するデータ転送装置を提供する。
【解決手段】 ホストバスを介して接続されるメモリ装置にアクセスし、ホストバスを専有するメモリ装置の優先順位を決定する。そして、メモリ装置から読み出したデータをFIFOに入力し、FIFOに充分なデータが入力している間、上記メモリ装置から読み出すデータ量を少なくし、FIFOに充分なデータが入力していない間、上記メモリ装置から読み出すデータ量を多く制御する構成であり、このように構成することにより効率よくデータ転送を行うものである。
【選択図】図1

Description

本発明は、例えばFIFO(first-in first-out)を使用したデータ転送装置に関する。
今日、各種のデータ転送がFIFOを介して行われている。例えば、印刷装置においてメモリ(RAM)に記憶された印刷データをプリンタエンジン側の印字ヘッドに転送する際、FIFOが使用されている。この場合、複数のバイトデータを連続して転送するバースト転送が行われている。
通常、転送コントローラは、転送するバースト長に合わせて転送先アドレスを更新するアドレスカウンタを備えると共に、転送するバースト長単位でデータ数を更新する転送カウンタを備えている。また、アドレスカウンタ及び転送カウンタの更新タイミングを判断し、転送指示を行う制御部を備える。
このようなデータ転送において、例えばFIFOを使用する場合、バースト長が長いほどアクセス時間を短縮することができる。一方、転送コントローラが1回に専有する時間が長すぎる場合、他のメモリ装置(例えば、ハードディスク等)のアクセス待機時間は長くなる。
このため、特許文献1には、転送実行手段によるデータの転送中に状態制御手段から出力される転送期間信号に基づき、転送期間を制御する発明が開示されている。
特開平10−326248号公報(段落0031〜0058)
しかし、上記特許文献1では、転送するデータを転送期間信号に基づきバースト長を切り替える構成であり、切り替えるバースト長は8バイト若しくは16バイトの2種類である。したがって、上記データ転送装置では、効率よいデータ転送を行うことはできない。
そこで、本発明は転送するバースト長毎に切り替えを行わず、転送するデータ毎にバースト長をカウントし、そのカウント値に応じて段階的にバースト長を可変するデータ転送装置を提供するものである。
上記課題は本発明によれば、ホストバスを介して接続されるメモリ装置にアクセスする手段と、前記ホストバスを専有する前記メモリ装置の優先順位を決定する手段と、PCIバスを介して接続する外部機器のデータを一時的に保持する保持手段と、該保持手段が保持したデータの残量に応じて、前記メモリ装置からデータを読み出すバーストデータ量を変更する変更手段と、前記保持手段が保持するデータ量を、ライトカウンタとリードカウンタで計数し、ライトカウンタとリードカウンタの計数値に基づいて前記バーストデータの変更を判断する判断手段とを有するデータ転送装置を提供することによって達成できる。
このように構成することにより、PCIバスから一時的に保持しているデータの残量に応じて、外部機器によるメモリ装置のアクセスのバースト長を制限し、PCIバスアクセスが長時間待機させられることを回避できる。また、前記保持手段は、例えばFIFOである。
また、上記課題は本発明によれば、バーストアクセス中のデータ数をカウントするカウント手段と、第1の最大バースト数を記憶する第1の記憶手段と、第2の最大バースト数を記憶する第2の記憶手段と、前記第1の最大バースト数と前記第2の最大バースト数を比較する手段と、前記比較した結果、前記第2の最大バースト数が前記第1の最大バースト数より大きい場合、前記第1の最大バースト数の値を前記第2の最大バースト数の値で再記憶する手段とを有するデータ転送装置を提供することによって達成できる。
このように構成することにより、PCIバスアクセスにおいて、例えばターゲット側がディスコネクトを要求する場合、ターゲット側のバースト長の限界と判断し、次回からバースト長をその長さに合わせることにより、ディスコネクトに要する時間分、アクセス時間を短縮することができる。
本発明によれば、ビデオ転送のためにPCIバスから一時的にデータを保管しているFIFOのデータの残量に応じて、遅いデバイスによるDMAアクセスのバースト長を制限することにより、ビデオ転送のためのPCIアクセスが長時間待機させられることを回避できる。
また、PCIアクセスにおいて、ターゲット側がディスコネクトを要求する場合、それをターゲット側のバースト長の限界と判断して次回からバースト長をその長さに合わせることにより、ディスコネクトに要する時間分、アクセス時間を短縮することができる。
以下、本発明の実施形態について図面を用いて詳細に説明する。
(実施形態1)
図1は、本実施形態の印刷装置を実現するためのシステム構成図である。
同図において、ビデオ転送コントローラ1は、PCI(Peripheral Components Interconnect)バスを介して、ホストPCIブリッジ2に接続されている。また、ホストPCIブリッジ2は、ホストバスを介してメモリーコントローラ3、CPU4、DMAコントローラ5、HDD(ハードディスクドライブ)コントローラ6に接続されている。また、ホストPCIブリッジ2は、ホストバスアービタ7に接続され、ホストバスアービタ7との間で後述する制御を行う。さらに、メモリーコントローラ3は、SDRAM(Synchronous Dynamic Random Access Memory)8に接続され、上記HDDコントローラ6はHDD9に接続されている。
ビデオ転送コントローラ1は、SDRAM8からデータを取得し、FIFOを介して、データをプリンタエンジン(不図示)に転送する装置であり、ビデオ転送コントローラ1は、FIFO10、ビデオデータ変換部11、PCIマスターコントローラ12、PCIターゲットコントローラ13で構成されている。
FIFO10は、SDRAM8から取得したデータを一時的に保持するバッファであり、FIFO10にデータを書き込む際、そのデータ数がライトカウンタ14によってカウントされる。一方、FIFO10から出力されるデータ数はリードカウンタ15によってカウントされる。また、比較器16はライトカウンタ14のカウント値とリードカウンタ15のカウント値を比較し、該比較結果を上記DMAコントローラ5に通知する。したがって、FIFO10に保持されるデータ量は、比較器16の比較結果によって判断できる。
尚、ライトカウンタ14はPCIマスターコントローラ12によって制御され、リードカウンタ15はビデオデータ変換部11によって制御される。また、ビデオデータ変換部11は、FIFO10に保持されたデータをシリアルデータに変換し、プリンタエンジン(印字ヘッド)に出力する。また、プリンタエンジン(印字ヘッド)へのビデオデータの転送は、水平同期信号に基づいて、クロック信号に同期して行われる。
上記構成において、ホストバスアービタ7は、ホストバスを専有する制御部を選択する装置である。また、選択する制御部は前述のホストPCIブリッジ2、CPU4、DMAコントローラ5の何れかである。図2は上記ホストバスアービタ7による制御部の選択処理を説明する図である。
ホストバスアービタ7は、回転優先により順次制御部を選択する。例えば、CPU4からの要求に基づいて(ステップ(以下、Sで示す)1)、CPU4に許可を与え(S2)、SDRAM8のアクセス権をCPU4に与える。例えば、CPU4がSDRAM8をアクセスする場合として、SDRAM8にアクセスして、データを消去する場合等がある。また、この間、CPU4はSDRAM8をアクセスし(S3がN)、必要な処理を完了すると(S3がY)、ホストバスアービタ7は次の制御部を選択する。
例えば、DMAコントローラ5からアクセス要求があれば(S4がY)、回転優先に従ってDMAコントローラ5にアクセス許可を与える(S5)。DMAコントローラ5はホストバスを専有し、例えばホストバスを介してHDDコントローラ6にアクセスし、HDD9のデータをホストバスに出力する。その後、アクセスが終了すると(S6がY)、ホストバスアービタ7はホストバスをDMAコントローラ5から開放し、回転優先動作を再開する。
次に、ホストPCIブリッジ2からホストバスの専有要求があれば(S7がY)、ホストバスアービタ7は、ホストPCIブリッジ2にホストバスを専有させる(S8)。ホストPCIブリッジ2はホストバスを介してメモリーコントローラ3にアクセスし、アクセスが終了するまでホストバスアービタ7は待機する。
その後、ホストPCIブリッジ2がメモリーコントローラ3のアクセスを終了すると(S9がY)、ホストバスアービタ7はホストバスをホストPCIブリッジ2から開放する。以後、同様の処理を繰り返す。
図3は、上記処理の中で、HDDコントローラ6のHDD9に対するアクセスと、DMAコントローラ5のSDRAM8に対するアクセス動作を示すフローチャートである。
先ず、HDDコントローラ6がアクセスを開始すると(ステップ(以下、STで示す)1がY)、DMAコントローラ5に対してアクセス許可を求める(ST2)。その後、HDDコントローラ6は、DMAコントローラ5からアクセス許可を得られるまで待機する(ST3)。
一方、DMAコントローラ5は、HDDコントローラ6からアクセス要求を受信すると(ST4)、ホストバスアービタ7に対してホストバスの専有を要求する(ST5)。そして、ホストバスアービタ7からホストバスの専有を許可されるまで待機する。
その後、ホストバスアービタ7からホストバスの専有許可があると(ST6がY)、DMAコントローラ5は、ビデオ転送コントローラ1のFIFO10に保管されているデータの残量を確認する(ST7)。ここで、FIFO10のデータ残量が多いとき、或いはデータがFIFO10に対して転送が終了しているとき、HDDコントローラ6のバースト長を最大値(例えば、32KB)に設定する(ST8)。一方、FIFO10のデータ残量が少ないとき、或いはビデオデータ転送中であるとき、HDDコントローラ6のバースト長を短い値(例えば、8KB)に設定する。
次に、DMAコントローラ5は設定されたバースト長に応じて、SDRAM8をアクセスする(ST10)。また、HDDコントローラ6は、上記設定されたバースト長に応じてHDD9をアクセスする(ST11)。そして、HDDコントローラ6のアクセス処理が終了すると、HDDコントローラ6は終了信号を出力して再び処理(ST1)に戻る。
一方、図4は、ビデオ転送コントローラ1とホストPCIブリッジ2間の処理動作を説明するフローチャートであり、ビデオ転送コントローラ1がFIFO10にデータを保管するまでの動作を示す。
先ず、ビデオ転送コントローラ1は、ビデオ転送を開始すると(ステップ(以下、STPで示す)1)、ホストPCIブリッジ2に対して「REQ#」(#はアクティブLOWを示す)のリクエスト信号を出力し(STP2)、ホストPCIブリッジ2から応答を待つ(STP3)。
一方、ホストPCIブリッジ2は、ビデオ転送コントローラ1から「REQ#」のリクエスト信号を受信すると(STP4)、ホストバスアービタ7に対してホストバスの専有を要求する(STP5)。そして、ホストバスアービタ7からホストバスの専有許可があると(STP6がY)、ホストPCIブリッジ2は、ビデオ転送コントローラ1に対して許可通知「GNT#」を出力する(STP7)。
また、ホストPCIブリッジ2は、SDRAM8をアクセスし、データを取得する(STP8)。尚、最初のアクセス時、例えばデータがキャッシュされていない等の理由でアクセスに時間を要する場合、ホストPCIブリッジ2は、ビデオ転送コントローラ1に対してリトライを要求する(STP9)。このリトライ要求については、後述するタイムチャートにおいても説明する。
次に、ビデオ転送コントローラ1は、PCIバスを介してホストPCIブリッジ2にアクセスしてデータを取得する(STP10)。取得したデータはFIFO10に保持する。その後、ホストPCIブリッジ2がデータ転送を終了すると、最初の処理に戻り(STP10がY、STP1)、転送処理が終了していないとき、FIFO10のメモリに空きがあるか判断する(STP12)。そして、空きが有れば(STP12がN)、ホストPCIブリッジ2に対して「REQ#」(#はアクティブLOWを示す)のリクエスト信号を出力し(STP2)、上記処理を繰り返す。また、同時にホストPCIブリッジ2はSDRAM8のアクセスを終了すると、ホストPCIブリッジ2はビデオ転送コントローラ1からのリクエスト信号の入力を待つ(STP13がY、STP4)。
次に、図5は、ビデオ転送コントローラ1とCPU4が同時にSDRAM8をアクセスした時の動作を示すタイムチャートである。尚、「SDRAM−RAS」(Row Address Strobe)は、SDRAM8において、行アドレスを指定する信号であり、「SDRAM−CAS」(Column Address Strobe)は、列アドレスを指定する信号である。また、「PCI−REQ#」は、前述のようにバスマスタ、即ちホストPCIブリッジ2がホストバスアービタ7にホストバスの専有を要求する時出力する信号であり、「PCI−GNT#」は、ホストバスアービタ7がホストバスの専有を許可する時出力する信号である。
「FRAME#」はイニシエータ、即ちホストPCIブリッジ2が、ターゲット、即ちSDRAM8に対してアクセス要求を開始する時出力する信号である。また、「DEVSEL#」は、選択されたターゲット(SDRAM8)がイニシエータ(ホストPCIブリッジ2)から「FRAME#」を受信した時出力する信号である。
また、「TRDY#」は、ターゲット(SDRAM8)がイニシエータ(ホストPCIブリッジ2)に対してアクセス要求を許可する時出力する信号である。さらに、「STOP#」は、ターゲット(SDRAM8)がイニシエータ(ホストPCIブリッジ2)に対してアクセスを中断するときに送出する信号であり、「AD」は、SDRAM8のアドレスを示す。
同図において、時点Sまでは、CPU4がホストバスを専有してSDRAM8をアクセスしている。この時までの処理は、先ずCPU4がSDRAM8にアクセスし(同図に示す「1」)、SDRAM8からアクセス許可に従って(同図に示す「2」)、SDRAM8の行アドレス、及び列アドレスを指定し(同図に示す「3」、「4」)、対応するアドレスから、例えばデータを読み出している(同図に示す「5」)。この処理を繰り返し、CPU4はSDRAM8からデータを順次読み出す。
次に、時点Sにおいて、ホストPCIブリッジ2がホストバスアービタ7にホストバスの専有を要求する。すなわち、ホストPCIブリッジ2がSDRAM8に対して「PCI−REQ#」信号を送出する(同図に示す「6」)。次に、SDRAM8がホストPCIブリッジ2に対して「PCI−GNT#」信号を送出し(同図に示す「7」)、続いてホストPCIブリッジ2がSDRAM8に「FRAME#」信号を送出し(同図に示す「8」)、SDRAM8がホストPCIブリッジ2に「DEVSEL#」信号を送出する(同図に示す「9」)。
ここで、ホストPCIブリッジ2にSDRAM8から取得したデータが保持されていれば、SDRAM8からホストPCIブリッジ2に対して「TRDY#」信号を送出する。本例では、時点TにおいてホストPCIブリッジ2にSDRAM8から取得したデータが保持されていないか、又は保持したデータが充分ではないので、リトライ要求を行い、SDRAM8はホストPCIブリッジ2に対して「STOP#」信号を送出する(同図に示す「10」)。
また、時点Uにおいて、再度ホストPCIブリッジ2がホストバスアービタ7にホストバスの専有を要求する。先ず、ホストPCIブリッジ2がSDRAM8に「PCI−REQ#」信号を送出する(同図に示す「11」)。続いて、SDRAM8がホストPCIブリッジ2に「PCI−GNT#」信号を送出し(同図に示す「12」)、SDRAM8に「FRAME#」信号を送出する(同図に示す「13」)。
さらに、SDRAM8がホストPCIブリッジ2に「DEVSEL#」信号を送出する(同図に示す「14」)。この時、ホストPCIブリッジ2にはSDRAM8から取得したデータが保持されているので、SDRAM8からホストPCIブリッジ2に「TRDY#」信号を送出する(同図に示す「15」)。
次に、時点Vにおいて、ホストPCIブリッジ2はSDRAM8のデータを取得する(同図に示す「16」)。本例では、CPU4のSDRAM8に対するアクセスを1回あたり64バイトとしている。SDRAM8のアクセスは64ビット幅×8回のバーストアクセスである。PCIのアクセスは32ビット幅×16回のバーストアクセスである。
次に、図6はビデオ転送コントローラ1とDMAコントローラ5が同時にHDD9にアクセスした時の動作を示すタイムチャートである。
先ず、DMAコントローラ5はSDRAM8にアクセスの要求し(同図に示す「20」)、SDRAM8からアクセスの許可を得る(同図に示す「21」)。次に、SDRAM8はDMAコントローラ5に保管されたデータの行アドレスを指定し、更にデータの列アドレスを指定し(同図に示す「22」)、SDRAM8からデータを取得する(同図に示す「23」)。
また、時点Sにおいて、ホストPCIブリッジ2がホストバスアービタ7にホストバスの専有を要求する。先ず、ホストPCIブリッジ2はSDRAM8に「PCI−REQ#」信号を送出し(同図に示す「24」)、SDRAM8がホストPCIブリッジ2に「PCI−GNT#」信号を送出する(同図に示す「25」)。続いて、ホストPCIブリッジ2はSDRAM8に「FRAME#」信号を送出し(同図に示す「26」)、SDRAM8がホストPCIブリッジ2に「DEVSEL#」信号を送出する(同図に示す「27」)。
ここで、ホストPCIブリッジ2にSDRAM8から取得したデータが保持されていないか、又充分なデータが保持されていなければ、「STOP#」信号を送出する(同図に示す「28」)。この場合、リトライ処理を行い、ホストPCIブリッジ2に必要なデータが保持されていると「TRDY#」信号を送出する(同図に示す「29」)。
次に、時点Vにおいて、再度ホストPCIブリッジ2がホストバスアービタ7にホストバスの専有を要求すると(同図に示す「30」)、SDRAM8は「PCI−GNT#」信号を送出する(同図に示す「31」)。以後上記と同様にして、ホストPCIブリッジ2に必要なデータが保持されていない間、リトライを繰り返し、必要なデータが保持されると「TRDY#」信号を送出し、順次データをビデオ転送コントローラ1のFIFO10に入力する。
図7は、HDD9にアクセスするバースト長を16ビット幅×8回に調整したときの動作を示すタイムチャートである。尚、各時点SないしVにおける動作の説明は、前述の図6と同じあり、説明を省略する。
本例ではバースト長を16ビット幅×8回に変更した結果、PCIバスの待ち時間は、1〜2回分のリトライに短縮されている(同図に示す「32」)。すなわち、本例ではHDD9にアクセスするバースト長を短く変更したので、ホストPCIブリッジ2を介してFIFO10には短いデータが短い周期で供給され、リトライ回数を減らし、データ待ち時間を短くすることが可能となる。
このことは、HDD9へのアクセスだけでなく、SDRAM8に対するアクセスにおいても同様であり、リトライ回数を減らし、SDRAM8から効率よくFIFO10にデータを入力することが可能となる。
尚、バースト長を制限する以外に、DMAコントローラ5のアクセスを一定時間禁止することで実現する構成としてもよい。また、可変バースト長は8バイトと16バイトに限らず、段階的に可変させてもよい。
(実施形態2)
次に、本発明の実施形態2について説明する。
本実施形態は、PCIバスのバースト転送において、転送先が中断を要求する時点をバースト長の限界と判断し、次からバースト長をその長さに調整する発明である。
図8は、本例のネットワーク構成を示す図である。CPU20とSDRAM21はホストバスを介してホストPCIブリッジ22と接続している。ホストPCIブリッジ22は、更にPCIバスを介してPCIデバイスA、PCIデバイスB、PCIデバイスCに接続されている。ホストPCIブリッジ22のバースト長の最大値は32バイトである。一方、PCIデバイスAのバースト長の最大値は16バイトであり、PCIデバイスBのバースト長の最大値は8バイトであり、PCIデバイスCのバースト長の最大値は16バイトである。
上記構成ではイニシエータであるPCIデバイスA〜PCIデバイスCに対してターゲットであるホストPCIブリッジ22のバースト長の最大値は大きい。したがって、この場合のデータ転送に問題はなく、以下のタイムチャートに従って実行される。
図9は、PCIデバイスAがイニシエータ、ホストPCIブリッジ22がターゲットとなる場合のPCIバスのアクセス処理を示すタイムチャートである。先ず、PCIデバイスAがホストPCIブリッジ22に「FRAME#」信号を送出する(同図に示す「40」)。続いて、ホストPCIブリッジ22がPCIデバイスAに「DEVSEL#」信号を送出する(同図に示す「41」)。次に、ホストPCIブリッジAがPCIデバイス22に「TRDY#」信号を送出し(同図に示す「42」)、PCIデバイスAはターゲットであるホストPCIブリッジAのデータ(16bytes)を取得する(同図に示す「43」)。したがって、上記処理において、ストップ信号が出力されることはなく、データ転送が正常に行われる。
また、図10は、PCIデバイスBがイニシエータであり、ホストPCIブリッジ22がターゲットのときのPCIバスのアクセスを示すタイムチャートである。この場合、PCIデバイスBがターゲットであるホストPCIブリッジ22に「FRAME#」信号を送出する(同図に示す「44」)。続いて、ホストPCIブリッジ22がイニシエータであるPCIデバイスBに「DEVSEL#」信号を送出する(同図に示す「45」)。さらに、ホストPCIブリッジ22はPCIデバイスBに「TRDY#」信号を送出し(同図に示す「46」)、PCIデバイスBはターゲットであるホストPCIブリッジ22のデータ(8bytes)を取得する(同図に示す「47」)。したがって、この場合も上記処理中、ストップ信号が出力されることはなく、データ転送が正常に行われる。
一方、図11は、図8と同じ構成であるが、ホストPCIブリッジ24のバースト長の最大値が8バイトの場合である。この場合、イニシエータに対してターゲットのバースト長の最大値が小さいので問題となる。但し、図12に示す場合、バースト長の最大値が8バイトであるイニシエータ(PCIデバイスB)が使用されるので、前述と同様ストップ信号が出力されることはなく、データ転送が正常に行われる。
しかし、図13に示す場合、イニシエータがバースト長の最大値16バイトのPCIデバイスAであり問題となる。すなわち、PCIブリッジBに「FRAME#」信号を送出し(同図に示す「48」)、続いてターゲットであるホストPCIブリッジAがPCIデバイス24に「DEVSEL#」信号を送出する(同図に示す「49」)。さらに、ホストPCIブリッジ24がPCIデバイスAに「TRDY#」信号を送出し(同図に示す「50」)、PCIデバイスAはホストPCIブリッジ24のデータを取得する(同図に示す「51」)。
しかし、本例では最大8バイト分のデータがホストPCIブリッジ24に入力すると、それ以上PCIブリッジAからデータを書き込むことができない。したがって、この場合ストップ信号が出力され、ホストPCIブリッジ24に対するデータ入力処理を停止する(同図に示す「52」)。このため、クロック信号を必要とし、実質的なデータ転送時間が延びることになる。
そこで、本例では以下の構成とする。図14は本例の構成を説明する図である。同図において、本例はPCIバーストカウンタ30、前回までのバースト長レジスタ31、比較器32、バースト長レジスタ33を有する。また、図15は、本例の処理を説明するフローチャートである。尚、バースト長レジスタ33には、あるバースト長の最大値が記憶されているものとする。
先ず、例えばPCIデバイスCがPCIバスにバーストアクセスする(ステップ(以下、Wで示す)1)。そして、バーストアクセスが終了した時点で(W2がY)、今回のバースト長と前回のバースト長を比較器32によって比較する(W3)。すなわち、PCIバーストカウンタ30の新たなバースト長と、前回までのバースト長レジスタ31のデータを比較し、今回のバースト長が長い時、前回までのバースト長レジスタ31の値を今回のバースト長の値に更新する(W4)。
次に、PCIデバイスCは規定回数PCIバスにバーストアクセスしたか判断し(W5)、規定回数未満であれば再度上記処理を繰り返す(W5がN)。一方、PCIデバイスCが規定回数PCIバスにバーストアクセスした場合(W5がY)、バースト長レジスタ33に記憶する最大値を今回のバースト長の値に更新する(W6)。
図16は、PCIデバイスCがイニシエータとして機能し、ホストPCIブリッジ24がターゲッタとして機能する場合のPCIバスのアクセスを示すタイムチャートである。PCIデバイスCのバースト長の最大値は、前述のように16バイトであり、ホストPCIブリッジ24のバースト長の最大値は8バイトである。
時点Yにおいて、前回までのバースト長レジスタの値で4バイトが記憶されている。ここから規定回数のバーストアクセスを行う。この場合、バースト長の最大値が4→6→8と順次大きくなり、これに伴って前述の比較器32の比較結果に従ってバースト長レジスタ33には上記値が順次更新される。尚、図17は図16に続くタイムチャートを示し、バースト長の最大値8が以後継続することが分かる。
以上のように、本例によればPCIアクセスにおいて、バースト長を順次対応する大きさに変更することができ、ストップ信号の出力に基づくクロック信号の出力を減らし、データ転送を高速に行うことができる。
実施形態1のシステム構成図である。 ホストバスアービタの動作を示す図である。 HDDコントローラのHDDに対するアクセスと、DMAコントローラのSDRAMに対するアクセスの動作を示すフローチャートである。 ビデオ転送コントローラとホストPCIブリッジの動作を示すフローチャートである。 CPUとビデオデータ転送が同時にSDRAMにアクセスしたときの動作を示すタイムチャートである。 DMAコントローラとビデオデータ転送が同時にHDDにアクセスしたときの動作を示すタイムチャートである。 HDDにアクセスするバースト長を16ビット幅×8回に調整したときの動作を示すタイムチャートである。 実施形態2のネットワーク構成を示す図である。 PCIデバイスAがイニシエータ、ホストPCIブリッジがターゲットのときのPCIバスのアクセスを示すタイムチャートである。 PCIデバイスBがイニシエータ、ホストPCIブリッジがターゲッタのときのPCIバスのアクセスを示すタイムチャートである。 問題となるバースト長の最大値を有するホストPCIブリッジの例を示すネットワーク構成図である。 PCIデバイスBがイニシエータ、ホストPCIブリッジがターゲットのときのPCIバスのアクセスを示すタイムチャートである。 PCIデバイスAがイニシエータ、ホストPCIブリッジがターゲットタのときのPCIバスのアクセスを示すタイムチャートである。 PCIデバイスCのバースト長レジスタの構成図である。 バースト長レジスタのピークホールド値の更新処理を説明するフローチャートである。 PCIデバイスCがイニシエータ、ホストPCIブリッジがターゲットのときのPCIバスのアクセスを示すタイムチャートである。 PCIデバイスCがイニシエータ、ホストPCIブリッジがターゲットのときのPCIバスのアクセスを示すタイムチャートである。
符号の説明
1・・・ビデオ転送コントローラ
2・・・ホストPCIブリッジ
3・・・メモリーコントローラ
4・・・CPU
5・・・DMAコントローラ
6・・・HDDコントローラ
7・・・ホストバスアービタ
8・・・SDRAM
9・・・HDD
10・・・FIFO
11・・・ビデオデータ変換部
12・・・PCIマスターコントローラ
13・・・PCIターゲットコントローラ
14・・・ライトカウンタ
15・・・リードカウンタ
16・・・比較器
20・・・CPU
21・・・SRAM
22・・・ホストPCIブリッジ
24・・・ホストPCIブリッジPCIバーストカウンタ30、
31・・・前回までのバースト長レジスタ
32・・・比較器、
33・・・バースト長レジスタ、

Claims (5)

  1. ホストバスを介して接続されるメモリ装置にアクセスする手段と、
    前記ホストバスを専有する前記メモリ装置の優先順位を決定する手段と、
    PCIバスを介して接続する外部機器のデータを一時的に保持する保持手段と、
    該保持手段が保持したデータの残量に応じて、前記メモリ装置から読み出すバーストデータ量を変更する変更手段と、
    前記保持手段が保持するデータ量を、ライトカウンタとリードカウンタで計数し、ライトカウンタとリードカウンタの計数値に基づいて前記バーストデータの変更を判断する判断手段と、
    を有することを特徴とするデータ転送装置。
  2. 前記保持手段に保持するデータ量が多い場合、前記変更手段はバーストデータ量を大きく設定し、前記保持手段に保持するデータ量が少ない場合、前記変更手段はバーストデータ量を小さく設定することを特徴とする請求項1記載のデータ転送装置。
  3. 前記保持手段は、FIFOであることを特徴とする請求項1、又は2記載のデータ転送装置。
  4. バーストアクセス中のデータ数をカウントするカウント手段と、
    第1の最大バースト数を記憶する第1の記憶手段と、
    第2の最大バースト数を記憶する第2の記憶手段と、
    前記第1の最大バースト数と前記第2の最大バースト数を比較する手段と、
    前記比較した結果、前記第2の最大バースト数が前記第1の最大バースト数より大きい場合、前記第1の最大バースト数の値を前記第2の最大バースト数の値で再記憶する手段と、
    を有することを特徴とするデータ転送装置。
  5. 前記バーストアクセスを行った回数をカウントするカウント手段と、
    前記バーストアクセスを行った回数が規定値に達したか判断する判断手段と、
    前記バーストアクセスを行った回数が規定値に達した時、前記第1の最大バースト数の値を前記第2の最大バースト数の値に更新する更新手段と、
    を有することを特徴とする請求項4記載のデータ転送装置。

JP2005194208A 2005-07-01 2005-07-01 データ転送装置 Withdrawn JP2007011884A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005194208A JP2007011884A (ja) 2005-07-01 2005-07-01 データ転送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005194208A JP2007011884A (ja) 2005-07-01 2005-07-01 データ転送装置

Publications (1)

Publication Number Publication Date
JP2007011884A true JP2007011884A (ja) 2007-01-18

Family

ID=37750248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005194208A Withdrawn JP2007011884A (ja) 2005-07-01 2005-07-01 データ転送装置

Country Status (1)

Country Link
JP (1) JP2007011884A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948295A (zh) * 2019-12-11 2021-06-11 中国科学院声学研究所 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948295A (zh) * 2019-12-11 2021-06-11 中国科学院声学研究所 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法
CN112948295B (zh) * 2019-12-11 2023-07-14 中国科学院声学研究所 一种基于axi4总线的fpga与ddr高速数据包传输系统及方法

Similar Documents

Publication Publication Date Title
US20050193155A1 (en) Data transfer apparatus and transfer control program
WO2011089660A1 (ja) バス調停装置
JP2004171209A (ja) 共有メモリデータ転送装置
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
JP2006195714A (ja) リソース管理装置
JP5396169B2 (ja) データアクセス制御装置
US20060236001A1 (en) Direct memory access controller
JP2003296267A (ja) バスシステム及びバスシステムを含む情報処理システム
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
KR100348545B1 (ko) 통신 dma 장치
US7774513B2 (en) DMA circuit and computer system
US20090119429A1 (en) Semiconductor integrated circuit
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
US7185122B2 (en) Device and method for controlling data transfer
KR20030097700A (ko) 데이터 프로세서
JP2007011884A (ja) データ転送装置
JP5360594B2 (ja) Dma転送装置及び方法
US20060047866A1 (en) Computer system having direct memory access controller
US20120011295A1 (en) Method and apparatus for wireless broadband systems direct data transfer
KR20050075642A (ko) 효율적으로 버스를 사용하는 방법
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
JP2009271610A (ja) バッファ制御回路、バッファ回路およびデータ処理装置
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
JP2006126938A (ja) データ転送システム及びそのデータ転送方法
JP4560398B2 (ja) データ処理回路

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902