JP2011123796A - Data transfer device and method - Google Patents

Data transfer device and method Download PDF

Info

Publication number
JP2011123796A
JP2011123796A JP2009282702A JP2009282702A JP2011123796A JP 2011123796 A JP2011123796 A JP 2011123796A JP 2009282702 A JP2009282702 A JP 2009282702A JP 2009282702 A JP2009282702 A JP 2009282702A JP 2011123796 A JP2011123796 A JP 2011123796A
Authority
JP
Japan
Prior art keywords
memory access
data
direct memory
access controller
dmac
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
JP2009282702A
Other languages
Japanese (ja)
Inventor
Shinya Nagasaki
伸哉 長崎
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 JP2009282702A priority Critical patent/JP2011123796A/en
Publication of JP2011123796A publication Critical patent/JP2011123796A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To suppress the issuance of a wasteful request that may occur in DMAC interlock. <P>SOLUTION: A writing DMAC 111 and reading DMAC 112 interlock and access a memory. A write request receiving counter 1153 calculates the data amount of write requests (number of write requests) by the write DMAC 111 and notifies the data amount to the reading DMAC 112. Preferably, the receipt notification (Ack notification) of the write request is also notified. A size comparison part 116 compares the data amount of the write request and the data amount of the write request of which request is satisfied on the basis of the received Ack notification. If they match, a request issuance control part 118 controls to access the memory of the read DMAC 112. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、データ転送装置及び方法に関し、特に、DMAC連動で生じる可能性のある無駄なリクエストの発行を抑制する技術に関する。   The present invention relates to a data transfer apparatus and method, and more particularly, to a technique for suppressing issuance of useless requests that may occur in conjunction with DMAC.

画像データ等のデジタルデータのデータ転送の技術分野においては、DMA(Direct Memory Access)方式が広く知られている。DMAは、専用チップや制御回路等のDMAコントローラ(以下、「DMAC」という)を介して周辺装置とメモリ間でデジタルデータの送受を行う。CPU(中央演算装置)を介さずにデータ転送を行うことで、システム全体として処理負荷の軽減や処理速度の向上を図る。   In the technical field of data transfer of digital data such as image data, a DMA (Direct Memory Access) method is widely known. The DMA transmits and receives digital data between a peripheral device and a memory via a DMA controller (hereinafter referred to as “DMAC”) such as a dedicated chip or a control circuit. By transferring data without going through a CPU (Central Processing Unit), the entire system is reduced in processing load and processing speed.

DMA方式の応用的な技術として、DMAC連動という技術が知られている(例えば、特許文献1)。DMAC連動は、例えばASIC(Application Specific IC)上で、複数のDMACを用いて、あるデータをメモリから第1のDMACを使って読み出したのち、所定の処理を行い、処理後のデータを第2のDMACを使ってメモリに書き戻すような、複数のDMACを連動させて動作させる技術である。DMAC連動は、メインメモリの使用容量の削減、及び、ソフトウェアプログラムによる制御の簡略化が目的である。   As an applied technique of the DMA system, a technique called DMAC linkage is known (for example, Patent Document 1). For example, in DMAC linkage, a plurality of DMACs are used on an ASIC (Application Specific IC) to read certain data from the memory using the first DMAC, perform predetermined processing, and then process the processed data as the second data. This is a technique of operating a plurality of DMACs in conjunction with each other, such as writing back to the memory using the DMAC. The purpose of DMAC linkage is to reduce the use capacity of the main memory and simplify the control by the software program.

上記特許文献1には、DMAC連動するシステムにおいて、メモリアクセス量の整合を取る必要があるようなDMAC同士の連動の場合の調停方法に関する技術が記載されている。しかしながら、DMAC連動時におけるライトデータ転送が確実に終了したか確認してからリードするような連動までは考慮されておらず、再送などが発生した場合は性能低下に結びつく可能性がある。   Patent Document 1 describes a technique relating to an arbitration method in the case of interlocking DMACs that require matching of memory access amounts in a DMAC interlocking system. However, no consideration is given to interlocking such as reading after confirming whether write data transfer has been completed reliably when DMAC is interlocked, and there is a possibility of performance degradation if retransmission occurs.

再送などが発生するケースは、DMACが利用する伝送路上で何らかの原因により先行するDMACのリクエストが失敗したにもかかわらず、後続するDMACがDMAC連動により自動リクエスト発行することで起きる。後続するDMACが発行したリクエストは無駄なプロトコルとなり、再送が必要となる。   A case in which retransmission or the like occurs is caused by the subsequent DMAC issuing an automatic request in conjunction with the DMAC even though the preceding DMAC request has failed for some reason on the transmission path used by the DMAC. The request issued by the subsequent DMAC becomes a useless protocol and requires retransmission.

ソフトウェアプログラムでDMAC連動する際は、ディスクリプタで設定された領域にライトされたことを確認してからリードを行うため、上記のような無駄なプロトコルが発生しない。しかしながら、データサイズで連動する場合は、後続するDMACが有するリクエストの発行条件に合致するか否かの判断のみでリクエストが発行されるため、上記のような問題が生じる。   When the DMAC is linked with the software program, since reading is performed after confirming that data has been written to the area set by the descriptor, such a useless protocol as described above does not occur. However, in the case of interlocking with the data size, the request is issued only by determining whether or not the subsequent DMAC has a request issue condition, and thus the above-described problem occurs.

無駄なリクエストの発行があると、再送に掛かる時間が増大する。その結果、生産性の低下を招く。また、PCI−Express規格のように、再送にリトライバッファを用いる場合は、そのリトライバッファが無駄なリクエストで占有されてしまう。これに対応するためのリトライバッファの容量が増大する。   When a useless request is issued, the time required for retransmission increases. As a result, productivity is reduced. Further, when a retry buffer is used for retransmission as in the PCI-Express standard, the retry buffer is occupied by useless requests. The capacity of the retry buffer to cope with this increases.

本発明はこのような実情に鑑みてなされたものである。その目的とするところは、複数のダイレクトメモリアクセスコントローラが連動してメモリアクセスするデータ転送装置において、無駄なリクエストの発行を抑制することができるデータ転送装置及び方法を提供することである。   The present invention has been made in view of such circumstances. An object of the present invention is to provide a data transfer apparatus and method capable of suppressing the issuance of useless requests in a data transfer apparatus in which a plurality of direct memory access controllers access memory in conjunction.

上記目的を達成するために、本発明は、第1の態様として、第1のダイレクトメモリアクセスコントローラと、該第1のダイレクトメモリアクセスコントローラに連動してメモリアクセスする第2のダイレクトメモリアクセスコントローラと、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとしたデータ量である第1のデータ量を計算し、前記第2のダイレクトメモリアクセスコントローラに前記第1のデータ量を通知するリクエスト受信カウンタと、を有し、前記第2のダイレクトメモリアクセスコントローラは、前記第1のデータ量と、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとした結果、成功したデータのデータ量である第2のデータ量とを比較するサイズ比較手段と、比較の結果、前記第1のデータ量及び前記第2のデータ量が一致した場合に、前記第2のダイレクトメモリアクセスコントローラのメモリアクセスを実行する制御を行うリクエスト発行制御手段と、を備えることを特徴とする、データ転送装置を提供する。   To achieve the above object, the present invention provides, as a first aspect, a first direct memory access controller, and a second direct memory access controller that performs memory access in conjunction with the first direct memory access controller, The first direct memory access controller calculates a first data amount that is an amount of data that is about to perform a memory access, and receives a request for notifying the second direct memory access controller of the first data amount A counter, and the second direct memory access controller uses the first data amount and the data amount of successful data as a result of the first direct memory access controller attempting to perform memory access. Size to compare with a certain second amount of data A request issuing control means for performing control to execute memory access of the second direct memory access controller when the first data amount and the second data amount coincide with each other as a result of the comparison; A data transfer apparatus is provided.

また、上記目的を達成するために、本発明は、第2の態様として、第1のダイレクトメモリアクセスコントローラと、該第1のダイレクトメモリアクセスコントローラに連動してメモリアクセスする第2のダイレクトメモリアクセスコントローラと、を用いるデータ転送方法であって、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとしたデータ量である第1のデータ量を計算する工程と、前記第2のダイレクトメモリアクセスコントローラに前記第1のデータ量を通知する工程と、前記第1のデータ量と、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとした結果、成功したデータのデータ量である第2のデータ量とを比較する工程と、比較の結果、前記第1のデータ量及び前記第2のデータ量が一致した場合に、前記第2のダイレクトメモリアクセスコントローラのメモリアクセスを実行する制御を行う工程と、を含むことを特徴とする、データ転送方法を提供する。   In order to achieve the above object, the present invention provides, as a second aspect, a first direct memory access controller and a second direct memory access that performs memory access in conjunction with the first direct memory access controller. A data transfer method using a controller, wherein the first direct memory access controller calculates a first data amount which is a data amount to be subjected to memory access, and the second direct memory access A step of notifying the controller of the first amount of data, the first amount of data, and a second amount of data that has succeeded as a result of the first direct memory access controller attempting to perform a memory access; Comparing the data amount of the first data and the first data as a result of the comparison And when said second data amount matches, characterized in that it comprises a step, the performing control to execute the memory access of the second direct memory access controller provides a data transfer method.

本発明によれば、複数のダイレクトメモリアクセスコントローラが連動してメモリアクセスするデータ転送装置において、無駄なリクエストの発行を抑制することができるデータ転送装置及び方法を提供することが可能となる。   According to the present invention, it is possible to provide a data transfer apparatus and method capable of suppressing the issuance of useless requests in a data transfer apparatus in which a plurality of direct memory access controllers perform memory access in conjunction.

本発明による実施形態のハードウェア構成例を示す構成図である。It is a block diagram which shows the hardware structural example of embodiment by this invention. 本実施形態におけるDMAC連動の概略を説明する説明図である。It is explanatory drawing explaining the outline of DMAC interlocking | linkage in this embodiment. 本実施形態によって解決される課題を説明するための説明図である。It is explanatory drawing for demonstrating the subject solved by this embodiment. 本実施形態の主要部の構成図である。It is a block diagram of the principal part of this embodiment. 本実施形態のサイズ比較部116の処理動作の流れを示すフローチャートである。It is a flowchart which shows the flow of a processing operation of the size comparison part 116 of this embodiment.

図1は、本発明による実施形態のハードウェア構成例を示す構成図である。本実施形態は、いわゆるMFPや複合機として知られる画像形成装置に本発明を適用した実施形態である。画像形成装置100は、第1ASIC101、第2ASIC102、第3ASIC103、CPU104、メモリ105、スキャナ106、プロッタ107、HDD108を備える。   FIG. 1 is a configuration diagram illustrating a hardware configuration example of an embodiment according to the present invention. In the present embodiment, the present invention is applied to an image forming apparatus known as a so-called MFP or multifunction peripheral. The image forming apparatus 100 includes a first ASIC 101, a second ASIC 102, a third ASIC 103, a CPU 104, a memory 105, a scanner 106, a plotter 107, and an HDD 108.

スキャナ106は、例えばフラットベッドスキャナやオートドキュメントフィーダなどの画像読取装置であり、第1ASIC101の制御によって駆動する。第1ASIC101は、スキャナ画像処理用ASICである。第2ASIC102は、スキャナ106を用いて読み取った画像を圧縮して圧縮データを作成したり、プロッタ107を用いて出力する画像を圧縮して圧縮データを作成したりする。HDD108は、ハードディスクドライブであり、スキャナ106を用いて読み取った画像の圧縮データやプロッタ107を用いて出力する画像の圧縮データを格納しておく二次記憶装置である。   The scanner 106 is an image reading device such as a flatbed scanner or an auto document feeder, and is driven by the control of the first ASIC 101. The first ASIC 101 is a scanner image processing ASIC. The second ASIC 102 compresses an image read using the scanner 106 to create compressed data, or compresses an image output using the plotter 107 to generate compressed data. The HDD 108 is a hard disk drive, and is a secondary storage device that stores compressed data of an image read using the scanner 106 and compressed data of an image output using the plotter 107.

CPU104は、画像形成装置100全体の制御を行うコントローラとして機能する中央演算装置である。メモリ105は、各種データ加工用の作業メモリとして機能する一次記憶装置である。第3ASIC103は、プロッタ107を用いて出力する画像の圧縮データを伸長させたり、解像度を変換したり、階調処理を施したりする。プロッタ107は、例えば電子写真方式やインクジェット方式などの画像形成装置であり、第3ASIC103の制御によって駆動する。   The CPU 104 is a central processing unit that functions as a controller that controls the entire image forming apparatus 100. The memory 105 is a primary storage device that functions as a work memory for various data processing. The third ASIC 103 decompresses compressed data of an image to be output using the plotter 107, converts the resolution, and performs gradation processing. The plotter 107 is an image forming apparatus such as an electrophotographic system or an inkjet system, and is driven by the control of the third ASIC 103.

第1ASIC101と第2ASIC102の間、第2ASIC102とCPU104の間、及び、CPU104と第3ASIC103の間のインターフェースは、PCI−Expressである。PCI−Expressにおけるデータ転送は、仕様により、1つのリクエスト(パケット)において、受信側からの受領通知が送信側へ帰ってくるプロトコルとなっている。   The interface between the first ASIC 101 and the second ASIC 102, between the second ASIC 102 and the CPU 104, and between the CPU 104 and the third ASIC 103 is PCI-Express. The data transfer in PCI-Express is a protocol in which a receipt notification from the receiving side returns to the transmitting side in one request (packet) according to the specification.

受領通知は、“Ack”と“Nak”の2値がある。Ackが帰ってきた場合は、データ転送が正常に行われたことを示す。一方、Nakの場合は、データ転送に異常があったことを示し、送信側に再送を促すプロトコルとなっている。また、Ack及びNakは、1リクエストに対して毎回発行されるものではなく、PCI−Expressの規格上で推奨されている発行間隔に基づいて発行される。   The receipt notification has two values, “Ack” and “Nak”. When Ack returns, it indicates that the data transfer has been performed normally. On the other hand, in the case of Nak, it indicates that there is an abnormality in data transfer, and is a protocol that prompts the transmission side to retransmit. Further, Ack and Nak are not issued every time for one request, but are issued based on an issuance interval recommended in the PCI-Express standard.

第1ASIC101と第2ASIC102の間、第2ASIC102とCPU104の間、及び、CPU104と第3ASIC103の間のデータ転送は、ダイレクトメモリアクセス(以下、「DMA」という)方式によって行われる。さらに、これらのデータ転送は、図2に示すようなDMAコントローラの連動(以下、「DMAC連動」という)を伴う。   Data transfer between the first ASIC 101 and the second ASIC 102, between the second ASIC 102 and the CPU 104, and between the CPU 104 and the third ASIC 103 is performed by a direct memory access (hereinafter referred to as “DMA”) method. Further, these data transfers involve DMA controller linkage (hereinafter referred to as “DMAC linkage”) as shown in FIG.

図2は、本実施形態におけるDMAC連動の概略を説明する説明図である。図2では、例として、第2ASIC102とCPU104の間のDMAによるデータ転送及びDMAC連動を示している。つまり、DMAC側の装置が第2ASIC102でなくともよく、記憶装置側の装置がCPU104でなくともよい。図示のように、第2ASIC102は、書き込みDMAC111、読み出しDMAC112、調停部113、PCI−Expressインターフェース114を備える。CPU104は、PCI−Expressインターフェース115を備える。調停部113は、転送データの伝送路であるバス(本実施形態においては、PCI−Express)の利用を調停するバスアービタである。図2を用いてDMAC連動について説明する。   FIG. 2 is an explanatory diagram for explaining an outline of DMAC interlocking in the present embodiment. FIG. 2 shows, as an example, data transfer by DMA between the second ASIC 102 and the CPU 104 and DMAC linkage. That is, the device on the DMAC side may not be the second ASIC 102, and the device on the storage device side may not be the CPU 104. As illustrated, the second ASIC 102 includes a write DMAC 111, a read DMAC 112, an arbitration unit 113, and a PCI-Express interface 114. The CPU 104 includes a PCI-Express interface 115. The arbitration unit 113 is a bus arbiter that arbitrates the use of a bus (in this embodiment, PCI-Express) that is a transmission path of transfer data. The DMAC linkage will be described with reference to FIG.

DMAC連動においては、書き込みDMAC111からメモリ105にデータ(本実施形態においては画像データ)をライトし、そのライトデータが一定量を超えたら読み出しDMAC112がメモリ105よりデータを読み出すという、複数のDMACが連動した一連の制御を行う。図2の例では例えば、スキャナ106から入力されたデータを書き込みDMAC111がメモリ105にライトし、そのライトデータを読み出しDMAC112が読み出して、不図示の画像処理手段が画像処理した後、再度、書き込みDMAC111がメモリ105に書き込むという制御となる。   In the DMAC linkage, a plurality of DMACs are linked in which data (image data in the present embodiment) is written from the write DMAC 111 to the memory 105, and when the write data exceeds a certain amount, the read DMAC 112 reads the data from the memory 105. A series of control is performed. In the example of FIG. 2, for example, the write DMAC 111 writes the data input from the scanner 106 to the memory 105, the read data is read by the DMAC 112, the image processing unit (not shown) performs image processing, and then the write DMAC 111 again. Is written to the memory 105.

図2のような構成においては、DMAC連動時に書き込みDMAC111が調停部113へのデータ転送が完了した時点で読み出しDMAC112にデータサイズの通知(サイズ通知)を行う。読み出しDMAC112がメモリ105からライトデータをリードする際に、読み出しDMAC112は、書き込みDMAC111が所望のデータサイズのデータをメモリ105にライトしたことを受けて、そのサイズが一定量を超えたらリードリクエストを発行する。   In the configuration as shown in FIG. 2, the write DMAC 111 notifies the read DMAC 112 of the data size (size notification) when the data transfer to the arbitration unit 113 is completed when the DMAC is linked. When the read DMAC 112 reads write data from the memory 105, the read DMAC 112 issues a read request when the write DMAC 111 has written data of a desired data size to the memory 105 and the size exceeds a certain amount. To do.

ところが、調停部113の先でPCI−Expressを介してデータ転送を行う際に、PCI−Express上で通信エラーが発生することもあり、その場合には、読み出しDMAC112からのリードリクエストのリクエスト転送が無駄なプロトコルとなる。このことを図3を用いて説明する。図3は、本実施形態によって解決される課題を説明するための説明図である。   However, when data transfer is performed via PCI-Express at the end of the arbitration unit 113, a communication error may occur on PCI-Express. In this case, the request transfer of the read request from the read DMAC 112 is not performed. It becomes a useless protocol. This will be described with reference to FIG. FIG. 3 is an explanatory diagram for explaining a problem to be solved by the present embodiment.

図3において、書き込みDMAC111が画像データをライトしており、そのライトしたデータサイズを読み出しDMAC112に渡す。読み出しDMAC112は、リードリクエストを発行する条件を有しており、書き込みDMAC111から渡されるデータサイズとその条件をサイズ比較部116にて比較する。比較の結果、データサイズがリードリクエストの発行条件に合致したら、読み出しDMAC112は、リードリクエストを発行する。   In FIG. 3, the write DMAC 111 has written image data, and the written data size is read and passed to the DMAC 112. The read DMAC 112 has a condition for issuing a read request, and the size comparison unit 116 compares the data size passed from the write DMAC 111 with the condition. If the data size matches the read request issuance condition as a result of the comparison, the read DMAC 112 issues a read request.

各DMACが発行するリクエストは、リクエスト受信側、つまり記憶装置側でリクエストバッファに順次格納される。ここで、書き込みDMAC111が発行するライトリクエストを発行順にWnとし、読み出しDMAC112が発行するリードリクエストを発行順にRnとする(ただし、nは自然数であり、発行の順番を示す)。図3に示す例においては、サイズ比較部116の比較に用いるリードリクエストの発行条件が、W1からW3までのライトリクエストにより転送されたデータのサイズであることを条件とする。読み出しDMAC112は、ライトデータがW1〜W3分積み上がったらリードリクエストを順次発行する。   Requests issued by each DMAC are sequentially stored in the request buffer on the request receiving side, that is, the storage device side. Here, a write request issued by the write DMAC 111 is set to Wn in the order of issue, and a read request issued by the read DMAC 112 is set to Rn in the order of issue (where n is a natural number and indicates the order of issue). In the example illustrated in FIG. 3, it is a condition that the issue condition of the read request used for the comparison by the size comparison unit 116 is the size of the data transferred by the write request from W1 to W3. The read DMAC 112 issues read requests sequentially when the write data is accumulated for W1 to W3.

ところで、本実施形態が採用するPCI−Expressにおけるデータ転送は、図1の説明の最後の部分でも触れたとおり、リクエスト受信側からの受領通知(Ack or Nak)が1リクエストに対して毎回発行されるものではなく、規格上推奨されている発行間隔に基づいて発行される。しかしながら、複数のDMACが連動するDMAC連動においては、書き込みDMAC111がライトリクエストを発行して転送しようとしたデータのサイズを読み出しDMAC112に逐次渡すことによって、連動して自動的にリードリクエストが発行される。そのため、データ転送に何らかの異常がありリクエスト受信側でデータの受領ができなかったときでも自動的に次のDMACの処理が始まってしまう場合があり、発行されたパケットが無駄になるという問題が生じる。   By the way, as described in the last part of the description of FIG. 1, in the PCI-Express data transfer adopted by the present embodiment, a receipt notification (Ack or Nak) from the request receiving side is issued for each request. Not issued, but issued based on the issuance interval recommended by the standard. However, in the DMAC linkage in which a plurality of DMACs are linked, the write DMAC 111 issues a write request and sequentially transfers the size of the data to be transferred to the read DMAC 112, so that a read request is automatically issued in conjunction. . Therefore, even if there is some abnormality in the data transfer and the data cannot be received on the request receiving side, the processing of the next DMAC may start automatically, causing a problem that the issued packet is wasted. .

図3では、この問題が生じた例として、W2リクエスト(パケット)に対して、受領不成立通知(Nak)が発行された場合を示している。図示のように、受信側でW2のデータ転送が不成立となり、Nak(W2)を返すが、それよりも前にR1とR2のリクエストも発行されている。この場合、W2以降のリクエストは受信側で破棄され、全て再送が必要となる。したがって、R1、R2のプロトコルは無駄となる。   In FIG. 3, as an example in which this problem occurs, a case where a receipt failure notification (Nak) is issued for a W2 request (packet) is shown. As shown in the figure, W2 data transfer is not established on the receiving side and Nak (W2) is returned, but R1 and R2 requests are also issued before that. In this case, requests after W2 are discarded on the receiving side, and all of them need to be retransmitted. Therefore, the protocols R1 and R2 are useless.

なお、ソフトウェアプログラムで連動する際は、ディスクリプタで設定された領域にライトされたことを確認してからリードを行うため、上記のような無駄なプロトコルが発生しない。しかしながら、データサイズで連動する場合は、読み出しDMAC112のリードリクエストの発行条件のみでリードリクエストが発行されるため、上記のような問題が生じる。   When linked with a software program, reading is performed after confirming that data has been written to the area set by the descriptor, so that the above-mentioned useless protocol does not occur. However, when the data size is linked, the read request is issued only under the read request issuance condition of the read DMAC 112, and thus the above-described problem occurs.

上記のような問題を解決するための構成として、本実施形態は、図4に示すような構成を備える。図4は、本実施形態の主要部の構成図である。図4は、図2同様、第2ASIC102とCPU104の間のDMAによるデータ転送及びDMAC連動を示している。図2に示したリクエスト受信側のPCI−Expressインターフェース115は、図4に示すエンドポイントコントローラ部1151を備える。また、書き込みDMAC111は、ライトサイズ保持部117を備える。読み出しDMAC112は、サイズ比較部116とリクエスト発行制御部117を備える。   As a configuration for solving the above problems, the present embodiment includes a configuration as shown in FIG. FIG. 4 is a configuration diagram of a main part of the present embodiment. FIG. 4 shows DMA data transfer and DMAC linkage between the second ASIC 102 and the CPU 104 as in FIG. The PCI-Express interface 115 on the request receiving side illustrated in FIG. 2 includes an endpoint controller unit 1151 illustrated in FIG. Further, the write DMAC 111 includes a write size holding unit 117. The read DMAC 112 includes a size comparison unit 116 and a request issue control unit 117.

ライトサイズ保持部117は、書き込みDMAC111がライトしたサイズ(すなわち、転送済みライトデータのデータサイズ)を保持し、かつ、読み出しDMAC112にそのサイズを通知する。   The write size holding unit 117 holds the size written by the write DMAC 111 (that is, the data size of transferred write data), and notifies the read DMAC 112 of the size.

サイズ比較部116は、通知されたライトサイズと設定された連動条件(リードリクエスト発行条件)を比較し、その連動条件に合致した場合、その通知されたライトサイズから、発行済みライトリクエスト数を計算する。また、エンドポイントコントローラ部1151から送信されるAck通知に基づいて、Ack通知を受信したライトリクエスト数を計算し、発行済みライトリクエスト数とAck通知を受信したライトリクエスト数とを比較する。次に、比較結果に基づいてリードリクエスト発行許可を出す。   The size comparison unit 116 compares the notified write size with the set interlocking condition (read request issuance condition), and if the interlocked condition is met, calculates the number of issued write requests from the notified write size. To do. In addition, based on the Ack notification transmitted from the endpoint controller unit 1151, the number of write requests that have received the Ack notification is calculated, and the number of issued write requests and the number of write requests that have received the Ack notification are compared. Next, a read request issuance permission is issued based on the comparison result.

ここで、発行済みライトリクエスト数の計算は、“データサイズ/PayLoadサイズ=発行済みライトリクエスト数”となる。PayLoadサイズは、システムにおいて一意に決定されるものであり、そのシステムにおいて変更されることはない。   Here, the calculation of the number of issued write requests is “data size / PayLoad size = number of issued write requests”. The PayLoad size is uniquely determined in the system and is not changed in the system.

エンドポイントコントローラ部1151は、DMAC情報受信部1152、ライトリクエスト受信カウンタ1153、論理層ブロック1154を備える。調停部113より受信したリクエストは、PCI−Expressの論理層ブロック1154に渡されて転送等の処理が行われる。一般に、DMACから送信されるリクエストにはタグ情報が付加されている。タグ情報は、DMAC情報受信部1152にも通知される。   The endpoint controller unit 1151 includes a DMAC information reception unit 1152, a write request reception counter 1153, and a logical layer block 1154. The request received from the arbitration unit 113 is transferred to the PCI-Express logical layer block 1154 for processing such as transfer. In general, tag information is added to a request transmitted from the DMAC. The tag information is also notified to the DMAC information receiving unit 1152.

DMAC情報受信部1152は、所望のDMACからのリクエストがあった際(本例においては“書き込みDMAC111”である)に、ライトリクエスト受信カウンタ1153に通知する。所望のDMACであるか否かの判別は、DMACより発行されるタグ情報を利用する。図4においては説明の便宜のため、リクエスト受信側にリクエストを最初に送信するDMACが書き込みDMAC111のみであるように単純化しているが、実際はこれ以外のDMACからのアクセスもあるので、所望のDMACからのアクセス数をカウントする必要がある。   The DMAC information reception unit 1152 notifies the write request reception counter 1153 when there is a request from a desired DMAC (in this example, “write DMAC 111”). To determine whether the DMAC is a desired one, tag information issued from the DMAC is used. In FIG. 4, for the convenience of explanation, the DMAC that first transmits a request to the request reception side is simplified so that only the write DMAC 111 is used. However, since there is actually access from other DMACs, the desired DMAC It is necessary to count the number of accesses from.

ライトリクエスト受信カウンタ1153は、DMAC情報受信部1152より、所望のDMACからのリクエスト受信の通知が来た際に、そのリクエスト数をカウントする。また、論理層ブロック1154よりAck通知を受信した際に、そのときのカウンタ情報(本例においては“ライトリクエスト数”である)を受信したAck通知とともに、読み出しDMAC112へ通知する。   The write request reception counter 1153 counts the number of requests when a request reception notification is received from a desired DMAC from the DMAC information reception unit 1152. When an Ack notification is received from the logical layer block 1154, the counter information (in this example, “the number of write requests”) at that time is notified to the read DMAC 112 together with the received Ack notification.

このようにして通知されたAck通知と、ライトリクエスト受信カウンタ1153がカウントしたカウンタ情報とに基づいて、サイズ比較部116にて実行される処理動作の流れについて、図5を参照して説明する。図5は、本実施形態のサイズ比較部116の処理動作の流れを示すフローチャートである。図5の各ステップの動作主体はサイズ比較部116である。   A flow of processing operations executed by the size comparison unit 116 based on the Ack notification thus notified and the counter information counted by the write request reception counter 1153 will be described with reference to FIG. FIG. 5 is a flowchart showing the flow of processing operations of the size comparison unit 116 of the present embodiment. The operation subject of each step in FIG. 5 is the size comparison unit 116.

サイズ比較部116は、ライトサイズ保持部117よりライトサイズを逐次通知されるので、ライトサイズの更新があるか否かを判断することができる。書き込みDMAC111によりライトサイズが更新されると(ステップS101/Yes)、リードリクエスト発行条件に合致しているか否かを判断する(ステップS102)。合致しない場合は(ステップS102/No)、ライトサイズの更新を再度待つ。合致する場合は(ステップS102/Yes)、ライトしたサイズがAck通知を受信したリクエスト数と一致するかを判定する(ステップS103)。   Since the write size is sequentially notified from the write size holding unit 117, the size comparison unit 116 can determine whether or not the write size has been updated. When the write size is updated by the write DMAC 111 (step S101 / Yes), it is determined whether or not the read request issuance condition is met (step S102). If they do not match (step S102 / No), it waits for the update of the write size again. If they match (Yes in step S102), it is determined whether the written size matches the number of requests that received the Ack notification (step S103).

発行済みライトリクエスト数は、上述のように、ライトリクエスト受信カウンタ1153がカウントし、Ack通知受信のたびにサイズ比較部116に通知する。Ack通知を受信したリクエスト数は、サイズ比較部116がその通知された回数を計数することで得られる。   As described above, the write request reception counter 1153 counts the number of issued write requests, and notifies the size comparison unit 116 every time an Ack notification is received. The number of requests that have received the Ack notification is obtained by counting the number of times the size comparison unit 116 has received the notification.

ステップS103の判定の結果、一致する場合は、サイズ比較部116は、リクエスト発行制御部118を用いてリードリクエストを発行する(ステップS104)。一致しない場合は、Ack通知を受信したリクエスト数が一致するまでWaitする。   If they match as a result of the determination in step S103, the size comparison unit 116 issues a read request using the request issuance control unit 118 (step S104). If they do not match, the process waits until the number of requests having received the Ack notification matches.

上述した本実施形態によれば、第1のダイレクトメモリアクセスコントローラと、これに連動してメモリアクセスする第2のダイレクトメモリアクセスコントローラとを備えるデータ転送装置において、第1のダイレクトメモリアクセスコントローラによるデータ転送が完了したことを確認した後、第2のダイレクトメモリアクセスコントローラによるメモリアクセスのリクエストを発行するので、無駄なリクエストの発行及びプロトコルの発生を防ぐことが可能になると言える。また、その結果、再送に要する時間を抑制し、生産性の低下を防止できる。また、無駄な再送リクエストに対応するためのリトライバッファの容量を削減できる。   According to the above-described embodiment, in the data transfer device including the first direct memory access controller and the second direct memory access controller that accesses the memory in conjunction with the first direct memory access controller, the data by the first direct memory access controller After confirming that the transfer has been completed, a memory access request is issued by the second direct memory access controller, so it can be said that it is possible to prevent the generation of useless requests and the generation of protocols. As a result, the time required for retransmission can be suppressed, and a reduction in productivity can be prevented. In addition, it is possible to reduce the capacity of the retry buffer for dealing with useless retransmission requests.

100 画像形成装置
111 書き込みDMAC
112 読み出しDMAC
113 調停部
114,115 PCI−Expressインターフェース
116 サイズ比較部
117 ライトサイズ保持部
118 リクエスト発行制御部
1151 エンドポイントコントローラ部
1152 DMAC情報受信部
1153 ライトリクエスト受信カウンタ
1154 論理層ブロック
100 Image forming apparatus 111 Write DMAC
112 Read DMAC
113 Arbitration unit 114, 115 PCI-Express interface 116 Size comparison unit 117 Write size holding unit 118 Request issue control unit 1151 Endpoint controller unit 1152 DMAC information reception unit 1153 Write request reception counter 1154 Logical layer block

特開2001−215561号公報JP 2001-215561 A

Claims (6)

第1のダイレクトメモリアクセスコントローラと、
該第1のダイレクトメモリアクセスコントローラに連動してメモリアクセスする第2のダイレクトメモリアクセスコントローラと、
前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとしたデータ量である第1のデータ量を計算し、前記第2のダイレクトメモリアクセスコントローラに前記第1のデータ量を通知するリクエスト受信カウンタと、
を有し、
前記第2のダイレクトメモリアクセスコントローラは、前記第1のデータ量と、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとした結果、成功したデータのデータ量である第2のデータ量とを比較するサイズ比較手段と、
比較の結果、前記第1のデータ量及び前記第2のデータ量が一致した場合に、前記第2のダイレクトメモリアクセスコントローラのメモリアクセスを実行する制御を行うリクエスト発行制御手段と、
を備えることを特徴とする、データ転送装置。
A first direct memory access controller;
A second direct memory access controller for accessing memory in conjunction with the first direct memory access controller;
A request reception counter that calculates a first data amount that is the amount of data that the first direct memory access controller has attempted to execute a memory access and notifies the second direct memory access controller of the first data amount. When,
Have
The second direct memory access controller includes a first data amount, a second data amount that is a data amount of data that has succeeded as a result of the first direct memory access controller attempting to perform a memory access, and Size comparison means to compare,
As a result of the comparison, when the first data amount and the second data amount coincide with each other, a request issuance control unit that performs control to execute memory access of the second direct memory access controller;
A data transfer device comprising:
前記リクエスト受信カウンタは、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとした結果の成否に関する通知信号を受信し、該受信のたびに前記第1のデータ量とともに前記通知信号を前記第2のダイレクトメモリアクセスコントローラに通知し、
前記サイズ比較手段は、前記通知信号に基づいて、前記第2のデータ量を量ることを特徴とする、請求項1記載のデータ転送装置。
The request reception counter receives a notification signal regarding the success or failure of the result of the first direct memory access controller attempting to perform memory access, and the notification signal is sent together with the first data amount each time the reception is received. 2 direct memory access controller,
2. The data transfer apparatus according to claim 1, wherein the size comparison unit measures the second data amount based on the notification signal.
前記サイズ比較手段は、前記第1のダイレクトメモリアクセスコントローラから前記第1のダイレクトメモリアクセスコントローラが実行しようとしたメモリアクセスのデータ量の通知を受け、該通知に基づき自動的に、前記第1のデータ量と前記第2のデータ量との比較をすることを特徴とする、請求項1又は2記載のデータ転送装置。   The size comparison means receives a notification of the data amount of the memory access that the first direct memory access controller tried to execute from the first direct memory access controller, and automatically, based on the notification, the first direct memory access controller 3. The data transfer apparatus according to claim 1, wherein the data amount is compared with the second data amount. 所望のダイレクトメモリアクセスコントローラからのメモリアクセスを選別して前記リクエスト受信カウンタに通知するDMAC情報受信手段を有することを特徴とする、請求項1から3のいずれか1項記載のデータ転送装置。   4. The data transfer apparatus according to claim 1, further comprising DMAC information receiving means for selecting a memory access from a desired direct memory access controller and notifying the request reception counter. データの伝送路としてPCI−Expressを用いることを特徴とする、請求項1から4のいずれか1項記載のデータ転送装置。   5. The data transfer apparatus according to claim 1, wherein PCI-Express is used as a data transmission path. 第1のダイレクトメモリアクセスコントローラと、
該第1のダイレクトメモリアクセスコントローラに連動してメモリアクセスする第2のダイレクトメモリアクセスコントローラと、を用いるデータ転送方法であって、
前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとしたデータ量である第1のデータ量を計算する工程と、
前記第2のダイレクトメモリアクセスコントローラに前記第1のデータ量を通知する工程と、
前記第1のデータ量と、前記第1のダイレクトメモリアクセスコントローラがメモリアクセスを実行しようとした結果、成功したデータのデータ量である第2のデータ量とを比較する工程と、
比較の結果、前記第1のデータ量及び前記第2のデータ量が一致した場合に、前記第2のダイレクトメモリアクセスコントローラのメモリアクセスを実行する制御を行う工程と、
を含むことを特徴とする、データ転送方法。
A first direct memory access controller;
A data transfer method using a second direct memory access controller that accesses a memory in conjunction with the first direct memory access controller,
Calculating a first amount of data that is the amount of data that the first direct memory access controller is attempting to perform a memory access;
Notifying the second direct memory access controller of the first data amount;
Comparing the first amount of data with a second amount of data that is the amount of data that was successful as a result of the first direct memory access controller attempting to perform a memory access;
A step of performing control to execute memory access of the second direct memory access controller when the first data amount and the second data amount coincide with each other as a result of the comparison;
A data transfer method comprising:
JP2009282702A 2009-12-14 2009-12-14 Data transfer device and method Withdrawn JP2011123796A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009282702A JP2011123796A (en) 2009-12-14 2009-12-14 Data transfer device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009282702A JP2011123796A (en) 2009-12-14 2009-12-14 Data transfer device and method

Publications (1)

Publication Number Publication Date
JP2011123796A true JP2011123796A (en) 2011-06-23

Family

ID=44287605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009282702A Withdrawn JP2011123796A (en) 2009-12-14 2009-12-14 Data transfer device and method

Country Status (1)

Country Link
JP (1) JP2011123796A (en)

Similar Documents

Publication Publication Date Title
JP2006190257A (en) Data transfer device and its method
JP2010050742A (en) Transmitting system, apparatus, and method
JP2008176362A (en) Data conversion device, data conversion method, and electronic device
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JP5715231B2 (en) Interface conversion apparatus and interface conversion method
JP2006215914A (en) Image forming device
JP2011123796A (en) Data transfer device and method
JP2005165619A (en) Method for controlling data transferring device, data transferring device, storage device controller, method for controlling storage device controller, and channel adaptor
US8276034B2 (en) Information processing apparatus, information processing method, and computer program product
JP2018156428A (en) Transfer controller, processing system and processing unit
JP2008269335A (en) Data transfer integrated circuit and data transfer device
JP4809143B2 (en) Data processing device
JP5736847B2 (en) Image forming apparatus and control method thereof
JP4589768B2 (en) Information processing device
JP2002251260A (en) Data transmitting and receiving system
JP4554703B2 (en) Information processing apparatus, information processing method, and information processing program
JP5780768B2 (en) Information processing apparatus, control method thereof, and program
JP5768540B2 (en) Image processing apparatus and data transfer management method
JP4377297B2 (en) Storage device
JPH09204311A (en) Information processing system
JP4791341B2 (en) Data transfer system
JP2012060353A (en) Image communication apparatus, image communication method, program and recording medium
JP2008053783A (en) Data transfer buffer controller and data transfer control method
JP6217206B2 (en) Communication control device, image processing device, transfer control program
JP2001338286A (en) Method and device for image processing

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