存储原理与技术

LBA(logical block adress,逻辑块地址),把具体的盘片、磁道和扇区号抽象成LBA,使得存储数据时可以不考虑底层磁盘的具体过程,而直接使用LBA地址。例如,LBA1表示0号盘片和0号磁道的0号扇区,以此类推。写入数据时,通过SCSI接口实现计算机和外设的数据交互。

影响磁盘性能的因素:
1、转速:转速是影响硬盘连续IO时吞吐量性能的首要因素。在连续IO情况下,磁头臂寻道次数很少,所以要提高吞吐量或者IOPS的值,转速就是首要的影响因素。
2、寻道速度:寻道速度是影响磁盘随机IO性能的首要因素。随机IO情况下,磁头臂需要频繁更换磁道,用于数据传输的时间相对于换道消耗的时间来说是很少的,根本不在一个数量级上。
3、单碟容量:单碟容量越大,说明相同空间内的数据量也越大,也就是数据密度越大,在相同的转速和寻道速度条件下,具有高数据密度的磁盘会有更高的性能。
4、接口速度:接口速度是影响磁盘性能的最不重要的因素。

硬盘接口技术

  • 用于ATA指令系统的IDE接口
  • 用于ATA指令系统的SATA接口
  • 用于SCSI指令系统的并行SCSI接口
  • 用于SCSI指令系统的串行SCSI(SAS)接口
  • 用于SCSI指令系统的IBM专用串行SCSI接口(SSA)
  • 用于SCSI指令系统的并且承载于FabreChannel协议的串行FC接口(FCP)

IDE的英文全称为Intergrated Drive Electronics,即电子集成驱动器,它的本意是指把控制电路和盘片、磁头等放在一个容器中的硬盘驱动器。IDE接口也称为PATA接口,即Parallel ATA(并行传输ATA)。ATA的英文拼写为Advanced Technology Attachment,即高级技术附加。

磁盘控制器、驱动器控制电路和磁盘控制器驱动程序

磁盘控制器:磁盘的接口包括物理接口逻辑接口。物理接口是硬盘接入到硬盘控制器上需要用的接口,具体的针数和某个针的作用等。逻辑接口是SCSI或者TAT指令集部分,指令实体内容是需要由运行于操作系统内核的驱动程序来生成的。
磁盘控制器的作用是参与底层的总线初始化、仲裁等过程以及指令传输过程、指令传输状态机、重传和ACK确认等,将这些太过底层的机制封装,从而向驱动程序提供一种简洁的接口。驱动程序只要将要写的设备号、起始地址等信息,也就是指令描述块传递给控制器即可。

驱动器控制电路: 磁盘驱动器控制电路位于磁盘驱动器上,它专门负责直接驱动磁头臂做运动来读写数据;而主板上的磁盘控制器专门用来向磁盘驱动器的控制电路发送指令,从而控制磁盘驱动器读写数据。由磁盘控制器对磁盘驱动器发出指令,进而操作磁盘,CPU做的仅仅是操作控制器就可以了。
控制过程:CPU通过主板上的导线发送SCSI或者ATA指令给同样处于主板上的磁盘控制器,磁盘控制器收到CDB后会做一定程度的翻译工作,生成最底层的磁盘可接受的纯SCSI指令,继而通过线缆将指令发送给磁盘驱动器并维护底层指令交互状态机,由磁盘驱动器解析收到的指令从而根据指令的要求来控制磁头臂。SCSI或者TAT指令CDB是由OS内核的磁盘控制器驱动程序生成并发送的。

磁盘控制器驱动程序(位于OS内核)-------->生成SCSI或者ATA指令-------->CPU(执行)-------->磁盘控制器(位于主板上)(翻译映射)-------->磁盘驱动器(解析指令并执行)

磁盘控制器驱动程序: 机器刚通电,操作系统还没有启动起来并加载磁盘控制器驱动的时候,CPU必须执行磁盘通道控制器驱动程序才能与控制器交互,才能读写数据。系统BIOS中存放了初始化系统所必需的基本代码。系统BIOS初始化过程中去发现并执行磁盘控制器的Optional ROM(该ROM被保存在磁盘通道控制器中或者单独的Flash芯片内),该ROM内包含了该控制器的最原始的、可在主 BIOS下执行的驱动程序,主BIOS载入并执行该ROM,从而就加载了其驱动程序,也就可以与控制器进行交互了。BIOS通过执行驱动程序而使得CPU可以发送对应的读指令,提取磁盘的0磁道的第一个扇区的代码载入内存执行,从而加载OS。

猜你喜欢

转载自blog.csdn.net/gongjiwei/article/details/82814443