[重点实用参考文档资料]
} 46.
(1)Cache地址为:组号13位、组内块号2位、块内地址5位。则Cache有2的13次方个组=8192个组。
主存地址为:区号14位、区内块号13位、块内地址5位。Cache行由目录表项和数据区两部分,目录表项位数为:14+2(LRU位)+1(标记位)+1(写回法脏位)=18位。
数据区为32G8位=256位。则Cache行大小至少有18+256=274位。 (2)0000 0000 0100 0110 0011 0000 0101 0000,则10 0011 0000 010为命中组号,Cache行标记字段的值为0000 0000 0100 01
(3)A[i]+=A[i+1]等价于A[i]=A[i]+A[i+1],则一次循环需要访问主存三次。for(i=0;i<512;i+=2)可得循环次数为512/2=256次,则该程序段共访存256G3=768次。由sizeof(int)=4,可得存储一个int型数据需要4B。由一个Cache块大小为32B,可得一个Cache块可以存放32/4=8个int型数据。
}
count = 0;
for (int i=0;i if (a[i] == mainElement) count++; } if (count >n/2) return mainElement; else return'\\0'; [重点实用参考文档资料] [重点实用参考文档资料] intA[512]定义了512个int型数据,则存储A[512]共需要512/8=64个Cache块。则命中率为1-64/768=704/768=91.7%。 47. (1)A8H=1010 1000,1010对应为OP2的存数操作,Rs/Rd=10,则源操作数的寻址方式为寄存器寻址。 (2)y=yG8,思路:先将y所在单元存入R0,将R0左移3位,再将R0放入y所在单元 1001 00 00;取数操作 0010 0011 ;地址23H,这两步相当于R0←[23H] 1000 01 00 ;赋值操作 0000 0011;3,这两步相当于R1←03H 001 0 00 01 ;R0算术左移(R1)位,相当于R0<<(R1) 1010 00 00 ;存数操作 0010 0011 ;地址23H,这两步相当于[23H]←(R0) (3) R2→MAR,1→Read 1T R3→Y,M(MAR)→MDR2T MDR→ALU,ADD→ALU,ALU→Z1T Z→R3,1→End 1T 总共需要5个时钟周期 [重点实用参考文档资料]
相关推荐: