[go: up one dir, main page]

JP7615598B2 - MEMORY CONTROL DEVICE AND METHOD - Google Patents

MEMORY CONTROL DEVICE AND METHOD Download PDF

Info

Publication number
JP7615598B2
JP7615598B2 JP2020169750A JP2020169750A JP7615598B2 JP 7615598 B2 JP7615598 B2 JP 7615598B2 JP 2020169750 A JP2020169750 A JP 2020169750A JP 2020169750 A JP2020169750 A JP 2020169750A JP 7615598 B2 JP7615598 B2 JP 7615598B2
Authority
JP
Japan
Prior art keywords
memory
receiving
descriptor
transmission
data
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.)
Active
Application number
JP2020169750A
Other languages
Japanese (ja)
Other versions
JP2022061674A (en
Inventor
好博 中谷
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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Priority to JP2020169750A priority Critical patent/JP7615598B2/en
Priority to PCT/JP2021/008885 priority patent/WO2022074858A1/en
Publication of JP2022061674A publication Critical patent/JP2022061674A/en
Application granted granted Critical
Publication of JP7615598B2 publication Critical patent/JP7615598B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、メモリ制御装置および制御方法に関する。 The present invention relates to a memory control device and a control method.

CPU(Central Processing Unit)ユニット間、またはCPUユニットとデバイスユニットの間でデータを転送する場合、DMA(Direct Memory Access)方式でデータを転送する場合がある。例えば、下掲の特許文献1には、ディスクリプタを読み出すときに、ディスクリプタが正しいか否かを確認して、メモリのデータのDMA転送の可否を判定するDMA回路が開示されている。 When transferring data between central processing units (CPUs) or between a CPU and a device unit, the data may be transferred using a direct memory access (DMA) method. For example, the below-mentioned patent document 1 discloses a DMA circuit that checks whether a descriptor is correct when it is read, and determines whether or not DMA transfer of memory data is possible.

DMA方式でデータの転送を行う場合、送信側および/または受信側のユニットのメモリに転送対象のデータと転送量などを記載したディスクリプタを用意しておき、該ディスクリプタをDMAC(DMA Controller)に読み込ませる必要がある。このディスクリプタはDMACが一塊のデータ(例えば、1つのパケット)を転送する毎に1つ必要である。 When transferring data using the DMA method, a descriptor describing the data to be transferred and the transfer amount must be prepared in the memory of the sending and/or receiving unit, and this descriptor must be read by the DMAC (DMA Controller). One such descriptor is required each time the DMAC transfers a chunk of data (e.g., one packet).

特開2006-178795号公報JP 2006-178795 A

ところが、複数の転送対象データをパケット等にまとめて転送する場合、送信側ユニットを統括する制御部(例えば、CPU、MPU等)において、パケット作成に伴うメモリコピーが頻繁に発生する虞がある。また、受信側ユニットを統括する制御部でも、パケット解凍に伴うメモリコピーが頻繁に発生する虞がある。 However, when multiple transfer target data are transferred together as a packet, there is a risk that memory copies associated with packet creation will occur frequently in the control unit (e.g., CPU, MPU, etc.) that manages the sending unit. Also, there is a risk that memory copies associated with packet decompression will occur frequently in the control unit that manages the receiving unit.

図6は、DMA方式を用いた従来のデータ転送方法においてデータをパケット化する場合の処理を模式的に示した図である。図中のメモリは、データを送信する側のユニット(すなわち、送信側ユニット)のメモリである。 Figure 6 is a diagram showing the process of packetizing data in a conventional data transfer method using the DMA method. The memory in the diagram is the memory of the unit that transmits the data (i.e., the transmitting unit).

複数のデータA~Eがメモリ上で連続しないアドレスに存在する場合、送信側ユニットの制御部は、まずデータA~Eをタグにしたい順番に並び替える。例えば、図6に示すように、制御部はデータA~Eが連続したアドレスに格納された状態になるように、データA~Eをメモリ内のいずれかの領域にコピーする(STEP:1)。次に、CPUは並べ替えて格納したデータA~EからタグXを生成して、タグXをメモリ内のいずれかの領域にコピーする(STEP:2)。例えば、他に一緒にパケット化したいタグYが存在する場合、タグXを、タグYと連続するアドレスにコピーする。最後に、連続するアドレスに格納されたタグ(図6の例では、タグXとタグY)をまとめて、パケットを生成する(STEP:3)。 When multiple pieces of data A to E exist at non-consecutive addresses in memory, the control unit of the transmitting unit first rearranges the pieces of data A to E in the order in which they are to be made into tags. For example, as shown in FIG. 6, the control unit copies pieces of data A to E to any area in memory so that they are stored at consecutive addresses (STEP: 1). Next, the CPU generates tag X from the rearranged and stored pieces of data A to E, and copies tag X to any area in memory (STEP: 2). For example, if there is tag Y that also needs to be packetized, tag X is copied to an address consecutive to tag Y. Finally, the tags stored at consecutive addresses (tags X and Y in the example of FIG. 6) are combined to generate a packet (STEP: 3).

このように、転送対象のデータの格納先アドレスが連続していない場合、それらのデータをタグ化、および/またはパケット化するためには、それらのデータがメモリ上で連続したアドレスに格納されるように、データを整理してメモリにコピーし直す必要がある。したがって、送信側ユニットのCPUにおいてメモリコピーが頻繁に発生し、送信側ユニットのCPUにかえって処理負荷がかかってしまうという問題があった。 In this way, when the storage addresses of the data to be transferred are not consecutive, in order to tag and/or packetize the data, it is necessary to organize the data and copy it back to memory so that it is stored in consecutive addresses in memory. This causes frequent memory copies in the CPU of the sending unit, which creates a problem of imposing a processing load on the CPU of the sending unit.

また、パケットまたはタグを受信した受信側ユニットのCPUまたはMPU等では、パケットおよび/またはタグを解凍して、これらに含まれているデータをメモリ上の適切な領域にコピーする必要がある。具体的には、受信側ユニットの制御部は、各データを、メモリ上の受信側ユニットのアプリケーションが使用可能な領域にコピーする必要がある。 In addition, the CPU or MPU of the receiving unit that receives the packet or tag must decompress the packet and/or tag and copy the data contained therein to an appropriate area in memory. Specifically, the control unit of the receiving unit must copy each piece of data to an area in memory that can be used by the application of the receiving unit.

本発明の一態様は、上記課題を鑑みたものであり、DMA方式でデータ転送を行う場合に、DMA方式以外の方法によるメモリの読み書きを低減することを目的とする。 One aspect of the present invention has been developed in consideration of the above-mentioned problems, and aims to reduce memory reads and writes using methods other than the DMA method when data transfer is performed using the DMA method.

上記の課題を解決するために、本発明の一態様に係るメモリ制御装置は、送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置であって、前記送信側メモリには、少なくとも、前記複数の転送対象データと、複数の送信ディスクリプタを含んだ送信ディスクリプタテーブルとが記憶されており、送信側制御部から、前記送信ディスクリプタテーブルを指定する識別子を受信する識別子受信部と、前記識別子が指定する前記送信ディスクリプタテーブルから、当該送信ディスクリプタテーブルによって指定される順番で、当該送信ディスクリプタテーブルに含まれている複数の送信ディスクリプタを読み出す送信ディスクリプタ読出部と、前記送信側メモリから順次読み出す前記複数の送信ディスクリプタの記述に従って、前記送信側メモリから前記複数の転送対象データを順次読み出すデータ読出部と、を備える。 In order to solve the above problem, a memory control device according to one aspect of the present invention is a memory control device that accesses a transmitting memory and a receiving memory by a DMA (Direct Memory Access) method and transfers multiple transfer target data from the transmitting memory to the receiving memory, and the transmitting memory stores at least the multiple transfer target data and a transmission descriptor table including multiple transmission descriptors. The memory control device includes an identifier receiving unit that receives an identifier that specifies the transmission descriptor table from a transmitting control unit, a transmission descriptor reading unit that reads multiple transmission descriptors included in the transmission descriptor table from the transmission descriptor table specified by the identifier in the order specified by the transmission descriptor table, and a data reading unit that sequentially reads the multiple transfer target data from the transmitting memory according to the descriptions of the multiple transmission descriptors that are sequentially read from the transmitting memory.

上記の課題を解決するために、本発明の一態様に係るメモリ制御装置の制御方法は、送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置の制御方法であって、前記送信側メモリには、少なくとも、前記複数の転送対象データと、複数の送信ディスクリプタを含んだ送信ディスクリプタテーブルとが記憶されており、送信側制御部から、前記送信ディスクリプタテーブルを指定する識別子を受信する識別子受信ステップと、前記識別子が指定する前記送信ディスクリプタテーブルから、当該送信ディスクリプタテーブルによって指定される順番で、当該送信ディスクリプタテーブルに含まれている複数の送信ディスクリプタを読み出す送信ディスクリプタ読出ステップと、前記送信側メモリから順次読み出す前記複数の送信ディスクリプタの記述に従って、前記送信側メモリから前記複数の転送対象データを順次読み出すデータ読出ステップと、を含む。 In order to solve the above problem, a control method for a memory control device according to one aspect of the present invention is a control method for a memory control device that accesses a transmitting memory and a receiving memory by a DMA (Direct Memory Access) method and transfers multiple transfer target data from the transmitting memory to the receiving memory, in which at least the multiple transfer target data and a transmission descriptor table including multiple transmission descriptors are stored in the transmitting memory, and includes an identifier receiving step of receiving an identifier specifying the transmission descriptor table from a transmitting control unit, a transmission descriptor reading step of reading multiple transmission descriptors included in the transmission descriptor table specified by the identifier in the order specified by the transmission descriptor table, and a data reading step of sequentially reading the multiple transfer target data from the transmitting memory according to the descriptions of the multiple transmission descriptors sequentially read from the transmitting memory.

前記の構成によれば、メモリ制御装置は、送信ディスクリプタを送信ディスクリプタテーブルが指定する順番で読み出す。そして、メモリ制御装置は、それらの送信ディスクリプタの記述にしたがって、転送対象データを送信側メモリから順次読み出すことができる。したがって、メモリ制御装置は、送信側制御部から識別子を受信するだけで、複数の転送対象データの読み出しを行うことができる。換言すると、送信側制御部は、最初に識別子をメモリ制御装置に送信した後は、送信側メモリにアクセスしなくてもよい。したがって、前記の構成によれば、送信側制御部が送信側メモリにアクセスする頻度を低減することができる。 According to the above configuration, the memory control device reads out the transmission descriptors in the order specified by the transmission descriptor table. The memory control device can then sequentially read out the data to be transferred from the transmission-side memory according to the descriptions in those transmission descriptors. Therefore, the memory control device can read out multiple pieces of data to be transferred simply by receiving an identifier from the transmission-side control unit. In other words, the transmission-side control unit does not need to access the transmission-side memory after initially transmitting an identifier to the memory control device. Therefore, according to the above configuration, it is possible to reduce the frequency with which the transmission-side control unit accesses the transmission-side memory.

また、メモリ制御装置は、例えば、複数の転送対象データが送信側メモリの中で連続しないアドレスに格納されていた場合でも、それらの転送対象データを別個に読み出すことができる。そのため、送信側制御部は、予め複数の転送対象データを1つのパケット等にまとめておく必要がない。すなわち、送信側制御部は、パケットおよび/またはタグ生成のために、送信側メモリにアクセスしてデータのコピー等を行う必要が無い。したがって、前記の構成によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、送信側制御部が送信側メモリにアクセスする頻度を低減することができる。 Furthermore, the memory control device can read out the multiple data to be transferred separately, even if the multiple data to be transferred are stored in non-consecutive addresses in the transmitting memory. Therefore, the transmitting control unit does not need to consolidate the multiple data to be transferred into one packet or the like in advance. In other words, the transmitting control unit does not need to access the transmitting memory and copy data, etc., in order to generate packets and/or tags. Therefore, according to the above configuration, the transmitting control unit can reduce the frequency of accessing the transmitting memory compared to the case where multiple data to be transferred are consolidated into packets and/or tags, etc. and transferred.

上記の課題を解決するために、本発明の一態様に係るメモリ制御装置は、送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置であって、前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、送信側制御部から、前記受信ディスクリプタテーブルを指定する識別子を受信する識別子受信部と、送信側制御部が決定した前記識別子に応じた前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出部と、前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込部と、を備える。 In order to solve the above problem, a memory control device according to one aspect of the present invention is a memory control device that accesses a transmitting memory and a receiving memory by a DMA (Direct Memory Access) method and transfers multiple transfer target data from the transmitting memory to the receiving memory, and the receiving memory stores at least a receiving descriptor table including multiple receiving descriptors. The memory control device includes: an identifier receiving unit that receives an identifier that specifies the receiving descriptor table from a transmitting control unit; a receiving descriptor reading unit that reads multiple receiving descriptors included in the receiving descriptor table from the receiving descriptor table corresponding to the identifier determined by the transmitting control unit in the order specified by the receiving descriptor table; and a data writing unit that sequentially writes the multiple transfer target data read from the transmitting memory to the receiving memory according to the descriptions of the multiple receiving descriptors that are sequentially read from the receiving memory.

上記の課題を解決するために、本発明の一態様に係るメモリ制御装置の制御方法は、送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置の制御方法であって、前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、送信側制御部から、前記受信ディスクリプタテーブルを指定する識別子を受信する識別子受信ステップと、送信側制御部が決定した前記識別子に応じた前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出ステップと、前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込ステップと、を含む。 In order to solve the above problem, a control method for a memory control device according to one aspect of the present invention is a control method for a memory control device that accesses a transmitting memory and a receiving memory by a DMA (Direct Memory Access) method and transfers multiple transfer target data from the transmitting memory to the receiving memory, in which at least a receiving descriptor table including multiple receiving descriptors is stored in the receiving memory, and includes an identifier receiving step of receiving an identifier that specifies the receiving descriptor table from a transmitting control unit, a receiving descriptor reading step of reading multiple receiving descriptors included in the receiving descriptor table according to the identifier determined by the transmitting control unit in the order specified by the receiving descriptor table, and a data writing step of writing the multiple transfer target data read from the transmitting memory to the receiving memory in sequence according to the descriptions of the multiple receiving descriptors that are sequentially read from the receiving memory.

前記の構成によれば、メモリ制御装置は、受信ディスクリプタを受信ディスクリプタテーブルが指定する順番で読み出す。そして、メモリ制御装置は、それらの受信ディスクリプタの記述にしたがって、転送対象データを受信側メモリに順次書き込むことができる。これにより、受信側制御部は受信側メモリにアクセスせずとも、転送対象データの書き込みが可能になる。したがって、前記の構成によれば、受信側制御部が受信側メモリにアクセスする頻度を低減することができる。 According to the above configuration, the memory control device reads the receive descriptors in the order specified by the receive descriptor table. The memory control device can then write the data to be transferred to the receive memory sequentially according to the descriptions in those receive descriptors. This allows the receive control unit to write the data to be transferred without having to access the receive memory. Therefore, according to the above configuration, the frequency with which the receive control unit accesses the receive memory can be reduced.

また、メモリ制御装置は、複数の転送対象データを別個に書き込んでいく。そのため、例えば、具体的には、受信側制御部が、複数の転送対象データをまとめたパケットおよび/またはタグを解凍して、各転送対象データを適切な領域にコピーし直す必要が無い。したがって、前記の構成によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、受信側制御部が受信側メモリにアクセスする頻度を低減することができる。 The memory control device also writes multiple pieces of data to be transferred separately. Therefore, for example, specifically, the receiving control unit does not need to decompress the packets and/or tags that bundle multiple pieces of data to be transferred and recopy each piece of data to an appropriate area. Therefore, according to the above configuration, the frequency with which the receiving control unit accesses the receiving memory can be reduced compared to when multiple pieces of data to be transferred are bundled and transferred in packets and/or tags, etc.

前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されていてもよく、前記識別子は、前記送信ディスクリプタテーブルと、当該送信ディスクリプタテーブルに対応する前記受信ディスクリプタテーブルとを指定する識別子であってもよい。そして、前記メモリ制御装置は、前記識別子が指定する前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出部と、前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込部と、を備えていてもよい。 The receiving memory may store at least a receiving descriptor table including a plurality of receiving descriptors, and the identifier may be an identifier that specifies the transmitting descriptor table and the receiving descriptor table corresponding to the transmitting descriptor table. The memory control device may further include a receiving descriptor reading unit that reads out the plurality of receiving descriptors included in the receiving descriptor table from the receiving descriptor table specified by the identifier in an order specified by the receiving descriptor table, and a data writing unit that sequentially writes the plurality of transfer target data read from the transmitting memory to the receiving memory according to the descriptions of the plurality of receiving descriptors sequentially read from the receiving memory.

前記の構成によれば、メモリ制御装置は送信側制御部から、送信ディスクリプタテーブルと、受信ディスクリプタテーブルとを指定する識別子を受信する。これにより、メモリ制御装置は、送信ディスクリプタと対になる受信ディスクリプタを、識別子により指定された受信ディスクリプタテーブルから、該受信ディスクリプタテーブルが指定する順番で読み出すことができる。そして、メモリ制御装置は、それらの受信ディスクリプタの記述にしたがって、転送対象データを受信側メモリに順次書き込むことができる。これにより、受信側制御部は受信側メモリにアクセスせずとも、転送対象データの書き込みが可能になる。したがって、前記の構成によれば、送信側制御部が送信側メモリにアクセスする頻度と、受信側制御部が受信側メモリにアクセスする頻度との両方を低減することができる。 According to the above configuration, the memory control device receives an identifier specifying a transmission descriptor table and a reception descriptor table from the transmission side control unit. This allows the memory control device to read the reception descriptor paired with the transmission descriptor from the reception descriptor table specified by the identifier in the order specified by the reception descriptor table. The memory control device can then write the data to be transferred sequentially to the reception side memory according to the descriptions of those reception descriptors. This allows the reception side control unit to write the data to be transferred without accessing the reception side memory. Therefore, according to the above configuration, it is possible to reduce both the frequency with which the transmission side control unit accesses the transmission side memory and the frequency with which the reception side control unit accesses the reception side memory.

また、メモリ制御装置は、送信側メモリから複数の転送対象データを別個に読出し、別個に書き込んでいく。そのため、送信側制御部が、パケットおよび/またはタグ生成のために送信側メモリにアクセスする必要が無くなり、受信側制御部が、複数の転送対象データをまとめたパケットおよび/またはタグを解凍して、各転送対象データを適切な領域にコピーし直す必要が無くなる。したがって、前記の構成によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、送信側制御部が送信側メモリにアクセスする頻度と、受信側制御部が受信側メモリにアクセスする頻度との両方を低減することができる。 The memory control device also reads out the multiple data items to be transferred separately from the transmitting memory and writes them separately. This eliminates the need for the transmitting control unit to access the transmitting memory to generate packets and/or tags, and the receiving control unit does not need to decompress the packets and/or tags that consolidate the multiple data items to be transferred and recopy each data item to an appropriate area. Therefore, with the above configuration, it is possible to reduce both the frequency with which the transmitting control unit accesses the transmitting memory and the frequency with which the receiving control unit accesses the receiving memory, compared to when multiple data items to be transferred are consolidated into packets and/or tags, etc.

前記メモリ制御装置において、前記送信側メモリは第1デバイスに設けられていてもよく、前記受信側メモリは、前記第1デバイスと異なるデバイスであって、前記第1デバイスとDMA方式で通信する第2デバイスに設けられていてもよい。 In the memory control device, the transmitting memory may be provided in a first device, and the receiving memory may be provided in a second device that is different from the first device and communicates with the first device using a DMA method.

前記の構成によれば、それぞれ異なる装置に搭載されている送信側メモリと受信側メモリの間でのデータ転送において、DMA方式以外の方法によるメモリへのアクセス頻度を低減することができる。 The above configuration makes it possible to reduce the frequency of accessing memory using methods other than the DMA method when transferring data between a sending memory and a receiving memory that are installed in different devices.

前記メモリ制御装置において、前記送信側メモリと前記受信側メモリは同一であってもよい。前記の構成によれば、ある1つのメモリ内でのデータ転送において、DMA方式以外の方法によるメモリへのアクセス頻度を低減することができる。 In the memory control device, the sending memory and the receiving memory may be the same. With the above configuration, it is possible to reduce the frequency of accessing the memory by methods other than the DMA method during data transfer within a single memory.

本発明の一態様によれば、DMA方式でデータ転送を行う場合に、DMA方式以外の方法によるメモリへのアクセス頻度を低減することができる。 According to one aspect of the present invention, when data is transferred using the DMA method, the frequency of accessing memory using methods other than the DMA method can be reduced.

実施形態1に係るデータ転送システムの要部構成の一例を示すブロック図である。1 is a block diagram showing an example of a configuration of a main part of a data transfer system according to a first embodiment; タグテーブルおよびディスクリプタテーブルのデータ構造を示す図である。1A and 1B are diagrams illustrating data structures of a tag table and a descriptor table. 送信ディスクリプタおよび受信ディスクリプタのデータ構造を示す図である。FIG. 2 illustrates the data structures of a transmit descriptor and a receive descriptor. 前記データ転送システムにおける、下りデータ転送の処理の流れを示すシーケンス図である。4 is a sequence diagram showing a process flow of downstream data transfer in the data transfer system. FIG. 実施形態2に係るデータ転送システムの要部構成の一例を示すブロック図である。FIG. 11 is a block diagram showing an example of a configuration of a main part of a data transfer system according to a second embodiment. DMA(Direct Memory Access)方式を用いた従来のデータ転送方法においてデータをパケット化する場合の処理を模式的に示した図である。FIG. 1 is a diagram illustrating a process for packetizing data in a conventional data transfer method using a DMA (Direct Memory Access) system.

〔実施形態1〕
§1.適用例
本実施形態では一例として、第1ユニット(第1デバイス、第2デバイス)100に含まれる第1処理装置110と、第2ユニット(第1デバイス、第2デバイス)200に含まれる第2処理装置210との間で、双方向にデータの転送が可能なデータ転送システムについて説明する。
[Embodiment 1]
§1. Application Example In this embodiment, as an example, a data transfer system capable of bidirectional data transfer between a first processing device 110 included in a first unit (first device, second device) 100 and a second processing device 210 included in a second unit (first device, second device) 200 will be described.

なお、以降の説明では、第1処理装置110から第2処理装置210へデータを転送することを、「下り転送」と称することもある。また、第2処理装置210から第1処理装置110へデータを転送することを、「上り転送」と称することもある。 In the following description, the transfer of data from the first processing device 110 to the second processing device 210 is sometimes referred to as "downstream transfer." The transfer of data from the second processing device 210 to the first processing device 110 is sometimes referred to as "upstream transfer."

図1は、本実施形態に係るデータ転送システム500の要部構成の一例を示すブロック図である。データ転送システム500は、第1ユニット100と第2ユニット200を含む。第1ユニット100は第1処理装置110および第1メモリ120を含み、第2ユニット200は第2処理装置210、第2メモリ220、および転送装置230を含む。 Figure 1 is a block diagram showing an example of the main configuration of a data transfer system 500 according to this embodiment. The data transfer system 500 includes a first unit 100 and a second unit 200. The first unit 100 includes a first processing device 110 and a first memory 120, and the second unit 200 includes a second processing device 210, a second memory 220, and a transfer device 230.

(第1ユニット100)
第1ユニット100は、例えば、産業用機器の制御を行うユニットである。第1ユニット100はPLC(Programmable Logic Controller)等で実現できる。第1処理装置110は、第1ユニット100におけるプロセッサである。第1処理装置110は、例えば、CPU(Central Processing Unit)であってよい。第1メモリ120は、第1ユニット100における揮発性の記憶装置である。第1メモリ120は、例えば、DRAM(Dynamic Random Access Memory)であってよい。
(First unit 100)
The first unit 100 is, for example, a unit that controls industrial equipment. The first unit 100 can be realized by a PLC (Programmable Logic Controller) or the like. The first processing device 110 is a processor in the first unit 100. The first processing device 110 may be, for example, a CPU (Central Processing Unit). The first memory 120 is a volatile storage device in the first unit 100. The first memory 120 may be, for example, a DRAM (Dynamic Random Access Memory).

(第2ユニット200)
第2ユニット200は、例えば、第1ユニット100の機能を補完または拡張するためのユニットである。より具体的には、第2ユニット200は、データの統計機能、ルータ機能またはデータベース機能などの機能を担うユニットであってよい。
(Second unit 200)
The second unit 200 is, for example, a unit for complementing or expanding the function of the first unit 100. More specifically, the second unit 200 may be a unit that performs functions such as a data statistical function, a router function, or a database function.

第2処理装置210は、第2ユニット200のプロセッサである。第2処理装置210は、例えばMPU(Micro Processing Unit)であってよい。第2メモリ220は第2ユニット200における揮発性の記憶装置である。第2メモリ220は、例えば、DRAMであってよい。 The second processing device 210 is a processor of the second unit 200. The second processing device 210 may be, for example, an MPU (Micro Processing Unit). The second memory 220 is a volatile storage device in the second unit 200. The second memory 220 may be, for example, a DRAM.

転送装置230は、第1処理装置110と第2処理装置210との間で、DMA方式によるデータ転送を実現するための装置である。転送装置230は、例えば、FPGA(Field-Programmable gate array)で実現できる。なお、本実施形態では、転送装置230は第2ユニット200に設けられているが、データ転送システム500において、転送装置230は第1ユニット100に設けられていてもよい。 The transfer device 230 is a device for implementing data transfer by the DMA method between the first processing device 110 and the second processing device 210. The transfer device 230 can be implemented, for example, by an FPGA (Field-Programmable Gate Array). Note that in this embodiment, the transfer device 230 is provided in the second unit 200, but in the data transfer system 500, the transfer device 230 may be provided in the first unit 100.

いずれの場合においても、第1処理装置110と転送装置230、ならびに、第2処理装置210と転送装置230はそれぞれ、PCIe(Peripheral Component Interconnect Express)の規格に準拠したbusで接続されている。これにより、第1処理装置110と第2処理装置210は、転送装置230を介してPCIeで通信することができる。 In either case, the first processing device 110 and the transfer device 230, and the second processing device 210 and the transfer device 230 are each connected by a bus that complies with the PCIe (Peripheral Component Interconnect Express) standard. This allows the first processing device 110 and the second processing device 210 to communicate via the transfer device 230 using PCIe.

(データの転送)
詳細は後述するが、データ転送システム500では、送信側ユニットが受信側ユニットに、とある識別子を送信する。識別子は、送信側ユニットで使用する送信ディスクリプタテーブルを指定するための情報であり、受信側ユニットで使用する受信ディスクリプタテーブルを指定するための情報でもある。
(Transfer of Data)
Although details will be described later, in the data transfer system 500, the transmitting unit transmits a certain identifier to the receiving unit. The identifier is information for specifying the transmitting descriptor table to be used in the transmitting unit, and is also information for specifying the receiving descriptor table to be used in the receiving unit.

送信ディスクリプタテーブルには、複数の送信ディスクリプタが含まれている。受信ディスクリプタテーブルには、複数の受信ディスクリプタが含まれている。そのため、前述の識別子は、複数の転送対象データを転送する際に使用する送信ディスクリプタ群と受信ディスクリプタ群を指定しているともいえる。 The transmit descriptor table contains multiple transmit descriptors. The receive descriptor table contains multiple receive descriptors. Therefore, the above identifier can be said to specify the transmit and receive descriptor groups to be used when transferring multiple pieces of data to be transferred.

転送装置230は、送信側メモリの送信ディスクリプタテーブルから送信ディスクリプタを読み出す。また、転送装置230は、受信側メモリの受信ディスクリプタテーブルから受信ディスクリプタを読み出す。そして、転送装置230は、1セットの送信ディスクリプタおよび受信ディスクリプタの記述にしたがって、転送対象データを送信側メモリから受信側メモリへと転送する。転送装置230は、このような送信ディスクリプタおよび受信ディスクリプタの読み出しと、転送対象データの転送とを、送信ディスクリプタおよび受信ディスクリプタのセットの数だけ繰り返す。 The transfer device 230 reads a transmit descriptor from the transmit descriptor table in the transmitting memory. The transfer device 230 also reads a receive descriptor from the receive descriptor table in the receiving memory. The transfer device 230 then transfers the data to be transferred from the transmitting memory to the receiving memory according to the description of one set of transmit and receive descriptors. The transfer device 230 repeats the reading of the transmit and receive descriptors and the transfer of the data to be transferred the number of times equal to the number of sets of transmit and receive descriptors.

図4に示す処理によれば、データ転送システム500では、送信側ユニットは識別子を決定して、当該識別子を転送装置230に送信するだけでよい。そのため、転送対象データが複数ある場合も、転送対象データのタグ化、および/またはパケット化を行う必要が無い。さらに言えば、転送対象データをタグ化、および/またはパケット化するための、メモリ上でのデータの並び替えも不要である。したがって、データ転送システム500によれば、送信側ユニットの制御部によるメモリのアクセス頻度を低減することができる。 According to the process shown in FIG. 4, in the data transfer system 500, the transmitting unit only needs to determine an identifier and transmit the identifier to the transfer device 230. Therefore, even if there are multiple pieces of data to be transferred, there is no need to tag and/or packetize the data to be transferred. Furthermore, there is no need to rearrange data in memory to tag and/or packetize the data to be transferred. Therefore, according to the data transfer system 500, the frequency of memory access by the control unit of the transmitting unit can be reduced.

また、データ転送システム500では、受信側ユニットは、パケットまたはタグではなく、転送対象データをそのまま受信する。そのため、パケットまたはタグを一旦メモリに書き込んでから解凍するという処理が発生しない。また、解凍した転送対象データをそれぞれ、メモリ上の適切な領域に再移動させる必要もない。したがって、データ転送システム500によれば、受信側ユニットの制御部によるメモリのアクセス頻度を低減することができる。 In addition, in the data transfer system 500, the receiving unit receives the data to be transferred as is, not the packets or tags. Therefore, the process of writing the packets or tags to memory and then decompressing them does not occur. In addition, there is no need to move the decompressed data to be transferred back to the appropriate area in memory. Therefore, according to the data transfer system 500, the frequency of memory access by the control unit of the receiving unit can be reduced.

§2.構成例
(第1ユニット100)
次に、図1に示す第1ユニット100および第2ユニット200の要部構成について説明する。図1の例において、第1ユニット100は、第1処理装置110および第1メモリ120を備える。第1ユニット100は、他にも、入力装置、出力装置、および、ROM(Read Only Memory)等の不揮発性の記憶装置などを備えていてもよい。
§2. Configuration example (first unit 100)
Next, a description will be given of the main configuration of the first unit 100 and the second unit 200 shown in Fig. 1. In the example of Fig. 1, the first unit 100 includes a first processing device 110 and a first memory 120. The first unit 100 may also include an input device, an output device, and a non-volatile storage device such as a ROM (Read Only Memory).

(第1処理装置110)
第1処理装置110(送信側制御部)は、第1ユニット100を統括的に制御するプロセッサである。第1処理装置110は、例えば、CPUで実現される。第1処理装置110は、不図示の不揮発性記憶装置に記憶された第1ユニット100の制御プログラムを第1メモリ120に展開する。そして、第1処理装置110は、第1メモリ120に展開された制御プログラムを解釈および実行して、各構成要素を制御する。これによって、図1に示される通り、本実施形態に係る第1処理装置110は、第1制御部111と、第1ファームウェア(FW)112と、第1PCIeインタフェース113として機能する。
(First processing device 110)
The first processing device 110 (transmission side control unit) is a processor that controls the first unit 100 in an integrated manner. The first processing device 110 is realized by, for example, a CPU. The first processing device 110 loads a control program of the first unit 100 stored in a non-volatile storage device (not shown) in a first memory 120. The first processing device 110 then interprets and executes the control program loaded in the first memory 120 to control each component. As a result, as shown in FIG. 1, the first processing device 110 according to this embodiment functions as a first control unit 111, a first firmware (FW) 112, and a first PCIe interface 113.

第1制御部111は、第1ユニット100に接続される機器(例えば、産業用機器)を制御するものである。また、第1制御部111は、接続された機器と定周期で通信し、各種機器から、下流の工程で処理されるデータを取得してもよい。また例えば、第1制御部111が取得したデータは、第2ユニット200に転送されたのち、第2ユニット200によって処理されてもよい。 The first control unit 111 controls the equipment (e.g., industrial equipment) connected to the first unit 100. The first control unit 111 may also periodically communicate with the connected equipment and acquire data from the various equipment to be processed in downstream processes. For example, the data acquired by the first control unit 111 may be transferred to the second unit 200 and then processed by the second unit 200.

第1ファームウェア112は、第1ユニット100と第2ユニット200とのデータの転送に係る各種処理を実行する。例えば、第1ファームウェア112は、下りデータ転送時のタグ番号を決定し、転送装置230に通知する。なお、タグ番号については後で詳述する。また、第1ファームウェア112は、第1ユニット100と第2ユニット200とのデータ転送の開始前に、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを作成またはダウンロードする処理と、当該作成またはダウンロードしたタグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを第1メモリ120に書き込む処理も行う。すなわち、第1ファームウェア112は、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを準備して、第1メモリ120に記憶させておく。 The first firmware 112 executes various processes related to the transfer of data between the first unit 100 and the second unit 200. For example, the first firmware 112 determines a tag number for downstream data transfer and notifies the transfer device 230. The tag number will be described in detail later. In addition, before the start of data transfer between the first unit 100 and the second unit 200, the first firmware 112 also performs a process of creating or downloading a tag table, a transmission descriptor table, and a reception descriptor table in advance, and a process of writing the created or downloaded tag table, transmission descriptor table, and reception descriptor table to the first memory 120. In other words, the first firmware 112 prepares a tag table, a transmission descriptor table, and a reception descriptor table in advance and stores them in the first memory 120.

第1PCIeインタフェース113は、第1処理装置110が、PCIebusを介して、転送装置230とPCIeで接続するためのインタフェースである。 The first PCIe interface 113 is an interface for connecting the first processing device 110 to the transfer device 230 via PCIe through the PCIe bus.

(第1メモリ120)
第1メモリ120は、揮発性の記憶領域(RAM;Random Access Memory)である。第1メモリ120は、第1処理装置110によって生成された送信データ、第1処理装置110が処理すべき、第2処理装置210によって生成された受信データ、および、第1処理装置110で実行されるべき各種プログラムを格納する。また、第1メモリ120は、第1処理装置110による各種プログラムの実行時の作業用メモリとして使用されてもよい。第1メモリ120としては、典型的には、DRAM(Dynamic Random Access Memory)を用いることができる。
(First memory 120)
The first memory 120 is a volatile storage area (RAM; Random Access Memory). The first memory 120 stores transmission data generated by the first processing device 110, reception data generated by the second processing device 210 to be processed by the first processing device 110, and various programs to be executed by the first processing device 110. The first memory 120 may also be used as a working memory when the first processing device 110 executes various programs. Typically, a dynamic random access memory (DRAM) can be used as the first memory 120.

第1メモリ120には、送信タグテーブル、送信ディスクリプタテーブル、受信タグテーブル、受信ディスクリプタテーブル、および、転送対象のデータ(図1では、データ1~m)が記憶されている。 The first memory 120 stores a transmission tag table, a transmission descriptor table, a reception tag table, a reception descriptor table, and data to be transferred (data 1 to m in FIG. 1).

第1メモリ120の送信ディスクリプタは、転送装置230のDMAC233(後述)が下り転送を実現するための動作の一部を規定するディスクリプタである。これにより、第1処理装置110の第1ファームウェア112が、第2処理装置210の第2ファームウェア212へデータを送信することが可能となる。 The transmit descriptor of the first memory 120 is a descriptor that specifies part of the operation for the DMAC 233 (described later) of the transfer device 230 to realize downstream transfer. This enables the first firmware 112 of the first processing device 110 to transmit data to the second firmware 212 of the second processing device 210.

第1メモリ120の受信ディスクリプタは、DMAC233が上り転送を実現するための動作の一部を規定する。これにより、第1処理装置110の第1ファームウェア112が、第2処理装置210の第2ファームウェア212から送信されたデータを受信することが可能となる。 The receive descriptor of the first memory 120 specifies part of the operation for the DMAC 233 to realize the upstream transfer. This enables the first firmware 112 of the first processing device 110 to receive data sent from the second firmware 212 of the second processing device 210.

(タグテーブルとディスクリプタテーブル)
図2は、タグテーブルおよびディスクリプタテーブルのデータ構造を示す図である。なお、タグテーブルであれば、送信タグテーブルでも受信タグテーブルでも、基本的なデータ構造は同一である。また、ディスクリプタテーブルであれば、送信ディスクリプタテーブルでも受信ディスクリプタテーブルでも、基本的なデータ構造は同一である。
(Tag table and Descriptor table)
2 is a diagram showing the data structures of a tag table and a descriptor table. Note that the basic data structure of a tag table is the same whether it is a transmission tag table or a reception tag table. Also, the basic data structure of a descriptor table is the same whether it is a transmission descriptor table or a reception descriptor table.

「タグテーブル」とは、複数のディスクリプタテーブルそれぞれの、メモリ上での格納先の先頭アドレスをリストにしたものである。送信タグデーブルは、データ送信の際に用いられるテーブルであって、送信ディスクリプタテーブルの先頭アドレスのリストである。受信タグテーブルは、データ受信の際に用いられるテーブルであって、受信ディスクリプタテーブルの先頭アドレスのリストである。 A "tag table" is a list of the first addresses of the storage locations in memory for each of multiple descriptor tables. The transmit tag table is a table used when transmitting data, and is a list of the first addresses of the transmit descriptor tables. The receive tag table is a table used when receiving data, and is a list of the first addresses of the receive descriptor tables.

図2では便宜上、タグテーブルの、あるディスクリプタテーブル(ディスクリプタテーブル1)の先頭アドレスが指定するディスクリプタをタグテーブルと対応付けて、並べて記載している。しかしながら、タグテーブルと、そのタグテーブルに対応するディスクリプタテーブルとは、メモリ上の連続しないアドレスに格納されていてもよい。また、図2のタグテーブルは、ディスクリプタテーブルの先頭アドレスを指定するものであり、ディスクリプタテーブルそのものは含んでいなくてよい。 For convenience, in FIG. 2, the descriptors specified by the first addresses of a certain descriptor table (descriptor table 1) in the tag table are shown in correspondence with the tag table. However, the tag table and the descriptor table corresponding to that tag table may be stored at non-consecutive addresses in memory. Also, the tag table in FIG. 2 specifies the first addresses of the descriptor tables, and need not include the descriptor tables themselves.

また、図2のタグテーブルにおける、各ディスクリプタテーブルの先頭アドレスの並び順は特に限定されない。例えば、同図の例では、X個のディスクリプタテーブルの先頭アドレスをそれぞれ、ディスクリプタテーブルXからディスクリプタテーブル1まで逆順で指定するような並び順としているが、ディスクリプタテーブル1からディスクリプタテーブルXまで順で指定するような並び順であってもよい。 In addition, the order of the top addresses of each descriptor table in the tag table of FIG. 2 is not particularly limited. For example, in the example of the same figure, the top addresses of X number of descriptor tables are arranged in a reverse order from descriptor table X to descriptor table 1, but the order may be such that the addresses are specified in order from descriptor table 1 to descriptor table X.

「ディスクリプタテーブル」とは、複数のディスクリプタをデータ転送に用いる順に格納しているデータテーブルである。図2の例では、ディスクリプタテーブルは、ディスクリプタ1~ディスクリプタiを含んでいる。送信ディスクリプタテーブルは、複数の送信ディスクリプタをデータ転送に用いる順に格納しているデータテーブルである。受信ディスクリプタテーブルは、複数の受信ディスクリプタをデータ転送に用いる順に格納しているデータテーブルである。例えば図2のディスクリプタが送信ディスクリプタである場合、送信側メモリからのデータの読み出しの際は、ディスクリプタ1から順に送信ディスクリプタが使用される。また例えば、図2のディスクリプタが受信ディスクリプタである場合、受信側メモリへのデータの書き込みの際は、ディスクリプタ1から順に受信ディスクリプタが使用される。 A "descriptor table" is a data table that stores multiple descriptors in the order in which they are used for data transfer. In the example of FIG. 2, the descriptor table includes descriptor 1 to descriptor i. A transmit descriptor table is a data table that stores multiple transmit descriptors in the order in which they are used for data transfer. A receive descriptor table is a data table that stores multiple receive descriptors in the order in which they are used for data transfer. For example, if the descriptor in FIG. 2 is a transmit descriptor, the transmit descriptors are used in order starting from descriptor 1 when reading data from the transmitting memory. Also, for example, if the descriptor in FIG. 2 is a receive descriptor, the receive descriptors are used in order starting from descriptor 1 when writing data to the receiving memory.

(送信ディスクリプタと受信ディスクリプタ)
図3は、送信ディスクリプタおよび受信ディスクリプタのデータ構造を示す図である。送信ディスクリプタは、図2に示す通り、以下の(1)~(3)を含んでいる。
(Transmit Descriptor and Receive Descriptor)
3 is a diagram showing the data structures of a transmit descriptor and a receive descriptor. As shown in FIG. 2, the transmit descriptor includes the following (1) to (3).

(1)送信対象に指定するデータの、メモリ上での格納先アドレス
(2)送信対象に指定するデータのサイズ
(3)その他のデータ
このうち、(3)に示す「その他のデータ」には、例えば、転送が無事に完了したときに立てる転送完了フラグなどが含まれる。
(1) The storage address in memory of the data to be sent. (2) The size of the data to be sent. (3) Other data. Of these, the "other data" shown in (3) includes, for example, a transfer completion flag that is set when the transfer is completed successfully.

受信ディスクリプタは、図2に示す通り、以下の(4)および(5)を含んでいる。 The receive descriptor contains the following (4) and (5), as shown in Figure 2.

(4)受信対象のデータの、メモリ上での保存先アドレス
(5)その他のデータ
このうち、(5)に示す「その他のデータ」には、例えば、転送が無事に完了したときに立てる転送完了フラグなどが含まれる。
(4) The destination address in memory of the data to be received. (5) Other data. The "other data" shown in (5) includes, for example, a transfer completion flag that is set when the transfer is completed successfully.

(第2ユニット200)
図1の例では、第2ユニット200は、第2処理装置210、第2メモリ220、および、転送装置230を備える。
(Second unit 200)
In the example of FIG. 1, the second unit 200 includes a second processing device 210 , a second memory 220 , and a forwarding device 230 .

(第2処理装置210)
第2処理装置(送信側制御部)210は、第2ユニット200を統括的に制御するものである。第2処理装置210は、例えば、MPUで実現される。第2処理装置210は、不図示の不揮発性記憶装置に記憶された第2ユニット200の制御プログラムを、第2メモリ220に展開する。そして、第2処理装置210は、第2メモリ220に展開された制御プログラムを解釈および実行して、各構成要素を制御する。これによって、図1に示される通り、本実施形態に係る第2処理装置210は、第2制御部211と、第2ファームウェア212と、第2PCIeインタフェース213として機能する。
(Second Processing Device 210)
The second processing device (transmission side control unit) 210 controls the second unit 200 in an integrated manner. The second processing device 210 is realized by, for example, an MPU. The second processing device 210 loads a control program for the second unit 200 stored in a non-volatile storage device (not shown) in a second memory 220. The second processing device 210 then interprets and executes the control program loaded in the second memory 220 to control each component. As a result, as shown in FIG. 1, the second processing device 210 according to this embodiment functions as a second control unit 211, a second firmware 212, and a second PCIe interface 213.

第2制御部211は、第2ユニット200自体が担う各種機能に係る処理を実行する。例えば、第2制御部211は、第1ユニット100から取得したデータを集計してもよい。 The second control unit 211 executes processes related to the various functions performed by the second unit 200 itself. For example, the second control unit 211 may aggregate data obtained from the first unit 100.

第2ファームウェア212は、第2ユニット200と第1ユニット100とのデータの転送に係る各種処理を実行する。例えば、第2ファームウェア212は、上りデータ転送時のタグ番号を決定し、転送装置230に通知する。また、第2ファームウェア212は、第2ユニット200と第1ユニット100とのデータ転送の開始前に、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを作成またはダウンロードする処理と、当該作成またはダウンロードした、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを第2メモリ220に書き込む処理も行う。すなわち、第2ファームウェア212は、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを準備して、第2メモリ220に記憶させておく。 The second firmware 212 executes various processes related to the transfer of data between the second unit 200 and the first unit 100. For example, the second firmware 212 determines the tag number for the upstream data transfer and notifies the transfer device 230. In addition, the second firmware 212 also performs a process of creating or downloading a tag table, a transmission descriptor table, and a reception descriptor table in advance before starting the data transfer between the second unit 200 and the first unit 100, and a process of writing the created or downloaded transmission descriptor table and reception descriptor table to the second memory 220. In other words, the second firmware 212 prepares the tag table, the transmission descriptor table, and the reception descriptor table in advance and stores them in the second memory 220.

第2PCIeインタフェース213は、第2処理装置210が、PCIebusを介して、転送装置230とPCIeで接続するためのインタフェースである。 The second PCIe interface 213 is an interface for connecting the second processing device 210 to the transfer device 230 via PCIe via the PCIe bus.

(第2メモリ220)
第2メモリ220は、揮発性の記憶領域(RAM)である。第2メモリ220は、第2処理装置210によって生成された送信データ、第2処理装置210が処理すべき、第1処理装置110によって生成された受信データ、および、第2処理装置210で実行されるべき各種プログラムを格納する。また、第2メモリ220は、第2処理装置210による各種プログラムの実行時の作業用メモリとして使用されてもよい。第2メモリ220としては、典型的には、DRAM等を用いることができる。
(Second memory 220)
The second memory 220 is a volatile storage area (RAM). The second memory 220 stores transmission data generated by the second processing device 210, reception data generated by the first processing device 110 to be processed by the second processing device 210, and various programs to be executed by the second processing device 210. The second memory 220 may also be used as a working memory when the second processing device 210 executes various programs. Typically, a DRAM or the like can be used as the second memory 220.

第2メモリ220は、第1メモリ120と同様に、送信タグテーブル、送信ディスクリプタテーブル、受信タグテーブル、受信ディスクリプタテーブル、および、転送対象のデータを記憶している。タグテーブルおよびディスクリプタテーブルのデータ構造は、第1メモリ120で説明した同名のデータと同様である。 The second memory 220, like the first memory 120, stores a transmit tag table, a transmit descriptor table, a receive tag table, a receive descriptor table, and data to be transferred. The data structures of the tag table and the descriptor table are the same as the data of the same names described in the first memory 120.

第2メモリ220の送信ディスクリプタは、転送装置230のDMAC233が上り転送を実現するための動作の一部を規定するディスクリプタである。これにより、第2処理装置210の第2ファームウェア212が、第1処理装置110の第1ファームウェア112へデータを送信することが可能となる。 The transmission descriptor of the second memory 220 is a descriptor that specifies part of the operation for the DMAC 233 of the transfer device 230 to realize an upstream transfer. This enables the second firmware 212 of the second processing device 210 to transmit data to the first firmware 112 of the first processing device 110.

第2メモリ220の受信ディスクリプタは、DMAC233が下り転送を実現するための動作の一部を規定する。これにより、第2メモリ220の第2ファームウェア212が、第1処理装置110の第1ファームウェア112から送信されたデータを受信することが可能となる。 The receive descriptor of the second memory 220 defines part of the operation for the DMAC 233 to realize downstream transfer. This enables the second firmware 212 of the second memory 220 to receive data transmitted from the first firmware 112 of the first processing device 110.

(転送装置230)
転送装置(メモリ制御装置)230は、第1処理装置110および第2処理装置210とPCIeで通信を行うための装置である。転送装置230は、第1処理装置110と第2処理装置210との間の下り転送、および、必要に応じて上り転送を制御する。
(Transfer device 230)
The transfer device (memory control device) 230 is a device for communicating with the first processing device 110 and the second processing device 210 via PCIe. The transfer device 230 controls downstream transfer between the first processing device 110 and the second processing device 210, and upstream transfer as necessary.

転送装置230は、下り転送を実現するために、少なくとも、DMAC(Direct Memory Access Controller)233と、下り送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)235と、下り受信ディスクリプタコントローラ(受信ディスクリプタ読出部)234とを備える。 To realize downstream transfer, the transfer device 230 is equipped with at least a DMAC (Direct Memory Access Controller) 233, a downstream transmit descriptor controller (identifier receiver, transmit descriptor reader) 235, and a downstream receive descriptor controller (receive descriptor reader) 234.

DMAC233(データ読出部、データ書込部)は、第1処理装置110の第1メモリ120から第2処理装置210の第2メモリ220へのデータ転送を制御する。DMAC233は、送信ディスクリプタの記述に従って、順次転送するデータを読み出す。DMAC233は読み出したデータを、受信ディスクリプタの記述に従って、第2メモリ220に書き込む。 The DMAC 233 (data reading unit, data writing unit) controls the data transfer from the first memory 120 of the first processing unit 110 to the second memory 220 of the second processing unit 210. The DMAC 233 reads the data to be transferred sequentially according to the description in the transmit descriptor. The DMAC 233 writes the read data to the second memory 220 according to the description in the receive descriptor.

下り送信ディスクリプタコントローラ235は、転送対象データの転送に用いる送信および受信ディスクリプタテーブルを指定するタグ番号を、第1ファームウェア112から受信する。 The downstream transmit descriptor controller 235 receives a tag number from the first firmware 112 that specifies the transmit and receive descriptor tables to be used for transferring the data to be transferred.

ここで、「タグ番号」とは、タグテーブル内のディスクリプタテーブルを指定する識別子である。ディスクリプタテーブルにはディスクリプタが含まれているため、「タグ番号」とはすなわち、転送対象データの転送に用いるディスクリプタ群を指定する識別子であるといえる。すなわち、送信側のユニットにおける「タグ番号」とは、これからデータを受信する際に用いる送信ディスクリプタ群を指定する識別子である。受信側のユニットにおける「タグ番号」とは、これからデータを受信する際に用いる受信ディスクリプタ群を指定する識別子である。 Here, the "tag number" is an identifier that specifies the descriptor table within the tag table. Because the descriptor table contains descriptors, the "tag number" is essentially an identifier that specifies the group of descriptors to be used when transferring the data to be transferred. In other words, the "tag number" in the transmitting unit is an identifier that specifies the group of transmit descriptors to be used when receiving data. The "tag number" in the receiving unit is an identifier that specifies the group of receive descriptors to be used when receiving data.

なお、タグ番号の形式は特に限定されない。例えば、タグ番号とは、数値、文字列、符号等の少なくともいずれかが含まれた識別子であってよい。本実施形態では、タグ番号とは、メモリ内の特定のアドレスを指定する値であることとする。 The format of the tag number is not particularly limited. For example, the tag number may be an identifier that includes at least one of a number, a character string, a code, etc. In this embodiment, the tag number is a value that specifies a specific address in memory.

下り送信ディスクリプタコントローラ235は、第1メモリ120に記憶されている送信ディスクリプタテーブルの中から、タグ番号が指定する送信ディスクリプタテーブルを特定する。下り送信ディスクリプタコントローラ235は、特定した送信ディスクリプタテーブルを参照して、当該テーブルに格納されている(すなわち、当該テーブルで指定されている)順に、送信ディスクリプタを読み出す。この送信ディスクリプタが、第1メモリ120における転送対象データ(すなわち、第1メモリ120から読み出すデータ)が格納されているアドレスに関する送信ディスクリプタである。 The downstream transmit descriptor controller 235 identifies the transmit descriptor table specified by the tag number from among the transmit descriptor tables stored in the first memory 120. The downstream transmit descriptor controller 235 references the identified transmit descriptor table and reads out the transmit descriptors in the order stored in the table (i.e., specified in the table). This transmit descriptor is the transmit descriptor for the address in the first memory 120 where the data to be transferred (i.e., the data to be read from the first memory 120) is stored.

下り受信ディスクリプタコントローラ234は、第2メモリ220に記憶されている受信ディスクリプタテーブルの中から、タグ番号が指定する受信ディスクリプタテーブルを特定する。下り受信ディスクリプタコントローラ234は、特定した受信ディスクリプタテーブルを参照して、当該テーブルに格納されている(すなわち、当該テーブルで指定されている)順に、受信ディスクリプタを読み出す。この受信ディスクリプタが、第2メモリ220における転送対象データ(すなわち、第2メモリ220に書き込むデータ)を格納すべきアドレスに関する受信ディスクリプタである。 The downstream receive descriptor controller 234 identifies the receive descriptor table specified by the tag number from among the receive descriptor tables stored in the second memory 220. The downstream receive descriptor controller 234 references the identified receive descriptor table and reads the receive descriptors in the order stored in the table (i.e., specified in the table). This receive descriptor is the receive descriptor related to the address in the second memory 220 where the data to be transferred (i.e., the data to be written to the second memory 220) should be stored.

転送装置230は、上り転送を実現するために、さらに、上り送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)237と、上り受信ディスクリプタコントローラ(受信ディスクリプタ読出部)236とを備えてもよい。 To realize upstream transfer, the transfer device 230 may further include an upstream transmit descriptor controller (identifier receiver, transmit descriptor reader) 237 and an upstream receive descriptor controller (receive descriptor reader) 236.

上り転送を実現する場合、DMAC(データ読出部、データ書込部)233は、第2処理装置210の第2メモリ220から第1処理装置110の第1メモリ120へのデータ転送を制御する。DMAC233は、送信ディスクリプタの記述に従って、順次転送するデータを読み出す。DMAC233は読み出したデータを、受信ディスクリプタの記述に従って、第1メモリ120に書き込む。 When implementing an upstream transfer, the DMAC (data reading unit, data writing unit) 233 controls the data transfer from the second memory 220 of the second processing device 210 to the first memory 120 of the first processing device 110. The DMAC 233 reads the data to be transferred sequentially according to the description in the transmit descriptor. The DMAC 233 writes the read data to the first memory 120 according to the description in the receive descriptor.

上り送信ディスクリプタコントローラ237は、転送対象データの転送に用いる送信および受信ディスクリプタテーブルを指定するタグ番号を、第2ファームウェア212から受信する。 The upstream transmit descriptor controller 237 receives a tag number from the second firmware 212 that specifies the transmit and receive descriptor tables to be used for transferring the data to be transferred.

上り送信ディスクリプタコントローラ237は、第2メモリ220に記憶されている送信ディスクリプタテーブルの中から、タグ番号が指定する送信ディスクリプタテーブルを特定する。上り送信ディスクリプタコントローラ237は、特定した送信ディスクリプタテーブルを参照して、当該テーブルに格納されている(すなわち、当該テーブルで指定されている)順に、送信ディスクリプタを読み出す。この送信ディスクリプタが、第2メモリ220における転送対象データ(すなわち、第2メモリ220から読み出すデータ)が格納されているアドレスに関する送信ディスクリプタである。 The upstream transmit descriptor controller 237 identifies the transmit descriptor table specified by the tag number from among the transmit descriptor tables stored in the second memory 220. The upstream transmit descriptor controller 237 refers to the identified transmit descriptor table and reads out the transmit descriptors in the order stored in the table (i.e., specified in the table). This transmit descriptor is the transmit descriptor for the address in the second memory 220 where the data to be transferred (i.e., the data to be read from the second memory 220) is stored.

上り受信ディスクリプタコントローラ236は、第1メモリ120に記憶されている受信ディスクリプタテーブルの中から、タグ番号が指定する受信ディスクリプタテーブルを特定する。上り受信ディスクリプタコントローラ236は、特定した受信ディスクリプタテーブルを参照して、当該テーブルに格納されている(すなわち、当該テーブルで指定されている)順に、受信ディスクリプタを読み出す。この受信ディスクリプタが、第1メモリ120における転送対象データ(すなわち、第1メモリ120に書き込むデータ)を格納すべきアドレスに関する受信ディスクリプタである。 The upstream receive descriptor controller 236 identifies the receive descriptor table specified by the tag number from among the receive descriptor tables stored in the first memory 120. The upstream receive descriptor controller 236 references the identified receive descriptor table and reads the receive descriptors in the order stored in the table (i.e., specified in the table). This receive descriptor is the receive descriptor related to the address in the first memory 120 where the data to be transferred (i.e., the data to be written to the first memory 120) should be stored.

第1PCIeインタフェース231は、転送装置230が、PCIebusを介して、第1処理装置110とPCIeで接続するためのインタフェースである。 The first PCIe interface 231 is an interface for connecting the transfer device 230 to the first processing device 110 via PCIe through the PCIe bus.

第2PCIeインタフェース232は、転送装置230が、PCIebusを介して、第2メモリ220とPCIeで接続するためのインタフェースである。 The second PCIe interface 232 is an interface for connecting the transfer device 230 to the second memory 220 via PCIe via the PCIe bus.

§3.処理の流れ
図4は、データ転送システム500における下りデータ転送の流れを示すシーケンス図である。なお、図4に示す一連の処理の前に、初期処理として、第1処理装置110の第1ファームウェア112は第1メモリ120に、少なくとも送信タグテーブルおよび送信ディスクリプタテーブルを準備しておく。また、第2処理装置210の第2ファームウェア212は第2メモリ220に、少なくとも受信タグテーブル、および、受信ディスクリプタテーブルを準備しておく。また、第1メモリ120には、複数の転送対象データが記憶されていることとする。
§3. Processing flow Figure 4 is a sequence diagram showing the flow of downstream data transfer in the data transfer system 500. Note that, before the series of processes shown in Figure 4, the first firmware 112 of the first processing device 110 prepares at least a transmission tag table and a transmission descriptor table in the first memory 120 as an initial process. Also, the second firmware 212 of the second processing device 210 prepares at least a reception tag table and a reception descriptor table in the second memory 220. Also, it is assumed that a plurality of transfer target data are stored in the first memory 120.

各種タグテーブルおよびディスクリプタテーブルの準備が完了すると、第1処理装置110の第1ファームウェア112は、転送装置230の下り送信ディスクリプタコントローラ235に、タグ番号を送信する。下り送信ディスクリプタコントローラ235はタグ番号を受信し(S100。識別子受信ステップ)、当該タグ番号を下り受信ディスクリプタコントローラ234に出力する(S101)。下り受信ディスクリプタコントローラ234は入力されたタグ番号を受け付ける(S201)。 When preparation of the various tag tables and descriptor tables is complete, the first firmware 112 of the first processing device 110 transmits the tag number to the downstream transmission descriptor controller 235 of the transfer device 230. The downstream transmission descriptor controller 235 receives the tag number (S100, identifier reception step) and outputs the tag number to the downstream reception descriptor controller 234 (S101). The downstream reception descriptor controller 234 accepts the input tag number (S201).

S101~S201のタグ番号の通知が終了すると、下り送信ディスクリプタコントローラ235は、第1メモリ120の送信タグテーブルから、タグ番号に対応する送信ディスクリプタテーブル(送信DescT)を特定する(S102)。下り送信ディスクリプタコントローラ235は、特定した送信ディスクリプタテーブルの1番目(すなわち、先頭)に格納された送信ディスクリプタ(送信Desc)を、第1メモリ120から読み出す(S103、送信ディスクリプタ読出ステップ)。 When the tag number notification of S101 to S201 is completed, the downstream transmission descriptor controller 235 identifies the transmission descriptor table (transmission DescT) corresponding to the tag number from the transmission tag table in the first memory 120 (S102). The downstream transmission descriptor controller 235 reads the transmission descriptor (transmission Desc) stored in the first position (i.e., the beginning) of the identified transmission descriptor table from the first memory 120 (S103, transmission descriptor reading step).

一方、下り受信ディスクリプタコントローラ234は、タグ番号の受信(S201)後、第2メモリ220の受信タグテーブルから、タグ番号に対応する受信ディスクリプタテーブル(受信DescT)を特定する(S202)。下り受信ディスクリプタコントローラ234は、特定した受信ディスクリプタテーブルの1番目(すなわち、先頭)に格納された受信ディスクリプタ(受信Desc)を、第2メモリ220から読み出す(S203、受信ディスクリプタ読出ステップ)。 After receiving the tag number (S201), the downstream receive descriptor controller 234 identifies the receive descriptor table (receive DescT) corresponding to the tag number from the receive tag table in the second memory 220 (S202). The downstream receive descriptor controller 234 reads the receive descriptor (receive Desc) stored in the first position (i.e., the beginning) of the identified receive descriptor table from the second memory 220 (S203, receive descriptor reading step).

DMAC233は、下り送信ディスクリプタコントローラ235が読み出した送信ディスクリプタに記載された情報に従って、第1メモリ120からデータ(すなわち、1番目のデータ)を読み出す(S301、データ読出ステップ)。DMAC233は、読み出したデータを、下り受信ディスクリプタコントローラ234が読み出した受信ディスクリプタに記載された情報に従って、第2メモリ220に書き込む(S302、データ書込ステップ)。 The DMAC 233 reads data (i.e., the first data) from the first memory 120 according to the information described in the transmit descriptor read by the downstream transmit descriptor controller 235 (S301, data read step). The DMAC 233 writes the read data to the second memory 220 according to the information described in the receive descriptor read by the downstream receive descriptor controller 234 (S302, data write step).

1番目のデータの第2メモリ220への書き込み(S302)が終了すると、続いて、下り送信ディスクリプタコントローラ235はS102で特定した送信ディスクリプタテーブルの、次に格納された送信ディスクリプタ(すなわち、2番目の送信ディスクリプタ)を読み出す(S104、送信ディスクリプタ読出ステップ)。下り受信ディスクリプタコントローラ234も、S302の処理が終了した後、S202で特定した受信ディスクリプタテーブルの、次に格納された受信ディスクリプタ(すなわち、2番目の受信ディスクリプタ)を読み出す(S204、受信ディスクリプタ読出ステップ)。 After the writing of the first data to the second memory 220 (S302) is completed, the downstream transmit descriptor controller 235 then reads the next stored transmit descriptor (i.e., the second transmit descriptor) from the transmit descriptor table identified in S102 (S104, transmit descriptor read step). After the processing of S302 is completed, the downstream receive descriptor controller 234 also reads the next stored receive descriptor (i.e., the second receive descriptor) from the receive descriptor table identified in S202 (S204, receive descriptor read step).

DMAC233は、2番目の送信ディスクリプタおよび2番目の受信ディスクリプタに基づいて、S301~S302と同様の処理を実行する。すなわち、DMAC233は、2番目の送信ディスクリプタに記載された情報に従って2番目のデータを読み出し(S303、データ読出ステップ)、2番目の受信ディスクリプタに基づいて、2番目のデータを第2メモリ220に書き込む(S304、データ書込ステップ)。 The DMAC 233 executes the same process as S301 to S302 based on the second transmit descriptor and the second receive descriptor. That is, the DMAC 233 reads the second data according to the information written in the second transmit descriptor (S303, data read step), and writes the second data to the second memory 220 based on the second receive descriptor (S304, data write step).

以降、転送対象データが全て転送終了するまで、下り送信ディスクリプタコントローラ235、下り受信ディスクリプタコントローラ234、およびDMAC233は同様の処理を繰り返す。すなわち、下り送信ディスクリプタコントローラ235はS102で特定した送信ディスクリプタテーブルの、次に格納された送信ディスクリプタ(m番目の送信ディスクリプタ)を読み出す(S105、送信ディスクリプタ読出ステップ)。下り受信ディスクリプタコントローラ234は、S202で特定した受信ディスクリプタテーブルの、次に格納された受信ディスクリプタ(すなわち、m番目の受信ディスクリプタ)を読み出す(S205、受信ディスクリプタ読出ステップ)。 The downstream transmit descriptor controller 235, downstream receive descriptor controller 234, and DMAC 233 repeat the same process until all data to be transferred has been transferred. That is, the downstream transmit descriptor controller 235 reads the next stored transmit descriptor (the m-th transmit descriptor) from the transmit descriptor table identified in S102 (S105, transmit descriptor read step). The downstream receive descriptor controller 234 reads the next stored receive descriptor (i.e., the m-th receive descriptor) from the receive descriptor table identified in S202 (S205, receive descriptor read step).

DMAC233は、m番目の送信ディスクリプタおよびm番目の受信ディスクリプタに基づいて、S301~S302と同様の処理を実行する。すなわち、DMAC233は、m番目の送信ディスクリプタに記載された情報に従ってm番目のデータを読み出し(S305、データ読出ステップ)、m番目の受信ディスクリプタに基づいて、m番目のデータを第2メモリ220に書き込む(S306、データ書込ステップ)。 The DMAC 233 executes the same processing as S301 to S302 based on the m-th transmit descriptor and the m-th receive descriptor. That is, the DMAC 233 reads the m-th data according to the information written in the m-th transmit descriptor (S305, data read step), and writes the m-th data to the second memory 220 based on the m-th receive descriptor (S306, data write step).

図4に示す処理によれば、転送装置230は、それぞれ異なる装置に搭載されている第1メモリ120と第2メモリ220の間でのデータ転送において、第1処理装置110から第1メモリ120へのアクセス頻度を低減することができる。また、図4に示す処理によれば、転送装置230は、それぞれ異なる装置に搭載されている第1メモリ120と第2メモリ220の間でのデータ転送において、第2処理装置210から第2メモリ220へのアクセス頻度を低減することができる。すなわち、転送装置230は、DMA方式以外の方法によるメモリへのアクセス頻度を低減することができる。 According to the process shown in FIG. 4, the transfer device 230 can reduce the frequency of access from the first processing device 110 to the first memory 120 in data transfer between the first memory 120 and the second memory 220 mounted on different devices. Also, according to the process shown in FIG. 4, the transfer device 230 can reduce the frequency of access from the second processing device 210 to the second memory 220 in data transfer between the first memory 120 and the second memory 220 mounted on different devices. In other words, the transfer device 230 can reduce the frequency of access to the memory by a method other than the DMA method.

図4に示す処理によれば、転送装置230は、送信ディスクリプタを送信ディスクリプタテーブルが指定する順番で読み出す。そして、転送装置230は、それらの送信ディスクリプタの記述にしたがって、転送対象データを第1メモリ120から順次読み出すことができる。したがって、転送装置230は、第1処理装置110からタグ番号を受信するだけで、複数の転送対象データの読み出しを行うことができる。換言すると、第1処理装置110は、最初にタグ番号を転送装置230に送信した後は、第1メモリ120にアクセスしなくてもよい。したがって、図4に示す処理によれば、第1処理装置110が第1メモリ120にアクセスする頻度を低減することができる。 According to the process shown in FIG. 4, the transfer device 230 reads out the transmission descriptors in the order specified by the transmission descriptor table. The transfer device 230 can then sequentially read out the data to be transferred from the first memory 120 according to the descriptions in those transmission descriptors. Therefore, the transfer device 230 can read out multiple pieces of data to be transferred simply by receiving a tag number from the first processing device 110. In other words, after the first processing device 110 transmits the tag number to the transfer device 230 for the first time, the first processing device 110 does not need to access the first memory 120. Therefore, according to the process shown in FIG. 4, the frequency with which the first processing device 110 accesses the first memory 120 can be reduced.

また、転送装置230は、例えば、複数の転送対象データが第1メモリ120の中で連続しないアドレスに格納されていた場合でも、それらの転送対象データを別個に読み出すことができる。そのため、第1処理装置110は、予め複数の転送対象データを1つのパケット等にまとめておく必要がない。すなわち、第1処理装置110は、パケットおよび/またはタグ生成のために、第1メモリ120にアクセスしてデータのコピー等を行う必要が無い。したがって、図4に示す処理によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、第1処理装置110が第1メモリ120にアクセスする頻度を低減することができる。 In addition, the transfer device 230 can read out the multiple data to be transferred separately, even if the multiple data to be transferred are stored in non-consecutive addresses in the first memory 120. Therefore, the first processing device 110 does not need to consolidate the multiple data to be transferred into one packet or the like in advance. In other words, the first processing device 110 does not need to access the first memory 120 to copy data, etc., in order to generate packets and/or tags. Therefore, according to the process shown in FIG. 4, the frequency with which the first processing device 110 accesses the first memory 120 can be reduced compared to the case in which multiple data to be transferred are consolidated into packets and/or tags, etc. and transferred.

図4に示す処理によれば、転送装置230は、受信ディスクリプタを受信ディスクリプタテーブルが指定する順番で読み出す。そして、転送装置230は、それらの受信ディスクリプタの記述にしたがって、転送対象データを第2メモリ220に順次書き込むことができる。これにより、第2処理装置210は第2メモリ220にアクセスせずとも、転送対象データの書き込みが可能になる。したがって、図4に示す処理によれば、第2処理装置210が第2メモリ220にアクセスする頻度を低減することができる。 According to the process shown in FIG. 4, the transfer device 230 reads the receive descriptors in the order specified by the receive descriptor table. The transfer device 230 can then write the data to be transferred to the second memory 220 sequentially according to the descriptions in those receive descriptors. This allows the second processing device 210 to write the data to be transferred without accessing the second memory 220. Therefore, according to the process shown in FIG. 4, the frequency with which the second processing device 210 accesses the second memory 220 can be reduced.

また、転送装置230は、複数の転送対象データを別個に書き込んでいく。そのため、例えば、具体的には、第2処理装置210が、複数の転送対象データをまとめたパケットおよび/またはタグを解凍して、各転送対象データを適切な領域にコピーし直す必要が無い。したがって、図4に示す処理によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、第2処理装置210が第2メモリ220にアクセスする頻度を低減することができる。 The transfer device 230 also writes multiple pieces of data to be transferred separately. Therefore, for example, specifically, the second processing device 210 does not need to decompress the packets and/or tags that consolidate multiple pieces of data to be transferred and recopy each piece of data to an appropriate area. Therefore, according to the process shown in FIG. 4, the frequency with which the second processing device 210 accesses the second memory 220 can be reduced compared to the case in which multiple pieces of data to be transferred are transferred together in packets and/or tags, etc.

なお、データ転送システム500における上りデータ転送の流れは、各種処理の主体以外は下りデータ転送の場合と同様である。具体的には、上りデータ転送の場合、送信側の制御装置およびメモリが第2処理装置210および第2メモリ220に、受信側の制御装置が第1処理装置110および第1メモリ120に変わる。また、上りデータ転送の場合、下り送信ディスクリプタコントローラ235と、下り受信ディスクリプタコントローラ234が行っている処理をそれぞれ、上り送信ディスクリプタコントローラ237と、上り受信ディスクリプタコントローラ236とが実行すればよい。また、DMAC233は、第2メモリ220から読み出したデータを、第1メモリ120に書き込めばよい。 The flow of upstream data transfer in the data transfer system 500 is the same as that of downstream data transfer, except for the subject of various processes. Specifically, in the case of upstream data transfer, the control device and memory on the transmitting side change to the second processing device 210 and the second memory 220, and the control device on the receiving side changes to the first processing device 110 and the first memory 120. In addition, in the case of upstream data transfer, the processes performed by the downstream transmission descriptor controller 235 and the downstream reception descriptor controller 234 can be executed by the upstream transmission descriptor controller 237 and the upstream reception descriptor controller 236, respectively. In addition, the DMAC 233 can write the data read from the second memory 220 to the first memory 120.

〔実施形態2〕
本発明において、送信側メモリと前記受信側メモリは同一であってもよい。すなわち、本発明に係るデータ転送システムは、独立した2装置間のデータ転送だけでなく、ある1つの装置の、ある1つのメモリ内でのデータ転送(すなわち、ある1つのメモリ内でのデータの読み書き)に適用してもよい。
[Embodiment 2]
In the present invention, the sending memory and the receiving memory may be the same. In other words, the data transfer system according to the present invention may be applied not only to data transfer between two independent devices, but also to data transfer within a certain memory of a certain device (i.e., reading and writing data within a certain memory).

以下、本発明の第2の実施形態について説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。また、本実施形態では一例として、第3ユニット300の装置内でのデータ転送を行う場合について説明する。 The second embodiment of the present invention will be described below. For ease of explanation, the same reference numerals are used for components having the same functions as those described in the previous embodiment, and their explanation will not be repeated. In this embodiment, as an example, data transfer within the device of the third unit 300 will be described.

図5は、本実施形態に係るデータ転送システム600の要部構成の一例を示すブロック図である。データ転送システム600に係る第3ユニット300は、第1処理装置(送信側制御部)110と、第1メモリ120と、転送装置(メモリ制御装置)330とを含む。 Figure 5 is a block diagram showing an example of the main configuration of a data transfer system 600 according to this embodiment. The third unit 300 of the data transfer system 600 includes a first processing device (transmission side control unit) 110, a first memory 120, and a transfer device (memory control device) 330.

転送装置330は、DMAC(データ読出部、データ書込部)331と、受信ディスクリプタコントローラ(受信ディスクリプタ読出部)332と、送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)333と、PCIeインタフェース334と、を備える。送信ディスクリプタコントローラ333は下り送信ディスクリプタコントローラ235および上り送信ディスクリプタコントローラ237と同様の処理を実行する。受信ディスクリプタコントローラ332は下り受信ディスクリプタコントローラ234および上り受信ディスクリプタコントローラ236と同様の処理を実行する。 The transfer device 330 includes a DMAC (data reading unit, data writing unit) 331, a receive descriptor controller (receive descriptor reading unit) 332, a transmit descriptor controller (identifier receiving unit, transmit descriptor reading unit) 333, and a PCIe interface 334. The transmit descriptor controller 333 performs the same processing as the downstream transmit descriptor controller 235 and the upstream transmit descriptor controller 237. The receive descriptor controller 332 performs the same processing as the downstream receive descriptor controller 234 and the upstream receive descriptor controller 236.

データ転送システム600における上りおよび下りデータ転送の基本的な流れは、実施形態1に係るデータ転送システム500における上りおよび下りデータ転送の流れと同様である。具体的には、本実施形態の場合、送信側メモリも受信側メモリも第1メモリ120である。すなわち、図4に示した処理において第2メモリ220の情報が読み書きされていたところは、第1メモリ120に対し同様の情報を読み書きすればよい。また、本実施形態の場合、第1処理装置110の第1ファームウェア112は、転送対象データの転送に用いる送信ディスクリプタテーブルおよび受信ディスクリプタテーブルを指定するタグ番号を決定して、下り送信ディスクリプタコントローラ333に送信する。 The basic flow of upstream and downstream data transfer in the data transfer system 600 is the same as the flow of upstream and downstream data transfer in the data transfer system 500 according to the first embodiment. Specifically, in this embodiment, both the sending memory and the receiving memory are the first memory 120. That is, where information was read and written to the second memory 220 in the process shown in FIG. 4, similar information can be read and written to the first memory 120. Also, in this embodiment, the first firmware 112 of the first processing device 110 determines a tag number that specifies the sending descriptor table and the receiving descriptor table used to transfer the data to be transferred, and transmits it to the downstream sending descriptor controller 333.

また、図4において下り送信ディスクリプタコントローラ235が実行していた処理は、送信ディスクリプタコントローラ333が実行する。また、図4において下り受信ディスクリプタコントローラ234が実行していた処理は、受信ディスクリプタコントローラ332が実行する。また、図4においてDMAC233が実行していた処理は、DMAC331が実行する。 The process performed by the downstream transmit descriptor controller 235 in FIG. 4 is now performed by the transmit descriptor controller 333. The process performed by the downstream receive descriptor controller 234 in FIG. 4 is now performed by the receive descriptor controller 332. The process performed by the DMAC 233 in FIG. 4 is now performed by the DMAC 331.

以上の構成によれば、DMA方式でデータ転送を行う場合に、第1処理装置110が第1メモリ120にアクセスする頻度を低減することができる。 With the above configuration, when data is transferred using the DMA method, the frequency with which the first processing device 110 accesses the first memory 120 can be reduced.

〔変形例〕
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
[Modifications]
Although the embodiment of the present invention has been described in detail above, the above description is merely an example of the present invention in every respect. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention. For example, the following modifications are possible. In the following, the same reference numerals are used for the same components as in the above embodiment, and the description of the same points as in the above embodiment is omitted as appropriate. The following modifications can be combined as appropriate.

実施形態1に係るデータ転送システム500は、1台の第1ユニット100と、複数台の第2ユニット200を備えていてもよい。なお、この場合、転送装置230は第1ユニット100に1台備えられていてもよいし、複数台の第2ユニット200それぞれに備えられていてもよい。これにより、複数の第2ユニット200は、それぞれ、転送装置230を介して第1ユニット100とデータの送受信を行うことができる。 The data transfer system 500 according to the first embodiment may include one first unit 100 and multiple second units 200. In this case, the first unit 100 may include one transfer device 230, or each of the multiple second units 200 may include one transfer device 230. This allows each of the multiple second units 200 to transmit and receive data to and from the first unit 100 via the transfer device 230.

〔ソフトウェアによる実現例〕
第1処理装置110、第2処理装置210、転送装置230、および転送装置330の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
[Software implementation example]
The control blocks of the first processing device 110, the second processing device 210, the transfer device 230, and the transfer device 330 may be realized by a logic circuit (hardware) formed in an integrated circuit (IC chip) or the like, or may be realized by software.

後者の場合、第1処理装置110、第2処理装置210、転送装置230、および転送装置330は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。 In the latter case, the first processing device 110, the second processing device 210, the transfer device 230, and the transfer device 330 are provided with a computer that executes instructions of a program, which is software that realizes each function. This computer is provided with, for example, one or more processors, and a computer-readable recording medium that stores the above program. In the computer, the processor reads the above program from the recording medium and executes it, thereby achieving the object of the present invention. The processor can be, for example, a CPU (Central Processing Unit). The recording medium can be a "non-transient tangible medium", such as a ROM (Read Only Memory), as well as a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, etc. In addition, a RAM (Random Access Memory) that expands the above program may also be provided. The above program may be supplied to the computer via any transmission medium (such as a communication network or a broadcast wave) that can transmit the program. Note that one aspect of the present invention can also be realized in the form of a data signal embedded in a carrier wave, in which the above program is embodied by electronic transmission.

本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。 The present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims. The technical scope of the present invention also includes embodiments obtained by appropriately combining the technical means disclosed in different embodiments.

100 第1ユニット(第1デバイス、第2デバイス)
110 第1処理装置(送信側制御部)
111 第1制御部
112 第1ファームウェア
113、213、231、232、334 インタフェース
120 第1メモリ(送信側メモリ、受信側メモリ)
200 第2ユニット(第1デバイス、第2デバイス)
210 第2処理装置(送信側制御部)
211 第2制御部
212 第2ファームウェア
220 第2メモリ(送信側メモリ、受信側メモリ)
230、330 転送装置(メモリ制御装置)
233、331 DMAC(データ読出部、データ書込部)
234 下り受信ディスクリプタコントローラ
235 下り送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)
236 上り受信ディスクリプタコントローラ(受信ディスクリプタ読出部)
237 上り送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)
332 受信ディスクリプタコントローラ(受信ディスクリプタ読出部)
333 送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)
300 第3ユニット
500、600 データ転送システム
100 First unit (first device, second device)
110 First processing device (transmission side control unit)
111 First control unit 112 First firmware 113, 213, 231, 232, 334 Interface 120 First memory (transmitting side memory, receiving side memory)
200 Second unit (first device, second device)
210 Second processing device (transmission side control unit)
211: Second control unit 212: Second firmware 220: Second memory (sending side memory, receiving side memory)
230, 330 Transfer device (memory control device)
233, 331 DMAC (data read unit, data write unit)
234 Downstream receive descriptor controller 235 Downstream transmit descriptor controller (identifier receiver, transmit descriptor reader)
236 Upstream receive descriptor controller (receive descriptor reader)
237 Upstream transmission descriptor controller (identifier receiver, transmission descriptor reader)
332 Reception Descriptor Controller (Reception Descriptor Reader)
333 Transmission Descriptor Controller (Identifier Receiving Unit, Transmission Descriptor Reading Unit)
300 Third unit 500, 600 Data transfer system

Claims (7)

送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置であって、
前記送信側メモリには、少なくとも、前記複数の転送対象データと、複数の送信ディスクリプタを含んだ送信ディスクリプタテーブルとが記憶されており、
送信側制御部から、複数の前記送信ディスクリプタテーブルのうちの1つを指定する識別子を受信する識別子受信部と、
前記識別子が指定する前記送信ディスクリプタテーブルから、当該送信ディスクリプタテーブルによって指定される順番で、当該送信ディスクリプタテーブルに含まれている複数の送信ディスクリプタを読み出す送信ディスクリプタ読出部と、
前記送信側メモリから順次読み出す前記複数の送信ディスクリプタの記述に従って、前記送信側メモリから前記複数の転送対象データを順次読み出すデータ読出部と、を備えることを特徴とする、メモリ制御装置。
A memory control device that accesses a transmitting side memory and a receiving side memory by a DMA (Direct Memory Access) method and transfers a plurality of transfer target data from the transmitting side memory to the receiving side memory,
the transmitting side memory stores at least the plurality of transfer target data and a transmission descriptor table including a plurality of transmission descriptors;
an identifier receiving unit that receives an identifier designating one of the plurality of transmission descriptor tables from a transmission side control unit;
a transmission descriptor reading unit that reads out a plurality of transmission descriptors included in the transmission descriptor table specified by the identifier in an order specified by the transmission descriptor table;
a data reading unit that sequentially reads the plurality of transfer target data from the transmission side memory in accordance with descriptions of the plurality of transmission descriptors that are sequentially read from the transmission side memory.
送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置であって、
前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、
送信側制御部から、前記受信ディスクリプタテーブルを指定する識別子を受信する識別子受信部と、
送信側制御部が決定した前記識別子に応じた前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出部と、
前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込部と、を備えることを特徴とする、メモリ制御装置。
A memory control device that accesses a transmitting side memory and a receiving side memory by a DMA (Direct Memory Access) method and transfers a plurality of transfer target data from the transmitting side memory to the receiving side memory,
the receiving side memory stores at least a receiving descriptor table including a plurality of receiving descriptors;
an identifier receiving unit that receives an identifier designating the reception descriptor table from a transmission side control unit;
a reception descriptor reading unit that reads out a plurality of reception descriptors included in the reception descriptor table corresponding to the identifier determined by the transmission side control unit in an order specified by the reception descriptor table;
a data writing unit that sequentially writes the multiple transfer target data read from the transmitting side memory to the receiving side memory in accordance with the descriptions of the multiple receiving descriptors that are sequentially read from the receiving side memory.
前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、
前記識別子は、前記送信ディスクリプタテーブルと、当該送信ディスクリプタテーブルに対応する前記受信ディスクリプタテーブルとを指定する識別子であって、
前記識別子が指定する前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出部と、
前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込部と、を備えることを特徴とする、請求項1に記載のメモリ制御装置。
the receiving side memory stores at least a receiving descriptor table including a plurality of receiving descriptors;
the identifier is an identifier for specifying the transmission descriptor table and the reception descriptor table corresponding to the transmission descriptor table,
a reception descriptor reading unit that reads, from the reception descriptor table designated by the identifier, a plurality of reception descriptors included in the reception descriptor table in an order designated by the reception descriptor table;
2. The memory control device according to claim 1, further comprising: a data writing unit that sequentially writes the plurality of transfer target data read from the transmitting side memory to the receiving side memory in accordance with descriptions of the plurality of receiving descriptors that are sequentially read from the receiving side memory.
前記送信側メモリは第1デバイスに設けられており、
前記受信側メモリは、前記第1デバイスと異なるデバイスであって、前記第1デバイスとDMA方式で通信する第2デバイスに設けられていることを特徴とする、請求項3に記載のメモリ制御装置。
the sending memory is provided in a first device;
4. The memory control device according to claim 3, wherein the receiving memory is provided in a second device which is a device different from the first device and which communicates with the first device by a DMA method.
前記送信側メモリと前記受信側メモリは同一であることを特徴とする、請求項3に記載のメモリ制御装置。 The memory control device according to claim 3, characterized in that the sending memory and the receiving memory are the same. 送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置の制御方法であって、
前記送信側メモリには、少なくとも、前記複数の転送対象データと、複数の送信ディスクリプタを含んだ送信ディスクリプタテーブルとが記憶されており、
送信側制御部から、複数の前記送信ディスクリプタテーブルのうちの1つを指定する識別子を受信する識別子受信ステップと、
前記識別子が指定する前記送信ディスクリプタテーブルから、当該送信ディスクリプタテーブルによって指定される順番で、当該送信ディスクリプタテーブルに含まれている複数の送信ディスクリプタを読み出す送信ディスクリプタ読出ステップと、
前記送信側メモリから順次読み出す前記複数の送信ディスクリプタの記述に従って、前記送信側メモリから前記複数の転送対象データを順次読み出すデータ読出ステップと、を含むことを特徴とする、制御方法。
1. A control method for a memory control device that accesses a transmitting memory and a receiving memory by a DMA (Direct Memory Access) method to transfer a plurality of transfer target data from the transmitting memory to the receiving memory, comprising the steps of:
the transmitting side memory stores at least the plurality of transfer target data and a transmission descriptor table including a plurality of transmission descriptors;
an identifier receiving step of receiving an identifier designating one of the plurality of transmission descriptor tables from a transmission side control unit;
a transmission descriptor reading step of reading, from the transmission descriptor table designated by the identifier, a plurality of transmission descriptors included in the transmission descriptor table in an order designated by the transmission descriptor table;
a data reading step of sequentially reading the plurality of transfer target data from the transmitting side memory in accordance with descriptions of the plurality of transmission descriptors sequentially read from the transmitting side memory.
送信側メモリおよび受信側メモリにDMA(Direct Memory Access)方式でアクセスして、複数の転送対象データを前記送信側メモリから前記受信側メモリへと転送するメモリ制御装置の制御方法であって、
前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、
送信側制御部から、前記受信ディスクリプタテーブルを指定する識別子を受信する識別子受信ステップと、
送信側制御部が決定した前記識別子に応じた前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出ステップと、
前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込ステップと、を含むことを特徴とする、制御方法。
1. A control method for a memory control device that accesses a transmitting memory and a receiving memory by a DMA (Direct Memory Access) method to transfer a plurality of transfer target data from the transmitting memory to the receiving memory, comprising the steps of:
the receiving side memory stores at least a receiving descriptor table including a plurality of receiving descriptors;
an identifier receiving step of receiving an identifier designating the reception descriptor table from a transmission side control unit;
a reception descriptor reading step of reading, from the reception descriptor table corresponding to the identifier determined by a transmission side control unit, a plurality of reception descriptors included in the reception descriptor table in an order specified by the reception descriptor table;
a data writing step of sequentially writing the multiple transfer target data read from the transmitting side memory to the receiving side memory in accordance with the descriptions of the multiple receiving descriptors sequentially read from the receiving side memory.
JP2020169750A 2020-10-07 2020-10-07 MEMORY CONTROL DEVICE AND METHOD Active JP7615598B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020169750A JP7615598B2 (en) 2020-10-07 2020-10-07 MEMORY CONTROL DEVICE AND METHOD
PCT/JP2021/008885 WO2022074858A1 (en) 2020-10-07 2021-03-08 Memory control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020169750A JP7615598B2 (en) 2020-10-07 2020-10-07 MEMORY CONTROL DEVICE AND METHOD

Publications (2)

Publication Number Publication Date
JP2022061674A JP2022061674A (en) 2022-04-19
JP7615598B2 true JP7615598B2 (en) 2025-01-17

Family

ID=81125806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020169750A Active JP7615598B2 (en) 2020-10-07 2020-10-07 MEMORY CONTROL DEVICE AND METHOD

Country Status (2)

Country Link
JP (1) JP7615598B2 (en)
WO (1) WO2022074858A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140286A (en) 2000-10-31 2002-05-17 Ricoh Co Ltd Information processing device and dma transfer method
JP2005222469A (en) 2004-02-09 2005-08-18 Kyocera Mita Corp Dma transfer control system
JP2006293800A (en) 2005-04-13 2006-10-26 Sony Corp Information processing device and information processing method
JP2010157129A (en) 2008-12-27 2010-07-15 Toshiba Information Systems (Japan) Corp Semiconductor memory device
JP2018129614A (en) 2017-02-07 2018-08-16 オムロン株式会社 Control device and communication device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140286A (en) 2000-10-31 2002-05-17 Ricoh Co Ltd Information processing device and dma transfer method
JP2005222469A (en) 2004-02-09 2005-08-18 Kyocera Mita Corp Dma transfer control system
JP2006293800A (en) 2005-04-13 2006-10-26 Sony Corp Information processing device and information processing method
JP2010157129A (en) 2008-12-27 2010-07-15 Toshiba Information Systems (Japan) Corp Semiconductor memory device
JP2018129614A (en) 2017-02-07 2018-08-16 オムロン株式会社 Control device and communication device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
lnterface増刊 SH-1&SH-2マイコン入門,日本,CQ出版株式会社,2004年09月01日,pp. 222-237
岩田 利王 他,FPGAパソコンZYBOで作るLinux I/Oミニコンピュータ,第2版,日本,CQ出版株式会社,2016年06月01日,pp. 110-112,ISBN978-4-7898-4809-1

Also Published As

Publication number Publication date
JP2022061674A (en) 2022-04-19
WO2022074858A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
US7430652B2 (en) Devices for performing multiple independent hardware acceleration operations and methods for performing same
CN109902053B (en) SPI communication method based on double controllers, terminal equipment and storage medium
EP2263155B1 (en) Direct data transfer between slave devices
CN104360967A (en) Memory system, host controller, and control method of DMA
JPH0561951A (en) Image processor
JP2008269346A (en) Data transfer system
CN100565486C (en) Data transmission device and data transmission system
JP2018190277A (en) Memory access control device and control method thereof
US10437650B2 (en) Controlling execution of tasks in a series of operational processing by identifying processing units based on task command, task setting information, state of operational processing
CN119226205A (en) A method and device for data processing
JP7615598B2 (en) MEMORY CONTROL DEVICE AND METHOD
JP6290761B2 (en) Data transfer control system, data transfer control method, and data transfer control program
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
US10372655B1 (en) Memory-mapped state bus for integrated circuit
JP2007034392A (en) Information processor and data processing method
JP3412342B2 (en) Image drawing apparatus and data decompression method
JP7363344B2 (en) Memory control device and control method
CN111382088B (en) Semiconductor device and method for controlling data access
CN109324994A (en) A chip interconnection method and system
JP4170330B2 (en) Information processing device
WO2007004374A1 (en) Information processing method and information processing device
CN118363901B (en) PCIe device, electronic component and electronic device
JP3487641B2 (en) A storage access method for parallel computer systems.
KR102536943B1 (en) Data Reduction Device, Data Reduction Method And System Including Data Reduction Device
TWI819428B (en) Processor apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20241203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241216

R150 Certificate of patent or registration of utility model

Ref document number: 7615598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150