SCSI(小型计算机系统接口)工作原理
引言
计算机中布满了总线——从一个位置向另一个位置传输信息和电力的高速通道。例如,将MP3或数码相机连接到计算机时,您可能会使用通用串行总 (USB)端口。对于存储图片、音乐等的小型电子设备,USB端口完全可以胜任传输数据和充电的工作。但是,这种总线还不足以同时支持整台计算机和服务器以及其他许多设备。
如图所示,SCSI设备通常连接到控制器卡。 |
在这种情况下,就需要使用SCSI这样的总线。SCSI原意是小型计算机系统接口,但实际上,它已超出了“小型”的范围。它是一种快速总线,可以同时将大量设备连接到计算机,这些设备包括硬盘驱动器、扫描仪、CD-ROM/RW驱动器、打印机和磁带机。在新系统中,串行ATA(SATA)等其他技术已在很大程度上取代了SCSI,但SCSI仍在使用。本文将介绍SCSI基础知识,提供有关SCSI类型和规范的相关信息。
SCSI基础知识
SCSI是在一种老式专有总线接口(称为施加特联合系统接口,缩写为 SASI)的基础上发展而来的。SASI最初是由Shugart Associates和NCR Corporation在1981年合作开发的。1986年,美国国家标准协会(ANSI)批准了SASI的修正版SCSI。SCSI使用一个控制器,向支持SCSI的设备(如硬盘驱动器和打印机)传输数据,同时接收来自这些设备的数据,并为其提供电力。
SCSI连接器 |
SCSI具有许多优点。它的速度相当快,最高可达320兆字节每秒(Mbps)。问世20多年来,经过充分测试,因而它享有性能可靠的美誉。与串行ATA和FireWire一样,您可以在一条总线上连接多个设备。此外,SCSI可在大多数计算机系统中使用。
但是,SCSI也有一些潜在的问题。它对BIOS(基本输入输出系统)的支持比较有限,必须针对每台计算机进行配置。此外也没有通用的SCSI软件接口。最后,不同的SCSI类型具有不同的速度、总线宽度和连接器,因此它们非常容易混淆。不过,只要了解“Fast”、“Ultra”和“Wide”的含义,这些SCSI类型也比较容易理解。下面将介绍一下这些类型。
RAID
SCSI常用于控制独立磁盘冗余阵列(RAID)。串行ATA(SATA) 等其他技术也可用于这一用途。新型SATA驱动器往往比SCSI驱动器更快,也更便宜。
RAID是一组硬盘驱动器,通常被视为大型驱动器。这些驱动器可同时读写数据,称为条带。RAID控制器确定哪个驱动器获取哪些数据块。当驱动器写入数据时,控制器会将数据发送到另一个驱动器,或从另一个驱动器读取数据。
通过镜像和奇偶校验,RAID还提高了容错性。镜像是在另一个硬盘驱动器上创建某个驱动器数据的准确副本。奇偶校验使用至少三个硬盘驱动器,将数据按序写入每个驱动器,最后一个驱动器除外。最后一个驱动器存储一个数字,该数字表示其他驱动器上数据的总和。有关RAID和容错性的更多信息,请参考此页。
SCSI类型
SCSI有三个基本规范:
- SCSI-1:SCSI-1是在1986年开发的原始规范,现已不再使用。它规定总线宽度为8位,时钟速度为5MHz。
- SCSI-2:1994年采用,此规范包括通用指令集(CCS)——支持任何SCSI设备所必需的18个命令。在此规范中,可以选择将时钟速度提高一倍,达到10MHz (Fast),将总线宽度增加为原来的两倍,即16位,将设备数增加为15个(Wide),或者同时实现上述两种升级(Fast/Wide)。SCSI-2还增加了命令队列,允许设备存储命令,并从主机排列命令优先级。
- SCSI-3:此规范于1995年正式出台,包括一系列较小范围的标准。涉及SCSI并行接口(SPI)的一组标准在SCSI-3中得到了继续发展,SPI是SCSI设备之间的通信方式。大多数SCSI-3规范都以Ultra开头,如Ultra for SPI规范、Ultra2 for SPI-2规范和Ultra3 for SPI-3规范。名称中的Fast和Wide的含义与SCSI-2中的一样。SCSI-3是当前正在使用的标准。
双倍总线速度、双倍时钟速度和SCSI-3规范的不同组合,产生了许多不同的SCSI规范。下表对几种不同规范进行了比较。很多较慢的规范已不再使用——在此列出仅作比较之用。
名称 | 规范 | 设备数量 | 总线宽度 | 总线速度 | Mbps |
异步SCSI | SCSI-1 | 8 | 8位 | 5MHz | 4Mbps |
同步SCSI | SCSI-1 | 8 | 8位 | 5MHz | 5Mbps |
Wide | SCSI-2 | 16 | 16位 | 5MHz | 10Mbps |
Fast | SCSI-2 | 8 | 8位 | 10MHz | 10Mbps |
Fast/Wide | SCSI-2 | 16 | 16位 | 10MHz | 20Mbps |
Ultra | SCSI-3SPI | 8 | 8位 | 20MHz | 20Mbps |
Ultra/Wide | SCSI-3SPI | 8 | 16位 | 20MHz | 40Mbps |
Ultra2 | SCSI-3SPI-2 | 8 | 8位 | 40MHz | 40Mbps |
Ultra2/Wide | SCSI-3SPI-2 | 16 | 16位 | 40MHz | 80Mbps |
Ultra3 | SCSI-3SPI-3 | 16 | 16位 | 40MHz | 160Mbps |
Ultra320 | SCSI-3SPI-4 | 16 | 16位 | 80MHz | 320Mbps |
除了总线速度提高之外,Ultra320 SCSI还使用打包数据传输,从而提高其效率。Ultra2也是最后一种具有“窄”(8位)总线宽度的规范。
所有这些SCSI类型都是并行的——数据通过总线同时传输,而不是一次传输一种数据。最新的SCSI类型称为串行连接SCSI(SAS),这种连接使用SCSI命令,但以串行方式传输数据。SAS使用点对点串行连接,以3.0千兆位每秒的速度传输数据,每个SAS端口可以支持多达128个设备或扩展设备。
SCSI控制器 |
所有SCSI规范都使用控制器和电缆与设备相连。下面将介绍这一过程。
scsi的控制器、设备和电缆
SCSI控制器在SCSI总线上的所有其他设备和计算机之间进行协调。SCSI控制器也称为主机适配器,控制器既可以是插入可用插槽的卡,也可以内置在主板上。SCSI BIOS也在控制器上。它是一个小型ROM或闪存芯片,包含访问和控制总线上的设备所需的软件。
每个SCSI设备都必须具有唯一的标识符(ID)才能正常工作。例如,如果总线能够支持16个设备,通过硬件或软件设置指定的设备ID的范围为0-15。SCSI 控制器本身必须使用其中一个ID,通常是最高的那一个,而将其他ID留给总线上的其他15个设备使用。
内部SCSI设备连接到一条带状电缆。 |
内部设备通过带状电缆连接到SCSI控制器。外部SCSI设备使用一条粗的圆形电缆,以菊花链形式连接到控制器(串行连接SCSI设备使用SATA电缆)。在菊花链中,每个设备都依次连接到下一个设备。因此,外部SCSI设备通常具有两个SCSI连接器——分别连接前后两个设备。
外部SCSI设备使用粗的圆形电缆连接。 |
电缆本身通常由三层构成:
- 内层:保护性最好的层,包含实际发送的数据。
- 介质层:包含向设备发送控制命令的线路。
- 外层:包含传输奇偶校验信息的线路,这些信息可确保数据的正确性。
不同SCSI标准使用不同的连接器,这些连接器通常不兼容,通常使用50、68或80针。SAS使用较小的SATA兼容连接器。
68针Alternative 3 SCSI连接器 |
50针Centronics SCSI连接器 |
一旦总线上的全部设备安装完毕,而且分配了各自的ID,则总线的每一端都必须闭合。下面介绍如何执行这一操作。
SCSI终结
如果SCSI总线保持开放状态,沿总线发送的电信号会反射回来,从而干扰设备和SCSI控制器之间的通信。解决方法是终结总线,用电阻电路闭合每一端。如果总线同时支持内部和外部设备,则必须终结每个系列的最后一个设备。
SCSI 终结的类型主要可分为两类:被动和主动。被动终结通常用于在标准时钟速度下运行、且设备到控制器的距离小于1米的SCSI系统。主动终结用于Fast SCSI系统,或设备到SCSI控制器的距离大于1米的系统。
如图所示,某些SCSI终结器内置于SCSI设备中,而另一些可能需要使用外部终结器。 |
SCSI还使用三种不同类型的总线信令,这也会影响终结。电脉冲以信令的方式在线路上发送。
- 单端(SE):控制器生成信号,并通过单条数据线将信号传送至总线上的所有设备。每个设备都会产生信号损失。因此,信号会很快开始衰减,由此SE SCSI的传输距离被限制为约3米以内。PC中普遍采用SE信令。
- 高压差动(HVD):HVD常用于服务器,它以串联方式发送信号,采用一条数据高压线和一条数据低压线。SCSI总线上的每个设备都有信号收发器。控制器与设备通信时,总线沿途的设备接收信号并转发信号,直至信号到达目标设备为止。这样,控制器和设备之间的允许距离可显著增加,可达25米。
- 低压差动(LVD):LVD是HVD的同类技术,工作原理非常相似。两者之间的差异在于,LVD的收发器更小,并且内置于每个设备的SCSI适配器中。这使得LVD SCSI设备的价格更合理,并且LVD使用更少的电量就可以通信。缺点在于最大距离仅为HVD的一半——12米。
主动终结器 |
HVD和LVD通常都使用被动终结器,即使设备和控制器之间的距离远大于1米也是如此。这是因为收发器可以确保信号足够强,能从总线的一端传输到另一端。
评论