CN107533526B - 经由具有完全连接网格拓扑的pci express结构向存储写入数据 - Google Patents

经由具有完全连接网格拓扑的pci express结构向存储写入数据 Download PDF

Info

Publication number
CN107533526B
CN107533526B CN201580078581.3A CN201580078581A CN107533526B CN 107533526 B CN107533526 B CN 107533526B CN 201580078581 A CN201580078581 A CN 201580078581A CN 107533526 B CN107533526 B CN 107533526B
Authority
CN
China
Prior art keywords
client
psm
data
processor
write
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
Application number
CN201580078581.3A
Other languages
English (en)
Other versions
CN107533526A (zh
Inventor
J·B·戴维斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of CN107533526A publication Critical patent/CN107533526A/zh
Application granted granted Critical
Publication of CN107533526B publication Critical patent/CN107533526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

描述了用于将数据写入到通信结构中的持久存储模块(“PSM”)的方法。在PSM处从处理器接收写入请求。处理器识别写入位置并将其传送给客户端。客户端经由IO层交换机将数据写入到PSM,并通过相同的IO层交换机从处理器接收写入完成指示。

Description

经由具有完全连接网格拓扑的PCI EXPRESS结构向存储写入 数据
相关申请的交叉引用
本申请涉及同时申请的共同未决的题为PCI EXPRESS FABRIC ROUTING FOR AFULLY-CONNECTED MESH TOPOLOGY的美国专利申请No.14/224,846和题为READING DATAFROM STORAGE VIA A PCI EXPRESS FABRIC HAVING A FULLY-CONNECTED MESH TOPOLOGY的美国专利申请No.14/673,103,其通过引用的方式结合于此用于各种目的。
技术领域
本发明一般涉及PCIe结构路由,且更特别地涉及用于在具有完全连接的网格拓扑的PCIe结构中向端点写入数据的系统和方法。
背景技术
为了两个系统能够使得两个独立的系统通信,每一个系统需要包括足够的硬件和/或软件来使得这两个系统对接。
从以下描述以及权利要求书中可以明白本发明的其他方面。
附图说明
图1示出了根据本发明的一个或多个实施方式的包括PCIe结构的系统;
图2示出了与本公开的实施方式保持一致的读取数据的方法;
图3示出了用于与本公开的实施方式保持一致的写入数据的方法。
具体实施方式
以下结合示出本发明原理的附图提供本发明的一个或多个实施方式的详细描述。虽然结合这些实施方式描述本发明,但是应当理解本发明不限于任意一个实施方式。相反,本发明的范围仅由权利要求书来限定且本发明包括许多替换、修改以及等同。处于示例的目的,在以下描述中提出了许多具体的细节以提供对本发明的全面理解。是处于示例的目的提供这些细节,且可以根据权利要求书在没有这些具体细节的一些或全部的情况下实施本发明。处于清楚的目的,与本发明相关的技术领域中公知的技术材料没有详细描述以避免不必要地使本发明晦涩。
应当理解可以以许多方式来实施本发明,包括实施为过程、装置、系统、设备、方法或计算机可读介质,例如计算机可读存储介质或计算机网络,其中计算机程序指令通过光或电通信链路被发送。应用可以采用在通用计算机上执行的软件的形式或在硬件中硬线连接或硬编码。在本说明书中,这些实施或本发明可以采用的任意其他形式可以称为技术。一般来说,公开的过程的步骤的顺序可以在本发明的范围内改变。
将参考以被配置成存储文件的存储系统的形式的数据存储系统来描述本发明的实施方式,但是应当理解本发明的原理不限于这种配置。而是,其可应用于能够以模拟、数字或其他形式存储并处理各种类型的对象的任意系统。虽然诸如文档、文件、对象等的术语可以以示例的方式被使用,但是本发明的原理不限于任意特定形式的代表并存储数据或其他信息;而是,它们同等地可应用能够代表信息的任意对象。
一般来说,本发明的实施方式涉及PCIe结构,其包括至少两层交换机,被连接以形成至少两层之间的完全连接的网格拓扑。此外,本发明的实施方式涉及PCIe结构,其使得连接到PCIe结构中的一个片(slice)的客户端执行对在PCIe结构的不同片中的存储器、网络端点设备和/或持久存储的操作(例如读和写操作)。
在典型的通信结构(例如以太网或无限带宽)中,通过将唯一端点地址与每个端点设备相关联,并将端点地址指定为请求的部分来在通信结构中的交换机间路由请求。在PCIe结构中,基于被访问的存储器地址而不是端点地址在结构交换机之间路由读和写请求操作。结果,用于完全连接的网格的基于地址的路由的典型布置不允许所有客户端访问所有端点设备。本发明的一个或多个实施方式提供能够克服这一局限的机制。具体地,基于地址的路由可以用于实现所有客户端访问所有端点的层之间的完全连接的网格(下文所述)。
在本发明的一个或多个实施方式中,PCIe结构中的组件通信和/或实施外部部件互联Express(PCIe)标准。本发明的实施方式不限于PCIe标准的任何过去、当前或将来的版本。此外,本发明的实施方式可以用与用于实施本发明各种实施方式的PCIe标准的特征类似的特征的其他标准来实施。
本公开还提出用于通过PCIe结构执行I/O操作的方法和过程。由于该结构存在多条路径,因此当客户端尝试读取或写入数据时可以发生竞争条件。例如,客户端可以在数据被完全传输到客户端之前接收“读取完成”指示。类似地,可以存在写竞争条件,其中PSM和/或客户端在数据被完全写入到PSM或其他端点之前接收“写入完成”指示。这种问题可能在数据正被写入或从多个PSM读取的时候加剧。如本文所述,这些竞争条件可以通过使得某些系统传输沿着与数据相同的PCIe结构的通信路径来避免。
图1示出了根据本发明的一个或多个实施方式的包括PCIe结构的系统。PCIe结构(100)由两个或更多个片(104A,104B)组成,其中每个片直接连接到一个处理器(112A,112B)和一个或多个客户端(102A-102D)。下面描述之前提到的组件中的每一个。
在本发明的一个实施方式中,每一个客户端(102A-102D)是物理设备,其包括处理器(或另一类型的处理组件)、存储器以及用于使其连接到PCIe结构(100)的物理接口。此外,每个客户端包括实施本发明的一个或多个实施方式所需的用于实施PCIe标准(或其部分)的功能。客户端还包括用于发送和/或接收事务层分组(TLP)的功能。TLP对应于根据PCIe标准被定义的一种类型的分组。在本发明的一个实施方式中,TLP使得客户端能够从PCIe结构读取数据并向PCIe结构写入数据。例如另一种方式,TLP使得客户端能够将数据传输到PCIe结构中的位置并从PCIe结构中的位置传输数据。在本发明的一个实施方式中,客户端的一个或多个操作为PCIe端点,即,发起事务的设备和/或是事务的目标的设备。每一个客户端可以经由链路(即,客户端与PCIe结构之间的物理连接)连接到PCIe结构。
继续图1的描述,每个片(104A,104B)包括输入/输出(IO)层交换机(ITS)(108A,108B)、集线器层交换机(HTS)(106A、106B)以及一个或多个持久存储模块(PSM)。下面描述这些组件的每一个。
关于ITS,每个ITS是连接到一个或多个客户端(102A-102D)的物理PCIe交换机。每个ITS还连接到ITS所位于的相同片中的HTS。此外,每个ITS可以连接到与ITS所位于的片不同的片中的一个或多个HTS。在本发明的一个实施方式中,每个ITS连接到PCI结构中的每一个HTS,由此产生PCIe结构中层之间的完全连接的网格。在不偏离本发明的情况下可以不需要层间完全连接的网格来实施本发明的实施方式。
在本发明的一个实施方式中,每个ITS被配置成:(i)从其连接的客户端接收TLP并使用地址路由(例如存储器地址路由)将TLP路由到ITS上的合适的出口端口(上游端口或下游端口中的一个下游端口),以及(ii)从ITS连接的一个或多个HTS接收TLP并使用地址路由将TLP路由到ITS上的合适的出口端口(典型地下游端口)。例如,在图1中,ITS B(108B)可以从客户端C(102A)、客户端D(102D)、HTS A(106A)以及HTS B(106B)接收TLP。
关于HTS,每个HTS是连接到一个或多个ITS(108A-108B)以及一个或多个持久存储模块(PSM(110A-110D))的物理PCIe交换机。每个HTS连接到HTS所位于的相同片中的ITS。此外,每个HTS可以连接到与HTS所位于的片不同的片中的零个或多个ITS。在本发明的一个实施方式中,每个HTS连接到PCIe结构中的每一个其他ITS由此产生PCIe结构中层间的完全连接的网格。每个HTS还可以经由其根端口(未示出)连接到处理器。在不偏离本发明的情况下可以不需要层间完全连接的网格来实施本发明的实施方式。
在本发明的一个实施方式中,每个HTS被配置成:(i)从其连接的持久存储模块(PSM)接收TLP并使用地址路由将TLP路由到HTS上的合适的出口端口(典型地下游端口)以及(ii)从HTS连接的一个或多个ITS接收TLP并使用地址路由将TLP路由到HTS上的合适的出口端口(上游端口和/或下游端口中的一个或多个下游端口)。例如,在图1中,HTS B(106B)可以从PSM C(110C)、PSM D(110D)、ITS A(108A)和ITS B(108B)接收TLP。下面参考图3提供关于HTS的另外的细节。
在本发明的一个实施方式中,持久存储模块(100A-110D)的每一个包括持久存储(未示出)以及可选地包括易失性存储器(未示出)(例如动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM以及DDR SDRAM)。持久存储可以包括但不限于NAND闪存、NOR闪存、磁性RAM存储器(M-RAM)、转矩磁性RAM存储器(ST-MRAM)、相变存储器(PCM)、记忆存储器、被定义为非易失性存储级存储器(SCM)的任意其他存储器、磁盘以及光盘。本领域技术人员可以理解本发明的实施方式不限于存储级存储器。在本发明的一个实施方式中,PSM的每一个是仅一个片的部分。
继续PCIe结构的讨论,如上所述,PCIe结构中的每一个片直接连接到至少一个处理器(112A、112B)。每个处理器是具有被配置成执行指令的单核或被配置成执行指令的多核的电路组。可以使用复杂指令集(CISC)架构或精简指令集(RISC)架构来实施处理器。在本发明的一个或多个实施方式中,处理器包括根复合体(如由PCIe标准定义的)(未示出)。根复合体将处理器连接到至少一个片以及存储器(114A、114B)(例如,动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM以及DDR SDRAM),其可经由PCIe结构被访问但不是PCIe架构中的任意片的部分。
在本发明的一个实施方式中,PCIe结构内的处理器(112A、112B)能够使用例如处理器互连(116)(例如英特尔QuickPath互连、英特尔前端总线或AMD HyperTransport)直接通信。本领域技术人员可以理解在不偏离本发明的情况下其他端到端通信机制可以用于允许处理器(112A、112B)之间的直接通信。
本发明不限于图1中示出的系统。
虽然图1示出了客户端连接到ITS和PSM连接到HTS,本发明的实施方式可以被实施为客户端连接到HTS以及PSM连接到ITS。
在本发明的另一实施方式中,PCIe结构可以被实施由此其不包括任何PSM;而是ITS和HTS都连接到分开的客户端集合,其中PCIe结构促进客户端之间的通信。
此外,虽然图1中示出的PCIe结构仅包括两个片、两个处理器以及四个PSM,但是在不偏离本发明的情况下PCIe结构可以被实施具有更少或更多的上述组件中的每一者。此外,虽然图1中的PCIe结构连接到四个客户端和两个存储器,但是在不偏离本发明的情况下本发明的实施方式可以被实施以使得PCIe结构能够连接更少或更多数量的客户端和/或存储器。
此外,虽然关于包括存储(例如PSM(110A-110D))的PCIe结构描述了本发明的实施方式,但是本发明的实施方式可以被实施为使得任意两个设备能够使用PCIe结构进行通信。例如,在本发明的一个实施方式中,图1中示出的客户端可以是刀片式服务器,其中刀片式服务器不包括任何物理NIC卡且PSM可以用网络端点设备来替换。
在该示例中,网络端点设备是被配置成使用互联协议与网络(即,有线网络、无线网络或其组合)对接以及经由PCIe与PCIe结构对接的设备。网络端点设备的示例是PICeNIC卡。网络端点设备的每一个可以包括持久存储(如以上关于PSM所述的)和存储端点设备存储器(例如动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM、DDR SDRAM或任意其他类型的易失性存储器)的组合。
继续该示例,PCIe结构可以使得刀片式服务器能够与一个或多个网络端点设备通信。该实施方式可以允许刀片式服务器有效率地共享一个或多个网络端点设备。本发明不限于该示例。
在另一示例中,在本发明的一个或多个实施方式中,PSM可以用存储端点设备(即,包括从客户端存储数据和服务读取以及写入请求的功能的设备)来替换。存储端点设备的每一个可以包括持久存储(如以上关于PSM所述的)和存储端点设备存储器(例如动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM、DDR SDRAM或任意其他类型的易失性存储器)的组合。存储端点设备的示例是存储设备。本发明不限于该示例。
此外,本发明的实施方式可以被扩展到包括经由PCIe结构的两个或更多个设备通信。在一般情况中,PSM(图1中示出的)可以被一般化为目标设备,其中目标设备可以包括PSM、网络端点设备、存储端点设备或能够使用PCIe通信的任意其他设备。
虽然图1中的PCIe结构已经被示出包括PSM(或更一般地目标设备),但是PCIe结构可以被实施为由此其不包括目标设备;而是,PCIe结构仅包括用于连接到目标设备的必要的物理组件。
现在参考图2,描述了用于从类似图1的系统中的PSM读取数据的过程。可以在处理器(例如处理器A或处理器B(112A、112B)处从客户端(例如客户端(102A-D))接收该读取请求。该请求可以针对位于系统中的一个或多个PSM(例如PSM(110A-D))的数据。在一些实施方式中,可以使用组播通过系统传送请求和所有其他传输,如在交叉引用的专利文献中记载的。在一些实施方式中,可以使用如上所述的TLP通过系统路由传输。
在一个实施方式中,可以从一个或多个PSM读取数据并将其传回客户端。例如,响应于来自客户端C(102C)的读取请求,可以从PSM A(110A)读取数据并将其传送到该客户端。一旦从PSM读取数据,PSM A可以发送完成到处理器(例如处理器A(112A)和/或处理器B(112B)),而其可以依次将读取完成传送到客户端(在该情况中是客户端C)。该读取完成可以向客户端指示数据已经从PSM被传送且不期望更多的数据。但是,在数据仍然在传输途中时(即,在数据仍然正通过PCIe结构从PSM传送时)存在客户端会接收到读取完成的可能性。例如,数据在到达客户端C(102C)之前可能流过集线器交换机A(106A)和IO层交换机B(108B)。但是来自PSM的读取完成可能在下传通过集线器交换机B(106B)和IO层交换机B(108B)之前流到处理器A(112A)和/或处理器B(112B)。如果线路上存在等待时间,例如在交叉链路(118)处存在等待时间,则读取完成可能在任意或所有数据之前到达客户端C(102C)。因此客户端可能认为其具有所有的读取数据,而实际上其一些仍然正流过该结构。图2中示出的方法解决这一竞争条件。
在框200,可以在处理器处接收来自客户端的PSM读取请求。例如,客户端C(102C)可以通过IO层交换机B(108B)和集线器交换机B(106B)发送读取请求到处理器B(112B)。在一个实施方式中,PSM读取请求可以包括针对客户端希望读取的数据的逻辑地址。
在框202,处理器(例如处理器B(112B))可以识别与客户端提供的逻辑地址相关联的PSM。在一些实施方式中,处理器可以查询存储器内数据结构以将逻辑地址解析成物理地址。存储器内数据结构可以是位于处理器存储器(例如存储器A(114A)或存储器B(114B))中的逻辑至物理地址映射。该识别的物理地址可以对应于系统中的数据的一个或多个位置。例如,物理地址可以识别包含所有或部分的数据的一个或多个PSM中的一个或多个区。
在框204,可以从处理器向一个或多个物理位置传送门铃。例如,可以向PSM A(110A)传送门铃。在一些实施方式中,可以向多个PSM传送门铃,多个PSM可以在相同片上或不同片上。例如,可以向片A(104A)上的PSM A(110A)和片B(104B)上的PSM D(110D)传送门铃。这例如在所请求的数据的部分位于不同PSM的情况下是有利的。
响应于门铃,一个或多个PSM可以从处理器存储器读取物理位置数据(在206)。在一些实施方式中,读取物理位置数据包括DMA读取请求。该读取请求可以包括PSM在PSM上物理定位数据所需的地址信息。
可以存在针对框204和206的另外和/或可替换过程。例如,处理器可以直接将读取请求写入到PSM存储器。在一些实施方式中,读取请求可以被传送到PSM,带有标签(例如设置比特、标志和/或指示符,指示其是新请求)。此外或可替换地,可以实施硬件和/或软件FIFO队列,其中PSM知道队列中的一切是新请求。
在一些实施方式中,所请求的数据可以位于PSM的两个位置中的至少一个。第一,数据可以在非持久PSM存储器中,例如拱形存储器(vaulted memory)。拱形存储器可以是例如属于PSM的DRAM。第二,数据可以在PSM的存储模块中,例如闪存模块,用于持久存储。在一个实施方式中,从拱形存储器读取数据可以提供更好的系统性能。
一旦数据位于PSM中,其可以通过与客户端相关联的下游IO层交换机被写入到客户端(在框208)。例如,如果客户端C(102C)请求了数据,则其可以通过与客户端通信的IO层交换机B(108B)被写入到客户端。如果从PSM A(110A)读取数据,则该数据必须还经过集线器交换机A(106A)和将集线器交换机106A与IO层交换机B(108B)连接的交叉链路。
在一些实施方式中,将数据写入到客户端包括DMA写入。例如,可以从PSM的拱形存储器和/或存储模块将数据写入到客户端的存储器。在一些实施方式中,这可以通过位于客户端、PSM和/或处理器处的DMA引擎来促进。
在框210,一旦数据从该结构被写出,则读取完成指示可以从一个或多个PSM被传送到处理器。如果PSM和客户端在同一个片中,则读取完成指示可以直接被传送到与该片相关联的处理器。但是,如果PSM和客户端在不同的片中,则读取完成指示可以通过与数据相同的下游IO层交换机传送。在本示例中,该下游IO层交换机可以是IO层交换机B(108B)。通过与客户端相关联的下游IO层交换机传送数据确保读取完成指示不会由于交叉链路上的等待时间而在数据之前到达客户端和/或处理器。这是因为读取完成跟随数据沿着相同的路径,且在被路由到处理器之前几乎到同一个端点。
例如,在从IO层交换机B(108B)到集线器交换机B(106B)并最终到处理器B(112B)的上游传送之前,读取完成指示在数据之后通过集线器交换机A(106A)和IO层交换机B(108B)被传送。这可以与直接向处理器(例如通过集线器交换机A(106A)向处理器A(112A)并到处理器B(112B))传送读取完成指示形成对比。此外或可替换地,读取完成指示符可以被传送到处理器A(112A),处理器A然后可以在数据之后将该指示发回交换机A(106A)和IO层交换机B(108B)。
最后,在框212,读取完成指示可以从处理器被传送到客户端。例如,一旦处理器B(112B)已经从PSM接收到读取完成指示,则其可以向下游将该指示(或类似的通知)传回客户端。如果从多个PSM读取数据,则处理器可以等待传送通知直到其已经从所有PSM接收到完成。例如,如果响应于读取请求从PSM A(110A)和PSM D(110D)两者读取数据,则处理器可以等待传送读取完成指示直到其已经从PSM A(110A)和PSM D(110D)两者接收到类似的指示。这允许处理器在告知客户端读取完成之前确保所有数据确实已经被传送到客户端。
现在参考图3,描述了用于避免包括完全连接的网格拓扑的PCIe结构中的写入竞争条件的方法。在一些实施方式中,写入竞争条件类似于上述的读取竞争条件。客户端可能希望将数据写入到连接到PCIe结构的一个或多个PSM。客户端可以传送写入请求到处理器,例如处理器A(112A)或处理器B(112B)。处理器可以用PSM位置来响应,以及客户端可以开始数据传输。一旦客户端已经将其数据写入到线路,其可以将写入完成发回处理器。处理器然后可以在PSM处设置指示写入完成的门铃。PSM然后可以对从客户端接收的数据进行非持久存储。但是,在一些实施方式中,可能在数据仍然在从客户端的传输过程中接收到门铃。例如,门铃可以沿着不同于数据的路径,且因此可以在数据之前到达PSM。作为响应,PSM可以在数据的其余部分到达之前对任意量的接收的数据进行非持久存储。图3中示出的过程可以防止这种竞争条件。
在框300,处理器可以接收来自客户端的指示客户具有其希望写入到PSM的数据的写入请求。例如,处理器B(112B)可以从客户端C(102C)接收写入请求。在一些实施方式中,该写入请求可以经由位于客户端的DMA引擎被接收。DMA引擎可以使得客户端能够直接向存储器处理器(例如存储器B(114B))写入或从处理器存储器读取。此外或可替换地,客户端处理器将写入请求传送到处理器。这对于不期望有使用DMA引擎造成的开销的较小分组来说是有利的。
响应于写入请求,处理器可以识别与一个或多个PSM相关联的一个或多个写入位置。例如,处理器可以识别应写入数据的物理地址。这些物理地址可以是在同一个PSM内或可以在多个PSM中。在一些实施方式中,将数据写入到多个PSM可以在PSM故障的情况下提供冗余。在本示例中,处理器B(112B)可以将PSM A(110A)识别为用于数据的位置。
在框304,处理器可以将指示符(例如比特、标志或指示符)写入到客户端DMA引擎。该比特可以指示在处理器存储器中有一个或多个数据写入位置可用。该数据写入位置可以是在框302中被识别的物理位置。例如,该比特可以向客户端通知在处理器B(112B)的存储器(114B)中有一个PSM位置可用。
在框306,客户端可以从处理器存储器读取写入位置。该读取可以经由位于客户端的DMA引擎发生。一旦客户端已经从处理器存储器接收到PSM位置,则其可以开始经由PCIe结构将数据写入到PSM。
在框308,PSM可以接收从客户端写入的数据。在一个实施方式中,该数据可以通过与客户端相关联的下游IO层交换机端口被接收。例如,数据可以从客户端C(102C)流过IO层交换机B(108)并经由集线器交换机A(106A)到PSM A(110A)。在一个实施方式中,在每个IO层交换机和/或集线器交换机处使用组播群组来通过PCIe结构路由数据。在其中在多个PSM处识别多个物理地址的实施方式中,数据可以通过与客户端相关联的下游IO层交换机流到两个或更多个PSM。
在一些实施方式中,在PSM处接收的数据可以被写入到PSM的拱形存储器。该拱形存储器可以是例如与PSM相关联的DRAM或MRAM。该拱形存储器还可以是另一形式的非易失性/持久或非持久存储器。PSM可以将数据存储到拱形存储器中直到其从处理器接收到对数据进行长期持久存储的指示。
一旦客户端已经完成将数据写入到PCIe结构,其可以向处理器传送写入完成通知。在框310,处理器可以从客户端接收该通知。例如,客户端C(102C)可以一旦其已经完成将数据写入到结构就向处理器B(112B)传送写入完成通知。该写入完成通知可以在数据仍然在往PSM的传输途中被传送和/或接收。在一些实施方式中,写入完成通知是客户端DMA写入,例如MWr(“存储器写入”)PCIe TLP。
一旦从客户端接收写入完成,则处理器可以将分开的写入完成传送到接收来自客户端的数据的任意PSM。例如,如果PSM A(110A)接收到数据,则处理器可以将写入完成传送到该PSM。如果多个PSM接收到数据,则可以将写入完成发送到其中的每一个PSM。
从处理器向PSM传送的写入完成可以流过与写入数据的客户端相关联的下游IO层交换机。例如,写入完成在经过交叉链路到集线器交换机A(106A)再到PSM A(110A)之前可以流到与客户端C(102C)相关联的IO层交换机B(108B)。使得写入完成经过与客户端相关联的IO层交换机确保其沿着与数据相同的路径到PSM。这可以避免上述的竞争条件,因为写入完成将在数据之后到达而不是提前到达。
在框314,一旦接收到写入完成,则数据标签可以从处理器被传输到PSM。处理器可以为每一个物理位置创建一个数据标签,并将标签传送到每一个物理位置。在一个实施方式中,该数据标签包括对象标识符(例如逻辑单元标识符(“LUN”))和偏移。在一个实施方式中,数据标签和其构成成分可以识别数据的位置。标签可以被存储在存储器内数据结构中并与逻辑地址相关联,其在一个实施方式中是对象标识符。该逻辑地址可以用于在读取请求期间访问数据,如上面详细描述的。在一些实施方式中,将标签传送到PSM包括从PSM将DMA读取到处理器存储器。该读取可以响应于接收到写入完成指示而被执行。
在一些实施方式中,一旦PSM从处理器接收到标签,其可以将标签传输完成通知传送回处理器。这可以向处理器指示在继续到框316之前在PSM处接收到标签。
最后,在框316,处理器将系统写入完成传送到客户端。一旦处理器已经将标签传送到已经接收到数据的PSM的每一个,则该处理器可以传送该系统写入完成。该系统写入通知可以向客户端通知写入过程完成以及数据现在在PSM中可用。
为了清楚起见,使用特定的流程示出了本申请的过程和方法,但是应当理解其他顺序是可能的且可以并行执行一些,而不偏离本发明的实质。此外,可以细分或组合步骤。如本申请所公开,根据本发明写的软件可以以某种计算机可读介质的形式存储,例如存储器或CD-ROM,或通过网络传送,以及由处理器执行。
本申请中所有的引用意在通过引用的方式结合于此。虽然以上关于特定实施方式描述了本发明,但是可以理解对本发明的变形和修改对于本领域技术人员来说是明显的且可以在权利要求书的范围及其等同范围内被实施。可以使用多于一个计算机,例如通过并行使用多个计算机或在多个计算机间加载共享布置或分配任务,由此作为整体它们执行本文确定的组件的功能,即它们取代单个计算机。上述的各种功能可以通过在单个计算机或在一些计算机上分配的单个过程或一组过程来执行。过程可以调用其他过程来处理某些任务。单个存储设备可以被使用,或一些存储设备可以用于替代单个存储设备。公开的实施方式是示例性的而非限制性的,且本发明不限于本申请中给出的细节。有实施本发明的许多可替换方式。因此,本公开和权利要求书旨在被解释为覆盖落入本发明的实质和范围内的所有这样的变形和修改。

Claims (20)

1.一种用于将数据写入到通信结构中的持久存储模块(“PSM”)的方法,该方法包括:
在所述通信结构的处理器处接收来自客户端的PSM写入请求,其中所述PSM写入请求指示所述客户端有数据要写入到所述PSM;
在所述处理器处识别数据写入位置,其中所述数据写入位置与所述PSM相关联;
将所述数据写入位置提供给所述客户端;
在所述PSM处接收来自所述客户端的所述数据,其中所述数据通过与所述客户端相关联的下游IO层交换机被接收;
在所述处理器处从所述客户端接收客户端写入完成通知;以及
从所述处理器向所述PSM传送写入完成指示符,其中所述写入完成指示符通过与所述客户端关联的所述下游IO层交换机被传送,以确保所述写入完成指示符在所述数据之后到达所述PSM。
2.根据权利要求1所述的方法,还包括响应于所述写入完成指示符,从所述处理器向所述PSM传送标签。
3.根据权利要求2所述的方法,其中所述标签包括针对所述数据的对象标识符和偏移。
4.根据权利要求2所述的方法,还包括在所述标签被传送到所述PSM之后,向所述客户端传送系统写入完成。
5.根据权利要求1所述的方法,还包括在所述处理器处识别第二数据写入位置,其中所述第二数据写入位置与第二PSM相关联。
6.根据权利要求1所述的方法,其中将所述数据写入位置提供给所述客户端还包括:
将比特写入到客户端直接存储器访问(“DMA”)引擎,其中所述比特指示所述数据写入位置在处理器存储器中可用;以及
在所述客户端处从处理器存储器读取所述数据写入位置。
7.根据权利要求1所述的方法,其中作为来自所述客户端的直接存储器访问(“DMA”)的结果,在所述PSM处接收所述数据。
8.一种用于将数据写入到通信结构中的持久存储模块(“PSM”)的设备,该设备包括:
用于在所述通信结构的处理器处接收来自客户端的PSM写入请求的装置,其中所述PSM写入请求指示所述客户端有数据要写入到所述PSM;
用于在所述处理器处识别数据写入位置的装置,其中所述数据写入位置与所述PSM相关联;
用于将所述数据写入位置提供给所述客户端的装置;
用于在所述PSM处接收来自所述客户端的所述数据的装置,其中所述数据通过与所述客户端相关联的下游IO层交换机被接收;
用于在所述处理器处从所述客户端接收客户端写入完成通知的装置;以及
用于从所述处理器向所述PSM传送写入完成指示符的装置,其中所述写入完成指示符通过与所述客户端关联的所述下游IO层交换机被传送,以确保所述写入完成指示符在所述数据之后达到所述PSM。
9.根据权利要求8所述的设备,还包括用于响应于所述写入完成指示符,从所述处理器向所述PSM传送标签的装置。
10.根据权利要求9所述的设备,其中所述标签包括针对所述数据的对象标识符和偏移。
11.根据权利要求9所述的设备,还包括用于在所述标签被传送到所述PSM之后向所述客户端传送系统写入完成的装置。
12.根据权利要求8所述的设备,还包括在所述处理器处的第二数据写入位置,其中所述第二数据写入位置与第二PSM相关联。
13.根据权利要求12所述的设备,其中用于将所述数据写入位置提供给所述客户端的装置还包括:
用于将比特写入到客户端直接存储器访问(“DMA”)引擎的装置,其中所述比特指示所述数据写入位置在处理器存储器中可用;以及
用于在所述客户端处从处理器存储器读取所述数据写入位置的装置。
14.根据权利要求8所述的设备,其中作为来自所述客户端的直接存储器访问(“DMA”)的结果,在所述PSM处接收所述数据。
15.一种用于将数据写入到通信结构中的持久存储模块(“PSM”)的系统,该通信结构包括所述PSM和处理器,该处理器执行指令以用于:
在所述通信结构的所述处理器处接收来自客户端的PSM写入请求,其中所述PSM写入请求指示所述客户端有数据要写入到所述PSM;
在所述处理器处识别数据写入位置,其中所述数据写入位置与所述PSM相关联;
将所述数据写入位置提供给所述客户端;
在所述PSM处接收来自所述客户端的所述数据,其中所述数据通过与所述客户端相关联的下游IO层交换机被接收;
在所述处理器处从所述客户端接收客户端写入完成通知;以及
从所述处理器向所述PSM传送写入完成指示符,其中所述写入完成指示符通过与所述客户端关联的所述下游IO层交换机被传送,以确保所述写入完成指示符在所述数据之后到达所述PSM。
16.根据权利要求15所述的系统,还包括响应于所述写入完成指示符,从所述处理器向所述PSM传送标签。
17.根据权利要求16所述的系统,其中所述标签包括针对所述数据的对象标识符和偏移。
18.根据权利要求16所述的系统,还包括在所述标签被传送到所述PSM之后向所述客户端传送系统写入完成。
19.根据权利要求15所述的系统,还包括在所述处理器处的第二数据写入位置,其中所述第二数据写入位置与第二PSM相关联。
20.根据权利要求19所述的系统,其中将所述数据写入位置提供给所述客户端还包括:
将比特写入到客户端直接存储器访问(“DMA”)引擎,其中所述比特指示所述数据写入位置在处理器存储器中可用;以及
在所述客户端处从处理器存储器读取所述数据写入位置。
CN201580078581.3A 2015-03-30 2015-11-25 经由具有完全连接网格拓扑的pci express结构向存储写入数据 Active CN107533526B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/673,073 2015-03-30
US14/673,073 US9864710B2 (en) 2015-03-30 2015-03-30 Writing data to storage via a PCI express fabric having a fully-connected mesh topology
PCT/US2015/062638 WO2016160072A1 (en) 2015-03-30 2015-11-25 Writing data to storage via a pci express fabric having a fully-connected mesh topology

Publications (2)

Publication Number Publication Date
CN107533526A CN107533526A (zh) 2018-01-02
CN107533526B true CN107533526B (zh) 2020-06-16

Family

ID=57006250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580078581.3A Active CN107533526B (zh) 2015-03-30 2015-11-25 经由具有完全连接网格拓扑的pci express结构向存储写入数据

Country Status (4)

Country Link
US (1) US9864710B2 (zh)
EP (1) EP3278230B1 (zh)
CN (1) CN107533526B (zh)
WO (1) WO2016160072A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10614019B2 (en) * 2017-04-28 2020-04-07 EMC IP Holding Company LLC Method and system for fast ordered writes with target collaboration
US10466930B2 (en) * 2017-04-28 2019-11-05 EMC IP Holding Company LLC Method and system for fast ordered writes with atomic multicast
US10853280B1 (en) * 2019-11-22 2020-12-01 EMC IP Holding Company LLC Storage engine having compute nodes with redundant fabric access
CN112559420B (zh) * 2020-12-21 2024-01-23 国家电网有限公司能源互联网技术研究院 基于双高速总线自主可控的数据通信网关机及通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103177133A (zh) * 2013-03-27 2013-06-26 东莞市路晨电子科技有限公司 一种数据采集和存储的系统及方法
CN104106115A (zh) * 2011-12-07 2014-10-15 吉林克斯公司 无竞争的存储器配置
CN104272257A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 具有组播直接存储器存取和统一地址空间的存储系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644904B1 (en) 2006-12-01 2010-01-12 ChemGrout Inc. Pressure relief valve for use in cementitious material pumping systems
US20100083247A1 (en) 2008-09-26 2010-04-01 Netapp, Inc. System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA
US20140237156A1 (en) * 2012-10-25 2014-08-21 Plx Technology, Inc. Multi-path id routing in a pcie express fabric environment
US9292462B2 (en) * 2013-05-22 2016-03-22 International Business Machines Corporation Broadcast for a distributed switch network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104106115A (zh) * 2011-12-07 2014-10-15 吉林克斯公司 无竞争的存储器配置
CN104272257A (zh) * 2012-03-23 2015-01-07 Dssd股份有限公司 具有组播直接存储器存取和统一地址空间的存储系统
CN103177133A (zh) * 2013-03-27 2013-06-26 东莞市路晨电子科技有限公司 一种数据采集和存储的系统及方法

Also Published As

Publication number Publication date
US9864710B2 (en) 2018-01-09
CN107533526A (zh) 2018-01-02
EP3278230A1 (en) 2018-02-07
US20160292098A1 (en) 2016-10-06
EP3278230A4 (en) 2019-01-02
WO2016160072A1 (en) 2016-10-06
EP3278230B1 (en) 2020-07-01

Similar Documents

Publication Publication Date Title
CN110232036B (zh) 主机系统及其方法和加速模块
US10257273B2 (en) Systems, methods and devices for RDMA read/write operations
CN107430584B (zh) 经由具有完全连接网格拓扑的pci express结构从存储读取数据
JP5546635B2 (ja) データ転送装置およびその制御方法
US9921756B2 (en) Method and system for synchronizing an index of data blocks stored in a storage system using a shared storage module
EP3140748B1 (en) Interconnect systems and methods using hybrid memory cube links
US9753880B1 (en) Method and switch for transferring transactions between switch domains
EP3267322B1 (en) Scalable direct inter-node communication over peripheral component interconnect-express (pcie)
CN106933504B (zh) 用于提供存储系统的访问的方法和系统
US9652182B2 (en) Shareable virtual non-volatile storage device for a server
CN107533526B (zh) 经由具有完全连接网格拓扑的pci express结构向存储写入数据
US9244877B2 (en) Link layer virtualization in SATA controller
US10338813B2 (en) Storage controller and using method therefor
US10817446B1 (en) Optimized multiport NVMe controller for multipath input/output applications
CN109783002B (zh) 数据读写方法、管理设备、客户端和存储系统
CN108804355B (zh) 使用目标协作的快速排序写入的方法和系统
US20160357675A1 (en) System and method for management of cache configuration
JP2014167818A (ja) データ転送装置およびデータ転送方法
US8417858B2 (en) System and method for enabling multiple processors to share multiple SAS wide ports
CN108804029B (zh) 使用原子多播的快速排序写入的方法和系统
US11487695B1 (en) Scalable peer to peer data routing for servers

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