## 5 Experiments and Results
### Performance Overhead Evaluation
#### 5.2.2 Optimized Effects of M-Cache  
In order to further explore the effects of M-Cache in reducing the performance overhead of the SPU, we made experimental statistics to evaluate the indicator of CPI under different depths of M-Cache while keeping the 8-KB I/D-Cache unchanged. Since the M-Cache hit rate was closely related to its size, the depths of M-Cache were configured with different sizes of no M-Cache: 16, 32, 64, 128, and 256. Table 3 presents the performance overhead of the SPU configured with different depths of M-Cache.  
These experimental results indicate that the performance indicators of CPIs are constantly decreasing with the raising in depths of the M-Cache, however, the CPI reduction trend begins to slow down when the M-Cache hit rate reaches a saturation, such as depth (128) and depth (256). In fact, depth (128) and depth (256) are both suitable for M-Cache configuration. We selected depth (256) to obtain the lowest performance overhead of 1.92%, which is a suitable depth for SPU to achieve a good tradeoff between storage space and performance overhead.  
\begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline \multirow{2}{*}{**Benchmark**} & **Total** & \multirow{2}{*}{**Total BB**} & **Memory** & **I-Cache** & **M-Cache** & **CPI without** & **CPI with** & **Performance** \\  & **Instruction** & & **Size (KB)** & **Hit** & **Hit** & **SPU** & **SPU** & **Overhead** \\ \hline AES & 22,170 & 3535 & 13.81 & 99.26\% & 99.35\% & 3.528 & 3.636 & 3.06\% \\ basicmath & 26,515 & 4327 & 16.90 & 98.13\% & 98.97\% & 2.643 & 2.712 & 2.61\% \\ bitcount & 19,684 & 3344 & 13.06 & 98.29\% & 99.40\% & 1.653 & 1.680 & 1.63\% \\ blowfish & 19,128 & 3247 & 12.68 & 97.95\% & 99.56\% & 3.536 & 3.597 & 1.72\% \\ CRC & 18,941 & 3231 & 12.62 & 99.53\% & 99.58\% & 1.723 & 1.748 & 1.45\% \\ FFT & 13,506 & 2143 & 8.37 & 96.58\% & 99.71\% & 2.943 & 2.979 & 1.22\% \\ OpenECC & 56,313 & 6734 & 26.30 & 98.71\% & 98.52\% & 3.184 & 3.291 & 3.36\% \\ patricia & 23,130 & 3853 & 15.05 & 97.90\% & 98.14\% & 1.649 & 1.685 & 2.18\% \\ quicksort & 6707 & 1018 & 3.98 & 99.72\% & 99.83\% & 1.856 & 1.864 & 0.43\% \\ SHA1 & 20,455 & 3400 & 13.28 & 98.65\% & 98.27\% & 2.351 & 2.388 & 1.57\% \\ \hline Average & – & – & 13.61 & 98.47\% & 99.13\% & 2.507 & 2.558 & 1.92\% \\ \hline \hline \end{tabular}
\end{table}
Table 2: Performance overhead of the CPU-SPU collaborative SoC (8-KB I-Cache, 8-KB D-Cache, and 8-KB M-Cache).  
\begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline \multirow{2}{*}{**Benchmark**} & \multirow{2}{*}{**CPI without SPU**} & \multicolumn{5}{c}{**CPI with SPU under the Different Depths of M-Cache**} \\ \cline{3-8}  & & **No M-Cache** & **Depth (16)** & **Depth (32)** & **Depth (64)** & **Depth (128)** & **Depth (256)** \\ \hline AES & 3.528 & 4.986 & 4.217 & 3.862 & 3.736 & 3.642 & 3.636 \\ basicmath & 2.643 & 3.935 & 3.120 & 2.839 & 2.755 & 2.716 & 2.712 \\ bitcount & 1.653 & 2.362 & 1.964 & 1.796 & 1.713 & 1.685 & 1.680 \\ blowfish & 3.536 & 4.968 & 4.353 & 3.895 & 3.742 & 3.608 & 3.597 \\ CRC & 1.723 & 2.180 & 2.019 & 1.954 & 1.816 & 1.754 & 1.748 \\ FFT & 2.943 & 4.891 & 4.162 & 3.583 & 3.214 & 2.986 & 2.979 \\ OpenECC & 3.184 & 4.764 & 3.975 & 3.482 & 3.381 & 3.302 & 3.291 \\ patricia & 1.649 & 2.336 & 1.986 & 1.816 & 1.712 & 1.690 & 1.685 \\ quicksort & 1.856 & 2.637 & 2.179 & 1.970 & 1.887 & 1.867 & 1.864 \\ SHA1 & 2.351 & 3.674 & 2.662 & 2.539 & 2.436 & 2.392 & 2.388 \\ \hline Average & 2.507 & 3.673 & 3.064 & 2.774 & 2.639 & 2.564 & 2.558 \\ \hline Performance overhead & – & 46.52\% & 22.21\% & 10.63\% & 5.27\% & 2.28\% & 1.92\% \\ \hline \hline Average & – & – & 13.61 & 98.47\% & 99.13\% & 2.507 & 2.558 & 1.92\% \\ \hline \hline \end{tabular}
\end{table}
Table 3: Performance overhead of the SPU configured with different depths of M-Cache (8 KB I-Cache and 8 KB D-Cache).