CN117349057A - 管理纠正的错误的电子设备和电子设备的操作方法 - Google Patents

管理纠正的错误的电子设备和电子设备的操作方法 Download PDF

Info

Publication number
CN117349057A
CN117349057A CN202310436130.9A CN202310436130A CN117349057A CN 117349057 A CN117349057 A CN 117349057A CN 202310436130 A CN202310436130 A CN 202310436130A CN 117349057 A CN117349057 A CN 117349057A
Authority
CN
China
Prior art keywords
processor
memory module
corrected error
error
ppr
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
CN202310436130.9A
Other languages
English (en)
Inventor
李浩荣
金成峻
金一镐
朴璟珍
尹昌镐
郑进勋
崔仁寿
韩京希
金有庆
金珍宇
李采恩
黄允美
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN117349057A publication Critical patent/CN117349057A/zh
Pending legal-status Critical Current

Links

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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/0727Error 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 storage system, e.g. in a DASD or network based storage system
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0793Remedial or corrective actions
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Apparatuses And Processes For Manufacturing Resistors (AREA)

Abstract

公开了一种电子设备,包括:存储器模块,存储器模块包括至少一个动态随机访问存储器,以及处理器,处理器被配置为访问存储器模块,响应于当从存储器模块读取数据时检测到纠正的错误,确定与纠正的错误的地址相关联的纠正的错误计数,读取与纠正的错误相关联的错误日志,基于错误日志来确定纠正的错误的风险级别,和响应于纠正的错误的风险级别为高,对纠正的错误的地址调度封装后修复(PPR)。

Description

管理纠正的错误的电子设备和电子设备的操作方法
相关申请的交叉引用
本申请要求2022年7月4日在韩国知识产权局提交的第10-2022-0081584号韩国专利申请的优先权,其公开内容通过引用整体并入本文。
技术领域
本文描述的发明构思的一些示例实施例涉及电子设备,更具体地,涉及基于纠正的错误来改进RAS(可靠性、可用性和可服务性)的电子设备以及该电子设备的操作方法。
背景技术
RAS(可靠性、可用性和可服务性)可以表达计算机的稳健性(robustness)。随着RAS级别变得更高,计算机的数据完整性和容错性可以被改进。通过预先检测计算机中能够发生的各种故障并减少或防止和/或补偿检测的故障,可以提高计算机的RAS级别。
计算机可以包括处理器和存储器模块作为主要组件。处理器可以将存储器模块用作工作存储器和***存储器。当处理器从存储器模块读取数据时,可能发生错误。在从存储器模块读取数据的过程中检测的错误可以包括未纠正的错误(uncorrected error)UE和纠正的错误(corrected error)CE。未纠正错误UE可能导致数据丢失。
发明内容
本发明构思的一些示例实施例提供了用于在处理器从存储器模块读取数据时防止未纠正的错误(UE)发生的电子设备以及该电子设备的操作方法。
根据一些示例实施例,一种电子设备包括:存储器模块,包括至少一个动态随机访问存储器;以及处理器,被配置为访问存储器模块,响应于当从存储器模块读取数据时检测到纠正的错误,确定与纠正的错误的地址相关联的纠正的错误计数,读取与纠正的错误相关联的错误日志,基于错误日志确定纠正的错误的风险级别,以及响应于纠正的错误的风险级别为高,为纠正的错误的地址调度封装后修复(PPR)。
根据一些示例实施例,一种包括处理器和存储器模块的电子设备的操作方法包括:在处理器处对存储器模块执行读取操作,在处理器处响应于在读取操作中发生错误对存储器模块执行读重试操作,在处理器处基于纠正的错误是否发生在读重试操作的任何读阶段来确定纠正的错误的风险级别,以及在处理器处响应于纠正的错误的风险级别为高,基于纠正的错误的地址来调度存储器模块的封装后修复(PPR)。
根据一些示例实施例,电子设备包括基本输入输出***(BIOS)设备,基本输入输出***(BIOS)设备包括存储BIOS的非易失性存储器、存储操作***的存储设备、与BIOS设备和存储设备连接的芯片组、包括至少一个动态随机访问存储器的存储器模块、以及与芯片组和存储器模块连接的处理器。在通电时,处理器被配置为通过芯片组从BIOS设备加载BIOS,并通过芯片组从存储设备加载操作***。响应于当处理器访问存储器模块时发生的纠正的错误,BIOS和/或处理器被配置为通过读取纠正的错误的错误日志来确定纠正的错误的风险级别,并且响应于纠正的错误的风险级别为高,在封装后修复(PPR)地址列表中注册纠正的错误的地址,而不管纠正的错误的纠正的错误计数。
附图说明
通过参照附图详细描述本发明的一些示例实施例,本发明构思的上述和其他对象和特征将变得清晰。
图1是示出根据本发明构思的一些示例实施例的电子设备的示图。
图2是示出包括软件层的电子设备的示图。
图3是示出根据本发明构思的一些示例实施例的电子设备的操作方法的示图。
图4是示出电子设备确定纠正的错误的风险级别的示例的示图。
图5是示出当处理器对第一存储器模块或第二存储器模块执行读取操作和读取重试操作时获得的结果的情况的示图。
图6是示出在图2的电子设备中执行图3的操作方法的过程的第一示例的示图。
图7是示出在图2的电子设备中执行图3的操作方法的过程的第二示例的示图。
图8是示出在图2的电子设备中执行图3的操作方法的过程的第三示例的示图。
图9是示出在图2的电子设备中执行图3的操作方法的过程的第四示例的示图。
图10是示出电子设备执行PPR的过程的第一示例的示图。
图11是示出电子设备执行PPR的过程的第二示例的示图。
图12是示出电子设备执行PPR的过程的第三示例的示图。
图13是示出电子设备执行PPR的过程的第四示例的示图。
图14是示出电子设备执行PPR的过程的第五示例的示图。
图15是示出存储器模块的示例的示图。
具体实施方式
下面,将详细和清楚地描述本发明构思的一些示例实施例,达到本领域普通技术人员容易实现本发明构思的程度。在下文中,术语“和/或”被解释为包括关于该术语列出的项目中的任何一个,或者列出的项目中的一些的组合。
图1示出了根据本发明构思的一些示例实施例的电子设备100。例如,电子设备100可以用诸如计算机、服务器和/或工作站的各种计算设备之一来实现。参照图1,电子设备100可以包括处理器110、第一存储器模块121、第二存储器模块122、加速器123、存储器扩展器124、芯片组130、存储设备141、PCIe(快速***组件互连)设备142、NVMe(快速非易失性存储器)设备143、SATA(串行高级技术附件)设备144、USB(通用串行总线)设备145、网络设备146和/或BIOS(基本输入输出***)设备147。
处理器110可以包括用中央处理单元(CPU)实现的两个或更多个核心。此外,处理器110可以包括用各种硬件加速器中的至少一个实现的至少一个辅助核心,各种硬件加速器诸如图形处理单元(GPU)、数字信号处理器(DSP)、图像信号处理器(ISP)、神经处理器和/或神经形态处理器。
第一存储器模块121和/或第二存储器模块122中的每一个或者一个或多个可以包括至少一个动态随机访问存储器(DRAM)。第一存储器模块121和/或第二存储器模块122可以用作电子设备100的主存储器。第一存储器模块121和第二存储器模块122可以基于DDR(双倍数据速率)DIMM(双列直插式存储器模块)标准进行操作。
处理器110可以包括被配置为控制第一存储器模块121和/或第二存储器模块122的存储器控制器。处理器110可以使用第一存储器模块121和/或第二存储器模块122作为主存储器。处理器110可以在主存储器中存储驱动电子设备100所需的或足够的数据以及由电子设备100的用户生成的用户数据(例如,暂时地,用于缓冲,或用于缓存)。
加速器123可以被配置为执行处理器110委托的特定种类的处理。加速器123可以包括各种辅助处理器中的至少一个,诸如图形处理单元(GPU)、数字信号处理器(DSP)、图像信号处理器(ISP)、神经处理器和/或神经形态处理器。在一些示例实施例中,加速器123可以基于PCIe标准或者基于与PCIe标准兼容的CXL(计算快速链接)标准与处理器110通信。
存储器扩展器124可以与处理器110通信。存储器扩展器124可以扩展用第一存储器模块121和/或第二存储器模块122实现的主存储器的容量。存储器扩展器124可以基于PCIe标准和/或基于与PCIe标准兼容的CXL标准与处理器110通信。
芯片组130可以与处理器110通信。例如,芯片组130可以基于DMI(直接媒体接口)标准与处理器110通信。芯片组130可以仲裁电子设备100的***组件和处理器110之间的通信。例如,芯片组130可以用PCH(平台控制器集线器)来实现。
存储设备141可以与芯片组130通信。存储设备141可以响应于通过芯片组130从处理器110传送的命令来执行各种操作,诸如写入操作和/或读取操作。存储设备141可以存储操作***OS。存储在存储设备141中的操作***OS可以由处理器110取决于电子设备100的通电序列来执行,并且可以驱动电子设备100。
存储设备141可以用固态驱动器来实现,该固态驱动器包括各种非易失性存储器中的至少一个,诸如NAND闪存、相变存储器、铁电存储器、磁存储器和/或电阻存储器。存储设备141可以基于PCIe和/或NVMe标准与芯片组130通信。
PCIe设备142可以包括被配置为基于PCIe标准与芯片组130通信的各种设备中的至少一个。NVMe设备143可以包括被配置为基于NVMe标准与芯片组130通信的各种设备中的至少一个。SATA设备144可以包括被配置为基于SATA标准与芯片组130通信的各种设备中的至少一个。USB设备145可以包括被配置为基于USB标准与芯片组130通信的各种设备中的至少一个。
网络设备146可以与芯片组130通信,并且可以包括被配置为与外部设备有线地和/或无线地进行通信的设备。网络设备146可以基于以太网标准与外部设备通信,并且可以被配置为基于PCIe标准与芯片组130通信。
BIOS设备147可以与芯片组130通信。例如,BIOS设备147可以基于SPI(串行***接口)标准与芯片组130通信。BIOS设备147可以包括存储BIOS(基本输入输出***)的非易失性存储器。例如,BIOS设备147可以将BIOS存储在能够被读取、写入和/或擦除的介质中,例如闪存。
BIOS可以取决于电子设备100的通电序列来初始化电子设备100。例如,BIOS可以包括被配置为初始化、训练和/或设置第一存储器模块121和/或第二存储器模块122的存储器参考码(MRC)。
当向电子设备100供电时,可以触发电子设备100的通电序列。在通电序列中,处理器110可以通过芯片组130从BIOS设备147读取BIOS。处理器110可以执行BIOS来初始化电子设备100。BIOS可以包括用于加载操作***OS的引导(boot)加载器代码。处理器110可以执行BIOS,并且可以通过芯片组130从存储设备141加载操作***OS。处理器110可以通过执行操作***OS来完成电子设备100的初始化。
参照图1描述了BIOS,但是可以使用诸如UEFI(统一可扩展固件接口)的对象来代替BIOS。在图1中显式地(explicitly)描述了与芯片组130相关联的设备的详细通信标准,但是还可以包括基于通信标准的设备来与芯片组130通信,该通信标准没有参照图1显式地描述,诸如SAS(串行连接SCSI)。
图2是示出包括软件层的电子设备200的示图。参考图1和图2,电子设备200可以包括硬件210、BIOS 220和/或操作***(OS)230。
硬件210可以包括图1所示的电子设备100的组件。在一些示例实施例中,主存储器MEM、中断发生器IG和/或寄存器REG被示为硬件210的组件。
主存储器MEM可以被实现为包括第一存储器模块121和/或第二存储器模块122。在一些示例实施例中,主存储器MEM可以被实现为还包括存储器扩展器124。
中断发生器IG可以被视为共同表示分别包括在电子设备100的组件中的多个中断发生器(例如,提供在处理器110内部或外部)。中断发生器IG可以生成由处理器110驱动的BIOS 220识别的中断。
寄存器REG可以包括属于处理器110的多个寄存器。寄存器REG可以包括MCB(机器检查库(bank))、CSR(控制和状态寄存器)和/或MSR(特定型号寄存器)。
MCB可以用于存储通过机器检查获得的信息,例如错误信息。CSR可以用于存储指令和/或对应于指令的状态信息。MSR可以用于调试、跟踪程序执行和/或性能监视。
BIOS 220可以将指令从操作***230传送到硬件210。BIOS 220可以处理来自硬件210的中断,或者可以将来自硬件210的中断传送给操作***230。
操作***230可以通过BIOS 220向硬件210传送各种指令。操作***230可以通过使用指令来控制和/或访问多个硬件。操作***230可以支持用户安装在电子设备200中的各种应用,并且可以管理资源。
图3是示出根据本发明构思的一些示例实施例的电子设备100或200的操作方法的示图。参照图1、图2和图3,在操作S110中,处理器110可以检测纠正的错误。例如,当处理器110中的存储器控制器通过使用地址对第一存储器模块121和/或第二存储器模块122执行读取操作时,可能发生读取错误。当读取错误不可纠正时,读取操作可能失败。
响应于读取操作失败,处理器110中的存储器控制器可以通过使用相同的地址对第一存储器模块121和/或第二存储器模块122执行读取重试操作。当读取重试操作成功时(例如,当错误纠正成功时),可以确定从第一存储器模块121和/或第二存储器模块122读取的数据包括纠正的错误。当读取重试操作失败时,可以确定发生了未纠正的错误。
也就是说,当在第一存储器模块121或第二存储器模块122的读取操作失败之后读取重试操作成功时,处理器110可以检测到纠正的错误。
在操作S120,处理器110可以增加纠正的错误计数。例如,处理器110可以与纠正的错误发生的地址相关联地管理纠正的错误计数。当纠正的错误发生在特定地址时,处理器110可以生成特定地址的纠正的错误计数作为初始值。当纠正的错误再次发生在特定地址时,处理器110可以增加特定地址的纠正的错误计数。处理器110可以管理对应于两个或更多个地址的纠正的错误计数。
在操作S130中,处理器110可以读取错误日志。例如,当纠正的错误发生在第一存储器模块121和/或第二存储器模块122中时,执行读取操作或读取重试操作的主体(例如,处理器110中的存储器控制器和/或存储器控制器的上层)可以在寄存器REG的MCB、CSR和/或MSR中的至少一个中记录错误相关信息。处理器110可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志。
在操作S140,处理器110可以确定风险级别。例如,处理器110可以基于读取的错误日志来确定纠正的错误的风险级别。可以基于纠正的错误是暂时的还是重复的(或连续的)来确定风险级别。
在操作S150,当确定的风险级别不是高级别(例如,低级别)时,处理器110可以终止处理,而不执行与纠正的错误相关联的后续处理。当确定的风险级别是高级别时,在操作S160中,处理器110可以调度与发生了纠正的错误的第一存储器模块121和/或第二存储器模块122相关联的封装后修复(PPR)。
PPR可以包括通过将第一存储器模块121和/或第二存储器模块122的存储器单元当中的、发生纠正的错误的存储器单元的地址映射到存储器单元(例如,冗余存储器单元),来替换发生纠正的错误的存储器单元。
根据本发明构思的一些示例实施例,取决于纠正的错误的风险级别来执行PPR。因此,由于对特征上接近于未纠正的错误的纠正的错误执行PPR,所以可以减少或防止未纠正错误的发生,并且可以减少或防止数据丢失和由于数据丢失导致的电子设备100或200的错误。
图4是示出电子设备100或200确定纠正的错误的风险级别的示例的示图。参考图1、图2和图4,在操作S210中,处理器110可以确定计数是否大于阈值TH。例如,处理器110可以确定与发生纠正的错误的地址相关联地生成(或获得)的纠正的错误计数是否大于阈值TH。当纠正的错误计数大于阈值TH时,可以确定在多个读取操作和/或多个读取重试操作中,在发生纠正的错误的地址的存储器单元中重复(或连续)发生纠正的错误。因此,在操作S230中,处理器110可以将与该地址相关联的风险级别确定为高级别。
当纠正的错误计数不大于阈值TH时,在操作S220,处理器110可以确定纠正的错误是否是暂时错误。例如,在执行读取重试操作的过程中,处理器110可以确定纠正的错误是否是暂时的。当纠正的错误不是在当前读取操作中发生的暂时错误时,可以确定错误稍后可能发生在发生纠正的错误的地址的存储器单元中。因此,在操作S230中,处理器110可以将与该地址相关联的风险级别确定为高级别。
当纠正的错误计数不大于阈值TH时,并且当确定纠正的错误是在当前读取操作中暂时发生的错误时,在操作S240,处理器110可以将纠正的错误的风险级别确定为低级别。
图5是示出当处理器110对第一存储器模块121和/或第二存储器模块122执行读取操作和读取重试操作时获得的结果的情况的示图。在图5中,水平轴表示阶段(phase)PHA,垂直轴表示情况。
参考图1、图2和图5,处理器110可以在第一阶段P1中执行读取,并且可以在第二阶段P2中执行重试,例如重传。第一阶段P1和第二阶段P2可以被包括在读取操作中。参考第一情况C1,当第一阶段P1的读取成功时(SUC),可以确定在读取操作中没有发生错误。
参考第二情况C2至第七情况C7,当在第一阶段P1的读取中发生错误ERR时,可以在第二阶段P2中尝试重传。在第二阶段P2中,第一存储器模块121和/或第二存储器模块122可以将在第一阶段P1的读取中读取并存储在缓冲器中的数据重传到处理器110。参考第二情况C2,当第二阶段P2成功(SUC)时,可以确定在处理器110和第一存储器模块121和/或第二存储器模块122之间的通道上发生了错误。因此,可以确定在读取操作中没有发生错误。
处理器110可以在第三阶段P3、第四阶段P4、第五阶段P5和/或第六阶段P6中重试读取。第三阶段P3、第四阶段P4、第五阶段P5和/或第六阶段P6可以被包括在读取重试操作中。
参考第三情况C3至第七情况C7,当在第二阶段P2中发生错误ERR时,可以确定在读取操作中发生错误。处理器110(例如,处理器110中的存储器控制器或存储器控制器的上层)可以执行读取重试操作。
参考第三情况C3,当读取重试操作的第一读取成功并且检测到纠正的错误CE时,可以确定在读取操作的读取中暂时地发生错误。因此,当在读取重试操作的第一读取中检测到纠正的错误CE时,纠正的错误CE的风险级别可以被确定为低。
参考第四情况C4至第七情况C7,当在读取重试操作的第一读取中发生的错误被确定为未纠正的错误UE时,可以在下一个阶段重试读取。在实施例中,在读取重试操作中,可以重试读取四次,直到读取成功(例如,直到检测到纠正的错误CE)。
参考第四情况C4至第六情况C6,当在读取重试操作中一次或多次发生读取错误时,可以确定在读取操作的读取中发生的错误不是暂时错误。例如,可以确定对应于读取操作的地址的存储器单元具有导致读取错误的因素。因此,纠正的错误CE可以被确定为重复(或连续)发生,并且纠正的错误CE的风险级别可被确定为高。
参考第七情况C7,当读取重试操作的所有读取失败时,可以最终确定发生未纠正的错误UE。最终确定的未纠正错误UE可以由处理器110的单独策略来管理。
在一些示例实施例中,读取重试操作的读取次数不受限制。读取重试操作可以包括执行N次读取(N是正整数)直到读取成功。此外,用于确定纠正的错误CE的风险级别的标准不受限制。当读取重试操作的第M次读取(M是小于N的正整数)或第M次读取的先前读取成功时,可以确定纠正的错误CE的风险级别低。当在读取重试操作的第M次读取(M是小于N的正整数)之后的读取成功时,纠正的错误CE的风险级别可以被确定为高。
在一些示例实施例中,当检测到纠正的错误CE时,指示纠正的错误CE是否发生在读取重试操作的任何读取中的信息可以被包括在错误日志中。错误日志可以被记录在寄存器REG的MCB、CSR和/或MSR中的至少一个中。在一些示例实施例中,纠正的错误计数可以被包括在错误日志中,和/或可以独立于错误日志在寄存器REG的MCB、CSR和/或MSR中的至少一个中被管理。
图6是示出在图2的电子设备200中执行图3的操作方法的过程的第一示例的示图。在一些示例实施例中,图6中示出了基于IA-32MCA(其中IA是“Intel Architecture”(英特尔架构)的缩写,MCA是“Machine Check Architecture”(机器检查架构)的缩写)实现电子设备200的示例。
参照图6,在操作S11,中断发生器IG可以将中断传送到BIOS 220。例如,当纠正的错误CE发生在主存储器MEM的第一存储器模块121和/或第二存储器模块122中时,中断发生器IG可以通过SMI(***管理中断)向BIOS 220发送中断。
当接收到SMI时,BIOS 220的SMI处理机(handler)可以被激活。在操作S12中,BIOS220的SMI处理机可以将CMCI(纠正的机器检查中断)发送到操作***230。响应于CMCI,操作***230可以检测到纠正的错误发生。当检测到纠正的错误发生时,可以激活操作***230的MCA处理机(或RAS处理机)(其中RAS是“可靠性、可用性、可服务性”的缩写)。
在操作S13中,操作***230的MCA处理机(例如,CMCI处理机或RAS处理机)可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志和纠正的错误计数。如参考图4所述,操作***230的MCA处理机(或RAS处理机)可以基于错误日志和纠正的错误计数来确定纠正的错误的风险级别。
当纠正的错误的风险级别低时,操作***230的MCA处理机(或CMCI处理机或RAS处理机)可以终止由CMCI引起的纠正的错误的处理。当纠正的错误的风险级别高时,在操作S14,操作***230的MCA处理机(例如,CMCI处理机或RAS处理机)可以在BIOS 220的PPR列表PL(例如,“pprAddrSetup”字段)处记录纠正的错误的地址。
由于纠正的错误的地址被记录在PPR列表PL处,所以可以调度纠正的错误的地址的PPR。操作***230的MCA处理机(例如,CMCI处理机或RAS处理机)可以终止由CMCI引起的纠正的错误的处理。
图7是示出在图2的电子设备200中执行图3的操作方法的过程的第二示例的示图。在一些示例实施例中,图7示出了基于EMCA(其中EMCA是“Enhanced Machine CheckArchitecture”(增强型机器检查架构)的缩写)实现电子设备200的示例。
参照图7,在操作S21,中断发生器IG可以将中断传送到BIOS 220。例如,当纠正的错误CE发生在主存储器MEM的第一存储器模块121和/或第二存储器模块122中时,中断发生器IG可以通过SMI(***管理中断)向BIOS 220发送中断。
当接收到SMI时,BIOS 220的SMM处理机(其中,SMM是“System Management Mode”(***管理模式)的缩写)(或者SMI处理机或者RAS处理机)可以被激活。在操作S22,BIOS220的SMM处理机(或SMI处理机或RAS处理机)可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志和纠正的错误计数,而不将中断发送到操作***230。如参考图4所述,BIOS 220的SMM处理机(或者SMI处理机或者RAS处理机)可以基于错误日志和纠正的错误计数来确定纠正的错误的风险级别。
当纠正的错误的风险级别低时,BIOS 220的SMM处理机(或者SMI处理机或者RAS处理机)可以终止由SMI引起的纠正的错误的处理。当纠正的错误的风险级别高时,在操作S23,BIOS 220的SMM处理机(或者SMI处理机或者RAS处理机)可以在BIOS 220的PPR列表PL(例如,“pprAddrSetup”字段)处记录纠正的错误的地址。
由于纠正的错误的地址被记录在PPR列表PL处,所以可以调度纠正的错误的地址的PPR。BIOS 220的SMM处理机(或SMI处理机或RAS处理机)可以终止由SMI引起的纠正的错误的处理。
图8是示出在图2的电子设备200中执行图3的操作方法的过程的第三示例的示图。在一些示例实施例中,图8中示出了基于EMCA实现电子设备200的示例。
参照图8,在S31操作中,中断发生器IG可以向BIOS 220传送中断。例如,当纠正的错误CE发生在主存储器MEM的第一存储器模块121和/或第二存储器模块122中时,中断发生器IG可以通过SMI向BIOS 220发送中断。
当接收SMI时,BIOS 220的SMI处理机可以被激活。在操作S32中,BIOS 220的SMI处理机(或第一RAS处理机)可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志和/或纠正的错误计数。
可以限制操作***230对寄存器REG的MCB、CSR和/或MSR中的至少一些的访问。在操作S33,BIOS 220的SMI处理机(或第一RAS处理机)可以将禁止操作***230访问的寄存器的信息(例如,关于纠正的错误的信息)存储在主存储器MEM中。
在操作S34中,BIOS 220的SMI处理机(或第一RAS处理机)可以将CMCI或SCI(***控制中断)发送到操作***230。响应于CMCI或SCI,在操作S35中,操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志和纠正的错误计数。
在操作S36中,操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以读取关于由BIOS 220加载到主存储器MEM的纠正的错误的信息。
如参考图4所述,操作***230的MCA处理机(或RAS处理机)可以基于错误日志和纠正的错误计数以及从主存储器MEM读取的信息来确定纠正的错误的风险级别。
当纠正的错误的风险级别低时,操作***230的MCA(或CMCI处理机或第二RAS处理机)可以终止对由CMCI或SCI引起的纠正的错误的处理。当纠正的错误的风险级别高时,在操作S37中,操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以在BIOS 220的PPR列表PL(例如,“pprAddrSetup”字段)处记录纠正的错误的地址。
由于纠正的错误的地址被记录在PPR列表PL处,所以可以调度纠正的错误的地址的PPR。BIOS 220的SMI处理机(或RAS处理机)可以终止由CMCI或SMI引起的纠正的错误的处理。
在一些示例实施例中,代替操作***230,BIOS 220的SMI处理机(或第一RAS处理机)可以基于从寄存器REG的MCB、CSR和/或MSR中的至少一个读取的错误日志和纠正的错误计数来确定纠正的错误的风险级别。BIOS 220的SMI处理机(或第一RAS处理机)可以在主存储器MEM中存储纠正的错误的风险级别。操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以从主存储器MEM读取纠正的错误的风险级别,而不是确定纠正的错误的风险级别。
可替代地,当纠正的错误的风险级别被确定为高时,BIOS 220的SMI处理机(或第一RAS处理机)可以将纠正的错误的地址记录在PPR列表PL处。BIOS 220的SMI处理机(或第一RAS处理机)可以通过向操作***230发送CMCI或SCI来提供纠正的错误的地址被记录在PPR列表PL处的通知。
在一些示例实施例中,可以选择性地执行由虚线标记的操作S33和操作S36。
图9是示出在图2的电子设备200中执行图3的操作方法的过程的第四示例的示图。在一些示例实施例中,图9示出了基于EMCA实现电子设备200的示例。
参照图9,在S41操作中,中断发生器IG可以将中断传送给BIOS 220。例如,当纠正的错误CE发生在主存储器MEM的第一存储器模块121和/或第二存储器模块122中时,中断发生器IG可以通过SMI向BIOS 220发送中断。
当接收SMI时,BIOS 220的SMI处理机可以被激活。在操作S42,BIOS 220的SMI处理机(或第一RAS处理机)可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志和/或纠正的错误计数。
可以限制操作***230对寄存器REG的MCB、CSR和/或MSR中的至少一些的访问。在操作S43,BIOS 220的SMI处理机(或第一RAS处理机)可以将禁止操作***230访问的寄存器的信息(例如,关于纠正的错误的信息)存储在允许操作***230访问的寄存器中。可替代地,在操作S44中,BIOS 220的SMI处理机(或第一RAS处理机)可以将禁止操作***230访问的寄存器的信息(例如,关于纠正的错误的信息)存储在主存储器MEM中。
在操作S45,BIOS 220的SMI处理机(或第一RAS处理机)可以将CMCI和/或SCI(***控制中断)发送到操作***230。响应于CMCI和/或SCI,在操作S46,操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以从寄存器REG的MCB、CSR和/或MSR中的至少一个读取错误日志和纠正的错误计数。
在操作S47,操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以读取关于由BIOS 220加载到主存储器MEM的纠正的错误的信息。
如参考图4所述,操作***230的MCA处理机(或RAS处理机)可以基于错误日志和纠正的错误计数以及从主存储器MEM读取的信息来确定纠正的错误的风险级别。
当纠正的错误的风险级别低时,操作***230的MCA(或CMCI处理机或第二RAS处理机)可以终止对由CMCI或SCI引起的纠正的错误的处理。当纠正的错误的风险级别高时,在操作S48,操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以在BIOS 220的PPR列表PL(例如,“pprAddrSetup”字段)处记录纠正的错误的地址。
由于纠正的错误的地址被记录在PPR列表PL处,所以可以调度纠正的错误的地址的PPR。BIOS 220的SMI处理机(或RAS处理机)可以终止由CMCI和/或SCI引起的纠正的错误的处理。
在一些示例实施例中,代替操作***230,BIOS 220的SMI处理机(或第一RAS处理机)可以基于从寄存器REG的MCB、CSR和/或MSR中的至少一个读取的错误日志和纠正的错误计数来确定纠正的错误的风险级别。BIOS 220的SMI处理机(或第一RAS处理机)可以将纠正的错误的风险级别存储在寄存器REG和/或主存储器MEM中。操作***230的MCA(例如,CMCI处理机或第二RAS处理机)可以从寄存器REG和/或主存储器MEM中读取纠正的错误的风险级别,而不是确定纠正的错误的风险级别。
可替代地,当被纠正的错误的风险级别被确定为高时,BIOS 220的SMI处理机(或第一RAS处理机)可以将纠正的错误的地址记录在PPR列表PL处。BIOS 220的SMI处理机(或第一RAS处理机)可以通过向操作***230发送CMCI和/或SCI来提供纠正的错误的地址被记录在PPR列表PL处的通知。
在一些示例实施例中,可以选择性地执行由虚线标记的操作S44和操作S47。
图10是示出电子设备100执行PPR的过程的第一示例的示图。参照图1、图2和图10,在操作S311,处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147可以被通电。
在处理器110的内部初始化完成之后,在操作S312,处理器110可以从BIOS设备147加载BIOS。处理器110可以执行BIOS来初始化电子设备100的组件。此外,处理器110可以读取包括在BIOS的存储器参考码MRC中的PPR列表PL中存储的地址(或多个地址)。
在操作S313,处理器110可以基于存储在PPR列表PL中的该地址(或该多个地址)从第一存储器模块121和/或第二存储器模块122请求PPR。PPR请求可以包括PPR列表P1的该地址(或该多个地址)。第一存储器模块121和/或第二存储器模块122可以响应于PPR请求和该地址(或该多个地址)来执行PPR。
例如,PPR可以包括软件PPR和/或硬件PPR。软件PPR可以包括仅仅直到电源关闭为止(例如,仅在电源被保持时)用冗余地址(或多个冗余地址)替换该地址(或该多个地址)。硬件PPR可以包括通过使用诸如电熔丝的标记元件,用冗余地址(或多个冗余地址)永久地替换该地址(或该多个地址)。软件PPR可能是暂时的,而硬件PPR可能是永久的。
当处理器110初始化第一存储器模块121和/或第二存储器模块122时,可以确定第一存储器模块121和/或第二存储器模块122是否执行软件PPR和/或硬件PPR。可替代地,第一存储器模块121和/或第二存储器模块122是执行软件PPR还是硬件PPR可以在制造第一存储器模块121和/或第二存储器模块122的过程中和/或在制造电子设备100的过程中确定。
操作S311、操作S312和/或操作S313可以形成电子设备100的通电序列S310。
在操作S321中,处理器110可以访问第一存储器模块121和/或第二存储器模块122。在一些示例实施例中,纠正的错误可能发生在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中。当纠正的错误发生时,在操作S322,处理器110可以确定纠正的错误是否具有高风险级别。例如,处理器110可以确定纠正的错误的风险级别是否高。当纠正的错误的风险级别低时,在操作S321,处理器110可以不执行与纠正的错误相关联的PPR,并且可以访问第一存储器模块121和/或第二存储器模块122。当纠正的错误的风险级别高时,处理器110可以将纠正的错误记录在PPR列表PL处。之后,处理器110可以访问第一存储器模块121和/或第二存储器模块122。
在一些示例实施例中,操作S321、操作S322和/或操作S323可以形成电子设备100的正常操作序列S320。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中没有发生纠正的错误时,可以省略操作S322和操作S323而不执行。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中发生未纠正的错误时,处理器110可以根据用于处理未纠正的错误的单独策略来执行操作。
在操作S331,处理器110可以将BIOS的数据当中要求备份的数据备份到BIOS设备147。例如,处理器110可以将PPR列表PL备份到BIOS设备147。在操作S332中,可以将处理器110、包括第一存储器模块121和第二存储器模块122的主存储器MEM以及BIOS设备147断电。操作S311和/或操作S332可以形成电子设备100的断电序列S330。
如上所述,电子设备100可以在PPR列表PL中记录具有高风险级别的每个或一个或多个纠正的错误的地址(或纠正的多个错误的多个地址),并且可以在下一个通电序列中基于PPR列表PL从第一存储器模块121和/或第二存储器模块122请求PPR。
图11是示出电子设备100执行PPR的过程的第二示例的示图。参照图1、图2和图11,在操作S411中,处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM以及BIOS设备147可以被通电。
在处理器110的内部初始化完成之后,在操作S412,处理器110可以从BIOS设备147加载BIOS。处理器110可以执行BIOS来初始化电子设备100的组件。
操作S411和/或操作S412可以形成电子设备100的通电序列S410。
在操作S421,处理器110可以访问第一存储器模块121和/或第二存储器模块122。在一些示例实施例中,纠正的错误可能发生在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中。当纠正的错误发生时,在操作S422,处理器110可以确定纠正的错误是否具有高风险级别。例如,处理器110可以确定纠正的错误的风险级别是否高。当纠正的错误的风险级别低时,在操作S421,处理器110可以不执行与纠正的错误相关联的PPR,并且可以访问第一存储器模块121和/或第二存储器模块122。当纠正的错误的风险级别高时,在操作S423,处理器110可以基于纠正的错误的地址从第一存储器模块121和/或第二存储器模块122请求PPR。
一些示例实施例中,操作S421、操作S422和/或操作S423可以形成电子设备100的正常操作序列S420。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中没有发生纠正的错误时,可以省略操作S422而不执行。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中发生未纠正的错误时,处理器110可以根据用于处理未纠正的错误的单独策略来执行操作。
在操作S431,处理器110可以将BIOS的数据当中要求备份的数据备份到BIOS设备147。在操作S432,处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147可以被断电。操作S431和/或操作S432可以形成电子设备100的断电序列S430。
如上所述,电子设备100可以基于具有高风险级别的纠正的错误的地址,立即从第一存储器模块121和/或第二存储器模块122请求PPR。
图12是示出电子设备100执行PPR的过程的第三示例的示图。参照图1、图2和图12,在操作S511中,处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147可以被通电。
在处理器110的内部初始化完成之后,在操作S512,处理器110可以从BIOS设备147加载BIOS。处理器110可以执行BIOS来初始化电子设备100的组件。此外,处理器110可以读取存储在包括在存储器参考码MRC中的PPR列表PL中的地址(或多个地址)。
在操作S513,处理器110可以基于存储在PPR列表PL中的该地址(或该多个地址)从第一存储器模块121和/或第二存储器模块122请求PPR。PPR请求可以包括PPR列表PL的该地址(或该多个地址)。第一存储器模块121和/或第二存储器模块122可以响应于PPR请求和该地址(或该多个地址)来执行PPR。
操作S511、操作S512和/或操作S513可以形成电子设备100的通电序列S510。
在操作S521,处理器110可以访问第一存储器模块121和/或第二存储器模块122。在一些示例实施例中,纠正的错误可能发生在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中。当纠正的错误发生时,在操作S522,处理器110可以确定纠正的错误是否具有高风险级别。例如,处理器110可以确定纠正的错误的风险级别是否高。当纠正的错误的风险级别低时,在操作S521,处理器110可以不执行与纠正的错误相关联的PPR,并且可以访问第一存储器模块121和/或第二存储器模块122。当纠正的错误的风险级别高时,在操作S523,处理器110可以确定纠正的错误的风险级别比较值RLCV。当纠正的错误的风险级别比较值RLCV指示较高的风险时,在操作S524,处理器110可以基于纠正的错误的地址从第一存储器模块121和/或第二存储器模块122请求PPR。
当纠正的错误的风险级别比较值RLCV指示风险较低时,在操作S525,处理器110可以将纠正的错误的地址记录在PPR列表PL处。之后,处理器110可以访问第一存储器模块121和/或第二存储器模块122。
在一些示例实施例中,操作S521、操作S522、操作S523、操作S524和/或操作S525可以形成电子设备100的正常操作序列S520。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中没有发生纠正的错误时,可以省略操作S522而不执行。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中发生未纠正的错误时,处理器110可以根据用于处理未纠正的错误的单独策略来执行操作。
在操作S531,处理器110可以将BIOS的数据当中要求备份的数据备份到BIOS设备147。例如,处理器110可以将PPR列表PL备份到BIOS设备147。在操作S532中,可以将处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147断电。操作S531和/或操作S532可以形成电子设备100的断电序列S530。
如上所述,电子设备100可以取决于具有高风险级别的纠正的错误的特征,选择性地执行立即的PPR或延迟的PPR之一。在延迟的PPR中,处理器110可以在下一个通电序列中基于PPR列表PL从第一存储器模块121和/或第二存储器模块122请求PPR。
图13是示出电子设备100执行PPR的过程的第四示例的示图。参照图1、图2和图13,在操作S611中,处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147可以被通电。
在处理器110的内部初始化完成之后,在操作S612,处理器110可以从BIOS设备147加载BIOS。处理器110可以执行BIOS来初始化电子设备100的组件。此外,处理器110可以读取存储在包括在存储器参考码MRC中的PPR列表PL中的地址(或多个地址)。
在操作S613,处理器110可以基于存储在PPR列表PL中的该地址(或该多个地址)从第一存储器模块121和/或第二存储器模块122请求hPPR(例如,硬件PPR)。hPPR请求可以包括PPR列表PL的该地址(或该多个地址)。第一存储器模块121和/或第二存储器模块122可以响应于hPPR请求和该地址(或该多个地址)来执行hPPR。
操作S611、操作S612和/或操作S613可以形成电子设备100的通电序列S610。
在操作S621中,处理器110可以访问第一存储器模块121和/或第二存储器模块122。在一些示例实施例中,纠正的错误可能发生在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中。当纠正的错误发生时,在操作S622,处理器110可以确定纠正的错误是否具有高风险级别。例如,处理器110可以确定纠正的错误的风险级别是否高。当纠正的错误的风险级别低时,在操作S621,处理器110可以不执行与纠正的错误相关联的PPR,并且可以访问第一存储器模块121或第二存储器模块122。当纠正的错误的风险级别高时,在操作S623,处理器110可以确定纠正的错误的风险级别比较值RLCV。当纠正的错误的风险级别比较值RLCV指示较高的风险时,在操作S624,处理器110可以基于纠正的错误的地址从第一存储器模块121和/或第二存储器模块122请求sPPR(例如,软件PPR)。
当纠正的错误的风险级别比较值RLCV指示风险较低时,在操作S625,处理器110可以将纠正的错误的地址记录在hPPR列表中。之后,处理器110可以访问第一存储器模块121或第二存储器模块122。
在实施例中,操作S621、操作S622、操作S623、操作S624和/或操作S625可以形成电子设备100的正常操作序列S620。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中没有发生纠正的错误时,可以省略操作S622而不执行。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中发生未纠正的错误时,处理器110可以根据用于处理未纠正的错误的单独策略来执行操作。
在操作S631,处理器110可以将BIOS的数据当中要求备份的数据备份到BIOS设备147。例如,处理器110可以将hPPR列表备份到BIOS设备147。在操作S632中,可以将处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147断电。操作S631和/或操作S632可以形成电子设备100的断电序列S630。
如上所述,电子设备100可以取决于具有高风险级别的纠正的错误的特征,选择性地执行立即的sPPR或延迟的hPPR之一。在延迟的hPPR中,处理器110可以在下一个通电序列中基于hPPR列表从第一存储器模块121和/或第二存储器模块122请求hPPR。
图14是示出电子设备100执行PPR的过程的第五示例的示图。参照图1、图2和图14,在操作S711中,处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147可以被通电。
在处理器110的内部初始化完成之后,在操作S712,处理器110可以从BIOS设备147加载BIOS。处理器110可以执行BIOS来初始化电子设备100的组件。此外,处理器110可以读取包括在BIOS的存储器参考码MRC中的PPR列表PL(例如,sPPR列表或hPPR列表)中存储的地址(或多个地址)。
在操作S713,处理器110可以基于存储在PPR列表PL(例如,sPPR列表或hPPR列表)中的该地址(该多个地址),从第一存储器模块121和/或第二存储器模块122请求hPPR(例如,硬件PPR)和sPPR(例如,软件PPR)。hPPR请求可以包括hPPR列表的该地址(或多个地址)。sPPR请求可以包括sPPR列表的该地址(或多个地址)。第一存储器模块121和/或第二存储器模块122可以响应于hPPR请求、sPPR请求和/或该地址(或该多个地址)来执行hPPR和/或sPPR。
操作S711、操作S712和/或操作S713可以形成电子设备100的通电序列S710。
在操作S721中,处理器110可以访问第一存储器模块121和/或第二存储器模块122。在一些示例实施例中,纠正的错误可能发生在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中。当纠正的错误发生时,在操作S722,处理器110可以确定纠正的错误是否具有高风险级别。例如,处理器110可以确定纠正的错误的风险级别是否高。当纠正的错误的风险级别低时,在操作S721,处理器110可以不执行与纠正的错误相关联的PPR,并且可以访问第一存储器模块121和/或第二存储器模块122。当纠正的错误的风险级别高时,在操作S723,处理器110可以确定纠正的错误的风险级别比较值RLCV。当纠正的错误的风险级别比较值RLCV指示较高风险时,在操作S724,处理器110可以将纠正的错误的地址记录在sPPR列表处。之后,处理器110可以访问第一存储器模块121和/或第二存储器模块122。
当纠正的错误的风险级别比较值RLCV指示风险较低时,在操作S725,处理器110可以将纠正的错误的地址记录在hPPR列表处。之后,处理器110可以访问第一存储器模块121和/或第二存储器模块122。
在一些示例实施例中,操作S721、操作S722、操作S723、操作S724和/或操作S725可以形成电子设备100的正常操作序列S720。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中没有发生纠正的错误时,可以省略操作S722而不执行。当在处理器110访问第一存储器模块121和/或第二存储器模块122的过程中发生未纠正的错误时,处理器110可以根据用于处理未纠正的错误的单独策略来执行操作。
在操作S731,处理器110可以将BIOS的数据当中要求备份的数据备份到BIOS设备147。例如,处理器110可以将hPPR列表和sPPR列表备份到BIOS设备147。在操作S732中,可以将处理器110、包括第一存储器模块121和/或第二存储器模块122的主存储器MEM和/或BIOS设备147断电。操作S731和/或操作S732可以形成电子设备100的断电序列S730。
如上所述,电子设备100可以取决于具有高风险级别的纠正的错误的特征,选择性地执行延迟的sPPR或延迟的hPPR之一。在延迟的hPPR中,处理器110可以在下一个通电序列中基于hPPR列表从第一存储器模块121和/或第二存储器模块122请求hPPR。在延迟的sPPR中,处理器110可以在下一个通电序列中基于sPPR列表从第一存储器模块121和/或第二存储器模块122请求sPPR。
图15是示出存储器模块300的示例的示图。存储器模块300可以对应于图1的第一存储器模块121和/或第二存储器模块122。参考图1和图15,存储器模块300可以包括动态随机访问存储器DRAM、寄存器时钟驱动器RCD和/或连接器CON。寄存器时钟驱动器RCD可以通过连接器CON从处理器110接收命令和地址,并且可以将命令和地址传送到动态随机访问存储器DRAM。动态随机访问存储器DRAM可以通过连接器CON与处理器110交换数据信号。
动态随机访问存储器DRAM中的每个或者一个或多个可以包括用户区域UA、第一冗余区域RD1和/或第二冗余区域RD2。用户区域UA可以是由处理器110访问的存储空间。第一冗余区域RD1和/或第二冗余区域RD2可用于替换PPR中用户区UA的存储空间。
在一些示例实施例中,第一冗余区域RD1可以用在软件PPR中。第二冗余区域RD2可以用于硬件PPR中。也就是说,用于软件PPR的第一冗余区域RD1和用于硬件PPR的第二冗余区域RD2可以在物理上彼此分离。然而,本发明构思的示例实施例不限于用于软件PPR的冗余区域和用于硬件PPR的冗余区域在每个动态随机访问存储器DRAM中彼此物理分离。
在一些示例实施例中,作为示例,参考RDIMM(注册的DIMM)来描述存储器模块300。然而,存储器模块300不限于RDIMM。例如,存储器模块300可以用UDIMM(无缓冲的DIMM)、LRDIMM(负载减少的DIMM)和/或SODIMM(小型DIMM)来不同地实现
在上述示例实施例中,通过使用术语“第一”、“第二”、“第三”等来描述根据本发明构思的组件。然而,术语“第一”、“第二”、“第三”等可以用于将组件彼此区分开来,并且不限制发明构思。例如,术语“第一”、“第二”、“第三”等不涉及任何形式的顺序或数字含义。
在上述示例实施例中,通过使用块来引用根据本发明构思的一些示例实施例的组件。块可以用各种硬件设备来实现,诸如集成电路、专用IC(ASIC)、现场可编程门阵列(FPGA)和/或复杂可编程逻辑器件(CPLD)、硬件设备中驱动的固件、诸如应用的软件和/或硬件设备和软件的组合。此外,块可以包括用集成电路中的半导体元件实现的电路,或者登记为知识产权(IP)的电路。
根据本发明构思,处理器基于在读取重试操作的任何读取中是否发生纠正的错误CE以及纠正的错误计数来执行PPR(封装后修复)。因此,当处理器从存储器模块读取数据时,减少或防止未纠正的错误发生。
上面公开的一个或多个元件可以包括或实现在一个或多个处理电路中,诸如包括逻辑电路的硬件;硬件/软件组合,诸如执行软件的处理器;或它们的组合。例如,更具体地,处理电路可以包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上***(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。
虽然已经参考本发明构思的一些示例实施例描述了本发明构思,但是对于本领域的普通技术人员来说清晰的是,可以对其进行各种改变和修改,而不脱离如下面的权利要求中阐述的本发明构思的精神和范围。

Claims (20)

1.一种电子设备,包括:
存储器模块,包括至少一个动态随机访问存储器;以及
处理器,被配置为:
访问存储器模块,
响应于当从存储器模块读取数据时检测到纠正的错误,确定与纠正的错误的地址相关联的纠正的错误计数;
读取与纠正的错误相关联的错误日志;
基于错误日志来确定纠正的错误的风险级别;以及
响应于风险级别为高,对纠正的错误的地址调度封装后修复PPR。
2.根据权利要求1所述的电子设备,其中,所述处理器被配置为:
响应于与纠正的错误的地址相关联的纠正的错误计数超过阈值,确定纠正的错误的风险级别为高。
3.根据权利要求1所述的电子设备,其中,所述处理器被配置为:
响应于确定纠正的错误是暂时错误,将纠正的错误的风险级别确定为低;以及
响应于确定纠正的错误不是暂时错误,将纠正的错误的风险级别确定为高。
4.根据权利要求1所述的电子设备,其中,所述处理器被配置为:
基于所述地址从存储器模块请求读取操作;
响应于读取操作失败,从存储器模块请求读取重试操作;以及
响应于读取重试操作成功,检测纠正的错误。
5.根据权利要求4所述的电子设备,其中,所述处理器被配置为通过以下执行读取操作:
请求存储器模块执行读取操作的读取阶段;以及
响应于在读取阶段中发生错误,请求存储器模块执行读取操作的重传阶段。
6.根据权利要求4所述的电子设备,其中,所述处理器被配置为通过以下执行读取重试操作:
请求存储器模块执行第一读取阶段至第四读取阶段,直到读取重试操作成功。
7.根据权利要求6所述的电子设备,其中,所述处理器被配置为:
响应于读取重试操作的第一读取阶段成功,确定纠正的错误的风险级别为低;以及
响应于读取重试操作的第一读取阶段不成功,将纠正的错误的风险级别确定为高。
8.根据权利要求4所述的电子设备,其中,所述处理器被配置为通过以下执行读取重试操作:
请求存储器模块执行读取阶段;以及
响应于在读取阶段中发生错误,请求存储器模块再次执行读取阶段N次,N是正整数。
9.根据权利要求6所述的电子设备,其中,所述处理器被配置为:
响应于读取重试操作的第M个读取阶段成功或者第M个读取阶段的先前读取阶段成功,将纠正的错误的风险级别确定为低,其中,M是小于N的正整数;以及
响应于读取重试操作的第M个读取阶段失败以及第M个读取阶段的先前读取阶段失败,将纠正的错误的风险级别确定为高。
10.根据权利要求1所述的电子设备,其中,所述处理器被配置为:
收集具有高风险级别的至少一个纠正的错误的至少一个地址的列表;以及
在下一个通电序列中,基于所述至少一个地址的列表,从存储器模块请求PPR。
11.根据权利要求1所述的电子设备,其中,所述处理器被配置为:
响应于纠正的错误的风险级别被确定为高,基于纠正的错误的地址从存储器模块请求PPR。
12.根据权利要求11所述的电子设备,其中,所述处理器被配置为:
基于纠正的错误的地址,在存储器模块的空闲时间内或在访问存储器模块之前,从存储器模块请求PPR。
13.根据权利要求1所述的电子设备,其中,所述处理器被配置为:
响应于纠正的错误的风险级别被确定为高,确定纠正的错误的风险级别比较值。
14.根据权利要求13所述的电子设备,其中,所述处理器被配置为:
响应于风险级别比较值指示较高风险,从存储器模块请求纠正的错误的PPR;以及
响应于风险级别比较值指示较低风险,在下一个通电之后从存储器模块请求纠正的错误的PPR。
15.根据权利要求13所述的电子设备,其中,所述PPR包括软件PPR(sPPR)和硬件PPR(hPPR),并且所述处理器被配置为:
响应于风险级别比较值指示较高风险,将硬件PPR调度为纠正的错误的PPR;以及
响应于风险级别比较值指示较低风险,从存储器模块请求软件PPR作为纠正的错误的PPR。
16.根据权利要求15所述的电子设备,其中,所述处理器被配置为立即从存储器模块请求软件PPR,并且在下一个通电之后,从存储器模块请求硬件PPR。
17.一种包括处理器和存储器模块的电子设备的操作方法,所述方法包括:
在处理器处,对存储器模块执行读取操作;
在处理器处,响应于在读取操作中发生错误,对存储器模块执行读取重试操作;
在处理器处,基于纠正的错误是否发生在读取重试操作的任何读取阶段,确定纠正的错误的风险级别;以及
在处理器处,响应于纠正的错误的风险级别为高,基于纠正的错误的地址来调度存储器模块的封装后修复PPR。
18.根据权利要求17所述的方法,其中,所述PPR的调度包括:
基于纠正的错误的风险级别比较值来调度立即的PPR或延迟的PPR中的一个。
19.根据权利要求17所述的方法,其中,所述PPR的调度包括:
基于纠正的错误的风险级别比较值来调度软件PPR或硬件PPR中的一个。
20.一种电子设备,包括:
基本输入输出***BIOS设备,包括存储BIOS的非易失性存储器;
存储设备,被配置为存储操作***;
芯片组,与BIOS设备和存储设备连接;
存储器模块,包括至少一个动态随机访问存储器;以及
处理器,与芯片组和存储器模块连接,
其中,在通电时,所述处理器被配置为:
通过芯片组从BIOS设备加载BIOS;以及
通过芯片组从存储设备加载操作***,并且
其中,响应于当处理器访问存储器模块时发生的纠正的错误,BIOS和/或处理器被配置为:
通过读取纠正的错误的错误日志来确定纠正的错误的风险级别;以及
响应于纠正的错误的风险级别为高,在封装后修复PPR地址列表处注册纠正的错误的地址,而不管纠正的错误的纠正的错误计数。
CN202310436130.9A 2022-07-04 2023-04-21 管理纠正的错误的电子设备和电子设备的操作方法 Pending CN117349057A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220081584A KR20240003823A (ko) 2022-07-04 2022-07-04 정정된 에러를 관리하는 전자 장치 및 전자 장치의 동작 방법
KR10-2022-0081584 2022-07-04

Publications (1)

Publication Number Publication Date
CN117349057A true CN117349057A (zh) 2024-01-05

Family

ID=89354604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310436130.9A Pending CN117349057A (zh) 2022-07-04 2023-04-21 管理纠正的错误的电子设备和电子设备的操作方法

Country Status (3)

Country Link
US (1) US20240004757A1 (zh)
KR (1) KR20240003823A (zh)
CN (1) CN117349057A (zh)

Also Published As

Publication number Publication date
US20240004757A1 (en) 2024-01-04
KR20240003823A (ko) 2024-01-11

Similar Documents

Publication Publication Date Title
US8689041B2 (en) Method for protecting data in damaged memory cells by dynamically switching memory mode
US10824499B2 (en) Memory system architectures using a separate system control path or channel for processing error information
US8255614B2 (en) Information processing device that accesses memory, processor and memory management method
TWI553650B (zh) 以記憶體控制器來處理資料錯誤事件之方法、設備及系統
KR101374455B1 (ko) 메모리 에러와 리던던시
US8516298B2 (en) Data protection method for damaged memory cells
US8869007B2 (en) Three dimensional (3D) memory device sparing
US20080126776A1 (en) Electronic apparatus
US7107493B2 (en) System and method for testing for memory errors in a computer system
JPH03198135A (ja) 障害余裕性メモリ・システム及び障害余裕性メモリ・システムの作動方法
JP2014120179A (ja) 停電障害状況におけるイベントトレース情報の復旧
US6108753A (en) Cache error retry technique
US20190303226A1 (en) Semiconductor memory module and memory system including the same
JP2016045958A (ja) メモリモジュール及びその動作方法
US8739012B2 (en) Co-hosted cyclical redundancy check calculation
US9304854B2 (en) Semiconductor device and operating method thereof
CN104750577A (zh) 面向片上大容量缓冲存储器的任意多位容错方法及装置
EP4303731A2 (en) Electronic device managing corrected error and operating method of electronic device
WO2023020031A1 (zh) 一种内存故障恢复方法、***以及内存
CN111221681A (zh) 一种存储器的修复方法及装置
CN117349057A (zh) 管理纠正的错误的电子设备和电子设备的操作方法
US11182231B2 (en) Host system and computing system including the host system
US11593209B2 (en) Targeted repair of hardware components in a computing device
US20240094920A1 (en) Exception Handling Using Security Subsystem in Storage Device
TWI833476B (zh) 記憶體控制裝置及其操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication