多协议存储控制器的制造方法

文档序号:9547128阅读:386来源:国知局
多协议存储控制器的制造方法
【专利说明】多协议存储控制器
[0001]相关申请的交叉引用
[0002]本申请要求美国临时专利申请N0.61/862361(申请日2013年8月5日,“多协议存储控制器(Multiprotocol Storage Controller)”)的优先权,该申请在此引为参考。
技术领域
[0003]本发明涉及存储控制器的领域。
【背景技术】
[0004]存在众多的存储设备接口,这些存储设备接口不断地向存储域提出挑战。例如,基于快捷外部组件互连协议(PCIe)的存储设备现在与串行连接小型计算机系统接口(SAS)存储域结合使用。并且在一些情况下,代替SAS存储设备,PCIe存储设备被“热插拔(hot-swapped) ”。然而,PCIe是一种基于分组的无连接传输协议,而SAS是端到端的基于连接的协议,它不提供无连接传输,从而使互操作性尤其有挑战性。然而更特别地的是,当被热插拔到存储域中时,采用一种协议的存储控制器不能检测另一种协议的存储设备。

【发明内容】

[0005]这里介绍的系统和方法为把存储控制器耦接到多种不同种类的存储设备创造条件。在一个实施例中,存储控制器包括可通信耦接到存储设备的接口。存储控制器还包括处理器,该处理器可操作地在存储设备的硬件协议检测和存储设备的固件协议检测之间进行选择,并且当存储设备通信耦接到所述接口时,按照选择的协议检测,检测存储设备的协议。存储控制器随后根据检测的存储设备的协议,选择协议来处理来自主机的输入/输出请求。
[0006]作为设计选择,可以各种方式实现这里公开的各个实施例。例如,实施例可以采取计算机硬件、软件、固件或者它们的组合的形式。下面说明其它的例证实施例。
【附图说明】
[0007]现在参考附图,举例说明本发明的一些实施例。附图中,相同的附图标记代表相同的元件或者相同类型的元件。
[0008]图1是可以和不同协议的设备一起工作的例证存储控制器的方框图。
[0009]图2是图1的存储控制器的例证处理的流程图。
[0010]图3是另一个例证存储控制器的方框图。
[0011 ] 图4是图3的存储控制器的例证处理的流程图。
[0012]图5是图1和3的存储控制器的例证硬件协议检测方案的示图。
[0013]图6是图3的存储控制器的另一个例证处理的流程图。
[0014]图7是其中计算机可读介质提供进行这里的方法的指令的例证计算系统的方框图。
【具体实施方式】
[0015]附图和下面的说明举例说明本发明的具体例证实施例。从而应理解,本领域的技术人员能够设计出各种方案,尽管未在这里被明确说明或表示,不过这些方案具体体现本发明的原理,从而包含在本发明的范围之内。此外,这里说明的任何例子是用来帮助理解本发明的原理,不应被解释成局限于具体记载的例子和条件。从而,本发明并不局限于下面说明的具体实施例或例子。
[0016]图1是可以和不同协议的设备一起工作的例证存储控制器104的方框图。存储控制器104可操作地处理主机系统105的I/O请求,并按照这些I/O请求各自的存储协议,把它们引导到各个目标设备110、111和112。例如,在本实施例中,目标设备110是SAS存储设备,目标设备111是PCIe存储设备,目标设备112是利用某种其它协议(例如,串行高级技术附件(SATA)协议、基于IP协议的光纤通道协议、企业系统连接、光纤通道协议、通用串行总线(USB)协议、因特网串行连接小型计算机系统接口(ISCSI)协议等)的存储设备。当目标设备110、111、112之一耦接到存储控制器104时,存储控制器104可操作地借助硬件和/或固件,发现它所连接的存储设备的种类。一旦已发现,存储控制器104就可借助目标设备110、111、112各自的存储协议,处理从主机系统105到目标设备110、111、112的1/0请求。
[0017]目标设备110、111、112可直接连接存储控制器104,或者它们可通过存储系统扩展组件,比如扩展器103被耦接。例如,一个或多个扩展器可操作地直接连接到其它目标设备110、111、112,以及其它扩展器,以提供把I/O请求交换到由存储控制器104确定的适当设备的“交换结构”。扩展器103的例子包括可依据多种协议比如提及的那些协议(例如SAS、PCIe, USB、SATA等)工作的宽端口扩展器。
[0018]目标设备110、111、112的例子包括存储设备,比如磁盘驱动器和固态驱动器(SSD)。在这点上,目标设备110、111、112可代表主机系统105提供数据存储。主机系统105可配置对关于目标设备110、111、112任意之一的输入/输出(I/O)操作的读/写请求。主机系统105可以是能够进行I/O操作的任何适当的计算设备或系统,例如,服务器、工作站、个人计算机等。
[0019]存储控制器104是能够进行设备发现、管理对目标设备110、111、112的I/O请求和处理针对目标设备110、111、112的数据的I/O命令的任何设备、系统、软件,或者它们的组合。例如,存储控制器104可被实现成定制电路,实现成执行保存在关联的程序存储器中的程序指令的专用或通用处理器,或者它们的某种组合。存储控制器104可以是独立的SAS设备、主机的主总线适配器(HBA)、或者主机系统105的集成组件。
[0020]存储控制器104包括适合于耦接到主机系统105,并且接收主机系统105的I/O请求的前端接口。存储控制器104还包括适合于耦接到并支持PCIe设备(例如,兼容PCIe的扩展器、PCIe交换机和PCIe目标设备111)、SAS设备(例如,SAS目标设备110和SAS扩展器)、及其它的后端接口(下面更详细的表示和说明)。
[0021]扩展器103是借助于与多个存储设备的可能连接,可操作地扩展存储系统的任何设备、系统、软件,或者它们的组合。在这点上,扩展器203可通过多个物理收发器,连接到SAS组件,比如SAS目标设备110和其它扩展器。更特别地,扩展器103可借助许多不同的协议,比如上述那些协议(例如,SAS、PCIe、USB、SATA等),直接连接到多个目标设备,并且可以利用存在于存储控制器104中的协议检测方法。
[0022]尽管关于一定数目的扩展器和目标设备进行了表示和说明,不过本发明并不意图局限于任何特定数目的组件或者它们的例示连接。下面参考图2的流程图,说明存储控制器104的一些操作细节。
[0023]图2是图1的存储控制器104的例证处理200的流程图。当在处理单元201,存储控制器104通信耦接到存储设备时,开始处理200。例如,当目标设备110、111、112之一直接或间接(例如,通过扩展器103)耦接到存储控制器104时,存储控制器104开始目标设备的硬件发现和/或固件发现。在这点上,在处理单元202,存储控制器104在存储设备的硬件协议检测和存储设备的固件协议检测之间进行选择。
[0024]—旦选择了检测方案,在处理单元203,存储控制器就自动开始检测存储设备的协议。例如,当存储设备通过硬件信令和/或时域反射器,耦接到存储控制器的接口时,存储控制器104可采用硬件检测方案来确定存储设备的协议。如果存储设备借助硬件协议检测方案未被检测到,存储控制器104可失效转移到固件检测方案,通过借助各种协议尝试链路建立,直到存储设备作出反应为止。然而,存储控制器104也可被配置成从固件协议检测方案开始,然后失效转移到硬件协议检测方案,或者甚至可被配置成只利用一种或另一种检测方案检测附接的存储设备的协议。
[0025]一旦检测了存储设备的协议,在处理单元204,存储控制器104就可选择协议,以处理来自主机系统105的I/O请求。例如,存储控制器104可配置有各种协议栈。一旦存储设备的协议被检测到,存储控制器104就可通过适当的协议栈,处理来自主机系统105的I/O请求。
[0026]图3是另一个例证的存储控制器104的方框图。在本实施例中,存储控制器104配置有系统接口 301,系统接口 301可操作地通信和物理地耦接存储控制器104和主机系统105的物理接口,并按照PCIe和SAS/SATA协议栈处理I/O请求。PCIe栈包含PCIe上层302、PCIe 链路层和 PCIe 物理层 306。SAS/SATA 栈包含 SAS/SATA 上层 303、SAS/SATA 链路层305和SAS/SATA物理层307。
[0027]存储控制器104还包含当检测到存储设备的协议时,可操作地选择适当的协议栈的协议选择逻辑308。协议复用器309与协议选择逻辑308通信耦接,以控制当检测到存储设备的协议时,将使用协议栈中的哪个协议栈。
[0028]协议选择逻辑308和相关的协议复用器309 —起工作,以选择存储设备的物理接口是连接到PCIe协议栈还是SAS/SATA协议栈。串行/解串器(SerDes) 310可操作地进行附接的存储设备的硬件协议检测。从PCIe链路层304和SAS/SATA链路层307传送成功的链路建立的指示,以确保当获得成功时,协议复用器309仍然固定在当前选择的协议。在一些实施例中,当协议复用器309当前选择特定的协议时,该协议的链路层和物理层(例如,PCIe链路层304、PCIe物理层306、SAS/SATA链路层305、SAS/SATA物理层307)被启用,以使电力消耗降至最小。例如,通过使存储控
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1