[go: up one dir, main page]

JP2011053895A - Data communication apparatus - Google Patents

Data communication apparatus Download PDF

Info

Publication number
JP2011053895A
JP2011053895A JP2009201876A JP2009201876A JP2011053895A JP 2011053895 A JP2011053895 A JP 2011053895A JP 2009201876 A JP2009201876 A JP 2009201876A JP 2009201876 A JP2009201876 A JP 2009201876A JP 2011053895 A JP2011053895 A JP 2011053895A
Authority
JP
Japan
Prior art keywords
request
dmac
data
read
data communication
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
JP2009201876A
Other languages
Japanese (ja)
Inventor
Shinko Yamada
眞弘 山田
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 JP2009201876A priority Critical patent/JP2011053895A/en
Publication of JP2011053895A publication Critical patent/JP2011053895A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】要求コマンドと、それに対する応答とが分離されていて、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行可能なバスにおいて、転送レートの最悪値を保証する必要のある要求源に対し、高い保証値を達成するデータ通信装置を提供する。
【解決手段】スピリット・トランザクションのプロトコルを用いるインタフェースを介してデータ転送を行うデータ通信装置において、DMACの設定情報から先行してメモリアクセス要求を発行し、対象DMACの正常及び異常終了により先行リードアクセスしていたデータを無効化する。
【選択図】図2
A request source in which a request command and a response to the request command are separated and a worst-case value of a transfer rate needs to be guaranteed in a bus that can issue request commands one after another without waiting for a response to the request command. In contrast, a data communication device that achieves a high guaranteed value is provided.
In a data communication apparatus that performs data transfer via an interface using a spirit transaction protocol, a memory access request is issued in advance of DMAC setting information, and a preceding read access is performed by normal and abnormal termination of the target DMAC. Invalidate the data.
[Selection] Figure 2

Description

本発明は、スピリット・トランザクションのプロトコルを用いるインタフェースを介したデータ転送を制御するデータ通信装置に関する。   The present invention relates to a data communication apparatus for controlling data transfer through an interface using a spirit transaction protocol.

従来のPCIバスなどのパラレル方式のバスでは、複数のデータビットの同期合わせや、クロストークの発生により、高速化が難しいという問題があるが、シリアル方式では、これらの問題に対して有利であり、パラレル方式のバスよりも、高速化しやすくなっている。   Conventional parallel buses such as the PCI bus have the problem that it is difficult to increase the speed due to the synchronization of multiple data bits and the occurrence of crosstalk. The serial method is advantageous for these problems. It is easier to speed up than parallel buses.

また、これとは別に、PCI Expressなどの新規のバスでは、要求コマンドと、それに対する応答とが分離されており、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行できるので、バスの使用効率を向上できることが既に知られている。   Apart from this, in new buses such as PCI Express, the request command and the response to it are separated, and the request command can be issued one after another without waiting for the response to the request command. It is already known that the usage efficiency can be improved.

PCI Expressは、PC(Personal Computer)等で使用されることが多いが、最近では、デジタル複写機や複合機(MFP:Multi Function Peripheral)等の画像処理装置におけるデバイス間のインタフェースに使用され始めている。   PCI Express is often used in PCs (Personal Computers) and the like, but recently it has begun to be used as an interface between devices in image processing apparatuses such as digital copiers and multi-function peripherals (MFPs). .

しかし、PCI Expressなどの新規のバスでは、転送レートの最悪値を保証する必要のある要求源に対し、その保証値を高くできないという問題があった。要求源の例としては、ビデオ出力データの入出力のDMAC(Direct Memory Access Controller)などが挙げられ、単位時間あたりの転送レートを維持できないと異常画像となる。   However, a new bus such as PCI Express has a problem that the guaranteed value cannot be increased for a request source that needs to guarantee the worst value of the transfer rate. An example of the request source is a DMAC (Direct Memory Access Controller) for input / output of video output data, and an abnormal image is generated if the transfer rate per unit time cannot be maintained.

すなわち、PCI Expressなどの新規のバスでは、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行することができるという特性を有効に利用するため、要求コマンドを保持しておくためのバッファ(キュー)を持ち、発行された要求コマンドを、このキューに一時的に蓄えられる構成としている。   In other words, in a new bus such as PCI Express, a buffer (for holding request commands) is used in order to effectively use the characteristic that request commands can be issued one after another without waiting for a response to the request command. A queue) and issued request commands are temporarily stored in this queue.

このような構成とすることで、PCI Expressなどに対し、高い要求コマンド発行レートを達成することが可能となったが、要求源側としては、常にこのレートで要求を発行するわけではない。優先順位の高いDMACであっても、既に、必要としているリード(read)/ライト(write)アクセス要求と、現在処理を実行している処理対処のアドレスデータから、単純増加/減少により算出できるアドレスに対する要求を発行する程度である。   With this configuration, a high request command issue rate can be achieved for PCI Express and the like, but the request source side does not always issue requests at this rate. Even with a high priority DMAC, an address that can be calculated by simple increase / decrease from the read / write access request that is already required and the address data for the processing that is currently executing the processing. To issue a request for.

このため、高優先順位の要求源からの要求が不参加の状態で、バス調停が行われることとなる。   For this reason, bus arbitration is performed in a state where a request from a request source having a high priority is not participating.

このとき、低優先順位の要求源からの要求が多数許可されてしまい、キューに積まれ、実行待ちの状態となる。   At this time, a large number of requests from a request source having a low priority are permitted, loaded in the queue, and waiting for execution.

その後、高優先順位の要求源からの要求が発行され、その要求に対する許可が与えられ、キューに積まれることになる。しかし、このアクセス実行には、それ以前にキューに積まれている実行を待つ必要があり、不本意のバス調停がされて、キューの積まれている要求の実行時間分を考慮して保証値とする必要がある。よって、その保証値を高くできないという問題があった。   Thereafter, a request from a high priority request source is issued, permission is granted for the request, and it is loaded into the queue. However, for this access execution, it is necessary to wait for the execution that has been queued before, and the guaranteed value is taken into account for the execution time of the request that has been queued due to unintentional bus arbitration. It is necessary to. Therefore, there is a problem that the guaranteed value cannot be increased.

なお、本発明に関連する従来例として、特許文献1(特開2007−249816号公報)がある。この特許文献1の発明は、トランザクション層の送信バッファが介在している場合であっても、アービタの設定と実際のトラフィックのプライオリティの整合性を維持しつつ優先度の調停を行うことができるものであり、統計情報生成手段を持ち、その結果に応じてリアルタイムにアービトレーションテーブルを変更することでそれを実現している。   As a conventional example related to the present invention, there is Patent Document 1 (Japanese Patent Laid-Open No. 2007-249816). The invention of Patent Document 1 can perform priority arbitration while maintaining consistency between the arbiter setting and the actual traffic priority even when a transaction layer transmission buffer is interposed. It has a statistical information generation means, and realizes it by changing the arbitration table in real time according to the result.

しかし、この特許文献1の発明は、実際のパケットデータの統計情報を使用してアービタを調整するものであり、その精度が未知であり、転送レートの最悪値を保証する必要のある要求源に対し、保証値の設定が容易ではない。   However, the invention of Patent Document 1 adjusts the arbiter using statistical information of actual packet data, the accuracy is unknown, and a request source that needs to guarantee the worst value of the transfer rate. On the other hand, it is not easy to set guaranteed values.

本発明は、上記事情に鑑みてなされたものであり、要求コマンドと、それに対する応答とが分離されていて、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行可能なバスにおいて、転送レートの最悪値を保証する必要のある要求源に対し、高い保証値を達成するデータ通信装置を提供することを目的とする。   The present invention has been made in view of the above circumstances, and a request command and a response to the request command are separated, and transfer is performed in a bus that can issue request commands one after another without waiting for a response to the request command. An object of the present invention is to provide a data communication apparatus that achieves a high guaranteed value for a request source that needs to guarantee the worst value of a rate.

かかる目的を達成するために、本発明のデータ通信装置は、スピリット・トランザクションのプロトコルを用いるインタフェースを介してデータ転送を行うデータ通信装置において、DMACの設定情報から先行してメモリアクセス要求を発行し、対象DMACの正常及び異常終了により先行リードアクセスしていたデータを無効化することを特徴とする。   In order to achieve this object, the data communication device of the present invention issues a memory access request in advance of the DMAC setting information in a data communication device that transfers data via an interface using a spirit transaction protocol. In this case, the previous read access data is invalidated due to normal and abnormal termination of the target DMAC.

本発明のデータ通信装置において、先行リード対象DMACに対し、それとは別のDMACのライトが、先行リード対象アドレス領域に行われるまで、先行リードアクセスを実行しないことを特徴とする。   The data communication apparatus according to the present invention is characterized in that the preceding read access is not executed until another DMAC write is performed on the preceding read target DMAC in the preceding read target address area.

本発明のデータ通信装置において、先行リードアクセスしたデータを保持しておくメモリの分割方法をプログラマブルとしたことを特徴とする。   The data communication apparatus according to the present invention is characterized in that a memory dividing method for holding data that has undergone preceding read access is programmable.

本発明のデータ通信装置において、DMACからのライトアクセスを、それとは別のDMACが、その対象アドレス領域に対して行われるまで、ライトアクセスを実行しないことを特徴とする。   In the data communication apparatus of the present invention, the write access from the DMAC is not executed until another DMAC is performed on the target address area.

本発明のデータ通信装置において、アービタの調停方式として、ラウンドロビン方式で調停を行うことを特徴とする。   The data communication apparatus according to the present invention is characterized in that arbitration is performed by a round robin method as an arbiter arbitration method.

本発明のデータ通信装置において、要求源からのアクセス要求が存在しないことを理由に、要求源に許可を与えない場合、要求源のアクセス要求に対し、依存関係のあるDMACからのアクセス要求源に対して許可を与えることを特徴とする。   In the data communication apparatus of the present invention, when permission is not given to the request source because there is no access request from the request source, the access request source from the DMAC having a dependency relation to the access request of the request source It is characterized by giving permission.

本発明によれば、要求コマンドと、それに対する応答とが分離されていて、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行可能なバスにおいて、転送レートの最悪値を保証する必要のある要求源に対し、高い保証値を達成することができる。   According to the present invention, a request command and a response to the request command are separated, and it is necessary to guarantee the worst value of the transfer rate in a bus that can issue request commands one after another without waiting for a response to the request command. A high guaranteed value can be achieved for a given source.

本発明の一実施形態に係る複合機(MFP)の構成例を示す概念図である。1 is a conceptual diagram illustrating a configuration example of a multifunction peripheral (MFP) according to an embodiment of the present invention. 本発明の一実施形態に係るコントローラASIC部分の構成例を示すブロック図である。It is a block diagram which shows the structural example of the controller ASIC part which concerns on one Embodiment of this invention. 本発明の一実施形態に係るPCI Expressのエンドポイントの内部構成を示すブロック図である。It is a block diagram which shows the internal structure of the endpoint of PCI Express concerning one Embodiment of this invention. PCIバスなどで採用されているインタロック型バスの転送について示す図である。It is a figure which shows about transfer of the interlock type bus | bath employ | adopted with the PCI bus. PCI Expressなどに採用されているスピリット・トランザクション型バスの転送を示す図である。It is a figure which shows the transfer of a spirit transaction type bus | bath employ | adopted as PCI Express. スピリット・トランザクション型バスでの従来の転送の様子を示す図である。It is a figure which shows the mode of the conventional transfer in a spirit transaction type bus | bath. 本発明の一実施形態に係る先読み制御回路の構成を示すブロック図である。It is a block diagram which shows the structure of the prefetch control circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係る先読み制御回路を設けた場合におけるデータの流れを示す図である。It is a figure which shows the flow of data in the case of providing the prefetch control circuit which concerns on one Embodiment of this invention. 本発明の一実施形態に係る先読み制御回路内の各部(対象DMACパラメータレジスタ、カレントDMACパラメータレジスタ、リクエストパラメータレジスタ、リクエストバッファ、バッファメモリ管理レジスタ)の詳細を示す図である。It is a figure which shows the detail of each part (Target DMAC parameter register, Current DMAC parameter register, Request parameter register, Request buffer, Buffer memory management register) in the prefetch control circuit concerning one Embodiment of this invention. 本発明の一実施形態に係るリクエストパラメータレジスタの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the request parameter register which concerns on one Embodiment of this invention. 本発明の一実施形態に係る先読み制御回路を用いたときの転送の様子を示す図である。It is a figure which shows the mode of transfer when the prefetch control circuit which concerns on one Embodiment of this invention is used. 本発明の一実施形態に係る先読み制御回路のDMA連携の動作を示すフローチャートである。6 is a flowchart showing an operation of DMA cooperation of the prefetch control circuit according to the embodiment of the present invention. 本発明の一実施形態に係るアービタの調停の様子を示す図である。It is a figure which shows the mode of arbitration of the arbiter which concerns on one Embodiment of this invention.

以下、本発明を実施するための形態(実施形態)について添付図面を参照して詳細に説明する。   DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments (embodiments) for carrying out the present invention will be described in detail with reference to the accompanying drawings.

図1は、本発明の画像処理装置の一実施形態である複合機(MFP)の構成を示す概念図である。図1に示すように、本実施形態の画像処理装置は、原稿を読み取るスキャナユニット101、印字出力するプロッタユニット102、スキャナユニット101とプロッタユニット102を制御するためのエンジン制御ASIC(Application Specific Integrated Circuit)103、複合機全体を制御するためのコントローラASIC(Application Specific Integrated Circuit)104、複合機全体を制御するためのCPU(Central Processing Unit)105、CPU105が動作するためのプログラムやデータ及び画像データなどを記憶しておくためのメモリ106、エンジン制御ASIC103とコントローラASIC104間のインタフェースであるPCI Express107、コントローラASIC104とCPU105間のインタフェースであるPCI Express108、CPU105とメモリ106間のインタフェースであるSSTL108を備える。メモリ106は、CPU105に内蔵しているメモリコントローラにて制御されており、SSTL規格でインタフェースされている。   FIG. 1 is a conceptual diagram showing a configuration of a multifunction peripheral (MFP) which is an embodiment of an image processing apparatus of the present invention. As shown in FIG. 1, the image processing apparatus according to the present embodiment includes a scanner unit 101 that reads a document, a plotter unit 102 that outputs a print, and an engine control ASIC (Application Specific Integrated Circuit) that controls the scanner unit 101 and the plotter unit 102. ) 103, a controller ASIC (Application Specific Integrated Circuit) 104 for controlling the entire MFP, a CPU (Central Processing Unit) 105 for controlling the entire MFP, a program, data, image data, etc. for operating the CPU 105 Memory 106, PCI Express 107 which is an interface between the engine control ASIC 103 and the controller ASIC 104, PCI Express 108 which is an interface between the controller ASIC 104 and the CPU 105, and SSTL 1 which is an interface between the CPU 105 and the memory 106 Equipped with a 8. The memory 106 is controlled by a memory controller built in the CPU 105 and is interfaced with the SSTL standard.

図2は、図1におけるコントローラASIC104(本発明のデータ通信装置の一実施形態)の部分の構成例を記載したものである。   FIG. 2 shows a configuration example of a portion of the controller ASIC 104 (one embodiment of the data communication apparatus of the present invention) in FIG.

201は、PCI Expressのルートコンプレックスである。PCI Expressのルートコンプレックスは、システムのI/O階層で最上位に位置するものであり、末端としては、図1におけるエンジン制御ASIC103となる。   Reference numeral 201 denotes a PCI Express root complex. The root complex of PCI Express is positioned at the highest level in the I / O hierarchy of the system, and the end is the engine control ASIC 103 in FIG.

一方、202は、PCI Expressのエンドポイントである。PCI Expressのエンドポイントは、PCI ExpressのI/O構造で末端に位置するものである。これに対するPCI Expressルートコンプレックスは、図1におけるCPU105である。これにより、コントローラASIC104は、エンジン制御ASIC103、CPU105とインタフェースする。   On the other hand, 202 is a PCI Express endpoint. The PCI Express endpoint is located at the end of the PCI Express I / O structure. The PCI Express root complex for this is the CPU 105 in FIG. As a result, the controller ASIC 104 interfaces with the engine control ASIC 103 and the CPU 105.

203〜206は、印字データを出力制御するためのビデオ出力コントローラであり、0〜3までの4ch分ある。これらは、リードDMAC207〜210を持ち、コントローラASIC外部のメモリからデータをリードする。   Reference numerals 203 to 206 denote video output controllers for controlling the output of print data, and there are four channels from 0 to 3. These have the read DMACs 207 to 210 and read data from the memory outside the controller ASIC.

211は、ビデオ入力コントローラであり、スキャナでの読み取りデータを制御する。PCI Express228を介し、エンジン制御ASIC103からのスキャナデータを、PCI Expressのルートコンプレックス201を介して受け取る。このビデオ入力コントローラ211は、ライトDMAC212を持ち、コントローラASIC104外部のメモリへデータをライトする。   Reference numeral 211 denotes a video input controller that controls data read by the scanner. The scanner data from the engine control ASIC 103 is received via the PCI Express route complex 201 via the PCI Express 228. The video input controller 211 has a write DMAC 212 and writes data to a memory outside the controller ASIC 104.

213〜216は、圧縮データの伸張器などのコントローラユニット0〜3であり、各コントローラユニット0〜3は、コントローラASIC104外部のメモリから元データを読み出すためのリードDMAC217〜220と、処理済みのデータをコントローラASIC104外部のメモリにライトするためのライトDMAC221〜224を持つ。   Reference numerals 213 to 216 denote controller units 0 to 3 such as a decompressor for compressed data. Each controller unit 0 to 3 has a read DMAC 217 to 220 for reading original data from a memory outside the controller ASIC 104 and processed data. Have write DMACs 221 to 224 for writing to the memory outside the controller ASIC 104.

226は、アービタであり、リード/ライトDMACからのコントローラASIC104外部のメモリのアクセス要求を調停する。調停方式としてはラウンドロビンで行う。   Reference numeral 226 denotes an arbiter that arbitrates a memory access request outside the controller ASIC 104 from the read / write DMAC. The arbitration method is round robin.

225は、先読み制御回路であり、DMACに設定された設定情報から、今後必要となるメモリアクセスを検知し、先行してメモリに対してリードを実行する。また、ライト要求に対しても、それとは別のDMACがその対象アドレス領域に対して行われるまで、ライトアクセスを実行しない制御も行う。   Reference numeral 225 denotes a prefetch control circuit that detects memory access that will be required in the future from the setting information set in the DMAC, and reads the memory in advance. Also for a write request, control is performed so that write access is not executed until another DMAC is performed on the target address area.

227は、セレクタであり、PCI Expressのルートコンプレックス201でエンジン制御ASIC103に出力するデータを選択する。   A selector 227 selects data to be output to the engine control ASIC 103 by the PCI Express route complex 201.

図3は、図2のPCI Expressのエンドポイント202の内部構成を示すブロック図である。図3に示すように、PCI Expressのエンドポイント202は、Transaction Layer、 Data Link Layer 、Physical MAC Layerの3つの層に分けることができる。   FIG. 3 is a block diagram showing an internal configuration of the PCI Express endpoint 202 shown in FIG. As shown in FIG. 3, the PCI Express endpoint 202 can be divided into three layers: Transaction Layer, Data Link Layer, and Physical MAC Layer.

Transaction Layerには、送信用バッファ及び受信用のバッファがあり、要求コマンドやデータを一時的に蓄えることができるようになっている。このため、送信用バッファ、受信用バッファ効果により、転送効率を高めるという効果があるが、逆に、転送レートの最悪値を保証する必要のある要求源に対し、その保証値を高くできないという問題があった。   The Transaction Layer has a transmission buffer and a reception buffer so that request commands and data can be temporarily stored. For this reason, the transmission buffer and reception buffer effects have the effect of increasing the transfer efficiency, but conversely, the guaranteed value cannot be increased for the request source that needs to guarantee the worst value of the transfer rate. was there.

図4は、PCIバスなどで採用されているインタロック型バスの転送について示している。リード要求発行後、それに対するリードデータを受け取るまで、次の要求コマンドを発行できない。   FIG. 4 shows the transfer of the interlock type bus adopted in the PCI bus or the like. After issuing a read request, the next request command cannot be issued until the corresponding read data is received.

一方、図5は、PCI Expressなどに採用されているスピリット・トランザクション型バスの転送を示している。こちらは、リード要求に対する応答を待つことなく、次の要求コマンドを発行することができる。このため、同じ、リードレイテンシであっても、スピリット・トランザクション型バスの方が転送レートを高めることができる。   On the other hand, FIG. 5 shows the transfer of a spirit transaction type bus adopted in PCI Express or the like. Here, the next request command can be issued without waiting for a response to the read request. For this reason, even if the read latency is the same, the transfer rate of the spirit transaction type bus can be increased.

図6は、スピリット・トランザクション型バスでの従来の転送の様子を示している。t0時刻で、AとBとCの要求源から要求が発行されている。ここで、AとBが優先順位が高く、Cが優先順位の低い要求源である。アービタは、Aからの要求に対し許可を与え、受付済みコマンドのバッファにAからの要求R_A0(Aからの0番目のリード要求)を積む。   FIG. 6 shows a state of the conventional transfer in the spirit transaction type bus. Requests are issued from the request sources A, B, and C at time t0. Here, A and B are request sources having a high priority and C is a request source having a low priority. The arbiter grants permission to the request from A, and loads the request R_A0 from A (the 0th read request from A) in the buffer of the accepted command.

t1時刻で、アービタは、Bからの要求に対し許可を与え、受付済みコマンドのバッファにBからの要求R_B0(Bからの0番目のリード要求)を積む。また、この時刻に、先ほどバッファに積んだR_A0が送信側伝送路に転送される。   At time t1, the arbiter grants permission for the request from B, and loads the request R_B0 (the 0th read request from B) from B in the buffer of the accepted command. At this time, R_A0 loaded in the buffer is transferred to the transmission channel on the transmission side.

t2時刻で、アービタは、Aからの要求に対し許可を与え、受付済みコマンドのバッファにAからの要求R_A1(Aからの1番目のリード要求)を積む。アービタの優先順位の関係で、Cには許可を与えない。また、この時刻に、先ほどバッファに積んだR_B0が送信側伝送路に転送される。また、この時刻では、受信側伝送路に、R_A0要求に対するリードデータが転送される。但し、転送データ量の関係から、リードコマンドの転送に比べ、リードデータの転送に要する時間が長く、そのことを図6のサイズの違いで表している。   At time t2, the arbiter grants permission to the request from A, and loads the request R_A1 (first read request from A) from A in the buffer of the accepted command. No permission is given to C due to the priority of the arbiter. At this time, R_B0 loaded in the buffer is transferred to the transmission channel on the transmission side. At this time, the read data corresponding to the R_A0 request is transferred to the receiving side transmission path. However, because of the transfer data amount, the time required to transfer the read data is longer than the transfer of the read command, which is represented by the difference in size in FIG.

この様にして転送を実施していくと、自分自身が発行したリードコマンドに対する未完了状態で発行できるリードコマンドの数が有限(図6ではそれぞれ2個)であるために、要求を発行したくても発行できない状態が発生する。Aからの要求は、t4でR_A0に対するリードデータが帰ったことで発行可能となっている(t8でも、R_A1に対するリードデータが帰ったことで発行可能となっている)。   If transfer is performed in this way, the number of read commands that can be issued in an incomplete state with respect to the read command issued by itself is limited (two in FIG. 6). However, a state that cannot be issued occurs. The request from A can be issued when the read data for R_A0 is returned at t4 (even at t8, it can be issued when the read data for R_A1 is returned).

Bについても同様である。この状態となると、A、Bとも、要求を発行したくても、発行できない状態となり、この隙間に、Cからの要求を許可してしまう。このCからの要求がライト要求の場合、コマンドとライトデータを送信側伝送路で送るため、転送に要する時間が長く、その伝送が終わってから、次に許可されたコマンドを送信側伝送路で送ることになり、高い優先順位の要求源であっても、リードレイテンシが長くなる。   The same applies to B. In this state, both A and B cannot be issued even if a request is issued, and the request from C is permitted in this gap. When the request from C is a write request, since the command and write data are sent on the transmission line on the transmission side, the transfer takes a long time, and after the transmission is completed, the next permitted command is transmitted on the transmission side transmission line. Therefore, even if the request source has a high priority, the read latency becomes long.

以上のことから、本実施形態では、図2の先読み制御回路225を設けて対応する。図7は、その先読み制御回路の構造を示すブロック図である。   From the above, this embodiment is provided with the prefetch control circuit 225 shown in FIG. FIG. 7 is a block diagram showing the structure of the prefetch control circuit.

先読み制御回路225は、図7に示すように、対象DMACパラメータレジスタ、リクエストパラメータレジスタ、バッファメモリ管理レジスタ、カレントDMACパラメータレジスタ、リクエストバッファ、先読み制御回路全体制御、及び、バッファメモリコントローラ、バッファメモリにて構成される。   As shown in FIG. 7, the prefetch control circuit 225 includes a target DMAC parameter register, a request parameter register, a buffer memory management register, a current DMAC parameter register, a request buffer, a prefetch control circuit overall control, a buffer memory controller, and a buffer memory. Configured.

図8は、先読み制御回路を設けた場合におけるデータの流れを示す図である。なお、図8で説明するデータの流れは、図1において、コントローラASIC104内のDMACが、メモリ106に存在するディスクリプタ(DMAC実行のパラメータ)及びデータをリードしてきて、処理を実行するまでの様子を示している。以下、図8を参照して説明する。   FIG. 8 is a diagram showing a data flow when a prefetch control circuit is provided. The data flow described with reference to FIG. 8 shows how the DMAC in the controller ASIC 104 reads the descriptor (DMAC execution parameter) and data existing in the memory 106 and executes the process in FIG. Show. Hereinafter, a description will be given with reference to FIG.

execは、DMAC毎に存在する起動レジスタフラグで、1の場合起動、0の場合終了となる。   The exec is a start register flag that exists for each DMAC, and starts when 1 and ends when 0.

param(dmac)は、dmacに持つパラメータレジスタの状態を示しており、破線で、パラメータレジスタ内容が無効であることを示している。   param (dmac) indicates the status of the parameter register in dmac, and the broken line indicates that the parameter register contents are invalid.

req(dmac)は、dmacからのメモリアクセス要求の状態を示している。   req (dmac) indicates the status of a memory access request from dmac.

r_descは、メモリに存在する、ディスクリプタ内容のリード要求を示し、r_L0_0は、メモリに存在する、ライン0の0番目のデータのリード要求を示している。同様に、r_L0_1は、メモリに存在する、ライン0の1番目のデータのリード要求となる。   r_desc indicates a read request for descriptor contents existing in the memory, and r_L0_0 indicates a read request for the 0th data of line 0 existing in the memory. Similarly, r_L0_1 is a read request for the first data of line 0 existing in the memory.

data(dmac)は、前述のreq(dmac)のリード要求に対するリードデータを示しており、先読み制御回路と、dmacとの間を専用のデータラインとして設けている。   data (dmac) indicates read data in response to the read request for req (dmac) described above, and a dedicated data line is provided between the prefetch control circuit and dmac.

ここでは、説明を単純にするため、メモリアクセス要求が全てリード要求となる例を示している。ライトが必要となる場合には、これとは別のデータラインを設けても良い。   Here, in order to simplify the description, an example is shown in which all memory access requests are read requests. When writing is required, a data line different from this may be provided.

descはディスクリプタデータ(r_descに対する応答データ)、d_L0_0はライン0の0番目データのリードデータ(r_L0_0に対する応答データ)という意味となる。   desc means descriptor data (response data to r_desc), and d_L0_0 means read data of the 0th data on line 0 (response data to r_L0_0).

param(pr)は、先読み制御回路のパラメータレジスタの状態を示しており、破線で、パラメータレジスタ内容が無効であることを示している。   param (pr) indicates the state of the parameter register of the prefetch control circuit, and the broken line indicates that the parameter register contents are invalid.

req(pr)は、先読み制御回路からのメモリアクセス要求の状態を示している。r_L0_0は、メモリに存在する、ライン0の0番目のデータのリード要求を示している。   req (pr) indicates the state of the memory access request from the prefetch control circuit. r_L0_0 indicates a read request for the 0th data of line 0 existing in the memory.

基本的に、dmacからのリード要求に比べ、先行して同じアドレスのデータをリード要求することになる。   Basically, a read request for the same address is made ahead of a read request from dmac.

data(pr)は、前述のreq(pr)のリード要求に対するリードデータを示している。   data (pr) indicates read data corresponding to the read request of req (pr) described above.

buff(pr)は、前述のdata(pr)で受け取ったリードデータを保持しておくバッファであり、dmacからのリード要求に応じて、バッファ内のデータをdmacに受け渡すことで、そのデータをバッファから削除する。   buff (pr) is a buffer that holds the read data received by the data (pr) described above. In response to a read request from dmac, the data in the buffer is transferred to dmac, and the data is transferred. Delete from the buffer.

また、execが0となると、バッファ内に保持していたデータは、全て破棄される。   When exec reaches 0, all data held in the buffer is discarded.

以下、図8において、時間の経過にあわせて動作を説明する。   In the following, the operation will be described with time in FIG.

t1において、execが1に設定される(CPUによるソフト設定)。   At t1, exec is set to 1 (software setting by the CPU).

req(dmac)にr_descを示し、dmacがディスクリプタのリード要求を発行する。   req (dmac) indicates r_desc, and dmac issues a descriptor read request.

これは先読み制御回路に入力され、先読み制御回路にて、data(pr)にr_descを示し、ディスクリプタのリード要求を発行する。   This is input to the prefetch control circuit, and the prefetch control circuit indicates r_desc in data (pr) and issues a descriptor read request.

t2において、メモリから読み出されたデータは、data(pr)に乗せられ、先読み制御回路に入力される。   At t2, the data read from the memory is put on data (pr) and input to the prefetch control circuit.

このデータは、dmacにも入力され、t3にて、先読み制御回路、および、dmacのそれぞれのパラメータレジスタに設定される。   This data is also input to dmac, and is set in the prefetch control circuit and each parameter register of dmac at t3.

図8において、t3のタイミングで、param(dmac)、param(pr)が、無効状態から確定状態に変化している箇所がこのことを示している。   In FIG. 8, this is indicated by the location where param (dmac) and param (pr) change from the invalid state to the confirmed state at the timing of t3.

t4において、設定されたパラメータ情報を元に、DMACが使用する最初のデータ(ライン0の0番目のデータ)を、dmac、先読み制御回路の双方が要求する。   At t4, based on the set parameter information, both dmac and the prefetch control circuit request the first data (0th data on line 0) used by the DMAC.

t5において、DMACが使用するその次のデータ(ライン0の1番目のデータ)を、dmac、先読み制御回路の双方が要求する。   At t5, both dmac and the prefetch control circuit request the next data (first data on line 0) used by the DMAC.

dmacからのリード要求データは、先読み制御回路に入力されるのみであり、先読み制御回路からのリード要求に対する応答データを先読み制御回路が受け取り、これをdmacに渡すことで、dmacからのリード要求に答える。   The read request data from the dmac is only input to the prefetch control circuit, and the prefetch control circuit receives the response data for the read request from the prefetch control circuit and passes this to the dmac. answer.

t6では、メモリからのリードデータを先読み制御回路に入力される(r_L0_0に対する応答データ、d_L0_0)。   At t6, read data from the memory is input to the prefetch control circuit (response data for r_L0_0, d_L0_0).

t7では、data(pr)のデータラインに存在するd_L0_0を、先読み制御回路のバッファに入力する。   At t7, d_L0_0 existing in the data line of data (pr) is input to the buffer of the prefetch control circuit.

t8では、先読み制御回路のバッファに入力したd_L0_0データを、data(dmac)に乗せ、dmacに受け渡す。   At t8, the d_L0_0 data input to the buffer of the prefetch control circuit is put on data (dmac) and transferred to dmac.

この様にして、dmacからのリード要求データは、先読み制御回路を介して、dmacに受け渡される。   In this way, read request data from dmac is passed to dmac via the prefetch control circuit.

t9からt11のタイミングのおいても同様である。   The same applies to the timing from t9 to t11.

t9では、メモリからのリードデータを先読み制御回路に入力される(r_L0_1に対する応答データ、d_L0_1)。   At t9, read data from the memory is input to the prefetch control circuit (response data for r_L0_1, d_L0_1).

t10では、data(pr)のデータラインに存在するd_L0_1を、先読み制御回路のバッファに入力する。   At t10, d_L0_1 present in the data line of data (pr) is input to the buffer of the prefetch control circuit.

t11では、先読み制御回路のバッファに入力したd_L0_1データを、data(dmac)に乗せ、dmacに受け渡す。   At t11, d_L0_1 data input to the buffer of the prefetch control circuit is put on data (dmac) and transferred to dmac.

t12では、dmacが受け取ったデータをある程度消費したため、後続のデータを新規にリード要求する。req(dmac)にr_L0_2を示す。   At t12, since the data received by dmac has been consumed to some extent, a new read request is made for subsequent data. r_L0_2 is indicated in req (dmac).

t13では、t12で要求したリードデータが、先読み制御回路のバッファに存在するため、ここからdmacに受け渡す。   At t13, since the read data requested at t12 is present in the buffer of the prefetch control circuit, it is transferred from here to dmac.

t14、t15でも同様に、dmacがリード要求するデータが先読み制御回路のバッファに存在するため、ここからdmacに受け渡す。   Similarly, at t14 and t15, since the data requested by dmac to be read exists in the buffer of the prefetch control circuit, it is transferred to dmac from here.

t16では、CPUによりexecに0が設定(強制終了)されたので、先読み制御回路のバッファ内のデータがクリアされた。   At t16, 0 is set to exec (forced termination) by the CPU, so the data in the buffer of the prefetch control circuit is cleared.

図9は、図7に示す先読み制御回路の各部、すなわち、対象DMACパラメータレジスタ、カレントDMACパラメータレジスタ、リクエストパラメータレジスタ、リクエストバッファ、バッファメモリ管理レジスタの詳細について、それぞれ示している。   FIG. 9 shows details of each part of the prefetch control circuit shown in FIG. 7, that is, a target DMAC parameter register, a current DMAC parameter register, a request parameter register, a request buffer, and a buffer memory management register.

対象DAMCパラメータレジスタでは、先読み制御の対象となるDMACのパラメータを、そのDMACに設定されるものと同じものを保持する。   The target DAMC parameter register holds the same DMAC parameters as those set in the DMAC that are targets of prefetch control.

具体的には、本実施形態において、SA:メモリから読み出すスタートアドレス、MW:メモリ幅(2次元転送時の次のラインまでのメモリ幅)、IW:イメージライン幅、LC:処理ライン数を持つ。このパラメータを持つことで、DMA転送が可能となる。   Specifically, in the present embodiment, SA: start address read from the memory, MW: memory width (memory width up to the next line during two-dimensional transfer), IW: image line width, LC: number of processing lines . Having this parameter enables DMA transfer.

カレントDMACパラメータレジスタは、先読み制御回路が、先読み実行中のパラメータを保持しておくもので、先読みを要求するごとに、値を更新させ、次に要求するアドレス、サイズを算出するために使用される。   The current DMAC parameter register is used by the prefetch control circuit to hold parameters that are being prefetched, and is used to update the value each time a prefetch is requested and to calculate the next requested address and size. The

本実施形態においては、C_SA:現在のスタートアドレス、C_MW:メモリ幅(2次元転送時の次のラインまでのメモリ幅)、C_IW:イメージライン幅、C_LC:現在の残り処理ライン数、L_SA:現在のラインに対するスタートアドレスを保持している。   In this embodiment, C_SA: current start address, C_MW: memory width (memory width up to the next line during two-dimensional transfer), C_IW: image line width, C_LC: current number of remaining processing lines, L_SA: current Holds the start address for this line.

リクエストパラメータレジスタは、DMAC毎に算出された、要求スタートアドレスと、要求サイズ、及び、それをID管理するためのIDを保持する。   The request parameter register holds a request start address, a request size, and an ID for managing IDs calculated for each DMAC.

リクエストバッファは、許可された要求をバッファリングしておき、リード応答が帰ったときに、IDにて、要求内容との対応付けを行うための情報を保持している。   The request buffer buffers the permitted request, and holds information for associating with the request content by the ID when the read response is returned.

本実施形態においては、ID、R_SA:要求スタートアドレス、R_IW:要求サイズの情報を保持する。   In the present embodiment, ID, R_SA: request start address, and R_IW: request size information are held.

リード応答されたデータは、ID情報を元に、要求内と対応付けがなされ、DMAC毎に、バッファメモリ管理レジスタで管理されて、バッファメモリに保持される。   The read response data is associated with the request based on the ID information, managed by the buffer memory management register for each DMAC, and held in the buffer memory.

本実施形態におけるバッファメモリ管理レジスタの構成について、図9を参照して以下に説明する。   The configuration of the buffer memory management register in this embodiment will be described below with reference to FIG.

Buf_SA:バッファメモリの使用方法を制御するもので、そのDMACに対するバッファメモリの使用開始アドレスを保持する。   Buf_SA: Controls how the buffer memory is used, and holds the buffer memory use start address for the DMAC.

Buf_EA:バッファメモリの使用方法を制御するもので、そのDMACに対するバッファメモリの使用終了アドレスを保持する。   Buf_EA: Controls how the buffer memory is used, and holds the buffer memory use end address for the DMAC.

Buf_SA、Buf_EAは、CPUから設定可能な構成となっている。   Buf_SA and Buf_EA can be set from the CPU.

Data_SA:バッファメモリ中に、そのDMACに対する有効なデータが記憶されているスタートのアドレスを示す。   Data_SA: Indicates the start address where valid data for the DMAC is stored in the buffer memory.

Data_EA:バッファメモリ中に、そのDMACに対する有効なデータが記憶されている終了のアドレスを示す。   Data_EA: An end address at which valid data for the DMAC is stored in the buffer memory.

Data_EA<Data_SAの関係となる場合もある。この場合は、Data_SAからBuf_EAまで有効なデータが記憶されていて、その後のデータは、Buf_SAからData_EAに記憶されていることを意味する。   In some cases, Data_EA <Data_SA. In this case, it means that valid data is stored from Data_SA to Buf_EA, and the subsequent data is stored from Buf_SA to Data_EA.

PH_SA0:2次元DMAC時に意味を持つ値で、バッファメモリ中に記憶されているデータの0番目のラインのスタートアドレス(バッファメモリのアドレスではなく、DMACが要求するアドレス)を保持する。   PH_SA0: A value that is meaningful for two-dimensional DMAC, and holds the start address of the 0th line of data stored in the buffer memory (not the address of the buffer memory but the address requested by the DMAC).

SIZE0:PH_SA0が示すスタートアドレスに対し、そのラインの先頭のアドレスからどれだけ分のデータがバッファメモリに記憶されたかを示す値を保持する。   SIZE0: Holds a value indicating how much data is stored in the buffer memory from the start address of the line with respect to the start address indicated by PH_SA0.

PH_SA1:2次元DMAC時に意味を持つ値で、バッファメモリ中に記憶されているデータの1番目のラインのスタートアドレス(バッファメモリのアドレスではなく、DMACが要求するアドレス)を保持する。   PH_SA1: A value that is meaningful for two-dimensional DMAC, and holds the start address of the first line of data stored in the buffer memory (not the address of the buffer memory but the address requested by the DMAC).

SIZE0:PH_SA1が示すスタートアドレスに対し、そのラインの先頭のアドレスからどれだけ分のデータがバッファメモリに記憶されたかを示す値を保持する。   SIZE0: Holds a value indicating how much data is stored in the buffer memory from the start address of the line with respect to the start address indicated by PH_SA1.

なお、PH_SA1、SIZE1は、常に有効な値が入っているわけではなく、バッファメモリに2ライン分のデータを保持している場合にのみ有となる。   Note that PH_SA1 and SIZE1 are not always valid values, and are only present when two lines of data are held in the buffer memory.

図10は、図9のリクエストパラメータレジスタにて、R_SA(要求スタートアドレス)とR_IW(要求サイズ)及びIDを生成する方法を示している。これは、図8において、execが1となって、ディスクリプタ読み出しが行われ、先読み制御回路のパラメータレジスタ設定完了後の、先読み制御回路がDMACの先読みを実行するための要求生成となる。   FIG. 10 shows a method of generating R_SA (request start address), R_IW (request size) and ID in the request parameter register of FIG. In FIG. 8, exec is set to 1, descriptor reading is performed, and the prefetch control circuit generates a request for the prefetch control circuit to execute the prefetch of the DMAC after the parameter register setting of the prefetch control circuit is completed.

最初にIDを0で初期化する(S1)。   First, the ID is initialized with 0 (S1).

次に、現在値の対象DMACパラメータレジスタの値を、C_SA(スタートアドレスの現在値)、C_MW(メモリ幅の現在値)、C_IW(イメージ幅の現在値)、C_LC(現在の残り処理ライン数)、L_SA(現在のラインに対するスタートアドレス)に設定する(S2)。   Next, the target DMAC parameter register value of the current value is set to C_SA (current value of start address), C_MW (current value of memory width), C_IW (current value of image width), C_LC (current number of remaining processing lines) , L_SA (start address for the current line) is set (S2).

C_LC(現在の残り処理ライン数)が0であれば(S3/YES)、処理終了でENDに進む。   If C_LC (current number of remaining processing lines) is 0 (S3 / YES), the process ends and the process proceeds to END.

C_LCが0でなければ(S3/NO)、R_SAにC_SAを要求スタートアドレスとして代入する(S4)。   If C_LC is not 0 (S3 / NO), C_SA is substituted into R_SA as a request start address (S4).

次に、C_IW(現在の残り処理イメージ・ライン数)が、257より小さいかどうかを調べる(S5)。   Next, it is checked whether C_IW (current number of remaining processed image lines) is smaller than 257 (S5).

C_IWが257より小さければ(S5/YES)、R_IWにはC_IW、C_IWにはIW、C_LCにはC_LC-1、C_SAにはL_SA+MW、L_SAにはC_SAをそれぞれ代入する(S6)。   If C_IW is smaller than 257 (S5 / YES), C_IW is assigned to R_IW, IW is assigned to C_IW, C_LC-1 is assigned to C_LC, L_SA + MW is assigned to C_SA, and C_SA is assigned to L_SA (S6).

C_IWが257以上の場合には(S5/NO)、サイズを256として処理する(S8)。   If C_IW is greater than or equal to 257 (S5 / NO), the size is set to 256 (S8).

次に、IDをインクリメントし(S7)、S3に戻る。   Next, the ID is incremented (S7), and the process returns to S3.

この様な処理を行うことで、要求スタートアドレス、要求アクセスサイズ、及び、それに対するIDが生成できる。   By performing such processing, a request start address, a request access size, and an ID corresponding thereto can be generated.

図11は、本実施形態における転送の様子を示す図である。   FIG. 11 is a diagram showing a state of transfer in the present embodiment.

上述したように、従来例における図6では、自分自身が発行したリードコマンドに対する未完了状態で発行できるリードコマンドの数が有限(図6ではそれぞれ2個)であるために、要求を発行できない状態に陥り、その隙間に、低い優先順位の要求(特にライト要求)が入りこみ、その後に発行された高優先順位の要求実行が遅延されてしまっていた。   As described above, in FIG. 6 in the conventional example, a request cannot be issued because the number of read commands that can be issued in an incomplete state with respect to the read command issued by itself is limited (two in FIG. 6). As a result, a low priority request (especially a write request) entered the gap, and the execution of a high priority request issued thereafter was delayed.

しかしながら、本実施形態における図11では、先読み制御回路を持ち、ここに大容量のリードデータを保持することができるようになっていて、必要な量のデータを先行して読み出すため、低い優先順位の要求が不本意に許可され、高優先順位の要求が大幅に待たされるということがない。勿論、高優先順位の要求のアクセスが不要となった場合には、低い優先順位の要求に許可を出す。この場合、再度、高優先順次の要求源のアクセスが必要となったときには、最初のリードデータのリードレイテンシにおいて、本発明を適用しなかった場合同様に遅延量が増加することがある。しかしながら、この場合には、先行して読み出しを行っているため、時間的に余裕がある(リードしたデータをすぐに使用するわけではなく、先行して読みだしているデータを消費してから使用するなどの状態である)ため、これによる影響は問題とならない。   However, in FIG. 11 in the present embodiment, a pre-read control circuit is provided, which can hold a large amount of read data, and a necessary amount of data is read in advance. Requests are unwillingly granted and high priority requests are not waited significantly. Of course, if access to a request with a high priority is not required, a request is issued for a request with a low priority. In this case, when it becomes necessary to access the high priority sequential request source again, in the read latency of the first read data, the delay amount may increase as in the case where the present invention is not applied. However, in this case, since the reading is performed in advance, there is a time margin (the read data is not used immediately, but is used after consuming the previously read data. The effect of this is not a problem.

図12は、DMA連携の処理動作を示すフローチャートである。DMA連携には、対象DMACが、リードを行う場合とライトを行う場合の2種類がある。対象DMACがリードを行う場合、連携対象のDMACがその読み出しデータに対し、有効なデータをライトすることを待って、読み出し要求を発行するものである。一方、対象DMACがライトを行う場合、連携対象のDMACがそのライト領域に対し、既にリードを完了することを待って、ライト要求を発行するものである。   FIG. 12 is a flowchart showing a processing operation of DMA cooperation. There are two types of DMA linkage, when the target DMAC performs reading and writing. When the target DMAC performs reading, it waits for the DMAC to be linked to write valid data to the read data, and issues a read request. On the other hand, when the target DMAC performs the write, the DMAC to be linked issues a write request after waiting for the read area to be already read.

図12に示すように、連携対象DMACとのアドレスの比較にて判断を行う。DMA連携が有効ではない場合は(S11/NO)、そのままアクセス要求の発行となる(S14)。   As shown in FIG. 12, the determination is made by comparing the address with the cooperation target DMAC. If the DMA linkage is not valid (S11 / NO), the access request is issued as it is (S14).

一方、DMA連携が有効である場合は(S11/YES)、リード要求である場合(S12/YES)とライト要求である場合(S12/NO)に分かれる。   On the other hand, when the DMA linkage is valid (S11 / YES), it is divided into a read request (S12 / YES) and a write request (S12 / NO).

リード要求である場合(S12/YES)は次のようになる。すなわち、リード要求のアドレスが、ライト側DMACでライト済みのアドレス範囲内であれば(S13/YES)、アクセス要求の発行となり、そうでなければ(S13/NO)、処理終了となる。   When the request is a read request (S12 / YES), the operation is as follows. That is, if the address of the read request is within the address range already written by the write side DMAC (S13 / YES), the access request is issued, and if not (S13 / NO), the process ends.

同様に、ライト要求である場合(S12/NO)も次のようになる。すなわち、ライト要求のアドレスが、リード側DMACでリード済みのアドレス範囲内であれば(S15/YES)、アクセス要求の発行となり、そうでなければ(S15/NO)、処理終了となる。   Similarly, the case of a write request (S12 / NO) is as follows. That is, if the address of the write request is within the address range that has been read by the read side DMAC (S15 / YES), the access request is issued; otherwise (S15 / NO), the process ends.

なお、DMA連携処理は、先読み制御回路の処理となり、図11で示した、要求スタートアドレス、要求アクセスサイズ、及び、それに対するIDが生成後、その要求を実際にPCI Expressのアービタに要求するかどうかの判断に使用される。   Note that the DMA linkage processing is processing of the prefetch control circuit, and whether the request is actually requested from the PCI Express arbiter after the request start address, the requested access size, and the ID corresponding thereto are generated as shown in FIG. Used to determine if.

図13は、アービタの調停の様子(ラウンドロビン方式)を示している。このアービタを使用することで、DMAC連携を行った場合、アクセスが最適に実行される。以下、図13を用いて説明する。   FIG. 13 shows a state of arbitration of the arbiter (round robin method). By using this arbiter, when DMAC linkage is performed, access is optimally executed. Hereinafter, a description will be given with reference to FIG.

t1の状態での優先順位が示されている。E/Fは、EまたはFを示しており、EとFとの間でどちらが高い優先順位になるかを順番に切り替える。   The priority order in the state of t1 is shown. E / F indicates E or F, and switches between E and F in order of priority.

t1では上から要求のあるもの、もしくは、それ自体は要求を発行していないが、連携先のDMACが要求を発行しているかを見ていき、最初のその条件が成立したものに許可を与える。   At t1, the request is from above, or the request itself is not issued, but it is checked whether the linked DMAC has issued the request, and permission is granted to the first that satisfies that condition .

t1の例では、Bに許可が与えられ、t2での優先順位が、Bを一番高い優先順位にして、入れ替える。   In the example of t1, permission is given to B, and the priority order at t2 is changed with B being the highest priority order.

t3では、G、H、Cとも要求を出していないが、Cの連携先DMACであるJが要求を発行している例である。   In t3, no request is issued for G, H, and C, but J as a cooperation destination DMAC of C is an example in which a request is issued.

この場合、Jが許可され、Cが許可された場合と同様に、I/Jを一番高い優先順位にして、入れ替える(t4参照)。   In this case, as in the case where J is permitted and C is permitted, I / J is set to the highest priority and switched (see t4).

以上の様に入れ替えることで、連携先のDMACの処理待ちが原因で、要求を発行できない要求源の処理効率を改善する。   By switching as described above, the processing efficiency of the request source that cannot issue a request due to the waiting process of the DMAC at the cooperation destination is improved.

以上説明したように、本実施形態によれば、例えばPCI Expressなどのような、要求コマンドと、それに対する応答とが分離されていて、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行可能なバスにおいて、転送レートの最悪値を保証する必要のある要求源に対し、高い保証値を達成することができる。   As described above, according to the present embodiment, the request command such as PCI Express and the response to the request command are separated, and the request command is issued one after another without waiting for the response to the request command. In a possible bus, a high guaranteed value can be achieved for a request source that needs to guarantee the worst value of the transfer rate.

従来、PCI Expressの様に、要求コマンドと、それに対する応答とが分離されているバスにおいても、PCIバス等に最適な従来の調停方法をそのまま使用していた。   Conventionally, a conventional arbitration method optimal for a PCI bus or the like is used as it is even in a bus in which a request command and a response to the request command are separated like PCI Express.

PCI Expressの様に、要求コマンドと、それに対する応答とが分離されているバスにおいては、応答を待たずにバス調停を行うので、高優先順位の要求源からの要求の隙間をついて、低優先順位の要求源からの要求が多数許可され、キューに積まれ処理待ちとなってしまうので、その後に許可された高優先順位の要求源に対する実行が遅延することとなる。   As with PCI Express, bus arbitration is performed without waiting for a response in a bus in which a request command and a response to the request are separated. Therefore, a low priority is provided with a gap between requests from a high-priority request source. Since a large number of requests from the request sources with the ranks are granted and are queued for processing, the execution for the request sources with the high priority that has been granted thereafter is delayed.

特に、この遅延時間の変動幅が大きく、最悪ケースでもカバーできるよう充分大きな値を設定し、その値を用いて機器の設計を行っていた。このため、高優先順位の要求源に対して、高い転送レートを実現することができなかった。   In particular, the fluctuation range of the delay time is large, and a sufficiently large value is set so as to cover even the worst case, and the device is designed using the value. For this reason, a high transfer rate cannot be realized for a request source having a high priority.

そこで、本実施形態では、計画的に調停可能な環境を構築し、その環境下で想定どおりの調停を行っていくので、最悪値を保証する必要のある要求源に対し、そのバスが持つ転送能力を無駄なく割り当てることができ、高い保証値を達成することができる。   Therefore, in this embodiment, an environment that can be arbitrated systematically is constructed, and arbitration is performed as expected under that environment. Therefore, the transfer that the bus has for the request source that needs to guarantee the worst value. Capabilities can be allocated without waste, and a high guaranteed value can be achieved.

以上、本発明の実施形態について説明したが、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変形が可能である。   As mentioned above, although embodiment of this invention was described, it is not limited to the said embodiment, A various deformation | transformation is possible in the range which does not deviate from the summary.

例えば、上述した実施形態における動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。   For example, the operation in the above-described embodiment can be executed by hardware, software, or a combined configuration of both.

ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させてもよい。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させてもよい。   When executing processing by software, a program in which a processing sequence is recorded may be installed and executed in a memory in a computer incorporated in dedicated hardware. Or you may install and run a program in the general purpose computer which can perform various processes.

例えば、プログラムは、記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことが可能である。あるいは、プログラムは、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納(記録)しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。   For example, the program can be recorded in advance on a hard disk or a ROM (Read Only Memory) as a recording medium. Alternatively, the program is temporarily or permanently stored on a removable recording medium such as a CD-ROM (Compact Disc Read Only Memory), an MO (Magneto optical) disc, a DVD (Digital Versatile Disc), a magnetic disc, or a semiconductor memory. It can be stored (recorded). Such a removable recording medium can be provided as so-called package software.

なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送してもよい。または、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送してもよい。コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。   The program may be wirelessly transferred from the download site to the computer in addition to being installed on the computer from the removable recording medium as described above. Or you may wire-transfer to a computer via networks, such as LAN (Local Area Network) and the internet. The computer can receive the transferred program and install it on a recording medium such as a built-in hard disk.

また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。   In addition to being executed in time series in accordance with the processing operations described in the above embodiment, the processing capability of the apparatus that executes the processing, or a configuration to execute in parallel or individually as necessary Is also possible.

本発明は、要求コマンドと、それに対する応答とが分離されていて、要求コマンドに対する応答を待つことなく、次々と要求コマンドを発行可能なバスを利用してデータ転送を行う装置・機器、システム、方法、プログラム等に適用できる。   The present invention relates to an apparatus / device, system for transferring data using a bus that can issue request commands one after another without waiting for a response to the request command, in which the request command and the response to the request command are separated. Applicable to methods, programs, etc.

101 スキャナユニット
102 プロッタユニット
103 エンジン制御ASIC
104 コントローラASIC
105 CPU
106 メモリ
107 PCI Express
108 PCI Express
109 SSTL
201 PCI Expressのルートコンプレックス
202 PCI Expressのエンドポイント
203〜206 ビデオ出力コントローラ
207〜210 リードDMAC
211 ビデオ入力コントローラ
212 ライトDMAC
213〜216 コントローラユニット
217〜220 リードDMAC
221〜224 ライトDMAC
225 先読み制御回路
226 アービタ
227 セレクタ
228 PCI Express
101 Scanner unit 102 Plotter unit 103 Engine control ASIC
104 Controller ASIC
105 CPU
106 Memory 107 PCI Express
108 PCI Express
109 SSTL
201 PCI Express root complex 202 PCI Express endpoint 203-206 Video output controller 207-210 Read DMAC
211 Video input controller 212 Light DMAC
213 to 216 Controller unit 217 to 220 Read DMAC
221-224 Light DMAC
225 prefetch control circuit 226 arbiter 227 selector 228 PCI Express

特開2007−249816号公報JP 2007-249816 A

Claims (6)

スピリット・トランザクションのプロトコルを用いるインタフェースを介してデータ転送を行うデータ通信装置において、
DMACの設定情報から先行してメモリアクセス要求を発行し、対象DMACの正常及び異常終了により先行リードアクセスしていたデータを無効化することを特徴とするデータ通信装置。
In a data communication device that performs data transfer via an interface that uses a spirit transaction protocol,
A data communication apparatus that issues a memory access request in advance of setting information of a DMAC and invalidates data that was previously read-accessed due to normal and abnormal termination of the target DMAC.
先行リード対象DMACに対し、それとは別のDMACのライトが、先行リード対象アドレス領域に行われるまで、先行リードアクセスを実行しないことを特徴とする請求項1のデータ通信装置。   2. The data communication apparatus according to claim 1, wherein the preceding read access is not executed until a different DMAC write is performed on the preceding read target DMAC in the preceding read target address area. 先行リードアクセスしたデータを保持しておくメモリの分割方法をプログラマブルとしたことを特徴とする請求項1又は2記載のデータ通信装置。   3. The data communication apparatus according to claim 1, wherein a method for dividing a memory for holding data that has undergone preceding read access is programmable. DMACからのライトアクセスを、それとは別のDMACが、その対象アドレス領域に対して行われるまで、前記ライトアクセスを実行しないことを特徴とする請求項1から3のいずれか1項に記載のデータ通信装置。   The data according to any one of claims 1 to 3, wherein the write access from the DMAC is not executed until another DMAC is performed on the target address area. Communication device. アービタの調停方式として、ラウンドロビン方式で調停を行うことを特徴とする請求項1から4のいずれか1項に記載のデータ通信装置。   5. The data communication apparatus according to claim 1, wherein arbitration is performed by a round robin method as an arbitration method of the arbiter. 要求源からのアクセス要求が存在しないことを理由に、前記要求源に許可を与えない場合、前記要求源のアクセス要求に対し、依存関係のあるDMACからのアクセス要求源に対して許可を与えることを特徴とする請求項1から5のいずれか1項に記載のデータ通信装置。   If permission is not granted to the request source because there is no access request from the request source, permission is granted to the access request source from the dependent DMAC for the access request of the request source. The data communication device according to claim 1, wherein:
JP2009201876A 2009-09-01 2009-09-01 Data communication apparatus Withdrawn JP2011053895A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009201876A JP2011053895A (en) 2009-09-01 2009-09-01 Data communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009201876A JP2011053895A (en) 2009-09-01 2009-09-01 Data communication apparatus

Publications (1)

Publication Number Publication Date
JP2011053895A true JP2011053895A (en) 2011-03-17

Family

ID=43942832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009201876A Withdrawn JP2011053895A (en) 2009-09-01 2009-09-01 Data communication apparatus

Country Status (1)

Country Link
JP (1) JP2011053895A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983927B2 (en) 2017-07-11 2021-04-20 Fuji Xerox Co., Ltd. Electronic device for recovering from buffer overrun in a bus system
US12174777B2 (en) 2022-03-15 2024-12-24 Ricoh Company, Ltd. Controller, image forming apparatus, and access arbitration method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983927B2 (en) 2017-07-11 2021-04-20 Fuji Xerox Co., Ltd. Electronic device for recovering from buffer overrun in a bus system
US12174777B2 (en) 2022-03-15 2024-12-24 Ricoh Company, Ltd. Controller, image forming apparatus, and access arbitration method

Similar Documents

Publication Publication Date Title
JP4356765B2 (en) Information processing apparatus and method, and program
EP3754498A1 (en) Architecture for offload of linked work assignments
JP4706720B2 (en) DMA control system, printing apparatus, and transfer instruction program
JP2005242718A (en) Data transfer device and transfer control program
JP6886301B2 (en) Memory access system, its control method, program, and image forming device
JP5565204B2 (en) Data transfer apparatus, data transfer method and program, and image forming apparatus
KR20220035242A (en) A programmable network interface device comprising a host computing device and a network interface device.
WO2006024193A1 (en) Method and system for data transfer
JP2011053895A (en) Data communication apparatus
JP5340058B2 (en) Image processing apparatus, control method thereof, and program
JP4536189B2 (en) DMA transfer apparatus and DMA transfer system
JP6036806B2 (en) Bus access arbitration circuit and bus access arbitration method
JP2006293927A (en) Direct memory access control device and system LSI including direct memory access control device
JP2003345648A (en) Apparatus and method for data handling of multi-access instruction in the data processing apparatus and computer program product by the method
US20150032885A1 (en) Image processing apparatus and control method
CN101361050B (en) Data transmission device and data transmission method
JP2005165592A (en) Data transfer device
JP4408840B2 (en) HDD controller and system equipped with the same
JP4690016B2 (en) Image compression / decompression device
JP2008040650A (en) Bus arbitration device
JP2010140440A (en) Bus arbitration device
JP5332692B2 (en) Data transfer control device, data transfer control method, data transfer control program, and recording medium
JP4862593B2 (en) Data transfer apparatus and image forming apparatus
JP2006024134A (en) DMA transfer apparatus and DMA transfer method
JP2008108126A (en) Data transfer control device and bus access arbitration method thereof

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: 20121106