欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 4.24cache计算

4.24cache计算

2025/4/21 16:19:16 来源:https://blog.csdn.net/m0_73553411/article/details/138167290  浏览:    关键词:4.24cache计算

一个块的大小就是一个字的容量,一个字节固定是8位,8bit,一字节是B

int为4个字节,就是32位二进制

CACHE为了解决CPU与主存之间速度不匹配的问题

CACHE与主存之间数据交换以块为单位,就是一个字一个字

所以需要把主存和CACHE按照相同的块大小进行划分。要求主存块与CACHE的块内地址相同,变的是块号的映射关系

地址包含块号和块内偏移量,即块内地址

对于主存来说,块号的地址多,对于CACHE来说,块号的地址少

按字节编址的话,不影响求块数,

块数决定数据地址的块间地址位数;每块大小决定数据地址的块内地址位数(块内偏移量)

编址方式决定最后地址的总位数(主存与CACHE的数据位)

按字节编址,那么对于容量需要20位地址,CACHE需要8位地址数据位

注意区分字和字节,,一个块先是包含好多的字,然后一个字由好多的字节组成

每块4个字,一个字有4个字节,那么一个块就有16个字节;那么块内地址需要4位,所以主存需要16位块间地址(取决于主存的总块数,本身也就是总块数,即总大小除以块的大小),CACHE需要4位块间地址(即16个块)

每个块大小是4个字,一个字为4个字节,即4*4=16个B,主存分为1MB/16=2<<16个块

CACHE分为256B/32B=8B个块

一个字节是8位,一个字节是8位

按字节编址,CACHE容量为256B=2<<8个字节,那么CACHE的位数是8,所以就是地址有8位

主存有2《《20/16=2《《16个字节个块,按字节编址的话有20位

块数≠位数

采用字节编址的话,一个块里有16个字节,一个地址是8位,那么一个块里有两个地址

如果按字编址的话,那就是一个块就是一个完整的地址,交换块就是在交换地址

地址来索引主存的某个具体的地址。

如果按字编址,求地址的数量,是要让主存容量除以每个字的大小;

一个块可能包含很多的字,所以才需要块内地址(块内偏移)的说法

容量是2MB,块大小是8个字,一个字是4B,那么每块是32B,

所以主存的块数是2《《21/2《《5=2《《16,

主存地址有2《《21/2《《2=2《《19位,所以是需要19位地址

由于一个块内包含8个字,所以块内地址需要3位

由于块数有2《《16,所以需要16位块间地址(块内、块间也可相互转换求得)

注意是按字编址,求块数和求地址位数是两个独立的过程;求块数就是总主存容量除以每块的大小

CACHE为512B,那么CACHE里有2《《9/2《《5=2《《4个块数量

所以CACHE地址里,需要4位块间地址,

按字编址,字内包含8个字,块内地址要3位(需要和主存地址的块内地址保持一致)

需要CACHE地址需要7位

或者由于同样是按照按字编址,所以CACHE存数据需要2《《9/2《《2=2《《7,即7位地址

所以缓存块号,即CACHE地址里的块间地址有4位,

主存地址32位,按字节编址,就是说一个地址含有8位,主存块大小是4个字,每个字32位B,

CACHE要存放4K个字,那就是4K*32=128K位的二进制长度,

总大小是4K个字,每个块大小是

时刻注意,交换的时候是要按照块的大小进行交换的,块的数量确认也是要按照块的大小去确认的,就是要存储数据的总大小除以块的大小,注意存储数据的总大小不等于CACHE的总大小,CACHE还包含每块的标记位;

按字节编址,那么对于4K的CACHE,

总容量包含数据大小本身以及索引,每个块含4个字,每个字32位,那么一个块128=2《《7位

一块大小是2<<4个字,由于按字节编址,所以块内的编址需要4位,即一块可以包含2《《4个字

所以4K个字,需要4K/4=1k个块

标记阵列容量=有效位+标记位+脏位

标记阵列是对于每一个块来说的

因为按字节编址,所以块内地址需要4位表示

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词