cache 中文名称叫做高速缓冲存储器,它是位于 CPU 与主内存之间的高速小容量存储器,属于计算机组成原理的核心考点,核心作用是解决 CPU 运算速度远快于主内存读写速度的速度差矛盾,利用程序局部性原理,把 CPU 近期频繁要用的数据和指令提前存放到 cache 里面,CPU 优先访问 cache,命中的时候就不用等待慢速主内存,大幅提升整机运行效率,cache 一般采用 SRAM 静态随机存取存储器制作,特点是速度极快,但是成本高,容量相比主存小很多,断电之后数据会丢失,属于易失性存储器,很多考生容易混淆,把 cache 当成主存或者硬盘,要记住它不属于主存,是独立的缓冲存储部件。
计算机存储体系是分级设计,按照速度从快到慢依次是寄存器 cache 主内存 硬盘,越靠近 CPU 的存储设备速度越快、容量越小、单位成本越高,cache 就是这个分级体系里面的中间缓冲层级,设计依据是程序局部性原理,分为时间局部性,也就是刚访问过的数据短时间还会再次访问,还有空间局部性,访问某地址之后,相邻地址的数据大概率很快也会被访问,cache 就是基于这个原理预取数据。
cache 分类
分类方式 类型 说明
按层级 L1 Cache 一级缓存,集成在 CPU 内核里面,速度最快,容量最小,分为数据缓存 D-Cache 和指令缓存 I-Cache
按层级 L2 Cache 二级缓存,早期独立后来集成进 CPU,容量大于 L1,速度略低于 L1
按层级 L3 Cache 三级缓存,多核 CPU 共享,容量最大,速度比 L1 L2 慢,供多个核心共用
按映射方式 直接映射 组相联映射 全相联映射,三种是 cache 地址映射方式,考试常考
核心特点对照表
项目 cache 主存
存储介质 SRAM DRAM
读写速度 极快 较慢
容量 小 大
是否易失 易失,断电数据消失 易失,断电数据消失
成本 单位成本高 单位成本低
深度考点要点
第一 重要概念,cache 命中,CPU 需要的数据刚好在 cache 里面,就是命中;不在 cache 里面叫做未命中或者缺失,此时 CPU 才会去主存读取数据,同时把该数据调入 cache
第二 cache 对程序员是透明的,程序员写代码不需要感知 cache 的存在,调度和替换全部由硬件自动完成,这是选择题高频考点
第三 cache 只保存主存数据的副本,主存仍然保留原始数据,存在一致性问题,多核场景需要保证 cache 和主存数据一致
第四 不要混淆,cache 不是 ROM,不是固态硬盘,它是 SRAM 构成的易失高速缓存,和磁盘缓存虽然都叫 cache,但是硬件原理不一样
综合总结,cache 是 CPU 和主存之间的高速缓冲存储器,采用 SRAM,依靠局部性原理缓解 CPU 与主存速度不匹配问题,分级为 L1 L2 L3,硬件自动管理,对程序员透明,属于计算机存储层次里非常关键的一级存储。
【相关 FAQ】
问题 1 cache 是一种什么存储器,它使用的是什么芯片
回答 1 cache 是一种什么存储器,它是高速缓冲存储器,内部采用 SRAM 静态随机存储器,不是主存使用的 DRAM 芯片。
问题 2 cache 是一种什么存储器,断电之后里面数据还会保留吗
回答 1 cache 是一种什么存储器,cache 属于易失性存储器,断电之后内部存储的数据会全部丢失,不能长期保存数据。
问题 3 cache 是一种什么存储器,程序员需要手动管理 cache 吗
回答 1 cache 是一种什么存储器,cache 由硬件自动完成数据调入替换,对程序员透明,写程序的时候不需要手动操作 cache。
【免责申明】
本内容属于计算机学科基础知识科普,相关原理表述以计算机组成原理教材为准,本文不替代专业教材,不对考试答题判分承担责任。


