SCSI总线和协议介绍_第1页
SCSI总线和协议介绍_第2页
SCSI总线和协议介绍_第3页
SCSI总线和协议介绍_第4页
SCSI总线和协议介绍_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SCSI总线和协议分类:Storage存储服务器磁盘任务应用服务器网络I/O技术实现在计算机和存储设备之间的数据交换。实现从CPU到存储系统 的 I/O 通路的一个中间就是 SCSI(Small Computer System In terface ).一. I/O 通路在计算机中,一个或多个 CPU处理在CPU缓存或主存储器(RAM Random Access Memory中的数据。CPU缓存或主存储器是非常快的器件,但是断电就 不能保存,价钱也比较昂贵。所以数据还需要放在存储设备上。通常,数据从主存储器(RAM通过系统总线,主机I/O总线和I/O 总线 移动到磁盘或者磁带等存储设备。1.1

2、 系统总线在计算机的核心部分,系统总线保证数据在CPU和主存储器之间进行快速的 传递。系统总线必须使用非常高的时钟频率,使得它能够足够快的给CPU提供数据。该总线的实现采用在主电路板上印制导线的形式。出于物理性能的原因,高的系统速度需要短的印制导线。因此,系统总线应该尽可能的短一些,并且I只能连接CPU和主存储器。1.2 主机I/O总线在现在计算机中,为了释放CPU的应用处理负担,人们把尽可能多的任务移 到诸如图像处理器这样的特别的处理器中。由于上述物理上的限制条件,这些器件不可以连接到系统总线。因此大多数计算机都实现了称作主机I/O总线的第二个总线。桥接芯片提供在系统总线和主机I/O总线之间

3、的连接。PCI(Peripheral Comp onent In terc onnection:夕卜围互联设备)是当前最广泛使用的实现主机I/O总线的技术。1.3 I/O 总线设备驱动器负责控制外围设备以及与外围设备的通信。 针对存储设备的设备 驱动器部分以软件形式存在,该软件由CPU处理。由于跟存储设备通信的部分设 备驱动器几乎总是以固件的形式实现,该固件由特别的处理器(ASIC:Application Specific Integration Circuit )处理。当前这些 ASIC 有 的集成到主电路板(如SCSI控制器),也有的通过附加的 PCI卡连接到主板。 这些附加的卡通常被称作

4、控制器。存储设备通过主机总线适配器(HBAHost BusAdapter)或者通过在板上的控制器连接到服务器。在控制器和外围设备之间的通信连接叫作I/O总线。当前用户I/O总线的最重要的技术是SCSI和光纤通道。SCSI定义了一种 总线,该总线能够连接16个设备(包括服务器和存储设备)。在另一方面,光纤通道定义存储网络的不同拓扑结构, 该存储网络可以连接数百万个设备 (包括 服务器和存储设备)。作为替代光纤通道的其他选择,工业界正在使用 TCP/IP 和以太网(IP存储)实现存储网络。 注意的是,这些新技术都是继续使用 SCSI 协议在设备间通信。二. 并行SCSI总线把磁盘和磁带设备连接到应

5、用服务器或文件服务器,最常用的方法就是通过传统的 SCSI总线。尽管 SCSI主要是一个块协议,但这个术语也被用来指 称运行该协议的并行线缆机制。最初的 SCSI物理层传输介质是一种并行电缆,由8根数据线和一些控制 线构成。在每个发送时钟里传输8位数据,传输速率相对说来是比较高的;但是由于电气方面的问题,使得多数 SCSI设备所允许的传输距离被限制 在15-25 m左右。随着时间的推移,SCSI并行总线的性能一直在提咼,并 通过提供更多的数据通路(例如采用 16位数据线和32位数据线)和更快的时钟,得到了更大的带宽。并行总线存在的一个问题是飘移现象。如果把一组并行的多位数据同时发 出,每条数据

6、线上的传输延迟会出现差异, 导致各个位不会在精确的同一时间到 达目的地。所谓飘移指的是一个时间窗口,所有的数据位在这段分布的时间内都 能到达目的地。各个传输线上传输延迟的差别越大, 飘移窗口也就越大。根据传 输线理论,总线中每条线路的传输阻抗(包括容抗和感抗)跟它所处的位置有关,因此,传输延迟是位线所处的物理位置的函数。对于给定长度的线缆,要想 增加时钟频率,就必须减小飘移窗口,从而最小化线路间的传输延迟差。 显然在 高频条件下,电缆越长,飘移窗口越大。SCSI规范的第 1个版本发布于 1986年。自那时以来,它被广泛应 用于服务器和高档 PC中,其速率由最初的4 MBps发展到现在 的 32

7、0 MBps而且还在提高着。作为一种介质,SCSI定义了一个并行总线,用于数据传输和通信控制。总线 本身可以是印制导线的形式,也可以是一根电缆。外部 SCSI设备使用电缆以菊花链的形式连接到服务器上的控制器。 在菊花链中,每个设备都跟其他设备串 接。由于这个原因,外部SCSI设备典型地都有两个 SCSI连接器,可以分别J连接到链中的前一个设备和后一个设备。现在的一个 SCSI总线可以连接多 至16个设备。其中包括1个SCSI控制器和 15个存储装置。2.1 SCSI 类型SCSI有三个基本规范:SCSI-1: SCSI-1是在1986年开发的原始规范,现已不再使用。它规定总线 宽度为8位,时钟

8、速度为5MHzSCSI-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规范都以Ultr

9、a开头,如Ultra for SPI规范、Ultra2 for SPI-2规范和Ultra3 for SPI-3规范。名称中的Fast和Wide的含义与SCSI-2 中的一样。SCSI-3是当前正在使用的标准。双倍总线速度、双倍时钟速度和 SCSI-3规范的不同组合,产生了许多不同 的SCSI规范。下表对几种不同规范进行了比较。很多较慢的规范已不再使用一在此列出仅作比较之用名称规范设备数量总线宽度总线速度Mbps异步SCSISCSI-188位5MHz4Mbps同步SCSISCSI-188位5MHz5MbpsWideSCSI-21616位5MHz10MbpsFastSCSI-288位10MHz1

10、0MbpsFast/WideSCSI-21616位10MHz20MbpsUltraSCSI-3SPI88位20MHz20MbpsUltra/WideSCSI-3SPI816位20MHz40MbpsUltra2SCSI-3SPI-288位40MHz40MbpsUltra2/WideSCSI-3SPI-21616位40MHz80MbpsUltra3SCSI-3SPI-31616位40MHz160MbpsUltra320SCSI-3SPI-41616位80MHz320Mbps除了总线速度提高之外,Ultra320 SCSI还使用分组化数据传输,从而提高 其效率。Ultra2也是最后一种具有“窄”(8

11、位)总线宽度的规范。所有这些SCSI类型都是并行的一一数据通过总线同时传输,而不是一次传 输一种数据。最新的SCSI类型称为串行连接 SCSI(SAS Serial Attached SCSI), 这种连接使用SCSI命令,但以串行方式传输数据。SAS使用点对点串行连接, 以3.0千兆位每秒的速度传输数据,每个SAS端 口可以支持多达128个设备或扩 展设备。2.2 SCSI的控制器、设备和电缆SCSI控制器在SCSI总线上的所有其他设备和计算机之间进行协调。SCSI控制器也称为主机适配器,控制器既可以是插入可用插槽的卡, 也可以内置在主板 上。SCSI BIOS ( Basic In put

12、 output System )也在控制器上。它是一个小型 ROM或闪存芯片,包含访问和控制总线上的设备所需的软件。每个SCSI设备都必须具有唯一的标识符(ID)才能正常工作。例如,如果总 线能够支持16个设备,通过硬件或软件设置指定的设备ID的范围为0-15 o SCSI 控制器本身必须使用其中一个ID,通常是最高的那一个,而将其他ID留给总线 上的其他15个设备使用。内部设备通过带状电缆连接到 SCSI控制器。外部SCSI设备使用一条粗的圆 形电缆,以菊花链形式连接到控制器(串行连接 SCSI设备使用SATA电缆)。在 菊花链中,每个设备都依次连接到下一个设备。因此,外部SCSI设备通常具

13、有两个SCSI连接器一一分别连接前后两个设备。电缆本身通常由三层构成:(1) 内层:保护性最好的层,包含实际发送的数据。(2) 介质层:包含向设备发送控制命令的线路。(2)外层:包含传输奇偶校验信息的线路,这些信息可确保数据的正确性。不同SCSI标准使用不同的连接器,这些连接器通常不兼容,通常使用50、68或80针。SAS使用较小的SATA兼容连接器。一旦总线上的全部设备安装完毕,而且分配了各自的ID,则总线的每一端都 必须闭合。下面介绍如何执行这一操作。2.3终接器如果SCSI总线保持开放状态,沿总线发送的电信号会反射回来 ,从而干扰 设备和SCSI控制器之间的通信。解决方法是终结总线,用电

14、阻电路闭合每一端。 如果总线同时支持内部和外部设备,则必须终结每个系列的最后一个设备。SCSI终结的类型主要可分为两类:被动(无源)和主动(有源)。(1) 被动(无源)终结 通常用于在标准时钟速度下运行、且设备到控制器的距 离小于1米的SCSI系统。(2) 主动(有源)终结用于Fast SCSI系统,或设备到SCSI控制器的距离大于 1米的系统。SCSI还使用三种不同类型的总线信令,这也会影响终结。电脉冲以信令的方 式在线路上发送。(1) 单端(SE: Single-ended):控制器生成信号,并通过单条数据线将信 号传送至总线上的所有设备。每个设备都会产生信号损失。因此,信号会很快开 始衰

15、减,由此SESCSI的传输距离被限制为约3米以内。PC中普遍采用SE信令。(2) 高压差动(HVD High-Voltage Differential) : HVD常用于服务器,它以串联方式发送信号,采用一条数据高压线和一条数据低压线。SCSI总线上的:每个设备都有信号收发器。控制器与设备通信时,总线沿途的设备接收信号并转 发信号,直至信号到达目标设备为止。 这样,控制器和设备之间的允许距离可显 著增加,可达25米。I(3) 低压差动(LVD: Low-Voltage Differential): LVD是 HVD的同类技术, 工作原理非常相似。两者之间的差异在于,LVD的收发器更小,并且内置

16、于每个 设备的SCSI适配器中。这使得LVDSCSI设备的价格更合理,并且LVD使用更少 的电量就可以通信。缺点在于最大距离仅为 HVD的一半一一12米。HVD和LVD通常都使用被动终结器,即使设备和控制器之间的距离 远大于1米也是如此。这是因为收发器可以确保信号足够强, 能从总线的一端传 输到另一端。三. SCSI 协议在SNIA共享存储模型中,SCSI负责从上层接收请求并转发,或者从并行设 备获取数据并转发。例如:有一个应用程序向操作系统发出对磁盘设备的写请求。在SCSI协议层,这个写请求被看成是特定数量的数据块以协议的形式传递到指定位置的命 令。作为操作系统和存储设备之间的一个中介,SC

17、SI协议既不规定数据块如何 组织,也不规定怎样把数据块放到磁盘上。在SCSI把数据块发送到目的地时,目标方可能是单个物理磁盘,也可能是把数据块在多个物理盘上分条存放的 RAID控制器。SCSI协议的责任,就是在确认写操作已经正确完成后向操作系 统报告成功,而不管在磁盘上物理存储是如何配置以及写操作是如何执行的。3.1 SCSI 域SCSI设备是在一定的环境中运行的。 通常需要有多个SCSI设备才能形成 这样的环境。SCSI设备间的运行环境也称为SCSI域。在这个域内,生成和发 送SCSI命令和任务管理请求的SCSI端口称为SCSI发起方,接收和处理SCSI 命令,根据请求执行任务管理的端口称为

18、 SCSI目标fangyang。SCSI域的组成包括SCSI设备,设备内的SCSI发起方和目标方以及提供数 据交接的总线。SCSI总线连接了挂在它上面的所有 SCSI设备。我们可以把一 个实际的SCSI应用系统抽象为一个SCSI域,域中有多个SCSI设备,而且带SCSI 驱动器的计算机也可以被看成是一个 SCSI设备。尽管可以允许有多个SCSI设备接在同一条总线上,SCSI协议实际定义的是 设备间一对一的数据交换,即同一时刻在 SCSI总线上只允许有两个设备互相交 换数据。因为,SCSI上的各个设备是以分时共享的方式使用总线的。在一个实际的SCSI域中,必须至少有一个发起方和1个目标方,考虑到

19、主 机对数据存储的需求,配置了 SCSI控制器的主机至少有1个SCSI发起方。而磁 盘设备主要是提供存储和数据服务,一般都有目标发。3.2 SCSI协议模型为了便于实现和理解SCSI的各个协议,SCSI采取了分层结构。SCSI大致 可分为三层,即SCSI应用层,SCSI传输层和SCSI互连层。SCSI中的各个具 体协议一般都位于其中的某一层,可以可能跨越两层。 I在应用层,SCSI体系结构把发起方(主机)和目标方(如磁盘)的通信定 义为客户/服务器交换。SCSI客户位于主机中,代表上层应用程序,文件系统和 操作系统I/O请求。SCSI设备服务器位于目标设备中,对请求做出响应。 户/服务器请求和

20、响应通过某种形式的底层协议进行传输。在传输协议层,SCSI设备之间通过一系列的命令实现数据的传送,大致分 成三个阶段:命令的执行,数据的传送和命令的确认。SCSI互联层完成SCSI设备对总线的连接以及发送方和目标方的选择等功3.3 寻址机制为了对连接在总线上的设备寻址,SCSI协议引入了 SCSI设备ID和逻辑单 元号LUN.在SCSI总线上的每个设备都必须有一个唯一的ID,其中包括服务器 中的主机总线适配器也拥有设备ID.取决域SCSI标准的版本,每条总线最多可 允许有8个或者16个设备ID。诸如RAID磁盘子系统和磁带库这样的存储设备可能包括若干个子设备,如 虚拟磁盘,磁带驱动器和介质更换

21、器等。因此SCSI引入了逻辑单元号,以便于对大的设备中的子设备进行寻址。另外一个服务器可能配置了多个 SCSI控制器,从而就可能有多条SCSI总线。因此,操作系统用一个三元描述标识一个 SCSI目标:总线/目标设备/逻辑单元号传统的SCSI适配卡连接单个总线,相应的只具有一个总线号。在引入存储 网络之后,每个光纤通道 HBA(Host Bus Adapter )或 iSCSI (Internet SCSI ) 网卡也都连接一条总线,分配一个总线号,在他们之间依靠不同的总线号加以区 分。目标设备标识在一条总线菊花链上的单个设备, 逻辑单元号则表示一个目标 设备中的一个子设备。 通常,单个物理磁盘

22、只具有一个逻辑单元号,而 RAID 磁盘阵列虽然也只有一个目标设备,但却有多个逻辑单元号。在一条总线上各个设备具有不同的优先级。起初的SCSI协议只允许有8个 目标设备ID,规定ID7具有最高权限。后来版本的SCSI协议允许有16个不同 的目标设备ID。出于兼容性的考虑,从7到0的目标设备依然具有高优先级, 而从15到8的设备ID具有较低优先级。设备(服务器和存储设备)在可以通过 SCSI总线发送数据之前必须预定总 线(仲裁)。在总线的仲裁期间,具有最高优先权的目标设备总能获胜。在总线负载重的情况下,这可能导致具有较低优先级的设备总是不被允许发送数据, 因此,SCSI的仲裁过程是不平等的。出于

23、配置和管理的需要,操作系统使用总线号/目标设备ID/逻辑单元号三元 组来标识一个SCSI目标,然而用户和应用程序所看到的只是一个逻辑标识符, 如D盘。因此在总线号/目标设备ID/逻辑单元号和逻辑盘符之间存在着一个映 射,提供在物理设备和上层文件系统之间不同表示形式的转换。3.4 交互方式SCSI协议把发起方(主机)和目标方(例如磁盘)之间的交互定义为客户/ 服务器方式。应用客户位于主机中,代表上层应用程序、文件系统和操作系统 的I/0 请求。设备服务器位于目标设备中,它响应客户的请求。请求和响应 通过某种形式的下层分布设施进行传输,该分布设施称作分布子系统,可以是并 行电缆,也可以是光纤通道协

24、议或iSCSI。一个发起方可能会有多个请求同时发给目标方。多个请求产生应用客户的多个实例,从而在设备服务器上产生多个事务。发起方在其发往一个或多个目标的多个请求正在被相关的设备服务器处理 的时候,需要能够执行上下文交换(ContextSwitching),即具有从一个任务快速切换到另一个任务的能力。例如,作为一个发起方的文件服务器可以向一 个目标方发送一个写请求。当该文件服务器在等待这个目标方准备好缓冲区以 接收数据的那段时间内,可以切换到另一个挂起的任务,例如处理已经到达的对 先前的另一个请求的响应,从而提高运行效率,最大化吞吐量。如果SCSI任务只能依次串行地执行,那么等待每个写或读请求完

25、成的时间就都被白白地浪费 了。一般来说,上下文交换是由主机适配卡完成的,可以是并行SCSI,也可以是光纤通道或iSCSI。由于 SCSI体系结构模型是层次化的,因此它对主机I/O请求的处理可以独 立于底层的分发子系统。一个应用客户主机可以处理涉及不同种类的目标设备的I/O 操作,例如一个应用服务器可以有直接附接的SCSI目标方,也可以有通过千兆位速率接口连接的串行 SCSI目标方。在SCSI发起方和目标方之间读写数据是通过 SCSI命令、分发请求、分发操 作和响应来完成的。SCSI命令和参数在 CDB (Command Descriptor Block, 命令描述块)中指定。作为交互示例,在执

26、行对磁盘的SCSI写过程时,在发起方(例如主机总线适配器)创建一个应用客户,该客户发送 SCSI命令请求给目 标方,令其准备缓冲区以接收数据。目标设备服务器在其缓冲区准备好之后,发送一个数据分发操作请求进行响应。 接着,发送方就执行分发操作,开始发送数 据块。依赖于底层的分发子系统,数据块可能按字节并行传输(例如并行SCSI总线),也可能以分段成帧的形式串行传输(例如光纤通道或iSCSI)。从应用程序或操作系统的角度看, 写操作只是一个事务。但实际上,对应一 个写操作,发送方和目标方可能要进行多次的分发请求和分发操作的交互, 才能 把命令请求的所有数据都发送给目标方。在一次读操作中,SCSI命

27、令块遵循相反的数据分发请求和确认序列,然而由于是发起方发出读命令,所以命令就假定自己已经准备好了缓冲区以接收 第1批数据块。在读写事务的每个阶段所发送的数据块数量,由发起方和目 标方根据对方的缓冲区容量协商决定。例如,高性能磁盘阵列一般都能提供较大 的缓冲区,可以完成大规模的数据传送,从而提高了产品性能。3.5 SCSI总线信号SCSI在物理信号的基础上定义了一组总线信号。 这些信号可划分为数据信号 和控制信号两类。它们都是二进制信号,并且只有“真”和“伪”两个稳定状态。 其中有指示总线已经被占用的“BSY信号,有清除并重新设置SCSI总线的“RST 信号等。下面对这些信号的名称和功能逐一进行

28、介绍。1. BSY (Busy,忙)信号该信号是“或态”信号,表示已经有设备占用总线。2. SEL (Select,选择)信号该信号是“或态”信号,由发起方用以选择目标方,或者由目标方用以 重新选择发起方。3. C/D (Control/Data ,控制 / 数据)信号该信号由目标方驱动,表示在数据总线上传送的是数据信号还是控制信 号。该信号处于真状态时表示控制信号。4. 1/0(1 nput/Output ,输入输出)信号该信号由目标方驱动,控制数据在数据总线上的移动方向。当I/O 信号为“真”时表示是对发起方的输入,数据由目标方向发起方传送;若I/O信号为“伪”,则表示数据由发起方向目标方

29、传送。该信号也被用来区分选择和重选阶 段。5. MSG (Message,通信)信号该信号由目标方驱动,表示总线处于信息传送的通信阶段。6. REQ (Request,请求)信号该信号由目标方驱动,表示有信息传输请求,请求一个REQ/ACK数据传送握手过程。7. ACK (Acknowledge,应答)信号该信号由发起方驱动,表示对REQB号的应答。8. ATN (Attention ,提醒)信号该信号由发起方驱动,指示一个提醒信息,表明发起方有一个消息要给 目标方发送。9. RST (Reset,重置)信号该信号是“或态”信号,表示一个硬件重置状态,指示总线进入重新设 置阶段,清除所有使用总

30、线的SCSI设备。10. DB (DataBus,数据总线)信号DB信号有两种,分别是用于 8位数据总线的DB (7-0,P)和用于16位数据总线的DB (150, P)。这些信号都用于传送信息的值,它们包 括数据比特信号,加上奇偶检验比特信号。由于在SCSI总线上挂有多个设备,一些控制信号可能同时被多个SCSI设备 驱动。这些信号被称作“或态”信号。对于“或态”信号,SCSI设备不会主动 将其驱动成“伪”,而是依赖总线终接器,在总线上的所有设备都没有驱动该信 号时将其设置成“伪。”只要有1个或多个设备驱动该信号,该信号就是“真”。 与“或态”信号相对照的是“非或态”信号。对于“非或态”信号,

31、SCSI设备可以将其驱动成“伪”。3.6 SCSI总线的使用阶段根据对总线不同的使用,可以把SCSI总线状态划分成8个不同的阶段:空 闲阶段,仲裁阶段,选择阶段,重选阶段,命令阶段,数据阶段,状态阶段和通 信阶段。其中命令阶段,数据阶段,状态阶段和通信阶段都设计信息在总线的传送, 所以又称为:信息传送阶段。除了空闲阶段外,其他阶段的总线都被 SCSI设备占用3.6.1. 总线空闲阶段总线空闲表明没有一个设备在使用SCSI总线,也表示在此状态下,SCSI设备如果需要,可以使用总线。SCSI设备需要在总线上的 SEL信号 和 BSY言号都是“伪”之后,才可以检测总线是否处于空闲状态。作为例子,SC

32、SI总线可能在下列情况下进入空闲状态:1. RST信号被设置;2. 不成功的总线选择或重选;3. 目标设备解除连接;4. 目标设备命令完成。一旦一个SCSI设备确定总线处于空闲阶段,它就可以申请总线仲裁, 从而进入仲裁阶段。3.6.2. 总线仲裁阶段在SCSI总线上的设备必须先获得总线连接权,然后才可以进行其他的操 作。在默认条件下,看似挂在总线上的设备在逻辑上是与总线断开的,没有参与总线上的活动。SCSI设备只有在需要进行数据传输和设备状态报告时才会申请 总线连接权。SCSI设备一旦得到了总线连接权,就将在发起方和目标方之间形 成一个物理连接的通道,然后就可以进行数据传输。一般情况下,总线的

33、获取与对目标方的选择都由发起方完成。为了更加高效 地使用总线,在某些情况下,例如在有较长时间的CPL处理等待或设备存取等待 时,需要释放总线以供其他设备使用。 在等待的相关任务完成后,再重新进行总 线仲裁和连接权获取操作,以继续进行暂停的工作。因此,有时目标方也可以执 行总线操作和连接权获取操作,准确地讲,是再获取操作。SCSI总线上的设备的优先级是由它的地址即SCSI ID 决定的。在窄SCSI中的ID范围是 0-7,对应的优先级是从 1至V &在 宽 SCSI中的ID范围是015,其中对应ID07的优先级是从9到16递增, 而对应ID8l5 的优先级是从 1至V 8递增。在这里,我

34、们用较大的数值 表示较高的优先级,因此,ID7具有最高优先级。在窄SCSI中,ID 0具有最低优先级;在宽SCSI中,ID8具有最低优先级。SCSI总线上的ID数目是与 SCSI数据总线宽度一致的,因此,窄 SCSI 有8个ID,宽 SCSI有16个ID。在窄 SCSI中的 8根数据线的编号是 从0到7,在宽 SCSI中的16根数据线的编号是从 0到15。有趣的是, 具有某个编号的数据线上的信号,还被用来表示具有对应号码ID 的SCSI设备是否在执行选择或相关操作。例如当数据总线中的数据线DB (2)在某个特定 的阶段被驱动成真时,就可以表示其ID为2的设备已经在总线上执行了选择 或相关操作。

35、在SCSI域中,主机是存储设备的主要使用者,且对存储的响应要求较高, 因 此通常主机的优先级最高, 其分配的ID值也最大,在窄 SCSI中是ID 7, 在宽 SCSI中是IDl5。总线仲裁就是在可能同时有多个设备请求的情况下,最终只给予其中的一 个SCSI设备总线控制权的过程。SCSI设备在检测到“总线空闲”并等待一个 时延后即可以把总线置成BSY并把与它的 SCSI ID对应的数据线信号置为 “真”,开始总线仲裁申请。在等待1个时延后,该SCSI设备需检测在数据总线上是否有更高优先级 的SCSI ID也为“真”。如果总线上确有更高优先级的设备在进行总线申请, 则该 SCSI设备不再置BSY和

36、对应的数据线为“真”。放弃总线仲裁申请,直 到下一次“总线空闲”;否则,该设备就获得了总线控制权,并由该设备把SEL信号置为“真”。同时,总线上的其他 SCSI设备则检测到 SEL信号为“真” 后,不再置BSY言号和对应的数据线为“真”,放弃总线仲裁申请。为了保证确实已经获得了总线控制权,该设备在置 SEL信号为“真”后、传送其他信号前, 需要有一定的时延。在总线仲裁阶段结束时,总线上有 BSY SEL和与获得总线的 SCSI设备 的ID,其对应的数据线的信号为“真”。3.6.3. 选择阶段这个阶段主要是完成对具有特SCSI体系结构的互连层。在选择阶段,得到总线使用权的 SCSI设备在总线上选

37、择目标设备,以便随 后可以向该目标设各发送诸如读和写这样的命令。 定SCSI ID的设备的选择,其相关协议的定义主要是在 需要注意的是,逻辑单元号LUN的寻址是逻辑单元通过SCSI传输层协议完成的, 不在互连层。与LUN编址相关的协议在传输协议层描述赢得仲裁的SCSI设备在把BSY和SEL信号置成“真”,经过一小段时延后, 即可进入选择阶段。作为发起方,赢得仲裁的SCSI设备不可以把1/0信号置成“真”。在此阶段,发起方需要把与自己的 SCSI ID对应的数据线的信号和对 应所要选择的目标设备的SCSI ID的数据线的信号置成“真”,经过一小段时 延,再把BSY信号置成“伪”,然后等待目标方的

38、响应。例如,SCSI ID为6的主机把对应自己的ID的数据线DB(6)和对应目标设备 的ID(=6)的数据线DB(0)置成“真”后,数据总线上信号值的状态将如下所示。DS (0) DS (1) DS (2) DS (3) DS (4) DS (5) DDS1此时,只有两个数据线的信号值是“真”。如果有多于两个的数据线为“真”, 则目标方认为有误。目标方在 SEL和对应它的ID的数据线的信号为“真”并且 BSY和I/O信号为“伪”的情况下,就可以确定它自己已经被选为目标设备。此 时,目标方设备应该重新把BSY信号置成“真”。发起方在检测到 BSY为“真” 的信号后,就把SEL信号置成“伪”。特别

39、需要注意的是,在该阶段结束时,BSY 信号是由目标方置位的3.6.4. 重选阶段在SCSI目标设备忙于处理其内部事务(通常是对于执行对存储数据的 读或写操作)期间,它可以在等待操作 (比如把存储在设备中的数据读入缓冲区 或把暂存在缓冲区的数据写入缓冲区)完成时释放总线供其他设备使用,并在操I 作完成后重新申请对总线的使用权。因此,重选阶段也发生在“总线仲裁阶段”之后。但与选择阶段不同,重选阶段由目标方启动,重新建立由发送方启动成功 但被目标方挂断的连接。在目标设备释放了总线之后,BSY和 SEL信号处于被置成“真”的状态。 此时日标设备通过把I/O信号置成“真”使自己成为赢得对总线使用权的一方

40、。 在重选阶段,目标方也需要把与自已的SCSI ID 对应的数据线的信号和对应发送方设备的 SCSI ID的数据线的信号置成“真”,经过一段短的时延,再 把BSY信号置成“伪”,然后等待发起方的响应。发起方在SEL I/O和对应它的ID 的数据线的信号为“真”并且 BSY为 “伪”的情况下,就可以确定它自己已经被重选。 被重选的发起方可以通过查看 数据总线来验证重迭的目标方的SCSI ID。然后,发起方设各重新把BSY言号置成“真”。目标方在检测到BSY为“真”的信号后,它也执行把BSY1动成“真” 的操作,并把 SEL信号置成“伪”。被重选的发起方在检测到SEL信号为“伪”后,它就把BSY置

41、成“伪”,而目标设备则继续把 BSY设置成“真”,直到它放弃对总线的使用权为止。 这样,在该阶段结束时,信号的状态与选择阶段一样,也是由目标方设置的BSY信号。3.6.5. 信号传送阶段命令阶段、数据阶段、状态阶段和通信阶段被组合在一起作为信息传送阶段, 因为它们都被用来通过数据总线传送数据或控制信息。SCSI使用 C/D、I/O 和MSGS号区分不同的信息传送阶段以及对应的信息传输方向。目标方 驱动这3个信号,控制从一个阶段到另一个阶段的转变。发起方可以通过把ATN信号置成“真”请求一个“通信出”阶段,而目标方可以通过释放MSG C/D、I/O 和BSY信号引入总线空闲阶段。信息传送阶段使用

42、一个或多个REQ/ACK握手过程控制信息传送。每个REQ/AC握手过程允许传送 1个或多个字节的信 息。因为信息传送阶段一定是在选择阶段或重选阶段之后,所以不改变BSY和 SEL信号。事实上,在该阶段,BSY寺续为“真”,SEL信号持续为“伪”。表2-2 示出了 MSGC/D和I/0信号值与阶段名及信息传输方向之间的关 系。其中的“出”和“入”是相对子发送方设备而言的,且数据传输方向由I/0信号确定。表2-2 MSG C/D和1/0信号值与阶段名及信息传输方向之间的关系MSGCID1/0阶段具体阶段传输方向100*(未用)101*(末用)110通信通信出从发送方到目标方111通信通信入从目标方

43、到发送方OOO数据数据出从发送方到目标方OO1数据数据入从目标方到发送方O1O命令从发送方到目标方O11状态从目标方到发送方注释:0=伪,仁真,*=保留未来定义命令阶段允许目标方请求发起方传送命令信息 。在命令阶段 的 REQ/ACK握手过程中,目标方把C/D信号置成“真”,把I/O信号和MSG 信号置成“伪”。数据阶段包括“数据入”阶段和“数据出”阶段 。(1)“数据入”阶段允许目标方请求把数据从目标方传送给发起方。在“数据 入”阶段的 REQ/ACK握手过程中,目标方把I/O信号置成“真”,把C/D信 号和msG言号置成“伪”。(2)“数据出”阶段 允许目标方请求把数据从发起方传送到目标方

44、。在“数据 出”阶段的 REQ/ACK握手过程中,目标方把C/D信号、I/O信号和 MSG言号 都置成“真”。二 状态阶段允许目标方请求把状态信息从目标方传送给发起方。在状态阶段的REQ/ACK!手过程中,目标方把C/D信号和I/O信号置成“真”,把MSG言号置 成“伪”。|通信阶段可以是“通信入”阶段或“通信出”阶段。无论是在“通信入”阶段,还是在“通信出”阶段,都可以传送多条消息。传送的第一个字节可以是单 字节消息,也可以是多字节消息的首字节。在1个通信阶段可以传送多个多字节消息。“通信入”阶段允许目标方请求把消息从目标方发送给发起方。 在“通信入” 阶段的 REQ/AC握手过程中,目标方

45、把C/D信号、I/O信号和 MSG言号都置 成“真”。“通信出”阶段允许目标方请求把消息从发起方传送到目标方。目标方在响应发起方建立的提醒条件时调用“通信出”阶段。在“通信出”阶段 的 REQ/ACK握手过程中,目标方把C/D信号和 MSG言号置成“真”,把I/O 信号置成“伪”。3.7 异步传输和同步传输与传统网络的数据包传送方式不同,SCSI基于REQ/ACK信号控制数据传输 的过程。根据REC和ACK信号控制与数据总线置位时间的差别,信息传输又可 分为异步传输和同步传输两个列别。而且,无论传输的方向如何,信息的传输都是由REC信号开始,并且REQ信号都是由目标方控制和发送的。1. 异步信

46、息传输异步传输方式可用于数据阶段的数据传输,也可用于命令、状态和通信阶段 的信息传输。首先,信息传输的方向是由 I/O信号决定的。如果I/O信号为 “真”,那么信息是由目标方向发起方传输。在此情况下,为了传送信息,目标 方先把数据线 DB(7/15-0, P)信号置成对应想要传送的二进制数位序列的值, 然后把REQ言号置成“真”。发起方在检测到REQ为“真”时,读取数据总线的值,然后把ACK言号置成“真”。当目标方检测到 ACK为“真”时,它就可以 改变或取消放置在数据总线上的值,并把 REQB成“伪”。发起方在检测到 REQ 置成“伪”时把ACK也置成“伪”。当目标方检测到 ACK为“伪”时

47、,总线上就 完成了一次数据传输,并可进行下一次数据传输。在异步传输方式中,每个 REQ/AC握手过程传送 1个(对于窄 SCSI) 或2个字节(对于宽 SCSI)的信息。特别需要注意的是,在此方式中,目标 方在置 REQ信号后,必须持续地把数据线DB (7/l5O,P)置成对应所要传送的二进制数位序列的值,直到它检测到 ACK为真为止。如果I/O信号为“伪”,那么信息是由发起方向目标方传输。在此情况下, 目标方通过把RECS成“真”来请求信息。发起方驱动DB (7/l5O,P)到它需要发送的二进制数位序列的值,然后把ACKS成“真”。此后,继续把 DB (7/l5O , P)信号置成这个二进制

48、数位序列的值, 直到 REQ变成“伪” 为止。目标方则是在检测到ACK变成“真”时,读 DB (7/l5O,P)的值,然后把 REQ置成“伪”。发起方在检测到 REC变成“伪”时,它可以改变或 取消放置在数据总线上的值,并把 ACK置成“伪”。|此后,目标方可以通过把 RECB成“真”,继续请求信息。2. 同步数据传输同步数据传输只在数据阶段使用,并且是在目标方和发起方之间建立同步数 据传输协定之后使用。与异步传输中的规则相同,当 I/0 信号为“真”时,数据是由目标方向 发起方传输。目标方先把数据放置到数据总线上,即置DB (7/l5O,P)对应的线路,然后把REQB成“真”。在同步数据传输

49、中,目标方在把REQS成“真” 后,需要把放置在DB (7/l5O,P)上的二进制数位序列的值保持一个指定长度 的时间,但不必维持到对ACK信号变“真”的接收。这是与异步传输不同的一个 地方。在指定长度的时间期满后,目标方就可以把REQ置成“伪”,并且可以改变或取消放置在数据总线上的值, 然后准备发送下一个数据。发起方在检测 到REQ变“真”之后一个指定长度的时间内读 DB (7/l5O,P)上的值,然后把 ACK成“真”作为对目标方的响应。与异步传输一样,在同步数据传输中,发起方也在接收到一个REQ并读取了数据总线上的值之后就发送一个 ACK信号。但与异步传输不同的是,目标方在接 收到对一个

50、数据的ACK之前可以发送多个REQ信号。SCSI为同步数据传输的 REQ/ACK1手过程定义了一个称作 REQ/AC饱和值的参数,它表示在接收到 ACK 信号前可以发送的最大REQ言号数。如果发送的RE瞰日多于接收到的ACK数目, 并达到了定义的REQ/AC饱和值,那么目标方暂停发送REQ言号和数据,直到接 收到下一个ACK为止。这在原理上与传统网络中的流控制类似。当I/O信号为“伪”时,数据是由发起方向目标方传输。发起方每次接收 到一个REQ言号就发送一次数据。目标方先把 REQ8成“真”。发起方检测到REQ变“真”后把要发送的数据放置到数据总线上,即置DB (7/150 , P)对应的线路

51、,然后把ACK置成“真”。接着发送方需要在一个指定长度的时间内保持 在总线上放置的数据不变,并继续把ACK置成“真”。在指定的时间期满后,发起方可以把ACKS成“伪”,并且可以改变或取消放置在数据总线上的值。目 标方在检测到ACK信号变“真”后,在指定的ACK保持为“真”的时间内读取数 据总线上的数据,并把REQB成“伪”。此后,目标方可以通过把 REQ再置成“真”继续请求信息。3.8 SCSI 命令描述块在互连层完成 SCSI设备对总线的连接,以及发送方和目标方的选择的基础 上,传输层协议执行实际的数据传输。 传输层提供了两类服务,一是命令的执行 和确认;二是数据的传送。命令的执行是在总线进

52、入命令阶段后,发起方通过命 令描述块(commanddescription block,CDB向目标方发送具体的命令。命令的 确认是在总线进入通信(Message)阶段后,发起方接收由目标方发送的命令执行 确认信息。数据的传送则是在数据阶段(数据出或数据入)进行的。传输协议的运行过程包括发送命令、传输数据和对命令执行的确认。SCSI基础命令规范 SPC (SCSI Primary Comma nd sSCSI 基础命令)定义了 CDB 的标 准。除了基本命令外,SPC还定义了所有类型的SCSI目标方设各都可以使用的管理参数,如诊断参数和日志参数等。发起方对存储设备的实际操作是通过向目标方发送一

53、个命令描述块来完成 的。在一些情况下,在一个命令描述块之后可能还有一些参数要传给目标方,按照具体的协定,这些更多的参数是在命令描述块后的“数据出”阶段发送的。 命 令描述块有定长和不定长两种格式,而定长格式的命令描述块又有6、10、12或16字节不同的长度规定。命令描述块由编号从05的6个字节组成。下面介绍其中各个段的内容。1.操作码操作码是所有命令描述块都有的,它总是被放在命令描述块的开头一个字 节。正如其名字所言,操作码定义CDB的具体操作。8比特在理论上共有256 个可能的操作码。实际上其中有一些是保留码,日前尚未定义。操作码的 8个 二进制位又分为两部分:5-7位是组代码,指示该命令具

54、体属于哪个命令组,它 决定 CDB的长度,如“ 000”为组“ 0”,表示6个字节的CDB命令组,0-4 位则是具体的命令代码。2. 混杂CDB言息该参数表示与具体的CDB相关的信息,其中一个例子是表示逻辑设备号,寻 址在SCSI目标设备中的一个逻辑单元。对应一个 SCSI ID 的设备可以有多 个逻辑单元,所以逻辑单元扩展了SCSI总线可访问的设备数目,使得目标方设各上可以有多个可被访问的设备而只占用一个有效的SCSI ID。对一个逻辑单元的实际访问是通过该逻辑单元的一个特定的编号,即逻辑单元号实现的。3. 逻辑块地址该地址是逻辑单元 (比如磁盘)中的起始操作块的位置。在6字节的CDB中,有

55、21位的逻辑块地址。SCSI把逻辑单元、卷或分区抽象成块的数组, 每一块都有一个逻辑地址,编号从 0开始。对SCSI存储设备的每一次读/ 写操作都是针对一组连续的逻辑块进行的,因而需要指出起始块的逻辑地址。4. 传送长度该长度表示命令所请求的传送量,通常是块数。在有些类别的CDB中也可能是字节数。0表示不需要传送数据。5. 参数表长度有些命令还需要更多的参数,这些参数由客户提供,定义在“数据出”缓冲 区中。参数表长度就表示需要传送到存储设备的这类参数的长度,0表示不需要传递参数。6. 分配长度分配长度表示应用客户为“数据入”缓冲区分配的最大长度,根据具体的CDB 类别,可能是字节数,也可能是块数。应用客户通常使用该“数据入”缓冲区接 收特殊

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论