直接映射
1Mb=1*1024kb
1kb=1024b
1b=8位;//b 由叫字节;
直接映射 分为 主存标记区号 +块号+块内地址字号
根据 内存大小可以得到位数
区号位数= 内存大小/缓存大小 //也可以只求后两个 用总位数-区号-地址号
块号位数= 缓存大小/块大小
地址字号位数=块大小/字长位数;
地址号
有一处理机,主存容量1MB,字长1B,块大小16B;Cache容量4KB,若cache采用直接映射,请给出2个不同标记的内存地址,它们映射到同一个cache行。
区号:主存容量1MB,Cache容量4KB,故:1MB/4KB=2^8,即区号或标记位8位。
块号:Cache容量4KB,块大小16B,故:4KB/16B=2^8,即块号8位。
字号:字长1B,块大小16B,故:2^4,即字号4位。
全相联映射
全相连 :主存标记块号+块内地址字号
块号 主存大小/缓存大小
地址号 缓存大小/字长;
若数据在主存和Cache之间按块传送单位为512字节。Cache大小为8KB,主存容量为1MB ,求其主存的地址格式。
字号:按块传送单位为512字节,即512=2^9,故字号为9位
块号或主存标记:主存容量为1MB,即 1M/512=2^11,故标记号11位。
组相联映射
组相连映射 区号+组号+块内地址号
区号=主存内存/组内存
组号 =主存大小/组内存 组内存=块内存一组块数;
地址号 快内存长度
设某机主存容量为16MB,缓存的容量为16KB。每字块有8个字,每个字32位。设计一个四路组相连映射(即缓存每组内共有4个字块)的缓存组织,要求:
画出主存地址字段中各段的位数。
16mb 24位
所以内存为24位
块内地址号长 :1块8个字 一个字4b 所以 1块为32b 所以块长 5
组号长 16kb/(32b4)=7
区号长= 24-7-5=12