CN110825555A - 具有主机隔离的非易失性存储器交换机 - Google Patents

具有主机隔离的非易失性存储器交换机 Download PDF

Info

Publication number
CN110825555A
CN110825555A CN201910727578.XA CN201910727578A CN110825555A CN 110825555 A CN110825555 A CN 110825555A CN 201910727578 A CN201910727578 A CN 201910727578A CN 110825555 A CN110825555 A CN 110825555A
Authority
CN
China
Prior art keywords
switch
nvm
volatile memory
program code
transaction
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
Application number
CN201910727578.XA
Other languages
English (en)
Inventor
郭丽萍
李英东
S·富里
S·苏里
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.)
Marvell World Trade Ltd
Original Assignee
Marvell World Trade Ltd
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 Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of CN110825555A publication Critical patent/CN110825555A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0064Latency reduction in handling transfers

Abstract

本公开的各实施例涉及具有主机隔离的非易失性存储器交换机。NVM交换机已经被设计为允许多个主机同时并且独立访问单端口NVM设备。虽然这一双活多主机使用配置允许对低成本单端口NVM设备的各种使用,但主机中的一个主机的问题可能会延迟或阻止其他主机与NVM设备之间的事务。尽管交换机的逻辑跨主机而被共享,但NVM交换机包括隔离多个主机的活动的逻辑。当交换机检测到一个主机(“错误主机”)的问题时,交换机清除错误主机的正在运行的命令并且冲刷错误主机的数据。同样,NVM交换机确保从附接的NVM设备向多个主机的错误报告的正确传达。

Description

具有主机隔离的非易失性存储器交换机
对相关申请的交叉引用
本公开要求于2018年8月7日提交的名称为“NVMe Protocol Switch HostIsolation in Active-Active Configuration”的美国临时申请序列号62/715,713的优先权的权益,其内容通过引用以其整体并入本文。
背景技术
本公开一般涉及计算机体系架构领域,并且更具体地涉及输入/输出设备和操作。
高性能计算环境越来越多地将非易失性存储器(NVM)(诸如闪存)用于存储解决方案。除了针对旋转媒体技术优化的传统存储装置接口之外,还使用针对NVM优化的主机控制器接口。NMV快速(NVMe)规范是NVM的可扩展主机控制器接口规范,它利用了外围组件互连-快速
Figure BDA0002159443070000011
架构。
附图说明
通过参考附图可以更好地理解本公开的实施例。
图1描绘了示例系统的框图,该示例系统包括具有用于多主机到单端口主机隔离的逻辑和程序代码的NVM交换机。
图2是NVM交换机逻辑以在具有单端口NVM设备的双活配置中隔离主机的示例图。
图3是用于隔离在主机响应中检测到的错误完成状态的示例操作的流程图。
图4是用于NVM交换机隔离由交换机检测到的主机数据错误的示例操作的流程图。
图5是用于NVM交换机隔离读取完成分组中检测到的数据错误的示例操作的流程图。
图6是用于NVM交换机从多个主机中的一个主机隔离链接断开事件的示例操作的流程图。
图7是用于NVM交换机将重置与多个连接的主机中的一个主机隔离的示例操作的流程图。
图8是用于NVM交换机跨主机传播错误报告的示例操作的流程图。
具体实施方式
以下描述包括体现本公开的各方面的示例系统、方法、技术和程序流程。然而,应理解,可以在没有这些具体细节的情况下实践本公开。例如,本公开在说明性示例中涉及PCIe。本公开的各方面还可以应用于用于与非易失性存储器或固态设备的高度可扩展的高速通信的另一类似的互连架构或规范。在其他情况下,没有详细示出公知的指令实例、协议、结构和技术,以免混淆描述。
概述
双端口NVM设备(例如,固态驱动器(SSD))允许多个主机以成本访问闪存。NVM交换机已经被设计允许多个主机同时且独立访问单端口NVM设备。虽然此双活多主机使用配置允许低成本单端口NVM设备的各种用途(例如,存储虚拟化、独立磁盘冗余阵列(RAID)功能等),但主机中的一个主机存在问题(例如,故障、基准时钟丢失等)可以延迟或阻止其他主机和NVM设备之间的事务。尽管交换机的逻辑在主机之间共享,但NVM交换机包括隔离多个主机活动的逻辑。当交换机检测到一个主机(“错误主机”)出现问题时,交换机会清除错误主机的正在运行的命令并冲刷错误主机的数据。同样,NVM交换机可确保从连接的NVM设备到多个主机的错误报告的正确通信。
示例图示
图1描绘了示例系统的框图,该示例系统包括具有用于多主机到单端口主机隔离的逻辑和程序代码的NVM交换机。示例系统(例如,服务器机架)包括背板互连117。包括主机119和主机121的多个主机连接到背板互连117。NVM封装102也连接到背板互连。主机119、121和NVM封装102均通过PCIe连接器连接到背板互连117。
NVM封装102包括NVM交换机101、单端口NVM设备120和另一单端口NVM设备122。NVM设备可以具有各种配置的固态设备。在图1中,NVM设备120被描绘为具有NVM控制器103、寻址逻辑107和闪存109A至109D。
NVM交换机101使用NVM设备120、122同时且独立地促进主机119、121。主机119、121在其本地存储器中维护命令队列和完成队列。主机119、121经由NVM交换机将消息和请求(例如,门铃消息)传送到NVM设备120、122。NVM控制器103经由NVM交换机101从主机119、121的命令队列检索命令。响应于来自主机119、121的消息。NVM控制器103经由NVM交换机101将完成分组写入主机119、121的完成队列。由于NVM设备120、122中的每个NVM设备是单端口,NVM交换机101向NVM设备120、122中的每个NVM设备呈现单个请求者。NVM交换机101包括将分组适当地路由到主机119,121并隔离所连接的主机之间的错误的逻辑。
图2是NVM交换机逻辑以在具有单端口NVM设备的双活配置中隔离主机的示例图。NVM交换机200包括互连接口207和非易失性存储器设备接口215。这些接口可以是相同的但可以是不同的。例如,接口207可以是具有比接口215更多数目的通道(lane)的PCIe接口。该示例图假设主机(从交换机200的角度看的根复合体)经由互连接口207被链接并且NVM存储器设备通过接口215附接到交换机200。交换机200包括交换机配置和管理逻辑203、事务管理逻辑201和直接数据路径逻辑205。术语“逻辑”是指用于实现任务或功能的电路布置。例如,确定值是否匹配的逻辑可以是使用互斥NOR门和AND门进行相等比较的电路布置。配置和管理逻辑203将管理和配置命令引导到附接的NVM设备。直接数据路径逻辑205允许读取完成的写入以很小的延迟或没有延迟地遍历交换机200。事务管理逻辑201防止主机相互影响。这至少包括将影响事件的性能隔离到事件发生的主机(“错误主机”)的事务,根据主机特定错误报告设置传播错误报告,以及监视直接数据路径逻辑205中的错误。
事务管理逻辑201包括寄存器和逻辑,以促进用于防止来自一个主机的事件影响另一主机的事务的功能。事务管理逻辑包括队列202、定时源231、主机标识符逻辑209、保留逻辑211、错误隔离逻辑213、队列204和队列206。队列202、204、206可以是32位寄存器、64位寄存器、或者适合于可用于交换机200的物理空间的不同类型的存储器元件。队列202存储来自主机的传入分组。传入数据分组的示例包括门铃消息、来自主机存储器的取读的命令以及完成响应。由于交换机200容纳多个主机,因此保留逻辑211将附接的存储器或后端设备的不同区域保留给主机以防止主机相互复写。当主机经由交换机200与后端设备建立连接时,保留逻辑211创建并维护到每个主机的保留存储空间的映射。保留逻辑211可以利用可用的私有命名空间功能来实现保留。交换机200的另一个职责是向后端设备提供单个主机,这是因为后端设备是单端口。这从后端设备隐藏了交换机200的另一端上的多个主机。主机标识符逻辑209和队列204、206用于确保后端设备和主机之间的通信的一致性,尽管后端设备被呈现为单个主机。主机标识符逻辑209将第一主机标识符与队列204相关联,并将第二主机标识符与队列206相关联。实现可以根据通过NVM交换机连接到后端设备的主机的数目来添加附加队列。主机标识符逻辑209将来自输入读取类型分组的报头的子字段值复制到队列204、206中的与检测到的主机标识符(例如,请求者标识符或节点标识符)对应的一个队列中。这些复制的值将用于确定哪个主机是正确的请求者。利用保留空间,主机标识符逻辑209可以复制长度、地址和排序标签字段以匹配写入响应于读取类型分组而返回的数据的后续读取完成分组。然后,主机标识符逻辑209在允许输入分组流到后端设备之前,重置输入分组中的主机标识符以符合后端设备的预期主机标识符(例如,根复合体0)。
当后端设备返回读取完成分组时,后端设备通过交换机将完成分组写入请求者。读取完成分组将具有由交换机200重置的主机标识符。当后端设备将完成分组写入直接数据路径逻辑205的完成写入队列221时,主机标识符209确定队列204、206中的哪一个具有至少匹配存储的字段(例如,长度,排序标签,地址)的条目。
通过在交换机处保留主机/请求者,错误隔离逻辑213可以防止主机事件相互影响。错误隔离逻辑213可以基于检测到主机中的一个主机的问题事件而使得从队列202清除适当的分组。错误隔离逻辑213还可以清除来自直接数据路径逻辑205的对应于故障或断开的主机的完成分组。另外,错误隔离逻辑213可以响应于检测到适配器中的一个适配器的时钟参考丢失而将NVM交换机200转换为使用内部定时源231。交换机200转换到定时源231,以用于处理和通信来自失去基准时钟的适配器的分组。
虽然图2描绘了离散逻辑块,但不同块不一定是微芯片的物理边界。例如,NVM交换机可以包括逻辑上是所描绘的逻辑块中的多个逻辑块的一部分的处理器。
图3至图8中的流程图描绘了与处理错误条件以保持主机隔离有关的示例操作。该描述参考交换机作为执行示例操作。交换机根据存储在NVM交换机上的程序指令(例如,固件)执行操作中的至少一些操作。
图3是用于隔离在主机响应中检测到的错误完成状态的示例操作的流程图。在后端设备请求从主机存储器读取数据之后,主机向后端设备提供具有读取完成数据的分组。该分组包括用于可以指示错误的完成状态的字段。NVM交换机在将完成数据传送到后端设备之前读取数据分组。
在框301,交换机检测对来自后端设备的读取的主机响应的完成状态中的错误代码。错误代码可以指示基于完成的错误、中毒的有效载荷通知、以及内部奇偶校验错误或错误纠正代码错误。交换机可以将对应于完成状态的位置处的位与预定义的错误代码进行比较,或者在完成状态表中查找完成状态值。
在框303,交换机确定完成状态是否指示基于完成的错误。基于完成的错误的示例可以是完成者中止(CA)不支持的请求(UR)和完成超时。
如果完成状态字段中的错误代码是基于完成的,则交换机在框305修改主机响应中的完成状态。交换机在完成状态中改变错误代码以在允许主机响应被发送到主机响应中标识的后端设备之前指示具有完成者中止(CA)的完成。
在框307,交换机确定完成状态字段是否指示中毒的有效载荷。如果完成状态字段指示中毒的有效载荷,则控制流到框311。在框311,交换机将具有中毒的有效载荷指示的主机响应传送到后端设备。否则,控制流到框309。
如果完成状态指示在主机处检测到内部奇偶校验错误或ECC错误,则在框309,交换机丢弃损坏的数据并在交换机中触发数据路径数据完整性错误模式。在此模式下,将删除从后端设备到特定主机的所有请求,并且将完成读取请求并显示错误。例如,交换机可以在与后端设备的端口相关联的寄存器中设置值。当交换机收到来自后端设备的请求时,交换机确定对应的主机标识符。如果主机标识符与具有所确定的主机的后端设备的端口相关联的值匹配,则该请求将被丢弃。
图4是NVM交换机隔离由交换机检测到的主机数据错误的示例操作的流程图。在尝试避免将延迟插入NVM事务路径时,交换机还支持数据完整性。如果激活了数据完整性错误模式,则交换机评估读取数据包的数据奇偶校验和遍历交换机的读取完成数据包。
在框401,交换机检测主机响应的完成数据中的数据奇偶校验错误。该检测可以是检测由数据链接层组件设置的位。
在框403,交换机修改读取分组主机响应以指示完成状态字段中的中毒的有效载荷。交换机可以使用存储的中毒的有效载荷代码来传播该奇偶校验错误检测。
在框405,交换机将经修改的主机响应传送到后端设备。
图5是用于NVM交换机隔离写入事务中检测到的数据错误的示例操作的流程图。可以设置NVM交换机的直接数据路径逻辑以检查来自后端设备的写入事务的数据中的奇偶校验或ECC错误。
在框501,交换机检测来自后端设备的写入数据中的奇偶校验错误或不可纠正的ECC错误。交换机可以检验数据链接层位以检测内部奇偶校验错误或不可纠正的ECC错误。
在框503,交换机丢弃写入数据。写入数据的丢弃是丢弃由后端设备发出的整个写入事务。
在框505,交换机触发数据路径数据完整性错误模式。在此模式下,将删除从后端设备到特定主机的所有请求,并且将完成读取请求并显示错误。
图6是NVM交换机从多个主机中的一个主机隔离链接断开事件的示例操作的流程图。在框601,交换机检测先前链接到交换机的主机的链接断开。数据链接层组件或PCIe核的组件检测链接断开。链接断开指示包括相应主机的标识符。在框603,交换机从附接到交换机的NVM设备触发对目标在于链接断开的主机的所有在运行事务的事务冲刷。在框604,交换机停止到链接断开端口的业务。为了使到链接断开端口的流量停顿,交换机会中止与NVM设备中待处理的主机关联的所有未完成命令。在框605,交换机发起对应于链接断开的主机的组件的重置。在框607,交换机重新建立或尝试重新建立与主机的链接。
图7是用于NVM交换机从多个连接的主机中的一个主机隔离重置的示例操作的流程图。交换机按链接处理重置事件。重置事件可以是温重置(PERST)、热重置、禁用链接和功能水平重置(FLR)。在框701,交换机检测从主机到实现较低层协议(例如,数据链接层、物理层)的端点(EP)核的重置命令。交换机检测到重置,因为重置信号或命令会生成对交换机的中断。在框703,交换机丢弃经由EP核接收的未发出的提交队列条目。在框705,交换机中止与EP核相关联的已发出但未完成的命令。该交换机确定在发往主机的写入队列中缺少相应读取完成的在运行读取命令。然后,交换机将这些未完成事务中的每一个的中止命令发送给对应的后端设备。在框707,交换机触发对EP核的事务冲刷。交换机断言信号以使EP核清除遍历EP核的数据分组。在框709,交换机删除与正在重置的EP核相关联的队列。在框711,交换机发起EP核的重置。
图8是用于NVM交换机跨主机传播错误报告的示例操作的流程图。错误报告设置包括在后端设备的寄存器中设置的基本错误报告设置和高级错误报告(AER)设置。在框801,交换机在枚举和配置操作期间检测来自主机的错误报告设置。在框803,交换机确定错误报告设置是否在主机之间不同。如果主机之间的错误报告设置相同,则交换机在框804将错误报告设置的一个实例传送到附接的后端设备。如果错误报告设置不同,则交换机存储每个错误报告设置的实例。在框805,主机将对应的主机标识符与每个错误报告设置实例相关联。这将用于确保来自后端设备的错误报告的主机特定合规性。在框807,交换机将主机提供的错误报告设置的实例与更多设置传送到附接的后端设备。
在稍后的某个时刻,交换机可以在框809检测来自后端设备的错误报告。在框810,交换机确定是否存在错误报告不符合的错误报告设置的存储的实例。例如,存储的错误报告设置实例可以指示错误报告应该是完成状态,而检测到的错误报告是错误消息。在框813,交换机将错误报告传送到所有主机,因为错误报告符合错误报告设置的实例。如果针对错误报告设置的一个实例检测到不一致,则在框811交换机将错误报告传达到与错误报告设置的实例相关联的主机,错误报告与错误报告设置一致。在框815,交换机得出和传达针对错误报告设置的其他实例的错误报告。交换机从检测到的错误报告中提取信息,并根据错误报告设置的实例生成具有该信息的错误报告。
提供流程图以帮助理解说明,而不是用于限制权利要求的范围。流程图描绘了可以在权利要求的范围内变化的示例操作。可以执行附加操作;可以执行的操作更少;操作可以并行执行;并且可以按照不同的顺序执行操作。将理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由程序代码实现。程序代码可以提供给通用计算机、专用计算机或其他可编程机器或装置的处理器。
如将理解的,本公开的方面可以体现为存储在一个或多个机器可读介质中的系统、方法或程序代码/指令。因此,方面可以采取以下形式:硬件、软件(包括固件、常驻软件、微代码等)的形式、或者软件和硬件方面的组合,其在本文中通常都可以称为“电路”、“模块”、或“系统”。示例插图中作为单个模块/单元呈现的功能可以根据平台(操作系统和/或硬件)、应用程序生态系统、接口、程序员偏好、编程语言、管理员偏好等中的任何一个进行不同的组织。
可以利用一个或多个机器可读介质的任何组合。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读存储介质可以是,例如但不限于,系统、装置或设备,其采用电子、磁、光,电磁、红外或半导体技术中的任何一个或其组合来存储程序代码。机器可读存储介质的更具体示例(非详尽列表)将包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或前述的任何合适组合。在本文件的上下文中,机器可读存储介质可以是任何有形介质,其可以包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序。机器可读存储介质不是机器可读信号介质。
机器可读信号介质可包括传播的数据信号,其中机器可读程序代码包含在其中,例如,在基带中或作为载波的一部分。这种传播信号可以采用多种形式中的任何一种,包括但不限于电磁、光学或其任何合适的组合。机器可读信号介质可以是任何机器可读介质,其不是机器可读存储介质并且可以通信、传播或传输程序以供指令执行系统、装置或设备使用或与其结合使用。
程序代码/指令还可以存储在机器可读介质中,该机器可读介质可以引导机器以特定方式运行,使得存储在机器可读介质中的指令产生包括实现在流程图和/或框图框或框中指定的功能/动作指令的制品。
可以为本文描述的组件、操作或结构提供多个实例作为单个实例。最后,各种组件、操作和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中示出了特定操作。设想了其他功能分配,并且可以落入本公开的范围内。通常,在示例配置中作为单独组件呈现的结构和功能可以实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以实现为单独的组件。这些和其他变化、修改、添加和改进可以落入本公开的范围内。
术语
如本文所用,除非另有明确说明,否则术语“或”是包含性的。因此,短语“A、B或C中的至少一个”由来自集合{A,B,C}的任何元素或其任何组合满足,包括任何元素的倍数。

Claims (20)

1.一种非易失性存储器交换机,包括:
多个互连接口;
处理器;
多个队列;
机器可读介质,其上存储有程序代码,所述程序代码由所述处理器可执行以使得所述交换机:
向不同的根复合体保留经由所述多个互连接口中的至少第二互连接口可访问的一个或多个单端口非易失性存储器设备的集合上的不同的存储器空间;
将所述不同的根复合体作为单根复合体呈现给非易失性存储器设备;
利用所述多个队列的至少子集维护存储器事务与所述不同的根复合体中的对应的根复合体的关联;以及
至少部分地基于所维护的所述关联,防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的存储器事务。
2.根据权利要求1所述的非易失性存储器交换机,其中维持存储器事务的所述关联的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机:
将所述多个队列中的第一队列与所述根复合体中的第一根复合体相关联,并且将所述多个队列中的第二队列与所述根复合体中的第二根复合体相关联;
针对将所述第一根复合体标识为请求者的所述存储器事务的每个读取分组,将能够被用于标识对应的读取完成数据的、来自所述读取分组的报头的信息存储到所述第一队列中;以及
针对将所述第二根复合体标识为请求者的所述存储器事务的每个读取分组,将来自所述读取分组的报头的信息存储到所述第二队列中。
3.根据权利要求2所述的非易失性存储器交换机,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码以:
基于对来自所述第一根复合体和所述第二根复合体中的一个根复合体的错误条件的检测,在与所述错误条件的所述根复合体相关联的所述非易失性存储器交换机中选择读取完成分组;以及
从非易失性存储器交换机清除所选择的所述读取完成分组。
4.根据权利要求1所述的非易失性存储器交换机,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机:
基于对来自非易失性存储器设备的所述集合中的一个非易失性存储器设备的读取请求的根复合体响应指示基于完成的错误的确定,设置所述根复合体响应的完成状态以指示具有完成者中止状态的完成,其中所述根复合响应经由所述多个互连接口中的第一互连接口而被接收;以及
经由所述第二互连接口将具有设置完成状态的所述根复合体响应传达给非易失性存储器设备的所述集合中的所述一个非易失性存储器设备。
5.根据权利要求1所述的非易失性存储器交换机,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机:
基于对非易失性存储器设备的所述集合中的一个非易失性存储器设备的根复合体响应的完成数据中的数据奇偶校验错误的检测,修改所述根复合体响应以指示中毒的有效载荷,其中所述根复合响应经由所述多个互连接口中的第一互连接口而被接收;以及
经由所述第二互连接口将经修改的所述根复合体响应传达给非易失性存储器设备的所述集合中的所述一个非易失性存储器设备。
6.根据权利要求1所述的非易失性存储器交换机,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机:
基于对与所述根复合体中的第一根复合体对应的链接断开事件的检测,触发来自以与所述链接断开事件对应的链接为目标的非易失性存储器设备的所述集合的所述非易失性存储器交换机上的在运行事务的冲刷;
针对所述非易失性存储器交换机上的已经被发出给非易失性存储器设备的所述集合但尚未完成的每个命令传达中止命令;
重置与所述第一根复合体对应的所述非易失性存储器交换机的链接组件;以及
重新建立与所述第一根复合体的链接。
7.根据权利要求1所述的非易失性存储器交换机,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机:
基于对从第一根复合体到第一端点核的复位命令的检测,
从所述第一根复合体丢弃待从所述非易失性存储器交换机发出的所述非易失性存储器交换机上的取读的命令;
针对所述非易失性存储器交换机上的已经被发出给非易失性存储器设备的所述集合但尚未完成的每个命令传达中止命令;
触发对所述第一端点核的事务冲刷;
删除所述第一端点核的命令和提交队列;以及
发起所述第一端点核的重置。
8.根据权利要求1所述的非易失性存储器交换机,其中将所述不同的根复合体作为单个根复合体呈现给非易失性存储器设备的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机将读取命令中的请求标识符修改为默认请求标识符。
9.根据权利要求1所述的非易失性存储器交换机,其中所述多个互连接口包括外围组件互连快速接口。
10.根据权利要求1所述的非易失性存储器交换机,其中所述存储器事务符合非易失性存储器快速规范。
11.根据权利要求1所述的非易失性存储器交换机,还包括内部定时源,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述非易失性存储器交换机转换对所述根复合体中的第一根复合体的事务的处理,以基于对针对所述第一根复合体的基准时钟的丢失的检测来使用所述内部定时源作为基准时钟。
12.一种非易失性存储器封装,包括:
外围组件接口快速(PCIe)接口;
多个单端口非易失性存储器(NVM)设备;以及
NVM交换机,其被通信地耦合在所述PCIe接口和所述多个单端口NVM设备之间,其中所述NVM交换机包括处理器和其上存储有程序代码的机器可读介质,所述程序代码由所述处理器可执行以使得所述NVM交换机:
向不同的根复合体保留所述多个单端口NVM设备上的不同的存储器空间;以及
防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务。
13.根据权利要求12所述的NVM封装,其中所述程序代码还包括程序代码,所述程序代码由所述处理器可执行以使得所述NVM交换机将所述不同的根复合体作为单个根复合体呈现给所述多个NVM设备。
14.根据权利要求12所述的NVM封装,其中所述程序代码还包括程序代码,所述程序代码由所述处理器可执行以使得所述NVM交换机维持存储器事务与所述不同的根复合体中的对应的根复合体的关联而无需请求标识符。
15.根据权利要求14所述的NVM封装,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码以:
基于对来自所述根复合体中的一个根复合体的错误条件的检测,在与所述错误条件的所述根复合体相关联的所述NVM交换机中选择读取完成分组;以及
从所述NVM交换机清除所选择的所述读取完成分组。
16.根据权利要求12所述的NVM封装,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述NVM交换机:
基于对从第一根复合体到第一端点核的复位命令的检测,
从所述第一根复合体丢弃待从所述NVM交换机发出的所述NVM交换机上的取读的命令;
针对所述NVM交换机上的已经被发出给所述多个NVM设备中的至少一个NVM设备但尚未完成的每个命令传达中止命令;
触发向所述第一端点核的事务冲刷;
删除所述第一端点核的命令和提交队列;以及
发起所述第一端点核的重置。
17.根据权利要求12所述的NVM封装,其中所述NVM交换机还包括内部定时源,其中防止所述不同的根复合体中的一个根复合体的错误条件影响所述不同的根复合体中的另一根复合体的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述NVM交换机转换对所述根复合体中的第一根复合体的事务的处理,以基于对针对所述第一根复合体的基准时钟的丢失的检测来使用所述内部定时源作为基准时钟。
18.一种系统,包括:
背板互连;
多个主机设备,所述主机设备各自包括根复合体和互连接口,所述互连接口将所述主机设备中的对应的主机设备连接到所述背板互连;以及
非易失性存储器(NVM)封装,包括多个单端口非易失性存储器(NVM)设备,将所述NVM封装连接到所述背板互连的互连接口,以及被通信地耦合在所述多个单端口NVM设备和所述NVM封装的所述互连接口之间的NVM交换机,其中所述NVM交换机包括,
处理器和其上存储有程序代码的机器可读介质,所述程序代码由所述处理器可执行以使得所述NVM交换机防止所述多个主机设备中的一个主机设备的错误条件影响所述多个主机设备中的另一主机设备的事务。
19.根据权利要求18所述的系统,其中防止所述多个主机设备中的一个主机设备的错误条件影响所述多个主机设备中的另一主机设备的事务的所述程序代码包括程序代码以:
基于对来自所述多个主机设备中的一个主机设备的错误条件的检测,在与所述错误条件的所述主机设备相关联的所述NVM交换机中选择读取完成分组;以及
从所述NVM交换机清除所选择的所述读取完成分组。
20.根据权利要求18所述的系统,其中所述NVM交换机还包括内部定时源,其中防止所述多个主机设备中的一个互连设备的错误条件影响所述多个主机设备中的另一主机设备的事务的所述程序代码包括程序代码,所述程序代码由所述处理器可执行以使得所述NVM交换机转换对所述多个主机设备中的第一主机设备的事务的处理,以基于对针对所述第一主机设备的基准时钟的丢失的检测来使用所述内部定时源作为基准时钟。
CN201910727578.XA 2018-08-07 2019-08-07 具有主机隔离的非易失性存储器交换机 Pending CN110825555A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862715713P 2018-08-07 2018-08-07
US62/715,713 2018-08-07
US16/532,272 2019-08-05
US16/532,272 US11614986B2 (en) 2018-08-07 2019-08-05 Non-volatile memory switch with host isolation

Publications (1)

Publication Number Publication Date
CN110825555A true CN110825555A (zh) 2020-02-21

Family

ID=67587423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910727578.XA Pending CN110825555A (zh) 2018-08-07 2019-08-07 具有主机隔离的非易失性存储器交换机

Country Status (4)

Country Link
US (2) US11614986B2 (zh)
EP (2) EP4310659A3 (zh)
KR (1) KR20200016812A (zh)
CN (1) CN110825555A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930587A (zh) * 2020-06-24 2020-11-13 北京大米科技有限公司 告警消息处理方法、装置、存储介质及电子设备
TWI802268B (zh) * 2022-02-14 2023-05-11 神雲科技股份有限公司 伺服系統
CN111930587B (zh) * 2020-06-24 2024-05-10 北京大米科技有限公司 告警消息处理方法、装置、存储介质及电子设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216396B2 (en) * 2016-09-29 2022-01-04 Intel Corporation Persistent memory write semantics on PCIe with existing TLP definition
US11544000B2 (en) 2018-08-08 2023-01-03 Marvell Asia Pte Ltd. Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services
US11733918B2 (en) 2020-07-28 2023-08-22 Samsung Electronics Co., Ltd. Systems and methods for processing commands for storage devices
US11789634B2 (en) 2020-07-28 2023-10-17 Samsung Electronics Co., Ltd. Systems and methods for processing copy commands
US11941298B2 (en) * 2021-05-11 2024-03-26 Mediatek Inc. Abort handling by host controller for storage device
US11860788B2 (en) * 2021-09-08 2024-01-02 Red Hat, Inc. Prefetching data in a distributed storage system

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804766B1 (en) 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
US7412492B1 (en) 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7657663B2 (en) * 2006-12-19 2010-02-02 International Business Machines Corporation Migrating stateless virtual functions from one virtual plane to another
US8185664B1 (en) * 2009-06-17 2012-05-22 Qlogic, Corporation System and method to restore maximum payload size in a network adapter
JP5533867B2 (ja) 2009-07-06 2014-06-25 日本電気株式会社 I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム
US8897303B2 (en) 2010-06-29 2014-11-25 Futurewei Technologies, Inc. Delegate gateways and proxy for target hosts in large layer 2 and address resolution with duplicated internet protocol addresses
US8601198B2 (en) * 2011-06-30 2013-12-03 Intel Corporation Controllable transaction synchronization for merging peripheral devices
WO2014063370A1 (zh) * 2012-10-27 2014-05-01 华为技术有限公司 一种实现pcie交换网络的报文传输方法、设备、系统和存储介质
US8966164B1 (en) 2013-09-27 2015-02-24 Avalanche Technology, Inc. Storage processor managing NVME logically addressed solid state disk array
US9483431B2 (en) 2013-04-17 2016-11-01 Apeiron Data Systems Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA)
US9298648B2 (en) * 2013-05-08 2016-03-29 Avago Technologies General Ip (Singapore) Pte Ltd Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch
CN104756081B (zh) * 2013-09-11 2016-08-17 华为技术有限公司 一种故障处理的方法、计算机系统和装置
KR101744465B1 (ko) 2013-11-26 2017-06-07 인텔 코포레이션 데이터를 저장하기 위한 방법 및 장치
US9501441B2 (en) * 2013-12-16 2016-11-22 Dell Products, Lp Mechanism to boot multiple hosts from a shared PCIe device
EP3264280B1 (en) * 2013-12-31 2019-09-18 Huawei Technologies Co., Ltd. Method and apparatus for extending pcie domain
US20150261709A1 (en) * 2014-03-14 2015-09-17 Emilio Billi Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
US9842075B1 (en) * 2014-09-12 2017-12-12 Amazon Technologies, Inc. Presenting multiple endpoints from an enhanced PCI express endpoint device
US9547557B2 (en) * 2014-11-10 2017-01-17 Dell Products L.P. Peripheral bus error containment and recovery
US9749448B2 (en) * 2014-11-25 2017-08-29 Intel Corporation Header parity error handling
US9934173B1 (en) 2016-02-24 2018-04-03 Xilinx, Inc. Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric
EP3440553A1 (en) 2016-04-04 2019-02-13 Marvell World Trade, Ltd. Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access
US10365706B2 (en) * 2017-03-03 2019-07-30 Qualcomm Incorporated Asymmetric power states on a communication link
US11086813B1 (en) * 2017-06-02 2021-08-10 Sanmina Corporation Modular non-volatile memory express storage appliance and method therefor
US10521273B2 (en) * 2017-06-08 2019-12-31 Cisco Technology, Inc. Physical partitioning of computing resources for server virtualization
US10496477B1 (en) * 2018-05-23 2019-12-03 Dell Products L.P. System and method of utilizing memory modules
US10636577B2 (en) * 2018-05-25 2020-04-28 Qualcomm Incorporated Safe handling of link errors in a peripheral component interconnect express (PCIE) device
US10977199B2 (en) 2018-08-08 2021-04-13 Marvell Asia Pte, Ltd. Modifying NVMe physical region page list pointers and data pointers to facilitate routing of PCIe memory requests
US11544000B2 (en) 2018-08-08 2023-01-03 Marvell Asia Pte Ltd. Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930587A (zh) * 2020-06-24 2020-11-13 北京大米科技有限公司 告警消息处理方法、装置、存储介质及电子设备
CN111930587B (zh) * 2020-06-24 2024-05-10 北京大米科技有限公司 告警消息处理方法、装置、存储介质及电子设备
TWI802268B (zh) * 2022-02-14 2023-05-11 神雲科技股份有限公司 伺服系統

Also Published As

Publication number Publication date
EP4310659A2 (en) 2024-01-24
EP3608791A1 (en) 2020-02-12
US20230168957A1 (en) 2023-06-01
EP4310659A3 (en) 2024-04-10
EP3608791B1 (en) 2023-11-01
KR20200016812A (ko) 2020-02-17
US20200050505A1 (en) 2020-02-13
EP3608791B8 (en) 2023-12-20
US11614986B2 (en) 2023-03-28

Similar Documents

Publication Publication Date Title
CN110825555A (zh) 具有主机隔离的非易失性存储器交换机
EP1902373B1 (en) Certified memory-to-memory data transfer between active-active raid controllers
US7650467B2 (en) Coordination of multiprocessor operations with shared resources
US6587962B1 (en) Write request protection upon failure in a multi-computer system
JP4475598B2 (ja) ストレージシステム及びストレージシステムの制御方法
US7434012B1 (en) Techniques for media scrubbing
US8943226B1 (en) Interface for heterogeneous PCI-e storage devices
US7343517B2 (en) Systems for managing of system metadata and methods for recovery from an inconsistent copy set
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
JP4939180B2 (ja) 接続された装置を構成するための初期設定コードの実行
US10977142B2 (en) After swapping from a first storage to a second storage, mirroring data from the second storage to the first storage for data in the first storage that experienced data errors
US20190026179A1 (en) Computing system and error handling method for computing system
US9588919B2 (en) Methods and systems for I/O cancellation
US6938188B1 (en) Method for verifying functional integrity of computer hardware, particularly data storage devices
US20060218436A1 (en) System, method and software using a RAID device driver as backup for a RAID adapter
US7437608B2 (en) Reassigning storage volumes from a failed processing system to a surviving processing system
US11217324B2 (en) Validating data in storage systems
JP2008041080A (ja) 記憶制御システム、記憶制御システムの制御方法、ポートセレクタ、及びコントローラ
US7568121B2 (en) Recovery from failure in data storage systems
US11940938B2 (en) Hypervisor bridging of different versions of an IO protocol
JP2023047277A (ja) 相互接続にまたがるメモリミラーリングのための技術
TW202101238A (zh) 伺服器裝置及其基板管理控制器與可程式邏輯單元之間的通訊協定方法
WO2017078679A1 (en) Recovery from data corruption in a storage array

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