计算机组成原理第三章(下)

时间:2024-10-25 09:04:46

1. Cache的基本原理

        1.1 工作原理

                        将某些主存复制到Cache中,缓和CPU和主存之间的速度矛盾

        1.2 局部性原理

                        时间局部性: 现在访问的地址,不久之后也可能被再次访问

                        空间局部性: 现在访问的地址,其附近的地址也可能即将被访问

        1.3 性能分析

                        理解Cache命中率,缺失率

                        俩种方式:

                        1> 先访问Cache,发现未命中再访问主存

                        2> 同时访问Cache和主存,若Cache命中则停止访问主存

例题:

        1.4 其他概念

                1> 主存与Cache之间以"块"为单位进行数据交换

                2> 主存的"块"又叫"页/页框/页面";Cache"块"又叫"行"

                3> 主存地址可拆分为(主存块号,块内地址)的形式

总:

2. Cache和主存的映射方式

        2.1 Cache中存储的信息

                1> 有效位(0/1)+标记+整块数据

                2> 其中"标记"用于指明对应的内存块,不同映射方式,"标记"的位数不同

        2.2 全相联映射

                1> 主存块可以放到Cache的任意位置

                2> 主存地址结构: 标记(整个主存块号)+块内地址

                3> 优点: Cache存储空间利用充分,命中率高;缺点: 查找"标记"最慢,有可能需要对比所有行标记

        2.3 直接映射

                1> 主存块只能放在某个特定的Cache行,行号 = 主存块号%总行数

                2> 主存地址结构: 标记(主存储块号前几位)+行号(主存块号末几位)块内地址

                3> 优点: 对于任意一个地址,只需对比一个"标记"速度最快;缺点:Cache存储空间利用不充分,命中率低

        2.4 组相联映射

                1> 主存块可以放到特定分组中的任意位置,所属组号=主存块号%总组数

                2> 主存地址结构: 标记(主存块号前几位)+组号(主存块号末几位)块内地址

                3> 优点: 结合上述俩种优点

                4> 术语: n路组相联映射--每n个Cache行为一组

总:

3. Cache替换算法

        3.1 随机算法

                1> 随便选一个主存块替换

                2> 过于*,效果比较差

        3.2 先进先出算法

                1> 优先替换最先被调入Cache的主存块

                2> 不遵循局部性原理,效果差

        3.3 近期最少使用

                1> 将最久没有被访问过的主存块替换.每个Cache行设置一个"计数器",用于记录多久没被访问.

                2> 基于"局部性原理",近期被访问过的主存块,在不久的将来页很有可能被再次访问,因此淘汰醉酒没被访问过的块是合理的.LRU算法的实际运行效果很好,Cache命中率高

        3.4 最近不经常使用

                1> 将被访问次数最少的主存块替换.每个Cache行设置一个"计数器",用于记录被访问过多少次

                2> 曾经被经常访问的主存块在未来不一定会用到,LFU实际运行效果不好

总:

4. Cache写策略

        4.1 写命中

                        全写法:当CPU对Cache写命中的时候,必须把数据同时写入Cache和主存中

                        写回法:当CPU对Cache写命中的时候,只修改Cache的内容,不立即写入主存,只有当此块被换出的时候才写回主存

        4.2 写不命中

                        写分配法:当CPU对Cache写不命中的时候,把主存的块调入Cache中,在Cache中修改.

                        非写分配法: 当CPU对Cache写不命中的时候只写入主存,不调入Cache.

        4.3 多级Cache

                        现代计算机常采用多级Cache结构

总: