SCSI总线

SCSI总线阶段

在SCSI总线上进行任何处理都需要8个总线阶段(phase)。每一个操作都从总线空闲阶段开始,并以总线空闲阶段结束。在总线空闲阶段,没有设备占用SCSI总线。

有三个阶段与总线协议相关。总线处于仲裁阶段表明有设备竞争总线控制权(或说成使用权)。这时,ID号最大的设备将获得对总线的控制权。如果启动器获得了总线控制权,将使总线进入选择阶段,以选择进行通信的目标。重新选择阶段由目标器选择与它中断联系的启动器,与它重新建立连接,继续由启动器已经启动但还没有完成的操作。

有四个阶段是为数据交换而设置的。命令阶段用来发送命令;数据阶段用于数据传输;消息阶段由目标器发送或接收与协议有关的消息;在执行SCSI命令结束之际目标器会使用状态阶段通知启动器,命令是否被成功执行。

在任何时候,SCSI总线只能处于一个确定的总线阶段。阶段的迁移有严格的规定,即不能任意从一个阶段迁移到另一个阶段。图10.7所示是SCSI的阶段迁移图,箭头表示阶段允许迁移的方向。例如,命令和数据阶段只能在消息阶段之后产生。

图10.7实际是给出了SCSI总线在发生阶段迁移时所必须遵循的规则。这里看一个具体例子,见表10.8。这是通过SCSI总线分析仪获取的“TEST UNIT READY”命令执行过程中的阶段迁移。该命令从空闲阶段开始,接下来是仲裁阶段、选择阶段、消息阶段(确认)和6个字节的命令阶段。由于该命令没有数据交换,所以最后是状态阶段和消息阶段,完成该命令的执行后释放总线,使总线重新回到总线空闲阶段。

1.总线空闲(BUS FREE phase)

当SCSI总线上没有任何设备在使用时,总线就保持在总线空闲状态上。具体说,当总线忙信号BSY和选择信号SEL处于无效状态的连续时间超过400 ns时,表示所有SCSI设备已释放总线,总线此时进入空闲状态。每当刚刚接通电源或发生复位操作时,总线也进入该状态。在正常情况下能进入总线空闲阶段的有两种情况。第一种情况是,当一个命令执行完毕,“COMMAND COMPLETE”消息已经发送出去;第二种是当目标器释放总线并发送了“DICONNECT”消息之后。除此之外,目标器在接收到启动器发来的诸如ABORT、CLEAR  QUEUE等消息之后,也会释放总线控制权,使总线进入空闲状态。

2.仲裁阶段(ARBITRATION phase)

仲裁阶段用来决定空闲阶段之后哪一个SCSI设备获得总线的使用权(要想获取总线使用权的SCSI设备首先要等待总线空闲阶段出现)。如果一个设备希望获得总线控制权,必须置BSY信号有效,同时把代表设备SCSI.ID的相应位放到数据线上。例如,这时数据总线上的数据是COH(见表10.8阶段序号l中的数据),表示有SCSI-ID分别为7和6的两个设备竞争总线。进入仲裁阶段仲裁后,SCSI-ID为7的设备获得总线使用权。当一个设备获得总线使用权后(800 ns),其他参加竞争的设备必须撤消BSY信号,同时也要从数据线上撤消自己的ID位。接下来获得总线使用权的设备进入选择或重新选择阶段。

3.选择阶段(SELECTION phase)

当一个启动器经过仲裁获得总线使用权之后,就可以进入选择阶段。如果目标器获得总线控制权,则进入重新选择阶段。选择与重新选择阶段的差别之一是I/0信号的状态,重新选择阶段I/O信号被目标器激活,而选择阶段该信号无效。

选择阶段被启动器用来与指定的目标器建立勾通。BSY、SEL和启动器的ID自仲裁以来一直保持有效状态,此时启动器将希望勾通的目标器ID送到数据总线上,同时置ATN信号有效,表示接下来是消息输出阶段,通知系统中的目标器接收数据总线上的数据。表10.8中,在选择阶段数据总线上的信号保持为8lH,表示ID编号为7的启动器希望与ID编号为0的目标建立连接。在延时一定时间后启动器释放BSY,然后等待目标器的响应。

此时,所有的设备都会检测总线上的数据。如果一个设备发现自已的ID和数据总线上请求连接的ID相符,并且SEL有效,而BSY和I/O无效,则可断定自己就是启动器要选择的目标器,于是用BSY为真来响应选择。启动器检测到目标器发出的BSY后,使SEL无效。这样目标设备和启动设备就建立起联系。从这时起目标器就取得了总线的控制权,即由目标器决定是否接收启动器发来的消息、命令字节或数据,以及何时发送状态到启动器,目标器还决定是否取消联系以及什么时候重新建立联系。显然,启动器给目标器发送命令,而目标器则负责总线协议的执行。

当SEL信号无效,标志选择阶段结束,接下来是消息输出阶段。在规定的时间内,如果目标器没有作出响应,启动器可以有两种方法返回到总线空闲阶段:第一种是使用RST信号,第二种方法是先释放数据总线,然后释放SEL和ATN信号线。图10.8所示是仲裁阶段和选择阶段的时序图。

4.重新选

择阶段(RESELECTION phase)

这是目标器重新与启动器连接的过程,目的是继续执行由启动器已经启动但被目标器暂停的操作。重新选择过程如下:

①当目标器要获取总线的使用权时使SEL和I/0变成真。

②把本身的ID和原启动器ID放到数据总线上。

③使BSY无效,等待启动器响应。

④启动器检测到SEL和I/0为高电平而BSY无效时,把本身的ID与总线上的ID相比较,若相等,断定自己被目标器选中。

⑤启动器以BSY信号为真来响应目标器的选择。

⑥目标器检测到启动器的响应后,也把自己的BSY变成真,然后释放SEL。

5.消息阶段(MESSAGE phase)

在选择阶段成功完成之后通常会进入一个消息输出阶段。在消息阶段中,目标器可以发送或接收消息字节。消息输入和输出是相对于启动器而言。消息分为单字节、双字节和多字节三种。

消息输入阶段的时序如图10.9所示。消息输入阶段可以在每种消息传输完毕以及重新选择阶段之后出现。目标器激活MSG、I/O及C/D信号(BSY自选择阶段后一直保持有效),接下来进入消息阶段。此时目标器将消息传送到数据总线上,然后设置REQ信号。启动器读取该消息并设置ACK信号作为响应。这时,目标器可以把消息字节从总线上清除,同时释放REQ信号,启动器则清除ACK信号作为响应。如果是多字节消息,目标器再次启动REQ信号传送下一个字节。当所有的消息字节传送完毕,目标器撤消MSG信号,结束消息阶段。

这是典型的请求/应答异步传送方式。下面要介绍的命令、数据和状态阶段也使用这种方式。

在消息输出阶段,目标器从启动器获取消息的过程与上面大致相同,也采用请求/应答异步传送方式。但要增加一步,即启动器通过激活ATN信号告知目标器它要发送信息。ATN信号可以在除了总线空闲和仲裁阶段以外的其他阶段被激活,这意味着消息输出阶段可以出现在除了总线空闲和仲裁阶段以外的任意阶段之后。目标器接收到ATN信号后,激活REQ信号,提出传输请求。作为响应,启动器将消息发送到数据总线上并激活ACK。目标器在读取消息后清除REQ信号。目标器通过检查消息的第一个字节可判断是否还有消息字节要发送过来,如果还有,则再次激活REQ。当所有的消息字节都发送完之后,启动器释放ATN信号。然后,目标器可以通过释放MSG信号来结束消息阶段。

在消息输出阶段之后,可以进入命令阶段。图10.10所示是消息输出阶段和命令阶段的时序。

6.命令阶段(COMMAND phase)

这个阶段由启动器向目标器发送真正的SCSI命令。注意,自从选择阶段结束之后,目标器已经取得了总线的控制权。首先,目标器会结束消息阶段,这个阶段是由启动器使用ATN信号而产生的。接下来将立即进入命令阶段。

在命令阶段,目标器为了接收来自启动器的命令,置c/D线为有效状态,置MSG和I/O线为无效状态,然后激活REQ信号,等待接收命令。一条命令由多个字节组成,每一对REQ/ACK信号传送一个字节。目标器通过接收到的第一个字节,判断命令的字节数。当全部的命令接收完以后,目标器释放C/D信号,结束命令阶段。

7.数据阶段(DATA phase)

几乎所有的命令时序中都包含一个数据阶段。正是通过该阶段实现目标器与启动器之间控制信息和用户数据的交换。目标设备通过取消C/D和MSG信号来开始数据阶段。I/0线用来决定数据是从目标器向启动器传送还是反过来传送。如果一个目标器要发送数据到启动器,首先置I/O信号有效,标志当前是数据输入阶段;相反,如果目标器要从启动器接收数据,就要置I/O无效,标志当前是数据输出阶段。数据传送有同步和异步两种方式,采用何种传送方式取决于设备之间的约定。图10.1l所示是异步传送方式数据输入和数据输出阶段的时序图。在异步方式下,每传送一个字节,需要一对REQ/AcK信号,传送的字节长度由命令所带的参数决定。

当目标器使用同步方式传送数据时,首先向REQ线发送一定数量的脉冲信号,这些REQ信号不需要应答。脉冲的周期是固定的,与后面传输数据时所用的同步脉冲信号的周期相同,所以称为同步传输周期。而这些不需应答的脉冲的个数称为REQ/ACK偏移。当启动器接收到REQ/ACK偏移的最后一个REQ脉冲之后,数据传送过程便可以开始。

图10.12所示是同步数据输入和同步数据输出的时序,图中REQ/ACK偏移的脉冲数是5。在数据输出阶段,目标器先以固定的频率发送5个REQ脉冲到启动器,当启动器接收到5个REQ脉冲后,以相同的频率发送ACK信号和数据。同步数据输入与此类似。不过,目标器在第一个REQ脉冲之前应将第一个数据放置到数据总线上,一直保持到第一个应答信号A

CK有效,接下来同步传送其余的字节。在同步传送方式中,数据交换不采用REQ/ACK应答方式,所以数据传输速率较高。数据传输速率主要取决于电缆的长度,而数据的宽度取决于所用总线的宽度。

8.状态阶段(STATUS phase)

目标器用这个阶段向启动器发送状态信号。状态阶段可以出现在命令字节的传送过程中或命令执行以后。在这个阶段目标器置C/D和I/0有效,置MSG无效。状态的传送也由REQ/ACK控制。状态信息反映目标器执行命令的情况,长度是一个字节。如果命令执行成功,则返回的状态值为00H(状态名为GOOD);其他情况返回非00H值,常见的是08H(状态名为B15SY,表示目标器正忙,不能接受任何命令)和02H(状态名为CHECK CONDITION,表示命令不成功结束,目标器已检测到错误,启动器可以使用REQUEST-SENSE命令获取检测数据)。

SCSI总线阶段

在SCSI总线上进行任何处理都需要8个总线阶段(phase)。每一个操作都从总线空闲阶段开始,并以总线空闲阶段结束。在总线空闲阶段,没有设备占用SCSI总线。

有三个阶段与总线协议相关。总线处于仲裁阶段表明有设备竞争总线控制权(或说成使用权)。这时,ID号最大的设备将获得对总线的控制权。如果启动器获得了总线控制权,将使总线进入选择阶段,以选择进行通信的目标。重新选择阶段由目标器选择与它中断联系的启动器,与它重新建立连接,继续由启动器已经启动但还没有完成的操作。

有四个阶段是为数据交换而设置的。命令阶段用来发送命令;数据阶段用于数据传输;消息阶段由目标器发送或接收与协议有关的消息;在执行SCSI命令结束之际目标器会使用状态阶段通知启动器,命令是否被成功执行。

在任何时候,SCSI总线只能处于一个确定的总线阶段。阶段的迁移有严格的规定,即不能任意从一个阶段迁移到另一个阶段。图10.7所示是SCSI的阶段迁移图,箭头表示阶段允许迁移的方向。例如,命令和数据阶段只能在消息阶段之后产生。

图10.7实际是给出了SCSI总线在发生阶段迁移时所必须遵循的规则。这里看一个具体例子,见表10.8。这是通过SCSI总线分析仪获取的“TEST UNIT READY”命令执行过程中的阶段迁移。该命令从空闲阶段开始,接下来是仲裁阶段、选择阶段、消息阶段(确认)和6个字节的命令阶段。由于该命令没有数据交换,所以最后是状态阶段和消息阶段,完成该命令的执行后释放总线,使总线重新回到总线空闲阶段。

1.总线空闲(BUS FREE phase)

当SCSI总线上没有任何设备在使用时,总线就保持在总线空闲状态上。具体说,当总线忙信号BSY和选择信号SEL处于无效状态的连续时间超过400 ns时,表示所有SCSI设备已释放总线,总线此时进入空闲状态。每当刚刚接通电源或发生复位操作时,总线也进入该状态。在正常情况下能进入总线空闲阶段的有两种情况。第一种情况是,当一个命令执行完毕,“COMMAND COMPLETE”消息已经发送出去;第二种是当目标器释放总线并发送了“DICONNECT”消息之后。除此之外,目标器在接收到启动器发来的诸如ABORT、CLEAR  QUEUE等消息之后,也会释放总线控制权,使总线进入空闲状态。

2.仲裁阶段(ARBITRATION phase)

仲裁阶段用来决定空闲阶段之后哪一个SCSI设备获得总线的使用权(要想获取总线使用权的SCSI设备首先要等待总线空闲阶段出现)。如果一个设备希望获得总线控制权,必须置BSY信号有效,同时把代表设备SCSI.ID的相应位放到数据线上。例如,这时数据总线上的数据是COH(见表10.8阶段序号l中的数据),表示有SCSI-ID分别为7和6的两个设备竞争总线。进入仲裁阶段仲裁后,SCSI-ID为7的设备获得总线使用权。当一个设备获得总线使用权后(800 ns),其他参加竞争的设备必须撤消BSY信号,同时也要从数据线上撤消自己的ID位。接下来获得总线使用权的设备进入选择或重新选择阶段。

3.选择阶段(SELECTION phase)

当一个启动器经过仲裁获得总线使用权之后,就可以进入选择阶段。如果目标器获得总线控制权,则进入重新选择阶段。选择与重新选择阶段的差别之一是I/0信号的状态,重新选择阶段I/O信号被目标器激活,而选择阶段该信号无效。

选择阶段被启动器用来与指定的目标器建立勾通。BSY、SEL和启动器的ID自仲裁以来一直保持有效状态,此时启动器将希望勾通的目标器ID送到数据总线上,同时置ATN信号有效,表示接下来是消息输出阶段,通知系统中的目标器接收数据总线上的数据。表10.8中,在选择阶段数据总线上的信号保持为8lH,表示ID编号为7的启动器希望与ID编号为0的目标建立连接。在延时一定时间后启动器释放BSY,然后等待目标器的响应。

此时,所有的设备都会检测总线上的数据。如果一个设备发现自已的ID和数据总线上请求连接的ID相符,并且SEL有效,而BSY和I/O无效,则可断定自己就是启动器要选择的目标器,于是用BSY为真来响应选择。启动器检测到目标器发出的BSY后,使SEL无效。这样目标设备和启动设备就建立起联系。从这时起目标器就取得了总线的控制权,即由目标器决定是否接收启动器发来的消息、命令字节或数据,以及何时发送状态到启动器,目标器还决定是否取消联系以及什么时候重新建立联系。显然,启动器给目标器发送命令,而目标器则负责总线协议的执行。

当SEL信号无效,标志选择阶段结束,接下来是消息输出阶段。在规定的时间内,如果目标器没有作出响应,启动器可以有两种方法返回到总线空闲阶段:第一种是使用RST信号,第二种方法是先释放数据总线,然后释放SEL和ATN信号线。图10.8所示是仲裁阶段和选择阶段的时序图。

4.重新选

择阶段(RESELECTION phase)

这是目标器重新与启动器连接的过程,目的是继续执行由启动器已经启动但被目标器暂停的操作。重新选择过程如下:

①当目标器要获取总线的使用权时使SEL和I/0变成真。

②把本身的ID和原启动器ID放到数据总线上。

③使BSY无效,等待启动器响应。

④启动器检测到SEL和I/0为高电平而BSY无效时,把本身的ID与总线上的ID相比较,若相等,断定自己被目标器选中。

⑤启动器以BSY信号为真来响应目标器的选择。

⑥目标器检测到启动器的响应后,也把自己的BSY变成真,然后释放SEL。

5.消息阶段(MESSAGE phase)

在选择阶段成功完成之后通常会进入一个消息输出阶段。在消息阶段中,目标器可以发送或接收消息字节。消息输入和输出是相对于启动器而言。消息分为单字节、双字节和多字节三种。

消息输入阶段的时序如图10.9所示。消息输入阶段可以在每种消息传输完毕以及重新选择阶段之后出现。目标器激活MSG、I/O及C/D信号(BSY自选择阶段后一直保持有效),接下来进入消息阶段。此时目标器将消息传送到数据总线上,然后设置REQ信号。启动器读取该消息并设置ACK信号作为响应。这时,目标器可以把消息字节从总线上清除,同时释放REQ信号,启动器则清除ACK信号作为响应。如果是多字节消息,目标器再次启动REQ信号传送下一个字节。当所有的消息字节传送完毕,目标器撤消MSG信号,结束消息阶段。

这是典型的请求/应答异步传送方式。下面要介绍的命令、数据和状态阶段也使用这种方式。

在消息输出阶段,目标器从启动器获取消息的过程与上面大致相同,也采用请求/应答异步传送方式。但要增加一步,即启动器通过激活ATN信号告知目标器它要发送信息。ATN信号可以在除了总线空闲和仲裁阶段以外的其他阶段被激活,这意味着消息输出阶段可以出现在除了总线空闲和仲裁阶段以外的任意阶段之后。目标器接收到ATN信号后,激活REQ信号,提出传输请求。作为响应,启动器将消息发送到数据总线上并激活ACK。目标器在读取消息后清除REQ信号。目标器通过检查消息的第一个字节可判断是否还有消息字节要发送过来,如果还有,则再次激活REQ。当所有的消息字节都发送完之后,启动器释放ATN信号。然后,目标器可以通过释放MSG信号来结束消息阶段。

在消息输出阶段之后,可以进入命令阶段。图10.10所示是消息输出阶段和命令阶段的时序。

6.命令阶段(COMMAND phase)

这个阶段由启动器向目标器发送真正的SCSI命令。注意,自从选择阶段结束之后,目标器已经取得了总线的控制权。首先,目标器会结束消息阶段,这个阶段是由启动器使用ATN信号而产生的。接下来将立即进入命令阶段。

在命令阶段,目标器为了接收来自启动器的命令,置c/D线为有效状态,置MSG和I/O线为无效状态,然后激活REQ信号,等待接收命令。一条命令由多个字节组成,每一对REQ/ACK信号传送一个字节。目标器通过接收到的第一个字节,判断命令的字节数。当全部的命令接收完以后,目标器释放C/D信号,结束命令阶段。

7.数据阶段(DATA phase)

几乎所有的命令时序中都包含一个数据阶段。正是通过该阶段实现目标器与启动器之间控制信息和用户数据的交换。目标设备通过取消C/D和MSG信号来开始数据阶段。I/0线用来决定数据是从目标器向启动器传送还是反过来传送。如果一个目标器要发送数据到启动器,首先置I/O信号有效,标志当前是数据输入阶段;相反,如果目标器要从启动器接收数据,就要置I/O无效,标志当前是数据输出阶段。数据传送有同步和异步两种方式,采用何种传送方式取决于设备之间的约定。图10.1l所示是异步传送方式数据输入和数据输出阶段的时序图。在异步方式下,每传送一个字节,需要一对REQ/AcK信号,传送的字节长度由命令所带的参数决定。

当目标器使用同步方式传送数据时,首先向REQ线发送一定数量的脉冲信号,这些REQ信号不需要应答。脉冲的周期是固定的,与后面传输数据时所用的同步脉冲信号的周期相同,所以称为同步传输周期。而这些不需应答的脉冲的个数称为REQ/ACK偏移。当启动器接收到REQ/ACK偏移的最后一个REQ脉冲之后,数据传送过程便可以开始。

图10.12所示是同步数据输入和同步数据输出的时序,图中REQ/ACK偏移的脉冲数是5。在数据输出阶段,目标器先以固定的频率发送5个REQ脉冲到启动器,当启动器接收到5个REQ脉冲后,以相同的频率发送ACK信号和数据。同步数据输入与此类似。不过,目标器在第一个REQ脉冲之前应将第一个数据放置到数据总线上,一直保持到第一个应答信号A

CK有效,接下来同步传送其余的字节。在同步传送方式中,数据交换不采用REQ/ACK应答方式,所以数据传输速率较高。数据传输速率主要取决于电缆的长度,而数据的宽度取决于所用总线的宽度。

8.状态阶段(STATUS phase)

目标器用这个阶段向启动器发送状态信号。状态阶段可以出现在命令字节的传送过程中或命令执行以后。在这个阶段目标器置C/D和I/0有效,置MSG无效。状态的传送也由REQ/ACK控制。状态信息反映目标器执行命令的情况,长度是一个字节。如果命令执行成功,则返回的状态值为00H(状态名为GOOD);其他情况返回非00H值,常见的是08H(状态名为B15SY,表示目标器正忙,不能接受任何命令)和02H(状态名为CHECK CONDITION,表示命令不成功结束,目标器已检测到错误,启动器可以使用REQUEST-SENSE命令获取检测数据)。


相关文章

  • 硬盘接口定义
  • 图解ide硬盘接口图 sata硬盘接口图 SCSI硬盘接口 2010-01-08 16:14 硬盘接口 目前硬盘接口类型不算多,主要有IDE.SCSI.SATA三种.IDE许多时候以Ultra ATA代替,很多人习惯将Ultra ATA硬盘 ...查看


  • 电脑硬件中英文名称
  • •PC:个人计算机Personal Computer •CPU:中央处理器Central Processing Unit •CPU Fan:中央处理器的"散热器"(Fan) •MB:主机板MotherBoard •RAM ...查看


  • 当前主板主要性能参数及主流主板介绍
  • 当前主板主要性能参数及主流主板介绍 主板性能参数 主板的种类非常多,有近百种,但主板的组成基本相同.主板上包含有CPU ,内存,芯片组,BIOS ,缓存等部件,它们快定了主板的性能和类型,也决定了电脑的性能. 字段 值 主板 主板 ID 0 ...查看


  • 一些常用电脑术语
  • 1.PC:个人计算机Personal Computer 2.CPU:中央处理器Central Processing Unit 3.CPU Fan:中央处理器的"散热器"(Fan) 4.MB:主机板MotherBoard ...查看


  • 53个英文缩写
  • 53个英文缩写 PC :个人计算机Personal Computer ·CPU :中央处理器Central Processing Unit ·CPU Fan:中央处理器的"散热器"(Fan) ·MB :主机板Mother ...查看


  • 最新分享 使用计算机必懂的53个英文单词和缩写
  • 使用计算机必懂的53个英文单词和缩写 使用计算机必懂的53个英文单词和缩写 ·PC:个人计算机Personal Computer·CPU:中央处理器Central Processing Unit·CPU Fan:中央处理器的"散热 ...查看


  • 电脑主板术语
  • 电脑主板就可以称为电脑的神经系统.主板是一种高科技.高工艺融为一体的集成产品,大家在攒机的时候难免有认知上的迷惑.所以先了解一些主板的基本知识对大家攒机是大有裨益的. 下面, 我就把主板常用的一些术语简单的给大家解释一下. 大家喜欢将CPU ...查看


  • 电脑常用英语
  • 电脑常见英文单词缩写含义解析 在使用电脑过程中难免会遇到各种各种的英文缩写名词,比如电脑常用PC来表示,一个硬盘容量大小用G表示,另外还有如处理器(CPU表示)等等,这些作为电脑爱好者初学的朋友都是必须了解与掌握的,以下小编为大家整理汇总了 ...查看


  • 电脑硬件入门知识全解[二]主板篇
  • 一:电源回路 三:硬盘接口 硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏.从整体的角度上,硬盘 ...查看


热门内容