CN117093390A - System for processing faulty page, method for processing faulty page, and host device - Google Patents
System for processing faulty page, method for processing faulty page, and host device Download PDFInfo
- Publication number
- CN117093390A CN117093390A CN202310491026.XA CN202310491026A CN117093390A CN 117093390 A CN117093390 A CN 117093390A CN 202310491026 A CN202310491026 A CN 202310491026A CN 117093390 A CN117093390 A CN 117093390A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- fault
- host
- log
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本申请要求于2022年5月18日提交的题为“对CXL存储器的UE(不可纠正的错误)处理”的第63/343410号美国临时申请的优先权和权益,所述美国临时申请的全部内容通过引用包含于此。This application claims priority and the benefit of U.S. Provisional Application No. 63/343410 entitled "UE (Uncorrectable Error) Processing of CXL Memory", filed on May 18, 2022, and all of said U.S. Provisional Application The content is incorporated herein by reference.
技术领域Technical field
本公开的一个或多个实施例涉及可扩展存储器,并且更具体地,涉及用于可扩展存储器的错误处理。One or more embodiments of the present disclosure relate to scalable memory, and more particularly, to error handling for scalable memory.
背景技术Background technique
机器检查异常(MCE)是当系统的中央处理器(CPU)检测到存储器、I/O装置、系统总线、处理器本身等中的错误时发生的一种类型的硬件错误。可纠正的存储器错误通常是可由系统纠正的单个位(single-bit)错误,并且通常不导致系统故障或数据损坏。另一方面,不可纠正的存储器错误通常是指示存储器本身中的通常可由于存储器模块(例如,存储器芯片)中的不可由软件/固件纠正的一些故障导致的一些关键事件或致命事件的多位(multi-bit)错误。A machine check exception (MCE) is a type of hardware error that occurs when a system's central processing unit (CPU) detects errors in memory, I/O devices, the system bus, the processor itself, etc. Correctable memory errors are typically single-bit errors that are correctable by the system and typically do not result in system failure or data corruption. On the other hand, uncorrectable memory errors are usually multiple bits that indicate some critical or fatal event in the memory itself that can usually be due to some fault in the memory module (e.g., memory chip) that is not correctable by software/firmware ( multi-bit) error.
在本背景技术部分中公开的以上信息用于增强对本公开的背景的理解,并且因此它可包含不构成现有技术的信息。The above information disclosed in this Background section is provided to enhance understanding of the context of the disclosure and therefore it may contain information that does not constitute prior art.
发明内容Contents of the invention
本公开的一个或多个实施例针对用于可扩展存储器的错误处理,并且更具体地,针对生成可被持久地存储并用于自动地使可扩展存储器装置的故障页脱机的故障页信息。One or more embodiments of the present disclosure are directed to error handling for scalable memory, and more particularly, to generating fault page information that can be persistently stored and used to automatically take fault pages of an scalable memory device offline.
本公开的一个或多个实施例针对在多个主机装置之间共享故障页信息,以自动地使可扩展存储器装置的故障页脱机。One or more embodiments of the present disclosure are directed to sharing fault page information among multiple host devices to automatically take fault pages of an expandable memory device offline.
根据本公开的一个或多个实施例,一种用于处理故障页的系统包括:主机处理器;主机存储器,通过第一存储器接口连接到主机处理器;以及可扩展存储器池,通过第二存储器接口连接到主机处理器,第二存储器接口与第一存储器接口不同,主机存储器包括指令,所述指令在由主机处理器执行时使主机处理器:检测可扩展存储器池的第一存储器装置的目标页中的错误;响应于检测到所述错误,生成中断;将与第一存储器装置的目标页对应的故障页信息存储在故障页日志中;并且根据故障页日志,将第一存储器装置的目标页的状态从第一状态改变为第二状态。According to one or more embodiments of the present disclosure, a system for handling fault pages includes: a host processor; a host memory connected to the host processor through a first memory interface; and an expandable memory pool through a second memory An interface is connected to the host processor, the second memory interface is different from the first memory interface, and the host memory includes instructions that when executed by the host processor cause the host processor to: detect a target of the first memory device of the scalable memory pool an error in the page; in response to detecting the error, generating an interrupt; storing fault page information corresponding to the target page of the first memory device in the fault page log; and based on the fault page log, converting the target page of the first memory device to The status of the page changes from the first status to the second status.
在一个实施例中,第二存储器接口可包括:外围组件互连快速(PCIe)接口和计算快速链路(CXL)互连。In one embodiment, the second memory interface may include a Peripheral Component Interconnect Express (PCIe) interface and a Compute Express Link (CXL) interconnect.
在一个实施例中,第一存储器接口可包括:双列直插式存储器模块(DIMM)。In one embodiment, the first memory interface may include a dual in-line memory module (DIMM).
在一个实施例中,可扩展存储器池可包括至少两种不同类型的计算快速链路(CXL)存储器装置。In one embodiment, a scalable memory pool may include at least two different types of Compute Express Link (CXL) memory devices.
在一个实施例中,所述指令还可使主机处理器:执行重启;读取故障页日志,以识别可扩展存储器池的一个或多个故障页;并且根据故障页日志,设置所述一个或多个故障页的第二状态。In one embodiment, the instructions further cause the host processor to: perform a restart; read a fault page log to identify one or more fault pages of the scalable memory pool; and based on the fault page log, set the one or The second state of multiple failed pages.
在一个实施例中,所述指令还可使主机处理器:接收来自访客主机处理器的对故障页日志的日志请求,访客主机处理器被配置为访问可扩展存储器池;并且响应于日志请求,将故障页日志发送到访客主机处理器。访客主机处理器可被配置为:根据故障页日志,设置可扩展存储器池的一个或多个页的第二状态。In one embodiment, the instructions further cause the host processor to: receive a log request for a fault page log from a guest host processor configured to access the scalable memory pool; and in response to the log request, Send the fault page log to the guest host processor. The guest host processor may be configured to set a second state of one or more pages of the scalable memory pool based on the failed page log.
在一个实施例中,所述指令还可使主机处理器:从第一访客主机处理器接收更新,第一访客主机处理器检测到可扩展存储器池之中的第二存储器装置中的错误;根据所述更新,识别第二存储器装置的故障页;更新故障页日志;并且基于更新的故障页日志,设置第二存储器装置的故障页的第二状态。In one embodiment, the instructions further cause the host processor to: receive an update from a first guest host processor that detects an error in a second memory device in the scalable memory pool; based on the The updating identifies a faulty page of the second memory device; updates a faulty page log; and sets a second state of the faulty page of the second memory device based on the updated faulty page log.
在一个实施例中,所述指令还可使主机处理器:将更新的故障页日志广播到第二访客主机处理器,第二访客主机处理器被配置为访问可扩展存储器池。In one embodiment, the instructions may further cause the host processor to: broadcast the updated fault page log to a second guest host processor configured to access the scalable memory pool.
在一个实施例中,所述错误可以是可扩展存储器池的第一存储器装置的目标页中的多位错误,并且故障页信息可包括第一存储器装置的目标页的物理装置信息。In one embodiment, the error may be a multi-bit error in a target page of a first memory device of the scalable memory pool, and the failed page information may include physical device information of the target page of the first memory device.
根据本公开的一个或多个实施例,一种处理故障页的方法包括:由第一主机装置的内核检测可扩展存储器池的第一存储器装置的目标页中的错误;响应于检测到所述错误,由所述内核生成中断;由与第一存储器装置对应的装置驱动器将与第一存储器装置的目标页对应的故障页信息存储在故障页日志中;以及由故障页日志(FPL)守护进程根据故障页日志将第一存储器装置的目标页的状态从第一状态改变为第二状态。According to one or more embodiments of the present disclosure, a method of handling a faulty page includes: detecting, by a kernel of a first host device, an error in a target page of a first memory device of an expandable memory pool; in response to detecting the error, by the kernel generating an interrupt; by a device driver corresponding to the first memory device storing fault page information corresponding to the target page of the first memory device in a fault page log; and by a fault page log (FPL) daemon Changing a state of a target page of the first memory device from a first state to a second state according to the fault page log.
在一个实施例中,可扩展存储器池的第一存储器装置可经由外围组件互连快速(PCIe)接口和计算快速链路(CXL)互连连接到第一主机装置。In one embodiment, the first memory device of the scalable memory pool may be connected to the first host device via a Peripheral Component Interconnect Express (PCIe) interface and a Compute Express Link (CXL) interconnect.
在一个实施例中,可扩展存储器池可包括至少两种不同类型的计算快速链路(CXL)存储器装置。In one embodiment, a scalable memory pool may include at least two different types of Compute Express Link (CXL) memory devices.
在一个实施例中,所述方法还可包括:由所述内核执行重启;由FPL守护进程读取故障页日志,以识别可扩展存储器池的一个或多个故障页;以及由FPL守护进程根据故障页日志设置所述一个或多个故障页的第二状态。In one embodiment, the method may further include: performing a restart by the kernel; reading a fault page log by the FPL daemon to identify one or more fault pages of the scalable memory pool; and, by the FPL daemon, based on The fault page log sets a second state of the one or more fault pages.
在一个实施例中,所述方法还可包括:由第一主机装置的FPL守护进程从第二主机装置的FPL守护进程接收对故障页日志的日志请求,第二主机装置被配置为访问可扩展存储器池;以及响应于日志请求,由第一主机装置的FPL守护进程将故障页日志发送到第二主机装置。第二主机装置的FPL守护进程可被配置为:根据故障页日志,设置可扩展存储器池的一个或多个故障页的第二状态。In one embodiment, the method may further include receiving, by the FPL daemon of the first host device, a log request for the fault page log from the FPL daemon of the second host device, the second host device being configured to access the scalable a memory pool; and in response to the log request, sending the fault page log to the second host device by the FPL daemon of the first host device. The FPL daemon of the second host device may be configured to set a second state of one or more failed pages of the scalable memory pool based on the failed page log.
在一个实施例中,所述方法还可包括:响应于第二主机装置检测到可扩展存储器池中的第二存储器装置中的错误,由第一主机装置的FPL守护进程从第二主机装置的FPL守护进程接收更新;由第一主机装置的FPL守护进程根据所述更新识别第二存储器装置的故障页;由第一主机装置的FPL守护进程更新故障页日志;以及由第一主机装置的FPL守护进程基于更新的故障页日志来设置第二存储器装置的故障页的第二状态。In one embodiment, the method may further include: in response to the second host device detecting an error in the second memory device in the scalable memory pool, causing the FPL daemon of the first host device to retrieve the error from the second host device. The update is received by the FPL daemon; the fault page of the second memory device is identified by the FPL daemon of the first host device based on the update; the fault page log is updated by the FPL daemon of the first host device; and the fault page log is updated by the FPL daemon of the first host device The daemon sets a second state of the fault page of the second memory device based on the updated fault page log.
在一个实施例中,所述方法还可包括:由第一主机装置的FPL守护进程将更新的故障页日志广播到第三主机装置,第三主机装置被配置为访问可扩展存储器池。In one embodiment, the method may further include broadcasting, by the FPL daemon of the first host device, the updated fault page log to a third host device, the third host device being configured to access the scalable memory pool.
在一个实施例中,所述错误可以是可扩展存储器池的第一存储器装置的目标页中的多位错误,并且故障页信息可包括第一存储器装置的目标页的物理装置信息。In one embodiment, the error may be a multi-bit error in a target page of a first memory device of the scalable memory pool, and the failed page information may include physical device information of the target page of the first memory device.
根据本公开的一个或多个实施例,一种主机装置包括:根复合体,通过存储器接口连接到可扩展存储器池,并且被配置为解析从可扩展存储器池的存储器装置接收的包;内核,被配置为从解析后的包检测与第一存储器装置的故障页对应的错误位,并且响应于检测到所述错误位而生成中断;第一存储器装置的驱动器,被配置为响应于中断而将与第一存储器装置的故障页对应的故障页信息存储在故障页日志中;以及故障页日志(FPL)守护进程,被配置为基于故障页日志将故障页的状态从第一状态改变为第二状态。According to one or more embodiments of the present disclosure, a host device includes: a root complex connected to an extensible memory pool through a memory interface and configured to parse packets received from a memory device of the extensible memory pool; a kernel, configured to detect an error bit corresponding to a faulty page of the first memory device from the parsed packet, and to generate an interrupt in response to detecting the error bit; a driver of the first memory device configured to respond to the interrupt. Fault page information corresponding to the fault page of the first memory device is stored in the fault page log; and a fault page log (FPL) daemon is configured to change the state of the fault page from the first state to the second state based on the fault page log. state.
在一个实施例中,可扩展存储器池可包括至少两种不同类型的计算快速链路(CXL)存储器装置。In one embodiment, a scalable memory pool may include at least two different types of Compute Express Link (CXL) memory devices.
在一个实施例中,响应于重启,FPL守护进程可被配置为:读取故障页日志以识别可扩展存储器池的一个或多个故障页,并且根据故障页日志设置所述一个或多个故障页的第二状态。In one embodiment, in response to the restart, the FPL daemon may be configured to: read the fault page log to identify one or more fault pages of the scalable memory pool, and set the one or more faults according to the fault page log The second state of the page.
附图说明Description of the drawings
从下面参照附图对说明性的、非限制性的实施例的详细描述,将更清楚地理解本公开的以上和其他方面和特征。The above and other aspects and features of the present disclosure will be more clearly understood from the following detailed description of illustrative, non-limiting embodiments with reference to the accompanying drawings.
图1是根据本公开的一个或多个实施例的可扩展存储器系统的示意性框图。Figure 1 is a schematic block diagram of a scalable memory system in accordance with one or more embodiments of the present disclosure.
图2是根据本公开的一个或多个实施例的可扩展存储器系统的主机装置的示意性框图。2 is a schematic block diagram of a host device of an expandable memory system in accordance with one or more embodiments of the present disclosure.
图3是根据本公开的一个或多个实施例的生成可扩展存储器装置的故障页日志的方法的流程图。3 is a flowchart of a method of generating a fault page log for an expandable memory device in accordance with one or more embodiments of the present disclosure.
图4是在系统重启之后使可扩展存储器装置的故障页脱机的方法的流程图。4 is a flowchart of a method of taking fault pages of an expandable memory device offline after a system restart.
图5是根据本公开的一个或多个实施例的可扩展存储器系统的示意性框图。Figure 5 is a schematic block diagram of a scalable memory system in accordance with one or more embodiments of the present disclosure.
图6是根据本公开的一个或多个实施例的共享可扩展存储器装置的故障页信息的方法的流程图。6 is a flowchart of a method of sharing fault page information of an expandable memory device according to one or more embodiments of the present disclosure.
图7是根据本公开的一个或多个实施例的可扩展存储器系统的示意性框图。Figure 7 is a schematic block diagram of a scalable memory system in accordance with one or more embodiments of the present disclosure.
图8是根据本公开的一个或多个实施例的更新可扩展存储器装置的故障页信息的方法的流程图。8 is a flowchart of a method of updating fault page information of an expandable memory device according to one or more embodiments of the present disclosure.
具体实施方式Detailed ways
在下文中,将参照附图更详细地描述实施例,其中,相同的参考标号始终表示相同的元件。然而,本公开可以以各种不同的形式来实现,并且不应被解释为仅限于在此示出的实施例。相反地,提供这些实施例作为示例,使得本公开将是彻底的和完整的,并且将本公开的方面和特征充分传达给本领域技术人员。因此,可不描述对于本领域普通技术人员为了完全理解本公开的方面和特征而不是必须的处理、元件和技术。除非另外说明,否则贯穿附图和书面描述,相同的参考标记表示相同的元件,并且因此,它们的冗余描述可不被重复。In the following, embodiments will be described in more detail with reference to the accompanying drawings, wherein like reference numerals refer to like elements throughout. This disclosure may, however, be embodied in various different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided as examples so that this disclosure will be thorough and complete, and will fully convey the aspects and features of the disclosure to those skilled in the art. Accordingly, processes, elements, and techniques may not be described that are not necessary for one of ordinary skill in the art to fully understand aspects and features of the present disclosure. Unless otherwise stated, the same reference numbers refer to the same elements throughout the drawings and written description, and therefore, their redundant description may not be repeated.
通常,由于可扩展存储器通常可不用于系统的操作的关键页(诸如,内核页、执行页、不可重定位页等),因此可扩展存储器中的不可纠正的错误(例如,多位错误)可对系统稳定性具有较小的影响。因此,当在可扩展存储器的页中发生不可纠正的错误时,系统崩溃的可能性可较低,并且因此,页可简单地被脱机(offline)(例如,页的状态可从第一状态(例如,在线或可用状态)被改变为第二状态(例如,脱机或不可用状态),使得访问页的任何应用和/或进程可被迫被关闭(例如,可被终止)。然而,由于中央处理器(CPU)通常不维护脱机页的信息,因此到故障页的存储器映射可继续重复(特别是在系统重启之后),并且因此,用户体验可被降低。In general, uncorrectable errors (eg, multi-bit errors) in expandable memory may not be used for pages critical to the operation of the system (such as kernel pages, execution pages, non-relocatable pages, etc.) Has less impact on system stability. Therefore, when an uncorrectable error occurs in a page of scalable memory, the likelihood of a system crash may be lower, and thus, the page may simply be taken offline (e.g., the state of the page may be changed from the first state (e.g., online or available state) is changed to a second state (e.g., offline or unavailable state) such that any applications and/or processes accessing the page may be forced to close (e.g., may be terminated). However, Since the central processing unit (CPU) typically does not maintain information for offline pages, memory mapping to faulty pages may continue to be repeated (especially after a system restart), and therefore, the user experience may be degraded.
通常,系统主存储器(例如,主机存储器)可用于系统的操作的关键页(诸如,内核页、应用执行页、不可重定位页等)、以及用于处理数据的页(诸如,文本页、文件页、匿名页、可移动页等)。因此,为了确保系统稳定性并防止系统崩溃发生,当在系统主存储器的页中发生不可纠正的错误时,系统可被关闭,使得用户(例如,管理员)可对发生不可纠正的错误的存储器装置(例如,动态随机存取存储器(DRAM)装置或芯片)进行替换。因此,错误日志(诸如,机器检查异常(MCE)日志)可简单地包含错误消息和一些基本信息,以便用户能够对发生不可纠正的错误的系统主存储器装置进行替换。Typically, system main memory (e.g., host memory) may be used for pages critical to the operation of the system (such as kernel pages, application execution pages, non-relocatable pages, etc.), as well as pages used for processing data (such as text pages, file pages, etc.) page, anonymous page, removable page, etc.). Therefore, in order to ensure system stability and prevent system crashes from occurring, when an uncorrectable error occurs in a page of the system's main memory, the system may be shut down so that a user (eg, an administrator) can perform operations on the memory where the uncorrectable error occurred. Devices (eg, dynamic random access memory (DRAM) devices or chips) are replaced. Therefore, an error log, such as a Machine Check Exception (MCE) log, may simply contain the error message and some basic information to enable the user to replace a system main memory device where an uncorrectable error occurred.
另一方面,可扩展存储器通常可不用于关键页,而是可仅用于处理数据。因此,与系统主存储器的情况不同,当在可扩展存储器的页中发生不可纠正的错误时,页可被脱机(例如,页可被变得不可用),并且访问可扩展存储器的页的任何应用和/或进程可被迫被关闭(例如,可被终止),而可扩展存储器的其他页可继续被使用。因此,与当其中发生不可纠正的错误时可被替换的系统主存储器不同,可扩展存储器装置的可用寿命可通过使故障页脱机而被延长或最大化,并且因此,成本可被降低。On the other hand, expandable memory may not typically be used for critical pages, but may be used only for processing data. Therefore, unlike the situation with system main memory, when an uncorrectable error occurs in a page of expandable memory, the page can be taken offline (eg, the page can become unavailable), and access to the page of expandable memory Any applications and/or processes may be forced to close (eg, may be terminated), while other pages of the expandable memory may continue to be used. Therefore, unlike system main memory, which can be replaced when an uncorrectable error occurs therein, the usable life of an expandable memory device can be extended or maximized by taking faulty pages offline, and therefore, costs can be reduced.
然而,通常,系统处理器(例如,主机处理器)可不维护可扩展存储器的脱机页,并且因此,当系统被重启时,到故障页的存储器映射可被重复。此外,由于错误日志通常不包括可扩展存储器的故障页的物理装置信息(例如,装置序列号、装置类型和装置物理地址),因此脱机页可不在不同的主机处理器之间被共享。例如,因为不同的系统可具有不同的系统映射,所以一个主机处理器的错误日志可与另外的主机处理器无关。因此,即使故障页通过另外的主机处理器被脱机,不同的主机处理器也可继续到可扩展存储器的故障页的存储器映射。Typically, however, the system processor (eg, the host processor) may not maintain offline pages of scalable memory, and therefore, when the system is restarted, the memory mapping to the faulty page may be repeated. Additionally, because error logs typically do not include physical device information (eg, device serial number, device type, and device physical address) for faulty pages of expandable memory, offline pages may not be shared between different host processors. For example, because different systems may have different system mappings, the error logs of one host processor may not be related to another host processor. Therefore, even if the faulty page is taken offline by another host processor, the different host processors may continue the memory mapping of the faulty page to the expandable memory.
根据本公开的一个或多个实施例,即使在系统重启之后,可扩展存储器装置中的故障页的故障页信息也可被生成并被持久地存储在故障页日志(FPL)中,使得FPL可用于在到故障页的存储器映射可发生之前自动地使可扩展存储器装置的任何故障页脱机。因此,用户体验可被改善,并且成本可被降低。According to one or more embodiments of the present disclosure, fault page information for fault pages in the expandable memory device may be generated and persistently stored in a fault page log (FPL) even after a system restart, so that the FPL is available Any faulty pages of the expandable memory device are automatically taken offline before memory mapping to the faulty page can occur. Therefore, user experience can be improved and costs can be reduced.
根据本公开的一个或多个实施例,FPL可至少包括故障页的与可基于系统的存储器映射被改变的逻辑地址相比可保持相对一致的物理装置信息(例如,装置序列号、装置类型、装置物理地址等)。因此,即使在主机物理地址可被改变的系统重启、硬件改变等之后,FPL也可用于在任何到故障页的存储器映射可发生之前自动地使故障页脱机。According to one or more embodiments of the present disclosure, the FPL may include at least physical device information (e.g., device serial number, device type, device physical address, etc.). Therefore, even after a system reboot, hardware change, etc. where the host physical address may be changed, FPL can be used to automatically take the faulty page offline before any memory mapping to the faulty page can occur.
例如,当可扩展存储器被插入主机装置的不同插槽中时,或者当可扩展存储器扩展卡被插入不同主机装置的插槽中时,主机物理地址可被改变。在这种情况下,当进行这样的硬件改变时,至少包括可扩展存储器的物理装置信息的FPL可实现从装置物理地址到主机物理地址的重映射。在一些实施例中,当没有进行硬件改变时,主机物理地址可重新用于使故障页脱机。For example, the host physical address may be changed when expandable memory is inserted into a different slot of the host device, or when an expandable memory expansion card is inserted into a slot of a different host device. In this case, when such a hardware change is made, the FPL including at least the physical device information of the expandable memory can implement remapping from the device physical address to the host physical address. In some embodiments, the host physical address may be reused to take faulted pages offline when no hardware changes are made.
根据本公开的一个或多个实施例,因为FPL可至少包括故障页的物理装置信息,所以FPL可在多个主机装置(例如,主机处理器)之间被共享,使得多个主机处理器中的每个可在它们自己的系统映射中使故障页脱机,并且因此,任何到故障页的存储器映射可被避免。因此,系统可靠性可被改善,并且用户体验可被改善。According to one or more embodiments of the present disclosure, because the FPL may include at least physical device information of the fault page, the FPL may be shared among multiple host devices (eg, host processors) such that among the multiple host processors Each of them can take the fault page offline in their own system map, and therefore, any memory mapping to the fault page can be avoided. Therefore, system reliability can be improved, and user experience can be improved.
以下将参照附图更详细地描述本公开的以上和/或其他方面和特征。The above and/or other aspects and features of the present disclosure will be described in more detail below with reference to the accompanying drawings.
图1是根据本公开的一个或多个实施例的可扩展存储器系统的示意性框图。Figure 1 is a schematic block diagram of a scalable memory system in accordance with one or more embodiments of the present disclosure.
参照图1,主机装置102可包括主机操作系统(OS)/内核104、主机处理器106、主机存储器108和存储装置110。主机操作系统/内核104可包括用于提供硬件与用户之间以及软件应用与硬件之间的接口的系统软件。例如,主机操作系统/内核104可被配置用于主机装置102的资源分配、存储器管理、CPU管理、文件管理、进程的执行等。例如,在一些实施例中,主机操作系统/内核104可包括Linux操作系统/内核,但是本公开不限于此,并且主机操作系统/内核104可包括本领域技术人员已知的任何合适的操作系统/内核(诸如,WindowsOS、Apple OS(例如,macOS)、Chrome OS等)。Referring to FIG. 1 , host device 102 may include a host operating system (OS)/kernel 104 , a host processor 106 , host memory 108 , and storage 110 . Host operating system/kernel 104 may include system software for providing interfaces between hardware and users and between software applications and hardware. For example, the host operating system/kernel 104 may be configured for resource allocation, memory management, CPU management, file management, execution of processes, etc. of the host device 102 . For example, in some embodiments, the host operating system/kernel 104 may include a Linux operating system/kernel, but the disclosure is not limited thereto and the host operating system/kernel 104 may include any suitable operating system known to those skilled in the art. /kernel (such as Windows OS, Apple OS (e.g., macOS), Chrome OS, etc.).
主机处理器106可以是主机装置102的处理电路(例如诸如,通用处理器或中央处理器(CPU)核)。主机处理器106可经由地址总线、控制总线、数据总线等连接到其他组件。主机处理器106可执行存储在主机存储器108中的指令以执行在此描述的各种操作。例如,主机处理器106可执行可根据需要或期望(例如,在启动、执行时间、中断例程等时)从持久性存储设备(例如,存储装置110、只读存储器(ROM)等)被复制到主机存储器108的(在以下更详细地描述的)一个或多个系统进程和后台进程。Host processor 106 may be processing circuitry of host device 102 (eg, such as a general purpose processor or central processing unit (CPU) core). The host processor 106 may be connected to other components via an address bus, a control bus, a data bus, and the like. Host processor 106 can execute instructions stored in host memory 108 to perform the various operations described herein. For example, host processor 106 execution may be copied from a persistent storage device (e.g., storage 110 , read-only memory (ROM), etc.) as needed or desired (e.g., at startup, execution time, interrupt routines, etc.) One or more system processes and background processes (described in greater detail below) to host memory 108 .
主机存储器108可被认为是主机装置102的高性能主存储器(例如,主要存储器(primary memory))。例如,在一些实施例中,主机存储器108可包括(或者可以是)可经由第一存储器接口112直接连接到主机装置102的主板的存储器插槽的易失性存储器(例如诸如,动态随机存取存储器(DRAM))。在这种情况下,第一存储器接口112(例如,连接器及其协议)可包括(或者可符合)双列直插式存储器模块(DIMM),以(例如,经由主机OS/内核104)促成主机存储器108与主机处理器106之间的通信,使得主机存储器108可以是连接到主机装置102的DIMM插槽的DIMM存储器。然而,本公开不限于此,并且主机存储器108可包括(或者可以是)如本领域技术人员将已知的用于主机装置102的任何合适的高性能主存储器(例如,主要存储器)的替换物。例如,在其他实施例中,主机存储器108可以是相对高性能的非易失性存储器(诸如,NAND闪存、相变存储器(PCM)、电阻式RAM、自旋转移力矩RAM(STTRAM)、基于PCM技术、忆阻器技术和/或电阻式随机存取存储器(ReRAM)的任何合适的存储器),并且可包括例如硫属化物等。Host memory 108 may be considered the high-performance main memory (eg, primary memory) of host device 102 . For example, in some embodiments, host memory 108 may include (or may be) volatile memory (eg, such as dynamic random access memory) that may be connected directly to a memory slot of a motherboard of host device 102 via first memory interface 112 . memory (DRAM)). In this case, the first memory interface 112 (eg, the connector and its protocol) may include (or may be compliant with) a dual in-line memory module (DIMM) to facilitate (eg, via the host OS/kernel 104 ) Communication between host memory 108 and host processor 106 is such that host memory 108 may be a DIMM memory connected to a DIMM slot of host device 102 . However, the present disclosure is not so limited, and host memory 108 may include (or may be) a replacement for any suitable high-performance main memory (eg, primary memory) for host device 102 as would be known to those skilled in the art. . For example, in other embodiments, the host memory 108 may be a relatively high performance non-volatile memory (such as NAND flash memory, phase change memory (PCM), resistive RAM, spin transfer torque RAM (STTRAM), PCM-based technology, memristor technology, and/or resistive random access memory (ReRAM)), and may include, for example, chalcogenides and the like.
存储装置110可被认为是可持久地存储由主机装置102可访问的数据的辅存储器(例如,辅存储设备(secondary storage))。在该背景下,当与主机存储器108的高性能主存储器相比时,存储装置110可包括(或者可以是)相对较慢的存储器。例如,在一些实施例中,存储装置110可以是固态驱动器(SSD)。然而,本公开不限于此,并且在其他实施例中,存储装置110可包括(或者可以是)任何合适的存储装置(例如诸如,磁存储装置(例如,硬盘驱动器(HDD)等)、光学存储装置(例如,蓝光盘驱动器、光盘(CD)驱动器、数字通用光盘(DVD)驱动器等)、其他种类的闪存装置(例如,USB闪存驱动器等)等)。在各种实施例中,存储装置110可符合大形状因子标准(例如,3.5英寸硬盘驱动器形状因子)、小形状因子标准(例如,2.5英寸硬盘驱动器形状因子)、M.2形状因子、E1.S形状因子等。在其他实施例中,存储装置110可符合这些形状因子的任何合适或期望的衍生物。Storage device 110 may be thought of as secondary storage (eg, secondary storage) that may persistently store data accessible by host device 102 . In this context, storage device 110 may include (or may be) relatively slow memory when compared to the high performance main memory of host memory 108 . For example, in some embodiments, storage device 110 may be a solid state drive (SSD). However, the present disclosure is not limited thereto, and in other embodiments, storage device 110 may include (or may be) any suitable storage device (eg, such as a magnetic storage device (eg, a hard disk drive (HDD), etc.), optical storage device devices (e.g., Blu-ray disk drives, compact disk (CD) drives, digital versatile disk (DVD) drives, etc.), other types of flash memory devices (e.g., USB flash drives, etc.), etc.). In various embodiments, storage device 110 may comply with large form factor standards (eg, 3.5-inch hard drive form factor), small form factor standards (eg, 2.5-inch hard drive form factor), M.2 form factor, E1. S shape factor etc. In other embodiments, memory device 110 may conform to any suitable or desired derivative of these form factors.
存储装置110可经由存储接口连接到主机处理器106。存储接口可(例如,经由主机OS/内核104)(例如,使用连接器和协议)促成主机处理器106与存储装置110之间的通信。在一些实施例中,存储接口可促成主机处理器106与存储装置110之间的存储请求和响应的交换。在一些实施例中,存储接口可促成由存储装置110将数据传送到主机装置102的主机存储器108和从主机装置102的主机存储器108传送数据。例如,在各种实施例中,存储接口(例如,连接器及其协议)可包括(或者可符合)小型计算机系统接口(SCSI)、非易失性存储器快速(NVMe)、外围组件互连快速(PCIe)、以太网上的远程直接存储器访问(RDMA)、串行高级技术附件(SATA)、光纤通道、串行附接SCSI(SAS)、通过网络的NVMe(NVMe-oF)等。在其他实施例中,存储接口(例如,连接器及其协议)可包括(或者可符合)各种通用接口(例如诸如,以太网、通用串行总线(USB)等)。Storage device 110 may be connected to host processor 106 via a storage interface. The storage interface may facilitate communication between the host processor 106 and the storage device 110 (eg, via the host OS/kernel 104 ) (eg, using connectors and protocols). In some embodiments, a storage interface may facilitate the exchange of storage requests and responses between host processor 106 and storage device 110 . In some embodiments, the storage interface may facilitate the transfer of data by storage device 110 to and from host memory 108 of host device 102 . For example, in various embodiments, storage interfaces (e.g., connectors and their protocols) may include (or may be compliant with) Small Computer System Interface (SCSI), Non-Volatile Memory Express (NVMe), Peripheral Component Interconnect Express (PCIe), Remote Direct Memory Access (RDMA) over Ethernet, Serial Advanced Technology Attachment (SATA), Fiber Channel, Serial Attached SCSI (SAS), NVMe over the network (NVMe-oF), and more. In other embodiments, storage interfaces (eg, connectors and their protocols) may include (or may be compliant with) various general-purpose interfaces (eg, such as Ethernet, Universal Serial Bus (USB), etc.).
仍然参照图1,主机装置102经由与第一存储器接口112不同的第二存储器接口116连接到可扩展存储器池114。可扩展存储器池114可包括一个或多个可扩展存储器装置118a、118b和118c(统称为118)(例如诸如,一个或多个计算快速链路(CXL)存储器装置118a(CXL_Memory 1)、118b(CXL_Memory 2)和118c(CXL_Memory 3))。在一些实施例中,可扩展存储器池114可以是包括多个不同类型的CXL存储器装置118a、118b和118c的分解式CXL存储器池,分解式CXL存储器池通常可包括易失性存储器(诸如,例如DDR3、DDR4、DDR5、低功率、高功率、低轮廓、PMEM、HBM、具有DRAM的SSD等之中的DRAM)。然而,本公开不限于此,并且与以上针对主机存储器108描述的示例类似,可扩展存储器池114可包括(或者可以是)如本领域技术人员将已知的用于主机装置102的任何合适的高性能可扩展存储器。例如,可扩展存储器池114可包括至少两种不同类型的CXL存储器装置。Still referring to FIG. 1 , host device 102 is connected to scalable memory pool 114 via a second memory interface 116 that is different from first memory interface 112 . Scalable memory pool 114 may include one or more scalable memory devices 118a, 118b, and 118c (collectively 118) (eg, such as one or more Compute Express Link (CXL) memory devices 118a (CXL_Memory 1), 118b ( CXL_Memory 2) and 118c (CXL_Memory 3)). In some embodiments, scalable memory pool 114 may be a disaggregated CXL memory pool including multiple different types of CXL memory devices 118a, 118b, and 118c, which may typically include volatile memory (such as, e.g. DDR3, DDR4, DDR5, low power, high power, low profile, PMEM, HBM, SSD with DRAM, etc.). However, the present disclosure is not so limited, and similar to the example described above with respect to host memory 108 , scalable memory pool 114 may include (or may be) any suitable memory for host device 102 as will be known to those skilled in the art. High performance scalable memory. For example, scalable memory pool 114 may include at least two different types of CXL memory devices.
在一些实施例中,第二存储器接口116可包括外围组件互连快速(PCIe)接口和CXL互连。例如,第二存储器接口116(例如,连接器及其协议)可包括(例如,可符合)构建在外围组件互连快速(PCIe)上的CXL互连,以(例如,经由主机OS/内核104)促成主机处理器106与可扩展存储器池114的存储器装置118a、118b和118c之间的通信。在这种情况下,存储器装置118a、118b和118c中的每个可作为PCIe装置连接到主机装置102的PCIe插槽。在其他实施例中,第二存储器接口116(例如,连接器及其协议)可包括(或者可符合)各种通用接口(例如诸如,以太网、通用串行总线(USB)等)。虽然图1示出连接到可扩展存储器池114的一个主机装置102,但是本公开不限于此,并且多个主机装置102可连接到可扩展存储器池114(例如,参见图5和图7)。In some embodiments, the second memory interface 116 may include a Peripheral Component Interconnect Express (PCIe) interface and a CXL interconnect. For example, the second memory interface 116 (eg, the connector and its protocol) may include (eg, may be compliant with) a CXL interconnect built on Peripheral Component Interconnect Express (PCIe) to (eg, via the host OS/kernel 104 ) facilitates communication between the host processor 106 and the memory devices 118a, 118b, and 118c of the scalable memory pool 114. In this case, each of memory devices 118a, 118b, and 118c may be connected to a PCIe slot of host device 102 as a PCIe device. In other embodiments, the second memory interface 116 (eg, connectors and their protocols) may include (or may be compliant with) various general-purpose interfaces (eg, such as Ethernet, Universal Serial Bus (USB), etc.). Although FIG. 1 illustrates one host device 102 connected to scalable memory pool 114, the present disclosure is not so limited and multiple host devices 102 may be connected to scalable memory pool 114 (eg, see FIGS. 5 and 7).
如上所述,主机存储器108和可扩展存储器池114二者可用作主机装置102的高性能主存储器(例如,主要存储器),使得它们二者可用于数据处理(例如,用于临时存储待由主机处理器106处理的数据(例如诸如,文本页、匿名页、文件页、可移动页等(例如,参见图2)))。然而,虽然主机存储器108还可用于关键页(诸如,OS内核页、应用执行页、不可重定位页等),但是可扩展存储器池114可不用于这样的关键页。因此,当在主机存储器108的页中发生不可纠正的错误时,主机存储器108可被替换以防止或基本上防止系统崩溃,而与主机存储器108不同,当在可扩展存储器池114的可扩展存储器装置118的页中发生不可纠正的错误时,页可简单地被脱机(例如,页的状态可从第一状态(例如,在线状态或可用状态)被改变为第二状态(例如,脱机状态或不可用状态)),使得访问页的任何进程和/或应用可被终止(例如,被强制关闭)。换言之,不是像主机存储器108那样被替换,而是当在可扩展存储器池114的页中发生不可纠正的错误时,页可如本领域普通技术人员所理解的那样被硬脱机,使得故障页不再可用于存储器映射。因此,可扩展存储器池114的可扩展存储器装置118的可用寿命可被增加或最大化,并且因此,成本可被降低。如在此使用的,不可纠正的错误可表示同一高速缓存行上的不可被系统软件/固件纠正(例如,可以是不可纠正的)的多位错误(例如,2位错误),而可纠正的错误可表示单个位错误,并且通常可由系统纠正。As described above, host memory 108 and scalable memory pool 114 may both be used as high-performance main memory (eg, primary memory) for host device 102 such that they both may be used for data processing (eg, for temporary storage of data to be processed). The host processor 106 processes data (eg, such as text pages, anonymous pages, file pages, removable pages, etc. (eg, see FIG. 2 )). However, while host memory 108 may also be used for critical pages (such as OS kernel pages, application execution pages, non-relocatable pages, etc.), scalable memory pool 114 may not be used for such critical pages. Thus, when an uncorrectable error occurs in a page of host memory 108 , host memory 108 may be replaced to prevent or substantially prevent a system crash, unlike host memory 108 when an uncorrectable error occurs in a page of scalable memory pool 114 When an uncorrectable error occurs in a page of device 118, the page may simply be taken offline (e.g., the status of the page may be changed from a first state (e.g., online state or available state) to a second state (e.g., offline state or unavailable state)), so that any process and/or application accessing the page can be terminated (e.g., forced shut down). In other words, rather than being replaced like host memory 108 , when an uncorrectable error occurs in a page of scalable memory pool 114 , the page can be hard-offlined as one of ordinary skill in the art will understand, such that the failed page No longer available for memory mapping. Accordingly, the usable lifetime of the scalable memory devices 118 of the scalable memory pool 114 may be increased or maximized, and therefore, costs may be reduced. As used herein, an uncorrectable error may mean a multi-bit error (e.g., a 2-bit error) on the same cache line that cannot be corrected by system software/firmware (e.g., may be uncorrectable), while a correctable An error can represent a single bit error and is usually correctable by the system.
应注意,可扩展存储器池114的页中的可纠正的错误可与可在主机存储器108的页中发生的可纠正的错误的被处理的方式大致相同或基本上相同的方式被处理。例如,当可纠正的错误发生时,具有可纠正的错误的页的数据可被迁移到另外的页,并且具有可纠正的错误的页可如本领域普通技术人员所理解的那样被软脱机,使得访问故障页的任何应用或进程可被重映射到迁移的页。然而,在一些实施例中,以下更详细描述的实施例也可被扩展到软脱机页(例如,通过将软脱机页的故障页信息持久地存储在故障页日志中)。在这种情况下,故障页日志可(例如,在系统100启动时(或重新启动之后))用于根据需要或期望使页脱机。为了方便,在下文中更详细描述的实施例可在响应于不可纠正的错误(例如,同一高速缓存行上的两位错误)的硬脱机页的背景下被描述,但是本公开不限于此,并且在此描述的实施例中的至少一些也可适用于响应于可纠正的错误的软脱机页。It should be noted that correctable errors in pages of scalable memory pool 114 may be handled in substantially the same or substantially the same manner as correctable errors that may occur in pages of host memory 108 are handled. For example, when a correctable error occurs, the data of the page with the correctable error can be migrated to another page, and the page with the correctable error can be soft-offlined as will be understood by one of ordinary skill in the art. , so that any application or process that accesses the faulty page can be remapped to the migrated page. However, in some embodiments, the embodiments described in more detail below may also be extended to soft offline pages (eg, by persistently storing fault page information for soft offline pages in a fault page log). In this case, the fault page log may be used (eg, at system 100 startup (or after a reboot)) to take pages offline as needed or desired. For convenience, embodiments described in greater detail below may be described in the context of hard offline pages in response to uncorrectable errors (eg, two-bit errors on the same cache line), but the disclosure is not limited thereto. And at least some of the embodiments described herein may also be applicable to soft offline pages in response to correctable errors.
图2是根据本公开的一个或多个实施例的可扩展存储器系统的主机装置的示意性框图。2 is a schematic block diagram of a host device of an expandable memory system in accordance with one or more embodiments of the present disclosure.
参照图2,主机装置102经由第二存储器接口116连接到可扩展存储器池114的可扩展存储器装置118。例如,在一些实施例中,可扩展存储器装置118可(例如,经由第二存储器接口116)连接到主机装置102的根复合体202的端口(例如,PCIe端口),使得可扩展存储器装置118可被认为是PCIe装置。在这种情况下,根复合体202可将处理器206(例如,图1中的主机处理器106)连接到可扩展存储器装置118,以代表处理器206生成到可扩展存储器装置118的事务请求。根复合体202可被实现为集成电路,或者根复合体202的功能可被实现为处理器206的一部分(例如,作为存储在存储器208中并由处理器206执行的指令)。Referring to FIG. 2 , host device 102 is connected to expandable memory device 118 of expandable memory pool 114 via second memory interface 116 . For example, in some embodiments, expandable memory device 118 may be connected (eg, via second memory interface 116 ) to a port (eg, a PCIe port) of root complex 202 of host device 102 such that expandable memory device 118 may Considered a PCIe device. In this case, root complex 202 may connect processor 206 (eg, host processor 106 in FIG. 1 ) to expandable memory device 118 to generate transaction requests to expandable memory device 118 on behalf of processor 206 . Root complex 202 may be implemented as an integrated circuit, or the functionality of root complex 202 may be implemented as part of processor 206 (eg, as instructions stored in memory 208 and executed by processor 206).
简而言之,当在可扩展存储器装置118的目标页中发生不可纠正的错误时,可扩展存储器装置的目标寄存器可在目标包(packet)中(例如,在转换层包中)生成错误位(例如,中毒位(poison bit)),并且将目标包提供给根复合体202。根复合体202对目标包进行解析并将解析后的包括错误位的目标包发送到处理器206(例如,主机处理器106)。处理器206基于错误位生成中断,并且将至少包括目标页的物理装置信息(例如,装置序列号、装置类型、装置物理地址等)的故障页信息持久地存储在故障页日志FPL 222中。处理器206可根据FPL222使目标页脱机,并且可终止访问目标页的任何进程或应用。FPL 222可被持久地存储在持久性存储设备218(例如,图1中的存储装置110等)中,使得即使在系统重启之后,故障页信息也被维持可在FPL 222中。因此,在一些实施例中,当系统被重启时,FPL 222可针对可扩展存储器池114中的可扩展存储器装置118中的每个被读取,使得在FPL 222中识别的故障页可在任何到故障页的存储器映射发生之前自动地被脱机,并且因此,错误日志(例如,MCE日志)可被减少并且用户体验可被改善。Briefly, when an uncorrectable error occurs in a target page of expandable memory device 118, the target register of the expandable memory device may generate an error bit in the target packet (eg, in a translation layer packet) (eg, a poison bit), and the target packet is provided to the root complex 202. Root complex 202 parses the target packet and sends the parsed target packet, including error bits, to processor 206 (eg, host processor 106). Processor 206 generates an interrupt based on the error bit and persistently stores fault page information including at least physical device information of the target page (eg, device serial number, device type, device physical address, etc.) in fault page log FPL 222 . Processor 206 may take the target page offline in accordance with FPL 222 and may terminate any process or application accessing the target page. FPL 222 may be persistently stored in persistent storage 218 (eg, storage 110 in FIG. 1 , etc.) such that fault page information is maintained in FPL 222 even after a system restart. Therefore, in some embodiments, when the system is restarted, FPL 222 may be read for each of scalable memory devices 118 in scalable memory pool 114 such that a faulted page identified in FPL 222 may be read at any time. Memory mapping to faulted pages is automatically taken offline before they occur, and therefore, error logs (eg, MCE logs) can be reduced and user experience can be improved.
更详细地,主机装置102可包括根复合体202、处理电路204和持久性存储设备218(例如,存储装置110等)。根复合体202可经由第二存储器接口116将处理电路204(例如,经由本地总线等)连接到可扩展存储器装置118。例如,如上所讨论的,第二存储器接口116(例如,连接器及其协议)可包括(例如,可符合)建立在外围组件互连快速(PCIe)上的CXL互连,使得可扩展存储器装置118可以是连接到根复合体202的PCIe端口的PCIe装置。虽然图2将根复合体202示出为与处理电路204分开,但是本公开不限于此,并且在一些实施例中,根复合体202可被实现为处理电路204的一部分(例如,作为集成电路或作为处理器206的一部分)。In further detail, host device 102 may include root complex 202, processing circuitry 204, and persistent storage 218 (eg, storage 110, etc.). Root complex 202 may connect processing circuitry 204 (eg, via a local bus, etc.) to expandable memory device 118 via second memory interface 116 . For example, as discussed above, the second memory interface 116 (eg, the connector and its protocol) may include (eg, may be compliant with) a CXL interconnect built on Peripheral Component Interconnect Express (PCIe) such that the memory device can be expanded 118 may be a PCIe device connected to a PCIe port of root complex 202 . Although FIG. 2 shows root complex 202 as separate from processing circuit 204, the present disclosure is not so limited, and in some embodiments, root complex 202 may be implemented as part of processing circuit 204 (e.g., as an integrated circuit or as part of processor 206).
处理电路204包括(例如,可包括图1中的主机处理器106的)一个或多个处理器206和存储器208(例如,主机存储器108、ROM等)。处理电路204可连接到(或者可包括)根复合体202,使得处理电路204及其各种组件可经由根复合体202与可扩展存储器装置118发送和接收数据。处理器206可用通用处理器(诸如,中央处理器(例如,CPU)、专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)、数字信号处理器(DSP)、一组处理组件、或者能够(例如,经由固件和/或软件)执行指令的其他合适的电子处理组件)来实现。处理电路204和处理器206可被容纳在单个地理位置或装置中,或者可分布在各种地理位置或装置上。Processing circuitry 204 includes one or more processors 206 (eg, which may include host processor 106 in FIG. 1 ) and memory 208 (eg, host memory 108, ROM, etc.). Processing circuitry 204 may be connected to (or may include) root complex 202 such that processing circuitry 204 and its various components may send and receive data via root complex 202 and expandable memory device 118 . Processor 206 may be a general purpose processor such as a central processing unit (eg, CPU), an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a digital signal processor (DSP), a set of component, or other suitable electronic processing component capable of executing instructions (e.g., via firmware and/or software). Processing circuitry 204 and processor 206 may be housed in a single geographic location or device, or may be distributed over various geographic locations or devices.
存储器208(例如,一个或多个存储器装置和/或存储器单元)可包括有形、非瞬态、易失性存储器或非易失性存储器(诸如,RAM(例如,DRAM)、ROM、NVRAM或闪存)。存储器208可经由处理电路204可通信地连接到处理器206,并且包括用于(例如,通过处理电路204和/或处理器206)促成在此描述的各种进程中的至少一些的数据和/或计算机代码。例如,存储器208可包括数据库组件、目标代码组件、脚本组件和/或用于支持在本申请中描述的各种活动和信息或数据结构的任何其他类型的信息或数据结构。存储器208存储在由处理器206执行时控制在此描述的主机装置102的各种操作的指令或编程逻辑。Memory 208 (e.g., one or more memory devices and/or memory cells) may include tangible, non-transitory, volatile memory or non-volatile memory such as RAM (e.g., DRAM), ROM, NVRAM, or flash memory ). Memory 208 may be communicatively connected to processor 206 via processing circuitry 204 and includes data and/or data for facilitating at least some of the various processes described herein (eg, by processing circuitry 204 and/or processor 206 ). or computer code. For example, memory 208 may include database components, object code components, script components, and/or any other type of information or data structure used to support the various activities and information or data structures described in this application. Memory 208 stores instructions or programming logic that, when executed by processor 206, control various operations of host device 102 described herein.
如图2中所示,存储器208可包括可与根据需要或期望(例如,在执行时间、在中断之后、在重启之后等)从持久性存储设备(例如,存储装置110、ROM等)复制到存储器208的各种不同指令对应的OS内核210、机器检查异常(MCE)日志守护进程212、装置驱动器214和故障页日志(FPL)守护进程216。例如,OS内核210可包括各种系统软件以提供软件应用与硬件(例如,CPU、存储器、存储设备等)之间的接口,并且装置驱动器214可包括用于可扩展存储器池114的可扩展存储器装置118中的每个的装置驱动器。MCE日志守护进程212和FPL守护进程216可包括(或者可以是)可例如响应于中断或在重启之后被调用的各种后台进程。As shown in FIG. 2, memory 208 may include data that may be copied from a persistent storage device (eg, storage 110, ROM, etc.) to The various instructions in memory 208 correspond to the OS kernel 210, Machine Check Exception (MCE) log daemon 212, device driver 214, and Fault Page Log (FPL) daemon 216. For example, OS kernel 210 may include various system software to provide interfaces between software applications and hardware (eg, CPU, memory, storage devices, etc.), and device drivers 214 may include expandable memory for expandable memory pool 114 A device driver for each of devices 118 . MCE log daemon 212 and FPL daemon 216 may include (or may be) various background processes that may be invoked, for example, in response to an interrupt or after a restart.
OS内核210可检测来自各种硬件(诸如,来自主机处理器106、主机存储器108、存储装置110、可扩展存储器装置118等)的机器检查异常(MCE),并且可经由错误日志或系统控制台将一些错误信息提供给用户(例如,系统管理员)。在MCE与从主机存储器108中的页检测到的不可纠正的错误对应的情况下,如果页对于系统是关键的,则OS内核210可关闭系统以防止系统崩溃,并且在这种情况下,通常没有什么可被记录。在一些实施例中,可以是第三方用户应用的MCE日志守护进程212也可被包括以提供关于检测到的MCE的一些附加信息(例如,主机物理地址(如果支持的话)、存储器映射信息等),并且可将附加信息存储在例如MCE日志220中。然而,MCE日志220主要用于主机存储器108,并且由于可扩展存储器装置118可简单地被视为附接在主机装置102的PCIe插槽上的存储器扩展,因此MCE日志220可不记录与可扩展存储器装置118的故障页中的不可纠正的错误有关的完整信息。换言之,MCE日志220可不包含可扩展存储器的故障页信息(例如,物理装置信息)。因此,MCE日志220可简单地存储标识需要替换的主机存储器108的存储器装置的信息,该信息可包括主机存储器108的故障页的物理地址(如果支持的话),但是由于附接在CXL/PCIe/网络上的全部可扩展存储器装置118可被视为存储器扩展,所以MCE日志220可不足以将不可纠正的错误的故障页信息存储在可扩展存储器池114的可扩展存储器装置118中。OS kernel 210 may detect machine check exceptions (MCEs) from various hardware (such as from host processor 106, host memory 108, storage device 110, expandable memory device 118, etc.) and may detect them via an error log or system console. Provide some error message to users (for example, system administrators). In the event that the MCE corresponds to an uncorrectable error detected from a page in host memory 108, if the page is critical to the system, the OS kernel 210 may shut down the system to prevent a system crash, and in this case, typically Nothing is recorded. In some embodiments, the MCE log daemon 212, which may be a third-party user application, may also be included to provide some additional information about the detected MCE (e.g., host physical address (if supported), memory mapping information, etc.) , and additional information may be stored, for example, in MCE log 220. However, MCE log 220 is primarily for host memory 108 , and since expandable memory device 118 may simply be considered a memory expansion attached to a PCIe slot of host device 102 , MCE log 220 may not be logged with expandable memory. Complete information about uncorrectable errors in the device 118 fault page. In other words, MCE log 220 may not contain fault page information (eg, physical device information) of the expandable memory. Therefore, MCE log 220 may simply store information identifying the memory device of host memory 108 that needs to be replaced, which information may include the physical address of the faulty page of host memory 108 (if supported), but due to the attached CXL/PCIe/ All expandable memory devices 118 on the network may be considered memory extensions, so the MCE log 220 may not be sufficient to store fault page information for uncorrectable errors in the expandable memory devices 118 of the expandable memory pool 114 .
根据本公开的一个或多个实施例,当MCE与从可扩展存储器装置118中的页检测到的不可纠正的错误对应时,故障页信息(例如,物理装置信息(诸如,装置序列号、装置类型、装置物理地址等))可被持久地存储在FPL 222中,并且即使在硬件配置改变和/或服务器改变的情况下也可用于自动地使可扩展存储器装置118中的故障页脱机。例如,如果可扩展存储器装置118从插槽1移动到插槽2,则硬件装置管理(HDM)范围可被改变,并且这样的改变可不被可扩展存储器装置118跟踪。另一方面,因为FPL 222持久地存储故障页信息,所以即使在这样的改变的情况下,这样的信息也可用于使可扩展存储器装置118中的故障页脱机。In accordance with one or more embodiments of the present disclosure, when an MCE corresponds to an uncorrectable error detected from a page in expandable memory device 118, the failed page information (e.g., physical device information (such as device serial number, device Type, device physical address, etc.) may be persistently stored in the FPL 222 and may be used to automatically take faulty pages offline in the expandable memory device 118 even in the event of hardware configuration changes and/or server changes. For example, if expandable memory device 118 is moved from slot 1 to slot 2, the hardware device management (HDM) scope may be changed, and such changes may not be tracked by expandable memory device 118 . On the other hand, because FPL 222 persistently stores fault page information, such information can be used to take fault pages in expandable memory device 118 offline even in the event of such changes.
更详细地,当OS内核210(例如,基于来自根复合体202的解析后的错误位)检测到与可扩展存储器装置118的目标页对应的MCE时,OS内核210可生成访问可扩展存储器装置118的目标页的应用或进程的中断,并且可调用可扩展存储器装置118的装置驱动器214以便处理中断。可扩展存储器装置118的装置驱动器214可包括高级错误报告(AER)处理器,以响应于中断来处理在可扩展存储器装置118中检测到的MCE。例如,如果MCE与可扩展存储器装置118中的目标页的不可纠正的错误(例如,同一高速缓存行上的2位错误)对应,则可扩展存储器装置118的AER处理器可生成至少包括可扩展存储器装置118的目标页的物理装置信息(例如,装置序列号、装置类型、装置物理地址等)的故障页信息,并且可将故障页信息持久地存储在FPL 222中。因此,在重启之后或者甚至在硬件配置改变的情况下,因为物理装置信息可保持相对恒定,所以存储在FPL 222中的故障页的故障页信息可用于识别可需要被脱机的可扩展存储器装置118的故障页。例如,可扩展存储器装置118的AER处理器可启动FPL守护进程216以将可扩展存储器装置118的故障页的状态从第一状态(例如,在线或可用状态)改变为第二状态(例如,脱机或不可用状态),以根据持久地存储在FPL 222中的故障页信息使目标页脱机。In more detail, when OS kernel 210 detects an MCE corresponding to a target page of expandable memory device 118 (eg, based on parsed error bits from root complex 202 ), OS kernel 210 may generate an access to expandable memory device. The application or process of the target page 118 is interrupted, and the device driver 214 of the expandable memory device 118 may be called to handle the interrupt. Device driver 214 of expandable memory device 118 may include an advanced error reporting (AER) handler to handle MCEs detected in expandable memory device 118 in response to interrupts. For example, if the MCE corresponds to an uncorrectable error (eg, a 2-bit error on the same cache line) of the target page in expandable memory device 118, the AER processor of expandable memory device 118 may generate a Fault page information for the physical device information (eg, device serial number, device type, device physical address, etc.) of the target page of memory device 118 and the fault page information may be persistently stored in FPL 222 . Therefore, after a reboot or even in the event of a hardware configuration change, the fault page information stored in FPL 222 may be used to identify expandable memory devices that may need to be taken offline because the physical device information may remain relatively constant. 118 fault page. For example, the AER processor of expandable memory device 118 may initiate FPL daemon 216 to change the state of a fault page of expandable memory device 118 from a first state (eg, online or available state) to a second state (eg, offline). downtime or unavailable state) to take the target page offline based on fault page information persistently stored in FPL 222.
在一些实施例中,因为故障页信息可被持久地存储在FPL 222中,所以主机装置102还可将接口(例如,应用编程接口(API))提供给用户(例如,系统管理员)以使得用户能够出于调试目的和/或出于可靠性、可用性和可服务性(RAS)特征符合性测试目的,在FPL222中插入或删除故障页信息。例如,因为故障页信息用于在系统重启、硬件改变等之后自动地使页脱机,所以除非其故障页信息从FPL 222中被移除,否则在系统重启之后可无法访问故障页。因此,在一些实施例中,例如,API可允许用户从故障页列表移除故障页,使得即使在系统重启之后或者在可扩展存储器装置118的替换之后,故障页也可出于测试目的被访问。In some embodiments, because fault page information may be persistently stored in FPL 222, host device 102 may also provide an interface (eg, application programming interface (API)) to a user (eg, system administrator) such that Users have the ability to insert or delete fault page information in FPL222 for debugging purposes and/or for reliability, availability, and serviceability (RAS) feature compliance testing purposes. For example, because fault page information is used to automatically take a page offline after a system restart, hardware change, etc., a fault page may not be accessible after a system restart unless its fault page information is removed from FPL 222. Thus, in some embodiments, for example, the API may allow a user to remove a fault page from a fault page list such that the fault page may be accessed for testing purposes even after a system reboot or after a replacement of expandable memory device 118 .
图3是根据本公开的一个或多个实施例的生成可扩展存储器装置的故障页日志的方法的流程图。3 is a flowchart of a method of generating a fault page log for an expandable memory device in accordance with one or more embodiments of the present disclosure.
例如,方法300可由在图2中示出的主机装置102的处理器206执行。然而,本公开不限于此,并且在方法300中示出的操作可由以上描述的一个或多个实施例的组件和元件中的任何合适的一个、或组件和元件的任何合适的组合来执行。此外,本公开不限于在图3中示出的方法300的操作的顺序或数量,并且可被改变为如本领域普通技术人员所认识到的操作的任何期望的顺序或数量。例如,在一些实施例中,顺序可变化,或者方法300可包括更少的或附加的操作。For example, method 300 may be performed by processor 206 of host device 102 shown in FIG. 2 . However, the present disclosure is not limited in this regard, and the operations illustrated in method 300 may be performed by any suitable one of, or any suitable combination of, the components and elements of one or more embodiments described above. Furthermore, this disclosure is not limited to the order or number of operations of method 300 shown in FIG. 3 and may be changed to any desired order or number of operations as recognized by one of ordinary skill in the art. For example, in some embodiments, the order may vary, or method 300 may include fewer or additional operations.
参照图2和图3,方法300可开始,并且在块305,转换层包(TLP)可从可扩展存储器装置被接收。例如,可扩展存储器装置118可在用于目标页的TLP的报头中生成错误位(例如,2位错误),并且可将TLP发送到访问目标页的主机装置102(例如,根复合体202)。Referring to Figures 2 and 3, method 300 may begin, and at block 305, a translation layer packet (TLP) may be received from an expandable memory device. For example, scalable memory device 118 may generate an error bit (eg, a 2-bit error) in the header of the TLP for the target page and may send the TLP to host device 102 (eg, root complex 202 ) accessing the target page. .
在块310,TLP中的错误位可被检测,并且在块315,中断可响应于检测到错误位而被生成。例如,在一些实施例中,OS内核210可从根复合体202接收TLP,并且可检测TLP中的错误位。响应于检测到错误位,OS内核210可生成中断,并且可启动在可扩展存储器装置118的装置驱动器214中注册的AER处理器。At block 310, erroneous bits in the TLP may be detected, and at block 315, an interrupt may be generated in response to detecting the erroneous bit. For example, in some embodiments, OS kernel 210 may receive a TLP from root complex 202 and may detect erroneous bits in the TLP. In response to detecting the error bit, the OS kernel 210 may generate an interrupt and may start the AER processor registered in the device driver 214 of the expandable memory device 118 .
在块320,故障页信息可被持久地存储在故障页日志FPL中。例如,作为可扩展存储器装置118的AER处理器的中断例程的一部分,AER处理器可将可扩展存储器装置118的故障页的故障页信息(例如,装置序列号、装置类型、装置物理地址等)存储在FPL 222中,并且可启动FPL守护进程216。At block 320, the fault page information may be persistently stored in the fault page log FPL. For example, as part of the interrupt routine of the AER processor of expandable memory device 118, the AER processor may transfer fault page information (e.g., device serial number, device type, device physical address, etc.) ) is stored in the FPL 222 and the FPL daemon 216 can be started.
在块325,故障页可根据FPL而被脱机,并且方法300可结束。例如,FPL守护进程216可读取FPL 222,并且可根据存储在FPL 222中的可扩展存储器装置118的物理装置信息使可扩展存储器装置118的故障页脱机。响应于故障页的脱机,访问故障页的任何进程或应用可被终止,并且方法300可结束。At block 325, the faulty page may be taken offline in accordance with the FPL, and the method 300 may end. For example, FPL daemon 216 may read FPL 222 and may take fault pages of expandable memory device 118 offline based on the physical device information of expandable memory device 118 stored in FPL 222 . In response to taking the faulty page offline, any processes or applications accessing the faulty page may be terminated, and method 300 may end.
图4是根据本公开的一个或多个实施例的在系统重启之后使可扩展存储器装置的故障页脱机的方法的流程图。4 is a flowchart of a method of taking fault pages of an expandable memory device offline after a system restart, in accordance with one or more embodiments of the present disclosure.
例如,方法400可由在图2中示出的主机装置102的处理器206执行。然而,本公开不限于此,并且在方法400中示出的操作可由以上描述的一个或多个实施例的组件和元件中的任何合适的一个、或组件和元件的任何合适的组合来执行。此外,本公开不限于在图4中示出的方法400的操作的顺序或数量,并且可被改变为如本领域普通技术人员所认识到的操作的任何期望的顺序或数量。例如,在一些实施例中,顺序可变化,或者方法400可包括更少的或附加的操作。For example, method 400 may be performed by processor 206 of host device 102 shown in FIG. 2 . However, the present disclosure is not limited in this regard, and the operations illustrated in method 400 may be performed by any suitable one of, or any suitable combination of, the components and elements of one or more embodiments described above. Furthermore, this disclosure is not limited to the order or number of operations of method 400 shown in FIG. 4 and may be changed to any desired order or number of operations as recognized by one of ordinary skill in the art. For example, in some embodiments, the order may vary, or method 400 may include fewer or additional operations.
参照图2和图4,方法400可在系统被重启时开始,使得在块405,任何启动(boot)进程(例如,开始(startup)进程)可被完成,并且在块410,FPL守护进程可被启动。例如,系统的重启可由主机装置102的OS内核210执行。例如,如上所述,在一些实施例中,FPL守护进程216可在系统重启之后被启动以自动地使在FPL 222中识别的故障页脱机。例如,在一些实施例中,FPL守护进程216可以是在启动被完成之后(例如,经由在/etc/init.d/fpld中的注册)发起的后台进程,并且在块415,FPL守护进程216可(例如,从持久性存储设备218)读取FPL 222以确定在一个或多个可扩展存储器装置中的一个或多个故障页。应注意,因为可扩展存储器装置118可不包括系统关键页或存储器类型,所以FPL 222可不需要在存储器初始化阶段中被更新。Referring to Figures 2 and 4, method 400 may begin when the system is rebooted, such that at block 405, any boot processes (eg, startup processes) may be completed, and at block 410, the FPL daemon may is activated. For example, the reboot of the system may be performed by the OS kernel 210 of the host device 102 . For example, as mentioned above, in some embodiments, the FPL daemon 216 may be started after a system restart to automatically offline fault pages identified in the FPL 222 . For example, in some embodiments, FPL daemon 216 may be a background process initiated after startup is completed (eg, via registration in /etc/init.d/fpld), and at block 415 , FPL daemon 216 FPL 222 may be read (eg, from persistent storage device 218) to determine one or more faulty pages in one or more expandable memory devices. It should be noted that because the expandable memory device 118 may not include system key pages or memory types, the FPL 222 may not need to be updated during the memory initialization phase.
在块420,一个或多个故障页可根据FPL而被脱机,并且方法400可结束。例如,FPL守护进程216可在系统重启之后(但在任何到可扩展存储器池114的可扩展存储器装置118中的每个的在FPL 222中识别的故障页中的每个的存储器映射之前),自动地使可扩展存储器池114的可扩展存储器装置118中的每个的在FPL 222中识别的故障页中的每个脱机。这里,因为FPL 222可包括故障页的物理装置信息,所以即使系统存储器映射信息(例如,逻辑地址)在系统重启之后被改变,故障页也可被识别。因此,错误日志可被减少,并且用户体验可被改善。At block 420, the one or more faulty pages may be taken offline in accordance with the FPL, and the method 400 may end. For example, the FPL daemon 216 may, after a system restart (but before any memory mapping to each of the fault pages identified in the FPL 222 for each of the scalable memory devices 118 of the scalable memory pool 114), Each of the fault pages identified in the FPL 222 for each of the scalable memory devices 118 of the scalable memory pool 114 is automatically taken offline. Here, because the FPL 222 may include the physical device information of the faulty page, the faulty page may be identified even if the system memory mapping information (eg, logical address) is changed after a system restart. Therefore, error logs can be reduced, and user experience can be improved.
图5是根据本公开的一个或多个实施例的可扩展存储器系统的示意性框图。Figure 5 is a schematic block diagram of a scalable memory system in accordance with one or more embodiments of the present disclosure.
参照图5,可扩展存储器系统可包括各自连接到可扩展存储器池114的第一主机装置(即,主主机装置)102a和第二主机装置(即,访客主机装置)102b。例如,第一主机装置102a可经由第二存储器接口116连接到可扩展存储器池114。第一主机装置102a可与以上描述的主机装置102相同或基本相同,并且因此,其冗余描述可不被重复。类似地,可扩展存储器池114和第二存储器接口116可与以上描述的那些相同或基本相同,并且因此,其冗余描述可不被重复。Referring to FIG. 5 , the scalable memory system may include a first host device (ie, host host device) 102a and a second host device (ie, guest host device) 102b each connected to a scalable memory pool 114 . For example, first host device 102a may be connected to scalable memory pool 114 via second memory interface 116 . The first host device 102a may be the same or substantially the same as the host device 102 described above, and therefore, redundant descriptions thereof may not be repeated. Similarly, the scalable memory pool 114 and the second memory interface 116 may be the same or substantially the same as those described above, and therefore, redundant descriptions thereof may not be repeated.
第二主机装置102b可具有与以上描述的主机装置102的配置类似的配置。例如,第二主机装置102b可包括主机操作系统(OS)/内核104、主机处理器106、经由第一存储器接口112连接的主机存储器108、以及经由存储接口连接的存储装置110,并且因此,其冗余描述可不被重复。在一些实施例中,可扩展存储器池114可以是关于第二主机装置102b的网络附接的可扩展存储器池。因此,第二主机装置102b可经由网络接口(例如,网络接口控制器或网络接口卡(NIC))502通过合适的通信网络(例如,因特网、广域网、局域网、蜂窝网络等)连接到可扩展存储器池114。The second host device 102b may have a configuration similar to that of the host device 102 described above. For example, the second host device 102b may include a host operating system (OS)/kernel 104, a host processor 106, a host memory 108 connected via a first memory interface 112, and a storage device 110 connected via a storage interface, and thus, it Redundant descriptions may not be repeated. In some embodiments, the scalable memory pool 114 may be a network-attached scalable memory pool with respect to the second host device 102b. Accordingly, the second host device 102b may be connected to the expandable memory via a network interface (eg, a network interface controller or network interface card (NIC)) 502 through a suitable communications network (eg, the Internet, a wide area network, a local area network, a cellular network, etc.) Pool 114.
如以下参照图6更详细描述的,在一些实施例中,在访问可扩展存储器池114的可扩展存储器装置118a、118b和118c之前,第二主机装置102b的FPL守护进程216可与第一主机装置102a通信以从第一主机装置102a复制FPL 222,并且可在访问可扩展存储器池114之前使用FPL 222使可扩展存储器装置118a、118b和118c中的每个的故障页脱机。因此,第二主机装置102b的系统存储器映射可排除FPL 222中的故障页,并且因此,错误日志可被减少并且用户体验可被改善。As described in greater detail below with reference to FIG. 6, in some embodiments, before accessing scalable memory devices 118a, 118b, and 118c of scalable memory pool 114, FPL daemon 216 of second host device 102b may communicate with the first host. Device 102a communicates to copy FPL 222 from first host device 102a and may use FPL 222 to offline fault pages for each of expandable memory devices 118a, 118b, and 118c before accessing expandable memory pool 114. Accordingly, the system memory map of the second host device 102b may exclude faulty pages in the FPL 222, and thus, error logs may be reduced and the user experience may be improved.
图6是根据本公开的一个或多个实施例的共享可扩展存储器装置的故障页信息的方法的流程图。6 is a flowchart of a method of sharing fault page information of an expandable memory device according to one or more embodiments of the present disclosure.
例如,方法600可由在图5中示出的第二主机装置102b的处理电路204(例如,包括处理器(即,访客主机处理器)206和存储由处理器206执行的指令的存储器208)执行,处理电路204可与以上参照图2描述的相同或基本相同,并且因此,其冗余描述可不被重复。然而,本公开不限于此,并且在方法600中示出的操作可由以上描述的一个或多个实施例的组件和元件中的任何合适的一个、或组件和元件的任何合适的组合来执行。此外,本公开不限于在图6中示出的方法600的操作的顺序或数量,并且可被改变为如本领域普通技术人员所认识到的操作的任何期望的顺序或数量。例如,在一些实施例中,顺序可变化,或者方法600可包括更少的或附加的操作。For example, method 600 may be performed by processing circuitry 204 of second host device 102b shown in FIG. 5 (e.g., including a processor (ie, guest host processor) 206 and a memory 208 that stores instructions for execution by processor 206) , the processing circuit 204 may be the same or substantially the same as described above with reference to FIG. 2, and therefore, redundant description thereof may not be repeated. However, the present disclosure is not limited thereto, and the operations illustrated in method 600 may be performed by any suitable one, or any suitable combination of components and elements of one or more embodiments described above. Furthermore, this disclosure is not limited to the order or number of operations of method 600 shown in FIG. 6 and may be changed to any desired order or number of operations as recognized by one of ordinary skill in the art. For example, in some embodiments, the order may vary, or method 600 may include fewer or additional operations.
参照图5和图6,方法600可开始,并且在块605,FPL守护进程可被启动。例如,在一些实施例中,第二主机装置102b的FPL守护进程可在访问可扩展存储器池114之前被启动。这里,因为第一主机装置102a的系统映射(例如,逻辑映射)可与第二主机装置102b的系统映射不同,所以第二主机装置102b可启动其FPL守护进程216以复制第一主机装置102a的FPL 222。因此,在块610,可向主主机(main host)(例如,第一主机装置102a)请求故障页信息,并且在块615,故障页信息可从主主机被接收。例如,第二主机装置102b的FPL守护进程216可将对存储在第一主机装置102a的FPL 222中的故障页信息的日志请求发送到第一主机装置102a,并且第一主机装置102a可响应于日志请求将存储在第一主机装置102a的FPL222中的故障页信息(或FPL 222)发送到第二主机装置102b。Referring to Figures 5 and 6, method 600 may begin, and at block 605, the FPL daemon may be started. For example, in some embodiments, the FPL daemon of the second host device 102b may be started before accessing the scalable memory pool 114. Here, because the system map (eg, logical map) of the first host device 102a may be different from the system map of the second host device 102b, the second host device 102b may start its FPL daemon 216 to copy the first host device 102a's system map. FPL 222. Accordingly, at block 610, fault page information may be requested from a main host (eg, first host device 102a), and at block 615, fault page information may be received from the main host. For example, the FPL daemon 216 of the second host device 102b may send a log request for fault page information stored in the FPL 222 of the first host device 102a to the first host device 102a, and the first host device 102a may respond The log request sends the fault page information (or FPL 222) stored in the FPL 222 of the first host device 102a to the second host device 102b.
在块620,FPL可基于接收的故障页信息而被更新,并且在块625,一个或多个故障页可根据FPL而被脱机。例如,第二主机装置102b可基于接收的故障页信息来更新其FPL222,并且可基于更新的FPL 222来使可扩展存储器池114的可扩展存储器装置118a、118b和118c中的每个的一个或多个故障页脱机。这里,因为FPL 222可至少包括可扩展存储器装置118的故障页的物理装置信息,所以即使第一主机装置102a和第二主机装置102b的系统映射(例如,逻辑映射)彼此不同,第二主机装置102b(例如,FPL守护进程222)也可使故障页脱机。At block 620, the FPL may be updated based on the received fault page information, and at block 625, one or more fault pages may be taken offline based on the FPL. For example, the second host device 102b may update its FPL 222 based on the received fault page information, and may cause one of each of the scalable memory devices 118a, 118b, and 118c of the scalable memory pool 114 based on the updated FPL 222 or Multiple failed pages are offline. Here, because the FPL 222 may include at least the physical device information of the fault page of the expandable memory device 118, even if the system mapping (eg, logical mapping) of the first host device 102a and the second host device 102b are different from each other, the second host device 102b 102b (eg, FPL daemon 222) may also take the fault page offline.
因此,在块630,系统映射可通过排除可扩展存储器池的脱机页而被更新,并且方法600可结束。例如,第二主机装置102b可在访问可扩展存储器池114之前基于脱机页来更新(或者可存储器映射)其系统映射,使得可扩展存储器池114的故障页可不被第二主机装置102b的一个或多个应用或进程访问。因此,错误日志可被减少,并且用户体验可被改善。Accordingly, at block 630, the system map may be updated by excluding offline pages for the scalable memory pool, and the method 600 may end. For example, the second host device 102b may update (or may memory map) its system map based on the offline page before accessing the expandable memory pool 114 so that the faulty page of the expandable memory pool 114 may not be used by one of the second host device 102b Or accessed by multiple applications or processes. Therefore, error logs can be reduced, and user experience can be improved.
图7是根据本公开的一个或多个实施例的可扩展存储器系统的示意性框图。Figure 7 is a schematic block diagram of a scalable memory system in accordance with one or more embodiments of the present disclosure.
参照图7,可扩展存储器系统可包括各自连接到可扩展存储器池114的第一主机装置102a、第二主机装置102b、第三主机装置102c等。例如,第一主机装置102a可经由第二存储器接口116连接到可扩展存储器池114。第一主机装置102a可与以上描述的主机装置102相同或基本相同,并且因此,其冗余描述可不被重复。类似地,可扩展存储器池114和第二存储器接口116可与以上描述的那些相同或基本相同,并且因此,其冗余描述可不被重复。Referring to Figure 7, the scalable memory system may include a first host device 102a, a second host device 102b, a third host device 102c, etc., each connected to the scalable memory pool 114. For example, first host device 102a may be connected to scalable memory pool 114 via second memory interface 116 . The first host device 102a may be the same or substantially the same as the host device 102 described above, and therefore, redundant descriptions thereof may not be repeated. Similarly, the scalable memory pool 114 and the second memory interface 116 may be the same or substantially the same as those described above, and therefore, redundant descriptions thereof may not be repeated.
第二主机装置102b和第三主机装置102c可各自具有与以上描述的主机装置102的配置类似的配置。例如,在一些实施例中,与主机装置102一样,第二主机装置102b和第三主机装置102c可各自包括主机操作系统(OS)/内核104、主机处理器106、经由第一存储器接口112连接的主机存储器108、以及经由存储接口连接的存储装置110,并且因此,其冗余描述可不被重复。在一些实施例中,可扩展存储器池114可以是关于第二主机装置102b和第三主机装置102c的网络附接的可扩展存储器池。因此,第二主机装置102b和第三主机装置102c可各自经由网络接口(例如,网络接口控制器或网络接口卡(NIC))通过合适的通信网络(例如,因特网、广域网、局域网、蜂窝网络等)连接到可扩展存储器池114。The second host device 102b and the third host device 102c may each have a configuration similar to that of the host device 102 described above. For example, in some embodiments, like host device 102 , second host device 102 b and third host device 102 c may each include a host operating system (OS)/kernel 104 , a host processor 106 , connected via first memory interface 112 The host memory 108, and the storage device 110 connected via the storage interface, and therefore, redundant descriptions thereof may not be repeated. In some embodiments, the scalable memory pool 114 may be a network-attached scalable memory pool with respect to the second host device 102b and the third host device 102c. Accordingly, the second host device 102b and the third host device 102c may each communicate via a suitable communications network (eg, the Internet, a wide area network, a local area network, a cellular network, etc.) via a network interface (eg, a network interface controller or a network interface card (NIC)). ) is connected to the scalable memory pool 114.
如图7中所示,第二主机装置102b可接收由可扩展存储器池114之中的第三可扩展存储器装置118c生成的错误位(例如,同一高速缓存行上的2位错误)UE。在此情况下,由于其他主机装置(例如,第一主机装置102a和第三主机装置102c)可不被映射到(或者可不访问)第三可扩展存储器装置118c的目标页,因此其他主机装置可不知道在第三可扩展存储器装置118c的目标页中发生的错误。此外,因为第一主机装置102a和第三主机装置102c的系统映射(例如,逻辑映射)可与第二主机装置102b的系统映射不同,所以第二主机装置102b可将更新的FPL发送到第一主机装置102a和第三主机装置102c中的至少一个。As shown in Figure 7, the second host device 102b may receive an erroneous bit (eg, a 2-bit error on the same cache line) UE generated by the third scalable memory device 118c in the scalable memory pool 114. In this case, the other host devices (eg, first host device 102a and third host device 102c) may not be aware of the target page because they may not be mapped to (or may not have access to) the target page of third expandable memory device 118c. An error occurred in the target page of the third expandable memory device 118c. Furthermore, because the system mapping (eg, logical mapping) of the first host device 102a and the third host device 102c may be different from the system mapping of the second host device 102b, the second host device 102b may send the updated FPL to the first host device 102b. At least one of the host device 102a and the third host device 102c.
例如,如以下参照图8更详细描述的,在一些实施例中,第二主机装置102b(例如,其上注册的与第三可扩展存储器装置118c对应的AER处理器)可响应于错误位而更新其FPL222,并且可启动其FPL守护进程216以使故障页脱机。第二主机装置102b的FPL守护进程216可与第一主机装置102a通信以将更新的FPL 222发送到第一主机装置102a。第一主机装置102a可根据从第二主机装置102b接收的更新来更新其FPL 222,并且可将更新广播到向第一主机装置102a注册以访问可扩展存储器池114的其他主机装置(例如,第三主机装置102c等)。For example, as described in greater detail below with reference to FIG. 8, in some embodiments, the second host device 102b (eg, the AER processor registered thereon corresponding to the third expandable memory device 118c) may respond to the error bit. Updates its FPL 222 and can start its FPL daemon 216 to take the faulted page offline. The FPL daemon 216 of the second host device 102b may communicate with the first host device 102a to send the updated FPL 222 to the first host device 102a. The first host device 102a may update its FPL 222 based on updates received from the second host device 102b and may broadcast the updates to other host devices registered with the first host device 102a to access the scalable memory pool 114 (e.g., Three host devices 102c, etc.).
在另一实施例中,如果第二主机装置102b正在与其他主机装置(例如,第三主机装置102c等)通信,则第二主机装置102b可直接将更新广播到其他主机装置(例如,第一主机装置102a和第三主机装置102c),而不是:首先将更新发送到第一主机装置102a并且第一主机装置102a将更新广播到其他剩余的主机装置(例如,第三主机装置102c等)。然而,根据可扩展存储器系统的实施方式和主机装置之间的通信配置,其他合适的修改可以是可行的。In another embodiment, if the second host device 102b is communicating with other host devices (eg, the third host device 102c, etc.), the second host device 102b may directly broadcast the updates to the other host devices (eg, the first host device 102c, etc.) host device 102a and third host device 102c), instead of first sending the update to first host device 102a and first host device 102a broadcasting the update to the other remaining host devices (eg, third host device 102c, etc.). However, other suitable modifications may be possible depending on the implementation of the scalable memory system and the communication configuration between the host devices.
图8是根据本公开的一个或多个实施例的更新可扩展存储器装置的故障页信息的方法的流程图。8 is a flowchart of a method of updating fault page information of an expandable memory device according to one or more embodiments of the present disclosure.
例如,方法800可由在图7中示出的第一主机装置102a的处理电路204(例如,包括处理器206和存储由处理器206执行的指令的存储器208)执行,处理电路204可与以上参照图2描述的主机装置102的处理电路204相同或基本相同,并且因此,其冗余描述可不被重复。然而,本公开不限于此,并且在方法800中示出的操作可由以上描述的一个或多个实施例组件和元件中的任何合适的一个、或组件和元件的任何合适的组合来执行。此外,本公开不限于在图8中示出的方法800的操作的顺序或数量,并且可被改变为如本领域普通技术人员所认识到的操作的任何期望的顺序或数量。例如,在一些实施例中,顺序可变化,或者方法800可包括更少的或附加的操作。For example, method 800 may be performed by processing circuitry 204 of first host device 102a shown in FIG. 7 (eg, including processor 206 and memory 208 storing instructions for execution by processor 206), which may be as described above. The processing circuitry 204 of the host device 102 depicted in FIG. 2 is the same or substantially the same, and therefore, redundant descriptions thereof may not be repeated. However, the present disclosure is not limited in this regard, and the operations illustrated in method 800 may be performed by any suitable one, or any suitable combination of components and elements of one or more embodiment components and elements described above. Furthermore, this disclosure is not limited to the order or number of operations of method 800 shown in FIG. 8 and may be changed to any desired order or number of operations as recognized by one of ordinary skill in the art. For example, in some embodiments, the order may vary, or method 800 may include fewer or additional operations.
参照图7和图8,方法800可开始,并且在块805,对FPL的更新可从第二主机装置被接收。例如,在一些实施例中,如图7中所示,第二主机装置102b可从第三可扩展存储器装置118c的目标页接收错误位UE。第一主机装置102a和第三主机装置102c可不从第三可扩展存储器装置118c的目标页接收错误位UE。例如,第一主机装置102a和第三主机装置102c可不被映射到和/或可不访问第三可扩展存储器装置118c的目标页。响应于从第三可扩展存储器装置118c的目标页接收到错误位UE,第二主机装置102b可更新其FPL 222并且可根据更新的FPL 222使目标页脱机。第二主机装置102b(例如,其FPL守护进程216)可通过合适的通信接口将更新发送到第一主机装置102a。Referring to Figures 7 and 8, method 800 may begin, and at block 805, an update to the FPL may be received from the second host device. For example, in some embodiments, as shown in Figure 7, the second host device 102b may receive an error bit UE from the target page of the third expandable memory device 118c. The first host device 102a and the third host device 102c may not receive the error bit UE from the target page of the third expandable memory device 118c. For example, first host device 102a and third host device 102c may not be mapped to and/or may not access the target page of third expandable memory device 118c. In response to receiving the error bit UE from the target page of the third scalable memory device 118c, the second host device 102b may update its FPL 222 and may take the target page offline based on the updated FPL 222. The second host device 102b (eg, its FPL daemon 216) may send the update to the first host device 102a through a suitable communication interface.
在块810,第一主机装置的FPL可基于所述更新而被更新。例如,第一主机装置102a的处理器206(例如,FPL守护进程216)可基于从第二主机装置102b接收的更新来更新其FPL222。在块815,一个或多个故障页可根据更新的FPL而被脱机。例如,因为第一主机装置102a的系统映射(例如,逻辑映射)可与第二主机装置102b的系统映射不同,所以从更新的FPL(例如,基于其物理装置信息)识别的一个或多个故障页可基于更新的FPL在第一主机装置102a的系统映射中被脱机。At block 810, the FPL of the first host device may be updated based on the update. For example, the processor 206 (eg, FPL daemon 216) of the first host device 102a may update its FPL 222 based on updates received from the second host device 102b. At block 815, one or more faulty pages may be taken offline based on the updated FPL. For example, because the system map (eg, logical map) of the first host device 102a may be different from the system map of the second host device 102b, one or more faults identified from the updated FPL (eg, based on its physical device information) The page may be taken offline in the system map of the first host device 102a based on the updated FPL.
在块820,更新的FPL可被广播到其他注册的守护进程,并且方法800可结束。例如,更新的FPL可通过第一主机装置102a的FPL守护进程216被广播。例如,因为其他主机装置(例如,第三主机装置102c等)的系统映射(例如,逻辑映射)可与第一主机装置102a和第二主机装置102b的系统映射不同,所以一个或多个故障页的物理装置信息可被广播,使得其他主机装置的系统映射可基于更新的FPL被更新,并且一个或多个故障页可被脱机。因此,错误日志可被减少,并且用户体验可被改善。At block 820, the updated FPL may be broadcast to other registered daemons, and the method 800 may end. For example, the updated FPL may be broadcast by the FPL daemon 216 of the first host device 102a. For example, because the system mapping (eg, logical mapping) of other host devices (eg, third host device 102c, etc.) may be different from the system mappings of first host device 102a and second host device 102b, one or more faulty pages The physical device information may be broadcast so that the system maps of other host devices may be updated based on the updated FPL, and one or more faulty pages may be taken offline. Therefore, error logs can be reduced, and user experience can be improved.
根据以上描述的本公开的一个或多个实施例,可扩展存储器池的可扩展存储器装置中的每个的故障页信息可被生成并被持久地存储在故障页列表中,并且用于根据需要或期望自动地使故障页脱机。根据以上描述的本公开的一个或多个实施例,故障页信息可至少包括故障页的物理装置信息(例如,装置序列号、装置类型、装置物理地址等),使得即使当故障页的系统映射(例如,逻辑地址)被改变或不同时,故障页也可被脱机。因此,在延长可扩展存储器池中的可扩展存储器装置的可用寿命的同时,错误日志可被减少。According to one or more embodiments of the present disclosure described above, fault page information for each of the scalable memory devices of the scalable memory pool may be generated and persistently stored in a fault page list, and used as needed Or expect faulty pages to be taken offline automatically. According to one or more embodiments of the present disclosure described above, the fault page information may include at least physical device information of the fault page (eg, device serial number, device type, device physical address, etc.), such that even when the system mapping of the fault page Faulty pages can also be taken offline when the address (eg, logical address) is changed or different. Therefore, error logs can be reduced while extending the usable life of the scalable memory devices in the scalable memory pool.
当特定实施例可被不同地实现时,特定的处理顺序可与描述的顺序不同。例如,连续描述的两个处理可同时或基本上同时被执行,或者可以以与描述的顺序相反的顺序被执行。While specific embodiments may be implemented differently, the specific order of processing may differ from that described. For example, two processes described in succession may be performed at the same time or substantially simultaneously, or may be performed in the reverse order of the order described.
将理解,尽管在此可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应被这些术语限制。这些术语用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分进行区分。因此,在不脱离本公开的精神和范围的情况下,以上描述的第一元件、第一组件、第一区域、第一层或第一部分能够被称为第二元件、第二组件、第二区域、第二层或第二部分。It will be understood that, although the terms "first," "second," "third," etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or /or parts shall not be limited by these terms. These terms are used to distinguish one element, component, region, layer or section from another element, component, region, layer or section. Thus, a first element, component, region, layer or section described above could be termed a second element, component, region or section without departing from the spirit and scope of the present disclosure. area, second level or second part.
将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”或“结合到”另一元件或层时,该元件或层可直接在该另一元件或层上、直接连接到或直接结合到该另一元件或层,或者可存在一个或多个中间元件或层。类似地,当层、区域或元件被称为“电连接”到另一层、区域或元件时,该层、区域或元件可直接电连接到该另一层、区域或元件,和/或可经由介于其间的一个或多个中间层、区域或元件与该另一层、区域或元件间接电连接。另外,还将理解,当元件或层被称为“在”两个元件或层“之间”时,该元件或层可以是两个元件或层之间的唯一元件或层,或者也可存在一个或多个中间元件或层。It will be understood that when an element or layer is referred to as being "on," "connected to" or "coupled to" another element or layer, it can be directly on the other element or layer. layer, directly connected to, or directly coupled to another element or layer, or one or more intervening elements or layers may be present. Similarly, when a layer, region, or element is referred to as being "electrically connected" to another layer, region, or element, that layer, region, or element can be directly electrically connected to the other layer, region, or element, and/or can be electrically connected to the other layer, region, or element. An indirect electrical connection is made to another layer, region or element via one or more intervening layers, regions or elements. In addition, it will also be understood that when an element or layer is referred to as being "between" two elements or layers, that element or layer can be the only element or layer between the two elements or layers, or it may also be present. One or more intermediate elements or layers.
在此使用的术语出于描述特定实施例的目的,并不意在限制本公开。如在此所用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,术语“包括”、“包含”和“具有”在本说明书中使用时,说明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此所用的,术语“和/或”包括相关所列项中的一个或多个的任何和全部组合。例如,表述“A和/或B”表示A,B,或者A和B。诸如“……中的至少一个”的表述在位于一列元素之后时,修饰整列元素,而不修饰列中的单个元素。例如,表述“a、b或c中的至少一个”、“a、b和c中的至少一个”、以及“从由a、b和c组成的组中选择的至少一个”指示:仅a、仅b、仅c、a和b二者、a和c二者、b和c二者、全部的a、b和c或者它们的变型。The terminology used herein is for the purpose of describing particular embodiments and is not intended to limit the disclosure. As used herein, the singular forms are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the terms "comprising", "comprising" and "having", when used in this specification, indicate the presence of the recited features, integers, steps, operations, elements and/or components but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof. As used herein, the term "and/or" includes any and all combinations of one or more of the associated listed items. For example, the expression "A and/or B" means A, B, or A and B. Expressions such as "at least one of," when preceding a list of elements, modify the entire list of elements but do not modify the individual elements in the list. For example, the expressions "at least one of a, b, or c", "at least one of a, b, and c", and "at least one selected from the group consisting of a, b, and c" indicate: only a, Only b, only c, both a and b, both a and c, both b and c, all a, b and c or variations thereof.
如在此所用的,术语“基本上”、“约”和类似术语用作近似术语而不是程度术语,并且意在解释本领域普通技术人员将认识到的测量值或计算值的固有偏差。此外,在描述本公开的实施例时“可”的使用表示“本公开的一个或多个实施例”。如在此所用的,术语“使用”、“正在使用”和“被使用”可分别被认为与术语“利用”、“正在利用”和“被利用”同义。此外,术语“示例性”意在表示示例或说明。As used herein, the terms "substantially," "about," and similar terms are used as terms of approximation rather than terms of degree, and are intended to account for inherent deviations in measured or calculated values that one of ordinary skill in the art will recognize. Additionally, the use of "may" when describing embodiments of the disclosure means "one or more embodiments of the disclosure." As used herein, the terms "use," "being used," and "being used" may be considered synonymous with the terms "utilizing," "utilizing," and "being utilized," respectively. Furthermore, the term "exemplary" is intended to mean an example or illustration.
根据在此描述的本公开的实施例的电子装置或电气装置和/或任何其他相关装置或组件可利用任何合适的硬件、固件(例如,专用集成电路)、软件、或者软件、固件和硬件的组合来实现。例如,这些装置的各种组件可形成在一个集成电路(IC)芯片上或分开的IC芯片上。此外,这些装置的各种组件可被实现在柔性印刷电路膜、载带封装件(TCP)、印刷电路板(PCB)上,或者形成在一个基底上。此外,这些装置的各种组件可以是在一个或多个计算装置中的一个或多个处理器上运行的执行计算机程序指令并与其他系统组件交互以执行在此描述的各种功能的进程或线程。计算机程序指令被存储在存储器中,存储器可使用标准存储器装置(诸如例如,随机存取存储器(RAM))被实现在计算装置中。计算机程序指令还可被存储在其他非暂时性计算机可读介质(诸如例如,CD-ROM、闪存驱动器等)中。此外,本领域技术人员应认识到:在不脱离本公开的示例实施例的精神和范围的情况下,各种计算装置的功能可被组合或集成到单个计算装置中,或者特定计算装置的功能可被分布在一个或多个其他计算装置上。Electronic or electrical devices and/or any other related devices or components according to embodiments of the disclosure described herein may utilize any suitable hardware, firmware (eg, application specific integrated circuits), software, or a combination of software, firmware and hardware. combination to achieve. For example, the various components of these devices may be formed on one integrated circuit (IC) chip or on separate IC chips. Additionally, the various components of these devices may be implemented on a flexible printed circuit film, a tape carrier package (TCP), a printed circuit board (PCB), or formed on a substrate. Additionally, various components of these devices may be processes running on one or more processors in one or more computing devices that execute computer program instructions and interact with other system components to perform the various functions described herein, or thread. Computer program instructions are stored in memory, which may be implemented in a computing device using standard memory devices, such as, for example, random access memory (RAM). Computer program instructions may also be stored in other non-transitory computer-readable media (such as, for example, CD-ROMs, flash drives, etc.). Additionally, those skilled in the art will recognize that the functionality of various computing devices may be combined or integrated into a single computing device, or the functionality of a particular computing device, without departing from the spirit and scope of example embodiments of the present disclosure. Can be distributed across one or more other computing devices.
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此定义,否则术语(诸如,在通用字典中定义的术语)应被解释为具有与它们在相关领域的上下文和/或本说明书中的含义一致的含义,而不应以理想化或过于形式化的含义解释。Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will also be understood that, unless expressly so defined herein, terms (such as terms defined in a general dictionary) are to be construed to have a meaning consistent with their meaning in the context of the relevant art and/or in this specification, and It should not be interpreted in an idealized or overly formal sense.
尽管已经描述了一些实施例,但是本领域技术人员将容易理解,在不脱离本公开的精神和范围的情况下,在实施例中各种修改是可行的。将理解,除非另外描述,否则每个实施例内的特征或方面的描述通常应被认为可用于其他实施例中的其他类似特征或方面。因此,对本领域的普通技术人员将清楚的是,除非另有具体地指示,否则结合特定实施例描述的特征、特性和/或元件可被单独使用,或者与结合其他实施例描述的特征、特性和/或元件组合使用。因此,将理解,前述是各种示例实施例的说明,并且不应被解释为对在此公开的特定实施例的限制,并且对公开的实施例的各种修改以及其他示例实施例意在被包括在所附权利要求及其等同物中限定的本公开的精神和范围内。Although a few embodiments have been described, those skilled in the art will readily appreciate that various modifications are possible in the embodiments without departing from the spirit and scope of the disclosure. It will be understood that descriptions of features or aspects within each embodiment should generally be considered as available for other similar features or aspects in other embodiments, unless otherwise described. Accordingly, it will be apparent to one of ordinary skill in the art that, unless otherwise specifically indicated, features, characteristics and/or elements described in connection with a particular embodiment may be used alone or with features, characteristics and/or elements described in connection with other embodiments. and/or used in combination with components. It will be understood, therefore, that the foregoing is a description of various example embodiments and is not to be construed as limitations on the particular embodiments disclosed herein, and that various modifications to the disclosed embodiments as well as other example embodiments are intended to be It is intended to be included within the spirit and scope of the disclosure as defined in the appended claims and their equivalents.
Claims (20)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/343,410 | 2022-05-18 | ||
US17/845,679 | 2022-06-21 | ||
US17/845,679 US12019503B2 (en) | 2022-05-18 | 2022-06-21 | Systems and methods for expandable memory error handling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117093390A true CN117093390A (en) | 2023-11-21 |
Family
ID=88772445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310491026.XA Pending CN117093390A (en) | 2022-05-18 | 2023-05-04 | System for processing faulty page, method for processing faulty page, and host device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093390A (en) |
-
2023
- 2023-05-04 CN CN202310491026.XA patent/CN117093390A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314866B2 (en) | System and method for runtime firmware verification, recovery, and repair in an information handling system | |
US10789117B2 (en) | Data error detection in computing systems | |
WO2020177493A1 (en) | Memory error processing method and device | |
US10061534B2 (en) | Hardware based memory migration and resilvering | |
EP2048579B1 (en) | System and method for managing memory errors in an information handling system | |
US10229018B2 (en) | System and method for data restore flexibility on dual channel NVDIMMs | |
US10474384B2 (en) | System and method for providing a back door communication path between channels on dual-channel DIMMs | |
US11307785B2 (en) | System and method for determining available post-package repair resources | |
US12013946B2 (en) | Baseboard memory controller (BMC) reliability availability and serviceability (RAS) driver firmware update via basic input/output system (BIOS) update release | |
US9442814B2 (en) | Systems and methods for improved fault tolerance in RAID configurations | |
US11726879B2 (en) | Multiple block error correction in an information handling system | |
CN115394344A (en) | A method, device and storage medium for determining a memory fault repair method | |
US8312215B2 (en) | Method and system for resolving configuration conflicts in RAID systems | |
CN118737239A (en) | Method and system for repairing dynamic random access memory of a memory device | |
US11740969B2 (en) | Detecting and recovering a corrupted non-volatile random-access memory | |
US10831404B2 (en) | Method and system for facilitating high-capacity shared memory using DIMM from retired servers | |
EP4280064A1 (en) | Systems and methods for expandable memory error handling | |
US11593209B2 (en) | Targeted repair of hardware components in a computing device | |
CN112540869A (en) | Memory controller, memory device, and method of operating memory device | |
US11893275B2 (en) | DRAM-less SSD with recovery from HMB loss | |
CN117093390A (en) | System for processing faulty page, method for processing faulty page, and host device | |
US9128887B2 (en) | Using a buffer to replace failed memory cells in a memory component | |
US11809742B2 (en) | Recovery from HMB loss | |
CN116126221A (en) | Storage device configured to obtain data from an external device for debugging | |
US12158805B1 (en) | Correcting uncorrectable memory errors in Dual In-line Memory Modules (DIMMs) using erasure code |
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 |