Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11604121
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-06-08 03:38:01

光大祖业 奉子成婚——SAS与SATA-Ⅱ(图十五) 防止单点失效的典型SAS配置为了更好地兼容SATA,SAS的物理层也提供了对时钟频谱扩展(Spread Spectrum Clocking)的支持。时钟频谱扩展通过将时钟发生器脉冲波的尖峰衰减为相对平滑的曲线来降低EMI(ElectroMagnetic Interference,电磁干扰),SATA加入这项功能是为了满足PC对电磁辐射的严格要求;SAS所面向的服务器和网络存储设备辐射标准没有那么苛刻,SAS设备并不需要它,但SAS系统却必须能接收来自SATA设备的时钟频谱扩展信号。发起者和目标对SATA来说,发起者(initiator)必须是主机控制器,目标(target)只能是外围(存储)设备;SAS却灵活许多,外围设备同样能够成为发起者,主机控制器也可以当做目标。造成这种差别的根源在于SAS继续了SCSI对等(peer-to-peer)的传统,即发起者和目标地位平等,在建立连接和传输数据时没有主从之分。对等是SAS很轻易地就能在单个物理链接上实现全双工的主要原因,但它的优点并不限于此。
SAS硬盘执行SCSI扩展拷贝命令时,(SSP)协议答应一块硬盘直接与其他硬盘建立连接,在没有主机参与的情况下发送SCSI命令并传输数据。另一个对等的例子是RAID卡。SAS答应两块(冗余的)RAID卡连接到同一SAS域中互相通信,这个通信路径将两块RAID卡联系在一起,假如其中一块RAID卡发生故障,另一块就会接替它的动作而不用担心数据损坏。相比之下,SATA和PATA一样由主机起控制作用,外围设备只是被动地响应请求,即所谓“非对等”。也就是说,SATA协议没有答应两块主机适配器相互沟通或在两块硬盘间建立直接通信路径的机制。 SAS规范并没有限制SAS硬盘作为发起者与SATA硬盘通信的能力,然而实际设计中不会出现这种情况,因为SAS硬盘要为此提供对STP和SATA发起者协议的支持,从而提高复杂性和成本。把排队落到实处——SATA-Ⅱ本机命令排队在Serial ATA Ⅱ对Serial ATA 1.0所做的诸多功能扩展中,只有一项是与性能密切相关的,它就是本机命令排队(Native Command queuing,也称全速命令排队,简写为NCQ)。借助SATA 1.0改进的DMA机制,SATA Ⅱ本机命令排队结束了PATA命令排队可有可无的尴尬历史,能够更好地满足入门级服务器和网络存储设备的要求,也顺应了PC应用环境向多线程发展的趋势。并行ATA(PATA)命令排队协议1997年就被加入ATA/ATAPI-4规范,可直到现在仍仅有一家硬盘厂商(HGST,原来的IBM)提供支持该协议的产品。难道是PATA命令排队实现起来太过复杂?答案当然是——非也。 PATA排队难有作为在这个即将被抛弃的时刻,PATA的“罪恶”自然是罄竹难书。如此说来,再多拎出一条似乎也不能算落井下石。组成PATA排队协议的命令包括Read DMA Queued(Ext)、Write DMA Queued(Ext)和Service,其中后者是出于PATA DMA的总线从属性需要。前面我们已经介绍过,PATA是非对等的协议,也即硬盘不能主动与主机通信,必须由主机定期交替轮询(同一通道内的)主盘和从盘。这样一来,硬盘在接收到来自主机的命令后,要么立即执行,要么必须通过设置注重标志和Service位来通知主机何时预备就绪执行命令。主机发现Service位后,会发出一条Service命令,以便从硬盘得到将执行哪一条待执行命令的信息。由于队列的客观属性决定了其中至多有一条命令能够立即执行,因此在深度大于1的队列中Service命令不可避免。由于Service位不包含任何对即将执行命令的识别信息,所必需的命令识别信息要以标记值的形式与数据请求一同传输,而且仅供主机用以设置DMA引擎和接收数据缓冲区,主机不能预先把握硬盘所设置的辅助位来自哪条命令,数据传输周期开始前也无法设置DMA引擎。本来最清楚数据存放在何处和怎样访问的硬盘,现在反倒被置于完全被动的地位,有关数据传输的所有预备工作和决策都是由主机做出的,自己只剩下设置Service位,等待主机下一次查询的份儿。最终的结果是,受PATA DMA的总线从属性限制,PATA命令排队带来的性能改善,很轻易地就被协议开销抹杀了。在队列深度较浅的时候,性能甚至还比不排队的情况有所下降——连“聊胜于无”都算不上。所以,尽管接收到来自主机的命令就执行(而不是排队)看起来很傻,可是PATA硬盘的设计者们基本上别无选择。没有命令排队(有也发挥不了多大作用)的后果就是,随着并发访问程度的提高,PATA硬盘与SCSI硬盘之间的性能差距被越拉越大(见图)。 光大祖业 奉子成婚——SAS与SATA-Ⅱ(图十六) PATA硬盘的IOPS性能随队列深度提高的幅度明显不及SCSI硬盘在传统的PC单线程应用中,PATA硬盘可以按照主机软件安排的顺序执行命令,因此没有命令排队还不是很严重的问题。
阅读(928) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~