WO2011117986A1 - データ転送装置およびデータ転送方法 - Google Patents

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

Info

Publication number
WO2011117986A1
WO2011117986A1 PCT/JP2010/055137 JP2010055137W WO2011117986A1 WO 2011117986 A1 WO2011117986 A1 WO 2011117986A1 JP 2010055137 W JP2010055137 W JP 2010055137W WO 2011117986 A1 WO2011117986 A1 WO 2011117986A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
transfer
unit
time
data transfer
Prior art date
Application number
PCT/JP2010/055137
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 EP10848379.3A priority Critical patent/EP2551777B1/en
Priority to JP2012506708A priority patent/JP5573943B2/ja
Priority to CN201080065625.6A priority patent/CN102812447B/zh
Priority to PCT/JP2010/055137 priority patent/WO2011117986A1/ja
Publication of WO2011117986A1 publication Critical patent/WO2011117986A1/ja
Priority to US13/624,337 priority patent/US9015369B2/en

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

Definitions

  • the present invention relates to a data transfer device and a data transfer method.
  • burst transfer is one of the techniques for transferring data at high speed in a data processing apparatus.
  • this burst transfer technology when another data transfer request with high priority is output during data transfer, the burst width of the data being transferred is set until the transfer of another data with high priority is started.
  • calculate the time that the data transfer is expected to be completed and the time that is expected to be required to transfer that data Based on this, a technique for dynamically adjusting the time division ratio of data transfer is known.
  • the memory during burst transfer cannot receive other accesses. Therefore, even if the processor accesses the memory during burst transfer, the processor must wait until the burst transfer is completed. When the amount of data to be transferred is large, burst transfer to the memory is repeatedly performed. For this reason, depending on the access timing of the processor, the standby time of the processor may be further increased, resulting in a problem that the effective performance of the processor is lowered.
  • the burst width which is the size of data transferred in one burst transfer
  • the time required for one burst transfer is shortened. Therefore, while the burst transfer is repeatedly performed, the number of times the memory returns to a state where it can accept another access increases, so that the processor access to the memory is easily accepted.
  • the smaller the burst width the greater the number of burst transfers until the transfer of the transfer target data is completed. Accordingly, the delay time until the data is output from the memory and the time required for precharging increase, so that the performance of the processor accessing the memory decreases.
  • the processor accesses the memory during the burst transfer, the processor waits until the end of the burst transfer, so that it is impossible to prevent a decrease in the effective performance of the processor.
  • An object of the present invention is to provide a data transfer apparatus and a data transfer method capable of preventing a decrease in the effective performance of a processor due to burst transfer.
  • a processor In order to solve the above-described problems and achieve the object, a processor, first, second, and third storage units, a calculation unit, a determination unit, a transfer unit, and a processing unit are provided.
  • the processor generates data to be processed.
  • the first storage unit stores data generated by the processor.
  • the second storage unit stores information related to the time required for the processing unit to perform data processing.
  • the calculation unit calculates a time allowed for the transfer unit to transfer data based on the information regarding the time stored in the second storage unit.
  • the third storage unit stores a predetermined value of the burst width set based on the access performance when the processor accesses the first storage unit.
  • the determination unit determines a burst width when the transfer unit transfers data based on an estimated time required for the transfer unit to transfer the data.
  • the determination unit has a burst width equal to or greater than a predetermined value of the burst width stored in the third storage unit, and a range in which the data transfer ends within a time allowed for the data transfer calculated by the calculation unit Thus, the burst width is determined as close to the predetermined value as possible.
  • the transfer unit performs burst transfer of data from the first storage unit to the processing unit with the burst width determined by the determination unit.
  • the processing unit processes the data generated by the processor.
  • FIG. 1 is a block diagram illustrating a data transfer apparatus according to Embodiment 1.
  • FIG. 3 is a flowchart illustrating a data transfer method according to the first embodiment.
  • FIG. 10 is a block diagram illustrating a configuration of an apparatus for determining a lower limit value of a burst width in the second embodiment.
  • FIG. 10 is a diagram illustrating an example of a program for measuring data transfer performance in the second embodiment.
  • 11 is a chart showing an example of measurement results of data transfer performance in Example 2.
  • FIG. 10 is a characteristic diagram illustrating an example of a measurement result of data transfer performance in the second embodiment.
  • 10 is a flowchart illustrating a method for determining a lower limit value of a burst width in the second embodiment.
  • FIG. 10 is a block diagram illustrating a configuration of an apparatus that collects information related to a data processing time by an image processing unit in the second embodiment.
  • FIG. 10 is a diagram illustrating an example of a program that collects information regarding a data processing time by an image processing unit in the second embodiment.
  • 11 is a chart showing an example of a result of collecting information related to data processing time by the image processing unit in the second embodiment.
  • 10 is a flowchart illustrating a method for collecting information related to data processing time by the image processing unit in the second embodiment.
  • FIG. 10 is a block diagram illustrating a data transfer apparatus according to a second embodiment.
  • FIG. 10 is a sequence diagram illustrating an operation of the data transfer apparatus according to the second embodiment.
  • FIG. 10 is a flowchart illustrating a method for calculating a transfer allowable time in the data transfer method according to the second embodiment.
  • 10 is a flowchart illustrating a method for determining a data transfer mode in the data transfer method according to the second embodiment. It is a flowchart which shows the continuation of FIG.
  • FIG. 10 is a diagram illustrating a method for calculating a data transfer time in the data transfer method according to the second embodiment.
  • 10 is a flowchart illustrating a method for determining a data transfer mode when performing a plurality of transfers in the data transfer method according to the second embodiment.
  • FIG. 10 is a block diagram illustrating a data transfer apparatus according to a third embodiment.
  • 12 is a flowchart illustrating a statistical information collection operation by a device driver in the data transfer method according to the third embodiment.
  • 12 is a flowchart illustrating an operation of a statistical information collection unit in the data transfer method according to the third embodiment.
  • 10 is a chart illustrating an example of data transfer unit statistical information in the third embodiment.
  • 10 is a flowchart illustrating a data transfer time calculation method in the data transfer method according to the third embodiment.
  • the burst width at the time of burst transfer of data is equal to or greater than a predetermined value of a burst width set in advance based on the access performance of the processor, and as much as possible within a range where data transfer is completed within an allowable time. A value close to a predetermined value of the width is determined.
  • FIG. 1 is a block diagram of the data transfer apparatus according to the first embodiment.
  • the data transfer apparatus includes a processor 1, a first storage unit 2, a second storage unit 3, a calculation unit 4, a third storage unit 5, a determination unit 6, a transfer unit 7, and a processing unit. 8 is provided.
  • the processor 1 generates data to be processed.
  • the first storage unit 2 stores data generated by the processor 1.
  • the second storage unit 3 stores information related to the time required for the processing unit 8 to perform data processing. Information regarding the time required for the processing unit 8 to perform data processing is set in advance.
  • the calculation unit 4 calculates the time allowed for the transfer unit 7 to transfer data based on the information about the time stored in the second storage unit 3.
  • the third storage unit 5 stores a predetermined value of the burst width. The predetermined value of the burst width is set in advance based on the access performance when the processor 1 accesses the first storage unit 2.
  • the determination unit 6 determines the burst width when the transfer unit 7 transfers data based on the estimated time required for the transfer unit 7 to transfer the data.
  • the determination unit 6 has a burst width that is equal to or greater than a predetermined value of the burst width stored in the third storage unit 5 and within a time period for which data transfer is allowed for the data transfer calculated by the calculation unit 4.
  • the burst width is determined to be as close to the predetermined value as possible within the end range.
  • the transfer unit 7 performs burst transfer of data from the first storage unit 2 to the processing unit 8 with the burst width determined by the determination unit 6.
  • the processing unit 8 processes the data generated by the processor 1.
  • FIG. 2 is a flowchart of the data transfer method according to the first embodiment.
  • the transfer unit 7 performs burst transfer of data from the first storage unit 2 to the processing unit 8 based on the access performance when the processor 1 accesses the first storage unit 2 in advance.
  • a predetermined value of the burst width is obtained.
  • the predetermined value of the burst width is stored in the third storage unit 5 (step S1).
  • information relating to the time required for the processing unit 8 to perform data processing is stored in the second storage unit 3 (step S2). Either step S1 or step S2 may be processed first.
  • Data generated by the processor 1 is stored in the first storage unit 2.
  • the time required for the data processing stored in the second storage unit 3 by the calculation unit 4 Based on the information, a time allowed for data transfer is calculated (step S3).
  • the burst width when the transfer unit 7 transfers data from the first storage unit 2 to the processing unit 8 is determined by the determination unit 6.
  • the burst width is determined based on the estimated time required for the transfer unit 7 to transfer the data.
  • the burst width is not less than a predetermined value of the burst width stored in the third storage unit 5 and can be completed within the time allowed for the data transfer calculated in step S3.
  • the burst width is determined as close to a predetermined value as possible (step S4).
  • Data is transferred from the first storage unit 2 to the processing unit 8 by the transfer unit 7 with the burst width determined in step S4. Then, when data processing is performed by the processing unit 8, a series of processing ends.
  • the burst width is determined to be not less than a predetermined value set based on the access performance of the processor 1 with respect to the first storage unit 2 and as close to the predetermined value of the burst width as possible.
  • the larger the burst width the higher the data transfer performance by burst transfer, but the access performance of the processor 1 with respect to the first storage unit 2 becomes lower.
  • the reverse is true when the burst width is small. Therefore, by determining the burst width as in the first embodiment, the access performance of the processor 1 with respect to the first storage unit 2 and the data transfer performance of the transfer unit 7 can be balanced, so that the effective performance of the processor is reduced. Can be prevented.
  • Example 2 the data transfer apparatus and the data transfer method according to the first embodiment are applied to an apparatus and a method for performing image processing, for example.
  • a method for determining the lower limit value of the burst width as the predetermined value of the burst width will be described.
  • a method for collecting information related to the time required for the image processing unit as the processing unit to perform data processing will be described.
  • the configuration of the data transfer apparatus and the data transfer method according to the second embodiment will be described.
  • a plurality of sizes are prepared as burst widths.
  • FIG. 3 is a block diagram showing the configuration of an apparatus for determining the lower limit of burst width.
  • FIG. 4 is a diagram illustrating an example of a program for measuring data transfer performance.
  • FIG. 5 is a chart showing an example of measurement results of data transfer performance.
  • FIG. 6 is a characteristic diagram showing an example of the measurement result of the data transfer performance.
  • a design apparatus 11 and an actual machine (or simulator) 12 are prepared.
  • the actual machine (or simulator) 12 is an actual machine
  • the actual machine (or simulator) 12 includes a processor, a memory as a first storage unit, a data transfer unit as a transfer unit, and an image processing unit as a processing unit. (See FIG. 12).
  • the real machine (or simulator) 12 is a simulator
  • the real machine (or simulator) 12 includes a processor, a memory as a first storage unit, a data transfer unit as a transfer unit, and an image processing unit as a processing unit. Is provided.
  • the measurement program 13 is created by the designer using the design device 11. For example, as shown in FIG. 4, the measurement program 13 is sent from the processor to the memory while the data transfer unit performs burst transfer of data from the memory to the image processing unit with various burst widths. It is created to make a lot of access.
  • the actual machine (or simulator) 12 executes the measurement program 13 and returns the measurement data 14 obtained as a result to the design apparatus 11.
  • the measurement data 14 includes data representing the transfer performance of the processor and data representing the transfer performance of the data transfer unit.
  • the transfer performance of the data transfer unit may be evaluated by the time required for the data transfer unit to read an arbitrary amount of data from the memory.
  • data representing the transfer performance of the data transfer unit data for the time required for the data transfer unit to read an arbitrary amount of data from the memory is obtained for each burst width.
  • the transfer performance of the processor may be evaluated by the time required for the processor to read / write an arbitrary amount of data to / from the memory.
  • data for the time required for the processor to read / write an arbitrary amount of data to / from the memory is obtained for each burst width.
  • the shorter the time required to read / write data the better the performance.
  • the design device 11 includes a lower limit value determination unit 15 for the burst width.
  • the lower limit value determination unit 15 of the burst width determines the lower limit value of the burst width based on the measurement data 14, for example, according to the flowchart shown in FIG.
  • the burst width lower limit determination unit 15 may calculate the transfer performance of the processor and the transfer performance of the data transfer unit for each burst width, and may calculate the sum thereof. For example, as shown in FIG. 6, normally, in an environment where the processor accesses a large amount of memory while the data transfer unit performs burst transfer of data from the memory to the image processing unit, as the burst width increases, The transfer performance of the data transfer unit is improved.
  • the burst width lower limit determination unit 15 may determine the burst width that maximizes the sum of the transfer performance of the processor and the transfer performance of the data transfer unit as the lower limit value of the burst width.
  • the lower limit value of the burst width determined by the lower limit value determination unit 15 of the burst width is recorded in the actual machine 16 that is a product.
  • FIG. 7 is a flowchart showing a method for determining the lower limit value of the burst width.
  • the designer first creates a measurement program 13 using the design apparatus 11 (step S11).
  • the designer executes the measurement program 13 on the actual machine (or simulator) 12 (step S12).
  • the design apparatus 11 acquires measurement data 14 as a measurement result from the actual machine (or simulator) 12 (step S13).
  • the burst width lower limit determining unit 15 calculates the transfer performance of the processor and the transfer performance of the data transfer unit for each burst width (step S14).
  • the lower limit value determination unit 15 of the burst width calculates the sum of the transfer performance of the processor and the transfer performance of the data transfer unit for each burst width, for example.
  • the lower limit value determination unit 15 of the burst width determines the burst width that maximizes the sum of the transfer performances as the lower limit value of the burst width (step S15).
  • a series of processes for determining the lower limit value of the burst width is completed.
  • FIG. 8 is a block diagram illustrating a configuration of an apparatus that collects information related to data processing time by the image processing unit.
  • FIG. 9 is a diagram illustrating an example of a program that collects information related to data processing time by the image processing unit.
  • FIG. 10 is a table showing an example of a result of collecting information related to data processing time by the image processing unit.
  • a design device 21 and a real machine (or simulator) 22 are prepared.
  • the actual machine (or simulator) 22 is the same as described in “Description of method for determining lower limit value of burst width” described above.
  • the measurement program 23 is created by the designer using the design device 21. For example, as shown in FIG. 9, the measurement program 23 is created so that the actual machine (or simulator) 22 performs drawing processing with combinations of various screen sizes (drawing sizes) and drawing modes.
  • the drawing mode includes modes such as two-dimensional display (2D) and three-dimensional display (3D).
  • the real machine (or simulator) 22 executes the measurement program 23, and measures the time from when the image processing unit starts drawing processing to a combination of various screen sizes (drawing sizes) and drawing modes.
  • the actual machine (or simulator) 22 returns the processing time information collected as a result to the design apparatus 21 as statistical information 24.
  • the statistical information 24 includes data obtained by statistically processing the time required for the image processing unit to perform the drawing process for each combination of various screen sizes (drawing sizes) and drawing modes. It is out.
  • the image processing unit performs multiple drawing processes for each combination of various screen sizes (drawing sizes) and drawing modes, and averages the time required for the multiple drawing processes. It may be.
  • the statistical information 24 is recorded in the actual machine 25 that is a product.
  • the statistical information 24 may be acquired from the design information of the image processing unit.
  • FIG. 11 is a flowchart showing a method of collecting information related to the data processing time by the image processing unit.
  • the designer first creates a measurement program 23 using the design device 21 (step S21).
  • the designer executes the measurement program 23 on the actual machine (or simulator) 22 (step S22).
  • the design apparatus 21 acquires the statistical information 24 as a measurement result from the actual machine (or simulator) 22 (step S23).
  • a series of processes for collecting information related to the data processing time by the image processing unit is completed.
  • FIG. 12 is a block diagram of the data transfer apparatus according to the second embodiment.
  • the data transfer apparatus includes a processor 31, a memory 32 as first, second, and third storage units, a transfer allowable time calculation unit 33 as a calculation unit, and a data transfer mode determination as a determination unit.
  • the processor 31, the memory 32, the data transfer unit 35, and the image processing unit 36 are connected to a bus 37.
  • the processor 31 is, for example, a CPU (Central Processing Unit) and executes an operating system (Operating System, OS) 38.
  • OS Operating System
  • the device driver 39 controls the data transfer unit 35 and the image processing unit 36.
  • the processor 31 executes application software that performs image processing and image display (not shown) to generate drawing data.
  • the memory 32 stores the drawing data 40 generated by the processor 31.
  • the memory 32 stores the lower limit value 41 of the burst width described in the above-mentioned “Description of the method for determining the lower limit value of the burst width”.
  • the memory 32 stores the statistical information 24 described in “Description of method for collecting information related to data processing time by image processing unit” described above.
  • areas in which the drawing data 40, the statistical information 24, and the lower limit value 41 of the burst width are stored correspond to a first storage unit, a second storage unit, and a third storage unit, respectively.
  • the memory 32 includes, for example, a readable / writable DRAM (Dynamic Random Access Memory) for storing the drawing data 40, and a read-only ROM (Read Only Memory) for storing the lower limit 41 of the burst width and the statistical information 24, for example. Also good.
  • a readable / writable DRAM Dynamic Random Access Memory
  • a read-only ROM Read Only Memory
  • the permissible transfer time calculation unit 33 calculates the time allowed for the data transfer unit 35 to transfer data based on the statistical information 24. The calculation method will be described later.
  • the data transfer mode determination unit 34 determines a mode (data transfer mode) in which the data transfer unit 35 transfers data based on the allowable time calculated by the transfer allowable time calculation unit 33. A plurality of data transfer modes are prepared according to combinations of burst widths and burst transfer intervals. The determination method will be described later.
  • the data transfer unit 35 is, for example, a DMA (Direct Memory Access) controller.
  • the data transfer unit 35 performs burst transfer of the drawing data 40 from the memory 32 to the image processing unit 36 in the data transfer mode determined by the data transfer mode determination unit 34.
  • the image processing unit 36 performs a drawing process on the drawing data transferred from the memory 32.
  • the image processing unit 36 includes a frame memory (not shown), and stores the drawn image data in the frame memory.
  • the image data stored in the frame memory is sent to a display device such as a liquid crystal panel (not shown).
  • a mobile phone may include the data transfer apparatus according to the second embodiment.
  • FIG. 13 is a sequence diagram illustrating the operation of the data transfer apparatus according to the second embodiment.
  • the application software 46 instructs the operating system 38 to start a device such as the image processing unit 36 when performing image processing or image display (step S31).
  • the application software 46 passes to the operating system 38 the data to be transferred, the start parameters of the image processing unit 36, and the deadline when the processing in the image processing unit 36 is completed.
  • the activation parameters of the image processing unit 36 include parameters such as a screen size (drawing size) and a drawing mode.
  • the operating system 38 calculates a time allowed for data transfer by the data transfer unit 35 (transfer allowable time) based on the statistical information 24 by the transfer allowable time calculation unit 33 (step S32).
  • the operating system 38 determines the data transfer mode based on the transfer allowable time by the data transfer mode determination unit 34 (step S33).
  • the operating system 38 activates the data transfer unit 35 by the device driver 39 (step S34).
  • the data transfer unit 35 performs burst transfer of drawing data from the memory 32 to the image processing unit 36 in the data transfer mode determined in step S33 (step S35).
  • the image processing unit 36 performs a drawing process on the transferred drawing data (step S36).
  • the application software 46 continues processing (step S39).
  • the operating system 38 performs the end process (step S38), and ends the series of operations.
  • FIG. 14 is a flowchart of a method for calculating the allowable transfer time in the data transfer method according to the second embodiment.
  • the allowable transfer time calculation unit 33 first searches the statistical information 24 to check whether the statistical information 24 includes information close to the activation parameter of the image processing unit 36 (step S41). .
  • the transfer allowable time calculation unit 33 calculates the processing time corresponding to the information that matches the activation parameter from the statistical information 24. Obtained as the processing time of the image processing unit 36 (step S45).
  • step S42 Although there is no information that matches the activation parameter in the statistical information 24 (step S42: No), there may be close information that can be approximated.
  • step S43: Yes the transfer allowable time calculation unit 33 acquires the processing time corresponding to the approximate information that can be approximated from the statistical information 24. Then, the allowable transfer time calculation unit 33 formulates, for example, a part that can be formulated (a part that changes in proportion or inversely with respect to a specific parameter) using the processing time corresponding to the close information that can be approximated.
  • the processing time of the image processing unit 36 is estimated. For the portion that cannot be formulated, for example, the allowable transfer time calculation unit 33 selects the estimated time for the processing time of the image processing unit 36 from the information with the closest combination of parameters (step S46).
  • the transfer allowable time calculation unit 33 calculates the transfer allowable time.
  • the allowable transfer time is a time obtained by subtracting the processing time of the image processing unit 36 from the time from the current time to the time of the deadline when the processing in the image processing unit 36 is completed (step S47).
  • the current time is, for example, the time when the processor 31 generates data to be transferred to the image processing unit 36.
  • the deadline time at which the processing in the image processing unit 36 is completed is determined by the image display interval. For example, in the case of an apparatus that displays an image 30 times per second, the image display interval is 1/30 second. In this case, the deadline at the timing when the processing in the image processing unit 36 is completed comes every 1/30 seconds.
  • the transfer allowable time calculation unit 33 sets the transfer allowable time to zero (step S44). If the allowable transfer time is zero, it means that data transfer is started immediately, that is, data is transferred at the fastest speed.
  • FIG. 15 is a flowchart illustrating a data transfer mode determination method in the data transfer method according to the second embodiment.
  • FIG. 16 is a continuation of FIG.
  • FIG. 17 is a diagram for explaining a method for calculating the data transfer time by the data transfer unit.
  • the transfer allowable time is calculated by the transfer allowable time calculation unit 33 as described in the above “calculation method of transfer allowable time” (step S51)
  • the data transfer mode determination unit 34 The process for determining the data transfer mode is started.
  • the data transfer mode determination unit 34 first sets the burst width to the maximum and sets the burst transfer interval to the minimum.
  • the data transfer mode determination unit 34 calculates the time (transfer time) required for the data transfer unit 35 to transfer the drawing data 40 from the memory 32 to the image processing unit 36 according to the following equation (step S52).
  • Transfer time ([delay time] + [1 data output time] ⁇ [burst width] + [x]) ⁇ [number of transfers]
  • the delay time is a time from when the data transfer unit 35 designates an address to the memory 32 to request data reading until the data is actually output from the memory 32.
  • the output time of one data is a time required for the memory 32 to output one data.
  • x is the larger of the access interval and the precharge time.
  • the precharge time is the time required for precharge.
  • the delay time, the data output time, and the precharge time can be acquired as design information of the memory 32.
  • the access interval is the time from when the burst transfer ends until the data transfer unit 35 next requests the memory 32 to read data.
  • the access interval can be acquired as design information of the data transfer unit 35.
  • the number of transfers is a value obtained by dividing the amount of data to be transferred by the burst width.
  • step S52 If the transfer time calculated in step S52 does not fit in the allowable transfer time calculated in step S51 (step S53: No), the data transfer mode determination unit 34 ends the process of determining the data transfer mode. In this case, for example, the moving image is reproduced with so-called frame dropping, so that the image is not displayed smoothly. If the transfer time calculated in step S52 falls within the allowable transfer time calculated in step S51 (step S53: Yes), the data transfer mode determination unit 34 sets a smaller burst width (step S54). If the burst width reduced by one level is not smaller than the lower limit value of the burst width (step S55: No), the data transfer mode determination unit calculates the transfer time again under the conditions of the burst width reduced by one level and the minimum burst transfer interval. (Step S56).
  • step S57: Yes When the transfer time calculated in step S56 falls within the transfer allowable time calculated in step S51 (step S57: Yes), the data transfer mode determination unit 34 repeats steps S54 to S57 while reducing the burst width by one step. . In the course of repetition, the burst width that is reduced by one step is eventually smaller than the lower limit value of the burst width (step S55: Yes), or the transfer time does not fall within the allowable transfer time (step S57: No). In that case, as shown in FIG. 16, the data transfer mode determination unit 34 sets a burst width that is one step larger than the burst width at that time (step S58).
  • step S59: No when the burst transfer interval cannot be changed (step S59: No), the data transfer mode determination unit 34 ends the process of determining the data transfer mode. If the burst transfer interval can be changed (step S59: Yes), the data transfer mode determination unit 34 sets a burst transfer interval that is one step larger (step S60). The data transfer mode determination unit 34 calculates the transfer time again under the conditions of the burst width set in step S58 and the burst transfer interval increased by one step (step S61).
  • step S62 When the transfer time calculated in step S61 falls within the allowable transfer time calculated in step S51 (step S62: Yes), the data transfer mode determination unit 34 performs steps S60 to S62 while increasing the burst transfer interval by one step. repeat. If the transfer time does not fall within the allowable transfer time during the repetition (step S62: No), the data transfer mode determination unit 34 sets a burst transfer interval that is one step smaller than the burst transfer interval at that time (step S63). . Then, the data transfer mode determination unit 34 ends the series of processes.
  • the burst width and burst transfer interval may be determined as follows.
  • FIG. 18 is a flowchart of a data transfer mode determination method when a plurality of transfers are performed in the data transfer method according to the second embodiment.
  • the data transfer mode determination unit 34 sets a time constraint (deadline) for data transfer to be performed in the future (step S71: Yes), and when another data transfer is being performed (step S72: Yes), data
  • the transfer mode determination unit 34 acquires a deadline of another data transfer currently being executed (step S73).
  • the data transfer mode determination unit 34 assigns a higher priority in order from the data transfer that must be completed earlier.
  • the priority of data transfer without a deadline is the lowest.
  • the data transfer mode determination unit 34 determines the amount of untransferred data and the burst width and burst transfer interval set in the data transfer unit for data transfer with higher priority than data transfer to be performed, that is, data transfer closer to the deadline. To get.
  • the data transfer mode determination unit 34 calculates the remaining transfer time based on the untransferred data amount, burst width, and burst transfer interval for data transfer closer to the deadline (step S74).
  • the data transfer mode determination unit 34 subtracts the remaining transfer time of data transfer closer to the deadline calculated in step S74 from the transfer allowable time of data transfer to be performed from now on, and sets a new transfer allowable time of data transfer to be performed from now on. To do.
  • the data transfer mode determination unit 34 determines the burst width and burst transfer interval based on the new transfer allowable time for data transfer to be performed in the future (step S75).
  • step S71: Yes When a deadline is set for data transfer to be performed in the future (step S71: Yes) and no other data transfer is executed (step S72: No), the data transfer mode determination unit 34 determines that “ As described in “Mode Determination Method”, the burst width and the burst transfer interval are determined for the data transfer to be performed (step S75). On the other hand, if no deadline is set for data transfer to be performed in the future (step S71: No), the data transfer mode determination unit 34 determines the burst width as the lower limit value of the burst width for data transfer to be performed from now on, and performs burst transfer. The interval is determined to be the maximum (step S76).
  • the burst width is determined to be not less than the lower limit value of the burst width and as close to the lower limit value of the burst width as possible.
  • the burst transfer interval is determined to be as large as possible within a range in which the data transfer is completed within the time allowed for the transfer. That is, the data transfer unit 35 performs burst transfer so that the memory 32 and the bus 37 are released as much as possible within a range where the data processing in the image processing unit 36 is completed by the deadline of the processing. Therefore, it is possible to prevent the effective performance of the processor from being deteriorated.
  • the present invention is not limited to an apparatus and method for performing image processing, and can be applied to an apparatus and method for processing audio data and other data.
  • Example 3 statistical information of the data transfer unit and the image processing unit is collected during the operation of the data transfer device in the second embodiment.
  • the data transfer time by the data transfer unit can be estimated based on the statistical information of the data transfer unit collected during the operation of the data transfer device.
  • This method of estimating the transfer time can be applied when, for example, the transfer time is estimated based on the above-described transfer time formula, and the error from the actual transfer time is large due to some factor such as a disturbance.
  • a configuration different from that of the second embodiment will be described.
  • symbol as Example 2 is attached
  • FIG. 19 is a block diagram of the data transfer apparatus according to the third embodiment.
  • the statistical information collecting unit 51 is realized by the processor 31 executing the operating system 38.
  • the statistical information collection unit 51 collects the operation information of the data transfer unit 35 and the operation information of the image processing unit 36 from the device driver 39 during the operation of the data transfer device, and the statistical information of the data transfer unit 35 and the image processing unit 36. Create statistical information.
  • the operation of the statistical information collection unit 51 will be described later.
  • the device driver 39 records the operation information of the data transfer unit 35 and the operation information of the image processing unit 36 during the operation of the data transfer device. The operation of the device driver 39 will be described later.
  • the memory 32 stores data transfer unit statistical information 52 and image processing unit statistical information 53.
  • the data transfer unit statistical information 52 and the image processing unit statistical information 53 are updated as needed by the statistical information collection unit 51 during operation of the data transfer apparatus. Note that the memory 32 does not store processing time information obtained from the statistical information 24 and the design information of the image processing unit 36 in the second embodiment.
  • the transfer allowable time calculation unit 33 uses the image processing unit statistical information 53 when calculating the transfer allowable time allowed for the data transfer unit 35 to transfer data.
  • the data transfer mode determination unit 34 uses the lower limit 41 of the burst width and the data transfer unit statistical information 52 when determining the data transfer mode.
  • the data transfer mode determination unit 34 acquires the data transfer time of the data transfer unit 35 using the data transfer unit statistical information 52 when determining the data transfer mode.
  • Other configurations are the same as those of the second embodiment. Instead of creating statistical information of the image processing unit 36 during the operation of the data transfer device, statistical information acquired from the design information of the image processing unit 36 as in the second embodiment, or statistical information acquired in advance by an actual machine or a simulator. Information may be used.
  • FIG. 20 is a flowchart showing a statistical information collecting operation by the device driver.
  • the device driver 39 records the start parameter and start time of the data transfer unit 35 (step S81).
  • the device driver 39 activates the data transfer unit 35 (step S82).
  • the device driver 39 records the end time of the data transfer by the data transfer unit 35 (step S83).
  • the device driver 39 when creating statistical information of the image processing unit 36, the device driver 39 records the activation parameter and activation time of the image processing unit 36 (step S84). Next, the device driver 39 activates the image processing unit 36 (step S85). When the data processing by the image processing unit 36 is completed, when creating statistical information of the image processing unit 36, the device driver 39 records the end time of the data processing by the image processing unit 36 (step S86). Next, the device driver 39 sends the recorded information to the statistical information collection unit 51 (step S87).
  • step S84 and step S86 may be omitted.
  • FIG. 21 is a flowchart showing the operation of the statistical information collection unit.
  • FIG. 22 is a chart illustrating an example of the data transfer unit statistical information.
  • the statistical information collection unit 51 calculates the operating time of the data transfer unit 35 based on the information sent from the device driver 39 (step S91).
  • step S92 Yes
  • the statistical information collection unit 51 sets a transfer time corresponding to this parameter in the data transfer unit statistical information 52.
  • the transfer time for the past several times is updated to an average value (step S93).
  • step S92 If there is no matching activation parameter in the data transfer unit statistical information 52 (step S92: No), the statistical information collection unit 51 adds the parameter and the transfer time to the data transfer unit statistical information 52 in association with each other (step S92). S97). Thereby, for example, as shown in FIG. 22, data of burst width, burst transfer interval, transferred data size and transfer time is obtained.
  • the statistical information collection unit 51 calculates the operation time of the image processing unit 36 based on the information sent from the device driver 39 (step S94).
  • step S95: Yes when there is a matching activation parameter in the image processing unit statistical information 53 at this time (step S95: Yes), the statistical information collecting unit 51 sets a processing time corresponding to this parameter in the image processing unit statistical information 53. The processing time for the past several times is updated to an average value (step S96). If there is no matching activation parameter in the image processing unit statistical information 53 (step S95: No), the statistical information collecting unit 51 adds the parameter and the processing time in association with each other in the image processing unit statistical information 53 (step S95). S98).
  • FIG. 23 is a flowchart of a data transfer time calculation method in the data transfer method according to the third embodiment.
  • the data transfer mode determination unit 34 first searches the data transfer unit statistical information 52, and determines whether or not the data transfer unit statistical information 52 includes information close to the activation parameter of the data transfer unit 35. (Step S101). When the data transfer unit statistical information 52 includes information that matches the activation parameter of the data transfer unit 35 (step S102: Yes), the data transfer mode determination unit 34 changes the data transfer unit statistical information 52 to information that matches the activation parameter. The corresponding transfer time is acquired as the transfer time of the data transfer unit 35 (step S105).
  • step S102 Although there is no information in the data transfer unit statistical information 52 that matches the activation parameter (step S102: No), there may be close information that can be approximated.
  • step S ⁇ b> 103: Yes the data transfer mode determination unit 34 acquires the transfer time corresponding to the approximate information that can be approximated from the data transfer unit statistical information 52. Then, the data transfer mode determination unit 34 estimates the transfer time of the data transfer unit 35 using the transfer time corresponding to the approximate information that can be approximated (step S106).
  • the data transfer mode determination unit 34 determines the design information of the memory 32 and the bus 37. Based on the design information, the transfer time of the data transfer unit 35 is calculated (step S104). That is, it is the same as in the second embodiment. It should be noted that the ratio between the measured value of the transfer time accumulated in the data transfer unit statistical information 52 and the transfer time calculated based on the above-described transfer time formula is obtained, and the average value for the past several times of this ratio is corrected. It is good also as a coefficient. The transfer time may be calculated by multiplying the correction coefficient by the transfer time calculated based on the above-described transfer time formula.
  • Example 3 the same effect as Example 2 can be obtained. For example, even when the transfer time cannot be estimated to some extent accurately using the above-described transfer time formula, the same effect as in the second embodiment can be obtained.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Image Processing (AREA)

Abstract

 プロセッサにより生成されたデータを記憶部に記憶し、転送部により記憶部から処理部へそのデータをバースト転送するデータ転送装置および方法において、予めデータ転送装置に、プロセッサが記憶部にアクセスする際のアクセス性能に基づいてバースト幅の所定値と、処理部がデータ処理を行うのに要する時間に関する情報と、を設定しておく。データ転送装置において転送部がデータ転送を行う際に、処理部がデータ処理を行うのに要する時間に関する情報に基づいてデータ転送に許容される時間を算出し、バースト幅を、バースト幅の所定値以上で、かつ許容された時間内にデータの転送が終了可能な範囲でできるだけバースト幅の所定値に近い値に決定する。

Description

データ転送装置およびデータ転送方法
 この発明は、データ転送装置およびデータ転送方法に関する。
 従来、データ処理装置においてデータを高速に転送する技術の一つに、バースト転送がある。このバースト転送技術において、データ転送中に優先度の高い別のデータの転送要求が出力された場合、転送中のデータのバースト幅を、この優先度の高い別のデータの転送が開始されるまでの間に転送できる幅に設定する技術が知られている。また、複数のデータ転送を時分割により並行して行う際に、データ転送を完了すべきと予想される時間と、そのデータの転送に要すると予想される時間とを算出し、この算出結果に基づいてデータ転送の時分割の割合をダイナミックに調整する技術が知られている。
特開2007-304908号公報 特開2006-209500号公報
 しかしながら、従来のバースト転送技術では、バースト転送中のメモリは、他のアクセスを受け付けることができない状態となる。そのため、バースト転送中のメモリに対してプロセッサがアクセスしても、バースト転送が終了するまでプロセッサは待機しなければならない。転送対象のデータ量が大きい場合、メモリに対するバースト転送が繰り返し行われる。そのため、プロセッサのアクセスのタイミングによってはプロセッサの待機時間がさらに長くなることがあり、プロセッサの実効性能が低下するという問題点がある。
 一回のバースト転送で転送されるデータのサイズであるバースト幅を小さくすると、一回のバースト転送に要する時間が短くなる。従って、バースト転送が繰り返し行われている間、メモリが他のアクセスを受け付けることができる状態に復帰する回数が増えるので、メモリに対するプロセッサのアクセスが受け付けられやすくなる。しかし、バースト幅が小さくなるほど、転送対象のデータの転送が完了するまでのバースト転送回数が増える。その分、メモリからデータが出力されるまでの遅延時間やプレチャージに要する時間が増えるため、プロセッサがメモリにアクセスする性能が低下してしまう。
 一方、バースト転送の間隔を広げると、バースト転送とその次のバースト転送との間でメモリが他のアクセスを受け付けることができる状態に復帰している時間が長くなる。従って、メモリに対するプロセッサのアクセスが受け付けられやすくなる。しかし、プロセッサがバースト転送中のメモリにアクセスした場合には、プロセッサはバースト転送の終了まで待たされるため、プロセッサの実効性能の低下を防ぐことはできない。
 バースト転送によるプロセッサの実効性能の低下を防ぐことができるデータ転送装置およびデータ転送方法を提供することを目的とする。
 上述した課題を解決し、目的を達成するため、プロセッサ、第1、第2および第3の各記憶部、算出部、決定部、転送部並びに処理部を備えている。プロセッサは、処理対象のデータを生成する。第1の記憶部は、プロセッサにより生成されたデータを記憶する。第2の記憶部は、処理部がデータ処理を行うのに要する時間に関する情報を記憶している。算出部は、第2の記憶部に記憶されている時間に関する情報に基づいて転送部がデータを転送するのに許容される時間を算出する。第3の記憶部は、プロセッサが第1の記憶部にアクセスする際のアクセス性能に基づいて設定されたバースト幅の所定値を記憶している。決定部は、転送部がデータを転送する際のバースト幅を、転送部がそのデータを転送するのに要すると見積られる時間に基づいて決定する。決定部は、バースト幅を、第3の記憶部に記憶されているバースト幅の所定値以上で、かつデータの転送が算出部により算出されたデータの転送に許容される時間内に終了する範囲でできるだけバースト幅の所定値に近い値に決定する。転送部は、決定部により決定されたバースト幅でもって第1の記憶部から処理部へデータをバースト転送する。処理部は、プロセッサにより生成されたデータを処理する。
 開示のデータ転送装置およびデータ転送方法によれば、バースト転送によるプロセッサの実効性能の低下を防ぐことができるという効果を奏する。
実施例1にかかるデータ転送装置を示すブロック図である。 実施例1にかかるデータ転送方法を示すフローチャートである。 実施例2においてバースト幅の下限値を決定する装置の構成を示すブロック図である。 実施例2においてデータ転送性能を測定するプログラムの一例を示す図である。 実施例2においてデータ転送性能の測定結果の一例を示す図表である。 実施例2においてデータ転送性能の測定結果の一例を示す特性図である。 実施例2においてバースト幅の下限値を決定する方法を示すフローチャートである。 実施例2において画像処理部によるデータ処理時間に関する情報を収集する装置の構成を示すブロック図である。 実施例2において画像処理部によるデータ処理時間に関する情報を収集するプログラムの一例を示す図である。 実施例2において画像処理部によるデータ処理時間に関する情報の収集結果の一例を示す図表である。 実施例2において画像処理部によるデータ処理時間に関する情報を収集する方法を示すフローチャートである。 実施例2にかかるデータ転送装置を示すブロック図である。 実施例2にかかるデータ転送装置の動作を示すシーケンス図である。 実施例2にかかるデータ転送方法における転送許容時間の算出方法を示すフローチャートである。 実施例2にかかるデータ転送方法におけるデータ転送モードの決定方法を示すフローチャートである。 図15の続きを示すフローチャートである。 実施例2にかかるデータ転送方法におけるデータ転送時間の算出方法を説明する図である。 実施例2にかかるデータ転送方法において複数の転送を行う場合のデータ転送モードの決定方法を示すフローチャートである。 実施例3にかかるデータ転送装置を示すブロック図である。 実施例3にかかるデータ転送方法におけるデバイスドライバによる統計情報収集動作を示すフローチャートである。 実施例3にかかるデータ転送方法における統計情報収集部の動作を示すフローチャートである。 実施例3においてデータ転送部統計情報の一例を示す図表である。 実施例3にかかるデータ転送方法におけるデータ転送時間の算出方法を示すフローチャートである。
 以下に、この発明にかかるデータ転送装置およびデータ転送方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
(実施例1)
 実施例1は、データをバースト転送する際のバースト幅を、プロセッサのアクセス性能に基づいて予め設定されているバースト幅の所定値以上で、かつ許容時間内にデータ転送が終了する範囲でできるだけバースト幅の所定値に近い値に決定するものである。
・データ転送装置の説明
 図1は、実施例1にかかるデータ転送装置を示すブロック図である。図1に示すように、データ転送装置は、プロセッサ1、第1の記憶部2、第2の記憶部3、算出部4、第3の記憶部5、決定部6、転送部7および処理部8を備えている。
 プロセッサ1は、処理対象のデータを生成する。第1の記憶部2は、プロセッサ1により生成されたデータを記憶する。第2の記憶部3は、処理部8がデータ処理を行うのに要する時間に関する情報を記憶している。処理部8がデータ処理を行うのに要する時間に関する情報は、予め設定されている。算出部4は、第2の記憶部3に記憶されている時間に関する情報に基づいて転送部7がデータを転送するのに許容される時間を算出する。第3の記憶部5は、バースト幅の所定値を記憶している。バースト幅の所定値は、プロセッサ1が第1の記憶部2にアクセスする際のアクセス性能に基づいて予め設定されている。
 決定部6は、転送部7がデータを転送する際のバースト幅を、転送部7がそのデータを転送するのに要すると見積られる時間に基づいて決定する。決定部6は、バースト幅を、第3の記憶部5に記憶されているバースト幅の所定値以上で、かつデータの転送が算出部4により算出されたデータの転送に許容される時間内に終了する範囲でできるだけバースト幅の所定値に近い値に決定する。転送部7は、決定部6により決定されたバースト幅でもって第1の記憶部2から処理部8へデータをバースト転送する。処理部8は、プロセッサ1により生成されたデータを処理する。
・データ転送方法の説明
 図2は、実施例1にかかるデータ転送方法を示すフローチャートである。図2に示すように、予めプロセッサ1が第1の記憶部2にアクセスする際のアクセス性能に基づいて、転送部7が第1の記憶部2から処理部8へデータをバースト転送する際のバースト幅の所定値が求められる。バースト幅の所定値は、第3の記憶部5に格納される(ステップS1)。また、処理部8がデータ処理を行うのに要する時間に関する情報が第2の記憶部3に格納される(ステップS2)。ステップS1およびステップS2は、いずれが先に処理されてもよい。
 プロセッサ1により生成されたデータは、第1の記憶部2に格納される。第1の記憶部2に記憶されているデータを処理部8へバースト転送する処理が開始されると、まず、算出部4により、第2の記憶部3に格納されているデータ処理に要する時間の情報に基づいてデータの転送に許容される時間が算出される(ステップS3)。
 次いで、決定部6により、転送部7が第1の記憶部2から処理部8へデータを転送する際のバースト幅が決定される。バースト幅は、転送部7が当該データを転送するのに要すると見積られる時間に基づいて決定される。バースト幅は、第3の記憶部5に格納されているバースト幅の所定値以上で、かつ当該データの転送がステップS3で算出されたデータの転送に許容される時間内で終了可能な範囲でできるだけバースト幅の所定値に近い値に決定される(ステップS4)。ステップS4で決定されたバースト幅でもって、転送部7により第1の記憶部2から処理部8へデータが転送される。そして、処理部8でデータ処理が行われると、一連の処理が終了する。
 実施例1によれば、バースト幅が、第1の記憶部2に対するプロセッサ1のアクセス性能に基づいて設定された所定値以上で、かつできるだけバースト幅の所定値に近い値に決定される。バースト幅が大きいほどバースト転送によるデータ転送性能が高くなるが、第1の記憶部2に対するプロセッサ1のアクセス性能は低くなる。バースト幅が小さい場合は、その逆となる。従って、実施例1のようにバースト幅が決定されることによって、第1の記憶部2に対するプロセッサ1のアクセス性能と転送部7のデータ転送性能とのバランスが取れるので、プロセッサの実効性能が低下するのを防ぐことができる。
(実施例2)
 実施例2は、実施例1にかかるデータ転送装置およびデータ転送方法を例えば画像処理を行う装置および方法に適用したものである。まず、バースト幅の所定値としてのバースト幅の下限値の決定方法について説明する。その次に、処理部としての画像処理部がデータ処理を行うのに要する時間に関する情報を収集する方法について説明する。その後、実施例2にかかるデータ転送装置の構成およびデータ転送方法について説明する。実施例2では、バースト幅として複数のサイズが用意されている。
・バースト幅の下限値の決定方法の説明
 図3は、バースト幅の下限値を決定する装置の構成を示すブロック図である。図4は、データ転送性能を測定するプログラムの一例を示す図である。図5は、データ転送性能の測定結果の一例を示す図表である。図6は、データ転送性能の測定結果の一例を示す特性図である。
 図3に示すように、設計装置11および実機(またはシミュレータ)12が用意される。実機(またはシミュレータ)12が実機である場合には、実機(またはシミュレータ)12は、プロセッサ、第1の記憶部としてのメモリ、転送部としてのデータ転送部および処理部としての画像処理部を備えている(図12参照)。実機(またはシミュレータ)12がシミュレータである場合には、実機(またはシミュレータ)12は、プロセッサ、第1の記憶部としてのメモリ、転送部としてのデータ転送部および処理部としての画像処理部のそれぞれを模した構成を備えている。
 測定用プログラム13は、設計装置11を用いて設計者により作成される。測定用プログラム13は、例えば図4に示すように、実機(またはシミュレータ)12においてデータ転送部がメモリから画像処理部へデータを種々のバースト幅でバースト転送している間にプロセッサがメモリに対して大量のアクセスを行うように作成されている。実機(またはシミュレータ)12は、測定用プログラム13を実行し、その結果取得した測定データ14を設計装置11へ返す。
 測定データ14は、プロセッサの転送性能を表すデータおよびデータ転送部の転送性能を表すデータを含んでいる。例えばデータ転送部の転送性能は、データ転送部が任意の量のデータをメモリから読み出すのに要した時間で評価されてもよい。例えば図5に示すように、データ転送部の転送性能を表すデータとして、データ転送部が任意の量のデータをメモリから読み出すのに要した時間のデータが、バースト幅ごとに得られる。例えばプロセッサの転送性能は、プロセッサが任意の量のデータをメモリに対して読み書きするのに要した時間で評価されてもよい。例えばプロセッサの転送性能を表すデータとして、プロセッサが任意の量のデータをメモリに対して読み書きするのに要した時間のデータが、バースト幅ごとに得られる。いずれも、データの読み書きや読み出しに要した時間が短いほど、性能が優れていることになる。
 設計装置11は、バースト幅の下限値決定部15を備えている。バースト幅の下限値決定部15は、測定データ14に基づいて、例えば図7に示すフローチャートに従ってバースト幅の下限値を決定する。例えばバースト幅の下限値決定部15は、バースト幅ごとに、プロセッサの転送性能およびデータ転送部の転送性能を算出し、それらの和を算出してもよい。例えば図6に示すように、通常、データ転送部がメモリから画像処理部へデータをバースト転送している間にプロセッサがメモリに対して大量のアクセスを行う環境では、バースト幅が大きくなるに従って、データ転送部の転送性能が良くなる。これは、バースト幅が大きいと一度のバースト転送でメモリから出力されるデータ量が大きくなるので、その分バースト転送の回数が減る。バースト転送の回数が減ると、バースト転送の最初にメモリからデータが出力されるまでの遅延時間や、データ出力後のプリチャージの時間が全体として減るからである。その一方で、データ転送部によるバスおよびメモリの占有時間が長くなるため、プロセッサの転送性能は悪くなる。
 従って、プロセッサの転送性能とデータ転送部の転送性能との和を算出すると、図6に示すように、その和には最大値が存在する。この和が最大となる状態のときに、プロセッサの転送性能とデータ転送部の転送性能とのバランスが取れていることになる。そこで、バースト幅の下限値決定部15は、プロセッサの転送性能とデータ転送部の転送性能との和が最大となるバースト幅をバースト幅の下限値に決定してもよい。バースト幅の下限値決定部15により決定されたバースト幅の下限値は、製品となる実機16に記録される。
 図7は、バースト幅の下限値を決定する方法を示すフローチャートである。図7に示すように、設計者は、まず設計装置11を用いて測定用プログラム13を作成する(ステップS11)。次いで、設計者は、実機(またはシミュレータ)12で測定用プログラム13を実行する(ステップS12)。それによって、設計装置11は、実機(またはシミュレータ)12から測定結果として測定データ14を取得する(ステップS13)。次いで、バースト幅の下限値決定部15により、バースト幅ごとに、プロセッサの転送性能およびデータ転送部の転送性能が算出される(ステップS14)。
 次いで、バースト幅の下限値決定部15により、例えばバースト幅ごとにプロセッサの転送性能とデータ転送部の転送性能との和が算出される。バースト幅の下限値決定部15は、例えば転送性能の和が最大となるバースト幅をバースト幅の下限値に決定する(ステップS15)。これによって、バースト幅の下限値を決定する一連の処理が終了する。
・画像処理部によるデータ処理時間に関する情報を収集する方法の説明
 図8は、画像処理部によるデータ処理時間に関する情報を収集する装置の構成を示すブロック図である。図9は、画像処理部によるデータ処理時間に関する情報を収集するプログラムの一例を示す図である。図10は、画像処理部によるデータ処理時間に関する情報の収集結果の一例を示す図表である。
 図8に示すように、設計装置21および実機(またはシミュレータ)22が用意される。実機(またはシミュレータ)22については、上述した「・バースト幅の下限値の決定方法の説明」において説明したとおりである。測定用プログラム23は、設計装置21を用いて設計者により作成される。測定用プログラム23は、例えば図9に示すように、実機(またはシミュレータ)22において種々の画面サイズ(描画サイズ)および描画モードの組み合わせで描画の処理を行うように作成されている。描画モードには、例えば2次元表示(2D)や3次元表示(3D)などのモードがある。実機(またはシミュレータ)22は、測定用プログラム23を実行し、画像処理部が種々の画面サイズ(描画サイズ)および描画モードの組み合わせで描画処理を開始してから終了するまでの時間を計測する。実機(またはシミュレータ)22は、その結果収集した処理時間の情報を統計情報24として設計装置21へ返す。
 統計情報24は、例えば図10に示すように、種々の画面サイズ(描画サイズ)および描画モードの組み合わせごとに、画像処理部が描画処理を行うのに要する時間を統計的に処理したデータを含んでいる。例えば統計的に処理したデータとして、種々の画面サイズ(描画サイズ)および描画モードの組み合わせごとに、画像処理部が複数回の描画処理を行い、複数回の描画処理に要した時間を平均したデータであってもよい。統計情報24は、製品となる実機25に記録される。画像処理部がデータ処理を行うのに要する時間に関する情報を画像処理部の設計情報から得ることができる場合には、統計情報24を画像処理部の設計情報から取得してもよい。
 図11は、画像処理部によるデータ処理時間に関する情報を収集する方法を示すフローチャートである。図11に示すように、設計者は、まず設計装置21を用いて測定用プログラム23を作成する(ステップS21)。次いで、設計者は、実機(またはシミュレータ)22で測定用プログラム23を実行する(ステップS22)。それによって、設計装置21は、実機(またはシミュレータ)22から測定結果として統計情報24を取得する(ステップS23)。これによって、画像処理部によるデータ処理時間に関する情報を収集する一連の処理が終了する。
・データ転送装置の説明
 図12は、実施例2にかかるデータ転送装置を示すブロック図である。図12に示すように、データ転送装置は、プロセッサ31、第1、第2および第3の記憶部としてのメモリ32、算出部としての転送許容時間算出部33、決定部としてのデータ転送モード決定部34、転送部としてのデータ転送部35並びに処理部としての画像処理部36を備えている。プロセッサ31、メモリ32、データ転送部35および画像処理部36は、バス37に接続されている。
 プロセッサ31は、例えばCPU(Central Processing Unit、中央処理装置)であり、オペレーティングシステム(Operating System、OS)38を実行する。プロセッサ31がオペレーティングシステム38を実行することによって、転送許容時間算出部33、データ転送モード決定部34およびデバイスドライバ39が実現される。デバイスドライバ39は、データ転送部35および画像処理部36を制御する。プロセッサ31は、図示しない画像処理や画像の表示などを行うアプリケーションソフトウェアを実行し、描画データを生成する。
 メモリ32は、プロセッサ31により生成された描画データ40を記憶する。メモリ32は、上述した「・バースト幅の下限値の決定方法の説明」において説明したバースト幅の下限値41を記憶している。メモリ32は、上述した「・画像処理部によるデータ処理時間に関する情報を収集する方法の説明」において説明した統計情報24を記憶している。メモリ32において、描画データ40、統計情報24およびバースト幅の下限値41が格納される領域がそれぞれ第1の記憶部、第2の記憶部および第3の記憶部に相当する。メモリ32は、描画データ40を記憶する例えば読み書き可能なDRAM(Dynamic Random Access Memory)、およびバースト幅の下限値41や統計情報24を格納する例えば読み出し専用のROM(Read Only Memory)を備えていてもよい。
 転送許容時間算出部33は、統計情報24に基づいてデータ転送部35がデータを転送するのに許容される時間を算出する。算出の仕方については後述する。データ転送モード決定部34は、転送許容時間算出部33により算出された許容時間に基づいて、データ転送部35がデータを転送する際のモード(データ転送モード)を決定する。バースト幅およびバースト転送間隔の組み合わせに応じて複数のデータ転送モードが用意されている。決定の仕方については後述する。データ転送部35は、例えばDMA(Direct Memory Access)コントローラである。データ転送部35は、データ転送モード決定部34により決定されたデータ転送モードでもってメモリ32から画像処理部36へ描画データ40をバースト転送する。
 画像処理部36は、メモリ32から転送されてきた描画データに対して描画処理を行う。画像処理部36は、図示しないフレームメモリを備えており、このフレームメモリに描画済みの画像データを格納する。フレームメモリに格納された画像データは、図示しない液晶パネルなどの表示装置へ送られる。特に限定しないが、例えば携帯電話機が実施例2にかかるデータ転送装置を備えていてもよい。
・データ転送装置の動作の説明
 図13は、実施例2にかかるデータ転送装置の動作を示すシーケンス図である。図13に示すように、アプリケーションソフトウェア46は、画像処理または画像の表示を行う際にオペレーティングシステム38に対して画像処理部36などのデバイスの起動を指示する(ステップS31)。その際、アプリケーションソフトウェア46からオペレーティングシステム38に、転送対象のデータ、画像処理部36の起動パラメータ、画像処理部36での処理が完了するタイミングのデッドラインがオペレーティングシステム38に渡される。画像処理部36の起動パラメータには、画面サイズ(描画サイズ)や描画モードなどのパラメータが含まれている。
 次いで、オペレーティングシステム38は、転送許容時間算出部33により統計情報24に基づいてデータ転送部35によるデータ転送に許容される時間(転送許容時間)を算出する(ステップS32)。次いで、オペレーティングシステム38は、データ転送モード決定部34により転送許容時間に基づいてデータ転送モードを決定する(ステップS33)。次いで、オペレーティングシステム38は、デバイスドライバ39によりデータ転送部35を起動する(ステップS34)。
 次いで、データ転送部35は、ステップS33で決定されたデータ転送モードでもってメモリ32から画像処理部36へ描画データをバースト転送する(ステップS35)。画像処理部36は、転送されてきた描画データに対して描画処理を行う(ステップS36)。その間、アプリケーションソフトウェア46は処理を継続する(ステップS39)。画像処理部36で描画処理が終了すると、オペレーティングシステム38は終了処理を行い(ステップS38)、一連の動作を終了する。
・転送許容時間の算出方法
 図14は、実施例2にかかるデータ転送方法における転送許容時間の算出方法を示すフローチャートである。図14に示すように、転送許容時間算出部33は、まず統計情報24を検索し、画像処理部36の起動パラメータに近い情報が統計情報24に含まれているか否かを調べる(ステップS41)。統計情報24に画像処理部36の起動パラメータに一致する情報がある場合(ステップS42:Yes)、転送許容時間算出部33は、統計情報24から起動パラメータに一致する情報に対応する処理時間を、画像処理部36の処理時間として取得する(ステップS45)。
 統計情報24に起動パラメータに一致する情報はないが(ステップS42:No)、近似可能な近い情報があることがある。近似可能な近い情報がある場合(ステップS43:Yes)、転送許容時間算出部33は、統計情報24から近似可能な近い情報に対応する処理時間を取得する。そして、転送許容時間算出部33は、近似可能な近い情報に対応する処理時間を用いて、例えば定式化できる部分(特定のパラメータに対して比例や反比例で変化する部分)については、定式化して画像処理部36の処理時間を推定する。転送許容時間算出部33は、例えば定式化できない部分については、パラメータの組み合わせが近い情報の中から最大の時間のものを画像処理部36の処理時間の推定値として選択する(ステップS46)。
 ステップS45またはステップS46で画像処理部36の処理時間を推定できたら、転送許容時間算出部33は転送許容時間を算出する。転送許容時間は、現在の時刻から画像処理部36での処理が完了するタイミングのデッドラインの時刻までの時間から、画像処理部36の処理時間を引いた時間である(ステップS47)。現在の時刻は、例えばプロセッサ31が画像処理部36への転送対象のデータを生成した時点の時刻である。画像処理部36での処理が完了するタイミングのデッドラインの時刻は、画像の表示間隔によって決まる。例えば画像の表示を毎秒30回行う装置の場合には、画像の表示間隔は1/30秒となる。この場合、画像処理部36での処理が完了するタイミングのデッドラインは、1/30秒ごとに訪れる。
 一方、統計情報24に起動パラメータに一致する情報も近似可能な近い情報もない場合には(ステップS43:No)、転送許容時間算出部33は転送許容時間をゼロとする(ステップS44)。転送許容時間がゼロであるということは、直ちにデータの転送を開始するということであり、すなわち最速でデータを転送するということである。
・データ転送モードの決定方法
 図15は、実施例2にかかるデータ転送方法におけるデータ転送モードの決定方法を示すフローチャートである。図16は、図15の続きである。図17は、データ転送部によるデータの転送時間の算出方法を説明する図である。図15に示すように、上述した「・転送許容時間の算出方法」において説明したとおりに転送許容時間算出部33により転送許容時間が算出されると(ステップS51)、データ転送モード決定部34は、データ転送モードを決定する処理を開始する。データ転送モード決定部34は、まずバースト幅を最大に設定し、バースト転送間隔を最小に設定する。この条件でデータ転送モード決定部34は、データ転送部35が描画データ40をメモリ32から画像処理部36へ転送するのに要する時間(転送時間)を次の式に従って算出する(ステップS52)。
 転送時間=([遅延時間]+[1データの出力時間]×[バースト幅]+[x])×[転送回数]
 図17に示すように、遅延時間は、データ転送部35がメモリ32に対してアドレスを指定してデータの読み込みを要求してから実際にメモリ32からデータが出力されるまでの時間である。1データの出力時間は、メモリ32が1データを出力するのに要する時間である。xは、アクセス間隔とプリチャージ時間のうちの大きい方の時間である。プリチャージ時間は、プリチャージに要する時間である。遅延時間、1データの出力時間およびプリチャージ時間は、メモリ32の設計情報として取得することができる。アクセス間隔は、バースト転送が終了した時点から次にデータ転送部35がメモリ32に対してデータの読み込みを要求するまでの時間である。アクセス間隔は、データ転送部35の設計情報として取得することができる。転送回数は、転送対象のデータ量をバースト幅で除した値である。
 データ転送モード決定部34は、ステップS52で算出した転送時間がステップS51で算出された転送許容時間に収まらない場合(ステップS53:No)、データ転送モードを決定する処理を終了する。この場合は、例えば動画像がいわゆるコマ落ちで再現されるので、画像が滑らかに表示されなくなってしまう。データ転送モード決定部34は、ステップS52で算出した転送時間がステップS51で算出された転送許容時間に収まる場合(ステップS53:Yes)、一段小さいバースト幅を設定する(ステップS54)。一段小さくしたバースト幅がバースト幅の下限値よりも小さくない場合(ステップS55:No)、データ転送モード決定部34は、一段小さくしたバースト幅と最小のバースト転送間隔の条件で再び転送時間を算出する(ステップS56)。
 データ転送モード決定部34は、ステップS56で算出した転送時間がステップS51で算出された転送許容時間に収まる場合(ステップS57:Yes)、バースト幅を一段小さくしながらステップS54からステップS57までを繰り返す。繰り返している途中で、やがて一段小さくしたバースト幅がバースト幅の下限値よりも小さくなるか(ステップS55:Yes)、転送時間が転送許容時間に収まらなくなる(ステップS57:No)。その場合、図16に示すように、データ転送モード決定部34は、その時点のバースト幅よりも一段大きいバースト幅を設定する(ステップS58)。
 次いで、バースト転送間隔を変更することができない場合(ステップS59:No)、データ転送モード決定部34は、データ転送モードを決定する処理を終了する。バースト転送間隔を変更することができる場合(ステップS59:Yes)、データ転送モード決定部34は、一段大きいバースト転送間隔を設定する(ステップS60)。データ転送モード決定部34は、ステップS58で設定したバースト幅と一段大きくしたバースト転送間隔の条件で再び転送時間を算出する(ステップS61)。
 データ転送モード決定部34は、ステップS61で算出した転送時間がステップS51で算出された転送許容時間に収まる場合(ステップS62:Yes)、バースト転送間隔を一段大きくしながらステップS60からステップS62までを繰り返す。繰り返している途中で転送時間が転送許容時間に収まらなくなったら(ステップS62:No)、データ転送モード決定部34は、その時点のバースト転送間隔よりも一段小さいバースト転送間隔を設定する(ステップS63)。そして、データ転送モード決定部34は一連の処理を終了する。
・複数の転送を行う場合のデータ転送モードの決定方法
 バス37を共有するデータ転送部が複数あり、またバス37を共有するデータ処理部が複数ある場合、それらの間でのデータ転送が競合する場合がある。そのような場合には、次のようにしてバースト幅およびバースト転送間隔を決定すればよい。
 図18は、実施例2にかかるデータ転送方法において複数の転送を行う場合のデータ転送モードの決定方法を示すフローチャートである。データ転送モード決定部34は、これから行うデータ転送に時間の制約(デッドライン)が設定されており(ステップS71:Yes)、他のデータ転送が実行されている場合(ステップS72:Yes)、データ転送モード決定部34は、現在実行中の他のデータ転送のデッドラインを取得する(ステップS73)。
 次いで、データ転送モード決定部34は、転送が早く完了しなければならないデータ転送から順に高い優先順位を付ける。デッドラインのないデータ転送の優先順位は最も低くなる。データ転送モード決定部34は、これから行うデータ転送よりも優先順位の高いデータ転送、すなわちデッドラインにより近いデータ転送について、未転送のデータ量とデータ転送部に設定されているバースト幅およびバースト転送間隔を取得する。そして、データ転送モード決定部34は、デッドラインにより近いデータ転送について、未転送のデータ量、バースト幅およびバースト転送間隔に基づいて残りの転送時間を算出する(ステップS74)。
 次いで、データ転送モード決定部34は、これから行うデータ転送の転送許容時間からステップS74で算出したデッドラインにより近いデータ転送の残りの転送時間を差し引いて、これから行うデータ転送の新たな転送許容時間とする。データ転送モード決定部34は、これから行うデータ転送について、新たな転送許容時間に基づいてバースト幅およびバースト転送間隔を決定する(ステップS75)。
 データ転送モード決定部34は、これから行うデータ転送にデッドラインが設定されており(ステップS71:Yes)、他のデータ転送が実行されていない場合(ステップS72:No)、上述した「・データ転送モードの決定方法」において説明したとおりに、これから行うデータ転送についてバースト幅およびバースト転送間隔を決定する(ステップS75)。一方、データ転送モード決定部34は、これから行うデータ転送にデッドラインが設定されていない場合(ステップS71:No)、これから行うデータ転送について、バースト幅をバースト幅の下限値に決定し、バースト転送間隔を最大に決定する(ステップS76)。
 実施例2によれば、バースト幅が、バースト幅の下限値以上で、かつできるだけバースト幅の下限値に近い値に決定される。また、バースト転送間隔が、データの転送がその転送に許容される時間内で終了する範囲でできるだけ大きくなるように決定される。つまり、画像処理部36でのデータ処理がその処理のデッドラインまでに終了する範囲でできるだけメモリ32およびバス37が解放されるように、データ転送部35がバースト転送を行う。従って、プロセッサの実効性能が低下するのを防ぐことができる。なお、画像処理を行う装置および方法に限らず、音声データやその他のデータの処理を行う装置および方法に適用することができる。
(実施例3)
 実施例3は、実施例2において、データ転送装置の動作中にデータ転送部および画像処理部の統計情報を収集するようにしたものである。データ転送装置の動作中に収集したデータ転送部の統計情報に基づいてデータ転送部によるデータの転送時間を見積ることができる。この転送時間の見積り方は、例えば上述した転送時間の式に基づいて転送時間を見積ると、例えば外乱などの何らかの要因により実際の転送時間との誤差が大きいような場合に適用することができる。以下、実施例2と異なる構成について説明する。実施例2と同様の構成については、実施例2と同じ符号を付して重複する説明を省略する。
・データ転送装置の説明
 図19は、実施例3にかかるデータ転送装置を示すブロック図である。図19に示すように、プロセッサ31がオペレーティングシステム38を実行することによって、統計情報収集部51が実現される。統計情報収集部51は、データ転送装置の動作中にデバイスドライバ39からデータ転送部35の動作情報および画像処理部36の動作情報を収集し、データ転送部35の統計情報および画像処理部36の統計情報を作成する。統計情報収集部51の動作については後述する。デバイスドライバ39は、データ転送装置の動作中にデータ転送部35の動作情報および画像処理部36の動作情報を記録する。デバイスドライバ39の動作については後述する。
 メモリ32は、データ転送部統計情報52および画像処理部統計情報53を記憶する。データ転送部統計情報52および画像処理部統計情報53は、データ転送装置の動作中に統計情報収集部51により随時更新される。なお、メモリ32には、実施例2における統計情報24や画像処理部36の設計情報から得られる処理時間の情報は格納されていない。転送許容時間算出部33は、データ転送部35がデータを転送するのに許容される転送許容時間を算出する際に画像処理部統計情報53を用いる。
 データ転送モード決定部34は、データ転送モードを決定する際にバースト幅の下限値41およびデータ転送部統計情報52を用いる。データ転送モード決定部34は、データ転送モードを決定する際にデータ転送部統計情報52を用いてデータ転送部35のデータ転送時間を取得する。その他の構成は実施例2と同様である。なお、データ転送装置の動作中に画像処理部36の統計情報を作成する代わりに、実施例2と同様に画像処理部36の設計情報から取得した統計情報や、予め実機やシミュレータにより取得した統計情報を用いてもよい。
・統計情報を収集する際のデバイスドライバの動作
 図20は、デバイスドライバによる統計情報収集動作を示すフローチャートである。図20に示すように、データ転送装置の動作中にデバイスドライバ39は、データ転送部35の起動パラメータおよび起動時刻を記録する(ステップS81)。次いで、デバイスドライバ39はデータ転送部35を起動する(ステップS82)。データ転送部35によるデータ転送が終了すると、デバイスドライバ39はデータ転送部35によるデータ転送の終了時刻を記録する(ステップS83)。
 次いで、画像処理部36の統計情報を作成する場合には、デバイスドライバ39は、画像処理部36の起動パラメータおよび起動時刻を記録する(ステップS84)。次いで、デバイスドライバ39は画像処理部36を起動する(ステップS85)。画像処理部36によるデータ処理が終了すると、画像処理部36の統計情報を作成する場合には、デバイスドライバ39は画像処理部36によるデータ処理の終了時刻を記録する(ステップS86)。次いで、デバイスドライバ39は、記録した情報を統計情報収集部51へ送付する(ステップS87)。
 なお、実施例2と同様に画像処理部36の設計情報から取得した統計情報や、予め実機やシミュレータにより取得した統計情報を用いる場合には、画像処理部36の統計情報を作成しなくてもよい。画像処理部36の統計情報を作成しない場合には、ステップS84およびステップS86を省略してもよい。
・統計情報収集部の動作
 図21は、統計情報収集部の動作を示すフローチャートである。図22は、データ転送部統計情報の一例を示す図表である。図21に示すように、統計情報収集部51は、デバイスドライバ39から送付された情報に基づいて、データ転送部35の動作時間を算出する(ステップS91)。次いで、統計情報収集部51は、この時点でのデータ転送部統計情報52に、一致する起動パラメータがある場合(ステップS92:Yes)、データ転送部統計情報52のこのパラメータに対応する転送時間を過去数回分の転送時間の平均値に更新する(ステップS93)。統計情報収集部51は、データ転送部統計情報52に、一致する起動パラメータがない場合(ステップS92:No)、データ転送部統計情報52にこのパラメータと転送時間とを対応づけて追加する(ステップS97)。それによって、例えば図22に示すように、バースト幅、バースト転送間隔、転送されたデータのサイズおよび転送時間のデータが得られる。
 次いで、統計情報収集部51は、デバイスドライバ39から送付された情報に基づいて、画像処理部36の動作時間を算出する(ステップS94)。次いで、統計情報収集部51は、この時点での画像処理部統計情報53に、一致する起動パラメータがある場合(ステップS95:Yes)、画像処理部統計情報53のこのパラメータに対応する処理時間を過去数回分の処理時間の平均値に更新する(ステップS96)。統計情報収集部51は、画像処理部統計情報53に、一致する起動パラメータがない場合(ステップS95:No)、画像処理部統計情報53にこのパラメータと処理時間とを対応づけて追加する(ステップS98)。
・データ転送時間の算出方法
 図23は、実施例3にかかるデータ転送方法におけるデータ転送時間の算出方法を示すフローチャートである。図23に示すように、データ転送モード決定部34は、まずデータ転送部統計情報52を検索し、データ転送部35の起動パラメータに近い情報がデータ転送部統計情報52に含まれているか否かを調べる(ステップS101)。データ転送部統計情報52にデータ転送部35の起動パラメータに一致する情報がある場合(ステップS102:Yes)、データ転送モード決定部34は、データ転送部統計情報52から起動パラメータに一致する情報に対応する転送時間を、データ転送部35の転送時間として取得する(ステップS105)。
 データ転送部統計情報52に起動パラメータに一致する情報はないが(ステップS102:No)、近似可能な近い情報があることがある。近似可能な近い情報がある場合(ステップS103:Yes)、データ転送モード決定部34は、データ転送部統計情報52から近似可能な近い情報に対応する転送時間を取得する。そして、データ転送モード決定部34は、近似可能な近い情報に対応する転送時間を用いてデータ転送部35の転送時間を推定する(ステップS106)。
 一方、データ転送部統計情報52に起動パラメータに一致する情報も近似可能な近い情報もない場合には(ステップS103:No)、データ転送モード決定部34は、メモリ32の設計情報やバス37の設計情報に基づいてデータ転送部35の転送時間を算出する(ステップS104)。すなわち、実施例2と同様である。なお、データ転送部統計情報52に蓄積された転送時間の実測値と、上述した転送時間の式に基づいて算出された転送時間との比を求め、この比の過去数回分の平均値を補正係数としてもよい。この補正係数を、上述した転送時間の式に基づいて算出された転送時間に乗算することにより、転送時間を算出するようにしてもよい。
 実施例3によれば、実施例2と同様の効果が得られる。例えば上述した転送時間の式を用いて転送時間をある程度正確に見積ることができないような場合でも、実施例2と同様の効果が得られる。
 1 プロセッサ
 2 第1の記憶部
 3 第2の記憶部
 4 算出部
 5 第3の記憶部
 6 決定部
 7 転送部
 8 処理部

Claims (14)

  1.  処理対象のデータを生成するプロセッサと、
     前記プロセッサにより生成されたデータを記憶する第1の記憶部と、
     前記プロセッサにより生成されたデータを処理する処理部と、
     前記第1の記憶部から前記処理部へデータをバースト転送する転送部と、
     前記処理部がデータ処理を行うのに要する時間に関する情報を記憶している第2の記憶部と、
     前記プロセッサが前記第1の記憶部にアクセスする際のアクセス性能に基づいて設定されたバースト幅の所定値を記憶している第3の記憶部と、
     前記第2の記憶部に記憶されている前記時間に関する情報に基づいて前記転送部がデータを転送するのに許容される時間を算出する算出部と、
     前記転送部がデータを転送する際のバースト幅を、前記転送部が該データを転送するのに要すると見積られる時間に基づいて前記第3の記憶部に記憶されている前記バースト幅の所定値以上で、かつ該データの転送が前記算出部により算出された前記データの転送に許容される時間内に終了する範囲でできるだけ前記バースト幅の所定値に近い値に決定する決定部と、
     を備えることを特徴とするデータ転送装置。
  2.  前記バースト幅の所定値は、前記プロセッサと前記転送部とが前記第1の記憶部にアクセスする環境において予め求められた、前記プロセッサが前記第1の記憶部にアクセスしたときの性能と前記転送部が前記第1の記憶部に対してデータのバースト転送を行ったときの性能とを足し合わせた値が最大となるバースト幅であることを特徴とする請求項1に記載のデータ転送装置。
  3.  前記算出部は、前記転送部がデータの転送を開始する時刻から前記処理部で該データの処理が完了するタイミングのデッドラインまでの期間から、前記第2の記憶部に記憶されている前記時間に関する情報に基づいて前記処理部が該データを処理するのに要すると推測される期間を引いた時間を、前記転送部がデータを転送するのに許容される時間として算出することを特徴とする請求項1に記載のデータ転送装置。
  4.  前記決定部は、前記転送部がデータを転送する際のバースト幅を前記バースト幅の所定値に決定し、前記転送部が該データを転送する際のバースト転送間隔を、該データの転送が該データの転送に許容される時間内で終了する範囲でできるだけ大きくなるように決定することを特徴とする請求項1に記載のデータ転送装置。
  5.  前記転送部が競合する複数のデータ転送を行う場合、前記算出部は、
     該競合するデータ転送のそれぞれについてデータ転送が完了するタイミングのデッドラインの早い順に優先順位を高く設定し、
     前記転送部がデータの転送を開始する時刻から前記処理部で該データの処理が完了するタイミングのデッドラインまでの期間から、前記第2の記憶部に記憶されている前記時間に関する情報に基づいて前記処理部が該データを処理するのに要すると推測される期間と、より優先順位の高いデータ転送が完了するまでの残り時間と、を引いた時間を、前記転送部がデータを転送するのに許容される時間として算出することを特徴とする請求項1に記載のデータ転送装置。
  6.  前記決定部は、前記転送部がデータを転送するのに要する時間を、前記第1の記憶部の設計情報および転送対象のデータ量に基づいて見積ることを特徴とする請求項1に記載のデータ転送装置。
  7.  前記決定部は、前記転送部がデータを転送するのに要する時間を、過去に実際に前記転送部がデータを転送するのに要した時間の平均値に基づいて見積ることを特徴とする請求項1に記載のデータ転送装置。
  8.  プロセッサにより生成されたデータを、該データを記憶した記憶部から該データを処理する処理部へ転送部によりバースト転送するデータ転送方法において、
     前記プロセッサが前記記憶部にアクセスする際のアクセス性能に基づいて前記転送部がバースト転送する際のバースト幅の所定値を設定するバースト幅設定ステップと、
     前記処理部がデータ処理を行うのに要する時間に関する情報を設定する処理時間設定ステップと、
     前記処理時間設定ステップで設定された処理時間の情報に基づいて前記転送部のデータ転送に許容される時間を算出する算出ステップと、
     該データを転送する際のバースト幅を、該データを転送するのに要すると見積られる時間に基づいて、前記バースト幅設定ステップで設定されたバースト幅の所定値以上で、かつ該データの転送が前記算出ステップで算出された前記データの転送に許容される時間内に終了可能な範囲でできるだけ前記バースト幅の所定値に近い値に決定する決定ステップと、
     を含むことを特徴とするデータ転送方法。
  9.  前記バースト幅設定ステップでは、前記バースト幅の所定値を、前記プロセッサと前記転送部とが前記記憶部にアクセスする環境において前記プロセッサが前記記憶部にアクセスしたときの性能と前記転送部が前記記憶部に対してデータのバースト転送を行ったときの性能とを足し合わせた値が最大になるように求めることを特徴とする請求項8に記載のデータ転送方法。
  10.  前記算出ステップでは、データの転送を開始する時刻から前記処理部で該データの処理が完了するタイミングのデッドラインまでの期間から、前記処理部がデータ処理を行うのに要する時間に関する情報に基づいて前記処理部が該データを処理するのに要すると推測される期間を引いた時間を、前記データの転送に許容される時間として算出することを特徴とする請求項8に記載のデータ転送方法。
  11.  前記決定ステップでは、データを転送する際のバースト幅を前記バースト幅の所定値に決定し、該データを転送する際のバースト転送間隔を、該データの転送が該データの転送に許容される時間内で終了可能な範囲でできるだけ大きくなるように決定することを特徴とする請求項8に記載のデータ転送方法。
  12.  競合する複数のデータ転送を行う場合、前記算出ステップでは、該競合するデータ転送のそれぞれについてデータ転送が完了するタイミングのデッドラインの早い順に優先順位を高く設定し、データの転送を開始する時刻から前記処理部で該データの処理が完了するタイミングのデッドラインまでの期間から、前記処理部がデータ処理を行うのに要する時間に関する情報に基づいて前記処理部が該データを処理するのに要すると推測される期間と、より優先順位の高いデータ転送が完了するまでの残り時間と、を引いた時間を、前記データの転送に許容される時間として算出することを特徴とする請求項8に記載のデータ転送方法。
  13.  前記決定ステップでは、前記データの転送に要する時間を、前記記憶部の設計情報および転送対象のデータ量に基づいて見積ることを特徴とする請求項8に記載のデータ転送方法。
  14.  前記決定ステップでは、前記データの転送に要する時間を、過去に実際にデータを転送するのに要した時間の平均値に基づいて見積ることを特徴とする請求項8に記載のデータ転送方法。
PCT/JP2010/055137 2010-03-24 2010-03-24 データ転送装置およびデータ転送方法 WO2011117986A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP10848379.3A EP2551777B1 (en) 2010-03-24 2010-03-24 Data transfer device and data transfer method
JP2012506708A JP5573943B2 (ja) 2010-03-24 2010-03-24 データ転送装置およびデータ転送方法
CN201080065625.6A CN102812447B (zh) 2010-03-24 2010-03-24 数据传输装置以及数据传输方法
PCT/JP2010/055137 WO2011117986A1 (ja) 2010-03-24 2010-03-24 データ転送装置およびデータ転送方法
US13/624,337 US9015369B2 (en) 2010-03-24 2012-09-21 Data transferring apparatus and data transferring method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/055137 WO2011117986A1 (ja) 2010-03-24 2010-03-24 データ転送装置およびデータ転送方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/624,337 Continuation US9015369B2 (en) 2010-03-24 2012-09-21 Data transferring apparatus and data transferring method

Publications (1)

Publication Number Publication Date
WO2011117986A1 true WO2011117986A1 (ja) 2011-09-29

Family

ID=44672578

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/055137 WO2011117986A1 (ja) 2010-03-24 2010-03-24 データ転送装置およびデータ転送方法

Country Status (5)

Country Link
US (1) US9015369B2 (ja)
EP (1) EP2551777B1 (ja)
JP (1) JP5573943B2 (ja)
CN (1) CN102812447B (ja)
WO (1) WO2011117986A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1093924A (ja) * 1996-08-08 1998-04-10 Shinekkus Inf Technol Inc ディジタルデータをオンデマンドで分配するシステム及び方法
JP2003114866A (ja) * 2001-10-05 2003-04-18 Matsushita Electric Ind Co Ltd マイクロプロセッサおよびオペレーティングシステム
JP2006209500A (ja) 2005-01-28 2006-08-10 Kyocera Mita Corp データ転送装置
JP2007304908A (ja) 2006-05-12 2007-11-22 Sharp Corp データ転送処理装置
JP2008234659A (ja) * 2007-03-22 2008-10-02 Arm Ltd 通信チャネルを介して送られるメッセージ間の調停を行うデータ処理装置および方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134977A (ja) * 1991-11-13 1993-06-01 Fujitsu Ltd データ転送速度変更方法
JPH06274446A (ja) * 1993-03-19 1994-09-30 Fujitsu Ltd データ転送速度変更方法
US6247161B1 (en) * 1997-01-16 2001-06-12 Advanced Micro Devices, Inc. Dynamically configured on-chip communications paths based on statistical analysis
US6185637B1 (en) * 1998-04-15 2001-02-06 Advanced Micro Devices, Inc. System for implementing an adaptive burst length for burst mode transactions of a memory by monitoring response times for different memory regions
US6473814B1 (en) * 1999-05-03 2002-10-29 International Business Machines Corporation System for optimally tuning a burst length by setting a maximum burst length based on a latency timer value and adjusting the maximum burst length based on a cache line size
US6393500B1 (en) * 1999-08-12 2002-05-21 Mips Technologies, Inc. Burst-configurable data bus
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
JP4884100B2 (ja) * 2006-06-23 2012-02-22 株式会社リコー ハードウェアデバイス制御装置とその処理データの設定管理方法および画像処理装置
CN100524267C (zh) * 2007-02-15 2009-08-05 威盛电子股份有限公司 数据处理系统及数据处理方法
JP5057833B2 (ja) * 2007-04-24 2012-10-24 株式会社日立製作所 転送システム、イニシエータデバイス及びデータ転送方法
JP2009217714A (ja) * 2008-03-12 2009-09-24 Toshiba Corp データ処理回路、キャッシュシステムおよびデータ転送装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1093924A (ja) * 1996-08-08 1998-04-10 Shinekkus Inf Technol Inc ディジタルデータをオンデマンドで分配するシステム及び方法
JP2003114866A (ja) * 2001-10-05 2003-04-18 Matsushita Electric Ind Co Ltd マイクロプロセッサおよびオペレーティングシステム
JP2006209500A (ja) 2005-01-28 2006-08-10 Kyocera Mita Corp データ転送装置
JP2007304908A (ja) 2006-05-12 2007-11-22 Sharp Corp データ転送処理装置
JP2008234659A (ja) * 2007-03-22 2008-10-02 Arm Ltd 通信チャネルを介して送られるメッセージ間の調停を行うデータ処理装置および方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2551777A4 *

Also Published As

Publication number Publication date
EP2551777A4 (en) 2013-11-27
US20130060974A1 (en) 2013-03-07
CN102812447A (zh) 2012-12-05
EP2551777B1 (en) 2016-07-06
JPWO2011117986A1 (ja) 2013-07-04
JP5573943B2 (ja) 2014-08-20
EP2551777A1 (en) 2013-01-30
CN102812447B (zh) 2016-04-27
US9015369B2 (en) 2015-04-21

Similar Documents

Publication Publication Date Title
JP6213053B2 (ja) プログラム、情報処理装置およびスケジュール決定方法
CN114157666B (zh) 一种基于智能云平台的负载均衡系统、方法、介质及装置
JP4504422B2 (ja) イメージリソースをローディングする方法及びイメージリソースローディングシステム
WO2009119009A1 (ja) アクセス制御装置
US20210125102A1 (en) Information processing system, information processing apparatus, and information processing program
CN109491788A (zh) 一种虚拟化平台负载均衡实现方法及装置
CN110297743B (zh) 一种负载测试方法、装置和存储介质
CN108196995A (zh) 一种确定处理任务平均时长的方法及设备
US10708033B2 (en) Network time correction method and apparatus
JP5573943B2 (ja) データ転送装置およびデータ転送方法
CN108920093B (zh) 数据读写方法、装置、电子设备及可读存储介质
JP2006235761A (ja) 分散共有メモリ装置およびメモリアクセス方法
JP4682353B2 (ja) 情報処理装置および情報処理方法
CN112579851B (zh) 页面内容爬取方法、装置、存储介质及设备
JP4371756B2 (ja) データバックアップ方法及びバックアップ装置
CN110942347A (zh) 一种广告加载的方法和装置
CN112684972B (zh) 基于分布式块存储的数据存储方法及装置
CN117119201B (zh) 压缩视频的传输方法、装置、设备及存储介质
CN112306901B (zh) 基于分层存储系统的刷盘方法、装置、电子设备及介质
JP7043911B2 (ja) 管理装置、管理システム、管理方法及び管理プログラム
CN117971602A (zh) 耗时计算任务的进度度量方法、系统、电子设备及介质
JP2010113383A (ja) ストレージシステム、その性能判定方法、ディスクアレイ制御部
CN115934489A (zh) 内存交织匹配方法、装置、可读存储介质及电子设备
US20120151151A1 (en) Systems and methods for managing cache destage scan times
JP2002230539A (ja) 並列画像処理装置及び並列画像処理方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080065625.6

Country of ref document: CN

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

Ref document number: 10848379

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012506708

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2010848379

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2010848379

Country of ref document: EP