CN110941576B - 具有多模pcie功能的存储控制器的系统、方法和设备 - Google Patents
具有多模pcie功能的存储控制器的系统、方法和设备 Download PDFInfo
- Publication number
- CN110941576B CN110941576B CN201910893668.6A CN201910893668A CN110941576B CN 110941576 B CN110941576 B CN 110941576B CN 201910893668 A CN201910893668 A CN 201910893668A CN 110941576 B CN110941576 B CN 110941576B
- Authority
- CN
- China
- Prior art keywords
- pcie
- storage controller
- storage
- logic
- port
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000006870 function Effects 0.000 title claims abstract description 13
- 239000000872 buffer Substances 0.000 claims description 17
- 239000000835 fiber Substances 0.000 claims description 14
- 239000003999 initiator Substances 0.000 claims description 6
- 239000002184 metal Substances 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 239000004744 fabric Substances 0.000 description 28
- 238000007726 management method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 7
- 238000013403 standard screening design Methods 0.000 description 7
- 238000011144 upstream manufacturing Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 239000002131 composite material Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001152 differential interference contrast microscopy Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请涉及集成电路芯片,公开了一种具有多模PCIE功能的存储控制器的系统、方法和设备,其中,具有多模PCIe功能的独立存储控制器可配置为PCIe根复合体(RC)、端点(EP)或桥接(BR)。在EP模式中,存储控制器的作用类似于常规PCIe从属控制器,它通过PCIe端口耦合到主机提供的PCIe根复合体。在RC模式下,存储控制器充当PCIe配置和管理实体,充当提供PCIe根复合体的主机,附加卡或芯片可通过存储控制器提供的PCIe端口耦合到该主机,支持任何类型的网络设备接口,无需外部根复合体。在BR模式下,存储控制器可以作为透明或非透明桥接器,该桥接器具有根复合体或端点端口,用于连到该桥接器的内部连接。
Description
技术领域
本申请涉及集成电路芯片,特别涉及具有多模PCIe功能的独立存储控制器,可配置为PCIe根复合体(Root-Complex,简称RC)、PCIe端点(End-Point,简称EP)或桥接功能(bridging function,简称BR)。。
背景技术
存储控制器是支持外围组件快速互连(Peripheral Component InterfaceExpress,简称PCIe)接口的设备,传统上仅在功能上提供PCIe端点。PCIe设备需要直接或通过一个或多个PCIe交换机连接到PCIe根复合体,以便进行配置和管理。
根复合体在枚举期间扫描PCIe总线,以识别和配置连接到该总线的设备,例如在这种情况下的非易失性存储器标准(Non-volatile Memory Express,简称NVMe)海量存储控制器。然后,系统BIOS/OS将加载正确的驱动程序,并且存储控制器已准备好运行。在这种模式下,存储控制器是从设备,在单端口情况下连接到单个主机。
要使存储控制器通过交换网络与外部远程主机通信,先前的解决方案总是需要存储控制器外部的本地主机(例如,英特尔至强),首先接收和终止网络流量(例如,NVME通过远程直接数据存取或RDMA),然后本地主机将命令和数据中继到存储控制器。考虑到数据路径的高带宽,例如,大于100Gb/s,数据中继通常是性能瓶颈之一。其他提出的解决方案可以终止包括根复合体的智能网络接口控制器(例如Marvell 88SN2400转换器控制器)中的网络流量,这种方法的缺点是驱动需要专用网络接口芯片(NIC)或插卡。
在如今的闪存阵列簇(Just A Bunch of Flash Array,简称JBOF)架构中,以中央处理单元(CPU)提供根复合体功能的使用传统架构的标准配置已经无法满足当前的性能需求,当然也不能满足未来SSD性能的增长需求。如今的高性能SSD可以从存储接口提供32Gb/s的带宽,这需要每个SSD有4个PCIe第3代连接接口。具有32个驱动器的JBOF需要700多个PCIe通道才能提供足够的多路径连接。这需要使用大量PCIe交换机以满足这种需求,成本高,需要的印制电路板(PCB)多,能耗高。
人们期望在SSD和外部实体之间创建更高性能的通信路径。
发明内容
本申请的目的在于提供一种具有多模PCIE功能的存储控制器的系统、方法和设备,在不增加存储控制器中的重要硬件/固件资源的情况下,消除了数据和命令中继。
本申请公开了一种存储控制器系统,包括:
网络接口
闪存
存储控制器,其中所述存储控制器包括:
耦合到所述网络接口的PCIe连接器
耦合到所述闪存的存储接口逻辑
支持端点和根复合体模式的PCIe功能元件
主机
所述主机耦合到所述网络接口
所述闪存耦合到所述存储控制器
所述网络接口与所述存储控制器耦合
其中,所述存储控制器在根复合体模式下充当PCIe主设备,通过所述网络接口将帧从所述闪存发送到作为发起者的远程主机,并且,所述存储控制器在端点模式下充当PCIe从设备,被作为PCIe主设备的外部主机所控制,以便将帧传输到所述闪存或从所述闪存传输帧。
在一个优选例中,所述网络接口是以下中的一个或多个:PCIe桥接器,PCIe到以太网转换器,以太网NIC,InfiniBand NIC,光纤通道适配器。
在一个优选例中,所述存储控制器包括以下中的一个或多个:PCIe连接器,PCIePHY,多模式PCIe L/T RC/EP/BR,具有eCPU的逻辑模块,应用逻辑,内存缓冲区,存储逻辑,存储接口逻辑。
在一个优选例中,所述存储控制器包括存储接口逻辑,其将存储控制器连接到以下中的一个或多个:闪存,PCIe存储设备,SAS/SATA存储设备。
在一个优选例中,所述存储控制器包括逻辑模块,所述逻辑模块包括以下中的一个或多个:嵌入式CPU,硬件寄存器,硬件多路复用器,硬件随机存取存储器块。
在一个优选例中,其中PCIe功能元件端点和根复合模式可以通过以下方法中的一种或多种来设置:在可设置寄存器中写入值,连接到电源或地的硬件引脚,SOC金属掩膜选项,从SOC JEDEC端口读入的值,从两个或多个引脚读入的值。
在一个优选例中,所述存储控制器在第一端口上用作根复合体,同时所述存储控制器在第二端口上用作端点。
在一个优选例中,所述存储控制器包括两个或更多个PCIe端口。
在一个优选例中,所述存储控制器包括嵌入式CPU,所述CPU能够读取所接收的PCIe帧的一个或多个PCIe帧字段。
本申请还公开了一种用于通过网络接口设备将数据从闪存设备通过存储控制器转发到远程主机的方法包括:
在启动时,存储控制器以根复合模式配置外部PCIe设备,然后所述存储控制器通过网络接口设备在闪存和远程主机之间传输数据。
在一个优选例中,在闪存和存储控制器之间传输的数据使用ONFI接口。
本申请还公开了一种用于在耦合到网络接口控制器的主机和闪存之间传输数据的装置包括:
存储控制器,所述存储控制器包括
耦合到网络接口的PCIe连接器
耦合到闪存的存储接口逻辑
支持端点和根复合体模式的PCIe功能元件
其中,所述存储控制器耦合到闪存和网络接口控制器,其中所述存储控制器在根复合体模式下充当PCIe主设备,通过所述网络接口将帧从所述闪存发送到作为发起者的远程主机,并且,所述存储控制器在端点模式下充当PCIe从设备,被作为PCIe主设备的外部主机所控制,以便将帧传输到所述闪存或从所述闪存传输帧。
在一个优选例中,其中所述PCIe功能元件端点和根复合模式可以通过以下方法中的一种或多种来设置:在可设置寄存器中写入值,连接到电源或地的硬件引脚,SOC金属掩膜选项,从SOC JEDEC端口读入的值,从两个或多个引脚读入的值。
在一个优选例中,所述闪存通过ONFI接口耦合到所述存储控制器。
本申请还公开了一种存储控制器系统包括:
第一主机,
第二主机,
存储控制器,所述存储控制器包括:
PCIe交换机,所述PCIe交换机包括:
第一端口,所述第一端口通过PCIe接口耦合到所述第一主机,
第二端口,所述第二端口通过PCIe接口耦合到所述第二主机,
第三端口,所述第三端口配置为PCIe上行端口,
所述第一端口和所述第二端口用作PCIe下行端口,
其中,PCIe帧在所述存储控制器与所述第一主机和所述第二主机之间交换。
在一个优选例中,还包括一个或多个附加存储控制器PCIe接口,每个所述PCIe接口耦合到所述主机。
本申请还公开了一种用于在存储控制器和通过PCIe连接耦合到该存储控制器的PCIe设备之间传输数据的系统该系统包括:
存储控制器,该存储控制器包括
连接到PCIe物理层的PCIe连接器,
根复合体逻辑,
具有支持根复合模式的固件的eCPU,
存储接口逻辑,
连接的PCIe设备,该设备包括
PCIe连接器连接到PCIe PHY,
PCIe从逻辑,
其中,在系统启动时,所述存储控制器成为根复合设备,所述连接的PCIe设备成为PCIe从设备,数据在所述存储控制器和所述连接的PCIe从设备之间传输。
在一个优选例中,所述存储控制器在其自身和所耦合的PCIe设备之间传输数据。
在一个优选例中,所述存储控制器装置包括以下功能块中的一个或多个:存储缓冲区,存储逻辑,ONFI。
本申请还公开了一种用于在PCIe总线和存储控制器上充当根复合体的装置所述存储控制器装置包括:
耦合到PCIe物理层的PCIe连接器,该PCIe物理层耦合到数据存储器,
具有支持根复合模式的固件的eCPU,
耦合到持久存储的存储接口逻辑,
其中,所述存储控制器设备耦合到PCIe从设备,所述存储控制器设备包含根联合体。
本申请还公开了一种用于在PCIe根复合设备和PCIe从设备之间传输数据的方法,所述方法包括:
从PCIe从设备发送读请求,
响应来自根复合存储控制器的读取响应,所述存储控制器包括:
PCI物理层
存储器
eCPU
其中,所述存储控制器生成一个或多个PCIe事务请求,并且数据在所述存储控制器根复合体和所述PCIe从设备之间传输。
本申请还公开了一种用于在源设备和存储控制器之间传输NVMe over Fabrics数据的系统该系统包括:
源设备,能够连接到另一个NVMe over Fabrics设备并发送和接收数据;
存储控制器,该存储控制器包括:
缓冲区,用于接收NVMe over Fabrics数据,
eCPU,用于执行接收NVMe over Fabrics数据的指令,并且用于执行通过存储逻辑发送和接收数据的指令;
其中,所述源设备耦合到所述存储控制器,并且在所述源设备和所述存储控制器之间交换NVMe over Fabrics数据。
在一个优选例中,还包括以下中的一个或多个:
耦合到存储逻辑的ONFI通道,该存储逻辑耦合到所述缓冲区;
耦合到存储逻辑的NAND器件,该存储逻辑耦合到所述缓冲区。
在一个优选例中,还包括以下NVMe over Fabrics传输协议中的一个或多个:TCP,RDMA,光纤通道。
本申请还公开了一种用于在源设备和存储控制器之间传输NVMe over Fabrics数据的方法该方法包括:
从源设备发送NVMe over Fabrics数据,通过存储控制器接收NVMeover Fabrics数据,所述存储控制器在缓冲区中接收数据,所述存储控制器包括eCPU,所述eCPU执行指令以服务NVMe over Fabrics数据并且可选地写入存储逻辑上的全部或部分数据到持久存储。
在一个优选例中,还包括ONFI信道,其中,所接收的所有或部分NVMe overFabrics数据由eCPU通过存储逻辑写入ONFI信道。
在一个优选例中,还包括以下NVMe over Fabrics传输协议中的一个或多个:TCP,RDMA,光纤通道。
本申请还公开了一种用于接收和发送NVMe over Fabrics数据的装置包括:
存储控制器,该存储控制器包括:
缓冲区,
用于执行软件指令的eCPU,
存储逻辑,该存储逻辑耦合到存储通道或存储总线;
其中,所述存储控制器接收NVMe over Fabrics数据并将全部或部分数据移动到所述缓冲区中,所述eCPU执行软件指令以服务NVMe over Fabrics帧,并且可选地将全部或部分数据发送到所述存储逻辑;所述存储控制器还将NVMe over Fabrics数据从所述缓冲区发送到耦合到所述存储控制器的其他设备。
在一个优选例中,还包括对以下NVMe over Fabrics传输协议中的一个或多个的支持:TCP,RDMA,光纤通道。
本申请实施方式中,本申请在创建高性能存储控制器时提供了一种创新,方便且经济有效的使用方法。本申请能够与标准NIC、单个网络端口或双网络端口或多个网络端口一起使用。本申请在不增加存储控制器中的重要硬件/固件资源的情况下,消除了数据和命令中继。
在本申请的一个实施例中,对存储控制器的配置使得对附加处理单元的需求被完全减轻,这使得设计更加经济有效和高效节能。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
附图仅示出了本申请的示例性实施例,因此不限制其范围,本申请的概念适用于其他同等有效的实施例。
图1示出了端点模式,一种将存储控制器连接到现有系统的更标准方法。存储控制器可以通过PCIe接口连接到主机根复合体,此后可以通过主机处理复合体,找到并配置存储控制器。多个存储控制器可以随时连接到计算复合体,但只能有一个主机基础根复合体(Host base Root-Complex)。
图2示出了一个工作在PCIe双端口端点(从属)模式配置的存储控制器。此存储控制器为两个主机提供透明I/O扩展,每个主机配置为单独的根复合体,每个主机通过外部PCIe交换机连接到存储控制器。存储控制器可以有1到“M”个关联的PCIe端口。
图3示出了根复合体模式,其中存储控制器配置为独立的PCIe根复合体。在这种模式下,存储控制器可以连接和控制PCIe从设备,例如,网络附加卡或网络芯片。然后,此从设备可以支持所需的任何结构连接(即以太网,光纤通道,Infiniband等)。在根复合体模式下运行时,存储控制器可以独立建立与远程启动器或主机的网络连接,而无需存储控制器外部的本地根复合体。在一个实施例中,存储控制器充当通过以太网与远程NVMe发起者通信的NVMe_oF(NVMe over fabric)目标。
图4是使用双端口网络接口设备提供多路径解决方案,如何将图3的存储控制器应用于存储目标系统的示意图。
图5是存储控制器用作PCIe根复合体并且通过开放式NAND快闪存储器接口(ONFI)管理闪存的示意图。
图6是支持使用标准PCIe接口的任何PCIe存储设备的存储控制器存储接口的示意图。
图7是用作PCIe根复合体的存储控制器的示意图。在此模式下,存储控制器负责配置和操作本地PCIe连接的以太网设备。每个存储控制器以太网端口都以完全冗余配置连接到以太网交换机。存储控制器可以有1到“N”个存储控制器,每个存储控制器都有1到“M”个PCIe端口。
图8是“N”个存储控制器的示意图,每个存储控制器配置并支持不同的存储接口。
图9是采用多个存储控制器的示意图,并且每个存储控制器被配置并支持不同的存储接口,其中附接有不同的存储设备。存储控制器还管理两个不同的结构接口设备,每个设备支持两个端口;一个PCIe以太网设备和一个PCIe光纤通道(FC)设备。每根光纤都以完全冗余的配置连接到过剩的主机,每个主机都支持过剩的光纤接口。
图10是存储控制器如何独立配置和控制其PCIe端口的示意图,并且每个端口都可以是端点或根端复合体。它进一步说明了如何使用此功能。
图11是多模式PCIe L/T RC/EP/BR 1104逻辑的详细视图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
附图仅示出了本申请的示例性实施例,因为本申请的概念适用于其他同等有效的实施例,因此不限制其范围。图1示出了以端点模式100配置的独立存储控制器101,其包括以下功能元件中的一个或多个:PCIe连接器103,PCIe物理层(PHY)104,多模式PCIe L/TRC/EP/BR 105,逻辑模块114,其可包含嵌入式中央处理单元(eCPU)107,,应用逻辑106,内存缓冲区108,存储逻辑109,存储接口逻辑110,主机PCIe根复合体102和存储设备111。多模式PCIe L/T RC/EP/BR 105,以端点模式配置,是处理PCIe协议的链路和传输层的PCIe控制器。应用程序逻辑106处理协议命令处理逻辑。内存缓冲区108可以包括静态随机存取存储器(SRAM)和/或动态随机存取存储器(DRAM),以缓冲应用逻辑106与存储逻辑109和存储接口逻辑110之间的数据和命令流量。存储接口逻辑110处理存储控制器和存储设备111之间的接口。存储设备111由存储控制器101配置和管理。存储设备111使用存储接口逻辑110直接连接到存储控制器101。存储控制器可以是一个或多个插入式PCIe印刷电路板(PCB)卡,或位于存储系统内的片上系统(SOC),也称为目标(target)。(主机连接可以在本地找到,在目标内作为具有PCIe根复合体的CPU复合体,或在外部,使用PCIe结构连接)。外部主机可以包括以下一个或多个:服务器或包含PCIe根联合体的任何设备。在一个实施例中,存储控制器101充当NVMe目标,应用逻辑106处理NVMe命令协议和数据处理功能,并且可以由逻辑模块114或嵌入式处理器子系统复合体eCPU 107辅助。
图2包含存储控制器200,其位于目标内并提供到存储设备203的连接。存储控制器200和存储设备203使用通用接口进行通信。在该模式中,存储控制器200用于允许主机201,以与使用直接附加存储(即位于主机内的存储)的主机非常相似的方式直接访问和控制存储。位于以端点模式配置的目标中的存储控制器200,使用PCIe端口204连接到PCIe交换机202。PCIe交换机可以位于目标的内部或外部。PCIe交换机连接到主机201,主机201配置有可以作为PCIe根复合体执行的PCIe结构接口。
PCIe端口204可以包括以下中的一个或多个:PCIe连接器103,PCIe PHY 104和多模式PCIe L/T RC/EP/BR 105逻辑。PCIe端口204被配置为以端点模式操作。存储控制器200可以包括两个或更多个PCIe端口204。主机201是具有网络接口的计算机/服务器,在该实施例中是PCIe接口,其能够作为PCIe根复合体执行。主机可以具有通过存储控制器配置和管理存储控制器200和存储设备203的能力,而存储控制器以透明输入/输出(I/O)方式工作。
图3示出了当以根复合体模式300配置时的存储控制器301,其可以包括以下功能元件中的一个或多个:PCIe连接器303,PCIe PHY 304,多模式PCIe L/T RC/EP/BR 305,逻辑模块314,其可以包含eCPU 307,应用逻辑306,内存缓冲区308,存储逻辑309,存储接口逻辑310。所述功能元件可以包括以下中的一个或多个:硬件多路复用器,硬件寄存器,硬件状态机,硬件门。所述功能元件用于配置和管理网络接口设备302和存储设备311,而无需使用外部PCIe根复合体。网络接口设备302可以在一侧支持网络接口(例如,以太网,PCIe,光纤通道等),在另一侧支持PCIe从属接口312(例如PCIe插件卡,SOC)。PCIe连接器303是符合PCIe标准的接口。这可以采用标准连接器的形式,与插入式卡一起使用的边缘指状物或通过其他电气装置(例如PCB上的蚀刻)直接连接。
PCIe PHY 304是物理层接口,其遵循PCI连接器端的PCIe的电信号标准,并且利用不同的内部接口连接到多模式PCIe L/T RC/EP/BR 305逻辑。以根复合体配置的多模式PCIe L/T RC/EP/BR 305是处理PCIe协议的链路和传输层的PCIe控制器。应用逻辑306处理网络协议和存储协议(通过网络协议承载)的应用层。逻辑模块314eCPU 307元件可以包括以下中的一个或多个:硬件多路复用器,硬件寄存器,硬件状态机,硬件门,嵌入式CPU。嵌入式CPU复合体在一个实施例中,eCPU 307是存储控制器301内的嵌入式CPU复合体,运行嵌入式操作系统(OS),提供以下一种或多种功能(但不限于以下功能)的可编程灵活性:配置和管理PCIe根复合体,网络协议卸载协助,存储协议卸载协助,配置和管理不同的存储设备。内存缓冲区308由SRAM和/或DRAM存储器组成,以缓冲应用逻辑306,存储逻辑309和接口之间的数据和命令流量。存储逻辑309块处理存储设备311的控制和数据处理。存储设备311是通过存储接口逻辑310连接到存储控制器301的任何非易失性存储设备(即NAND闪存,SSD等)。
在一个实施例中,存储控制器301可以包括以下中的一个或多个,以指示它应该在哪一个模式(根复合体或从属模式)中操作:将值写入可设置寄存器,当连接到电源或地时具有硬件引脚,SOC金属掩模选项,从SOC联合电子设备工程委员会(JEDEC)定义的端口读取的值,从两个或多个引脚读入的值。
在一个实施例中,存储控制器301用作通过以太网与远程NVMe over Fabrics(NVMe_oF)发起者通信的NVMe_oF目标,使用NVMe_oF协议之一(RoCE,iWARP,TCP/IP,FC等)。今天的网络接口设备302通常提供卸载诸如RDMA的通用网络协议的功能,而逻辑模块314和应用逻辑306可以对此提供帮助。在RDMA流量终止之后,应用逻辑306涉及加速通过RDMA协议承载的NVMe命令的处理和相关的读和写数据处理,以及涉及与存储逻辑309接口。在一个实施例中eCPU 307复合体负责NVMe管理命令以及错误处理。它还可以用于执行存储设备311的管理任务。存储逻辑309负责读写数据流控制和处理。
在另一个实施例中,eCPU 307可以管理以下中的一个或多个:从NVMe overFabrics协议,协议验证,IO上下文加载和存储,地址验证来管理提交,完成和管理队列对。应用逻辑306可以执行用于NVMe over Fabrics数据消息的硬件辅助功能以卸载eCPU 307,可以包括以下中的一个或多个的:IO或会话上下文存储器获取,IO或会话上下文状态更新,协议验证,地址验证,队列对指针更新。传入的NVMe over Fabrics帧可以由eCPU307或应用逻辑306部分地处理,然后部分或全部传输到存储接口逻辑310或存储缓冲器308。
图4示出了以根复合体模式配置的两个存储控制器400和401,其位于目标内,并且通过多个标准以太网交换机402向多个的主机403提供过剩的闪存设备406的连接。目标以太网端口404以完全冗余配置连接到以太网交换机402。存储控制器400和401被配置为在PCIe根复合体模式下操作,通过存储控制器PCIe端口405和闪存设备406,使用以太网端口404,提供双端口网络接口设备的所有配置和管理。主机403和存储控制器400和401以完全冗余的多路径配置连接。注意,图中只显示出了两个存储控制器400和401,但是本申请可以支持任意数量的存储控制器。
图5示出了一种存储控制器501,与如图3所描述的存储控制器相比,具有相同的模式和内部组件,除了存储接口逻辑510已被改变以适应开放式NAND闪存接口(ONFI),其允许存储控制器更多地控制闪存,并且直接控制闪存511。闪存511是一些形式的非易失性存储器设备的离散组,其通过存储接口逻辑510直接连接到存储控制器。
图6示出了一种存储控制器601,与如图3所描述的存储控制器相比,具有相同的模式和内部组件,除了存储控制器已将存储接口逻辑更改为PCIe连接器610,并且是通过标准PCIe信令612直接控制PCIe存储设备611。PCIe存储设备611是标准PCIe SSD设备,其通过PCIe接口612连接到存储控制器601PCIe连接器610,并且由存储控制器601配置和管理。网络接口设备602还经由PCIe接口613连接到PCIe连接器603。
图7示出了存储控制器701,与如图3所描述的存储控制器相比,具有相同模式和内部组件,除了存储控制器701已将存储接口改变为SAS/SATA接口710,并且直接控制通过SAS/SATA接口712连接的SAS/SATA存储设备711。
图8示出了以根复合模式配置的两个存储控制器800和801,其位于目标内,并且提供过剩的闪存设备806(通过ONFI 807)到过剩的主机803(通过多个标准以太网交换机802)的连接,和PCIe/SATA/SAS存储设备809(通过PCIe/SATA/SAS接口808)到过剩的主机803(通过多个标准以太网交换机802)的连接。目标以太网端口804以完全冗余的配置连接到以太网交换机802。存储控制器配置为在PCIe根复合体模式下运行,通过存储控制器PCIe端口805和闪存存储设备806之一提供以太网端口804的所有配置和管理。主机803和存储控制器800和801以完全冗余的多路径配置连接。注意,此处仅显示两个存储控制器800和801,但是本申请可以支持任意数量的存储控制器。
在该实施例中,闪存设备806是自包含设备,其利用某种形式的非易失性存储器并由板载控制器管理。该控制器还使用ONFI,其允许存储控制器800和801对闪存设备806的更多控制。该实施例中,以太网端口804是独立的SOC类型设备,它利用单个以太网接口进行外部结构连接,并使用内部PCIe接口与存储控制器PCIe端口805进行内部连接。外部网络连接也可以是可以作为SOC或插卡提供的任何其他类型的网络传输(例如Infiniband或光纤通道),两者都是设计相关的。
以太网交换机802可以是向过剩的主机803提供网络连接的内部或外部设备。主机803是具有网络接口的计算机/服务器,在该实施例中,以太网接口使用标准以太网网络组件来连接到外部交换机和存储元件。
图9示出了两个存储控制器900和901,其配置与图7中相同,但是存储控制器PCIe端口911和909的网络接口连接到网络设备910和908,其中网络设备910和908分别提供到光纤通道和以太网网络的网络连接。这些网络设备中的每一个都是双端口的,提供冗余结构拓扑。注意,可以支持任意数量的存储控制器900和901。双端口光纤通道控制器910是从存储控制器900外部提供两个光纤通道接口,并且在存储控制器PCIe端口911内部提供PCIe接口的设备(即插入式卡或SOC)。双端口以太网网络控制器908是在存储控制器900外部提供两个网络接口并且在存储控制器PCIe端口909内部提供PCIe接口的设备(即插入式卡或SOC)。
图10示出了系统1 1002和系统X1014。本发明可以支持任何数量的系统1002和1014。这些系统可以是任何类型的系统,在这个系统中,本地主机1 1006与封闭环境中的存储设备位于同一位置。在该实施例中,本地主机1 1006和子系统1 1003共同位于系统11002中,并且本地主机W1016和子系统Y1015共同位于系统X1014中。子系统1003和1015可以包括以下块中的一个或多个:闪存设备1013,存储控制器1000,PCIe端口0RC 1005,PCIe端口M EP 1004,端口0以太网1011。子系统块可以包括:单个PCB,一个或多个PCB,单个物理外壳,一个或多个物理外壳。存储控制器1 1000和存储控制器Z1001每个都有两个PCIe端口,且每个端口的模式是独立配置的。PCIe端口0 1005配置为RC模式,PCIe端口M1004配置为EP模式。PCIe端口M1004通过PCIe接口1007连接到本地主机1 1006,其中本地主机1具有根复合体,其充当作为从设备的PCIe端口M1004的主设备。PCIe端口0 1005,配置为根复合体,连接到从属网络接口设备,PCIe接口1012上的端口0以太网1011。然后,网络接口设备1011由存储控制器11001配置和控制。在该实施例中,网络接口设备1011连接到以太网交换机1009。还连接到该以太网交换机1009的是其他系统,其可以包括远程主机1008,以及附加存储1010,例如JBOF。
当PCIe端口M1004充当端点时,本地主机1 1006终止其在PCIe端口M处的连接,并且仅允许访问通过存储控制器1 1000配置的PCIe端口M 1004接口之外的存储器空间。通过这种配置,存储控制器1 1000然后在本地主机1 1006和网络接口设备1011之外的网络之间进行桥接。在一个实施例中,系统1 1002可以是服务器,使用一些HCI软件,如Ceph(对象存储开源软件),作为超融合架构(HCI)系统运行。该服务器将具有连接在PCIe接口上的本地存储设备,例如SSD1 1003,其内部连接到服务器的计算复合体,本地主机1 1006。存储控制器1 1006PCIe端口0 1005通过网络接口设备1011和以太网交换机1009连接到另外的外部存储器1010。通过以太网传输,使用任意数量的协议(NVMe_oF,iSCSI等),为本地主机11006提供额外的存储空间。当本地主机1 1006请求特定存储数据时,存储控制器1 1000将确定是否在本地的闪存设备1013中或者远程地外部存储器1010中找到数据,并将执行所请求的功能。
图11更详细地示出了多模式PCIe L/T RC/EP/BR 1104。这个区块内有一个PCIe桥接器1130,当被配置时会创建一个N端口桥,在功能上替换RC/EP输出到PCIe连接器1103。PCIe桥接器1130连接到多向逻辑块1143、1144和1145。PCIe桥接器的端口1包含多向逻辑块1144,上行/下行端口1 1131,虚拟桥接器1 1132,出口非透明桥(NTB)寄存器1133和入口NTB寄存器1134。第二端口包括多向逻辑1145,上行/下行端口1 1138,虚拟桥接器1 1137,出口NTB寄存器1136和入口NTB寄存器1135。多向逻辑1144和多向逻辑1145通过接口1151连接。多向逻辑1145还连接到RC/EP逻辑1 1146。PCIe桥接器1130具有N个端口,其包含多向逻辑N1143,上行/下行端口N1139,虚拟桥接器1140,出口NTB寄存器1141和入口NTB寄存器1142。虚拟桥接器1132,虚拟桥接器1138和虚拟桥接器1140通过总线1150连接。多向逻辑N1143连接到PCIe PhyN1152和到上行/下行端口N1139,且通过接口1152连接到RC/EP逻辑N1147。RC/EP逻辑1 1146和任何数量N的RC/EP逻辑N1147通过任意数量N的接口1113连接到应用逻辑1106。
当任何时候存在多个根复合体时,NTB寄存器1133、1134、1135、1136、1141和1142成对使用(即1133/1134,1135/1136,1141/1142)以在N个单独的根复合体之间进行转换。当存在单个根复合体时,不需要使用NTB寄存器,并且PCIe桥接器1130以透明模式运行,提供本地主机1149访问所有存储控制器的资源,以及PCIe接口1153上的网络接口设备1102的管理和配置。在一个实施例中,具有RC的本地主机1149通过PCIe连接器N1153连接到存储控制器。它是根联合体,但是PCIe桥接器1130被启用并配置有上行/下行端口2 1138作为上行端口(即,附接RC),而上行/下行端口N1139被配置为下行端口。在这种情况下,NTP对1141和1142将用于在两个不同的存储区域之间进行转换,其中RC/EP逻辑1被配置为根复合模式,并提供网络接口设备1102的配置和管理,并且仅示出存储控制器管理的内存空间的本地主机1149特定区域,其可以包括板载闪存,和/或通过网络接口设备1102连接的外部资源。
尽管为了清楚理解的目的,通过举例说明或实施例详细描述了前述发明,但是对于本领域中普通技术人员明显地是,根据本申请的教导,在不脱离所附权利要求的精神或范围的情况下,可以对其进行制造。
需要说明的是,在本专利的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
Claims (9)
1.一种存储控制器系统,其特征在于,包括:
网络接口,用于耦合到远程主机;
闪存;
存储控制器,其中所述存储控制器包括:
耦合到所述网络接口的第一PCIe端口
耦合到本地主机的第二PCIe端口
耦合到所述闪存的存储接口逻辑
支持端点和根复合体模式的PCIe功能元件
其中,所述闪存耦合到所述存储控制器,所述网络接口与所述存储控制器耦合;所述存储控制器的第一PCIe端口在被配置为根复合体模式时能够充当PCIe主设备,通过所述网络接口将帧从所述闪存发送到作为发起者的远程主机,并且,所述存储控制器的第二PCIe端口被配置为端点模式时能够充当PCIe从设备,被作为PCIe主设备的本地主机所控制,以便将帧传输到所述闪存或从所述闪存传输帧。
2.如权利要求1所述的系统,其特征在于,所述网络接口是以下中的一个或多个:PCIe桥接器,PCIe到以太网转换器,以太网NIC,InfiniBand NIC,光纤通道适配器。
3.如权利要求1所述的系统,其特征在于,所述存储控制器包括以下中的一个或多个:PCIe连接器,PCIe PHY,多模式PCIe L/T RC/EP/BR,具有eCPU的逻辑模块,应用逻辑,内存缓冲区,存储逻辑,存储接口逻辑。
4.如权利要求1所述的系统,其特征在于,所述存储控制器包括存储接口逻辑,其将存储控制器连接到以下中的一个或多个:闪存,PCIe存储设备,SAS/SATA存储设备。
5.如权利要求1所述的系统,其特征在于,所述存储控制器包括逻辑模块,所述逻辑模块包括以下中的一个或多个:嵌入式CPU,硬件寄存器,硬件多路复用器,硬件随机存取存储器块。
6.如权利要求1所述的系统,其中PCIe功能元件端点和根复合模式可以通过以下方法中的一种或多种来设置:在可设置寄存器中写入值,连接到电源或地的硬件引脚,SOC金属掩膜选项,从SOC JEDEC端口读入的值,从两个或多个引脚读入的值。
7.如权利要求1所述的系统,其特征在于,所述存储控制器在所述第一PCIe端口上用作根复合体,同时所述存储控制器在所述第二PCIe端口上用作端点。
8.如权利要求7所述的系统,其特征在于,所述存储控制器包括嵌入式CPU,所述CPU能够读取所接收的PCIe帧的一个或多个PCIe帧字段。
9.如权利要求1-8中任意一项所述的系统,其特征在于,所述第一PCIe端口和所述第二PCIe端口的模式是能够独立配置的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811108121 | 2018-09-21 | ||
CN2018111081212 | 2018-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941576A CN110941576A (zh) | 2020-03-31 |
CN110941576B true CN110941576B (zh) | 2021-11-19 |
Family
ID=69888321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910893668.6A Active CN110941576B (zh) | 2018-09-21 | 2019-09-20 | 具有多模pcie功能的存储控制器的系统、方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11599482B2 (zh) |
CN (1) | CN110941576B (zh) |
WO (1) | WO2020057638A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051206B (zh) * | 2020-05-04 | 2024-10-18 | 威盛电子股份有限公司 | 桥接电路与计算机系统 |
CN112596669A (zh) * | 2020-11-25 | 2021-04-02 | 新华三云计算技术有限公司 | 一种基于分布式存储的数据处理方法及装置 |
CN112988272A (zh) * | 2021-03-22 | 2021-06-18 | 成都申威科技有限责任公司 | 一种在uboot中支持多路pcie rc的方法、装置及存储介质 |
US11714775B2 (en) * | 2021-05-10 | 2023-08-01 | Zenlayer Innovation LLC | Peripheral component interconnect (PCI) hosting device |
US11803503B2 (en) | 2021-07-08 | 2023-10-31 | Mediatek Inc. | Chip having dual-mode device that switches between root complex mode and endpoint mode in different system stages and associated computer system |
CN113709066B (zh) * | 2021-07-31 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 一种PCIe通信装置及BMC |
CN114328329A (zh) * | 2021-11-09 | 2022-04-12 | 深圳市广和通无线股份有限公司 | 一种主从设备兼容的通信模块设计方法及装置 |
CN115048327B (zh) * | 2022-06-14 | 2024-03-22 | 中国电子科技集团公司第五十八研究所 | 一种pcie转sata的桥接芯片 |
US12100468B2 (en) * | 2022-09-06 | 2024-09-24 | Micron Technology, Inc. | Standalone mode |
CN115733549B (zh) * | 2023-01-10 | 2023-04-28 | 苏州浪潮智能科技有限公司 | Pcie网卡及其接口模式的切换方法、电子设备及存储介质 |
CN117743240B (zh) * | 2024-02-19 | 2024-04-19 | 井芯微电子技术(天津)有限公司 | 一种具备透明和非透明双模式的PCIe桥设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200925880A (en) * | 2007-08-29 | 2009-06-16 | Ibm | Autonomic PCI express hardware detection and failover mechanism |
CN105975427A (zh) * | 2016-05-18 | 2016-09-28 | 南京国睿中数电子科技有限公司 | 一种基于sas接口的pcie双模式系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793010B2 (en) * | 2005-11-22 | 2010-09-07 | Lsi Corporation | Bus system with multiple modes of operation |
US7743197B2 (en) * | 2006-05-11 | 2010-06-22 | Emulex Design & Manufacturing Corporation | System and method for virtualizing PCIe devices |
US7631128B1 (en) * | 2007-06-28 | 2009-12-08 | Emc Corporation | Protocol controller for a data storage system |
US8966172B2 (en) * | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
US9003071B2 (en) * | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9152593B2 (en) | 2013-09-06 | 2015-10-06 | Cisco Technology, Inc. | Universal PCI express port |
CN106030552A (zh) * | 2014-04-21 | 2016-10-12 | 株式会社日立制作所 | 计算机系统 |
US20160092118A1 (en) | 2014-09-26 | 2016-03-31 | Intel Corporation | Memory write management in a computer system |
US9696935B2 (en) * | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
WO2017131751A1 (en) * | 2016-01-29 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Remote direct memory access |
US10082957B2 (en) * | 2016-07-20 | 2018-09-25 | Western Digital Technologies, Inc. | Dual-ported PCI express-based storage cartridge including single-ported storage controllers |
US10482050B2 (en) * | 2016-11-09 | 2019-11-19 | Qualcomm Incorporated | Link role determination in a dual-mode Peripheral Component Interconnect express (PCIe) device |
EP3757810B1 (en) | 2016-12-28 | 2023-04-05 | Huawei Technologies Co., Ltd. | Packet forwarding method, device, and system in nvme over fabric |
-
2019
- 2019-09-20 US US17/278,270 patent/US11599482B2/en active Active
- 2019-09-20 CN CN201910893668.6A patent/CN110941576B/zh active Active
- 2019-09-20 WO PCT/CN2019/107015 patent/WO2020057638A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200925880A (en) * | 2007-08-29 | 2009-06-16 | Ibm | Autonomic PCI express hardware detection and failover mechanism |
CN105975427A (zh) * | 2016-05-18 | 2016-09-28 | 南京国睿中数电子科技有限公司 | 一种基于sas接口的pcie双模式系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110941576A (zh) | 2020-03-31 |
WO2020057638A1 (en) | 2020-03-26 |
US11599482B2 (en) | 2023-03-07 |
US20210334226A1 (en) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941576B (zh) | 具有多模pcie功能的存储控制器的系统、方法和设备 | |
US11960429B2 (en) | Many-to-many PCIE switch | |
EP3042296B1 (en) | Universal pci express port | |
US9292460B2 (en) | Versatile lane configuration using a PCIe PIE-8 interface | |
KR102705791B1 (ko) | 어레이 내에서 솔리드 스테이트 드라이브들을 자율적으로 관리하는 메커니즘 | |
US10333865B2 (en) | Transformation of peripheral component interconnect express compliant virtual devices in a network environment | |
US8949486B1 (en) | Direct memory access to storage devices | |
CN113841120A (zh) | 具有soc和fpga的服务器卸载卡 | |
US9720864B2 (en) | Flexible server system | |
US8843689B2 (en) | Concurrent repair of the PCIe switch units in a tightly-coupled, multi-switch, multi-adapter, multi-host distributed system | |
US9734115B2 (en) | Memory mapping method and memory mapping system | |
US20200409898A1 (en) | Computer system and a computer device | |
US20130042019A1 (en) | Multi-Server Consolidated Input/Output (IO) Device | |
JP2022507935A (ja) | 代替プロトコルの選択 | |
US10579568B2 (en) | Networked storage system with access to any attached storage device | |
CN104933001A (zh) | 一种基于RapidIO技术的双控制器数据通信方法 | |
Hanawa et al. | Pearl: Power-aware, dependable, and high-performance communication link using pci express | |
US11487695B1 (en) | Scalable peer to peer data routing for servers | |
Krishnan et al. | Dolphin express: A transparent approach to enhancing PCI express | |
CN105653494B (zh) | 一体机 | |
WO2022084352A1 (en) | Acceleration of data between a network and local i/o in a numa system | |
Hanawa et al. | Power-aware, dependable, and high-performance communication link using PCI Express: PEARL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20240218 Granted publication date: 20211119 |