输入/输出和存储系统
计算机:存取数据
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
每1%的提升花费333元
对于硬盘:S=1.22
每1%的提升花费318元
I/O体系结构
将I/O定义为一个子系统部件,它在由CPU和主存储器组成的主机系统与外围设备之间移动编码数据
包括:
- 用于I/O功能的主存储器模块
- 提供将数据从系统中移入或移出所需要的总线通道
- 主机和外围设备中的控制模块
- 连接外部组件的接口,如键盘和磁盘
- 连接主机系统及其外围设备之间的电缆或其他通信链路
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
中断服务程序ISR:
- <u>存储器映射I/O</u>:I/O设备和内存共享相同地址空间,I/O可以像内存一样取出和传入数据,极大地简化了系统设计
- <u>直接存储器存取</u>(DMA,direct memory access):将I/O处理装载到一个特殊用途的芯片
DMA和CPU共享数据总线,同一时间只能一个设备控制总线,称为总线主控设备;DMA优先级比CPU高,DMA会利用CPU使用的存储器周期来完成I/O操作,称为周期窃取
- <u>通道控制I/O</u>:使用专门的I/O处理器
由一些小的CPU来控制——I/O processor(IOP),具有算术逻辑指令和分支转移指令的能力
IOP功能:
- 协商协议
- 发出各种设备命令
- 将存储代码转换为内存代码
- 独立于主机CPU来传输多个完整的文件或文件组
字符I/O和块I/O
字符I/O一次处理一个字节/字符(鼠标键盘,键盘通常链接一个中断驱动I/O系统)
块I/O一次处理字节组(磁盘、磁带等,通常使用DMA或通道I/O连接系统)
I/O总线操作
总线访问的请求必须要仲裁,总线控制线在需要时激活设备,错误时发出信号,必要时重置设备
数据线数目是总线宽度(width of the bus)
Timing diagram-时序图
数据传输模式
分为串行和并行传输模式
和并行相比,串行:
- 需要更少导体
- 受信号衰减影响小
- 可以传输数据更远更快
磁盘技术
磁盘提供大容量的耐用存储,可以很快地被访问
磁盘驱动器被称为随机/直接存储设备(random access storage device):数据块可以根据在磁盘的位置进行访问
磁道从外向里从0开始编号,数据块驻留在扇区中
硬盘驱动器
- 磁盘碟片(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
现代:GB,分为蛇形(serpentine)扫描和螺旋(helical)扫描
数字线性磁带(DLT,digital line tape)和1/4in盒式(QIC)使用蛇形扫描
数字音频带(DAT,digital audio tape)使用螺旋扫描
<u>蛇形扫描</u>
<u>螺旋扫描</u>
LTO:线性磁带开放协议
RAID
独立磁盘冗余阵列,redundant array of independent disks
RAID-0:磁盘跨区,提高性能,但是不提供冗余(缺乏可靠性)
RAID-1:也称磁盘映像(两组磁盘拥有相同数据),提供冗余和高性能(但贵)
RAID-2:在每个条带中只写入一位数据,而不是在任意大小块中写入数据,分为数据驱动器和汉明驱动器(提供错误检测,存放纠错信息),由于从多个磁盘取处和存储数据且计算汉明码,性能很差,成本较高
RAID-3:和RAID-2一样每次分配一个比特位,但只是用一个驱动器来保存一个简单的奇偶校验位(每位的异或结果),不适合商用,但还可以
RAID-4:和RAID-3相似,但是每次写入数据到统一大小的条带中
RAID-5:RAID-4+分布奇偶校验(经常用在商业系统)
RAID-6:前面的RAID一次最多允许一个磁盘出错,RAID-6使用两层错误检测(里德-所罗门和奇偶校验),可以容忍两个磁盘出错,属于写密集型
RAID DP:采用一对奇偶校验块,和RAID-6一样可以容忍两个磁盘的丢失(比RAID-5性能差一些)
数据存储的未来
- 生物材料
- 碳纳米管
- 全息系统
- 忆阻器
- 微机电装置