1、存储历史
发展过程:竹简---纸张---选数管---穿孔卡---穿孔纸带---磁带---磁鼓(10KB)---硬盘(5MB)---软盘---光盘(CD-ROM、DVD、D9、D18、蓝光)---U盘(Flash芯片+USB接口)---磁盘阵列---大型网络化磁盘阵列。
2、信息是客观存在的一种逻辑,任何物质其实都是表现的一种信息。数据是一种描述信息的信息。
3、IO的通路---总线
4、计算机的内部通信---连找发【CPU 内存 磁盘】
IO端口:IO设备启动时在内存中映射的一个或多个地址。
逻辑块:对磁盘上存储区域的抽象。
网中的网?
5、磁盘原理和技术
组成:
盘片:由高密度的均匀的磁粉镀到金属或者玻璃基板上形成。线性扫描(盘片在高速旋转) 【转速】
磁头:将数据用控制电路通过硬盘读写头去改变磁盘表面上极细微的磁性粒子簇的N、S极性来加以存储。径向扫描(主要在换磁道时扫描,速度又步进速度决定。)
步进电机:精确定位磁头旋转,微米级位移,径向移动。或者音圈电机
盘片的数据组织:盘面(分上和下)、磁道(最外圈是0磁道,外圈比内圈读写慢)、扇区(一个扇区是连续流式读写)、柱面(换柱面叫做寻道)。
硬盘容量即Cylinder(柱面)、Head(磁头)、Sector(扇区)
柱面数==磁道数=C
盘面数==磁头数=H
扇区数=S
扇区大小=a(一般是512B,如今也有4KB)
磁盘容量=C*H*S*a
扇区:包含存储数据地点标识符(CHS地址)也就是扇区头标和存储数据的数据段。最小寻址单位。线性的。
LBA(Logical Block Adress)编址(采用顺序编址):把磁盘想象成只有一个磁道,无限长的直线,扇区在这条直线上等长。屏蔽掉柱面、磁头复杂的东西,即不再划分柱面和磁头号,这些数据由硬盘自身保留在磁盘控制电路的ROM中。
一般读数据中,系统告诉磁盘控制器LBA地址,磁盘控制器核对LBA地址中的扇区头标号,找到数据所在扇区,移动磁头读数据。【ECC码】
扇区编号和交叉因子:跳着给扇区取编号。、用交叉因子缓解不同磁道的速度的问题,比如最外层用1:1 往里里面用2:1 再用3:1等。
磁头扭斜:柱面与柱面的交叉因子,发生在长文件时,要换磁道产生的问题。
硬盘控制电路:
一片磁性分子N或S极---->电信号,有了电信号,配置电路来读写数据。
IO:对于磁盘来说,一次磁头的读或者写叫做一次IO。
最小单位:
低级格式化:给空白的磁盘划分扇区。
计算机系统接口(向磁盘发送数据的抽象约定和标准):SCSI接口协议,完成了访问磁盘过程的虚拟化和抽象,屏蔽了磁盘内部结构和逻辑,让控制器直接写入对应的LBA地址中。【IDE、SCSI、SATA、FC】
磁盘队列技术【解决换道延迟】:使用队列主要是提高读写效率,减少磁盘换磁道的次数。队列功能的控制代码存放在磁盘控制电路芯片中,同样需要主板上磁盘控制器的支持队列功能或者调整磁盘控制器驱动加入处理队列功能。比如Intel的AHCI规范。
磁盘无序传输技术【解决旋转延迟】:指的是不按照请求数据扇区初始位置读写数据,采用最近原则,返回数据,减少旋转带来的延迟。
磁头扫描方式:
First Come First Server:磁头按先来的IO先处理,不会饿死IO。
Shortest Seek Time First:磁头当前最近的IO磁道读写,以此循环,会饿死IO。
SCAN:磁头从内侧往外侧循环处理IO,类似电梯模型,不会饿死IO。
C-SCAN:磁头从内侧往外侧处理IO,到达外侧直接返回内侧,途中不处理IO,不会饿死IO。
LOOK和C-LOOK模式:只需要磁头到达要处理IO的最两端即可返回,C-LOOK也一样。
磁盘缓存:用来接收指令和数据,还被用来预读。
影响磁盘性能的因素:
每时刻只允许一个磁头来读写数据,因此吞吐量和IO性能一般是固定的。
转速:盘片转动的速度。 x转每分。影响硬盘连续IO时吞吐量性能。
寻道速度:磁头臂换道的速度,影响磁盘随机IO性能。
单碟容量:高数据密度的硬盘会读出更多的数据。
接口速度:外部传输的带宽。
硬盘接口技术:
IDE接口(又称PATA接口):使用ATA指令系统,PIO模式、DMA模式和UDMA模式进行数据传输,交叉干扰、地线多、信号混乱。
SATA接口:使用ATA指令系统,1.5Gb/s规格,SATA1.0 SATA2.0(支持NCQ自身命令队列功能、端口选择器、端口复用器、服务器特性)
SCSI接口:SCSI指令系统,需要SCSI控制器,【SCSI协议】物理电气层(SCSI-1、SCSI-2、SCSI-3、Ultra 2 SCSI、Ultra 3 SCSI LVD、Ultra 4 SCSI LVD),链路层采用CRC校验数据帧,网络层采用总线编址机制【控制器---通道---SCSI ID---LUN ID】,【查SCSI控制卡通道数量 功能0?】,传输层保障端到端的传输。SCSI协议告诉硬盘读写LBA地址的扇区,不能告诉硬盘读写某文件,文件时主机系统代码实现的。
磁盘控制器、驱动器控制电路、磁盘控制器驱动:
内部传输速率和外部传输速率:内部指的是不换道情况下的速率,磁盘外部接口传送给主板上硬盘控制器的传输速率就是外部速率。
并行传输:多路传输,适合短距离传输,效率高,速率慢。【IO延迟和Queue Depth】
串行传输:单路传输,适合长距离传输,效率低,速度快。
IOPS:读写数据越大这个值越低,反之也是。
传输带宽:同一块硬盘写入不同大小的数据量,表现出的带宽也是不同的,高带宽规格的硬盘利于大文件传输,高IOPS规格的硬盘利于小文件传输。
SSD: 基于Flash芯片, 用充电状态表示1,非充电状态表示0,浮动门场效应晶体管Cell和利用电场吸附电子改变电势,分为SLC和MLC。
Flash芯片逻辑如下:
Flash控制芯片向所有的NAND Flash芯片执行读写任务。
SSD的IO最小单位是一个Page。
Erase每次只能擦除一个整个Block。
。。。。。。原理、缺陷、缺陷补救技术忽略,总之SSD前景不错。-_-