In the current processor design, there are various processor configurations. Generally, a designer tries to find target processor configurations to satisfying target performance with minimum hardware cost. The performance evaluation is done through cycle-by-cycle simulation in an early design phase. Unfortunately, this evaluation traditionally involves the use of costly full trace simulations, which is time- and space-consuming task.
This thesis proposes a fast and accurate estimation method for execution cycles of a program, and provides a designer with the reliable estimation. For this approach, we consider some characteristics of a program. First, a program structure consists of basic blocks and control flows. They are never changed by processor configurations. Therefore, each basic block execution counts are independent on processor configurations. Second, the execution cycles of basic blocks depend on them. Third, each basic block is iteratively executed by the loops in a program, which have the constant execution cycles.
When processor configurations are varied, we reuse the basic block execution counts information and obtain the execution cost information of basic blocks through sample data simulation. The basic block execution counts and execution cycles are classified by both predecessor and cache/branch predictions misses of the current basic block for making the accurate estimation model. The total execution cycles of a program is determined by the form of weighted-sum between execution counts and cost of basic blocks. Therefore, we can estimate total execution cycles of a program in a relatively short time using this approach.
There is an inevitable estimation error due to the information loss by using sample data simulation. Therefore, we provide worst-case error which may occur in the process of estimation. A designer can obtain estimation result within desired error by using it. The worst-case error is smaller than measured error which is the dif...