CN114902186A - 非易失性存储器模块的错误报告 - Google Patents

非易失性存储器模块的错误报告 Download PDF

Info

Publication number
CN114902186A
CN114902186A CN202080090904.1A CN202080090904A CN114902186A CN 114902186 A CN114902186 A CN 114902186A CN 202080090904 A CN202080090904 A CN 202080090904A CN 114902186 A CN114902186 A CN 114902186A
Authority
CN
China
Prior art keywords
error
volatile
memory
module
reporting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080090904.1A
Other languages
English (en)
Inventor
詹姆斯·R·马格罗
凯达尔纳特·巴拉里斯南
维拉斯·斯里达兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN114902186A publication Critical patent/CN114902186A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Abstract

一种存储器控制器包括命令队列、存储器接口队列和非易失性错误报告电路。所述命令队列接收包括易失性读取、易失性写入、非易失性读取和非易失性写入在内的存储器访问命令,以及输出。所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及用于耦合到非易失性存储类存储器(SCM)模块的输出。所述非易失性错误报告电路识别与所述非易失性SCM模块相关联的错误条件,并将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块,所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。

Description

非易失性存储器模块的错误报告
背景技术
计算机系统通常将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。目前销售的大多数DRAM芯片都与联合电子装置工程委员会(JEDEC)颁布的各种双倍数据速率(DDR)DRAM标准兼容。DDR存储器控制器用于根据已发布的DDR标准管理各种存储器访问代理与DDR DRAM之间的接口。
具有持久性存储装置的非易失性双列直插式存储器模块(“NVDIMM-P”)是在一些应用中可用于代替标准DDR DIMM但包括持久性存储器的存储类存储器。然而,这些存储器包括不同于DDR错误条件的多种类型的错误条件。此外,与NVDIMM-P相关联的错误条件对使用存储器的操作系统和运行进程的影响不同于与标准DDR DIMM相关联的错误条件的影响。
附图说明
图1以框图形式示出了现有技术中已知的加速处理单元(APU)和存储器系统;
图2以框图形式示出了根据一些实施方案的适用于与图1类似的APU中的存储器控制器;
图3以框图形式示出了根据一些实施方案的数据处理系统;
图4以框图形式示出了根据一些实施方案的非易失性缓冲器;
图5是示出根据一些实施方案的计算机系统上的非易失性存储器使用情况的框图;以及
图6是根据一些实施方案的用于错误报告的过程的流程图。
在以下描述中,在不同附图中使用相同的附图标记来指示类似或相同的项目。除非另有说明,术语“被耦合”及其相关联的动词形式包括通过本领域已知的方法的直接连接和间接电气连接,并且除非另有说明,否则直接连接的任何描述意味着使用合适的间接电气连接形式的替代实施方案。
具体实施方案
一种存储器控制器包括命令队列、存储器接口队列和非易失性错误报告电路。所述命令队列具有用于接收包括易失性读取、易失性写入、非易失I生读取和非易失性写入在内的存储器访问命令的第一输入以及输出,并且具有多个条目。所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及用于耦合到非易失性存储类存储器(SCM)模块的输出。所述非易失性错误报告电路识别与所述非易失性DIMM相关联的错误条件,并将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块。所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。
一种方法包括接收包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入在内的多个存储器访问请求。所述方法将用于实现所述存储器访问请求的存储器访问命令置于存储器接口队列中,并将所述存储器访问命令从所述存储器接口队列传输到耦合到非易失性存储类存储器(SCM)模块的存储器通道。基于通过所述存储器通道接收的信息,识别了与所述存储器通道相关联的错误条件。将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块,所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。
一种数据处理系统包括:中央处理单元;数据结构,所述数据结构耦合到所述中央处理单元;以及存储器控制器,所述存储器控制器耦合到所述数据结构以用于完成通过所述数据结构作出的存储器访问请求。所述存储器控制器包括命令队列、存储器接口队列和非易失性错误报告电路。所述命令队列具有用于接收包括易失性读取、易失性写入、非易失性读取和非易失性写入在内的存储器访问命令的第一输入以及输出,并且具有多个条目。所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及用于耦合到非易失性存储类存储器(SCM)模块的输出。所述非易失性错误报告电路识别与所述非易失性SCM模块相关联的错误条件,并将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块,所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。
图1以框图形式示出了现有技术中已知的加速处理单元(APU)100和存储器系统130。APU 100是适合用作主机数据处理系统中的处理器的集成电路,并且通常包括中央处理单元(CPU)核心复合体110、图形核心120、一组显示引擎122、存储器管理集线器140、数据结构125、一组外围控制器160、一组外围总线控制器170和系统管理单元(SMU)180。
CPU核心复合体110包括CPU核心112和CPU核心114。在该示例中,CPU核心复合体110包括两个CPU核心,但在其他实施方案中,CPU核心复合体110可以包括任意数量的CPU核心。CPU核心112和114中的每一个都双向连接到系统管理网络(SMN)形成控制结构,并连接到数据结构125,并且能够向数据结构125提供存储器访问请求。CPU核心112和114中的每一个可以是单一核心,或者可以进一步是具有共享某些资源(诸如高速缓存)的两个或更多个单一核心的核心复合体。
图形核心120是高性能图形处理单元(GPU),其能够以高度集成和并行的方式执行诸如顶点处理、片段处理、着色、纹理混合等图形操作。图形核心120双向连接到SMN和数据结构125,并且能够向数据结构125提供存储器访问请求。在这方面,APU 100可以支持其中CPU核心复合体110和图形核心120共享同一存储器空间的统一存储器架构,或者其中CPU核心复合体110和图形核心120共享存储器空间的一部分的存储器架构,而图形核心120还使用CPU核心复合体110无法访问的私有图形存储器。
显示引擎122对由图形核心120生成的对象进行渲染和光栅化以在监视器上显示。图形核心120和显示引擎122双向连接到公共存储器管理集线器140,用于统一转换为存储器系统130中的适当地址,并且存储器管理集线器140双向连接到数据结构125,用于生成此类存储器访问并接收从存储器系统返回的读数据。
数据结构125包括用于在任何存储器访问代理与存储器管理集线器140之间路由存储器访问请求和存储器响应的交叉开关。它还包括由基本输入/输出系统(BIOS)定义的用于根据系统配置确定存储器访问的目的地的系统存储器映射,以及用于每个虚拟连接的缓冲器。
外围控制器160包括通用串行总线(USB)控制器162和串行高级技术附接(SATA)接口控制器164,它们中的每一个都双向连接到系统集线器166和SMN总线。这两个控制器仅仅是可以在APU 100中使用的外围控制器的示例。
外围总线控制器170包括系统控制器或“南桥”(SB)172和外围部件互连快速(PCIe)控制器174,它们中的每一个都双向连接到输入/输出(I/O)集线器176和SMN总线。I/O集线器176也双向连接到系统集线器166和数据结构125。因此,例如,CPU核心可以通过数据结构125通过I/O集线器176路由的访问来对USB控制器162、SATA接口控制器164、SB 172或PCIe控制器174中的寄存器进行编程。APU 100的软件和固件存储在系统数据驱动器或系统BIOS存储器(未显示)中,其可以是各种非易失性存储器类型中的任一种,诸如只读存储器(ROM)、闪存电可擦除可编程ROM(EEPROM)等。通常,通过PCIe总线访问BIOS存储器,并通过SATA接口访问系统数据驱动器。
SMU 180是本地控制器,其控制APU 100上资源的操作并同步资源之间的通信。SMU180管理APU 100上各种处理器的上电顺序,并经由复位、启用和其他信号控制多个片外装置。SMU 180包括一个或多个时钟源(未示出),诸如锁相环(PLL),以便为APU 100的部件中的每一个提供时钟信号。SMU 180还管理各种处理器和其他功能块的功率,并且可以从CPU核心112和114以及图形核心120接收测量的功耗值以确定适当的功率状态。
在该实施方案中,存储器管理集线器140及其相关联的物理接口(PHY)151和152与APU 100集成。存储器管理集线器140包括存储器通道141和142以及动力引擎149。存储器通道141包括主机接口145、存储器通道控制器143和物理接口147。主机接口145通过串行存在检测链路(SDP)将存储器通道控制器143双向连接到数据结构125。物理接口147将存储器通道控制器143双向连接到PHY 151,并符合DDR PHY接口(DFI)规范。存储器通道142包括主机接口146、存储器通道控制器144和物理接口148。主机接口146通过另一SDP将存储器通道控制器144双向连接到数据结构125。物理接口148将存储器通道控制器144双向连接到PHY152,并符合DFI规范。动力引擎149通过SMN总线双向连接到SMU 180,通过APB连接到PHY151和152,并且还双向连接到存储器通道控制器143和144。PHY 151具有到存储器通道131的双向连接。PHY 152具有到存储器通道133的双向连接。
存储器管理集线器140是具有两个存储器通道控制器的存储器控制器的实例化,并且使用共享动力引擎149以下文将进一步描述的方式控制存储器通道控制器143和存储器通道控制器144两者的操作。存储器通道141和142中的每一个都可以连接到最先进的DDR存储器,诸如DDR版本4(DDR4)、低功率DDR4(LPDDR4)、图形DDR版本5(gDDR5)和高带宽存储器(HBM),并且可以适应未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,它们还提供低功率模式,为诸如笔记本电脑等电池供电的应用节省电力,并且还提供内置的热监测。
存储器系统130包括存储器通道131和存储器通道133。存储器通道131包括连接到Dedra总线132的一组双列直插式存储器模块(DIMM),包括在该示例中对应于单独存储排的代表性DIMM 134、136和138。同样,存储器通道133包括连接到DDRx总线129的一组DIMM,包括代表性DIMM 135、137和139。
APU 100用作主机数据处理系统的中央处理单元(CPU),并提供在现代计算机系统中有用的各种总线和接口。这些接口包括两个双倍数据速率(DDRx)存储器通道、一个用于连接到PCIe链路的PCIe根复合体、一个用于连接到USB网络的USB控制器以及一个到SATA大容量存储装置的接口。
APU 100还实现了各种系统监测和省电功能。具体而言,一个系统监测功能是热监测。例如,如果APU 100变热,则SMU 180可以降低CPU核心112和114和/或图形核心120的频率和电压。如果APU 100变得太热,则可以完全关闭它。SMU 180还可以经由SMN总线从外部传感器接收热事件,并且SMU 180可以作为响应降低时钟频率和/或电源电压。
图2以框图形式示出了适用于与图1类似的APU中的存储器控制器200。存储器控制器200通常包括存储器通道控制器210和功率控制器250。存储器通道控制器210通常包括接口212、存储器接口队列214、命令队列220、地址生成器222、内容可寻址存储器(CAM)224、包括重放队列230的重放控制逻辑231、刷新逻辑块232、时序块234、页表236、仲裁器238、错误校正码(ECC)检查电路242、ECC生成块244、数据缓冲器246、非易失性(NV)缓冲器247和NV队列248。
接口212具有通过外部总线到数据结构125的第一双向连接,并且具有输出。在存储器控制器200中,该外部总线与由英国剑桥的ARM国际科技股份有限公司(ARM Holdings,PLC)指定的高级可扩展接口版本4(称为“AXI4”)兼容,但在其他实施方案中可以是其他类型的接口。接口212将存储器访问请求从称为FCLK(或MEMCLK)域的第一时钟域转换为存储器控制器200内部的称为UCLK域的第二时钟域。类似地,存储器接口队列214提供从UCLK域到与DFI接口相关联的DFICLK域的存储器访问。
地址生成器222对通过AXI4总线从数据结构125接收的存储器访问请求的地址进行解码。存储器访问请求包括以标准化格式表示的物理地址空间中的访问地址。地址生成器222将标准化地址转换为可用于寻址存储器系统130中的实际存储器装置以及高效地调度相关访问的格式。该格式包括将存储器访问请求与特定存储排、行地址、列地址、存储体地址和存储体组相关联的域标识符。在启动时,系统BIOS查询存储器系统130中的存储器装置以确定它们的大小和配置,并对与地址生成器222相关联的一组配置寄存器进行编程。地址生成器222使用存储在配置寄存器中的配置将标准化地址转换为适当的格式。地址生成器222解码存储器(包括NVDIMM-P存储器)的地址范围,并将指示存储器访问请求是否是对NVDIMM-P的请求的解码信号存储在命令队列220中。然后,仲裁器238可以相对于其他请求以适当的优先级对NVDIMM-P请求进行优先级排序。命令队列220是从APU 100中的存储器访问代理(诸如CPU核心112和114以及图形核心120)接收的存储器访问请求的队列。命令队列220存储由地址生成器222解码的地址字段以及允许仲裁器238高效地选择存储器访问的其他地址信息,包括访问类型和服务质量(QoS)标识符。CAM 224包括强制执行排序规则的信息,诸如写后写(WAW)和写后读(RAW)排序规则。
错误校正码(ECC)生成块244确定要发送到NVDIMM-P的写入数据的ECC。ECC检查电路242对照传入ECC检查接收到的ECC。因此,如本文所述的存储器控制器和数据处理系统扩展了数据完整性检查的覆盖范围,以通过利用存储在NVDIMM-P装置中并且在稍后读取对应数据时可用于比较的有限数量的用户位来提供端到端检查。
重放队列230是临时队列,用于存储由仲裁器238挑选的等待响应的选定存储器访问,诸如地址和命令奇偶校验响应。重放控制逻辑231访问ECC检查电路242以确定所返回的ECC是正确的还是指示错误。重放控制逻辑231启动并控制重放序列,其中在这些周期之一的奇偶校验或ECC错误的情况下对访问进行重放。重放的命令被置于存储器接口队列214中。
刷新逻辑232包括用于各种断电、刷新和终止电阻(ZQ)校准周期的状态机,这些状态机与从存储器访问代理接收的正常读取和写入存储器访问请求分开生成。例如,如果存储排处于预充电断电状态,则必须周期性地唤醒它以运行刷新周期。刷新逻辑232周期性地生成刷新命令,以防止由于DRAM芯片中的存储器单元的存储电容器的电荷泄漏引起的数据错误。此外,刷新逻辑232周期性地校准ZQ以防止由于系统中的热变化而导致片上终端电阻失配。
仲裁器238双向连接到命令队列220并且是存储器通道控制器210的核心。它通过智能调度访问来提高效率,从而提高存储器总线的使用率。仲裁器238使用时序块234通过根据DRAM时序参数确定命令队列220中的某些访问是否有资格发布来强制执行适当的时序关系。例如,每个DRAM在激活命令之间都有一个指定的最小时间,称为“tRC”。时序块234维护一组计数器,这些计数器基于这个和JEDEC规范中规定的其他时序参数来确定资格,并双向连接到重放队列230。页表236为仲裁器238维护关于存储器通道的每个存储体和存储排中的活动页的状态信息,并双向连接到重放队列230。
NV缓冲器247将NV读取命令存储在NV队列248中,既用于重放序列,也用于管理NV读取响应。NV缓冲器247双向连接到存储器接口队列214,用于处理RD_RDY和“发送(SEND)”命令,如下文进一步描述。
响应于从接口212接收的写入存储器访问请求,ECC生成块244根据写入数据计算ECC。数据缓冲器246存储用于接收到的存储器访问请求的写入数据和ECC。当仲裁器238挑选对应写入访问以分派到存储器通道时,它将组合的写入数据/ECC输出到存储器接口队列214。
电源控制器250通常包括到高级可扩展接口版本1(AXI)的接口252、高级外围总线(APB)接口254和电源引擎260。接口252具有到SMN的第一双向连接,其包括用于接收标记为图2中单独示出的“EVENT_n”的事件信号的输入,以及输出。APB接口254具有连接到接口252的输出的输入,以及用于通过APB连接到PHY的输出。动力引擎260具有连接到接口252的输出的输入,以及连接到存储器接口队列214的输入的输出。动力引擎260包括一组配置寄存器262、微控制器(μC)264、自刷新控制器(SLFREF/PE)266和可靠读取/写入时序引擎(RRW/TE)268。配置寄存器262是通过AXI总线编程的,并且存储配置信息以控制存储器控制器200中各种块的操作。因此,配置寄存器262具有连接到未在图2中详细示出的这些块的输出。自刷新控制器266是除了由刷新逻辑232自动生成刷新之外还允许手动生成刷新的引擎。可靠读取/写入时序引擎268为存储器或I/O装置提供连续的存储器访问流,用于诸如DDR接口最大读延迟(MRL)训练和环回测试之类的目的。
存储器通道控制器210包括允许它挑选存储器访问以分派到相关联存储器通道的电路。为了做出期望的仲裁决定,地址生成器222将地址信息解码为预解码信息,包括存储器系统中的存储排、行地址、列地址、存储体地址和存储体组,并且命令队列220存储预解码信息。配置寄存器262存储配置信息以确定地址生成器222如何解码接收到的地址信息。仲裁器238使用解码的地址信息、时序块234指示的时序资格信息和页表236指示的活动页信息来高效地调度存储器访问,同时遵守诸如服务质量(QoS)要求等其他标准。例如,仲裁器238实现对打开页的访问的偏好以避免改变存储器页所需的预充电和激活命令的开销,并通过将它们与对另一存储体的读取和写入访问交错来隐藏对一个存储体的开销访问。特别是在正常操作期间,仲裁器238通常保持不同存储体中的页打开,直到需要在选择不同页之前对它们进行预充电。
图3以框图形式示出了根据一些实施方案的数据处理系统300。数据处理系统300包括存储器系统330和APU 310,以及基板管理控制器(BMC)340。APU 310包括如存储器控制器200(图2)的支持异构存储器通道与存储器系统330接口连接的存储器控制器。除了正常的DDRx存储器通道之外,APU 310还支持在具有通过总线332连接的正常注册DIMM或RDIMM334和336的异构存储器通道331,以及仅具有通过总线329连接的RDIMM 335、337和339的同构存储器通道333上的NVDIMM-P 338。虽然在该实施方案中,异构存储器通道331连接到NVDIMM-P和RDIMM两者,但在一些实施方案中,异构存储器通道具有与所有NVDIMM-P类型DIMM接口连接的能力。
根据NVDIMM-P标准草案,APU 310和NVDIMM-P 338上的存储器控制器之间的事务受“链接”ECC保护。链路ECC确保存储器控制器与NVDIMM之间通过总线332的数据传输的数据完整性。根据已知的ECC机制,它可以防止由随机或瞬时错误引起的链路上的数据损坏。保护因使用的ECC代码而异。例如,ECC可以允许用多位错误检测进行单位校正。响应于检测到不可校正的错误,存储器控制器可以重放事务,使得暂时或随机错误不会持续存在,并且还可以向操作系统报告可校正和不可校正的错误。
BMC 340是安装到数据处理系统300的主机电路板并连接到APU 310以提供控制和监测能力的专用处理器。BMC 340通过接收错误报告和监测状态寄存器和传感器来监测APU310和数据处理系统300的各种其他部件(未单独示出)的状态。BMC 340连接到系统通信总线,诸如所描绘的外围部件互连快速(PCIe)总线和通用串行总线(USB),并且还可以经由内部集成电路总线监测各种系统部件中的寄存器以轮询错误报告。通常通过专用网络接口或与数据处理系统300的网络接口的连接提供对BMC功能的外部访问以用于远程监测和控制。
虽然在该实施方案中描述了NVDIMM-P型DIMM,但其他实施方案采用本文的技术通过异构存储器通道与其他类型的存储类存储器(SCM)模块接口连接。如本文所用,SCM指示具有可在系统存储器空间中寻址的非易失性存储器的存储器模块。SCM模块中的非易失性存储器可以通过RAM进行缓冲和/或与SCM模块上的RAM进行配对。从操作系统(OS)的角度来看,SCM存储器地址映射与传统DRAM填充一起出现。OS通常知道SCM定义的地址范围是与传统存储器“不同”的存储器类型。这种区别是为了通知OS该存储器可能是休眠的并且具有持久的质量。OS可以将SCM存储器映射为直接访问存储器或文件系统访问存储器。直接访问意味着OS将SCM地址范围作为物理可寻址存储器进行访问。文件系统访问意味着OS作为文件系统的一部分管理持久性存储器,并经由基于文件的API管理对SCM的访问。最终,请求到达SCM地址范围内的存储器控制器,而与较高级别的OS如何管理访问无关。
图4以框图形式示出了根据一些实施方案的NV缓冲器400。NV缓冲器400是NV缓冲器247(图2)的示例性实例化。NV缓冲器400包括非易失性命令队列(“NV队列”)402、非易失性缓冲器控制电路(“NV缓冲器CTRL”)404、非易失性错误报告电路(“NV错误报告”)406以及非易失性错误查找表(“NV错误LUT”)408。
NV队列402耦合到命令队列220(图2)的输出,用于接收非易失性读取命令,并在它们等待执行时对其进行存储。NV队列402存储非易失性读取命令,以便在触发需要重放命令的恢复序列时为它们提供重放。
NV缓冲器CTRL 404处理从非易失性DIMM接收到的就绪响应信号(“RD_RDY”),其指示响应数据可用于非易失性读取命令中的相关联一个。作为响应,NV缓冲器CTRL 404使“发送(SEND)”命令被置于存储器接口队列中以发布到非易失性DIMM以使其发送响应数据。当接收到响应数据时,NV缓冲器CTRL 404使用读ID(“RID”)识别NV队列402中的相关联非易失性读取命令,并从非易失性队列中移除相关联非易失性读取命令。
NV错误报告电路406连接到ECC检查电路242和重放控制逻辑231,用于接收指示与NVDIMM-P或其他非易失性DIMM相关联的数据错误和链接错误的错误代码。将错误从由错误类型标识符指示的与非易失性DIMM相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块。在该实施方案中,映射是使用NV错误LUT 408来完成的,所述LUT使用描述数据或链接错误的错误类型标识符对查找进行索引。查找的结果是用于向错误监测模块报告的虚拟错误类型,如下文关于图5和图6进一步描述。
图5是示出根据一些实施方案的计算机系统500上的非易失性存储器使用情况的框图。所描绘的软件和硬件部件适合与如关于图2至图4所描述的数据处理系统一起使用。系统500包括由操作系统内核(“OS内核”)520、存储器控制器530和非易失性DIMM(在该实施方案中为NVDIMM-P 540)托管的用户空间510。
OS内核520通常是服务器OS,但在一些实现方式中是另一种类型的OS,诸如个人计算机OS或专门用于特定计算任务的OS。OS内核520在诸如APU 310(图3)的系统处理器上运行,并且托管运行用户进程512和用户应用程序514的用户空间510。OS内核520包括错误监测模块,诸如机器检查架构522、非易失性DIMM驱动程序(“NV驱动程序”)524和文件系统526。OS内核520的许多其他部分未显示以便聚焦于访问非易失性DIMM的部件。在一些实施方案中,多个OS内核作为由管理程序层托管的虚拟机存在。
虽然在该实现方式中描绘了机器检查架构522,但在其他实现方式中使用了其他类型的错误报告模块。机器检查架构522是一种已知机制,用于提供从数据处理系统500的许多部分中的错误检测逻辑到OS内核520以及诸如虚拟机管理器、应用程序和进程的较高级别软件的错误报告。机器检查架构522能够处理错误,并通过确定是否可以获得经校正的数据并执行软件例程来校正错误,从而从某些错误中恢复。在某些条件下,机器检查架构522基于确定不能获得经校正的数据来确定特定进程的执行不能继续。在这种情况下,机器检查架构522能够通过将控制传递给较高级别的软件或强制重置来处理错误。
NV驱动程序524是在OS内核520上执行的驱动程序模块,用于提供对NVDIMM-P 540中的存储器的访问。如所描绘的,NV驱动程序524完成来自进程512和应用程序514(其具有一个或多个执行进程)的存储器访问指令。为了完成指令,NV驱动程序524将指令格式化为通过存储器控制器530对NVDIMM-P 540的适当请求。例如,来自NV驱动程序524的非易失性读取请求和非易失性写入请求可导致存储器控制器530处的XREAD和XWRITE命令。
文件系统526在OS内核520上执行以管理包括NVDIMM-P 540中存储的数据的数据文件。文件系统526可以具有与NVDIMM-P 540接口连接的本机支持,或者也可以采用NV驱动程序524来处理访问。OS内核520还通过存储器控制器530访问NVDIMM-P 540以满足其自身的存储器访问需要。
该实施方案中的存储器控制器530是存储器控制器200(图2)或适合访问NVDIMM-P540的类似存储器控制器的实现方式,并且包括对应于NV错误报告逻辑406(图4)的NV错误报告逻辑532。在一些实施方案中,NV错误报告逻辑532使用根据下文进一步讨论的图6的过程确定的错误报告信息向机器检查架构522报告错误。
使用诸如NVDIMM-P的持久性存储器在处理错误报告和相关联的可靠性、可访问性和可维护性(RAS)问题方面带来了许多挑战。与错误类型很少的DRAM DIMM相比,非易失性DIMM会出现大量新的错误类型,从而导致此类挑战。虽然为诸如NVDIMM-P的某些非易失性DIMM定义了错误类型,但例如在NVDIMM-P标准草案中通常未指定处理错误并向系统报告的方式。
图6是根据一些实施方案的用于报告错误的过程600的流程图。过程600适合于用图2的存储器控制器200或其他存储器控制器组件来实现,并且在该实施方案中由NV错误报告逻辑406(图4)与重放逻辑控制电路231(图2)协作执行。
通常,过程600处理在存储器控制器处检测到的错误并且以适合系统内的错误管理和故障管理的方式报告它们。错误管理描述了操作软件(例如,操作系统)为管理可能受错误影响的正在运行的程序所必需的行动。错误管理由操作系统的错误监测模块(诸如机器检查架构522)控制,并且通常包括对错误的一组有限响应,诸如不采取任何行动,终止单个受影响的进程、程序或虚拟机,以及终止系统操作。因此,错误监测模块只需要做出关于错误范围和严重性的决定以及确定要立即采取什么行动所需的错误信息。故障管理描述了用于诊断、修复和重新配置底层硬件目的的可选行动。故障管理能力存在于数据处理系统的各个部分,而严重故障由BMC 340(图3)指示。
参考过程600,所述过程开始于框602处,其中它从非易失性DIMM接收错误通知,或在存储器控制器处检测错误,诸如由ECC检查电路242(图2)检测到的链路ECC错误。非易失性DIMM报告的错误包括各种类型的DRAM错误、介质错误(关于非易失性介质)、高速缓存错误(关于非易失性DIMM上的高速缓存)和热错误。一些非易失性DIMM会报告其他种类的错误,诸如固件初始化错误。链路错误包括存储器通道上的传输错误,诸如链路ECC错误。主机错误是在存储器控制器处检测到的,并且包括非易失性读取命令超时和重复的RID错误。
通常,从诸如NVDIMM-P的非易失性DIMM报告的错误分为三个总体类别:警报、紧急和中断。然而,这些类别不足以为了如上文所讨论的错误管理或故障管理而报告错误。这些不同类型的错误提供了几十个单独的错误标识符,每个错误标识符代表与非易失性DIMM相关联的错误条件。在框604处,错误标识符用于基于与错误相关联的特定硬件条件对错误进行分类。这种分类可以预先执行并且将结果保存在存储器控制器处的表中,诸如NV错误LUT408。所述分类至少基于错误条件会或不会对在主机操作系统上运行的可执行进程产生有害影响。这种确定通常基于错误是否例如通过存储器介质中的缓冲区溢出或位错误来指示数据丢失并且不可恢复。也可以基于错误条件对可执行进程的影响类型来进行映射。例如,如果指令数据丢失,则可以基于保存的用户数据重新启动进程。如果用户数据丢失,则这种选项可能不可用。
在框606处,错误条件从与非易失性DIMM相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型。虚拟错误类型是基于数据处理系统的错误监测模块(诸如机器检查架构522(图5))使用的虚拟错误来选择的。在该实施方案中,虚拟错误类型具有带编号的严重性级别,其用于在框608处向错误监测模块报告。然后采用虚拟错误类型来确定错误管理模块将采取什么错误管理响应。
当虚拟错误类型用于向错误管理模块报告时,在框610处将基于错误条件的原始错误标识符报告给BMC 340。也可以报告相关联的数据,诸如所涉及的地址或指令。报告机制通常将信息加载到代表BMC 340进行轮询的寄存器,但在其他实施方案中使用其他合适的报告机制。BMC 340将信息用于错误记录和执行故障管理功能,诸如诊断硬件故障和修复或重新配置硬件以减轻故障条件。
因此,如本文所述的存储器控制器和数据处理系统提高了存储器控制器处理与异构存储器通道上的非易失性DIMM相关联的错误的能力。本文中的技术还提供了一种机制,用于以DIMM的现有错误报告机制可以使用的方式向系统错误监测模块报告非易失性DIMM错误条件。此外,本文中的技术提供了不依赖于各种非易失性DIMM供应商可以用来报告错误的可变或未知方法的错误处理能力。相反,错误由存储器控制器分类,所述存储器控制器适当地将错误报告给错误管理和/或故障管理机制。
图2的存储器控制器200或其任何部分(诸如仲裁器238)可以由呈数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,所述数据库或其他数据结构可以由程序读取并直接或间接用于制造集成电路。例如,该数据结构可以是诸如Verilog或VHDL的高级设计语言(HDL)中的硬件功能的行为级描述或寄存器传送级(RTL)描述。所述描述可由合成工具读取,所述合成工具可以合成所述描述以产生包括来自合成库的门列表的网表。网表包括一组门,所述一组门也表示包括集成电路在内的硬件的功能。然后,可以放置网表并路由所述网表以生成描述要应用于掩模的几何形状的数据集。然后,可在各种半导体制造步骤中使用掩模来生产集成电路。替代地,计算机可访问的存储介质上的数据库可以是网表(具有或没有综合库)或数据集(根据需要),或图形数据系统(GDS)II数据。
尽管已经描述了特定实施方案,但是对这些实施方案的各种修改对于本领域技术人员来说将是显而易见的。例如,存储器通道控制器210和/或动力引擎250的内部架构可以在不同实施方案中变化。除了NVDIMM-P和DDRx之外,存储器控制器200还可以接口连接到其他类型的存储器,诸如高带宽存储器(HBM)、RAMbus DRAM(RDRAM)等。尽管所示实施方案显示了对应于单独DIMM的每个存储排,但在其他实施方案中,每个DIMM可以支持多个存储排。此外,虽然通常支持异构存储器通道,但异构通道可以完全用非易失性DIMM填充。
因此,所附权利要求旨在涵盖落入所公开的实施方案的范围内的所公开的实施方案的所有修改。

Claims (20)

1.一种存储器控制器,其包括:
命令队列,所述命令队列具有用于接收包括易失性读取、易失性写入、非易失性读取和非易失性写入在内的存储器访问命令的第一输入以及输出,并且具有多个条目;
存储器接口队列,所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及用于耦合到非易失性存储类存储器(SCM)模块的输出;
非易失性错误报告电路,所述非易失性错误报告电路可操作以识别与所述非易失性SCM模块相关联的错误条件,并将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块,所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。
2.根据权利要求1所述的存储器控制器,其中所述非易失性错误报告电路还可操作以将所述虚拟错误类型报告给所述主机操作系统的所述错误监测模块。
3.根据权利要求1所述的存储器控制器,其中所述非易失性错误报告电路还可操作以将所述错误条件报告给主机数据处理系统的基板管理控制器。
4.根据权利要求1所述的存储器控制器,其中所述错误条件包括中断类型错误和紧急类型错误。
5.根据权利要求1所述的存储器控制器,其中所述非易失性错误报告电路包括查找表,所述查找表至少由与所述错误条件相关联的错误代码索引并且包含所述错误代码的相关联虚拟错误类型。
6.根据权利要求1所述的存储器控制器,其中所述映射包括确定所述错误条件会对所述可执行进程产生的影响的类型。
7.根据权利要求1所述的存储器控制器,其中所述映射包括确定报告给所述错误监测模块的严重性级别。
8.一种方法,其包括:
接收包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入在内的多个存储器访问请求;
将用于实现所述存储器访问请求的存储器访问命令置于存储器接口队列中,并将所述存储器访问命令从所述存储器接口队列传输到耦合到非易失性存储类存储器(SCM)模块的存储器通道;
基于通过所述存储器通道接收的信息,识别与所述存储器通道相关联的错误条件;
将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块,所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。
9.根据权利要求8所述的方法,其还包括将所述虚拟错误类型报告给所述主机操作系统的所述错误监测模块。
10.根据权利要求8所述的方法,其还包括将所述错误条件报告给基板管理控制器。
11.根据权利要求8所述的方法,其中所述错误条件包括中断类型错误和紧急类型错误。
12.根据权利要求8所述的方法,其还包括至少由与所述错误条件相关联的错误代码对查找表进行索引从而获得所述错误代码的相关联虚拟错误类型。
13.根据权利要求8所述的方法,其中所述映射包括确定所述错误条件会对所述可执行进程产生的影响的类型。
14.根据权利要求8所述的方法,其中所述映射包括确定要报告给所述错误监测模块的严重性级别。
15.一种数据处理系统,其包括:
中央处理单元;
数据结构,所述数据结构耦合到所述中央处理单元;以及
存储器控制器,所述存储器控制器耦合到所述数据结构以用于完成通过所述数据结构作出的存储器访问请求,所述存储器控制器包括:
命令队列,所述命令队列具有用于接收包括易失性读取、易失性写入、非易失性读取和非易失性写入在内的存储器访问命令的第一输入以及输出,并且具有多个条目;
存储器接口队列,所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及用于耦合到非易失性存储类存储器(SCM)模块的输出;
非易失性错误报告电路,所述非易失性错误报告电路可操作以识别与所述非易失性SCM模块相关联的错误条件,并将所述错误条件从与所述非易失性SCM模块相关联的第一数量的可能错误条件映射到第二较小数量的虚拟错误类型,以用于报告给主机操作系统的错误监测模块,所述映射至少基于所述错误条件会或不会对运行在所述主机操作系统上的可执行进程产生有害影响的分类。
16.根据权利要求15所述的数据处理系统,其中所述非易失性错误报告电路还可操作以将所述虚拟错误类型报告给所述主机操作系统的所述错误监测模块。
17.根据权利要求15所述的数据处理系统,其还包括基板管理控制器,所述基板管理控制器耦合到所述中央处理单元,其中所述非易失性错误报告电路还可操作以将所述错误条件报告给基板管理控制器。
18.根据权利要求15所述的数据处理系统,其中所述错误条件包括中断类型错误和紧急类型错误。
19.根据权利要求15所述的数据处理系统,其中所述非易失性错误报告电路包括查找表,所述查找表至少由与所述错误条件相关联的错误代码索引并且包含所述错误代码的相关联虚拟错误类型。
20.根据权利要求15所述的数据处理系统,其中所述映射包括确定报告给所述错误监测模块的严重性级别。
CN202080090904.1A 2019-12-30 2020-12-08 非易失性存储器模块的错误报告 Pending CN114902186A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/730,113 2019-12-30
US16/730,113 US11392441B2 (en) 2019-12-30 2019-12-30 Error reporting for non-volatile memory modules
PCT/US2020/063702 WO2021138000A1 (en) 2019-12-30 2020-12-08 Error reporting for non-volatile memory modules

Publications (1)

Publication Number Publication Date
CN114902186A true CN114902186A (zh) 2022-08-12

Family

ID=76546292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080090904.1A Pending CN114902186A (zh) 2019-12-30 2020-12-08 非易失性存储器模块的错误报告

Country Status (6)

Country Link
US (2) US11392441B2 (zh)
EP (1) EP4085333A4 (zh)
JP (1) JP2023508117A (zh)
KR (1) KR20220116208A (zh)
CN (1) CN114902186A (zh)
WO (1) WO2021138000A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113962183B (zh) * 2021-12-22 2022-03-29 杭州万高科技股份有限公司 一种电能计量芯片接口电路设计方法及其接口电路
US20230205287A1 (en) * 2021-12-28 2023-06-29 Ati Technologies Ulc Processing unit reset by a virtual function

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756053B2 (en) 2006-06-30 2010-07-13 Intel Corporation Memory agent with error hardware
US8185800B2 (en) 2008-01-31 2012-05-22 International Business Machines Corporation System for error control coding for memories of different types and associated methods
KR101466568B1 (ko) 2009-07-23 2014-12-01 린나이코리아 주식회사 각방제어 시스템의 각방 룸콘 키 잠금방법
KR101598382B1 (ko) 2010-03-02 2016-03-02 삼성전자주식회사 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9684555B2 (en) * 2015-09-02 2017-06-20 International Business Machines Corporation Selective memory error reporting
US10235233B2 (en) 2015-11-03 2019-03-19 Hewlett Packard Enterprise Development Lp Storage error type determination
JP2017091077A (ja) * 2015-11-06 2017-05-25 富士通株式会社 擬似故障の発生プログラム、発生方法、及び発生装置
US10713128B2 (en) * 2017-11-30 2020-07-14 Microsoft Technology Licensing, Llc Error recovery in volatile memory regions
US10528426B2 (en) * 2017-11-30 2020-01-07 Western Digital Technologies, Inc. Methods, systems and devices for recovering from corruptions in data processing units in non-volatile memory devices
US10761919B2 (en) * 2018-02-23 2020-09-01 Dell Products, L.P. System and method to control memory failure handling on double-data rate dual in-line memory modules
KR102549584B1 (ko) * 2018-03-27 2023-06-30 삼성전자주식회사 메모리 모듈을 포함하는 메모리 시스템, 메모리 모듈, 그리고 메모리 모듈의 동작 방법
US10783025B2 (en) * 2018-10-15 2020-09-22 Dell Products, L.P. Method and apparatus for predictive failure handling of interleaved dual in-line memory modules
US11200106B2 (en) * 2019-08-12 2021-12-14 Advanced Micro Devices, Inc. Data integrity for persistent memory systems and the like
US11698859B2 (en) * 2019-12-27 2023-07-11 Sk Hynix Nand Product Solutions Corp. Direct map memory extension for storage class memory
US11531601B2 (en) * 2019-12-30 2022-12-20 Advanced Micro Devices, Inc. Error recovery for non-volatile memory modules

Also Published As

Publication number Publication date
EP4085333A1 (en) 2022-11-09
US11797369B2 (en) 2023-10-24
US11392441B2 (en) 2022-07-19
US20230004459A1 (en) 2023-01-05
WO2021138000A1 (en) 2021-07-08
EP4085333A4 (en) 2024-01-03
KR20220116208A (ko) 2022-08-22
US20210200618A1 (en) 2021-07-01
JP2023508117A (ja) 2023-02-28

Similar Documents

Publication Publication Date Title
KR102350538B1 (ko) Ddr 메모리 에러 복구
KR20190003591A (ko) 통합 패키지 후 복구
CN114902198B (zh) 用于异构存储器系统的信令
US11531601B2 (en) Error recovery for non-volatile memory modules
US11797369B2 (en) Error reporting for non-volatile memory modules
CN114902197B (zh) 非易失性双列直插式存储器模块的命令重放
EP3553662A1 (en) Intergral post package repair

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