组成原理(五):存储器(下)

系列文章目录

组成原理(一):基本概述
组成原理(二):总线
组成原理(三):存储器(上)
组成原理(三):存储器(中)



前言

哈工大计组网课笔记,教材是《计算机组成原理》(唐朔飞)


(三)高速缓冲存储器

1.概述

1.1.为什么用Cache?

由于CPU性能发展与存储器性能发展之间存在剪刀差,现阶段的CPU执行速度远大于一般主存(DRAM)存取速度,为了避免CPU出现“空等”现象,所以需要在CPU和主存之间加入一层容量小,速度高的Cache,CPU访问的的指令,大多能在Cache中取得。

程序访问的局部性原理:包括时间局部性空间局部性

  • 时间局部性是指在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环。
  • 空间局部性是指在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是连续的,因为指令通常是顺序存放、顺序执行的,数据一般也是以向量、数组等形式簇聚地存储在一起的。

所以,Cache与主存之间数据交换的单位是块。

1.2.Cache的工作原理

1.2.1.主存与缓存的编址

主存和Cache都分成大小相等的块,主存中有M块,Cache中有C块 ( M > > C ) (M >>C) M>>C。主存的块内偏移地址位数决定了块的大小,块号的位数则决定了块的数量。而Cache的地址也分为缓存块号和块内地址,但是实际应用中,Cache的地址意义并不大(思考原因)。
一个块在内存和Cache中进行传送的时候是整体进行传送,块内字节的顺序不会发生任何变化,所以主存和Cache的块内偏移地址的值是完全相同的。
Cache上有一个标记,标记了主存块和Cache块之间的对应关系。即存储了此Cache块中存储的主存中的块的主存块号,当CPU给出一个内存地址,希望能在Cache中访问这个地址,首先就会确定这个块是否已经被送到了Cache当中,即比较给出的的地址的主存块号与Cache中的标记,如果和某一个Cache的标记相等,且该Cache块有效,则可直接从此Cache中获得想要访问的主存数据。
在这里插入图片描述

1.2.2.命中与不命中

主存中有M块,Cache中有C块 ( M > > C ) (M >>C) M>>C
命中:要访问的主存块已经调入缓存,CPU在缓存中能够取到相应得数据或指令,就称为命中。如果命中,则主存块与缓存块就建立了对应关系。
未命中:要访问的主存块没有调入缓存,CPU必须到主存中获得相应得数据或指令,就称为未命中。如果未命中,则主存块与缓存块未建立了对应关系。、

1.2.3.Cache的命中率

CPU欲访问的信息在Cache中的比率
KaTeX parse error: Expected '}', got 'EOF' at end of input: …\quad{N_2-未命中率}
命中率与Cache的容量与块长有关。
一般来说每块取4~8个字。块长取一个周期内从主存调出的信息长度
在这里插入图片描述

1.2.4.Cache-主存的效率

效率e与命中率有关
e = 访问 C a c h e 的时间 平均访问时间 × 100 % e = \frac{访问Cache的时间}{平均访问时间}\times{100\%} e=平均访问时间访问Cache的时间×100%
设Cache命中率为 h h h,访问Cache的时间为 t c t_c tc,访问主存的时间为 t m t_m tm,则
e = t c h × t c + ( 1 − h ) × t m × 100 % e = \frac{t_c}{h\times t_c + (1-h)\times t_m}\times{100\%} e=h×tc+(1h)×tmtc×100%
可得 t c t m ≤ e ≤ 1 {\frac{t_c}{ t_m}}\leq e \leq 1 tmtce1
注意:这里算平均访问时间,是在Cache与主存并行的情况下,如果先访问Cache,在Cache没有命中的的情况下再访问主存,这时平均访问时间的公式不再是上面那个。

1.3.Cache的基本结构

在这里插入图片描述

  • 主存Cache地址映射变换机构
    CPU发出一个地址,同时发给主存和主存cache地址映射变换机构,如果命中,就将主存地址转化为Cache地址(由于偏移地址(低位地址)一致,所以基本上是主存块号(高位地址)到Cache块号的转换),从cache存储体中找到对应的字,然后通过数据总线送到CPU,完成一次读写过程;如果没有命中,而应该从主存中取出字送给CPU,与此同时,如果cache中有空间可以装进,就将这个字所在的块拿到cache中。
  • Cache替换机构
    如果空间不够,不能装进cache,cache替换机构就将cache中不常用的块拿出,将该字的块替换进cache中。
  • Cache存储体

1.4.Cache的读写操作

1.4.1.读操作

在这里插入图片描述

1.4.2.写操作

Cache与主存的一致性(重点)

  • 写直达法(Write-through):
    写操作时数据既写入Cache又写入主存,时刻保存Cache内容和主存内容一致,并且Cache块内容从Cache中退出的的时候,不需要对主存执行写操作,更新策略比较容易实现。写操作的的时间就是访问主存的时间
    优点:Cache和主存一直保持一致
    缺点:可能造成CPU对同一个内存单元反复写

  • 写回法(Write-back):
    写操作时只把数据写入Cache而不写入主存,当Cache块内容从Cache中退出时才写回主存,允许一段时间中,主存与Cache内容不一致
    优点:修改数据只在Cache中修改速度快,减少了主存的写入操作
    缺点:在多处理器的情况下,各个处理器有各自的Cache,内存的一个块在各个处理器的Cache中都有副本,这里科南出现各个副本之间的一致性问题。

1.5.Cahce的改进

  • 增加Cache的级数
    片载Cache(单一缓存)
    片外Cache(二级缓存)

  • 统一缓存和分立缓存
    统一缓存:数据与指令统一放入Cache----冯氏结构
    分立缓存:Cache分为指令Cache和数据Cache

2.Cache-主存的地址映射

指主存当中的任意一块如果要加载到Cache当中的话,可以加载到那些块。

2.1.直接映射

主存当中任意一个给定的的块,只能映射(装载)到某一个指定的Cache块当中。
在这里插入图片描述
优点:成本低,速度快
存在问题:Cache利用率可能很低,相同编号的字块冲突可能性比较大,导致频繁替换降低命中率。

2.2.全相联映射

主存当中任何一个块可以被放入到Cache的任何一个块当中。
在这里插入图片描述
优点:Cache利用率高
存在问题:因为是全相联,所以在检验是否命中时,要将主存块号与Cache中所有块的标记进行比对,这个比较是同时进行的,电路比较复杂(成本高),速度比较慢。
参加比较的的位数也比较长,比较器的长度也会比较长。

2.3.组相联映射

某一个主存块只能映射到某一缓存组中的缓存块中

  • 直接映射:某一主存块 j j j按照 2 Q 2Q 2Q映射到缓存的第 j   m o d   2 Q j\bmod2Q jmod2Q组的指定块。

  • 全相联映射:某一主存块 j j j可任意映射到缓存的任意块。

  • 组相联映射:某一主存块 j j j按照 Q Q Q映射到缓存的第 i i i组的任意块。

如果将Cache中所有的块都分为一组,那么组相联就成了全相联,如果组相联中所有组都只有唯一的一块,那么组相联就成了直接映射。
这三种映射方式在不同层次的Cache当中作用是不同的,在靠近CPU层次Cache中就可以用直接映射,或者是组中数量少的组相联;在中间的一些层次,可以用组相联映射;距离CPU最远的Cache层次,据可以采用全相联模式。

3.替换算法

先进先出算法(FIFO)
近期最少使用算法(LRU)

辅助存储器(四)

1.概述

1.1.特点

不直接与CPU交换信息

1.2.磁表面存储器的技术指标

  • 记录密度
    道密度 D t D_t Dt:硬盘在径向方向上,单位长度有多少个磁道。
    位密度 D b D_b Db:单位长度的磁道保存了多少位二进制信息。(同心圆越往外,位密度越低)
  • 存储容量
    C = n × k × s n − 盘面 k − 磁道 s − 每个磁道的二进制信息 C = n \times k \times s \quad{n-盘面}\quad{k-磁道}\quad{s-每个磁道的二进制信息} C=n×k×sn盘面k磁道s每个磁道的二进制信息
  • 平均寻址时间
    平均寻址时间 = 寻道时间+等待时间
    辅存的速度 = 寻址时间+ 磁头读写时间
  • 数据传输率
    D r = D b × V ( V − 磁盘旋转速度) D_r = D_b \times V(V-磁盘旋转速度) Dr=Db×VV磁盘旋转速度)
  • 误码率
    出错信息位数与读出信息的总位数的比值

2.磁记录原理

在这里插入图片描述
在这里插入图片描述

3.硬磁盘存储器

3.1.硬磁盘存储器的类型

  • 固定磁头和移动磁头
  • 可换盘和固定盘

3.2.硬磁盘存储器的结构

在这里插入图片描述

  • 磁盘驱动器
    在这里插入图片描述
  • 磁盘控制器
    在这里插入图片描述
  • 盘片
  • 由硬质铝合金材料组成

4.软盘

在这里插入图片描述

4.光盘存储器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值