WO2009101900A1 - 性能最適化システム、方法及びプログラム - Google Patents

性能最適化システム、方法及びプログラム Download PDF

Info

Publication number
WO2009101900A1
WO2009101900A1 PCT/JP2009/052041 JP2009052041W WO2009101900A1 WO 2009101900 A1 WO2009101900 A1 WO 2009101900A1 JP 2009052041 W JP2009052041 W JP 2009052041W WO 2009101900 A1 WO2009101900 A1 WO 2009101900A1
Authority
WO
WIPO (PCT)
Prior art keywords
access
bus
required period
period
observation target
Prior art date
Application number
PCT/JP2009/052041
Other languages
English (en)
French (fr)
Inventor
Noriaki Suzuki
Sunao Torii
Junji Sakai
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to JP2009553406A priority Critical patent/JP5397771B2/ja
Priority to US12/865,781 priority patent/US8738881B2/en
Publication of WO2009101900A1 publication Critical patent/WO2009101900A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Definitions

  • the present invention relates to a performance optimization system, method, and program, and more particularly to a performance optimization system and method that can collect and analyze duration information such as a penalty caused by a cache miss or the like.
  • a cache memory used in a processor such as a micro processing unit (MPU) is composed of a set of memory of tag memory and data memory (called “cache line”), and data of the cache line is a part of address ( (See, for example, Patent Document 1). Therefore, when a memory access to a certain address occurs from the processor, the index of the address determines a specific cache line of the cache memory, and data is read from the corresponding tag memory and data memory. The read tag memory data is compared with the data of the upper bits in the address of the memory access.
  • the memory access address and cache miss information can be acquired, it can be known in which part of the program a cache miss has occurred, and if the program in that part is optimized, the processor performance can be improved.
  • Patent Document 1 discloses a cache observation device, a processor analysis method, and a cache memory which can acquire data effective for program optimization by adding a relatively small circuit. It is disclosed. The configuration is shown in FIG.
  • the performance optimization system described in Patent Document 1 includes a cache miss determination unit e1, an entry area determination unit e2, and a cache miss frequency counting unit e10.
  • the performance optimization system having such a configuration operates as follows. That is, the cache miss determination unit e1 determines whether or not a cache miss has occurred when an access to the cache memory e3 has occurred.
  • the entry area determination means e2 determines which cache entry area of the cache memory e3 the cache miss access is to use, using a part of the index which is a part of the address specifying the cache line of the cache memory e3.
  • the cache miss number counting means e10 counts the number of cache miss accesses for each cache entry area specified by the entry area determination means e2.
  • the first problem is that although the number of cache misses is small, it can not be identified when the performance impact is large. The reason is that it is not possible to measure the size of the required period such as access delay and waiting time.
  • the second problem is that correction can not be made around the cache memory, for example, when using a processor such as an MPU (central processing unit, data processing unit, etc.) comprising an MPU core and cache memory, etc. provided from outside the company.
  • MPU central processing unit, data processing unit, etc.
  • the reason is that you can not make a cache miss observation.
  • the reason is that a cache miss access is determined when accessing a cache memory, and it is necessary to observe signals around the cache memory.
  • the third problem is that it is not possible to grasp the influence on performance due to competition with other bus masters. The reason is that it is not possible to distinguish between latency due to bus arbitration and pure access delay.
  • An object of the present invention is to solve the above problems and to provide a performance optimization system capable of identifying when the number of cache misses is small but the influence on the performance is large.
  • a first performance optimization system comprises a required period counting means for counting a required period related to access to an observation target, and a memory area for each classification based on the access to the observation target.
  • Required period table holding means for holding a required period table for storing the counted value of the required period consisting of a plurality of table entries for storing the counted value of the required period for each divided classification area.
  • Table entry selection means for selecting which table entry of the plurality of table entries for each of the classification areas that constitute the required period table stores the count value of the required period based on the access of
  • cache miss observing means for detecting the occurrence of a cache miss accompanying the access of the object That.
  • a second performance optimization system comprises a required period counting means for counting a required period related to access to an observation target, and a memory area divided for each classification based on the access to the observation target, and the divided classification Required period table holding means for holding a required period table consisting of a plurality of table entries for storing count values of the required period for each region, and the classification region constituting the required period table based on the access of the observation target Table entry selecting means for selecting which table entry of a plurality of table entries for each time period stores the count value of the required period, and bus access observing means for detecting occurrence of bus access accompanying access to the observation target It is characterized by having.
  • the first performance optimization method detects occurrence of cache miss access accompanying access to an observation target, starts counting of a required period related to the access, and for each classification based on access to the observation target
  • a table entry is selected from a required period table consisting of a plurality of table entries for dividing the memory area and storing the counted value of the required period for each divided classification area, detecting the end of the cache miss access, and the access
  • the selected table entry of the plurality of table entries constituting the required period table is finished by counting the required period related to the time interval from the occurrence to the end of the cache miss access. It is characterized by updating.
  • a second performance optimization method detects occurrence of bus access accompanying access to observation target, starts counting of a required period related to the access, and stores memory for each classification based on access to the observation target
  • the table entry is selected from a required period table consisting of a plurality of table entries storing the counted value of the required period for each divided classification region, the end of the bus access is detected, and the access is concerned Ending the counting of the required period, and updating the selected table entry among the plurality of table entries constituting the required period table with the counted value of the required time between the occurrence of the bus access and the end It is characterized by
  • a first performance optimization program comprises, in a computer, processing of detecting occurrence of cache miss access accompanying access to observation target, processing of starting counting of a required period related to the access, and observation target Processing of selecting a table entry from a required period table consisting of a plurality of table entries for storing the count value of the required period for each divided classification area, dividing the memory area for each classification based on the access of A plurality of processing of detecting the end of access, processing of ending counting of the required period related to the access, and a plurality of the required period table by counting values of the required time from generation to end of the cache miss access And the process of updating the selected table entry within the table entry of Characterized in that to the row.
  • a second performance optimization program comprises, in a computer, processing of detecting occurrence of bus access accompanying access to observation target, processing of starting counting of a required period related to the access, and processing of the observation target
  • FIG. 1 is a block diagram showing the configuration of a performance optimization system disclosed in Patent Document 1;
  • the performance optimization system includes required period counting means, table entry selecting means, required period table holding means, and cache miss observation means.
  • the cache miss observing means detects the occurrence of a cache miss.
  • the required period counting means counts a required period such as an access delay or waiting time due to a cache miss.
  • the table entry selecting means selects cache miss access for each classification area based on the access such as the address value of the access to be observed, and corresponds to the selected classification area according to the count value of the required period by the required period counting means.
  • the corresponding table entry of the required period table holding means is updated.
  • a performance optimization system comprises required period counting means, table entry selecting means, required period table holding means, and bus access observing means.
  • the bus access observing means detects bus access.
  • the required period counting means counts a required period such as an access delay or waiting time due to a cache miss.
  • the table entry selecting means classifies the cache miss access and other accesses by sorting for each classification area based on access such as access type, and the sorted area sorted according to the count value of the required period by the required period counting means The corresponding table entry of the required period table holding means corresponding to is updated.
  • a performance optimization system comprises a required period counting unit, a table entry selecting unit, a required period table holding unit, a bus access observing unit, a bus arbitration observing unit, and a bus arbitration
  • a period counting unit and a bus arbitration period table holding unit are provided. Each of these means operates as follows.
  • the bus access observing means detects bus access.
  • the required period counting means counts required periods such as access delay and waiting time.
  • the bus arbitration observing means detects bus arbitration.
  • the bus arbitration period counting means counts a required period such as a waiting time due to the bus arbitration.
  • the table entry selecting means sorts the bus access into classification areas based on access such as the address value of the access to be observed, and the requirement period counting means corresponds to the sorted classification area according to the count value of the required period.
  • the corresponding table entry of the period table holding unit is updated, and the corresponding table entry of the bus arbitration period table holding unit corresponding to the classified classification area is updated according to the count value of the required period by the bus arbitration period counting unit.
  • Adopting such a configuration by observing both the required period of access delay and latency and the bus arbitration period occupied by the bus arbitration among the required period, the number of cache misses is small, but It is possible to provide a performance optimization system capable of identifying the case where the influence is large, and also grasping the influence on the performance due to the competition with other bus masters.
  • the first effect is that it is possible to identify the case where the number of cache misses is small but the influence on performance is large.
  • the reason is that the required period counting means and the required period table holding means can measure the influence of the required period such as the number of waiting cycles due to each cache miss, and can identify the case where the number of cache misses is small but the influence on performance is large. It is in.
  • the second effect is that cache misses can be observed even when corrections can not be made, such as MPU cores and cache memories provided from outside the company.
  • cache miss accesses flowing on an externally located bus such as an MPU core and a cache memory can be observed separately from other accesses by the bus access observing means and table entry selecting means.
  • the third effect is that the influence with other bus masters can be grasped.
  • the reason is that the bus arbitration observing means, the bus arbitration period counting means, and the bus arbitration period table holding means can distinguish the waiting time and other waiting times by the arbitration of the bus.
  • the performance optimization system is an MPU (including a central processing unit or processor or data processing unit) 110 having an MPU core 111 and a cache memory 112. , And includes a required period counting unit 202, a table entry selecting unit 203, a required period table holding unit 301, and a cache miss observing unit 201.
  • the cache miss observation unit 201 includes a cache miss access occurrence notification unit 211 and a cache miss access end notification unit 212. Each of these means operates roughly as follows.
  • the required period counting means 202 counts required periods such as access delay and waiting time.
  • the table entry selection unit 203 uses one of an address value of an access to be observed, an access type such as write / read distinction, a length of burst access, an access ID (identifier), or a plurality of combinations thereof. It selects which table entry of the required period table held by the required period table holding means 301 stores the counting result (count value) of the required period.
  • the required period table holding means 301 holds a required period table consisting of a plurality of table entries storing the required period values for each area classified by the table entry selection means 203.
  • the cache miss observing means 201 has a function of detecting that a cache miss has occurred, a function of notifying the occurrence of a cache miss access by means of an internal cache miss access occurrence notifying means 211, and a cache miss on a bus that occurs due to a cache miss. It has a function of detecting the end of access and a function of notifying the end of cache miss access by the internal cache miss access end notifying means 212.
  • the cache miss observation unit 201 continues observation of access to the cache memory 112 in the MPU 100 (step S11: No).
  • the cache miss observing unit 201 accesses the required period counting unit 202 and the table entry selecting unit 203 by the cache miss access occurrence notifying unit 211 therein. Report occurrences.
  • the required period counting unit 202 starts counting of the required period upon receiving the access occurrence notification from the cache miss observation unit 201 (step S12).
  • the table entry selection means 203 uses the address value of the notified access information to obtain the result of It is selected whether to update the value) (step S13).
  • the cache miss observing means 201 continues monitoring the end of the cache miss access to the bus which occurs due to a cache miss (step S14: No).
  • the cache miss observation unit 201 notifies the required period counting unit 202 of the access termination by the cache miss access end notification unit 212 therein.
  • the required period counting unit 202 ends the counting of the required period (step S15).
  • the required period counting unit 202 updates the table entry of the required period table holding unit 301 (step S16).
  • the table entry to be updated is one selected by the table entry selection unit 203.
  • the table entry selection in step S13 can be executed without being limited to the order of description, as long as it is a period from the access detection in step S11 to the required period table update in step S16.
  • the required period counting means 202 and the required period table holding means 301 are configured to be able to measure the influence of the required period such as the number of waiting cycles due to each cache miss, so the number of cache misses is small. It is possible to identify when the impact on performance is large.
  • the table entry selecting unit 203 and the required period table holding unit 301 can hold the value of the required period for each area classified based on the access such as the address range and the content of the access. As a result, it is possible to identify in which area an access having a large impact on performance occurs.
  • the original memory area is divided and a table is divided for each divided area. Since the entries are configured and measured, there is also an advantage that, when accesses occur in a plurality of areas of the memory, it becomes easy to separate cases where the penalty caused by a cache miss or the like differs greatly depending on the areas.
  • the performance optimization system is connected to the bus master 100 and the peripheral circuit 120 located outside the MPU core and cache memory etc. It has selection means 203, required period table holding means 301, and bus access observation means 204.
  • the bus access observing means 204 includes a bus access occurrence notifying means 221 and a bus access end notifying means 222. Each of these means operates roughly as follows.
  • the required period counting means 202 counts required periods such as access delay and waiting time.
  • the table entry selection unit 203 uses the address value of the access to be observed, the type of access such as write / read distinction, the length of burst access, access ID, etc., or a plurality of combinations thereof, and the required period table Select which table entry of to store the counting result of the required period.
  • the required period table holding means 301 holds a required period table consisting of a plurality of table entries storing the required period values for each area classified by the table entry selection means 203.
  • the bus access observing means 204 has a function of detecting that an access to a bus has occurred, a function of notifying an access detected by the internal bus access occurrence notifying means 221, a function of detecting the end of bus access, and And the function of notifying the end of the bus access by the bus access end notifying means 222 of FIG.
  • the bus access observing means 204 continues observing the occurrence of access to the bus (step S21: No). As a result, when the access is detected (step S21: Yes), the bus access observing means 204 notifies the required period counting means 202 and the table entry selecting means 203 of the access occurrence by the bus access occurrence notifying means 221 inside thereof.
  • the required period counting unit 202 starts counting the required period upon receiving the access generation notification from the bus access observing unit 204 (step S22).
  • the table entry selection means 203 similarly receives an access occurrence notification from the bus access observation means 204, the address value of the notified access information, the type of access such as write / read distinction, burst access length, etc. Using one of the access ID and the like or a plurality of combinations thereof, it is selected which table entry result of the required period table holding means 301 is to be updated (step S23).
  • step S24: No the bus access observing means 204 continues monitoring the end of the bus access.
  • step S24: Yes the bus access observing unit 204 notifies the required period counting unit 202 of the access termination by the bus access termination notifying unit 222 therein.
  • the required period counting unit 202 ends the counting of the required period (step S25).
  • the required period counting unit 202 updates the table entry of the required period table holding unit 301 (step S26).
  • the table entry to be updated is one selected by the table entry selection unit 203.
  • the table entry selection in step S23 can be executed without being limited to the order of description, as long as it is a period from the access detection in step S21 to the update of the required period table in step S26.
  • cache miss access takes a characteristic form different from other accesses.
  • accesses flowing through the bus which are located outside the MPU core, cache memory, etc., are observed by the bus access observing means 204, and cache miss access and other accesses are separated by the table entry selecting means 203.
  • the bus access observing means 204 By taking the form of storing data, it is possible to observe a cache miss even when no correction can be made, such as an MPU comprising an MPU core and a cache memory provided from outside the company.
  • bus access observing means 204 is provided instead of the cache miss observing means 201 and is configured to be able to measure a required period other than a cache miss, a DMA (Direct Memory Access) controller or It is possible to observe a required period of a bus master other than the MPU having a cache, such as other functional blocks.
  • DMA Direct Memory Access
  • bus masters other than MPUs that use a plurality of access types the influence on performance can be separately observed for each access type.
  • the performance optimization system is connected to the bus master 100 and the peripheral circuit 120 located outside of the MPU core and the cache memory etc.
  • a selection unit 203, a required period table holding unit 301, a bus access observation unit 204, a bus arbitration observation unit 205, a bus arbitration period counting unit 206, and a bus arbitration period table holding unit 303 are provided.
  • the bus access observing means 204 includes bus access occurrence notifying means (not shown) and bus access end notifying means (not shown). Each of these means operates roughly as follows.
  • the required period counting means 202 counts required periods such as access delay and waiting time.
  • the table entry selection means 203 uses any one of the address value of the access to be observed, the access type such as write / read distinction, the length of burst access, access ID etc. Select whether to save the counting result of the required period in the table entry.
  • the required period table holding means 301 holds a required period table consisting of a plurality of table entries storing the required period values for each area classified by the table entry selection means 203.
  • the bus access observing means 204 detects the occurrence of the access to the bus, the function of notifying the access detected by the internal bus access occurrence notifying means (not shown), and the end of the bus access. A function and a function of notifying the end of bus access by means of internal bus access end notifying means (not shown) are provided.
  • the bus arbitration observing unit 205 detects that the arbitration wait due to the competition of the plurality of bus masters 100 is occurring.
  • the bus arbitration period counting means 206 counts a period during which arbitration wait is occurring due to the contention of the plurality of bus masters 100.
  • the bus contention time measured here is for the bus master 100 to which the controller of the bus performing the arbitration of the bus access right does not give the access right when a plurality of bus masters 100 make access requests to the bus. Corresponds to the number of cycles waiting for access.
  • the bus arbitration period table holding unit 303 holds a bus arbitration period table made up of a plurality of table entries for storing the bus arbitration period value for each area classified by the table entry selection unit 203.
  • the bus access observing means 204 continues observing the occurrence of access to the bus (step S31: No). As a result, when the access to the bus is detected (step S31: Yes), the bus access observing unit 204 counts the required period counting unit 202 and the table entry selecting unit 203 by the bus access occurrence notifying unit (not shown) therein. , And notifies the bus arbitration observing means 205 of the access occurrence.
  • the required period counting unit 202 starts counting the required period upon receiving an access generation notification from the bus access observing unit 204 (step S32).
  • the table entry selection means 203 similarly receives an access occurrence notification from the bus access observation means 204, the access value of the notified bus access information, access type such as write / read distinction, burst access length, etc. It selects which table entry result of the required period table holding means 301 is to be updated using any one of the access ID and the like or a plurality of combinations thereof (step S33).
  • the bus arbitration observing unit 205 similarly receives an access generation notification from the bus access observing unit 204, but when the arbitration wait due to the bus contention is not generated in the access of the observation target (step S34: No), Then, the process proceeds to step S38. On the other hand, if arbitration wait due to bus contention occurs in the access to be observed (step S34: Yes), the bus arbitration observing unit 205 notifies the bus arbitration period counting unit 206 that the bus arbitration waiting has occurred, and the bus arbitration period The counting means 206 starts counting of the bus arbitration period (step S35).
  • step S36: No the bus arbitration observing unit 205 continues the observation of the bus arbitration.
  • step S36: Yes the bus arbitration observing unit 205 notifies the bus arbitration period counting unit 206 of the bus arbitration waiting end, and the bus arbitration period counting unit 206 The counting of the bus arbitration period is ended (step S37).
  • the bus access observing means 204 continues monitoring the end of the bus access (step S38: No). As a result, when the bus access is completed (step S38: Yes), the bus access observing unit 204 notifies the required period counting unit 202 of the access termination by the bus access termination notifying unit 222 therein.
  • the required period counting unit 202 ends the counting of the required period upon receiving the access end notification from the bus access observing unit 204 (step S39).
  • the required period counting unit 202 updates the table entry of the required period table holding unit 301
  • the bus arbitration period counting unit 206 updates the table entry of the bus arbitration period table holding unit 303 (steps S310 and S311).
  • the table entry to be updated is one selected by the table entry selection unit 203.
  • the table entry selection in step S33 can be executed without being limited to the order of description, as long as it is a period from the access detection in step S31 to the update of the required period table in step S310.
  • bus arbitration period table update in step S310 can be executed after the completion of the bus arbitration period counting in step S37 without being limited to the order of description, as long as the table entry is selected.
  • the bus arbitration observation means, the bus arbitration period counting means, and the bus arbitration period table holding means make it possible to distinguish between waiting time and other waiting time by arbitration of the bus, and to grasp the influence with other bus masters. .
  • the performance optimization system is connected to the bus master 100 and the peripheral circuit 120 located outside the MPU core and cache memory etc. It has selection means 203, required period table holding means 301, and bus access observation means 208.
  • the bus access observing means 208 includes a bus access occurrence notifying means 221, a bus access end notifying means 222, and an access type judging means 223. Each of these means operates roughly as follows.
  • the required period counting means 202 counts required periods such as access delay and waiting time.
  • the table entry selection unit 203 uses the address value of the access to be observed, the type of access such as write / read distinction, the length of burst access, access ID, etc., or a plurality of combinations thereof, and the required period table Select which table entry of to store the counting result of the required period.
  • the required period table holding means 301 holds a required period table consisting of a plurality of table entries storing the required period values for each area classified by the table entry selection means 203.
  • the bus access observing means 208 has a function of detecting that an access to the bus has been generated, an address value among the detected bus access information by the internal access type judging means 223, another value for writing / reading, and a burst access.
  • the bus access observing means 208 continues observing the occurrence of access to the bus (step S41: No). As a result, when the occurrence of access to the bus is detected (step S41: Yes), the bus access observation means 208 activates the access type determination means 223 therein.
  • the access type determination unit 223 detects a bus access detected using information such as an address value, an access type such as write / read distinction or burst access length, and an access ID among the detected bus access information. It is judged whether or not it conforms to any specified condition. As a result, when the condition is not met (step S42: No), the process returns to step S41, and the next bus access detection is performed. On the other hand, if the condition is met (step S42: Yes), the bus access observing unit 208 takes the required period counting unit 202 as the access occurrence notification that the access conformed by the bus access occurrence notifying unit 221 therein is generated. The table entry selection means 203 is notified.
  • the required period counting unit 202 starts counting the required period upon receiving an access generation notification from the bus access observing unit 208 (step S43).
  • the table entry selection means 203 similarly receives an access generation notification from the bus access observation means 208, the address value of the notified access information, the type of access such as write / read distinction, burst access length, etc. It is selected which table entry result of the required period table holding means 301 is to be updated using one of the access ID and the like or a plurality of combinations thereof (step S44).
  • the bus access observing means 208 continues monitoring the end of the bus access (step S45: No). As a result, when the access to the bus is completed (step S45: Yes), the bus access observing unit 208 notifies the required period counting unit 202 of the access termination by the bus access termination notifying unit 222 therein.
  • the required period counting unit 202 ends the counting of the required period (step S46).
  • the required period counting unit 202 updates the table entry of the required period table holding unit 301 (step S47).
  • the table entry to be updated is one selected by the table entry selection unit 203.
  • the table entry selection in step S44 can be executed without being limited to the order of description as long as it is a period from the access detection in step S41 to the required period table update in step S47.
  • the access type determination means is provided in the bus access observation means and configured to be able to observe while limiting the target access to be observed, it is possible to eliminate the access which does not need to be observed, or The capacity of the period table holding means can be reduced.
  • the performance optimization system is connected to an MPU 110 having an MPU core 111 and a cache memory 112, and includes a required period counting unit 202, a table entry selecting unit 203, and a required period.
  • a table holding unit 301, a cache miss observing unit 207, and an access number table holding unit 302 are included. Each of these means operates roughly as follows.
  • the required period counting means 202 counts required periods such as access delay and waiting time.
  • the table entry selection unit 203 uses the address value of the access to be observed, the type of access such as write / read distinction, the length of burst access, access ID, etc. Select which table entry is to store the counting result of the required period.
  • the required period table holding means 301 holds a required period table consisting of a plurality of table entries storing the required period values for each area classified by the table entry selection means 203.
  • the cache miss observing unit 207 has a function of detecting that a cache miss has occurred, a function of notifying the occurrence of a cache miss access by the internal cache miss access occurrence notifying unit 211, and a cache miss on a bus that occurs due to a cache miss.
  • the access number table holding means 302 holds an access number table consisting of a plurality of entries for storing the access number for each area classified by the table entry selection means 203.
  • the cache miss observing means 207 continues observing the access to the cache memory 112 (step S51: No). As a result, when it is detected that a cache miss has occurred (step S51: Yes), the cache miss observing unit 207 accesses the required period counting unit 202 and the table entry selecting unit 203 by the cache miss access occurrence notifying unit 211 therein. Report occurrences.
  • the required period counting unit 202 starts counting the required period upon receiving the access occurrence notification from the cache miss observing unit 207 (step S52).
  • the table entry selection means 203 receives an access occurrence notification from the cache miss observation means 207, which table entry of the required period table holding means 301 is to be updated using the notified address value of the access information Is selected (step S53).
  • the cache miss observing means 207 continues to monitor the end of the cache miss access to the bus generated due to the cache miss (step S54: No). As a result, when the cache miss access to the bus is completed (step S54: Yes), the cache miss observing unit 207 notifies the required period counting unit 202 of the access termination by the cache miss access end notifying unit 212 therein.
  • the required period counting unit 202 ends the counting of the required period (step S55).
  • the required period counting unit 202 is a table entry of the required period table holding unit 301
  • the cache miss observing unit 207 is a table entry of the access number table holding unit 302 by the access number table updating unit 213 therein. It updates (steps S56 and S57). The entry to be updated is selected by the table entry selection unit 203.
  • step S53 can be executed without being limited to the order of description, as long as it is a period from the access detection in step S51 to the required period table update in step S56.
  • the access number table update in step S57 can be executed after the access detection in step S51 without being limited to the order of description as long as the table entry is selected.
  • the access number table holding unit 302 is configured to be able to hold the access number for each classification area, and therefore, in combination with the required period information for each area held by the required period table holding unit 301, The average duration of access for each classification area can be identified.
  • the performance optimization system of this embodiment shown in FIG. 11 is connected to the bus master 100 and the peripheral circuit 120 located outside the MPU core and cache memory etc., and includes an access delay cycle measurement counter 401 and bus arbitration cycle measurement. It has a counter 402, an address generator 403, a setting register 404, an entry updater 405, an AND circuit 406, a table memory 410, and a bus access observer 420.
  • the table memory 410 holds a table composed of a plurality of entries (table entries) 411 including an access number holding unit 412, an access delay holding unit 413, and a bus arbitration cycle number holding unit 414.
  • the bus access observer 420 includes an access filter 421 that narrows down the target access.
  • the bus access observer 420 receives the signal from the observation point of the bus and the signal of the setting content from the setting register 404, and observes based on the signal from the observation point of the bus according to the setting content notified from the setting register 404. I do. At this time, if the setting of the setting register 404 is set to narrow the observation target, the narrowing is performed by the access filter 421.
  • the bus access observer 420 notifies the access delay cycle measurement counter 401, the bus arbitration cycle measurement counter 402, the entry updater 405, and the AND circuit 406 of the observation target access detection notification and the observation target access end notification. Therefore, the observation target access detection / end notification signal is set to H level while the observation target access is occurring, the detection notification changes from L level to H level, and the end notification changes from H level to L level. Done by the change of When a bus access to be observed is detected, the address generator 403 is notified of an address value of the access to be observed, an access type such as write / read distinction, a length of burst access, an access ID and the like.
  • busses that adopt a method in which a plurality of accesses overlap.
  • the bus access observer 420 needs to be able to cope with the case where multiple bus accesses overlap.
  • the configuration can be easily expanded to a configuration in which a plurality of bus masters are to be observed, and it is desirable to be a target.
  • the access delay cycle measurement counter 401 receives, from the bus access observer 420, notification of start and end of the target bus access to be observed.
  • the bus access observer 420 is configured to output the H level to the observation target access detection / end notification signal during the generation of the observation target access
  • the access delay cycle measurement counter 401 is a bus access observer The number of cycles during the period when the signal from 420 is at H level is counted.
  • the counting is finished and the measured value is notified to the entry updater 405.
  • the access delay cycle measurement counter 401 needs to have a plurality of counters so that it can cope with the case where a plurality of bus accesses overlap.
  • the bus arbitration cycle measurement counter 402 receives a bus arbitration detection notification and an end notification from the AND circuit 406.
  • the AND circuit 406 is configured to output the H level when the observation target bus master 100 waits for arbitration while the observation target access is occurring.
  • the bus arbitration cycle measurement counter 402 counts the number of cycles during the period when the signal from the AND circuit 406 is at the H level, and when the signal from the AND circuit 406 changes from the H level to the L level, counting is completed and measurement is performed. The value is notified to the entry updater 405.
  • bus arbitration cycle measurement counter 402 needs to have a plurality of counters so that it can cope with the case where a plurality of bus accesses overlap.
  • the address generator 403 receives from the bus access observer 420 the address value of the access to be observed, the type of access such as write / read distinction, the length of the burst access, the access ID and the like. The address generator 403 uses these pieces of information to calculate the address of the table memory 410 in which the entry for storing the measurement result is stored, and notifies the entry updater of the address.
  • the setting register 404 holds the setting of the observation target of the bus access observer 420, the setting of the operation, the setting of the operation of the address generator 403, etc., and notifies the bus access observer 420 and the address generator 403, respectively.
  • the entry updater 405 is a detection / end notification of the access to be observed from the bus access observer 420, notification of measurement values from the access delay cycle measurement counter 401 and the bus arbitration cycle measurement counter 402, and a table from the address generator 403. The notification of the address of the memory 410 is received.
  • the entry updater 405 has a function of updating the entry 411 on the table memory 410.
  • the update is started when the end of the observation target access is notified, but this notification detects that the observation target access detection / end notification signal from the bus access observer 420 has changed from the H level to the L level. To be done.
  • the entry updater 405 reads the value of the update target entry 411 on the table memory 410 based on the address notified from the address generator 403.
  • the entry 411 includes an access number holding unit 412, an access delay holding unit 413, and a bus arbitration cycle number holding unit 414, but the entry updater 405 adds 1 to the value of the access number holding unit 412.
  • the measured value notified from the access delay cycle measurement counter 401 is added to the value of the access delay holding unit 413, and the measured value notified from the bus arbitration cycle measurement counter 402 is added to the value of the bus arbitration cycle number holding unit 414.
  • write-back is performed on the update target entry 411 on the table memory 410.
  • the AND circuit 406 receives an observation target access detection / end notification signal from the bus access observer 420 and an arbitration wait signal of the observation target bus master 100 from the bus arbiter 130.
  • the bus arbiter 130 is configured to output the H level when the observation target bus master 100 is waiting for arbitration.
  • H is at H level during observation target access occurrence and H level at arbitration wait of observation target bus master, and bus arbitration cycle when observation target bus master 100 becomes arbitration wait during observation target access occurrence.
  • the bus access observation unit 420 continues observation of the occurrence of access to the bus (step S61: No), and when access is detected (step S61: Yes), sorting by the internal access filter 421 is started.
  • the access filter 421 uses the setting register 404 for the detected bus access using information such as address value, access type such as write / read distinction, burst access length, and access ID. Determines if any specified conditions are met.
  • the condition is not met (step S62: No)
  • the process returns to the next bus access detection.
  • the bus access observing device 420 updates the access delay cycle measurement counter 401, the address generator 403, and the entry as an access occurrence notification that the matched access has occurred.
  • the unit 405 and the AND circuit 406 are notified (the notification to the entry updater 405 has no meaning here).
  • the notification is performed by changing the observation target access detection / end notification signal from L level to H level. At this time, notification of the address value of the observation target access to the address generator 403, the type of write / read distinction, the access type such as the length of the burst access, the access ID, etc. is simultaneously performed.
  • Step S63 since the access delay cycle measurement counter 401 is configured to count the number of cycles when the observation target access detection / end notification signal is at the H level, counting is started by the access occurrence notification from the bus access observer 420. (Step S63).
  • the address generator 403 receives the notification of the occurrence of an access from the bus access observing unit 420, simultaneously accesses the address value of the bus access information notified, the type of access such as write / read distinction, the length of burst access, etc.
  • the address of the table memory 410 in which the entry for storing the measurement result is stored is calculated using any one of ID and the like or a plurality of combinations thereof, and notified to the entry updater 405 (step S64).
  • the H level is input to one of the inputs of the AND circuit 406 as the observation target access detection / end notification signal.
  • the bus arbiter 130 Since the bus arbiter 130 is configured to output the H level when the observation target bus master 100 is in the arbitration wait state, the input of the AND circuit 406 is performed when the arbitration wait due to the bus contention does not occur in the access of the observation target. One of them is at the L level, and outputs the L level to the bus arbitration cycle measurement counter 402.
  • step S65: No the bus arbitration cycle measurement counter 402 does nothing (step S65: No), and the process proceeds to step S69.
  • step S65: Yes the two inputs of the AND circuit 406 become H level.
  • the bus arbitration cycle measurement counter 402 starts counting the bus arbitration period when the H level is input (step S66).
  • the bus arbitration cycle measurement counter 402 continues counting while the input from the AND circuit 406 is at H level (step S67: No), and when the bus arbitration waiting for the access to be observed is finished, the bus arbiter 130 to the AND circuit 406 Signal becomes L level, and the AND circuit 406 outputs L level (step S67: Yes).
  • the bus arbitration cycle measurement counter 402 ends the counting (step S67: Yes), and notifies the entry updater 405 of the count value (step S68).
  • the bus access observer 420 continues monitoring the end of the bus access (step S69: No).
  • the bus access observing unit 420 observes the access delay cycle measuring counter 401, the address generator 403, the entry updating unit 405, and the AND circuit 406 as observation objects.
  • the end of the access is notified by setting the access detection / end notification signal to L level (notice of notification to the address generator 403 and the AND circuit 406 here).
  • the access delay cycle measurement counter 401 ends counting of the required period (step S69: Yes), and notifies the entry updater 405 of the count value. (Step S610).
  • entry updater 405 receives the address notified from address generator 403.
  • the value of the update target entry 411 on the table memory 410 is read based on the above (step S611).
  • the update target entry 411 includes an access number holding unit 412, an access delay holding unit 413, and a bus arbitration cycle number holding unit 414.
  • the entry update unit 405 adds 1 to the value of the access number holding unit 412 with respect to the update target entry 411, and adds the count value notified from the access delay cycle measurement counter 401 to the value of the access delay holding unit 413.
  • the count value notified from the bus arbitration cycle measurement counter 402 is added to the value of the bus arbitration cycle number holding unit 414 (step S612).
  • the entry updater 405 writes back the update target entry 411 on the table memory 410 (step S613).
  • a cache miss access from a processor causes a characteristic bus access called "WRAP burst" on the bus.
  • WRAP burst when transferring n pieces of continuous data, transfer is started from the m-th arbitrary data in which 1 ⁇ m ⁇ n, and after the n-th data transfer, the 1st returns to the m ⁇ 1th
  • the procedure for transferring up to the data in (1) it is a transfer method which permits transfer of n pieces of data.
  • the length of the burst access is characterized in that it can transfer the number of data that satisfy the cache line.
  • the access generator 403 causes the WRAP burst to update different entries depending on the burst access length, or the access filter 421 in the bus access observer 420 according to the setting of the setting register 404.
  • Cache miss access can be separated and observed by a method of narrowing down and observing the corresponding access.
  • the performance optimization system can realize each process (function) of the components described above, the physical configuration of the system, hardware (circuit) inside the system, and
  • the software (program) configuration is not particularly limited.
  • the present invention can be applied to any form such as individually configuring individual circuits or units or program parts (program modules etc.), or integrally configuring in one circuit or unit. These forms can be appropriately selected according to the circumstances such as the function and application of the system actually used.
  • each function of the components described above may be realized by software processing by a computer such as a processor having a central processing unit (CPU).
  • a program performance optimization program for causing a computer to function is included in the scope of the present invention.
  • the program is not limited to a program of a format directly executable by the CPU, but includes various programs such as a program of a source format, a compressed program, an encrypted program, and the like.
  • this program operates in cooperation with a control program such as an OS (Operating System) or firmware that controls the entire system, or is incorporated in a part thereof to configure an application program that operates integrally. It can be provided in any form such as a software component (software module).
  • this program when installed and used in a system having a communication function of communicating with an external device via a wireless or wired line, it is downloaded from an external node such as a server connected on the line and It can also be installed and used on recording media of These forms can be appropriately selected according to the circumstances such as the function and application of the system actually used.
  • a computer readable recording medium recording the above computer program is also included in the scope of the present invention.
  • the recording medium can be applied in any form, such as a memory such as a ROM (Read Only Memory), which is fixedly used in the system, or a portable type which can be carried by the user. is there.
  • the present invention can be applied to an application of observing cache misses and collecting information for performance optimization.
  • the present invention can be applied to an application of observing information of a plurality of bus masters and performing performance optimization.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供する。性能最適化システムは、観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに所要期間の計数値を保存する複数のテーブルエントリからなる所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、観測対象のアクセスに基づいて、所要期間テーブルを構成する分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、観測対象のアクセスに伴うキャッシュミスの発生を検出するキャッシュミス観測手段とを備える。

Description

性能最適化システム、方法及びプログラム
 本発明は、性能最適化システム、方法及びプログラムに関し、特にキャッシュミスなどによって生じるペナルティなどの所要期間情報を収集し、分析できる性能最適化システムおよび性能最適化方法に関する。
 MPU(Micro Processing Unit)等のプロセッサで用いられるキャッシュメモリは、タグメモリとデータメモリとのメモリの組(「キャッシュライン」と呼ばれる。)で構成され、そのキャッシュラインのデータは、アドレスの一部分(「インデックス」と呼ばれる。)を用いて選択される(例えば、特許文献1参照)。このため、プロセッサから、あるアドレスへのメモリアクセスが発生すると、そのアドレスのインデックスによってキャッシュメモリの特定のキャッシュラインが決まり、それに該当するタグメモリとデータメモリとからデータが読み出される。読み出されたタグメモリのデータは、そのメモリアクセスのアドレスにおける上位ビットのデータと比較される。その結果、両データが一致すれば、該当するキャッシュラインのデータが有効とされ(「キャッシュヒット」と呼ばれる。)、そのデータメモリのデータがプロセッサに渡される一方、両データが異なれば、該当するキャッシュラインのデータは無効とされる(「キャッシュミス」と呼ばれる)。
 ここで、メモリアクセスのアドレスとキャッシュミス情報を取得できれば、プログラムのどの部分でキャッシュミスが発生しているかが分かり、その部分のプログラムを最適化すれば、プロセッサの性能向上を図ることができる。
 このような性能最適化システムの一例として、特許文献1には、比較的小規模な回路追加でプログラムの最適化に有効なデータを取得できる、キャッシュ観測装置、プロセッサの解析方法、及びキャッシュメモリが開示されている。図13にその構成を示す。
 図13に示すように、特許文献1に記載されている性能最適化システムは、キャッシュミス判定手段e1と、エントリ領域判定手段e2と、キャッシュミス回数計数手段e10とから構成されている。
 このような構成を有する性能最適化システムは、次のように動作する。すなわち、キャッシュミス判定手段e1は、キャッシュメモリe3へのアクセス発生時に、キャッシュミスが発生したか否かを判定する。エントリ領域判定手段e2は、キャッシュメモリe3のキャッシュラインを指定するアドレスの一部分であるインデックスの一部を用いて、キャッシュミスアクセスがキャッシュメモリe3のどのキャッシュエントリ領域へのアクセスであったかを判定する。キャッシュミス回数計数手段e10は、エントリ領域判定手段e2で指定されるキャッシュエントリ領域ごとに、キャッシュミスアクセスの回数を計数する。
 これによれば、分割されたキャッシュエントリ領域のどの領域でどれだけのキャッシュミスが発生したかを測定することができ、インデックスの分布を利用することで比較的小規模な回路追加によりプログラムの最適化に有効なデータを効率よく取得することができる、とされている。
特開2007-206806号公報
 しかし、特許文献1に記載の性能最適化システムには、次のような問題があった。
 第1の問題点は、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができないことである。その理由は、アクセス遅延、待ち時間などの所要期間の大きさを測定できないことによる。
 第2の問題点は、社外から提供されたMPUコア及びキャッシュメモリ等からなるMPU等のプロセッサ(中央処理装置、データ処理装置等)を用いた場合など、キャッシュメモリ周辺に修正を加えられない場合には、キャッシュミス観測を行えないことである。その理由は、キャッシュメモリに対するアクセス時にキャッシュミスアクセスを判定する手法を用いており、キャッシュメモリ周辺の信号を観測する必要があることによる。
 第3の問題点は、他のバスマスタとの競合による性能への影響を把握できないことである。その理由は、バスの調停による待ち時間と純粋なアクセス遅延の切り分けができないためである。
 さらに、特許文献1に記載の性能最適化システムでは、キャッシュエントリ領域毎にテーブルエントリを構成しているため、キャッシュエントリにはメモリの複数の箇所のデータが入ることから、それら複数の領域にアクセスが発生した場合にその箇所によってキャッシュミスなどによって生じるペナルティが大きく異なる場合の切り分けが難しいといった問題もあった。
 本発明の目的は、上記を解決し、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供することにある。
 上記目的を達成するため、本発明に係る第1の性能最適化システムは、観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる前記所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに前記所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、前記観測対象のアクセスに伴うキャッシュミスの発生を検出するキャッシュミス観測手段とを備えたことを特徴とする。
 本発明に係る第2の性能最適化システムは、観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する所要期間テーブル保持手段と、前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、前記観測対象のアクセスに伴うバスアクセスの発生を検出するバスアクセス観測手段とを備えたことを特徴とする。
 本発明に係る第1の性能最適化方法は、観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出し、前記アクセスに関わる所要期間の計数を開始し、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、前記キャッシュミスアクセスの終了を検出し、前記アクセスに関わる所要期間の計数を終了し、前記キャッシュミスアクセスの発生から終了までの間の前記所要時間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする。
 本発明に係る第2の性能最適化方法は、観測対象のアクセスに伴うバスアクセスの発生を検出し、前記アクセスに関わる所要期間の計数を開始し、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、前記バスアクセスの終了を検出し、前記アクセスに関わる所要期間の計数を終了し、前記バスアクセスの発生から終了までの間の前記所要時間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする。
 本発明に係る第1の性能最適化プログラムは、コンピュータに、観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出する処理と、前記アクセスに関わる所要期間の計数を開始する処理と、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、前記キャッシュミスアクセスの終了を検出する処理と、前記アクセスに関わる所要期間の計数を終了する処理と、前記キャッシュミスアクセスの発生から終了までの間の前記所要時間の計数値により前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、を実行させることを特徴とする。
 本発明に係る第2の性能最適化プログラムは、コンピュータに、観測対象のアクセスに伴うバスアクセスの発生を検出する処理と、前記アクセスに関わる所要期間の計数を開始する処理と、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、前記バスアクセスの終了を検出する処理と、前記アクセスに関わる所要期間の計数を終了する処理と、前記バスアクセスの発生から終了までの間の前記所要時間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、を実行させることを特徴とする。
 本発明によれば、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供することができる。
本発明の第1の実施例に係る性能最適化システムの構成を示すブロック図である。 第1の実施例に係る性能最適化システムの動作を示す流れ図である。 本発明の第2の実施例に係る性能最適化システムの構成を示すブロック図である。 第2の実施例に係る性能最適化システムの動作を示す流れ図である。 本発明の第3の実施例に係る性能最適化システムの構成を示すブロック図である。 第3の実施例に係る性能最適化システムの動作を示す流れ図である。 本発明の第4の実施例に係る性能最適化システムの構成を示すブロック図である。 第4の実施例に係る性能最適化システムの動作を示す流れ図である。 本発明の第5の実施例に係る性能最適化システムの構成を示すブロック図である。 第5の実施例に係る性能最適化システムの動作を示す流れ図である。 本発明の第6の実施例に係る性能最適化システムの構成を示すブロック図である。 第6の実施例に係る性能最適化システムの動作を示す流れ図である。 特許文献1に開示された性能最適化システムの構成を示すブロック図である。
符号の説明
100 バスマスタ
110 MPU(中央処理装置;プロセッサ;データ処理装置)
111 MPUコア
112 キャッシュメモリ
120 周辺回路
130 バスアービタ
201 キャッシュミス観測手段
202 所要期間計数手段
203 テーブルエントリ選択手段
204 バスアクセス観測手段
205 バス調停観測手段
206 バス調停期間計数手段
207 キャッシュミス観測手段
211 キャッシュミスアクセス発生通知手段
212 キャッシュミスアクセス終了通知手段
213 アクセス回数テーブル更新手段
221 バスアクセス発生通知手段
222 バスアクセス終了通知手段
223 アクセス種別判定手段
301 所要期間テーブル保持手段
302 アクセス回数テーブル保持手段
303 バス調停期間テーブル保持手段
401 アクセス遅延サイクル測定カウンタ
402 バス調停サイクル測定カウンタ
403 アドレス発生器
404 設定レジスタ
405 エントリ更新器
406 AND回路
410 テーブル用メモリ
420 バスアクセス観測器
411 エントリ(テーブルエントリ)
412 アクセス数保持部
413 アクセス遅延保持部
414 バス調停サイクル数保持部
421 アクセスフィルタ
 次に、本発明に係る性能最適化システム、方法及びプログラムを実施するための形態について、図面を参照して詳細に説明する。
 [第1の実施の形態]
 本発明の第1の実施の形態に係る性能最適化システムは、所要期間計数手段と、テーブルエントリ選択手段と、所要期間テーブル保持手段と、キャッシュミス観測手段とを備える。これらの各手段は、次のように動作する。キャッシュミス観測手段は、キャッシュミス発生を検出する。所要期間計数手段は、キャッシュミスによるアクセス遅延や待ち時間などの所要期間を計数する。テーブルエントリ選択手段は、キャッシュミスアクセスを観測対象のアクセスのアドレス値等のアクセスに基づく分類領域ごとに選別し、所要期間計数手段による所要期間の計数値により、その選別された分類領域に該当する所要期間テーブル保持手段の該当テーブルエントリを更新する。
 このような構成を採用し、性能に与える影響の大きさを計測することにより、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる性能最適化システムを提供することができる。
 [第2の実施の形態]
 本発明の第2の実施の形態に係る性能最適化システムは、所要期間計数手段と、テーブルエントリ選択手段と、所要期間テーブル保持手段と、バスアクセス観測手段とを備える。これらの各手段は、次のように動作する。バスアクセス観測手段は、バスアクセスを検出する。所要期間計数手段は、キャッシュミスによるアクセス遅延や待ち時間などの所要期間を計数する。テーブルエントリ選択手段は、アクセス種別等のアクセスに基づく分類領域ごとに選別することでキャッシュミスアクセスとその他のアクセスを分類し、所要期間計数手段による所要期間の計数値により、その選別された分類領域に該当する所要期間テーブル保持手段の該当テーブルエントリを更新する。
 このような構成を採用し、MPUコア及びキャッシュメモリ等からなるMPU等のプロセッサ(中央処理装置、データ処理装置等)の外部から観測することにより、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができると共に、さらに社外から提供されたMPUコア及びキャッシュメモリ等、修正を加えられない場合でも、キャッシュミス観測を行うことができる性能最適化システムを提供することができる。
 [第3の実施の形態]
 本発明の第2の実施の形態に係る性能最適化システムは、所要期間計数手段と、テーブルエントリ選択手段と、所要期間テーブル保持手段と、バスアクセス観測手段と、バス調停観測手段と、バス調停期間計数手段と、バス調停期間テーブル保持手段とを備える。これらの各手段は、次のように動作する。バスアクセス観測手段は、バスアクセスを検出する。所要期間計数手段は、アクセス遅延や待ち時間などの所要期間を計数する。バス調停観測手段は、バス調停を検出する。バス調停期間計数手段は、バス調停による待ち時間などの所要期間を計数する。テーブルエントリ選択手段は、バスアクセスを観測対象のアクセスのアドレス値等のアクセスに基づく分類領域ごとに選別し、所要期間計数手段による所要期間の計数値により、その選別された分類領域に該当する所要期間テーブル保持手段の該当テーブルエントリを更新すると共に、バス調停期間計数手段による所要期間の計数値により、上記の選別された分類領域に該当するバス調停期間テーブル保持手段の該当テーブルエントリを更新する。
 このような構成を採用し、アクセス遅延や待ち時間の所要期間と、所要期間のうちバス調停による待ち時間などが占めるバス調停期間の双方を観測することにより、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができると共に、さらに他のバスマスタとの競合による性能への影響を把握できる性能最適化システムを提供することができる。
 上記第1~第3の実施の形態によれば、次のような効果が得られる。
 第1の効果は、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができることである。その理由は、所要期間計数手段および所要期間テーブル保持手段により各キャッシュミスによる待ちサイクル数などの所要期間の影響が測定可能となり、キャッシュミス回数が少ないが性能に与える影響が大きい場合の特定ができることにある。
 第2の効果は、社外から提供されたMPUコア及びキャッシュメモリ等、修正を加えられない場合でも、キャッシュミスを観測できることにある。その理由は、本手法ではMPUコア及びキャッシュメモリ等の外部に位置するバスを流れるキャッシュミスアクセスを、バスアクセス観測手段およびテーブルエントリ選択手段によってその他のアクセスと区別して観測可能なためである。
 第3の効果は、他のバスマスタとの影響を把握できることである。その理由は、バス調停観測手段、バス調停期間計数手段およびバス調停期間テーブル保持手段により、バスの調停による待ち時間とその他の待ち時間の切り分けが可能なためである。
 以下、本発明の各実施例について、図面を参照して詳細に説明する。
 図1を参照すると、本発明の第1の実施例に係る性能最適化システムは、MPUコア111及びキャッシュメモリ112を有するMPU(中央処理装置、又はプロセッサ、或いはデータ処理装置等を含む。)110に接続されるもので、所要期間計数手段202と、テーブルエントリ選択手段203と、所要期間テーブル保持手段301と、キャッシュミス観測手段201とを有している。ここで、キャッシュミス観測手段201は、キャッシュミスアクセス発生通知手段211及びキャッシュミスアクセス終了通知手段212を含む。これらの手段は、それぞれ概略つぎのように動作する。
 所要期間計数手段202は、アクセス遅延や待ち時間などの所要期間を計数する。
 テーブルエントリ選択手段203は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスID(identifier)などのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブル保持手段301により保持される所要期間テーブルのどのテーブルエントリに所要期間の計数結果(計数値)を保存するかを選択する。
 所要期間テーブル保持手段301は、テーブルエントリ選択手段203によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。
 キャッシュミス観測手段201は、キャッシュミスが発生したことを検出する機能と、内部のキャッシュミスアクセス発生通知手段211によってキャッシュミスアクセスの発生を通知する機能と、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了を検出する機能と、内部のキャッシュミスアクセス終了通知手段212によってキャッシュミスアクセスの終了を通知する機能とを備える。
 次に、図2のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。
 まず、キャッシュミス観測手段201は、MPU100内のキャッシュメモリ112へのアクセスの観測を続ける(ステップS11:No)。その結果、キャッシュミスが発生したことを検出すると(ステップS11:Yes)、キャッシュミス観測手段201は、その内部のキャッシュミスアクセス発生通知手段211によって所要期間計数手段202及びテーブルエントリ選択手段203にアクセス発生を通知する。
 次に、所要期間計数手段202は、キャッシュミス観測手段201からのアクセス発生通知を受けると、所要期間の計数を開始する(ステップS12)。
 さらに、テーブルエントリ選択手段203は、キャッシュミス観測手段201からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値を用いて、所要期間テーブル保持手段301のどのテーブルエントリの結果(所要期間値)を更新するかを選択する(ステップS13)。
 この間、キャッシュミス観測手段201は、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了の監視を続ける(ステップS14:No)。その結果、キャッシュミスアクセスが終了すると(ステップS14:Yes)、キャッシュミス観測手段201は、その内部のキャッシュミスアクセス終了通知手段212によって所要期間計数手段202にアクセスの終了を通知する。
 ここで、所要期間計数手段202は、キャッシュミスアクセス観測手段201からのアクセス終了通知を受けると、所要期間の計数を終了する(ステップS15)。
 最後に、所要期間計数手段202は、所要期間テーブル保持手段301のテーブルエントリを更新する(ステップS16)。更新するテーブルエントリは、テーブルエントリ選択手段203によって選択されたものとなる。
 なお、ステップS13のテーブルエントリ選択については、ステップS11のアクセス検出後からステップS16の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。
 次に、本実施例の効果について説明する。
 本実施例では、所要期間計数手段202および所要期間テーブル保持手段301により各キャッシュミスによる待ちサイクル数などの所要期間の影響が測定可能なように構成されているため、キャッシュミス回数が少ないが、性能に与える影響が大きい場合の特定ができる。
 また、本実施例では、さらに、テーブルエントリ選択手段203および所要期間テーブル保持手段301によって、アドレス範囲やアクセスの内容等のアクセスに基づいて分類した領域ごとに所要期間の値を保持できるように構成されているため、性能に与える影響が大きいアクセスがどのような領域で発生しているかを特定することができる。
 また、本実施例では、例えば前述した特許文献1に記載の性能最適化システムのようにキャッシュエントリ領域ごとのテーブルエントリを構成するのではなく、元のメモリ領域を区切りその区切った領域ごとにテーブルエントリを構成して測定しているため、メモリの複数の領域にアクセスが発生した場合に、その領域によってキャッシュミスなどによって生じるペナルティが大きく異なる場合の切り分けも容易になる等の利点もある。
 次に、本発明の第2の実施例について図面を参照して詳細に説明する。
 図3を参照すると、本実施例に係る性能最適化システムは、MPUコア及びキャッシュメモリ等の外部に位置するバスマスタ100及び周辺回路120に接続されるもので、所要期間計数手段202と、テーブルエントリ選択手段203と、所要期間テーブル保持手段301と、バスアクセス観測手段204とを有している。ここで、バスアクセス観測手段204は、バスアクセス発生通知手段221及びバスアクセス終了通知手段222を含む。これらの手段は、それぞれ概略つぎのように動作する。
 所要期間計数手段202は、アクセス遅延や待ち時間などの所要期間を計数する。
 テーブルエントリ選択手段203は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。
 所要期間テーブル保持手段301は、テーブルエントリ選択手段203によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。
 バスアクセス観測手段204は、バスへのアクセスが発生したことを検出する機能と、内部のバスアクセス発生通知手段221によって検出したアクセスを通知する機能と、バスアクセスの終了を検出する機能と、内部のバスアクセス終了通知手段222によってバスアクセスの終了を通知する機能とを備える。
 次に、図4のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。
 まず、バスアクセス観測手段204は、バスへのアクセス発生の観測を続ける(ステップS21:No)。その結果、アクセスを検出すると(ステップS21:Yes)、バスアクセス観測手段204は、その内部のバスアクセス発生通知手段221によって所要期間計数手段202及びテーブルエントリ選択手段203にアクセス発生を通知する。
 次に、所要期間計数手段202は、バスアクセス観測手段204からのアクセス発生通知を受けると、所要期間の計数を開始する(ステップS22)。
 さらに、テーブルエントリ選択手段203は、同様にバスアクセス観測手段204からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブル保持手段301のどのテーブルエントリの結果を更新するかを選択する(ステップS23)。
 この間、バスアクセス観測手段204は、バスアクセスの終了の監視を続ける(ステップS24:No)。その結果、バスアクセスが終了すると(ステップS24:Yes)、バスアクセス観測手段204は、その内部のバスアクセス終了通知手段222によって所要期間計数手段202にアクセスの終了を通知する。
 ここで、所要期間計数手段202は、バスアクセス観測手段204からのアクセス終了通知を受けると、所要期間の計数を終了する(ステップS25)。
 最後に、所要期間計数手段202は、所要期間テーブル保持手段301のテーブルエントリを更新する(ステップS26)。更新するテーブルエントリは、テーブルエントリ選択手段203によって選択されたものとなる。
 なお、ステップS23のテーブルエントリ選択については、ステップS21のアクセス検出後からステップS26の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。
 次に、本実施例の効果について説明する。
 ある種のMPUやバスを利用した場合において、キャッシュミスアクセスはその他のアクセスと異なる特徴的な形態が取られている。ここで、本実施例では、MPUコア及びキャッシュメモリ等の外部に位置する、バスを流れるアクセスをバスアクセス観測手段204によって観測し、テーブルエントリ選択手段203によってキャッシュミスアクセスとその他のアクセスを分離して格納する形態を取ることで、社外から提供されたMPUコア及びキャッシュメモリ等からなるMPUなど、修正を加えられない場合でもキャッシュミスを観測できる。
 また、本実施例では、キャッシュミス観測手段201に代えてバスアクセス観測手段204を備え、キャッシュミスに限らない所要期間を測定可能なように構成されているため、DMA(Direct Memory Access)コントローラやその他の機能ブロックなど、キャッシュを備えるMPU以外のバスマスタの所要期間を観測できる。
 更に、本実施例では、複数のアクセス種別を使い分けるMPU以外のバスマスタについて、性能への影響をアクセス種別毎に切り分けて観測することもできる。
 次に、本発明の第3の実施例について図面を参照して詳細に説明する。
 図5を参照すると、本実施例に係る性能最適化システムは、MPUコア及びキャッシュメモリ等の外部に位置するバスマスタ100及び周辺回路120に接続されるもので、所要期間計数手段202と、テーブルエントリ選択手段203と、所要期間テーブル保持手段301と、バスアクセス観測手段204と、バス調停観測手段205と、バス調停期間計数手段206と、バス調停期間テーブル保持手段303とを有している。ここで、バスアクセス観測手段204は、バスアクセス発生通知手段(図示せず)及びバスアクセス終了通知手段(図示せず)を含む。これらの手段は、それぞれ概略つぎのように動作する。
 所要期間計数手段202は、アクセス遅延や待ち時間などの所要期間を計数する。
 テーブルエントリ選択手段203は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれかもしくはこれら複数の組み合わせを用いて所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。
 所要期間テーブル保持手段301は、テーブルエントリ選択手段203によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。
 バスアクセス観測手段204は、バスへのアクセスが発生したことを検出する機能と、内部のバスアクセス発生通知手段(図示せず)によって検出したアクセスを通知する機能と、バスアクセスの終了を検出する機能と、内部のバスアクセス終了通知手段(図示せず)によってバスアクセスの終了を通知する機能とを備える。
 バス調停観測手段205は、複数のバスマスタ100の競合による調停待ちが発生していることを検出する。
 バス調停期間計数手段206は、複数のバスマスタ100の競合による調停待ちが発生している期間を計数する。ここで測定されるバス競合時間は、複数のバスマスタ100がバスに対してアクセス要求を行った際に、バスのアクセス権の調停を行うバスのコントローラが、アクセス権を与えていないバスマスタ100に対してアクセスを待たせているサイクル数に対応する。
 バス調停期間テーブル保持手段303は、テーブルエントリ選択手段203によって分類された領域ごとのバス調停期間値を保存する複数のテーブルエントリからなるバス調停期間テーブルを保持する。
 次に、図6のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。
 まず、バスアクセス観測手段204は、バスへのアクセス発生の観測を続ける(ステップS31:No)。その結果、バスへのアクセス発生を検出すると(ステップS31:Yes)、バスアクセス観測手段204は、その内部のバスアクセス発生通知手段(図示せず)によって所要期間計数手段202、テーブルエントリ選択手段203、及びバス調停観測手段205にアクセス発生を通知する。
 次に、所要期間計数手段202は、バスアクセス観測手段204からのアクセス発生通知を受けると、所要期間の計数を開始する(ステップS32)。
 さらに、テーブルエントリ選択手段203は、同様にバスアクセス観測手段204からのアクセス発生通知を受けると、通知されたバスアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて所要期間テーブル保持手段301のどのテーブルエントリの結果を更新するかを選択する(ステップS33)。
 ここで、バス調停観測手段205は、同様にバスアクセス観測手段204からのアクセス発生通知を受けるが、観測対象のアクセスにバス競合による調停待ちが発生していない場合(ステップS34:No)、何もせずにステップS38に進む。一方、観測対象のアクセスにバス競合による調停待ちが発生している場合(ステップS34:Yes)、バス調停観測手段205は、バス調停期間計数手段206にバス調停待ち発生を通知し、バス調停期間計数手段206は、バス調停期間の計数を開始する(ステップS35)。
 その後、バス調停観測手段205は、バス調停の観測を続ける(ステップS36:No)。その結果、観測対象アクセスのバス調停待ち終了を検出すると(ステップS36:Yes)、バス調停観測手段205は、バス調停期間計数手段206にバス調停待ち終了を通知し、バス調停期間計数手段206は、バス調停期間の計数を終了する(ステップS37)。
 ここで、バスアクセス観測手段204は、バスアクセスの終了の監視を続ける(ステップS38:No)。その結果、バスアクセスが終了すると(ステップS38:Yes)、バスアクセス観測手段204は、その内部のバスアクセス終了通知手段222によって所要期間計数手段202にアクセスの終了を通知する。
 所要期間計数手段202は、バスアクセス観測手段204からのアクセス終了通知を受けると、所要期間の計数を終了する(ステップS39)。
 最後に、所要期間計数手段202は、所要期間テーブル保持手段301のテーブルエントリを、バス調停期間計数手段206は、バス調停期間テーブル保持手段303のテーブルエントリを、それぞれ更新する(ステップS310、S311)。更新するテーブルエントリは、テーブルエントリ選択手段203によって選択されたものとなる。
 なお、ステップS33のテーブルエントリ選択については、ステップS31のアクセス検出後からステップS310の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。
 また、ステップS310のバス調停期間テーブル更新については、テーブルエントリ選択後であれば、ステップS37のバス調停期間計数終了以降、表記の順序に限らず、実行可能である。
 次に、本実施例の効果について説明する。
 本実施例では、バス調停観測手段、バス調停期間計数手段およびバス調停期間テーブル保持手段により、バスの調停による待ち時間とその他の待ち時間の切り分けが可能となり、他のバスマスタとの影響を把握できる。
 次に、本発明の第4の実施例について図面を参照して詳細に説明する。
 図7を参照すると、本実施例に係る性能最適化システムは、MPUコア及びキャッシュメモリ等の外部に位置するバスマスタ100及び周辺回路120に接続されるもので、所要期間計数手段202と、テーブルエントリ選択手段203と、所要期間テーブル保持手段301と、バスアクセス観測手段208とを有している。ここで、バスアクセス観測手段208は、バスアクセス発生通知手段221、バスアクセス終了通知手段222及びアクセス種別判定手段223を含む。これらの手段は、それぞれ概略つぎのように動作する。
 所要期間計数手段202は、アクセス遅延や待ち時間などの所要期間を計数する。
 テーブルエントリ選択手段203は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて、所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。
 所要期間テーブル保持手段301は、テーブルエントリ選択手段203によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。
 バスアクセス観測手段208は、バスへのアクセスが発生したことを検出する機能と、内部のアクセス種別判定手段223によって、検出したバスアクセス情報のうち、アドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセスの種別、アクセスIDなど情報を用いて、指定された任意の条件に適合するアクセスを選別する機能と、内部のバスアクセス発生通知手段221によって検出したアクセスを通知する機能と、バスアクセスの終了を検出する機能と、内部のバスアクセス終了通知手段222によってバスアクセスの終了を通知する機能を備える。
 次に、図8のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。
 まず、バスアクセス観測手段208は、バスへのアクセス発生の観測を続ける(ステップS41:No)。その結果、バスへのアクセス発生を検出すると(ステップS41:Yes)、バスアクセス観測手段208は、その内部のアクセス種別判定手段223を起動する。
 次に、アクセス種別判定手段223は、検出したバスアクセス情報のうち、アドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどの情報を用いて、検出したバスアクセスが指定された任意の条件に適合するか判定を行う。その結果、条件に適合しない場合(ステップS42:No)は、ステップS41に戻り、次のバスアクセスの検出を行う。一方、条件に適合する場合(ステップS42:Yes)、バスアクセス観測手段208は、その内部のバスアクセス発生通知手段221によって適合したアクセスが発生したことをアクセス発生通知として、所要期間計数手段202及びテーブルエントリ選択手段203に通知する。
 次に、所要期間計数手段202は、バスアクセス観測手段208からのアクセス発生通知を受けると、所要期間の計数を開始する(ステップS43)。
 さらに、テーブルエントリ選択手段203は、同様にバスアクセス観測手段208からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて所要期間テーブル保持手段301のどのテーブルエントリの結果を更新するかを選択する(ステップS44)。
 この間、バスアクセス観測手段208は、バスアクセスの終了の監視を続ける(ステップS45:No)。その結果、バスへのアクセスが終了すると(ステップS45:Yes)、バスアクセス観測手段208は、その内部のバスアクセス終了通知手段222によって所要期間計数手段202にアクセスの終了を通知する。
 ここで、所要期間計数手段202は、バスアクセス観測手段208からのアクセス終了通知を受けると、所要期間の計数を終了する(ステップS46)。
 最後に、所要期間計数手段202は、所要期間テーブル保持手段301のテーブルエントリを更新する(ステップS47)。更新するテーブルエントリは、テーブルエントリ選択手段203によって選択されたものとなる。
 なお、ステップS44のテーブルエントリ選択については、ステップS41のアクセス検出後からステップS47の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。
 次に、本実施例の効果について説明する。
 本実施例では、バスアクセス観測手段内にアクセス種別判定手段を設け、観測する対象アクセスを限定して観測可能なように構成されているため、観測する必要がないアクセスを排除することや、所要期間テーブル保持手段の容量を削減することができる。
 次に、本発明の第5の実施例について図面を参照して詳細に説明する。
 図9を参照すると、本実施例に係る性能最適化システムは、MPUコア111及びキャッシュメモリ112を有するMPU110に接続されるもので、所要期間計数手段202と、テーブルエントリ選択手段203と、所要期間テーブル保持手段301と、キャッシュミス観測手段207と、アクセス回数テーブル保持手段302とを有している。これらの手段は、それぞれ概略つぎのように動作する。
 所要期間計数手段202は、アクセス遅延や待ち時間などの所要期間を計数する。
 テーブルエントリ選択手段203は、観測対象のアクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて所要期間テーブルのどのテーブルエントリに所要期間の計数結果を保存するかを選択する。
 所要期間テーブル保持手段301は、テーブルエントリ選択手段203によって分類された領域ごとの所要期間値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する。
 キャッシュミス観測手段207は、キャッシュミスが発生したことを検出する機能と、内部のキャッシュミスアクセス発生通知手段211によってキャッシュミスアクセスの発生を通知する機能と、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了を検出する機能と、内部のキャッシュミスアクセス終了通知手段212によってキャッシュミスアクセスの終了を通知する機能と、内部のアクセス回数テーブル更新手段213によってアクセス回数テーブル保持手段302によって保持されるアクセス回数テーブルを更新する機能とを備える。
 アクセス回数テーブル保持手段302は、テーブルエントリ選択手段203によって分類された領域ごとのアクセス回数を保存する複数のエントリからなるアクセス回数テーブルを保持する。
 次に、図10のフローチャートを参照して、本実施例の全体の動作について詳細に説明する。
 まず、キャッシュミス観測手段207は、キャッシュメモリ112へのアクセスの観測を続ける(ステップS51:No)。その結果、キャッシュミスが発生したことを検出すると(ステップS51:Yes)、キャッシュミス観測手段207は、その内部のキャッシュミスアクセス発生通知手段211によって所要期間計数手段202及びテーブルエントリ選択手段203にアクセス発生を通知する。
 次に、所要期間計数手段202は、キャッシュミス観測手段207からのアクセス発生通知を受けると、所要期間の計数を開始する(ステップS52)。
 さらに、テーブルエントリ選択手段203は、キャッシュミス観測手段207からのアクセス発生通知を受けると、通知されたアクセス情報のアドレス値を用いて所要期間テーブル保持手段301のどのテーブルエントリの結果を更新するかを選択する(ステップS53)。
 この間、キャッシュミス観測手段207は、キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了の監視を続ける(ステップS54:No)。その結果、バスへのキャッシュミスアクセスが終了すると(ステップS54:Yes)、キャッシュミス観測手段207は、その内部のキャッシュミスアクセス終了通知手段212によって所要期間計数手段202にアクセスの終了を通知する。
 ここで、所要期間計数手段202は、キャッシュミス観測手段207からのアクセス終了通知を受けると、所要期間の計数を終了する(ステップS55)。
 最後に、所要期間計数手段202は、所要期間テーブル保持手段301のテーブルエントリを、キャッシュミス観測手段207は、その内部のアクセス回数テーブル更新手段213によってアクセス回数テーブル保持手段302のテーブルエントリを、それぞれ更新する(ステップS56、S57)。更新するエントリは、テーブルエントリ選択手段203によって選択されたものとなる。
 なお、ステップS53のテーブルエントリ選択については、ステップS51のアクセス検出後からステップS56の所要期間テーブル更新までの期間であれば、表記の順序に限らず実行可能である。
 また、ステップS57のアクセス回数テーブル更新については、テーブルエントリ選択後であれば、ステップS51のアクセス検出以降表記の順序に限らず実行可能である。
 次に、本実施例の効果について説明する。
 本実施例では、アクセス回数テーブル保持手段302により分類領域ごとのアクセス回数を保持できるように構成されているため、所要期間テーブル保持手段301によって保持されている領域ごとの所要期間情報と組み合わせて、分類領域ごとのアクセスの平均所要期間を特定することができる。
 次に、本発明の第6の実施例について詳細に説明する。
 図11に示す本実施例の性能最適化システムは、MPUコア及びキャッシュメモリ等の外部に位置するバスマスタ100及び周辺回路120に接続されるもので、アクセス遅延サイクル測定カウンタ401と、バス調停サイクル測定カウンタ402と、アドレス発生器403と、設定レジスタ404と、エントリ更新器405と、AND回路406と、テーブル用メモリ410と、バスアクセス観測器420とを有している。
 テーブル用メモリ410は、アクセス数保持部412、アクセス遅延保持部413、バス調停サイクル数保持部414から構成される複数のエントリ(テーブルエントリ)411から構成されるテーブルを保持している。
 バスアクセス観測器420は、対象アクセスの絞込みを行うアクセスフィルタ421を含む。バスアクセス観測器420は、バスの観測点からの信号と、設定レジスタ404からの設定内容の信号を受け取り、設定レジスタ404から通知された設定内容に従って、バスの観測点からの信号を元に観測を行う。この時、設定レジスタ404の設定において観測対象の絞込みを行うよう設定されていた場合、アクセスフィルタ421によって絞込みを行う。
 バスアクセス観測器420は、観測対象アクセス検出通知と観測対象アクセス終了通知をアクセス遅延サイクル測定カウンタ401、バス調停サイクル測定カウンタ402、エントリ更新器405及びAND回路406に通知する。このために観測対象アクセスが発生中に観測対象アクセス検出・終了通知信号がHレベルとなるよう構成し、検出通知は信号がLレベルからHレベルへの変化、終了通知はHレベルからLレベルへの変化によって行われる。また、観測対象のバスアクセスを検出した際、観測対象アクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどを、アドレス発生器403に対して通知する。
 ここで、バスには複数のアクセスがオーバーラップする方式を採用するものが存在する。このようなバスを観測対象とする場合、バスアクセス観測器420は、複数のバスアクセスがオーバーラップするケースに対応できる必要がある。
 なお、本実施例においては、簡単のため単一のバスマスタ100における例を記載しているが、複数のバスマスタを観測対象とする構成に容易に拡張可能であり、対象とすることが望ましい。
 アクセス遅延サイクル測定カウンタ401は、バスアクセス観測器420から観測対象バスアクセスの開始通知と終了通知を受け取る。本実施例では、バスアクセス観測器420は、観測対象アクセス発生中に観測対象アクセス検出・終了通知信号にHレベルを出力するよう構成されており、アクセス遅延サイクル測定カウンタ401は、バスアクセス観測器420からの信号がHレベルである期間のサイクル数のカウントを行う。バスアクセス観測器420からの信号がHレベルからLレベルに変化すると、カウントを終了すると共に測定値をエントリ更新器405に通知する。
 ここで、バスには、複数のアクセスがオーバーラップする方式を採用するものが存在する。このようなバスを観測対象とする場合、アクセス遅延サイクル測定カウンタ401は、複数のバスアクセスがオーバーラップするケースに対応できるよう、複数のカウンタを備える必要がある。
 バス調停サイクル測定カウンタ402は、AND回路406からバス調停検出通知と終了通知を受け取る。本実施例では、AND回路406は、観測対象アクセス発生中に観測対象バスマスタ100が調停待ちとなった場合にHレベルを出力するよう構成されている。バス調停サイクル測定カウンタ402は、AND回路406からの信号がHレベルである期間のサイクル数のカウントを行い、AND回路406からの信号がHレベルからLレベルに変化すると、カウントを終了すると共に測定値をエントリ更新器405に通知する。
 ここで、バスには、複数のアクセスがオーバーラップする方式を採用するものが存在する。このようなバスを観測対象とする場合、バス調停サイクル測定カウンタ402は、複数のバスアクセスがオーバーラップするケースに対応できるよう、複数のカウンタを備える必要がある。
 アドレス発生器403は、バスアクセス観測器420から観測対象アクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどを受け取る。アドレス発生器403は、これらの情報を用いて、測定結果を保存するエントリが格納されている、テーブル用メモリ410のアドレスを算出し、エントリ更新器に通知する。
 設定レジスタ404は、バスアクセス観測器420の観測対象の設定、動作の設定等や、アドレス発生器403の動作の設定等を保持し、それぞれバスアクセス観測器420及びアドレス発生器403に通知する。
 エントリ更新器405は、バスアクセス観測器420からの観測対象アクセスの検出・終了通知、アクセス遅延サイクル測定カウンタ401及びバス調停サイクル測定カウンタ402からの測定値の通知、アドレス発生器403からのテーブル用メモリ410のアドレスの通知を受ける。
 また、エントリ更新器405は、テーブル用メモリ410上のエントリ411を更新する機能を備える。更新は、観測対象アクセスの終了が通知された時点で開始されるが、この通知は、バスアクセス観測器420からの観測対象アクセス検出・終了通知信号がHレベルからLレベルに変化したことを検知して行われる。アクセスの終了が通知されると、エントリ更新器405は、アドレス発生器403から通知されたアドレスを元にテーブル用メモリ410上の更新対象エントリ411の値を読み込む。
 ここで、エントリ411は、アクセス数保持部412、アクセス遅延保持部413、バス調停サイクル数保持部414から構成されるが、エントリ更新器405は、アクセス数保持部412の値を1加算し、アクセス遅延保持部413の値にアクセス遅延サイクル測定カウンタ401から通知された測定値を加算し、バス調停サイクル数保持部414の値にバス調停サイクル測定カウンタ402から通知された測定値を加算する。加算後、テーブル用メモリ410上の更新対象エントリ411に対して書き戻しを行う。
 AND回路406は、バスアクセス観測器420からの観測対象アクセス検出・終了通知信号と、バスアービタ130からの観測対象バスマスタ100の調停待ち信号を受け取る。ここで、バスアービタ130は、観測対象バスマスタ100が調停待ちである場合にHレベルを出力するよう構成する。本実施例では、観測対象アクセス発生中がHレベル、観測対象バスマスタの調停待ち時にHレベルとして構成されており、観測対象アクセス発生中に観測対象バスマスタ100が調停待ちとなった場合にバス調停サイクル測定カウンタにHレベルを出力する。
 次に、図12のフローチャートを用いて、本実施例における動作を説明する。なお、本フローチャートは、代表的な動作順序を抜粋したものであるが、実際には本実施例における性能最適化システムの各要素が前記のとおり独立して動作する。このため、必ずしも本フローチャートの手順に従うものではなく、異なる順序となることがある。
 まず、バスアクセス観測器420は、バスへのアクセス発生の観測を続け(ステップS61:No)、アクセスを検出すると(ステップS61:Yes)、内部のアクセスフィルタ421による選別を開始する。
 アクセスフィルタ421は、検出したバスアクセス情報のうち、アドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどの情報を用いて、検出したバスアクセスが設定レジスタ404によって指定された任意の条件に適合するか判定を行う。ここで、条件に適合しない場合(ステップS62:No)は、次のバスアクセスの検出に戻る。一方、条件に適合する場合(ステップS62:Yes)、バスアクセス観測器420は、適合したアクセスが発生したことをアクセス発生通知として、アクセス遅延サイクル測定カウンタ401と、アドレス発生器403と、エントリ更新器405と、AND回路406とに通知する(エントリ更新器405への通知は、ここでは意味を持たない)。
 通知は、観測対象アクセス検出・終了通知信号をLレベルからHレベルに変化させることで行われる。この時、アドレス発生器403への観測対象アクセスのアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどの通知も同時に行われる。
 次に、アクセス遅延サイクル測定カウンタ401は、観測対象アクセス検出・終了通知信号がHレベルの時にサイクル数をカウントするよう構成されているため、バスアクセス観測器420からのアクセス発生通知によって計数を開始する(ステップS63)。
 さらに、アドレス発生器403は、バスアクセス観測器420からのアクセス発生通知を受けると、同時に通知されたバスアクセス情報のアドレス値、書き込み・読み込みの別やバーストアクセスの長さなどのアクセス種別、アクセスIDなどのいずれか、もしくはこれら複数の組み合わせを用いて、測定結果を保存するエントリが格納されている、テーブル用メモリ410のアドレスを算出し、エントリ更新器405に通知する(ステップS64)。
 また、この時、AND回路406の入力の片方に観測対象アクセス検出・終了通知信号としてHレベルが入力される。
 バスアービタ130は、観測対象バスマスタ100が調停待ちである場合にHレベルを出力するよう構成されているため、観測対象のアクセスにバス競合による調停待ちが発生していない場合は、AND回路406の入力の片方がLレベルであり、バス調停サイクル測定カウンタ402へはLレベルを出力する。
 この場合、バス調停サイクル測定カウンタ402は、何もせずに(ステップS65:No)、ステップS69に進む。観測対象のアクセスにバス競合による調停待ちが発生している場合は(ステップS65:Yes)、AND回路406の2つの入力がHレベルとなる。そうすると、バス調停サイクル測定カウンタ402は、Hレベルが入力されることにより、バス調停期間の計数を開始する(ステップS66)。
 その後、バス調停サイクル測定カウンタ402は、AND回路406からの入力がHレベルの間、計数を続け(ステップS67:No)、観測対象アクセスのバス調停待ちが終了すると、バスアービタ130からAND回路406への信号がLレベルとなり、AND回路406がLレベルを出力する(ステップS67:Yes)。バス調停サイクル測定カウンタ402は、AND回路406からの信号がLレベルになると、計数を終了し(ステップS67:Yes)、エントリ更新器405に計数値を通知する(ステップS68)。
 ここで、バスアクセス観測器420は、バスアクセスの終了の監視を続ける(ステップS69:No)。その結果、バスアクセスが終了すると(ステップS69:Yes)、バスアクセス観測器420は、アクセス遅延サイクル測定カウンタ401と、アドレス発生器403と、エントリ更新器405と、AND回路406とに、観測対象アクセス検出・終了通知信号をLレベルとすることで、アクセスの終了を通知する(アドレス発生器403、AND回路406への通知は、ここでは意味を持たない)。
 アクセス遅延サイクル測定カウンタ401は、アクセスが終了し観測対象アクセス検出・終了通知信号がLレベルとなると、所要期間の計数を終了し(ステップS69:Yes)、エントリ更新器405に計数値を通知する(ステップS610)。
 ここで、エントリ更新器405は、バスアクセス観測器420からのアクセス検出・終了通知信号がHレベルからLレベルになることでアクセスの終了が通知されると、アドレス発生器403から通知されたアドレスを元にテーブル用メモリ410上の更新対象エントリ411の値を読み込む(ステップS611)。
 ここで、更新対象エントリ411は、アクセス数保持部412、アクセス遅延保持部413、バス調停サイクル数保持部414から構成される。この更新対象エントリ411に対し、エントリ更新器405は、アクセス数保持部412の値を1加算し、アクセス遅延保持部413の値にアクセス遅延サイクル測定カウンタ401から通知された計数値を加算し、バス調停サイクル数保持部414の値にバス調停サイクル測定カウンタ402から通知された計数値を加算する(ステップS612)。加算後、エントリ更新器405は、テーブル用メモリ410上の更新対象エントリ411に対して書き戻しを行う(ステップS613)。
 次に、本実施例における観測方法の応用例を説明する。
 特定のプロセッサとバスの組み合わせにおいて、プロセッサからのキャッシュミスアクセスでは、バス上を「WRAPバースト」と呼ばれる特徴的なバスアクセスが発生する。WRAPバーストでは、連続するn個のデータを転送する時、1≦m≦nであるm番目の任意のデータから転送をスタートし、n番目のデータ転送後、1番目に戻ってm-1番目のデータまで転送する手順にて、n個のデータを転送することを許可する転送方式となっている。また、バーストアクセスの長さは、キャッシュラインを満たすデータ数の転送が行える長さとなっている特長がある。
 このため、設定レジスタ404の設定によって、アドレス発生器403にWRAPバーストはバーストアクセス長によって異なるエントリを更新させる方法や、同様に設定レジスタ404の設定によって、バスアクセス観測器420内のアクセスフィルタ421によって該当アクセスに絞り込んで観測する方法などにより、キャッシュミスアクセスを分離して観測することができる。
 なお、上記各実施例に係る性能最適化システムは、上述した構成要素の各処理(機能)を実現可能なものであれば、そのシステムの物理的構成、そのシステム内部のハードウェア(回路)及びソフトウェア(プログラム)構成については、特に限定されるものではない。例えば、独立して個別の回路やユニット或いはプログラム部品(プログラムモジュール等)を構成したり、1つの回路やユニット内に一体的に構成したりする等、いずれの形態でも適用可能である。これらの形態は、実際に使用するシステムの機能や用途等の事情に応じて適宜選択可能である。
 また、上述した構成要素の各機能に対応して、これらと同様の処理を行う各処理ステップを有する性能最適化方法も、本発明の範疇に含まれる。
 さらに、上述した構成要素の各機能の内の少なくとも一部の処理は、CPU(Central Processing Unit)を有するプロセッサ等のコンピュータによるソフトウェア処理で実現してもよい。この場合、コンピュータを機能させるためのプログラム(性能最適化プログラム)は、本発明の範疇に含まれる。このプログラムは、CPUにより直接実行可能な形式のプログラムに限らず、ソース形式のプログラムや、圧縮処理されたプログラム、暗号化されたプログラム等、種々形態のプログラムを含む。また、このプログラムは、システム全体の制御を行うOS(Operating System)やファームウェア等の制御プログラムと連携して動作し、或いはその一部に組み込まれて一体的に動作するアプリケーションプログラムやそれを構成するソフトウェア部品(ソフトウェアモジュール)等、いずれの形態でも提供可能である。さらに、このプログラムは、無線又は有線回線を介して外部装置と通信する通信機能を有するシステムに実装して使用する場合、例えば回線上に接続されたサーバ等の外部ノードからダウンロードして自システム内の記録媒体にインストールして使用することもできる。これらの形態は、実際に使用するシステムの機能や用途等の事情に応じて適宜選択可能である。
 また、上記のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。この場合、記録媒体は、ROM(Read Only Memory)等のメモリ等、システム内に固定して使用されるものや、利用者により持ち運びが可能な可搬型のもの等、いずれの形態でも適用可能である。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2008年2月13日に出願された日本出願特願2008-031728号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明によれば、キャッシュミスを観測して性能最適化を行う情報を収集する用途に適用できる。また、複数のバスマスタの競合を観測して性能最適化を行う情報を収集する用途にも適用可能である。

Claims (17)

  1.  観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる前記所要期間の計数値を保存する所要期間テーブルを保持する所要期間テーブル保持手段と、
     前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに前記所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、
     前記観測対象のアクセスに伴うキャッシュミスの発生を検出するキャッシュミス観測手段とを備えたことを特徴とする性能最適化システム。
  2.  前記キャッシュミス観測手段は、
     前記キャッシュミスの発生を通知するキャッシュミス発生通知手段と、
     前記キャッシュミスによって発生するバスへのキャッシュミスアクセスの終了を通知するキャッシュミスアクセス終了通知手段とを含むことを特徴とする請求項1記載の性能最適化システム。
  3.  観測対象のアクセスに関わる所要期間を計数する所要期間計数手段と、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルを保持する所要期間テーブル保持手段と、
     前記観測対象のアクセスに基づいて、前記所要期間テーブルを構成する前記分類領域ごとの複数のテーブルエントリの内のどのテーブルエントリに所要期間の計数値を保存するかを選択するテーブルエントリ選択手段と、
     前記観測対象のアクセスに伴うバスアクセスの発生を検出するバスアクセス観測手段とを備えたことを特徴とする性能最適化システム。
  4.  前記バスアクセス観測手段は、
     前記バスアクセスの発生を通知するバスアクセス発生通知手段と、
     前記バスアクセスの終了を通知するバスアクセス終了通知手段とを含むことを特徴とする請求項3記載の性能最適化システム。
  5.  前記観測対象のアクセスの種別を判定し、特定のアクセスを選択して検出するアクセス種別判定手段をさらに備えたことを特徴とする請求項1から4のいずれか1項に記載の性能最適化システム。
  6.  前記観測対象以外のバスマスタとのアクセス競合の調停によりアクセスが待たされていることを検出するバス調停観測手段と、
     バス調停による期間を計数するバス調停期間計数手段と、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記バス調停による期間の計数値を保存する複数のテーブルエントリからなるバス調停期間テーブルを保存するバス調停期間テーブル保持手段とをさらに備えたことを特徴とする請求項1から5のいずれか1項に記載の性能最適化システム。
  7.  前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記観測対象のアクセス回数を保存する複数のテーブルエントリからなるアクセス回数テーブルを保存するアクセス回数テーブル保持手段をさらに備えたことを特徴とする請求項1から6のいずれか1項に記載の性能最適化システム。
  8.  観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出し、
     前記アクセスに関わる所要期間の計数を開始し、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、
     前記キャッシュミスアクセスの終了を検出し、
     前記アクセスに関わる所要期間の計数を終了し、
     前記キャッシュミスアクセスの発生から終了までの間の前記所要時間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする性能最適化方法。
  9.  観測対象のアクセスに伴うバスアクセスの発生を検出し、
     前記アクセスに関わる所要期間の計数を開始し、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択し、
     前記バスアクセスの終了を検出し、
     前記アクセスに関わる所要期間の計数を終了し、
     前記バスアクセスの発生から終了までの間の前記所要時間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする性能最適化方法。
  10.  さらに、バス競合の発生を検出し、
     バス調停期間の計数を開始し、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記バス調停期間の計数値を保存する複数のエントリからなるバス調停期間テーブルからテーブルエントリを選択し、
     前記バス競合の終了を検出し、
     前記バス調停期間の計数を終了し、
     前記バス競合の発生から終了までの間の前記バス調停期間の計数値により前記バス調停期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新することを特徴とする請求項8または9記載の性能最適化方法。
  11.  さらに、検出したアクセスが指定された任意の条件に適合するか判定を行うことを特徴とする請求項8から10のいずれか1項に記載の性能最適化方法。
  12.  さらに、前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記観測対象のアクセス回数を保存する複数のテーブルエントリからなるアクセス回数テーブルを更新することを特徴とする請求項8から11のいずれか1項に記載の性能最適化方法。
  13.  コンピュータに、
     観測対象のアクセスに伴うキャッシュミスアクセスの発生を検出する処理と、
     前記アクセスに関わる所要期間の計数を開始する処理と、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、
     前記キャッシュミスアクセスの終了を検出する処理と、
     前記アクセスに関わる所要期間の計数を終了する処理と、
     前記キャッシュミスアクセスの発生から終了までの間の前記所要時間の計数値により前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
    を実行させることを特徴とする性能最適化プログラム。
  14.  コンピュータに、
     観測対象のアクセスに伴うバスアクセスの発生を検出する処理と、
     前記アクセスに関わる所要期間の計数を開始する処理と、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記所要期間の計数値を保存する複数のテーブルエントリからなる所要期間テーブルからテーブルエントリを選択する処理と、
     前記バスアクセスの終了を検出する処理と、
     前記アクセスに関わる所要期間の計数を終了する処理と、
     前記バスアクセスの発生から終了までの間の前記所要時間の計数値により、前記所要期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
    を実行させることを特徴とする性能最適化プログラム。
  15.  前記コンピュータに、
     バス競合の発生を検出する処理と、
     バス調停期間の計数を開始する処理と、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記バス調停期間の計数値を保存する複数のテーブルエントリからなるバス調停期間テーブルからテーブルエントリを選択する処理と、
     前記バス競合の終了を検出する処理と、
     前記バス調停期間の計数を終了する処理と、
     前記バス競合の発生から終了までの間の前記バス調停期間の計数値により、前記バス調停期間テーブルを構成する複数のテーブルエントリの内の選択されたテーブルエントリを更新する処理と、
    をさらに実行させることを特徴とする請求項13または14記載の性能最適化プログラム。
  16.  前記コンピュータに、
     検出したアクセスが指定された任意の条件に適合するか判定を行う処理をさらに実行させることを特徴とする請求項13から15のいずれか1項に記載の性能最適化プログラム。
  17.  前記コンピュータに、
     前記観測対象のアクセスに基づく分類ごとにメモリの領域を区切り、その区切った分類領域ごとに前記観測対象のアクセス回数を保存する複数のテーブルエントリからなるアクセス回数テーブルを更新する処理をさらに実行させることを特徴とする請求項13から16のいずれか1項に記載の性能最適化プログラム。
PCT/JP2009/052041 2008-02-13 2009-02-06 性能最適化システム、方法及びプログラム WO2009101900A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009553406A JP5397771B2 (ja) 2008-02-13 2009-02-06 性能最適化システム、方法及びプログラム
US12/865,781 US8738881B2 (en) 2008-02-13 2009-02-06 Performance optimization system, method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-031728 2008-02-13
JP2008031728 2008-02-13

Publications (1)

Publication Number Publication Date
WO2009101900A1 true WO2009101900A1 (ja) 2009-08-20

Family

ID=40956932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/052041 WO2009101900A1 (ja) 2008-02-13 2009-02-06 性能最適化システム、方法及びプログラム

Country Status (3)

Country Link
US (1) US8738881B2 (ja)
JP (1) JP5397771B2 (ja)
WO (1) WO2009101900A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016056217A1 (ja) * 2014-10-07 2016-04-14 日本電気株式会社 測定装置、測定システム、測定方法、および、プログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856452B2 (en) * 2011-05-31 2014-10-07 Illinois Institute Of Technology Timing-aware data prefetching for microprocessors
US9311207B1 (en) * 2013-09-12 2016-04-12 Emc Corporation Data storage system optimizations in a multi-tiered environment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324957A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp バス監視装置
JPH07253915A (ja) * 1994-03-15 1995-10-03 Hitachi Ltd 性能測定機能を有するアクセス制御装置
JPH09101906A (ja) * 1995-10-09 1997-04-15 Hitachi Ltd 並列計算機の性能測定方法
JPH09198275A (ja) * 1996-01-22 1997-07-31 Nec Corp コンピュータ性能向上推奨システム
JPH09274589A (ja) * 1996-04-05 1997-10-21 Nec Corp キャッシュミスアドレス分布トレース回路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0926591B1 (en) * 1997-12-26 2005-08-24 Casio Computer Co., Ltd. Network-access management system and method
US6249906B1 (en) * 1998-06-26 2001-06-19 International Business Machines Corp. Adaptive method and system to minimize the effect of long table walks
JP3196734B2 (ja) 1998-08-11 2001-08-06 日本電気株式会社 タイミング解析装置、方法及び記録媒体
JP2000339219A (ja) 1999-05-27 2000-12-08 Nec Kofu Ltd 情報処理装置およびペナルティ時間計測方法、並びに記録媒体
JP2007206806A (ja) 2006-01-31 2007-08-16 Matsushita Electric Ind Co Ltd キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ
US8200902B2 (en) * 2010-06-10 2012-06-12 Arm Limited Cache device for coupling to a memory device and a method of operation of such a cache device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324957A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp バス監視装置
JPH07253915A (ja) * 1994-03-15 1995-10-03 Hitachi Ltd 性能測定機能を有するアクセス制御装置
JPH09101906A (ja) * 1995-10-09 1997-04-15 Hitachi Ltd 並列計算機の性能測定方法
JPH09198275A (ja) * 1996-01-22 1997-07-31 Nec Corp コンピュータ性能向上推奨システム
JPH09274589A (ja) * 1996-04-05 1997-10-21 Nec Corp キャッシュミスアドレス分布トレース回路

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016056217A1 (ja) * 2014-10-07 2016-04-14 日本電気株式会社 測定装置、測定システム、測定方法、および、プログラム
JPWO2016056217A1 (ja) * 2014-10-07 2017-08-10 日本電気株式会社 測定装置、測定システム、測定方法、および、プログラム

Also Published As

Publication number Publication date
US8738881B2 (en) 2014-05-27
US20100332709A1 (en) 2010-12-30
JP5397771B2 (ja) 2014-01-22
JPWO2009101900A1 (ja) 2011-06-09

Similar Documents

Publication Publication Date Title
US6349394B1 (en) Performance monitoring in a NUMA computer
US7447946B2 (en) Storage of trace data within a data processing apparatus
US20070282573A1 (en) Method and System for Changing a Description for a State Transition Function of a State Machine Engine
JP2006500687A (ja) パフォーマンス・モニタおよびその方法
CN102859504A (zh) 有效分区存储缓存
WO2009101900A1 (ja) 性能最適化システム、方法及びプログラム
US8458405B2 (en) Cache bank modeling with variable access and busy times
US20110320700A1 (en) Concurrent Refresh In Cache Memory
JP5304815B2 (ja) マイクロコンピュータ
US8255632B2 (en) Pre-fetch control apparatus
CN110235113A (zh) 数据处理
US8452920B1 (en) System and method for controlling a dynamic random access memory
JP2010146495A (ja) メモリシステムおよびコンピュータシステム
JP5850724B2 (ja) データ処理装置およびその制御方法
US20160350196A1 (en) Arithmetic processing device, information processing apparatus and control method of arithmetic processing device
JP2009217385A (ja) プロセッサ及びマルチプロセッサ
JP4861270B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP4504737B2 (ja) パフォーマンス・モニタ回路
JP7271294B2 (ja) 情報処理装置および情報処理方法
CN112241390B (zh) 主机互连装置及其方法
JP5907558B2 (ja) マルチインターバルタイマ並びにその制御装置、制御方法及び制御プログラム
JPH1185613A (ja) キャッシュメモリ
KR100723475B1 (ko) 캐쉬 메모리 시스템과 버스의 버스 레이턴시 변화에 따라캐쉬 메모리의 라인 사이즈를 변경하는 방법
JP2013097637A (ja) キャッシュ装置、メモリシステム及びデータ転送方法
TW410300B (en) Detection method for the storage capacity of high speed cache

Legal Events

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

Ref document number: 09710571

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12865781

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2009553406

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09710571

Country of ref document: EP

Kind code of ref document: A1