当前位置: 首页 > ds >正文

考研408《计算机组成原理》复习笔记,第三章(5)——磁盘存储器

借鉴声明

图中部分图来自于该博主,感谢

概念回顾(可跳过)

存储系统的第一章我就简单介绍了什么是磁存储器

(错误修改版)考研408《计算机组成原理》复习笔记,第三章(1)——存储系统概念_408计算机组成原理 第三章-CSDN博客

先回顾一下【磁存储器大家族】

  •  磁表面存储器:靠 “磁载体 + 磁头” 的机械运动存数据,代表为磁盘、磁带
    • 磁盘存储器:核心是【磁盘盘片(磁介质 )+ 读写磁头】,按直接存储(对应表“直接存储器DAM”)
      • 软盘:盘片是涂覆磁性材料的柔性塑料薄片,通过磁头读写
      •   
      • 传统硬盘【机械硬盘HDD】就是代表(注意超级重大误区:固态硬盘 ≠ 磁盘!!!!硬盘不完全属于磁盘,只有传统磁盘这种依靠【磁盘盘片(磁介质 ) + 读写磁头】的才是磁盘)
    • 磁带:靠磁带上的磁粉记录数据,按顺序存取( “顺序存储器 SAM” )
  • 磁芯存储器:用 “磁芯阵列 + 导线” 的电磁翻转存数据(曾用于计算机主存,后来被半导体替代,已经被淘汰)

一、磁盘存储器

因为【磁表面存储器的 “磁带”】、【磁芯存储器】都被淘汰了,所以不学只有【磁盘存储器】才是现在依旧重要的磁性存储器

1、磁盘设备组成

ok,开始文科背诵就完事了

王道的笔记,自己学的比较透彻的看这个整体图回忆一下是够的

不是很熟的看下面这些图解

【磁盘整体】宏观图

整体宏观来看【磁盘】的组成就3大部件:【磁盘驱动器】+【磁盘控制器】+【盘片

  • 磁盘驱动器】:驱动 “磁盘转动”“磁头架带动磁头前后移动”,从而让磁头进行读/写
  • 磁盘控制器】:磁盘和主机的【接口】,接收CPU的指令来控制磁盘的状态(图片中没展示,装在主板上的)
  • 盘片】:注意,一个盘片上下包含2个盘面(当然也有特殊的,像下面左图的第一个和最后一个盘片就只有一个盘面)

这里【磁盘控制器】没什么好都说的,看个例题就会了

【盘面】图解

记住:【盘面】也叫【记录面】

盘片的表面涂有磁性物质,这些磁性物质用来记录二进制数据。因为正反两面都可涂上磁性物质,故一个盘片可能会有两个盘面

【柱面】图解

所有盘面中相对位置相同的磁道组成柱面。如下图,

【磁道、扇区】区别图解

每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区。如下图:

在这里插入图片描述
其中,最内侧磁道上的扇区面积最小,因此数据密度最大。
每个盘面对应一个磁头。所有的磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”。

【存储区域】

由此可知,存储区域多大由【磁头数】+【柱面数】+【扇区数】决定

  • 【磁头数】——>可以确定有几个记录面(盘面),一个磁头对应一个记录面(盘面)
  • 【柱面数】——>可以确定一个记录面(盘面)有多少磁道
  • 【扇区数】——>可以表示一个磁道上有几个扇区

【磁盘寻址顺序】

由上可知:

【单个磁盘内】寻址

可用(柱面号,盘面号,扇区号)来定位任意一个“磁盘块”。

        在“文件的物理结构”小节中,我们经常提到文件数据存放在外存中的几号块(逻辑地址),这个块号就可以转换成(柱面号,盘面号,扇区号)的地址形式。

提示重大易错误区:

  • 【柱面号】=【磁道号】
  • 【磁头号】=【盘面号】

可根据该地址寻找到一个“块”,操作如下:

  • ① 根据“柱面号”移动磁臂,让磁头指向指定柱面;
  • ② 根据“盘面号”找到是第几个盘面,激活指定盘面对应的磁头;
  • ③ 磁盘旋转的过程中,根据指定的“扇区号”,扇区会从磁头下面划过,这样就完成了对指定扇区的读/写。                                               

【一个主机内】磁盘寻址

但是注意,我这里只是讲简单的【单个磁盘】的【寻址顺序】

一个主机里可能还有【多个磁盘】

【磁盘的工作过程】

一个磁盘工作除了【寻址】还有【读取】、【写盘】

 【例题】

【磁盘高速缓存(Disk Cache)】

在【内存】中开辟一部分区域,用于缓冲将被送到磁盘上的数据。

优点:

  • 写磁盘时是按【“簇”】进行的,可以避免频繁地用小块数据写盘;
  • 有些中间结果数据在写回磁盘之前可被快速地再次使用。

【簇】

是后面操作系统的知识点,现在初略理解

  • 【簇】就是【逻辑上的“块”】
  • 【扇区】是【物理上的“块”】

还有2个重要知识点,记牢!!!!!

  • 1、磁盘存储器是【高速外设(辅存)】,只用【直接访问存储器DAM】!!
  • 2、【直接访问存储器DAM】可翻译成另一种解释:【采用成批数据交换方式

【例题】

【磁记录原理】

记住:

二、磁盘性能指标

王道这块讲得很好,完全不需要我多余的字解释

磁盘容量

记录密度

平均存取时间(必考常考)

【旋转延迟时间】一般计算方式

【传输时间】的2种考察计算方法

数据传输速率

例题

三、磁盘阵列RAID

RAID英文全拼:Redundant Array of Inexpensive Disks,廉价冗余磁盘阵列

说人话来理解:

        就是本来一个独立的物理磁盘只能按顺序串行的访问,但是你用多个磁盘合起来,就能在【逻辑上】合成一个类似【低位多体交叉编址存储器】,不就能【并行访问】了嘛

        然后你像百度云、夸克网盘这样的大数据库产业需要【又要存取数据快】、【又安全、不丢失数据】,那就要在能并行存取的基础上多加【几个磁盘,备份一模一样的数据】,这样坏了几个磁盘也不怕

        然后又要在成本上减少【冗余磁盘】,那就一步一步改进,所以从简单的【RAID0】逐渐演变成——> 牛逼的【RAID5】

尤其注意【RAID0】【RAID1】【RAID2】的特点!!!!

另外需要注意图里的这几个专业名词:

【条带化】:就是像【低位交叉编址存储】的形式,把【N个物理实际磁盘】变成一个【逻辑磁盘】,可存取得更快——>【并行存取】

【磁盘镜像】就是RAID1那样,2磁盘备份统一数据,可提高数据安全可靠性

【奇偶校验】

RAID3、RAID4、RAID5都是用奇偶校验,来保证数据正确性、可靠性

例题

四、固态硬盘

1、机械硬盘VS固态硬盘

再次强调:这两本质就区别很大!!!

  • 机械硬盘是【磁盘】,磁性材质存储器,英文叫HDD(Hard Disk Drive)
    • 访问形式:串行访问存储器里的【直接存储器】
    • 寻址速度:用机械臂和旋转磁盘来访问地址,有寻道时延+旋转延迟,比固态硬盘慢!!
    • 存储区磨损:机械硬盘的【扇区】不会因为多次写入而坏
  • 固态硬盘是【半导体】,英文叫SDD(Solid Status Drive)
    • 访问形式:【随机存储器RAM】!!!
    • 寻址速度:用电路控制访问位置,比机械硬盘快!!!
    • 存储区磨损:多次写入会导致多次擦除,到一定次数,“块”会报废
    • 不过也更贵。。。
  • 不过共同点是都是【外存(辅存)】、都是【非易失性存储器】、都有【大容量】

2、固态硬盘原理

它是【闪存Flash Memory】技术创造的,而【闪存】又是由【电可擦除ROM(EEPROM)】发展而来,所以固态硬盘也属于【ROM】

回顾【闪存】知识点

记住特点:

        1、可读可写的ROM;

        2、支持多次写入;

        3、要先擦除再写入,写比读慢;

        4、可以存储大量数据(代表:SD卡、U盘、固态硬盘、BIOS)

3、组成结构

宏观上结构:

就是主机通过I/O总线(因为它属于【外存(辅存)】),把要写/读的【逻辑“块”地址】,经过【闪存翻译层】的“翻译”变成SSD里【实际的物理地址】

微观上的细节:

那么SSD里最小的数据存储单位是【页】!!!

闪存里层级关系的【闪存芯片】——>【块】——>【页】

计算机只知道逻辑地址是 “块”,但是对于外存而言:

  • 磁盘的 “磁道”】相当于【闪存的 “块”
  • 磁盘的最小单位 “块/扇区】相当于【闪存的最小单位 “

注意,如果一个【块】内只想写入某个【页】,但是要擦除整个【块】,那【其他要保留的页】的数据怎么保证不丢失?

        那【要保留的页】就是迁移到别的干净的【块】然后在那写入,那么也可以发现这时候要写入的【实际物理地址】不再是之前的了,也就是说 “逻辑地址映射的物理实际地址会动态变化

4、磨损技术

前面说了,SSD固态硬盘的一个缺点就是【“块”被多次写入,会多次擦除,就会报废磨损

所以就诞生【磨损均衡技术】:

5、例题

http://www.xdnf.cn/news/15897.html

相关文章:

  • 文生图-StoryGAN:用于故事可视化的顺序条件GAN
  • Github Actions Workflows 上传 Dropbox
  • 【C++】初识C++(2)
  • 【RK3576】【Android14】UART开发调试
  • 微信小程序入门实例_____从零开始 开发一个“旅行清单 ”微信小程序
  • 微信小程序——世界天气小助手
  • 【EMC设计基础--信号环路分析、PCB设计规则】
  • VSCode - VSCode 查找中文字符
  • LVS工作模式和算法的总结
  • 【RK3576】【Android14】SDK源码编译
  • 前端 SSE 实战应用:用最简单的方式实现实时推送
  • Android CountDownTimer
  • 深入理解Linux文件I/O:系统调用与标志位应用
  • 机器学习17-Mamba
  • c++继承详解
  • 【Leecode 随笔】
  • 使用python的读取xml文件,简单的处理成元组数组
  • 【时时三省】(C语言基础)通过指针引用字符串
  • PyCharm 高效入门指南(核心模块详解二)
  • stm32f4 dma的一些问题
  • API和SDK有何区别??
  • 跨平台猫咪键盘桌宠BongoCat v0.6.2 绿色版(附带多款皮肤包)
  • SDIO协商,枚举,CMD等概念
  • [特殊字符] Spring Boot 常用注解全解析:20 个高频注解 + 使用场景实例
  • 前端篇——番外篇 Bootstrap框架
  • (笔记+作业)第五期书生大模型实战营---L2G2000 GraphGen:训练数据合成实践
  • 前端之CSS
  • LP-MSPM0G3507学习--04GPIO控制
  • 磁悬浮转子不平衡质量的高精度控制:从原理到实战
  • 一文讲清楚React的render优化,包括shouldComponentUpdate、PureComponent和memo