Storage, Networks and Other Peripherals¶
约 1346 个字 11 张图片 预计阅读时间 7 分钟
上面的设备统称为I/O设备,包括存储设备、网络设备和其他外设。
Three characters of I/O:
-
Behavior:Input (read once), output (write only, cannot read) ,or storage (can be reread and usually rewritten)
-
Partner:Either a human or a machine is at the other end of the I/O device, either feeding data on input or reading data on output.
-
Data Rate:The peak rate at which data can be transferred between the I/O device and the main memory or processor.
Disk¶
Disk由platters(盘片), tracks(磁道), sectors(扇区)组成。每个扇区的大小通常为512字节。
Disk访问的时包括:
-
Seek Time:磁头移动到指定磁道的时间
-
Rotational Latency:等待所需扇区旋转到磁头下的时间
-
Transfer Time:读取或写入数据的时间
-
Controller Time:控制器处理数据的时间
Measure¶
-
MTTF:Mean Time To Failure,平均无故障时间
-
MTTR:Mean Time To Repair,平均修复时间
-
MTBF:Mean Time Between Failure = MTTF + MTTR,平均故障间隔时间
根据以上量,我们定义Availability为:
有三种方式提高MTTF:
-
Fault Avoidance:避免故障
-
Fault Tolerance:容错,增加冗余。Using redundancy to allow the service to comply with the service specification despite faults occurring, which applies primarily to hardware faults。
-
Fault Forecasting:预测故障,适用于硬件与软件故障
RAID¶
RAID(Redundant Array of Independent Disks)是一种磁盘阵列技术,通过将数据分布在多个磁盘上,提高数据的可靠性和性能。
其可概括如下:
RAID 0¶
RAID 0是条带化技术,将数据块分布在多个磁盘上,提高读写性能。
但是它没有Redundancy,一旦一个磁盘损坏,所有数据都丢失。
RAID 1¶
RAID 1是镜像技术,每一个磁盘都有它的镜像,提高了数据的可靠性。
但是存储空间浪费比较严重,并且写入性能较差,因为需要同时写入两个磁盘。
RAID 3¶
RAID 3是通过奇偶校验位来实现冗余.它需要一个额外的盘来存储奇偶校验的结果。当一个硬盘损坏时,可以通过奇偶校验位来恢复数据。
图中的P(Parity)是奇偶校验盘。
Question
上课时有一个疑惑:这样通过奇偶校验的硬盘怎么知道哪个盘坏了呢?因为奇偶校验对不上可能是任何一个盘出现了问题。
RAID 4¶
RAID 3在Small Read(只读一个盘)上性能较差,因为每次读取都需要读取奇偶校验盘。而在RAID 4中,每个Sector都有自己的Error Detection,这样就可以同时读多个硬盘。
RAID写入的过程如下:
但是,RAID 4还存在一个问题,例如在同时写入上面的D0和D5时,由于它们都同时要写入P盘,这样就会造成P盘的写入冲突。
RAID 5¶
RAID的改进在于它将奇偶校验盘交错放置,这样就避免了RAID 4的写入冲突。
RAID 6¶
When a single failure correction is not sufficient, Parity can be generalized to have a second calculation over data and anther check disk of information.
Bus¶
一个总线通常由两部分组成:
-
Control Lines:signal requests and acknowledgments, and to indicate what types of information is on the data lines
-
Data Lines:carry information (e.g., data, addresses, and complex commands) between the source and the destination.
总线的传输有两部分:传输地址,送/收数据
Definition
input :inputting data from the device to memory
output :outputting data to a device from memory
异步时钟的总线通过握手协议来进行数据传输。
Bus Arbitration¶
总线仲裁是指多个设备同时请求总线时,如何决定哪个设备可以使用总线。
-
Centralized Arbitration:由一个中心设备来决定哪个设备可以使用总线
-
Self Selection:设备自己决定是否可以使用总线
-
Daisy Chain:设备按照顺序来决定是否可以使用总线
-
Collision Detection:设备检测到冲突后,等待一段时间再次请求总线
仲裁需要考虑优先级与公平性。
I/O与其他设备交互¶
I/O有三种交流是必备的:
-
操作系统必须能给I/O设备发送命令
-
设备必须能够在 I/O 设备完成操作或遇到错误时通知操作系统
-
数据必须能在内存与I/O之间传输
I/O与处理器交互¶
有三种方式:
-
Polling:处理器每隔一段时间询问I/O设备是否完成操作(检查status bit),能否进行下一个I/O操作
-
Interrupts:I/O设备完成操作后,向处理器发送中断信号,处理器暂停当前操作,处理中断
-
DMA:Direct Memory Access,直接内存访问,I/O设备直接访问内存,不需要处理器参与
Polling¶
缺点是处理器需要不断询问I/O设备是否完成操作,浪费CPU时间。
Interrupts¶
如图:
DMA¶
DMA的过程如下:
这里,CPU只负责告诉DMA什么时候要读写,DMA负责实际的读写操作。用文字描述的话,是以下三步:
-
处理器通过提供设备标识、操作类型、作为数据传输源或目标的内存地址以及传输字节数等信息来配置DMA。
-
DMA控制器通过总线请求总线控制权,然后将数据从设备传输到内存或从内存传输到设备。
-
传输完成后,DMA控制器通过中断通知处理器,处理器检查中断,判断是成功还是出现error。