M.Sc Thesis

M.Sc StudentKatzengold Oren
SubjectEffective Use of Trace Caches
DepartmentDepartment of Computer Science
Supervisors PROF. Avi Mendelson
PROF. Assaf Schuster


Trace cache was found to be very effective in improving the performance of wide machines and reduce the active power of mainly CISC architecture. Unfortunately, in order to achieve high efficiency of the trace cache, large number of traces needs to be maintained in the trace-cache, resulting in significant increase in area and power leakage. This work aims to improve the power efficiency of small trace caches by keeping mainly "good traces".

Our solutions focus on sorting the traces either dynamically or statically, helping the trace cache to better decide which traces to keep.

We tested two approaches; one calls for filtering technique to remove bad traces from the trace cache while the other uses the compiler which by using a profiling image chooses the good traces in advance and hints the trace cache of them.

In the filtering techniques we tried blocking inconsistent traces and use dynamic feedback in order to estimate the already saved ones. In the hints concept, a special pragma instruction was added in order to allow the compiler pass hints to the trace cache.

The paper shows that the use of our filtering techniques can improve significantly the overall performance of small trace caches. The paper also shows that if the proposed filters are used in conjunction with a machine without a trace predictor, it can outperform similar systems with Trace cache and trace predictor.

The system can even be improved if compiler generated hints are added to improve the quality of the proposed filter by additional 5%-6%.