WO2004079583A1 - データ転送制御装置およびdmaデータ転送制御方法 - Google Patents

データ転送制御装置およびdmaデータ転送制御方法 Download PDF

Info

Publication number
WO2004079583A1
WO2004079583A1 PCT/JP2003/002608 JP0302608W WO2004079583A1 WO 2004079583 A1 WO2004079583 A1 WO 2004079583A1 JP 0302608 W JP0302608 W JP 0302608W WO 2004079583 A1 WO2004079583 A1 WO 2004079583A1
Authority
WO
WIPO (PCT)
Prior art keywords
dma
transfer
dmac
data
request
Prior art date
Application number
PCT/JP2003/002608
Other languages
English (en)
French (fr)
Inventor
Ryuta Tanaka
Toru Tsuruta
Ritsuko Tanaka
Norichika Kumamoto
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2003/002608 priority Critical patent/WO2004079583A1/ja
Priority to JP2004569091A priority patent/JPWO2004079583A1/ja
Publication of WO2004079583A1 publication Critical patent/WO2004079583A1/ja
Priority to US11/140,732 priority patent/US7415550B2/en

Links

Classifications

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

Definitions

  • the present invention relates to a data transfer control device, a DMA (Direct Memory Access) controller, and a DMA data transfer method, and more particularly to a data transfer control device, a DMA controller, and a DMA data transfer control method capable of changing a data transfer method.
  • DMA Direct Memory Access
  • DMAC DMA controller that is in charge of data transfer separately from the main processor that actually processes the data.
  • the DMAC normally operates independently of the main processor and transfers data between memory areas according to the specified transfer source, transfer destination, and transfer size.
  • the DMA transfer processing by the DMAC can be a simple transfer of copying between certain memory areas, a complex rectangular area, or a complex transfer based on a certain rule, or an advanced method using addresses obtained by calculation. Until the transfer, there are various requirements according to the requirements of the computer system.
  • the conventional DMAC usually sets the data transfer source address, transfer destination address, transfer size, etc. in the IZO register area where parameters are set, and starts transfer by a start instruction.
  • Such DMACs can be used alone or as part of a system. As a part, it was designed as a peripheral chip and realized with functions fixed by hardware circuits.
  • the DMAC Since the DMAC implements its functions by hardware circuits, it is designed individually according to the purpose of use. For example, some have multiple transfer channels and support parallel execution of multiple DMA transfers, and others have the ability to store transfer requests in FIFO buffers and process them one after another. As described above, DMAC having various functions according to the purpose of use has been commercialized.
  • the DMAC since the DMAC is mounted as an auxiliary circuit of the main processor, it usually has only a relatively simple address update function due to circuit cost and power issues. Therefore, transfer with advanced processing cannot be performed. For example, in many cases, DMA C cannot handle complicated address processing such as transfer using a special address update pattern. There are DMACs that support such special addressing, but such DMACs are often for specific applications, and often cannot be used effectively depending on the installed applications.
  • the main processor calculates and sets the address while performing transfer instructions. Data transfer. As a result, the processing time of the main processor was occupied by the transfer, resulting in a decrease in system performance.
  • Patent Document 1
  • Patent Document 2
  • a subprocessor that functions as a DMAC as shown in Patent Document 2 is a general-purpose processor. Therefore, for address control of data transfer between memories and the like, the subprocessor performs more complicated processing than the DMAC having dedicated hardware. For example, the sub-processor executes a squeeze instruction and a store instruction in response to a memory-to-memory transfer instruction to fetch the value into a register once, and then write that register value to memory. You have to enter.
  • DMA C with a hardware configuration specialized for the DMA function performs only address update and data read / write control, controls burst transfer, and realizes high-speed data transfer between memories. I have.
  • a method in which one of the processors in a multi-processor system handles the transfer allows for a flexible and complex DMA transfer, but at the expense of a lower transfer speed, and also has a special dedicated DMAC.
  • mounting a processor with a large circuit size in comparison with the above causes a cost problem.
  • the main purpose of DMA C DMA transfer is to make the DMA transfer time invisible from the processing time of the main processor. However, when the transfer speed of the sub processor is reduced, the DMA transfer by the sub processor is not possible. Does not complete. Therefore, the possibility that the main processor cannot proceed to the next process is more likely to occur. Disclosure of the invention
  • the present invention has been made in view of such a point, and a data transfer control device, a DMA controller, and a DMA capable of efficiently executing a DMA transfer capable of easily changing a function according to a usage form.
  • the purpose is to provide a data transfer control method.
  • a data transfer control device as shown in FIG. 1 is provided.
  • the data transfer control device transfers data between a plurality of memories 12 and 13.
  • This data transfer control device stores the DMA program 15 d in which the processing procedure of the DMA transfer is described in the memory 15 for the DMA controller, and when a DMA request is received, stores it in the memory 15 for the DMA controller.
  • a DMA controller 14 for executing data transfer by the DMA between the plurality of memories 12 and 13 in accordance with the DMA program 15d.
  • DMA transfer according to the DMA program 15d stored in the DMA controller memory 15 is executed by the DMA controller 14.
  • a DMA controller for controlling DMA transfer via a path reads an instruction in a DMA program from a memory for DMA, interprets the contents of the instruction, and responds to the instruction.
  • a DMA controller comprising: an instruction decoder that outputs a control signal; and an address generation circuit that generates an address for DMA transfer according to the control signal from the instruction decoder.
  • a DMA transfer processing procedure is provided in a dedicated DMA controller memory capable of executing a program.
  • the DMA controller writes the plurality of memories according to the DMA program stored in the memory for the DMA controller. And performing data transfer by DMA between them.
  • FIG. 1 is a diagram illustrating an example of a system configuration according to an embodiment.
  • FIG. 2 is a diagram illustrating an example of a data structure of a DMA request parameter overnight table.
  • FIG. 3 is a diagram illustrating an example of a data structure of a DMA request management table.
  • FIG. 4 is a diagram showing a data structure example of the DMA channel information table.
  • FIG. 5 is a flowchart of the processing of the transfer program executed by the DMAC.
  • FIG. 6 is a diagram illustrating an example of a system configuration according to the second embodiment.
  • FIG. 7 is a diagram illustrating an example of a data structure of a channel management table.
  • FIG. 8 is a conceptual diagram illustrating channel management.
  • FIG. 9 is a flowchart showing a DMA process when a plurality of channels are managed.
  • FIG. 10 is a diagram illustrating a system configuration example according to the third embodiment.
  • FIG. 11 is a flowchart of a process of an operation of replacing a program during operation.
  • FIG. 12 is a diagram illustrating an example of a system configuration according to the fourth embodiment.
  • FIG. 13 is a diagram showing an example of the data structure of the DMA setting management table.
  • FIG. 14 is a flowchart showing a DMA start processing procedure by the upper processor.
  • FIG. 15 is a flowchart showing a DMA request detection process by the DMAC.
  • FIG. 16 is a sequence diagram showing the procedure of status update.
  • FIG. 17 is a diagram illustrating a configuration example of a system according to the fifth embodiment.
  • FIG. 18 is a diagram illustrating an example of the transfer synchronization table.
  • FIG. 19 is a diagram illustrating an example of a DMA channel information table according to the fifth embodiment.
  • FIG. 20 is a flowchart showing the procedure of the synchronous operation of the DMAC.
  • FIG. 21 is a diagram illustrating a configuration example of a system according to the sixth embodiment.
  • FIG. 22 is a diagram showing an example of the data structure of the memory area management information table.
  • FIG. 23 is a flowchart showing the procedure of the parameter inspection process.
  • FIG. 24 is a diagram illustrating an example of a system configuration according to the seventh embodiment.
  • FIG. 25 is a block diagram showing the internal configuration of the DMAC.
  • FIG. 26 shows the basic register configuration
  • FIG. 27 is a diagram showing a basic instruction set executable by the DMAC.
  • FIG. 28 is a diagram illustrating an example of a branch condition.
  • FIG. 29 illustrates the address update function
  • FIG. 30 is a diagram showing a configuration of the extension register.
  • FIG. 31 is a diagram illustrating an example of the extended instruction set.
  • FIG. 32 is a diagram showing extended conditions.
  • FIG. 33 is a diagram illustrating an example of the DMA program.
  • FIG. 34 is a diagram showing the concept of rectangular block DMA transfer.
  • FIG. 35 is a diagram showing an example of a DMA request parameter table for rectangular block transfer.
  • FIG. 36 is a flowchart showing the procedure of the rectangular block DMA transfer process.
  • FIG. 37 is a diagram showing an example of a DMA request parameter overnight table of a relative address description.
  • FIG. 38 is a diagram illustrating an example of rectangular block transfer.
  • FIG. 39 is a diagram illustrating a system configuration example according to the ninth embodiment. BEST MODE FOR CARRYING OUT THE INVENTION
  • embodiments of the present invention will be described with reference to the drawings.
  • the first embodiment is a basic configuration for realizing the present invention.
  • FIG. 1 is a diagram illustrating an example of a system configuration according to an embodiment.
  • a processor 11, two memories 12, 13, and a DMA controller (DMAC) 14 are connected to each other via a bus 16. Further, a DMAC memory 15 is connected to the DMAC 14 via a dedicated bus 17.
  • DMAC DMA controller
  • the processor 11 controls the entire system.
  • the memories 12 and 13 are recording media for storing data used for the operation of the system.
  • the DMAC 14 is a circuit that controls data transfer between memory areas. Upon receiving the DMA request, the DMAC 14 implements the DMA transfer specified by the DMA request in accordance with the DMA program 15d and data stored in the DMAC memory 15.
  • the DMAC 14 is a programmable circuit specialized for controlling DMA transfer, and includes an instruction decoder for interpreting instructions, an address generation circuit for generating a read address and a write address for DMA transfer, and the like.
  • the DMAC 14 since the DMAC 14 has a DMA transfer function described in the DMA program 15d, the function can be flexibly changed. For example, if the DMA program 15d describes a processing procedure (program module) for multiple functions such as simple DMA transfer and advanced DMA transfer (transfer of rectangular area, etc.), the DMAC 14 specifies the mode. The function can be selected according to the function, etc., and the selected function can be executed.
  • a processing procedure program module
  • advanced DMA transfer transfer of rectangular area, etc.
  • the DMAC memory 15 is a recording medium for storing programs to be executed by the DMAC 14 and data necessary for execution.
  • the DMAC memory 15 is provided exclusively for the DMAC 14.
  • a program describing an operation to be executed by the DMAC 14 is arranged.
  • the DMAC memory 15 includes a DAM request parameter table 15a for each DMA request, a DMA request management table 15b, a DMA channel information table 15c, and a DMA program 1 5 d is stored.
  • the parameter input by the DMA request is stored in the DMA request parameter table 15a.
  • the DMA request management table 15b stores a list of DMA requests output from the processor 11 or the like.
  • the DMA channel information table 15c stores information on the status (data transfer state) for each DMA channel.
  • the DMA program 15d is a set of instructions in which processing to be executed by the DMAC 14 is described.
  • the DMAC 14 and the DMAC memory 15 function as a DMA transfer controller.
  • the DMAC 14 executes the DMA transfer according to the DMA program 15 d in the DMA memory 15.
  • the DMA C 14 stores the contents of the DMA request in the DMA request parameter table 15a.
  • the DMA requests stored in the DMA request parameter table 15a are queue-managed using the DMA request management table 15b, and are processed, for example, in the order in which they are stored. Information on the DMA transfer being executed is managed by the DMA channel information table 15c.
  • the DMAC 14 has the dedicated instruction memory area for storing the data transfer program for DMAC, and performs the DMA transfer by executing the program stored here.
  • the DMAC 14 has the function of interpreting and executing program control instructions (loop control instructions, branch instructions, condition judgment, etc.) and transfer instructions, but has the multiplication function and logical operation function that ordinary microprocessors have. Since there is no need to mount a complicated arithmetic unit, the circuit configuration can be simpler than that of a general-purpose processor. Specifically, the DMAC 14 only needs to operate as a sequencer, fetches and executes a stored program one instruction at a time, and controls DMA transfer.
  • the transfer source address, transfer destination address, and transfer size are set as DMA parameters, and the DMAC performs the transfer according to it, as in the case of a general DMA transfer. Basic operation becomes possible. Furthermore, the number of channels for DMA transfer can be made variable, and the number of queues set in the DMA parameters can be made variable, allowing flexible control depending on the program.
  • the dedicated DMAC 14 that can execute a transfer instruction and the like can Solve the problems in these DMA transfers.
  • the DMA C memory 15 connected to the DMA C 14 may be equipped with a 2-port read memory that can simultaneously read instructions and data, or may be equipped with separate instruction memory and data memory. It is possible. In this case, the instruction fetch from the instruction memory and the read / write of the data memory can be performed at the same time, so that the occurrence of a wait due to the memory access collision between the instruction fetch and the data rewrite can be avoided. In addition, it is possible to mount another memory area via a node as the memory 15 for the DMAC connected to the DMAC 14, and at this time, each memory area for the data DMA transfer of data by DMAC is possible.
  • FIG. 2 is a diagram showing an example of the data structure of the DMA request parameter table.
  • the DMA request parameter table 15a there are a transfer source, a transfer destination, a transfer size, a mode, and optional parameters as data items. A set of these data forms one DMA request parameter.
  • the transfer source is a memory address indicating the head of the storage area of the data to be transferred.
  • the transfer destination is a memory address indicating the head of a storage area where the transferred data is to be stored.
  • the transfer size is the data capacity to be transferred by DMA.
  • the mode is information for designating processing contents at the time of DMA transfer. That is, by switching the mode, the processing contents of the DMA transfer can be changed.
  • the optional parameter is a parameter required for executing advanced transfer processing (processing requiring a parameter other than the source, destination, and transfer size).
  • FIG. 3 is a diagram showing an example of a data structure of a DMA request management table.
  • a pointer to the DMA request parameter 15a and an attribute are registered in association with the identification information of the DMA request.
  • the pointer to the DMA request parameter 15a is a memory address indicating the area where the corresponding DMA request parameter 15a is stored.
  • the attribute indicates the attribute of the DMA request. Attribute values include, for example, “valid” and “invalid”. Valid indicates that DMA processing must be performed on demand; invalid indicates that DMA processing does not need to be performed on demand (for example, DMA transfer has already been completed). Completed).
  • FIG. 4 is a diagram illustrating an example of a data structure of the DMA channel information table.
  • the DMA channel information table 15c data of items such as request management table pointer, processing target, transfer source, transfer destination, remaining size, mode, and optional parameters are registered.
  • the request management table pointer is a memory address indicating the storage location of the corresponding DMA request management table 15b.
  • the processing target is the identification information of the processing request being processed in the channel.
  • the transfer source is a memory address indicating the storage location of data to be transferred next.
  • the transfer destination is a memory address indicating the storage area where the next transferred data should be stored.
  • the remaining size is the size of the remaining data to be transferred.
  • the mode is the mode of the DMA request that is currently executing the DMA transfer.
  • the option parameter overnight is an option parameter set for the currently executing DMA transfer process.
  • the DMA channel information table 15c manages the execution state of which request in the management table has been processed and which request is being processed. Although the size of these tables ultimately depends on the installed memory capacity, it is possible to manage a large number of requests because the DMA transfer requests can be managed by the size reserved as the table area.
  • the DMA program 15 d to be executed by the DMAC 14 is stored in the DMAC memory 15 in advance. Then, when a DMA transfer is required, the processor 11 passes a DMA request to the DMA C 14.
  • the DMA request includes a DMA parameter.
  • the DMAC 14 Upon receiving the DMA request, the DMAC 14 stores parameters relating to the DMA request in the DMA request parameter table 15a, and stores an entry of the DMA request including a pointer to the DMA request parameter in the DMA request management table. Add to 15b. At this time, “valid” is set in the attribute of the DMA request.
  • the DMAC 14 When a valid DMA request is registered in the DMA request management table 15b, the DMAC 14 performs a DMA transfer process according to the DMA program 15d.
  • FIG. 5 is a flowchart of the processing of the transfer program executed by the DMAC. This process is executed when new DMA request information is registered in the DMA channel information table 15c. Hereinafter, the processing illustrated in FIG. 5 will be described along the step numbers.
  • Step SI The DMAC 14 reads a pointer to the DMA request management table 15b from the DMA channel information table 15c, and sets the first request parameter in the DMA request management table 15b as the currently processed DMA request. I do.
  • Step S2 The DMAC 14 reads the currently processed DMA request parameter from the DMA channel information table 15c.
  • Step S3 The DMAC 14 transfers only one unit (for example, one byte) according to the read value. At this time, the DAMC 14 updates data of the remaining size in the DMA channel information table 15c. That is, the remaining data is subtracted from the remaining size by the amount of transferred data.
  • the DMAC 14 updates the addresses of the transfer source and the transfer destination of the DMA transfer (adds the addresses by the transferred unit data).
  • Step S5 The DMAC 14 determines whether or not the transfer end condition is satisfied.
  • the termination condition is, for example, that the data transfer for the transfer size has been completed. That is, if the remaining size of the DMA channel information is 0, it is determined that the transfer is completed. If the transfer end condition is satisfied, the process proceeds to step S6. If the transfer end condition is not satisfied, the process proceeds to step S3, and the transfer is continued.
  • Step S6 The DMAC 14 updates the pointer to the next DMA request of the DMA request management table 15b.
  • Step S7 The DMAC 14 determines whether or not processing according to all DMA requests has been completed. If the process according to the DMA request has not been completed, the process proceeds to step S2. When the processing according to the DMA request ends, the processing-ends.
  • the DMAC 14 manages the processing target of the channel information table 15 c in order to process the next DMA request. Rewrite to the next DMA request stored in Table 15b. Then, the DMA C 14 enters a new DMA process to be processed.
  • the DMA transfer according to the DMA program 15 d stored in the DMA C memory 15 is executed.
  • processing functions can be changed.
  • the conventional DMA C configured with dedicated hardware has a limit on the number of DMA requests that can be managed. This is because the buffer area for storing requests is realized and fixed in hardware, and until now, manageable requests were usually several to several tens.
  • the processing contents in the DMAC are defined by the DMA program 15d, so that it is easy to change the function of the DMA transfer processing.
  • the information of the channels to be processed in the DMA C can be managed in a table by the DMA program 15d.
  • the DMA program 15d it is easy to change the number of tables in a program.
  • one unit of transfer is one data, assuming that the instruction mounted on the DMAC is a simple transfer instruction. If a burst transfer instruction is set in the DMA program 15d, a burst transfer is performed.
  • the DMA transfer performed in a fixed pattern can be easily secured as a table.
  • the same pattern of DMA request can be specified by specifying the same DMA request parameter by the pointer registered in the DMA request management table 15b.
  • DMA transfer can be easily re-executed. This eliminates the need to set the DMA request parameter every time data is transferred, and improves processing efficiency.
  • the conventional DMAC implemented by DMA-specific hardware conforming to the specifications was able to accept only the number of transfer requests specified by the specified number of DMA channels.
  • the DMA C 14 according to the first embodiment is programmable, the transfer request can be queued as long as the memory permits. Like this Since there is no limit on the depth of the logs, operational restrictions on operation are eased.
  • the DMAC 14 can perform data transfer with simple processing by generating a memory address for DMA transfer by a memory address generation circuit or the like.
  • the number of channels can be easily changed. That is, in general, the number of requests for the number of DMA channels varies depending on the application installed in the system. Nevertheless, in the case of a hardware-configured DMA function, the number of channels is usually fixed. For this reason, there are problems such as over-specification of the request, or complicated DMA management due to lack of channels.
  • the DMA request management template used in the first embodiment is regarded as one channel of DMA, and a plurality of DMA request management tables are managed by the channel management table. Treat as a transfer.
  • FIG. 6 is a diagram illustrating an example of a system configuration according to the second embodiment. Since the system configuration in the second embodiment is almost the same as that of the first embodiment shown in FIG. 1, the same components are denoted by the same reference numerals and description thereof will be omitted.
  • the second embodiment differs from the first embodiment only in the information stored in the DRAM memory 15. As shown in FIG. 6, in the second embodiment, a plurality of DMA request management tables 15 e are provided in the DMAC 15. In addition, a channel management table 15f has been added. Further, the DMA memory 15 stores a DMA program 15g in which a processing procedure for realizing the function of the second embodiment is described.
  • the DMA request management table 15 e is provided for each channel.
  • the data structure of each DMA request management table 15 e is the same as that of the first embodiment shown in FIG. This is the same as the data structure of the DMA request management table 15b.
  • the channel management table 15 is information (channel pointers and the like) for managing the plurality of DMA channel information tables 15c.
  • FIG. 7 is a diagram illustrating an example of a data structure of a channel management table.
  • a number a pointer to the DMA channel information table 15c (channel pointer), and an attribute are registered for each record.
  • the number is the identification number of each record.
  • the pointer to the DMA channel information table 15c is the address of the storage area where one DMA channel information table 15c is stored.
  • the pointer to the request management table described in the DMA channel information table 15c is the address of the storage area where one DMA request management table 15e is stored.
  • the attribute is information indicating whether the record is valid or invalid.
  • a plurality of channel information is managed through the channel management table 15f as described above.
  • FIG. 8 is a conceptual diagram illustrating channel management.
  • a plurality of DMA channel information tables 18a and 18c provided for each channel are registered in the channel management table 15f, and each of them is a DMA request management table.
  • Registered request management tables for 16a and 16b are registered.
  • pointers to a plurality of DMA request parameter tables 17a and 17b are registered.
  • Pointers to a plurality of DMA request parameter tables 17c and 17d are registered in the DMA request management table 16b of the channel 2.
  • the number of DMA request management tables currently being managed is the number of DMA channels currently being processed.
  • the DMA request management table has already been described. Each DMA transfer request is managed as a transfer request for one channel, and transfer processing is performed one after another.
  • each of the plurality of channels there is a DMA request currently being subjected to the transfer processing, and each of the DMA requests follows the priority information defined in advance. Processing is performed in an appropriate order.
  • FIG. 9 is a flowchart showing DMA processing when a plurality of channels are managed. This method uses a time-sharing method to evenly process DMA requests being processed in each channel, one data unit at a time. Hereinafter, the processing illustrated in FIG. 9 will be described in the order of step numbers.
  • Step S11 First, the DMAC 14 reads one pointer from the channel management table 15 to the DMA channel information table 15c.
  • Step S12 The DMAC 14 determines the channel attribute of the read channel information table point. If the channel is “valid”, the process proceeds to step S13. If the channel is “invalid”, the process proceeds to step S16.
  • the DMAC 14 reads the status of the DMA channel information table 15c, and checks the transfer state of the DMA request currently being processed.
  • Step S14 The DMAC 14 performs the DMA transfer by one data unit based on the DMA request to be processed registered in the read DMA channel information table 15c.
  • Step S15 The DMAC 14 updates the status of the transfer state in the DMA channel information table 15c.
  • Step S16 The DMAC 14 transfers the pointer to the DMA channel information table 15 to the next channel.
  • Step S17 The DMAC 14 determines whether or not processing for all channels has been completed. If this process has not been completed for all channels, the process proceeds to step S11. If the process has been completed for all channels, it is determined that the cyclic process for each channel has been completed once. Become. By repeating such processing, the DMA processing proceeds. When the request in question is processed on one channel, the target proceeds to the next request waiting for processing as before. When all requests for a certain channel have been processed, this channel is rewritten from “valid” to “invalid” and excluded from processing until a new DMA request is stored. When the “valid” channel disappears from the channel management list, the DMA processing is completed.
  • the priorities of all the channels are equal, but the processing may be performed with additional weights (priorities).
  • transfer requests are accumulated in a DMA channel, and the DMAC processes them in order. Specifically, if the transfer of a certain block area frequently appears, the DMAC can use the frequently used transfer setting pattern set for a certain channel if the number of channels has room, and then transfer it to another Keep the channel setting state without overwriting with the setting. Then, when the DMA transfer is to be executed again, consideration is made so that the DMA transfer is executed with only a minimum change of parameters. If the number of channels is not sufficient, it will be necessary to re-set the settings after another transfer, and the setting work will be overhead.
  • the DMAC 14 processes the DMA request of each "valid" channel for one data transfer unit, and then processes the next request. Move on to the DMA request processing of the channel. As a result, the DMA request of each channel is processed evenly by one data transfer unit. As a result, it is easy to add and delete channels. Such processing is repeated, and when there is no more unprocessed portion of the DMA request of a channel, the channel changes from the “valid” state to the terminated state.
  • the number of channels can be changed, and registration and deletion in the channel management table are easy. For this reason, the parameters of frequently used transfer patterns are set for a certain channel, all information of the channel is stored in the memory, and registered in the channel management table as needed. By deleting, and enabling / disabling, it is not necessary to set the frequently used transfer patterns again and the overhead can be greatly reduced.
  • FIG. 10 is a diagram illustrating a system configuration example according to the third embodiment.
  • a memory 22, a DMAC 24, and a DMAC memory 25 are connected to the upper processor 21 via a bus 26.
  • the upper processor 21 is connected to the DMAC 24 by a dedicated bus 28.
  • the memory 22 and the DMAC 24 are connected to the memory 23 via a bus 27.
  • the D MAC 24 is connected to a DMAC memory 25 via a bus 29.
  • the dedicated bus 28 transmits a reset signal and a transfer end signal as control signals. This allows the upper processor 21 to access the DMAC memory 25 to replace the DMA program or control the DMA transfer timing.
  • FIG. 11 is a flowchart of a process of an operation of replacing a program during operation. Hereinafter, the processing illustrated in FIG. 11 will be described along the step numbers.
  • the host processor 21 outputs a reset signal via the dedicated bus 28, and stops the DMAC 24.
  • the upper processor 21 initializes various tables in the DMAC memory 25.
  • Step S24 The host processor 21 releases the reset signal. As a result, the operation of the DMAC 24 starts.
  • the upper processor 21 when a DMA transfer request is generated, the upper processor 21 first writes the DMA request parameters into the DMA request parameter table and sets the transfer. In the case of a DMA transfer request for an already registered channel, the upper processor 21 stores the DMA request parameter table in the DMAC memory 25. Then, the upper processor 21 registers a pointer to the newly stored DMA request parameter table at the end of the DMA request management table corresponding to the corresponding channel.
  • the upper processor 21 If the request is a DMA transfer request for a new channel, the upper processor 21 creates a new DMA request management table. Then, the upper processor 21 stores the DMA request parameter table in the DMA memory 25, and registers the pointer to the DMA request parameter table in the DMA request management table generated as a new channel.
  • the DMA program executed by the DMAC 24 first refers to the channel management table after startup or when waiting for a transfer request. If the pointer to the channel table is registered in the channel management table, the transfer process starts. Details of the transfer process are the same as in the second embodiment.
  • the DMAC 24 notifies the host of the end of the transfer processing when the transfer request is completed.
  • the DMAC reads the transfer setting information according to the transfer start instruction from the upper processor, and describes the operation of the DMA program so as to start the transfer.
  • the upper processor sets the transfer source address, transfer destination address, transfer size, etc., and sends a transfer start instruction in the same way as the setting of the DMAC for the fixed function by the conventional hardware circuit. Can be started. That is, the DMA data transfer device (DMAC and DMAC memory) according to the present invention can be mounted without changing the operation of the upper processor in the existing system.
  • FIG. 12 is a diagram illustrating an example of a system configuration according to the fourth embodiment. Note that the system configuration in the fourth embodiment is almost the same as that in the third embodiment shown in FIG. 10, and thus the same components are denoted by the same reference numerals and description thereof will be omitted.
  • the information stored in the DMAC memory 25 is different from that of the third embodiment.
  • the DMAC memory 25 has a DMA request setting table 25a, a DMA channel information table 25b, a DMA program 25c, a DMA request parameter table 25j, and a DMA request management.
  • Table 25k is stored.
  • the DMA channel information table 25b, the DMA request parameter table 25j, and the DMA request management table 25k have the same information as the elements having the same names in the second embodiment shown in FIG.
  • the DMA program 25c is a program for causing the DMAC 24 to execute the process according to the fourth embodiment.
  • the DMA setting parameters for a DMAC having a function fixed by hardware are generally mapped to I / O registers in a memory space.
  • a DMAC 24 whose function can be changed by a program is applied while maintaining the form in which the DMA setting parameters are mapped to the IZ # register in the memory space.
  • FIG. 13 is a diagram showing an example of the data structure of the DMA request setting table.
  • the DMA request setting table 25a shown in Fig. 13 stores parameters equivalent to the DMA parameter table mapped to the I / O registry table in a table format at a certain address on the DMA memory 25. It was done.
  • the DMA request setting table 25a has columns for channel number, item, and value.
  • the channel identification number is registered in the channel number column. In the item column, the name of the parameter set for each channel is registered.
  • the parameters include status, transfer source, transfer destination, transfer size, and so on.
  • the status is information indicating whether or not the channel can accept a transfer request.
  • the transfer source is the first memory address of the area where the data of the transfer source is stored.
  • the transfer destination is the first memory address of the area where the transferred data is to be stored.
  • the transfer size is the data capacity of the data to be transferred.
  • FIG. 14 is a flowchart showing a DMA start processing procedure by the upper processor. Hereinafter, the processing illustrated in FIG. 14 will be described along the step numbers.
  • the upper processor 21 reads the status of the channel to be processed with reference to the DMA request setting table 25a.
  • Step S32 The upper processor 21 determines whether or not a transfer request can be accepted based on the status of the read channel. If a transfer request is possible, the process proceeds to step S33. If the transfer request cannot be made, the process proceeds to step S31, and the status determination is repeated until the transfer request becomes possible.
  • the upper processor 21 sets parameters required for the DMA transfer in the DMA request setting table 25a.
  • the parameters include the source address, destination address, and transfer size.
  • Step S34 The upper processor 21 writes an instruction to start the DMA transfer of the processing target channel in the status of the processing target channel in the DMA request setting table 25a.
  • the DMA request is notified to the DMA C 24 by the host processor 21 executing such processing.
  • the DMA C 24 performs a DMA request detection process at a predetermined timing.
  • FIG. 15 is a flowchart showing DMA request detection processing by the DMAC. It should be noted that the DMA request detection processing is executed using the idle time zone of the DMA transfer. Hereinafter, the processing illustrated in FIG. 15 will be described along the step numbers.
  • Step S41 The DAMC 24 reads the channel status of the DMA request setting table 25a.
  • Step S42 The DMAC 24 determines whether or not there is a DMA request based on the status. Specifically, if a DMA transfer start instruction is set in the status of a channel, it is determined that there is a DMA transfer request for that channel. If there is a DMA request, the process proceeds to step S43. Terminates if there is no DMA request.
  • Step S43 The DMAC 24 changes the status of the channel on which the DMA request has been issued to a state in which the DMA request cannot be accepted.
  • Step S44 The DMAC 24 copies the parameters of the channel to be subjected to the DMA transfer from the DMA request setting table 25a to the DMA request parameter table 25j.
  • Step S45 The DMAC 24 changes the status of the channel to which the DMA request has been issued so that the DMA request can be accepted.
  • the DMAC 24 uses the time period between the DMA transfer processes, reads the status of each channel, and checks for a new DMA request (transfer start stage). If there is a request, the transfer parameters are copied to the DMA request parameter table 25j of the corresponding channel, and the status of the corresponding channel in the DMA request setting table 25a is returned to the "acceptable" state.
  • the DMAC 24 returns to the normal transfer processing sequence, and processes the DMA transfer according to the newly registered DMA request according to the transfer processing sequence defined in the DMA program 25c.
  • the DMA transfer processing can be performed without changing the program of the upper processor 21. It becomes possible.
  • a parameter overnight table equivalent to the DMA request setting table 25a is installed in the IZO register Was. Then, at the I / O register evening, when a parameter was written along with the DMA request and a start instruction was issued, the DMAC executed the transfer process according to the instruction.
  • the DMA request setting table 25a is arranged in the DMAC memory 25, and the upper processor 21 writes parameters to the table area. Then, the DMAC 24 monitors the area, confirms the request, and starts a DMA transfer process according to the DMA request. With this method, the upper processor 21 can handle DMA transfer without any difference from the conventional method.
  • FIG. 16 is a sequence diagram showing the procedure of status update.
  • the DMAC 24 sets the status of the DMA request setting table 25a to the “acceptable” state (step S51) .
  • the DMAC 24 checks whether a request does not come or the status at regular intervals (step S51). S 52).
  • the upper processor 21 confirms whether or not the parameter can be written to the DMA request setting table 25a by referring to the status of the DMA request setting table 25a. Yes (step S53). If the status is rOKj, the upper processor 21 writes parameters such as the transfer address and finally rewrites the status to "transfer start request" (step S54).
  • step S55 When the DMAC 24 detects a transfer start request in the status confirmation at a fixed time interval (step S55), the DMAC 24 generates a DMA request parameter table 25j in which parameters of the transfer request are written, and simultaneously generates the DMA request management table 25k. The pointer to the DMA request parameter overnight table 25j is registered in (step S56). Finally, the DMAC 24 returns the status to “acceptable” (step S57).
  • the host processor can handle the DMAC of the present invention exactly as in the conventional DMA control, and can maintain program compatibility with the conventional method.
  • the load on the host processor is reduced.
  • a detailed DMA transfer operation is described in a DMA program, and a higher-level processor, which is a higher-level control device, performs only timing control and status confirmation. This makes it possible to reduce the load on the host processor.
  • the upper processor 21 sets the DMA transfer parameters and issues a start instruction (DMA transfer start instruction) at the required timing, and the DMA C 24 added the DMA request to the DMA request setting table 25 e.
  • DMA transfer start instruction start instruction
  • the upper-level processor directly sets the transfer parameters without a start instruction in the DMA request management table. Thereafter, by giving a start instruction for synchronization from the upper processor 21, the DMAC 24 processes the transfer requests in the DMA request management table one by one. In this case, when one transfer is completed, the DMAC enters a standby state until the next start instruction. Specifically, the DMAC secures an area for synchronizing parameters in the channel management table, and when starting processing for the DMA request, the DMAC receives an instruction to start the synchronizing parameter overnight. Wait until there is.
  • the DMA transfer pattern is often determined. For example, the image data of one screen is divided into small block areas, one block is read and processed by the DMA, and after the processing is completed, the data of one block is output again by the DMA. For example, when repeating for the screen. In this case, the input and output DMA transfer is repeated regularly for the number of blocks in one screen. Therefore, if the transfer parameters are set in advance for each block of one screen, the upper processor 21 only needs to perform synchronous control in accordance with the processing of the target block. As described above, in the fourth embodiment, the DMA is started by the upper processor 21 setting the transfer parameter and instructing the transfer.
  • the upper-level processor 21 prepares the next required data in accordance with the progress of the program processing being processed by itself, and outputs data after processing (evacuation). Perform MA transfer processing.
  • Conventional DMA C corresponds to this case, and the processing proceeds. Since the transfer timing is determined according to the situation, the upper processor set the transfer between program processings. However, the setting of various transfer parameters frequently occurs, which may have an adverse effect on the program processing itself of the upper processor as overhead.
  • the DMA C programs all the flows of the DMA transfer to be processed by the program, and the upper processor instructs only the timing control. This reduces the load on the host processor.
  • FIG. 17 is a diagram illustrating a configuration example of a system according to the fifth embodiment. Since the system according to the fifth embodiment is almost the same as that of the fourth embodiment, the same components are denoted by the same reference numerals and description thereof will be omitted.
  • the information stored in the DRAM memory 25 is different from that of the fourth embodiment.
  • a DMA request setting table 25a, a DMA channel information table 25b, a transfer synchronization table 25e, and a DMA program 25f are stored in the DMAC memory 25.
  • a DMA request parameter table 25 j, and a DMA request management table 25 k are stored.
  • the DMA request setting table 25a, the DMA channel information table 25b, the DMA request parameter table 25j, and the DMA request management table 25k have the same names as in the fourth embodiment. It has the same data structure as the table.
  • the transfer synchronization table 25 e is information for managing a start instruction for a channel.
  • the DMA program 25 f is a program for DMA transfer to reduce the load on the host processor.
  • FIG. 18 is a diagram illustrating an example of the transfer synchronization table.
  • the transfer synchronization table 25e a point and a status to the DMA channel information table are registered in association with the channel number (No.). As the status, the transfer status (transfer start or transfer end) is set.
  • control of an output buffer of a double buffer format will be described as an example.
  • the upper processor 21 Output alternately to B. Specifically, when starting the output to the buffer A, the upper processor 21 outputs the output data stored in the buffer B to the external memory by the DMA transfer. Subsequently, when the data output to the buffer A is completed, the host processor 21 switches the output destination of the operation result to the buffer B this time. Then, the upper processor 21 starts outputting the processed data stored in the buffer A to the external memory by the DMA, and simultaneously starts outputting to the buffer B. In the past, all of these processes were undertaken by the upper processor, and the DMAC simply performed the transfer according to the specified parameters.
  • FIG. 19 is a diagram illustrating an example of a DMA channel information table according to the fifth embodiment.
  • "repeat” is set as the mode of the DMA channel information table 25b
  • "forever” is set as an option parameter overnight.
  • the “i'epeat” mode indicates that when the processing is completed up to the end of the table, the next request is returned to the beginning of the table.
  • the optional parameter rforeverj indicates that the number of repetitions is permanent (no limit).
  • FIG. 20 is a flowchart showing the procedure of the synchronous operation of the DMAC. The process shown will be described along the step numbers.
  • Step S61 The DMAC 24 determines whether or not a start instruction has been input from the host processor 21. If a start instruction is input, the process Proceed to S62. If the start instruction has not been input, the process of step S61 is repeated.
  • Step S62 The DMAC 24 performs a DMA transfer process for the buffer A.
  • Step S63 The DMAC 24 determines whether or not a start instruction has been input from the upper processor 21. If a start instruction has been input, the process proceeds to step S64. If the start instruction has not been input, the process of step S63 is repeated.
  • Step S64 The DMAC 24 performs a DMA transfer process for the buffer B. Thereafter, the processing proceeds to step S61.
  • the DMA transfer When the DMA transfer is completed, the status of the corresponding channel in the transfer synchronization table 25e is completed. For channels that have a status of end of transfer, the transfer will not start until the status changes to start of transfer.
  • the DMAC to be synchronized can perform most of the processing autonomously on the DMAC side by such control. Thus, a significant reduction in the load on the upper processor 21 can be expected.
  • the DMAC 24 reads the attribute at the end of the transfer and adds the attribute to the top of the DMA request setting table 25a. You can go back and repeat. This makes it possible to perform the same processing on the next screen. Furthermore, the method according to the fifth embodiment waits for the next start instruction after one DMA transfer is completed. Therefore, if the next start instruction (whether it is done in the upper layer or in the upper layer of the DMAC) is issued immediately upon receiving the transfer completion notification, processing equivalent to continuous execution of normally used DMA can be performed. It can be carried out.
  • the sixth embodiment has a check mechanism for setting parameter values.
  • DMAC implemented in hardware does not usually have a check mechanism for the set parameter values. This not only complicates the hardware, but also This is because it is difficult to cope when the mounted memory capacity is changed.
  • the system according to the present invention includes a system memory area information table in order to operate according to a program.
  • the DMAC checks the address and size parameters of the DMA request while referring to the memory area information table, and detects an area error before or during the transfer process. In addition, it is easy to provide an error detection mechanism for notifying the host controller.
  • FIG. 21 is a diagram illustrating a configuration example of a system according to the sixth embodiment. Since the system according to the sixth embodiment is almost the same as the fourth embodiment, the same components are denoted by the same reference numerals, and description thereof will be omitted.
  • the information stored in the DRAM memory 25 is different from that of the fourth embodiment.
  • a DMA request setting table 25a, a DMA channel information table 25b, a memory area management information table 25g, And the DMA program 25h are stored in the DMAC memory 25 in the DMAC memory 25.
  • the DMA request setting table 25a and the DMA channel information table 25b have the same data structure as the table of the same name in the fourth embodiment.
  • DMA program 25h is a program for DMA transfer including the processing procedure of the parameter check mechanism.
  • FIG. 22 is a diagram showing an example of the data structure of the memory area management information table.
  • the memory area management information table 25 g has fields for area number (No.), start (start), end (end), write (write), and read (read). .
  • FIG. 23 is a flowchart showing the procedure of the parameter inspection process. Note that the no-name lane inspection process is performed for each of the transfer destination address of the DMA request and the transfer destination address. Hereinafter, the processing illustrated in FIG. 23 will be described along the step numbers.
  • the DMAC 24 reads one area information from the memory area management information table 25g (for example, the area information is selected in order of area number).
  • the DMAC 24 compares the read storage area with the address (transfer source address or transfer destination address) specified by the DMA request.
  • Step S73 The DMAC 24 determines whether or not the address of the DMA request is within the range of the storage area selected in step S72. If it is in the storage area, the process proceeds to step S74. If not, the process proceeds to Step S77.
  • Step S74 The DMAC 24 checks the read / write attribute of the corresponding storage area. If the source address is checked, the read attribute is checked. If the destination address is checked, the write attribute is checked.
  • Step S75 The DMAC 24 determines whether or not an access violation has occurred as a result of the inspection in step S74. That is, if the attribute to be inspected is “ ⁇ K”, access is possible, and if “NG”, it is an access violation. If not, the process proceeds to Step S76. If so, the process proceeds to Step S77.
  • Step S76 The DMAC 24 performs a DMA transfer according to the DMA program 25h, and ends the process.
  • Step S77 The DMAC 24 determines whether or not all storage areas (areas) have been verified. If all areas have been verified, the process proceeds to step S78. If there is an unverified area, the process proceeds to step S79, where verification is performed for another area.
  • Step S78 If an error occurs in all areas, the DMAC 24 determines that the setting of the lane setting is invalid and notifies the error.
  • the error notification is described as a status in, for example, a DMA request parameter table or a DMA request management table so that the upper processor 21 can refer to the error notification.
  • Step S79 The DMAC 24 reads the next area information from the memory area management information table 25g, and advances the processing to step S72.
  • the first is when checking is performed before processing a new transfer request, and the second is when checking is performed for each transfer unit during the transfer process.
  • the former is light and effective for simple block areas such as areas where the transfer area is one-dimensionally continuous (in the case of simple transfer where the value obtained by adding the size from the start address is the end address).
  • the two addresses at the beginning and end of the continuous area of the transfer source and the transfer destination are checked, and if both of them become ⁇ K, it can be determined that there is no error in the DMA transfer request.
  • the error in the area cannot be determined simply by the start address and size alone.
  • the latter is effective when the transfer area is rectangular or has a more complicated shape.
  • DMAC 24 it is easy to realize complicated transfer by a program, so it may be difficult to make a judgment once by performing inspection once at the beginning of transfer. Inspection at every transfer of one data unit causes a decrease in transfer speed.However, in the sense of detecting an error in address setting of DMA transfer, it must be used effectively in the program debug stage of the upper processor 21. Can be. In other words, during the program debugging stage of the upper processor 21, the inspection is enabled. After the program has been debugged, the inspection is no longer necessary and the inspection can be skipped.
  • the error of the transfer area can be checked based on the memory area information of the system by utilizing the flexibility of the DMAC 24 operated by the program. In other words, whether the inspection target address is within the range of a predetermined memory area (accessible memory space) is checked by comparing it with the information in the table one by one. It is also possible to check area attributes such as whether to write to a read-only area. Here, if both the area range and the read / write attribute match, the normal status is returned. If the address range to be included is not found or the read / write attribute is incorrect, an error is returned.
  • the seventh embodiment is a specific example of the realization of the first embodiment.
  • FIG. 24 is a diagram illustrating an example of a system configuration according to the seventh embodiment.
  • memories 52 and 53 and a DMAC 54 are connected via a bus 56 to a processor 51 that controls the entire system.
  • a DMAC memory 55 is connected to the DMAC 54.
  • the DMAC memory 55 includes an instruction memory area 55a and a temporary memory area 55b.
  • a DMA program describing the operation of the DMAC is arranged in the instruction memory area 55a of the DMAC memory 55.
  • the DMAC 55 can perform the DMA transfer according to the processing procedure according to the DMA program stored in the instruction memory area 55a.
  • the DMAC 55 stores various information necessary for DMA transfer in the data memory area 55b, and reads information from the data memory area 55b.
  • the DMAC memory 55 a memory that can simultaneously read an instruction and data can be used.
  • a 2-port read memory can be mounted as the DMAC memory 55.
  • an instruction memory corresponding to the instruction memory area 55a and a data memory corresponding to the data memory area 55b can be separately mounted. With such a configuration, the instruction fetch from the instruction memory and the read / write of the data memory can be performed at the same time, so that it is possible to avoid the occurrence of a wait due to the memory access collision between the instruction fetch and the read / write operation. As a result, it is possible to execute the DMAC program processing at high speed.
  • a data memory area different from the data memory area 55b can be provided in a memory connected via a path. At this time, DMA transfer of data by the DMAC 54 is enabled in each data memory area.
  • FIG. 25 is a block diagram showing the internal configuration of the DMAC.
  • the DMAC 54 has a general-purpose register 54a, an address register 54b, an adder 54c, Selector 54d, data selector 54e, memory interface 54 4, instruction decoder 54g, read address generator 54h, write address generator 54i, selector 54j, addition Unit 54 k, selector 54 m, and PC (program counter) 54 ⁇ .
  • the read address generation unit 54 h includes a selector 54 41, a calorie calculator 54 2 and a selector 54 43.
  • the internal configuration of the write address generator 54 i is the same as that of the read address generator 54 h.
  • the signal input to the write address generator 54 i from 54 b is also distributed to the selectors and adders in the write address generator 54 i.
  • the adder 54c adds the two data input from the general-purpose register 54a and outputs the addition result to the selector 54d.
  • the selector 54d selects one of the signal output from the adder 54c and the signal input from the general-purpose register 54a based on the signal sent from the instruction decoder 54g, and outputs the data. Output to selector 54 e.
  • the data selector 54 e Based on the signal sent from the instruction decoder 54 g, the data selector 54 e transmits to the register 55 d and the DMA C memory 55 of the data input from the selector 54 d and the memory interface 54 f. Select the data to be stored. The data selector 54 e outputs the selected data to the general-purpose register 54 a, the address register 54 b, or the memory interface 54 f according to the signal from the instruction decoder 54 g.
  • the memory interface 54 f inputs and outputs data to and from the DMAC memory 55.
  • the memory interface 54 f converts the write data input from the data selector 54 e into the write data input from the write address generator 54 i.
  • the data is stored in the storage area indicated by the data address.
  • the memory interface 54f reads the read data from the storage area indicated by the read data address input from the read address generation unit 54h, and outputs the read data to the data selector 54e.
  • the instruction decoder 54g receives a DMA program instruction stored in the instruction memory area 55a, and interprets the instruction. Then, the instruction decoder 54g reads data from the general-purpose register 54a or the address register 54b in accordance with the operation content indicated by the interpreted instruction, and performs arithmetic processing. The instruction decoder 54g outputs a control signal to the selector 54d, the selector 541, the selector 5443, the selector 54j, and the selector 54m, and outputs the signal according to the operation result. Control.
  • the read address generator 54h generates a read data address for reading data according to a signal from the instruction decoder 54g.
  • the value output from the address register 54 b and the immediate calorie calculation (ADDI) value output from the instruction decoder 54 g are input to the selector 541.
  • the selector 541 selects the input value according to the signal from the instruction decoder 54 g and outputs it to the adder 542.
  • the adder 542 adds the value input from the address register 514 b and the value input from the select register 541 and inputs the result to the selector 543.
  • the selector 543 selects a value input from any of the address register 504b, the adder 542 and the instruction decoder 504g in accordance with a signal from the instruction decoder 504g, and reads the read address. Is output to the data selector 54 e and the memory interface 54 f.
  • the write address generator 54 i generates a write address for writing data in accordance with a signal from the instruction decoder 54 g.
  • the internal configuration of the write address generator 54 i is the same as that of the read address generator 54 h, and the generated write data address is output to the data selector 54 e and the memory interface 54 f. Is done.
  • the selector 54 j receives the PC update value and the relative branch value output from the instruction decoder 54 g.
  • the selector 54j selects one of the input values according to the signal from the instruction decoder 54g, and outputs it to the adder 54k.
  • the adder 54k receives the value of the PC 54 ⁇ in addition to the output value of the selector 54j, and adds the two values. Adder 54k outputs the result of addition to selector 54m.
  • the selector 54m receives the absolute branch value from the instruction decoder 54g and the value of the PC 54n in addition to the addition result of the adder 54k.
  • the selector 54m selects one of the input values according to the signal from the instruction decoder 54g, and outputs it to the PC 54n. For example, when an absolute branch is taken, the absolute branch value from the instruction decoder 54 g is selected, and when the PC is updated, the output result from the adder is selected and when the instruction is repeated. Is selected from the value input from PC 54n.
  • PC 54 ⁇ is a register indicating the storage address of the instruction to be executed.
  • the value set in PC54n is output to DMAC memory 55 as an instruction fetch address.
  • the configuration of the DMAC 54 can be divided into a basic configuration and an extended configuration.
  • the general-purpose register 54a, the adder 54c, and the selector 54d have an extended configuration, and the others have a basic configuration.
  • the present invention can be implemented with only the basic configuration, the expanded configuration increases the degree of freedom of the DMA program.
  • FIG. 26 shows the basic register configuration.
  • the DMAC 54 has a basic register structure 61 as an address register 54b, a U-Peet counter (not shown in FIG. 25, but provided inside the instruction decoder 54g), a PC (program counter) 54 n is provided. Multiple dressless evenings 54b will be provided, and “An (n is an integer greater than or equal to 0)” will be set for each of them. A plurality of repeat counters are provided, and “RPCm (m is an integer greater than or equal to 0)” is set for each of the register counters.
  • the register name of PC 54 ⁇ is “PC”.
  • the instructions (basic instructions) that can be processed by the instruction decoder 54g when functioning in the basic configuration are as follows.
  • FIG. 27 is a diagram showing a basic instruction set executable by the DMAC. Shown in Figure 27 The basic instruction set 62 shows the instruction format and the operation contents of the instruction.
  • the instruction format “set D, val” indicates the operation “set val to register D”.
  • the instruction format “load D, (SAD)” indicates an operation of “loading the data of the read source address SAD to the register D”.
  • the instruction format “store (DAD), S” indicates an operation of “store the value of register S to storage destination address DAD”.
  • the instruction format “mov (DAD), (SAD)” indicates an operation of “copying the data of the source SAD to the destination address DAD”.
  • the instruction format r r epeatJ indicates an operation of “repeat the instruction following the specified number of times”.
  • the instruction format rjum condition, D "indicates that the operation branches to address D if the condition is satisfied. If the condition is omitted, the operation branches unconditionally.
  • FIG. 28 is a diagram illustrating an example of a branch condition.
  • the branch condition 63 shown in FIG. 28 the condition and the operation content are shown.
  • the DMAC 54 has a plurality of address update functions.
  • the contents of the address update function are as follows.
  • FIG. 29 illustrates the address update function.
  • the address update function 64 shown in FIG. 29 the notation of the address update instruction and the operation content are shown.
  • Such an instruction is interpreted by the DMA C 54, and processing according to the instruction is executed.
  • an instruction set consists of store and load in registers and memory, transfer between memories, and branch instructions.
  • the DMAC 54 it is not necessary for the DMAC 54 to have an arithmetic function or the like that a general processor has. Therefore, it is possible to reduce the cost of the DMAC 54 by preventing the program processing circuit in the DMAC 54 from becoming complicated.
  • Processors are typically the most expensive component of a system, and can be much more costly than systems that have a multiprocessor configuration and have one processor handle DMA processing.
  • an extension register can be mounted in the DMAC 54 to increase the degree of freedom in programming.
  • FIG. 30 is a diagram showing the configuration of the extended registry.
  • a general-purpose register 54 a and a flag register (not shown in FIG. 25) can be mounted on the DMAC 54 as the configuration of the extension register 65.
  • a plurality of general-purpose registry evenings are provided, and R p (p is an integer of 0 or more) is set for each of the general-purpose registry evenings.
  • F is set in the flag register as the register name.
  • an extended instruction set that can be processed by the DMAC 54 may be provided.
  • FIG. 31 is a diagram illustrating an example of the extended instruction set.
  • the extended instruction set 66 shown in FIG. 31 shows the instruction format and the operation contents of the instruction.
  • the instruction format "add D, SJ” indicates the operation of "add the register S and D and substitute it for D. Reflect the operation status in the flag register.”
  • the instruction format “sub D, S” indicates the operation of “subtract S from register D and substitute for D. Reflect operation status to flag register”.
  • the processing condition (extension condition) of the extended function is determined according to the value set in the flag register.
  • FIG. 32 is a diagram showing extended conditions.
  • Figure 32 shows the extended conditions 6 7 (condition) and operation contents are shown.
  • the DMAC having such a configuration executes the DMA program stored in the instruction memory area 55a, thereby realizing a DMA transfer function.
  • FIG. 33 is a diagram showing an example of the DMA program.
  • FIG. 33 shows a DMA program 68 for performing a basic DMA transfer for the sake of simplicity.
  • the instruction on the first line is “set A0,0xl000J.” This is the instruction to assign “0x1000” to the address register of “A0”.
  • the instruction on the second line is “set Al, 0x2000J.” This is the instruction to assign “0x2000” to the address register of “A 1”.
  • the instruction on the third line is “set rpc0,10”. This is an instruction to assign the value of “10” to the repeat counter of “RPC 0”.
  • the command on the fourth line is "repeat". This is an instruction to repeat the subsequent processing for the number of times set in the “RPC0” repeat counter.
  • the instruction on the fifth line is “mov (A0 ++ 1), (A1 ++ 1) J. This is the data of the address stored in the address register of“ A1 ”and the address of“ A0J. This is an instruction to copy to the address stored in the register, and after the copy process, add 1 to each of the address register values of “A0” and “A1”.
  • the instruction decoder 54g of the DMAC 54 fetches one instruction at the address indicated by the PC 54n from the instruction memory area 55a of the DMAC memory 55 and executes it. After that, the instruction decoder 54g controls the signals output to the selector 54j and the selector 54m according to the content of the executed instruction, and updates the PC. Then, the next instruction is fetched again in the instruction memory area 55a, Executed by instruction decoder 54 g.
  • Such an operation is the same as that of a processor that performs normal program processing.
  • the address indicated by the PC 54 ⁇ is the instruction memory area 55a of the DMAC memory 55.
  • the address register 54b holding the address of the memory access is controlled by the address arithmetic unit (read address generation unit 54h and write address generation unit 54i) of the DMAC 54 as shown in FIG. It is automatically updated according to the address update description like.
  • the transfer from the address of A1 to the address of AO is performed, but since A1 and AO are incremented by 1 each time they are accessed, this MOV instruction must be repeated 10 times. Can transfer (copy) 10 consecutive bytes.
  • the DMAC 54 can execute a program stored in the DMAC memory 55, and as a result, performs a flexible DMA transfer process. It becomes possible. Since the DMA C 54 can simultaneously access the instruction memory area 55a and the data memory area 55b, a high-speed DMA control operation can be performed without causing a wait between instruction fetch and data access. That is, high-speed access can be realized.
  • the buffer area for storing requests is realized and fixed in 81-ichi hardware, and the number of manageable DMA requests is limited.
  • the DMAC 54 stores a set of a transfer source address, a transfer destination address, and a transfer size in a DMA request parameter in the DMA memory area 55b. Write to the table (similar to Figure 2).
  • the DMAC 54 manages the parameters in the DMA request parameter table in a DMA request management table (similar to FIG. 3) and sequentially processes the DMA requests. Further, the DMAC 54 manages the DMA request management table using a DMA channel information table (similar to FIG. 4).
  • the DMA channel information table records the attributes of the current management table as well as the execution status and attributes of which management table requests have been processed and which requests are being processed, as well as the attributes of the management table. .
  • the DMA transfer request can be managed only by the size secured as the table area. Can handle many requests.
  • the sequence of the transfer program executed by the DMA C 54 is the same as that of the first embodiment shown in FIG. That is, the DMAC 54 first checks the current processing target from the channel status table of the request management table, and subsequently reads out the parameters of the processing target. The DMAC 54 performs only one transfer according to the read value, and if the transfer end condition is not satisfied, continues the transfer. The condition for ending the transfer is that the remaining size becomes zero. When the processing for one request is completed, the DMAC 54 shifts to the processing for the next request. When all requests are completed, the DMA processing is completed.
  • the processing target of the channel information table is rewritten to the next request stored in the DMA request management table and transferred. Copy the parame night. Next, the DMA processing of the new processing target is started.
  • the eighth embodiment uses the first embodiment for DMA transfer of image data. Since the hardware configuration is the same as that of the seventh embodiment, the eighth embodiment will be described with reference to the configurations shown in FIGS. 24 and 25.
  • the DMAC 54 can first check the mode and switch the transfer processing according to the mode.
  • mode 1 described in the “mode” item is Lock Defined as DMA transfer specification.
  • image data can be specified as the transfer source data, and the rectangular area in it can be transferred in mode 1.
  • FIG. 34 is a diagram showing the concept of rectangular block DMA transfer. As shown in FIG.
  • a rectangular area 71a in the transfer source data 71 is cut out and transferred to the transfer destination memory area 72. It may be different image data 72a.
  • Such DMA transfer of a rectangular area in a large image as a processing target is a frequently performed processing in image data processing.
  • the data In the case of image data, the data is arranged in horizontal lines one by one and stored in memory. Therefore, the data corresponding to the rectangular area 71 a is distributed and stored in a plurality of data for each line. Therefore, when DMA transfer is performed by specifying the transfer source address and transfer size, it is necessary to set the DMA transfer parameters for each line.
  • a parameter defining a rectangle as shown in FIG. 34 is added to the DMA request parameter table as an optional parameter.
  • FIG. 35 is a diagram showing an example of a DMA request parameter overnight table for rectangular block transfer.
  • “Mode 1” is set as the mode along with the transfer source address, transfer destination address, and transfer size.
  • the mode is “Mode 1”, which specifies that the transfer is a rectangular block DMA transfer.
  • the range of the rectangular block is specified by an optional parameter. Width is the horizontal width (number of pixels) of the rectangular block, Height is the vertical width (number of pixels) of the rectangular block, and Skip is other data between the data for each line that has been distributed and stored (excluded from data transfer) The data width (number of pixels).
  • FIG. 36 is a flowchart showing the procedure of the rectangular block DMA transfer processing. Hereinafter, the processing illustrated in FIG. 36 will be described along the step numbers.
  • Step S81 First, the DMAC 54 reads parameters.
  • the DMAC 54 performs data transfer for the unit data.
  • Step S84 After transferring the data, the DMAC 54 updates the transfer source address A0 and the transfer destination address A1. The DMAC 54 also subtracts 1 from the rectangular width count: RPC0.
  • Step S85 The DMAC 54 determines whether or not the rectangular width counter RPC0 is larger than 0. If RPC0 is greater than 0, the process proceeds to step S83, and the transfer of the unit data is repeated until the data of the rectangular width is transferred.
  • step S86 If RPC0 is 0 or less, the process proceeds to step S86.
  • Step S87 The DMAC 54 determines whether or not the height counter RPC1 is larger than 0. If it is larger than 0, the process proceeds to step S83, and the transfer of the unit data is repeated until the data of the height of the rectangle is transferred. If it is 0 or less, the process ends.
  • the DMA request parameter table has been described as an example in which the transfer source address and the transfer destination address are described by absolute addresses, it is possible to provide a mode in which the relative address can be described.
  • the relative description mode is defined as mode 2.
  • -Fig. 37 is a diagram showing an example of a DMA request parameter overnight table of a relative address description.
  • “mode 2” is set as the mode together with the transfer source address, the transfer destination address, and the transfer size.
  • the mode is "mode 2", which specifies that the mode is the relative description mode.
  • relative description mode the address specified by the first request in the DMA request management table is used as the base address, and only this address is described as an absolute address. Subsequent DMA request parameters with a relative description mode specified are processed as relative address values from the base address.
  • the DMA request management table composed of a certain set of DMA patterns can be reused in various places simply by changing the address of the first transfer request.
  • FIG. 38 is a diagram illustrating an example of rectangular block transfer.
  • the rectangular area 91 a in the source data 91 is divided into nine rectangles.
  • the data 92a after transfer is arranged in a row.
  • the DMA request management table is created in advance in the relative description mode, and the transfer setting for all blocks can be completed simply by setting the address of the head block and registering the DMA request management table. As a result, it is possible to greatly reduce the overhead involved in setting the DMA transfer.
  • FIG. 39 is a diagram illustrating a system configuration example according to the ninth embodiment.
  • the upper processor 101 is connected to the instruction memory 102 and the DMAC 105.
  • the DMAC 105 is connected by signal lines for outputting a reset signal and inputting an interrupt signal.
  • the upper processor 101 is connected to a memory 103, a DMAC 105, and a DMAC memory 106 via a bus 108.
  • the host processor 101 controls the entire system according to the instructions stored in the instruction memory 102.
  • the DMAC 105 is connected to an instruction memory 102 and memories 103 and 104 via a path 107.
  • the DMAC 105 is connected to the DMAC memory 106 via a dedicated bus.
  • the instruction memory 102 is a recording medium that stores instructions to be executed by the host processor 101.
  • the memories 103 and 104 are recording media for storing various data.
  • the DMAC memory 106 has a DMAC program area 106a and a DMAC data area 106b.
  • the DMAC program area 106a stores a DMA program.
  • Various tables and the like necessary for DMA transfer are stored in the DMAC overnight area 106b.
  • the host processor 101 controls the reset signal of the DMAC 105 as a control signal, and after the DMAC 105 is reset, the DMAC program can be replaced during system operation. After the program replacement, the host processor 101 can release the reset and start the DMAC 105. Also, when the transfer completion is notified to the upper processor 101 when the DMAC 105 completes the transfer processing, the upper processor 105 can detect the notification by interruption or polling. This allows the upper processor 101 to know the timing of data processing and the timing of issuing the next DMA processing request.
  • the transfer request is basically issued from the upper processor 101.
  • the DMA request is registered in the DMA management table, and is recognized by the DMAC 105.
  • the transfer processing on the DMA C105 side in response to the DMA request registered in the table is as described in the first embodiment.
  • the upper processor 101 can directly update the table when a new request occurs if it knows the table address.If it does not know the table address, it issues a transfer request to the DMAC side. Then, the DMA C side may update the table. Either approach can be used for this interface.
  • the DMAC can be handled by the upper-level processor in exactly the same way as the conventional DMAC implemented by hardware. Advanced transfer processing can be realized by a program. Therefore, the load on the host processor can be reduced. Furthermore, the system can be realized at a lower cost than the conventional DMAC realized by a multiprocessor configuration.
  • the DMA C can execute the program, it is easy to change the functions related to the DMA transfer. Moreover, since the DMAC only needs to be able to interpret very simple instructions, it can be configured with an inexpensive circuit with limited functions. In this way, by installing dedicated memory in the system, it is possible to realize a DMA controller that is advantageous in terms of functional flexibility, transfer processing speed, and system cost.
  • DMA transfer request is stored in the DMA request management table in the DMA memory.
  • a table is created in advance, and the table is processed as needed, so that a plurality of frequently-used DMA transfer patterns can be combined at a necessary time. It can be started without any overhead, without having to set each one. Moreover, the DMA request parameters must be relative addressed within the channel. Thus, the overhead of parameter setting when starting the same pattern of DMA transfer is reduced.
  • the number of DMA channels can be increased as much as the memory allows.
  • requests that are subject to DMA transfer processing in each channel can be processed in a time-sharing manner. Since it is easy to register a channel in the channel management table, it is easy to start up by creating a frequently used DMA transfer pattern as a DMA management table in advance, and it is also possible to start the same pattern using another channel. It is also possible to start simultaneously. Also, by connecting a higher-level processor to the DMA C, it is possible to replace the DMA C program while the system is operating and to control synchronization.
  • the same control as the conventional DMAC can be performed from the host processor side, and the compatibility of the software running on the system can be maintained. That is, even if the DMAC implemented by the conventional hardware circuit is replaced by the DMAC described in the embodiment of the present application, it is not necessary to modify the application on the system.
  • the upper processor gives only a synchronization instruction, and the program of the DMAC operates autonomously in a predefined DMA sequence in synchronization with the instruction of the upper processor, thereby greatly reducing the load on the upper processor.
  • the DMA C can execute the program, it becomes possible to check the setting error of the DMA transfer parameters by using the DMAC. As a result, program development efficiency can be improved.
  • Computer-readable recording media include magnetic recording devices, optical disks, magneto-optical recording media, and semiconductor memories.
  • Magnetic recording devices include hard disk drives (HDD), flexible disks (FD), and magnetic tapes.
  • Optical discs include DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), and CD-R (Recordable) / RW (Re Writable).
  • the magneto-optical recording medium includes M ⁇ (Magneto-Optical disc).
  • a computer equipped with a DMA C capable of executing a DMA program stores, for example, a DMA program recorded on a portable recording medium or a DMA program transferred from a server computer in a DMAC memory. Then, the DMAC reads the DMA program from the memory for the DMAC and executes processing according to the DMA program.
  • the DMA controller performs the DMA transfer in accordance with the procedure according to the DMA program stored in the DMA memory, thereby improving the function flexibility and the transfer processing. It is possible to achieve both improvement in speed.
  • the above merely illustrates the principles of the invention.
  • many modifications and changes will be apparent to those skilled in the art and the present invention is not limited to the exact configuration and application shown and described above, but all corresponding variations and equivalents. Is deemed to be within the scope of the present invention by the appended claims and their equivalents.

Abstract

 利用形態に合わせて容易に機能を変更可能なDMA転送を効率よく実行できるようにする。DMAC(14)と、DMAC(14)専用に設けられたDMAC用メモリ(15)とが、DMAデータ転送制御装置として機能する。DMAC(14)は、DMAC用メモリ(15)内のDMAプログラム(15d)に従ってDMA転送を実行する。たとえば、DMAC(14)は、DMA要求を受け取ると、そのDMA要求の内容をDMA要求パラメータテーブル(15a)に格納する。DMA要求パタメータテーブル(15a)に格納されたDMA要求は、DMA要求管理テーブル(15b)を用いてキュー管理され、格納された順に処理される。実行中のDMA転送に関する情報は、DMAチャネル情報テーブル(15c)により管理される。

Description

明 細 書 デー夕転送制御装置および D M Aデータ転送制御方法 技術分野
本発明はデータ転送制御装置、 D MA(Direct Memory Access)コントローラお よび DMAデータ転送方法に関し、 特にデ一夕転送方式を変更可能なデータ転送 制御装置、 D MAコントローラおよび D MAデータ転送制御方法に関する。 背景技術
大容量のデータを高速に入出力して処理することが必要なコンピュー夕システ ムでは、 データを実際に処理するメインプロセッサとは別に、 データの転送を専 門に担当する D M Aコント口一ラ (以下、 D M A Cと呼ぶ)を搭載する場合が多 い。 D MA Cは、 通常、 メインプロセッサとは独立して動作し、 指示された転送 元、 転送先、 転送サイズに従って、 メモリ領域間のデータ転送を行う。
DMA Cを搭載すると、 メインプロセッサがデータ演算を行っている間、 同時 並行的に DMA Cによってデータ転送を行うことが可能となる。 そのため、 メイ ンプロセッサの処理時間に関し、 データ転送時間というオーバへッドが隠蔽でき る利点がある。 また、 D MA C用のメモリを D MA Cに接続することで、 プロセ ッサによるメモリアクセスと、 DM A Cによる専用メモリへのアクセスを並行し て実行できるようにすれば、 プロセッサのデータ処理効率をさらに向上させるこ とができる (たとえば、 特許文献 1参照)
なお、 DMA Cによる DMA転送処理は、 あるメモリ領域間のコピーという単 純な転送から、 複雑な矩形領域のコピー、 あるいはある規則に基づく複雑な転送 や、 計算によって得られるアドレスを用いた高度な転送まで、 コンピュータシス テムの要求に合わせて様々な要求がある。
これまでの DMA Cは、 通常、 パラメ一夕を設定する I ZOレジスタ領域に、 データの転送元アドレス、 転送先アドレス、 転送サイズなどを設定し、 スタート 指示によって転送を開始する。 このような D MA Cは、 単独またはシステムの一 部として、 周辺チップとして設計され、 ハードウェア回路によって固定された機 能で実現されてきた。
D MA Cはハードウェア回路によって機能が実現されるため、 使用目的に応じ て個別に設計される。 たとえば、 複数の転送チャネルを備え、 複数の DMA転送 の並列実行をサポートするものや、 転送要求を F I F O形式のバッファに保管し、 次々に処理することが可能なもの等がある。 このように、 使用目的に応じて様々 な機能を有する D M A Cが製品化されている。
ところが、 専用ハードウェアで実現される DMA Cは、 その動作が予め設計さ れた機能で制限されてしまう。 そのため、 システム構成や搭載するアプリケーシ ヨンによってはオーバースペックとなったり、 機能不足に陥ったりする可能性が ある。 例えば、 D M Aチャネル数は、 4チャネルで設計されれば、 運用時に 6チ ャネル使用したくても 4チャネル内で工夫して利用せざるを得ない。 その際ォー パへッドによりパフ才一マンスが低下する可能性が高い。
また、 DMA Cはメインプロセッサの補助回路という立場で搭載されるため、 通常、 回路コストや電力の問題から、 比較的単純なアドレス更新機能のみを備え ている。 したがって、 高度な処理を伴う転送は実行できない。 たとえば、 DMA Cでは、 特殊なアドレス更新パターンでの転送など 複雑なアドレス処理には対 応できない場合が多い。 これら特殊なァドレッシングに対応した DMA Cも存在 するが、 このような D M A Cは特定のアプリケーション向けとなる場合が多く、 搭載されるアプリケ一ションによっては有効活用できない場合も多い。
このように、 ハードウェアで実現する D MA Cでは、 機能が固定化されてしま うために、 搭載するァプリケーシヨンに合わせて、 適したデ一夕転送形式を実現 することが難しく、 ほとんどの場合、 単純なデータ転送しかサポートできなかつ た。 換言すると、 システムの用途が限定されている場合を除き高機能な DMA転 送を D MA Cで実行することはできず、 単純な転送以外は、 メインプロセッサが アドレス計算 ·設定しながら、 転送命令によってデータ転送を行っていた。 その 為、 メインプロセッサの処理時間を転送で占有し、 システム性能の低下を招いて いた。
そこで、 D MA Cを専用ハードウェア回路によって機能固定で実現するのでは なく、 マルチプロセッサシステムによつて複雑な D M A転送をも実現する方法が ある (たとえば、 特許文献 2参照) 。 これは、 メインプロセッサとは別に、 サブ プロセッサを搭載し、 それを DMA Cとして機能させるという手法である。 この 手法では、 サブプロセッサが目的の転送に対して十分に高機能であれば、 ァドレ ス計算を算術演算で導くような複雑かつ高度なアクセスも可能である。 また、 マ イク口プロセッサはプログラマブルであるため、 DMA機能に柔軟性を持たせる ことができる。
特許文献 1
特開平 7— 2 4 4 6 3 2号公報
特許文献 2
特開平 7— 1 3 9 2 0号公報
しかし、 特許文献 2に示すような D MA Cとして機能するサブプロセッサは汎 用プロセッサである。 そのため、 メモリ間データ転送のアドレス制御等のため、 サブプロセッサにおいて、 専用のハードウェアを有する DMA Cよりも煩雑な処 理が行われる。 たとえば、 サブプロセッサは、 メモリ間転送命令に応じて、 口一 ド命令とストア命令を続けて実行することにより、 一度レジスタに値を取り込み、 その後、 そのレジス夕値をメモリに書き込む、 という手順を迪らなければならな い。
通常、 DMA機能に特化したハードウェア構成の DMA Cでは、 アドレス更新 とデータのリードライトコントロールのみを行って、 バースト転送をコント口一 ルし、 メモリ間の高速デ一夕転送を実現している。 これに比べると、 マルチプロ セッサシステムを構成するプロセッサの 1つが転送を処理する手法では、 柔軟性 のある複雑な DMA転送が可能な半面、 転送速度が低下し、 また、 通常の専用 D MA Cに比べて回路規模の大きなプロセッサを搭載することによるコス卜問題が 発生する。
しかも、 特許文献 2に示されるサブプロセッサに D MA転送を制御させるシス テムでは、 メィンプロセッサが扱うデ一タメモリ領域と DM Aのパラメータ領域、 およびサブプロセッサのプログラム領域がすべて同一メモリ領域上に構成されて いる。 そのため、 2つポートからの同時アクセスが可能なデュアルポートランダ ムアクセスメモリ (D P R AM) を使用しても、 サブプロセッサ側ポートでプロ グラムフェッチとデータの読み書きが 1ポートを共有することになる。 その結果、 サブプロセッサ側の転送速度が大きく低下するという問題がある。
メインプロセッサの処理時間から D MA転送時間を見えないようにすることが、 DMA Cによる D MA転送の最大の目的であるが、 サブプロセッサによるデ一夕 転送速度が低下すると、 サブプロセッサによる DMA転送が完了しない。 そのた め、 メインプロセッサが次の処理に進めなくなるケースが発生する可能性が高く なってしまう。 発明の開示
本発明はこのような点に鑑みてなされたものであり、 利用形態に合わせて容易 に機能を変更可能な DM A転送を効率よく実行することができるデータ転送制御 装置、 DMAコントローラ、 および D MAデータ転送制御方法を提供することを 目的とする。
本発明では上記課題を解決するために、 図 1に示すようなデ一夕転送制御装置 が提供される。 本発明に係るデータ転送制御装置は、 複数のメモリ 1 2 , 1 3間 のデータ転送を行うものである。 このデータ転送制御装置は、 D MA転送の処理 手順が記述された D M Aプログラム 1 5 dが格納された D MAコントローラ用メ モリ 1 5と、 DMA要求を受け取ると、 DMAコントローラ用メモリ 1 5に格納 された DMAプログラム 1 5 dに従って、 複数のメモリ 1 2, 1 3間の D MAに よるデータ転送を実行する D MAコントローラ 1 4と、 を有している。
このようなデータ転送制御装置により、 D MAコントローラ用メモリ 1 5に格 納された D MAプログラム 1 5 dに従った DMA転送が D MAコントローラ 1 4 により実行される。
また、 上記課題を解決するために、 パスを介した DMA転送を制御するための D MAコントローラにおいて、 DM A用メモリから DMAプログラム内の命令を 読み取り、 命令の内容を解釈し、 命令に応じた制御信号を出力する命令デコーダ と、 前記命令デコーダから制御信号に応じて D MA転送用のァドレスを生成する アドレス生成回路と、 を有することを特徴とする D MAコントローラが提供され る。
また、 上記課題を解決するために、 パスを介した DMA転送を制御するための D M Aデータ転送制御方法において、 プログラムを実行可能な DMAコント口一 ラ専用の DMAコントローラ用メモリに、 DMA転送処理手順を記述した DMA プログラムを格納し、 前記 D MAコントローラに DMA要求が入力されると、 前 記 D MAコントローラにより、 前記 D MAコントローラ用メモリに格納された前 記 D MAプログラムに従って、 前記複数のメモリ間の DMAによるデータ転送を 実行する、 ことを特徴とする DMAデ一タ転送制御方法が提供される。
本発明の上記および他の目的、 特徴および利点は本発明の例として好ましい実 施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。 図面の簡単な説明
図 1は、 実施の形態におけるシステム構成例を示す図である。
図 2は、 D MA要求パラメ一夕テーブルのデータ構造例を示す図である。
図 3は、 DMA要求管理テーブルのデータ構造例を示す図である。
図 4は、 DMAチャネル情報テーブルのデータ構造例を示す図である。
図 5は-, DMA Cで実行する転送プログラムの処理のフローチヤ一トである。 図 6は 第 2の実施の形態のシステム構成例を示す図である。
図 7は、 チャネル管理テーブルのデータ構造例を示す図である。
図 8は、 チャネル管理を示す概念図である。
図 9は、 チャネルを複数管理する場合の D MA処理を示すフローチヤ一トであ る。
図 1 0は、 第 3の実施の形態に係るシステム構成例を示す図である。
図 1 1は、 動作中のプログラム入れ替えの動作の処理のフローチャートである。 図 1 2は、 第 4の実施の形態のシステム構成例を示す図である。
図 1 3は、 DMA設定管理テ一ブルのデータ構造例を示す図である。
図 1 4は、 上位プロセッサによる DMA起動処理手順を示すフローチャートで ある。
図 1 5は、 DMA Cによる D MA要求検出処理を示すフローチヤ一トである。 図 1 6は、 ステータス更新の手順を示すシーケンス図である。
図 1 7は、 第 5の実施の形態に係るシステムの構成例を示す図である。
図 1 8は、 転送同期テーブルの例を示す図である。
図 1 9は、 第 5の実施の形態における DMAチャネル情報テーブルの例を示す 図である。
図 2 0は、 DMA Cの同期動作の手順を示すフローチャートである。
図 2 1は、 第 6の実施の形態に係るシステムの構成例を示す図である。
図 2 2は、 メモリ領域管理情報テーブルのデータ構造例を示す図である。 図 2 3は、 パラメ一タ検査処理の手順を示すフローチャートである。
図 2 4は、 第 7の実施の形態のシステム構成例を示す図である。
図 2 5は、 D MA Cの内部構成を示すブロック図である。
図 2 6は、 基本レジスタ構成を示す図である。
図 2 7は、 DMA Cで実行可能な基本命令セットを示す図である。
図 2 8は、 分岐条件の例を示す図である。
図 2 9は、 アドレス更新機能を示す図である。
図 3 0は、 拡張レジスタの構成を示す図である。
図 3 1は、 拡張命令セットの例を示す図である。
図 3 2は、 拡張条件を示す図である。
図 3 3は、 DMAプログラムの一例を示す図である。
図 3 4は、 矩形ブロック DMA転送の概念を示す図である。
図 3 5は、 矩形ブロック転送の DMA要求パラメータテ一ブルの例を示す図で ある。
図 3 6は、 矩形ブロック DMA転送処理の手順を示すフローチヤ一トである。 図 3 7は、 相対アドレス記述の D MA要求パラメ一夕テーブルの例を示す図で ある。
図 3 8は、 矩形ブロック転送の例を示す図である。
図 3 9は、 第 9の実施の形態のシステム構成例を示す図である。 発明を実施するための最良の形態 以下、 本発明の実施の形態を図面を参照して説明する。
まず、 実施の形態に適用される発明の概要について説明し、 その後、 実施の形 態の具体的な内容を説明する。
[第 1の実施の形態]
第 1の実施の形態は、 本発明を実現するための基本構成である。
図 1は、 実施の形態におけるシステム構成例を示す図である。 第 1の実施の形 態に係るシステムでは、 プロセッサ 11、 2つのメモリ 12, 13、 および DM Aコントローラ (DMAC) 14がバス 16を介して互いに接続されている。 ま た、 DMAC 14には、 専用のバス 17を介して DMAC用メモリ 15が接続さ れている。
プロセッサ 11は、 システム全体を制御する。 メモリ 12, 13は、 システム の動作に利用されるデ一タを格納する記録媒体である。
DMAC 14は、 メモリ領域間のデ一夕転送を制御する回路である。 DMAC 14は、 DM A要求を受け取ると、 DMAC用メモリ 15に格納された DM Aプ ログラム 15 dやデータに従って、 DMA要求で指定されている DMA転送を実 現する。 DMAC 14は、 DMA転送の制御に特化したプログラマブルな回路で あり、 命令を解釈する命令デコーダや DMA転送の際のリードアドレスやライト アドレスを生成するアドレス生成回路などを有している。
また、 DMAC 14は、 DMAプログラム 15 dに記述された DMA転送機能 を有するため、 柔軟な機能変更が可能である。 たとえば、 DMAプログラム 15 dにおいて単純な DMA転送や高度な DMA転送 (矩形領域の転送等) などの複 数の機能に関する処理手順 (プログラムモジュール) が記述されていれば、 DM AC 14は、 モード指定等に応じて機能を選択して、 選択した機能を実行できる。
DMAC用メモリ 15は、 DMAC 14で実行させるプログラムや、 実行に必 要なデータを格納するための記録媒体である。 DMAC用メモリ 15は、 DMA C 14専用に設けられている。 DMAC用メモリ 15には、 DMAC 14に実行 させる動作を記述したプログラムが配置される。 たとえば、 DMAC用メモリ 1 5には、 DMA要求毎の DAM要求パラメ一夕テ一ブル 15 a、 DMA要求管理 テーブル 15 b、 DMAチャネル情報テーブル 15 cおよび DMAプログラム 1 5 dが格納される。 DMA要求パラメ一夕テ一ブル 15 aには、 DMA要求によ つて入力されたパラメータが格納される。 DMA要求管理テーブル 1 5 bには、 プロセッサ 11等から出力された DMA要求のリストが蓄積される。 DMAチヤ ネル情報テーブル 15 cには、 DMAチャネル毎のステータス (データ転送状 態) に関する情報が格納される。 DMAプログラム 15 dは、 DMAC 14に実 行させる処理が記述された命令の集合である。
このようなシステムにおいて、 DMAC 14と DMAC用メモリ 15とが、 D MAデ一夕転送制御装置として機能する。 DMAC 14は、 DMA用メモリ 15 内の DMAプログラム 15 dに従って DMA転送を実行する。 たとえば、 DMA C 14は、 DM A要求を受け取ると、 その DMA要求の内容を DMA要求パラメ 一夕テーブル 15 aに格納する。 DM A要求パタメータテ一ブル 15 aに格納さ れた DMA要求は、 DMA要求管理テーブル 15 bを用いてキュー管理され、 た とえば格納された順に処理される。 実行中の DMA転送に関する情報は、 DMA チャネル情報テーブル 15 cにより管理される。
このように DMAC 14は、 D M A C用のデータ転送プログラムを格納するた めの専用命令メモリ領域を備えており、 ここに格納されたプログラムの実行によ り、 DMA転送を行う。 DMAC 14は、 プログラム制御命令 (ループ制御命令、 分岐命令、 条件判定など) と転送命令との解釈、 実行機能を備えるが、 通常のマ イク口プロセッサが備えるような、 乗算機能や論理演算機能などの複雑な演算器 を搭載する必要はないため、 汎用のプロセッサに比べて単純な回路構成でよい。 具体的には、 DMAC 14はシーケンサとして動作すればよく、 格納されてい るプログラムを 1命令ずつフェッチして実行し、 DM A転送を制御する。 DMA C 14の動作シーケンスがプログラマブルであるため、 一般的に行われる DMA 転送のように、 転送元アドレス、 転送先アドレス、 転送サイズを DMAパラメ一 タとして設定し、 それに従って DMACが転送を行うという基本的な動作が可能 となる。 さらに、 DMA転送のチャネル数を可変にしたり、 DMAパラメ一夕設 定のキューイング個数を可変にしたりすることが出来、 プログラム次第で柔軟な 制御を行うことができる。
このように、 転送命令等をプログラム実行可能な専用の DMAC 14によって、 これらの DMA転送における問題点を解決する。
なお、 DMA C 1 4に接続する DMA C用メモリ 1 5としては、 命令とデ一タ を同時に読み出せる 2ポートリードメモリを搭載したり、 命令メモリとデータメ モリをそれぞれ別に搭載したりすることも可能である。 この場合には、 命令メモ リからの命令フェッチ、 およびデ一タメモリのリードライトが同時に行えるため、 命令フェッチとデータのリ一ドライ卜のメモリアクセス衝突によるウェイト発生 を回避できる。 また、 D MA C 1 4に接続する D MA C用メモリ 1 5として、 ノ スを介して別のデ一夕メモリ領域を搭載することも可能で、 このとき、 各デ一夕 メモリ領域で、 D MA Cによるデータの D MA転送が可能である。
次に、 DMA C用メモリ 1 5内のデータ構造について説明する。
図 2は、 D MA要求パラメ一タテ一ブルのデータ構造例を示す図である。 D M A要求パラメータテーブル 1 5 aには、 デ一夕項目として、 転送元、 転送先、 転 送サイズ、 モード、 オプションパラメ一夕がある。 これらのデータの組により、 1つの DMA要求パラメ一夕が構成される。
転送元は、 転送対象のデータの記憶領域の先頭を示すメモリアドレスである。 転送先は、 転送されたデータを格納すべき記憶領域の先頭を示すメモリァドレス である。 転送サイズは、 D M A転送すべきデータ容量である。 モ一ドは DMA 転送の際の処理内容を指定するための情報である。 すなわち、 モードを切り替え ることで、 D MA転送の処理内容を変更することができる。 オプションパラメ一 夕は、 高度な転送処理 (転送元、 転送先、 転送サイズ以外のパラメ一夕を必要と する処理) を実行する際に必要なパラメ一タである。
図 3は、 D MA要求管理テ一ブルのデ一夕構造例を示す図である。 DMA要求 管理テーブル 1 5 bには、 D MA要求の識別情報に関連付けて、 DMA要求パラ メータ 1 5 aへのポインタと属性とが登録される。
D MA要求パラメータ 1 5 aへのポインタは、 対応する DMA要求パラメータ 1 5 aが格納された領域を指し示すメモリアドレスである。 属性は、 DMA要求 の属性を示している。 属性の値には、 たとえば 「有効」 と 「無効」 とがある。 有 効は、 要求に応じた DMA処理を実行する必要があることを示しており、 無効は、 要求に応じた D MA処理を実行する必要がない (たとえば、 既に DMA転送が完 了している) ことを示している。
図 4は、 D M Aチャネル情報テーブルのデ一夕構造例を示す図である。 D MA チャネル情報テーブル 1 5 cには、 要求管理テ一ブルポインタ、 処理対象、 転送 元、 転送先、 残りサイズ、 モード、 オプションパラメ一夕等の項目のデ一夕が登 録される。
要求管理テ一ブルポインタは、 対応する DMA要求管理テーブル 1 5 bの格納 場所を示すメモリアドレスである。 処理対象は、 そのチャネルで処理している処 理要求の識別情報である。 転送元は、 次に転送すべきデータの格納位置を指し示 すメモリアドレスである。 転送先は、 次に転送されたデータを格納すべき記憶領 域を指し示すメモリアドレスである。 残りサイズは、 転送すべき残りのデ一夕の サイズである。 モードは、 現在 DMA転送を実行している DMA要求のモードで ある。 オプションパラメ一夕は、 現時実行している D MA転送処理に設定された ォプションのパラメ一夕である。
このように、 D M Aチャネル情報テーブル 1 5 cにより、 管理テーブルのどの 要求までを処理完了し、 どの要求を処理中なのか、 という実行状態が管理される。 なお、 これらのテーブルのサイズは、 最終的には搭載メモリ容量に依存するもの の テーブル領域として確保したサイズだけ D MA転送要求を管理可能である ため、 非常に多くの要求を処理できる。
このような構成のシステムにおいて、 D MA C 1 4に実行させるための DMA プログラム 1 5 dを、 D MA C用メモリ 1 5に予め格納する。 そして、 プロセッ サ 1 1は、 DMA転送が必要になると、 D MA要求を DMA C 1 4に渡す。 D M A要求には、 DMAパラメ一夕が含まれる。
D M A要求を受け取った D M A C 1 4は、 D MA要求パラメータテーブル 1 5 aに D MA要求に関するパラメータを格納し、 その DMA要求パラメ一夕へのポ インタを含む DMA要求のエントリを、 D M A要求管理テーブル 1 5 bに追加す る。 その際、 D MA要求の属性には、 「有効」 が設定される。
DMA要求管理テーブル 1 5 bに有効な DMA要求が登録されると、 DMA C 1 4は DMAプログラム 1 5 dに従った D MA転送処理を行う。
以下、 DMA C 1 4による D MA転送内容を説明する。 図 5は、 DMACで実行する転送プログラムの処理のフローチャートである。 この処理は、 DMAチャネル情報テーブル 15 cに新たな DMA要求の情報が登 録されたときに実行される。 以下、 図 5に示す処理をステップ番号に沿って説明 する。
[ステップ S I] DMAC 14は、 DMAチャネル情報テーブル 15 cから D MA要求管理テーブル 15 bへのポインタを読み出し、 DMA要求管理テーブル 15 bの最初の要求パラメ一夕を、 現在処理中の DMA要求とする。
[ステップ S 2] DMAC 14は、 DM Aチャネル情報テーブル 15 cから処 理中の DMA要求パラメ一夕を読み取る。
[ステップ S 3] DMAC 14は、 読み出した値に従って転送を 1単位 (たと えば、 1バイト) だけ行う。 この際、 DAMC 14は、 DM Aチャネル情報テー ブル 15 cの残りサイズのデータを更新する。 すなわち、 転送したデータ容量分 だけ、 残りサイズから減算する。
[ステップ S 4] DMAC 14は、 DM A転送の転送元と転送先のアドレスを 更新 (転送された単位データ分だけアドレスを加算) する。
[ステップ S 5] DMAC 14は、 転送終了条件を満たしているか否かを判断 する。 終了条件は たとえば 転送サイズ分のデータ転送が完了したことである。 すなわち、 DMAチャネル情報の残りサイズが 0になっていれば、 転送終了と判 断する。 転送終了条件が満たされていれば、 処理がステップ S 6に進められる。 転送終了条件が満たされていなければ、 処理がステップ S 3に進められ、 引き続 いて転送が行われる。
[ステップ S 6] DMAC 14は、 DMA要求管理テ一ブル 15 bの次の DM A要求へボインタを更新する。
[ステップ S 7] DMAC 14は、 全ての DMA要求に応じた処理が終了した か否かを判断する。 DMA要求に応じた処理が終了していない場合には、 処理が ステップ S 2に進められる。 DMA要求に応じた処理が終了した場合には、 処理 - が終了する。
対象となる DMA要求の処理が終了すると、 DMAC 14は、 次の DMA要求 を処理するために、 チャネル情報テーブル 15 cの処理対象を、 DMA要求管理 テーブル 1 5 bに格納されている次の DMA要求に書き直す。 そして、 DMA C 1 4は、 新しい処理対象の DMA処理に入る。
このようにして、 DMA C用メモリ 1 5に格納された DMAプログラム 1 5 d に従った DMA転送が実行される。 その結果、 処理機能の変更が可能となる。 す なわち、 専用ハードウェアで構成される従来の DMA Cでは、 管理できる D MA 要求数に限界があった。 これは、 要求を格納するバッファ領域が、 ハードウェア で実現されて固定化されているためであり、 これまでは、 管理可能な要求は通常 数個〜十数個程度であった。 一方、 本実施の形態によれば、 D MA Cにおける処 理内容が DMAプログラム 1 5 dで定義されるため、 DMA転送処理の機能変更 が容易である。
たとえば、 DMAプログラム 1 5 dで DMA Cにおける処理対象とするチヤネ ルの情報をテーブルで管理することができる。 通常、 プログラムであればテープ ルの数の変更は容易である。 このように各チャネルの情報をテーブルで管理する ことで、 D M Aチヤネル数を任意に設定することができる。
なお、 図 5の例では、 DMA Cが搭載している命令が単純な転送命令の場合を 想定して、 転送の 1単位を 1データとしている。 バースト転送の命令が DMAプ ログラム 1 5 dに設定されていれば、 パースト転送が行われる。
また-. 本実施の形態のように、 D M A要求パラメ一夕の格納ァドレス (ボイン 夕) を利用すれば、 決まったパターンで行う D M A転送を、 テーブルとして容易 に確保できる。 すなわち、 転送元や転送先が同じ D M A転送を、 繰り返し行う必 要がある場合、 D MA要求管理テーブル 1 5 bに登録するポインタによって、 同 じ D M A要求パラメ一夕を指定すれば、 同じパターンの D MA転送を容易に再実 行できる。 これにより、 データ転送の度に DM A要求パラメ一夕を設定しなくて すみ、 処理効率が向上する。
ここで、 図 1に示すシステムと従来のシステムとを比較する。
仕様に沿った D MA専用ハードウェアで実現された従来の D MA Cは、 定めら れた D M Aチヤネル数で定められた個数の転送要求しか受け付けられなかった。 一方、 第 1の実施の形態に係る DMA C 1 4はプログラマブルであるため、 メモ リの許す限り転送要求をキュ一^ fングすることができる。 このようにキュ一イン グの深さに制限が無いことで、 運用上の動作制限が緩和される。
汎用的なプロセッサに DMA転送を行わせるシステムでは、 転送処理を実行さ せるにはオーバ一スペックであり不要なコストアップを招いてしまう。 一方、 第 1の実施の形態に係る D MA C 1 4は、 メモリアドレス生成回路等により DMA 転送用のメモリアドレスを生成することで、 簡単な処理でデータ転送が可能とな る。
[第 2の実施の形態]
第 2の実施の形態は、 チャネル数を容易に変更できるようにしたものである。 すなわち、 一般に、 D M Aチャネル数はシステムに搭載するァプリケ一シヨンに よって要求数がまちまちである。 それにもかかわらず、 ハードウェアで構成され る D MA機能の場合、 通常、 チャネル数は固定である。 そのため、 要求に対して オーバ一スペックとなるか、 あるいはチャネルの不足によって DM A管理が煩雑 になる等の問題がある。
第 2の実施の形態では、 第 1の実施の形態で使用した D M A要求管理テ一プル を DMAの 1チャネルとみなし、 複数の DMA要求管理テーブルをチャネル管理 テーブルで管理しながら、 多チャネルの DMA転送として処理する。 D MA C用 のメモリ領域に複数の D M A要求管理テーブルを格納することで、 メモリの許す 限り、 チャネル数を可変にして管理制御することが可能となる。
図 6は、 第 2の実施の形態のシステム構成例を示す図である。 第 2の実施の形 態におけるシステム構成は、 図 1に示した第 1の実施の形態とほぼ同じであるた め、 同一の構成要素には同一の符号を付し、 説明を省略する。
第 2の実施の形態では、 D MA C用メモリ 1 5に格納される情報のみが第 1の 実施の形態と異なる。 図 6に示すように、 第 2の実施の形態では、 D MA C 1 5 内に複数の D MA要求管理テ一ブル 1 5 eが設けられている。 さらに、 チャネル 管理テーブル 1 5 fが追加されている。 また、 DMA用メモリ 1 5には、 第 2の 実施の形態の機能を実現するための処理手順が記述された DM Aプログラム 1 5 gが格納されている。
DMA要求管理テーブル 1 5 eは、 チャネル毎に設けられている。 各 DMA要 求管理テ一ブル 1 5 eのデータ構造は、 図 3に示した第 1の実施の形態における DM A要求管理テ一ブル 1 5 bのデータ構造と同様である。
チャネル管理テ一ブル 15 ίは、 複数の DMAチャネル情報テーブル 1 5 cを 管理するための情報 (チャネルポインタ等) である。
図 7は、 チャネル管理テーブルのデータ構造例を示す図である。 チャネル管理 テーブル 15 ίには、 レコード毎に、 番号、 DMAチャネル情報テーブル 15 c へのポインタ (チャネルポインタ) 、 および属性が登録されている。 番号は、 各 レコードの識別番号である。 DMAチャネル情報テ一ブル 15 cへのポインタは、 1つの DMAチャネル情報テーブル 1 5 cが格納された記憶領域のァドレスであ る。 その DMAチャネル情報テ一ブル 1 5 cに記載された要求管理テーブルへの ポインタは、 1つの DMA要求管理テーブル 1 5 eが格納された記憶領域のアド レスである。 属性は、 そのレコードが有効か無効かを示す情報である。
以上のようなチャネル管理テーブル 1 5 f を介して、 複数のチャネル情報が管 理される。
図 8は、 チャネル管理を示す概念図である。 図 8の例では、 チャネル管理テ一 ブル 1 5 f に、 チャネル毎に設けられた複数の DMAチャネル情報テ一ブル 18 a, 18 cが登録されており、 その各々には DM A要求管理テーブル 16 a, 1 6 bに対する要求管理テーブルボイン夕が登録されている。 チャネル 1の DMA 要求管理テーブル 16 aには、 複数の DMA要求パラメ一夕テーブル 17 a, 1 7 bへのポインタが登録されている。 チャネル 2の DMA要求管理テーブル 16 bには、 複数の DMA要求パラメ一夕テ一ブル 17 c, 17 dへのポインタが登 録されている。
現在管理している DMA要求管理テーブルの数が、 現在処理対象となっている DMAチャネル数である。 DMA要求管理テーブルについては既に説明の通りで あり、 個々の DMA転送要求をひとつのチャネルに対する転送要求として管理し、 次々に転送処理する。
図 8に示すように情報を関連付けることで、 複数のチャネルが管理される。 チ ャネル毎の転送処理の詳細は、 第 1の実施の形態と同様である。 ここで、 複数の チャネルのそれぞれにおいて、 現在転送処理対象となっている DMA要求が存在 するが、 それら各 DMA要求については、 予め定義された優先度情報等に従った 適切な順序で処理が行われる。
このように、 テーブルのポインタを受け取るだけで DMA転送を処理できるよ うに D M Aプログラムを作成すれば、 同じパターンの D M A転送を繰り返すこと も容易である上、 複数チャネルで、 同一パターンの DMA転送を共有することも 可能である (テーブル先頭ポインタと、 テーブルの参照ポインタをチャネルごと に管理すればよい) 。
図 9は、 チャネルを複数管理する場合の DMA処理を示すフローチャートであ る。 この方法は、 タイムシェアリング方式で、 各チャネルで処理対象となってい る DMA要求を、 1データ単位ずつ、均等に処理するものである。 以下、 図 9に 示す処理をステップ番号に沿って説明する。
[ステップ S 1 1] DMAC 14は、 まず、 チャネル管理テーブル 15 から DM Aチャネル情報テーブル 15 cへのポィンタをひとつ読み出す。
[ステップ S 12] DMAC 14は、. 読み出したチャネル情報テーブルポイン 夕のチャネルの属性を判断する。 そのチャネルが 「有効」 である場合、 処理がス テツプ S 13に進められる。 チャネルが 「無効」 の場合、 処理がステップ S 16 に進められる。
[ステップ S 13] DMAC 14は、 D M Aチャネル情報テ一ブル 15 cのス テ一タスを読み、 現在処理中の DM A要求の転送状態を確認する。
[ステップ S 14] DMAC 14は、 読み込んだ D M Aチヤネル情報テ一ブル 15 cに登録されている処理対象の DMA要求に基づき、 1データ単位だけ DM A転送を行う。
[ステップ S 15] DMAC 14は、 DMAチャネル情報テーブル 15 cの転 送状態のステータスを更新する。
[ステップ S 16] DMAC 14は、 DMAチャネル情報テーブル 15じへの ポインタを、 次のチャネルへと処理を移す。
[ステップ S 17] DMAC 14は、 全チャネルに対する処理が終了したか否 かを判断する。 全チャネルに対してこの処理が終了していなければ、 処理がステ ップ S 1 1に進められ、 全チャネルに対する処理が終了していれば、 全チャネル への 1回ずつの巡回処理が終了となる。 このような処理を繰り返していくことで、 DMA処理が進んでいく。 あるチヤ ネルで対象となる要求が処理完了すると、 処理を待っていた次の要求へと対象が 進むのは、 これまでと同様である。 あるチャネルの全要求が処理完了すると、 こ のチャネルを 「有効」 から 「無効」 へ書き換え、 新たな DMA要求が格納される までは処理対象から外す。 「有効」 のチャネルがチャネル管理リストから無くな れば、 D MA処理が全て終わりとなる。
この方法では、 全てのチャネルのプライオリティが対等であるが、 これにさら に重み (優先順位) をつけて、 処理を行ってもよい。
以下に、 チャネル情報の管理方法、 および DMA処理の実行方法について、 ハ —ドウエアで機能が固定された DMA Cの機能と比較して説明する。
•八一ドウエアで機能が固定された D MA Cの処理
通常のハードウェアで構成される D M A Cでは、 D M Aチャネルに転送要求が 積み上げられており、 D MA Cがそれらを順に処理していく。 具体的には、 DM A Cは、 ある決まったプロック領域の転送が頻繁に現れるような場合、 チャネル 数に余裕があれば、 あるチャネルに設定した使用頻度の高い転送設定のパターン を、 他の転送設定で上書きすることなくチャネルの設定状態を保持しておく。 そして、 D MA C再び D MA転送を実行したいときに 最小限のパラメ一夕変 更だけで実行を行うような配慮を行う。 チャネル数に余裕がない場合は、 他の転 送の後に再び設定をやり直す必要が生じ、 その設定作業がオーバへッドとなる。
· D M Aプログラムに従った機能を実現する第 2の実施の形態に係る D M A C の処理
本発明の第 2の実施の形態において、 チャネル管理テーブルに登録されている 各チャネルの DMA要求を時分割で処理する方法を説明する。 チャネル管理テー ブル 1 5 f には、 チャネルの状態が保持されているので、 D MA C 1 4は、 「有 効」 な各チャネルの DMA要求を、 1データ転送単位だけ処理し、 その後、 次の チャネルの D MA要求処理に移る。 これにより、 各チャネルの D MA要求は、 1 データ転送単位ずつ均等に処理が進められる。 その結果、 チャネルの追加 ·削除 も容易となる。 このような処理を繰り返し、 あるチャネルの D MA要求の未処理 分が無くなれば、 そのチャネルは 「有効」 状態から終了状態となる。 このように、 チャネル数を可変にできる上、 チャネル管理テーブルへの登録お よび削除が容易である。 そのため、 あるチャネルに対して使用頻度の高い転送パ ターンのパラメ一夕設定を行って、 そのチャネルの情報すベてをメモリ上に保持 し、 必要に応じてチャネル管理テ一ブルへの登録,削除、 及び有効化 ·無効化を 行うことで、 頻度の高い転送パターンを再度パラメ一夕設定する必要がなくなり、 オーバへッドを大きく削減できる。
[第 3の実施の形態]
第 3の実施の形態は、 上位プロセッサによって DMACを制御するものである。 図 10は、 第 3の実施の形態に係るシステム構成例を示す図である。 図 10に 示すように、 上位プロセッサ 21には、 バス 26を介してメモリ 22、 DMAC 24および DMAC用メモリ 25が接続されている。 また、 上位プロセッサ 21 は、 専用バス 28によって DMAC 24に対して接続されている。 メモリ 22と DMAC 24とは、 バス 27を介してメモリ 23に接続されている。 さらに、 D MAC 24は、 バス 29を介して DMAC用メモリ 25に接続されている。
専用バス 28は、 制御信号として、 リセット信号や、 転送終了信号を伝送する。 これにより、 上位プロセッサ 21が DMAC用メモリ 25にアクセスして、 DM Aプログラムを入れ替えたり、 DM A転送のタイミングを制御したりすることが 可能となる。
従来の DMACはハードウェアで実現されているため、 DMACの備えている 機能そのものは、 システム動作中はもちろん、 システム停止時でも、 変更するこ とができない。
一方、 図 10に示す第 3の実施の形態の構成では、 DMAC 24を一時停止状 態にし、 上位プ口セッサが D M Aプログラムを入れ替え、 DMAC 24を再スタ —トさせることが可能である。 また、 転送処理の実行タイミングを上位プロセッ サと同期するように DMACプログラムを構成することにより、 細やかな夕イミ ング制御も可能となる。
以下、 DMACプログラムの入れ替え処理について説明する。
図 1 1は、 動作中のプログラム入れ替えの動作の処理のフロ一チャートである。 以下、 図 1 1に示す処理をステップ番号に沿って説明する。 [ステップ S 21] 上位プロセッサ 21は、 専用バス 28を介してリセット信 号を出力し、 DMAC 24を停止状態にする。
[ステップ S 22] DMAC 24が停止している状態で、 上位プロセッサ 21 は DMAC用メモリ 25上に DMAプログラムをダウンロードする。
[ステップ S 23] 上位プロセッサ 21は、 DMAC用メモリ 25内の各種テ —ブルの初期化を行う。
[ステップ S 24] 上位プロセッサ 21は、 リセット信号を解除する。 これに より、 DMAC 24の動作がスタートする。
このようにして、 DMAプログラムを入れ替えることができる。
その後、 上位プロセッサ 21は、 DM A転送の要求が発生すると、 まず、 DM A要求パラメ一夕を DMA要求パラメータテーブルに書き込み、 転送の設定を行 う。 すでに登録されたチャネルに対する DMA転送要求の場合は、 上位プロセッ サ 21は、 DMA要求パラメータテ一ブルを DMAC用メモリ 25に格納する。 そして、 上位プロセッサ 21は、 該当するチャネルに対応する DMA要求管理テ 一ブルの最後に、 新たに格納した DMA要求パラメ一夕テーブルへのポインタを 登録する。
もし新しいチャネルに対する D M A転送要求である場合には 上位プロセッサ 21は、 新たな DMA要求管理テ一ブルを作成する。 そして、 上位プロセッサ 2 1は、 DM A要求パラメ一タテ一ブルを DMA用メモリ 25に格納し、 その DM A要求パラメータテーブルへのポインタを、 新規チャネルとして生成した DMA 要求管理テーブルに登録する。
DMAC 24で実行される DMAプログラムは、 起動後、 あるいは転送要求待 ちの状態では、 まずチャネル管理テーブルを参照する。 チャネル管理テーブルに、 チャネルテーブルへのポインタが登録されていると、 転送処理を開始する。 転送 処理の詳細は、 第 2の実施の形態と同様である。
ここで、 DMAC 24は DMA要求パラメータのォプションパラメ一夕におけ る設定で終了通知設定が ONの場合は、 転送要求を処理完了した際に、 ホス卜へ 転送処理の終了を通知する。
[第 4の実施の形態] 第 4の実施の形態では、 D M A Cが上位プロセッサからの転送開始指示に従つ て転送設定情報を読み取り、 転送を開始するように DMAプログラムを動作記述 する。 これによつて上位プロセッサは、 従来のハードウェア回路による固定機能 の DMACへの設定と同様に、 転送元アドレス、 転送先アドレス、 転送サイズな どを設定し、 転送開始指示を送ることにより、 転送を開始させることができる。 すなわち、 既存のシステムにおける上位プロセッサの動作を変更せずに、 本発明 に係る DMAデータ転送装置 (DMACと DMAC用メモリ) を実装可能となる。 図 12は、 第 4の実施の形態のシステム構成例を示す図である。 なお、 第 4の 実施の形態におけるシステム構成は、 図 10に示した第 3の実施の形態とほぼ同 じであるため、 同一の構成要素には同一の符号を付し、 説明を省略する。
第 4の実施の形態では、 DMAC用メモリ 25に格納される情報が、 第 3の実 施の形態と異なる。 第 4の実施の形態では、 DMAC用メモリ 25に、 DMA要 求設定テーブル 25 a、 DM Aチャネル情報テーブル 25 b、 DMAプログラム 25 c、 DMA要求パラメ一夕テ一ブル 25 j、 および DMA要求管理テーブル 25 kが格納される。 DMAチャネル情報テーブル 25 b、 DMA要求パラメ一 タテ一ブル 25 j、 および DMA要求管理テーブル 25 kに関しては、 図 6に示 した第 2の実施の形態の同名の要素と同じ情報である。
DMA要求設定テ一ブル 25 aは、 チャネル毎の DMA要求パラメ一夕等が登 録される。 DMAプログラム 25 cは、 第 4の実施の形態に係る処理を DMAC 24に実行させるためのプログラムである。
ところで、 ハードウエアにより固定された機能を有する DMAC用の DMA設 定パラメ一夕は、 一般にメモリ空間上の I/Oレジスタにマッピングされる。 第 4の実施の形態では、 DM A設定パラメータがメモリ空間上の IZ〇レジスタに マッピングされる形態を維持して、 プログラムによる機能変更可能な DMAC 2 4を適用する場合を想定する。
図 13は、 DMA要求設定テ一ブルのデータ構造例を示す図である。 図 13に 示す DM A要求設定テーブル 25 aは、 I /Oレジス夕にマッピングされた DM Aパラメ一夕テーブルと同等のパラメ一夕を、 DMA用メモリ 25上のあるアド レスにテーブル形式で格納したものである。 図 1 3に示すように、 DMA要求設定テーブル 2 5 aには、 チャネル番号、 項 目、 および値の欄が設けられている。 チャネル番号の欄には、 チャネルの識別番 号が登録される。 項目の欄には、 各チャネルに設定されるパラメ一夕の名称が登 録される。 パラメ一夕としては、 ステータス、 転送元、 転送先、 転送サイズ等が ある。 ステータスは、 そのチャネルが転送要求を受け付け可能か否かを示す情報 である。 転送元は、 転送元のデータが格納された領域の先頭のメモリアドレスで ある。 転送先は、 転送されたデータを格納すべき領域の先頭のメモリアドレスで ある。 転送サイズは、 転送すべきデータのデータ容量である。
次に、 第 4の実施の形態における処理手順を説明する。
図 1 4は、 上位プロセッサによる DMA起動処理手順を示すフローチャートで ある。 以下、 図 1 4に示す処理をステップ番号に沿って説明する。
[ステップ S 3 1 ] 上位プロセッサ 2 1は、 DMA要求設定テーブル 2 5 aを 参照し、 処理対象チャネルのステータスを読み出す。
[ステップ S 3 2 ] 上位プロセッサ 2 1は、 読み出したチャネルのステ一タス に基づいて、 転送要求の受け付けが可能かどうかを判断する。 転送要求が可能で あれば、 処理がステップ S 3 3に進められる。 転送要求が不可能であれば、 処理 がステップ S 3 1に進められ、 転送要求が可能になるまでステータスの判断が繰 り返される。
[ステップ S 3 3 ] 上位プロセッサ 2 1は、 D M A転送に必要なパラメ一夕を、 D M A要求設定テーブル 2 5 a内に設定する。 パラメータは、 転送元のアドレス、 転送先のアドレス、 転送サイズ等である。
[ステップ S 3 4 ] 上位プロセッサ 2 1は、 処理対処チャネルの D MA転送開 始の指示を、 D MA要求設定テーブル 2 5 a内の処理対象チャネルのステータス に書き込む。
このような処理を上位プロセッサ 2 1が実行することで、 DMA要求が DMA C 2 4に通知される。
DMA C 2 4は、 所定のタイミングで D MA要求検出処理を行う。
図 1 5は、 DMA Cによる DMA要求検出処理を示すフローチャートである。 なお、 D MA要求検出処理は、 DMA転送の空き時間帯を利用して実行される。 以下、 図 15に示す処理をステップ番号に沿って説明する。
[ステップ S 41] DAMC24は、 DMA要求設定テ一ブル 25 aのチヤネ ルのステータスを読み出す。
[ステップ S 42] DMAC24は、 ステータスに基づいて DMA要求がある か否かを判断する。 具体的には、 チャネルのステ一タスに DMA転送開始指示が 設定されていた場合、 そのチャネルの DMA転送要求があると判断される。 DM A要求があれば、 処理がステップ S 43に進められる。 DMA要求がなければ終 了する。
[ステップ S 43] DMAC24は、 DMA要求が出されているチャネルのス テータスを、 DM A要求受け付け禁止に変更する。
[ステップ S 44] DMAC24は、 DMA転送を実行すべきチャネルのパラ メータを、 DM A要求設定テーブル 25 aから DM A要求パラメ一夕テーブル 2 5 jにコピーする。
[ステップ S45] DMAC24は、 DMA要求が出されているチャネルのス テータスを、 DM A要求受け付け可能に変更する。
このように、 DMAC 24は DMA転送処理の合間の時間帯を利用し、 各チヤ ネルのステータスを読み取って、 新たな DMA要求の有無 (転送開始ステ一夕 ス) を確認する。 要求がある場合には、 転送パラメ一夕を該当チャネルの DMA 要求パラメータテーブル 25 jにコピーし、 DMA要求設定テーブル 25 a内の 該当チャネルのステータスを 「受け付け可能」 の状態に戻す。
これら処理が終わると、 DMAC 24は通常の転送処理シーケンスに戻り、 新 たに登録された DMA要求に応じた DMA転送を、 DMAプログラム 25 cに定 義された転送処理シーケンスに従って処理する。
以上の様に、 上位プロセッサ 21側から見える DMA転送のパラメータインタ 一フェイスを従来の IZOレジス夕と同様のテーブルで実現することにより、 上 位プロセッサ 21のプログラムを変更することなく、 DMA転送処理することが 可能となる。
すなわち、 ハードウェアで実現されていた従来の DMA転送では、 DMA要求 設定テーブル 25 aに相当するパラメ一夕テーブルを IZOレジス夕などに搭載 していた。 そして、 I/Oレジス夕に DMA要求に沿ったパラメ一夕を書き込ん で開始指示を出すと、 DMA Cが指示に従って転送処理を実行していた。
一方、 第 4の実施の形態のシステムでは、 DMA要求設定テーブル 25 aを D MAC用メモリ 25に配置して、 上位プロセッサ 21はそのテーブル領域へパラ メータを書き込む。 そして、 DMAC 24はその領域を監視し、 要求を確認し、 その DMA要求に応じた DMA転送処理を開始する。 このような方法により、 上 位プロセッサ 21は従来方式となんら変わることなく DMA転送を扱うことがで きるようになる。
ここで、 DMA要求設定テーブル 25 a内のステータスの書き換え手順につい て説明する。
図 16は、 ステータス更新の手順を示すシーケンス図である。 まず DMAC 2 4は、 DMA要求設定テーブル 25 aのステータスを 「受け付け可」 状態とする (ステップ S 51) その後、 DMAC 24は、 要求が来ないか、 一定時間ごと にステータスの確認を行う (ステップ S 52) 。
一方、 上位プロセッサ 21は、 転送要求が発生すると、 パラメ一夕を DMA要 求設定テーブル 25 aに書き込んでも良いかどうかに関し、 DMA要求設定テ一 ブル 25 aのステ一タスを参照することで確認する (ステップ S 53) 。 ステ一 タスが rOKj ならば、 上位プロセッサ 21は、 転送アドレス等のパラメ一夕を 書き込んで、 最後にステータスを 「転送開始要求」 に書き換える (ステップ S 5 4)
DMAC 24は、 一定時間間隔のステータス確認 (ステップ S 55) において 転送開始要求を検出すると、 転送要求のパラメ一夕を書き込んだ DMA要求パラ メータテーブル 25 jを生成すると同時に、 DMA要求管理テーブル 25 kに D MA要求パラメ一夕テーブル 25 jへのポインタを登録する (ステップ S 56) 。 最後に、 DMAC 24は、 ステータスを 「受け付け可」 に戻す (ステップ S 5 7) 。
このような方法により、 上位プロセッサは、 従来の DMA制御とまったく同等 に本発明の DMA Cを扱うことが可能となり、 従来方式とのプログラム互換性を 保つことができる。 [第 5の実施の形態]
第 5の実施の形態は、 上位プロセッサの負荷の軽減を図ったものである。 第 5 の実施の形態では、 DMAプログラムで詳細な DM A転送動作を記述し、 上位制 御装置である上位プロセッサが、 タイミングの制御や、 ステータス確認のみを行 う。 これにより、 上位プロセッサの負荷を軽減することが可能となる。
具体的には、 第 4の実施の形態では、 上位プロセッサ 2 1が必要なタイミング で DMA転送のパラメ一夕設定とスタート指示 (D MA転送開始指示) を行うこ とを切っ掛けとして、 D MA C 2 4が D M A要求設定テーブル 2 5 eに D M A要 求を追加していった。
そこで、 第 5の実施の形態では、 上位プロセッサがスタート指示を伴わない転 送パラメータの設定を、 DM A要求管理テーブルに対して直接行うようにする。 その後、 上位プロセッサ 2 1から同期のためのスタート指示を与えることにより、 DMA C 2 4が D M A要求管理テ一ブル内の転送要求を 1つずつ処理していく。 この場合、 D MA Cは、 1つの転送が終了すると次のスタート指示まで待機状態 に入る。 具体的には、 D MA Cは、 チャネル管理テ一ブルに同期パラメ一夕領域 を確保し、 D MA Cは D MA要求に対する処理を開始する際に、 この同期パラメ 一夕で開始の指示があるまで待機する。
一般に、 信号処理などでは、 D MA転送のパターンが決まっているケースが多 い。 例えば、 1画面の画像デ一夕を小さなブロック領域に分割し、 D MAによつ て 1プロックを読み込んで処理し、 処理完了後に再び D MAによって 1ブロック 分のデータ出力を行い、 これを一画面分繰り返す場合などである。 この場合、 1 画面内のブロック数だけ、 規則的に入力と出力の D M A転送を繰り返す。 そのた め、 一画面分の各ブロックについて、 転送パラメ一夕を予め設定しておけば、 上 位プロセッサ 2 1は対象ブロックの処理に合わせて、 同期制御を行うだけでよい。 このように、 前記第 4の実施の形態は、 上位プロセッサ 2 1が転送パラメータ をセットし、 転送指示を行うことによって DMAが開始される方式 あった。 こ の方式では上位プロセッサ 2 1は、 自らが処理中のプログラム処理の進行状況に 合わせて、 次に必要となるデ一夕の準備や、 処理後のデータの出力 (待避) のた めに D MA転送処理を行う。 従来の DMA Cもこのケースに相当し、 処理の進行 状況に合わせて転送タイミングが決まるため、 上位プロセッサがプログラム処理 の合間に転送の設定を行っていた。 しかしながら、 様々な転送パラメ一夕の設定 が頻繁に発生するために、 上位プロセッサのプログラム処理自体に、 オーバへッ ドとして影響を及ぼすことがあった。
第 5の実施の形態では、 DMA Cはプログラムによって処理すべき DMA転送 のフローを全てプログラムし、 上位プロセッサはタイミングの制御だけを指示す る。 これによつて、 上位プロセッサの負荷が軽減される。
図 1 7は、 第 5の実施の形態に係るシステムの構成例を示す図である。 第 5の 実施の形態に係るシステムは、 第 4の実施の形態とほぼ同じであるため、 同一の 構成要素には同一の符号を付し、 説明を省略する。
第 5の実施の形態では、 D MA C用メモリ 2 5に格納される情報が第 4の実施 の形態と異なる。 第 5の実施の形態では、 DMA C用メモリ 2 5内に、 D MA要 求設定テーブル 2 5 a、 D M Aチャネル情報テ一ブル 2 5 b、 転送同期テーブル 2 5 e、 D MAプログラム 2 5 f 、 D M A要求パラメ一夕テ一ブル 2 5 j、 およ び DMA要求管理テーブル 2 5 kが格納される。 D MA要求設定テーブル 2 5 a、 DMAチャネル情報テーブル 2 5 b、 D MA要求パラメ一夕テーブル 2 5 j、 お よび DMA要求管理テ一ブル 2 5 kについては、 第 4の実施の形態の同名のテー ブルと同じデータ構造である。
転送同期テーブル 2 5 eは、 チャネルに対する開始指示を管理するための情報 である。 DM Aプログラム 2 5 f は、 上位プロセッサへの負荷を軽減させるため の D M A転送用のプログラムである。
図 1 8は、 転送同期テーブルの例を示す図である。 転送同期テーブル 2 5 eに は、 チャネル番号 (N o . ) に対応付けて、 D M Aチャネル情報テーブルへのポ イン夕とステータスとが登録されている。 ステータスは、 転送の状態 (転送開始、 または転送終了) が設定される。
このような構成のシステムにおいて、 上位プロセッサ 2 1の負荷を軽減させる ことができる。 ここで、 実施例としてダブルバッファ形式の出力バッファの制御 を例に挙げる。
ダブルバッファ形式では、 上位プロセッサ 2 1は演算結果をバッファ Aとバッ ファ Bに交互に出力する。 具体的には、 上位プロセッサ 2 1は、 バッファ Aに出 力を開始する際に、 バッファ Bに格納されている出力データを DMA転送で外部 メモリへ出力する。 続いて、 上位プロセッサ 2 1は、 バッファ Aへのデータ出力 が完了すると、 今度は演算結果の出力先をバッファ Bに切り替える。 そして、 上 位プロセッサ 2 1は、 バッファ Aに格納されている処理済のデータを外部メモリ へ D MAによって出力開始すると同時に、 バッファ Bへの出力を開始する。 従来では、 これらの処理を上位プロセッサが全て引き受け、 DMA Cは、 指示 されたパラメータに従つて転送を行うだけであった。
そこで、 第 5の実施の形態では、 DMA要求パラメ一夕テーブルにおいて、 2 つの要求のみを有効とする。 そして、 有効な D M A要求を個別のチヤネルで実行 するものとし、 それぞれの DMAチャネル情報テーブル 2 5 bにバッファからメ モリへの DMA転送用のパラメ一夕を設定する。 このとき DMAチャネル情報テ 一ブル 2 5 bには、 繰り返し実行を示すパラメータが設定される。
図 1 9は、 第 5の実施の形態における DMAチャネル情報テーブルの例を示す 図である。 図 1 9に示すように、 D M Aチャネル情報テーブル 2 5 bのモードと して 「repeat」 、 オプションパラメ一夕として 「forever」 が設定されている。 「i'epeat」 のモードは、 テ一ブルの最後まで処理が終わると 次の要求をテ一ブ ルの先頭に戻すことを指示するものである。 オプションパラメ一夕 rforeverj は、 繰り返し回数が永久 (制限なし) であることを示す。
このように転送の種類としてはバッファ Aとバッファ Bの転送の 2種しかない ため、 ここでは要求が 2種類のみが登録され D MAチャネル情報テーブル 2 5 b のモ一ド指定で 「repeat」 、 オプションで 「: foreverj が指定されている。 この ような指定に対して、 D MA C 2 4は、 タイミングだけ上位プロセッサ 2 1の指 示に合わせて、 バッファ Aとバッファ Bの転送を交互に永久に自走で繰り返す。 これによつて上位プロセッサは非常に軽いタイミング指示の処理のみですむ。 図 2 0は、 DMA Cの同期動作の手順を示すフローチヤ一トである。 以下、 図 2 0に示す処理をステップ番号に沿って説明する。
[ステップ S 6 1 ] D MA C 2 4は、 上位プロセッサ 2 1からスタート指示が 入力されたか否かを判断する。 スタート指示が入力された場合、 処理がステップ S 62に進められる。 スタート指示が入力されていなければ、 ステップ S 61の 処理が繰り返される。
[ステップ S 62] DMAC24は、 バッファ A用の DMA転送処理を行う。
[ステップ S 63] DMAC24は、 上位プロセッサ 21からスタート指示が 入力されたか否かを判断する。 スタート指示が入力された場合、 処理がステップ S 64に進められる。 スタート指示が入力されていなければ、 ステップ S 63の 処理が繰り返される。
[ステップ S 64] DMAC24は、 バッファ B用の DMA転送処理を行う。 その後、 処理がステップ S 61に進められる。
DMA転送が完了すると、 転送同期テーブル 25 e内の該当するチャネルのス テ一タスが転送終了となる。 転送終了のステータスになったチャネルに関しては、 ステータスが転送開始に変更されるまで、 転送が開始されない。
なお、 ここでは 2つのバッファについて交互に DMA転送するケースを示した が、 パ夕一ン化される DMA転送は、 このような制御によって、 DMAC側に処 理の大半を自律動作させることが可能となり、 上位プロセッサ 21の負荷の大幅 な削減が期待できる。
また、 DMA要求パラメ一夕のオプションフィールドに、 繰り返し属性を設定 することができるようにすれば、 DMAC24は、 転送終了時にこの属性を読み 取った場合に、 DM A要求設定テーブル 25 aの先頭に戻って繰り返し実行でき る。 これによつて、 次の 1画面に対して、 同様の処理を行うことが可能である。 さらに、 第 5の実施の形態に係る方式は、 1つの DM A転送が終わると、 次の スタート指示を待機する。 そのため、 転送完了通知を受けたら即座に次のスター ト指示 (上位でやるか、 DMACの上位層でやるかは不問) を出せば、 普通にキ ユーィングされた DMAの連続実行と等価な処理を行うことができる。
[第 6の実施の形態]
第 6の実施の形態は、 設定されるパラメータ値についてのチェック機構を備え たものである。
ハードウェアで実現されている DMACは、 通常、 設定されるパラメ一夕値に ついてのチェック機構を備えていない。 これは八一ドウエアが煩雑になる上、 搭 載メモリ容量を変更した場合などの対処が難しいためである。
本発明に係るシステムは、 プログラムに従って動作するため、 システムのメモ リ領域情報テーブルを備えている。 そして、 D MA Cは、 メモリ領域情報テ一ブ ルを参照しながら D M A要求のアドレスやサイズのパラメ一夕を検査し、 転送処 理を開始する前または、 実行中に、 領域のエラーを検出して、 上位制御装置に通 知するエラ一検出機構を備えることが容易である。
図 2 1は、 第 6の実施の形態に係るシステムの構成例を示す図である。 第 6の 実施の形態に係るシステムは、 第 4の実施の形態とほぼ同じであるため、 同一の 構成要素には同一の符号を付し、 説明を省略する。
第 6の実施の形態では、 D MA C用メモリ 2 5に格納される情報が第 4の実施 の形態と異なる。 第 6の実施の形態では、 D MA C用メモリ 2 5内に、 D MA要 求設定テーブル 2 5 a、 D M Aチヤネル情報テ一ブル 2 5 b、 メモリ領域管理情 報テ一ブル 2 5 g、 および D MAプログラム 2 5 hが格納される。 D M A要求設 定テーブル 2 5 aと D MAチャネル情報テ一ブル 2 5 bについては、 第 4の実施 の形態の同名のテーブルと同じデータ構造である。
メモリ領域管理情報テーブル 2 5 gは、 メモリ領域毎のステータスが登録され る。 D MAプログラム 2 5 hは パラメータのチェック機構の処理手順を含む D MA転送用のプログラムである。
図 2 2は、 メモリ領域管理情報テーブルのデータ構造例を示す図である。 メモ リ領域管理情報テーブル 2 5 gには、 エリア番号 (N o . ) 、 ス夕一ト (start)、 エンド (end), ライト (write), およびリード (read)の欄が設けられている。
エリア番号の欄には、 区分けされた各記憶領域の管理番号が登録される。 ス夕 一卜の欄には、 記憶領域の先頭のメモリァドレス (開始アドレス) が登録される。 エンドの欄には、 記憶領域の最後尾のメモリアドレス (終了アドレス) が登録さ れる。 ライトの欄には、 記憶領域に対する書き込みの可否が設定される。 ライト の欄に 「〇K」 と登録されていれば書き込み可能であり、 「N G」 と登録されて いれば書き込み不可である。 リードの欄には、 記憶領域からの読み取りの可否が 設定される。 リードの欄に 「O K」 と登録されていれば読み取り可能であり、 「N G」 と登録されていれば読み取り不可である。 図 23は、 パラメータ検査処理の手順を示すフローチャートである。 なお、 ノ\° ラメ一夕検査処理は、 DM A要求の転送先ァドレスと転送先ァドレスとのそれぞ れに関して行われる。 以下、 図 23に示す処理をステップ番号に沿って説明する。
[ステップ S 71] DMAC24は、 メモリ領域管理情報テーブル 25 gから 領域情報を 1つ読み取る (たとえば、 エリア番号順に選択される) 。
[ステップ S 72] DMAC24は、 読み取った記憶領域と、 DMA要求で指 定されたアドレス (転送元アドレスまたは転送先アドレス) とを比較する。
[ステップ S 73] DMAC24は、 DMA要求のァドレスが、 ステップ S 7 2で選択した記憶領域の範囲に入っているかを判定する。 記憶領域内であれば処 理がステツプ S 74に進められる。 記憶領域外であれば処理がステップ S 77に 進められる。
[ステップ S 74] DMAC24は、 該当した記憶領域の読み書きの属性を検 査する。 転送元ァドレスの検査であれば、 リードの属性が検査され、 転送先ァド レスの検査であれば、 ライトの属性が検査される。
[ステップ S 75] DMAC 24は、 ステップ S 74で検査の結果、 アクセス 違反か否かを判断する。 すなわち、 検査対象の属性が 「〇K」 であればアクセス 可能であり、 「NG」 であればアクセス違反である。 アクセス違反でなければ処 理がステップ S 76に進められる。 アクセス違反であれば処理がステップ S 77 に進められる。
[ステップ S 76] DMAC 24は、 DMAプログラム 25 hに従った DMA 転送を行い、 処理を終了する。
[ステップ S 77] DMAC 24は、 全ての記憶領域 (エリア) の検証を行つ たか否かを判断する。 全てのエリァに関して検証済の場合、 処理がステップ S 7 8に進められる。 未検証のエリアが存在する場合、 処理がステップ S 79に進め られ、 他のエリアに関して検証が行われる。
[ステップ S 78] DMAC24は、 すべてのエリアでエラ一した場合は、 ノ\° ラメ一夕設定の不正とし、 エラーを通知する。 エラーの通知は、 上位プロセッサ 21から参照できるように、 例えば DMA要求パラメ一夕テーブルあるいは DM A要求管理テ一ブルにステータスとして記述される。 [ステップ S 7 9 ] D MA C 2 4は、 メモリ領域管理情報テーブル 2 5 gから 次の領域情報を読み取り、 処理をステップ S 7 2に進める。
このような検査処理を起動するタイミングとしては、 2通りの方法が考えられ る。 第 1に、 新しい転送要求の処理に入る前に検査を行う場合であり、 第 2に、 転送処理の最中に 1デ一夕転送単位ごとに検査を行う場合である。
前者は、 転送領域が一次元で連続した領域などの単純ブロック領域 (開始アド レスからサイズを加算した値が終了アドレスであるような、 単純転送のケース) に関しては、 処理も軽く有効である。 この場合、 転送元および転送先の連続領域 の先頭と終わりのそれぞれ 2つのァドレスを検査して、 いずれも〇Kとなれば、 D MA転送要求のエラ一無しであると判断できる。 ただし、 複雑な転送について は、 先頭ァドレスとサイズだけでは領域をエラーを単純に判断できない。
後者は、 転送領域が矩形である場合や、 さらに複雑な形状の場合に有効である。
D MA C 2 4は、 プログラムにより複雑な転送も実現が容易であるため、 転送開 始の初回で検査を 1度実行して判断するのが困難な場合が発生する。 1データ単 位の転送の度に検査すると、 転送速度の低下を招くが、 D MA転送のアドレス設 定ミス等を検出するという意味では、 上位プロセッサ 2 1のプログラムデバッグ 段階で有効に利用することができる。 つまり、 上位プロセッサ 2 1のプログラム デバッグ段階で、 検査を有効にし- プログラムのデバッグが完了した後には、 も はや検査の必要は無く、 検査はスキップすればよい。
このように、 プログラムで動作する D MA C 2 4の柔軟性を活用して、 システ ムのメモリ領域情報を元に転送領域のエラ一検査を行うことができる。 すなわち、 検査対象アドレスが、 所定のメモリ領域 (アクセス可能なメモリ空間) の範囲内 であるか、 テーブルの情報とひとつずつ比較しながら検査する。 また、 読み出し 専用領域に書き込もうとしていないか、 などの領域属性もチェックすることもで きる。 ここで、 領域の範囲と読み書きの属性が共にマッチすれば、 正常ステ一夕 スを返し、 包含するアドレス範囲が見つからない場合や、 読み書きの属性の誤り の場合には、 エラーを返す。
この検査フローを起動するタイミングであるが、 新たな D MA要求を処理する 最初に起動する場合と、 1データ単位の転送毎に起動する場合が考えられる。 以下、 本発明のより具体的な実現例を、 他の実施の形態として説明する。
[第 7の実施の形態]
第 7の実施の形態は、 上記第 1の実施の形態の具体的な実現例である。
図 24は、 第 7の実施の形態のシステム構成例を示す図である。 図 24に示す ように、 システム全体を制御するプロセッサ 51に対し、 バス 56を介してメモ リ 52, 53や DMAC 54が接続されている。 DMAC54には、 DMAC用 メモリ 55が接続されている。 DMAC用メモリ 55には、 命令メモリ領域 55 aとデ一夕メモリ領域 55 bとが設けられている。 DMAC用メモリ 55の命令 メモリ領域 55 aには、 DMACの動作を記述した DMAプログラムが配置され る。
DMAC 55は、 命令メモリ領域 55 aに格納された D M Aプログラムに従つ た処理手順で DMA転送を行うことができる。 また、 DMAC 55は、 DMA転 送に必要な各種情報をデ一夕メモリ領域 55 bに格納したり、 データメモリ領域 55 bから情報を読み出したりする。
DMAC用メモリ 55としては、 命令とデータを同時に読み出せるメモリを利 用できる。 たとえば、 DMAC用メモリ 55として、 2ポートリ一ドメモリを搭 載することができる。 また DMAC用メモリ 55として、 命令メモリ領域 55 aに相当する命令メモリとデータメモリ領域 55 bに相当するデ一夕メモリとを、 それぞれ別に搭載することも可能である。 このような構成とすることで、 命令メ モリからの命令フェッチ、 およびデータメモリのリードライトが同時に行えるた め、 命令フエツチとデ一夕のリ一ドライトのメモリアクセス衝突によるウェイト 発生を回避できる。 その結果、 DMACのプログラム処理を高速に実行すること が可能となる。
また、 DMAC用メモリ 55として、 パスを介して接続されたメモリに、 デ一 夕メモリ領域 55 bとは別のデータメモリ領域を設けることも可能である。 この とき、 各データメモリ領域で、 DMAC 54によるデータの DMA転送が可能と なる。
図 25は、 DMACの内部構成を示すブロック図である。 図 25に示すように、 DMAC 54は、 汎用レジスタ 54 a、 アドレスレジス夕 54 b、 加算器 54c、 セレクタ 5 4 d、 デ一夕セレクタ 5 4 e、 メモリインタフェイス 5 4 ί、 命令デ コーダ 5 4 g、 リードアドレス生成部 5 4 h、 ライトアドレス生成部 5 4 i、 セ レクタ 5 4 j、 加算器 5 4 k、 セレクタ 5 4 m、 および P C (プログラムカウン 夕) 5 4 ηを有している。 リ一ドアドレス生成部 5 4 hは、 セレクタ 5 4 1、 カロ 算器 5 4 2、 およびセレクタ 5 4 3で構成される。 なお、 ライトアドレス生成部 5 4 iの内部構成も、 リードアドレス生成部 5 4 hと同様である。
汎用レジスタ 5 4 aの 2つの出力信号があり、 一方の出力信号は加算器 5 4 c とセレクタ 5 4 dとに入力され、 他方の出力信号は加算器 5 4 cにのみ入力され る。 7ドレスレジスタ 5 4 bの 4つの出力信号のうち 2つの出力信号がリードア ドレス生成部 5 4 hに入力され、 他の 2つの出力信号がライトアドレス生成部 5
4 iに入力される。 Ύドレスレジス夕 5 4 bからリードアドレス生成部 5 4 hに 入力される 2つの信号のうち、 一方の信号がセレクタ 5 4 1に入力され、 他の信 号が加算器 5 4 2とセレクタ 5 4 3とに入力される。 同様に、 ァドレスレジスタ
5 4 bからライトアドレス生成部 5 4 iに入力される信号も、 ライトアドレス生 成部 5 4 i内のセレクタや加算器に分配される。
加算器 5 4 cは、 汎用レジス夕 5 4 aから入力された 2つのデ一夕を加算し、 加算結果をセレクタ 5 4 dに対して出力する。 セレクタ 5 4 dは. 命令デコーダ 5 4 gから送られる信号に基づいて、 加算器 5 4 cから出力された信号と汎用レ ジス夕 5 4 aから入力された信号との一方を選択し、 データセレクタ 5 4 eに対 して出力する。
データセレクタ 5 4 eは、 命令デコーダ 5 4 gから送られる信号に基づいて、 セレクタ 5 4 dやメモリインタフェイス 5 4 fから入力されるデータのうち、 レ ジス夕や DMA C用メモリ 5 5に格納すべきデータを選択する。 データセレクタ 5 4 eは、 命令デコーダ 5 4 gからの信号に従い、 選択したデータを汎用レジス 夕 5 4 a、 アドレスレジスタ 5 4 bまたはメモリインタフェイス 5 4 f に対して 出力する。
メモリインタフェイス 5 4 f は、 DMA C用メモリ 5 5に対してデータの入出 力を行う。 たとえば、 メモリインタフェイス 5 4 f は、 データセレクタ 5 4 eか ら入力されたライトデータを、 ライトアドレス生成部 5 4 iから入力されるライ トデータアドレスで示される記憶領域に格納する。 また、 メモリインタフェイス 5 4 f は、 リードアドレス生成部 5 4 hから入力されるリードデータアドレスで 示される記憶領域からリードデータを読み取り、 データセレクタ 5 4 eに対して 出力する。
命令デコーダ 5 4 gは、 命令メモリ領域 5 5 aに格納された DMAプログラム の命令を受け取り、 その命令を解釈する。 そして、 命令デコーダ 5 4 gは、 解釈 した命令で指示される動作内容に従って、 汎用レジス夕 5 4 aやアドレスレジス 夕 5 4 bからデータを読み取り、 演算処理を行う。 命令デコーダ 5 4 gは、 セレ クタ 5 4 d、 セレクタ 5 4 1、 セレクタ 5 4 3、 セレクタ 5 4 jおよびセレクタ 5 4 mに対して制御用の信号を出力しており、 演算結果に従って信号を制御する。 リードアドレス生成部 5 4 hは、 命令デコーダ 5 4 gからの信号に従って、 デ —タを読み取るためのリードデータアドレスを生成する。 具体的には、 アドレス レジスタ 5 4 bから出力される値と、 命令デコーダ 5 4 gから出力される即値カロ 算 (AD D I ) 値がセレクタ 5 4 1に入力される。 セレクタ 5 4 1は、 命令デコ —ダ 5 4 gからの信号に従って、 入力された値を選択し、 加算器 5 4 2に対して 出力する。 加算器 5 4 2は、 アドレスレジス夕 5 4 bから入力された値とセレク 夕 5 4 1から入力された値とを加算し、 セレクタ 5 4 3に対して入力する。 セレ クタ 5 4 3は、 命令デコーダ 5 4 gからの信号に従って、 アドレスレジスタ 5 4 b、 加算器 5 4 2および命令デコーダ 5 4 gの何れかから入力された値を選択し、 リードデ一夕ァドレスとしてデ一夕セレクタ 5 4 eとメモリインタフェイス 5 4 f とに対して出力する。
ライトアドレス生成部 5 4 iは、 命令デコーダ 5 4 gからの信号に従って、 デ —夕を書き込むためのライトデ一夕アドレスを生成する。 ライトアドレス生成部 5 4 iの内部構成は、 リードアドレス生成部 5 4 hと同じであり、 生成されたラ イトデータアドレスは、 データセレクタ 5 4 eとメモリインタフェイス 5 4 f と に対して出力される。
セレクタ 5 4 jには、 P C更新値と、 命令デコーダ 5 4 gから出力される相対 分岐値とが入力される。 セレクタ 5 4 jは、 命令デコーダ 5 4 gからの信号に従 つて、 入力された何れかの値を選択し、 加算器 5 4 kに対して出力する。 加算器 54 kは、 セレクタ 54 jの出力値に加え、 PC 54ηの値が入力され ており、 2つの値を加算する。 加算器 54 kは、 加算結果をセレクタ 54mに対 して出力する。
セレクタ 54mは、 加算器 54 kの加算結果に加え、 命令デコーダ 54 gから 絶対分岐値が入力されると共に、 PC54nの値が入力される。 セレクタ 54m は、 命令デコーダ 54 gからの信号に従って、 入力された何れかの値を選択し、 PC 54nに対して出力する。 たとえば、 絶対分岐が行われるときは、 命令デコ —ダ 54 gからの絶対分岐値が選択され、 PCの更新が行われる際には、 加算器 からの出力結果が選択され、 命令をリピートする際には PC 54nから入力され た値が選択される。
PC 54ηは、 実行すべき命令の格納アドレスを示すレジスタである。 PC 5 4 nに設定された値は、 命令フェツチアドレスとして DMAC用メモリ 55に対 して出力される。
このような構成の DMAC 54によって、 DMAプログラムに応じた DMA転 送が実行される。 DMAC 54の構成は、 基本構成と拡張構成とに分けることが できる。 汎用レジスタ 54 a、 加算器 54 c、 およびセレクタ 54 dが拡張構成 であり その他が基本構成である。 基本構成だけでも本発明の実施は可能である が 拡張構成があることで、 DMAプログラムの自由度が増す。
基本構成として必要なレジスタ (基本レジス夕) は、 以下の通りである。 図 26は、 基本レジスタ構成を示す図である。 DMAC 54には、 基本レジス 夕構成 61として、 アドレスレジス夕 54 b、 Uピートカウン夕 (図 25では省 略されているが、 命令デコーダ部 54 g内部に設けられる) 、 PC (プログラム カウン夕) 54 nが設けられている。 ァドレスレジス夕 54bは複数設けられ、 それぞれにレジス夕名として 「An (nは 0以上の整数) 」 が設定される。 リピ —トカウンタは複数設けられ、 それぞれにレジス夕名として 「RPCm (mは 0 以上の整数) 」 が設定される。 PC 54ηのレジスタ名は 「PC」 である。 基本構成で機能するときに命令デコーダ 54 gが処理可能な命令 (基本命令) は以下の通りである。
図 27は、 DMACで実行可能な基本命令セットを示す図である。 図 27に示 す基本命令セット 6 2では、 命令フォーマットとその命令の動作内容とが示され ている。
命令フォーマット 「set D,val」 は、 「val をレジス夕 D にセットする」 とい う動作を示している。
命令フォ一マツト 「load D,(SAD)」 は、 「読み出し元ァドレス SADのデータ をレジスタ Dへロードする」 という動作を示している。
命令フォーマツト 「store (DAD),S」 は、 「レジスタ Sの値を格納先アドレス DADへストアする」 という動作を示している。
命令フォーマット 「mov (DAD),(SAD)」 は、 「転送元 SADのデータを転送先 アドレス DADへコピーする」 という動作を示している。
命令フォーマット rrepeatJ は、 「指定回数後続の命令をリピートする」 とい う動作を示している。
命令フォーマット rjum condition, D」 は、 「条件 (condition) を満たす場 合、 アドレス D に分岐する。 条件省略時は無条件に分岐。 」 という動作を示し ている。
P卩令フォーマット 「call D」 は、 「サブルーチンコール」 を示している。
命令フォーマット rreturnJ ¾, 「コールからの復帰」 を示している。
図 2 8は、 分岐条件の例を示す図である。 図 2 8に示す分岐条件 6 3では、 条 件とその動作内容が示されている。
条件 「R P C n =val」 は、 「RPCn を 1だけ減じて、 val と等しければ真、 それ以外は偽。 J という動作を示している。
条件 「R P C n >val」 は、 「RPCnを 1だけ減じて、 valよりも大きければ真、 それ以外は偽。 」 という動作を示している。
また、 D MA C 5 4は、 複数のアドレス更新機能を有している。 アドレス更新 機能の内容は以下の通りである。
図 2 9は、 アドレス更新機能を示す図である。 図 2 9に示すァドレス更新機能 6 4では、 アドレス更新指示の表記と、 その動作内容とが示されている。
アドレス更新指示が 「An++val」 の場合、 「An をアドレスとして生成し、 そ の後 Anに valを加算」 というアドレス更新動作が行われる。 ァドレス更新指示が 「An+val」 の場合、 「Anに valを加算したァドレスを生 成」 というアドレス更新動作が行われる。
アドレス更新指示が 「An+Am」 の場合、 「An に Am を加算したアドレスを 生成」 というアドレス更新動作が行われる。
このような命令を DMA C 5 4が解釈し、 その命令に従った処理が実行される。 基本的には、 レジスタとメモリでのストアとロード、 およびメモリ間の転送、 そ して分岐命令で命令セットを構成する。 すなわち、 DMA C 5 4には、 一般のプ 口セッサが備えているような演算機能等を搭載する必要はない。 そのため、 D M A C 5 4内のプログラム処理回路の複雑化を防いで DMA C 5 4のコストを下げ ることが可能である。 通常、 プロセッサはシステムの中でもコストの高い構成部 品であり、 マルチプロセッサ構成で、 あるプロセッサに D M A処理を担当させる ようなシステムよりも、 コストを大幅に削減できる。
ここで、 プログラミングの自由度を増すため、 D MA C 5 4内に拡張レジスタ を搭載することもできる。
図 3 0は、 拡張レジス夕の構成を示す図である。 D MA C 5 4には、 拡張レジ スタ 6 5の構成として、 汎用レジスタ 5 4 aとフラグレジス夕 (図 2 5では省略 されている) とを実装することができる。 汎用レジス夕は複数設けられ、 それぞ れにレジス夕名として R p ( pは 0以上の整数) が設定される。 フラグレジスタ はレジス夕名として Fが設定される。
さらに、 D MA C 5 4が処理可能な拡張命令セットを用意してもよい。
図 3 1は、 拡張命令セットの例を示す図である。 図 3 1に示す拡張命令セット 6 6では、 命令フォーマツ卜とその命令の動作内容とが示されている。
命令フォーマツ卜 「add D,SJ は、 「レジス夕 Sと Dを加算して、 Dに代入 する。 演算ステータスをフラグレジス夕に反映する」 という動作を示している。 命令フォ一マツト 「sub D,S」 は、 「レジスタ Dから Sを減算して、 Dに代 入する。 演算ステータスをフラグレジスタに反映する」 という動作を示している。 拡張機能は、 フラグレジスタに設定される値に応じて処理条件 (拡張条件) が 決定される。
図 3 2は、 拡張条件を示す図である。 図 3 2には、 拡張条件 6 7として、 条件 (condition)と動作内容が示されている。 「F=cnd」 条件は 「フラグ Fが endか どうか?」 という判断処理を示している。 ここで endは Z (ゼロステータス) 、 NZ (ノンゼロステータス) 、 などである。 このような拡張条件により、 拡張機 能の処理条件の切り替えが可能となる。
このように、 汎用レジスタや拡張命令セットによる比較演算を行うための加算 器等を DMA C 54に搭載することで、 DMAC 54のプログラム自由度がより 高くなる。
このような構成の DMAC 54が命令メモリ領域 55 aに格納された DMAプ ログラムを実行することで、 DMA転送機能が実現する。
図 33は、 DMAプログラムの一例を示す図である。 図 33には、 説明の簡単 のため、 基本的な DMA転送を実施するための DMAプログラム 68が示されて いる。
1行目の命令は 「set A0,0xl000J である。 これは、 「0x1000」 を、 「A0」 のァドレスレジス夕へ代入させる命令である。
2行目の命令は 「set Al,0x2000J である。 これは、 「0x2000」 を、 「A 1」 のァドレスレジス夕へ代入させる命令である。
3行目の命令は 「set rpc0,10」 である。 これは、 「10」 の値を 「RP C 0」 のリピートカウンタに代入させる命令である。
4行目の命令は 「repeat」 である。 これは、 「RPC0」 のリピートカウンタ にセットされた回数だけ、 後の処理をリピートさせる命令である。
5行目の命令は 「mov (A0++1),(A1++1)J である。 これは、 「A 1」 のァドレ スレジスタに格納されたアドレスのデ一タを、 「A0J のアドレスレジスタに格 納されたァドレスへコピーさせる命令である。 また、 コピー処理後、 「A0」 と 「A1」 とのアドレスレジスタの値にそれぞれ 1を加算させる。
以上の様な構成の DMAC 54によれば、 DMAC 54の命令デコーダ 54 g は、 PC 54 nの指すァドレスにある命令を DMAC用メモリ 55の命令メモリ 領域 55 aから 1つ取り込んで実行する。 その後、 命令デコーダ 54 gは、 実行 した命令の内容に応じてセレクタ 54 jやセレクタ 54mに出力する信号を制御 し、 PCを更新する。 すると、 次の命令が命令メモリ領域 55 a再び取り込まれ、 命令デコーダ 54 gで実行される。
なお、 通常は 1つ次の命令をフェッチするような更新値を P C 54 nに加算す るが、 分岐命令では分岐先を PC 54ηに書き込んだり、 リピート命令では、 同 じ PC 54ηを再設定するなど、 命令に応じた PC 54ηの更新が行われ、 プロ グラム処理が継続される。
このような動作は通常のプログラム処理を行うプロセッサと同様である。 この PC 54ηの指し示すアドレスは DMAC用メモリ 55の命令メモリ領域 55 a である。
デ一夕転送のァドレッシングについては、 メモリアクセスのァドレスを保持す るアドレスレジスタ 54 bは、 DMAC 54の持つァドレス演算器 (リードアド レス生成部 54 hおよびライトアドレス生成部 54 i) により、 図 29のような ァドレス更新記述に従って自動更新される。 例えば、 図 33の DMAC用プログ ラムでは、 A1のァドレスから AOのアドレスへ転送を行うが、 A1と AOはァク セスするたびに 1ずつィンクリメントされるため、 この MOV命令を 10回繰り 返すことで連続する 10バイ卜を転送 (コピー) できる。
第 7の実施の形態では、 このようなプログラム処理を基本とすることにより、 DMAC 54は、 DMAC用メモリ 55に格納されたプログラムを実行すること が可能となり、 その結果柔軟な DMA転送処理を行うことが可能となる。 DMA C 54は、 命令メモリ領域 55 aとデータメモリ領域 55 bを同時にアクセスで きるため、 命令フェッチとデータアクセスで、 ウェイトが発生することなく、 高 速な DMA制御動作が可能となる。 すなわち、 高速アクセスが実現可能となる。 ところで、 専用ハードウエアで構成される従来の DMACでは、 要求を格納す るバッファ領域が、 八一ドウエアで実現されて固定化されているため、 管理でき る DMA要求数に限界があった。 第 7の実施の形態では、 第 1の実施の形態と同 様に、 DMAC 54は、 転送元アドレス、 転送先アドレス、 転送サイズなどの組 を DMA用メモリ領域 55 b内の DMA要求パラメ一夕テ一ブル (図 2と同様) に書き込む。 DMAC 54は、 DMA要求パラメ一夕テ一ブル内のパラメ一夕を DMA要求管理テーブル (図 3と同様) で管理して、 DMA要求を順に処理して いく。 さらに、 D MA C 5 4は、 DMA要求管理テ一ブルを、 DMAチャネル情報テ 一ブル (図 4と同様) によって管理する。 D MAチャネル情報テーブルは、 現在 の管理テーブルの属性をはじめ、 管理テ一ブルのどの要求までを処理完了し、 ど の要求を処理中なのか、 という実行状態や、 属性などを記録している。
このような管理テ一ブルを用いることにより、 テ一ブルサイズは、 最終的には 搭載メモリ容量に依存するものの、 テーブル領域として確保したサイズだけ、 D MA転送要求を管理可能であるため、 非常に多くの要求を処理できる。
DMA C 5 4で実行する転送プログラムのシーケンスは、 図 5に示した第 1の 実施の形態と同様である。 すなわち、 D MA C 5 4は、 まず、 要求管理テーブル のチャネルステータステーブルから現在の処理対象を調べ、 続いてその処理対象 のパラメ一夕を読み出す。 DMA C 5 4は、 読み出した値に従って、 転送を 1単 位だけ行い、 転送終了条件に満たなければ、 引き続いて転送を行う。 転送の終了 条件は、 残りサイズが 0になることである。 D MA C 5 4は、 1つの要求に対す る処理が終了すると、 次の要求に対する処理へと移行する。 すべての要求が終了 すると、 DMA処理は完了となる。
対象となる D MA要求の処理が終了すると、 次の DMA要求を処理するために、 チャネル情報テ一ブルの処理対象を、 D M A要求管理テ一ブルに格納されている 次の要求に書き直し、 転送のパラメ一夕をコピーする。 続いて、 新しい処理対象 の DMA処理に入る。
[第 8の実施の形態]
第 8の実施の形態は、 第 1の実施の形態を画像データの DMA転送に利用した ものである。 ハードウェア構成は第 7の実施の形態と同様であるため、 図 2 4 , 図 2 5に示した構成を参照して、 第 8の実施の形態について説明する。
上記の各実施の形態では、 1つの D M A要求の基本として、 転送元アドレス、 転送先ァドレス、転送サイズを元に 1データ単位ずつ転送処理を行う例を説明し ているが、 D MA要求パラメ一夕テーブルには、 より複雑な意味を持たせること も可能である。 具体的には、 DMA C 5 4は、 DMA要求管理テーブルからパラ メータを読み出す際に、 まずモードをチェックし、 モ一ドに応じて転送処理を切 り替えることができる。 例えば、 「モード」 の項目に記述するモード 1を矩形ブ ロック DMA転送の指定であるものと定義する。 このとき、 転送元のデ一夕とし て画像データを指定し、 その中の矩形領域をモード 1で転送することができる。 図 3 4は、 矩形ブロック D MA転送の概念を示す図である。 図 3 4に示すよう に、 転送元データ 7 1として画像データがメモリに格納されているとき、 転送元 データ 7 1内の矩形領域 7 1 aを切り取って、 転送先メモリ領域 7 2に転送し別 の画像データ 7 2 aとする場合がある。 このように大きな画像中の矩形領域を処 理対象として DM A転送することは、 画像データ処理において、 しばしば行われ る処理である。
画像データの場合、 横方向の 1ラインずつデータが並べられて、 メモリ内に格 納されている。 そのため、 矩形領域 7 1 aに相当するデータは、 ライン毎の複数 のデータに分散して格納されている。 そのため、 転送元ァドレスと転送サイズと の指定により DM A転送を行った場合、 ライン毎の DMA転送パラメータを設定 する必要がある。
そこで、 第 8の実施の形態では、 図 3 4の様に矩形を規定するパラメータをォ プションパラメ一夕として、 D M A要求パラメ一夕テ一ブルに追加する。
図 3 5は、 矩形ブロック転送の DMA要求パラメ一夕テーブルの例を示す図で ある。 DMA要求パラメ一夕テ一ブル 8 1には、 転送元アドレス 転送先ァドレ ス、 転送サイズと共に、 モードとして 「モード 1」 が設定され-. オプションパラ メ一夕として、
Figure imgf000041_0001
「Height=16」 、 「Skip=304」 が設定されている。 モードが 「モード 1」 であることにより、 矩形ブロックの DMA転送であるこ とが指定されている。 矩形ブロックの範囲は、 オプションパラメータによって指 定されている。 Widthは矩形ブロックの横幅 (ピクセル数) 、 Heightは矩形ブ ロックの縦幅 (ピクセル数) 、 Skip は分散して格納されたライン毎のデータの 間にある他のデータ (デ一夕転送から除外されるデータ) のデータ幅 (ピクセル 数) である。
このような DMA要求パラメータテーブル 8 1に基づき、 DMA C 5 4は、 矩 形領域の複数回のデ一夕転送の合間に、 矩形領域に挟まれた他のデータのデータ 幅分だけ転送元のアドレスをスキップさせる。 以下に、 矩形ブロック D MA転送 処理の手順を以下に示す。 図 36は、 矩形ブロック DMA転送処理の手順を示すフロ一チャートである。 以下、 図 36に示す処理をステップ番号に沿って説明する。
[ステップ S 8 1] DMAC 54は、 まず、 パラメータを読み取る。
[ステップ S 82] DMAC 54は、 矩形の幅のカウンタを RPC0=width、 高さのカウンタを
Figure imgf000042_0001
として初期化する。
[ステップ S 83] DMAC 54は、 単位データ分のデータ転送を行う。
[ステップ S 84] DMAC 54は、 デ一夕を転送したら、 転送元アドレス A 0と転送先アドレス A 1とを更新する。 また、 DMAC 54は、 矩形の幅カウン 夕: RPC0を 1だけ減算する。
[ステップ S 85] DMAC 54は、 矩形の幅カウンタ RPC0 が 0より大き いか否かを判断する。 RPC0が 0より大きければ処理がステップ S 83に進めら れ、 矩形の幅の分のデータが転送されるまで単位データの転送を繰り替えす。
RPC0が 0以下であれば処理がステツプ S 86に進められる。
[ステップ S 86] DMAC 54は、 矩形の幅だけ転送したら、 Ύドレスはス キップ値を AOに加えて、 高さ方向のカウンタ更新と、 幅カウン夕の再設定を行 う。 具体的には、 矩形の幅のカウンタを RPCO=width とし、 高さのカウンタを RPC1=RPC1-1とし アドレス A 0を A 0 +skipとする。
[ステップ S 87] DMAC 54は、 高さのカウンタ RPC1 が 0より大きい か否かを判断する。 0より大きければ処理がステップ S 83に進められ、 矩形の 高さ分のデータが転送されるまで単位データの転送を繰り返す。 0以下であれば 処理が終了する。
この様に転送パラメ一夕のモードにさまざまな転送モードを設定し、 DMAC 54の DMAプログラムに、 相当する転送処理を記述しておくことによって、 転 送要求に対して個別にさまざまな転送処理を切り替えることが可能となる。 この ような柔軟な機能の実現はハ一ドウエアソリューションによる D M A Cでは困難 であり、 プログラムを実行可能な DMAC 54により実現される。
なお、 これまでの DMA要求パラメ一夕テーブルは、 転送元アドレスや、 転送 先アドレスを、 絶対番地で記述する例で示したが、 これを相対アドレス記述でき るモードを備えることが可能である。 たとえば、 相対記述モードをモード 2と定 義する。 ― 図 3 7は、 相対アドレス記述の D MA要求パラメ一夕テーブルの例を示す図で ある。 DMA要求パラメ一夕テーブル 8 2には、 転送元アドレス、 転送先ァドレ ス、 転送サイズと共に、 モードとして 「モード 2」 が設定されている。
モードが 「モード 2」 であることにより、 相対記述モードであることが指定さ れている。
相対記述モードでは、 DMA要求管理テーブルの最初の要求で指定するァドレ スをベースアドレスとし、 このアドレスのみ絶対番地記述とする。 その後に続く D M A要求パラメ一夕で相対記述モ一ドの指定のあるものは、 ベ一スァドレスか らの相対アドレス値として処理する。
このようにすることによって、 ある D MAパターンの組で構成される D MA要 求管理テーブルを、 先頭の転送要求のアドレスを変えるだけで、 様々な場所で再 利用できるようになる。
相対記述モードにすることで、 矩形ブロックの転送を行うときのパラメ一夕設 定が容易となる。
図 3 8は、 矩形ブロック転送の例を示す図である。 図 3 8の例では、 転送元デ 一夕 9 1内の矩形領域 9 1 aが 9つの矩形に分かれている。 矩形領域 9 1 aの矩 形を転送先メモリ 9 2に転送すると、 転送後のデ一夕 9 2 aがー列に配置される。 このとき、 相対記述モードであらかじめ DMA要求管理テーブルを作成してお き、 先頭プロックのァドレス設定と D MA要求管理テーブルの登録を行うだけで、 すべてのブロックの転送設定を完了できる。 これにより、 DMA転送の設定にか かるオーバへッドを大きく削減できる。
また、 第 2の形態で示したように、 チャネルをポインタによって関連付けるこ とで、 ポインタを切り替えて、 新たなチャネルを 「有効」 にすることが可能であ る。 例えば、 図 3 8のような 9つの矩形からなる領域の転送を考える。 着目プロ ックの隣接ブロックを対象として画像処理を行う場合に、 しばしば必要となるパ ターンである。 このようなパターンを 1つのチャネルに対する要求として予め登 録しておき、 転送が必要なときに、 そのチャネルポインタをチャネル管理テ一ブ ルに登録して、 「有効」 とすれば、 非常に簡単にある規則パターンを転送するこ とができる。 このパターンを再度呼び出すのも容易である。 このような柔軟性は 本発明の大きな効果のひとつである。
[第 9の実施の形態]
DM ACに上位プロセッサを接続した場合の構成例である。
図 39は、 第 9の実施の形態のシステム構成例を示す図である。 図 39の例で は、 上位プロセッサ 101は、 命令メモリ 102と DMAC 105とに接続され ている。 DMAC 105に対してはリセット信号の出力と、 割り込み信号の入力 とのための信号線で接続されている。 また、 上位プロセッサ 101は、 バス 10 8を介してメモリ 103、 DMAC 105, DMAC用メモリ 106に接続され ている。 上位プロセッサ 101は、 命令メモリ 102に格納された命令に従って、 システム全体を制御する。
DMAC 105は、 パス 107を介して、 命令メモリ 102やメモリ 103, 104に接続されている。 また、 DMAC 105は、 DMAC用メモリ 106に 専用のバスで接続されている。
命令メモリ 102は、 上位プロセッサ 101が実行すべき命令を格納する記録 媒体である。 メモリ 103, 104は、 各種デ一夕を格納するための記録媒であ
DMAC用メモリ 106は、 DMAC用プログラム領域 106 aと DMAC用 デ一タ領域 106 bとを有している。 DMAC用プログラム領域 106 aには、 DMAプログラムが格納される。 DMAC用デ一夕領域 106 bには、 DMA転 送に必要な各種テーブル等が格納される。
このとき、 上位プロセッサ 101は制御信号として DMAC 105のリセット 信号をコントロールし、 DMAC 105をリセット状態としてから、 システム運 用中に DMAC用プログラムを入れ替えることができる。 プログラム入れ替えの 後、 上位プロセッサ 101は、 リセットを解除して DMAC 105を起動できる。 また、 DMAC 105が転送処理を完了した際に上位プロセッサ 101へ転送 の終了を通知すると、 上位プロセッサ 105は、 通知を割り込みあるいはポーリ ングによって検出できる。 これにより、 上位プロセッサ 101はデータ処理の夕 ィミング、 および次の DMA処理要求を発行するタイミングを知ることができる。 転送要求は基本的に上位プロセッサ 1 0 1から発行される。 D MA要求は、 D MA管理テーブルへ登録され、 DMA C 1 0 5で認識される。 テーブルに登録さ れた D MA要求に対する DMA C 1 0 5側の転送処理は第 1の実施の形態で説明 した通りである。 上位プロセッサ 1 0 1側は、 テーブルのアドレスを知っていれ ば、 新たな要求が発生した際に直接テーブルを更新できるし、 テーブルのァドレ スを知らない場合、 DMA C側へ転送要求を出して、 DMA C側がテーブル更新 を行えばよい。 このインターフェイスについては、 どちらの手法でも構わない。 以上のような本発明の実施の形態によれば、 DMA Cは、 上位プロセッサから は、 ハ一ドウエアで実現されている従来の DMA Cとまったく同様に扱うことが 可能であることはもちろん、 より高度な転送処理をプログラムによって実現可能 である。 そのため、 上位プロセッサの負荷を軽減することができる。 さらにマル チプロセッサ構成で実現する従来の D M A Cに比べて、 低コス卜でシステムを実 現することが可能である。 また、 メモリ領域情報をもとに、 転送処理を判定して、 アクセスの違反を検出することが可能であり、 システム構成を変えた場合にも、 メモリ領域情報を書き換えるだけで対応可能である。
具体的には、 以下のような効果がある。
DMA Cがプログラムの実行が可能であるため D M A転送に関する機能の変 更が容易となる。 しかも、 DMA Cは、 非常に単純な命令を解釈できればよいた め、 機能を限定した安価な回路で構成することができる。 このように、 専用メモ リをシステムに搭載することによって、 機能の柔軟性、 転送処理速度、 システム コストの面で、 有利な D M Aコントローラが実現できる。
また、 DMA転送に関する情報を専用の DMA用メモリで管理している。 そし て、 D M A用メモリ内の DM A要求管理テーブルに DM A転送要求を格納してい る。 これにより、 複数の DMA要求をメモリの許す限り受け付けて順番待ちの状 態とし、 受け付けた DMA要求を順次処理することが可能となる。
また、 DMA転送要求をテ一ブルで管理するため、 テーブルを予め作成し、 必 要に応じてテーブルを処理対象とすることにより、 頻度の高い複数の DM A転送 パターンを、 必要な時点で一つずつ設定することなく、 オーバヘッドなしに起動 できる。 しかも、 D MA要求パラメータをチャネル内で相対アドレス指定するこ とで、 同一パターンの D MA転送を起動する際のパラメ一夕設定のオーバへッド が低減される。
DMA要求管理テーブルを 1つの D MAチャネルとし、 複数チャネルをチヤネ ル管理テーブルで管理することによって、 メモリの許す限り D M Aチャネル数を 増やすことが可能となる。 このとき、 各チャネルにおいて DMA転送の処理対象 となっている要求を、 タイムシェアリング式で処理することができる。 チャネル 管理テーブルへのチャネルの登録は容易であるため、 頻度の高い DMA転送パ夕 —ンを予め D MA管理テーブルとして作成しておくことによって容易に起動でき るだけでなく、 同じパターンを別チャネルで同時に起動することも可能である。 また、 DMA Cに上位プロセッサを接続することで、 システム稼動中の DMA C用プログラムの入れ替えや、 同期制御が可能となる。 この際、 上位プロセッサ 側からは、 従来の D M A Cと同様の制御が可能となり、 システム上で動作するソ フトウエアの互換性を保つことが可能である。 すなわち、 従来のようなハ一ドウ エア回路で実現された D MA Cを本願実施の形態で説明した DMA Cに置き換え ても、 システム上のアプリケーション等に修正を加える必要がない。 さらに、 上 位プロセッサは同期指示のみ行い、 上位プロセッサの指示に同期して DM A Cの プログラムが予め定義した D MAシーケンスで自律動作することにより、 上位プ 口セッサの負荷を大きく軽減できる。
また、 DMA Cがプログラムを実行可能なことにより、 DMA転送のパラメ一 夕設定ミスを D M A Cで検査することが可能となる。 その結果、 プログラム開発 効率を高めることができる。
なお、 上記の D MAプログラムは、 コンピュータで読み取り可能な記録媒体に 記録しておくことができる。 コンピュータで読み取り可能な記録媒体としては、 磁気記録装置、 光ディスク、 光磁気記録媒体、 半導体メモリなどがある。 磁気記 録装置には、 ハードディスク装置 (HD D) 、 フレキシブルディスク (F D) 、 磁気テ一プなどがある。 光ディスクには、 D V D (Digital Versatile Disc), D V D— R AM (Random Access Memory)、 C D - R OM(Compact Disc Read Only Memory), C D - R (Recordable)/ RW(Re Writable)などがある。 光磁気記録媒 体には、 M〇 (Magneto-Optical disc)などがある。 DMAプログラムを流通させる場合には、 たとえば、 その D MAプログラムが 記録された D VD、 C D— R OMなどの可搬型記録媒体が販売される。 また、 D MAプログラムをサーバコンピュータの記憶装置に格納しておき、 ネットワーク を介して、 サ一バコンピュー夕から他のコンピュータにその DMAプログラムを 転送することもできる。
DMAプログラムを実行可能な DMA Cを搭載したコンピュータは、 たとえば、 可搬型記録媒体に記録された D M Aプログラムもしくはサーバコンピュータから 転送された DM Aプログラムを、 D MA C用メモリに格納する。 そして、 D MA Cは、 D MA C用メモリから DMAプログラムを読み取り、 DMAプログラムに 従った処理を実行する。
以上説明したように本発明では、 D M A用メモリに格納された DM Aプログラ ムに従つた手順で D M Aコントローラが D MA転送を行うようにしたことで、 機 能の柔軟性の向上と、 転送処理速度の向上とを両立させることが可能となる。 上記については単に本発明の原理を示すものである。 さらに、 多数の変形、 変 更が当業者にとって可能であり、 本発明は上記に示し、 説明した正確な構成およ び応用例に限定されるものではなく、 対応するすべての変形例および均等物は、 添付の請求項およびその均等物による本発明の範囲とみなされる。

Claims

請 求 の 範 囲
1. 複数のメモリ間のデータ転送を行うデータ転送制御装置において、
D M A転送の処理手順が記述された D M Aプログラムが格納された D M Aコン 卜ローラ用メモリと、
DMA要求を受け取ると、 前記 DMAコントローラ用メモリに格納された前記
DMAプログラムに従つて、 前記複数のメモリ間のデータ転送を実行する DMA コントローラと、
を有することを特徴とするデータ転送制御装置。
2. 前記 DMAコントローラは、 専用のバスを介して前記 DMAコントローラ 用メモリに接続されていることを特徴とする請求の範囲第 1項記載のデ一夕転送 制御装置。
3. 前記 DMAコントローラは、 前記 D M Aプログラム内の命令を解釈する命 令デコーダ回路と、 データ転送用のアドレスを生成するアドレス生成回路とを有 することを特徴とする請求の範囲第 1項記載のデータ転送制御装置。
4. 前記 DMAコントローラは、 前記 DMA要求を受け取る毎に、 前記 DMA コントローラ用メモリ内に前記 DM A要求の内容を格納し、 未処理の前記 DM A 要求の内容を前記 DM Aコントローラ用メモリから順次取り出してデータ転送を 実行することを特徴とする請求の範囲第 1項記載のデ一タ転送制御装置。
5. 前記 DMAコントローラは、 前記 DMA要求を任意の数のチャネルの 1つ に対応付け、 前記チャネル毎の前記 DM A要求を前記 DMAコントローラ用メモ リに格納し、 単位データを転送する毎に実行すべき前記チャネルを切り替え、 実 行すべき前記チャネルに対応付けられた前記 DMA要求に応じた処理を実行する ことを特徴とする請求の範囲第 1項記載のデータ転送制御装置。
6. 前記 DMAコントローラは、 前記 DMA要求におけるアドレスを絶対アド レスと認識するのか、 または相対アドレスとして認識するのかを、 前記 DMA要 求によるモード指定に基づいて判断することを特徴とする請求の範囲第 1項記載 のデータ転送制御装置。
7. 前記 DMAコントローラは、 前記 DMA要求において矩形領域の転送指示 を受けると、 転送元データから前記矩形領域を抽出して、 前記矩形領域の DMA 転送を行うことを特徴とする請求の範囲第 1項記載のデータ転送制御装置。
8 . 前記 D MAコントローラは、 前記矩形領域の複数回のデ一夕転送の合間に、 前記矩形領域に挟まれた他のデ一夕のデータ幅分だけ転送元のアドレスをスキッ プさせることで、 前記矩形領域の D MA転送を行うことを特徴とする請求の範囲 第 7項記載のデータ転送制御装置。
9 . 前記矩形領域は、 画像データ内の一部分であることを特徴とする請求の範 囲第 7項記載のデータ転送制御装置。
1 0 . 前記 DMAコントローラは、 前記 DMA要求に設定されたモードに応じ て、 前記矩形領域の転送処理とブロック転送処理とを切り替えることを特徴とす る請求の範囲第 7項記載のデータ転送制御装置。
1 1 . 前記 D MAコントローラを制御する上位プロセッサを有することを特徴 とする請求の範囲第 1項記載のデータ転送制御装置。
1 2 . 前記上位プロセッサは、 前記 DMAコント口一ラに対して、 専用の信号 線で接続されていることを特徴とする請求の範囲第 1 1項記載のデータ転送制御
1 3 . 前記 DMAコントローラは 前記 DMA用メモリから前記 DMAプログ ラム内の命令を読み取り、 命令の内容を解釈し、 命令に応じた制御信号を出力す る命令デコーダと、 前記命令デコーダから制御信号に応じて DMA転送用のァド レスを生成するァドレス生成回路と、 を有することを特徴とする請求の範囲第 1 項記載のデータ転送制御装置。
1 4. バスを介した D MA転送を制御するための D MAコントローラにおいて、 D MA用メモリから D MAプログラム内の命令を読み取り、 命令の内容を解釈 し、 命令に応じた制御信号を出力する命令デコーダと、
前記命令デコーダから制御信号に応じて DMA転送用のアドレスを生成するァ ドレス生成回路と、
を有することを特徴とする DMAコントローラ。
1 5 . バスを介した D MA転送を制御するための DMAデータ転送制御方法に おいて、 プログラムを実行可能な DMAコントローラ専用の DMAコントローラ用メモ リに、 DMA転送処理手順を記述した D MAプログラムを格納し、
前記 DMAコントローラに D MA要求が入力されると、 前記 DMAコントロー ラにより、 前記 D MAコントローラ用メモリに格納された前記 D MAプログラム に従って、 前記複数のメモリ間の DMAによるデータ転送を実行する、
ことを特徴とする DMAデ一夕転送制御方法。
PCT/JP2003/002608 2003-03-05 2003-03-05 データ転送制御装置およびdmaデータ転送制御方法 WO2004079583A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2003/002608 WO2004079583A1 (ja) 2003-03-05 2003-03-05 データ転送制御装置およびdmaデータ転送制御方法
JP2004569091A JPWO2004079583A1 (ja) 2003-03-05 2003-03-05 データ転送制御装置およびdmaデータ転送制御方法
US11/140,732 US7415550B2 (en) 2003-03-05 2005-06-01 System and method for controlling DMA data transfer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/002608 WO2004079583A1 (ja) 2003-03-05 2003-03-05 データ転送制御装置およびdmaデータ転送制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/140,732 Continuation US7415550B2 (en) 2003-03-05 2005-06-01 System and method for controlling DMA data transfer

Publications (1)

Publication Number Publication Date
WO2004079583A1 true WO2004079583A1 (ja) 2004-09-16

Family

ID=32948254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/002608 WO2004079583A1 (ja) 2003-03-05 2003-03-05 データ転送制御装置およびdmaデータ転送制御方法

Country Status (3)

Country Link
US (1) US7415550B2 (ja)
JP (1) JPWO2004079583A1 (ja)
WO (1) WO2004079583A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006313422A (ja) * 2005-05-06 2006-11-16 Nec Electronics Corp 演算処理装置及びデータ転送処理の実行方法
CN100349150C (zh) * 2005-06-06 2007-11-14 北京中星微电子有限公司 通过直接存储器访问控制器传输数据的系统及方法
JP2008538643A (ja) * 2005-03-28 2008-10-30 データレグロ,インコーポレーテッド リレーショナルデータベース管理システム用の非侵襲性暗号化
US7774513B2 (en) 2005-03-25 2010-08-10 Fujitsu Limited DMA circuit and computer system
JP2015099477A (ja) * 2013-11-19 2015-05-28 ヤマハ株式会社 Dmaコントローラ
JP2017122972A (ja) * 2016-01-05 2017-07-13 Necプラットフォームズ株式会社 情報処理装置、dma転送制御方法およびdma転送制御プログラム
JP2017175404A (ja) * 2016-03-24 2017-09-28 コニカミノルタ株式会社 画像形成装置及びプログラム
JP2018196156A (ja) * 2018-09-12 2018-12-06 キヤノン株式会社 データ処理装置及び方法及びプログラム
JP2019512135A (ja) * 2016-02-29 2019-05-09 ルネサス エレクトロニクス アメリカ インコーポレイテッドRenesas Electronics America Inc. マイクロコントローラのデータ転送をプログラミングするシステムおよび方法
JP2020027612A (ja) * 2018-08-10 2020-02-20 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド データ処理装置、人工知能チップ及び電子機器
JP2022547730A (ja) * 2019-09-17 2022-11-15 マイクロン テクノロジー,インク. データ移動のためのプログラム可能なエンジン

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI282939B (en) * 2004-03-30 2007-06-21 Mediatek Inc Data storing system with card reader
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
JP4698285B2 (ja) * 2005-05-19 2011-06-08 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
GB2433611A (en) * 2005-12-21 2007-06-27 Advanced Risc Mach Ltd DMA controller with virtual channels
JP2007207026A (ja) * 2006-02-02 2007-08-16 Matsushita Electric Ind Co Ltd Dma転送装置
US7375034B2 (en) * 2006-03-21 2008-05-20 International Business Machines Corporation Recessing trench to target depth using feed forward data
EP2041645B1 (en) * 2006-07-11 2016-12-07 Freescale Semiconductor, Inc. Microprocessor and method for register addressing therein
US20080256271A1 (en) * 2006-12-12 2008-10-16 Breed Paul T Methods and apparatus for reducing storage usage in devices
JP4369486B2 (ja) * 2007-02-01 2009-11-18 富士通株式会社 データ転送装置、半導体集積回路、および処理状況通知方法
US7924296B2 (en) * 2007-02-20 2011-04-12 Mtekvision Co., Ltd. System and method for DMA controlled image processing
US8284323B2 (en) * 2007-07-18 2012-10-09 Panasonic Corporation Video audio processing device and standby and return method thereof
TW201005537A (en) * 2008-07-29 2010-02-01 Ralink Technology Corp Controller, method, system and program for direct memory access
US7979601B2 (en) * 2008-08-05 2011-07-12 Standard Microsystems Corporation External direct memory access of embedded controller memory
KR100963140B1 (ko) * 2008-11-27 2010-06-16 한국과학기술원 직접 메모리 접근 장치 및 직접 메모리 접근 방법
US8335857B1 (en) * 2009-05-21 2012-12-18 Sprint Communications Company L.P. System and methods of data transmission to devices
US8521921B1 (en) * 2009-05-22 2013-08-27 Marvell International Ltd. Automatic direct memory access (DMA)
US8032673B2 (en) * 2009-12-14 2011-10-04 Apple Inc. Transaction ID filtering for buffered programmed input/output (PIO) write acknowledgements
US8762589B2 (en) * 2010-01-22 2014-06-24 National Instruments Corporation Data transfer between devices maintaining state data
JP5423483B2 (ja) * 2010-03-04 2014-02-19 株式会社リコー データ転送制御装置
US8332546B2 (en) 2010-07-20 2012-12-11 Lsi Corporation Fully asynchronous direct memory access controller and processor work
US8688926B2 (en) 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
US8447897B2 (en) * 2011-06-24 2013-05-21 Freescale Semiconductor, Inc. Bandwidth control for a direct memory access unit within a data processing system
TWI486781B (zh) * 2011-11-10 2015-06-01 鴻海精密工業股份有限公司 檔案相容性判斷方法及系統
US9128925B2 (en) 2012-04-24 2015-09-08 Freescale Semiconductor, Inc. System and method for direct memory access buffer utilization by setting DMA controller with plurality of arbitration weights associated with different DMA engines
GB2505446B (en) 2012-08-30 2014-08-13 Imagination Tech Ltd Memory address generation for digital signal processing
US8677044B1 (en) * 2012-10-25 2014-03-18 Qlogic, Corporation Method and system for communication using multiple DMA channels
US8966132B2 (en) * 2012-11-16 2015-02-24 International Business Machines Corporation Determining a mapping mode for a DMA data transfer
KR20140108861A (ko) * 2013-03-04 2014-09-15 삼성전자주식회사 도메인 사이의 메모리 복사를 위한 방법 및 장치
DE102013109978A1 (de) * 2013-09-11 2015-03-12 Technische Universität Dresden Verfahren und Vorrichtung zum Vor-Auswählen, Filtern und Verteilen von Daten in Datenbank-Management-Systemen
US8984179B1 (en) 2013-11-15 2015-03-17 International Business Machines Corporation Determining a direct memory access data transfer mode
US9678910B2 (en) 2014-04-25 2017-06-13 Liqid Inc. Power handling in a scalable storage system
US10467166B2 (en) 2014-04-25 2019-11-05 Liqid Inc. Stacked-device peripheral storage card
US9684575B2 (en) 2014-06-23 2017-06-20 Liqid Inc. Failover handling in modular switched fabric for data storage systems
US10362107B2 (en) 2014-09-04 2019-07-23 Liqid Inc. Synchronization of storage transactions in clustered storage systems
US9653124B2 (en) 2014-09-04 2017-05-16 Liqid Inc. Dual-sided rackmount storage assembly
US10198183B2 (en) 2015-02-06 2019-02-05 Liqid Inc. Tunneling of storage operations between storage nodes
US10191691B2 (en) 2015-04-28 2019-01-29 Liqid Inc. Front-end quality of service differentiation in storage system operations
US10108422B2 (en) 2015-04-28 2018-10-23 Liqid Inc. Multi-thread network stack buffering of data frames
US10019388B2 (en) 2015-04-28 2018-07-10 Liqid Inc. Enhanced initialization for data storage assemblies
US10013579B2 (en) * 2015-12-23 2018-07-03 Intel Corporation Secure routing of trusted software transactions in unsecure fabric
US10255215B2 (en) 2016-01-29 2019-04-09 Liqid Inc. Enhanced PCIe storage device form factors
WO2017214495A1 (en) 2016-06-10 2017-12-14 Liqid Inc. Multi-port interposer architectures in data storage systems
CN109844722B (zh) 2016-08-12 2022-09-27 利奇得公司 分解式结构交换计算平台
US11294839B2 (en) 2016-08-12 2022-04-05 Liqid Inc. Emulated telemetry interfaces for fabric-coupled computing units
US11880326B2 (en) 2016-08-12 2024-01-23 Liqid Inc. Emulated telemetry interfaces for computing units
WO2018200761A1 (en) 2017-04-27 2018-11-01 Liqid Inc. Pcie fabric connectivity expansion card
US10795842B2 (en) 2017-05-08 2020-10-06 Liqid Inc. Fabric switched graphics modules within storage enclosures
US10660228B2 (en) 2018-08-03 2020-05-19 Liqid Inc. Peripheral storage card with offset slot alignment
KR20200044312A (ko) * 2018-10-19 2020-04-29 삼성전자주식회사 반도체 장치
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
EP3959604A4 (en) 2019-04-25 2023-01-18 Liqid Inc. MACHINE TEMPLATES FOR DEDICATED COMPUTING UNITS
EP3959860A4 (en) 2019-04-25 2023-01-25 Liqid Inc. MULTI-PROTOCOL COMMUNICATION CONTROL FOR TISSUE
CN114385528A (zh) * 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法
CN114385529A (zh) 2020-10-16 2022-04-22 瑞昱半导体股份有限公司 直接记忆体存取控制器、使用其之电子装置以及操作其的方法
US11442776B2 (en) 2020-12-11 2022-09-13 Liqid Inc. Execution job compute unit composition in computing clusters
CN114443528B (zh) * 2022-01-27 2023-09-01 安徽芯纪元科技有限公司 一种dma二维数据传输/清零参数配置方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5177143A (ja) * 1974-12-27 1976-07-03 Tokyo Shibaura Electric Co
JPS63159961A (ja) * 1986-12-24 1988-07-02 Toshiba Corp ダイレクトメモリアクセス転送制御装置
JPS63284635A (ja) * 1987-05-15 1988-11-21 Sumitomo Electric Ind Ltd Dma回路
JPH0713920A (ja) * 1993-06-25 1995-01-17 Fuji Facom Corp Dma転送方法
JPH0713921A (ja) * 1993-06-25 1995-01-17 Toshiba Corp Dmaコントローラ装置
WO1999014680A1 (en) * 1997-09-12 1999-03-25 Infineon Technologies North America Corp. Direct memory access unit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06500655A (ja) * 1990-10-03 1994-01-20 スィンキング マシンズ コーポレーション 並列コンピュータ・システム
US5619727A (en) * 1995-03-08 1997-04-08 United Microelectronics Corp. Apparatus for a multiple channel direct memory access utilizing a virtual array technique
US6108761A (en) * 1998-02-20 2000-08-22 Unisys Corporation Method of and apparatus for saving time performing certain transfer instructions
GB9909196D0 (en) * 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
JP2003006003A (ja) * 2001-06-18 2003-01-10 Mitsubishi Electric Corp Dmaコントローラおよび半導体集積回路

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5177143A (ja) * 1974-12-27 1976-07-03 Tokyo Shibaura Electric Co
JPS63159961A (ja) * 1986-12-24 1988-07-02 Toshiba Corp ダイレクトメモリアクセス転送制御装置
JPS63284635A (ja) * 1987-05-15 1988-11-21 Sumitomo Electric Ind Ltd Dma回路
JPH0713920A (ja) * 1993-06-25 1995-01-17 Fuji Facom Corp Dma転送方法
JPH0713921A (ja) * 1993-06-25 1995-01-17 Toshiba Corp Dmaコントローラ装置
WO1999014680A1 (en) * 1997-09-12 1999-03-25 Infineon Technologies North America Corp. Direct memory access unit

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774513B2 (en) 2005-03-25 2010-08-10 Fujitsu Limited DMA circuit and computer system
JP2008538643A (ja) * 2005-03-28 2008-10-30 データレグロ,インコーポレーテッド リレーショナルデータベース管理システム用の非侵襲性暗号化
JP2006313422A (ja) * 2005-05-06 2006-11-16 Nec Electronics Corp 演算処理装置及びデータ転送処理の実行方法
CN100349150C (zh) * 2005-06-06 2007-11-14 北京中星微电子有限公司 通过直接存储器访问控制器传输数据的系统及方法
JP2015099477A (ja) * 2013-11-19 2015-05-28 ヤマハ株式会社 Dmaコントローラ
JP2017122972A (ja) * 2016-01-05 2017-07-13 Necプラットフォームズ株式会社 情報処理装置、dma転送制御方法およびdma転送制御プログラム
JP2019512135A (ja) * 2016-02-29 2019-05-09 ルネサス エレクトロニクス アメリカ インコーポレイテッドRenesas Electronics America Inc. マイクロコントローラのデータ転送をプログラミングするシステムおよび方法
JP7122969B2 (ja) 2016-02-29 2022-08-22 ルネサス エレクトロニクス アメリカ インコーポレイテッド マイクロコントローラのデータ転送をプログラミングするシステムおよび方法
JP2017175404A (ja) * 2016-03-24 2017-09-28 コニカミノルタ株式会社 画像形成装置及びプログラム
JP2020027612A (ja) * 2018-08-10 2020-02-20 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド データ処理装置、人工知能チップ及び電子機器
JP2018196156A (ja) * 2018-09-12 2018-12-06 キヤノン株式会社 データ処理装置及び方法及びプログラム
JP2022547730A (ja) * 2019-09-17 2022-11-15 マイクロン テクノロジー,インク. データ移動のためのプログラム可能なエンジン

Also Published As

Publication number Publication date
US20050223136A1 (en) 2005-10-06
US7415550B2 (en) 2008-08-19
JPWO2004079583A1 (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
WO2004079583A1 (ja) データ転送制御装置およびdmaデータ転送制御方法
US7594046B2 (en) Data processing in which concurrently executed processes communicate via a FIFO buffer
JPH06250928A (ja) 情報処理装置
JP2009157684A (ja) 仮想化プログラム、シミュレーション装置、仮想化方法
JPH0192856A (ja) アクセス及び欠陥論理信号を用いて主メモリユニットを保護する装置及び方法
JP2004206424A (ja) データ処理装置及びデータ処理装置におけるデータ転送方法
WO2004017200A1 (ja) 情報処理方法とその方法を実現するプログラム及び記録媒体
JP2004157644A (ja) ディスクサブシステム、計算機システム、それを管理するためのストレージ管理方法、および、管理プログラム
JP2003202999A (ja) 仮想計算機システム
JP2769382B2 (ja) 情報処理装置
JP3859063B2 (ja) 仮想計算機の構成情報アクセス制御方法
JP2802109B2 (ja) メモリアクセス制御方式
JP3413369B2 (ja) 情報処理装置
JPS6069745A (ja) デ−タアドレツシング方式
JPS626367A (ja) ネツトワ−ク制御装置
JPH10240632A (ja) 外部記憶装置のオンライン交換方法
JP4494950B2 (ja) テーブル切替プログラムおよびコンピュータシステム
JPH10283197A (ja) プロセッサ及び割り込み調停方法
JP2001022581A (ja) データ処理装置及びコンピュータ読み取り可能な記憶媒体
JPS62229345A (ja) フアイル多重化方式
JPS5985559A (ja) フアイル制御システム
JPH05265846A (ja) メモリ管理方式
JPH10171670A (ja) タスク切り替え装置及びタスク切り替えプログラムを記録した媒体
JPH05119925A (ja) 磁気テープ装置の命令送出制御方式
JPH11327798A (ja) データ転送制御装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 2004569091

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11140732

Country of ref document: US