输入/输出和存储系统

计算机:存取数据

I/O及其性能

一个性能不佳的I/O系统可能会导致连锁反应(ripple effect),并拖累整个计算机系统

阿姆达尔定律

当使用最多的部件提升时,计算机系统性能得到最大的提升

$$ S=\frac{1}{(1-f)+\frac{f}k} $$

S代表系统整体性能的加速比,f表示由较快部件完成的部分,k表示新部件的加速比(k>1,加速前比加速后)

eg:

对于一个计算机系统,我们可以花10000元使CPU快50%,也可以花7000元使硬盘快150%;处理器70%的时间运行CPU,30%的时间等待硬盘

对于CPU:S=1.30

image-20220513205325757.png

每1%的提升花费333元

对于硬盘:S=1.22

image-20220513205502909.png

每1%的提升花费318元

I/O体系结构

将I/O定义为一个子系统部件,它在由CPU和主存储器组成的主机系统与外围设备之间移动编码数据

包括:

  • 用于I/O功能的主存储器模块
  • 提供将数据从系统中移入或移出所需要的总线通道
  • 主机和外围设备中的控制模块
  • 连接外部组件的接口,如键盘和磁盘
  • 连接主机系统及其外围设备之间的电缆或其他通信链路

image-20220513205826002.png

I/O控制方法

尝试将各种I/O设备和总线连接不可行(控制方式和传输模式差异大),因此使用专用的I/O模块作为CPU和外围设备之间接口

I/O模块能够控制设备的操作、数据缓冲、执行错误检测、与CPU通信。控制方法

  • <u>程序控制I/O</u>(轮询polled I/O):为每个I/O设备维护一个寄存器,每个寄存器持续被轮询来检测到达的数据
  • <u>中断驱动I/O</u>:允许CPU在I/O未被请求前做其他事

中断信号在取指-译码-执行周期的开始检测

INT:interrupt INTA:interrupt acknowledgement

image-20220513211552674.png

中断服务程序ISR:

image-20220513212035409.png

  • <u>存储器映射I/O</u>:I/O设备和内存共享相同地址空间,I/O可以像内存一样取出和传入数据,极大地简化了系统设计
  • <u>直接存储器存取</u>(DMA,direct memory access):将I/O处理装载到一个特殊用途的芯片

image-20220513212443580.png

DMA和CPU共享数据总线,同一时间只能一个设备控制总线,称为总线主控设备;DMA优先级比CPU高,DMA会利用CPU使用的存储器周期来完成I/O操作,称为周期窃取

  • <u>通道控制I/O</u>:使用专门的I/O处理器

由一些小的CPU来控制——I/O processor(IOP),具有算术逻辑指令和分支转移指令的能力

IOP功能:

  • 协商协议
  • 发出各种设备命令
  • 将存储代码转换为内存代码
  • 独立于主机CPU来传输多个完整的文件或文件组

image-20220513213411787.png

字符I/O和块I/O

字符I/O一次处理一个字节/字符(鼠标键盘,键盘通常链接一个中断驱动I/O系统)

块I/O一次处理字节组(磁盘、磁带等,通常使用DMA或通道I/O连接系统)

I/O总线操作

总线访问的请求必须要仲裁,总线控制线在需要时激活设备,错误时发出信号,必要时重置设备

数据线数目是总线宽度(width of the bus)

Timing diagram-时序图

image-20220513215147072.png

数据传输模式

分为串行和并行传输模式

和并行相比,串行:

  • 需要更少导体
  • 受信号衰减影响小
  • 可以传输数据更远更快

磁盘技术

磁盘提供大容量的耐用存储,可以很快地被访问

磁盘驱动器被称为随机/直接存储设备(random access storage device):数据块可以根据在磁盘的位置进行访问

image-20220514094108951

磁道从外向里从0开始编号,数据块驻留在扇区中

硬盘驱动器

image-20220514094340194.png

  • 磁盘碟片(platter)堆叠在转轴(spindle)上
  • 一组梳状的读写头安装在一个旋转的磁盘驱动臂上
  • 旋转的磁盘形成一个圆柱面

寻道时间(seek time):磁盘驱动臂定位到指定磁道上所需的时间(不包括磁头读取磁盘目录的时间)

旋转延迟(rotational delay):读写头定位到指定扇区上方所需要的时间

存取时间 = 寻道时间 + 旋转延迟

传输时间 = 存取时间 + 实际读取数据所需要的时间

反应时间旋转速度(rotational speed:5400rpm,revolution per min每分钟转圈数)的直接函数,用来衡量目标扇区移动到读写头下方位置所需要的时间总量

计算公式:$(\frac{60s}{磁盘旋转速度}\times \frac{1000ms}s)/2$

平均失效时间(mean time to failure,MTTF)

固态硬盘

磁盘主要优点是便宜

磁盘缺点:

  • 检索数据比从主存中检索数据需要更长时间
  • 磁盘易碎
  • 移动部件易受磨损和破坏

解决方案:使用非易失性(non-volatile)RAM替换硬盘

固态硬盘(SSD,solid state drive)由微控制器和闪存组成,访问时间和传输速率比传统磁盘驱动器快100倍,但仍比RAM慢10万倍

不可恢复的误码率(unrecoverable bit error ratio,UBER):数据错误的数量除以在整个使用期间模逆所得的读取的总位数,磁盘可靠性的度量

百万兆字节(TBW,terabyte written):,是磁盘耐久度的度量

光盘

光盘提供非常廉价的大存储容量

只读光盘驱动器(CD-ROM)、DVD(多功能数码光盘)、WORM(一些多读技术)

CD-ROM

  • 数据记录在螺旋状的轨迹中
  • 01记录对应凹坑和平台
  • 一个轨道很长
  • 有两级错误检测和校正功能
  • CD-ROM可以装最多650MB的数据

DVD

  • 是CD密度的四倍
  • DVD可以装最多17GB的数据
  • DVD使用更短的激光(650nm),而CD-ROM使用(780nm),这使DVD能够使轨道缠绕更密集

蓝光光盘

  • 使用波长更小的蓝光:蓝光和HD-DVD(最终蓝光胜出,依托索尼的影响)
  • 最大可装25GB的数据

磁带(magnetic tape)

早期:11MB

image-20220514105114278.png

现代:GB,分为蛇形(serpentine)扫描和螺旋(helical)扫描

数字线性磁带(DLT,digital line tape)和1/4in盒式(QIC)使用蛇形扫描

数字音频带(DAT,digital audio tape)使用螺旋扫描

<u>蛇形扫描</u>

image-20220514105458921.png

<u>螺旋扫描</u>

image-20220514105527934.png

LTO:线性磁带开放协议

RAID

独立磁盘冗余阵列,redundant array of independent disks

RAID-0:磁盘跨区,提高性能,但是不提供冗余(缺乏可靠性)

image-20220514110431812.png

RAID-1:也称磁盘映像(两组磁盘拥有相同数据),提供冗余和高性能(但贵)

image-20220514110628030.png

RAID-2:在每个条带中只写入一位数据,而不是在任意大小块中写入数据,分为数据驱动器和汉明驱动器(提供错误检测,存放纠错信息),由于从多个磁盘取处和存储数据且计算汉明码,性能很差,成本较高

image-20220514110925116.png

RAID-3:和RAID-2一样每次分配一个比特位,但只是用一个驱动器来保存一个简单的奇偶校验位(每位的异或结果),不适合商用,但还可以

image-20220514111213462.png

RAID-4:和RAID-3相似,但是每次写入数据到统一大小的条带中

image-20220514111534655.png

RAID-5:RAID-4+分布奇偶校验(经常用在商业系统)

image-20220514112107303.png

RAID-6:前面的RAID一次最多允许一个磁盘出错,RAID-6使用两层错误检测(里德-所罗门和奇偶校验),可以容忍两个磁盘出错,属于写密集型

image-20220514112417084.png

RAID DP:采用一对奇偶校验块,和RAID-6一样可以容忍两个磁盘的丢失(比RAID-5性能差一些)

image-20220514112510793.png

数据存储的未来

  • 生物材料
  • 碳纳米管
  • 全息系统
  • 忆阻器
  • 微机电装置
最后修改:2022 年 05 月 14 日
如果觉得我的文章对你有用,请随意赞赏