1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》

【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》

时间:2024-04-01 07:48:57

相关推荐

【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》

3.4硬盘接口技术

硬盘的物理接口包括以下几种:

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

3.4.1 IDE硬盘接口

IDE(Integrated Drive Electronics)电子集成驱动器。把控制电路和磁盘、磁头等放在一个容器种的硬盘驱动器。厂商不用担心硬盘于控制器兼容问题,价格也低廉。IDE接口也称为PATA接口即并行传输ATA(Parallel Advanced Technology Attachment)即高级技术附加。

1. 七种ATA物理接口规范

2.IDE数据传输模式

PIO模式(Programming Input/Output Model):一种通过CPU执行IO端口指令来进行 数据读写的数据交换模式,是最早的硬盘数据传输模式。这种模式传输效率低下,CPU占有率高。硬盘控制器接收到磁盘传来的数据之后,必须由CPU发送信号将这些数据复制到内存当中。DMA模式(Direct Memory Access):直接内存访问,是一种不经过CPU而直接从内存中存取数据的数据交换模式。DMA模式下,CPU只需要向控制器下达指令,让DMA控制器来处理数据的传送。Ultra DMA模式:高级直接内存访问。UDMA模式采用16位多字节DMA模式为基准,可以理解为DMA模式的增强版本,增加了CRC(循环冗余校验)技术,提高了数据传输过程中的准确性。在UDMA中逐渐应用了双倍传输技术,因此数据传输速度有了极大的提高。

3.4.2 SATA硬盘接口

Serail ATA 串行传输ATA。相对于PATA模式的IDE接口来说,SATA是用串行线路传输数据,但指令集不变,仍然是ATA指令集。

1.SATA规范和发展历程

SATA超过了 ATA甚至高过了IDE最高传输速率,SATA同时对指令及数据封包进行循环冗余校验(CRC),不仅可以检测出所有单比特和双比特的错误。

2.SATA2.0规范中的新特性

3Gb/s的传输速率:相当于300MB/s,不过硬盘内部的传输速率还达不到于接口速率等同的程度。支持NCQ技术:(Native Command Queuing)自身命令队列,由硬盘驱动器自身实现排队技

基于寻道和旋转优化的命令重排序:对于新加入的命令,考虑目标数据的线性位置,考虑角度位置,对线性位置和角度位置进行优化,使总线的服务时间最小。

NCQ包含如下两部分内容。一方面,硬盘本身必须有能力针对实体数据的扇区分布对命令缓冲区中的读写命令进行排序。同时硬盘内部队列中的命令可以随着必要的跟踪机制动态地重新调整或排序,其中跟踪机制用于掌握待执行和已完成作业的情况,而命令排队功能还可以使主机在设备对命令进行排队的时候,断开于硬盘间的连接以释放总线。一旦硬盘准备就绪,就重新连接到主机,尽可能最快的速率传输数据,从而消除占用总线的现象。另一方面,通信协议的支持也相当重要。PATA硬盘在传输数据时很容易造成众人,这样会降低主控制器的效率,所以NCQ规范中定义了中断聚集机制。相当于一次执行完数个命令后,再对主控制器回传执行完毕的信息,改善处理队列命令的效能。

端口选择器(Port Selector):有两个SATA接口,同时连接两个接口到控制器上。一旦某个接口或者连线故障,立即切换到另一个接口和连线上。

端口复用器(Port Multiplier):一个控制器可以扩展多个SATA设备的技术,采用4位(bit)宽度的Port Multiplier端口字段,其中控制端口占用一个地址,最多能输出15个设备连接。

3.5 SCSI硬盘接口

SCSI的全称使Small Computer System Interface,即小型计算机系统接口,是一种较为特殊的接口总线,具备于多种类型的外设进行通信的能力,比如硬盘、CD-ROM、磁带机和扫描仪等。SCSI采用ASPI(高级SCSI编程接口)的标准软件接口使驱动器和计算机内部安装的SCSI适配器进行通信。SCSI是一种广泛应用于小型机上的高速数据传输技术。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率低以及热插拔等优点。

SCSI接口为存储产品提供了强大、灵活的连接方式,还提供了很高的性能,可以有8个或更多(最多16个)的SCSI设备连接在一个SCSI通道上,缺点是贵。

在系统中应用SCSI必须要有专门的SCSI控制器,也就是一块SCSI控制卡,才能支持SCSI设备,这与IDE硬盘不同。SCSI控制器上有一个相当于CPU的芯片,它对SCSI设备进行控制,能处理大部分的工作,减少CPU的负担(CPU占用率)。

SCSI发展过程:SCSI-1 SCSI-2 SCSI-3(Ultra 1SCSI) Ultra 2 SCSIUltra 160SCSI Ultra 320SCSI

1.SCSI协议的链路层

SCSI协议中,利用CRC校验码来校验每个指令或者数据的帧,如果发现对方发来的校验码与本地计算的不同,则说明这个数据帧再传输过程中受到了干扰,那么就会丢弃这个帧,发送方会重传这个帧。

2.SCSI网络层

(1)SCSI总线编制机制

SCSI协议利用了一个SCSI ID的概念来区分每个节点。一条SCSI总线上可以存在16个节点,其中SCSI控制器,占用一个节点,SCSIID被恒定设为7。其他15个节点的SCSI ID可以随便设置,但不能重复。者16个ID中,7具有最高优先级。

由于总线是一种共享的线路,总线上每个节点都会同时感知到这条线路和上的电位信号,所以同一时刻只能由一个节点向这条总线上放数据,也是给这条线路加一个高电位或者低点位。其他所有节点都能感知到这个电位的增降,但是只有接收方节点才会感知到电位增降信号,保存到自己的缓存中。高位保存1,低位保存0,反过来也可以。终结电阻作用是终结导线上的电信号。

要了解当前线路上是不是自己在通信,自或者自己想争夺线路的使用权而通告其他节点,这个过程交仲裁。有总线的地方就有仲裁,因为总线是共享的,各个节点都申请使用,所以必须有一个仲裁机制。SCSI接口并不只有8或者16条数据线,还有很多控制信号线。

普通主版一般不集成SCSI控制器,如果想接入SCSI磁盘,必须增加SCSI卡。SCSI一端接入主机的PCI总线,另一端用一个SCSI控制器接入SCSI总线。卡上有自己的CPU,通过执行ROM中的代码来控制整个SCSI卡的工作。如果这块卡不只有一个SCSI控制器,则每个控制器可以单独掌控一条SCSI总线,这就是多通道SCSI卡。

(2)SCSI寻址机制和几个阶段

一、空闲阶段

总线一开始就处于空闲状态,没有节点要发起通信。总线空闲的时候,BSY和SEL这两条控制信号都为False状态,只是任何节点都可以发起通信。

二、仲裁阶段

节点通过在自己对应的那条线路的电位来申请总线的使用权。提升自己ID对应线路的电位的同时,这个节点也提升BSY线路的电位。如果同时有多个节点提升了各自线路上的电位,那么所有的发起申请的节点均判断总线上的这些信号。

SCSI总线寻址的方式,按照控制器-- 通道 -- SCSI ID -- LUN ID来寻址。

控制器就是SCSI控制器,这个控制器集成在南桥上,或者独立于某个PCI插卡,要连接到主机IO总线上。有IO端口,就可以让CPU访问到。一个主机IO总线上,不一定只有一个SCSI控制器,可以有多个。每个控制器又可以多个通道。通道也就是SCSI总线,一条SCSI总线就是一个通道。多条SCSI总线(通道)可以被一个控制器管理,这个物理控制器会被逻辑划分为多个虚拟的可以管理多个通道(SCSI总线)的控制器,称为多道控制器。每个通道(总线)上可以接入8或16个SCSI设备, 所以必须区分开每个SCSI设备。SCSI ID就是针对每个设备的编号,每个通道上的设备都有自己的ID。不同通道间的ID可以相同,并不影响他们的区分。因为他们的通道号不同。如图,这两个设备就是两个通道。

SCSI ID并不是网络中最后一层地址,还有一个LUN ID。每个SCSI ID下可以再分出来若干个LUN ID。控制器初始化的时候,会对SCSI ID上的设备发出一条Report LUN指令,用来收集每个SCSI ID设备的LUN信息。这样,一条SCSI总线上,可接入的最终逻辑存储单元数量就打打增加了。

三、选择节点

仲裁阶段之后,获胜的节点会将BSY和SEL信号置位,然后将8或16他数据总线上对对应它自身ID的线路和对应它有通信的目标ID的线路的电位提升,这样目的节点就能感知到它自己的线路上来了信号,开始做接收准备。

总线上最常发生的是控制器向其他节点发送和接收数据,而除控制器之外的其他节点之间交互数据,一般是不会发生的。如果要从总线上的一块硬盘复制数据到另一块硬盘,那也必须先将数据发送到控制器,控制器再复制到内存,经过CPU运算后再次发送给控制器,然后控制器再发送给另一款硬盘。

3.SCSI协议传输层

(1)写数据

发起方在获得总线仲裁之后,发送一个SCSI Command写入命令帧。其中包含了对应的LUN号以及LBA地址段。接收端接收后,就知道下一步对方要传输数据了。接收方做好准备后,向发送方发送一个XFER_RDY帧,表示已经做好接收准备,可以随时发送数据。

发送方收到XRFREE_RDY帧后,会立即发送数据。每发送一帧数据,接收方就回送一个XFER_RDY帧之后,会立即发送数据。每发送一帧数据,接收方就会回送一个XFER_RDY帧,表示上一帧成功收到并且无错误,可以立即发送下一帧,直到发送结束。

接收方发送一个RESPONSE帧来表述这条SCSI命令执行完毕。

(2)读数据

发起方在获得总线仲裁之后,会发送一个SCSI Command读命令帧。接收端接收后,立即将该命令中给出的LUN以及LBA地址段所有的扇区数据读出,传送给发起端。

所有数据传输结束后,目标端发送一个RESPONSE帧来表示这条SCSI命令执行完毕。

SCSI协议语言就是利用这种两端节点之间相互传送一些控制帧,来达到保障数据成功传输的目的。

4.SCSI协议的会话层、表示层和应用层

与底层通信无关。

【存储知识学习】第三章磁盘原理与技术3.4硬盘接口技术和SCSI硬盘接口--《大话存储》阅读笔记

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。