admin 管理员组文章数量: 1086019
2024年4月27日发(作者:sql课程心得体会)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.9
(22)申请日 2013.09.23
(71)申请人 PLX科技公司
地址 美国加利福尼亚州
(72)发明人 J·雷古拉 N·苏布拉马尼延 J·M·多森
(74)专利代理机构 中国专利代理(香港)有限公司
代理人 马红梅
(51)
G06F13/28
权利要求说明书 说明书 幅图
(10)申请公布号 CN 103678201 A
(43)申请公布日 2014.03.26
(54)发明名称
具有逻辑设备能力的PCI EXPRESS
切换器
(57)摘要
本发明涉及具有逻辑设备能力的
PCI EXPRESS切换器,其实现供所连接的
主机系统使用的逻辑设备。该逻辑设备由
主机管理系统上运行的逻辑设备启用软件
创建。该逻辑设备能够合并一个或多个物
理设备或者可以是完全基于软件的。来自
所连接的主机的命令被在该主机中的命令
和响应队列中进行处理并且也在该管理系
统中所存储的影子队列中得到反映。与所
连接的主机相关联的DMA引擎被设置为
对所连接的(本地)主机中的队列进行自动
触发。命令被发送至物理设备以完成工
作,并且完成信号被发送至管理软件,而
针对该工作的响应被直接发送至所连接的
主机,其并不知晓该逻辑设备是非存在的
并且由管理系统中的软件所实现。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种在PCIe切换器中启用合成设备的操作的方法,该方法包括:
将该合成设备呈现给连接至该切换器的本地主机组件;
捕获该本地主机内的读取和写入操作,从而使得该切换器的管理系统能够
向该管理系统通知本地主机驱动器操作,其中该本地主机加载驱动器;
使得在该本地主机中发生的写入能够被反映在该管理系统上的存储器中;
使得能够在该管理系统上创建影子队列,所述影子队列反映了该本地主机
设置与本地主机端口相关联的DMA引擎以对该本地主机中的队列进行自
使得合成设备门铃能够映射至DMA引擎门铃。
2.根据权利要求1的方法,进一步包括:
将该本地主机上的中断向量发送到该管理系统。
动触发;并且
中的命令和响应队列;
创建本地主机组件队列的影子副本;
3.根据权利要求1的方法,进一步包括:
针对适当主机设备响应将中断向量与DMA引擎队列相关联。
4.根据权利要求1的方法,其中多个本地主机和多个物理设备使用该合成
5.根据权利要求1的方法,其中该管理系统具有合成设备启用模块,其提
6.根据权利要求1的方法,其中该管理系统具有在该本地主机上所存储的
7.根据权利要求1的方法,其中当该物理设备完成该本地主机所请求的功
8.根据权利要求5的方法,其中该启用模块对来自该本地主机的数据执行
操作并且将该数据定向至该物理设备。
队列的影子副本。
供用于在该切换器中实现该合成设备的可执行指令。
设备。
能时,将完成信号发送至该管理系统并且将响应直接发送至该本地主机。
9.根据权利要求1的方法,其中在该管理系统和物理设备之间存在用于传
存
10.根据权利要求1的方法,其中存在针对本地主机中的反映在该管理系
11.根据权利要求1的方法,其中该合成设备是没有相关联物理设备的、
12.根据权利要求1的方法,进一步包括:在该本地主机和该管理系统之
13.根据权利要求1的方法,进一步包括在该本地主机中分配队列并且将
该队列写入至该合成设备。
由软件所创建的设备。
统中的影子队列中的队列的更新的一对一映射。
送与该合成设备相关的命令的控制路径以及在该物理设备和该本地主机之间
在数据路径。
间映射地址,从而启用在该物理设备和该本地主机之间的数据传输。
14.一种与管理系统相结合的PCI express切换器,该管理系统具有用于在
并
该切换器中实现物理设备的逻辑合并的逻辑设备启用器模块,其中该逻辑合
被所连接的主机使用,并且其中该管理系统中的存储器存储如
所存储的命令队列、响应队列和门铃的影子副本。在该逻辑设备中
说 明 书
技术领域
本发明总体上涉及切换器(switch)和电子通信。更特别地,本发明涉及在智能PCIe
切换器中启用合成或逻辑设备以便合并多个设备的功能。
背景技术
计算机架构多年来已经有了大幅发展。近来,对于芯片设计师而言,将诸如通用串
行总线(USB)接口控制器之类的外部数据接口包括在其母板之中变得越来越常见。
这些接口被称之为主机控制器。处理器则通常经由输入/输出(I/O)互连系统连接至
计算机系统的其它组件。
存在着许多不同的可用计算机I/O互连标准。多年来最为流行的之一是外围设备互
连(PCI)标准。PCI允许总线像桥那样进行工作,其将本地处理器总线与外设隔离开
来,允许计算机的中央处理单元(CPU)通过该互连而连接至IO设备的主机。
近来,PCI的后继已经普及,其被称作PCI Express(或者简单地被称作PCIe)的。
PCIe提供了更高的性能、增加的灵活性以及针对下一代系统的可扩缩性,同时保
留了与现有PCI应用的软件兼容性。与传统的PCI相比,PCI Express协议明显更
为复杂,其具有三层-事务层、数据链路层和物理层。
在PCI Express(高速PCI)系统中,根联合体(root complex)设备将处理器和存储器子
系统连接至包含一个或多个切换设备(然而,实施例也可能没有切换器)的
PCI Express切换器构造。在PCI Express中,使用点对点架构。与PCI系统中的主
机桥相类似,根联合体代表通过本地I/O互连而进行互连的处理器生成事务请求。
根联合体功能可以被实施为离散的设备,或者可以与处理器进行整合。根联合体可
以包含多于一个的PCI Express端口,并且多个切换设备可以连接至根联合体上的
端口或者被级联。
作为示例,图1是描绘正常共享的IO架构的框图,该IO架构具有由运行切换器管
理软件的管理主机104所控制的标准PCIe切换器102。切换器102对一个或多个
主机进行服务,所述主机被示为所连接的主机106和所连接的主机 108(也被称作
“本地主机”),例如服务器、PC和其它计算设备。还连接至切换器的是一个或多个
设备110-116,所述设备通常为所连接的主机提供一些类型的功能或服务。虚拟设
备118-124处于切换器102之内。虚拟设备118和120连接至所连接的主机106且
虚拟设备122和124连接至所连接的主机108。这些虚拟设备中的某些具有去往物
理设备110-114的数据路径。虚拟设备118-124的功能和角色在题为“MULTI-
ROOT SHARING OF SINGLE-ROOT INPUT/OUTPUT VIRTUALIZATION”的美国
专利申请号12/979,904的共同未决申请中有所描述,其中描述了一种在多个主机使
用支持共享I/O机制的PCIe切换器的非透明端口进行连接时使用资源重定向方法
的解决方案。
将期望的是:通过使用DMA引擎、地址映射和存储器空间重定向而对连接至切换
器的物理设备的功能进行合并来进一步增强PCIe切换器的功能。此外,将期望的
是:针对具有或没有诸如RAID的附加特征的一组SSD驱动器(或其它存储设备)启
用(enable)用于所连接的主机的合成NVMe端点,或者与若干所连接的主机共享一
组SSD/存储驱动器。最后,即使在资源原本并不允许共享的情况下,如果通过软
件和硬件帮助而使得能够在多个所连接的主机之间共享稀缺或昂贵的资源,则对于
切换器的用户而言也将是有利的。
发明内容
本发明的一个方面是一种通过启用切换器中的非存在的、逻辑(或合成)设备的操作
而增强PCI Express切换器的功能的方法。该逻辑设备由管理系统主机中对切换器
的操作进行控制的逻辑设备软件来加以实现。该合成设备被呈现给连接至该切换器
的本地主机。该本地主机内的写入操作被捕获,从而使得管理系统能够创建本地主
机组件队列的影子副本(shadow copy)。本地主机加载用于该合成设备的驱动器。在
该本地主机中发生的写入被反映在管理系统中。在该管理系统上创建影子队列,该
管理系统反映本地主机中的命令和响应队列。与本地主机端口相关联的DMA引擎
被设置为对本地主机中的队列进行自动触发。
附图说明
图1是描绘正常共享的IO架构的框图,该IO架构具有由运行切换器管理软件的系
统管理主机所控制的标准PCIe切换器;
图2是描绘依据一个实施例的具有逻辑设备和管理主机系统的PCIe切换器 的框图,
该管理主机系统具有逻辑设备启用软件;和
图3是依据一个实施例的在PCIe切换器上安装合成或逻辑设备的处理的流程图。
具体实施方式
现在将对本发明的具体实施例进行详细参考,其包括发明人为了执行本发明所预期
的最佳模式。这些具体实施例的示例在附图中进行图示。虽然结合这些具体实施例
对本发明进行描述,但是将要理解的是,并不旨在将本发明局限于所描述的实施例。
与之相反,旨在覆盖如可以包括在由所附权利要求限定的本发明的精神和范围内的
替换物、修改和等同物。在以下描述中,阐述具体细节以便提供对本发明的全而理
解。本发明可以在没有这些具体细节中的一些或全部的情况下实施。此外,可能没
有对公知特征进行详细描述以避免对本发明造成不必要的混淆。
依据本发明,可以使用各种类型的操作系统、编程语言、计算平台、计算机程序和
/或通用机器来实现所述组件、处理步骤和/或数据结构。此外,本领域普通技术人
员将会认识到,在不背离本文所公开的发明原理的范围和精神的情况下,也可以使
用诸如硬线设备、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等的具有较不
通用属性的设备。本发明还可以被有形地体现为存储在诸如存储设备的计算机可读
介质上的计算机指令的集合。
在各个附图中描述了用于将物理设备合并为PCIe切换器中的逻辑设备的方法和系
统,其中该逻辑设备使用切换管理系统中的软件来加以实现。通常,使用命令队列
和采用门铃和中断的完成或响应队列FIFO模型以用于那些FIFO的任何设备驱动
器模型能够被使用以下所描述的方法和系统而呈现给所连接的主机。在继续进行之
前,对基本组件进行描述是有用的。如所提到的,一个是用于使用所连接的主机存
储器而从所连接的主机驱动器向DMA引擎进行输入和输出的FIFO模型。另一个
是使用用于所连接的主机驱动器的门铃以向硬件指示新的工作已经被添加或者正在
等待。为了负荷平衡并且指示工作完成,针对每个完成队列的每个完成或响应队列
使用中断。这些特征存在于一些PCIe切换器之中,诸如来自加利福尼亚Sunnyvale
的PLX Technologies的Capella2切换器。附图在以下描述了本发明的创新性PCIe
切换器所需要的附加特征。首先提供这些附加特征的概述。
在一个实施例中,存在着当所连接的主机通过添加至其命令队列而生成工作时在管
理系统中对队列/FIFO内容的自动更新。DMA引擎(切换器端口的一部分)将命令队
列中的排队的工作请求自动传输至管理系统,该管理系统也被称作消费者/合并系
统。另一个特征是从物理设备到所连接的主机的直接数据路径。在命令(控制路径)
通过管理系统(MCPU)时,该数据路径被允许直接从物理设备去往所连接的主机。
这提供了显著的性能优势并且通过防止管理系统处的瓶颈而使得延迟有所改进。例
如,典型的设备(包括SSD储存器)将从该设备向所连接的主机存储器进行DMA请
求(读或写入),并且这些将直接从物理设备去往所连接的主机。所连接的主机的请
求最初去往管理系统,并且该管理系统随后向个体设备(或驱动器)重新定向或发出
等同的命令。另一个特征是地址隔离以及从任意物理设备端点访问不同的所连接的
主机的能力。这可以通过由管理系统软件启用的硬件的地址映射/俘获特征而被启
用。为了向所连接的主机呈现逻辑设备,要求切换器俘获(trap)所连接的主机I/O
枚举周期(enumeration cycle)并且还使用管理系统中的逻辑设备软件对它们进行正
确应答。
在本发明的一个实施例中,连接至PCIe切换器的逻辑或非存在设备被呈现或显示
给所连接的主机(连接到PCIe切换器的主机)。该逻辑设备在物理上并不存在(其是
非存在的),从而使得虚构设备能够在任意时间连接至所连接的主机。逻辑设备是
合成的I/O合并PCIe端点。该逻辑设备提供了一种用于物理设备的合并的机制。
该逻辑设备也可以是单纯的软件创建的设备而其并不对应于任何物理设备(即,在
其之后没有物理设备)。该逻辑设备表现为PCIe端点或者表现为具体实施方式或部
署,诸如RAID设备。其使用PCIe切换器的具体软件和硬件加速特征。
图2是描绘依据一个实施例的具有逻辑设备和管理主机系统的PCIe切换器的框图,
该管理主机系统具有逻辑设备启用软件。示出的是一种连接至主机204和三个物理
设备206-210的创新性PCIe切换器202。具有逻辑设备软件以及用于操作管理系统
的其它必要软件的管理系统主机212连接至切换器202。逻辑设备启用软件实施了
由虚线框所示的逻辑设备214(也被称之为合并的虚拟设备)。逻辑设备214虚拟地
与所连接的主机204一起操作。其具有去往物理设备206-210的数据路径。管理系
统主机212具有由虚线所示的到实现逻辑设备214 的物理设备206-210的控制路径。
这些控制路径以虚线表示以指示它们实质上源自于管理系统212中的逻辑设备启用
软件并且负责在物理上实现逻辑(虚拟)设备214。
在以下所描述的各个实施例中,一种对PCIe切换器实现逻辑设备的方法以新的能
力、地址映射和变换及配置,以及存储空间和配置空间重定向特征来利用DMA引
擎。例如,可能需要地址映射以使得逻辑设备中的基地址寄存器(BAR)被主机管理
系统中的软件映射至管理存储器。以这种方式,各个物理设备的特征被合并在一个
逻辑设备之下。另一种优势在于,如果一个物理设备具有错误或者变得禁用,则逻
辑设备仍然能够进行操作(例如,主机系统将不会遇到“蓝屏”的情形)。中断合并和
生成也是可能的,从而缓解了主机系统上的负荷。在没有这种合并的情况下,如果
存在“n”个物理设备,则可能有“n”个那么多的设备发送中断,这在一些情况下对于
所连接的主机而言可能是过载的。来自一个逻辑设备的中断将会缓解主机系统的工
作负荷。在另一种部署情形中,逻辑设备可以是NVMe端点,其可以对物理
NVMe或非NVMe存储设备(例如,SATA驱动、SSC驱动)进行合并。
相关申请中所描述的方法描述了物理设备如何被呈现给主机。如以上所指出的,本
发明通过将逻辑设备的地址空间映射至主机管理系统CPU中而解决了向主机呈现
逻辑、非存在设备。逻辑设备因此还在设备被呈现给主机时绑定至DMA引擎,该
主机仅能够看到逻辑设备而不是DMA功能。通常,如果仅有逻辑设备被连接至
PCIe切换器,则所连接的主机将不会看到或了解到潜在的DMA或非透明(NT),尽
管该DMA和NT功能正在进行操作而只是没有向主机进行显示而已。
如以下所解释的,DMA引擎被附着至队列和门铃(doorbell)。队列被分配在主机存
储器中并且被写入到逻辑设备。队列被映射至主机管理系统存储器(FIFO)中。
DMA随后被编程以将逻辑设备中的队列绑定至主机系统存储器队列。此外,所连
接的主机中的门铃也可以被映射至主机管理系统门铃堆栈。如本领域中已知的,设
备驱动器向设备中的命令队列发送命令。可以存在一个或多个命令队列。硬件对命
令队列中的数据执行操作并且结果被存储在响应队列中。如所提到的,逻辑设备具
有用于实现这些队列的FIFO,并且DMA引擎被附着到它们或者被编程以绑定至
逻辑设备中的队列。
当所连接的主机驱动器激活或“敲响”逻辑设备中的门铃时(即,当所连接的主机想
要使用逻辑设备所提供的功能时),逻辑设备DMA引擎由于其被绑定至该逻辑设
备并且更具体地由于其了解逻辑设备命令队列而唤醒。DMA引擎将此传输至管理
系统中断。所连接的主机所请求的工作被插入队列中并且处理遵循其正常操作过
程。
主机上的逻辑软件能够在主机上没有外来或附加软件的情况下执行工作。这能够仅
借助于硬件来完成。
所连接的主机驱动器向设备配置空间或BAR写入操作。特别地,其将写入到主机
管理系统存储器中的影子空间中所反映的BAR中的设备的寄存器。照此,BAR的
影子副本在主机管理系统上。因此,当在逻辑设备中存在着对BAR的写入时,其
在管理系统中有所反映。
主机管理系统中的影子存储器捕获原本在所连接的主机中的写入。如本领域中已知
的,当所连接的主机对驱动器进行加载时,其开始使用BAR中的寄存器,所述
BAR专用于所呈现的设备。驱动器开始进行操作、配置命令并且初启(bring up)设
备。PCIe切换器将所有写入和命令重新定向至管理系统中。如所提到的,所连接
的主机中的所有写入将经由PCIe切换器而出现在主机管理系统影子存储器中。
一个步骤是在本地主机存储器上设置数据命令和响应队列。用于设置或配置空间
(诸如,需要支持多少队列,逻辑盘的数量,等等)的命令以及其它配置问题可以由
主机管理系统上的逻辑软件进行应答或照料(tend)。驱动器通过为FIFO分配本地
系统存储器并且向硬件写入基地址和大小而对队列进行配置。
图3是依据一个实施例的在PCIe切换器上安装合成或逻辑设备的过程的流程图。
在步骤302,该合成设备被呈现在连接至该切换器的本地主机上或显示给连接至该
切换器的本地主机。该本地主机(本文为“主机”)通过执行设备所捕获的总线上的配
置周期而对PCIe上的设备进行枚举。这在母专利申请中有所描述。在步骤304,
主机系统软件在配置空间上写入BAR并且启用逻辑设备。在步骤306,该切换器
捕获步骤304处的写入,从而使得管理系统能够构建与本地主机上相同的配置。其
能够分配相同的存储空间,因此在BAR和存储空间内存在着一对一映射。因此,
现在在管理系统中存在着本地主机BAR的影子副本。
在步骤308,本地主机对用于逻辑设备的驱动器进行加载。管理系统经由 切换器而
被通知以相同的操作。也就是说,当本地主机对主机存储器中的BAR写入某些东
西时,这些写入将在管理系统中的影子存储器中得到反映。在步骤309,本地主机
驱动器执行驱动器初始化和设备配置查询。经由切换器给管理系统通知这些。在步
骤310,本地主机中的所有写入出现在管理系统上的影子存储器中。该驱动器执行
设置命令。
在步骤312,驱动器就像其正常情况下那样设置用于本地主机中的命令和响应的队
列。这些用于存储命令和响应的FIFO队列在本领域是已知的。在步骤314,由管
理系统上的软件创建影子队列并且将影子队列存储在存储器中。本地主机中的队列
实质上被映射至管理系统存储器。在步骤316,用于本地主机的端口的DMA引擎
被设置为对本地主机上的队列进行自动触发。也就是说,该DMA引擎被编程为将
本地主机中的命令队列绑定至管理系统存储器中的命令队列。该映射还在步骤218
处利用本地主机中的门铃来完成。因此,当主机驱动器敲响门铃时,该DMA唤醒
(即,被自动触发)。
在步骤320,本地主机驱动器设置本地主机上的中断向量和处理机(handler)。这些
中断被发送至管理系统,在此时可能发生两种不同动作之一。在步骤322,管理系
统存储中断向量以便在运行时间期间直接访问。在步骤324,中断向量与将管理本
地主机响应队列的DMA引擎队列相关联。在这一阶段,逻辑设备在PCIe切换器
上的安装完成。
如以上所描述的,由管理系统中的软件实现逻辑设备。正是该软件对数据进行工作
并且将其指向物理设备。当物理设备完成功能或工作时,完成信号被发送至管理系
统,该管理系统经由物理设备的特征被合并在其中的逻辑设备软件而对工作进行排
序。来自工作的响应被直接发送至本地主机,其在那里被存储在响应队列中。针对
本地主机响应队列的这一更新仍然在管理系统的影子存储器中有所反映。
本文的描述提供了多个新的特征以及针对现有PCIe切换技术的改进。在一个实施
例中,对用于启用I/O物理设备合并的硬件辅助进行描述,同时使用该合并增加或
启用增值特征。描述了通过使用所连接的主机中的逻辑或合成端点而对从所连接的
物理设备到所连接的端口的热插拔事件进行的分离和隔离。还存在着由于所连接的
物理设备生成的到所连接的主机的中断的合并和隔离而导致的性能提升。最后,应
当注意的是,以上所描述的实施例可利用管理系统中的 软件进行扩展。可以存在
多个主机和物理设备(例如,可以存在15个物理设备,其被通过全部连接至一个
PCIe切换器的5个所连接的主机进行投影)。
所描述的实施例的各个方面、实施例、实施方式或者特征能够被分开使用或者以任
意组合来使用。所描述的实施例的各个方面可以由软件、硬件或者硬件和软件的组
合来加以实现。所描述的实施例也可以被体现为计算机可读介质上的计算机可读代
码。计算机可读介质被定义为能够存储随后能够由计算机系统进行读取的数据的任
意数据存储设备。计算机可读介质的示例包括只读存储器、随机存取存储器、CD-
ROM、DVD、磁带和光学数据存储设备。计算机可读介质也可以在网络耦合的计
算机系统上进行分布以使得计算机可读代码以分布式方式进行存储和运行。
虽然已经参考其具体实施例特别示出并描述了本发明,但是本领域技术人员将会理
解的是,在不背离本发明的精神或范围的情况下可以对所公开的实施例的形式和细
节方面进行改变。此外,虽然已经参考各个实施例在本文中对本发明的各种优势、
方面和目标进行了讨论,但是将要理解的是,本发明的范围并不应当通过参考而限
定于这样的优势、方面和目标。相反,本发明的范围应当参考所附权利要求来加以
确定。
版权声明:本文标题:具有逻辑设备能力的PCI EXPRESS切换器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1714153847a667601.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论