CN106462480B - 用于处理持久存储器中的错误的技术 - Google Patents

用于处理持久存储器中的错误的技术 Download PDF

Info

Publication number
CN106462480B
CN106462480B CN201580028955.0A CN201580028955A CN106462480B CN 106462480 B CN106462480 B CN 106462480B CN 201580028955 A CN201580028955 A CN 201580028955A CN 106462480 B CN106462480 B CN 106462480B
Authority
CN
China
Prior art keywords
data structure
error
nvdimm
bios
physical address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580028955.0A
Other languages
English (en)
Other versions
CN106462480A (zh
Inventor
M.J.库马
M.K.纳基穆图
C.C.拉德
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN202010757667.1A priority Critical patent/CN112131031A/zh
Publication of CN106462480A publication Critical patent/CN106462480A/zh
Application granted granted Critical
Publication of CN106462480B publication Critical patent/CN106462480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • 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/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

示例可包括对于与非易失性双列直插式存储器模块(NVDIMM)的控制器通信的计算平台的基本输入/输出系统(BIOS)。BIOS与控制器之间的通信可包括对控制器扫描并且识别NVDIMM处的非易失性存储器中的错误位点的请求。非易失性存储器可能够对NVDIMM提供持久存储器。

Description

用于处理持久存储器中的错误的技术
技术领域
本文描述的示例大体上涉及处理非易失性双列直插式存储器模块(NVDIMM)中持久存储器的错误。
背景技术
与计算平台或系统耦合的存储器模块(例如配置为服务器的那些)可包括双列直插式存储器模块(DIMM)。DIMM可包括这种动态随机存取存储器(DRAM)的易失性存储器类型或其他类型的存储器,例如非易失性存储器。随着DRAM和其他类型的存储器技术发展到包括具有越来越高密度的存储器单元,DIMM的存储器容量也大大增加。因为DRAM是易失性存储器,如果不是所有数据在断电或复位时都维持在DRAM中,断电或复位可能导致丢失数据中的大部分。一些非易失性存储器技术还可能利用加密方案,其在断电或复位后可能导致丢失加密信息并且因为加密数据可能由于丢失加密信息而不能访问,对于这些技术的非易失性存储器从而可能充当某种易失性存储器。此外,这些类型的存储器技术的大存储器容量对操作系统(OS)或应用(例如,设备驱动器)感测断电且试图防止或减少数据丢失方面提出挑战。
附图说明
图1图示示例第一系统。
图2图示示例第二系统。
图3图示示例第三系统。
图4图示示例过程。
图5图示示例第一状态机。
图6图示示例第二状态机。
图7图示对于第一装置的示例框图。
图8图示第一逻辑流的示例。
图9图示第一存储介质的示例。
图10图示第二装置的示例框图。
图11图示第二逻辑流的示例。
图12图示第二存储介质的示例。
图13图示示例计算平台。
图14图示示例非易失性双列直插式存储器模块控制器。
具体实施方式
在一些示例中,为了在断电或复位情况下减轻或减少数据丢失,开发包括易失性存储器和非易失性存储器两者的这样类型的存储器模块。该类型的存储器模块统称为非易失性DIMM(NVDIMM)。典型地,NVDIMM可以是DRAM和某一类型的非易失性存储器(例如NAND闪速存储器)的组合或可以是DRAM和某一类型的非易失性存储器技术(例如3D交叉点存储器)的组合,其既可以充当易失性又可以充当非易失性存储器。NVDIMM可以经由使用非易失性存储器在由于有意或无意系统或部件/设备复位而对NVDIMM断电后通过捕捉易失性存储器内容的图像(例如,校验指示)来提供持久存储器。超级电容器封装可以与NVDIMM耦合来持续长到足以将易失性存储器内容的图像捕捉到非易失性存储器的时间维持对NVDIMM供电。
根据一些示例,包括非易失性存储器来对NVDIMM处的存储器类型(例如DRAM或一些类型的非易失性存储器(例如,3D交叉点存储器))提供持久存储器的NVDIMM在易失性存储器中可以具有大体上不可恢复的未校正错误。然而,因为错误是由于数据错误引起或与NVDIMM耦合的计算平台的基本输入/输出系统(BIOS)可以导致被视为错误的存储器地址易于映射到系统存储器外,这些未校正错误在NVDIMM重启或复位时可消失。然而,对于用作持久存储器的非易失性存储器的未校正错误在重启或复位时可不消失。因为可出现数据丢失,BIOS可不能够清除这些未校正错误。因此,用作持久存储器的非易失性存储器中的未校正错误可能有可导致“土拨鼠日”情景的可能性,“土拨鼠日”情景可导致计算系统处的系统一直不能访问具有未校正错误的非易失性存储器地址位点。例如操作系统(OS)或设备驱动器等软件需要用作持久存储器的非易失性存储器中的未校正错误的先验知识,因此可以做出不映射或访问具有未校正错误的持久存储器地址位点的决定。
在一些示例中,对于耦合于NVDIMM的计算平台的OS或设备驱动器可因为这些地址保持在NVDIMM内并且不暴露于OS或设备驱动器而可能不能访问设备物理地址(DPA)。系统物理地址(SPA)也可包含多个NVDIMM和/或交叉NVDIMM,而DPA是设备特定的。因此,识别的具有DPA的未校正错误需要转换成SPA使得OS或设备驱动器可决定不映射或访问具有未校正错误的持久存储器地址位点。关于这些和其他挑战需要本文描述的示例。
用于处理NVDIMM中包括的持久存储器中的错误的技术可以经由一个或多个示例方法实现。第一示例方法可以包括驻存在NVDIMM上的控制器接收错误扫描请求。响应于错误扫描请求,NVDIMM处能够对NVDIMM提供持久存储器的非易失性存储器的DPA范围可以由控制器扫描。可以在该DPA范围中识别未校正错误并且具有识别的未校正错误的DPA地址可以被指示给与NVDIMM耦合的计算平台的BIOS。
第二示例可以包括设置成被主机计算平台处的电路实现的BIOS。BIOS可以向耦合于主机计算平台的NVDIMM上驻存的控制器发送错误扫描请求。NVDIMM可以具有能够对NVDIMM提供持久存储器的非易失性存储器。对于该第二示例方法,BIOS可以能够确定控制器完成响应于错误扫描请求对非易失性存储器的DPA范围的扫描并且访问NVDIMM处驻存的第一数据结构来读取具有由控制器在扫描DPA范围期间识别的所识别的未校正错误的DPA。对于该第二示例方法,BIOS也可以能够将具有识别的未校正错误的DPA转换成具有识别的不可校正错误的SPA。
图1图示示例第一系统。如在图1中示出的,示例第一系统包括系统100。在一些示例中,如在图1中示出的,系统100包括主机计算平台110,其耦合于NVDMM 120-1至120-n,其中“n”是值大于3的任意正整数。对于这些示例,NVDIMM 120-1至120-n可以经由通信通道115-1至115-n耦合于主机计算平台110,如在图1中示出的。主机计算平台110可以包括但不限于服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、微型计算机、主计算机、超级计算机、网络电器、web电器、分布式计算系统、多处理器系统、基于处理器的系统或其组合。
在一些示例中,如在图1中示出的,NVDIMM 120-1至120-n可以包括相应的控制器122-1至122-n、易失性存储器124-1至124-n和非易失性存储器126-1至126-n。通信通道115-1至115-n可以包括存储器通道、通信和/或控制链路,其在主机计算平台110的元件与相应NVDIMM 120-1至120-n之间耦合来能够与这些相应NVDIMM的元件通信和/或对其访问。如在下文更多描述的,主机计算平台(例如主机计算平台110)的元件之间的通信可以允许处理位于能够对驻存在NVDIMM上的易失性存储器(例如,易失性存储器124-1)类型提供持久存储器的非易失性存储器(例如,非易失性存储器126-1)中的未校正错误。
在一些示例中,尽管未在图1中示出,通信通道115-1至115-n所包括的至少一些存储器通道可以交叉来对主机计算平台的元件提供增加的带宽来访问易失性存储器124-1至124-n。
图2图示示例第二系统。如在图2中示出的,示例第二系统包括系统200。在一些示例中,如在图2中示出的,系统200包括主机计算平台210,其经由通信通道215与NVDIMM 205耦合。同样在图2中示出的,电容器组270可以经由电力链路277耦合于NVDIMM 205。在一些示例中,如在图2中示出的,NVDIMM 205还可以包括主机接口220、控制器230、控制开关240、易失性存储器250或非易失性存储器260。
在一些示例中,主机计算平台210可以包括电路212,其能够执行主机计算平台110的各种功能元件,这些功能元件可以包括但不限于基本输入/输出系统(BIOS)214、操作系统(OS)215、设备驱动器216或应用(App)218。主机计算平台210还可以包括数据结构213。如在下文更多描述的,数据结构213可以对主机计算平台210的元件(例如BIOS 214或OS 215)可访问并且可以设置成至少暂时存储与未校正位点信息关联的SPA,用于由非易失性存储器260对易失性存储器250提供的持久存储器。
根据一些示例,如在图2中示出的,NVDIMM 205处的主机接口220可以包括控制器接口222和存储器接口224。在一些示例中,控制器接口222可以是SMBus接口,其与2000年8月发布的SMBus规范、版本2.0(“SMBus规范”)兼容地设计或操作。对于这些示例,主机计算平台210的元件可以通过控制器接口222与控制器230通信。主机计算平台210的元件还可以通过存储器接口224通过控制通道227、通过控制开关240并且然后通过控制通道247访问易失性存储器250。在一些示例中,响应于NVDIMM 205的NVDIMM 205的缺电或复位,对易失性存储器250的访问可以由控制开关240切换到控制器230(通过控制通道237)以使用在易失性存储器250与非易失性存储器260之间的耦合的存储器通道255以将易失性存储器250的内容从非易失性存储器260恢复或保存到非易失性存储器260。通过在缺电或复位之前保存或恢复易失性存储器250的内容,非易失性存储器260可以能够对NVDIMM 205提供持久存储器。
根据一些示例,如在图2中示出的,控制器230可以包括数据结构232和电路234。电路234可以能够执行部件或特征以从主机计算平台210的元件(例如BIOS 214)接收错误扫描请求。如在下文更多描述的,错误扫描请求可以关于扫描非易失性存储器260的DPA范围。特征或部件还可以能够识别DPA范围中的未校正错误并且然后对BIOS 214指示具有识别的未校正错误的DPA。
在一些示例中,数据结构232可以包括寄存器,其可以选择性地被认定为对BIOS214指示具有识别的未校正错误的DPA。对于这些示例,BIOS 214可通过控制器接口222访问这些寄存器。寄存器还可以选择性地被断言对BIOS 214指示错误扫描状态和/或指示数据结构232的容量是否足以指示具有识别的未校正错误的DPA中的全部。
在一些示例中,BIOS 214可以包括由电路212实现来向控制器230发送错误扫描请求的逻辑和/或特征。对于这些示例,BIOS 214的逻辑和/或特征可以能够访问数据结构232来确定控制器230是否完成对非易失性存储器260的DPA范围的扫描并且还访问数据结构来读取具有由控制器在扫描DPA范围期间识别的所识别的未校正错误的DPA。
根据一些示例,BIOS 214可以从数据结构232访问DPA和/或具有从数据结构232读取DPA的能力。主机计算平台210的其他元件(例如OS 215、设备驱动器216或App 218)可没有从数据结构232访问或读取DPA的能力。对于这些示例,BIOS 214的逻辑和/或特征可以能够将具有识别的未校正错误的DPA转换成具有识别的未校正错误的SPA。BIOS 214然后可以促使将具有识别的未校正错误的SPA存储到主机计算平台210处的数据结构213。数据结构213可以对主机计算平台210的其他元件可访问并且SPA也可以对这些其他元件可读。例如,OS 215、设备驱动器216或App 218可以能够使用具有识别的未校正错误的SPA以避免将主机计算平台210的系统存储器映射到具有识别的未校正错误的那些SPA。
在一些示例中,BIOS 214还可以从数据结构232读取DPA并且使用对于这些DPA的识别的未校正错误以避免将任何BIOS相关活动映射到这些DPA以便系统200和/或NVDIMM205的当前或后续启动或复位。
在一些示例中,数据结构213可以包括寄存器,其可以由BIOS 214选择性地断言对OS 215、设备驱动器216或App 218指示具有识别的未校正错误的SPA。寄存器还可以选择性地被断言指示控制器230的错误扫描状态、具有识别的未校正错误的DPA通过BIOS 214到具有识别的未校正错误的SPA的任何转换的状态和/或指示对于转换的SPA是否不包括至少一些未校正错误(例如,由于数据结构232的容量不足以指示具有识别的未校正错误的DPA中的全部)。
在一些示例中,易失性存储器250可以包括易失性存储器,其与各种类型的易失性存储器(例如DRAM)关联的一个或多个标准或规范(其包括后代或变体)兼容地设计或操作。例如,DRAM类型(例如同步双数据速率DRAM(DDR DRAM))可以包括在易失性存储器250中并且与DDR DRAM关联的标准或规范可以包括JEDEC固态技术协会(“JEDEC”)对各种DDR代(例如DDR2、DDR3、DDR4或未来DDR代)发布的那些。一些示例标准或规范可以包括但不限于在2012年7月发布的JESD79-3F-“DDR3 SDRAM标准”,或2012年9月发布的JESD79-4-“DDR4SDRAM标准”。
根据一些示例,非易失性存储器260可以包括一个或多个类型的非易失性存储器以包括但不限于NAND闪速存储器、NOR闪速存储器、3D交叉点存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、聚合物存储器(例如铁电聚合物存储器)、铁电晶体管随机存取存储器(FeTRAM或FeRAM)、奥氏存储器或纳米线。在一些示例中,非易失性存储器260还可以包括足够的存储器容量来接收易失性存储器250的全部内容或易失性存储器250的内容的可能多个副本。
在一些示例中,电容器组270可以包括一个或多个电容器以经由电力链路277向NVDIMM 205提供至少暂时电力。一个或多个电容器可以能够存储足够能量以持续足够时间对NVDIMM 205供电以便如果突然断电或系统复位导致对NVDIMM 205的主电力供应被切断或关断则使控制器230促使将易失性存储器250中维持的数据保存到非易失性存储器260。数据内容由于突然断电或系统复位而保存到非易失性存储器260可以称为“灾难性保存”。
图3图示示例第三系统。如在图3中示出的,示例第三系统包括系统300。在一些示例中,如在图3中示出的,系统300包括主机计算平台310,其经由通信通道315与NVDIMM 305耦合。同样在图3中示出的,电容器组370可以经由电力链路377耦合于NVDIMM 305。在一些示例中,如在图3中示出的,NVDIMM 305还可以包括主机接口320、控制器330、控制开关340或存储器池350(其具有易失性存储器352部分和持久存储器354部分)。
在一些示例中,主机计算平台310可以包括电路312,其能够执行主机计算平台110的各种功能元件,这些功能元件可以包括但不限于BIOS 314、OS 315、设备驱动器316或App318。主机计算平台310还可以包括数据结构313。如在下文更多描述的,数据结构313可以对主机计算平台310的元件(例如BIOS 314或OS 315)可访问,并且可以设置成至少暂时存储与持久存储器354的未校正错误位点信息关联的SPA。
根据一些示例,如在图3中示出的,NVDIMM 305处的主机接口320可以包括控制器接口322和存储器接口324。在一些示例中,控制器接口322可以是SMBus接口。对于这些示例,主机计算平台310的元件可以通过控制器接口322与控制器330通信。主机计算平台310的元件还可以通过存储器接口324通过控制通道327、通过控制开关340并且然后通过控制通道347访问易失性存储器352。在一些示例中,响应于NVDIMM 305缺电或复位,对易失性存储器352的访问可以由控制开关340切换到控制器330(通过控制通道337)来将易失性存储器352的内容从持久存储器354恢复或保存到持久存储器354。通过在缺电或复位之前保存或恢复易失性存储器352的内容,持久存储器354可以能够对NVDIMM 305提供持久存储器。
根据一些示例,如在图3中示出的,控制器330可以包括数据结构332和电路334。电路334可以能够执行部件或特征以从主机计算平台310的元件(例如BIOS 314)接收错误扫描请求。如在下文更多描述的,错误扫描请求可以关于扫描持久存储器354的DPA范围。部件或特征还可以能够识别DPA范围中的未校正错误并且然后对BIOS 314指示具有识别的未校正错误的DPA。
在一些示例中,数据结构332可以包括寄存器,其可以选择性地被断言对BIOS 314指示具有识别的未校正错误的DPA。对于这些示例,BIOS 314可以通过控制器接口322访问这些寄存器。寄存器还可以选择性地被断言对BIOS 314指示错误扫描状态和/或指示数据结构332的容量是否足以指示具有识别的未校正错误的DPA中的全部。
在一些示例中,BIOS 314可以包括由电路312实现来向控制器330发送错误扫描请求的逻辑和/或特征。对于这些示例,BIOS 314的逻辑和/或特征可以能够访问数据结构332来确定控制器330是否完成对持久存储器354的DPA范围的扫描并且还访问数据结构332来读取具有由控制器330在扫描DPA范围期间识别的所识别的未校正错误的DPA。
根据一些示例,BIOS 314可以从数据结构332访问DPA和/或具有从数据结构332读取DPA的能力。主机计算平台310的其他元件(例如OS 315、设备驱动器316或App 318)可没有从数据结构332访问或读取DPA的能力。对于这些示例,BIOS 314的逻辑和/或特征可以能够将具有识别的未校正错误的DPA转换成具有识别的未校正错误的SPA。BIOS 314然后可以促使将具有识别的未校正错误的SPA存储到主机计算平台310处的数据结构313。数据结构313可以对主机计算平台310的其他元件可访问并且SPA还可以对这些其他元件可读。例如,OS 315、设备驱动器316或App 318可以能够使用具有识别的未校正错误的SPA以避免将主机计算平台310的系统存储器映射到具有识别的未校正错误的那些SPA。
在一些示例中,BIOS 314还可以从数据结构332读取DPA并且使用对于这些DPA的识别的未校正错误以避免将任何BIOS相关活动映射到这些DPA以便系统300和/或NVDIMM305的当前或后续启动或复位。
在一些示例中,数据结构313可以包括寄存器,其可以选择性地被BIOS 314断言对OS 315、设备驱动器316或App 318指示具有识别的未校正错误的SPA。寄存器还可以选择性地被断言指示控制器330的错误扫描状态、具有识别的未校正错误的DPA通过BIOS 214到具有识别的未校正错误的SPA的任何转换的状态和/或指示对于转换的SPA是否不包括至少一些未校正错误(例如,由于数据结构232的容量不足以指示具有识别的未校正错误的DPA中的全部)。
在一些示例中,存储器池350可以包括某一类型的非易失性存储器,例如但不限于3D交叉点存储器。在一些示例中,持久存储器354还可以包括足够的存储器容量来接收易失性存储器352的全部内容或易失性存储器352的内容的可能多个副本。
在一些示例中,电容器组370可以包括一个或多个电容器以经由电力链路377对NVDIMM 305提供至少暂时电力。一个或多个电容器可以能够存储足够能量以便持续足够时间对NVDIMM 305供电以便如果突然断电或系统复位导致对NVDIMM 305的主电力供应被切断或关断则使控制器330促使将易失性存储器352中维持的数据保存到持久存储器354。数据内容由于突然断电或系统复位而保存到持久存储器354可以称为“灾难性保存”。
图4图示示例过程400。在一些示例中,系统(例如图1-3中示出的系统100、200或300)的元件可以实现过程400以利用数据结构(例如数据结构232/332或213/313)来识别和传达能够对NVDIMM(例如NVDIMM 120-1至120-n或NVDIMM 205/305)提供持久存储器的非易失性或持久存储器(例如非易失性存储器260或持久存储器354)处的错误位点。示例不限于系统(例如图1-3中示出的系统100、200或300)的元件,预想图1-3中未示出的主机计算平台或NVDIMM的其他元件。
根据一些示例,响应于来自BIOS(例如,BIOS 214/314)的错误扫描请求,控制器(例如,控制器230/330)的逻辑和/或特征可以能够扫描非易失性或持久存储器(例如,非易失性存储器260/持久存储器254)的DPA范围并且识别DPA范围中的未校正错误。控制器的逻辑和/或特征然后可以经由图4中示出为数据结构232/332的第一数据结构来指示具有识别的未校正错误的DPA。例如,对于第一识别的未校正错误位点的第一DPA可以在数据结构232/332中在字段420-1中指示,对于第二识别的未校正错误位点的第二DPA可以在字段420-2中指示并且对于第m个识别的未校正错误位点的第m个DPA可以在字段420-m中指示,其中“m”等于大于2的任意正整数。对于这些示例,数据结构323/332可以具有限制“m”个字段的数量的容量来指示具有识别的未校正错误的DPA。响应于DPA具有超出“m”个字段的数量的识别的未校正错误,控制器的逻辑和/或特征可以利用溢出标志字段430来指示第一数据结构的容量不足以指示具有识别的未校正错误的DPA中的至少一些。
在一些示例中,如在图4中示出的,数据结构232/332还可以包括错误扫描状态410。对于这些示例,控制器的逻辑和/或特征可以能够经由错误扫描状态字段410对BIOS指示错误扫描状态。错误扫描状态可以包括但不限于闲置、在进行中或完成错误扫描状态。状态字段410中包括的扫描状态可以被BIOS定期轮询和/或控制器可以向BIOS发送系统管理中断(SMI)来指示扫描状态。
根据一些示例,BIOS的逻辑和/或特征可以能够读取数据结构232/332的各种字段来确定控制器是否完成错误扫描请求、具有识别的未校正错误的DPA或控制器是否指示溢出标志。对于这些示例,在确定控制器完成错误扫描时,BIOS的逻辑和/或特征然后可以将字段420-1至420-m中的DPA转换成SPA并且促使将这些SPA存储到数据结构213/313。SPA可以存储在数据结构213/313的字段450-1至450-m中来指示具有识别的未校正错误的SPA。在一些示例中,主机计算平台处的OS、设备驱动器或应用可以访问这些字段并且使用该访问以避免将系统存储器映射到具有识别的未校正错误的那些SPA。
在一些示例中,如在图4中示出的,数据结构213/313还可以包括错误扫描状态字段440。对于这些示例,BIOS的逻辑和/或特征可以能够经由错误扫描状态字段440对OS、设备驱动器或应用指示错误扫描状态。错误扫描状态可以包括但不限于闲置状态、控制器当前在实施错误扫描的指示、控制器完成错误扫描并且DPA到SPA转换在进行中的指示或控制器已经完成错误扫描并且结果准备供读取的指示。
根据一些示例,BIOS的逻辑和/或特征可以能够在溢出标志字段460中指示控制器是否指示对于具有存储在数据结构213/313中的识别未校正错误的SPA不包括至少一些未校正错误。如上文提到的,具有识别的未校正错误的DPA中的至少一些可以由于DPA具有超出大于“m”值的计数值的识别的未校正错误而未包括在字段420-1至420-m中。对于这些示例,如果溢出标志字段460指示字段450-1至450-m中对于SPA不包括一些未校正错误,OS、设备驱动器或应用可以读取或复制这些字段中的SPA。OS、设备驱动器或应用然后可以请求BIOS促使控制器实施一个或多个额外错误扫描来指示具有之前由于数据结构232/332的溢出问题而未被指示的所识别的未校正错误的那些DPA或如果那些DPA由控制器存储但由于溢出问题而未被指示则提供它们。BIOS可以将这些额外DPA转换成SPA,如上文提到的。
图5图示示例第一状态状态机。在一些示例中,如在图5中示出的,第一状态状态机包括状态状态机500。在一些示例中,NVDIMM(例如NVDIMM 205/305)的元件可以具有控制器,例如在图2-3中示出的控制器230/330。例如,控制器230/330可以包括电路234/334来实现逻辑和/或特征以根据状态状态机500指示错误扫描工作的状态。错误扫描可以识别和传达非易失性存储器(例如能够对NVDIMM 205/305提供持久存储器的非易失性/持久存储器260/354)处的错误位点。
根据一些示例,状态状态机500在状态510(闲置)开始,由电路实现以用于完成非易失性存储器的错误扫描的逻辑和/或特征可以具有闲置状态。对于这些示例,如在图5中示出的,闲置状态可以在NVDIMM的NVDIMM复位(例如,由于电力循环)后。闲置状态可以在NVDIMM处在数据结构(例如数据结构232/332)中指示。
从状态510移到状态520(错误扫描在进行中),由电路实现的逻辑和/或特征可以具有错误扫描进行中状态,其包括响应于BIOS(例如BIOS 214/314)请求错误扫描来扫描对于非易失性存储器的DPA范围。在一些实施例中,错误扫描进行中状态可以在数据结构中指示。
从状态520移到状态530(错误扫描完成),由电路实现的逻辑和/或特征可以具有错误扫描完成状态。在一些示例中,在达到该状态时,逻辑和/或特征可以对BIOS触发系统管理中断(SMI)。对于这些系统,在数据结构中指示具有未校正错误的DPA后可以达到状态530处的完成状态使得BIOS可以响应于触发的SMI访问那些DPA。由电路实现的逻辑和/或特征然后可以响应于另一个NVDMM复位而移回状态510的闲置状态。
图6图示示例第二状态状态机。在一些示例中,如在图6中示出的,第二状态状态机包括状态状态机600。在一些示例中,主机计算平台的BIOS(例如如图2-3中示出的主机计算平台210/310的BIOS 214/314)的逻辑和/或特征可以具有逻辑和/或特征来指示控制器的错误扫描工作的状态,例如具有能够对NVDIMM提供持久存储器的非易失性存储器(例如,非易失性或持久存储器260/354)的NVDIMM(例如,NVDIMM 205/305)上驻存的控制器230/330。指示的状态还可以包括在完成错误扫描工作后DPA到SAP转换的状态和结果何时被主机计算平台的其他元件(例如OS 215/315、设备驱动器216/316或App 218/318,如在图2-3中示出的)读取的指示。
根据一些示例,状态状态机600在状态610(闲置)开始,BIOS的逻辑和/或特征可以指示NVDIMM处的非易失性或持久存储器的错误扫描处于闲置状态。对于这些示例,如在图6中示出的,闲置状态可以在NVDIMM的NVDIMM复位之后。闲置状态可以在计算平台处的第一数据结构(例如数据结构213/313)中由这些逻辑和/或特征指示。
从状态610移到状态620(NVDIMM错误扫描在进行中),BIOS的逻辑和/或特征可以指示NVDIMM错误扫描通过控制器在进行中。在一些示例中,如在图6中示出的,在BIOS请求错误扫描后可以进入该状态。对于这些示例,逻辑和/或特征可以指示在第一数据结构中NVDIMM错误扫描在进行中。
从状态620移到状态630(NVDIMM错误扫描完成,DPA到SPA转换在进行中),BIOS的逻辑和/或特征可以指示控制器已经完成NVDIMM错误扫描并且DPA到SPA转换在进行中。在一些示例中,在BIOS轮询控制器处的第二数据结构(例如,数据结构232/332)来确定完成错误扫描时或在BIOS从控制器接收指示完成的SMI时可以进入该状态。
从状态630移到状态640(NVDIMM完成,结果准备供读取),BIOS的逻辑和/或特征可以指示已经完成NVDIMM错误扫描并且结果准备供主机计算平台的元件(例如OS 215/315、设备驱动器216/316或App 218/318)读取。根据一些示例,在完成具有识别的未校正错误的DPA到具有识别的未校正错误的SPA的转换后可以进入该状态。对于这些示例,具有识别的未校正错误的SPA可以存储到第一数据结构,其可以对主机计算平台的这些元件的OS、设备驱动器或App可访问以读取并且然后可能使用来避免将系统存储器映射到具有识别的未校正错误的那些SPA。BIOS的逻辑和/或特征然后可以响应于另一个NVDIMM复位来指示NVDIMM的错误扫描的闲置状态。
图7图示第一装置700的示例框图。如在图7中示出的,第一装置包括装置700。尽管图7中示出的装置700在某一拓扑中具有有限数量的元件,可以意识到装置700可以对于指定实现根据期望在备选拓扑中包括更多或更少的元件。
装置700可以由用于可耦合于主机计算平台的NVDIMM的控制器处所维持的电路720支持。电路720可以设置成执行一个或多个软件或固件实现的部件722-a。值得注意的是“a”和“b”和“c”以及如本文使用的相似指示符规定为代表任意正整数的变量。从而,例如,如果实现设置a=5的值,则部件722-a的软件或固件的完整集可以包括部件722-1、722-2、722-3、722-4或722-5。呈现的示例在该上下文中不受限制并且贯穿使用的不同变量可以代表相同或不同整数值。
根据一些示例,电路720可以包括处理器或处理器电路。该处理器或处理器电路可以是各种市售处理器中的任一个,其无限制地包括AMD® Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola® DragonBall®和PowerPC®处理器;IBM和Sony® Cell处理器;Intel® Atom®、Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Itanium®、Pentium®、Xeon®、Xeon Phi®和XScale®处理器;和相似的处理器。根据一些示例,电路720也可以是专用集成电路(ASIC)并且至少一些部件722-a可以实现为ASIC的硬件元件。
根据一些示例,装置700可以包括接收部件722-1。接收部件722-1可以由电路720执行以接收错误扫描请求。对于这些示例,错误扫描请求可以包括在扫描请求710中并且可以从主机计算平台的BIOS接收。BIOS可以通过控制器接口(其可以包括SMBus接口)与控制器通信耦合。错误扫描请求可以是针对扫描NVDIMM处的非易失性存储器,其能够对NVDIMM提供持久存储器。
在一些示例中,装置700还可以包括错误部件722-2。错误部件722-2可以由电路720执行以响应于错误扫描请求扫描非易失性存储器的DPA范围并且识别该DPA范围中的未校正错误。对于这些示例,扫描可以包括扫描通过DPA范围来产生数据值,其可以用于确定在范围中包括的一个或多个DPA处是否出现未校正错误。未校正错误和它们的关联DPA然后可以基于错误校正电路不能校正可能使用一个或多个类型的错误校正代码(例如Reed-Solomon代码)编码的错误而识别。具有识别的未校正错误的DPA可以至少暂时与错误位点信息723-a一起被维持(例如,维持在查找表(LUT)中)。
根据一些示例,装置700还可以包括指示部件722-3。指示部件722-3可以由电路720执行来对主机计算平台的BIOS指示具有识别的未校正错误的DPA。对于这些示例,指示部件722-3可以访问错误位点信息723-a并且可以在控制器处对BIOS也可访问的数据结构中指示具有未校正错误的DPA。位点730可以包括具有识别的未校正错误的那些DPA。指示部件722-3还可以在控制器处的数据结构中指示错误部件722-2的错误扫描的状态。状态740可以包括状态指示。
在一些示例中,装置700还可以包括中断部件722-4。中断部件722-4可以由电路720执行以响应于完成DPA范围的扫描向BIOS发送SMI。对于这些示例,SMI可以包括在SMI750中。
在一些示例中,装置700还可以包括标志部件722-5。标志部件722-5可以由电路720执行来设置标志以指示数据结构的容量不足以指示具有识别的未校正错误的DPA中的至少一些。对于这些示例,标志可以对BIOS指示具有识别的未校正错误的DPA中的一些未在数据结构中指示。标志可以包括在标志760中。
本文包括代表用于执行公开的架构的新颖方面的示例方法的逻辑流集。尽管为了解释的简单性目的,本文示出的一个或多个方法示出且描述为一系列动作,本领域内技术人员将理解并且意识到这些方法不受动作顺序的限制。一些动作可据此而采用与本文示出且描述的其他动作不同的顺序和/或与来自本文示出且描述的其他动作同时出现。例如,本领域内技术人员将理解并且意识到方法可以备选地表示为一系列相互关联的状态或事件,例如在状态图中。此外,对于新颖的实现可并不需要方法中图示的所有动作。
逻辑流可以在软件、固件和/或硬件中实现。在软件和固件实施例中,逻辑流可以由存储在至少一个非暂时性计算机可读介质或机器可读介质(例如光、磁或半导体存储)上的计算机可执行指令实现。实施例在该上下文中不受限制。
图8图示第一逻辑流的示例。如在图8中示出的,第一逻辑流包括逻辑流800。逻辑流800可以代表由本文描述的一个或多个逻辑、特征或设备(例如装置700)执行的操作中的一些或全部。更特定地,逻辑流800可以由接收部件722-1、错误部件722-2、指示部件722-3、中断部件722-4或标志部件722-5实现。
根据一些示例,逻辑流800在框802处可以在NVDIMM上驻存的控制器处接收错误扫描请求。对于这些示例,接收部件722-1可以接收错误扫描请求。
在一些示例中,逻辑流800在框804处可以响应于错误扫描请求扫描NVDIMM处的非易失性存储器的DPA范围,该非易失性存储器能够对NVDIMM提供持久存储器。对于这些示例,错误部件722-2可以扫描DPA范围。
根据一些示例,逻辑流800在框806处可以识别DPA范围中的未校正错误。对于这些示例,错误部件722-2可以对DPA范围中的未校正错误来识别DPA。
在一些示例中,逻辑流800在框808处可以对与NVDIMM耦合的主机计算平台的BIOS指示具有识别的未校正错误的DPA。对于这些示例,指示部件722-3可以在对BIOS可访问的数据结构中指示DPA。
图9图示第一存储介质的示例。如在图9中示出的,第一存储介质包括存储介质900。该存储介质900可以包括制造物品。在一些示例中,存储介质900可以包括任何非暂时性计算机可读介质或机器可读介质,例如光、磁或半导体存储。存储介质900可以存储各种类型的计算机可执行指令,例如实现逻辑流800的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等。计算机可执行指令的示例可以包括任何适合类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码及类似物。示例在该上下文中不受限制。
图10图示第二装置的示例框图。如在图10中示出的,第二装置包括装置1000。尽管图10中示出的装置1000在某一拓扑或配置中具有有限数量的元件,可以意识到装置1000可以对于指定实现根据期望在备选配置中包括更多或更少的元件。
装置1000可以被主机计算平台处维持的电路1020支持来实现主机计算平台的BIOS的逻辑和/或特征。电路1020可以设置成执行一个或多个软件或固件实现的部件1022-a。值得注意的是“a”和“b”和“c”以及如本文使用的相似指示符规定为代表任意正整数的变量。从而,例如,如果实现设置a=7的值,则部件1022-a的软件或固件的完整集可以包括部件1022-1、1022-2、1022-3、1022-4、1022-5、1022-6或1022-7。呈现的示例在该上下文中不受限制并且贯穿使用的不同变量可以代表相同或不同整数值。
在一些示例中,如在图10中示出的,装置1000包括电路1020。电路1020大体上可以设置成执行一个或多个软件和/或固件部件1022-a。电路1020可以是主机计算平台的电路的部分,其包括处理核(例如,用作中央处理单元(CPU))。备选地,电路1020可以是主机计算平台的芯片集中的电路的部分。在任一情景中,电路1020可以是各种市售处理器中的任一个的一部分以包括但不限于之前对装置700的电路720提到的那些。电路1020还可以是双微处理器、多核处理器和其他多处理器架构的部分。根据一些示例,电路1020还可以是ASIC并且部件1022-a可以实现为ASIC的硬件元件。
根据一些示例,装置1000可以包括请求部件1022-1。请求部件1022-1可以由电路1020执行以向与主机计算平台(其包括装置1000)耦合的NVDIMM上驻存的控制器发送错误扫描请求。NVDIMM可以具有非易失性存储器,其能够对NVDIMM提供持久存储器。错误扫描请求可以是针对对未校正错误扫描非易失性存储器。对于这些示例,请求部件1022-1可以经由NVDIMM处的控制器接口来访问NVDIMM处的数据结构(例如,寄存器)并且可以响应于NVDIMM复位1005来发送扫描请求1010,其包括错误扫描请求。
在一些示例中,装置1000还可以包括状态部件1022-2。状态部件1022-2可以由电路1020执行以基于轮询NVDIMM处的数据结构的字段或寄存器来确定控制器是否已经完成错误扫描。对于这些示例,NVDIMM状态1015可以包括这样的对数据结构轮询的结果。
根据一些示例,装置1000还可以包括SMI部件1022-3。SMI部件1022-3可以由电路1020执行来接收由控制器在完成错误扫描并且识别具有未校正错误的DPA时发送的SMI。对于这些示例,SMI可以包括在SMI 1040中。
在一些示例中,装置1000还可以包括读取部件1022-4。读取部件1022-4可以由电路1020执行来访问NVDIMM处的数据结构以读取具有由控制器在扫描DPA范围期间识别的所识别的未校正错误的DPA。对于这些示例,读取DPA可以包括在DPA位点1035中。
根据一些示例,装置1000还可以包括转换部件1022-5。转换部件1022-5可以由电路1020执行来将具有识别的未校正错误的DPA转换成具有识别的未校正错误的SPA。对于这些示例,转换部件1022-5可以至少使这些SPA与错误位点信息1023-a一起维持(例如,在LUT中)。
根据一些示例,装置1000还可以包括存储部件1022-6。存储部件1022-6可以由电路1020执行来将具有识别的未校正错误的SPA存储到主机计算平台处的数据结构。主机计算平台处的该数据结构可以对主机计算平台的OS、设备驱动器或应用可访问。对于这些示例,存储部件1022-6可以首先从错误位点信息1023-a获得SPA并且在SPA位点1045中包括具有识别的未校正错误的SPA。
根据一些示例,装置1000还可以包括标志部件1022-7。标志部件1022-7可以由电路1020执行以确定NVDIMM处的控制器经由标志1050在NVDIMM处的数据结构中设置标志,该标志1050指示NVDIMM处的数据结构的容量不足以指示具有未校正的错误的DPA中的至少一些。标志部件1022-7然后可以经由指示该相同信息的标志1055在主机计算平台处设置另一个标志。对于这些示例,OS、设备驱动器或应用可以使用标志1055来确定对于SPA位点1045未包括所有未校正错误并且主机计算平台的这些元件可以相应地作出反应。
装置1000的各种部件和主机计算平台(其包括装置1000)可以通过各种类型的通信介质而彼此通信耦合来协调操作。协调可以牵涉单向或双向信息交换。例如,部件可以采用通过通信介质传达的信号的形式传达信息。信息可以实现为对各种信号线分配的信号。在这样的分配中,每个消息是信号。然而,另外的实施例可以备选地采用数据消息。这样的数据消息可以跨各种部件发送。示例连接包括并行接口、串行接口和总线接口。
本文包括代表用于执行公开的架构的新颖方面的示例方法的逻辑流集。尽管为了解释的简单性目的,本文示出的一个或多个方法示出且描述为一系列动作,本领域内技术人员将理解并且意识到这些方法不受动作顺序的限制。一些动作可据此而采用与本文示出且描述的其他动作不同的顺序和/或与来自本文示出且描述的其他动作同时出现。例如,本领域内技术人员将理解并且意识到方法可以备选地表示为一系列相互关联的状态或事件,例如在状态图中。此外,对于新颖的实现可并不需要方法中图示的所有动作。
逻辑流可以在软件、固件和/或硬件中实现。在软件和固件实施例中,逻辑流可由存储在至少一个非暂时性计算机可读介质或机器可读介质(例如光、磁或半导体存储)上的计算机可执行指令实现。实施例在该上下文中不受限制。
图11图示第二逻辑流的示例。如在图11中示出的,第二逻辑流包括逻辑流1100。逻辑流1100可以代表由本文描述的一个或多个逻辑、特征或设备(例如装置1000)执行的操作中的一些或全部。更特定地,逻辑流1100可以由请求部件1022-1、状态部件1022-2、SMI部件1022-3、读取部件1022-4、转换部件1022-5、存储部件1022-6或标志部件1022-7实现。
在图11中示出的图示示例中,逻辑流1100在框1102处可以从设置成实现主机计算平台的BIOS的电路向耦合于主机计算平台的NVDIMM上驻存的控制器发送错误扫描请求,该NVDIMM具有能够对NVDIMM提供持久存储器的非易失性存储器。对于这些示例,请求部件1022-1可以促使发送状态请求。
根据一些示例,逻辑流1100在框1104处可以确定控制器完成响应于错误扫描请求对非易失性存储器的DPA范围的扫描。对于这些示例,状态部件1022-2可以做出该确定。
根据一些示例,逻辑流1100在框1106处可以访问NVDIMM处驻存的第一数据结构来读取具有由控制器在扫描DPA范围期间识别的所识别的未校正错误的DPA。对于这些示例,读取部件1022-3可以访问第一数据结构来读取DPA。
在一些示例中,逻辑流1100在框1108处可以将具有识别的未校正错误的DPA转换成具有识别的不可校正错误的SPA。对于这些示例,转换部件1022-5可以将DPA转换成SPA。
根据一些示例,逻辑流1100在框1110处可以将具有识别的不可校正错误的SPA存储到对主机计算设备的操作系统或设备驱动器可访问的第二数据结构。对于这些示例,存储部件1022-6可以促使将SPA存储到第二数据结构。
图12图示第二存储介质的示例。如在图12中示出的,第二存储介质包括存储介质1200。存储介质1200可以包括制造物品。在一些示例中,存储介质1200可以包括任何非暂时性计算机可读介质或机器可读介质,例如光、磁或半导体存储。存储介质1200可以存储各种类型的计算机可执行指令,例如实现逻辑流1100的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等。计算机可执行指令的示例可以包括任何适合类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码及类似物。示例在该上下文中不受限制。
图13图示示例计算平台1300。在一些示例中,如在图13中示出的,计算平台1300可以包括处理部件1340、其他平台部件或通信接口1360。根据一些示例,计算平台1300可以是主机计算平台的部分,如上文提到的。
根据一些示例,处理部件1340可以执行对于装置1000和/或存储介质1200的处理操作或逻辑。处理部件1340可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、设备驱动器、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件部件、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否使用硬件元件和/或软件元件实现可以根据许多因素而变化,例如期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如对于指定示例所期望。
在一些示例中,其他平台部件1350可以包括共同计算元件,例如一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片集、控制器、外设、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件(例如,数字显示器)、电力供应等。存储器单元的示例可以无限制地包括采用一个或多个更高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡、例如独立盘冗余阵列(RAID)驱动器等设备阵列、固态存储器设备(例如,USB存储器)、固态驱动器(SSD)和适合于存储信息的任何其他类型的存储介质。
在一些示例中,通信接口1360可以包括逻辑和/或特征来支持通信接口。对于这些示例,通信接口1360可以包括一个或多个通信接口,其根据各种通信协议或标准操作以通过直接或网络通信链路通信。直接通信可以经由使用在一个或多个工业标准(其包括子代和变体)中描述的通信协议或标准而发生,例如与SMBus规范、PCI Express规范关联的那些。网络通信可以经由使用通信协议或标准而发生,例如在电气和电子工程师协会(IEEE)颁布的一个或多个以太网标准中描述的那些。例如,一个这样的以太网标准可以包括2008年12月发布的IEEE 802.3-2008:载波感测多址冲突检测(CSMA/CD)接入法和物理层规范(在下文“IEEE 802.3”)。
计算平台1300可以是计算设备的部分,其例如可以是服务器、服务器阵列或服务器场、web服务器、网络服务器、互联网服务器、工作站、微型计算机、主计算机、超级计算机、网络电器、web电器、分布式计算系统、多处理器系统、基于处理器的系统或其组合。因此,如适当期望的,本文描述的计算平台1300的功能和/或特定配置可以包括在计算平台1300的各种实施例中或在其中省略。
计算平台1300的部件和特征可以使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合实现。此外,在适当情况下,计算平台1300的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现。注意硬件、固件和/或软件元件可以在本文共同或单独称为“逻辑”或“电路”。
应意识到在图13的框图中示出的示例计算平台1300可以代表许多潜在实现的一个功能描述示例。因此,在附图中描绘的块功能的划分、省略或包含并未推断用于实现这些功能的硬件部件、电路、软件和/或元件将必定在实施例中划分、省略或包括。
图14图示示例NVDIMM控制器1400。在一些示例中,如在图14中示出的,NVDIMM控制器1400可以包括处理部件1440、其他平台部件1450或通信接口1460。根据一些示例,NVDIMM控制器1400可以在耦合于主机计算平台的NVDIMM上驻存或与之一起驻存的NVDIMM控制器中实现。
根据一些示例,处理部件1440可以执行对于装置700和/或存储介质900的处理操作或逻辑。处理部件1440可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。软件元件的示例可以包括软件部件、程序、应用、计算机程序、应用程序、设备驱动器、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否使用硬件元件和/或软件元件实现可以根据许多因素而变化,例如期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如对于指定示例所期望的。
在一些示例中,其他控制器部件1450可以包括共同计算元件,例如一个或多个处理器、多核处理器、协同处理器、存储器单元、接口、振荡器、定时设备等。存储器单元的示例可以无限制地包括采用一个或多个更高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,例如ROM、RAM、DRAM、DDRAM、SDRAM、SRAM、PROM、EPROM、EEPROM、闪速存储器或适合于存储信息的任何其他类型的存储介质。
在一些示例中,通信接口1460可以包括逻辑和/或特征来支持通信接口。对于这些示例,通信接口1460可以包括一个或多个通信接口,其根据各种通信协议或标准操作以通过通信链路或通道通信。通信可以经由使用在一个或多个工业标准(其包括子代和变体)中描述的通信协议或标准而发生,例如与PCI Express规范或SMBus规范关联的那些。
NVDIMM控制器1400的部件和特征可以使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合实现。此外,在适当情况下,NVDIMM控制器1400的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现。注意硬件、固件和/或软件元件可以在本文共同或单独称为“逻辑”或“电路”。
应意识到在图14的框图中示出的示例NVDIMM控制器1400可以代表许多潜在实现的一个功能描述示例。因此,在附图中描绘的块功能的划分、省略或包含并未推断用于实现这些功能的硬件部件、电路、软件和/或元件将必定在实施例中划分、省略或包括。
至少一个示例的一个或多个方面可以由存储在至少一个机器可读介质上的代表性指令来实现,该机器可读介质代表处理器内的各种逻辑,其在被机器、计算设备或系统读取时促使该机器、计算设备或系统制造逻辑来执行本文描述的技术。这样的表示可以存储在有形的机器可读介质上并且供应给各种客户或制造设施来装入实际上制作逻辑或处理器的制造机器。
各种示例可以使用硬件元件、软件元件或两者的组合来实现。在一些示例中,硬件元件可以包括设备、部件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等)、集成电路、ASIC、PLD、DSP、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等。在一些示例中,软件元件可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否使用硬件元件和/或软件元件实现可根据许多因素而变化,例如期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如对于给定实现所期望的。
一些示例可以包括制造物品或至少一个计算机可读介质。计算机可读介质可以包括非暂时性存储介质来存储逻辑。在一些示例中,非暂时性存储介质可以包括能够存储电子数据的一个或多个类型的计算机可读存储介质,其包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等。在一些示例中,逻辑可以包括各种软件元件,例如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
根据一些示例,计算机可读介质可以包括非暂时性存储介质来存储或维持指令,其在由机器、计算设备或系统执行时促使该机器、计算设备或系统根据描述的示例执行方法和/或操作。指令可以包括任何适合类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码及类似物。指令可以根据预定义计算机语言、方式或语法实现,用于指示机器、计算设备或系统执行某一功能。指令可以使用任何适合的高级、低级、面向对象、视觉、编译和/或解释性编程语言来实现。
一些示例可以使用表达“在一个示例中”或“示例”连同它们的派生物来描述。这些术语意指连同示例描述的特定特征、结构或特性包括在至少一个示例中。短语“在一个示例中”在说明书中的各种地方中的出现不一定都指相同示例。
一些示例可以使用表达“耦合”和“连接”连同它们的派生物来描述。这些术语不一定规定为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或以上元件彼此直接物理或电接触。然而,术语“耦合”还可以意指两个或以上元件彼此不直接接触,但仍彼此共同操作或交互。
下列示例关于本文公开的技术的额外示例。
示例1. 示例装置可以包括NVDIMM上驻存的控制器处的电路。该装置还可以包括接收部件以供电路执行来接收错误扫描请求。装置还可以包括错误部件以供电路执行。响应于错误扫描请求,错误部件可以扫描NVDIMM处的非易失性存储器的设备物理地址范围并且识别该设备物理地址范围中的未校正错误。对于该示例,非易失性存储器可以能够对NVDIMM提供持久存储器。装置还可以包括指示部件以供电路执行来对与NVDIMM耦合的计算平台的BIOS指示具有识别的未校正错误的设备物理地址。
示例2. 示例1的装置还可以包括中断部件以供电路执行以响应于完成设备物理地址范围的扫描而向BIOS发送系统管理中断。
示例3. 示例1的装置,指示部件指示具有识别的未校正错误的设备物理地址可以包括经由NVDIMM处驻存的第一数据结构来指示。对于该示例,BIOS可以能够访问第一数据结构来读取指示的设备物理地址并且将设备物理地址转换成系统物理地址,其然后维持在对计算平台的操作系统或设备驱动器可访问的第二数据结构中。
示例4. 示例3的装置,第一数据结构可以包括驻存在NVDIMM上的第一寄存器,其对控制器和BIOS可访问。对于该示例,第二数据结构可以包括驻存在计算平台上的第二寄存器,其对BIOS和操作系统或设备驱动器可访问。
示例5. 示例3的装置,指示部件可以经由第一数据结构对BIOS指示错误扫描状态,其包括闲置状态、进行中状态或完成状态中的一个。
示例6. 示例3的装置还可以包括标志部件以供电路执行来设置标志以指示数据结构的容量不足以指示具有识别的未校正错误的设备物理地址中的至少一些。
示例7. 示例1的装置,接收部件可以在计算平台的电力循环或NVDIMM复位后接收错误扫描请求。
示例8. 示例1的装置,非易失性存储器可以包括3维交叉点存储器、闪速存储器、铁电存储器、SONOS、聚合物存储器、纳米线、FeTRAM或FeRAM中的至少一个。
示例9. 方法可以包括在NVDIMM上驻存的控制器处接收错误扫描请求。该方法还可以包括响应于错误扫描请求扫描NVDIMM处的非易失性存储器的设备物理地址范围。对于该示例,非易失性存储器可以能够对NVDIMM提供持久存储器。方法还可以包括识别设备物理地址范围中的未校正错误并且对与NVDIMM耦合的计算平台的BIOS指示具有识别的未校正错误的设备物理地址。
示例10. 示例9的方法还可以包括响应于完成设备物理地址范围的扫描来向BIOS发送系统管理中断。
示例11. 示例9的方法,指示具有识别的未校正错误的设备物理地址可以包括经由NVDIMM处驻存的第一数据结构来指示。对于该示例,BIOS可以能够访问第一数据结构来读取指示的设备物理地址并且将设备物理地址转换成系统物理地址,其然后维持在对计算平台的操作系统或设备驱动器可访问的第二数据结构中。
示例12. 示例11的方法,第一数据结构可以包括驻存在NVDIMM上的第一寄存器,其对控制器和BIOS可访问。对于该示例,第二数据结构可以包括驻存在计算平台上的第二寄存器,其对BIOS和操作系统或设备驱动器可访问。
示例13. 示例11的方法还可以包括经由第一数据结构对BIOS指示错误扫描状态,其包括闲置状态、进行中状态或完成状态中的一个。
示例14. 示例11的方法还可以包括设置标志来指示数据结构的容量不足以指示具有识别的未校正错误的设备物理地址中的至少一些。
示例15. 示例的方法,在计算平台的电力循环或NVDIMM复位后接收错误扫描请求。
示例16. 示例9的方法,非易失性存储器可以包括3维交叉点存储器、闪速存储器、铁电存储器、SONOS、聚合物存储器、纳米线、FeTRAM或FeRAM中的至少一个。
示例17. 至少一个机器可读介质可以包括多个指令,其响应于被NVDIMM上驻存的控制器执行而可以促使控制器实施根据示例9至16中的任一个的方法。
示例18. 装置可以包括用于执行示例9至16中的任一个的方法的部件。
示例19. 至少一个机器可读介质,其包括多个指令,这些指令响应于被非易失性双列直插式存储器模块NVDIMM上驻存的控制器执行而可以促使控制器接收错误扫描请求。指令还可以促使控制器响应于错误扫描请求扫描NVDIMM处的非易失性存储器的设备物理地址范围。对于该示例,非易失性存储器可以能够对NVDIMM提供持久存储器。指令还可以促使控制器识别设备物理地址范围中的未校正错误并且对与NVDIMM耦合的计算平台的BIOS指示具有识别的未校正错误的设备物理地址。
示例20. 示例19的至少一个机器可读介质,指令还可以促使控制器响应于完成设备物理地址范围的扫描来向BIOS发送系统管理中断。
示例21. 示例19的至少一个机器可读介质,指示具有识别的未校正错误的设备物理地址可以包括经由NVDIMM处驻存的第一数据结构来指示。对于该示例,BIOS可以能够访问第一数据结构来读取指示的设备物理地址并且将设备物理地址转换成系统物理地址,其然后维持在对计算平台的操作系统或设备驱动器可访问的第二数据结构中。
示例22. 示例21的至少一个机器可读介质,第一数据结构可以包括驻存在NVDIMM上的第一寄存器,其对控制器和BIOS可访问。第二数据结构可以包括驻存在计算平台上的第二寄存器,其对BIOS和操作系统或设备驱动器可访问。
示例23. 示例21的至少一个机器可读介质,指令还可以促使控制器经由第一数据结构对BIOS指示错误扫描状态,其包括闲置状态、进行中状态或完成状态中的一个。
示例24. 示例21的至少一个机器可读介质,指令还可以促使控制器设置标志以指示数据结构的容量不足以指示具有识别的未校正错误的设备物理地址中的至少一些。
示例25. 示例19的至少一个机器可读介质,在计算平台的电力循环或NVDIMM复位后接收错误扫描请求。
示例26. 示例19所述的至少一个机器可读介质,非易失性存储器包括3维交叉点存储器、闪速存储器、铁电存储器、SONOS、聚合物存储器、纳米线、FeTRAM或FeRAM中的至少一个。
示例27. 方法可以包括从设置成实现计算平台的BIOS的电路向耦合于计算平台的NVDIMM上驻存的控制器发送错误扫描请求。对于该示例,NVDIMM可以具有非易失性存储器,其能够对NVDIMM提供持久存储器。方法还可以包括确定控制器完成响应于错误扫描请求对非易失性存储器的设备物理地址范围的扫描。方法还可以包括访问NVDIMM处驻存的第一数据结构来读取具有由控制器在设备物理地址范围的扫描期间识别的所识别的未校正错误的设备物理地址并且将具有识别的未校正错误的设备物理地址转换成具有识别的未校正错误的系统物理地址。
示例28. 示例27的方法还可以包括将具有识别的未校正错误的系统物理地址存储到第二数据结构,其对计算平台的操作系统或设备驱动器可访问。
示例29. 示例28的方法,操作系统或设备驱动器可以能够使用具有识别的未校正错误的系统物理地址以避免将对于计算平台的系统存储器映射到具有识别的未校正错误的那些系统物理地址。
示例30. 示例28的方法,第一数据结构可以包括驻存在NVDIMM上的第一寄存器,其对控制器和BIOS可访问。对于该示例,第二数据结构可以包括驻存在计算平台上的第二寄存器,其对BIOS和操作系统或设备驱动器可访问。
示例31. 示例28的方法,确定控制器完成扫描可以基于轮询第一数据结构。对于该示例,第一数据结构可以能够在轮询时对BIOS指示错误扫描状态。对于该示例,错误扫描状态还可以包括进行中状态或完成状态中的一个。
示例32. 示例28的方法还可以包括确定控制器在第一数据结构中设置标志,其指示第一数据结构的容量不足以指示具有未校正错误的设备物理地址中的至少一些。方法还可以包括对操作系统或设备驱动器指示对于存储在第二数据结构中的具有识别的未校正错误的系统物理地址不包括至少一些未校正的错误。
示例33. 示例27的方法,发送错误扫描请求可以在计算平台的电力循环或NVDIMM复位后。
示例34. 示例27的方法,非易失性存储器可以包括3维交叉点存储器、闪速存储器、铁电存储器、SONOS、聚合物存储器、纳米线、FeTRAM或FeRAM中的至少一个。
示例35. 至少一个机器可读介质可以包括多个指令,其响应于被计算平台处的系统执行而可以促使该系统实施根据示例27至34中的任一个的方法。
示例36. 装置可以包括用于执行示例27至34中的任一个的方法的部件。
示例37. 至少一个机器可读介质可以包括多个指令,其响应于被系统执行而可以促使该系统向耦合于计算平台的NVDIMM上驻存的控制器发送错误扫描请求,该系统具有设置成实现计算平台的BIOS的电路。对于该示例,NVDIMM可以具有非易失性存储器,其能够对NVDIMM提供持久存储器。指令还可以促使系统确定控制器完成响应于错误扫描请求对非易失性存储器的设备物理地址范围的扫描。指令还可以促使系统访问NVDIMM处驻存的第一数据结构来读取具有由控制器在设备物理地址范围的扫描期间识别的所识别的未校正错误的设备物理地址并且将具有识别的未校正错误的设备物理地址转换成具有识别的未校正错误的系统物理地址。
示例38. 示例37的至少一个机器可读介质,指令还可以促使系统将具有识别的未校正错误的系统物理地址存储到对计算平台的操作系统或设备驱动器可访问的第二数据结构。
示例39. 示例38的至少一个机器可读介质,操作系统或设备驱动器可以能够使用具有识别的未校正错误的系统物理地址以避免将对于计算平台的系统存储器映射到具有识别的未校正错误的那些系统物理地址。
示例40. 示例38的至少一个机器可读介质,第一数据结构可以包括驻存在NVDIMM上的第一寄存器,其对控制器和BIOS可访问。对于该示例,第二数据结构可以包括驻存在计算平台上的第二寄存器,其对BIOS和操作系统或设备驱动器可访问。
示例41. 示例38的至少一个机器可读指令,指令可以进一步促使系统基于轮询第一数据结构确定控制器完成扫描。对于该示例,第一数据结构可以能够在轮询时对BIOS指示错误扫描状态。错误扫描状态还可以包括进行中状态或完成状态中的一个。
示例42. 示例38的至少一个机器可读介质,指令还可以促使系统确定控制器在第一数据结构中设置标志,其指示第一数据结构的容量不足以指示具有未校正错误的设备物理地址中的至少一些。指令还可以促使系统对操作系统或设备驱动器指示对于在第二数据结构中存储的具有识别的未校正错误的系统物理地址不包括至少一些未校正的错误。
示例43. 示例37的至少一个机器可读介质,可以在计算平台的电力循环或NVDIMM复位后发送错误扫描请求。
示例44. 示例37的至少一个机器可读介质,非易失性存储器可以包括3维交叉点存储器、闪速存储器、铁电存储器、SONOS、聚合物存储器、纳米线、FeTRAM或FeRAM中的至少一个。
强调提供本公开的摘要以遵守37 C.F.R.章节1.72(b),从而需要将允许读者快速弄清本技术公开的本质的摘要。提交摘要要理解为它将不用于解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到为了简化公开的目的而在单个实施例中将各种特征组合在一起。该公开的方法不解释为反映要求保护的示例比在每个权利要求中明确详述的特征要求更多特征这样的意图。相反,如下列权利要求反映的,发明性主旨在于比单个公开的示例的所有特征要少。从而,下列权利要求以此并入详细描述,其中每个权利要求立足于它自身作为独立的示例。在附上的权利要求中,术语“包括”和“在…中”分别用作相应术语“包含”和“其中”的简明语言等同物。此外,术语“第一”、“第二”、“第三”等仅用作标号,并且不意在对它们的对象施加数值要求。
尽管主旨已经以结构特征和/或方法行为特定的语言描述,要理解在附上的权利要求中限定的主旨不一定局限于上文描述的特定特征或动作。相反,上文描述的特定特征和动作作为实现权利要求的示例形式而公开。

Claims (31)

1.一种用于处理非易失性双列直插式存储器模块中的持久存储器的错误的装置,其包括:
非易失性双列直插式存储器模块NVDIMM上驻存的控制器处的电路;
接收部件,用于供所述电路执行来接收错误扫描请求;
错误部件,用于供所述电路执行以响应于所述错误扫描请求来扫描所述NVDIMM处的非易失性存储器的设备物理地址范围并且识别所述设备物理地址范围中的未校正错误,所述非易失性存储器能够对所述NVDIMM提供持久存储器;以及
指示部件,用于供所述电路执行来对与所述NVDIMM耦合的计算平台的基本输入/输出系统BIOS指示具有识别的未校正错误的设备物理地址,
其中指示部件指示具有识别的未校正错误的设备物理地址包括经由所述NVDIMM处驻存的第一数据结构来指示,所述BIOS能够访问所述第一数据结构来读取指示的设备物理地址并且将所述设备物理地址转换成系统物理地址,其然后维持在对所述计算平台的操作系统或设备驱动器是可访问的第二数据结构中。
2.如权利要求1所述的装置,其包括:
中断部件,用于供所述电路执行以响应于完成所述设备物理地址范围的扫描而向所述BIOS发送系统管理中断。
3.如权利要求1所述的装置,其包括所述第一数据结构,所述第一数据结构包括驻存在所述NVDIMM上的第一寄存器,其对所述控制器和所述BIOS是可访问的,所述第二数据结构包括驻存在所述计算平台上的第二寄存器,其对所述BIOS和所述操作系统或所述设备驱动器是可访问的。
4.如权利要求1所述的装置,其包括所述指示部件以经由所述第一数据结构对所述BIOS指示错误扫描状态,其包括闲置状态、进行中状态或完成状态中的一个。
5.如权利要求1所述的装置,其包括:
标志部件,用于供所述电路执行来设置标志以指示所述第一数据结构的容量不足以指示具有识别的未校正错误的设备物理地址中的至少一些。
6.如权利要求1所述的装置,其包括所述接收部件以在所述计算平台的电力循环或所述NVDIMM复位后接收所述错误扫描请求。
7.如权利要求1的所述装置,所述非易失性存储器包括3维交叉点存储器、闪速存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、聚合物存储器、纳米线存储器或铁电晶体管随机存取存储器FeTRAM或FeRAM中的至少一个。
8.一种用于处理非易失性双列直插式存储器模块中的持久存储器的错误的方法,其包括:
在非易失性双列直插式存储器模块NVDIMM上驻存的控制器处接收错误扫描请求;
响应于所述错误扫描请求扫描所述NVDIMM处的非易失性存储器的设备物理地址范围,所述非易失性存储器能够对所述NVDIMM提供持久存储器;
识别所述设备物理地址范围中的未校正错误;以及
对与所述NVDIMM耦合的计算平台的基本输入/输出系统BIOS指示具有识别的未校正错误的设备物理地址,
其中指示具有识别的未校正错误的设备物理地址包括经由所述NVDIMM处驻存的第一数据结构来指示,所述BIOS能够访问所述第一数据结构来读取指示的设备物理地址并且将所述设备物理地址转换成系统物理地址,其然后维持在对所述计算平台的操作系统或设备驱动器是可访问的第二数据结构中。
9.如权利要求8所述的方法,其包括:
响应于完成所述设备物理地址范围的扫描来向所述BIOS发送系统管理中断。
10.如权利要求9所述的方法,其包括所述第一数据结构,所述第一数据结构包括驻存在所述NVDIMM上的第一寄存器,其对所述控制器和所述BIOS是可访问的,所述第二数据结构包括驻存在所述计算平台上的第二寄存器,其对所述BIOS和所述操作系统或所述设备驱动器是可访问的。
11.如权利要求9所述的方法,其包括:
经由所述第一数据结构对所述BIOS指示错误扫描状态,其包括闲置、进行中状态或完成状态中的一个。
12.如权利要求9所述的方法,其包括:
设置标志来指示所述第一数据结构的容量不足以指示具有所述识别的未校正错误的设备物理地址中的至少一些。
13.至少一个机器可读介质,包括多个指令,其响应于由非易失性双列直插式存储器模块(NVDIMM)上驻存的控制器执行而促使控制器实施根据权利要求8至12中的任一个的方法。
14.一种在计算平台处实现的方法,所述方法包括:
从设置成实现计算平台的基本输入/输出系统BIOS的电路向耦合于所述计算平台的非易失性双列直插式存储器模块NVDIMM上驻存的控制器发送错误扫描请求,所述NVDIMM具有非易失性存储器,其能够对所述NVDIMM提供持久存储器;
确定所述控制器完成响应于所述错误扫描请求对所述非易失性存储器的设备物理地址范围的扫描;
访问所述NVDIMM处驻存的第一数据结构来读取具有识别的未校正错误的设备物理地址,所述识别的未校正错误由所述控制器在所述设备物理地址范围的扫描期间所识别;
将具有识别的未校正错误的设备物理地址转换成具有识别的未校正错误的系统物理地址;以及
将具有识别的未校正错误的系统物理地址存储到第二数据结构,其对所述计算平台的操作系统或设备驱动器是可访问的。
15.如权利要求14所述的方法,所述操作系统或设备驱动器能够使用具有识别的未校正错误的系统物理地址以避免将对于所述计算平台的系统存储器映射到具有识别的未校正错误的那些系统物理地址。
16.如权利要求14所述的方法,其包括所述第一数据结构,所述第一数据结构包括驻存在所述NVDIMM上的第一寄存器,其对所述控制器和所述BIOS是可访问的,所述第二数据结构包括驻存在所述计算平台上的第二寄存器,其对所述BIOS和所述操作系统或所述设备驱动器是可访问的。
17.如权利要求14所述的方法,其包括基于轮询所述第一数据结构确定所述控制器完成扫描,所述第一数据结构能够在轮询时对所述BIOS指示错误扫描状态,所述错误扫描状态包括进行中状态或完成状态中的一个。
18.如权利要求14所述的方法,其包括:
确定所述控制器在所述第一数据结构中设置标志,其指示所述第一数据结构的容量不足以指示具有未校正错误的设备物理地址中的至少一些;以及
对所述操作系统或设备驱动器指示对于存储在所述第二数据结构中的具有识别的未校正错误的系统物理地址不包括至少一些未校正的错误。
19.如权利要求14所述的方法,其包括在所述计算平台的电力循环或所述NVDIMM复位后发送错误扫描请求。
20.至少一个机器可读介质,包括多个指令,其响应于由计算平台处的系统执行而促使所述系统实施根据权利要求14至19中的任一个的方法。
21.一种用于处理非易失性双列直插式存储器模块中的持久存储器的错误的装置,其包括:
用于在非易失性双列直插式存储器模块NVDIMM上驻存的控制器处接收错误扫描请求的部件;
用于响应于所述错误扫描请求扫描所述NVDIMM处的非易失性存储器的设备物理地址范围的部件,所述非易失性存储器能够对所述NVDIMM提供持久存储器;
用于识别所述设备物理地址范围中的未校正错误的部件;以及
用于对与所述NVDIMM耦合的计算平台的基本输入/输出系统BIOS指示具有识别的未校正错误的设备物理地址的部件,
其中所述指示具有识别的未校正错误的设备物理地址的部件包括用于经由所述NVDIMM处驻存的第一数据结构来指示,所述BIOS能够访问所述第一数据结构来读取指示的设备物理地址并且将所述设备物理地址转换成系统物理地址,其然后维持在对所述计算平台的操作系统或设备驱动器是可访问的第二数据结构中的部件。
22.如权利要求21所述的装置,其包括:
用于响应于完成所述设备物理地址范围的扫描来向所述BIOS发送系统管理中断的部件。
23.如权利要求21所述的装置,其包括所述第一数据结构,所述第一数据结构包括驻存在所述NVDIMM上的第一寄存器,其对所述控制器和所述BIOS是可访问的,所述第二数据结构包括驻存在所述计算平台上的第二寄存器,其对所述BIOS和所述操作系统或所述设备驱动器是可访问的。
24.如权利要求21所述的装置,其包括:
用于经由所述第一数据结构对所述BIOS指示错误扫描状态的部件,所述错误扫描状态包括闲置、进行中状态或完成状态中的一个。
25.如权利要求21所述的装置,其包括:
用于设置标志来指示所述第一数据结构的容量不足以指示具有所述识别的未校正错误的设备物理地址中的至少一些的部件。
26.一种在计算平台处实现的装置,所述装置包括:
用于从设置成实现计算平台的基本输入/输出系统BIOS的电路向耦合于所述计算平台的非易失性双列直插式存储器模块NVDIMM上驻存的控制器发送错误扫描请求的部件,所述NVDIMM具有非易失性存储器,其能够对所述NVDIMM提供持久存储器;
用于确定所述控制器完成响应于所述错误扫描请求对所述非易失性存储器的设备物理地址范围的扫描的部件;
用于访问所述NVDIMM处驻存的第一数据结构来读取具有识别的未校正错误的设备物理地址的部件,所述识别的未校正错误由所述控制器在所述设备物理地址范围的扫描期间所识别;
用于将具有识别的未校正错误的设备物理地址转换成具有识别的未校正错误的系统物理地址的部件;以及
用于将具有识别的未校正错误的系统物理地址存储到第二数据结构的部件,所述第二数据结构对所述计算平台的操作系统或设备驱动器是可访问的。
27.如权利要求26所述的装置,所述操作系统或设备驱动器能够使用具有识别的未校正错误的系统物理地址以避免将对于所述计算平台的系统存储器映射到具有识别的未校正错误的那些系统物理地址。
28.如权利要求26所述的装置,其包括所述第一数据结构,所述第一数据结构包括驻存在所述NVDIMM上的第一寄存器,其对所述控制器和所述BIOS是可访问的,所述第二数据结构包括驻存在所述计算平台上的第二寄存器,其对所述BIOS和所述操作系统或所述设备驱动器是可访问的。
29.如权利要求26所述的装置,其包括用于基于轮询所述第一数据结构确定所述控制器完成扫描的部件,所述第一数据结构能够在轮询时对所述BIOS指示错误扫描状态,所述错误扫描状态包括进行中状态或完成状态中的一个。
30.如权利要求26所述的装置,其包括:
用于确定所述控制器在所述第一数据结构中设置标志的部件,所述标志指示所述第一数据结构的容量不足以指示具有未校正错误的设备物理地址中的至少一些;以及
用于对所述操作系统或设备驱动器指示对于存储在所述第二数据结构中的具有识别的未校正错误的系统物理地址不包括至少一些未校正的错误的部件。
31.如权利要求26所述的装置,其包括用于在所述计算平台的电力循环或所述NVDIMM复位后发送错误扫描请求的部件。
CN201580028955.0A 2014-06-30 2015-05-28 用于处理持久存储器中的错误的技术 Active CN106462480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010757667.1A CN112131031A (zh) 2014-06-30 2015-05-28 用于处理持久存储器中的错误的技术

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/319387 2014-06-30
US14/319,387 US9753793B2 (en) 2014-06-30 2014-06-30 Techniques for handling errors in persistent memory
PCT/US2015/032902 WO2016003558A1 (en) 2014-06-30 2015-05-28 Techniques for handling errors in persistent memory

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010757667.1A Division CN112131031A (zh) 2014-06-30 2015-05-28 用于处理持久存储器中的错误的技术

Publications (2)

Publication Number Publication Date
CN106462480A CN106462480A (zh) 2017-02-22
CN106462480B true CN106462480B (zh) 2020-10-27

Family

ID=54930606

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580028955.0A Active CN106462480B (zh) 2014-06-30 2015-05-28 用于处理持久存储器中的错误的技术
CN202010757667.1A Pending CN112131031A (zh) 2014-06-30 2015-05-28 用于处理持久存储器中的错误的技术

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010757667.1A Pending CN112131031A (zh) 2014-06-30 2015-05-28 用于处理持久存储器中的错误的技术

Country Status (5)

Country Link
US (3) US9753793B2 (zh)
EP (1) EP3161639B1 (zh)
KR (1) KR101969008B1 (zh)
CN (2) CN106462480B (zh)
WO (1) WO2016003558A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108402B2 (en) * 2014-01-30 2018-10-23 Hewlett Packard Enterprise Development Lp Persistent pointers for programs running on NVRAM based computers
US11257527B2 (en) 2015-05-06 2022-02-22 SK Hynix Inc. Memory module with battery and electronic system having the memory module
KR20160131171A (ko) * 2015-05-06 2016-11-16 에스케이하이닉스 주식회사 배터리를 포함하는 메모리 모듈
KR102408613B1 (ko) 2015-08-27 2022-06-15 삼성전자주식회사 메모리 모듈의 동작 방법, 및 메모리 모듈을 제어하는 프로세서의 동작 방법, 및 사용자 시스템
US10025714B2 (en) * 2016-09-30 2018-07-17 Super Micro Computer, Inc. Memory type range register with write-back cache strategy for NVDIMM memory locations
US10176030B2 (en) * 2017-05-15 2019-01-08 Dell Products, L.P. Runtime mechanism to correct incomplete namespace in persistent memory
US10394647B2 (en) * 2017-06-22 2019-08-27 International Business Machines Corporation Bad bit register for memory
US10956245B1 (en) * 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
WO2019041272A1 (zh) * 2017-08-31 2019-03-07 华为技术有限公司 一种计算机内存数据加解密的方法及装置
WO2019109299A1 (zh) 2017-12-07 2019-06-13 华为技术有限公司 内存访问技术及计算机系统
KR102485812B1 (ko) * 2017-12-19 2023-01-09 에스케이하이닉스 주식회사 메모리 시스템과 메모리 시스템의 동작방법 및 메모리 시스템을 포함하는 데이터 처리 시스템
US10408863B2 (en) * 2017-12-20 2019-09-10 Apple Inc. Reference voltage prediction in memory subsystem
KR102505913B1 (ko) 2018-04-04 2023-03-07 삼성전자주식회사 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템
US10990463B2 (en) 2018-03-27 2021-04-27 Samsung Electronics Co., Ltd. Semiconductor memory module and memory system including the same
US10621091B2 (en) * 2018-05-04 2020-04-14 Micron Technology, Inc. Apparatuses and methods to perform continuous read operations
US20200066367A1 (en) * 2018-08-22 2020-02-27 International Business Machines Corporation Memory device controller
US11163486B2 (en) * 2019-11-25 2021-11-02 Micron Technology, Inc. Memory sub-system-bounded memory function
TWI776653B (zh) * 2021-08-24 2022-09-01 緯穎科技服務股份有限公司 用於控制儲存裝置的控制系統以及控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246269B1 (en) * 2004-05-05 2007-07-17 Advanced Micro Devices, Inc. Efficient memory check architecture and method

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245615A (en) * 1991-06-06 1993-09-14 International Business Machines Corporation Diagnostic system and interface for a personal computer
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6170066B1 (en) * 1995-09-29 2001-01-02 Intel Corporation Power-off recovery management for sector based flash media managers
US6173291B1 (en) * 1997-09-26 2001-01-09 Powerquest Corporation Method and apparatus for recovering data from damaged or corrupted file storage media
US6438622B1 (en) * 1998-11-17 2002-08-20 Intel Corporation Multiprocessor system including a docking system
US20030051193A1 (en) * 2001-09-10 2003-03-13 Dell Products L.P. Computer system with improved error detection
US7043666B2 (en) * 2002-01-22 2006-05-09 Dell Products L.P. System and method for recovering from memory errors
US7003620B2 (en) * 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US7617488B2 (en) * 2003-12-30 2009-11-10 Intel Corporation Method and apparatus and determining processor utilization
JP2006095008A (ja) 2004-09-29 2006-04-13 Gen Tec:Kk 視線検出方法
US7340582B2 (en) * 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US7496823B2 (en) * 2005-03-16 2009-02-24 Hewlett-Packard Development Company, L.P. Hardware based memory scrubbing
US7849350B2 (en) * 2006-09-28 2010-12-07 Emc Corporation Responding to a storage processor failure with continued write caching
US20080168545A1 (en) * 2007-01-09 2008-07-10 Tadanobu Inoue Method for Performing Domain Logons to a Secure Computer Network
US8874831B2 (en) * 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US20090132876A1 (en) * 2007-11-19 2009-05-21 Ronald Ernest Freking Maintaining Error Statistics Concurrently Across Multiple Memory Ranks
US20090150721A1 (en) * 2007-12-10 2009-06-11 International Business Machines Corporation Utilizing A Potentially Unreliable Memory Module For Memory Mirroring In A Computing System
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory
US8041895B2 (en) * 2008-01-28 2011-10-18 Spansion Llc Translation table coherency mecahanism using cache way and set index write buffers
US8209459B2 (en) * 2008-03-31 2012-06-26 Dell Products L.P. System and method for increased system availability in virtualized environments
US8122176B2 (en) * 2009-01-29 2012-02-21 Dell Products L.P. System and method for logging system management interrupts
US8169839B2 (en) 2009-02-11 2012-05-01 Stec, Inc. Flash backed DRAM module including logic for isolating the DRAM
JP2012003644A (ja) 2010-06-21 2012-01-05 Fujitsu Ltd メモリエラー箇所検出装置、及びメモリエラー箇所検出方法。
US20130173991A1 (en) 2010-10-12 2013-07-04 Frederick A. Ware Facilitating Error Detection And Recovery In A Memory System
US8694857B2 (en) 2011-04-13 2014-04-08 Inphi Corporation Systems and methods for error detection and correction in a memory module which includes a memory buffer
US8767463B2 (en) * 2011-08-11 2014-07-01 Smart Modular Technologies, Inc. Non-volatile dynamic random access memory system with non-delay-lock-loop mechanism and method of operation thereof
US8671241B2 (en) 2011-09-13 2014-03-11 Dell Products Lp Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state
JP2013191162A (ja) * 2012-03-15 2013-09-26 Ricoh Co Ltd 動作解析装置、画像形成装置、動作解析方法およびプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246269B1 (en) * 2004-05-05 2007-07-17 Advanced Micro Devices, Inc. Efficient memory check architecture and method

Also Published As

Publication number Publication date
KR101969008B1 (ko) 2019-04-15
US9753793B2 (en) 2017-09-05
US20200117526A1 (en) 2020-04-16
US11119838B2 (en) 2021-09-14
US10417070B2 (en) 2019-09-17
WO2016003558A1 (en) 2016-01-07
KR20160147986A (ko) 2016-12-23
EP3161639B1 (en) 2020-03-11
US20150378808A1 (en) 2015-12-31
EP3161639A1 (en) 2017-05-03
CN106462480A (zh) 2017-02-22
US20180039528A1 (en) 2018-02-08
EP3161639A4 (en) 2018-04-04
CN112131031A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN106462480B (zh) 用于处理持久存储器中的错误的技术
KR101946458B1 (ko) 비휘발성 이중 인-라인 메모리 모듈을 위한 제어기와 통신하기 위한 기법들
KR101984665B1 (ko) 비휘발성 메모리에 기입된 시스템 중요 데이터의 보호와 관련된 기법
US8832530B2 (en) Techniques associated with a read and write window budget for a two level memory system
US9098402B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US20150355704A1 (en) Method for reducing power consumption in solid-state storage device
US20150220387A1 (en) Error correction in non_volatile memory
WO2015080819A1 (en) Error correction in memory
US10372338B2 (en) Memory controller and data processing circuit with improved system efficiency
US20120151300A1 (en) Error Correcting
US10990291B2 (en) Software assist memory module hardware architecture
WO2015199700A1 (en) Post package repair (ppr) data in non-volatile memory
US10395750B2 (en) System and method for post-package repair across DRAM banks and bank groups
US20180004649A1 (en) Techniques to Format a Persistent Memory File
US10061377B2 (en) Memory device and information processing device
WO2018004928A1 (en) Techniques for write commands to a storage device
WO2017171978A1 (en) Techniques to use chip select signals for a dual in-line memory module
WO2016048553A1 (en) Nonvolatile memory module
KR20110078171A (ko) 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법
US10599208B2 (en) Memory system and controller
US20240004757A1 (en) Electronic device managing corrected error and operating method of electronic device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant