JP6289689B1 - Memory control device and computer system - Google Patents

Memory control device and computer system Download PDF

Info

Publication number
JP6289689B1
JP6289689B1 JP2017012719A JP2017012719A JP6289689B1 JP 6289689 B1 JP6289689 B1 JP 6289689B1 JP 2017012719 A JP2017012719 A JP 2017012719A JP 2017012719 A JP2017012719 A JP 2017012719A JP 6289689 B1 JP6289689 B1 JP 6289689B1
Authority
JP
Japan
Prior art keywords
transfer
management unit
block number
dma
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
JP2017012719A
Other languages
Japanese (ja)
Other versions
JP2018120499A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2017012719A priority Critical patent/JP6289689B1/en
Application granted granted Critical
Publication of JP6289689B1 publication Critical patent/JP6289689B1/en
Publication of JP2018120499A publication Critical patent/JP2018120499A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】DMA転送による命令の実行待ちをなくし、プロセッサの処理時間を短縮する。【解決手段】メモリ制御装置13の転送管理部23は、メモリ12の指定アドレスRaddrからデータを読み取るリード要求がアクセス検出部22により検出されたときに、指定アドレスRaddrを含む領域を転送先とする未実施のDMA転送があるかどうかを判定する。そのような未実施のDMA転送がなければ、転送管理部23は、指定アドレスRaddrからデータを読み取ってプロセッサ11に送信する。そのような未実施のDMA転送があれば、転送管理部23は、当該未実施のDMA転送における、指定アドレスRaddrに転送されるデータの転送元のアドレスからデータを読み取ってプロセッサ11に送信する。その後、転送管理部23は、当該未実施のDMA転送を実施する。【選択図】図3An object of the present invention is to eliminate waiting for instruction execution by DMA transfer and shorten the processing time of a processor. When a read request for reading data from a specified address Raddr in a memory 12 is detected by an access detector 22, a transfer management unit 23 of the memory control device 13 sets an area including the specified address Raddr as a transfer destination. It is determined whether there is an unexecuted DMA transfer. If there is no such unexecuted DMA transfer, the transfer management unit 23 reads data from the designated address Raddr and transmits it to the processor 11. If there is such an unexecuted DMA transfer, the transfer management unit 23 reads the data from the transfer source address of the data transferred to the designated address Raddr in the unexecuted DMA transfer and transmits the data to the processor 11. Thereafter, the transfer management unit 23 performs the unexecuted DMA transfer. [Selection] Figure 3

Description

本発明は、メモリ制御装置および計算機システムに関するものである。   The present invention relates to a memory control device and a computer system.

一般的に、計算機システムは、CPU、メモリおよびDMACを備える。「CPU」は、Central Processing Unitの略語である。「DMAC」は、DMA Controllerの略語である。「DMA」は、Direct Memory
Accessの略語である。
Generally, a computer system includes a CPU, a memory, and a DMAC. “CPU” is an abbreviation for Central Processing Unit. “DMAC” is an abbreviation for DMA Controller. “DMA” stands for Direct Memory
Abbreviation for Access.

メモリの領域間でのデータ転送は、計算機の処理の中でもハードウェアリソースと時間とを費やす処理である。CPUがデータを転送する代わりにDMACが転送処理を実施することで、CPUが転送以外の処理を転送処理と並列に実行することが可能である。DMACによる転送処理のことをDMA転送という。   Data transfer between memory areas is a process that consumes hardware resources and time among the processes of a computer. Since the DMAC performs the transfer process instead of the data transfer by the CPU, the CPU can execute processes other than the transfer in parallel with the transfer process. The transfer processing by DMAC is called DMA transfer.

DMA転送を発生させる命令をDMA転送命令という。DMA転送命令によるDMA転送の転送先領域に、その命令の後続命令がアクセスする場合がある。すなわち、DMA転送命令と後続命令との間に依存関係が存在する場合がある。その場合、後続命令は、先行するDMA転送命令の終了を待ってから実行する必要がある。   An instruction for generating a DMA transfer is called a DMA transfer instruction. A subsequent instruction of the instruction may access the transfer destination area of the DMA transfer by the DMA transfer instruction. That is, there may be a dependency between the DMA transfer instruction and the subsequent instruction. In this case, the subsequent instruction needs to be executed after waiting for the end of the preceding DMA transfer instruction.

具体例として、DMA転送を行う命令Aと、命令Aの後続命令である命令Bとの間に依存関係があるとする。その場合、CPUにおける命令Bの実行は、DMACがCPUからの命令AによるDMA転送を完了するまで待たされる。DMA転送の完了の通知は、DMACからCPUへの割り込みによって行われる。よって、CPUにおける命令Bの実行は、DMACがCPUへの割り込みを発生させるまで待たされる。   As a specific example, it is assumed that there is a dependency between an instruction A that performs DMA transfer and an instruction B that is a subsequent instruction of the instruction A. In that case, execution of the instruction B in the CPU is waited until the DMAC completes the DMA transfer by the instruction A from the CPU. The completion of the DMA transfer is notified by an interrupt from the DMAC to the CPU. Therefore, execution of the instruction B in the CPU is waited until the DMAC generates an interrupt to the CPU.

依存関係がなるべく生じないように命令の配置を工夫する技術がコンパイラ等に適用されているものの、依存関係が完全になくなるわけではない。よって、CPUにおいてDMA転送待ちの状態が発生する可能性がある。   Although a technique for devising the arrangement of instructions so that the dependency relationship does not occur as much as possible is applied to a compiler or the like, the dependency relationship is not completely eliminated. Therefore, there is a possibility that the CPU waits for DMA transfer.

特許文献1には、DMACがDMA転送対象のデータに対するCPUからの参照要求を検出し、実行中のDMA転送よりも優先して、参照要求の対象データのDMA転送を行い、転送後のデータをCPUに参照させる技術が記載されている。   In Patent Document 1, the DMAC detects a reference request from the CPU for data to be transferred by DMA, performs DMA transfer of the data to be requested by reference prior to the DMA transfer being executed, and stores the transferred data. A technique to be referred to the CPU is described.

特開2004−145376号公報JP 2004-145376 A

特許文献1に記載の技術では、CPUは、DMACが参照要求の対象データのDMA転送を完了し、CPUへの割り込みを発生させるまで対象データを参照することができない。すなわち、DMA転送命令と後続命令との間に依存関係がある場合、CPUにおいてDMA転送待ちの状態が発生することは避けられない。   In the technique described in Patent Document 1, the CPU cannot refer to the target data until the DMAC completes the DMA transfer of the target data for the reference request and generates an interrupt to the CPU. That is, when there is a dependency between the DMA transfer instruction and the subsequent instruction, it is inevitable that the CPU waits for the DMA transfer.

本発明は、DMA転送による命令の実行待ちをなくし、プロセッサの処理時間を短縮することを目的とする。   An object of the present invention is to eliminate the waiting time for executing an instruction by DMA transfer and to shorten the processing time of the processor.

本発明の一態様に係るメモリ制御装置は、
メモリの領域間でのデータ転送であるDMA転送を実施するメモリ制御装置であり、
プロセッサからの要求を検出するアクセス検出部と、
前記メモリの指定アドレスからデータを読み取るリード要求が前記アクセス検出部により検出されたときに、前記指定アドレスを含む領域を転送先とする未実施のDMA転送がなければ、前記指定アドレスからデータを読み取って前記プロセッサに送信し、前記未実施のDMA転送があれば、前記未実施のDMA転送における、前記指定アドレスに転送されるデータの転送元のアドレスからデータを読み取って前記プロセッサに送信した後、前記未実施のDMA転送を実施する転送管理部とを備える。
A memory control device according to an aspect of the present invention includes:
A memory control device that performs DMA transfer, which is data transfer between memory areas,
An access detection unit for detecting a request from the processor;
When a read request for reading data from the designated address of the memory is detected by the access detection unit, if there is no DMA transfer that is performed with the area including the designated address as a transfer destination, the data is read from the designated address. If there is an unexecuted DMA transfer, the data is read from the transfer source address of the data to be transferred to the designated address in the unexecuted DMA transfer and transmitted to the processor. A transfer management unit that performs the unexecuted DMA transfer.

本発明では、メモリ制御装置がDMA転送対象のデータに対するプロセッサからの参照要求を検出したときに、参照要求の対象データのDMA転送が未実施であれば、そのDMA転送の実施よりも先に、転送前のデータをプロセッサに参照させる。そのため、DMA転送による命令の実行待ちをなくし、プロセッサの処理時間を短縮することができる。   In the present invention, if the DMA transfer of the target data of the reference request is not performed when the memory control device detects the reference request from the processor for the data of the DMA transfer target, before the DMA transfer is performed, The processor refers to the data before transfer. Therefore, it is possible to eliminate the waiting for instruction execution by DMA transfer and to shorten the processing time of the processor.

実施の形態1に係る計算機システムの構成を示すブロック図。1 is a block diagram illustrating a configuration of a computer system according to a first embodiment. 実施の形態1に係る計算機システムのメモリの構成を示す図。FIG. 3 is a diagram illustrating a configuration of a memory of the computer system according to the first embodiment. 実施の形態1に係るメモリ制御装置の構成を示すブロック図。1 is a block diagram illustrating a configuration of a memory control device according to a first embodiment. 実施の形態1に係るメモリ制御装置が保持する転送元ブロックポインタ、転送管理テーブルおよび更新管理テーブルの構成を示す図。FIG. 3 is a diagram showing a configuration of a transfer source block pointer, a transfer management table, and an update management table held by the memory control device according to the first embodiment. 実施の形態1に係るメモリ制御装置における、プロセッサからリード要求を受けたときの処理手順を示すフローチャート。4 is a flowchart illustrating a processing procedure when a read request is received from a processor in the memory control device according to the first embodiment. 実施の形態1に係る計算機システムの動作の例を示す図。FIG. 3 is a diagram illustrating an example of the operation of the computer system according to the first embodiment. 実施の形態1に係るメモリ制御装置における、プロセッサからライト要求を受けたときの処理手順を示すフローチャート。4 is a flowchart illustrating a processing procedure when a write request is received from a processor in the memory control device according to the first embodiment. 実施の形態1に係るメモリ制御装置におけるDMA転送の処理手順を示すフローチャート。4 is a flowchart showing a DMA transfer processing procedure in the memory control device according to the first embodiment; 実施の形態1に係るメモリ制御装置におけるDMA転送の処理手順を示すフローチャート。4 is a flowchart showing a DMA transfer processing procedure in the memory control device according to the first embodiment; 実施の形態1に係るメモリ制御装置における初期化の処理手順を示すフローチャート。5 is a flowchart showing a processing procedure of initialization in the memory control device according to the first embodiment. 実施の形態1に係るメモリ制御装置における転送管理テーブル登録の処理手順を示すフローチャート。6 is a flowchart showing a transfer management table registration processing procedure in the memory control device according to the first embodiment; 実施の形態1に係るメモリ制御装置における転送管理テーブル検索の処理手順を示すフローチャート。5 is a flowchart showing a transfer management table search processing procedure in the memory control device according to the first embodiment; 実施の形態1に係るメモリ制御装置における転送管理テーブルの最終ブロック検索の処理手順を示すフローチャート。6 is a flowchart illustrating a processing procedure for searching a final block of a transfer management table in the memory control device according to the first embodiment;

以下、本発明の実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。なお、本発明は、以下に説明する実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。例えば、以下に説明する実施の形態は、部分的に実施されても構わない。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the drawings, the same or corresponding parts are denoted by the same reference numerals. In the description of the embodiments, the description of the same or corresponding parts will be omitted or simplified as appropriate. The present invention is not limited to the embodiments described below, and various modifications can be made as necessary. For example, the embodiment described below may be partially implemented.

実施の形態1.
本実施の形態について、図1から図13を用いて説明する。
Embodiment 1 FIG.
This embodiment will be described with reference to FIGS.

***構成の説明***
図1を参照して、本実施の形態に係る計算機システム10の構成を説明する。
*** Explanation of configuration ***
A configuration of a computer system 10 according to the present embodiment will be described with reference to FIG.

計算機システム10は、プロセッサ11と、メモリ12と、メモリ制御装置13と、周辺バスブリッジ14とを備える。プロセッサ11は、システムバス16を介してメモリ制御装置13および周辺バスブリッジ14といった他のハードウェアと接続され、これら他のハードウェアを制御する。メモリ制御装置13は、メモリバス17を介してメモリ12と接続され、メモリ12を制御する。周辺バスブリッジ14は、I/Oバス18を介して外部のI/O機器15と接続され、I/O機器15にデータを送信したり、I/O機器15からデータを受信したりする。「I/O」は、Input/Outputの略語である。   The computer system 10 includes a processor 11, a memory 12, a memory control device 13, and a peripheral bus bridge 14. The processor 11 is connected to other hardware such as the memory control device 13 and the peripheral bus bridge 14 via the system bus 16 and controls these other hardware. The memory control device 13 is connected to the memory 12 via the memory bus 17 and controls the memory 12. The peripheral bus bridge 14 is connected to an external I / O device 15 via the I / O bus 18, and transmits data to the I / O device 15 and receives data from the I / O device 15. “I / O” is an abbreviation for Input / Output.

プロセッサ11は、例えば、CPUである。   The processor 11 is a CPU, for example.

メモリ12は、例えば、RAMまたはフラッシュメモリである。「RAM」は、Random Access Memoryの略語である。   The memory 12 is, for example, a RAM or a flash memory. “RAM” is an abbreviation for Random Access Memory.

メモリ制御装置13は、例えば、ロジックIC、FPGAまたはASICである。「IC」は、Integrated Circuitの略語である。「FPGA」は、Field−Programmable Gate Arrayの略語である。「ASIC」は、Application Specific Integrated Circuitの略語である。   The memory control device 13 is, for example, a logic IC, FPGA, or ASIC. “IC” is an abbreviation for Integrated Circuit. “FPGA” is an abbreviation for Field-Programmable Gate Array. “ASIC” is an abbreviation for Application Specific Integrated Circuit.

I/O機器15は、例えば、マウス、キーボードまたはタッチパネルといった入力装置、あるいは、ディスプレイまたはプリンタといった出力装置である。   The I / O device 15 is, for example, an input device such as a mouse, a keyboard, or a touch panel, or an output device such as a display or a printer.

図2を参照して、メモリ12の構成を説明する。   The configuration of the memory 12 will be described with reference to FIG.

メモリ12は、一定容量を単位とするn個のブロックで管理される。すなわち、メモリ12は、n個の領域を有する。「n」は2のべき乗である。よって、メモリアドレスから容易にブロック番号が求められる。   The memory 12 is managed by n blocks having a certain capacity as a unit. That is, the memory 12 has n areas. “N” is a power of 2. Therefore, the block number can be easily obtained from the memory address.

各ブロックは、メモリバス17の幅を単位とするm個のエントリで構成される。「m」は2のべき乗である。   Each block is composed of m entries with the width of the memory bus 17 as a unit. “M” is a power of 2.

図3を参照して、メモリ制御装置13の構成を説明する。   The configuration of the memory control device 13 will be described with reference to FIG.

メモリ制御装置13は、システムバスI/F21と、アクセス検出部22と、転送管理部23と、アクセス制御部24と、DMAC25とを備える。「I/F」は、InterFaceの略語である。   The memory control device 13 includes a system bus I / F 21, an access detection unit 22, a transfer management unit 23, an access control unit 24, and a DMAC 25. “I / F” is an abbreviation for InterFace.

システムバスI/F21は、システムバス16を介してプロセッサ11と接続されている。アクセス制御部24は、メモリバス17を介してメモリ12と接続されている。   The system bus I / F 21 is connected to the processor 11 via the system bus 16. The access control unit 24 is connected to the memory 12 via the memory bus 17.

メモリ制御装置13は、メモリ12の領域間でのデータ転送であるDMA転送を実施する機能を有する。この機能を実現するために、本実施の形態では、DMA転送を制御するDMAC25と、メモリ12にアクセスするアクセス制御部24とがメモリ制御装置13に配置されている。DMAC25としては、従来のDMACと同じものを用いることができる。アクセス制御部24としては、従来のメモリアクセス用の回路と同じものを用いることができる。   The memory control device 13 has a function of performing DMA transfer, which is data transfer between areas of the memory 12. In order to realize this function, in this embodiment, a DMAC 25 that controls DMA transfer and an access control unit 24 that accesses the memory 12 are arranged in the memory control device 13. As the DMAC 25, the same one as the conventional DMAC can be used. As the access control unit 24, the same circuit as a conventional memory access circuit can be used.

メモリ制御装置13は、DMA転送対象のデータに対するプロセッサ11からの参照要求を検出したときに、参照要求の対象データのDMA転送が未実施であれば、そのDMA転送の実施よりも先に、転送前のデータをプロセッサ11に参照させる機能をさらに有する。この機能を実現するために、本実施の形態では、システムバスI/F21を通じてプロセッサ11からの要求を検出するアクセス検出部22と、システムバスI/F21、アクセス制御部24およびDMAC25の間に介在する転送管理部23とがメモリ制御装置13に配置されている。   When the memory control device 13 detects a reference request from the processor 11 for the DMA transfer target data, if the DMA transfer of the reference request target data is not performed, the transfer is performed before the DMA transfer is performed. It further has a function of causing the processor 11 to refer to previous data. In order to realize this function, in the present embodiment, an access detection unit 22 that detects a request from the processor 11 through the system bus I / F 21 is interposed between the system bus I / F 21, the access control unit 24, and the DMAC 25. The transfer management unit 23 is arranged in the memory control device 13.

以降の説明において、プロセッサ11からの要求がライト要求のとき、書き込み対象を示すメモリアドレスを、指定アドレスWaddrと示す。プロセッサ11からの要求がリード要求のとき、読み取り対象を示すメモリアドレスを、指定アドレスRaddrと示し、また、指定アドレスRaddrに転送されるデータの転送元を示すメモリアドレスを、アドレスSaddrと示す。   In the following description, when the request from the processor 11 is a write request, a memory address indicating a write target is indicated as a designated address Waddr. When the request from the processor 11 is a read request, a memory address indicating a reading target is indicated as a designated address Raddr, and a memory address indicating a transfer source of data transferred to the designated address Raddr is indicated as an address Saddr.

図4を参照して、転送管理部23が保持する転送元ブロックポインタ30、転送管理テーブル40および更新管理テーブル50の構成を説明する。図4において、「don’t
care」は、意味を持たない初期値である。
The configuration of the transfer source block pointer 30, the transfer management table 40, and the update management table 50 held by the transfer management unit 23 will be described with reference to FIG. In FIG. 4, “don't
“care” is an initial value having no meaning.

転送元ブロックポインタ30は、フラグ31を含む。転送元ブロックポインタ30は、フラグ31が「有効」のとき、DMA転送元のブロック番号を示し、これは転送管理テーブル40の転送元ブロック番号41を示すことと等価である。初期状態において、フラグ31は「無効」にされる。   The transfer source block pointer 30 includes a flag 31. The transfer source block pointer 30 indicates the block number of the DMA transfer source when the flag 31 is “valid”, which is equivalent to indicating the transfer source block number 41 of the transfer management table 40. In the initial state, the flag 31 is set to “invalid”.

転送管理テーブル40は、転送元ブロック番号41、転送先ブロック番号42、チェーンブロック番号43および更新フラグ44といった項目を含む。各項目は、ブロック番号ごとに1つずつ存在する。すなわち、各項目は、n個ずつ存在する。   The transfer management table 40 includes items such as a transfer source block number 41, a transfer destination block number 42, a chain block number 43, and an update flag 44. Each item exists for each block number. That is, there are n items.

転送元ブロック番号41は、DMA転送時の転送元ブロックのブロック番号を意味する。   The transfer source block number 41 means the block number of the transfer source block at the time of DMA transfer.

転送先ブロック番号42は、転送元ブロック番号41のブロックのデータを転送する先のブロック番号である。すなわち、転送先ブロック番号42は、DMA転送時の転送先ブロックのブロック番号を意味する。   The transfer destination block number 42 is a block number to which data of the block of the transfer source block number 41 is transferred. That is, the transfer destination block number 42 means the block number of the transfer destination block at the time of DMA transfer.

チェーンブロック番号43は、複数のブロックのDMA転送を行うときの次に転送するブロックの転送元ブロック番号41である。ただし、転送元ブロック番号41とチェーンブロック番号43とが同じ場合は、該当するブロックがDMA転送対象の最後のブロックであることを意味するものとする。初期状態において、チェーンブロック番号43には転送元ブロック番号41と同じブロック番号が設定される。   The chain block number 43 is a transfer source block number 41 of a block to be transferred next when performing DMA transfer of a plurality of blocks. However, if the transfer source block number 41 and the chain block number 43 are the same, it means that the corresponding block is the last block subject to DMA transfer. In the initial state, the same block number as the transfer source block number 41 is set in the chain block number 43.

更新フラグ44は、転送先ブロック番号42のブロックが、DMA転送前にプロセッサ11からデータを書き換えることを要求されたブロックであるかどうかを示す。初期状態において、更新フラグ44は「無効」にされる。   The update flag 44 indicates whether or not the block having the transfer destination block number 42 is a block requested to be rewritten by the processor 11 before the DMA transfer. In the initial state, the update flag 44 is set to “invalid”.

上記のように、本実施の形態において、転送管理部23が保持する転送管理テーブル40には、実施前のDMA転送における転送元および転送先の領域を識別する番号がそれぞれ転送元ブロック番号41および転送先ブロック番号42として設定される。本実施の形態では、転送管理テーブル40に、何らかの番号の組み合わせが転送元ブロック番号41および転送先ブロック番号42として「記憶」されていても、転送元ブロックポインタ30のフラグ31が「無効」のときは、当該組み合わせの設定は無効である。なお、変形例として、転送元ブロックポインタ30を適用せず、転送管理テーブル40に、当該組み合わせが「記憶」されているだけで、当該組み合わせが転送元ブロック番号41および転送先ブロック番号42として「設定」されているとみなしてもよい。   As described above, in the present embodiment, the transfer management table 40 held by the transfer management unit 23 has transfer source block numbers 41 and numbers identifying the transfer source and transfer destination areas in the DMA transfer before the execution, respectively. It is set as the transfer destination block number 42. In the present embodiment, even if any combination of numbers is “stored” as the transfer source block number 41 and the transfer destination block number 42 in the transfer management table 40, the flag 31 of the transfer source block pointer 30 is “invalid”. Sometimes the combination setting is invalid. As a modification, the transfer source block pointer 30 is not applied, and only the combination is “stored” in the transfer management table 40, and the combination is set as the transfer source block number 41 and the transfer destination block number 42. It may be considered that it is set.

更新管理テーブル50は、転送先ブロック番号51、テーブル有効フラグ52、更新データ用バッファ53および更新フラグ54といった項目を含む。更新管理テーブル50は、転送管理テーブル40の更新フラグ44が「有効」な転送先ブロック番号42のブロックのデータを管理する。更新管理テーブル50は、k個存在する。「k」は任意の整数である。   The update management table 50 includes items such as a transfer destination block number 51, a table valid flag 52, an update data buffer 53, and an update flag 54. The update management table 50 manages the data of the block having the transfer destination block number 42 in which the update flag 44 of the transfer management table 40 is “valid”. There are k update management tables 50. “K” is an arbitrary integer.

転送先ブロック番号51は、DMA転送前にプロセッサ11からデータを書き換えることを要求されたブロックのブロック番号を意味する。   The transfer destination block number 51 means the block number of a block requested to be rewritten by the processor 11 before the DMA transfer.

テーブル有効フラグ52は、更新管理テーブル50が有効であるかどうかを示す。初期状態において、テーブル有効フラグ52は「無効」にされる。   The table valid flag 52 indicates whether the update management table 50 is valid. In the initial state, the table valid flag 52 is set to “invalid”.

更新データ用バッファ53は、プロセッサ11からの要求により書き換えられた後のデータを格納するバッファである。更新データ用バッファ53は、1ブロック分の容量のバッファである。すなわち、更新データ用バッファ53は、m個のエントリで構成される。   The update data buffer 53 is a buffer for storing data after being rewritten by a request from the processor 11. The update data buffer 53 is a buffer having a capacity of one block. In other words, the update data buffer 53 is composed of m entries.

更新フラグ54は、更新データ用バッファ53のエントリごとに1つ付けられる。プロセッサ11からの要求により書き換えられたデータを格納しているエントリの更新フラグ54は「有効」となる。初期状態において、更新フラグ54は「無効」にされる。   One update flag 54 is assigned to each entry in the update data buffer 53. The update flag 54 of the entry storing the data rewritten by the request from the processor 11 becomes “valid”. In the initial state, the update flag 54 is set to “invalid”.

上記のように、本実施の形態において、転送管理部23が保持する更新管理テーブル50は、メモリ12の指定アドレスWaddrにデータを書き込むライト要求がアクセス検出部22により検出されたときに、指定アドレスWaddrを含む領域を転送先とする未実施のDMA転送がある場合のみ使用される。更新管理テーブル50には、その未実施のDMA転送における転送先の領域を識別する番号と更新データ用バッファ53の中で指定アドレスWaddrに転送されるデータが書き込まれた位置を示す情報とがそれぞれ転送先ブロック番号51および更新情報として設定される。更新情報は、任意の形式で記録されてよいが、本実施の形態ではエントリ別の更新フラグ54の形式で記録される。本実施の形態では、更新管理テーブル50に、何らかの番号と何らかの位置を示す情報との組み合わせが転送先ブロック番号51および更新情報として「記憶」されていても、テーブル有効フラグ52が「無効」のときは、当該組み合わせの設定は無効である。なお、変形例として、テーブル有効フラグ52を適用せず、更新管理テーブル50に、当該組み合わせが「記憶」されているだけで、当該組み合わせが転送先ブロック番号51および更新情報として「設定」されているとみなしてもよい。   As described above, in the present embodiment, the update management table 50 held by the transfer management unit 23 has the specified address when a write request for writing data to the specified address Waddr of the memory 12 is detected by the access detection unit 22. This is used only when there is an unexecuted DMA transfer with the area including Waddr as the transfer destination. The update management table 50 includes a number for identifying a transfer destination area in the unexecuted DMA transfer and information indicating a position in the update data buffer 53 where data to be transferred to the designated address Waddr is written. It is set as the transfer destination block number 51 and update information. The update information may be recorded in an arbitrary format, but in the present embodiment, it is recorded in the format of the update flag 54 for each entry. In the present embodiment, even if a combination of some number and information indicating some position is “stored” in the update management table 50 as the transfer destination block number 51 and the update information, the table valid flag 52 is “invalid”. Sometimes the combination setting is invalid. As a modification, the table validity flag 52 is not applied, and the combination is “stored” in the update management table 50, and the combination is “set” as the transfer destination block number 51 and the update information. You may consider that

***動作の説明***
各フローチャートを参照して、本実施の形態に係るメモリ制御装置13の動作を説明する。メモリ制御装置13の動作は、本実施の形態に係るメモリ制御方法に相当する。
*** Explanation of operation ***
The operation of the memory control device 13 according to the present embodiment will be described with reference to each flowchart. The operation of the memory control device 13 corresponds to the memory control method according to the present embodiment.

図5を参照して、メモリ制御装置13がプロセッサ11からリード要求を受けたときの処理手順を説明する。   With reference to FIG. 5, a processing procedure when the memory control device 13 receives a read request from the processor 11 will be described.

ステップS101において、転送管理部23は、メモリ12の指定アドレスRaddrからデータを読み取るリード要求がアクセス検出部22により検出されたときに、未実施のDMA転送があるかどうかを判定する。未実施のDMA転送があれば、転送管理部23は、ステップS102の処理を行う。一方、未実施のDMA転送がなければ、転送管理部23は、ステップS104の処理を行う。   In step S <b> 101, the transfer management unit 23 determines whether there is an unexecuted DMA transfer when the access detection unit 22 detects a read request for reading data from the specified address Raddr of the memory 12. If there is an unexecuted DMA transfer, the transfer management unit 23 performs the process of step S102. On the other hand, if there is no unexecuted DMA transfer, the transfer management unit 23 performs the process of step S104.

ステップS102において、転送管理部23は、転送管理テーブル40の転送先ブロック番号42を探索する。   In step S <b> 102, the transfer management unit 23 searches for the transfer destination block number 42 in the transfer management table 40.

ステップS103において、転送管理部23は、プロセッサ11のメモリリードアドレスが転送先ブロック番号42の領域に含まれるかどうかを判定する。すなわち、転送管理部23は、指定アドレスRaddrを含む領域を転送先とする未実施のDMA転送があるかどうかを判定する。具体的には、転送管理部23は、指定アドレスRaddrを含む領域を識別する番号が転送先ブロック番号42として転送管理テーブル40に設定されているかどうかによって、そのような未実施のDMA転送の有無を判定する。そのような未実施のDMA転送がなければ、転送管理部23は、ステップS104の処理を行う。一方、そのような未実施のDMA転送があれば、転送管理部23は、ステップS105の処理を行う。すなわち、リード要求がアクセス検出部22により検出されたときに、指定アドレスRaddrを含む領域を識別する番号が転送先ブロック番号42として転送管理テーブル40に設定されていれば、転送管理部23は、ステップS105の処理を行う。   In step S <b> 103, the transfer management unit 23 determines whether or not the memory read address of the processor 11 is included in the area of the transfer destination block number 42. That is, the transfer management unit 23 determines whether there is an unexecuted DMA transfer in which the area including the designated address Raddr is a transfer destination. Specifically, the transfer management unit 23 determines whether or not there is such an unexecuted DMA transfer depending on whether or not the number for identifying the area including the designated address Raddr is set in the transfer management table 40 as the transfer destination block number 42. Determine. If there is no such unexecuted DMA transfer, the transfer management unit 23 performs the process of step S104. On the other hand, if there is such an unexecuted DMA transfer, the transfer management unit 23 performs the process of step S105. That is, when a read request is detected by the access detection unit 22, if the number for identifying the area including the designated address Raddr is set in the transfer management table 40 as the transfer destination block number 42, the transfer management unit 23 The process of step S105 is performed.

ステップS104において、転送管理部23は、メモリ12からデータをリードする。具体的には、転送管理部23は、アクセス制御部24を利用して、指定アドレスRaddrからデータを読み取る。そして、転送管理部23は、ステップS108の処理を行う。   In step S <b> 104, the transfer management unit 23 reads data from the memory 12. Specifically, the transfer management unit 23 uses the access control unit 24 to read data from the designated address Raddr. Then, the transfer management unit 23 performs the process of step S108.

ステップS105において、転送管理部23は、ステップS103でヒットした転送先ブロック番号42に対応する転送元ブロック番号41を転送管理テーブル40から取得する。   In step S <b> 105, the transfer management unit 23 acquires the transfer source block number 41 corresponding to the transfer destination block number 42 hit in step S <b> 103 from the transfer management table 40.

ステップS106において、転送管理部23は、ステップS105で取得した転送元ブロック番号41の領域内のリード対象となるアドレスSaddrを計算する。具体的には、転送管理部23は、取得した転送元ブロック番号41と指定アドレスRaddrとから、指定アドレスRaddrを含む領域を転送先とする未実施のDMA転送における、指定アドレスRaddrに転送されるデータの転送元のアドレスSaddrを計算する。   In step S106, the transfer management unit 23 calculates an address Saddr to be read in the area of the transfer source block number 41 acquired in step S105. Specifically, the transfer management unit 23 transfers the acquired transfer source block number 41 and the specified address Raddr to the specified address Raddr in an unexecuted DMA transfer that uses the area including the specified address Raddr as the transfer destination. The data transfer source address Saddr is calculated.

ステップS107において、転送管理部23は、ステップS106で計算したアドレスSaddrからデータをリードする。具体的には、転送管理部23は、アクセス制御部24を利用して、計算したアドレスSaddrからデータを読み取る。   In step S107, the transfer management unit 23 reads data from the address Saddr calculated in step S106. Specifically, the transfer management unit 23 uses the access control unit 24 to read data from the calculated address Saddr.

ステップS108において、転送管理部23は、ステップS102またはステップS107でリードしたデータをプロセッサ11に返し、図5の動作を終了する。具体的には、転送管理部23は、システムバスI/F21を介して、読み取ったデータをプロセッサ11に送信する。転送管理部23は、ステップS101で未実施のDMA転送があると判定していたのであれば、さらに、DMAC25を利用して、DMA転送の完了を通知する割り込みをプロセッサ11に送信する。   In step S108, the transfer management unit 23 returns the data read in step S102 or step S107 to the processor 11 and ends the operation of FIG. Specifically, the transfer management unit 23 transmits the read data to the processor 11 via the system bus I / F 21. If it is determined in step S101 that there is an unexecuted DMA transfer, the transfer management unit 23 further uses the DMAC 25 to transmit an interrupt to notify the completion of the DMA transfer to the processor 11.

転送管理部23は、ステップS101で未実施のDMA転送があると判定していたのであれば、図5の動作の後に、その未実施のDMA転送を実施する。   If it is determined in step S101 that there is an unexecuted DMA transfer, the transfer management unit 23 performs the unexecuted DMA transfer after the operation of FIG.

ここで、プロセッサ11において命令A、命令B、命令Cおよび命令Dが順番に実行される例を図6に示す。   Here, FIG. 6 shows an example in which the instruction A, the instruction B, the instruction C, and the instruction D are sequentially executed in the processor 11.

この例では、DMA転送を伴う命令Aと、命令Aの後続命令であり、メモリ12のリードを伴う命令Bとの間に依存関係があるとする。メモリ制御装置13は、図5の動作によって、プロセッサ11から命令Aを受けた時点で、すなわち、命令Aで要求されるDMA転送を実施する前に、DMA転送の完了を通知する割り込みをただちにDMAC25より発生させ、プロセッサ11に後続の処理を進めさせる。したがって、DMA転送による命令の実行待ちをなくし、プロセッサ11の処理時間を短縮することができる。   In this example, it is assumed that there is a dependency relationship between an instruction A accompanied by DMA transfer and an instruction B that is a subsequent instruction of the instruction A and accompanied by reading of the memory 12. When the memory control device 13 receives the instruction A from the processor 11 by the operation of FIG. 5, that is, before performing the DMA transfer requested by the instruction A, the memory control device 13 immediately receives an interrupt for notifying the completion of the DMA transfer. To cause the processor 11 to proceed with subsequent processing. Therefore, it is possible to eliminate the waiting for execution of an instruction by DMA transfer and to shorten the processing time of the processor 11.

図7を参照して、メモリ制御装置13がプロセッサ11からライト要求を受けたときの処理手順を説明する。   With reference to FIG. 7, a processing procedure when the memory control device 13 receives a write request from the processor 11 will be described.

ステップS201において、転送管理部23は、メモリ12の指定アドレスWaddrにデータを書き込むライト要求がアクセス検出部22により検出されたときに、未実施のDMA転送があるかどうかを判定する。未実施のDMA転送があれば、転送管理部23は、ステップS202の処理を行う。一方、未実施のDMA転送がなければ、転送管理部23は、ステップS204の処理を行う。なお、転送管理部23は、ステップS201の処理を行う時点で、システムバスI/F21を介して、ライト要求に伴ってプロセッサ11から送信されたデータをすでに受信している。   In step S201, the transfer management unit 23 determines whether there is an unexecuted DMA transfer when the access detection unit 22 detects a write request for writing data to the designated address Waddr of the memory 12. If there is an unexecuted DMA transfer, the transfer management unit 23 performs the process of step S202. On the other hand, if there is no unexecuted DMA transfer, the transfer management unit 23 performs the process of step S204. Note that the transfer management unit 23 has already received the data transmitted from the processor 11 along with the write request via the system bus I / F 21 at the time of performing the process of step S201.

ステップS202において、転送管理部23は、転送管理テーブル40の転送先ブロック番号42を探索する。   In step S202, the transfer management unit 23 searches for the transfer destination block number 42 in the transfer management table 40.

ステップS203において、転送管理部23は、プロセッサ11のメモリライトアドレスが転送先ブロック番号42の領域に含まれるかどうかを判定する。すなわち、転送管理部23は、指定アドレスWaddrを含む領域を転送先とする未実施のDMA転送があるかどうかを判定する。具体的には、転送管理部23は、指定アドレスWaddrを含む領域を識別する番号が転送先ブロック番号42として転送管理テーブル40に設定されているかどうかによって、そのような未実施のDMA転送の有無を判定する。そのような未実施のDMA転送がなければ、転送管理部23は、ステップS204の処理を行う。一方、そのような未実施のDMA転送があれば、転送管理部23は、ステップS205の処理を行う。すなわち、ライト要求がアクセス検出部22により検出されたときに、指定アドレスWaddrを含む領域を識別する番号が転送先ブロック番号42として転送管理テーブル40に設定されていれば、転送管理部23は、ステップS205の処理を行う。   In step S203, the transfer management unit 23 determines whether or not the memory write address of the processor 11 is included in the area of the transfer destination block number 42. That is, the transfer management unit 23 determines whether there is an unexecuted DMA transfer in which an area including the designated address Waddr is a transfer destination. Specifically, the transfer management unit 23 determines whether or not there is such an unexecuted DMA transfer depending on whether or not the number for identifying the area including the designated address Waddr is set in the transfer management table 40 as the transfer destination block number 42. Determine. If there is no such unexecuted DMA transfer, the transfer management unit 23 performs the process of step S204. On the other hand, if there is such an unexecuted DMA transfer, the transfer management unit 23 performs the process of step S205. That is, when the write request is detected by the access detection unit 22, if the number for identifying the area including the designated address Waddr is set in the transfer management table 40 as the transfer destination block number 42, the transfer management unit 23 The process of step S205 is performed.

ステップS204において、転送管理部23は、メモリ12にデータをライトする。具体的には、転送管理部23は、アクセス制御部24を利用して、プロセッサ11から送信されたデータを指定アドレスWaddrに書き込み、図7の動作を終了する。   In step S <b> 204, the transfer management unit 23 writes data to the memory 12. Specifically, the transfer management unit 23 uses the access control unit 24 to write the data transmitted from the processor 11 to the designated address Waddr, and ends the operation of FIG.

ステップS205において、転送管理部23は、ステップS203でヒットした転送先ブロック番号42に対応する更新フラグ44を「有効」に変更する。   In step S205, the transfer management unit 23 changes the update flag 44 corresponding to the transfer destination block number 42 hit in step S203 to “valid”.

ステップS206において、転送管理部23は、テーブル有効フラグ52が「無効」になっている更新管理テーブル50を探索する。   In step S206, the transfer management unit 23 searches the update management table 50 in which the table valid flag 52 is “invalid”.

ステップS207において、転送管理部23は、テーブル有効フラグ52が「無効」になっている更新管理テーブル50の転送先ブロック番号51を、転送管理テーブル40で更新フラグ44を「有効」にした転送先ブロック番号42と同じブロック番号に変更する。   In step S207, the transfer management unit 23 sets the transfer destination block number 51 of the update management table 50 in which the table valid flag 52 is “invalid” and the transfer destination in which the update flag 44 is “valid” in the transfer management table 40. Change to the same block number as block number 42.

ステップS208において、転送管理部23は、ステップS203でヒットした転送先ブロック番号42の領域内のライト対象となるデータのアドレスを計算する。具体的には、転送管理部23は、指定アドレスWaddrから、転送先ブロック内のどのエントリが書き込み先かを計算する。   In step S208, the transfer management unit 23 calculates the address of the data to be written in the area of the transfer destination block number 42 hit in step S203. Specifically, the transfer management unit 23 calculates which entry in the transfer destination block is the write destination from the designated address Waddr.

ステップS209において、転送管理部23は、ステップS208で計算したアドレスから更新データ用バッファ53の対象エントリを決定する。   In step S209, the transfer management unit 23 determines a target entry in the update data buffer 53 from the address calculated in step S208.

ステップS210において、転送管理部23は、ステップS209で決定した対象エントリにデータをライトする。すなわち、転送管理部23は、プロセッサ11から送信されたデータを更新データ用バッファ53に書き込む。   In step S210, the transfer management unit 23 writes data to the target entry determined in step S209. That is, the transfer management unit 23 writes the data transmitted from the processor 11 in the update data buffer 53.

ステップS211において、転送管理部23は、ステップS210でデータを書き込んだ対象エントリに対応する更新フラグ54を「有効」に変更する。すなわち、転送管理部23は、更新データ用バッファ53を事後的に確保する。そして、転送管理部23は、図7の動作を終了する。なお、転送管理部23は、ステップS210の処理の前に、ステップS211の処理を行ってもよい。すなわち、転送管理部23は、データを書き込む前に更新データ用バッファ53を確保しておいてもよい。   In step S211, the transfer management unit 23 changes the update flag 54 corresponding to the target entry in which the data is written in step S210 to “valid”. That is, the transfer management unit 23 secures the update data buffer 53 later. Then, the transfer management unit 23 ends the operation of FIG. Note that the transfer management unit 23 may perform the process of step S211 before the process of step S210. That is, the transfer management unit 23 may reserve the update data buffer 53 before writing data.

転送管理部23は、ステップS201で未実施のDMA転送があると判定していたのであれば、図7の動作の後に、その未実施のDMA転送を実施する。ただし、転送管理部23は、ステップS203で指定アドレスWaddrを含む領域を転送先とする未実施のDMA転送があると判定していたのであれば、図7の動作の後に、指定アドレスWaddrへのデータ転送を除く未実施のDMA転送と、更新データ用バッファ53から指定アドレスWaddrへのデータ転送とを実施する。後述するように、転送管理部23は、更新データ用バッファ53から指定アドレスWaddrへのデータ転送を実施した後、更新データ用バッファ53を解放する。   If it is determined in step S201 that there is an unexecuted DMA transfer, the transfer management unit 23 performs the unexecuted DMA transfer after the operation of FIG. However, if the transfer management unit 23 determines in step S203 that there is an unexecuted DMA transfer with the area including the designated address Waddr as the transfer destination, the transfer management unit 23 transfers the data to the designated address Waddr after the operation of FIG. Untransferred DMA transfer excluding data transfer and data transfer from the update data buffer 53 to the designated address Waddr are performed. As will be described later, the transfer management unit 23 releases the update data buffer 53 after performing data transfer from the update data buffer 53 to the designated address Waddr.

図8および図9を参照して、DMA転送の処理手順を説明する。   The DMA transfer processing procedure will be described with reference to FIGS.

ステップS301において、転送管理部23は、転送元ブロックポインタ30のフラグ31が「有効」であるかどうかを判定する。フラグ31が「無効」であれば、転送管理部23は、図8の動作を終了する。一方、フラグ31が「有効」であれば、転送管理部23は、ステップS302の処理を行う。   In step S301, the transfer management unit 23 determines whether the flag 31 of the transfer source block pointer 30 is “valid”. If the flag 31 is “invalid”, the transfer management unit 23 ends the operation of FIG. On the other hand, if the flag 31 is “valid”, the transfer management unit 23 performs the process of step S302.

ステップS302において、転送管理部23は、転送元ブロックポインタ30の指す転送管理テーブル40内の転送元ブロック番号41を対象に選択する。   In step S302, the transfer management unit 23 selects the transfer source block number 41 in the transfer management table 40 pointed to by the transfer source block pointer 30 as a target.

ステップS303において、転送管理部23は、転送管理テーブル40の対象ブロックの更新フラグ44が「有効」であるかどうかを判定する。更新フラグ44が「無効」であれば、転送管理部23は、ステップS304の処理を行う。一方、更新フラグ44が「有効」であれば、転送管理部23は、ステップS401の処理を行う。   In step S303, the transfer management unit 23 determines whether the update flag 44 of the target block in the transfer management table 40 is “valid”. If the update flag 44 is “invalid”, the transfer management unit 23 performs the process of step S304. On the other hand, if the update flag 44 is “valid”, the transfer management unit 23 performs the process of step S401.

ステップS304において、転送管理部23は、対象の転送元ブロック番号41に対応するアドレスからデータをブロックサイズ分リードする。   In step S304, the transfer management unit 23 reads data for the block size from the address corresponding to the target transfer source block number 41.

ステップS305において、転送管理部23は、対象の転送元ブロック番号41に対応する転送先ブロック番号42を転送管理テーブル40から取得する。そして、転送管理部23は、取得した転送先ブロック番号42に対応するアドレスへ、ステップS304でリードしたデータをブロックサイズ分ライトする。   In step S <b> 305, the transfer management unit 23 acquires the transfer destination block number 42 corresponding to the target transfer source block number 41 from the transfer management table 40. Then, the transfer management unit 23 writes the data read in step S304 for the block size to the address corresponding to the acquired transfer destination block number 42.

ステップS306において、転送管理部23は、対象の転送元ブロック番号41に対応するチェーンブロック番号43を転送管理テーブル40から取得する。そして、転送管理部23は、対象の転送元ブロック番号41と、取得したチェーンブロック番号43とが一致するかどうかを判定する。一致していれば、転送管理部23は、ステップS307の処理を行う。一方、一致していなければ、転送管理部23は、ステップS308の処理を行う。   In step S <b> 306, the transfer management unit 23 acquires the chain block number 43 corresponding to the target transfer source block number 41 from the transfer management table 40. Then, the transfer management unit 23 determines whether or not the target transfer source block number 41 matches the acquired chain block number 43. If they match, the transfer management unit 23 performs the process of step S307. On the other hand, if they do not match, the transfer management unit 23 performs the process of step S308.

ステップS307において、転送管理部23は、転送元ブロックポインタ30のフラグ31を「無効」に変更し、図8の動作を終了する。   In step S307, the transfer management unit 23 changes the flag 31 of the transfer source block pointer 30 to “invalid” and ends the operation of FIG.

ステップS308において、転送管理部23は、ステップS306で取得したチェーンブロック番号43を対象に選択する。すなわち、転送管理部23は、ステップS306で取得したチェーンブロック番号43と一致する転送元ブロック番号41を対象に選択する。   In step S308, the transfer management unit 23 selects the chain block number 43 acquired in step S306 as a target. That is, the transfer management unit 23 selects the transfer source block number 41 that matches the chain block number 43 acquired in step S306 as a target.

ステップS309において、転送管理部23は、転送管理テーブル40でステップS308の直前に対象になっていた転送元ブロック番号41に対応するチェーンブロック番号43を、その転送元ブロック番号41と同じブロック番号に変更する。すなわち、転送管理部23は、ステップS308の直前の対象ブロックのチェーンブロック番号43を初期値に戻す。そして、転送管理部23は、再びステップS303の処理を行う。   In step S309, the transfer management unit 23 sets the chain block number 43 corresponding to the transfer source block number 41 that is the target immediately before step S308 in the transfer management table 40 to the same block number as the transfer source block number 41. change. That is, the transfer management unit 23 returns the chain block number 43 of the target block immediately before step S308 to the initial value. Then, the transfer management unit 23 performs the process of step S303 again.

ステップS401において、転送管理部23は、テーブル有効フラグ52が「有効」であり、かつ、転送先ブロック番号51が転送管理テーブル40の転送先ブロック番号42と一致している更新管理テーブル50を対象に選択する。そして、転送管理部23は、「i」を0からmまで1ずつインクリメントされるカウンタとし、ステップS402からステップS406のループ処理を行う。   In step S401, the transfer management unit 23 targets the update management table 50 in which the table valid flag 52 is “valid” and the transfer destination block number 51 matches the transfer destination block number 42 of the transfer management table 40. Select Then, the transfer management unit 23 uses “i” as a counter that is incremented by 1 from 0 to m, and performs a loop process from step S402 to step S406.

ステップS402において、転送管理部23は、対象の更新管理テーブル50の更新データ用バッファ53のエントリiの更新フラグ54が「有効」であるかどうかを判定する。更新フラグ54が「無効」であれば、転送管理部23は、ステップS403の処理を行う。一方、更新フラグ54が「有効」であれば、転送管理部23は、ステップS405の処理を行う。   In step S402, the transfer management unit 23 determines whether the update flag 54 of the entry i in the update data buffer 53 of the target update management table 50 is “valid”. If the update flag 54 is “invalid”, the transfer management unit 23 performs the process of step S403. On the other hand, if the update flag 54 is “valid”, the transfer management unit 23 performs the process of step S405.

ステップS403において、転送管理部23は、転送元ブロックの対応するアドレスからデータをリードする。すなわち、転送管理部23は、対象の転送元ブロック番号41の領域内のエントリiを読み込む。   In step S403, the transfer management unit 23 reads data from the corresponding address of the transfer source block. That is, the transfer management unit 23 reads the entry i in the area of the target transfer source block number 41.

ステップS404において、転送管理部23は、ステップS404でリードしたデータを転送元データとして選択する。そして、転送管理部23は、ステップS406の処理を行う。   In step S404, the transfer management unit 23 selects the data read in step S404 as transfer source data. Then, the transfer management unit 23 performs the process of step S406.

ステップS405において、転送管理部23は、対象の更新管理テーブル50の更新データ用バッファ53のエントリiを転送元データとして選択する。   In step S405, the transfer management unit 23 selects the entry i in the update data buffer 53 of the target update management table 50 as transfer source data.

ステップS406において、転送管理部23は、転送先ブロックの対応するアドレスへ転送元データをライトする。すなわち、転送管理部23は、対象の転送元ブロック番号41に対応する転送先ブロック番号42の領域内のエントリiを転送元データで上書きする。カウンタiがm未満であれば、転送管理部23は、再びステップS402の処理を行う。カウンタiがmであれば、転送管理部23は、ステップS407の処理を行う。   In step S406, the transfer management unit 23 writes the transfer source data to the corresponding address of the transfer destination block. That is, the transfer management unit 23 overwrites the entry i in the area of the transfer destination block number 42 corresponding to the target transfer source block number 41 with the transfer source data. If the counter i is less than m, the transfer management unit 23 performs the process of step S402 again. If the counter i is m, the transfer management unit 23 performs the process of step S407.

ステップS407において、転送管理部23は、対象の更新管理テーブル50の更新データ用バッファ53の中で更新フラグ54が「有効」になっているエントリの更新フラグ54を「無効」に変更する。すなわち、転送管理部23は、更新データ用バッファ53を解放する。また、転送管理部23は、対象の更新管理テーブル50のテーブル有効フラグ52も「無効」に変更する。転送管理部23は、さらに、転送管理テーブル40の対象ブロックの更新フラグ44を「無効」にする。そして、転送管理部23は、ステップS306の処理を行う。   In step S407, the transfer management unit 23 changes the update flag 54 of the entry in which the update flag 54 is “valid” in the update data buffer 53 of the target update management table 50 to “invalid”. That is, the transfer management unit 23 releases the update data buffer 53. The transfer management unit 23 also changes the table valid flag 52 of the target update management table 50 to “invalid”. Further, the transfer management unit 23 sets the update flag 44 of the target block in the transfer management table 40 to “invalid”. Then, the transfer management unit 23 performs the process of step S306.

上記のように、本実施の形態において、転送管理部23は、個々のDMA転送を実施する際に、個々のDMA転送における転送先の領域を識別する番号が転送先ブロック番号51として更新管理テーブル50に設定されていれば、その転送先ブロック番号51に対応する更新情報を更新管理テーブル50から取得する。そして、転送管理部23は、前述したライト要求の指定アドレスWaddrへのデータ転送を除く個々のDMA転送と、更新データ用バッファ53の中で、取得した更新情報に示された位置から指定アドレスWaddrへのデータ転送とを実施する。   As described above, in the present embodiment, the transfer management unit 23 uses the update management table as a transfer destination block number 51 to identify a transfer destination area in each DMA transfer when performing each DMA transfer. If it is set to 50, update information corresponding to the transfer destination block number 51 is acquired from the update management table 50. Then, the transfer management unit 23 performs the individual DMA transfer except for the data transfer to the specified address Waddr of the write request and the specified address Waddr from the position indicated in the acquired update information in the update data buffer 53. Data transfer to

図10を参照して、初期化の処理手順を説明する。   With reference to FIG. 10, the initialization process will be described.

ステップS501において、転送管理部23は、リセット信号がアサートされるまで待機する。   In step S501, the transfer management unit 23 waits until the reset signal is asserted.

ステップS502において、転送管理部23は、リセット信号が解除されるまで待機する。   In step S502, the transfer management unit 23 waits until the reset signal is released.

ステップS503において、転送管理部23は、転送元ブロックポインタ30のフラグ31を「無効」にする。そして、転送管理部23は、「i」を0からnまで1ずつインクリメントされるカウンタとし、ステップS504からステップS506のループ処理を行う。   In step S503, the transfer management unit 23 sets the flag 31 of the transfer source block pointer 30 to “invalid”. Then, the transfer management unit 23 uses “i” as a counter that is incremented by 1 from 0 to n, and performs a loop process from step S504 to step S506.

ステップS504において、転送管理部23は、転送管理テーブル40でブロック番号iと一致する転送元ブロック番号41を対象に選択する。   In step S504, the transfer management unit 23 selects the transfer source block number 41 that matches the block number i in the transfer management table 40 as a target.

ステップS505において、転送管理部23は、対象の転送元ブロック番号41に対応するチェーンブロック番号43に、その転送元ブロック番号41と同じブロック番号iを設定する。   In step S505, the transfer management unit 23 sets the same block number i as the transfer source block number 41 to the chain block number 43 corresponding to the target transfer source block number 41.

ステップS506において、転送管理部23は、対象の転送元ブロック番号41に対応する更新フラグ44を「無効」にする。カウンタiがn未満であれば、転送管理部23は、再びステップS504の処理を行う。カウンタiがnであれば、転送管理部23は、「i」を0からkまで1ずつインクリメントされるカウンタとし、ステップS507からステップS509のループ処理を行う。   In step S506, the transfer management unit 23 sets the update flag 44 corresponding to the target transfer source block number 41 to “invalid”. If the counter i is less than n, the transfer management unit 23 performs the process of step S504 again. If the counter i is n, the transfer management unit 23 sets “i” to a counter that is incremented by 1 from 0 to k, and performs the loop processing from step S507 to step S509.

ステップS507において、転送管理部23は、i個目の更新管理テーブル50を対象に選択する。   In step S507, the transfer management unit 23 selects the i-th update management table 50 as a target.

ステップS508において、転送管理部23は、対象の更新管理テーブル50のテーブル有効フラグ52を「無効」にする。そして、転送管理部23は、「j」を0からmまで1ずつインクリメントされるカウンタとし、ステップS509のループ処理を行う。   In step S508, the transfer management unit 23 sets the table valid flag 52 of the target update management table 50 to “invalid”. Then, the transfer management unit 23 uses “j” as a counter that is incremented by 1 from 0 to m, and performs the loop processing in step S509.

ステップS509において、転送管理部23は、対象の更新管理テーブル50の更新データ用バッファ53のエントリjの更新フラグ54を「無効」にする。カウンタjがm未満であれば、転送管理部23は、再びステップS509の処理を行う。カウンタjがmであり、かつ、カウンタiがk未満であれば、転送管理部23は、再びステップS507の処理を行う。カウンタjがmであり、かつ、カウンタiがkであれば、転送管理部23は、図10の動作を終了する。   In step S509, the transfer management unit 23 sets the update flag 54 of the entry j in the update data buffer 53 of the target update management table 50 to “invalid”. If the counter j is less than m, the transfer management unit 23 performs the process of step S509 again. If the counter j is m and the counter i is less than k, the transfer management unit 23 performs the process of step S507 again. If the counter j is m and the counter i is k, the transfer management unit 23 ends the operation of FIG.

図11を参照して、転送管理テーブル登録の処理手順を説明する。   With reference to FIG. 11, the transfer management table registration processing procedure will be described.

ステップS601において、転送管理部23は、プロセッサ11からDMA転送に関わる設定として、DMA転送元アドレス、DMA転送サイズおよびDMA転送先アドレスの設定を受ける。   In step S601, the transfer management unit 23 receives a DMA transfer source address, a DMA transfer size, and a DMA transfer destination address as settings related to the DMA transfer from the processor 11.

ステップS602において、転送管理部23は、ステップS601で設定されたDMA転送元アドレスを含む領域のブロック番号であるDMA転送元ブロック番号、ステップS601で設定されたDMA転送先アドレスを含む領域のブロック番号であるDMA転送先ブロック番号を算出する。   In step S602, the transfer management unit 23 sets the DMA transfer source block number which is the block number of the area including the DMA transfer source address set in step S601, and the block number of the area including the DMA transfer destination address set in step S601. The DMA transfer destination block number is calculated.

ステップS603において、転送管理部23は、変数である「残り転送サイズ」に、ステップS601で設定されたDMA転送サイズを代入する。転送管理部23は、変数である「転送元ブロック番号Stmp」に、ステップS602で算出したDMA転送元ブロック番号を代入する。転送管理部23は、変数である「転送先ブロック番号Dtmp」に、ステップS602で算出したDMA転送先ブロック番号を代入する。   In step S603, the transfer management unit 23 substitutes the DMA transfer size set in step S601 for the variable “remaining transfer size”. The transfer management unit 23 substitutes the DMA transfer source block number calculated in step S602 for the variable “transfer source block number Stmp”. The transfer management unit 23 substitutes the DMA transfer destination block number calculated in step S602 for the variable “transfer destination block number Dtmp”.

ステップS604において、転送管理部23は、転送元ブロックポインタ30のフラグ31が「無効」であるかどうかを判定する。フラグ31が「無効」であれば、転送管理部23は、ステップS605の処理を行う。一方、フラグ31が「有効」であれば、転送管理部23は、ステップS611の処理を行う。   In step S604, the transfer management unit 23 determines whether the flag 31 of the transfer source block pointer 30 is “invalid”. If the flag 31 is “invalid”, the transfer management unit 23 performs the process of step S605. On the other hand, if the flag 31 is “valid”, the transfer management unit 23 performs the process of step S611.

ステップS605において、転送管理部23は、転送元ブロックポインタ30を「転送元ブロック番号Stmp」に変更する。転送管理部23は、転送元ブロックポインタ30のフラグ31を「有効」に変更する。   In step S605, the transfer management unit 23 changes the transfer source block pointer 30 to “transfer source block number Stmp”. The transfer management unit 23 changes the flag 31 of the transfer source block pointer 30 to “valid”.

ステップS606において、転送管理部23は、転送管理テーブル40で「転送元ブロック番号Stmp」と一致する転送元ブロック番号41に対応する転送先ブロック番号42を「転送先ブロック番号Dtmp」に変更する。   In step S606, the transfer management unit 23 changes the transfer destination block number 42 corresponding to the transfer source block number 41 that matches the “transfer source block number Stmp” in the transfer management table 40 to “transfer destination block number Dtmp”.

ステップS607において、転送管理部23は、「残り転送サイズ」がブロックサイズと一致するかどうかを判定する。一致していれば、転送管理部23は、図11の動作を終了する。一方、一致していなければ、転送管理部23は、ステップS608の処理を行う。   In step S607, the transfer management unit 23 determines whether the “remaining transfer size” matches the block size. If they match, the transfer management unit 23 ends the operation of FIG. On the other hand, if they do not match, the transfer management unit 23 performs the process of step S608.

ステップS608において、転送管理部23は、転送管理テーブル40で「転送元ブロック番号Stmp」と一致する転送元ブロック番号41に対応するチェーンブロック番号43を、現状値よりも1つ大きいブロック番号に変更する。   In step S608, the transfer management unit 23 changes the chain block number 43 corresponding to the transfer source block number 41 that matches the “transfer source block number Stmp” in the transfer management table 40 to a block number that is one greater than the current value. To do.

ステップS609において、転送管理部23は、「転送元ブロック番号Stmp」を1つインクリメントする。   In step S609, the transfer management unit 23 increments “transfer source block number Stmp” by one.

ステップS610において、転送管理部23は、「残り転送サイズ」をブロックサイズ分デクリメントする。そして、転送管理部23は、再びステップS606の処理を行う。   In step S610, the transfer management unit 23 decrements the “remaining transfer size” by the block size. Then, the transfer management unit 23 performs the process of step S606 again.

ステップS611において、転送管理部23は、後述する転送管理テーブル検索の処理を行う。   In step S611, the transfer management unit 23 performs a transfer management table search process to be described later.

ステップS612において、転送管理部23は、ステップS611の検索結果が「登録済」であるかどうかを判定する。検索結果が「登録済」であれば、転送管理部23は、ステップS613の処理を行う。一方、検索結果が「未登録」であれば、転送管理部23は、ステップS614の処理を行う。   In step S612, the transfer management unit 23 determines whether the search result in step S611 is “registered”. If the search result is “registered”, the transfer management unit 23 performs the process of step S613. On the other hand, if the search result is “unregistered”, the transfer management unit 23 performs the process of step S614.

ステップS613において、転送管理部23は、DMA転送を実施する。DMA転送の処理手順については、図8および図9に示した通りである。   In step S613, the transfer management unit 23 performs DMA transfer. The processing procedure of DMA transfer is as shown in FIGS.

ステップS614において、転送管理部23は、後述する転送管理テーブル40の最終ブロック検索の処理を行う。   In step S614, the transfer management unit 23 performs a final block search process of the transfer management table 40 described later.

ステップS615において、転送管理部23は、転送管理テーブル40で、ステップS614で取得された最終ブロック番号と一致する転送元ブロック番号41に対応するチェーンブロック番号43を「転送元ブロック番号Stmp」に変更する。そして、転送管理部23は、再びステップS606の処理を行う。   In step S615, the transfer management unit 23 changes the chain block number 43 corresponding to the transfer source block number 41 that matches the final block number acquired in step S614 in the transfer management table 40 to “transfer source block number Stmp”. To do. Then, the transfer management unit 23 performs the process of step S606 again.

図12を参照して、ステップS611の転送管理テーブル検索の処理手順を説明する。   With reference to FIG. 12, the processing procedure of the transfer management table search in step S611 will be described.

ステップS701において、転送管理部23は、検索結果を仮に「未登録」としておく。転送管理部23は、変数である「検索対象ブロック番号Xtmp」に、ステップS602で算出したDMA転送元ブロック番号を代入する。転送管理部23は、転送元検索フラグに「未検索」を示す値を設定する。   In step S701, the transfer management unit 23 temporarily sets the search result as “unregistered”. The transfer management unit 23 substitutes the DMA transfer source block number calculated in step S602 for “search target block number Xtmp” which is a variable. The transfer management unit 23 sets a value indicating “not searched” in the transfer source search flag.

ステップS702において、転送管理部23は、変数である「非検索対象ブロック番号Ytmp」に、転送元ブロックポインタ30の指す転送管理テーブル40内の転送元ブロック番号41と同じブロック番号を代入する。   In step S <b> 702, the transfer management unit 23 substitutes the same block number as the transfer source block number 41 in the transfer management table 40 pointed to by the transfer source block pointer 30 for the variable “non-search target block number Ytmp”.

ステップS703において、転送管理部23は、変数である「残り検索サイズ」に、ステップS601で設定されたDMA転送サイズを代入する。   In step S703, the transfer management unit 23 substitutes the DMA transfer size set in step S601 for the “remaining search size” that is a variable.

ステップS704において、転送管理部23は、「検索対象ブロック番号Xtmp」と「非検索対象ブロック番号Ytmp」とが一致するかどうかを判定する。一致していなければ、転送管理部23は、ステップS705の処理を行う。一方、一致していれば、転送管理部23は、ステップS706の処理を行う。   In step S704, the transfer management unit 23 determines whether “search target block number Xtmp” and “non-search target block number Ytmp” match. If they do not match, the transfer management unit 23 performs the process of step S705. On the other hand, if they match, the transfer management unit 23 performs the process of step S706.

ステップS705において、転送管理部23は、「検索対象ブロック番号Xtmp」と、「非検索対象ブロック番号Ytmp」と一致する転送元ブロック番号41に対応する転送先ブロック番号42とが一致するかどうかを判定する。一致していれば、転送管理部23は、ステップS706の処理を行う。一方、一致していなければ、転送管理部23は、ステップS707の処理を行う。   In step S705, the transfer management unit 23 determines whether the “search target block number Xtmp” matches the transfer destination block number 42 corresponding to the transfer source block number 41 that matches the “non-search target block number Ytmp”. judge. If they match, the transfer management unit 23 performs the process of step S706. On the other hand, if they do not match, the transfer management unit 23 performs the process of step S707.

ステップS706において、転送管理部23は、検索結果を「登録済」として、図12の動作を終了する。   In step S706, the transfer management unit 23 sets the search result to “registered” and ends the operation of FIG.

ステップS707において、転送管理部23は、「検索対象ブロック番号Xtmp」と、「非検索対象ブロック番号Ytmp」と一致する転送元ブロック番号41に対応するチェーンブロック番号43とが一致するかどうかを判定する。一致していなければ、転送管理部23は、ステップS708の処理を行う。一方、一致していれば、転送管理部23は、ステップS709の処理を行う。   In step S707, the transfer management unit 23 determines whether “search target block number Xtmp” and the chain block number 43 corresponding to the transfer source block number 41 that matches “non-search target block number Ytmp” match. To do. If they do not match, the transfer management unit 23 performs the process of step S708. On the other hand, if they match, the transfer management unit 23 performs the process of step S709.

ステップS708において、転送管理部23は、「非検索対象ブロック番号Ytmp」を、「非検索対象ブロック番号Ytmp」と一致する転送元ブロック番号41に対応するチェーンブロック番号43と同じブロック番号に変更する。そして、転送管理部23は、再びステップS704の処理を行う。   In step S708, the transfer management unit 23 changes “non-search target block number Ytmp” to the same block number as the chain block number 43 corresponding to the transfer source block number 41 that matches “non-search target block number Ytmp”. . Then, the transfer management unit 23 performs the process of step S704 again.

ステップS709において、転送管理部23は、「残り検索サイズ」をブロックサイズ分デクリメントする。   In step S709, the transfer management unit 23 decrements the “remaining search size” by the block size.

ステップS710において、転送管理部23は、「残り検索サイズ」が0であるかどうかを判定する。「残り検索サイズ」が0よりも大きければ、転送管理部23は、ステップS711の処理を行う。一方、「残り検索サイズ」が0であれば、転送管理部23は、ステップS712の処理を行う。   In step S710, the transfer management unit 23 determines whether the “remaining search size” is zero. If the “remaining search size” is larger than 0, the transfer management unit 23 performs the process of step S711. On the other hand, if the “remaining search size” is 0, the transfer management unit 23 performs the process of step S712.

ステップS711において、転送管理部23は、「検索対象ブロック番号Xtmp」を1つインクリメントする。そして、転送管理部23は、再びステップS702の処理を行う。   In step S711, the transfer management unit 23 increments “search target block number Xtmp” by one. Then, the transfer management unit 23 performs the process of step S702 again.

ステップS712において、転送管理部23は、転送元検索フラグが「未検索」であるかどうかを判定する。転送元検索フラグが「未検索」であれば、転送管理部23は、ステップS713の処理を行う。一方、転送元検索フラグが「検索済」であれば、転送管理部23は、検索結果を「未登録」としたまま、図12の動作を終了する。   In step S712, the transfer management unit 23 determines whether the transfer source search flag is “unsearched”. If the transfer source search flag is “not searched”, the transfer management unit 23 performs the process of step S713. On the other hand, if the transfer source search flag is “searched”, the transfer management unit 23 ends the operation of FIG. 12 while keeping the search result “unregistered”.

ステップS713において、転送管理部23は、転送元検索フラグを「検索済」を示す値に変更する。   In step S713, the transfer management unit 23 changes the transfer source search flag to a value indicating “searched”.

ステップS714において、転送管理部23は、「検索対象ブロック番号Xtmp」に、ステップS602で算出したDMA転送先ブロック番号を代入する。   In step S714, the transfer management unit 23 substitutes the DMA transfer destination block number calculated in step S602 for “search target block number Xtmp”.

図13を参照して、ステップS614の転送管理テーブル40の最終ブロック検索の処理手順を説明する。   With reference to FIG. 13, the process procedure of the last block search of the transfer management table 40 in step S614 will be described.

ステップS801において、転送管理部23は、変数である「転送元ブロック番号Ztmp」に、転送元ブロックポインタ30の指す転送管理テーブル40内の転送元ブロック番号41と同じブロック番号を代入する。   In step S801, the transfer management unit 23 substitutes the same block number as the transfer source block number 41 in the transfer management table 40 pointed to by the transfer source block pointer 30 for the variable “transfer source block number Ztmp”.

ステップS802において、転送管理部23は、「転送元ブロック番号Ztmp」と、「転送元ブロック番号Ztmp」と一致する転送元ブロック番号41に対応するチェーンブロック番号43とが一致するかどうかを判定する。一致していなければ、転送管理部23は、ステップS803の処理を行う。一方、一致していれば、転送管理部23は、ステップS804の処理を行う。   In step S802, the transfer management unit 23 determines whether the “transfer source block number Ztmp” and the chain block number 43 corresponding to the transfer source block number 41 that matches the “transfer source block number Ztmp” match. . If they do not match, the transfer management unit 23 performs the process of step S803. On the other hand, if they match, the transfer management unit 23 performs the process of step S804.

ステップS803において、転送管理部23は、「転送元ブロック番号Ztmp」に、「転送元ブロック番号Ztmp」と一致する転送元ブロック番号41に対応するチェーンブロック番号43を代入する。   In step S803, the transfer management unit 23 substitutes the chain block number 43 corresponding to the transfer source block number 41 that matches the “transfer source block number Ztmp” in the “transfer source block number Ztmp”.

ステップS804において、転送管理部23は、転送管理テーブル40の最終ブロック番号として「転送元ブロック番号Ztmp」を取得し、図13の動作を終了する。   In step S804, the transfer management unit 23 acquires “transfer source block number Ztmp” as the final block number of the transfer management table 40, and ends the operation of FIG.

***実施の形態の効果の説明***
本実施の形態では、メモリ制御装置13がDMA転送対象のデータに対するプロセッサ11からの参照要求を検出したときに、参照要求の対象データのDMA転送が未実施であれば、そのDMA転送の実施よりも先に、転送前のデータをプロセッサ11に参照させる。そのため、DMA転送による命令の実行待ちをなくし、プロセッサ11の処理時間を短縮することができる。
*** Explanation of the effect of the embodiment ***
In the present embodiment, when the memory control device 13 detects a reference request from the processor 11 for DMA transfer target data, if the DMA transfer of the reference request target data has not been performed, the DMA transfer is performed. First, the processor 11 is referred to the data before transfer. For this reason, it is possible to eliminate the waiting for the execution of an instruction by DMA transfer, and to shorten the processing time of the processor 11.

本実施の形態によれば、DMA転送命令とその命令の後続命令との間に依存関係がある場合でも、後続命令は、先行するDMA転送命令の終了を待たずに実行可能である。つまり、メモリ12内のデータを転送するDMA転送を実行する命令とその命令の後続命令との間に依存関係がある場合でも、DMA転送を待たずに後続命令を実行して処理時間を短くすることができ、プロセッサ11が行う処理の完了までの時間を短縮することができる。   According to the present embodiment, even when there is a dependency between a DMA transfer instruction and a subsequent instruction of the DMA transfer instruction, the subsequent instruction can be executed without waiting for the preceding DMA transfer instruction to end. That is, even if there is a dependency between an instruction that executes DMA transfer for transferring data in the memory 12 and a subsequent instruction of the instruction, the subsequent instruction is executed without waiting for the DMA transfer to shorten the processing time. And the time until completion of the processing performed by the processor 11 can be shortened.

***他の構成***
本実施の形態の変形例として、メモリ制御装置13に内蔵される構成要素のうち、1つ以上の構成要素がメモリ制御装置13の外部に配置されてもよい。具体例として、DMAC25がメモリ制御装置13の外部に配置され、メモリ制御装置13と電気的に接続されて転送管理部23からの指令により動作してもよい。あるいは、アクセス制御部24がメモリ制御装置13の外部に配置され、メモリ制御装置13と電気的に接続されて転送管理部23からの指令により動作してもよい。いずれの例においても、メモリ制御装置13は、DMA転送を実施する機能を発揮することができる。
*** Other configurations ***
As a modification of the present embodiment, one or more components among the components built in the memory control device 13 may be arranged outside the memory control device 13. As a specific example, the DMAC 25 may be disposed outside the memory control device 13, electrically connected to the memory control device 13, and operated according to a command from the transfer management unit 23. Alternatively, the access control unit 24 may be disposed outside the memory control device 13, electrically connected to the memory control device 13, and operated according to a command from the transfer management unit 23. In any example, the memory control device 13 can exhibit a function of performing DMA transfer.

別の変形例として、DMAC25およびアクセス制御部24の少なくともいずれかが転送管理部23に内蔵されていてもよい。   As another modification, at least one of the DMAC 25 and the access control unit 24 may be incorporated in the transfer management unit 23.

10 計算機システム、11 プロセッサ、12 メモリ、13 メモリ制御装置、14 周辺バスブリッジ、15 I/O機器、16 システムバス、17 メモリバス、18 I/Oバス、21 システムバスI/F、22 アクセス検出部、23 転送管理部、24 アクセス制御部、25 DMAC、30 転送元ブロックポインタ、31 フラグ、40 転送管理テーブル、41 転送元ブロック番号、42 転送先ブロック番号、43 チェーンブロック番号、44 更新フラグ、50 更新管理テーブル、51 転送先ブロック番号、52 テーブル有効フラグ、53 更新データ用バッファ、54 更新フラグ。   10 computer system, 11 processor, 12 memory, 13 memory controller, 14 peripheral bus bridge, 15 I / O device, 16 system bus, 17 memory bus, 18 I / O bus, 21 system bus I / F, 22 access detection Unit, 23 transfer management unit, 24 access control unit, 25 DMAC, 30 transfer source block pointer, 31 flag, 40 transfer management table, 41 transfer source block number, 42 transfer destination block number, 43 chain block number, 44 update flag, 50 update management table, 51 transfer destination block number, 52 table valid flag, 53 update data buffer, 54 update flag.

Claims (4)

メモリの領域間でのデータ転送であるDMA転送を実施するメモリ制御装置において、
プロセッサからの要求を検出するアクセス検出部と、
前記メモリの指定アドレスにデータを書き込むライト要求が前記アクセス検出部により検出されたときに、前記指定アドレスを含む領域を転送先とする未実施のDMA転送がなければ、前記プロセッサから送信されたデータを前記指定アドレスに書き込み、前記未実施のDMA転送があれば、前記プロセッサから送信されたデータをバッファに書き込んだ後、前記指定アドレスへのデータ転送を除く前記未実施のDMA転送と、前記バッファから前記指定アドレスへのデータ転送とを実施する転送管理部と
を備えるメモリ制御装置。
In a memory control device that performs DMA transfer, which is data transfer between memory areas,
An access detection unit for detecting a request from the processor;
When a write request for writing data to the specified address of the memory is detected by the access detection unit, if there is no unexecuted DMA transfer with the area including the specified address as the transfer destination, the data transmitted from the processor If there is an unexecuted DMA transfer to the designated address, the data transmitted from the processor is written to the buffer, and then the unexecuted DMA transfer excluding the data transfer to the designated address and the buffer A memory control device comprising: a transfer management unit that performs data transfer from the designated address to the designated address.
前記転送管理部は、前記ライト要求が前記アクセス検出部により検出されたときに、前記未実施のDMA転送があれば、前記バッファを確保し、前記バッファから前記指定アドレスへのデータ転送を実施した後、前記バッファを解放する請求項に記載のメモリ制御装置。 When the write request is detected by the access detection unit, the transfer management unit secures the buffer if there is an unexecuted DMA transfer, and performs data transfer from the buffer to the designated address. after, a memory control device according to claim 1, releasing the buffer. 前記転送管理部は、前記未実施のDMA転送における転送先の領域を識別する番号と前記バッファの中で前記指定アドレスに転送されるデータが書き込まれた位置を示す情報とをそれぞれ転送先ブロック番号および更新情報として設定する更新管理テーブルを保持し、個々のDMA転送を実施する際に、前記個々のDMA転送における転送先の領域を識別する番号が転送先ブロック番号として前記更新管理テーブルに設定されていれば、その転送先ブロック番号に対応する更新情報を前記更新管理テーブルから取得し、前記指定アドレスへのデータ転送を除く前記個々のDMA転送と、前記バッファの中で、取得した更新情報に示された位置から前記指定アドレスへのデータ転送とを実施する請求項またはに記載のメモリ制御装置。 The transfer management unit includes a transfer destination block number indicating a number for identifying a transfer destination area in the unexecuted DMA transfer and information indicating a position where data to be transferred to the designated address is written in the buffer. And an update management table to be set as update information, and when performing each DMA transfer, a number for identifying a transfer destination area in the individual DMA transfer is set in the update management table as a transfer destination block number. If so, the update information corresponding to the transfer destination block number is acquired from the update management table, and the individual DMA transfer excluding the data transfer to the designated address and the acquired update information in the buffer. the memory control device according to claim 1 or 2 from the position shown carrying out the data transfer to the specified address. 請求項1からのいずれか1項に記載のメモリ制御装置と、
前記メモリと、
前記プロセッサと
を備える計算機システム。
The memory control device according to any one of claims 1 to 3 ,
The memory;
A computer system comprising the processor.
JP2017012719A 2017-01-27 2017-01-27 Memory control device and computer system Active JP6289689B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017012719A JP6289689B1 (en) 2017-01-27 2017-01-27 Memory control device and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017012719A JP6289689B1 (en) 2017-01-27 2017-01-27 Memory control device and computer system

Publications (2)

Publication Number Publication Date
JP6289689B1 true JP6289689B1 (en) 2018-03-07
JP2018120499A JP2018120499A (en) 2018-08-02

Family

ID=61557981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017012719A Active JP6289689B1 (en) 2017-01-27 2017-01-27 Memory control device and computer system

Country Status (1)

Country Link
JP (1) JP6289689B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5858114A (en) * 1993-10-29 1999-01-12 Board; Alan Edwin Method and apparatus for cleaning liquid dispensing systems
JP2004145376A (en) * 2001-03-09 2004-05-20 Internatl Business Mach Corp <Ibm> Method and device for controlling dma transfer
JP2005135240A (en) * 2003-10-31 2005-05-26 Fuji Xerox Co Ltd Data transfer control device and image forming apparatus
JP2008108126A (en) * 2006-10-26 2008-05-08 Canon Inc Data transfer control device and bus access arbitration system therefor
JP2010152837A (en) * 2008-12-26 2010-07-08 Mitsubishi Electric Corp Buffer device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5858114A (en) * 1993-10-29 1999-01-12 Board; Alan Edwin Method and apparatus for cleaning liquid dispensing systems
JP2004145376A (en) * 2001-03-09 2004-05-20 Internatl Business Mach Corp <Ibm> Method and device for controlling dma transfer
JP2005135240A (en) * 2003-10-31 2005-05-26 Fuji Xerox Co Ltd Data transfer control device and image forming apparatus
JP2008108126A (en) * 2006-10-26 2008-05-08 Canon Inc Data transfer control device and bus access arbitration system therefor
JP2010152837A (en) * 2008-12-26 2010-07-08 Mitsubishi Electric Corp Buffer device

Also Published As

Publication number Publication date
JP2018120499A (en) 2018-08-02

Similar Documents

Publication Publication Date Title
JP5939305B2 (en) Information processing apparatus, parallel computer system, and information processing apparatus control method
US9164951B2 (en) Multiprocessor system, execution control method and execution control program
EP2159706A1 (en) Operation processing apparatus and operation processing method
JP2020507848A (en) Method and apparatus for providing accelerated access to a memory system
JP2015194877A (en) Transfer device, determination method, and data processing device
JP6289689B1 (en) Memory control device and computer system
JP6740719B2 (en) Information processing apparatus, information processing method, and program
US11586564B2 (en) Head of line entry processing in a buffer memory device
JP2016076025A (en) Arithmetic processing device and method for controlling arithmetic processing device
US8244919B2 (en) Data transfer apparatus, system and method using the same
KR101103818B1 (en) Apparatus for controlling memory management unit, multi-core processor and computer system including the same, and method of controlling memory management unit
JP2009199384A (en) Data processing apparatus
JP4463190B2 (en) Multiprocessor system, input / output control device, and request issuing method
WO2022004837A1 (en) Information processing device, information processing method, and recording medium for information processing program
WO2017216892A1 (en) Data transfer device and data transfer method
US20230185726A1 (en) Information processing apparatus and control method
JP6565729B2 (en) Arithmetic processing device, control device, information processing device, and control method for information processing device
JP5266651B2 (en) Branch prediction apparatus and branch prediction method using local branch history
US20230153021A1 (en) Memory management unit, method for memory management, and information processing apparatus
US11182294B2 (en) Apparatus and method for providing an atomic set of data accesses
JP2010140306A (en) Control system for boundary execution, control method for boundary execution, and control program for boundary execution
WO2014147768A1 (en) Control device, control program, and control method
US20150234656A1 (en) Vector processor, information processing apparatus, and overtaking control method
JP3260566B2 (en) Storage control method and storage control device in information processing system
KR100723475B1 (en) Cash memory system and method for changing line size of cash memory according to bus latency of bus

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180206

R150 Certificate of patent or registration of utility model

Ref document number: 6289689

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250