计算机组成原理之高速缓冲存储器(Cache)

本文介绍了计算机组成原理中高速缓冲存储器(Cache)的作用,为解决CPU与主存速度差异问题。讲解了Cache的工作原理,包括主存和缓存的编址、命中与未命中的概念,以及不同类型的地址映射方式如直接映射、全相联映射和组相联映射。此外,还讨论了替换算法如FIFO和LRU,强调了程序访问的局部性原理在Cache设计中的重要性。
摘要由CSDN通过智能技术生成

概述

问题的提出

由上一篇计算机组成原理之主存储器中的存储器分层结构图可知,CPU(寄存器)和主存(DRAM)之间存在速度的差异,由于主存的速度很慢,在CPU访存时,就会出现CPU的“空等”现象,造成CPU资源的极大浪费。

为了解决这个问题,我们在CPU和主存之间加入了一级高速缓冲存储器Cache(SRAM),称为缓存。Cache的速度要高于主存,但容量比较小(价位比较高的原因)

在这里插入图片描述

要避免CPU的“空等”现象,这意味着CPU运行所需要的的大部分数据和指令都要在缓存中取到,不然还要频繁的访问主存,Cache就白加了,但是缓存的容量远小于主存,如何保证CPU使用的数据和指令都在缓存中得到?这就运用了计算机中一个很重要的原理:程序访问的局部性原理。

程序访问的局部性原理:

  • 时间上的局部性:当前正在使用的指令和数据,在不久的将来还会被使用到
  • 空间上的局部性:当前正在使用一个指令或数据,那么在不久的将来,相邻的指令或数据就会被使用到

根据程序的局部性原理,在缓存中存储的应该是当前使用的指令和数据以及它们相邻的指令和数据。因此缓存和主存之间数据交换的单位就是块,块中存放有当前使用的指令和数据以及相邻的指令和数据,块的大小(即一次性取出多少相邻的指令和数据)可以由实验获得。

Cache的工作原理

主存和缓存的编址

在这里插入图片描述

主存和Cache被分为大小一样的块,主存有M块,Cache有C块,M>>C,此时,主存内的地址可被分为两个部分,高位为块号,低位为块内偏移地址,体现了块的大小,如果块内地址有5位,则块的大小为2^5=32个字节;同样&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值