指定用于SAS宽端口连接的线路转让专利

申请号 : CN200910157966.5

文献号 : CN101853141B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 史蒂芬·B·约翰逊克里斯托弗·麦卡迪

申请人 : LSI公司

摘要 :

指定用于SAS宽端口连接的线路。本发明公开了用于数据连接的至少一个SAS宽端口的最优线路。指定在SAS域的每个等级的SAS宽端口中用于数据连接的允许线路。检测所述指定的用于数据连接的允许线路。在所述指定的允许线路上创建数据连接。

权利要求 :

1.一种用于在串行连接小型计算机系统接口SAS域中指定SAS宽端口的允许线路的方法,所述SAS宽端口为SAS域中一SAS发起者和一SAS目标之间提供数据连接,该方法包括:发现用于所述数据连接的至少一个SAS宽端口的最优线路;指定在所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的允许线路;

检测用于所述数据连接的所述指定的允许线路;以及

在所述指定的允许线路上创建所述数据连接。

2.根据权利要求1所述的方法,其中,所述发现用于所述数据连接的至少一个SAS宽端口的所述最优线路通过所述SAS发起者在一标准SAS发现处理过程中执行。

3.根据权利要求1所述的方法,其中,所述发现用于所述数据连接的至少一个SAS宽端口的所述最优线路进一步包括:通过一SAS管理协议(SMP)发现响应指示所述最优线路。

4.根据权利要求1所述的方法,其中,所述指定在所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路进一步包括:通过一SAS发起者连接请求指定所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路。

5.根据权利要求4所述的方法,其中,所述通过一SAS发起者连接请求指定所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路进一步包括:通过一SAS发起者连接请求的一OPEN帧指定所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路。

6.根据权利要求1所述的方法,其中,所述检测用于所述数据连接的所述指定的允许线路进一步包括:检测用于所述数据连接的所述指定的允许线路的一SAS发起者连接请求的一OPEN帧。

7.根据权利要求1 所述的方法,其中,所述检测用于所述数据连接的所述指定的允许线路进一步包括:一旦接收到一SAS发起者连接请求的一OPEN帧就通过一SAS扩展器检测用于所述数据连接的所述指定的允许线路。

8.根据权利要求1所述的方法,其中,在所述指定的允许线路上创建所述数据连接进一步包括:在检测对所述指定的允许线路的一SAS发起者连接请求的一OPEN帧之后,通过一SAS扩展器在用于所述数据连接的所述指定的允许线路上创建所述数据连接。

9.一种用于在串行连接小型计算机系统接口SAS域中指定SAS宽端口的允许线路的系统,包括:用于发现用于数据连接的至少一个SAS宽端口的最优线路的装置;

用于指定在SAS域的每个等级的SAS宽端口中用于所述数据连接的允许线路的装置;

用于检测用于所述数据连接的所述指定的允许线路的装置;以及用于在所述指定的允许线路上创建所述数据连接的装置。

10.根据权利要求9所述的系统,其中,用于发现用于所述数据连接的至少一个SAS宽端口的所述最优线路的所述装置包括所述SAS发起者在一标准SAS发现处理过程中发现所述最优线路。

11.根据权利要求9所述的系统,其中,用于发现用于所述数据连接的至少一个SAS宽端口的所述最优线路的所述装置进一步包括:用于通过一SAS管理协议(SMP)发现响应指示所述最优线路的装置。

12.根据权利要求9所述的系统,其中,用于指定在所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路的所述装置进一步包括:用于通过一SAS发起者连接请求指定所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路的装置。

13.根据权利要求12所述的系统,其中,用于通过一SAS发起者连接请求指定所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路的所述装置进一步包括:用于通过一SAS发起者连接请求的一OPEN帧指定所述SAS域的每个等级的所述SAS宽端口中用于所述数据连接的所述允许线路的装置。

14.根据权利要求9所述的系统,其中,用于检测用于所述数据连接的所述指定的允许线路的所述装置进一步包括:用于检测对用于所述数据连接的所述指定的允许线路的一SAS发起者连接请求的一OPEN帧的装置。

15.根据权利要求9所述的系统,其中,用于检测用于所述数据连接的所述指定的允许线路的所述装置进一步包括:用于检测用于所述数据连接的所述指定的允许线路的装置,

其中一SAS扩展器一旦接收到一SAS发起者连接请求的一OPEN帧就检测用于所述数据连接的所述指定的允许线路。

16.根据权利要求9所述的系统,其中,用于在所述指定的允许线路上创建所述数据连接的所述装置进一步包括:用于在检测对所述指定的允许线路的一SAS发起者连接请求的一OPEN帧之后,通过一SAS扩展器在用于所述数据连接的所述指定的允许线路上创建所述数据连接的装置。

17.一种用于创建一SAS发起者到多个SAS目标的数据连接的电路,包括:一SAS发起者;

一第一SAS扩展器,其通过一SAS宽端口连接到所述SAS发起者;

一第二SAS扩展器,其包括至少一第一物理层phy;

一第三SAS扩展器,其包括至少一第二物理层phy;

至少一个公用SAS宽端口,其用于将至少第一编号的物理层phy和第二编号的物理层phy组合;

其中,所述第一SAS扩展器通过所述至少一个公用SAS宽端口连接到所述第二SAS扩展器和所述第三SAS扩展器;

其中,所述第二SAS扩展器通过用于扩展器间通信的所述第二SAS扩展器的phy和所述第三SAS扩展器的phy直接连接到所述第三SAS扩展器;以及多个SAS目标,其连接到所述第二SAS扩展器和所述第三SAS扩展器。

18.根据权利要求17所述的电路,其中,所述多个SAS目标的数量大于所述第二SAS扩展器的物理层phy的总数或所述第三SAS扩展器的物理层phy的总数。

19.根据权利要求18所述的电路,其中,所述SAS发起者在所述连接请求的所述OPEN帧中指定将被用于创建从所述SAS发起者到一SAS目标的数据连接的所述SAS宽端口的所述线路,以及其中一SAS扩展器使用在所述SAS发起者的所述连接请求的所述OPEN帧中指定的所述SAS宽端口的所述线路创建所述数据连接。

20.根据权利要求19所述的电路,其中,所述SAS发起者和所述多个SAS目标之间的数据连接不需要使用用于扩展器间通信的所述第二SAS扩展器的所述物理层phy和用于扩展器间通信的所述第三SAS扩展器的所述物理层phy。

说明书 :

指定用于SAS宽端口连接的线路

[0001] 交叉引用相关案子
[0002] 根据35 U.S.C.§119(e),本申请要求于2008年9月5日提交的美国临时申请序列号61/191,037的权利,其通过引用结合于此。本申请涉及共同未决的申请“组合多个SAS扩展器以提供单个SAS扩展器功能”(律师文档号08-1075,快递信件号EM 260723514 US),与本申请在同一天提交,发明人为史蒂芬·B·约翰逊(StephenB.Johnson)、蒂莫西·E·霍格兰德(Timothy E.Hoglund)及路易斯·H·欧德威德(LouisH.Odenwald,Jr.);“METHOD FOR PROVIDING PATH FAILOVER FOR MULTIPLESAS EXPANDERS OPERATING AS A SINGLE SAS EXPANDER”(律师文档号08-1459,快递信件号EM 260723491 US),与本申请在同一天提交,发明人为克里斯托弗·麦卡迪(Christopher McCarty)及史蒂芬·B·约翰逊(Stephen B.Johnson);以及“SAS PAIRED SUBTRACTIVE ROUTING”,与本申请在同一天提交,发明人为史蒂芬·B·约翰逊(Stephen B.Johnson)、威廉·佩蒂(William Petty)及欧文·帕里(Owen Parry)。所有这些申请都通过引用结合于此。

技术领域

[0003] 本发明总体涉及串行连接SCSI(SAS)领域,以及更具体地涉及用于指定SAS拓扑中SAS宽端口连接的允许线路。

背景技术

[0004] 串行连接小型计算机系统接口(SAS)是表示各种被设计为实现计算机设备之间的数据传递的技术的术语。SAS协议是至平行小计算机系统接口的串行后继站。在SAS协议中,所有SAS设备是发起设备、目标设备、或扩展设备。发起设备是开始SAS数据传递的设备,而目标设备是发起设备传递数据至其的设备。发起设备和目标设备一起被认为是终端设备。
[0005] SAS扩展器是帮助在多个发起设备和多个目标设置之间数据传递的设备。SAS协议使用点对点总线拓扑。因此,如果发起设备需要连接到多个目标设备,则在发起设备和每个独立的目标设备之间必须直接连接以有助于在发起设备和每个独立目标设备之间的每个独立数据传递。SAS扩展器管理多个发起设备和多个目标设备之间的连接和数据传递。SAS扩展器可以包括SAS设备。

发明内容

[0006] 一种用于指定用于在SAS域中的在SAS发起者和SAS目标之间的数据连接的串行连接小型计算机系统接口(SAS)宽端口的允许线路的方法,可以包括但不限于:找到用于数据连接的至少一个SAS宽端口的最优线路;指定在SAS域的每个等级的SAS宽端口中用于该数据连接的允许线路;检测指定的用于该数据连接的允许线路;以及在指定的允许线路上创建数据连接。
[0007] 一种系统,可以包括但不限于:用于找到用于数据连接的至少一个SAS宽端口的最优线路的装置;用于指定在SAS域的每个等级的SAS宽端口中用于该数据连接的允许线路的装置;用于检测指定的用于该数据连接的允许线路的装置;以及用于在指定的允许线路上创建数据连接的装置。
[0008] 一种用于创建SAS发起者到多个SAS目标的数据连接的电路,可以包括但不限于:SAS发起者;第一SAS扩展器,通过SAS宽端口连接到该SAS发起者;第二SAS扩展器,包括至少一个第一物理层(phy);第三SAS扩展器,包括至少一个第二物理层(phy);至少一个公用SAS宽端口,用于至少将所述第一编号的phy和所述第二编号的phy组合;其中第一SAS扩展器通过所述至少一个公用SAS宽端口连接到第二SAS扩展器和第三SAS扩展器;
其中第二SAS扩展器通过用于扩展器间通信的第二SAS扩展器的phy和第三SAS扩展器的phy直接连接到第三SAS扩展器;以及多个SAS目标,连接到第二SAS扩展器和第三SAS扩展器。
[0009] 应该理解,上述的一般描述和下面的具体描述都仅是示例性,且不必限制本公开。附图结合并于此并构成本说明书的一部分,示出了本公开的主题内容。具体实施方式和附图一起用于解释本公开的原理。

附图说明

[0010] 本领域的技术人员通过参考附图可以更好地理解本公开的多个优点,附图中:
[0011] 图1是示出了表示单一、结合SAS扩展器的SAS拓扑的框图;
[0012] 图2A至图2E是示出了单一、结合SAS扩展器的各种结构的框图;
[0013] 图3是示出了单一、结合SAS扩展器的刀片中心交换机结构的框图;
[0014] 图4是示出了单一、结合SAS扩展器的扩展器间链接的框图;
[0015] 图5是示出了在单一、结合SAS扩展器内的失败内部链接的框图;
[0016] 图6是示出了用于将多个SAS扩展器组合以作为单一、结合SAS扩展器运行的方法的流程图;
[0017] 图7是示出了用于在单一、结合SAS扩展器中链接失败时提供路径切换的方法的流程图;
[0018] 图8是示出了使用单一、结合SAS扩展器选择用于数据连接的SAS宽端口的线路的框图;
[0019] 图9是示出了使用单一、结合SAS扩展器指定用于数据连接的SAS宽端口的线路的方法的流程图;
[0020] 图10是示出了配置为执行成对的减法路由的级联SAS拓扑的框图;
[0021] 图11A-11D是示出了成对减法端口的经销商唯一函数、命令和描述符;以及[0022] 图12是示出了在级联SAS拓扑中执行成对减法路由的方法的流程图。具体实施方案
[0023] 下面具体参考公开的主题内容,其在附图中示出。
[0024] 示出了根据本公开的示例性实施例的特征在于单一、结合SAS扩展器的SAS拓扑。拓扑100可以包括通过窄端口115a...d连接到扩展器120的发起者110。扩展器120可以通过窄端口125a...d连接到单一、结合SAS扩展器200。单一、结合SAS扩展器200可以包括多个物理分开的SAS扩展器202a...d。SAS扩展器202a...d可以配置为共享相同的SAS地址来组合窄端口125a...d以作为单一公用宽端口150。如在SAS拓扑100中所示的,窄端口125a...d可以组合以形成×4-宽端口150。SAS扩展器202a...d可以通过窄端口
135a...d连接到扩展器130。扩展器130可以通过窄端口145a...d连接到目标140。SAS规范要求所有连接是点对点的。然而,SAS拓扑100是符合SAS规范的,因为宽端口150是真正的SAS宽端口。
[0025] 参考图2A-2E,结合SAS扩展器200可以包括多个物理分开的SAS扩展器202a...h。SAS扩展器202a...h可以通过链路255a...h-294a...h连接到输出端口
205-244。根据SAS控制器202a...h的数量、SAS扩展器202a...h的端口的数量、输出端口205-244的数量、输出端口205-244的宽度以及在链路255a...h-294a...h中所使用的SAS扩展器端口的数量,广泛变化的单一、结合SAS扩展器200的构造通过本公开被考虑。
[0026] 输出端口205-244可以是宽端口。输出端口205-244可以配置为共享相同的SAS地址。在SAS规范下,这就将输出端口205-244定义为相同扩展器的单一宽端口。每个输出端口205-244可以连接到每个SAS扩展器202a...h(未示出)。输出端口205-244的宽度可以取决于连接每个输出端口205-244的链路255a...h-294a...h中使用多少SAS扩展器端口。每个SAS扩展器202a...h可以具有多个连接到每个输出端口205-244的SAS扩展器端口。例如,如果单一、结合SAS扩展器200包括两个使用一个SAS扩展器端口通过链路255a...h-294a...h连接到每个输出端口205-244的SAS扩展器202a-h,则输出端口205-244将是×2宽端口;此外,如果单一、结合SAS扩展器200包括两个使用两个SAS扩展器端口通过链路255a...h-294a...h连接到每个输出端口205-244的SAS扩展器202a-h,则输出端口205-244将是×4宽端口。这些结构允许以全端口带宽来同时访问单一、结合SAS扩展器200的任何端口和任何其他端口。
[0027] 提供了单一、结合SAS扩展器300的刀片中心交换机结构301。参考图3,多个CPU刀片302可以连接到输入端口305-320。输入端口305-320可以是宽端口。输入端口305-320可以配置为共享相同的SAS地址。在SAS规范下,这就将输入端口305-320定义为相同扩展器的单一宽端口。每个输入端口305-320可以通过链路355a...b-375a...b(未示出)连接到每个SAS扩展器202a...b。如刀片中心交换机结构301中所示,输入端口
305-320是通过链路355a...b-375a...b使用一个SAS扩展器端口连接到两个SAS扩展器202a...b的×2宽端口,但是其他结构是完全被这些公开所考虑的。每个SAS扩展器
202a...b可以通过链路255a...b-26a...b(未示出)连接到每个输出端口205-218。如在刀片中心交换机结构301中所示,输出端口205-218是使用两个SAS扩展器端口通过链路
255a...b-268a...b连接到两个SAS扩展器202a...b的×4宽端口,但是其他结构是完全被当前公开所考虑的。输出端口205-218可以连接到多数据存储装置303。
[0028] SAS扩展器202a...h可以被配置为共享相同的SAS地址。在SAS规范下,这就将SAS扩展器202a...h定义为单一扩展器。固件可以在每个SAS扩展器202a...h上运行,因此SAS扩展器202a...h作为单一扩展器动作和响应。如图4所示,每个SAS扩展器202a...h可以通过扩展器间链路(IEL)430-435连接到202a...h中的每一个。IEL 430-435可以允许SAS扩展器202a...h通信并互相配合以作为单一扩展器动作和响应。IEL 430-435可以通过SAS管理协议(SMP)或其他通信方法,例如内部集成电路总线协议(I2C)、增强并行端口(EPP)、以太网、共享存储器等,来进行通信。IEL430-435可以允许IEL域420从主交换域410被分区。在IEL430-435中,广播可以被无效以消除任何SAS规范不适应的循环问题。可以从主交互域中完全隐藏IEL 430-435。在SAS扩展器202a...h的主交换域中所使用的物理层(phy)的编号可以被重新映射到单一、逻辑编号。IEL 430-435可以允许SAS扩展器的任何组合的失败,而保持任何操作的SAS扩展器202a...h之间的连接。此外,所有输入端口305-320和输出端口205-244可以在小于每个SAS扩展器202a...h故障的情况下,以减少的带宽维持连接。SMP目标处理可以由单一、结合SAS扩展器200的单一主SAS扩展器执行。对单一、结合SAS扩展器200连接请求可以通过IEL 430-435路由至该单一主SAS扩展器。SAS扩展器202a...h可以共享SMP目标处理。
[0029] 大体上参考图6,示出了组合多SAS扩展器的方法。例如,该方法可以实现如下所述(以及在图1,2A至2E,3和4中所示)的连接和组合SAS扩展器的技术。该方法600可以包括:将第一SAS扩展器的至少一个第一编号的phy和与第一SAS扩展器物理独立的第二SAS扩展器的至少一个第二编号的phy分组成至少一个共用SAS宽端口602的步骤。例如,分组成至少一个共用SAS宽端口(205-244)可以包括分配相同的SAS地址给至少一个共用宽端口(205-244)。
[0030] 该方法600可以进一步包括:分配相同SAS地址给第一SAS扩展器和第二SAS扩展器604的步骤。分配相同SAS地址给第一SAS扩展器和第二SAS扩展器可以允许第一SAS扩展器和第二SAS扩展器作为单一、结合SAS扩展器200来动作和响应。所述分配可以通过在第一SAS扩展器和第二SAS扩展器上执行的固件来执行。此外,第一SAS扩展器和第二SAS扩展器的phy编号可以被重新映射以显示为单一、结合SAS扩展器的单一、逻辑排列的phy编号。例如,第一SAS扩展器的第一编号的phy可以重新映射为在单一、逻辑排列的编号的第一范围内,以及第二SAS扩展器的第二编号的phy可以重新映射为在单一、逻辑排列编号的第二范围内。
[0031] 该方法600还可以包括:将第一SAS扩展器直接连接到第二SAS扩展器用于扩展器间通信606的步骤。扩展器间通信可以使用SMP通信或其他通信方法,例如,内部集成电路总线协议(I2C)、增强并行端口(EPP)、以太网、共享存储器等。在其他实施例中,用于扩展器间通信(430-435)的第一SAS扩展器和第二SAS扩展器之间的连接可以通过第一SAS扩展器的phy和第二SAS扩展器的phy来执行。此外,用于扩展器间通信的第一SAS扩展器的phy和用于扩展器间通信的第二SAS扩展器的phy可以从单一、结合SAS扩展器的主交换域(410)中被隐藏。第一SAS扩展器的至少两个物理层(phy)和第二SAS扩展器的至少两个物理层(phy)可以用于第一SAS扩展器和第二SAS扩展器之间的扩展器间通信。此外,如果单一、结合SAS扩展器中的至少一个SAS扩展器保持操作(例如:诸如在SAS扩展器故障期间),则所有共用SAS宽端口保持操作,所有共用SAS宽端口以减少的带宽操作。
[0032] 单一、结合SAS扩展器500可以配置为在单一、结合SAS扩展器内发生内部链路故障时提供路径切换。参考图5以及如上所述,输入端口502-508可以通过链路552a...d-558a...d连接到每个SAS扩展器202a...d。此外,输入端口502-508可以是SAS宽端口。输出端口510-516可以通过链路560a...d-566a...d连接到每个SAS扩展器
202a...d。此外,输出端口510-516可以是SAS宽端口。每个SAS扩展器202a...d可以通过用于扩展器间通信的SAS扩展器端口彼此连接。如在单一、结合SAS扩展器500中所示,SAS扩展器202c和输出端口516之间的链路566b可能故障。例如,物理缺陷可能导致链路
566b故障。作为另一示例,链路566b可以由于逻辑问题而故障。
[0033] 想要通过故障的链路566b发送的数据传输可以被重路由至连接到输出端口516的另一SAS扩展器。该数据传输可以通过用于在SAS扩展器之间的扩展器间的通信的物理层(phy)被重路由至另一SAS扩展器。如在单一、结合SAS扩展器500中所示的,SAS扩展器202c和输出端口516之间通过故障链路566b的数据传输可以通过扩展器间通信链路434重路由通过SAS扩展器202d。从SAS扩展器202d,数据传输可以通过链路566c被重路由到输出端口516。因此,输出端口516可以如原始期望的一样接收该数据传输,但是可能在不同的phy上接收该数据传输。此外,如果SAS扩展器202d已经具有至输出端口516的活动链路,则SAS扩展器202c可以使用处理中的仲裁(AIP)响应于该SAS发起者,如同通过SMP提供的。SAS发起者可以在接收到来自SAS扩展器202c的AIP或开启拒绝(OPENREJECT)(重试)SMP响应之后一段时间尝试数据传输。
[0034] 在本公开的另一方面,在SAS扩展器上执行固件可以重新编写SAS扩展器路由表以重路由通过扩展器间链接(430-435)而不通过故障链路的连接。此外,连接到单一、结合SAS扩展器的SAS发起者可以通过接收CHANGE图元来知道链路566b已经故障。SAS发起者任何可以执行SAS发现,例如,如同通过SMP提供的。此外,SAS发起者可以注意到与目标保持活跃连接的数量,以及可以仅启动和与目标保持活跃连接的数量相等数量的同时数据传输。
[0035] 大体上参考图7,示出了用于提供路径切换同时组合多个SAS扩展器以作为单一、结合SAS扩展器的方法。例如,该方法可以实现图5中所示的技术。在当前发明的当前实施例中,方法700包括检测第一SAS扩展器和装置702之间的故障链路的步骤。例如,检测到的故障链路可能由于物理问题而故障。检测到的故障链路可能由于逻辑问题而故障。
[0036] 方法700可以进一步包括步骤:将通过故障链路连接到装置的第一SAS扩展器的数据传输重路由至通过起作用的链路704连接到装置的第二SAS扩展器。例如,单一、结合SAS扩展器的故障链路可能由于故障链路中的物理问题而故障。在另一示例中,故障链路可能由于逻辑问题而故障。第一SAS扩展器可以通过用于扩展器间通信的第一SAS扩展器的phy和第二SAS扩展器的phy连接到第二SAS扩展器。在其他实施例中,将通过故障链路连接到装置的第一SAS扩展器的数据传输重路由至通过起作用的链路连接到装置的第二SAS扩展器可能通过用于扩展器间通信的第一扩展器的phy和用于扩展器间通信的第二SAS扩展器的phy发生。在示例性实施例中,重路由数据传输可以包括重新编写第一SAS扩展器的路由表,以将来自故障内部链路的数据传输通过用于扩展器间通信的第一SAS扩展器的phy和用于扩展器间通信的第二SAS扩展器的phy重路由至之间的链路。例如,重新编写第一SAS扩展器的路由表可以通过在第一SAS扩展器上执行的固件来执行。
[0037] 将来自单一、结合SAS扩展器中的故障链路的数据传输通过扩展器间通信的链路重路由至第二SAS扩展器的步骤可以不通知连接到该单一、结合SAS扩展器的SAS发起者和SAS目标发生这样的重路由。然而,如果第二SAS扩展器当前具有至装置的活跃链路并且数据从故障链路重路由至第二SAS扩展器,则通过故障链路连接到装置的第一SAS扩展器可以用AIP响应来响应。在这样的情况下,接收到该AIP响应的SAS发起者可以稍后重发数据传输。连接到单一、结合SAS扩展器的SAS发起者可以通过接收到CHANGE图元而被告知故障。一旦接收到CHANGE图元,SAS发起者可以执行SAS发现。例如,SMP提供SAS发现,其包括SAS发现和SAS发现响应。
[0038] 提供了SAS发起者指定数据连接结构800。参考图8,SAS发起者810可以通过SAS宽端口880连接到SAS扩展器820。SAS扩展器830的至少一个phy和SAS扩展器840的至少一个phy可以组合在共用SAS宽端口890中,为了使SAS扩展器830和SAS扩展器840作为单一、结合SAS扩展器操作,SAS扩展器830可以与SAS扩展器840共享相同的SAS地址。SAS扩展器820可以通过共用SAS宽端口890连接到SAS扩展器830和SAS扩展器
840。扩展器830也可以由通过SAS扩展器830的物理层(phy)和SAS扩展器840的物理层(phy)的扩展器间通信直接连接到SAS扩展器840。SAS扩展器830和SAS扩展器840可以不作为单一、结合SAS扩展器操作,但是可以为级联结构。多个SAS目标850-875可以通过SAS窄端口连接到SAS扩展器830和SAS扩展器840。SAS目标850-875的数量可以大于SAS扩展器830或SAS扩展器840上的物理层(phy)的数量。例如,SAS目标850-875可以是硬盘阵列,例如简单磁盘捆绑(JBOD)SAS阵列。
[0039] SAS发起者810可以指定将被用来创建从SAS发起者810至SAS目标850-875之一的数据连接的宽端口880、890的线路。指定宽端口880、890的线路可以用来公平控制,其中宽端口880、890的一些线路可以用来访问SAS目标850-875,以及宽端口880、890的其他线路可以用来经过至SAS结构的其他部分。SAS发起者810可以进一步指定连接请求的OPEN帧内的线路。这样的OPEN帧可以通过SMP连接请求来提供。SAS发起者810可以通过执行标准SAS发现处理而知道用于从SAS发起者810至SAS目标850-875之一的数据连接的最优化线路。SAS扩展器830和SAS扩展器840,连同SAS目标850-875可以配置为使用用于从SAS发起者810至SAS目标850-875之一的数据连接的最优化线路,通过SMP发现响应来进行响应。在发起者810和SAS目标850-875之一之间的数据连接中的每个SAS扩展器可以检测来自SAS发起者810的对允许的用于数据连接的线路的连接请求的OPEN帧,并仅在这些指定的线路上进行数据连接。
[0040] 大体上参考图9,示出了根据本公开的示例性实施例的用于指定用于在SAS域中的在SAS发起者和SAS目标之间的数据连接的SAS宽端口的允许线路的方法。在本公开的当前实施例中,方法900包括发现用于数据连接902的至少一个SAS宽端口的最优线路的步骤。例如,SAS发起者810可以通过执行标准SAS发现处理来发现用于数据连接的最优线路。此外,SMP发现响应可以被用来将用于数据连接的最优线路传递给SAS发起者810。
[0041] 方法900还可以包括指定在SAS域904的每个级别的SAS宽端口内的用于数据连接的允许的线路的步骤。例如,用于数据连接的允许线路可以通过SAS发起者连接请求来被指定。用于数据连接的允许线路可以在SAS发起者连接请求的OPEN帧中被进一步指定。
[0042] 方法900还可以包括检测为数据连接906指定的允许线路的步骤。例如,当SAS扩展器(820-840)接收到SAS发起者连接请求的OPEN帧时,SAS扩展器可以检测用于指定的用于数据连接的允许线路的OPEN帧。
[0043] 方法900还包括创建指定的允许线路908的数据连接的步骤。例如,SAS扩展器可以在指定的允许线路上创建数据连接。此外,SAS扩展器可以在检测对指定的允许线路的SAS发起者连接请求的OPEN帧之后,创建数据连接。
[0044] 提供了使用成对减法路由的SAS级联拓扑。为了使用成对减法路由,SAS拓扑1000中的SAS装置可以检测通过如SMP提供的SMP报告制造商信息响应,以指定是否支持经销商唯一SMP函数。如果支持,则SAS发起者1002-1004可以使用经销商唯一SMP函数来请求SAS扩展器1010-1024的phy的列表,其具有用于使用成对减法路由的修改的路由属性。例如,SAS发起者1002-1004可以发布SMP报告修改phy路由属性列表请求1100至SAS拓扑1000的每个SAS扩展器1010-1024。一旦接收到SMP报告修改phy路由属性列表请求
1100,每个SAS扩展器1010-1024可以使用具有修改的路由属性的phy的列表来通过SMP报告修改phy路由属性列表请求1120来响应。在操作中,SMP报告修改phy路由属性列表响应1120可以包含多个修改路由描述符1140。每个修改路由描述符1140可以表示SAS扩展器1010-1024的单一phy和用于该单一phy的修改路由属性1160。例如,修改路由属性1160可以识别phy为自配置(SC)、表发起者仅输入(TITO)或表发起者仅输出(TIOO)。
TIOI可以识别仅具有在用于该phy的路由表中列出的SAS发起者的输入phy。TIOO可以识别仅具有在用于该phy的路由表中列出的SAS发起者的输出phy。
[0045] 如果SMP报告修改的phy路由属性列表响应1120识别用于该phy的修改的路由属性1160,SAS发起者1002-1004可以忽略用于由SMP发现响应提供的phy的路由属性。在本公开的实施例中,经销商唯一SMP函数可以仅报告修改的路由属性TIOI、TIOO和SC。
SAS扩展器1010-1024可以具有多个端口,一些端口具有标准路由属性(D、S、T)以及一些端口具有修改的路由属性(TIOI、TIOO、SC)。
[0046] SAS扩展器1010-1024可以被配置为具有定义为输入和输出对的主减法端口。减法端口的输入端口和输出端口都需要在用于该端口的路由表中的SAS发起者1002-1004的地址。此外,SAS扩展器可以添加用于直接连接装置的次减法端口。例如,如果OPEN的DEST如通过SMP所提供的不是直接连接装置(例如连接到具有D路由属性的端口的装置),或者如果OPEN的DEST不是在用于该输出端口的路由列表中,则在输入端口中接收到的OPEN可以被发送给用于该减法端口的输出端口。例如,如果OPEN的DEST不是直接连接装置(例如连接到具有D路由属性的端口的装置)或者如果OPEN的DEST不是在用于该输出端口的列表中,则该输出端口上接收到的OPEN可以发送给用于该减法端口的输入端口。修改的路由属性TIOI可以表示减法端口的输入端口。修改的路由属性TIOO可以表示减法端口的输出端口。OPEN总是可以默认为主减法端口。
[0047] SAS发起者1002-1004可以定位在级联SAS拓扑1000的顶部或底部。SAS发起者1002-1004可以仅将他们自己的SAS地址编写入级联SAS拓扑1000的SAS扩展器1010-1024的TIOI端口1060和TIOO端口1050的路由表。此外,根据级联SAS拓扑1000中的SAS发起者1002-1004的位置,SAS发起者1002-1004可以仅将他们自己的SAS地址编写入级联SAS拓扑1000的SAS扩展器1010-1024的TIOI端口1060的路由表或TIOO端口1050的路由表。SAS扩展器1010-1024可以执行防止SAS发起者1002-1004在将地址编写入SAS扩展器路由表(例如位置无关的路由表编写)时彼此伤害的固件。
[0048] SAS目标1070可以发布OPEN给SAS扩展器1010-1024之一。SAS扩展器1010-1024之一可以在用于SAS扩展器1010-1024之一的路由表中定位OPEN的DEST地址。OPEN可以被发送给由DEST地址指定的SAS发起者。在另一实施例中,SAS发起者1002-1004之一可以发布OPEN至SAS扩展器1002-1004之一。SAS扩展器1002-1004之一可以首先在任何直接连接的装置中搜索OPEN的DEST地址。如果找到,则OPEN被发送给适当的直接连接的装置。如果OPEN的DEST地址没有在任何直接连接的装置中找到,则SAS扩展器1010-1024之一然后可以在SAS扩展器路由表中搜索OPEN的DEST地址。如果找到,则OPEN被路由至适当SAS发起者。如果OPEN的DEST地址不能在SAS扩展器路由表中找到,则SAS扩展器1010-1024之一然后可以发送OPEN至其成对的减法端口。
[0049] 此外,为了在SAS级联拓扑1000中执行SAS分区,仅拓扑中的末端扩展器可能需要检测。末端扩展器可以将用于直接连接的装置的phy的DEST和OPEN命令中的源区组进行比较。该比较作为减法来进行直到到达该区的末端装置扩展器。
[0050] 大体上参考图12,示出了在SAS级联拓扑中执行成对减法路由的方法。方法1200包括将输入端口分配给SAS扩展器装置1210的步骤。该方法1200可以进一步包括将输出端口分配给SAS扩展器装置1220的步骤。在示例性实施例中,方法1200可以进一步包括将输出端口和输入端口定义为彼此成对以作为成对的减法端口1230来操作的步骤。此外,方法1200还可以包括将第二输入端口和第二输出端口添加到SAS扩展器装置的步骤。第二输入端和第二输出端口可以彼此成对作为次减法端口。
[0051] 在示例性实施例中,方法1200可以进一步包括以下步骤:如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置,并且DEST不是在SAS扩展器装置的路由表中,则一旦接收到OPEN命令进入输入端口,就将OPEN命令发送出输出端口1250。方法1200可以进一步包括以下步骤:如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置,并且DEST不是在SAS扩展器装置的路由表中,则一旦接收到OPEN命令进入输出端口,就将OPEN命令发送出输入端口1250。此外,如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置,并且DEST不是在SAS扩展器装置的路由表中,则一旦接收到OPEN命令进入输入端口,就将OPEN命令发送出输出端口1250。方法1200可以进一步包括以下步骤:如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置,并且DEST不是在SAS扩展器装置的路由表中,则一旦接收到OPEN命令进入第二输出端口,就将OPEN命令发送出第二输入端口。方法1200可以进一步包括以下步骤:如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置,并且DEST不是在SAS扩展器装置的路由表中,则一旦接收到OPEN命令进入第二输出端口,就将OPEN命令发送出第二输入端口。进一步地,次减法端口可以为与SAS扩展器装置的直接连接装置的通信进行操作。此外,OPEN命令可以默认为主减法端口。
[0052] 在示例性实施例中,方法1200可以进一步包括通过经销商唯一SMP函数的修改路由属性指定SAS扩展器的减法端口的步骤。进一步,SAS发起者可以忽略减法端口的SMP发现响应属性,并可以在存在用于减法端口的修改路由属性的情况下,使用经销商唯一SMP的修改路由属性。
[0053] 在示例性实施例中,方法1200可以进一步包括仅编写SAS扩展器1240的路由表中的SAS发起者地址的步骤。例如,仅编写SAS扩展器1240的路由表中的SAS发起者地址的步骤可以由SAS扩展器执行。此外,由SAS扩展器编写的SAS扩展器的路由表可以是用于自配置指定端口的路由表。仅编写SAS扩展器1240的路由表中的SAS发起者地址的步骤可以通过SAS路由拓扑中的每个SAS发起者执行,每个SAS发起者仅编写在该SAS扩展器的路由表中的SAS发起者的SAS地址。此外,每个SAS发起者可以仅编写在一种类型的SAS扩展器的修改路由属性端口的路由表中的SAS发起者的SAS地址。该种类型的SAS扩展器的修改路由属性端口可以通过SAS路由拓扑中的SAS发起者的位置指定。SAS发起者可以定位在SAS路由拓扑的顶部或底部。
[0054] 在本公开中,所公开的方法可以实现为装置可读的指令集或软件。这样的软件可以是计算机程序产品,其采用计算机可读存储介质,包括用来为计算机编程以执行本发明所公开的功能和过程的所存储的计算机代码。计算机可读介质包括但不限于如何类型的传统软盘、光盘、CD-ROM、磁盘、硬盘驱动器、磁光盘、ROM、RAM、EPROM、EEPROM、磁或光卡、或任何用于存储电子指令的适当介质。此外,应该理解,所公开的方法中的步骤的特定顺序或层次是示例性方法的示例。基于设计优选,应该理解在该方法中的步骤的特定顺序或层次可以被重新布置,而仍保持在所公开的主题内容的范围内。所附的方法权利要求以示例顺序呈现了各种步骤的要素,并且不必然意味着限制于所呈现的特定顺序或层次。
[0055] 确信本公开和其伴随的优点将通过上述描述而能够被理解,并且在不背离本公开的主题内容或不牺牲其所有材料优点的情况下,显然可以对部件的形式、结构和布置进行各种修改。所描述的形式仅是示例性的,并且下面的权利要求旨在包括和包含这些改变。