考研408--组成原理--day6--外部存储器&Cache

(以下内容全部来自上述课程)

目录

  • 外部存储器
    • [1. 磁盘存储器](#1. 磁盘存储器)
      • [1.1 组成](#1.1 组成)
      • [1.2 性能指标](#1.2 性能指标)
      • [1.3 磁盘地址](#1.3 磁盘地址)
      • [1.4 磁盘阵列](#1.4 磁盘阵列)
      • [1.5 小结](#1.5 小结)
    • [2. 固态硬盘(SSD)](#2. 固态硬盘(SSD))
      • [2.1 小结](#2.1 小结)
      • [2.2 机械硬盘vs固态硬盘](#2.2 机械硬盘vs固态硬盘)
      • [2.3 结构](#2.3 结构)
      • [2.4 拓展](#2.4 拓展)
  • Cache
    • [1. 工作原理](#1. 工作原理)
    • [2. 性能分析](#2. 性能分析)
    • [3. 问题](#3. 问题)
    • [4. 小结](#4. 小结)
  • Cache和主存的映射方式
    • [1. 全相联映射](#1. 全相联映射)
    • [2. 直接映射](#2. 直接映射)
    • [3. 组相联映射](#3. 组相联映射)
    • [4. 小结](#4. 小结)
  • Cache替换算法
    • [1. 随机算法(RAND)](#1. 随机算法(RAND))
    • [2. 先进先出算法(FIFO)](#2. 先进先出算法(FIFO))
    • [3. 近期最少使用算法(LRU)](#3. 近期最少使用算法(LRU))
    • [4. 最不经常使用算法(LFU)](#4. 最不经常使用算法(LFU))
    • [5. 小结](#5. 小结)
  • Cache写策略
    • [1. 写命中](#1. 写命中)
      • [1.1 写回法](#1.1 写回法)
      • [1.2 全写法](#1.2 全写法)
    • [2. 写不命中](#2. 写不命中)
      • [2.1 写分配法](#2.1 写分配法)
      • [2.2 非写分配法](#2.2 非写分配法)
    • [3. 多级Cache](#3. 多级Cache)
    • [4. 小结](#4. 小结)

外部存储器


注意:写入数据是1bit1bit写入的,所以要连续的读出来,中间还需要其他的零件才能实现。

可以设定SN是1,NS是0,所以就可以按照二进制写入数据。

1. 磁盘存储器

类似于唱片,可以拨动磁头只能存储位置。

左侧图片是磁盘驱动器,右侧图片是磁盘控制器。

1.1 组成

  • 磁头:磁盘的面。
  • 柱面数:磁盘面儿上的圈圈。(因为好多个磁盘面叠起来就是一个圆柱体)
  • 扇区数:切割面出现的扇形区域。

    一个磁盘的正反面都可以涂上磁层,磁头的上下两端都可以读取数据,第一个磁盘上没有磁头是因为这个磁头只能读单侧,造价成本太高,所以第一层上面就没有磁头。

1.2 性能指标

  • 容量:格式化容量的一部分可以拿去装别的东西,所以一般它的容量比非格式化容量小。
  • 密度:每个圈圈上的信息量都是相等的,所以大的圈信息分布得就稀疏,小的圈就密集,也越难制造。
  • 道密度:半径-->图中右边儿的蓝色线,左边儿的蓝线是磁头
  • 位密度:一圈儿-->图中红色线
  • 面密度:道密度*位密度
  • 寻道:把磁头放到想查找的信息的那个圈儿上。
  • 旋转延迟时间:不一定磁头刚好放在信息弧上,所以得等他自己转过来。
  • 传输时间:划过信息弧的时间。

1.3 磁盘地址

因为读写都是一比特一比特来的,所以就需要用并串变换电路把数据串在一起。

1.4 磁盘阵列

数字越大的版本,性能越好。

RAID0:因为数据都只有一个版本,所以无冗余也没有校验。

RAID1:相同的数据存两遍。

RAID2:Disk0~3存信息,Disk4、5、6是校验位,所以有纠错功能。

1.5 小结

2. 固态硬盘(SSD)

2.1 小结

2.2 机械硬盘vs固态硬盘

ps:机械硬盘是磁盘的一种。

2.3 结构

  • 固态硬盘-->块号
  • 机械硬盘-->扇区
  • 芯片包含块,块包含页。

    如果想擦除数据,是整个块都擦除的,如果你只想写入这个块的某一页的数据,那就需要把不用动的数据复制到另一个块内,擦除原来的块上的数据,把新的页的数据写入后块的那一页中。

2.4 拓展

Cache

Cache可以让访问速度更快。

1. 工作原理

就是类似于你买快递,买的东西被一个地区一个地区传递,最后送到你的手里。

简单来说,就是一个东西,你可能某个时间段天天用,但是又可能过一阵就不用了,啥时候能用上都说不准 ,所以你是把它随身携带呢,还是放在别的地方呢?(涉及Cache替换算法)

2. 性能分析

分为两种情况:

  • 先访问Cache,找完发现没有再找内存
  • Cache和内存同时找

显而易见,第二种更有效率一点儿

3. 问题

Cache和主存的块的容量必须一样,也就是原封不动复制一整个东西备用。

就好比,你买了两只唇膏,有一天你想用,刚好随身(Cache)有,没有的话就只能去家里(内存)找了。

  • 主存地址共22位:4M=222
  • 块内地址10位:1K=210
  • 块号12位:4M/1K=222-10=212

    沿用上述的情景-有待解决的问题:
  • 对应关系:可以说是我的唇膏应该放在我身上的哪个口袋里
  • 内存:我身上的兜都满了,还想带别的东西,那么之前随身携带的东西应该怎么办
  • 一致性:用文本理解吧,唇膏不太恰当

4. 小结

Cache和主存的映射方式

想想你身上的兜有很多,那么怎么分清每个兜里都装了什么东西呢?这就需要标记 了,相当于便签,记录兜里的东西是什么。
有效位 就是用来记录你的兜里有没有放东西。

1. 全相联映射

我想带的东西,身上的兜随便儿放。

  • 主存地址28位:256M=228
  • 块内地址6位:Cache行长64B=26B
  • 主存块号22位:256M/64B=228-6=222
  • 主存块号-->蓝色标记-->22位
  • 块内地址-->黑色-->6位
  • 先根据蓝色标记找到具体的块号,块号中不还分了好多地址么,然后再在这个块中寻找固定的地址。

2. 直接映射

自己的哪个兜都固定 放啥,下次放同样的东西就还放这个兜里。

当然,缺点就是如果没有固定的东西,那这个兜就只能空着了,浪费空间。

因为有了固定性 ,所以主存块号的后三位(23块Cache),就证明了自己的东西放在了哪个兜,你东西还没放兜里呢,就直接翻兜肯定啥都没有,所以可以把后三位去掉,剩余前19位,就可以去找主存的大体位置,然后再根据块内地址精准定位。

3. 组相联映射

就是我这个兜固定放这一类 的东西,好比这个兜只能放唇膏,我这个牌子的唇膏用完了,还可以放另一个牌子的唇膏。

和直接映射的固定类似,这里的Cache被分成了22组,所以后两位就代表哪两个兜用来放这一类的东西,所以用前20位作为标记就可以。

4. 小结

Cache替换算法



1. 随机算法(RAND)

纯随机,无规律。

2. 先进先出算法(FIFO)

非常丝滑地向右下斜着挨个儿替换。(看红色字体)

3. 近期最少使用算法(LRU)

这里就需要用到计数器,用来记录哪个数据一直没有被用到,就直接把它踢出去。

好像数字炸弹啊。

做题的话:

一到要提出数据的时候,就从他前面画一个线隔断,往前找,最近的三个谁没出现就踢谁。

规则非常人性化:

  • 被访问了的数据的计数器就清零,比它低的就都+1,其余不变(是因为再大也大不到哪儿去了,这个其余就是最大的)
  • 如果有地方放,那就愉快地直接放,计数器归零,其他的都+1
  • 如果没地儿放,就把计数器最大数字的踢出去,新加入的为0,其余+1.


    但是!因为你刚拿出去的东西说不定又马上想用了,所以...这就是缺点。

4. 最不经常使用算法(LFU)

这次的计数器记录的是数据的使用次数

空间不够了,谁用得最少,就给谁踢出去。

如果碰到计数器相等且都是最小,可以用先进先出,或者直接淘汰行数最小的。

但是!现在经常常用的,以后可能用到的少,所以...这就是缺点。

5. 小结

Cache写策略


1. 写命中

1.1 写回法

只修改Cache,替换的时候再修改主存。

1.2 全写法

Cache和主存同时修改。

Cache和主存同时修改,但是是利用写缓冲,将修改内容写到写缓冲里,然后再写入主存中。

2. 写不命中

2.1 写分配法

想修改谁,就把谁调入Cache里修改。

搭配写回法就是Cache改了,等它被替换的时候再修改主存。

2.2 非写分配法

想修改谁就直接在主存里修改了。

3. 多级Cache

无限靠近CPU,就无限快(bushi)

4. 小结

相关推荐
如君愿2 小时前
考研复习 Day 39 | 密码学--第四章 分组密码(上)
考研·密码学
daanpdf1 天前
考研英语一历年真题及答案解析PDF(2010-2026)百度网盘
考研·pdf
05候补工程师1 天前
【408狂飙·数据结构】核心考点深度复盘:数组地址计算、特殊矩阵压缩存储与树的五大性质解题直觉
数据结构·笔记·线性代数·考研·算法·矩阵
daanpdf1 天前
历年考研数学一、数学二、数学三真题试卷及答案PDF
考研·pdf
如君愿2 天前
考研复习 Day 38 | 密码学--第三章 古典密码
考研·密码学·课后习题
蒟蒻的贤2 天前
编译原理里的冲突到底是什么?
考研·算法
荒原之梦网3 天前
在不确定的命题环境中,如何建立稳定的考研数学备考体系
考研·考研数学·荒原之梦考研数学
05候补工程师3 天前
【线性代数】硬核复习笔记:核心定理推导、矩阵变换本质与自创高频题解
经验分享·笔记·线性代数·考研·矩阵
如君愿3 天前
考研复习 Day 37 | 密码学--第一章 绪论、第二章 相关的基础知识
考研·密码学
别或许3 天前
12、高数----一元函数积分学的应用(3)物理应用与经济应用
考研