Cache和主存之间的映射:
Cache的基本结构
Cache存储体以块为单位和主存交换信息,地址变换机制是由CPU送往主存的数据转换为Cacche的地址,主存和Cache的大小相同所以 ,如果能够建立对应关系,则代表命中。
Cache的读写操作
写操作只写入Cache不写入主存,有时会导致主存和Cache上的数据不一致,需要在主存的位置上设置一个脏位,当Cache被替换的时候才能写入到主存
Cache和主存间的映射:
理解一下三个标记位比如101 001都映射到块01 但是怎么区分这两个主存的块呢,采用前方的标记位1/0区分是哪一块,满足命中的两个条件:1.比较器返回值是12.有效位是1,两者缺一则不命中
和直接映射相比,它的主存字块从t位增加到了t+c位,这就使cache需要记忆的位数增多么热切访问cache时主存字块标记需要和cache 的全部标记位进行比较,判断出所访问的主存的内容是否已经在cache 内。
如图所示:001只能映射到第一组,010只能映射到第0组
例题
(1)直接映像方式下设计主存地址格式:
注意块长是四个,不是四位
(2)全相联映射方式下主存的地址格式:
(3)二路组相联的映射方式下的映射方式:
- 跟据Cache的容量4K = B,所以地址线是12位,由于每个字是32位,所以每个字占用4个字节,字的个数是4K/4=1K个,所以可容纳1K/16==64个字块
- 同理主存的地址有19位,推算出可容纳,个字块。
-
在直接映射方式下,由于 Cache 共有 64 块,主存共有 192 块,因此主存的 5, 64+5,2x64+5, …, -64+5 块能映射到 Cache 的第5 块中。
系统的效率 = 访问cache的时间/总共访问的时间
Cache的查找方法:
关于索引,如果是直接相连映射的话那么就是块号,如果是组相联映射的话那就是组号
Cache目录表的结构:访存信息的标识位去跟目录表的标识位的信息进行比较