具有64字节高速缓存行的32kB(32,768字节)直接映射回写式高速缓存中用于数据的比特百分比?

问题描述 投票:0回答:1

遇到此问题,解决方案说“ 32位地址位,64字节行表示该行中的字地址中有6位不在标签中,在64字节行的缓存中32,768字节共512行,这意味着我们有12位缓存索引的地址,写回意味着我们需要一个脏位,并且我们始终需要一个有效位,因此每行具有64 * 8 = 512个数据位,32-6-12 = 14个标记位和2个标志位:数据/总位= 512 /(512 + 14 + 2)= 512/528。”

[当我尝试解决问题时,我总共得到32kB / 64byte = 512行,即2 ^ 9 = 512。另外,每行1个字= 4个字节的64字节高速缓存行大小是每行64/4 = 16个字,即2 ^ 4。据我了解,缓存中的总比特数由缓存中条目/行的总数量给出*(标签地址+数据)-> 2 ^ 9 *((32-9-4 + 2)+ 16 * 32 )。因此,每条缓存行的数据位数为512(16个字* 32个字/词),标签为32-9-4 + 2 = 21(9是直接映射缓存的缓存索引,4是来寻址每个字,而2是有效位和脏位)实际上,答案应该是512/533,而不是512/528。

正确?

caching mips
1个回答
0
投票

512行= 9位,而不是他们声称的12位,所以您在这一点上是正确的。

© www.soinside.com 2019 - 2024. All rights reserved.