WO2017090138A1 - データ転送装置、データ転送方法及びデータ転送プログラム - Google Patents

データ転送装置、データ転送方法及びデータ転送プログラム Download PDF

Info

Publication number
WO2017090138A1
WO2017090138A1 PCT/JP2015/083156 JP2015083156W WO2017090138A1 WO 2017090138 A1 WO2017090138 A1 WO 2017090138A1 JP 2015083156 W JP2015083156 W JP 2015083156W WO 2017090138 A1 WO2017090138 A1 WO 2017090138A1
Authority
WO
WIPO (PCT)
Prior art keywords
transfer
data transfer
data
unit
storage device
Prior art date
Application number
PCT/JP2015/083156
Other languages
English (en)
French (fr)
Inventor
寛隆 茂田井
昌弘 出口
章雄 出原
下谷 光生
村山 修
哲史 藤▲崎▼
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2016517579A priority Critical patent/JP5955489B1/ja
Priority to PCT/JP2015/083156 priority patent/WO2017090138A1/ja
Priority to US15/765,454 priority patent/US20180307640A1/en
Priority to CN201580084614.5A priority patent/CN108292284A/zh
Priority to DE112015007042.7T priority patent/DE112015007042B4/de
Publication of WO2017090138A1 publication Critical patent/WO2017090138A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Definitions

  • This invention relates to a data transfer technique from an external storage device to a main storage device.
  • Patent Document 1 describes DMA (Direct Memory Access) transfer.
  • DMA transfer may be used for data transfer between the main storage device and the secondary storage device.
  • DMA transfer is a technique in which a main storage device and a secondary storage device directly transfer data without intervention of a CPU in accordance with a transfer request from a CPU (Central Processing Unit).
  • CPU Central Processing Unit
  • PIO Programmed IO
  • Whether to use DMA transfer or PIO is set by the OS (Operating System) when the apparatus is started, and DMA transfer and PIO are not used together.
  • the transfer length is fixedly set within a range corresponding to the transfer device. Specifically, when connected by a PCI (Peripheral Component Interconnect) bus, the size specified in CACHE_LINE_SIZE is the transfer length. The transfer length is set in BIOS (Basic Input / Output System) or OS when the apparatus is activated. While a DMA transfer transaction is being executed, the bus is occupied for data transfer, so another DMA transfer transaction is awaited.
  • PCI Peripheral Component Interconnect
  • An object of the present invention is to shorten the waiting time while efficiently performing DMA transfer.
  • the data transfer device is: A data transfer device for transferring data between the main storage device and the peripheral device; A setting unit for setting a transfer length indicating a data amount transferred in one data transfer to be shorter as the frequency of occurrence of the data transfer is higher; A transfer unit for instructing data transfer between the main storage device and the peripheral device according to the transfer length set by the setting unit;
  • the higher the frequency of data transfer the shorter the transfer length. Therefore, when the occurrence frequency of data transfer is low and waiting is difficult to occur, the transfer length becomes long and the data transfer time can be shortened. On the other hand, when the frequency of data transfer is high and waiting is likely to occur, the transfer length is shortened and the waiting time can be shortened.
  • FIG. 1 is a configuration diagram of a data transfer apparatus 10 according to a first embodiment.
  • 5 is a flowchart showing the operation of the OS 20 according to the first embodiment.
  • 5 is a flowchart showing the operation of the input / output unit 30 according to the first embodiment.
  • FIG. 3 is a diagram illustrating an operation example of the data transfer apparatus 10 according to the first embodiment.
  • the block diagram of the data transfer apparatus 10 which concerns on the modification 1.
  • FIG. The block diagram of the data transfer apparatus 10 which concerns on the modification 2.
  • FIG. FIG. 9 is a configuration diagram of a data transfer apparatus 10 according to Modification 3.
  • FIG. 3 is a configuration diagram of a data transfer apparatus 10 according to a second embodiment.
  • 9 is a flowchart showing the operation of the OS 20 according to the second embodiment.
  • 9 is a flowchart showing the operation of the input / output unit 30 according to the second embodiment.
  • FIG. 10 is a diagram illustrating an operation example of the data transfer apparatus 10 according to the second embodiment.
  • the data transfer device 10 is a computer.
  • the data transfer device 10 includes a processor 11, a main storage device 12, a peripheral device 13, and a DMAC 14 (DMA Controller).
  • the peripheral device 13 is the secondary storage device 131.
  • the peripheral device 13 may be a network interface such as an audio controller, a display controller, a sensor, an LED display, or a CAN (registered trademark, Controller Area Network).
  • a plurality of peripheral devices 13 may be provided.
  • the processor 11 is connected to other hardware via a signal line, and controls these other hardware.
  • the data transfer apparatus 10 includes an OS 20, an input / output unit 30, and an application 40.
  • the OS 20 includes a request unit 21 and an access unit 22 as functional configurations.
  • the input / output unit 30 is software that operates separately from the OS 20, and includes a setting unit 31 and a transfer unit 32 as functional configurations.
  • the application 40 is software that operates on the OS 20.
  • the secondary storage device 131 stores a program for realizing the OS 20, the input / output unit 30, and the application 40. This program is loaded into the main storage device 12.
  • the program loaded in the main storage device 12 is read into the processor 11 and executed by the processor 11.
  • the processor 11 is an IC (Integrated Circuit) that performs processing.
  • the processor 11 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
  • the main storage device 12 is a RAM (Random Access Memory).
  • the secondary storage device 131 is an HDD (Hard Disk Drive).
  • the secondary storage device may be a portable storage medium such as an SD (Secure Digital) memory card, a CF (CompactFlash), a NAND flash, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD.
  • the DMAC 14 is an LSI (Large Scale Integration) that performs DMA transfer. In FIG. 1, the DMAC 14 is shown independently of the peripheral device 13, but the DMAC 14 may be built in the peripheral device 13.
  • Information, data, signal values, and variable values indicating the results of the processing of each function realized by the processor 11 are stored in the main storage device 12 or a register or cache memory in the processor 11. In the following description, information, data, signal values, and variable values indicating the results of processing of the functions realized by the processor 11 will be described as being stored in the main storage device 12.
  • the operation of the data transfer apparatus 10 according to the first embodiment corresponds to the data transfer method according to the first embodiment.
  • the operation of the data transfer apparatus 10 according to the first embodiment corresponds to the processing of the data transfer program according to the first embodiment.
  • the data transfer device 10 performs data transfer between the main storage device 12 and the secondary storage device 131 by DMA transfer.
  • step S101 to step S102 and the processing from step S103 to step S107 are executed in parallel.
  • step S101 the request unit 21 determines whether the processing performed by the processor 11 has changed. When the process is changed, the request unit 21 advances the process to step S102. On the other hand, if the process has not changed, step S101 is executed again after a predetermined time has elapsed.
  • step S ⁇ b> 102 the request unit 21 outputs a DMA transfer transfer length change request in accordance with the processing performed by the processor 11.
  • the request unit 21 estimates the frequency of occurrence of data transfer according to the processing performed by the processor 11, and the higher the estimated frequency of data transfer, the data transferred in one data transfer. Requests that the transfer length indicating the amount be shortened.
  • the request unit 21 estimates the occurrence frequency of data transfer by the processing performed by the processor 11.
  • the request unit 21 stores in advance the expected number of data transfer occurrences per unit time for each program executed by the processor 11, and totals the expected occurrence numbers stored for the programs executed by the processor 11. Thus, it is possible to estimate the occurrence frequency of data transfer.
  • the request unit 21 determines the transfer length so that the transfer length indicating the amount of data transferred in one data transfer becomes shorter as the frequency of data transfer is higher.
  • the request unit 21 writes the determined transfer length in the main storage device 12 and sets 1 to the change request flag in the main storage device 12.
  • step S ⁇ b> 103 the access unit 22 waits for reception of a data read request issued from internal processing of the application 40 or the OS 20. If the read request is accepted, the access unit 22 proceeds with the process to step S104. If the read request is not accepted, the access unit 22 executes step S103 again after a predetermined time has elapsed.
  • step S ⁇ b> 104 the access unit 22 determines whether or not the data requested by the read request received in step S ⁇ b> 102 has been transferred from the secondary storage device 131 to the main storage device 12. Specifically, the access unit 22 holds an index of data that has been transferred from the secondary storage device 131 to the main storage device 12, and retrieves the requested data from the index to complete the transfer. It is determined whether or not. The access unit 22 advances the process to step S105 if not transferred, and advances the process to step S107 if transferred.
  • step S105 the access unit 22 adds a transfer request to the DMAC 14 so that the data requested by the read request is transferred in the next DMA transfer. Specifically, the access unit 22 writes a transfer request at the top of the execution order in the DMAC 14. The access unit 22 writes the transfer request at the head of the command chain when a command chain in which a plurality of transfer requests are collectively described as one instruction is set in the DMAC 14. The access unit 22 writes, as a transfer request, a transfer source address indicating the address of the secondary storage device 131 serving as a transfer source, a transfer destination address indicating an address of the main storage device 12 serving as a transfer destination, and a transfer length.
  • the transfer length here may be the transfer length determined in step S102, or may be determined regardless of the transfer length determined in step S102. Specifically, the transfer length may be increased regardless of the transfer length determined in step S102 so that the transfer request here is efficiently processed.
  • step S106 the access unit 22 waits for the data requested by the transfer request added in step S105 to be transferred to the main storage device 12. Specifically, the access unit 22 receives an interrupt indicating that the DMA transfer is completed from the DMAC 14 or periodically confirms the DMAC 14 by means such as polling, whereby the data is transferred to the main storage device 12. Make sure. The access unit 22 causes the processor 11 to execute another process until it is confirmed that the data has been transferred to the main storage device 12.
  • step S107 the access unit 22 delivers the transferred data to the request source of the read request received in step S103. Specifically, the access unit 22 reads data in the main storage device 12 and passes it to the request source through inter-process communication.
  • step S201 the transfer unit 32 determines whether or not the operation has started. In the first embodiment, it is assumed that the transfer unit 32 determines that the operation has started when the data transfer device 10 is started. In addition, the transfer unit 32 starts processing of the OS 20, the application 40 is started, the application 40 starts displaying data such as a map, and the processor 11 performs processing when triggered by an external input. It may be determined that an operation start state has been reached when another state such as having started. When the transfer unit 32 enters the operation start state, the process proceeds to step S202. When the transfer unit 32 does not enter the operation start state, the transfer unit 32 executes step S201 again after a predetermined time has elapsed.
  • step S202 the setting unit 31 determines whether a change request is output from the request unit 21 in step S102. Specifically, the setting unit 31 determines that a change request has been output when the change request flag in the main storage device 12 is set to 1. If the change request is output, the setting unit 31 advances the process to step S203. If the change request is not output, the setting unit 31 advances the process to step S205.
  • step S203 the setting unit 31 sets the transfer unit 32 to use the transfer length included in the change request. Specifically, the setting unit 31 reads the transfer length from the main storage device 12 and writes the read transfer length in the transfer length variable in the main storage device 12.
  • step S204 the setting unit 31 sets 0 to the change request flag of the main storage device 12. Accordingly, the request unit 21 of the OS 20 is notified that the change request has been changed.
  • step S205 the transfer unit 32 instructs data transfer between the main storage device 12 and the secondary storage device 131, which is the peripheral device 13, according to the transfer length set in the transfer length variable. Specifically, the transfer unit 32 uses the first address in the transfer range where transfer is not completed as the transfer source address, the transfer destination address of the main storage device 12 as the transfer destination address, and sets the transfer length variable. A transfer request with the set value as the transfer length is written to the DMAC 14.
  • FIG. 4 shows an operation when the data transfer apparatus 10 is activated.
  • a solid line arrow indicates a request flow
  • a broken line arrow indicates a data flow.
  • data transfer is performed in units of sectors.
  • step S201 when the data transfer apparatus 10 is started, it is determined that the transfer unit 32 is in an operation start state (step S201), and a DMA transfer is performed by writing a transfer request in the DMAC 14 (step S205).
  • the initial value of the transfer length is 6 sectors. That is, it is assumed that 6 sectors are set as initial values in the transfer length variable.
  • sectors 1 to 6 of the secondary storage device 131 are transferred to the main storage device 12.
  • the request unit 21 outputs a change request for changing the transfer length to 2 sectors before the application 40 is activated (step S102). That is, the request unit 21 estimates that the frequency of data transfer occurs more frequently after initialization of the OS 20 than during initialization of the OS 20, and requests the transfer length to be two sectors shorter than six sectors. Then, in process A12, the setting unit 31 sets 2 sectors in the transfer length variable in response to the change request (steps S202 to S204). Then, the transfer unit 32 performs DMA transfer according to the changed transfer length variable (step S205). As a result, the sectors 7 to 8 of the secondary storage device 131 are transferred to the main storage device 12.
  • the access unit 22 receives a read request for the sector 1 of the secondary storage device 131 from the application 40 (step S103).
  • the access unit 22 transfers the data of the sector 1 to the application 40 (step S107).
  • the DMA transfer is performed twice by the transfer unit 32 and the sectors 9 to 10 and the sectors 11 to 12 of the secondary storage device 131 are transferred to the main storage device 12.
  • the access unit 22 receives a read request for the sector 30 of the secondary storage device 131 from the application 40 (step S103).
  • the access unit 22 adds a transfer request to the DMAC 14 so that the sector 30 is transferred in the next DMA transfer.
  • the sector 30 of the secondary storage device 131 is transferred to the main storage device 12.
  • the DMA transfer is performed twice by the transfer unit 32 and the sectors 13 to 14 and sectors 15 to 16 of the secondary storage device 131 are transferred to the main storage device 12.
  • the request unit 21 outputs a change request for changing the transfer length to 4 sectors (step S102). That is, the request unit 21 estimates that the frequency of data transfer is less after the application 40 is activated than when the application 40 is activated, and requests the transfer length to be four sectors longer than two sectors. Then, in process A13, the setting unit 31 sets 4 sectors in the transfer length variable in response to the change request (steps S202 to S204). Then, the transfer unit 32 performs DMA transfer according to the changed transfer length variable (step S205). As a result, the sectors 17 to 20 of the secondary storage device 131 are transferred to the main storage device 12. Thereafter, the DMA transfer is repeated by the transfer unit 32, and the sectors 21 to 40 of the secondary storage device 131 are transferred to the main storage device 12.
  • the transfer length decreases as the frequency of data transfer increases. Therefore, when the occurrence frequency of data transfer is low and waiting is difficult to occur, the transfer length becomes long and the data transfer time can be shortened. On the other hand, when the frequency of data transfer is high and waiting is likely to occur, the transfer length is shortened and the waiting time can be shortened.
  • the transfer unit 32 transfers designated data designated in advance from the secondary storage device 131 that is the peripheral device 13 to the main storage device 12. . Therefore, it is possible to transfer data expected to be requested from the OS 20 and the application 40 to the main storage device 12 before being requested from the OS 20 and the application 40.
  • the data transfer device 10 when the data transfer device 10 starts to be activated, it is determined that the operation has started. That is, in the data transfer device 10 according to the first embodiment, designated data designated in advance is transferred from the secondary storage device 131 that is the peripheral device 13 to the main storage device 12 when the data transfer device 10 is activated. For this reason, before the data is requested from the OS 20 and the application 40 after the data transfer device 10 is activated, the data expected to be requested from the OS 20 and the application 40 can be transferred to the main storage device 12.
  • the request unit 21 when the data transfer device 10 is activated, the request unit 21 performs data transfer occurrence frequency after initialization of the OS 20 of the data transfer device 10 rather than during initialization of the OS 20. It is estimated that there are many, and it is requested to shorten the transfer length. Further, the request unit 21 estimates that the frequency of data transfer is less after the application 40 is activated than when the application 40 is activated, and requests that the transfer length be increased. Thereby, it is possible to transfer the data expected to be requested from the OS 20 and the application 40 to the main storage device 12 in a short time while shortening the waiting time when the OS 20 and the application 40 are activated.
  • a vehicle-mounted device such as a car navigation system is equipped with a plurality of functions such as a navigation function and an audio function. Programs and data necessary for executing each function are stored in a non-volatile secondary storage device such as an HDD, read out to the main storage device when the system is started, and executed by the processor. If the data transfer device 10 according to the first embodiment is applied to the vehicle-mounted device, the data transfer time from the secondary storage device to the main storage device can be shortened while reducing the waiting time so as not to hinder the startup process. Thereby, time until service provision of onboard equipment can be shortened.
  • information indicating the system state such as a travel history and an audio reproduction history is appropriately transferred from the main storage device to the secondary storage device and stored by the processor. These pieces of information are used to restore the previous state when the system is started. Also, these pieces of information are used when a user frequently sets a destination or plays back favorite music. If the data transfer device 10 according to the first embodiment is applied to the vehicle-mounted device, the waiting time is reduced so as not to hinder the processing for providing the service to the user, and the main storage device is transferred to the secondary storage device. Data transfer time can be shortened. As a result, it is possible to securely store data important for service provision while suppressing the influence on the user.
  • the change request flag is used to notify the input / output unit 30 that a change request has occurred.
  • the fact that the change request has occurred may be transmitted to the input / output unit 30 using a message queue or a register.
  • the OS 20 and the input / output unit 30 are executed by the same processor 11. However, as a first modification, the OS 20 and the input / output unit 30 may be executed in parallel by different processors 11. The first modification will be described with respect to differences from the first embodiment.
  • the data transfer device 10 includes a processor 11A and a processor 11B, a main storage device 12, a peripheral device 13, and a DMAC 14.
  • the OS 20 is read into the processor 11A and executed by the processor 11A.
  • the input / output unit 30 is read by the processor 11B and executed by the processor 11B.
  • the input / output unit 30 is software that operates separately from the OS 20.
  • the input / output unit 30 may be software that operates on the OS 20. The second modification will be described with respect to differences from the first embodiment.
  • the data transfer apparatus 10 includes an OS 20 and an application 40.
  • the OS 20 includes a request unit 21, an access unit 22, a setting unit 31, and a transfer unit 32 as functional configurations.
  • the setting unit 31 and the transfer unit 32 may be device drivers or userland software. Alternatively, software that operates as a thread or a process may be used.
  • the setting unit 31 and the transfer unit 32 are software that operates on the OS 20, but when the boot loader is activated, the setting unit 31 and the transfer unit 32 can operate. Therefore, the setting unit 31 and the transfer unit 32 can operate even while the OS 20 is being activated.
  • the boot loader is software that performs minimal initialization of the data transfer device 10 and reads the OS 20 into the main storage device 12.
  • ⁇ Modification 3> In the first embodiment, the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 are realized by software. However, as a third modification, the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 may be realized by hardware. The third modification will be described with respect to differences from the first embodiment.
  • the data transfer apparatus 10 When the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 are realized by hardware, the data transfer apparatus 10 further includes a processing circuit 15.
  • the processing circuit 15 is a dedicated electronic circuit that realizes the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32.
  • the processing circuit 15 is assumed to be a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array). Is done.
  • the function of each part may be realized by one processing circuit 15, or the function of each part may be realized by being distributed to a plurality of processing circuits 15.
  • ⁇ Modification 4> As a fourth modification, some functions may be realized by hardware, and other functions may be realized by software. That is, some of the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 may be realized by hardware, and the other functions may be realized by software.
  • the processor 11, the main storage device 12, and the processing circuit 15 are collectively referred to as “processing circuitries”. That is, the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 are realized by a processing circuit. That is, regardless of the configuration of the data transfer device 10 shown in FIGS. 1, 6, or 7, the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 are processed. Realized by circuitry.
  • Embodiment 2 FIG.
  • the frequency of data transfer is estimated and the transfer length is determined by the processing performed by the processor 11.
  • the second embodiment is further different from the first embodiment in that the frequency of data transfer is estimated and the transfer length is determined based on the number of requesters requesting data transfer. In the second embodiment, this different point will be described.
  • the peripheral device 13 is a secondary storage device 131 and an interface 132.
  • the interface 132 is a network interface such as Bluetooth (registered trademark), WiFi, or CNA.
  • the interface 132 may be provided for each network, or may be provided in a state shared by a plurality of networks.
  • the data transfer device 10 is connected to the external device 50 via the interface 132.
  • the transfer unit 32 includes a first transfer unit 321 and a second transfer unit 322 as functional configurations.
  • the first transfer unit 321 is software that performs data transfer between the main storage device 12 and the secondary storage device 131, and the second transfer unit 322 performs data transfer between the main storage device 12 and the interface 132. Software to perform.
  • the operation of the data transfer apparatus 10 according to the second embodiment corresponds to the data transfer method according to the second embodiment.
  • the operation of the data transfer apparatus 10 according to the second embodiment corresponds to the processing of the data transfer program according to the second embodiment.
  • the data transfer device 10 performs data transfer by DMA transfer between the main storage device 12, the secondary storage device 131, and the interface 132.
  • the secondary storage device 131 and the interface 132 perform data transfer with the main storage device 12 using the same bus.
  • step S301 to step S302 the processing from step S303 to step S307, and the processing from step S308 to step S311 are executed in parallel.
  • step S301 the request unit 21 determines whether at least one of the process performed by the processor 11 and the number of request sources requesting data transfer using the same bus have changed.
  • the request unit 21 advances the process to step S302 when at least one of them has changed.
  • step S301 is executed again after a predetermined time has elapsed.
  • the request unit 21 outputs a DMA transfer transfer length change request according to the processing performed by the processor 11 and the number of request sources requesting data transfer using the same bus. Specifically, the request unit 21 estimates the frequency of data transfer based on the processing performed by the processor 11 and the number of request sources requesting data transfer using the same bus. The request unit 21 determines the transfer length so that the transfer length indicating the amount of data transferred in one data transfer becomes shorter as the frequency of data transfer is higher. The request unit 21 writes the determined transfer length in the main storage device 12 and sets 1 to the change request flag in the main storage device 12. Here, the transfer length is written separately for the first transfer unit 321 and the second transfer unit 322, and the change request flag is set separately for the first transfer unit 321 and the second transfer unit 322.
  • step S303 to step S307 is the same as the processing from step S103 to step S107 in FIG.
  • step S ⁇ b> 308 the access unit 22 waits to accept a data acquisition request from the external device 50 connected by the interface 132 issued from the internal process of the application 40 or the OS 20. If the access unit 22 receives an acquisition request, the process proceeds to step S309. If the acquisition request is not received, the access unit 22 executes step S308 again after a predetermined time has elapsed.
  • step S309 the access unit 22 sets the interface 132 to be valid. Specifically, the access unit 22 turns on the power of the interface 132.
  • step S310 the access unit 22 waits for data to be transferred from the interface 132 to the main storage device 12. Specifically, the access unit 22 receives an interrupt indicating that the DMA transfer is completed from the DMAC 14 or periodically confirms the DMAC 14 by means such as polling, whereby the data is transferred to the main storage device 12. Make sure. The access unit 22 causes the processor 11 to execute another process until it is confirmed that the data has been transferred to the main storage device 12.
  • step S311 the access unit 22 delivers the data transferred to the request source of the acquisition request received in step S308. Specifically, the access unit 22 reads data in the main storage device 12 and passes it to the request source through inter-process communication. The access unit 22 invalidates the interface 132 when the data is transferred. Specifically, the access unit 22 turns off the power of the interface 132.
  • step S401 to step S405 and the processing from step S406 to step S410 are executed in parallel.
  • step S401 to step S405 is the same as the processing from step S201 to step S205 in FIG. However, the processing from step S401 to step S405 is executed by the first transfer unit 321.
  • step S402 and step S404 the change request flag for the first transfer unit 321 is used, and in step S403, the transfer length for the first transfer unit 321 is used.
  • step S406 the second transfer unit 322 determines whether data is received from the external device 50 to which the interface 132 is connected. If the second transfer unit 322 receives data, the process proceeds to step S407. If not, the second transfer unit 322 executes step S406 again after a predetermined time has elapsed.
  • step S407 the setting unit 31 determines whether a change request is output from the request unit 21 in step S302. Specifically, when the change request flag for the second transfer unit 322 in the main storage device 12 is set to 1, the setting unit 31 determines that a change request has been output. If the change request is output, the setting unit 31 advances the process to step S408. If the change request is not output, the setting unit 31 advances the process to step S410.
  • step S408 the setting unit 31 sets the transfer unit 32 to use the transfer length included in the change request. Specifically, the setting unit 31 reads the transfer length for the second transfer unit 322 from the main storage device 12 and writes the read transfer length in the transfer length variable in the main storage device 12.
  • step S409 the setting unit 31 sets 0 to the change request flag for the second transfer unit 322 of the main storage device 12. Accordingly, the request unit 21 of the OS 20 is notified that the change request has been changed.
  • step S410 the transfer unit 32 writes the transfer request in the DMAC 14. Specifically, the transfer unit 32 uses, as the transfer source address, the first address in a range where the transfer is not completed in the received data, sets the address of the transfer destination main storage device 12 as the transfer destination address, and sets the transfer length. Write a transfer request with the transfer length set to the value set in the variable.
  • FIG. 11 shows an operation at the time of starting up the data transfer apparatus 10.
  • the solid line arrows indicate the flow of requests
  • the broken line arrows indicate the flow of data.
  • data transfer for the secondary storage device 131 is performed in units of sectors
  • data transfer for the interface 132 is performed in units of bytes.
  • Process A21, A22 and process B21 are the same as process A11, A12 and process B11 shown in FIG.
  • the access unit 22 receives an acquisition request for acquiring data from the external device 50 connected from the application 40 via the interface 132 (step S308). Then, the access unit 22 enables the interface 132 (step S309).
  • the transfer length for the second transfer unit 322 is 1536 bytes. That is, it is assumed that 1536 bytes is set as an initial value in the transfer length variable for the second transfer unit 322. During this time, it is assumed that the DMA transfer is performed twice by the transfer unit 32 and the sectors 9 to 10 and the sectors 11 to 12 of the secondary storage device 131 are transferred to the main storage device 12.
  • the request unit 21 outputs a change request for changing the transfer length for the second transfer unit 322 to 512 bytes (step S302). That is, the request unit 21 estimates that the frequency of data transfer is high because the interface 132 is added as a request source for requesting data transfer using the same bus and the number of request sources is increased, and the transfer length is 1536 bytes. Requires 512 bytes to be shorter. Then, in process A23, the setting unit 31 sets 512 bytes to the transfer length variable for the second transfer unit 322 in response to the change request (steps S407 to S409). Then, the second transfer unit 322 performs DMA transfer according to the changed transfer length variable (step S410). As a result, 512 bytes of data are transferred from the interface 132 to the main storage device 12.
  • DMA transfer is performed by the first transfer unit 321 and the second transfer unit 322 (steps S402 to S405, steps S407 to S410), and the data is transferred to the main storage device 12 up to the sector 114 of the secondary storage device 131. It is assumed that all the data received by 132 has been transferred. Then, in process B24, since all the data received by the interface 132 has been transferred, the access unit 22 invalidates the interface 132 (step S410). Thereby, the power consumption of the data transfer apparatus 10 is suppressed.
  • Process B25 and process A24 are the same as process B14 and process A13 shown in FIG.
  • the request unit 21 requested to shorten only the transfer length of the second transfer unit 322.
  • the request unit 21 may request that not only the transfer length of the second transfer unit 322 but also the transfer length of the first transfer unit 321 be shortened.
  • the request unit 21 requests that the transfer length of the second transfer unit 322 be 512 bytes shorter than 1536 bytes, and the transfer length of the first transfer unit 321 is one sector shorter than two sectors. You may request that
  • the frequency of occurrence of data transfer is estimated not only by the processing performed by the processor 11 but also by the number of requesters requesting data transfer, The transfer length is determined. Therefore, when the external device 50 that performs data transfer is connected, the frequency of occurrence of data transfer can be estimated more appropriately, and the transfer length can be determined more appropriately.
  • the transfer length is set shorter as the number of requesters requesting data transfer increases.
  • the transfer lengths of some request sources may be lengthened and the transfer lengths of other request sources may be shortened.
  • the fifth modification will be described with respect to differences from the second embodiment.
  • requirement part 21 defines a priority for every request origin in advance.
  • the priority of the interface 132 is determined to be high and the other priority is determined to be low.
  • the request unit 21 increases the transfer length for a request source having a high priority and shortens the transfer length for a request source having a low priority.
  • the request unit 21 changes the transfer length for the first transfer unit 321 to one sector shorter than two sectors, and the transfer length for the second transfer unit 322 is 1536 bytes. A change request to change to longer 3072 bytes is output.
  • the transfer length for a request source having a high priority data transfer for a request source having a high priority can be completed quickly.
  • the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 are realized by software.
  • the functions of the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 may be realized by hardware.
  • the request unit 21, the access unit 22, the setting unit 31, and the transfer unit 32 have some functions realized by hardware and other functions. May be implemented in software.

Landscapes

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

Abstract

データ転送装置(10)は、主記憶装置(12)と2次記憶装置(131)といった周辺装置(13)との間のデータ転送を行う。データ転送装置(10)は、プロセッサ(11)で実行されている処理といった情報に基づきデータ転送の発生頻度を推定し、データ転送の発生頻度が高いほど、1回のデータ転送において転送されるデータ量を示す転送長を短く設定し、設定された転送長により、主記憶装置(12)と周辺装置(13)との間のデータ転送を指示する。

Description

データ転送装置、データ転送方法及びデータ転送プログラム
 この発明は、外部記憶装置から主記憶装置へのデータ転送技術に関する。
 特許文献1には、DMA(Direct Memory Access)転送について記載されている。特許文献1に記載されているように、主記憶装置と2次記憶装置とのデータ転送にはDMA転送が用いられる場合がある。DMA転送とは、CPU(Central Processing Unit)からの転送要求に従い、主記憶装置と2次記憶装置とがCPUを介在せず直接にデータ転送を行う技術である。DMA転送を用いることにより、データ転送中にCPUは他の処理を実行することができる。
 これに対して、CPUが介在するデータ転送のことをPIO(Programmed IO)という。DMA転送とPIOとのどちらを用いるかが、装置の起動時にOS(Operating System)により設定され、DMA転送とPIOとが混在して用いられることはない。
 DMA転送では転送長は、転送を行う装置が対応する範囲で固定的に設定される。具体的には、PCI(Peripheral Component Interconnect)バスで接続された場合、CACHE_LINE_SIZEに指定されたサイズが転送長となる。転送長は、装置の起動時にBIOS(Basic Input/Output System)又はOSに設定される。
 DMA転送のトランザクションを実行中は、データの転送にバスが占有されるため、他のDMA転送のトランザクションは待たされる。
特開平05-073476号公報
 DMA転送の設定は転送毎に行う必要がある。そのため、DMA転送における転送長が長いほど、設定を行う回数が減り、データ転送にかかる時間を短くできる。しかし、DMA転送における転送長が長いほど、1つのDMA転送の処理に時間がかかるため、他のDMA転送が長く待たされる可能性がある。
 この発明は、DMA転送を効率的に行いつつ、待ち時間を短くすることを目的とする。
 この発明に係るデータ転送装置は、
 主記憶装置と周辺装置との間のデータ転送を行うデータ転送装置であり、
 前記データ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長を短く設定する設定部と、
 前記設定部によって設定された転送長により、主記憶装置と周辺装置との間のデータ転送を指示する転送部と
を備える。
 この発明では、データ転送の発生頻度が高いほど転送長が短くなる。そのため、データ転送の発生頻度が低く、待ちが発生し辛い場合には、転送長が長くなり、データ転送時間を短くできる。一方、データ転送の発生頻度が高く、待ちが発生し易い場合には、転送長が短くなり、待ち時間を短くできる。
実施の形態1に係るデータ転送装置10の構成図。 実施の形態1に係るOS20の動作を示すフローチャート。 実施の形態1に係る入出力部30の動作を示すフローチャート。 実施の形態1に係るデータ転送装置10の動作例を示す図。 変形例1に係るデータ転送装置10の構成図。 変形例2に係るデータ転送装置10の構成図。 変形例3に係るデータ転送装置10の構成図。 実施の形態2に係るデータ転送装置10の構成図。 実施の形態2に係るOS20の動作を示すフローチャート。 実施の形態2に係る入出力部30の動作を示すフローチャート。 実施の形態2に係るデータ転送装置10の動作例を示す図。
 実施の形態1.
 ***構成の説明***
 図1を参照して、実施の形態1に係るデータ転送装置10の構成を説明する。
 データ転送装置10は、コンピュータである。
 データ転送装置10は、プロセッサ11と、主記憶装置12と、周辺装置13と、DMAC14(DMA Controller)とを備える。実施の形態1では、周辺装置13は、2次記憶装置131である。周辺装置13は、オーディオコントローラ、ディスプレイコントローラ、センサー、LED表示器、CAN(登録商標,Controller Area Network)といったネットワークのインタフェースであってもよい。周辺装置13は、複数備えられていてもよい。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 データ転送装置10は、OS20と、入出力部30と、アプリケーション40とを備える。OS20は、機能構成として、要求部21と、アクセス部22とを備える。入出力部30は、OS20とは別に動作するソフトウェアであり、機能構成として、設定部31と、転送部32とを備える。アプリケーション40は、OS20上で動作するソフトウェアである。
 2次記憶装置131には、OS20と入出力部30とアプリケーション40とを実現するプログラムが記憶されている。このプログラムは、主記憶装置12にロードされる。主記憶装置12にロードされたプログラムは、プロセッサ11に読み込まれ、プロセッサ11によって実行される。
 プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体的には、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 主記憶装置12は、具体的には、RAM(Random Access Memory)である。
 2次記憶装置131は、具体的には、HDD(Hard Disk Drive)である。また、2次記憶装置は、SD(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。
 DMAC14は、DMA転送を行うLSI(Large Scale Integration)である。図1では、DMAC14が周辺装置13と独立して示されているが、DMAC14は周辺装置13に内蔵されていてもよい。
 プロセッサ11によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、主記憶装置12、又は、プロセッサ11内のレジスタ又はキャッシュメモリに記憶される。以下の説明では、プロセッサ11によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、主記憶装置12に記憶されるものとして説明する。
 ***動作の説明***
 図2から図4を参照して、実施の形態1に係るデータ転送装置10の動作を説明する。
 実施の形態1に係るデータ転送装置10の動作は、実施の形態1に係るデータ転送方法に相当する。また、実施の形態1に係るデータ転送装置10の動作は、実施の形態1に係るデータ転送プログラムの処理に相当する。
 実施の形態1では、データ転送装置10は、主記憶装置12と2次記憶装置131との間で、DMA転送によりデータ転送を行う。
 図2を参照して、実施の形態1に係るOS20の動作を説明する。
 OS20では、ステップS101からステップS102の処理と、ステップS103からステップS107の処理とが並行して実行される。
 ステップS101では、要求部21は、プロセッサ11で行われている処理が変わったかを判定する。
 要求部21は、処理が変わった場合、処理をステップS102に進める。一方、処理が変わっていない場合、一定時間経過後、ステップS101を再び実行する。
 ステップS102では、要求部21は、プロセッサ11で行われている処理に応じて、DMA転送の転送長の変更要求を出力する。ここでは、要求部21は、プロセッサ11で行われている処理に応じてデータ転送の発生頻度を推定し、推定したデータ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長を短くすることを要求する。
 具体的には、要求部21は、プロセッサ11で行われている処理が変わると、プロセッサ11で行われている処理により、データ転送の発生頻度を推定する。要求部21は、プロセッサ11で実行されるプログラム毎に、単位時間当たりのデータ転送の発生予想数を事前に記憶しておき、プロセッサ11で実行されているプログラムについて記憶された発生予想数を合計してデータ転送の発生頻度を推定することが可能である。要求部21は、データ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長が短くなるように転送長を決定する。そして、要求部21は、決定した転送長を主記憶装置12に書き込むとともに、主記憶装置12における変更要求フラグに1を設定する。
 ステップS103では、アクセス部22は、アプリケーション40又はOS20の内部処理から発行されるデータの読出要求の受け付け待ちをする。
 アクセス部22は、読出要求を受け付けた場合、処理をステップS104に進め、読出要求を受け付けていない場合、一定時間経過後、再びステップS103を実行する。
 ステップS104では、アクセス部22は、ステップS102で受け付けた読出要求によって要求されたデータが、2次記憶装置131から主記憶装置12に転送済であるか否かを判定する。具体的には、アクセス部22は、2次記憶装置131から主記憶装置12に転送済になっているデータのインデックスを保持しておき、インデックスから要求されたデータを検索することにより、転送済であるか否かを判定する。
 アクセス部22は、未転送の場合、処理をステップS105に進め、転送済の場合、処理をステップS107に進める。
 ステップS105では、アクセス部22は、次のDMA転送で読出要求によって要求されたデータが転送されるように、DMAC14に転送要求を追加する。具体的には、アクセス部22は、DMAC14における実行順位の先頭に転送要求を書き込む。なお、アクセス部22は、複数の転送要求が1つの命令としてまとめて記載されたコマンドチェーンがDMAC14に設定されている場合には、コマンドチェーンの先頭に転送要求を書き込む。
 アクセス部22は、転送要求として、転送元となる2次記憶装置131のアドレスを示す転送元アドレスと、転送先となる主記憶装置12のアドレスを示す転送先アドレスと、転送長とを書き込む。ここでの転送長は、ステップS102で決定された転送長にしてもよいし、ステップS102で決定された転送長とは無関係に決定されてもよい。具体的には、ここでの転送要求が効率的に処理されるように、ステップS102で決定された転送長とは無関係に転送長を長くしてもよい。
 ステップS106では、アクセス部22は、ステップS105で追加した転送要求によって要求されたデータが、主記憶装置12に転送されることを待つ。具体的には、アクセス部22は、DMAC14からDMA転送が完了したことを示す割り込みを受け付ける、又は、ポーリングといった手段によりDMAC14に定期的に確認することにより、データが主記憶装置12に転送されたことを確認する。アクセス部22は、データが主記憶装置12に転送されたことが確認されるまで、プロセッサ11に他の処理を実行させる。
 ステップS107では、アクセス部22は、ステップS103で受け付けた読出要求の要求元に転送されたデータを受け渡す。具体的には、アクセス部22は、主記憶装置12におけるデータを読み出してプロセス間通信により要求元に渡す。
 図3を参照して、実施の形態1に係る入出力部30の動作を説明する。
 ステップS201では、転送部32は、動作開始状態になったか否かを判定する。実施の形態1では、転送部32は、データ転送装置10の起動が開始されると、動作開始状態になったと判定するものとする。なお、転送部32は、OS20の初期化処理が開始された、アプリケーション40の起動を開始された、アプリケーション40が地図といったデータの表示を開始した、外部からの入力を契機としてプロセッサ11が処理を開始したといった他の状態になった場合に、動作開始状態になったと判定してもよい。
 転送部32は、動作開始状態になった場合、処理をステップS202に進め、動作開始状態になっていない場合、一定時間経過後、再びステップS201を実行する。
 続いて、入出力部30は、2次記憶装置131における転送範囲の転送が終わるまで、ステップS202からステップS205までの処理を繰り返し実行する。
 ステップS202では、設定部31は、ステップS102で要求部21から変更要求が出力されたか否かを判定する。具体的には、設定部31は、主記憶装置12における変更要求フラグに1が設定されている場合、変更要求が出力されたと判定する。
 設定部31は、変更要求が出力された場合、処理をステップS203に進め、変更要求が出力されていない場合、処理をステップS205に進める。
 ステップS203では、設定部31は、変更要求に含まれる転送長を用いるように転送部32に設定する。具体的には、設定部31は、主記憶装置12から転送長を読み出し、主記憶装置12における転送長変数に読み出した転送長を書き込む。
 ステップS204では、設定部31は、主記憶装置12の変更要求フラグに0を設定する。これにより、OS20の要求部21に変更要求の変更が完了したことが通知される。
 ステップS205では、転送部32は、転送長変数に設定された転送長に従い、主記憶装置12と周辺装置13である2次記憶装置131との間のデータ転送を指示する。具体的には、転送部32は、転送範囲のうち転送が完了していない範囲の先頭のアドレスを転送元アドレスとし、転送先の主記憶装置12のアドレスを転送先アドレスとし、転送長変数に設定された値を転送長とする転送要求をDMAC14に書き込む。
 図4を参照して、実施の形態1に係るデータ転送装置10の動作例を説明する。
 図4では、データ転送装置10の起動時の動作が示されている。図4では、実線矢印が要求の流れを示しており、破線矢印がデータの流れを示している。ここでは、データ転送は、セクタ単位で行われるとする。
 処理A11では、データ転送装置10の起動が開始されると転送部32が動作開始状態になったと判定して(ステップS201)、転送要求をDMAC14に書き込むことによりDMA転送を行う(ステップS205)。ここでは、転送長の初期値は6セクタになっているものとする。つまり、転送長変数には初期値として6セクタが設定されているものとする。これにより、2次記憶装置131のセクタ1~6が主記憶装置12に転送される。
 次に、処理B11では、OS20の初期化が完了したため、要求部21がアプリケーション40の起動前に、転送長を2セクタに変更する変更要求を出力する(ステップS102)。つまり、要求部21は、OS20の初期化後は、OS20の初期化中よりも、データ転送の発生頻度が多いと推定し、転送長を6セクタよりも短い2セクタにすることを要求する。
 すると、処理A12では、設定部31が変更要求に応じて転送長変数に2セクタを設定する(ステップS202~S204)。そして、転送部32が変更後の転送長変数に従い、DMA転送を行う(ステップS205)。これにより、2次記憶装置131のセクタ7~8が主記憶装置12に転送される。
 次に、処理B12では、アクセス部22がアプリケーション40から2次記憶装置131のセクタ1の読出要求を受け付ける(ステップS103)。ここでは、アクセス部22は、セクタ1は既に転送済であるため(ステップS104)、アプリケーション40にセクタ1のデータを受け渡す(ステップS107)。
 この間に、転送部32によって2度のDMA転送が行われ、2次記憶装置131のセクタ9~10及びセクタ11~12が主記憶装置12に転送されたとする。
 次に、処理B13では、アクセス部22がアプリケーション40から2次記憶装置131のセクタ30の読出要求を受け付ける(ステップS103)。ここでは、アクセス部22は、セクタ30は未転送であるため(ステップS104)、次のDMA転送でセクタ30が転送されるように転送要求をDMAC14に追加する。これにより、2次記憶装置131のセクタ30が主記憶装置12に転送される。
 その後、転送部32によって2度のDMA転送が行われ、2次記憶装置131のセクタ13~14及びセクタ15~16が主記憶装置12に転送されたとする。
 次に、処理B14では、アプリケーション40の起動が完了したため、要求部21が転送長を4セクタに変更する変更要求を出力する(ステップS102)。つまり、要求部21は、アプリケーション40の起動後は、アプリケーション40の起動中よりも、データ転送の発生頻度が少ないと推定し、転送長を2セクタよりも長い4セクタにすることを要求する。
 すると、処理A13では、設定部31が変更要求に応じて転送長変数に4セクタを設定する(ステップS202~S204)。そして、転送部32が変更後の転送長変数に従い、DMA転送を行う(ステップS205)。これにより、2次記憶装置131のセクタ17~20が主記憶装置12に転送される。
 以降、転送部32によってDMA転送が繰り返され、2次記憶装置131のセクタ21~40が主記憶装置12に転送される。
 ***実施の形態1の効果***
 以上のように、実施の形態1に係るデータ転送装置10では、データ転送の発生頻度が高いほど転送長が短くなる。そのため、データ転送の発生頻度が低く、待ちが発生し辛い場合には、転送長が長くなり、データ転送時間を短くできる。一方、データ転送の発生頻度が高く、待ちが発生し易い場合には、転送長が短くなり、待ち時間を短くできる。
 実施の形態1に係るデータ転送装置10では、動作開始状態となった場合に、転送部32が予め指定された指定データを周辺装置13である2次記憶装置131から主記憶装置12に転送する。そのため、OS20及びアプリケーション40から要求される前に、OS20及びアプリケーション40から要求されると予想されるデータを主記憶装置12に転送しておくことができる。
 実施の形態1では、データ転送装置10の起動が開始されると、動作開始状態になったと判定される。つまり、実施の形態1に係るデータ転送装置10では、データ転送装置10の起動時に、予め指定された指定データを周辺装置13である2次記憶装置131から主記憶装置12に転送する。そのため、データ転送装置10の起動後にOS20及びアプリケーション40からデータを要求される前に、OS20及びアプリケーション40から要求されると予想されるデータを主記憶装置12に転送しておくことができる。
 図4を参照して説明したように、要求部21は、データ転送装置10の起動時において、データ転送装置10のOS20の初期化後は、OS20の初期化中よりも、データ転送の発生頻度が多いと推定し、転送長を短くすることを要求する。また、要求部21は、アプリケーション40の起動後は、アプリケーション40の起動中よりも、データ転送の発生頻度が少ないと推定し、転送長を長くすることを要求する。これにより、OS20及びアプリケーション40の起動時の待ち時間を短くしつつ、OS20及びアプリケーション40から要求されると予想されるデータを短時間で主記憶装置12に転送しておくことができる。
 カーナビゲーションシステムのような車載器では、ナビゲーション機能とオーディオ機能といった複数の機能が搭載される。各機能の実行に必要なプログラム及びデータは、HDDといった不揮発性の2次記憶装置に格納され、システムの起動時に主記憶装置に読み出され、プロセッサにより実行される。
 実施の形態1に係るデータ転送装置10を車載器に適用すれば、起動処理の妨げにならないように待ち時間を減らしつつ、2次記憶装置から主記憶装置へのデータ転送時間を短くできる。これにより、車載器のサービス提供までの時間を短くすることができる。
 また、車載器では、走行履歴とオーディオの再生履歴といったシステムの状態を示す情報が、プロセッサにより主記憶装置から2次記憶装置に適宜転送され記憶される。これら情報はシステムの起動時に前回の状態を復元するために用いられる。また、これらの情報は、ユーザが頻繁に向かう目的地を設定する、又は、お気に入りの音楽を再生するといったときに用いられる。
 実施の形態1に係るデータ転送装置10を車載器に適用すれば、利用者へのサービス提供のための処理の妨げにならないように待ち時間を減らしつつ、主記憶装置から2次記憶装置へのデータ転送時間を短くできる。これにより、利用者への影響を抑えつつ、サービス提供に重要なデータを確実に保存することが可能になる。
 なお、上記説明では、周辺装置13である2次記憶装置131から主記憶装置12にデータが転送される場合を説明した。しかし、主記憶装置12から周辺装置13にデータが転送される場合にも応用できる。
 また、上記説明では、変更要求フラグを用いて、変更要求が発生したことが入出力部30に伝達された。しかし、変更要求フラグを用いることに代え、メッセージキュー又はレジスタを用いて、変更要求が発生したことが入出力部30に伝達されてもよい。
 ***他の構成***
 <変形例1>
 実施の形態1では、OS20と入出力部30とが同一のプロセッサ11で実行された。しかし、変形例1として、OS20と入出力部30とはそれぞれ別のプロセッサ11で並列に実行されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
 図5を参照して、変形例1に係るデータ転送装置10の構成を説明する。
 データ転送装置10は、プロセッサ11A及びプロセッサ11Bと、主記憶装置12と、周辺装置13と、DMAC14とを備える。OS20は、プロセッサ11Aに読み込まれ、プロセッサ11Aによって実行される。入出力部30は、プロセッサ11Bに読み込まれ、プロセッサ11Bによって実行される。
 <変形例2>
 実施の形態1では、入出力部30がOS20とは別に動作するソフトウェアであった。しかし、変形例2として、入出力部30がOS20上で動作するソフトウェアであってもよい。この変形例2について、実施の形態1と異なる点を説明する。
 図6を参照して、変形例2に係るデータ転送装置10の構成を説明する。
 データ転送装置10は、OS20と、アプリケーション40とを備える。OS20は、機能構成として、要求部21と、アクセス部22と、設定部31と、転送部32とを備える。設定部31と転送部32とは、デバイスドライバであってもよいし、ユーザランドのソフトウェアであってもよい。また、スレッド、プロセスとして動作するソフトウェアであってもよい。
 設定部31と転送部32とはOS20上で動作するソフトウェアであるが、ブートローダが起動すれば、設定部31と転送部32とは動作できる。そのため、OS20の起動中であっても、設定部31と転送部32とは動作することができる。ブートローダとは、データ転送装置10についての最小限の初期化をするとともに、OS20を主記憶装置12に読み込むソフトウェアである。
 <変形例3>
 実施の形態1では、要求部21と、アクセス部22と、設定部31と、転送部32との機能がソフトウェアで実現された。しかし、変形例3として、要求部21と、アクセス部22と、設定部31と、転送部32との機能はハードウェアで実現されてもよい。この変形例3について、実施の形態1と異なる点を説明する。
 図7を参照して、変形例3に係るデータ転送装置10の構成を説明する。
 要求部21と、アクセス部22と、設定部31と、転送部32との機能がハードウェアで実現される場合、データ転送装置10は、さらに、処理回路15とを備える。処理回路15は、要求部21と、アクセス部22と、設定部31と、転送部32との機能を実現する専用の電子回路である。
 処理回路15は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
 各部の機能を1つの処理回路15で実現してもよいし、各部の機能を複数の処理回路15に分散させて実現してもよい。
 <変形例4>
 変形例4として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、要求部21と、アクセス部22と、設定部31と、転送部32とのうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
 プロセッサ11と主記憶装置12と処理回路15とを、総称して「プロセッシングサーキットリー」という。つまり、要求部21と、アクセス部22と、設定部31と、転送部32との機能は、プロセッシングサーキットリーにより実現される。すなわち、データ転送装置10が図1と図6と図7とのいずれに示した構成であっても、要求部21と、アクセス部22と、設定部31と、転送部32との機能はプロセッシングサーキットリーにより実現される。
 実施の形態2.
 実施の形態1では、プロセッサ11で行われている処理により、データ転送の発生頻度が推定され、転送長が決定された。実施の形態2では、さらに、データ転送を要求する要求元の数によっても、データ転送の発生頻度が推定され、転送長が決定される点が実施の形態1と異なる。実施の形態2では、この異なる点について説明する。
 ***構成の説明***
 図8を参照して、実施の形態2に係るデータ転送装置10の構成を説明する。
 実施の形態2では、周辺装置13は、2次記憶装置131と、インタフェース132である。
 インタフェース132は、Bluetooth(登録商標)、WiFi、CNAといったネットワークのインタフェースである。インタフェース132は、ネットワーク毎に設けられていてもよいし、複数のネットワークで共有された状態で設けられていてもよい。データ転送装置10は、インタフェース132を介して、外部装置50と接続される。
 転送部32は、機能構成として、第1転送部321と、第2転送部322とを備える。第1転送部321は、主記憶装置12と2次記憶装置131との間のデータ転送を行うソフトウェアであり、第2転送部322は、主記憶装置12とインタフェース132との間のデータ転送を行うソフトウェアである。
 ***動作の説明***
 図9から図11を参照して、実施の形態2に係るデータ転送装置10の動作を説明する。
 実施の形態2に係るデータ転送装置10の動作は、実施の形態2に係るデータ転送方法に相当する。また、実施の形態2に係るデータ転送装置10の動作は、実施の形態2に係るデータ転送プログラムの処理に相当する。
 実施の形態2では、データ転送装置10は、主記憶装置12と、2次記憶装置131及びインタフェース132との間で、DMA転送によりデータ転送を行う。ここでは、2次記憶装置131及びインタフェース132は、同一のバスを用いて主記憶装置12とデータ転送を行うものとする。
 図9を参照して、実施の形態2に係るOS20の動作を説明する。
 OS20では、ステップS301からステップS302の処理と、ステップS303からステップS307の処理と、ステップS308からステップS311の処理とが並行して実行される。
 ステップS301では、要求部21は、プロセッサ11で行われている処理と、同一のバスを用いるデータ転送を要求する要求元の数との少なくともいずれかが変わったかを判定する。
 要求部21は、少なくともいずれかが変わった場合、処理をステップS302に進める。一方、いずれも変わっていない場合、一定時間経過後、ステップS301を再び実行する。
 ステップS302では、要求部21は、プロセッサ11で行われている処理と、同一のバスを用いるデータ転送を要求する要求元の数とに応じて、DMA転送の転送長の変更要求を出力する。
 具体的には、要求部21は、プロセッサ11で行われている処理と、同一のバスを用いるデータ転送を要求する要求元の数とにより、データ転送の発生頻度を推定する。要求部21は、データ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長が短くなるように転送長を決定する。そして、要求部21は、決定した転送長を主記憶装置12に書き込むとともに、主記憶装置12における変更要求フラグに1を設定する。ここでは、第1転送部321と第2転送部322とについて別々に転送長が書き込まれ、第1転送部321と第2転送部322とについて別々に変更要求フラグが設定される。
 ステップS303からステップS307の処理は、図2のステップS103からステップS107の処理と同じである。
 ステップS308では、アクセス部22は、アプリケーション40又はOS20の内部処理から発行される、インタフェース132によって接続された外部装置50からのデータの取得要求の受け付け待ちをする。
 アクセス部22は、取得要求を受け付けた場合、処理をステップS309に進め、取得要求を受け付けていない場合、一定時間経過後、再びステップS308を実行する。
 ステップS309では、アクセス部22は、インタフェース132を有効に設定する。具体的には、アクセス部22は、インタフェース132の電源をオンにする。
 ステップS310では、アクセス部22は、インタフェース132からデータが主記憶装置12に転送されることを待つ。具体的には、アクセス部22は、DMAC14からDMA転送が完了したことを示す割り込みを受け付ける、又は、ポーリングといった手段によりDMAC14に定期的に確認することにより、データが主記憶装置12に転送されたことを確認する。アクセス部22は、データが主記憶装置12に転送されたことが確認されるまで、プロセッサ11に他の処理を実行させる。
 ステップS311では、アクセス部22は、ステップS308で受け付けた取得要求の要求元に転送されたデータを受け渡す。具体的には、アクセス部22は、主記憶装置12におけるデータを読み出してプロセス間通信により要求元に渡す。
 なお、アクセス部22は、データを受け渡すと、インタフェース132を無効にする。具体的には、アクセス部22は、インタフェース132の電源をオフにする。
 図10を参照して、実施の形態2に係る入出力部30の動作を説明する。
 入出力部30では、ステップS401からステップS405の処理と、ステップS406からステップS410の処理とが並行して実行される。
 ステップS401からステップS405の処理は、図3のステップS201からステップS205の処理と同じである。但し、ステップS401からステップS405の処理は、第1転送部321によって実行される。また、ステップS402及びステップS404では、第1転送部321用の変更要求フラグが用いられ、ステップS403では、第1転送部321用の転送長が用いられる。
 ステップS406では、第2転送部322は、インタフェース132が接続された外部装置50からデータを受信したか否かを判定する。
 第2転送部322は、データを受信した場合、処理をステップS407に進め、受信していない場合、一定時間経過後、再びステップS406を実行する。
 続いて、入出力部30は、受信したデータの転送が終わるまで、ステップS407からステップS410までの処理を繰り返し実行する。
 ステップS407では、設定部31は、ステップS302で要求部21から変更要求が出力されたか否かを判定する。具体的には、設定部31は、主記憶装置12における第2転送部322用の変更要求フラグに1が設定されている場合、変更要求が出力されたと判定する。
 設定部31は、変更要求が出力された場合、処理をステップS408に進め、変更要求が出力されていない場合、処理をステップS410に進める。
 ステップS408では、設定部31は、変更要求に含まれる転送長を用いるように転送部32に設定する。具体的には、設定部31は、主記憶装置12から第2転送部322用の転送長を読み出し、主記憶装置12における転送長変数に読み出した転送長を書き込む。
 ステップS409では、設定部31は、主記憶装置12の第2転送部322用の変更要求フラグに0を設定する。これにより、OS20の要求部21に変更要求の変更が完了したことが通知される。
 ステップS410では、転送部32は、転送要求をDMAC14に書き込む。具体的には、転送部32は、受信されたデータのうち転送が完了していない範囲の先頭のアドレスを転送元アドレスとし、転送先の主記憶装置12のアドレスを転送先アドレスとし、転送長変数に設定された値を転送長とする転送要求を書き込む。
 図11を参照して、実施の形態2に係るデータ転送装置10の動作例を説明する。
 図11では、データ転送装置10の起動時の動作が示されている。図11では、実線矢印が要求の流れを示しており、破線矢印がデータの流れを示している。ここでは、2次記憶装置131についてのデータ転送はセクタ単位で行われ、インタフェース132についてのデータ転送はバイト単位で行われる。
 処理A21,A22と、処理B21とは、図4に示す処理A11,A12と、処理B11と同様であるため、説明を省略する。
 処理A22の後、処理B22では、アクセス部22がアプリケーション40からインタフェース132を介して接続された外部装置50からデータを取得する取得要求を受け付ける(ステップS308)。そして、アクセス部22がインタフェース132を有効にする(ステップS309)。ここでは、第2転送部322用の転送長は1536バイトになっているものとする。つまり、第2転送部322用の転送長変数には初期値として1536バイトが設定されているものとする。
 この間に、転送部32によって2度のDMA転送が行われ、2次記憶装置131のセクタ9~10及びセクタ11~12が主記憶装置12に転送されたとする。
 次に、処理B23では、要求部21が第2転送部322についての転送長を512バイトに変更する変更要求を出力する(ステップS302)。つまり、要求部21は、同一のバスを用いるデータ転送を要求する要求元としてインタフェース132が追加され、要求元の数が増えたため、データ転送の発生頻度が多いと推定し、転送長を1536バイトよりも短い512バイトにすることを要求する。
 すると、処理A23では、設定部31が変更要求に応じて第2転送部322用の転送長変数に512バイトを設定する(ステップS407~S409)。そして、第2転送部322が変更後の転送長変数に従い、DMA転送を行う(ステップS410)。これにより、インタフェース132から512バイトのデータが主記憶装置12に転送される。
 その後、第1転送部321と第2転送部322とによりDMA転送が行われ(ステップS402~S405、ステップS407~S410)、2次記憶装置131のセクタ114まで主記憶装置12に転送され、インタフェース132が受信したデータが全て転送されたとする。
 すると、処理B24では、インタフェース132が受信したデータが全て転送されたため、アクセス部22がインタフェース132を無効にする(ステップS410)。これにより、データ転送装置10の電力消費が抑えられる。
 処理B25,処理A24は、図4に示す処理B14と、処理A13と同様であるため、説明を省略する。
 なお、処理B23では、要求部21は、第2転送部322の転送長だけを短くすることを要求した。しかし、要求部21は、第2転送部322の転送長だけでなく、第1転送部321の転送長も短くすることを要求してもよい。具体的には、要求部21は、第2転送部322の転送長を1536バイトよりも短い512バイトにすることを要求するとともに、第1転送部321の転送長を2セクタよりも短い1セクタにすることを要求してもよい。
 ***実施の形態2の効果***
 以上のように、実施の形態2に係るデータ転送装置10では、プロセッサ11で行われている処理だけでなく、データ転送を要求する要求元の数によっても、データ転送の発生頻度が推定され、転送長が決定される。そのため、データ転送を行う外部装置50が接続された場合には、より適切にデータ転送の発生頻度が推定でき、より適切に転送長を決定することができる。
 ***他の構成***
 <変形例5>
 実施の形態2では、データ転送を要求する要求元の数が増えると、転送長が短く設定された。しかし、変形例5として、一部の要求元の転送長を長くし、他の要求元の転送長を短くしてもよい。この変形例5について、実施の形態2と異なる点を説明する。
 変形例5では、要求部21は、事前に要求元毎に優先度を定めておく。変形例5では、インタフェース132の優先度が高と定められ、他の優先度が低と定められているとする。
 要求部21は、データ転送を要求する要求元の数が増えると、優先度が高である要求元についての転送長を長くし、優先度が低である要求元についての転送長を短くするように要求する。変形例5では、図11の処理B23では、要求部21が第1転送部321についての転送長を2セクタよりも短い1セクタに変更するとともに、第2転送部322についての転送長を1536バイトよりも長い3072バイトに変更する変更要求を出力する。
 以上のように、優先度が高い要求元についての転送長を長くすることで、優先度が高い要求元についてのデータ転送を早く完了させることが可能となる。
 <変形例6>
 実施の形態1と同じように、要求部21と、アクセス部22と、設定部31と、転送部32との機能がソフトウェアで実現された。しかし、実施の形態1の変形例3と同じように、要求部21と、アクセス部22と、設定部31と、転送部32との機能はハードウェアで実現されてもよい。また、実施の形態1の変形例4と同じように、要求部21と、アクセス部22と、設定部31と、転送部32とは、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
 10 データ転送装置、11 プロセッサ、12 主記憶装置、13 周辺装置、131 2次記憶装置、132 インタフェース、14 DMAC、20 OS、21 要求部、22 アクセス部、30 入出力部、31 設定部、32 転送部、321 第1転送部、322 第2転送部、40 アプリケーション、50 外部装置。

Claims (7)

  1.  主記憶装置と周辺装置との間のデータ転送を行うデータ転送装置であり、
     前記データ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長を短くすることを要求する要求部と、
     前記要求部によって要求された転送長に従い、主記憶装置と周辺装置との間のデータ転送を指示する転送部と
    を備えるデータ転送装置。
  2.  前記要求部は、プロセッサで行われている処理により、前記データ転送の発生頻度を推定する
    請求項1に記載のデータ転送装置。
  3.  前記要求部は、前記データ転送を要求する要求元の数により、前記データ転送の発生頻度を推定する
    請求項1又は2に記載のデータ転送装置。
  4.  前記要求部は、一部の前記要求元については他の前記要求元よりも転送長を長くすることを要求する
    請求項3に記載のデータ転送装置。
  5.  前記要求部は、前記データ転送装置の起動時において、前記データ転送装置のOS(Operating System)の初期化後は、前記OSの初期化中よりも、前記データ転送の発生頻度が多いと推定し、
     前記転送部は、前記データ転送装置の起動時に、指定データを前記周辺装置から前記主記憶装置に転送する
    請求項1から4までのいずれか1項に記載のデータ転送装置。
  6.  主記憶装置と周辺装置との間のデータ転送を行うデータ転送方法であり、
     前記データ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長を短くすることを要求し、
     要求された転送長に従い、主記憶装置と周辺装置との間のデータ転送を指示するデータ転送方法。
  7.  主記憶装置と周辺装置との間のデータ転送を行うデータ転送プログラムであり、
     前記データ転送の発生頻度が高いほど、1回の前記データ転送において転送されるデータ量を示す転送長を短くすることを要求する要求処理と、
     前記要求処理によって要求された転送長に従い、主記憶装置と周辺装置との間のデータ転送を指示する転送処理と
    をコンピュータに実行させるデータ転送プログラム。
PCT/JP2015/083156 2015-11-26 2015-11-26 データ転送装置、データ転送方法及びデータ転送プログラム WO2017090138A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016517579A JP5955489B1 (ja) 2015-11-26 2015-11-26 データ転送装置、データ転送方法及びデータ転送プログラム
PCT/JP2015/083156 WO2017090138A1 (ja) 2015-11-26 2015-11-26 データ転送装置、データ転送方法及びデータ転送プログラム
US15/765,454 US20180307640A1 (en) 2015-11-26 2015-11-26 Data transfer apparatus, data transfer method, and computer-readable medium
CN201580084614.5A CN108292284A (zh) 2015-11-26 2015-11-26 数据转送装置、数据转送方法和数据转送程序
DE112015007042.7T DE112015007042B4 (de) 2015-11-26 2015-11-26 Datenübertragungsvorrichtung, Datenübertragungsverfahren und Datenübertragungsprogramm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/083156 WO2017090138A1 (ja) 2015-11-26 2015-11-26 データ転送装置、データ転送方法及びデータ転送プログラム

Publications (1)

Publication Number Publication Date
WO2017090138A1 true WO2017090138A1 (ja) 2017-06-01

Family

ID=56421677

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/083156 WO2017090138A1 (ja) 2015-11-26 2015-11-26 データ転送装置、データ転送方法及びデータ転送プログラム

Country Status (5)

Country Link
US (1) US20180307640A1 (ja)
JP (1) JP5955489B1 (ja)
CN (1) CN108292284A (ja)
DE (1) DE112015007042B4 (ja)
WO (1) WO2017090138A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132497A (ja) * 1998-10-28 2000-05-12 Nec Corp Dma制御方法及び装置
JP2000187636A (ja) * 1998-12-22 2000-07-04 Nkk Corp Dma転送システム
JP2001223729A (ja) * 2000-02-10 2001-08-17 Sony Corp バスエミュレーション装置
JP2004094452A (ja) * 2002-08-30 2004-03-25 Fujitsu Ltd Dmaコントローラおよびdma転送方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573476A (ja) 1991-09-13 1993-03-26 Yokogawa Electric Corp Dma装置
JP2002024156A (ja) * 2000-07-04 2002-01-25 Mitsubishi Electric Corp Dmaコントローラおよびその転送方法
JP2003167645A (ja) * 2001-12-04 2003-06-13 Nec Yonezawa Ltd 情報処理装置
DE102004030737A1 (de) * 2004-06-25 2006-01-12 Degussa Ag Verfahren und Vorrichtung zur Extraktion von Stoffen aus silanmodifizierten Füllstoffen
US7398335B2 (en) 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132497A (ja) * 1998-10-28 2000-05-12 Nec Corp Dma制御方法及び装置
JP2000187636A (ja) * 1998-12-22 2000-07-04 Nkk Corp Dma転送システム
JP2001223729A (ja) * 2000-02-10 2001-08-17 Sony Corp バスエミュレーション装置
JP2004094452A (ja) * 2002-08-30 2004-03-25 Fujitsu Ltd Dmaコントローラおよびdma転送方法

Also Published As

Publication number Publication date
CN108292284A (zh) 2018-07-17
DE112015007042B4 (de) 2022-09-15
JP5955489B1 (ja) 2016-07-20
DE112015007042T5 (de) 2018-08-23
JPWO2017090138A1 (ja) 2017-11-24
US20180307640A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
TWI493350B (zh) 用於周邊組件之高優先權命令佇列
KR102353782B1 (ko) NVMe 기반 솔리드 스테이트 드라이브에서 읽기 버퍼 사이즈 요구량을 감소하는 방법
US11163710B2 (en) Information processor with tightly coupled smart memory unit
KR20160013351A (ko) 데이터 저장 장치 및 그것의 데이터 처리 방법
JP2009032243A (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
TW201738763A (zh) 使用nvme介面存取元件的同時核心模式和使用者模式的方法、非暫時性電腦可讀取媒體及主機電腦系統
US9690720B2 (en) Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device
US11907814B2 (en) Data path for GPU machine learning training with key value SSD
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
JP2021515318A (ja) NVMeベースのデータ読み取り方法、装置及びシステム
JP7470685B2 (ja) 集積回路中の算出ユニットをプログラムおよび制御すること
TW202011203A (zh) 指令處理方法及使用所述方法的儲存控制器
JP5955489B1 (ja) データ転送装置、データ転送方法及びデータ転送プログラム
US20130219095A1 (en) Circuit and method for pipe arbitration using available state information and arbitration
US8706923B2 (en) Methods and systems for direct memory access (DMA) in-flight status
US11360529B2 (en) Signal processing system, signal processing circuit, and reset control method
US9110856B2 (en) Interface control apparatus, data storage apparatus and method for interface control
US10430291B1 (en) Effective method to backup VMs in larger VM infrastructure
JP2011008489A (ja) 集積回路システム、データ書き込み方法、データ読み出し方法
US20180336147A1 (en) Application processor including command controller and integrated circuit including the same
US11537542B1 (en) Direct memory access circuitry and method
US11003474B2 (en) Semiconductor device for providing a virtualization technique
US8296481B2 (en) Device and method for improving transfer efficiency of odd number of data blocks
JP2016154001A (ja) 画像処理装置、画像処理用データ転送制御方法、及び画像処理用データ転送制御プログラム
CN116225318A (zh) 命令调度方法、闪存控制器、闪存设备及存储介质

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2016517579

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15909257

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15765454

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112015007042

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15909257

Country of ref document: EP

Kind code of ref document: A1