2020-11-15

本文详细介绍了考研中关于Cache地址映射的重要知识点,包括全相联映射、直接映射和组相联映射三种方式。全相联映射虽然利用率高但查找慢,直接映射速度快但可能导致冲突,组相联映射结合两者优点。三种映射方式各有优缺点,适用于不同的场景。
摘要由CSDN通过智能技术生成

考研顽固问题记录——组成原理
cache地址映射与位数问题
考研范围内cache地址映射之中最重要的问题就是对于地址位数跟映射关系的掌握,以下则分为两部分叙述
一 cache地址与主存地址的位数关系
首先要明确的是,对于cache来说实际的存储的数据有两部分,第一部分称谓标记部分,第二部分是数据部分。
其中长度最好确认的就是数据部分,题目之中一定会给出每一块的大小,根据块大小,轻松得出数据部分长度(单位是b,要将B展开成八位)。
第二部分就是标记部分,标记部分就要麻烦一些,首先要明确的是,标记部分是cache之中用来唯一确定与主存对应关系的字段,也就是门牌号(比喻不太恰当,毕竟还存在脏位,有效位等)。第一步先看题目中给出的映射方式,王道辅导书之中给出的映射方式有三种,那么问题来了,究竟什么是映射?而映射了又有什么用?以什么规则映射?
三大映射关系
第一种就是全相联映射,很简单,很粗暴,就是每次访问一个主存块,如果需要调入cache就在cache中从上到下挨个扫描,找到一个空的cache就给他放进去(有效位为0 代表这个cache是没人用的)
优点很明显就是利用率高,理论上可以利用到所有空间,缺点是,速度慢(需要挨个扫描)成本高(使用相联存储器,这个东西可以利用硬件实现比较,访问的时候相当于利用了硬件实现了遍历的过程)
第二种是直接映射。既然全相联映射这么蠢 为什么我们不找一个比较容易访问又比较容易存储的方式呢 ,这种方式就是直接映射,为什么叫直接映射呢,因为硬件可以直接访问所要访问的块,这样又快又好。具体方式如下,类似于数据结构之中的哈希表,通过对于内容的计算,直接找到所要访问的块。比如块号是50cache中有10个块,那么应该用50除以10
取余数,这样就得到了cache块号,那为啥不是取商而是取余数?这就代表着,把主存按照十个一组分成好多组,这题就是五组 然后第五组之中占据第一个位置,编号就是零(换一种思路,如果以后cache便宜了,能跟主存一样大,那么就可以分成n多个十块的cache,那么这个主存块就在第五个cache里面第一个块)
这种方式依然是优点,很快,很好存很好找,缺点是,要是主存地址算出来的cache地址存了怎么办?那就要用到置换算法,把占用的块置换出去,放入新的块。那么问题就是,如果我每次都是第n组的第一个或者第二个怎么办,那么不每次访问都要置换,这样极其愚蠢。于是乎出现了第三种
(手机打字累死了(`Δ´)ゞ)
第三种,组相联映射,对比记忆可以认为是半相联(相对于全相联)。
这个就是集两种方法的优点
直接映射优点:找的快
全相联优点:利用率高
那么组相连就是将cache细分成n多个组,每组两块或者四块(选其中一种,例如两块就是二路组相连映射)。然后组间用直接映射,组内用全相联。
(下一篇讲述,映射之后地址结构,还有怎么找标记)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个 SQL 语句,用于向借阅表中插入数据。该表包含以下字段:借阅编号、读者编号、书籍编号、借阅日期、归还日期、借阅状态。每条数据表示一次借阅记录。其中借阅编号、读者编号、书籍编号、借阅日期和借阅状态是必填项,归还日期为可选项,如果借阅状态为“已还”则必须填写归还日期。 具体插入的数据如下: - 借阅编号:100001,读者编号:123413,书籍编号:0001,借阅日期:2020-11-05,归还日期:NULL,借阅状态:借阅 - 借阅编号:100002,读者编号:223411,书籍编号:0002,借阅日期:2020-9-28,归还日期:2020-10-13,借阅状态:已还 - 借阅编号:100003,读者编号:321123,书籍编号:1001,借阅日期:2020-7-01,归还日期:NULL,借阅状态:过期 - 借阅编号:100004,读者编号:321124,书籍编号:2001,借阅日期:2020-10-09,归还日期:2020-10-14,借阅状态:已还 - 借阅编号:100005,读者编号:321124,书籍编号:0001,借阅日期:2020-10-15,归还日期:NULL,借阅状态:借阅 - 借阅编号:100006,读者编号:223411,书籍编号:2001,借阅日期:2020-10-16,归还日期:NULL,借阅状态:借阅 - 借阅编号:100007,读者编号:411111,书籍编号:1002,借阅日期:2020-9-01,归还日期:2020-9-24,借阅状态:已还 - 借阅编号:100008,读者编号:411111,书籍编号:0001,借阅日期:2020-9-25,归还日期:NULL,借阅状态:借阅 - 借阅编号:100009,读者编号:411111,书籍编号:1001,借阅日期:2020-10-08,归还日期:NULL,借阅状态:借阅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值