本次笔记内容:
P45 计算机组成原理(45)
P46 计算机组成原理(46)

我的计组笔记汇总:计算机组原理成笔记

视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完

幻灯片见我的 GitHub 仓库:计算机组成原理 src/slides

本节课幻灯片:组成原理35 disk.pptx

此时,绝大多数的组都完成了大实验的检查。

在5年前,这节课叫做“磁表面存储”,但是,现在这节课叫做“非易失性存储”。我的的笔记按照现在的 ppt 来记录。

文章目录

  • 内容提要
  • 非易失性存储
  • 磁芯存储器
  • 磁表面存储设备
    • 随机访问和串行访问
    • 主要技术指标
    • 磁表面存储设备
    • 磁记录原理
      • 磁记录方式
        • 常用磁记录方式(通信中有类似知识)
        • 磁记录方式波形图
    • 磁盘
    • 硬磁盘设备
      • 硬磁盘内部结构
      • 硬磁盘参数
      • 硬磁盘访问时间(例)
      • 对磁盘访问的思考
    • 结论
    • 访问磁盘过程
    • 可靠性和可用性
  • RAID的提出
    • RAID定义
    • RAID0
    • RAID2
    • RAID3
    • RAID4
    • RAID5
    • RAID6
  • 小结

内容提要

  • 硬盘存储
  • RAID技术
  • SSD存储

非易失性存储

易失性存储:

  • 静态存储器:SRAM,Cache
  • 动态存储器:DRAM
  • 特点:快速,掉电后信息丢失,访问粒度小(字节,缓存块)

非易失性存储器:

  • 磁盘,磁带:磁表面存储器
  • 光盘
  • SSD,固态存储器
  • 特点:慢速,掉电后信息不丢失,访问粒度大(以数据块为访问单位)

磁芯存储器

  • 圆柱型陶瓷上涂磁粉
  • 手工穿线,水手结
  • 消磁后重写
  • 存储原理简单
  • 工艺复杂
  • 可靠性低
  • 大存储容量
  • 成本低廉
  • 断电后保存数据

磁表面存储设备

  • 磁颗粒的不同偏转方向来区分不同的状态
  • 主存中存放CPU要立即访问的程序和数据
  • 辅助存储器中存放CPU不立即使用的信息,在需要时再调入主存中
    • 一般为磁盘、光盘等
    • 容量大、成本低、断电后还可以保存信息,能脱机保存信息,弥补了主存的不足
    • 串行访问、数据交换频率低、数据交换量大

随机访问和串行访问

随机访问:

  • 随机访问任何单元,访问时间与信息存放位置无关
  • 每一位都有各自的读写设备

串行访问:

  • 顺序地一位一位地进行,访问时间与存储位的物理位置有关
  • 共用一个读写设备
  • 顺序访问和直接访问

主要技术指标

  • 存储密度

    • 单位长度(磁带)或单位面积(磁盘)磁层表面所存储的二进制信息量
  • 存储容量
    • 磁表面存储器所能存储的二进制信息的总量,以字节为单位
  • 寻址时间
  • 数据传输率
  • 误码率
  • 价格

磁表面存储设备

如何保存?

  • 磁颗粒的不同磁化偏转方向

如何表示?

  • 磁记录方式

如何组织?

  • 扇区、磁道、柱面、硬盘

如何管理?

  • 操作系统的文件系统

磁记录原理

磁记录方式

磁记录方式:指一种编码方法,即如何将一串二进制信息,通过读写电路变换成磁层介质中的磁化翻转序列

评价标准:

  • 编码效率:表示一个二进制位数据需要使用多少个磁颗粒?
  • 自同步能力:读写时准确定位二进制数据位的能力
  • 读写可靠性

常用磁记录方式(通信中有类似知识)

  • 归零制(RZ):线圈中正脉冲为“1”,负脉冲表示“0”,两位信息位之间线圈中电流为零。
  • 不归零制(NRZ):线圈中一直有正或负脉冲(包括两位信息位之间)。
  • 见1翻转的不归零制(NRZ1):只有见到“1”才改变电流的方向。

磁记录方式波形图


如上,我们不但要考虑信息表示效率(编码效率),还要考虑容错率(同步能力)等等。

  • 归零制:自同步不好,可靠性较差,需要有中间状态。
  • 不归零制:自同步不好,可靠性较差。

磁盘

目的:

  • 长期存储、断电后存储
  • 容量大、价格低廉,但速度慢
  • 可用在层次存储器的最底层

特点:

  • 使用旋转托盘上的表面磁颗粒来存储数据
  • 可移动的读/写头来访问磁盘

硬盘、软盘比较:

  • 硬质托盘(金属铝),面积可以比较大;
  • 由于可被精确控制,密度可以更高
  • 旋转速度快,传输率高
  • 可以多个盘片组合

硬磁盘设备

硬磁盘内部结构


旋转半周的时间,是寻找扇区的时间。

硬盘参数(与容量有关)

  • 500 至 2,000 磁道(每面)
  • 32 至 128个扇区(每个磁道)
    • 扇区是磁盘访问的最小单位

早期硬盘上每个磁道上的扇区数是一样的。

增加容量:

  • 位密度不变:外磁道比内磁道扇区数多一些

硬磁盘参数

  • 柱面: 位于同一半径的磁道集合
  • 读/写数据的三个步骤:
    • 寻道时间: 将磁头移动到正确的磁道上
    • 旋转延迟: 等待磁盘上扇区旋转到磁头下
    • 传输时间:真正的数据读/写时间
  • 当前平均寻道时间:
    • 一般为 8 至12 ms
  • 旋转延迟:
    • 旋转速度:3,600至7200 RPM
    • 旋转时间:16 ms至8 ms每转
    • 平均寻址时间8ms至4ms
  • 访问速度:
    • 数据量(通常为1个扇区): 1 KB / sector
    • 旋转速度: 3600 RPM至7200 RPM
    • 存储密度:磁道上单位长度存储的位数
    • 磁盘直径: 2.5至 5.25 in
    • 一般为: 2 至12 MB每秒

硬磁盘访问时间(例)

磁盘访问时间 = 寻道时间 + 旋转延迟 + 传输时间 + 磁盘控制器延迟

举例:

  • 平均寻道时间 = 12ms
  • 旋转速度 = 5400rpm
  • 磁盘控制器延迟: 2ms
  • 传输速度 = 5MB
  • 扇区大小 = 512 bytes
  • 读取一页(8KB)需要多少时间?

旋转延迟:平均旋转延迟应为磁盘旋转半周的时间。
旋转1 周 = 1/5400 minutes
= 11.1ms => ½ 周: 5.6 ms
读1个扇区时间 = 12ms + 5.6ms + .5K/5MB + 2ms
= 12 + 5.6 + .1ms + 2ms
= 19.7 ms
读1页的时间=
= 12 ms + 5.6ms + 8K/5MBpersec + 2ms
= 12ms + 5.6ms + 1.6ms + 2ms
= 21.2 ms

对磁盘访问的思考

页容量大,为什么扇区却如此小呢?

  • 理由 #1: 可用性。 可以在扇区物理损坏时不再使用该扇区。
  • 理由 #2: 还是可用性。 检错纠错码分布在每个扇区,扇区容量小,检错速度快,效率高。
  • 理由 #3:灵活性。 使用不同的操作系统,不同的页面大小。

采用并行方式和大容量传输方式克服磁盘控制器延迟。大容量传输: 每次读取多个扇区,可以节约时间。也可以分担部分总线延迟…

  • 并行 #1:并行读多个层面
  • 并行 #2:并行读多个磁盘

结论

应该记住以下两点:

  • 额外开销在总开销中比例较大 =>一次传输大量数据比较有效
  • 将页面存放在相邻扇区中可以避免额外的寻道开销

访问磁盘过程

对磁盘的访问总是由缺页引起的:

  • CPU给出地址,需要访问某存储单元;
  • 并行进行TLB查找和cache查找;
  • TLB查找后申明没有找到;
  • 停止并行查找,并通知操作系统处理;

操作系统检查页表,发现该页不在内存中,需要从硬盘调入。应该如何进行呢?

  • 操作系统从主存中选择一页准备换出,为调入的页安排存放空间;
  • 若被换出的页是“脏”页,需要将其写回磁盘存储;
  • 操作系统申请I/O总线;
  • 获得批准后,发送写命令给I/O 设备(磁盘)。紧跟着传送需要写回的页的全部数据。
  • I/O控制器发现发给自己的写命令 ,加入到握手协议,并接受数据。
  • 根据数据要写入的地址,读/写头移动到正确的柱面,同时,将数据接收到缓冲区。
  • 寻道结束后,等待相应的扇区旋转到磁头下面,将数据写入扇区中。
  • 在写入数据间隙,计算校验码并写入扇区中。
  • 下一步,操作系统继续申请总线(如果还保持总线控制权,则不必申请)。
  • 得到授权后,向磁盘发出读命令。
  • 然后,磁盘识别地址,并转换为相应的地址段。
  • 寻道,将读/写头移动到指定位置。
  • 从指定扇区中读去数据,并进行校验。
  • 磁盘申请I/O总线。
  • 得到授权后,将数据通过总线送到内存。

可靠性和可用性

两个经常混淆的词汇:

  • 可靠性:设备出现故障的几率来衡量。
  • 可用性:系统能正常运行的几率来衡量。

可用性可以增加硬件冗余来提高:

  • 例如:在存储器中增加校验码。

可靠性只能通过下面途径提高:

  • 改善使用环境
  • 提高各部件的可靠性
  • 减少组成部件
    • 可用性的提高可能带来可靠性的降低

RAID的提出

CPU性能在过去的十年中有了极大地提高,几乎是每18个月翻一番。但磁盘的性能却没能跟上。在70年代,小型机磁盘的平均查找时间为50到100毫秒,现在是10毫秒。在许多行业(如汽车或航空业),如果性能的提高能达到这个速度,即20年内提高5到10倍,那就会是头条新闻,但对计算机行业,这却成了一个障碍。因为CPU性能和磁盘性能间的差距这些年来越来越大。

在提高CPU性能方面,并行处理技术已得到广泛使用。这些年来,许多人意识到,并行I/O也是一个提高磁盘性能的好办法。1988年,Patterson et al.在他的一篇文章中建议用6个特定的磁盘组织来提高磁盘的性能或可用性,或两方面都同时提高。这个建议很快就被采用,并导致了一种新的I/O设备的诞生,这就是RAID盘。Patterson et al.把RAID定义为廉价磁盘的冗余阵列(Redundant Array of Inexpensive Disks),但工业界把“I”由“廉价的(Inexpensive)”替换成“独立的(Independent)”。

RAID定义

廉价磁盘的冗余阵列(Redundant Arrays of Inexpensive Disks)。

用N 个低价磁盘构成一个统一管理的阵列,以取代特贵单一磁盘。

  • RAID0:DataStriping
  • RAID1:DriveMirroring
  • RAID4:Data Guarding
  • RAID5:Distributed Data Guarding

RAID目标:

  • N个磁盘的容量
  • 1/N的访问时间
  • 更高的性价比
  • 采用冗余技术提高存储信息的可用性

RAID0

RAID0将由RAID模拟的单个虚拟磁盘划分成带(strip),每带k个扇区。第0带为第0到第k – 1扇区,第1带为第k扇区到第2k – 1扇区,等等。对k=1,每个带为1个扇区;对k=2,每带有2个扇区;等等。RAID 0以交叉循环的方式将数据写到连续的带中,下图描述的就是有4个磁盘驱动器的RAID盘。这种在多个驱动器上分布数据的方式叫作分带。如果软件发出从带的边界开始读四个连续带的数据块的命令,RAID控制器将把这个命令分解成四个单独的读命令,四个驱动器每个一个,让它们并行执行。这样,就实现了对软件透明的并行I/O操作。

  1. 适合数据请求量比较大的情况;
  2. 没有冗余,可靠性差,不算真正的RAID;

它复制了所有的磁盘,所以有四块主磁盘和四块辅助磁盘。每个对磁盘的写操作都进行两次,而每次读操作则可以读任意一个备份,把负载均衡分布到不同的驱动器上。这样,写操作的性能并不比单个磁盘好,但读磁盘的性能却比单个磁盘高了两倍。容错性能就更好了,如果一个驱动器崩溃的话,只要简单的用备份驱动器代替就行了。恢复整个磁盘的操作包括两个步骤:装上一个新的驱动器,然后将整个备份驱动器的内容拷贝到新的驱动器上。

但是这样成本较高。

RAID2

RAID 2的工作单位为字,可能的话甚至可以是字节。首先我们可以想象将单个虚拟磁盘上的字节分解成一对4位的半字节,对每个半字节加上3位海明码形成7位字,即其中1、2、4位做校验位。然后,用下图所示的七个驱动器的磁头和旋转同步,就可能将整个海明码字写在七个驱动器上,每个驱动器一位。

来降低 RAID1 的成本。

  1. 驱动器必须同步旋转
  2. 驱动器个数要足够多
  3. 需要多个控制器

RAID3

RAID 3是RAID 2的一个简化版本,它只需对每个字计算一个校验位,写到一个校验驱动器上。和RAID 2相同,驱动器之间必须严格同步,因为一个字被分布到多个驱动器中。

  1. 驱动器之间要严格同步
  2. 对整个磁盘崩溃的错误,能够进行恢复

RAID4

RAID 4和RAID 0类似,将对带的校验写在额外的驱动器上。例如,若带的长度是k个字节,将所有的带异或到一起,产生一个k字节长的校验带。如果其中一块磁盘崩溃的话,它的内容可以从校验磁盘上重新计算出来。

  1. 不对字进行校验,也不需要驱动器同步
  2. 可以防止整块盘崩溃,但对盘上部分字节数据出错的纠错性能相当差
  3. 校验盘负载沉重

RAID5

RAID 5为减少校验盘的负载,将校验位循环均匀分布到所有的驱动器上。

如果RAID 5的磁盘崩溃的话,修复磁盘内容的将是一个复杂的过程。

RAID6


如果两个磁盘出错呢?

  • Independent Data disks with two independent distributed parity schemes
  • 二维校验

小结

  • 磁表面存储设备

    • 用磁颗粒的不同磁化方向表示0和1
    • 弥补了主存的不足
    • 磁盘存储原理及磁记录方式
  • 磁盘的访问过程
    • 寻道、寻找扇区、访问
  • RAID技术
    • 提高磁盘的可用性和性能

ppt 后有一些关于固态硬盘的内容,可以自行观看学习。

固态硬盘(Solid State Drives),用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。

【Computer Organization笔记23】非易失性存储:磁表面存储设备,磁盘的访问过程,RAID技术相关推荐

  1. 【Computer Organization笔记22】虚拟存储器:段式存储,页式存储

    本次笔记内容: P43 计算机组成原理(43) P44 计算机组成原理(44) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  2. 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史

    资源Bilibili AV58129929 计算机组成原理 清华大学 刘卫东 本次笔记内容: P1 计算机组成原理(01) P2 计算机组成原理(02) 文章目录 课程信息 预热内容-课程介绍 学习目 ...

  3. 【Computer Organization笔记28】总复习

    本次笔记内容: P55 计算机组成原理(55) P56 计算机组成原理(56) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  4. 【Computer Organization笔记24】光盘,FLASH MEMORY,本单元总结

    本次笔记内容: P47 计算机组成原理(47) P48 计算机组成原理(48) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  5. 计算机组成原理中flashmemory,【Computer Organization笔记24】光盘,FLASH MEMORY,本单元总结...

    本次笔记内容: P47 计算机组成原理(47) P48 计算机组成原理(48) 我的计组笔记汇总:计算机组原理成笔记 本节课幻灯片:无 本节课在 2019 年系列中,被替换成了"MIPS异常 ...

  6. [ESP8266学习笔记]components_nvs 非易失性存储 Non-Volatile Storage(NVS),保存数据到flash

    1.简介 有时我们需要保存一些信息,然后在下次启动时使用. 我们希望这些数据在掉电的时候不会丢失.esp8266没有自己的rom,所以我们需要保存在外部flash中. 官方已经为我们提供了很多api, ...

  7. 【Computer Organization笔记27】接口电路和外部设备

    本次笔记内容: P53 计算机组成原理(53) P54 计算机组成原理(54) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  8. 【Computer Organization笔记17】大实验讨论:各组数据通路展示

    本次笔记内容: P33 计算机组成原理(33) P34 计算机组成原理(34) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  9. 【Computer Organization笔记16】大实验任务详细说明:支持指令流水的计算机系统设计与实现

    本次笔记内容: P31 计算机组成原理(31) P32 计算机组成原理(32) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

最新文章

  1. RealPlayer 15正式发布 简体中文版下载
  2. bzoj2154: Crash的数字表格
  3. 模拟六:STEMA 考试选择题模拟练习试卷(中级组)及答案 + 自我解题笔记
  4. java语言避免了大多数的什么_Java 语言避免了大多数的▁错误。( )_学小易找答案...
  5. python日历提醒_如何通过python发送日历邮件(ics)
  6. java程序阅读技巧_Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!...
  7. 转一个网络软件开发的广告
  8. [python] 列表解析式的高效与简洁
  9. 门户网站服务器迁移,云服务器怎么迁移网站
  10. System.Web.AspNetHostingPermission 类型的权限已失败
  11. 解决Maven下载慢的问题
  12. send/recv与socket
  13. 自动驾驶汽车电子电气架构技术开发
  14. C#修改MAC地址类及操作网卡类
  15. MySQL生成36位、32位UUID以及32位大写的UUID
  16. SAP SCC4 客户端设置的用法
  17. 2022第8届中国大学生程序设计竞赛CCPC威海站, 签到题7题
  18. 那些英年早逝的 IT 劳模们
  19. 解决M1芯片mac安装AU( Audition2020)AU2020已适配M1芯片,M1处理器安装AU教程方案
  20. .cast( )函数的使用

热门文章

  1. 验证码生成php代码,一个php验证码生成类代码
  2. 终极解决方案——sbt配置阿里镜像源,解决sbt下载慢,dump project structure from sbt耗时问题
  3. zookeeper 异常 :stat is not executed because it is not in the whitelist. Connection closed b
  4. eclipse开发servlet,HttpServletRequest报红叉解决方案
  5. 利用PDF.JS插件解决了本地pdf文件在线浏览问题(根据需要隐藏下载功能,只保留打印功能)
  6. openstack上创建vm实例后,状态为ERROR问题解决
  7. zsh: command not found: 解决方法
  8. 检测编码并制作一切UTF-8
  9. 在没有密码提示的情况下在Ubuntu上安装MySQL
  10. ros中web端通过 ajax 访问 nginx 加载静态 pgm 地图显示在canvas画布中