Advertisement

gem5缓存优化测试

阅读量:

逐渐分享一篇关于新书《自己动手编写CPU》的文章。重点介绍 gem5 如何验证数组级缓存优化

采用优化软件是一种显著提升缓存命中率的方法,缓存的工作原理基于程序的空间局部性,而通过改进程序的空间局部性可以实现更高的缓存命中效率,例如在多线程应用中合理分配内存池可以显著提升缓存效率

程序A:

复制代码
 #include <stdio.h>

    
  
    
 int main()
    
 {
    
     int i=0,j=0;
    
     long count=0;
    
     long temp[51200][8];      
    
  
    
     for(i=0;i<51200;i++)
    
    for(j=0;j<8;j++)
    
        {
    
        temp[i][j]=i*j;   //  大约51200 次DCache缺失
    
        }
    
  
    
 }

在C语言编程中,在内存空间上二维数组是以行优先顺序进行存储排列的,并非仅限于简单的按行列排列的方式。具体来说,在一个二维数组内部存放下标相同的元素会占据相邻的位置(即同行元素连续存放),而位于不同行但相同列上的元素则不会相邻(即不同行元素之间会存在空隙)。换句话说,在每一行中的

全部评论 (0)

还没有任何评论哟~