CN110858167B - 一种内存故障隔离方法、装置及设备 - Google Patents

一种内存故障隔离方法、装置及设备 Download PDF

Info

Publication number
CN110858167B
CN110858167B CN201810960567.1A CN201810960567A CN110858167B CN 110858167 B CN110858167 B CN 110858167B CN 201810960567 A CN201810960567 A CN 201810960567A CN 110858167 B CN110858167 B CN 110858167B
Authority
CN
China
Prior art keywords
memory
memory unit
determining
address
page
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
CN201810960567.1A
Other languages
English (en)
Other versions
CN110858167A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810960567.1A priority Critical patent/CN110858167B/zh
Publication of CN110858167A publication Critical patent/CN110858167A/zh
Application granted granted Critical
Publication of CN110858167B publication Critical patent/CN110858167B/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/0793Remedial or corrective actions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请提供一种内存故障隔离方法、装置及设备,该方法包括:确定发生故障的第一内存单元;确定与第一内存单元关联的第二内存单元;确定与第二内存单元对应的第一内存页;对第一内存页进行内存故障的隔离。通过本申请的技术方案,实现内存故障的隔离,有效避免内存单元故障导致的计算机故障。

Description

一种内存故障隔离方法、装置及设备
技术领域
本申请涉及存储技术领域,尤其是一种内存故障隔离方法、装置及设备。
背景技术
内存是计算机的重要部件之一,是与CPU(Central Processing Unit,中央处理器)沟通的桥梁,所有程序的运行均是在内存中进行,内存的性能对计算机的影响非常大。内存也被称为内存储器,用于暂时存放CPU中的运算数据,以及与外部存储器(如硬盘等)交换数据,只要计算机在运行过程中,CPU就会将需要运算的数据调到内存中运算,当运算完成后,CPU再将结果读取出来。
随着计算机技术的快速发展,内存容量越来越大,即内存中的内存单元数量越来越多,一旦内存单元发生故障,则CPU将数据调到该内存单元中运算时,就会发生内存故障,无法实现数据运算,导致计算机故障;或者,若CPU从该内存单元中读取数据,也会发生内存故障,无法读取数据,导致计算机故障。
发明内容
本申请提供一种内存故障隔离方法,所述方法包括:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
确定与所述第二内存单元对应的第一内存页;
对所述第一内存页进行内存故障的隔离。
本申请提供一种内存故障隔离方法,所述方法包括:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
对所述第二内存单元进行内存故障的隔离。
本申请提供一种内存故障隔离装置,所述装置包括:
第一确定模块,用于确定发生故障的第一内存单元;
第二确定模块,用于确定与所述第一内存单元关联的第二内存单元;
第三确定模块,用于确定与所述第二内存单元对应的第一内存页;
隔离模块,用于对所述第一内存页进行内存故障的隔离。
本申请提供一种内存故障隔离装置,所述装置包括:
第一确定模块,用于确定发生故障的第一内存单元;
第二确定模块,用于确定与所述第一内存单元关联的第二内存单元;
隔离模块,用于对所述第二内存单元进行内存故障的隔离。
本申请提供一种内存故障隔离设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
确定与所述第二内存单元对应的第一内存页;
对所述第一内存页进行内存故障的隔离。
本申请提供一种内存故障隔离设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
对所述第二内存单元进行内存故障的隔离。
基于上述技术方案,本申请实施例中,可以确定发生故障的第一内存单元,并确定与第一内存单元关联的第二内存单元,确定与第二内存单元对应的第一内存页,并对第一内存页进行内存故障的隔离。基于上述方式,可以对故障内存单元(已经失效的内存单元)、与故障内存单元关联的相邻内存单元(即将失效的内存单元)进行隔离,避免操作系统继续访问故障内存单元和相邻内存单元,实现内存故障的隔离,可以有效避免内存单元故障导致的计算机故障。
而且,在上述方式中,可以对故障内存单元进行隔离,也可以对故障内存单元关联的相邻内存单元进行隔离,从而隔离更多的内存单元,这些内存单元是已经失效的内存单元或者即将失效的内存单元,从而降低计算机故障的风险。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的内存故障隔离方法的流程图;
图2是本申请另一种实施方式中的内存故障隔离方法的流程图;
图3A-图3E是本申请一种实施方式中的内存单元的示意图;
图4是本申请一种实施方式中的内存故障隔离装置的结构图;
图5是本申请另一种实施方式中的内存故障隔离装置的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种内存故障隔离方法,该方法用于实现内存单元的故障隔离,参见图1所示,为该方法的流程示意图,该方法可以包括:
步骤101,确定发生故障的第一内存单元。
步骤102,确定与该第一内存单元关联的第二内存单元。
在一个例子中,确定与该第一内存单元关联的第二内存单元,可以包括但不限于:确定该第一内存单元的相邻位置的第二内存单元;或者,确定该第一内存单元的次邻位置的第二内存单元;或者,确定该第一内存单元的相邻位置的第二内存单元,并确定该第一内存单元的次邻位置的第二内存单元。
在一个例子中,确定与该第一内存单元关联的第二内存单元,还可以包括但不限于:根据该第一内存单元的第一行地址以及该第一内存单元的第一列地址,确定与该第一内存单元关联的第二内存单元。进一步的,还可以根据该第一行地址以及该第一列地址,确定该第一内存单元的相邻位置的第二内存单元,或者,该第一内存单元的次邻位置的第二内存单元,或者,该第一内存单元的相邻位置的第二内存单元以及该第一内存单元的次邻位置的第二内存单元。
在一个例子中,该第二内存单元的第二行地址和该第二内存单元的第二列地址,可以包括但不限于以下一种或者几种:第二行地址为第一行地址减1,第二列地址为第一列地址减1;第二行地址为第一行地址减1,第二列地址与第一列地址相同;第二行地址为第一行地址减1,第二列地址为第一列地址加1;第二行地址与第一行地址相同,第二列地址为第一列地址减1;第二行地址与第一行地址相同,第二列地址为第一列地址加1;第二行地址为第一行地址加1,第二列地址为第一列地址减1;第二行地址为第一行地址加1,第二列地址与第一列地址相同;第二行地址为第一行地址加1,第二列地址为第一列地址加1。
步骤103,确定与该第二内存单元对应的第一内存页。
在一个例子中,确定与该第二内存单元对应的第一内存页,可以包括但不限于:确定该第二内存单元对应的第一物理地址;然后,可以根据该第二内存单元对应的第一物理地址确定与该第二内存单元对应的第一内存页。
步骤104,对该第一内存页进行内存故障的隔离。
在一个例子中,对该第一内存页进行内存故障的隔离,可以包括但不限于:从操作系统的访问列表删除该第一内存页,以使该操作系统对该第一内存页进行内存故障的隔离;其中,该访问列表用于记录能够被访问的内存页。
在一个例子中,在确定发生故障的第一内存单元之后,还可以确定与该第一内存单元对应的第二内存页,并对该第二内存页进行内存故障的隔离。
进一步的,确定与该第一内存单元对应的第二内存页,还可以包括但不限于:确定该第一内存单元对应的第二物理地址;然后,可以根据该第一内存单元对应的第二物理地址确定与该第一内存单元对应的第二内存页。
此外,对该第二内存页进行内存故障的隔离,还可以包括但不限于:从操作系统的访问列表删除该第二内存页,以使该操作系统对该第二内存页进行内存故障的隔离;其中,该访问列表可以用于记录能够被访问的内存页。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可以确定发生故障的第一内存单元,并确定与第一内存单元关联的第二内存单元,确定与第二内存单元对应的第一内存页,并对第一内存页进行内存故障的隔离。基于上述方式,可以对故障内存单元(已经失效的内存单元)、与故障内存单元关联的相邻内存单元(即将失效的内存单元)进行隔离,避免操作系统继续访问故障内存单元和相邻内存单元,实现内存故障的隔离,可以有效避免内存单元故障导致的计算机故障。
而且,在上述方式中,可以对故障内存单元进行隔离,也可以对故障内存单元关联的相邻内存单元进行隔离,从而隔离更多的内存单元,这些内存单元是已经失效的内存单元或者即将失效的内存单元,从而降低计算机故障的风险。
本申请实施例中还提出另一种内存故障隔离方法,该方法用于实现内存单元的故障隔离,可以包括以下步骤:确定发生故障的第一内存单元;确定与该第一内存单元关联的第二内存单元;对该第二内存单元进行内存故障的隔离。
在一个例子中,确定与该第一内存单元关联的第二内存单元,可以包括但不限于如下方式:确定该第一内存单元的相邻位置的第二内存单元;或者,确定该第一内存单元的次邻位置的第二内存单元;或者,确定该第一内存单元的相邻位置以及次邻位置的第二内存单元。当然,还可以采用其它方式确定与该第一内存单元关联的第二内存单元,对此确定方式不做限制。
其中,确定发生故障的第一内存单元、确定与该第一内存单元关联的第二内存单元的实现过程,可以参见上述实施例,在此不再重复赘述。
其中,在对该第二内存单元进行内存故障的隔离时,可以先确定与该第二内存单元对应的第一内存页,然后对该第一内存页进行内存故障的隔离,具体实现方式可以参见上述实施例的步骤103和步骤104,在此不再重复赘述。
以下结合具体应用场景,对上述技术方案进行说明。本应用场景中,内存故障隔离方法可以应用于任意设备,只要该设备具有内存即可,也就是说,该设备可以采用本实施例的内存故障隔离方法,实现内存单元的故障隔离。
参见图2所示,为内存故障隔离方法的流程示意图,该方法可以包括:
步骤201,确定发生故障的第一内存单元,后续称为内存单元A。
在一个例子中,当某个内存单元(如内存单元A)发生故障时,则可以获知该内存单元A的物理地址,并通过该物理地址确定内存单元A的实际物理位置,如内存单元A的第一行地址A1和内存单元A的第一列地址B1。
其中,在内存单元A发生故障时,则可以解析出该内存单元A的物理地址,例如,可以通过MCA(Machine Check Architecture,机器检查体系结构)等技术解析出内存单元A的物理地址,对此物理地址的获取方式不做限制。
其中,可以预先存储物理地址与实际物理位置的对应关系,在得到内存单元A的物理地址后,可以通过该物理地址查询所述对应关系,得到该物理地址对应的实际物理位置,该实际物理位置也就是内存单元A的实际物理位置。
在一个例子中,物理地址可以是CPU的访问地址,例如,对于64G的内存来说,物理地址范围就是0-64G,假设内存单元A的大小为64K,内存单元A的起始物理地址为32G,则内存单元A的物理地址可以是32G至32G+64K。
在一个例子中,实际物理位置可以是内存单元在内存条中的实际位置,例如,对于64G的内存条来说,每个内存单元在该内存条中均有对应的实际物理位置,这个实际物理位置可以由行地址(Row)和列地址(Column)唯一确定,因此,内存单元A的实际物理位置就是内存单元A在内存条中的实际位置,内存单元A的实际物理位置可以由第一行地址A1和第一列地址B2唯一确定。
参见图3A所示,为内存单元的示例,每个方格就代表一个内存单元,该内存单元的实际物理位置可以由行地址和列地址唯一确定。例如,左上角的第一个内存单元,该内存单元的实际物理位置可以由行地址1和列地址1唯一确定。
综上所述,基于物理地址与实际物理位置的对应关系,在得到内存单元A的物理地址后,就可以查询到内存单元A的实际物理位置,对此不做限制。假设内存单元A的实际物理位置为行地址3和列地址3,则可以参见图3B所示。
在实际应用中,内存单元A的实际物理位置(如行地址3和列地址3)就可以表示内存单元A,而内存单元A就是上述发生故障的第一内存单元。
步骤202,确定与内存单元A对应的第二内存页,后续称为内存页A。
具体的,在确定发生故障的内存单元A后,可以确定内存单元A对应的物理地址,并根据该物理地址确定与内存单元A对应的内存页,即内存页A。
其中,针对确定内存单元A对应的物理地址的过程,在上述实施例中已经介绍,在内存单元A发生故障时,则可以解析出内存单元A的物理地址,例如通过MCA等技术解析出内存单元A的物理地址,对此过程不再重复赘述。
其中,针对根据物理地址确定与内存单元A对应的内存页A的过程,内存页可以是CPU访问内存的最小单位,一个内存页可以包括一个或者多个内存单元,CPU在访问内存时,是以内存页为最小单位进行访问,例如,内存页1包括内存单元1和内存单元2,则CPU在访问内存时,可以访问内存页1,而且,CPU在访问内存页1时,就是访问内存页1中的内存单元1和内存单元2。
由于内存页包括一个或者多个内存单元,因此,内存单元的物理地址与内存页具有关联关系,这样,在得到内存单元A的物理地址后,可以根据所述关联关系确定与该物理地址对应的内存页,该内存页是内存单元A对应的内存页。
例如,内存页A对应的物理地址范围是32G至32G+128K,而内存单元A的物理地址是32G至32G+64K,则可以确定物理地址“32G至32G+64K”属于内存页A对应的物理地址范围,因此,可以确定内存单元A对应内存页A。
步骤203,对内存页A进行内存故障的隔离,即不再访问内存页A。
具体的,在确定与内存单元A对应的内存页A之后,可以从操作系统的访问列表中删除内存页A,这样,操作系统就无法访问到内存页A,从而对内存页A进行内存故障的隔离,避免访问内存页A,继而避免访问到内存单元A。
在一个例子中,操作系统可以生成访问列表,该访问列表用于记录能够被访问的所有内存页。因此,在从访问列表中删除内存页A后,操作系统从访问列表中获取能够被访问的内存页时,就无法获取到内存页A,从而无法访问内存页A,这样,就可以实现内存页A的故障隔离,继而避免访问到内存单元A。
在一个例子中,一旦内存单元A出现故障,则内存单元A相邻位置的内存单元也有很大概率发生故障,因此,本实施例中,不但对内存单元A进行故障隔离,还可以对内存单元A相邻位置的内存单元进行故障隔离,其流程包括:
步骤204,确定与内存单元A关联的第二内存单元,后续称为内存单元B。
在一个例子中,内存单元B可以是内存单元A的相邻位置的内存单元;或者,内存单元B也可以是内存单元A的次邻位置的内存单元;或者,内存单元B还可以是内存单元A的相邻位置的内存单元以及次邻位置的内存单元。当然,内存单元B与内存单元A还可以是其它的位置关系,对此不做限制。
进一步的,为了确定与内存单元A关联的内存单元B,则可以采用如下方式:可以根据内存单元A的行地址和列地址,确定内存单元A的相邻位置的内存单元B;或者,根据内存单元A的行地址和列地址,确定内存单元A的次邻位置的内存单元;或者,根据内存单元A的行地址和列地址,确定内存单元A的相邻位置的内存单元B,以及,确定内存单元A的次邻位置的内存单元B。
参见图3C所示,为内存单元A的相邻位置的内存单元B,图3C中以8个内存单元B为例,这8个内存单元B可以分别为内存单元B1-内存单元B8。
进一步的,参见图3C所示,内存单元B1的行地址为内存单元A的行地址减1,内存单元B1的列地址为内存单元A的列地址减1;内存单元B2的行地址为内存单元A的行地址减1,内存单元B2的列地址与内存单元A的列地址相同;内存单元B3的行地址为内存单元A的行地址减1,内存单元B3的列地址为内存单元A的列地址加1;内存单元B4的行地址与内存单元A的行地址相同,内存单元B4的列地址为内存单元A的列地址减1;内存单元B5的行地址与内存单元A的行地址相同,内存单元B5的列地址为内存单元A的列地址加1;内存单元B6的行地址为内存单元A的行地址加1,内存单元B6的列地址为内存单元A的列地址减1;内存单元B7的行地址为内存单元A的行地址加1,内存单元B7的列地址与内存单元A的列地址相同;内存单元B8的行地址为内存单元A的行地址加1,内存单元B8的列地址为内存单元A的列地址加1。
参见图3D所示,为内存单元A的次邻位置的内存单元B,图3D中以16个内存单元B为例,这16个内存单元B可以分别为内存单元B9-内存单元B24。
进一步的,内存单元B9的行地址为内存单元A的行地址减2,内存单元B9的列地址为内存单元A的列地址减2;内存单元B10的行地址为内存单元A的行地址减2,内存单元B10的列地址为内存单元A的列地址减1;以此类推,各个内存单元的行地址和列地址可以参见图3D所示,在此不再重复赘述。
参见图3E所示,为内存单元A的相邻位置的内存单元B和次邻位置的内存单元B,在图3E中,以8个相邻位置的内存单元B(如内存单元B1-内存单元B8)、16个次邻位置的内存单元B(如内存单元B9-内存单元B24)为例。
进一步的,内存单元B1的行地址为内存单元A的行地址减1,内存单元B1的列地址为内存单元A的列地址减1;内存单元B2的行地址为内存单元A的行地址减1,内存单元B2的列地址与内存单元A的列地址相同;以此类推,各个内存单元的行地址和列地址可以参见图3E所示,在此不再重复赘述。
步骤205,确定与内存单元B对应的第一内存页,后续称为内存页B。
具体的,在得到与内存单元A对应的内存单元B后,可以确定内存单元B的物理地址,并根据该物理地址确定与内存单元B对应的内存页,即内存页B。
其中,针对确定内存单元B(如内存单元B1-内存单元B8)的物理地址的过程,步骤204中,已经得到内存单元B的实际物理位置,如内存单元B1-内存单元B8的行地址和列地址等,又由于预先存储有物理地址与实际物理位置的对应关系,因此,可以通过内存单元B的实际物理位置查询所述对应关系,得到该实际物理位置对应的物理地址,该物理地址也就是内存单元B的物理地址。
例如,可以利用内存单元B1的实际物理位置查询所述对应关系,从而得到内存单元B1的物理地址;此外,可以利用内存单元B2的实际物理位置查询所述对应关系,从而得到内存单元B2的物理地址;以此类推,可以利用内存单元B8的实际物理位置查询所述对应关系,从而得到内存单元B8的物理地址。
其中,针对根据该物理地址确定与内存单元B对应的内存页B的过程,内存页可以是CPU访问内存的最小单位,一个内存页可以包括一个或者多个内存单元,CPU在访问内存时,是以内存页为最小单位进行访问。由于内存页包括一个或者多个内存单元,因此,内存单元的物理地址与内存页具有关联关系,这样,在得到内存单元B(如内存单元B1-内存单元B8)的物理地址后,可以根据所述关联关系确定与该物理地址对应的内存页,即内存单元B的内存页。
例如,可以利用内存单元B1的物理地址查询所述关联关系,从而得到内存单元B1对应的内存页B1;此外,可以利用内存单元B2的物理地址查询所述关联关系,从而得到内存单元B2对应的内存页B2;以此类推,可以利用内存单元B8的物理地址查询所述关联关系,从而得到内存单元B8对应的内存页B8。
步骤206,对内存页B进行内存故障的隔离,即不再访问内存页B。
具体的,在确定与内存单元B对应的内存页B之后,可以从操作系统的访问列表中删除内存页B,这样,操作系统就无法访问到内存页B,从而对内存页B进行内存故障的隔离,避免访问内存页B,继而避免访问到内存单元B。
在一个例子中,操作系统可以生成访问列表,该访问列表用于记录能够被访问的所有内存页。因此,在从访问列表中删除内存页B后,操作系统从访问列表中获取能够被访问的内存页时,就无法获取到内存页B,从而无法访问内存页B,这样,就可以实现内存页B的故障隔离,继而避免访问到内存单元B。
例如,可以从访问列表中删除内存页B1,以实现对内存页B1的故障隔离,继而避免访问到内存单元B1;从访问列表中删除内存页B2,以实现对内存页B2的故障隔离,继而避免访问到内存单元B2;以此类推,从访问列表中删除内存页B8,以实现对内存页B8的故障隔离,继而避免访问到内存单元B8。
在上述实施例中,内存单元也可以称为内存颗粒,对此不做限制。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可以确定发生故障的第一内存单元,并确定与第一内存单元关联的第二内存单元,确定与第二内存单元对应的第一内存页,并对第一内存页进行内存故障的隔离。基于上述方式,可以对故障内存单元(已经失效的内存单元)、与故障内存单元关联的相邻内存单元(即将失效的内存单元)进行隔离,避免操作系统继续访问故障内存单元和相邻内存单元,实现内存故障的隔离,可以有效避免内存单元故障导致的计算机故障。
而且,在上述方式中,可以对故障内存单元进行隔离,也可以对故障内存单元关联的相邻内存单元进行隔离,从而隔离更多的内存单元,这些内存单元是已经失效的内存单元或者即将失效的内存单元,从而降低计算机故障的风险。
基于与上述方法同样的申请构思,本申请实施例还提供一种内存故障隔离装置,如图4所示,为所述装置的结构图,所述装置可以包括:
第一确定模块401,用于确定发生故障的第一内存单元;
第二确定模块402,用于确定与所述第一内存单元关联的第二内存单元;
第三确定模块403,用于确定与所述第二内存单元对应的第一内存页;
隔离模块404,用于对所述第一内存页进行内存故障的隔离。
所述第二确定模块402确定与所述第一内存单元关联的第二内存单元时具体用于:确定所述第一内存单元的相邻位置的第二内存单元;或者,
确定所述第一内存单元的次邻位置的第二内存单元;或者,
确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元。
所述第二确定模块402确定与所述第一内存单元关联的第二内存单元时具体用于:根据所述第一内存单元的第一行地址以及所述第一内存单元的第一列地址,确定与所述第一内存单元关联的第二内存单元;
所述第二确定模块402根据所述第一内存单元的第一行地址以及所述第一内存单元的第一列地址,确定与所述第一内存单元关联的第二内存单元时具体用于:根据所述第一行地址以及所述第一列地址,确定所述第一内存单元的相邻位置的第二内存单元,或者,所述第一内存单元的次邻位置的第二内存单元,或者,所述第一内存单元的相邻位置以及次邻位置的第二内存单元。
所述第三确定模块403确定与所述第二内存单元对应的第一内存页时具体用于:确定所述第二内存单元对应的第一物理地址;
根据所述第一物理地址确定与所述第二内存单元对应的第一内存页。
所述隔离模块404对所述第一内存页进行内存故障的隔离时具体用于:
从操作系统的访问列表删除所述第一内存页,以使所述操作系统对所述第一内存页进行内存故障的隔离;所述访问列表用于记录能够被访问的内存页。
基于与上述方法同样的构思,本实施例还提供一种内存故障隔离设备,包括:处理器和机器可读存储介质;所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
确定与所述第二内存单元对应的第一内存页;
对所述第一内存页进行内存故障的隔离。
本实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
确定与所述第二内存单元对应的第一内存页;
对所述第一内存页进行内存故障的隔离。
基于与上述方法同样的申请构思,本申请实施例还提供一种内存故障隔离装置,如图5所示,为所述装置的结构图,所述装置可以包括:
第一确定模块501,用于确定发生故障的第一内存单元;
第二确定模块502,用于确定与所述第一内存单元关联的第二内存单元;
隔离模块503,用于对所述第二内存单元进行内存故障的隔离。
其中,所述第二确定模块502确定与所述第一内存单元关联的第二内存单元时具体用于:确定所述第一内存单元的相邻位置的第二内存单元;或者,
确定所述第一内存单元的次邻位置的第二内存单元;或者,
确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元。
基于与上述方法同样的构思,本实施例还提供一种内存故障隔离设备,包括:处理器和机器可读存储介质;所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
对所述第二内存单元进行内存故障的隔离。
本实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;
对所述第二内存单元进行内存故障的隔离。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (17)

1.一种内存故障隔离方法,其特征在于,所述方法包括:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;其中,所述确定与所述第一内存单元关联的第二内存单元,包括:确定所述第一内存单元的相邻位置的第二内存单元;或者,确定所述第一内存单元的次邻位置的第二内存单元;或者,确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元;
确定与所述第二内存单元对应的第一内存页;
对所述第一内存页进行内存故障的隔离。
2.根据权利要求1所述的方法,其特征在于,
所述确定与所述第一内存单元关联的第二内存单元,还包括:
根据所述第一内存单元的第一行地址以及所述第一内存单元的第一列地址,确定与所述第一内存单元关联的第二内存单元。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述第一内存单元的第一行地址以及所述第一内存单元的第一列地址,确定与所述第一内存单元关联的第二内存单元,包括:
根据所述第一行地址以及所述第一列地址,确定所述第一内存单元的相邻位置的第二内存单元,或者,所述第一内存单元的次邻位置的第二内存单元,或者,所述第一内存单元的相邻位置以及次邻位置的第二内存单元。
4.根据权利要求2所述的方法,其特征在于,
所述第二内存单元的第二行地址和第二列地址为以下一种或几种:
所述第二行地址为第一行地址减1,所述第二列地址为第一列地址减1;
所述第二行地址为第一行地址减1,所述第二列地址与第一列地址相同;
所述第二行地址为第一行地址减1,所述第二列地址为第一列地址加1;
所述第二行地址与第一行地址相同,所述第二列地址为第一列地址减1;
所述第二行地址与第一行地址相同,所述第二列地址为第一列地址加1;
所述第二行地址为第一行地址加1,所述第二列地址为第一列地址减1;
所述第二行地址为第一行地址加1,所述第二列地址与第一列地址相同;
所述第二行地址为第一行地址加1,所述第二列地址为第一列地址加1。
5.根据权利要求1所述的方法,其特征在于,
所述确定与所述第二内存单元对应的第一内存页,包括:
确定所述第二内存单元对应的第一物理地址;
根据所述第一物理地址确定与所述第二内存单元对应的第一内存页。
6.根据权利要求1所述的方法,其特征在于,
所述对所述第一内存页进行内存故障的隔离,包括:
从操作系统的访问列表删除所述第一内存页,以使所述操作系统对所述第一内存页进行内存故障的隔离;所述访问列表用于记录能够被访问的内存页。
7.根据权利要求1所述的方法,其特征在于,
所述确定发生故障的第一内存单元后,所述方法还包括:
确定与所述第一内存单元对应的第二内存页;
对所述第二内存页进行内存故障的隔离。
8.根据权利要求7所述的方法,其特征在于,
所述确定与所述第一内存单元对应的第二内存页,包括:
确定所述第一内存单元对应的第二物理地址;
根据所述第二物理地址确定与所述第一内存单元对应的第二内存页。
9.根据权利要求7所述的方法,其特征在于,
所述对所述第二内存页进行内存故障的隔离,包括:
从操作系统的访问列表删除所述第二内存页,以使所述操作系统对所述第二内存页进行内存故障的隔离;所述访问列表用于记录能够被访问的内存页。
10.一种内存故障隔离方法,其特征在于,所述方法包括:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;其中,所述确定与所述第一内存单元关联的第二内存单元,包括:确定所述第一内存单元的相邻位置的第二内存单元;或者,确定所述第一内存单元的次邻位置的第二内存单元;或者,确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元;
对所述第二内存单元进行内存故障的隔离。
11.一种内存故障隔离装置,其特征在于,所述装置包括:
第一确定模块,用于确定发生故障的第一内存单元;
第二确定模块,用于确定与所述第一内存单元关联的第二内存单元;其中,所述第二确定模块确定与所述第一内存单元关联的第二内存单元时具体用于:确定所述第一内存单元的相邻位置的第二内存单元;或者,确定所述第一内存单元的次邻位置的第二内存单元;或者,确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元;
第三确定模块,用于确定与所述第二内存单元对应的第一内存页;
隔离模块,用于对所述第一内存页进行内存故障的隔离。
12.根据权利要求11所述的装置,其特征在于,所述第二确定模块确定与所述第一内存单元关联的第二内存单元时具体用于:
根据所述第一内存单元的第一行地址以及所述第一内存单元的第一列地址,确定与所述第一内存单元关联的第二内存单元;
所述第二确定模块根据所述第一内存单元的第一行地址以及所述第一内存单元的第一列地址,确定与所述第一内存单元关联的第二内存单元时具体用于:
根据所述第一行地址以及所述第一列地址,确定所述第一内存单元的相邻位置的第二内存单元,或者,所述第一内存单元的次邻位置的第二内存单元,或者,所述第一内存单元的相邻位置以及次邻位置的第二内存单元。
13.根据权利要求11所述的装置,其特征在于,所述第三确定模块确定与所述第二内存单元对应的第一内存页时具体用于:
确定所述第二内存单元对应的第一物理地址;
根据所述第一物理地址确定与所述第二内存单元对应的第一内存页。
14.根据权利要求11所述的装置,其特征在于,
所述隔离模块对所述第一内存页进行内存故障的隔离时具体用于:
从操作系统的访问列表删除所述第一内存页,以使所述操作系统对所述第一内存页进行内存故障的隔离;所述访问列表用于记录能够被访问的内存页。
15.一种内存故障隔离装置,其特征在于,所述装置包括:
第一确定模块,用于确定发生故障的第一内存单元;
第二确定模块,用于确定与所述第一内存单元关联的第二内存单元;其中,所述第二确定模块确定与所述第一内存单元关联的第二内存单元时具体用于:确定所述第一内存单元的相邻位置的第二内存单元;或者,确定所述第一内存单元的次邻位置的第二内存单元;或者,确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元;
隔离模块,用于对所述第二内存单元进行内存故障的隔离。
16.一种内存故障隔离设备,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;其中,所述确定与所述第一内存单元关联的第二内存单元,包括:确定所述第一内存单元的相邻位置的第二内存单元;或者,确定所述第一内存单元的次邻位置的第二内存单元;或者,确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元;
确定与所述第二内存单元对应的第一内存页;
对所述第一内存页进行内存故障的隔离。
17.一种内存故障隔离设备,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
确定发生故障的第一内存单元;
确定与所述第一内存单元关联的第二内存单元;其中,所述确定与所述第一内存单元关联的第二内存单元,包括:确定所述第一内存单元的相邻位置的第二内存单元;或者,确定所述第一内存单元的次邻位置的第二内存单元;或者,确定所述第一内存单元的相邻位置以及次邻位置的第二内存单元;
对所述第二内存单元进行内存故障的隔离。
CN201810960567.1A 2018-08-22 2018-08-22 一种内存故障隔离方法、装置及设备 Active CN110858167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810960567.1A CN110858167B (zh) 2018-08-22 2018-08-22 一种内存故障隔离方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810960567.1A CN110858167B (zh) 2018-08-22 2018-08-22 一种内存故障隔离方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110858167A CN110858167A (zh) 2020-03-03
CN110858167B true CN110858167B (zh) 2023-06-27

Family

ID=69635858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810960567.1A Active CN110858167B (zh) 2018-08-22 2018-08-22 一种内存故障隔离方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110858167B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302656B (zh) * 2023-03-13 2023-11-03 哈尔滨工业大学(深圳) 智能内存隔离方法以及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222025A (zh) * 2011-06-17 2011-10-19 华为数字技术有限公司 一种消除内存故障的方法及装置
CN103631591A (zh) * 2013-11-29 2014-03-12 中国航空无线电电子研究所 符合民用飞机不同软件等级要求的软件运行控制系统与方法
CN106021014A (zh) * 2016-05-12 2016-10-12 浪潮电子信息产业股份有限公司 一种内存管理方法及装置
CN106133704A (zh) * 2015-01-19 2016-11-16 华为技术有限公司 内存故障隔离方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222025A (zh) * 2011-06-17 2011-10-19 华为数字技术有限公司 一种消除内存故障的方法及装置
CN103631591A (zh) * 2013-11-29 2014-03-12 中国航空无线电电子研究所 符合民用飞机不同软件等级要求的软件运行控制系统与方法
CN106133704A (zh) * 2015-01-19 2016-11-16 华为技术有限公司 内存故障隔离方法和装置
CN106021014A (zh) * 2016-05-12 2016-10-12 浪潮电子信息产业股份有限公司 一种内存管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hillel Avni等."面向数据库的持久化事务内存".《计算机研究与发展》.2018,第55卷(第2期),第305-318页. *

Also Published As

Publication number Publication date
CN110858167A (zh) 2020-03-03

Similar Documents

Publication Publication Date Title
US10725692B2 (en) Data storage method and apparatus
US20150293822A1 (en) Systems and methods for recovering from uncorrected dram bit errors
CN112506671B (zh) 区块链中的交易处理方法、装置及电子设备
CN104008780A (zh) 存储单元的修复方法和装置
CN107315616A (zh) 一种固件的加载方法、装置及电子设备
CN114020525B (zh) 故障隔离方法、装置、设备及存储介质
CN110858167B (zh) 一种内存故障隔离方法、装置及设备
CN111666046A (zh) 一种数据存储方法、装置及设备
CN112420117B (zh) 测试sram的方法、装置、计算机设备及存储介质
CN113312205B (zh) 数据校验方法、装置、存储介质和计算机设备
CN116126581B (zh) 内存故障处理方法、装置、系统、设备及存储介质
CN106708445A (zh) 链路选择方法及装置
US9542285B2 (en) Memory device, storage method and control device
CN116072197A (zh) 基于晶片堆叠架构的计算机系统和存储器测试方法
CN114780323A (zh) 一种服务器中内存的故障检测方法、装置及设备
KR20190062879A (ko) 스페어 피봇 고장 특성을 이용한 메모리 분석 방법 및 장치
CN103310848A (zh) 一种使用存储器的方法和装置
CN112216333A (zh) 芯片测试方法及装置
US9262264B2 (en) Error correction code seeding
CN117079703B (zh) 用于测试芯片内嵌存储器的方法及装置、电子设备
CN105988917A (zh) 异常信息获取方法及装置
CN117539690B (zh) 多磁盘数据的合并恢复方法、装置、设备、介质和产品
CN109271277A (zh) 数据库宕机后的访问方法、装置和系统
CN112053739B (zh) 一种存储器检测方法和装置
CN111984554B (zh) 一种数据处理方法及装置

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
GR01 Patent grant
GR01 Patent grant