这道题测试考生预测C语言代码的高速缓存行为的能力,请考生对下面这段代码进行分析: 1 int x[2][256]; 2 int i; 3 int sum==0; 4 5 for(i=0; i<256; i++){ 6 sum+=x[0][i]*x[1][i]; 7 } 假设在下列条件下执行这段代码: ·sizeof(int)==4。 ·数组x从存储器地址0x0开始,按照行优先顺序存储。 ·在下面每种情况中,高速缓存最开始时都是空的。 ·唯一的存储器访问是对数组x的条目进行访问。其他所有变量都存储在寄存器中。 给定这些假设,请估算下列情况中的不命中率。 情况2:如果把高速缓存的大小翻倍到2048B,不命中率是多少
查看答案
这道题测试考生预测C语言代码的高速缓存行为的能力,请考生对下面这段代码进行分析: 1 int x[2][256]; 2 int i; 3 int sum==0; 4 5 for(i=0; i<256; i++){ 6 sum+=x[0][i]*x[1][i]; 7 } 假设在下列条件下执行这段代码: ·sizeof(int)==4。 ·数组x从存储器地址0x0开始,按照行优先顺序存储。 ·在下面每种情况中,高速缓存最开始时都是空的。 ·唯一的存储器访问是对数组x的条目进行访问。其他所有变量都存储在寄存器中。 给定这些假设,请估算下列情况中的不命中率。 情况3:现在假设高速缓存是1024B,2路组相联,使用LRU替换策略,高速缓存块大小为32B,不命中率是多少
甲药品批准文号为国药准字J20090028,其中J表示
A. 化学药品
B. 中药
C. 生物制品
D. 进口药品
E. 进口药品分包装 根据《药品注册管理办法》
某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,主存与Cache交换的块大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下: 程序A: int a[256][256]; int sum_array1() { int i, j, sum=0; for(i=0; i<256;i++) for(j=0; j<256; j++) sum+=a[i][j]; return sum; } 程序B: int a[256][256]; int sum array2() { int i, j, sum=0; for(j=0; j<256; j++) for(i=0; i<256; i++) sum+=a[i][j]; return sum; } 假定int类型数据用32位补码表示,程序编译时i,j,sum均分配在寄存器中,数组a按照行优先方式存放,其首地址为320(十进制数)。请回答下列问题,并说明理由或给出计算过程。 若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量为多少
某机按字节编制,主存容量为1MB,采用2路组相联方式(每组仅有2块)的Cache容量为64KB,每个数据块为256B。已知访问开始前第1组(从0开始编址)的地址阵列内容见下表。Cache采用LRU替换策略。 第1组的地址阵列内容000100(二进制)101011(二进制) 若CPU要顺序访问地址为20124H、58100H、60140H和60138H四个主存单元。上述4个数能否直接从Cache中读取,若能,请给出实际访问的Cache地址。第4个数访问结束时,表中的内容将如何变化。(Cache地址结构依次为:组号;组内块号;块内地址)