JP7615598B2 - MEMORY CONTROL DEVICE AND METHOD - Google Patents
MEMORY CONTROL DEVICE AND METHOD Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 286
- 238000000034 method Methods 0.000 title claims description 67
- 238000012546 transfer Methods 0.000 claims description 155
- 230000005540 biological transmission Effects 0.000 claims description 94
- 238000012545 processing Methods 0.000 description 97
- 230000008569 process Effects 0.000 description 30
- 238000011144 upstream manufacturing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000003936 working memory Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information 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).
ところが、複数の転送対象データをパケット等にまとめて転送する場合、送信側ユニットを統括する制御部(例えば、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.適用例
本実施形態では一例として、第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
なお、以降の説明では、第1処理装置110から第2処理装置210へデータを転送することを、「下り転送」と称することもある。また、第2処理装置210から第1処理装置110へデータを転送することを、「上り転送」と称することもある。
In the following description, the transfer of data from the
図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
(第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
(第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
転送装置230は、第1処理装置110と第2処理装置210との間で、DMA方式によるデータ転送を実現するための装置である。転送装置230は、例えば、FPGA(Field-Programmable gate array)で実現できる。なお、本実施形態では、転送装置230は第2ユニット200に設けられているが、データ転送システム500において、転送装置230は第1ユニット100に設けられていてもよい。
The
いずれの場合においても、第1処理装置110と転送装置230、ならびに、第2処理装置210と転送装置230はそれぞれ、PCIe(Peripheral Component Interconnect Express)の規格に準拠したbusで接続されている。これにより、第1処理装置110と第2処理装置210は、転送装置230を介してPCIeで通信することができる。
In either case, the
(データの転送)
詳細は後述するが、データ転送システム500では、送信側ユニットが受信側ユニットに、とある識別子を送信する。識別子は、送信側ユニットで使用する送信ディスクリプタテーブルを指定するための情報であり、受信側ユニットで使用する受信ディスクリプタテーブルを指定するための情報でもある。
(Transfer of Data)
Although details will be described later, in the
送信ディスクリプタテーブルには、複数の送信ディスクリプタが含まれている。受信ディスクリプタテーブルには、複数の受信ディスクリプタが含まれている。そのため、前述の識別子は、複数の転送対象データを転送する際に使用する送信ディスクリプタ群と受信ディスクリプタ群を指定しているともいえる。 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
図4に示す処理によれば、データ転送システム500では、送信側ユニットは識別子を決定して、当該識別子を転送装置230に送信するだけでよい。そのため、転送対象データが複数ある場合も、転送対象データのタグ化、および/またはパケット化を行う必要が無い。さらに言えば、転送対象データをタグ化、および/またはパケット化するための、メモリ上でのデータの並び替えも不要である。したがって、データ転送システム500によれば、送信側ユニットの制御部によるメモリのアクセス頻度を低減することができる。
According to the process shown in FIG. 4, in the
また、データ転送システム500では、受信側ユニットは、パケットまたはタグではなく、転送対象データをそのまま受信する。そのため、パケットまたはタグを一旦メモリに書き込んでから解凍するという処理が発生しない。また、解凍した転送対象データをそれぞれ、メモリ上の適切な領域に再移動させる必要もない。したがって、データ転送システム500によれば、受信側ユニットの制御部によるメモリのアクセス頻度を低減することができる。
In addition, in the
§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
(第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
第1制御部111は、第1ユニット100に接続される機器(例えば、産業用機器)を制御するものである。また、第1制御部111は、接続された機器と定周期で通信し、各種機器から、下流の工程で処理されるデータを取得してもよい。また例えば、第1制御部111が取得したデータは、第2ユニット200に転送されたのち、第2ユニット200によって処理されてもよい。
The
第1ファームウェア112は、第1ユニット100と第2ユニット200とのデータの転送に係る各種処理を実行する。例えば、第1ファームウェア112は、下りデータ転送時のタグ番号を決定し、転送装置230に通知する。なお、タグ番号については後で詳述する。また、第1ファームウェア112は、第1ユニット100と第2ユニット200とのデータ転送の開始前に、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを作成またはダウンロードする処理と、当該作成またはダウンロードしたタグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを第1メモリ120に書き込む処理も行う。すなわち、第1ファームウェア112は、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを準備して、第1メモリ120に記憶させておく。
The
第1PCIeインタフェース113は、第1処理装置110が、PCIebusを介して、転送装置230とPCIeで接続するためのインタフェースである。
The
(第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
第1メモリ120には、送信タグテーブル、送信ディスクリプタテーブル、受信タグテーブル、受信ディスクリプタテーブル、および、転送対象のデータ(図1では、データ1~m)が記憶されている。
The
第1メモリ120の送信ディスクリプタは、転送装置230のDMAC233(後述)が下り転送を実現するための動作の一部を規定するディスクリプタである。これにより、第1処理装置110の第1ファームウェア112が、第2処理装置210の第2ファームウェア212へデータを送信することが可能となる。
The transmit descriptor of the
第1メモリ120の受信ディスクリプタは、DMAC233が上り転送を実現するための動作の一部を規定する。これにより、第1処理装置110の第1ファームウェア112が、第2処理装置210の第2ファームウェア212から送信されたデータを受信することが可能となる。
The receive descriptor of the
(タグテーブルとディスクリプタテーブル)
図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
(第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
第2制御部211は、第2ユニット200自体が担う各種機能に係る処理を実行する。例えば、第2制御部211は、第1ユニット100から取得したデータを集計してもよい。
The
第2ファームウェア212は、第2ユニット200と第1ユニット100とのデータの転送に係る各種処理を実行する。例えば、第2ファームウェア212は、上りデータ転送時のタグ番号を決定し、転送装置230に通知する。また、第2ファームウェア212は、第2ユニット200と第1ユニット100とのデータ転送の開始前に、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを作成またはダウンロードする処理と、当該作成またはダウンロードした、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを第2メモリ220に書き込む処理も行う。すなわち、第2ファームウェア212は、予め、タグテーブル、送信ディスクリプタテーブル、および受信ディスクリプタテーブルを準備して、第2メモリ220に記憶させておく。
The
第2PCIeインタフェース213は、第2処理装置210が、PCIebusを介して、転送装置230とPCIeで接続するためのインタフェースである。
The
(第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
第2メモリ220は、第1メモリ120と同様に、送信タグテーブル、送信ディスクリプタテーブル、受信タグテーブル、受信ディスクリプタテーブル、および、転送対象のデータを記憶している。タグテーブルおよびディスクリプタテーブルのデータ構造は、第1メモリ120で説明した同名のデータと同様である。
The
第2メモリ220の送信ディスクリプタは、転送装置230のDMAC233が上り転送を実現するための動作の一部を規定するディスクリプタである。これにより、第2処理装置210の第2ファームウェア212が、第1処理装置110の第1ファームウェア112へデータを送信することが可能となる。
The transmission descriptor of the
第2メモリ220の受信ディスクリプタは、DMAC233が下り転送を実現するための動作の一部を規定する。これにより、第2メモリ220の第2ファームウェア212が、第1処理装置110の第1ファームウェア112から送信されたデータを受信することが可能となる。
The receive descriptor of the
(転送装置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
転送装置230は、下り転送を実現するために、少なくとも、DMAC(Direct Memory Access Controller)233と、下り送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)235と、下り受信ディスクリプタコントローラ(受信ディスクリプタ読出部)234とを備える。
To realize downstream transfer, the
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
下り送信ディスクリプタコントローラ235は、転送対象データの転送に用いる送信および受信ディスクリプタテーブルを指定するタグ番号を、第1ファームウェア112から受信する。
The downstream transmit
ここで、「タグ番号」とは、タグテーブル内のディスクリプタテーブルを指定する識別子である。ディスクリプタテーブルにはディスクリプタが含まれているため、「タグ番号」とはすなわち、転送対象データの転送に用いるディスクリプタ群を指定する識別子であるといえる。すなわち、送信側のユニットにおける「タグ番号」とは、これからデータを受信する際に用いる送信ディスクリプタ群を指定する識別子である。受信側のユニットにおける「タグ番号」とは、これからデータを受信する際に用いる受信ディスクリプタ群を指定する識別子である。 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
下り受信ディスクリプタコントローラ234は、第2メモリ220に記憶されている受信ディスクリプタテーブルの中から、タグ番号が指定する受信ディスクリプタテーブルを特定する。下り受信ディスクリプタコントローラ234は、特定した受信ディスクリプタテーブルを参照して、当該テーブルに格納されている(すなわち、当該テーブルで指定されている)順に、受信ディスクリプタを読み出す。この受信ディスクリプタが、第2メモリ220における転送対象データ(すなわち、第2メモリ220に書き込むデータ)を格納すべきアドレスに関する受信ディスクリプタである。
The downstream receive
転送装置230は、上り転送を実現するために、さらに、上り送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)237と、上り受信ディスクリプタコントローラ(受信ディスクリプタ読出部)236とを備えてもよい。
To realize upstream transfer, the
上り転送を実現する場合、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
上り送信ディスクリプタコントローラ237は、転送対象データの転送に用いる送信および受信ディスクリプタテーブルを指定するタグ番号を、第2ファームウェア212から受信する。
The upstream transmit descriptor controller 237 receives a tag number from the
上り送信ディスクリプタコントローラ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
上り受信ディスクリプタコントローラ236は、第1メモリ120に記憶されている受信ディスクリプタテーブルの中から、タグ番号が指定する受信ディスクリプタテーブルを特定する。上り受信ディスクリプタコントローラ236は、特定した受信ディスクリプタテーブルを参照して、当該テーブルに格納されている(すなわち、当該テーブルで指定されている)順に、受信ディスクリプタを読み出す。この受信ディスクリプタが、第1メモリ120における転送対象データ(すなわち、第1メモリ120に書き込むデータ)を格納すべきアドレスに関する受信ディスクリプタである。
The upstream receive
第1PCIeインタフェース231は、転送装置230が、PCIebusを介して、第1処理装置110とPCIeで接続するためのインタフェースである。
The
第2PCIeインタフェース232は、転送装置230が、PCIebusを介して、第2メモリ220とPCIeで接続するためのインタフェースである。
The
§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
各種タグテーブルおよびディスクリプタテーブルの準備が完了すると、第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
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
一方、下り受信ディスクリプタコントローラ234は、タグ番号の受信(S201)後、第2メモリ220の受信タグテーブルから、タグ番号に対応する受信ディスクリプタテーブル(受信DescT)を特定する(S202)。下り受信ディスクリプタコントローラ234は、特定した受信ディスクリプタテーブルの1番目(すなわち、先頭)に格納された受信ディスクリプタ(受信Desc)を、第2メモリ220から読み出す(S203、受信ディスクリプタ読出ステップ)。
After receiving the tag number (S201), the downstream receive
DMAC233は、下り送信ディスクリプタコントローラ235が読み出した送信ディスクリプタに記載された情報に従って、第1メモリ120からデータ(すなわち、1番目のデータ)を読み出す(S301、データ読出ステップ)。DMAC233は、読み出したデータを、下り受信ディスクリプタコントローラ234が読み出した受信ディスクリプタに記載された情報に従って、第2メモリ220に書き込む(S302、データ書込ステップ)。
The
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
DMAC233は、2番目の送信ディスクリプタおよび2番目の受信ディスクリプタに基づいて、S301~S302と同様の処理を実行する。すなわち、DMAC233は、2番目の送信ディスクリプタに記載された情報に従って2番目のデータを読み出し(S303、データ読出ステップ)、2番目の受信ディスクリプタに基づいて、2番目のデータを第2メモリ220に書き込む(S304、データ書込ステップ)。
The
以降、転送対象データが全て転送終了するまで、下り送信ディスクリプタコントローラ235、下り受信ディスクリプタコントローラ234、およびDMAC233は同様の処理を繰り返す。すなわち、下り送信ディスクリプタコントローラ235はS102で特定した送信ディスクリプタテーブルの、次に格納された送信ディスクリプタ(m番目の送信ディスクリプタ)を読み出す(S105、送信ディスクリプタ読出ステップ)。下り受信ディスクリプタコントローラ234は、S202で特定した受信ディスクリプタテーブルの、次に格納された受信ディスクリプタ(すなわち、m番目の受信ディスクリプタ)を読み出す(S205、受信ディスクリプタ読出ステップ)。
The downstream transmit
DMAC233は、m番目の送信ディスクリプタおよびm番目の受信ディスクリプタに基づいて、S301~S302と同様の処理を実行する。すなわち、DMAC233は、m番目の送信ディスクリプタに記載された情報に従ってm番目のデータを読み出し(S305、データ読出ステップ)、m番目の受信ディスクリプタに基づいて、m番目のデータを第2メモリ220に書き込む(S306、データ書込ステップ)。
The
図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
図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
また、転送装置230は、例えば、複数の転送対象データが第1メモリ120の中で連続しないアドレスに格納されていた場合でも、それらの転送対象データを別個に読み出すことができる。そのため、第1処理装置110は、予め複数の転送対象データを1つのパケット等にまとめておく必要がない。すなわち、第1処理装置110は、パケットおよび/またはタグ生成のために、第1メモリ120にアクセスしてデータのコピー等を行う必要が無い。したがって、図4に示す処理によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、第1処理装置110が第1メモリ120にアクセスする頻度を低減することができる。
In addition, the
図4に示す処理によれば、転送装置230は、受信ディスクリプタを受信ディスクリプタテーブルが指定する順番で読み出す。そして、転送装置230は、それらの受信ディスクリプタの記述にしたがって、転送対象データを第2メモリ220に順次書き込むことができる。これにより、第2処理装置210は第2メモリ220にアクセスせずとも、転送対象データの書き込みが可能になる。したがって、図4に示す処理によれば、第2処理装置210が第2メモリ220にアクセスする頻度を低減することができる。
According to the process shown in FIG. 4, the
また、転送装置230は、複数の転送対象データを別個に書き込んでいく。そのため、例えば、具体的には、第2処理装置210が、複数の転送対象データをまとめたパケットおよび/またはタグを解凍して、各転送対象データを適切な領域にコピーし直す必要が無い。したがって、図4に示す処理によれば、複数の転送対象データをパケットおよび/またはタグ等にまとめて転送する場合に比べて、第2処理装置210が第2メモリ220にアクセスする頻度を低減することができる。
The
なお、データ転送システム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
〔実施形態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
転送装置330は、DMAC(データ読出部、データ書込部)331と、受信ディスクリプタコントローラ(受信ディスクリプタ読出部)332と、送信ディスクリプタコントローラ(識別子受信部、送信ディスクリプタ読出部)333と、PCIeインタフェース334と、を備える。送信ディスクリプタコントローラ333は下り送信ディスクリプタコントローラ235および上り送信ディスクリプタコントローラ237と同様の処理を実行する。受信ディスクリプタコントローラ332は下り受信ディスクリプタコントローラ234および上り受信ディスクリプタコントローラ236と同様の処理を実行する。
The
データ転送システム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
また、図4において下り送信ディスクリプタコントローラ235が実行していた処理は、送信ディスクリプタコントローラ333が実行する。また、図4において下り受信ディスクリプタコントローラ234が実行していた処理は、受信ディスクリプタコントローラ332が実行する。また、図4においてDMAC233が実行していた処理は、DMAC331が実行する。
The process performed by the downstream transmit
以上の構成によれば、DMA方式でデータ転送を行う場合に、第1処理装置110が第1メモリ120にアクセスする頻度を低減することができる。
With the above configuration, when data is transferred using the DMA method, the frequency with which the
〔変形例〕
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
[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
〔ソフトウェアによる実現例〕
第1処理装置110、第2処理装置210、転送装置230、および転送装置330の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
[Software implementation example]
The control blocks of the
後者の場合、第1処理装置110、第2処理装置210、転送装置230、および転送装置330は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
In the latter case, the
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。 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
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
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
Claims (7)
前記送信側メモリには、少なくとも、前記複数の転送対象データと、複数の送信ディスクリプタを含んだ送信ディスクリプタテーブルとが記憶されており、
送信側制御部から、複数の前記送信ディスクリプタテーブルのうちの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.
前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、
送信側制御部から、前記受信ディスクリプタテーブルを指定する識別子を受信する識別子受信部と、
送信側制御部が決定した前記識別子に応じた前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出部と、
前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込部と、を備えることを特徴とする、メモリ制御装置。 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デバイスと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.
前記送信側メモリには、少なくとも、前記複数の転送対象データと、複数の送信ディスクリプタを含んだ送信ディスクリプタテーブルとが記憶されており、
送信側制御部から、複数の前記送信ディスクリプタテーブルのうちの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.
前記受信側メモリには、少なくとも、複数の受信ディスクリプタを含んだ受信ディスクリプタテーブルが記憶されており、
送信側制御部から、前記受信ディスクリプタテーブルを指定する識別子を受信する識別子受信ステップと、
送信側制御部が決定した前記識別子に応じた前記受信ディスクリプタテーブルから、当該受信ディスクリプタテーブルによって指定される順番で、当該受信ディスクリプタテーブルに含まれている複数の受信ディスクリプタを読み出す受信ディスクリプタ読出ステップと、
前記受信側メモリから順次読み出す前記複数の受信ディスクリプタの記述に従って、前記送信側メモリから読み出された前記複数の転送対象データを前記受信側メモリに順次書き込むデータ書込ステップと、を含むことを特徴とする、制御方法。 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.
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)
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 |
-
2020
- 2020-10-07 JP JP2020169750A patent/JP7615598B2/en active Active
-
2021
- 2021-03-08 WO PCT/JP2021/008885 patent/WO2022074858A1/en active Application Filing
Patent Citations (5)
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)
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 |