用于SAS设备之间的多个单向虚拟连接的装置和方法转让专利

申请号 : CN200780048172.4

文献号 : CN101595467B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·T·克莱格B·戴

申请人 : LSI公司

摘要 :

用于使能SAS域中的第一SAS设备和多个其他SAS之间的多个单向虚拟连接的装置和方法。增强的第一SAS设备可被通过一个或多个适当增强的SAS扩展器大体同时地耦合到两个其他SAS中的每一个,以便允许从第一SAS设备到第二和第三SAS设备两者的大体同时的单向虚拟连接。每个虚拟连接本质上是半双工连接,从而第一设备与第一设备从第三SAS设备接收信息大体同时地向第二SAS设备传输信息。为了不能根据此处的特征和方面增强的设备间的连接(例如,与老式设备),以允许与当前SAS规范向后兼容的方式提供增强。

权利要求 :

1.一种用于串行连接SCSI域的系统,包括:

三个串行连接SCSI设备,包括第一串行连接SCSI设备,第二串行连接SCSI设备和第三串行连接SCSI设备;以及串行连接SCSI扩展器,其被配置为将第一串行连接SCSI设备耦合到第二串行连接SCSI设备和第三串行连接SCSI设备中的每一个;

其中所述第一串行连接SCSI设备和所述串行连接SCSI扩展器适用于同时允许第一和第二串行连接SCSI设备之间的第一开放连接以及第一和第三串行连接SCSI设备之间的第二开放连接,和其中第一和第二开放连接利用了将第一串行连接SCSI设备耦合到所述串行连接SCSI扩展器的单个物理链路PHY。

2.如权利要求1的系统

其中第一开放连接用于从第一串行连接SCSI设备向第二串行连接SCSI设备传输帧;

其中第二开放连接用于从第三串行连接SCSI设备向第一串行连接SCSI设备传输帧。

3.如权利要求2的系统

其中所述系统适用于通过从第一串行连接SCSI设备向第二串行连接SCSI设备发送CREDIT BLOCKED基元,从而阻塞第一开放连接中与第一串行连接SCSI设备相关联的接收信用。

4.如权利要求2的系统

其中所述系统适用于丢弃第二开放连接中的通常由第三串行连接SCSI设备向第一串行连接SCSI设备发送的RRDY基元。

5.如权利要求1的系统

其中所述串行连接SCSI扩展器适用于在第二开放连接保持开放时拒绝从第四串行连接SCSI设备指向第一串行连接SCSI设备的开放寻址帧。

6.如权利要求1的系统

其中所述串行连接SCSI扩展器适用于在第二开放连接保持开放时延迟从第四串行连接SCSI设备指向第一串行连接SCSI设备的开放寻址帧。

7.一种能够在串行连接SCSI域中操作的方法,所述串行连接SCSI域具有将第一串行连接SCSI设备耦合到第二和第三串行连接SCSI设备的每一个的串行连接SCSI扩展器,该方法包括:通过所述串行连接SCSI扩展器建立第一串行连接SCSI设备和第二串行连接SCSI设备之间的第一虚拟连接,其中第一虚拟连接由第一串行连接SCSI设备建立,并用于从第一串行连接SCSI设备向第二串行连接SCSI设备传输帧;和通过所述串行连接SCSI扩展器建立第一串行连接SCSI设备和第三串行连接SCSI设备之间的第二虚拟连接,其中第二虚拟连接由第三串行连接SCSI设备建立,并用于从第三串行连接SCSI设备向第一串行连接SCSI设备传输帧;

其中第一虚拟连接和第二虚拟连接能够重叠操作,和

其中第一和第二虚拟连接利用了将第一串行连接SCSI设备耦合到所述串行连接SCSI扩展器的同一物理链路PHY。

8.如权利要求7的方法,还包括:

在第二虚拟连接保持开放时拒绝从第四串行连接SCSI设备指向第一串行连接SCSI设备的开放寻址帧。

9.如权利要求7的方法,还包括:

丢弃由第三串行连接SCSI设备发送到第一串行连接SCSI设备的RRDY基元。

10.如权利要求7的方法,还包括:

从第一串行连接SCSI设备向第二串行连接SCSI设备发送CREDIT BLOCKED基元。

11.一种适用于耦合到第一、第二和第三串行连接SCSI设备的串行连接SCSI扩展器,其中所述串行连接SCSI扩展器还包括:第一虚拟连接逻辑模块,适用于建立和操作第一串行连接SCSI设备和第二串行连接SCSI设备之间的第一虚拟连接,用于从第一串行连接SCSI设备向第二串行连接SCSI设备传输帧;和第二虚拟连接逻辑模块,适用于建立和操作第一串行连接SCSI设备和第三串行连接SCSI设备之间的第二虚拟连接,用于从第三串行连接SCSI设备向第一串行连接SCSI设备传输帧,其中第一虚拟连接逻辑模块和第二虚拟连接逻辑模块中的每一个适用于使得第一虚拟连接和第二虚拟连接能够利用将第一串行连接SCSI设备耦合到所述串行连接SCSI扩展器的同一物理链路PHY而重叠操作。

12.如权利要求11的扩展器,还包括:

开放连接拒绝逻辑模块,其适用于在第二虚拟连接保持开放时拒绝从第四串行连接SCSI设备指向第一串行连接SCSI设备的开放帧请求。

13.如权利要求11的扩展器

其中第二虚拟连接逻辑模块还包括:

双工逻辑模块,其适用于丢弃从第三串行连接SCSI设备指向第一串行连接SCSI设备的RRDY基元。

14.如权利要求11的扩展器

其中第一虚拟连接逻辑模块还包括:

双工逻辑模块,其适用于通过从第一串行连接SCSI设备向第二串行连接SCSI设备发送CREDIT BLOCKED基元,从而阻塞所述第一虚拟连接中与第一串行连接SCSI设备相关联的接收信用。

15.如权利要求11的扩展器

其中第二虚拟连接逻辑模块适用于在所述第二虚拟连接保持开放时拒绝从第四串行连接SCSI设备指向第一串行连接SCSI设备的开放寻址帧。

16.如权利要求11的扩展器

其中第二虚拟连接逻辑模块适用于在所述第二虚拟连接保持开放时延迟从第四串行连接SCSI设备指向第一串行连接SCSI设备的开放寻址帧。

17.一种串行连接SCSI端设备,包括:

第一虚拟连接逻辑模块,适用于通过串行连接SCSI扩展器建立和操作所述串行连接SCSI端设备和第一串行连接SCSI设备之间的第一虚拟连接,用于从所述串行连接SCSI端设备向第一串行连接SCSI设备传输帧;以及第二虚拟连接逻辑模块,适用于通过串行连接SCSI扩展器建立和操作所述串行连接SCSI端设备和第二串行连接SCSI设备之间的第二虚拟连接,用于从所述第二串行连接SCSI设备向所述串行连接SCSI端设备传输帧;

其中第一虚拟连接逻辑模块和第二虚拟连接逻辑模块的每一个适用于使得第一虚拟连接和第二虚拟连接能够重叠操作,和其中所述端设备适用于在将所述串行连接SCSI端设备耦合到所述串行连接SCSI扩展器的同一物理链路PHY上建立第一和第二虚拟连接。

18.如权利要求17的端设备

其中第二虚拟连接逻辑模块还包括:

双工逻辑模块,其适用于丢弃从第二串行连接SCSI设备指向所述串行连接SCSI端设备的RRDY基元。

19.如权利要求17的端设备

其中第一虚拟连接逻辑模块还包括:

双工逻辑模块,其适用于通过从所述串行连接SCSI端设备向第一串行连接SCSI设备发送CREDIT BLOCKED基元,从而阻塞所述第一虚拟连接中与第一串行连接SCSI设备相关联的接收信用。

20.如权利要求17的端设备,还包括:

双工逻辑模块,其适用于独立于与第二虚拟连接相关联的接收信用,管理与第一虚拟连接相关联的传输信用。

说明书 :

用于SAS设备之间的多个单向虚拟连接的装置和方法

[0001] 相关的专利申请
[0002] 本专利申请涉及并要求序列号为60/882,847、提交于2006年12月29日,名称为Apparatus and Methods for MultipleUnidirectional Virtual Connections Among SAS Devices的美国临时专利申请的优先权。

技术领域

[0003] 本发明一般涉及SAS域,更具体地涉及用于SAS域中的SAS设备之间的多个单向虚拟连接的装置、系统和方法。

背景技术

[0004] 串行连接SCSI(“SAS”)是一种用于连接互连的存储/计算架构的组件的流行协议和介质。通常,SAS标准将SAS域定义为包括耦合到一个或多个SAS目标设备零个或多个SAS扩展器设备的一个或多个SAS发起者。通常,以点到点连接将SAS发起者设备耦合到SAS目标设备。为了增强将SAS发起者设备连接到其它SAS目标设备的灵活性,SAS域可以包括一个或多个SAS扩展器,以便在实质上提供一种用于以点到点连接将任意SAS发起者耦合到SAS域的任意SAS目标设备的切换结构。
[0005] 更通常,由于许多设备有时可能担任发起者的角色而有时可能担任目标的角色,因而SAS发起者设备和SAS目标设备中的每一个可被称为SAS端设备(或端点设备)。无论设备的角色是作为SAS发起者还是SAS目标,任何符合SAS的设备都可以试图开放(open)与另一个设备的连接。例如,通常主机总线适配器SAS发起者设备开放到SAS存储目标设备的连接。然而,为了返回请求的读取数据,存储设备可能稍后返回到开放到进行请求的主机适配器的连接。因而在本讨论中,一般避免“发起者”和“目标”这些术语。此处连接中的发起者和目标设备可以简称为“端设备”或者“端点设备”,或者甚至更简单地称为“设备”。此处试图开放到另一个端设备的连接的端设备也称为“开放器”或“开放设备”,而接受开放请求的设备称为“被开放设备”。
[0006] SAS标准规定了两个连接的SAS设备之间的全双工连接。原则上,这种全双工连接允许大体与被开放设备向开放器传回信息并行地由开放设备向被开放设备传输信息帧(例如“数据帧”)。根据这些SAS规范,这种全双工连接允许两个端设备之间的点到点连接的几乎完全的利用(与协议相关的开销交换总是会消耗一些可用带宽)。这个以及其它SAS规范是本领域普通技术人员公知的,并且例如可以在www.t10.org容易地得到。
[0007] 实际上,连接的SAS设备(例如耦合到I/O请求控制器的单个盘驱动器设备)都具有准备要向开放的连接的另一个设备发送的数据是很少见的。甚至在RAID存储子系统SAS设备耦合到SAS主机适配器设备的情况下(取决于RAID存储控制器的架构),主机和存储系统完全利用真正全双工连接的可用带宽也是罕见的。因而,通过真正全双工通信的SAS连接的完全(或接近完全)利用实际上是非常少见乃至于不存在的。相反,经验测试数据表明,两个设备之间的SAS连接的利用率往往小于可用通信带宽的50%。这种不充分利用的一个方面源于和SAS协议相关的固有开销和延迟。然而,造成这种不充分利用的最主要原因是底层通信被执行为:主机系统(例如SAS发起者)传输其一个或多个帧,这些帧表示要由存储设备(例如,单个盘驱动器或更复杂的RAID或其它阵列存储设备)完成的请求。存储设备通常需要某个基本处理时间以完成从主机系统接收的请求。这样,在SAS发起者已经开放用于其请求传输的连接的同时,SAS目标设备(例如存储设备)很少已经具有了准备向SAS发起者传输的数据。因此,通常在发起者到目标的传输完成时关闭开放的连接,并且仅当目标设备准备好将请求的数据传回发起者时才重新连接。
[0008] 由上述可见,当前需要改善SAS域中SAS发起者设备和SAS目标设备之间的带宽利用率。

发明内容

[0009] 通过提供用于第一SAS设备和两个其它SAS设备之间的多个单向的可大体同时操作的虚拟连接的装置、系统以及相关方法,本发明解决了上述的以及其它的问题,从而提高可用技术的状态。本质上,每个单向虚拟连接是一种半双工连接,从而第一设备可以向第二设备传输,同时可以从第三SAS设备接收。这种增强的操作模式保持和现有SAS协议的向后兼容,同时允许采用通过被适当使能的SAS扩展器耦合到多个其他SAS设备中的每一个的被适合地使能的第一SAS设备的增强操作。
[0010] 其中的一个方面提供一种系统,包括三个SAS设备,包括第一SAS设备、第二SAS设备和第三SAS设备,每一个SAS设备被耦合到SAS扩展器组件,SAS扩展器组件配置为将第一SAS设备耦合到第二SAS设备和第三SAS设备中的每一个。所述第一SAS设备和所述SAS扩展器适用于同时允许第一和第二SAS设备之间的第一开放连接以及第一和第三SAS设备之间的第二开放连接。第一和第二开放连接利用了将第一SAS设备耦合到SAS扩展器的单个链路。
[0011] 本发明的另一个方面提供了一种能够在SAS域中操作的方法,所述SAS域具有将第一SAS设备耦合到第二和第三SAS设备的每一个的SAS扩展器。该方法包括通过SAS扩展器建立第一SAS设备和第二SAS设备之间的第一虚拟连接。所述第一虚拟连接由第一SAS设备建立,并用于从第一SAS设备向第二SAS设备传输帧。所述方法还包括通过SAS扩展器建立第一SAS设备和第三SAS设备之间的第二虚拟连接。所述第二虚拟连接由第三SAS设备建立,并用于从第三SAS设备向第一SAS设备传输帧。第一虚拟连接和第二虚拟连接可以重叠操作。第一和第二虚拟连接利用了将第一SAS设备耦合到SAS扩展器的同一链路。
[0012] 本发明的另一个方面提供一种适用于耦合到至少第一、第二和第三SAS设备的SAS扩展器。所述SAS扩展器包括第一虚拟连接逻辑,适用于建立和操作第一SAS设备和第二SAS设备之间的第一虚拟连接,用于从第一SAS设备向第二SAS设备传送帧。所述扩展器还包括第二虚拟连接逻辑,其适用于建立和操作第一SAS设备和第三SAS设备之间的第二虚拟连接,用于从第三SAS设备向第一SAS设备传输帧。第一虚拟连接逻辑和第二虚拟连接逻辑的每一个适用于允许第一虚拟连接和第二虚拟连接重叠操作。
[0013] 本发明的另一个方面提供一种SAS端设备,其包括第一虚拟连接逻辑,适用于通过SAS扩展器建立和操作所述SAS端设备和第一SAS设备之间的第一虚拟连接,用于从所述SAS端设备向第一SAS设备传送帧。所述SAS端设备还包括第二虚拟连接逻辑,适用于通过SAS扩展器建立和操作所述SAS端设备和第二SAS设备之间的第二虚拟连接,用于从所述第二SAS设备向所述SAS端设备传送帧。第一虚拟连接逻辑和第二虚拟连接逻辑的每一个适用于允许第一虚拟连接和第二虚拟连接重叠操作。所述端设备适用于在将所述SAS端设备耦合到SAS扩展器的同一链路上建立第一和第二虚拟连接。

附图说明

[0014] 图1是根据此处的特征和方面的用于改进SAS域中的带宽利用率的示例性系统的方框图;
[0015] 图2是根据此处的特征和方面增强被以允许第一设备和两个其他SAS设备中的任意一个之间的多个单向虚拟连接的示例性第一SAS设备和SAS扩展器的方框图;
[0016] 图3是描述在根据此处的特征和方面增强的可在SAS域系统中操作的根据此处的特征和方面的示例性方法的流程图;
[0017] 图4是描述用于建立三个SAS设备之间的多个单向虚拟连接的根据此处的特征和方面的示例性方法的流程图;
[0018] 图5是根据此处的特征和方面的多个SAS和SAS扩展器之间的SAS业务的示例性交换的图;和
[0019] 图6是根据此处的特征和方面的增强的扩展器的示例性实施例的方框图。

具体实施方式

[0020] 图1是用于改进SAS域中的带宽利用率的根据此处的特征和方面的示例性系统100的方框图。如图1所示,SAS域(例如系统100)包括三个SAS设备:第一SAS设备101,第二SAS设备102和第三SAS设备103。如在SAS域中公知的,第一SAS设备101可以连接到多个其他设备(例如,第二SAS设备102和第三SAS设备103)。通常包括一个或多个SAS扩展器104,以在提供这种连接时提供可切换的灵活性。本领域的普通技术人员容易认识到,根据SAS规范和协议的限制,可以通过任意数目的相关联的SAS扩展器互连任意数目的SAS设备。典型的SAS域实质上包括比图1所示更多的设备和扩展器。因此仅为了使本讨论简短而简化了图1。
[0021] 根据如系统100代表的此处的特征和方面,可以增强第一SAS设备101和SAS扩展器104以允许第一SAS设备和第二以及第三SAS设备102和103中的每一个之间的多个虚拟连接。具体地,根据此处的特征和方面,可以在第一SAS设备101和第二SAS设备102之间建立第一虚拟连接。在第一虚拟连接的建立之前、之后或大体同时,可以在第一SAS设备101和第三SAS设备103之间建立和利用第二虚拟连接。如上所述,现有技术的SAS体系结构和方法允许任意两个SAS设备之间的点到点全双工连接。然而,现有技术的SAS体系结构和技术不允许单个设备通过连接到SAS扩展器的单个链路大体同时地与SAS域中的两个其他设备的两者都通信。
[0022] 如此处使用的,连接的同时性是指两个虚拟连接的建立和利用的任意方面。换言之,第一虚拟连接和第二虚拟连接的建立可以大体重叠,以便由此大体同时地被实现。或者例如,以前建立的第一虚拟连接的利用和第二虚拟连接的建立可以大体重叠,以便由此大体同时地被实现。或者例如,可以借助于通过两个虚拟连接的大体重叠的数据传输同时利用两个先前建立的虚拟连接。
[0023] 如上面进一步指出的,虽然现有技术的SAS体系结构和技术允许第一SAS设备和第二SAS设备之间的全双工连接,作为实践中的问题,这种SAS连接中的这种双向同时通信显著地未被充分利用——尤其是在主系统和单个盘驱动器设备之间的连接的背景下。即,仅在SAS体系结构的盘存储应用的相当少见的情况中,已建立的SAS连接中的第一SAS设备和第二SAS设备两者都渴望在单个点到点全双工连接上在两个方向上传输任意大量的信息。
[0024] 因此根据此处的特征和方面,如果出于从第一SAS设备向第二SAS设备传输数据帧的目的,建立第一SAS设备101和第二SAS设备102之间的第一虚拟连接。出于从第三SAS设备103向第一SAS设备101(换言之,在与第一虚拟连接相关的帧通信的相反方向上)传输数据帧的目的,在第一SAS设备101和第三SAS设备103之间建立第二虚拟连接。因此,根据此处的特征和方面,第一和第二虚拟连接两者实际上是单向半双工连接。然而,如上面讨论的,将第一SAS设备101耦合到两个其他SAS设备的能力更好地利用了SAS域(例如系统100)的处理和通信带宽,其中所述两个其他SAS设备中的每一个都适用于在与另一个虚拟连接相反的方向上的单向交换信息。
[0025] 通信路径151表示将第一SAS设备101连接到SAS扩展器104的特定端口的单个逻辑链路。以类似的方式,通过单个逻辑链路152将SAS扩展器104耦合到第二SAS设备102,并且通过另一个逻辑链路153耦合到第三SAS设备103。由于链路151的每个传输方向耦合到不同的SAS设备,因此与现有技术的SAS标准全双工链路层协议相比,更好地利用了第一SAS设备101和SAS扩展器104之间的逻辑连接151。而不是在第一SAS设备101和SAS扩展器104之间建立了两个虚拟逻辑连接。
[0026] 虽然SAS规范详细定义了“端口”,“链路”和PHY,然而如此处使用的,出于本讨论的目的它们可被认为是同义的。通常,链路或PHY相应于耦合两个设备的单个物理链路介质,而端口是指SAS中的逻辑构造。单个端口可以例如是聚集多个物理链路或PHY的处理的宽端口。因此,利用多个链路的端口可以用根据此处的特征和方面的增强模式操作多个链路中的某些链路,并且以标准的非增强模式操作另一些链路。然而,出于本专利的更宽的目的,这些术语可被认为本质上是同义的。
[0027] 在根据此处的特征和方面的一个示例性实施例中,第一SAS设备101可以是增强的SAS端设备,诸如配备有适当增强的SAS主机适配器的主机系统或服务器计算节点。另外,SAS扩展器104可以是根据此处的特征和方面增强的SAS扩展器,以允许与增强的SAS设备101的单个逻辑连接,从而利用单个逻辑链路用于建立分别到第二和第三SAS设备102和103的两个单向虚拟连接。第二和第三SAS设备102和103可以是例如标准SAS设备,诸如存储设备或其他外围I/O设备。第一虚拟连接通过逻辑链路151经由扩展器104和逻辑链路152将增强的SAS设备(第一SAS设备101)耦合到第二SAS设备102。出于增强的SAS设备101向由第二SAS设备102代表的存储设备传输数据帧的目的,利用了第一虚拟连接。在第一SAS设备101和第三SAS设备103(例如,期望将信息传回增强的SAS设备101的第二存储设备)之间建立第二虚拟连接。第二虚拟连接通过链路151,SAS扩展器104和链路153耦合增强的SAS设备101和第三SAS设备103。在第三SAS设备103中产生的数据帧(例如,从存储设备传回进行发出请求的主机系统SAS设备的读取数据)被传回增强的SAS设备101。因此,通过大体同时的从第一设备101到第二SAS设备102(例如,对存储设备的写操作)的传输和从第三SAS设备103到增强的SAS设备的传输(例如,响应另一个主机请求的读取数据的返回),更完全地利用了将增强的SAS设备耦合到增强的SAS扩展器的单个逻辑链路151。
[0028] 本领域的普通技术人员容易认识到完整功能的SAS设备或SAS扩展器内的多种附加特征和元件。仅为了本讨论的简短起见而从图1中省略了这些公知元件。
[0029] 图2是根据此处的特征和方面增强以允许第一SAS设备101和两个其他SAS设备102和103中的每一个之间的多个单向虚拟连接的示例性的增强的SAS扩展器104的方框图。
[0030] 根据此处的特征和方面增强的SAS扩展器104包括独立的向外虚拟连接逻辑元件201和独立的向内虚拟连接逻辑元件202,用于与增强的第一设备101的增强模式通信。向外虚拟连接逻辑201管理与向耦合到SAS扩展器104(直接或通过SAS域中的一个或多个其他的中间SAS扩展器252)的第二SAS设备102传输向外数据帧相关联的传输和链路层处理。向内虚拟连接逻辑元件202管理与从耦合到SAS扩展器104(直接或也通过SAS域中的一个或多个其他扩展器253)的第三SAS设备103接收向内数据帧相关联的传输和链路层处理。底层逻辑PHY控制逻辑214物理地将增强的SAS扩展器104耦合到SAS扩展器的相应的单个链路,第一SAS设备101通过该链路与第二和第三SAS设备两者通信。
[0031] 向外虚拟连接逻辑201包括向外传输和信用逻辑元件206,其负责管理标准SAS协议传输和链路层状态机,用于根据SAS信用协议和握手从第一SAS设备101向第二SAS设备102传输数据帧。以类似的方式,向内虚拟连接逻辑元件202可以包括向内接收和信用逻辑212,其通常负责当为第一SAS设备101从连附的第三SAS设备103接收向内数据帧时的根据标准SAS状态机模型的链路和传输层管理。
[0032] 双工逻辑元件203代表组合和/或顺序的逻辑,以便执行与此处的特征和方面相关联的专用状态机处理,从而防止从第二SAS设备102到第一SAS设备101的向内数据帧传输和避免从第一SAS设备101到第三SAS设备103的向外数据帧传输(例如,典型地通过简单地忽略或丢弃来自第三SAS设备的接收信用指示)。具体地,双工逻辑元件203可以包括向内信用阻塞逻辑208,用于产生传输到第二SAS设备102的CREDIT BLOCKED基元(primitive)。优选地,在与第二SAS设备102建立第一虚拟连接时,向内信用阻塞逻辑元件208立刻传输CREDIT BLOCKED基元,以通知第二SAS设备102增强的第一SAS设备101将不接收来自第二SAS设备的任何数据帧传输。以类似的方式,双工逻辑元件203可以包括向外信用丢弃逻辑210,其通常可操作用于避免从增强的第一SAS设备101到第三SAS设备103的向外传输。例如,避免这种向外传输可以仅代表忽略从第三SAS设备103接收的任意RRDY基元的处理,其中所述RRDY基元表明用于接收从第一SAS设备101的传输的缓存区空间。增强的第一SAS设备101内的其他逻辑可以简单地从不尝试基于建立多个单向虚拟连接的增强操作模式的使用而向第三SAS设备103发送数据帧。
[0033] 当在SAS扩展器104内实现时,向外虚拟连接逻辑201和向内虚拟连接逻辑202与三个PHY控制逻辑元件相关联。PHY控制逻辑元件214实现用于通过单个链路将SAS扩展器104耦合到增强的第一SAS设备101的PHY控制。PHY控制逻辑元件221通过单个链路将向外虚拟连接逻辑201耦合到第二SAS设备102(例如存储设备或其他外围设备)。PHY控制逻辑元件222将向内虚拟连接逻辑202耦合到第三SAS设备103(例如,适用于并且目前请求到第一SAS设备的连接以便向其传输数据帧的另一个存储设备)。
[0034] 因此,增强的SAS扩展扩展器104适用于建立将增强的第一SAS设备101耦合到第二SAS设备102的第一虚拟连接。该第一虚拟连接被配置为用于从第一SAS设备101向第二SAS设备102传输数据帧-例如在来自SAS主机设备的写请求的处理中,从主机系统SAS适配器设备向SAS存储设备传输的数据帧。在第一虚拟连接的操作中,增强的SAS扩展器104通过控制逻辑214接收数据帧。通过向外虚拟控制逻辑201以及与增强的SAS扩展器104内的标准路由逻辑相关联地,将从增强的SAS设备接收的数据帧转发到PHY控制逻辑221,用于通过该逻辑链路转发到第二SAS设备102。
[0035] 增强的SAS扩展器104还适用于建立将第一SAS设备101耦合到第三SAS设备103的第二虚拟连接。该第二虚拟连接被配置用于从第三SAS设备接收数据帧,用于在第一SAS设备内处理-例如,诸如在读取请求的处理中,从SAS存储设备传回主机系统SAS设备的数据帧。在该第二虚拟连接的操作中,增强的SAS扩展器104通过PHY控制逻辑222从第三SAS设备103接收数据帧。通过向内虚拟连接逻辑元件202,这些接收的数据帧被转发到PHY控制逻辑元件214,以便转发到增强的第一SAS设备101。
[0036] 因此,增强的SAS扩展器104适用于建立两个单向虚拟连接——第一SAS设备101和第二SAS设备102之间的第一虚拟连接,以及第一SAS设备101和第三SAS设备103之间的第二虚拟连接。利用第一虚拟连接将数据帧从第一SAS设备传输到第二SAS设备,而利用第二虚拟连接将数据帧从第三SAS设备传输到第一SAS设备。
[0037] 本领域的技术人员容易认识到可以对于完整操作的增强的SAS扩展器104有用的各种不同的和附加的元件。出于本讨论的简单和简短的目的,在图2中省略了这些附加元件。
[0038] 在示例性的优选实施例中,此处的增强的特征和方面可以以组合和/或时序的逻辑分布,所述逻辑被添加给增强的SAS扩展器和增强的SAS设备。增强的SAS设备可被适合地配置为请求针对增强操作模式使能其到SAS扩展器的连接。通过准予增强操作模式,根据此处的特征和方面的增强的SAS扩展器响应该增强的SAS设备的请求。缺乏此处的增强特征和方面的老式SAS扩展器将拒绝来自增强的SAS设备的新请求,并且简单地继续以标准SAS操作模式操作,因此,当未连接到适合的增强的SAS扩展器时,增强的SAS设备向后兼容以便根据SAS标准继续操作。
[0039] 图3是宽泛地描述可以在根据此处的特征和方面增强的SAS域系统中操作的根据此处的特征和方面的示例性方法的流程图。如上所述,此处的特征和方面允许SAS域在第一SAS设备和第二和第三SAS设备两者之间建立两个单向虚拟连接。因此图3中的元件300首先可被操作为在第一SAS设备和第二SAS设备之间建立第一虚拟连接。例如,第一SAS设备可以是具有适当的主机总线适配器的主机系统或服务器,并且第二SAS设备可以是存储设备,诸如盘驱动器或其他类似的存储设备。第一虚拟连接用于从第一SAS设备向第二SAS设备传输SAS数据帧。这种数据传输可以响应于例如主机系统的处理或对存储设备上的存储信息的服务器写请求。优选地,以排除相反方向上(即从第二SAS设备到第一SAS设备)传输的数据帧的方式建立该第一虚拟连接。因此,附加的带宽保持为对于当前准备好并且等待向第一SAS设备发送数据帧的其他存储设备可用。然后元件302可操作为在第一SAS设备和第三SAS设备之间建立第二虚拟连接。该第二虚拟连接通常用于将数据帧从第三SAS设备传回第一SAS设备。例如,这种传输可以响应于当第三设备(例如存储设备)最终准备好向第一SAS设备(例如具有适当的SAS主机总线适配器的主机系统或服务器节点)返回所请求的数据时的对主机读请求的处理。因为与第一SAS设备的该第二虚拟连接被用于向第一SAS设备返回数据,由此优选地排除了第二虚拟连接上的从第一设备向第三设备的数据帧传输。使用建立的两个单向虚拟连接,元件304可被操作为以实现第一和第二虚拟连接两者中的大体重叠的传输的方式来操作这两个虚拟连接。换言之,可将第一虚拟连接更充分地用于从第一SAS设备向第二SAS设备的信息传输,而第二虚拟连接保持对于准备好并且能够向第一SAS设备传回信息的任意第三SAS设备可用。
[0040] 本领域的普通技术人员容易认识到元件300到304的详细实现的所有各个步骤都可以重叠-而不仅是两个虚拟连接的建立之后的数据传输。换言之,可以建立第一虚拟连接并且在产生建立第二虚拟连接的需要(例如,由于第三SAS设备准备好并且能够向第一SAS设备传回信息而产生的需要)之前开始着手传输。因此,第二SAS虚拟连接的建立可以和已经建立的第一虚拟连接的数据帧传输重叠,和/或可以和用于建立第一虚拟连接的下层操作重叠。以类似的方式,在第二虚拟连接保持操作的同时,第一虚拟连接可能尚未建立,或可能被完成和关闭。因此,可以与以前建立的第二虚拟连接的进行中的操作大体重叠地建立第一虚拟连接。换言之,在建立第一连接和第二连接时不需要包含(imply)特定的顺序或次序。可以根据适用的SAS域中的数据传输的特定需要以本质上任意可用的次序来建立和使用它们。
[0041] 本领域的普通技术人员将认识到可被包括在根据此处的特征和方面的完整功能的方法内的各种等同和附加的方法步骤。出于本讨论的简单和简短的目的,在图3中省略了这些附加的详细步骤。另外,本领域的普通技术人员将认识到图3的方法旨在表达根据此处的特征和方面来操作系统的主要方面。图3的步骤的某些详细处理可在增强的SAS设备中被排它地执行,可在增强的SAS扩展器内被排它地执行,或可通过SAS域的增强的SAS扩展器和增强的SAS设备两者分布。
[0042] 另外,本领域的普通技术人员将认识到SAS设备,SAS扩展器,作为整体的SAS域的某些状态,或以增强操作模式耦合的一个或多个设备所请求的某些协议交换可能需要在设备间协调的完成请求或指示之前终止该增强的连接。例如,如果这种增强连接中当前涉及的设备需要开放STP SAS协议交换,则这个增强连接可能会干扰所述操作。因此,可以通过在增强连接所涉及的任意设备或扩展器中检测这种状态,从而关闭或终止增强连接。
[0043] 因此图3旨在表述根据此处的特征和方面的示例性的主要方法而不论这种处理被在何处执行。如上所述,在示例性实施例中,图3的方法的处理优选地分布在请求到增强SAS扩展器的端口的其链路上的增强操作模式的增强SAS设备和增强SAS扩展器之间。增强的SAS扩展器和增强的SAS随后合作以便执行图3的方法,以便更好地利用建立的连接的可用带宽。
[0044] 图4是描述用于在三个SAS设备之间建立多个单向虚拟连接的根据此处的特征和方面的示例性方法的流程图。方框400首先可被操作为在第一SAS设备和SAS扩展器之间建立增强操作模式。如上所述,在此处的特征和方面的示例性优选实施例中,处理图4的方法所涉及的步骤可被协同地分布在增强的第一SAS设备和该第一设备所耦合到的增强的SAS扩展器之间。希望以与已有的标准SAS设备(例如“老式”设备)保持向后兼容的方式实现此处的增强的特征和方面。因此,优选地,可以通过增强的SAS设备请求与其耦合的增强的SAS扩展器关于该增强的SAS设备进入增强操作模式来实现此处增强的特征和方面。
[0045] 可以在第一设备和扩展器之间交换新业务消息和响应以便使能增强模式。如果扩展器做出肯定地响应,则可以开始着手下面的增强模式处理。如果扩展器不适合于处理增强模式处理(例如,老式扩展器),则它将拒绝新命令或消息和标准,将使用向后兼容的SAS协议而不是图3和4的增强方法。可替换地,可以通过已有SAS业务的特定供应商的唯一参数来请求增强模式。以类似的方式,如果扩展器适用于处理这种增强模式,则它将以某种方式肯定地应答该请求以便开始着手增强模式操作。关于设计选择的问题,本领域的普通技术人员容易明了SAS设备和SAS扩展器之间的这种新消息或业务的详细结构和字段。
[0046] 采用被这样使能的这种增强模式,可以与方框420到434的迭代处理大体重叠地迭代执行方框402到410的处理。通常,方框402到410可被操作为在增强的第一SAS设备和第二SAS设备之间建立和利用第一虚拟连接。第一SAS设备优选地耦合到被使能用于增强操作的SAS扩展器的端口,所述增强操作是通过方框400的操作使能的。第二SAS设备可以耦合到SAS扩展器的任意其他端口,或SAS域内的可通过该第一设备所耦合的SAS扩展器能够到达的任何其他位置。
[0047] 方框402等待建立第一虚拟连接的需求。当根据此处的特征和方面增强的第一SAS设备需要向第二SAS设备传输信息时产生了这种需求。具体地,第一SAS设备需要向第二SAS设备传输数据帧,但是第二设备未必准备好向第一SAS设备传回信息。当产生这种需要时,方框404可被操作为在第一SAS设备和第二SAS设备之间建立第一虚拟连接,以便允许从第一设备到第二设备的数据帧传输。如上所述,这种传输的例子可以响应于集成有SAS主机总线适配器设备的主机系统或服务器节点上的I/O写请求的处理,或例如响应于I/O读取请求从SAS存储设备向进行请求的主机系统返回请求的数据。这种连接的建立利用了公知的SAS基元,例如包括开放帧地址基元和作为其响应的相关的开放接受和/或开放拒绝基元。然而如上所述,这个单向第一虚拟连接旨在排它地用于从第一设备到第二设备的数据传输。因此,接着方框406可被操作为立刻向第二SAS设备发送CREDITBLOCKED基元,以便表明第一SAS设备将不接受从第二SAS设备返回的任意数据帧传输。如SAS规范中所记载的,对这种CREDITBLOCKED基元和相关协议的使用是本领域的普通技术人员公知的。接着,方框408可被操作为利用建立的第一虚拟连接在第一虚拟连接上从第一SAS设备向第二SAS设备传输数据帧。根据使用由第二SAS设备提供的接收信用握手信息的通常的SAS规范和协议来执行这种数据帧传输。当方框408完成将被传输到第二设备的所有数据帧的传输时,根据标准SAS协议通过方框410的操作关闭第一虚拟连接。处理然后继续循环返回方框402,以便等待来自相同的第一SAS设备的建立另一个第一虚拟连接的需求。
[0048] 如上所述,方框420到434可以与方框402到410大体同时地操作。通常,方框420到434可被操作为建立并利用第二单向虚拟连接,该第二单向虚拟连接用于将信息从第三SAS设备传回第一虚拟连接的同一第一SAS设备。例如,可以响应于在寻址的存储设备(例如,第三SAS设备)做好准备以便返回请求的数据具有延迟的情况下的主机读请求来执行这种操作。这种延迟在例如旋转盘驱动存储设备中是常见的。因此方框420首先可被操作为等待建立这种第二虚拟连接的需要。当某个第三SAS设备请求建立与第一SAS设备的连接时(例如,返回请求的读取数据),可以认为需要这种第二虚拟连接。在检测到这种需求之后,方框422接着可被操作为在第一设备和第三SAS设备之间建立第二虚拟连接,以便允许从第三设备向第一SAS设备传回数据帧。如上面的方框404,该单向第二虚拟连接旨在仅用于从第三设备向第一设备传回数据帧。因此第一设备可被操作为忽视从第三SAS设备接收的接收信用信息和/或简单地不尝试从第一设备向第三设备进行传输(例如,在该第二虚拟连接的单向属性的相反方向上)。随后,方框424到432可以迭代地操作以便接收准备好从第三设备传回第一设备的所有帧。具体地,方框424在第二虚拟连接上接收从第三SAS设备传回第一SAS设备的一个或多个帧。方框426表示通过接收信用和相应的RRDY基元管理传输流的标准SAS规范和协议处理。方框428表示上面提及的第一SAS设备中忽视与接收第三SAS设备上的帧相关联的任何接收到的信用信息的处理。第三SAS设备上的这种接收与旨在用于从第一SAS设备到第三SAS设备单向操作的第二虚拟连接无关。
其他SAS设备可以异步地尝试建立它们自己到第一SAS设备的连接(例如,当它们也准备好向进行请求的第一SAS设备返回数据时)。可以拒绝其他的这些连接请求直到关闭该第二虚拟连接为止。方框430因此表示这种处理,即,忽视或拒绝来自当前需要与第一SAS设备通信的其他SAS设备的任意后续连接请求。方框432确定是否期望来自第三SAS设备的附加接收帧。如果是,则处理继续循环返回方框424。否则,方框434可以接着操作以便关闭第二虚拟连接,并且处理继续循环返回方框422,等待重新与相同或另一个SAS设备和第一SAS设备建立另一个第二虚拟连接的需要。具体地,其开放请求被方框430的操作拒绝或忽视的设备可以再次尝试建立这种连接,并且再一次重新开始方框420到434的处理以便建立新的第二虚拟连接。
[0049] 本领域的普通技术人员将会认识到对于根据图4的方法操作的完整功能的系统有用的各种等同和附加的方法步骤。具体地,根据此处的特征和方面,方框400在上面被描述为表示在增强的第一SAS设备和增强的SAS扩展器之间建立增强连接模式的处理。如果增强的第一设备发送断开增强操作模式的适当指令,则还可以在任意时刻停止增强操作模式。作为设计选择,本领域的普通技术人员容易明了与建立和停止这种增强操作模式相关联的具体命令或基元。
[0050] 另外,如上所述,本领域的普通技术人员将认识到图4的方法可被实现为在增强的SAS设备中被排它地执行,在增强的SAS扩展器中被排它地执行,或更优选地,协同地分布在增强的SAS设备和与该设备耦合的增强的SAS扩展器之间。另外,熟悉SAS规范和其中定义的状态机的本领域的普通技术人员将明了,实现图4的方法的特定的组合和/或顺序逻辑和状态机的变化。
[0051] 图5是根据此处的特征和方面的多个SAS设备和SAS扩展器之间的SAS业务交换的示例图。在图5中,时间向图的下部进展。一系列有方向的水平箭头中的每一个表示从第一SAS组件向接收SAS组件传输的SAS消息/基元交换。箭头的开始与表示传输相应消息的SAS组件的垂直线相关联,而有方向的箭头的箭头端终止于与传输消息的接收组件相对应的垂直线。图5中示例性的消息交换表示SAS域中的交换,该SAS域具有以从图左侧起的第一垂直线表示的第一SAS设备(例如,SAS发起者或目标设备),以从左侧起的第二垂直线表示的SAS扩展器,以及全部都耦合到相同的SAS扩展器的相应端口的第二,第三和第四SAS设备,第二,第三和第四SAS设备中的每一个表示例如SAS设备(例如,目标设备,诸如其他发起者/主机设备或存储子系统内的存储设备)。
[0052] 箭头501表示从第一SAS设备(DEV1)到SAS扩展器(EXP)的传输,其请求第一SAS设备和SAS扩展器合作以便允许根据此处的特征和方面的增强操作。作为设计选择,该特定SAS业务(即,从第一SAS设备到SAS扩展器传输的消息)可以是任意有用的消息或业务。响应于与箭头501相对应的消息,箭头502表示从SAS扩展器到第一SAS设备的响应,其表示对增强操作模式请求的接受。如果SAS扩展器是不支持增强操作模式的老式设备,则可以向第一SAS设备返回适合的拒绝消息,以由此通知第一SAS设备在该特定SAS域中不允许这种增强操作(通过该特定的SAS扩展器)。
[0053] 已经在第一SAS设备和SAS扩展器之间这样建立了增强操作模式,箭头503表示从第一SAS设备指向第二SAS设备(DEV2-通过中间SAS扩展器)的标准开放连接请求。该开放连接请求是标准SAS请求,其利用用于特定连接的开放地址帧请求并且建立该连接的特定参数。响应对第一单向虚拟连接的接受,第二SAS设备可以向第一SAS设备返回标准RRDY基元,表示对于将被从第一设备传输的数据帧的接收的可用信用。实际上,多个这种RRDY基元被从第二SAS设备转发到第一SAS设备,表示对用于存储所接收的帧的可用缓存区的数目的计数。用于控制第一和第二SAS设备之间的消息流的信用协议是本领域的普通技术人员公知的。
[0054] 根据此处的特征和方面,在第一SAS设备和第二SAS设备之间这样建立的连接旨在用于在这种增强模式中唯一地从第一SAS设备到第二SAS设备的帧传输-即第一单向虚拟连接。为了帮助确保第二SAS设备不试图通过向第一SAS设备传回数据帧而返回信息,如箭头505所指示的,第一SAS设备优选地可以向第二SAS设备传输CREDIT BLOCKED基元。信用阻塞基元是用于指示第一设备不准备或不期望从第二SAS设备接收数据传输的标准SAS基元。
[0055] 第三SAS设备(DEV3)可以异步地准备好向第一SAS设备返回信息,并且因此可以请求到该第一SAS设备的开放连接。箭头506表示从第三SAS设备通过中间SAS扩展器指向第一SAS设备的这种标准SAS开放连接请求。根据增强操作模式,SAS扩展器允许将开放请求传递到第一SAS设备,以便允许建立用于相反方向(即从第三SAS设备传回第一SAS设备)的数据传输的第二单向虚拟连接。箭头507表示通过中间SAS扩展器从第一SAS设备向第三SAS设备返回的标准开放接受基元。因此,在第一SAS设备和第三SAS设备之间建立了第二单向连接。第二单向虚拟连接用于向第一SAS设备传回数据帧,而上面建立的第一虚拟连接用于从第一SAS设备向第二SAS设备传出的数据帧。
[0056] 通过建立与第一设备的两个单向虚拟连接,可以相对于现有技术改进将第一SAS设备耦合到SAS扩展器的SAS端口/链路的利用率。尽管现有技术允许在单个逻辑链路上在两个设备之间的全双工通信,然而在到单个盘驱动器存储设备或甚至某些RAID存储系统的SAS连接中,被耦合在开放的连接内的发起者和目标需要同时在两个方向上传输数据帧是极少见的情况。根据此处的特征和方面,由箭头501到507表示的消息建立的两个单向虚拟连接允许第一设备向第二SAS设备传输帧,而同时从第三SAS设备接收数据帧。
[0057] 响应于建立第二单向虚拟连接,第一SAS设备可以向第三SAS设备返回标准RRDY基元,表示用于从第三设备将被传输的数据帧的接收的可用信用。实际上,多个这种RRDY基元被从第一SAS设备转发到第三SAS设备,表示对用于存储所接收的帧的可用缓存区数目的计数。用于控制第一和第三SAS设备之间的消息流的信用协议是本领域的普通技术人员公知的。此处的增强的特征和方面仅区分用于两个单向虚拟连接中的每一个的信用管理逻辑,但是如本领域的普通技术人员所公知的,也利用了在SAS规范中描述的用于信用管理协议的本质相同的状态机逻辑。
[0058] 在建立第二单向虚拟连接期间的任意时刻,另一个设备可能准备好向第一SAS设备传回数据。箭头509表示从第四SAS设备(DEV4)指向回第一SAS设备的这种开放连接请求。SAS扩展器的增强特征侦听该开放请求,并且在认识到当前建立了第二虚拟连接的情况下返回开放拒绝SAS基元。根据通常的SAS协议处理,第四SAS设备可以重复开放请求,直到该请求被接受或超过了超时或超过重试次数。因此,箭头511和512表示用于建立第四SAS设备和第一SAS设备之间的开放连接的重复尝试,以及鉴于当前已经建立的第二虚拟连接的第二次拒绝。本领域的普通技术人员容易认识到第四SAS设备尝试的特定重试次数或与试图建立这种新连接相关联的超时值的持续时间与特定SAS域和应用的设计选择有关。在可替换的实施例中,除了拒绝该开放连接请求之外,增强的SAS扩展器可以向第四设备返回AIP基元,以便实际上“迟延”该开放请求直到当前虚拟连接终止为止。这种AIP基元在SAS协议中是已知的,用于表明所请求的连接当前忙。因此,根据已知的SAS协议,可以迟延该第四设备直到当前虚拟连接被终止为止。然后第四设备的“被迟延”的开放请求可被转发到第一SAS设备,以便建立另一个第二虚拟连接。
[0059] 集合地以514标识的相关箭头组(514.1到514.6)旨在表示第一虚拟连接和第二虚拟连接上的交换的大体重叠。如上所述,第一虚拟连接用于从第一SAS设备向第二SAS设备传输数据帧,同时第二虚拟连接用于从第三SAS设备向相同的第一SAS设备传回数据帧。箭头514.1表示利用第一虚拟连接从第一SAS设备到第二SAS设备的一个或多个数据帧传输。作为其响应,箭头514.2表示当传输的帧被缓存并且最终在第二SAS设备中被消耗掉(consume)时,使用第一虚拟连接从第二SAS设备向第一SAS设备返回的一个或多个RRED基元。箭头514.3表示使用第二虚拟连接从第三SAS设备返回第一SAS设备的一个或多个数据帧传输。箭头514.4表示使用第一虚拟连接从第二设备到第一SAS设备的ACK基元的最终返回。箭头514.5和514.6表示使用第二虚拟连接从第一SAS设备到第三SAS设备的RRDY和ACK基元的最终返回。因此图5示例性了使用两个同时开放的虚拟连接的在三个SAS设备(SAS设备1,SAS设备2和SAS设备3)之间交换消息的大体重叠。
[0060] 以514表示的消息分组表示了在两个方向上的数据帧传输(例如,514.1和514.3)的大体重叠,作为对传输的帧的接收的响应的RRDY和ACK基元的传输(例如,
514.2,514.4和514.6)等的大体重叠。本领域的普通技术人员容易认识到在两个虚拟连接上交换的各个消息可以彼此大体重叠-如果它们不是完全重叠的话。根据SAS协议以适当的顺序和次序交换在任意单个虚拟连接上交换的消息。换言之,第一虚拟连接上的帧传输(514.1)必须先于使用第一虚拟连接从第二SAS设备返回第一SAS设备的相应的RRDY和ACK基元(514.2和514.4)。以类似的方式,从第三SAS设备回到第一SAS设备的第二虚拟连接上的传输数据帧(514.3)必须先于使用第二虚拟连接从第一SAS设备返回第三SAS设备的相应的RRDY和ACK基元(514.5和514.6)。然而,第一虚拟连接上的各个业务(514.1,
514.2和514.4)可以与第二虚拟连接上的业务(514.3,514.5和514.6)大体重叠。
[0061] 本领域的普通技术人员容易认识到可以在各种设备之间交换的多种附加的或替换的SAS消息和业务。为了本讨论的简单和简短起见,从图5中去掉了这些附加的消息。因此,图5仅旨在作为根据此处的特征和方面的可以在各种SAS设备之间重叠的某些简化的消息交换的例子。具体地,并且开放的,建立的虚拟连接可被与建立的连接相关联的任意一个设备的操作关闭。例如,当第二虚拟连接被第一SAS设备或第三SAS设备的操作关闭时,出于从第四设备向第一设备传输数据帧的目的,另一个SAS设备(例如第四SAS设备)可以重新建立将第四SAS设备耦合到第一SAS设备的第二虚拟连接。另外,可以在第一SAS设备和SAS扩展器之间交换附加的增强消息以便终止增强操作模式。可以由于根据此处的特征和方面增强的各个第一SAS设备和/或SAS扩展器所确定的任何数量的原因而终止增强操作模式。当如此终止增强操作模式时,图5所建议的所有设备之间的所有业务将根据标准的现有SAS协议和规范操作。
[0062] 另外,本领域的普通技术人员容易认识到,关于第一和第二虚拟连接的建立不需要特定的顺序。换言之,可由希望向第一SAS设备返回数据帧的第三SAS设备建立第一虚拟连接。在该连接的建立之后,可以出于从第一SAS设备向第二SAS设备传输数据帧的目的在第一和第二SAS设备之间建立第二虚拟连接。
[0063] 图6是增强SAS扩展器的示例性实施例的方框图,其根据此处的特征和方面被增强以便提供增强的第一SAS设备和两个其他SAS之间的连接,从而允许第一设备和各个其他SAS设备之间大体重叠的通信。
[0064] 图6示出了具有两个标准PHY层602和604的简化的示例性的增强SAS扩展器104的功能部件。每个标准PHY层602和604分别包括接收逻辑621和623,并且分别包括传输逻辑622和624,用于与相应的连附的SAS设备接收和传输SAS信息。
[0065] 增强的SAS扩展器104还包括用于耦合到增强的SAS设备(即,第一设备-未示出)的增强端口/链路600。增强端口/链路600包括标准PHY层612及其相应的用于接收和向所连附的增强的第一SAS设备传输SAS信息的接收逻辑616和传输逻辑618。增强端口/链路600还包括交织器610和解多路复用器614,用于协调耦合到增强端口/链路600的第一设备和耦合到标准PHY层602的第二SAS设备之间以及第一SAS设备和耦合到标准PHY层604的第三SAS设备之间的同时连接。增强的SAS扩展器还包括RX监视器和连接控制逻辑640以及纵横开关650,用于协调同时的虚拟连接。
[0066] 如果控制逻辑640检测到没有使用增强操作模式(即,未做出增强模式命令和/或虚拟连接请求),则施加到控制总线630的信号通过交织器610和解多路复用器614禁止增强处理,并且简单地配置纵横开关650,用于正常操作(即全双工的正常操作)两个设备之间的点到点连接。换言之,增强的SAS扩展器104可被操作为配置增强端口/链路600用作任意标准的SAS端口。
[0067] 在增强模式操作中(即,在检测到请求增强操作模式的命令或有序集之后),控制逻辑640监视在所有三个端口(616,621和623)的接收逻辑上交换的SAS有序集,并且在控制总线630上施加控制信号(标记“A”)以便控制交织器610、解多路复用器614和纵横开关650。控制逻辑640监视从三个端口中的任意一个接收的有序集以便配置纵横开关650,用于建立和终止同时的第一和第二虚拟连接-例如,第一设备和第二设备之间的第一虚拟连接以及第一设备和第三设备之间的第二虚拟连接。这些设备中的任意一个可以关闭或终止它与另一个设备的虚拟连接。
[0068] 在第一和第二虚拟连接的操作过程中(即,在建立了至少一个虚拟连接的增强模式中),控制逻辑640控制增强端口600的解多路复用器614和交织器610的操作,以便通过将来自一个设备的有序集引导至相应虚拟连接的另一个适当设备从而协调所述两个虚拟连接的同时使用。该协调还可以伴随着有序集的缓存和/或排队,以便确保在虚拟连接中不丢失有序集,并且确保将关键有序集传递到适当设备,并且在必要时确保以恰当的顺序进行传递。
[0069] 例如,假定为第一设备到第二设备的数据传输在第一设备(耦合到增强端口600)和第二设备(耦合到标准PHY逻辑602)之间建立第一虚拟连接。另外,作为例子,假定了用于第三设备到第一设备的数据传输的第一设备和第三设备(耦合到标准PHY逻辑604)之间的第二虚拟连接。
[0070] 在这个示例性的第一虚拟连接中,通常,数据有序集传输主导支配从第一设备(在增强的端口600上)到第二设备(在标准PHY602上)的交换。通常,这种数据有序集通过解多路复用器614和开关650并且在路径668和662上从增强的端口600的接收逻辑616流到标准PHY602的传输逻辑622。以类似的方式,数据有序集传输主导支配从第三设备(在标准PHY604上)到第一设备(在增强的端口600上)的交换。这种数据有序集通常在路径666和664上通过开关650和交织器610从标准PHY604的接收逻辑623流到增强的端口600的传输逻辑618。
[0071] 虽然数据有序集可以主导支配进入交织器610的传输用于从接收逻辑623到传输逻辑618的应用,但还可以接收来自接收逻辑621的有序集用于诸如协议握手,开放和关闭连接,流控制等。以类似的方式,虽然从接收逻辑616到传输逻辑622的数据有序集主导支配通过解多路复用器614的传输,然而偶尔地,来自接收逻辑616的有序集通过解多路复用器614将被指向传输逻辑624,用于诸如协议握手,开放和关闭连接,流控制等。因此解多路复用器614适合于从增强端口600的接收逻辑616接收有序集,并且将接收的有序集经由路径666通过开关650施加到标准PHY层602,或经由路径668施加到标准PHY层604。控制逻辑640协调路径选择并且适当地配置开关650。另外,交织器610适合于经由路径662和666从接收逻辑612或经由路径664和668从接收逻辑613接收有序集,并且将接收的有序集施加到传输逻辑618。交织器610与由控制逻辑640产生的用于配置开关650的控制信号630结合来协调这个通信。
[0072] 解多路复用器614通常包括组合和/或顺序的逻辑,该组合和/或顺序逻辑可以实现例如状态机,以便与接收逻辑616协调数据集到传输逻辑622或到传输逻辑624的传输(在与配置开关650的控制逻辑640的另一个协调中)。
[0073] 交织器610通常包括组合和/或顺序逻辑,该组合和/或顺序逻辑可被操作为交织从接收逻辑621或接收逻辑623接收的有序集以用于到传输逻辑618的应用。该交织(与控制逻辑640的监视特征协作)可以检测在从接收逻辑623传输支配数据帧时何时可获得空闲时间段。直到检测到这种空闲时间段,才可以为以后的应用而缓存/排队从接收逻辑621接收用于到传输逻辑618的应用的有序集。当控制逻辑640和交织器610最终识别出空闲时间段时,可将缓存/排队的有序集(如果有的话)通过传输逻辑618从队列转发到第一设备。
[0074] 图6所示的增强SAS扩展器104的功能元件表示此处执行的功能的一种可能的示例性分解。本领域的普通技术人员容易认识到增强SAS扩展器中的具有此处的特征和方面的许多类似和等同的功能性分解。具体地,作为设计选择,本领域的普通技术人员容易明了上面讨论的逻辑特征的详细设计和实现。另外,本领域的普通技术人员容易认识到对上面讨论的图6中的功能元件的扩展,以便变更(scale)增强扩展器104以便提供多个这种增强端口600,并且允许所有这种端口彼此耦合以便在其间建立多个虚拟连接。因此图6仅旨在作为此处的特征和方面的一种可能的示例性实施例。
[0075] 如上所述,增强扩展器的交织器可以包括缓存和/或排队逻辑以便临时保存从第二向第一设备发送的一个或多个接收到的有序集,直到它们可以被与从第三到第一设备的其他有序集传输交织为止。可以为增强的SAS扩展器内的这个功能采用任意公知的缓存/排队结构。
[0076] 下面是对示例性的常见的SAS协议的有序集的讨论以及简要描述了当第二或第三设备中的一个当前正在向第一设备传输有序帧时,协调从第二或第三设备中的另一个接收的有序帧的交织以用于在增强端口上到第一设备的应用的交织器的示例性处理。本领域的普通技术人员容易认识到该特定的示例性处理不旨在表达针对特定有序集的必需处理。而是示例性处理仅旨在作为一种典型的处理,该典型的处理可以对于如下处理有用或可以对于如下处理没有用处,所述处理是交织从其他两个设备接收的有序集以用于到增强设备的应用,以便保持两个虚拟连接中的每一个上的通信。本领域的普通技术人员容易确定对于此处的特征和方面的特定应用有用的特定处理。例如,某些有序集可能需要由交织器排队,而其他数据集可以被简单地被丢弃而不会损失虚拟连接或在该虚拟连接上传输的数据的完整性。另外,最好在保持有序集在相应虚拟连接上被接收的顺序的同时,将某些排队的有序集转发到增强设备。作为设计选择,将明了这些设计细节。
[0077] 作为标准SAS握手协议的一部分,响应于第一虚拟连接内的从第一设备到第二设备的传输,期望ACK,NAK,CREDIT_BLOCKED和RRDY有序集,并且它们必须在另一个(第二)虚拟连接成为空闲时被转发到第一设备。由于可以在第二虚拟连接的空闲时段之间以相对快速的连续性接收多个这种有序集(除了CREDIT_BLOCKED之外),因此必须排队相同的数目,并且被转发到交织进入在第二虚拟连接的空闲时段的第一设备。排队的CREDIT_BLOCKED应当在任意排队的CLOSE之前被转发,但是可以以相对于其他排队的有序集(如果有的话)的任意顺序发送排队的ACK,NAK或RRDY有序集。如果连接被任何机制关闭,则任何排队的ACK,NAK,RRDY或CREDIT_BLOCKED可被从队列中清除。
[0078] 可以从远程端口接收表示数据帧传输、地址帧传输和重置请求的DATA,SOF,EOF,SOAF,EOAF和HARD_RESET有序集。这些有序集本身不需要被排队,而是被交织以便以提升的优先级转发回第一设备。
[0079] 一般不期望由交织器从第二或第三设备接收AIP,ERROR和与SATA有关的有序集以便转发到第一设备。因此交织器不需要缓存或排队这些有序集。如果向第一设备传输的另一个虚拟连接当前空闲,该有序集可被转发到第一设备,或其可被简单地丢弃。可以选择性地对ERROR有序集排队,以便向第一设备提供返回关于以前传输中的错误的更详细信息。不期望与SATA有关的有序集,并且事实上在启动增强操作模式时很可能排除了SATA连接。
[0080] OPEN_ACCEPT,OPEN_REJECT,DONE,CLOSE和BREAK有序集通常用于建立/拒绝和控制开放的连接,并且必须对其排队,并且当第二虚拟连接成为空闲时转发到第一设备。通常,一次仅接收这些有序集中的一个,并且因此通常不需要对用于转发的多于一个的这种有序集排队。通常应该在排队的DONE或CLOSE有序集之前转发排队的BREAK。通常应在任意排队的DONE或BREAK有序集之后转发排队的CLOSE。应当在任意相关联的排队的RRDY有序集之前转发排队的OPEN_ACCEPT,但是排队的OPEN_REJECT不需要以相对于其他排队的有序集(如果有的话)的任意特定顺序被转发。应当在任意排队的CLOSE有序集之前但是在任意排队的BREAK有序集之后转发排队的DONE。如果由任意机制关闭了连接,则任意排队的BREAK,OPEN_ACCEPT,OPEN_REJECT或CLOSE可被从队列中清除。
[0081] 可以接收但不需要排队或缓存ALIGN有序集。如上面的AIP,如果另一个虚拟连接当前未向第一设备传输,则ALIGN有序集可被转发到第一设备。
[0082] 可以在任意时刻在虚拟连接上接收BROADCAST有序集,并且其必须被转发到第一设备,并且因此必须为当另一个虚拟连接成为空闲时的稍后传输而排队该有序集。SAS扩展器内的通常处理已经规定了BROADCAST有序集的这种排队,并且因此可以利用类似的排队来对BROADCAST排队,并且稍后将排队的有序集转发到第一设备。通常不需要以相对于任意其他排队的有序集的任意特定顺序来转发排队的BROADCAST。
[0083] 设备通常发送NOTIFY有序集以便表示其准备好进一步处理(例如盘驱动器的旋转等)。根据SAS协议,它们可以被周期性地在四个的组中发送,并且还可以被ALIGN有序集取代。当连接将被关闭时如果这个有序集被排队,则应当在连接关闭之前发送排队的NOTIFY(或ALIGN)。如果由任意机制关闭了连接,则可以从队列中清除任意排队的NOTIFY。
[0084] 本领域的普通技术人员将认识到各种排队结构中的任意结构以及可用于这种排队结构的方法。例如,如果设置或重置相应的位,则每个位表示可以出现或不出现在队列中的一种有序集的情况下,可以提供简单的位阵列。对于可以具有多个排队条目的那些有序集,可以提供相应的计数器。在可替换的方案中,可以给具有后进先出队列或链表结构中的一列条目的更典型的队列结构提供相应于将被转发的一个有序集的各个条目。本领域的普通技术人员容易明了这些设计选择。
[0085] 另外,本领域的普通技术人员容易认识到可实现以便感知何时虚拟连接成为空闲的逻辑。SAS规范在样本状态机模型中提供了许多状态,其中一种特定连接被称为空闲。其他虚拟连接可以使用这种空闲时段(通过增强端口的交织器)向第一设备转发返回排队的有序集。因此,作为设计选择,本领域的普通技术人员容易明了实现此处被描述为增强端口的控制逻辑,交织器,和/或解多路复用器的特征和方面的组合和/或顺序逻辑的设计的特定细节。
[0086] 虽然已经在附图和前面的描述中示出并且描述了本发明,这些图示和描述在性质上将被认为是示例性而不是限制。已经示出和描述了本发明的一个实施例和其少量改变。希望保护落在本发明的精神内的所有改变和修改。本领域的技术人员将理解落在本发明的范围内的上述实施例的变形。具体地,本领域的普通技术人员将容易认识到此处的特征和方面可被等同地以电子电路实现,或被实现为通用或专用处理器的适当编程指令。作为设计选择,这些电路和编程设计的等价性是本领域的普通技术人员公知的。结果,本发明不限于上面讨论的特定例子和图示,而是仅由下面的权利要求和其等同物限定。