CN102306138A - 串行高级技术附件(sata)和串行附加的小型计算机系统接口(scsi)(sas)桥接 - Google Patents
串行高级技术附件(sata)和串行附加的小型计算机系统接口(scsi)(sas)桥接 Download PDFInfo
- Publication number
- CN102306138A CN102306138A CN201110278232XA CN201110278232A CN102306138A CN 102306138 A CN102306138 A CN 102306138A CN 201110278232X A CN201110278232X A CN 201110278232XA CN 201110278232 A CN201110278232 A CN 201110278232A CN 102306138 A CN102306138 A CN 102306138A
- Authority
- CN
- China
- Prior art keywords
- sata
- state
- initiator
- order
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
一种串行高级技术附件(SATA)和串行附加的小型计算机系统接口(SCSI)(SAS)桥接。公开本发明的一个实施例,它包括配置成符合SATA标准并且引起一个或多个主机与SATA装置之间的通信的通信系统。根据本发明的一个实施例,通信系统包括多端口桥接装置,它具有可响应来自一个或多个主机的命令和状态的命令状态管理器(CSM)以及可响应来自一个或多个主机的数据、用于基本上与命令和状态分开地缓冲数据的数据管理器(DM)。
Description
本申请是申请号为200780047978.1、发明名称为“串行高级技术附件(SATA)和串行附加的小型计算机系统接口(SCSI)(SAS)桥接”的专利申请的分案申请。
技术领域
一般来说,本发明涉及使主机按照串行高级技术附件ATA(SATA)/高速串行化AT附件和/或串行附连小型计算机系统接口(SCSI)(SAS)标准与装置进行通信的大规模存储器系统,具体来说,涉及桥接SAS和SATA连接。
背景技术
SATA协议概述
随着最近数十年对各种应用的大规模存储器系统的需要,出现对于标准化与大规模系统的通信、以便增加其使用的灵活性的需要。
SATA是大容量存储装置的并行高级技术附件(ATA)附件的高速串行链路替代。所采用的串行链路是点对点高速差分链路,它利用本领域的技术人员已知的千兆位技术和8b/10b编码。SATA协议基于与开放系统互连(OSI)参考模型相似的分层通信模型。下面提供概述。要获得更多详细资料,读者参阅SATA标准或规范,通过引用结合到本文中,并且在以下发布中提供:标题为“串行ATA:高速串行化ATA附件”或者“串行ATA国际组织:串行ATA”,修订版2.5,日期为2005年10月27日;以及标题为“串行ATA II:串行ATA 1.0的扩充,,修订版2.5,日期为2002年10月6日,它们目前均可在串行ATA 工作组网站www.serialata.org获得。
在SATA协议中,各协议层直接或间接地与其对等部分进行通信。串行ATA链路通过按照已知标准的协议来定义,其中具有四个通信层,即,用于在物理级执行通信的物理层、链路层、传输层和应用层或者有时称作命令层。发射器和接收器不能直接与后者相互通信,而是必须在到达另一个的对应层之前经过其系统的其它层。例如,为了使发射器的物理层与接收器的传输层进行通信,它必须首先经过发射器的链路、传输和应用层,然后经过串行ATA链路到达接收器的应用层,最后到达接收器的传输层。
通信或交换的基本单元是帧。帧由帧开始(SOF)和帧结束(EOF)组成,它们是根据SATA和SAS规范的不同定界符。在SATA中,STP包括帧信息结构(FIS)、对FIS的内容所计算的循环冗余校验和(CRC)以及帧结束(EOF)原语。串行ATA组织已经定义其中提供了帧的定义以及预计在本文档中使用的规范。原语是用于控制和提供串行线路的状态的双字(Dword)实体。串行ATA组织已经定义其中提供了容许原语的定义以及预计在本文档中使用的规范。
图1示出帧30的示例。图1中,帧以SOF原语30a开始,之后是第一FIS内容30b,之后是指明发射器没有可用数据的HOLD原语30c,之后是第二FIS内容30d,之后是被发送以便确认接收到接收器所发送的HOLD原语、指明接收器缓冲器处于‘未就绪’状况的HOLDA原语30e,之后是CRC 30f和EOF原语30g。
图1中,帧30包括用于流程控制的两个原语HOLD和HOLDA原语。HOLD原语指明不能够发送或接收FIS内容。发送HOLDA原语以便确认接收到HOLD原语。例如,当接收节点检测到它的缓冲器接近全满时,它将向传送节点发送HOLD原语,请求发射器节点停止,而当缓冲器预备接收更多数据时,接收节点将停止发送HOLD原语。传送节点发送HOLDA原语以便确认接收到HOLD原语。直至接收到HOLDA原语,接收节点才继续接收数据。为了防止缓冲器 溢出,SATA协议在节点发送HOLD原语与接收HOLDA原语之间要求20个Dword的最大延迟。
存在许多不同的帧类型。例如,为了经由直接存储器存取(DMA)发送数据,使用称作DMA建立FIS的帧,之后跟随DMA数据FIS。一般存在三种类型的FIS结构,一种用于命令,一种用于建立传递,以及另一种用于与该传递相关的数据。各帧结构用于不同目的。发送命令类型的帧来执行命令,使用建立帧来准备该命令的数据传递阶段,以及使用数据帧来传递数据。
本文所使用的“SATA驱动器”表示符合从驱动器或者向驱动器传递信息的SATA标准的介质或磁盘驱动器。驱动器以及与其耦合的装置之间的接口由SATA标准来定义。“SATA端口”是符合SATA标准的端口。“SATA驱动器”是“SATA装置”示例,而“SATA装置”是“目标”的示例。“目标”是接受命令以及响应所接收命令的装置。
需要一种用于桥接SATA与SAS装置之间、例如SATA主机与SATA装置或者SAS主机与SATA装置或者多个SAS装置与SATA装置之间的通信的装置或设备。
使用SAS作为链路,三种不同类型的通信协议可用于开启连接。它们是串行ATA隧道协议(STP)、SSP和SMP。STP用于SATA。STP用于允许在SATA标准中定义的SATA通信方法,SSP和SMP用于允许在SAS标准中定义的小型计算机系统接口(SCSI)类型的通信。
一旦‘开启’STP通信,一般遵照SATA协议。一旦‘开启’SMP连接,遵照SMP协议。更具体来说,开启连接和建立连接,由始发器发送请求帧,响应帧由目标发送,以及关闭连接。上述通信技术以及与SAS有关的其它信息见于SAS标准,参阅下列网站查找其副本:www.t10.org。来自始发器的请求包括功能代码,其中保留一个区域作为厂商唯一区域,用于进一步定义由例如目标所执行的功能。
本文所使用的“始发器”表示发送命令并且能够接收对所发送命令的响应的单元或装置。本文所使用的“目标”一般表示能够接收命令 的单元或装置。
目前不存在用于引起两个或更多SAS端口与SATA装置之间的通信的单一装置。此外,不存在如SAS标准中定义的、报告自身为SAS标准中定义的STP目标的终端装置类型。SAS端口是符合SAS标准的端口。此外,SATA装置的操作速率经常比也许为SAS主机要慢,性能的这种差异目前扩大到系统性能。因此,需要使SAS和SATA装置/主机的性能的速率的差异对系统性能是透明的,使得不存在较慢的速率所引起的明显延迟。
根据以上所述,出现对于允许SATA或SAS端口的不同拓扑结构与SATA装置之间的通信的高性能装置的需要。
发明内容
简言之,本发明的一个实施例包括配置成符合SATA标准并且引起一个或多个主机与SATA装置之间的通信的通信系统。根据本发明的一个实施例,通信系统包括多端口桥接装置,它具有可响应于来自一个或多个主机的命令和状态的命令状态管理器(CSM)以及可响应于来自一个或多个主机的数据的数据管理器(DM),用于基本上与命令和状态的分开地缓冲数据。
通过以下参照若干附图对优选实施例的详细描述,本发明的上述及其它目的、特征和优点将会非常明显。
附图说明
图1示出现有技术SATA协议通信层。
图2示出根据本发明的另一个实施例的通信系统10,它包括示为与多端口桥接装置16进行通信的SAS端口12和SAS端口14,多端口桥接装置16示为与SATA端口18耦合。
图3示出根据本发明的一个备选实施例、与桥接装置42耦合的SAS端口40,桥接装置42示为与SATA端口44耦合。
图4示出根据本发明的一个实施例、与桥接装置48进行通信的SAS端口46,桥接装置48示为与端口50进行通信,其中端口50在行为上是SATA类型但不是SATA端口。
图5示出与桥接装置54进行通信的SATA端口52,桥接装置54示为与SATA端口进行通信。
图6示出与多端口桥接装置62进行通信的SATA端口52和SATA端口60,多端口桥接装置62示为与SATA端口64进行通信。
图7示出一个备选实施例,其中,系统10包括与图6相似的配置,但是图7中的多端口桥接装置70还包括可响应于端口58和60并且还与装置62耦合的复用器78。
图8示出根据本发明的一个实施例、图2的系统10的其它细节。
图9示出根据本发明的一个实施例的CSM 94的其它细节。
图10示出表116的内容的示例。
图10(a)示出根据本发明的一种方法的流程图,它示出当从SATA装置接收到状态时由状态机119所执行的相关步骤。
图11示出从SATA装置所接收的状态150并且在状态中的示例。
图12示出图10(a)的映射的框图。
图13示出图8的SAS端口0或1之一中的SAS引擎160的其它细节。
图14示出根据本发明的一个实施例的数据管理器96的其它细节。
图15示出SATA装置相对于命令的数量的性能的图表。
图16示出从主机接收到命令时由CMS 94所执行的步骤的流程图。
图17示出由(图9的)CSM 94的状态机118所执行的相关步骤。
图18示出在图17的步骤214确定所接收命令不是排队命令之后由状态机118所执行的相关步骤。
图19-21示出当SATA装置或驱动器向主机或始发器返回状态时 所执行的相关步骤。
图22示出在增强上述公平性策略中由状态管理器120或121所执行的相关步骤。
图23示出当SATA装置响应始发器的请求而返回状态时的相关步骤。
图24示出每个状态寄存器120和121中包含的示范保持状态寄存器314。
图25示出根据本发明的一个实施例的存储器系统1000,它包括与一组扩展器1400、E0和E1耦合的一组始发器1200、I0和I1,其中扩展器组与通信系统1600进行通信。
具体实施方式
在实施例的以下详细描述中,参照形成实施例的一部分的附图,附图中通过举例说明的方式示出其中可实施本发明的具体实施例。大家要理解,可采用其它实施例,因为可进行结构变更,而没有背离本发明的范围。
在本发明的一个实施例中,通信系统配置成符合SATA标准并且引起一个或多个主机与SATA装置之间的通信。根据本发明的一个实施例,通信系统包括多端口桥接装置,它具有可响应于来自一个或多个主机的命令和状态的命令状态管理器(CSM)以及可响应于来自一个或多个主机的数据、用于基本上与命令和状态分开地缓冲数据的数据管理器(DM)。
在大规模存储器系统、如独立磁盘冗余阵列(RAID)中,多端口桥接装置用于在一个或多个始发器与目标之间进行通信。目标可以是用于存储由始发器所提供并且由始发器来访问的磁盘驱动器。主机和始发器在本文中用于表示同一个装置。本行业已经标准化符合SATA和串行附连SCSI(SAS)标准的用于存储的串行接口通信接口,这是本行业众所周知的。
通信桥接器用于允许一个或多个SAS端口或SATA端口与SATA装置或SATA类型的装置之间的通信。装置的示例是磁盘驱动器或CD-ROM。
现在参照图2,示出根据本发明的另一个实施例的通信系统10,它包括示为与多端口桥接装置16进行通信的SAS端口12和SAS端口14,多端口桥接装置16示为与SATA端口18耦合。在图2的实施例中,端口12和14符合SAS标准,以及端口18符合SATA标准。虽然图2中未示出,但是,端口18通过可称作SATA链路的连接24与SATA装置进行通信,而每个端口12和14分别通过连接20和22与主机进行通信。连接20和22均可称作SAS链路。
在本发明的一个实施例中,通信系统10是存储器或存储装置。与主机18耦合的SATA装置被认为是目标,并且符合SATA标准。装置16将SAS协议转换成SATA或者转换成SATA类型的行为。
现在参照本发明的各个实施例示出系统10的不同配置或拓扑结构,但也预期了其它配置或拓扑结构。在作为备选实施例的图3中,SAS端口40示为与桥接装置42耦合,桥接装置42示为与SATA端口44耦合。
图4根据本发明的一个备选实施例示出,SAS端口46与桥接装置48进行通信,桥接装置48示为与端口50进行通信,其中端口50在行为上是SATA类型但不是SATA端口。图5示出与桥接装置54进行通信的SATA端口52,桥接装置54示为与SATA端口进行通信。图6示出与多端口桥接装置62进行通信的SATA端口58和SATA端口60,多端口桥接装置62示为与SATA端口64进行通信。虽然在以上图中未示出,但是主机或始发器与SAS端口进行通信。例如,图6中,一主机可与端口58耦合,而另一个主机可与端口60耦合。图2与图6的实施例之间的差别在于,在后者中,端口64的输出示为转到SATA驱动器,而桥接器62在图6中示为与两个SATA端口58和60耦合,而不是图2中的SAS端口。
在以上附图的任一个的桥接装置接收来自一个以上的源的输入的情况下,它为多端口型,如图2和图6所示,而如果它的输入来自一个源,则不需要多端口型,如图3、图4和图5所示。此外,在两个SAS或SATA端口示为与桥接装置耦合的实施例中,更大数量的这类端口可与其耦合。
图7示出一个备选实施例,其中,系统10包括与图6相似的配置,但是图7中的多端口桥接装置70还包括可响应于端口58和60并且还与装置62耦合的复用器(mux)78。在图7的实施例中,复用器78在两个端口58与60之间进行选择,但是它可被停用或未使用(或者去除),以便允许两个端口58和60都与桥接器62耦合。
图8示出根据本发明的一个实施例、图2的系统10的其它细节。图8中,根据本发明的一个实施例,SAS-SATA转换装置80示为通过总线84与输入/输出和外围装置82耦合。装置80可以是前面附图所示的桥接装置,例如装置70或者装置62或者装置54、48、42或16。
在本发明的一个实施例中,装置80是终端装置,它是用于控制SATA装置的STP目标或SMP目标。
系统10还示为包括通过总线84与装置82和装置80耦合的微处理器100,并且微处理器100可以是例如控制器、状态机等的任何种类的处理单元,以及还示为与存储器102耦合。微处理器100的功能是执行各种系统功能,例如构建帧、引导信息通信以及微处理器所执行的其它类型的功能。存储器102是可选的,并且可由例如但不限于状态机等的其它装置替代。
装置80示为包括SAS端口86和88、连接协议管理器(CPM)090和CPM 192、命令状态管理器(CSM)94、数据管理器96以及驱动管理器(DRVM)98。端口86示为与CPM 090耦合,而端口88示为与CPM 192耦合。管理器98与SATA装置、如SATA磁盘驱动器进行通信,但是可采用其它类型的SATA装置。
端口86示为与CPM 090耦合,CPM 090示为与CSM 94和DM96耦合。端口88示为与CPM 192耦合,CPM 192示为与DM 96和CSM 94耦合。CSM 94和DM 96示相互耦合,而DRVM 98示为与DM 96耦合。DRVM 98示为与CSM 94耦合。
在参考标号104下方,遵照SATA协议,而在参考标号104的上方,端口86和88遵照SAS协议。CPM 090和CPM 192各确保符合SATA协议。CPM 090和CPM 192各区分命令帧、数据帧和控制帧,并且按照此向CSM 94传送命令帧、向DM 96传送数据帧以便进行处理。CSM 94向DRVM 98发出或传送命令,DRVM 98使用这个信息最终向SATA装置发送命令,以及当SATA装置(未示出)回送信息时(响应于来自DRVM 98的命令),后者向CSM 94传送或发送相同信息。对其进行响应,DRVM 98向CSM 94发送状态,以及CSM 94向CPM 090和CPM 192的一个或两个发送该信息。但是,如果该响应属于数据或控制类型,则DRVM 98向DM 96发送该信息,DM 96向CPM 090或CPM 192之一传送数据。
示为与装置80耦合的装置82还示为包括通用输入/输出(GPIO)和外围装置,以及总线84与系统10的各个块进行通信,如前面所述。总线84可称作微处理器总线。微处理器100配置GPIO,使得系统10的其余部分使用GPIO。
桥接功能由位于参考标号104下方直至DRVM 98的块来执行。DRVM 98用于遵照SATA协议,并且满足SATA规范的要求。系统10接受来自端口86和88的任一个或两个的命令,而无需任何复用或选择过程。也就是说,来自各端口的命令经过系统10的块的其余部分并且由其处理。这样,SMP用于参考标号104之上的通信,而STP用于参考标号104之下的通信。此外,CSM 94接收来自端口86和88的命令,并且缓冲或存储所接收命令。这样,系统10接收来自两个端口的命令,而无需任何复用或选择过程。
在仅使用一个SAS端口的实施例中,端口86或端口88的任一 个将会不存在,并且它们相应耦合的CPM 0或CPM 1也将会不存在。端口86和88各包括用于保存配置表的相应SAS引擎(图8中未示出)。本文所使用的表可以是能够更新的任何类型的存储位置。包含各端口以及经耦合以便与端口进行通信的始发器的状态信息的配置表在相应SAS端口中保存。例如,与端口86以及耦合(或者没有耦合)到端口86的始发器的状态有关的信息在端口86的SAS引擎中保存,并且作为配置表的一部分。类似地,与端口88以及耦合(或者没有耦合)到端口88的始发器的状态有关的信息在端口88的SAS引擎中保存,并且作为配置表的一部分。各SAS链路具有其为较大配置表的一部分的配置表。较大配置表通过级联来自各端口86和88的表的部分来形成。现在参照以下附图,论述图8的相关块的其它细节。
图9示出根据本发明的一个实施例的CSM 94的其它细节。图9中,根据本发明的一个实施例,CSM 94示为包括入局缓冲器0 103、入局缓冲器1 106、命令处理器状态机108、命令缓冲器110、状态0管理器120、状态1管理器121、命令挂起存储位置114、命令属性表112、驱动器队列表116、命令发布状态机118和入局状态的状态机119。
缓冲器0 103和1 106示为与状态机108耦合,状态机108示为与命令缓冲器110耦合,并且还示为与命令属性表112和命令挂起存储位置114耦合。命令挂起存储位置114示为与状态机118耦合。状态机119示为与表116耦合,而表112示为与状态机118耦合。搜索引擎105示为与状态0管理器120以及与状态1管理器121耦合。
缓冲器0 103和1 106各通过其各自的CPM可响应于来自相应主机的命令,并且相应地示为与其各自的CPM耦合。例如,缓冲器0 103接收来自CPM 0的命令,而缓冲器0 106接收来自CPM 1的命令。缓冲器0 103和1 106各向状态机108传递所接收命令以及与其相关的信息以便进行处理。
本文所涉及的状态机控制或者使过程进行。例如,状态机108使 命令被处理。命令缓冲器110示为与状态机118耦合。
存储位置114示为与命令发布状态机118耦合,命令发布状态机118又与DRVM 98耦合。状态机118示为与表116耦合。状态0管理器120和状态1管理器121示为与状态机119和命令属性表112耦合,并且还与CPM 0 90和CPM 1 92耦合。状态管理器120示为与状态机108(如为状态管理器121)耦合。状态管理器120和121还示为与表116耦合,表116示为从数据管理器96接收信息以及向数据管理器96传送信息。
又如图9所示,CSM 94包括:命令计数器91,与状态机108耦合;以及空闲队列指针表93,与状态机108、与状态管理器120和121、与状态机119耦合。计数器91还示为与状态管理器0 120和1 121耦合。应当注意,计数器91包括与始发器或主机的数量同样多的计数器或者包括保持与始发器或主机的数量同样多的计数的方法。
另外,CSM 94示为包括搜索引擎105,它与微处理器100、与表112以及与表116耦合。表93存储由状态机108用于分别将命令和命令属性存储在缓冲器110和表112的空闲或可用指针。当命令完成服务时,所服务的命令的指针可由状态机119在表93中恢复为可用指针。当接收到命令时,由状态机108访问表93以便检索空闲指针,以及指针用于分别将命令和命令属性存储到缓冲器110和表112。类似地,各状态管理器0 120和1 121可更新表93。
命令计数器91是可选的,但在使用时作为各始发器的计数器,它作为命令处理器状态机108的一部分,并且对于从始发器所接收的命令计数。计数器91所保持的计数再次与表示分配给始发器的命令的数量的预定值进行比较,以及如果比较表明所分配的命令数量过多,则由状态机108向从其处接收该命令的状态管理器报告错误消息。为了各种其它原因,可以可选地使用计数器91中的命令计数。各始发器具有与其关联的命令的唯一预定最大数量,为此,命令的每个这种预定数量由计数器91中的各个计数器使用。在本发明的一个 实施例中,与始发器关联的命令的预定最大数量存储在配置表中。
搜索引擎105(在微处理器100的指导下)具有搜索表116和/或表112的能力,因此可提供与命令、属性等有关的有用信息。可选地,搜索引擎105用于搜索状态管理器0 120和1 121。
存储位置114保持跟踪从始发器所接收的命令,而表116保持跟踪可实际离开或传送到SATA装置的命令。两种此类位置的存在提供了解决始发器的命令超过SATA装置可服务的命令数量的情况。因此,从始发器进入的命令在存储位置114中排队,而预备发送给SATA装置的命令在表116中排队。这允许接受比SATA装置能够处理的更多命令,并且在无需报告错误的情况下进行。在这方面,从始发器的角度来看,这种情况无关紧要。
状态机118确定存储位置114中的命令是排队还是非排队命令,并且根据命令类型,它将确保命令类型、即排队和非排队,与SATA装置中的挂起命令相匹配。在非排队命令的情况下,直到SATA装置不再具有挂起的命令才将命令发送给SATA装置。在排队命令的情况下,如果SATA装置可接受排队命令或者它具有挂起的其它排队命令,则将该命令发送给SATA装置。在始发器与(图7的)系统10耦合的情况下,状态机118允许多个始发器甚至可在送往相同或不同的端口的其它始发器命令完成之前向同一个(SAS)端口或者通过SAS链路86或88发送命令。
在操作中,命令由每个入局缓冲器0 104和1 106并行接收。随后,所接收命令由状态机108来处理。应当注意,缓冲器0 104和1 106所接收的命令遵照SATA协议。从空闲队列指针表93检索可用指针。然后,状态机108根据来自表93的指针的位置将已处理命令存储在缓冲器110中。来自表93、指向缓冲器110中的位置的指针用于存储命令,即,命令指针由状态机108存储在存储位置114中。
存储位置114是用于当命令到达时对指向命令的指针进行存储或排队的队列。在这方面,存储位置114是基于先到先服务的链接列 表。备选地,优先级列表用于根据优先级对将被服务的命令确定优先顺序。又备选地,采用两个列表,一个列表包括命令指针的链接列表,而另一个列表、即优先级列表包括可根据比其它入局命令更高的优先级而乱序服务的优先命令的列表。在维护的命令的优先级的变化对耦合到系统10的始发器保持为透明。
当命令的指针使它到达位置114中的其它命令指针列表的前面时,该命令从缓冲器110存储在状态机118中,并且提供给DRVM 98,DRVM 98向装置或磁盘驱动器(或目标)发出该命令。状态机118将命令信息存储到表116中,并且将它发送给DRVM 98。当状态机118向驱动器(SATA装置)发送命令时,它还向表116发送命令信息。
目标最终向DRVM 98回送状态,DRVM 98将状态存储在状态机119中。状态机119又将状态提供给状态管理器0 120或1 121的一个或两个,无论哪一个状态管理器接收到该状态都将构建包含从DRVM 98所接收的状态的帧。将符合SATA标准的已构建帧传送给与构建该帧的状态管理器对应的CPM 0 90或CPM 1 92。换言之,如果状态管理器0 120构建该帧,则将帧传送给CPM 0 90,而如果状态管理器1 92构建该帧,则将帧传送给CPM 1 92。通过状态管理器接收该帧的CPM最终通过其SAS端口或引擎将该帧传送给耦合到系统10的始发器(未示出)。从DRVM到SAS初始化的状态的路径称作“返回状态”。如前面所述,只有SATA帧才由CSM 94来处理和接收,因为所有SAS协议在帧到达CSM 94之前从帧中剥离。
表116的内容的示例如图10所示。表116的行称作索引,并且存在标记为索引0-31的32个索引。表116的列包括‘有效’位列140、指向命令缓冲器的指针列142、始发器编号列144和始发器标签列146。列142存储关联索引的指针,各指针指向命令缓冲器110中的位置和指向命令属性表112中的位置。命令属性表112包括与命令有关的属性,即命令的类型、与命令关联的可能的错误等,并且它在命令到达时由状态机108来更新。表116由状态机118或状态管理器 119或者状态管理器120或121来更新。
指针最终存储在表93中,并且可用于其它命令。列144包括与索引关联的始发器编号,所索引的行的命令来自其中,以及列140表示与表116的关联行的命令的有效性有关的信息。标签最初由始发器发送给系统10,并且它存储在命令属性表112中。然后,重新映射已存储标签,以便避免始发器已经发送同一个标签的情况,因为例如不能将两个标签0发送给SATA装置或驱动器。标签的重新映射避免这种情况,并且由状态机118进行。状态机118搜索标签在其中可用的表116的第一条目,并且使用找到的条目。
在其它实施例中,可找到与第一条目不同的条目,例如但不限于最后一个条目或者随机号条目。也就是说,表116用于查找下一个或第一个有效索引。状态机118查找表116中被指示为不是‘有效’的第一位置,并且使用其中的标签值作为新标签。列146则包括该标签,其最终用于对于表116的各索引或行寻址SATA装置。
表116中在关联列140中具有值且设置成无效命令的行将在关联列146中具有能够自由使用的(始发器)标签,因为对于那个标签不存在挂起命令。根据本发明的一个实施例,始发器标签到SATA装置或驱动器或者反之的映射以非固定格式或者动态地进行。也就是说,标签与始发器关联,而在现有技术系统中,一组标签永久地分配到给定始发器,并且另一组标签永久地分配到另一个始发器,其中始发器和标签的关联固定不变,而在本发明的一个实施例中,始发器标签动态地分配。也就是说,标签没有永久地分配给始发器,而是状态机118将标签分配给始发器,该标签稍后可重新分配给另一个始发器。在一个实施例中,命令发布状态机118动态地使标签从主机分配给SATA装置。
列142允许命令易于位于命令缓冲器110或者在属性表112中,使得如果始发器希望重新访问命令,则这可易于使用指向命令缓冲器的指针进行。列144包括用于确定SATA装置向其发送状态的状态管 理器0120和1121的哪一个或两个的信息。在下列情况下将状态提供给两个状态管理器:例如,当SATA装置提供状态并且使状态提供给两个不同始发器时,或者当SATA装置进行响应并且使响应提供给两个不同始发器时。
在表116中,在无论哪一个索引或行中,存在指明‘未设置’的关联‘有效’条目,与其关联的标签可以使用。在图10的示例中,由于存在32个索引,所以可使用32个标签。如果表116全满,或者所有32个索引都具有有效命令,则没有命令可向SATA装置发出。数量32只是用作举例,因此可采用其它数量的索引。
可将状态返回给一个或多个始发器。因此,表116提供确定一个或多个始发器是否已经返回状态以及哪些标签已经分配给SATA驱动器的方式。
现在提供映射图9和图10的表116中的信息的方式的论述。图10(a)中,根据本发明的一种方法,示出当从SATA装置接收到状态时由状态机119所执行的相关步骤的流程图。首先,在步骤189,DRVM 98向状态机119提供状态。然后,在步骤191,状态机119执行组合解码,然后在步骤193,将状态提供给状态管理器0 120和1 121。在步骤191,把来自DRVM 98的状态组合地与表116中的信息进行比较,它以有效迅速的方式产生对始发器的状态。备选地,可采用与组合比较不同的方式。
图11示出从SATA装置所接收的状态150并且在状态中的示例。在SATA规范中,状态150称作SACTIVE寄存器。存在32位,其中每个位用作表116的索引之一。每个标签有一位,标签的数量由状态150的宽度或位的数量来确定。现在相对于图11和图12进一步说明表116的内容赋予的有益效果的一部分。
图12中示出图10(a)的映射的框图。第一标签的示例用作对表116的索引,以便快速检索与始发器和标签有关的信息。也就是说,在步骤152,状态150中的位一的值被确定,并且在步骤154用于索引通 过表116中的索引1进行索引的行。随后,在步骤156,从表116检索与索引1关联的列144中的始发器编号以及与索引1关联的列146的I标签。随后,为下一个位或索引设置适当的位。表116的使用允许使用组合逻辑或存储器快速地检索始发器编号和I标签(始发器标签),这都是众所周知的。
防止始发器发出比未完成标签的数量更多的命令。也就是说,在以上示例中,如果33个命令由始发器发出,而32个是未完成的,则产生错误。对于‘非排队’命令,确定对于同一个始发器是否存在一个以上非排队命令,以及如果是的话,则产生错误。如前面所述的用于处理命令的规则通过命令属性表112来检验。‘排队’命令在如上文引用的SATA标准中规定如。
图13示出图8的SAS端口0或1之一中的SAS引擎160的其它细节。图13中,SAS引擎160示为包括连接状态机162、从属关系表164、原语中断处理器(primitive interrupt processor)168、SMP缓冲器状态机166,它们均示为与状态机170耦合。表164是本文所述的配置表的一部分。引擎160通过SAS链路来接收信息,SAS链路可以是链路86或88,并且与CPM 0 90或CPM 1 92的任一个耦合。在操作中,引擎160首先构建开启帧,通过SAS链路将开启帧发送给始发器,以及接收来自始发器的开启接受原语并且建立到始发器的连接。CPM请求与始发器连接,然后状态机162和166执行将SAS总线(或链路)与所请求始发器连接所需的步骤。
一旦建立连接并且传递数据,则关闭连接。由于系统10的体系结构,连接可编程为立即关闭或者在预定时间期之后关闭或者使用帧类型来关闭。后者的示例包括使用连接,即便是通过检测已经传递帧的时间或者通过帧的状态来保持其为开启。另一个示例是通过了解帧类型,连接需要使用的时间量为已知,因此定时器可用于根据所检测帧类型来跟踪预定时间期,以及当定时器达到预定时间期时,可关闭连接。由于数据/状态/控制的缓冲,避免了等待接收来自驱动器的信 息。也就是说,开启连接,缓冲数据帧,然后可关闭连接,以及此后将数据发送给SATA装置,因为已经缓冲或存储帧,并且无需等待连接的关闭,这有助于提高系统的性能。在不允许与SATA装置关联的任何延迟通过系统扩大中,这也是重要的。此外,命令可从始发器实时接收,而没有局限于SATA装置的能力。
在始发器正向SATA装置发送数据的情况下,数据在由系统10接收时被缓冲,然后发送给SATA装置,由此避免与SATA装置接受数据关联的延迟。这有助于提高的系统效率和性能。
始发器开启SMP连接,并且执行SMP功能。相对于引擎160进入和离开的信息存储在SMP缓冲器和状态机166中。微处理器100构建将要转到始发器的帧,并且将它存储在SMP缓冲器和状态机166中,以便最终传送给始发器。这样,始发器可与SATA活动无关地执行控制功能,这有助于提高的系统性能。
图14示出根据本发明的一个实施例的数据管理器96的其它细节。根据本发明的一个实施例,数据管理器96示为包括上游状态机176、数据缓冲器174、控制FIS缓冲器178、FIS处理器状态机182、数据管理器控制状态机172和下游状态机180。状态机180示为与DRVM 98耦合,而状态机176示为与CPM 0和CPM 1耦合。状态机172示为与CSM 94耦合。状态机176还示为与状态机172、与缓冲器178以及与数据缓冲器174耦合。
状态机182示为与缓冲器178耦合,缓冲器178又示为与状态机180耦合。数据缓冲器174存储一帧或多帧。图14中,控制FIS由缓冲器178来缓冲。信息流是从状态机176到状态机180或者反之。在一个实施例中,状态机172和182在物理上可以是同一个状态机。
在操作中,当控制FIS从SATA装置接收时,将它缓冲或存储在缓冲器178中。当接收到控制FIS时,状态机182修改所接收的控制FIS,并且通知状态机172,状态机172进一步修改已修改的控制FIS,并且通知状态机176从缓冲器178发送数据。
从状态机176下发信息时,状态机176向状态机172提供信息,它通知状态机180发送该信息,以及在完成传递时,状态机172通知状态机180从缓冲器174删除FIS。
关于数据,当它到达时,在状态机182的指导下,数据缓冲或存储在数据缓冲器174中,并且稍后发送给状态机180。当数据预备发送给对于SATA装置的始发器时,状态机从缓冲器174检索该数据,并且通知状态机172,状态机172则通知状态机176,以及数据被发送。当数据从SATA装置去始发器时,在状态机182的指导下,通知状态机172,数据存储在缓冲器174中,以及状态机172通知状态机176,并且将通过状态机180提供的数据传送给始发器。离开系统10的数据帧的顺序与到达的顺序相同。
由于缓冲整个帧,因此,如果存在与SATA链路关联的延迟,则没有阻碍SAS链路,这在很大程度上归因于本发明的各个实施例的缓冲。此外,SAS与SATA链路之间的不同数据速率被实现,以及由于帧缓冲而对于始发器将变成透明的,并且还允许关闭连接的有效方法。作为一个示例,如果SAS链路以每秒6千兆位的速率传递信息,而SATA驱动器仅能够以每秒3千兆位的速率接收信息,由于本发明的各个实施例的缓冲,始发器没有遇到延迟,而在现有技术中则遇到延迟。本发明的实施例的系统10基本上吸收任何这类延迟。
如本发明的实施例所进行的通过系统10的缓冲状态、命令、控制和数据通过释放SAS链路以便允许另一个始发器使用它,使得系统能够改进。通过如在数据管理中进行的那样缓冲整个帧,与SATA装置关联的延迟保持为透明。
图15示出SATA装置相对于命令的数量的性能的图表。也就是说,在x轴上示出命令的数量,而在y轴上示出系统的性能。系统的峰值性能在32个命令之前出现,并且此后实际上减小,在32命令点附近,性能保持恒定。命令的峰值性能数量被计算并且存储在状态机118中。状态机118在表116中仅搜索命令的峰值性能数量减1,通 过这种方式缩短与命令的搜索关联的时间。在图15的图表中看到,通过提高SATA装置的性能,减少发送给SATA装置的命令的数量还提高系统性能。
图16示出从主机接收到命令时由CMS 94所执行的步骤的流程图。首先,在步骤200,从空闲队列指针表93检索空闲或可用指针。如果指针可用,则该过程进入步骤202,但是,如果没有空闲指针可用,则在204存在故障,并且记录错误状况。
在步骤202,检查所接收命令本身,以便确定它是否为有效或理解的命令,以及如果是,则该过程继续进行到206,而如果不是,则该过程继续进行到204。在206,确定命令是否排队,以及如果是,则该过程转到步骤208,否则,该过程继续进行到210。在步骤210,所接收命令存储在命令缓冲器110中,并且例如始发器编号、排队或非排队命令状态等的所接收命令的属性以及其它关联属性存储在表112中。在其它实施例中,命令属性可以是与命令有关的其它信息。
在步骤208,通知状态管理器120或121发送释放,在释放完成时,实际上释放了或者空闲了状态管理器通过CPM与其耦合并且其曾正在接收该命令的链路。随后,在步骤210,将所接收命令放入或者存储在位置114中。
图17示出由(图9的)CSM 94的状态机118所执行的相关步骤。在212,在位置114中存在尚未发送给驱动器、因而处于队列中(在位置114)等待被服务的挂起命令。随后,在步骤214,确定当前(或挂起)命令(或者队列中下一个被服务的命令)是否为‘排队’命令。如果确定命令是排队命令,则该过程进入218,如果不是,则该过程继续进行到216。
在218,状态机118确定SATA装置是否处于队列模式,以及如果是,则该过程继续进行到224,而如果不是,则该过程继续进行到步骤220。状态机118中的状态位指示队列/非队列模式。队列模式与具有排队命令相同,而非队列模式与具有非排队命令相同。队列模式 允许向ATA装置发送一个以上命令,而非队列模式仅允许向其发送一个命令。SATA标准定义队列模式和非队列模式。
在步骤220,花费时间等待表116变空、即离开队列模式,类似地,花费时间等待清空状态管理器118,并且当这种情况发生时,执行步骤222,其中状态机118中的状态设置成队列模式,以及过程进入218,其中确定状态机118处于队列模式。
随后,在224,确定表116中的位置是否可用,以及如果是,则过程转到步骤226,而如果不是,则花费时间等待位置在116中变为可用。随后,在步骤226,将要发送给SATA驱动器或装置的命令从位置114移到表116。随后,在步骤228,将命令发送给SATA装置,以及该过程回到步骤212。
图18中,示出在图17的步骤214确定所接收命令不是排队命令之后由状态机118所执行的相关步骤。图18中,在216之后,在230确定状态机118是否处于队列模式,以及如果是,则该过程进入步骤232,其中花费时间等待表116变空,并且当它确实是时,执行下一个步骤234。在步骤234,状态机118设置为非队列模式,以及该过程继续进行到230。如果在230确定状态机118处于队列模式,则执行步骤236。在步骤236,经历时间等待表116变空。一旦表116变空,则将命令发送给SATA装置,以及该过程返回到图17的步骤212。
图19-21示出当SATA装置或驱动器向主机或始发器返回状态时所执行的相关步骤。图19中,在步骤240,SATA装置或驱动器向装置80返回或回送状态,装置80由状态机119管理。状态机119确定当前模式是否为排队模式。如果模式是队列模式,则在步骤244,状态由状态机119来解码。随后,在步骤246,状态管理器120或121的保持寄存器中的位按照解码的状态来设置,以便将状态转发给主机,以及该过程继续进行到248。
如果在242确定模式不是队列模式,则该过程继续进行到步骤250,其中把从SATA装置所接收的状态信息发送给状态管理器120 或121,以及该过程继续进行到248。
图20中,在248之后,在252确定是否已经进行手动状态请求,以及如果是,则该过程继续进行到步骤254,并且手动发送SATA装置的状态。如果在252的确定产生没有发送手动状态请求,则该过程继续进行到256,其中进行关于队列模式的确定,以及如果确定当前模式是队列模式,则该过程继续进行到258,然而,如果没有检测到队列模式,则该过程继续进行到260,其中进行另一个确定。在260,确定命令状态是否可用,以及如果是,则该过程继续进行到步骤262,而如果不是,则该过程回到252。
如果在260确定命令状态可用,则在步骤262向主机或始发器发送命令状态。随后,在步骤264,如果可用,则更新表116以便反映下一个挂起状态。此外,在步骤266,更新表93以便使曾被使用的指针再次可用。类似地,在步骤268,更新表112。
在258之后,该过程继续进行到图21中的270,其中由CSM 94确定命令状态是否可用,以及如果确定命令状态不可用,则该过程继续进行到图19中的步骤240,否则该过程继续进行到步骤272。在步骤272,将最高优先级状态发送给始发器。在274,确定状态是否成功地发送给始发器,以及如果是,则该过程继续进行到步骤276,否则该过程继续进行到步骤240。
在步骤276,根据在步骤272已经发送的前一个最高优先级状态来更新优先级状态。随后,在步骤278,如果可用,则更新表116以便反映下一个挂起状态。此外,在步骤280更新表112,类似地,在步骤282更新表93,以便使指针可用。在步骤282,该过程回到步骤240。
各状态管理器120和121还跟踪服务来自始发器的请求的公平性,以便实现被服务的请求的公平性。这种公平性策略基于来自始发器的最早请求首先被服务,并且还基于关于是否为忙的始发器的状态。通过检查图13中的重试定时器171,状态管理器知道始发器是 否为忙。当确定始发器为忙时,SAS引擎启动定时器171,以及当定时器171到期时,SAS引擎清除由状态管理器检查以便确定始发器的可用性的状态位。
来自不忙的始发器的最早请求首先被服务,之后是来自不忙的始发器的下一个最早请求,依此类推。一旦服务了来自始发器的请求,则将该请求移到请求列表的底部。因此,在其中使用表或链接列表的情况下,来自不忙的始发器的位于表或链接列表顶部的请求被服务,并且在其已经被服务之后移到表或链接列表的底部。
图22示出在增强上述公平性策略方面由状态管理器120或121所执行的相关步骤。在步骤290,假定存在挂起状态并且该状态不为空,则下一个步骤292将取对于始发器的挂起请求的顶部条目(在本发明的一个实施例中,这些请求在表或链接列表中,如前面所述),然后在294,确定在步骤292取其请求的始发器是否忙,以及如果是,则不处理所取条目,而是在步骤296,从请求的表或链接列表的顶部取下一个条目,并且在294检查在步骤296取其条目的始发器的繁忙性。当检测到始发器为忙时,启动图13的重试定时器171,以便允许状态管理器知道忽略这个条目并且将它保持在优先级列表的顶部。
如果在294发现始发器不忙,则在步骤298响应所取条目或请求而向始发器发送状态。随后,在300,校验所发送状态是否成功,以及如果确定状态未成功发送,则该过程回到步骤290,否则该过程继续进行到步骤302。
在步骤302,不在请求的表中的来自始发器的新条目或请求被加入表或列表的底部。也就是说,更新表以便包括附加请求,但是按照公平性策略,将新请求加入表的底部。
随后,在308确定是否存在挂起的始发器的更多状态,以及如果是,则该过程继续进行到步骤306,否则该过程回到步骤290。在步骤306,如果确定存在来自始发器的其它条目或请求,则附加请求/条目存储在条目的列表或表的底部。
图23示出当SATA装置响应始发器的请求而返回状态时的相关步骤。首先,在步骤310,从DRVM 98返回SATA装置的状态。在一个实施例中,这是32位的值,但是大家理解,该值的长度以及格式可以不同。随后,执行表116的映射,如上所述。随后,在步骤312,将可能到达或离开的当前状态与状态管理器120或121中的存储的状态进行比较(由后者)。存储的状态位于保持状态寄存器314中。
图24示出每个状态寄存器120和121中包含的示范保持状态寄存器314。寄存器314比较进入状态管理器的状态,以及类似地比较离开寄存器314的状态。
现在参照图25,示出根据本发明的一个实施例的存储器系统1000,它包括与一组扩展器1400、E0和E1耦合的一组始发器1200、I0和I1,其中扩展器组与通信系统1600进行通信。大家要理解,虽然示出两个始发器和两个扩展器,但是可采用任何数量的始发器和扩展器。系统1600可被认为是‘目标’。扩展器E0和E1用作交换机,并且通常具有与其连接的许多目标和/或扩展器的分级结构。可选地,没有使用扩展器,又可选地,始发器可位于扩展器之内。系统1000的拓扑结构总体上是灵活可变的。I0示为与E0和E1耦合,而I1示为与E1、与E0耦合,以及E0和E1示为相互耦合。
系统1000示为与SATA磁盘驱动器1800耦合。磁盘驱动器1800是SATA驱动器,因此使用SATA标准与系统1000进行通信。系统1000示为包括两个端口、即端口2000和2200,用于引起使用SAS接口与扩展器E0和E1进行通信。系统1000使用第三端口2400来使用SATA标准协议与驱动器1800进行通信。驱动器1800为双端口型,具有可同时为活动的一个以上通信路径。
虽然图25中未示出,但是在实际应用中,系统1000可包括与驱动器1800相似的、耦合到扩展器的许多驱动器。例如,扩展器2600可与许多驱动器耦合,以及与扩展器2600不同的其它扩展器(未示出) 可用于还将其它驱动器与系统耦合。在上述系统中,通常还存在许多始发器。其本身作为系统10的示例应用的图25的系统1000的一些示例应用包括但不限于文档存储和检索、照片存储和检索、会计软件存储和检索以及基本上使用RAID的任何其它应用。由于所采用的大存储容量,具有到装置、如始发器的多个路径非常合乎需要,如为与状态和错误有关的各种信息。这显然允许更大的灵活性、更好的性能性能以及更低的成本以及其它有益效果。
驱动器1800与RAID相似,但它为双端口型,并且由将驱动器用于存储电子信息的始发器来访问。在存在所使用的一个以上始发器的情况下,出现多个问题,例如始发器都要求访问驱动器,它们通过本文所述的各个实施例和方法来解决。
虽然根据具体实施例来描述了本发明,但是预计本领域的技术人员肯定非常清楚对它的变更和修改。因此,以下权利要求书预计被理解为涵盖落入本发明的精神和范围之内的所有这类变更和修改。本领域的技术人员清楚地知道将本发明与现有技术结合以便开发执行包括本发明的理论的多个功能的装置和方法。这类装置和方法落入本发明的范围之内。
Claims (7)
1.一种将挂起命令从始发器传递给SATA装置的方法,包括:
确定挂起命令是否是排队命令;
在确定所述挂起命令是排队命令时,确定所述SATA装置是否处于排队模式中;
在确定所述挂起命令是排队命令时,确定驱动器队列表中的位置是否是可用的;
如果确定所述表中的所述位置是可用的,则将所述排队命令存储到所述表;以及
将所述存储的排队命令传递给所述SATA装置。
2.如权利要求1所述的传递的方法,其中,在确定所述挂起命令是排队命令时,设置排队模式。
3.如权利要求1所述的传递的方法,其中,在确定所述挂起命令是非排队命令时,设置非排队模式。
4.一种从一个或多个始发器传递意在送往SATA装置的命令的方法,包括:
接收命令;
确定用于指向在其中可存储所述命令的位置的空闲指针;
使用所述空闲指针来定位在其中将要存储所述命令的存储位置;
将所述命令存储在由所述指针定位的所述存储位置中;
优先考虑用于传递给所述SATA装置的所述存储的命令;以及
将所述优先考虑的命令传递给所述SATA装置。
5.一种将SATA驱动器的状态传递给主机的方法,包括:
接收来自所述SATA驱动器的状态;
确定当前模式是否是排队模式;
如果所述模式被确定为是排队模式,则解码所述接收的状态并根据所述解码的状态来设置保持寄存器中的位,并且如果确定所述模式不是排队模式,则发送所述接收的状态;
确定手动状态请求是否已经被进行;
如果确定手动状态请求已经被进行,则手动地发送所述接收的状态;
如果确定手动状态请求尚未被进行,则确定所述模式是否是排队模式;
如果确定所述模式不是排队模式,则发送所述接收的状态;
更新驱动器队列表;
更新空闲队列指针;以及
更新命令属性表。
6.如权利要求5所述的传递状态的方法,还包括以下步骤:在确定手动状态请求尚未被进行并且所述模式是排队时,关于命令状态是否是可用的确定被进行,并且如果确定所述命令状态是不可用的,则继续进行到从所述驱动器接收状态的步骤,并且如果确定所述命令状态是可用的,则向始发器发送最高优先级状态,并且如果是可用的,则更新驱动器队列表以反映下一个挂起状态。
7.如权利要求6所述的传递状态的方法,还包括更新命令属性表并且更新空闲队列表的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/644,549 US7761642B2 (en) | 2006-12-22 | 2006-12-22 | Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging |
US11/644549 | 2006-12-22 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800479781A Division CN101611383B (zh) | 2006-12-22 | 2007-09-18 | 串行高级技术附件(sata)和串行附加的小型计算机系统接口(sas)桥接 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102306138A true CN102306138A (zh) | 2012-01-04 |
Family
ID=39544555
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800479781A Expired - Fee Related CN101611383B (zh) | 2006-12-22 | 2007-09-18 | 串行高级技术附件(sata)和串行附加的小型计算机系统接口(sas)桥接 |
CN201110278232XA Pending CN102306138A (zh) | 2006-12-22 | 2007-09-18 | 串行高级技术附件(sata)和串行附加的小型计算机系统接口(scsi)(sas)桥接 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800479781A Expired - Fee Related CN101611383B (zh) | 2006-12-22 | 2007-09-18 | 串行高级技术附件(sata)和串行附加的小型计算机系统接口(sas)桥接 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7761642B2 (zh) |
EP (1) | EP2126705B1 (zh) |
JP (1) | JP4961481B2 (zh) |
CN (2) | CN101611383B (zh) |
WO (1) | WO2008079468A1 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953917B2 (en) * | 2005-06-30 | 2011-05-31 | Intel Corporation | Communications protocol expander |
US7962676B2 (en) * | 2006-12-22 | 2011-06-14 | Lsi Corporation | Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords |
US7653775B2 (en) * | 2007-04-09 | 2010-01-26 | Lsi Logic Corporation | Enhancing performance of SATA disk drives in SAS domains |
US20090113454A1 (en) * | 2007-10-29 | 2009-04-30 | Inventec Corporation | System and method of testing bridge sas channels |
US7912995B1 (en) * | 2007-12-20 | 2011-03-22 | Emc Corporation | Managing SAS topology |
JP5146123B2 (ja) * | 2008-06-10 | 2013-02-20 | 富士通株式会社 | 管理装置、管理方法、管理プログラム及び電子装置 |
US8190983B2 (en) * | 2008-06-12 | 2012-05-29 | Lsi Corporation | Apparatus and methods for CRC error injection in a storage system |
US9384160B2 (en) * | 2008-09-04 | 2016-07-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods and controllers for affiliation managment |
US8082391B2 (en) * | 2008-09-08 | 2011-12-20 | International Business Machines Corporation | Component discovery in multi-blade server chassis |
US20100250830A1 (en) * | 2009-03-27 | 2010-09-30 | Ross John Stenfort | System, method, and computer program product for hardening data stored on a solid state disk |
US8090905B2 (en) * | 2009-03-27 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format |
US8671258B2 (en) | 2009-03-27 | 2014-03-11 | Lsi Corporation | Storage system logical block address de-allocation management |
CN101853235B (zh) * | 2009-04-02 | 2014-04-30 | 鸿富锦精密工业(深圳)有限公司 | 串行端口切换装置 |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US8166258B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US8516264B2 (en) * | 2009-10-09 | 2013-08-20 | Lsi Corporation | Interlocking plain text passwords to data encryption keys |
US8245112B2 (en) * | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US9063561B2 (en) * | 2009-05-06 | 2015-06-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Direct memory access for loopback transfers in a media controller architecture |
US20110004718A1 (en) | 2009-07-02 | 2011-01-06 | Ross John Stenfort | System, method, and computer program product for ordering a plurality of write commands associated with a storage device |
US9792074B2 (en) * | 2009-07-06 | 2017-10-17 | Seagate Technology Llc | System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips |
US8255607B2 (en) * | 2009-11-05 | 2012-08-28 | Emulex Design & Manufacturing Corporation | SAS expander-based SAS/SATA bridging |
US9063655B2 (en) * | 2010-05-12 | 2015-06-23 | Silicon Image, Inc. | Multi-level port expansion for port multipliers |
US8281054B2 (en) * | 2010-08-25 | 2012-10-02 | Lsi Corporation | Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication |
US8275925B2 (en) * | 2010-08-25 | 2012-09-25 | Lsi Corporation | Methods and apparatus for improved serial advanced technology attachment performance |
JP5593184B2 (ja) | 2010-09-30 | 2014-09-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチパスを使用するシステム及び方法 |
US8677048B2 (en) * | 2010-10-26 | 2014-03-18 | Netapp Inc. | Communication with two or more storage devices via one SAS communication port |
CN102043631A (zh) * | 2010-12-31 | 2011-05-04 | 富泰华工业(深圳)有限公司 | 窗口控制系统及其控制方法 |
CN103135938A (zh) * | 2011-11-23 | 2013-06-05 | 英业达股份有限公司 | 主动式raid的单关连性sata驱动器的控制系统及其方法 |
US8788736B2 (en) * | 2011-12-27 | 2014-07-22 | Lsi Corporation | Methods and structure for communicating between a SATA host and a SATA target device through a SAS domain |
US9626318B2 (en) | 2012-01-26 | 2017-04-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for storage protocol compliance testing |
US9081818B2 (en) | 2012-03-13 | 2015-07-14 | Hewlett-Packard Development Company, L.P. | SAS fabric discovery |
JP6063146B2 (ja) * | 2012-04-27 | 2017-01-18 | 株式会社バッファローメモリ | 外部記憶装置 |
US9026702B2 (en) * | 2012-11-12 | 2015-05-05 | Avago Technologies General Ip (Singapore) Pte Ltd | Methods and apparatus for fast context switching of serial advanced technology attachment in enhanced serial attached SCSI expanders |
CN104956348B (zh) * | 2013-04-02 | 2018-04-20 | 慧与发展有限责任合伙企业 | Sata发起方寻址和存储设备分片 |
CN104834500A (zh) * | 2014-02-07 | 2015-08-12 | 鸿富锦精密工业(深圳)有限公司 | 指令处理系统及方法 |
WO2016014063A1 (en) * | 2014-07-24 | 2016-01-28 | Hewlett-Packard Development Company, L.P. | Expander transmission data rate determination |
US9727464B2 (en) | 2014-11-20 | 2017-08-08 | International Business Machines Corporation | Nested cache coherency protocol in a tiered multi-node computer system |
US9886382B2 (en) | 2014-11-20 | 2018-02-06 | International Business Machines Corporation | Configuration based cache coherency protocol selection |
US20160275036A1 (en) * | 2015-03-19 | 2016-09-22 | Western Digital Technologies, Inc. | Single board computer interface |
CN110647481A (zh) * | 2019-09-09 | 2020-01-03 | 苏州浪潮智能科技有限公司 | 转换板卡和硬盘接口装置 |
CN111241016B (zh) * | 2019-12-31 | 2021-06-25 | 杭州华澜微电子股份有限公司 | 一种接口转换装置 |
US11513832B2 (en) | 2020-07-18 | 2022-11-29 | Vmware, Inc. | Low-latency shared memory channel across address spaces in a computing system |
CN112559407B (zh) * | 2020-12-22 | 2021-11-16 | 无锡众星微系统技术有限公司 | Stp链路层状态机优化方法 |
CN114637712B (zh) * | 2022-03-18 | 2023-03-10 | 无锡众星微系统技术有限公司 | 一种EDFB模式下SAS2SATA Bridge的错误处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236952A1 (en) * | 2002-06-21 | 2003-12-25 | Grieff Thomas W. | System and method for providing multi-initiator capability to an ATA drive |
CN1475910A (zh) * | 2002-07-26 | 2004-02-18 | 松下电器产业株式会社 | 程序执行装置 |
US20040205288A1 (en) * | 2003-04-14 | 2004-10-14 | Copan Systems, Inc | Method and apparatus for storage command and data router |
CN1574753A (zh) * | 2003-06-11 | 2005-02-02 | 硅斯托尔公司 | 串行高级技术附件(sata)交换机 |
CN1655540A (zh) * | 2003-11-13 | 2005-08-17 | 戴尔产品有限公司 | 在串行连接scsi存储网络中进行通讯的系统和方法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US6388590B1 (en) * | 1999-09-24 | 2002-05-14 | Oak Technology, Inc. | Apparatus and method for transmitting data serially for use with an advanced technology attachment packet interface (atapi) |
US6247100B1 (en) | 2000-01-07 | 2001-06-12 | International Business Machines Corporation | Method and system for transmitting address commands in a multiprocessor system |
US6763402B2 (en) | 2000-05-25 | 2004-07-13 | Bnl Technologies, Inc. | Data storage subsystem |
US20020159552A1 (en) | 2000-11-22 | 2002-10-31 | Yeshik Shin | Method and system for plesiosynchronous communications with null insertion and removal |
TW507896U (en) | 2001-06-26 | 2002-10-21 | Feiya Technology Co Ltd | Hot plug device for ATA interface |
US20030033465A1 (en) * | 2001-08-08 | 2003-02-13 | Cheng-Chih Chien | Hot-swap device applicable to ATA interface |
JP4212811B2 (ja) | 2002-01-10 | 2009-01-21 | 富士通株式会社 | 情報処理システム、インタフェース装置、情報処理装置、情報記憶装置 |
US6961813B2 (en) | 2002-06-21 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | System and method for providing multi-initiator capability to an ATA drive |
US6735650B1 (en) | 2002-08-30 | 2004-05-11 | Western Digital Technologies, Inc. | Disk drive and method for data transfer initiated by nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands |
US7523236B1 (en) * | 2003-06-11 | 2009-04-21 | Lsi Corporation | Switching serial advanced technology attachment (SATA) to a parallel interface |
US7526587B2 (en) * | 2004-02-09 | 2009-04-28 | Lsi Corporation | Dual port serial advanced technology attachment (SATA) disk drive |
US7523235B2 (en) * | 2003-06-11 | 2009-04-21 | Lsi Corporation | Serial Advanced Technology Attachment (SATA) switch |
DE10355583A1 (de) | 2003-11-28 | 2005-07-07 | Advanced Micro Devices, Inc., Sunnyvale | Gemeinsame Nutzung eines Speichers in einer Zentralsteuerung |
JP2005190036A (ja) * | 2003-12-25 | 2005-07-14 | Hitachi Ltd | 記憶制御装置及び記憶制御装置の制御方法 |
US20050198425A1 (en) | 2004-03-05 | 2005-09-08 | Wang Liang-Yun | Combined optical storage and flash card reader using single ide or sata port and method thereof |
US7340616B2 (en) * | 2004-05-26 | 2008-03-04 | Intel Corporation | Power management of storage units in a storage array |
US20060004935A1 (en) * | 2004-06-30 | 2006-01-05 | Pak-Lung Seto | Multi-protocol bridge |
US7523272B2 (en) * | 2004-07-12 | 2009-04-21 | Dell Products L.P. | System and method for identifying a storage drive in a storage network |
US7676613B2 (en) | 2004-08-03 | 2010-03-09 | Lsi Corporation | Methods and structure for assuring correct data order in SATA transmissions over a SAS wide port |
JP4669263B2 (ja) * | 2004-11-04 | 2011-04-13 | 株式会社日立製作所 | ストレージ装置 |
US8301810B2 (en) | 2004-12-21 | 2012-10-30 | Infortrend Technology, Inc. | SAS storage virtualization controller, subsystem and system using the same, and method therefor |
TW200629072A (en) | 2005-02-01 | 2006-08-16 | Sunplus Technology Co Ltd | Bridge system for hetero-serial interfaces |
US7711989B2 (en) * | 2005-04-01 | 2010-05-04 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
US20060271739A1 (en) | 2005-05-24 | 2006-11-30 | Shu-Fang Tsai | Management of transfer of commands |
JP4634268B2 (ja) * | 2005-10-03 | 2011-02-16 | 株式会社日立製作所 | ストレージシステムの省電力化方法及びストレージシステム |
TWI307034B (en) * | 2005-11-23 | 2009-03-01 | Infortrend Technology Inc | Storage virtualization subsystem and system with host-side redundancy via sas connectivity |
US7921185B2 (en) * | 2006-03-29 | 2011-04-05 | Dell Products L.P. | System and method for managing switch and information handling system SAS protocol communication |
US7536508B2 (en) * | 2006-06-30 | 2009-05-19 | Dot Hill Systems Corporation | System and method for sharing SATA drives in active-active RAID controller system |
JP2008112292A (ja) * | 2006-10-30 | 2008-05-15 | Hitachi Ltd | ストレージシステム及びストレージシステムの電源供給制御方法 |
-
2006
- 2006-12-22 US US11/644,549 patent/US7761642B2/en not_active Expired - Fee Related
-
2007
- 2007-05-29 US US11/754,954 patent/US7865652B2/en not_active Expired - Fee Related
- 2007-05-29 US US11/754,953 patent/US7822908B2/en not_active Expired - Fee Related
- 2007-09-18 WO PCT/US2007/078779 patent/WO2008079468A1/en active Application Filing
- 2007-09-18 JP JP2009542981A patent/JP4961481B2/ja not_active Expired - Fee Related
- 2007-09-18 EP EP07842700A patent/EP2126705B1/en not_active Not-in-force
- 2007-09-18 CN CN2007800479781A patent/CN101611383B/zh not_active Expired - Fee Related
- 2007-09-18 CN CN201110278232XA patent/CN102306138A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236952A1 (en) * | 2002-06-21 | 2003-12-25 | Grieff Thomas W. | System and method for providing multi-initiator capability to an ATA drive |
CN1475910A (zh) * | 2002-07-26 | 2004-02-18 | 松下电器产业株式会社 | 程序执行装置 |
US20040205288A1 (en) * | 2003-04-14 | 2004-10-14 | Copan Systems, Inc | Method and apparatus for storage command and data router |
CN1574753A (zh) * | 2003-06-11 | 2005-02-02 | 硅斯托尔公司 | 串行高级技术附件(sata)交换机 |
CN1655540A (zh) * | 2003-11-13 | 2005-08-17 | 戴尔产品有限公司 | 在串行连接scsi存储网络中进行通讯的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101611383A (zh) | 2009-12-23 |
US20080155162A1 (en) | 2008-06-26 |
US7822908B2 (en) | 2010-10-26 |
CN101611383B (zh) | 2013-07-24 |
US20080155163A1 (en) | 2008-06-26 |
US20080155145A1 (en) | 2008-06-26 |
US7761642B2 (en) | 2010-07-20 |
JP4961481B2 (ja) | 2012-06-27 |
US7865652B2 (en) | 2011-01-04 |
EP2126705A4 (en) | 2011-01-05 |
EP2126705B1 (en) | 2013-01-23 |
EP2126705A1 (en) | 2009-12-02 |
WO2008079468A1 (en) | 2008-07-03 |
JP2010514063A (ja) | 2010-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101611383B (zh) | 串行高级技术附件(sata)和串行附加的小型计算机系统接口(sas)桥接 | |
CN101669098B (zh) | 始发设备通知方法和设备 | |
US7908403B2 (en) | Reserved device access contention reduction | |
US9298379B2 (en) | Bi-directional data transfer within a single I/O operation | |
US7937507B2 (en) | Extended measurement word determination at a channel subsystem of an I/O processing system | |
US8516161B2 (en) | Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system | |
US7739432B1 (en) | Command switching for multiple initiator access to a SATA drive | |
CN101946241B (zh) | 处理控制单元和通道子系统之间的通信的方法和装置 | |
US7840717B2 (en) | Processing a variable length device command word at a control unit in an I/O processing system | |
US8984222B2 (en) | Methods and structure for task management in storage controllers of a clustered storage system | |
CN102985889B (zh) | 用于使用多个控制器进行通信的方法、系统和设备 | |
US20150134874A1 (en) | Determining extended capability of a channel path | |
US7962676B2 (en) | Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords | |
EP1999599A1 (en) | Host port redundancy selection | |
CN103685578B (zh) | 主从设备的数据传输方法 | |
US20100036982A1 (en) | Interrogate processing for complex i/o link | |
JP2009015670A (ja) | 中継転送装置、プログラム、方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20160217 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |