CN102968353B - 一种失效地址处理方法及装置 - Google Patents
一种失效地址处理方法及装置 Download PDFInfo
- Publication number
- CN102968353B CN102968353B CN201210417018.2A CN201210417018A CN102968353B CN 102968353 B CN102968353 B CN 102968353B CN 201210417018 A CN201210417018 A CN 201210417018A CN 102968353 B CN102968353 B CN 102968353B
- Authority
- CN
- China
- Prior art keywords
- fail address
- storage unit
- address
- memory
- failure
- 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
Links
- 238000003860 storage Methods 0.000 claims abstract description 159
- 238000009826 distribution Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000003068 static effect Effects 0.000 claims description 31
- 238000012360 testing method Methods 0.000 claims description 31
- 238000001816 cooling Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 208000033999 Device damage Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供一种失效地址处理方法及装置,涉及计算机领域,可以在保证内存读写正确的同时,有效提高内存资源的利用率。具体方案为:读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址,其中,所述失效地址由操作***OS在运行过程中检测到出现失效的单元后存储,所述第二存储器为非易失性存储器;当判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址。本发明主要用于BIOS启动阶段失效地址的处理过程中。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种失效地址处理方法及装置。
背景技术
计算机***一般由处理器、内存、输入设备、输出设备和总线五个部分组成,其中内存用来保存处理器运行所需的指令和数据。内存一般是用半导体工艺的动态随机存储器(DynamicRandomAccessMemory,DRAM)实现的,为了便于更换常常将内存做成包含多个DRAM芯片的内存条形式。为了能够使内存条的可靠性提高,内存条上往往还增加了1或2个错误检测和纠正(ErrorCheckingandCorrection,ECC)校验芯片。
在现有技术中,当程序访问内存时,若内存中的数据出现一个比特的错误,可以通过ECC校验码检测出来并加以纠正,使计算机可以继续正常运行,并且由电可擦可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)记录下失效地址。但是当错误超过一个比特时,由于超过了ECC的纠错能力,ECC校验芯片只能将错误检测出来但无法进行纠正,导致***运行错误,在检测到错误后也要将失效地址记录在EEPROM中。记录失效地址是为了在***重新启动过程中,不再使用失效地址对应的存储单元,保证程序正常运行。
在实现上述信息存储的过程中,发明人发现现有技术至少存在如下问题:由于***重新启动后不加区分的屏蔽已记录的失效地址,造成内存存储资源的浪费。
发明内容
本发明的实施例提供一种失效地址处理方法及装置,可以在保证内存读写正确的同时,有效提高内存资源的利用率。
本发明的第一方面,提供一种失效地址处理方法,应用于基本输入输出***(BasicInputOutputSystem,BIOS)启动阶段,所述方法包括:
读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址;其中,所述失效地址是由操作***(OperatingSystem,OS)在运行过程中检测到出现失效的单元后存储的,所述第二存储器为非易失性存储器;
当判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址。
结合第一方面,在一种可能的实现方式中,在所述读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址之后,所述的失效地址处理方法还包括:
判断所述失效地址对应的出现失效的存储单元的失效类型,所述失效类型包括软失效和硬失效;
判断所述失效地址的分配类型,所述分配类型包括动态分配和静态分配。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:
当判断所述失效地址对应的出现失效的存储单元的失效类型为软失效时,则从所述第二存储器中删除所述失效地址。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:
当判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为静态分配时,则启动保护机制。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述判断所述失效地址对应的出现失效的存储单元的失效类型,包括:
对所述失效地址对应的出现失效的存储单元进行写入和读取测试;其中,所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据;
若所述存储单元中读取的数据与写入的数据一致,则所述存储单元为软失效;
若所述存储单元中读取的数据与写入的数据不一致,则所述存储单元为硬失效。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一存储器包括动态随机存储器DRAM,所述第二存储器包括电可擦可编程只读存储器EEPROM或者flash存储器。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,
所述启动保护机制包括:提示警告并停止运行;或提示警告并重启***;
所述屏蔽所述失效地址包括:将所述失效地址所在的页面地址范围设置为保留属性,以便OS对所述第一存储器进行读写操作时不再使用所述页面地址范围。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,
动态分配的地址包括:OS进程占用的地址空间、用户进程占用的地址空间和输入/输出I/O设备的收发缓冲区;
静态分配的地址包括:OS内核占用的地址空间、BIOS缓冲区和视频缓冲区。
本发明的第二方面,提供一种失效地址处理装置,应用于BIOS启动阶段,该装置包括:
读取单元,用于读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址;其中,所述失效地址是由操作***OS在运行过程中检测到出现失效的单元后存储的,所述第二存储器为非易失性存储器;
屏蔽单元,用于当判断所述读取单元读取的失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址。
结合第二方面,在一种可能实现方式中,所述的失效地址处理装置,还包括:
第一判断单元,用于在所述读取单元读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址之后,判断所述读取单元读取的失效地址对应的出现失效的存储单元的失效类型,所述失效类型包括软失效和硬失效;
第二判断单元,用于判断所述失效地址的分配类型,所述分配类型包括动态分配和静态分配。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述的失效地址处理装置还包括:
删除单元,用于当所述第一判断单元判断的所述失效地址对应的出现失效的存储单元的失效类型为软失效时,从所述第二存储器中删除所述失效地址。
结合第二方面和上述可能的实现方式,在另一种可能实现方式中,所述的失效地址处理装置,还包括:
保护单元,用于当所述第一判断单元判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述第二判断单元判断的所述失效地址的分配类型为静态分配时,启动保护机制。
结合第二方面和上述可能的实现方式,在另一种可能实现方式中,所述第一判断单元,包括:
测试模块,用于对所述读取单元读取的失效地址对应的存储单元进行写入和读取测试;其中,所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据;当所述存储单元中读取的数据与写入的数据一致时,确定所述存储单元为软失效;当所述存储单元中读取的数据与写入的数据不一致时,确定所述存储单元为硬失效。
结合第二方面和上述可能的实现方式,在另一种可能实现方式中,所述第一存储器包括动态随机存储器DRAM,所述第二存储器包括电可擦可编程只读存储器EEPROM或者flash存储器。
结合第二方面和上述可能的实现方式,在另一种可能实现方式中,
所述保护单元具体用于:提示警告并停止运行;或提示警告并重启***;
所述屏蔽单元具体用于:将所述失效地址所在的页面地址范围设置为保留属性,以便OS对所述第一存储器进行读写操作时不再使用所述页面地址范围。
结合第二方面和上述可能的实现方式,在另一种可能实现方式中,
动态分配的地址包括:OS进程占用的地址空间、用户进程占用的地址空间和输入/输出I/O设备的收发缓冲区;
静态分配的地址包括:OS内核占用的地址空间、BIOS缓冲区和视频缓冲区。
本发明提供的一种失效地址处理方法及装置,当记录的失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,区分软失效地址和硬失效地址,仅将硬失效的动态分配地址进行屏蔽,避免了内存读写出错,并且内存中软失效的地址空间可继续使用,提高了内存空间的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种失效地址处理方法流程图;
图2为本发明实施例2提供的一种失效地址处理方法流程图;
图3为本发明实施例3提供的一种失效地址处理装置组成示意图;
图4为本发明实施例3提供的另一种失效地址处理装置组成示意图;
图5为本发明实施例4提供的一种失效地址处理装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种失效地址处理方法,应用于基本输入输出***(BasicInputOutputSystem,BIOS)启动阶段,如图1所示,该方法可以包括:
101、读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址。
其中,计算机***复位后,BIOS先开始运行。BIOS从第二存储器中读取存储的第一存储器中出现失效的存储单元的失效地址,并对其进行读写测试和地址匹配。所述失效地址是由操作***(OperatingSystem,OS)在运行过程中检测到出现失效的单元后存储的。
102、当判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址。
其中,BIOS从第二存储器中读取存储的第一存储器中出现失效的存储单元的失效地址后,对其进行读写测试,判断所述失效地址对应的出现失效的存储单元的失效类型是软失效还是硬失效。如果是硬失效则会对失效地址进行地址匹配,匹配所述失效地址是否属于OS动态分配的内存空间范围,如果该地址属于OS动态分配的内存空间范围,则屏蔽该失效地址;如果该地址属于OS静态分配的内存空间范围,则启动保护机制。
具体的,OS是指一个软件运行环境,可以基于这个环境为用户进程(如用户启动的应用程序的进程)以及***设备的收发缓冲区(如网卡用于发送或接收数据的缓存)分配内存空间。所述屏蔽所述失效地址包括:将所述失效地址所在的页面地址范围设置为保留属性,以便OS对所述第一存储器进行动态存储分配时不再使用所述页面地址范围。也就是说,OS在分配内存空间的时候,就不会用到这些地址。
需要说明的是,BIOS从第二存储器中读取存储的第一存储器中出现失效的存储单元的失效地址后,也可以先对失效地址进行地址匹配,再对该失效地址进行读写测试,根据匹配结果和测试结果,如果判断出该失效地址对应的出现失效的存储单元不属于支持动态分配的内存空间范围即所述失效地址的分配类型为静态分配且所述失效地址对应的出现失效的存储单元为硬失效,则启动保护机制。
本发明提供的失效地址处理方法,当记录的失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,区分软失效地址和硬失效地址,仅将硬失效的动态分配地址进行屏蔽,避免了内存读写出错,并且内存中软失效的地址空间可继续使用,提高了内存空间的利用率。
实施例2
本发明实施例提供一种失效地址处理方法,如图2所示,该方法可以包括:
201、当访问第一存储器失效时,将发生失效的失效地址存储至第二存储器中;其中,所述失效包括软失效和硬失效。
其中,第一存储器包括DRAM,所述第二存储器包括EEPROM或flash。内存是计算机***的组成部分之一,主要用来保存处理器运行所需的指令和数据。为了便于更换常做成包含多个DRAM芯片的内存条的形式,在内存条上除了有DRAM芯片之外,还有一个小容量的EEPROM芯片,EEPROM芯片可以通过I2C总线来访问。EEPROM芯片里面保存着DRAM芯片的地址线位数、数据线宽度、时序参数等信息,具体格式有业界标准,本发明在此不作详细赘述,处理器可以根据这些信息来配置内存控制器,保证对内存条的正常访问。EEPROM芯片的容量一般是256个字节,保存以上所述DRAM芯片的相关信息只需要128个字节,所以剩余空间可以用来记录内存条上DRAM芯片的失效地址。
在计算机运行的过程中,当处理器访问第一存储器失效时,处理器会将发生失效的失效地址存储至第二存储器中。具体的可以是:当程序访问内存时,处理器都会将数据和对应的校验位一起读取并按照ECC算法进行校验,如果数据中存在错误并且可以纠正,例如只有一个比特出错,那么先将错误纠正得到正确的数据然后将失效地址记录到第二存储器中,此时计算机就可以继续正常运行。但是数据出错有可能是软失效也有可能是硬失效,而在操作***运行的过程中有些内存空间受保护,因此不能在检测到数据出错后立即进行测试,而是要等到***重启后在BIOS阶段进行测试,区分出该失效是硬失效还是软失效。如果错误较多超出了ECC算法的纠错能力,例如同时出现了两个或者两个以上的比特错误,那么只能检测到失效地址而无法恢复正确数据,此时也需要记录失效地址,由于此时***已经无法继续运行,所以必须重启***。
可以理解的是,记录失效地址是为了能够在正常重启时进行测试,将硬失效的地址所在页面设置为不可用,避免重启后继续使用,否则一旦数据出错积累超出ECC纠错能力就会造成故障。如果同一地址在重启之前被多次访问,会出现同一地址被记录多次的情况,因此在记录地址之前需要先确认是否已经记录过,从而减少EEPROM空间的占用。
202、BIOS***重启后,读取所述第二存储器中存储的所述第一存储器中出现失效的存储单元的失效地址。
其中,在***复位结束后,BIOS先开始运行,对计算机中各种芯片执行测试和初始化,例如处理器、桥片和各种输入/输出设备。紧接着BIOS会从第二存储器中读取内存条的容量、时序参数并配置好内存控制器,以便于对内存条进行读写操作。然后BIOS判断第二存储器中是否保存了失效的存储单元的地址信息,如果有保存,读取第二存储器中存储的第一存储器的失效地址。并且在读取到失效地址后,会直接进行下一步的处理,即读到一个失效地址处理一个,直至第二存储器中记录的第一存储器的失效的存储单元处理完成。
在BIOS开始运行时还会特别准备一个表格,例如E820表,E820表可以基于第二存储器中存储的第一存储器的失效地址设置各个失效地址对应的地址范围的属性,其中E820表中会列出各段内存空间的地址范围和属性,例如保留(reserved)或可用(usable),以便于在操作***启动后根据E820表中标记的访问权限来使用内存空间,使得***可以正常的运行。
其中,可以知道的是,在现有技术中,E820表的表项数目是有限的,由程序设计决定,例如32、64个,同时EEPROM剩余的存储空间也是有限的,因此可以设定两个阈值,第一阈值是E820表中记录硬失效单元所在页面地址范围的表项数,第二阈值是EEPROM中保存的失效地址数(包括硬失效和软失效)。如果出现的失效的存储单元过多,例如操作***运行期间发生了多次内存数据出错,使得记录到EEPROM中的项目总数超出了第二阈值,或者在BIOS启动阶段通过读写测试识别出的硬失效对应的页面总数超出了第一阈值,则可以上报故障告警。
由于内存空间保留的基本单位是4KB页面大小,因此在BIOS进行读写测试期间,如果多个失效地址位于同一个页面,而且至少有一个失效的存储单元是硬失效,则可以只在EEPROM中保留一个记录。
203、对所述失效地址对应的存储单元进行写入和读取测试,确定所述失效地址对应的出现失效的存储单元的失效类型;若所述出现失效的存储单元的失效类型为软失效,则执行步骤204;若所述出现失效的存储单元的失效类型为硬失效,则执行步骤205。
其中,当读出第二存储器中保存了失效的存储单元的地址信息时,会根据读取的第二存储器中存储的第一存储器的失效地址,对所述失效地址对应的存储单元进行写入和读取测试,确定所述失效地址对应的存储单元的失效类型,其中,内存中的数据错误一般存在以下几种可能:
(1)生产缺陷。DRAM芯片在生产过程中由于工艺缺陷而产生少量的失效存储单元,这些单元无法正确读写,称为硬失效。
(2)器件损伤。DRAM芯片在运行过程中由于电应力而产生少量的失效存储单元,这些单元也无法正确读写,同样是硬失效。
(3)比特跳变。由于工作环境中存在的宇宙射线、电源波动、信号串扰等,这些外界因素都会使少量的存储单元信息发生跳变,例如从1变为0,这种失效只影响存储单元保存的信息,存储单元本身仍然可以正常读写,这种情况称为软失效。
可以看出,根据所述失效的存储单元是否可以正常的读写就可以区分出该失效的存储单元是硬失效还是软失效。所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据。当所述失效地址对应的存储单元中读取的数据与写入的数据一致时,确定所述存储单元为软失效;当所述失效地址对应的存储单元中读取的数据与写入的数据不一致时,确定所述存储单元为硬失效。
204、从所述第二存储器中删除所述失效地址。
其中,当BIOS根据读写测试的结果,判断出该失效地址对应的出现失效的存储单元的失效类型为软失效,那么BIOS将会把该失效地址从第二存储器中删除。这是因为对于软失效来说,它的发生是由于外界因素的影响导致的,是存在随机性的,存储单元本身并没有失效,因此这类失效地址对应的出现失效的存储单元仍可以继续使用。所以本发明对失效地址的类型进行判断,将由于外界因素的影响导致数据错误的软失效的失效地址删除,使得读写正常的存储单元可以继续使用,与现有技术相比,提高了内存的存储空间利用率。
进一步,为了避免设备因内存地址失效而发生严重错误,本发明的方法还可以包括以下步骤:
205、判断所述失效地址对应的出现失效的存储单元的分配类型;若所述失效地址的分配类型为静态分配,则执行步骤206;若所述失效地址的分配类型为动态分配,则执行步骤207。
其中,当BIOS根据读写测试的结果,判断出该失效地址对应的出现失效的存储单元的失效类型为硬失效时,可以进一步判断该失效地址对应的出现失效的存储单元的分配类型,这是因为对于硬失效来说,如果存储单元存在物理故障,它所在的页面不能继续使用,需要设置为保留属性。但是对处理器来说,整个内存空间的用途有一定规划,有些内存空间是操作***可以动态分配的,例如I/O设备的收发缓冲区、OS进程占用的地址空间和用户进程占用的地址空间等。如果支持动态分配的内存单元发生了失效,可以由BIOS设置为保留属性,这样操作***启动后就获取不到已屏蔽的地址空间,就不会使用这些地址空间,不影响正常运行。但是如果是静态分配的内存单元发生失效的话,OS会因为无法访问这些静态分配的地址空间而出错,影响设备的正常工作。
206、启动保护机制。
其中,在BIOS根据第二存储器中保存的失效地址判断出该失效地址对应的出现失效的存储单元的失效类型为硬失效,并且所述失效地址对应的出现失效的存储单元的分配类型为静态分配时,BIOS会启动保护机制。所述保护机制可以是提示警告并停止运行,也可以是提示警告并且重新启动***,或者也可以将该失效地址写入到闪存等存储器中,以便后续排错和维修。例如,OS内核是在BIOS启动阶段由BIOS加载到内存中固定地址的,不能支持动态分配的地址,如果这段地址范围内有存储单元出现错误,就会影响设备的正常工作,只能上报告警并停止BIOS的继续运行。
207、将所述失效地址对应的出现失效的存储单元所在的页面地址范围设置为保留属性,以便OS进行地址分配时不使用所述页面地址范围对应的存储页面。
其中,在BIOS根据第二存储器中保存的失效地址的页面范围判断出该失效地址对应的出现失效的存储单元的分配类型为动态分配时,BIOS会将所述失效地址对应的出现失效的存储单元所在页面地址范围加入BIOS提前准备好的E820表中并且设置为保留属性,这样在***启动后操作***就不会继续使用这段内存空间,保证了***在重启后的正常运行。
在检测到该失效地址的分配类型为动态分配且所述失效地址的失效类型为硬失效,并将其加入E820表中设置为保留属性后,BIOS会继续检测第二存储器中是否还存在失效地址,若存在则继续执行步骤202-207,直到第二存储器中记录的失效地址全部处理完成。
需要说明的是,本发明实施例中步骤203确定失效地址对应的出现失效的存储单元的失效类型和步骤205判断失效地址对应的出现失效的存储单元的分配类型的顺序可以调换,即也可以先判断失效地址对应的出现失效的存储单元的分配类型,再确定失效地址对应的出现失效的存储单元的失效类型。本发明实施例在此不做限定。
本发明提供的一种失效地址处理方法,当记录的失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,区分软失效地址和硬失效地址,仅将硬失效的动态分配地址进行屏蔽,避免了内存读写出错,并且内存中软失效的地址空间可继续使用,提高了内存空间的利用率。
并且,当失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为静态分配时,启动保护机制,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,将静态分配的地址识别出来,提前启动保护机制,避免处理器继续运行发生严重错误。
实施例3
本发明实施例提供一种失效地址处理装置,应用于BIOS启动阶段,如图3所示,包括:读取单元31和屏蔽单元32。
读取单元31,用于读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址;其中,所述失效地址是由操作***OS在运行过程中检测到出现失效的单元后存储的,所述第二存储器为非易失性存储器。
屏蔽单元32,用于当判断所述读取单元31读取的失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址。
进一步的,如图4所示,该失效地址处理装置还可以包括:第一判断单元33、第二判断单元34。
第一判断单元33,用于在所述读取单元31读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址之后,判断所述读取单元31读取的失效地址对应的出现失效的存储单元的失效类型,所述失效类型包括软失效和硬失效。
第二判断单元34,用于判断所述失效地址的分配类型,所述分配类型包括动态分配和静态分配
进一步的,所述的失效地址处理装置还可以包括:删除单元35。
删除单元35,用于在所述第一判断单元33判断的所述失效地址对应的出现失效的存储单元的失效类型为软失效时,从所述第二存储器中删除所述失效地址。
进一步的,该失效地址处理装置还可以包括:保护单元36。
保护单元36,用于当所述第一判断单元33判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述第二判断单元34判断的所述失效地址的分配类型为静态分配时,启动保护机制。
进一步的,该第一判断单元33,包括:测试模块331。
测试模块331,用于对所述读取单元31读取的失效地址对应的存储单元进行写入和读取测试;其中,所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据;当所述存储单元中读取的数据与写入的数据一致时,确定所述存储单元为软失效;当所述存储单元中读取的数据与写入的数据不一致时,确定所述存储单元为硬失效。
进一步的,所述第一存储器包括动态随机存储器DRAM,所述第二存储器包括电可擦可编程只读存储器EEPROM或者flash存储器。
进一步的,所述保护单元36具体用于:提示警告并停止运行,或提示警告并重启***。
所述屏蔽单元32具体用于:将所述失效地址所在的页面地址范围设置为保留属性,以便OS对所述第一存储器进行读写操作时不再使用所述页面地址范围。
进一步的,动态分配的地址包括:OS进程占用的地址空间、用户进程占用的地址空间和输入/输出I/O设备的收发缓冲区;
静态分配的地址包括:OS内核占用的地址空间、BIOS缓冲区和视频缓冲区。
本发明提供的一种失效地址处理装置,当记录的失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,区分软失效地址和硬失效地址,仅将硬失效的动态分配地址进行屏蔽,避免了内存读写出错,并且内存中软失效的地址空间可继续使用,提高了内存空间的利用率。
并且,当所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为静态分配时,启动保护机制,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,将静态分配的地址识别出来,提前启动保护机制,避免处理器继续运行发生严重错误。
实施例4
本发明实施例还提供一种失效地址处理装置,如图5所示,包括:处理器51、第一存储器52、第二存储器53和BIOS存储器54,该装置可以是PC或者服务器,或者其他设备。
在本实施例中,所述BIOS存储器54存储有BIOS程序代码,处理器51上电后从所述BIOS存储器54中读取这些BIOS程序代码,处理器51执行这些程序代码的具体实现如下:
处理器51,用于读取第二存储器53中存储的第一存储器52中出现失效的存储单元的失效地址。其中,所述失效地址是由操作***OS在运行过程中检测到出现失效的单元后存储的,所述第二存储器为非易失性存储器。
所述处理器51,还用于当所述处理器51读取的失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为静态分配时,启动保护机制。
所述处理器51,还用于当所述失效地址对应的存储单元为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址。后续处理器51启动OS后,在OS运行过程中若检测到出现失效的存储单元可将失效地址存储到第二存储器53中。
进一步的,所述处理器51,还用于在读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址之后,判断读取的失效地址对应的出现失效的存储单元的失效类型,所述失效类型包括软失效和硬失效,并判断所述失效地址的分配类型,所述分配类型包括动态分配和静态分配。
进一步的,所述处理器51,还用于在判断的所述失效地址对应的出现失效的存储单元的失效类型为软失效时,从所述第二存储器53中删除所述失效地址。
进一步的,所述处理器51,还用于当判断的所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为静态分配时,启动保护机制。
进一步的,所述处理器51还用于:对读取的失效地址对应的存储单元进行写入和读取测试;其中,所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据;当所述存储单元中读取的数据与写入的数据一致时,确定所述存储单元为软失效;当所述存储单元中读取的数据与写入的数据不一致时,确定所述存储单元为硬失效。
进一步的,所述第一存储器52包括动态随机存储器DRAM,所述第二存储器53包括电可擦可编程只读存储器EEPROM或者flash存储器。
进一步的,所述启动单元36具体用于:提示警告并停止运行,或提示警告并重启***。所述屏蔽单元32具体用于:将所述失效地址所在的页面地址范围设置为保留属性,以便OS对所述第一存储器进行读写操作时不再使用所述页面地址范围。
进一步的,动态分配的地址包括:OS进程占用的地址空间、用户进程占用的地址空间和输入/输出I/O设备的收发缓冲区;
静态分配的地址包括:OS内核占用的地址空间、BIOS缓冲区和视频缓冲区。
本发明提供的一种失效地址处理装置,当记录的失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,区分软失效地址和硬失效地址,仅将硬失效的动态分配地址进行屏蔽,避免了内存读写出错,并且内存中软失效的地址空间可继续使用,提高了内存空间的利用率。
并且,当所述失效地址对应的出现失效的存储单元的失效类型为硬失效且所述失效地址的分配类型为静态分配时,启动保护机制,与现有技术中直接将所有失效地址对应的存储单元均设置为保留属性相比,将静态分配的地址识别出来,提前启动保护机制,避免处理器继续运行发生严重错误。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种失效地址处理方法,其特征在于,应用于基本输入输出***BIOS启动阶段,所述方法包括:
所述BIOS读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址;其中,所述失效地址由操作***OS在运行过程中检测到出现失效的单元后存储,所述第二存储器为非易失性存储器;
所述BIOS判断所述失效地址对应的出现失效的存储单元的失效类型,所述失效类型包括软失效和硬失效;判断所述失效地址的分配类型,所述分配类型包括动态分配和静态分配;
当判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述失效地址的分配类型为动态分配时,所述BIOS屏蔽所述失效地址,所述屏蔽所述失效地址包括:将所述失效地址所在的页面地址范围设置为保留属性,以便所述OS对所述第一存储器进行读写操作时不再使用所述页面地址范围;
当判断所述失效地址对应的出现失效的存储单元的失效类型为软失效时,则所述BIOS从所述第二存储器中删除所述失效地址。
2.根据权利要求1所述的失效地址处理方法,其特征在于,还包括:
当判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述失效地址的分配类型为静态分配时,则启动保护机制。
3.根据权利要求1所述的失效地址处理方法,其特征在于,所述判断所述失效地址对应的出现失效的存储单元的失效类型,包括:
对所述失效地址对应的出现失效的存储单元进行写入和读取测试;其中,所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据;
若所述存储单元中读取的数据与写入的数据一致,则所述存储单元为软失效;
若所述存储单元中读取的数据与写入的数据不一致,则所述存储单元为硬失效。
4.根据权利要求1-3中任一项所述的失效地址处理方法,其特征在于,所述第一存储器包括动态随机存储器DRAM,所述第二存储器包括电可擦可编程只读存储器EEPROM或者flash存储器。
5.根据权利要求2所述的失效地址处理方法,其特征在于,
所述启动保护机制包括:提示警告并停止运行;或提示警告并重启***。
6.根据权利要求1所述的失效地址处理方法,其特征在于,
动态分配的地址包括:OS进程占用的地址空间、用户进程占用的地址空间和输入/输出I/O设备的收发缓冲区;
静态分配的地址包括:OS内核占用的地址空间、BIOS缓冲区和视频缓冲区。
7.一种失效地址处理装置,其特征在于,应用于基本输入输出***BIOS启动阶段,所述装置包括:
读取单元,用于读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址;其中,所述失效地址由操作***OS在运行过程中检测到出现失效的单元后存储,所述第二存储器为非易失性存储器;
第一判断单元,用于在所述读取单元读取第二存储器中存储的第一存储器中出现失效的存储单元的失效地址之后,判断所述读取单元读取的失效地址对应的出现失效的存储单元的失效类型,所述失效类型包括软失效和硬失效;
第二判断单元,用于判断所述失效地址的分配类型,所述分配类型包括动态分配和静态分配;
屏蔽单元,用于当判断所述读取单元读取的失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述失效地址的分配类型为动态分配时,屏蔽所述失效地址,所述屏蔽单元具体用于:将所述失效地址所在的页面地址范围设置为保留属性,以便OS对所述第一存储器进行读写操作时不再使用所述页面地址范围;
删除单元,用于当所述第一判断单元判断的所述失效地址对应的出现失效的存储单元的失效类型为软失效时,从所述第二存储器中删除所述失效地址。
8.根据权利要求7所述的失效地址处理装置,其特征在于,还包括:
保护单元,用于当所述第一判断单元判断所述失效地址对应的出现失效的存储单元的失效类型为硬失效,且所述第二判断单元判断的所述失效地址的分配类型为静态分配时,启动保护机制。
9.根据权利要求7所述的失效地址处理装置,其特征在于,所述第一判断单元,包括:
测试模块,用于对所述读取单元读取的失效地址对应的存储单元进行写入和读取测试;其中,所述写入和读取测试为在所述存储单元中写入数据,再从所述存储单元中读取数据;当所述存储单元中读取的数据与写入的数据一致时,确定所述存储单元为软失效;当所述存储单元中读取的数据与写入的数据不一致时,确定所述存储单元为硬失效。
10.根据权利要求7-9中任一项所述的失效地址处理装置,其特征在于,所述第一存储器包括动态随机存储器DRAM,所述第二存储器包括电可擦可编程只读存储器EEPROM或者flash存储器。
11.根据权利要求8所述的失效地址处理装置,其特征在于,
所述保护单元具体用于:提示警告并停止运行;或提示警告并重启***。
12.根据权利要求7所述的失效地址的处理装置,其特征在于,
动态分配的地址包括:OS进程占用的地址空间、用户进程占用的地址空间和输入/输出I/O设备的收发缓冲区;
静态分配的地址包括:OS内核占用的地址空间、BIOS缓冲区和视频缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210417018.2A CN102968353B (zh) | 2012-10-26 | 2012-10-26 | 一种失效地址处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210417018.2A CN102968353B (zh) | 2012-10-26 | 2012-10-26 | 一种失效地址处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968353A CN102968353A (zh) | 2013-03-13 |
CN102968353B true CN102968353B (zh) | 2015-12-09 |
Family
ID=47798506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210417018.2A Active CN102968353B (zh) | 2012-10-26 | 2012-10-26 | 一种失效地址处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968353B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218275B (zh) * | 2013-03-28 | 2015-11-25 | 华为技术有限公司 | 数据错误修复方法、装置和设备 |
US9299457B2 (en) * | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
CN109359571B (zh) * | 2014-11-14 | 2022-08-12 | 深圳市汇顶科技股份有限公司 | 基于状态监视和握手的指纹传感器的闩锁恢复机制 |
CN105812842B (zh) * | 2014-12-30 | 2019-09-17 | Tcl集团股份有限公司 | 一种检测网络视频地址的方法和*** |
US9691505B2 (en) * | 2015-03-27 | 2017-06-27 | Intel Corporation | Dynamic application of error correction code (ECC) based on error type |
JP6363587B2 (ja) * | 2015-12-14 | 2018-07-25 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および警告提示方法 |
CN115757196B (zh) * | 2022-11-09 | 2023-09-01 | 超聚变数字技术有限公司 | 内存、访问内存方法及计算设备 |
CN115934588B (zh) * | 2023-03-10 | 2023-08-04 | 长鑫存储技术有限公司 | 失效地址处理方法、装置及电子设备 |
CN117472291B (zh) * | 2023-12-27 | 2024-03-22 | 苏州元脑智能科技有限公司 | 数据块的校验方法和装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339537A (zh) * | 2008-08-14 | 2009-01-07 | 四川登巅微电子有限公司 | 一种以页为单位的nand闪存管理方法 |
CN102004701A (zh) * | 2009-08-28 | 2011-04-06 | 炬才微电子(深圳)有限公司 | 一种次级内存的分配方法和装置 |
CN102222025A (zh) * | 2011-06-17 | 2011-10-19 | 华为数字技术有限公司 | 一种消除内存故障的方法及装置 |
CN102253899A (zh) * | 2011-07-28 | 2011-11-23 | 张岭 | 一种提高闪存芯片存储单元使用效率的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201222254A (en) * | 2010-11-26 | 2012-06-01 | Inventec Corp | Method for protecting data in damaged memory cells by dynamically switching memory mode |
-
2012
- 2012-10-26 CN CN201210417018.2A patent/CN102968353B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339537A (zh) * | 2008-08-14 | 2009-01-07 | 四川登巅微电子有限公司 | 一种以页为单位的nand闪存管理方法 |
CN102004701A (zh) * | 2009-08-28 | 2011-04-06 | 炬才微电子(深圳)有限公司 | 一种次级内存的分配方法和装置 |
CN102222025A (zh) * | 2011-06-17 | 2011-10-19 | 华为数字技术有限公司 | 一种消除内存故障的方法及装置 |
CN102253899A (zh) * | 2011-07-28 | 2011-11-23 | 张岭 | 一种提高闪存芯片存储单元使用效率的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102968353A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968353B (zh) | 一种失效地址处理方法及装置 | |
US10180866B2 (en) | Physical memory fault mitigation in a computing environment | |
US7945815B2 (en) | System and method for managing memory errors in an information handling system | |
EP2811392B1 (en) | Method and device for reducing read delay | |
JP4901987B1 (ja) | 記憶装置、電子機器及び誤りデータの訂正方法 | |
TWI444825B (zh) | 記憶體儲存裝置、記憶體控制器與資料寫入方法 | |
US6976197B2 (en) | Apparatus and method for error logging on a memory module | |
US9529674B2 (en) | Storage device management of unrecoverable logical block addresses for RAID data regeneration | |
CN102467440A (zh) | 内存错误检测***及方法 | |
US20090046512A1 (en) | Reliability System for Use with Non-Volatile Memory Devices | |
JP2008192279A (ja) | 動的バンド境界定義を介してハード・ドライブ・データを保護する方法、システム、及びプログラム記憶装置(動的バンド境界定義を介したハード・ドライブ・データの保護) | |
US20230384947A1 (en) | Dynamic repartition of memory physical address mapping | |
CN103984506A (zh) | 闪存存储设备数据写的方法和*** | |
KR20160074025A (ko) | 데이터 저장 장치의 동작 방법 | |
CN103544995A (zh) | 一种坏道修复方法及装置 | |
US9213597B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US8910004B2 (en) | Information processing apparatus, and method of controlling information processing apparatus | |
CN111816239A (zh) | 磁盘检测方法、装置、电子设备及机器可读存储介质 | |
WO2023077607A1 (zh) | 一种故障日志的存储方法、装置、电子设备及存储介质 | |
CN102087632B (zh) | 用于闪存的数据储存方法及其控制器与储存*** | |
CN109584943B (zh) | 一种评估存储介质的方法及装置 | |
US6229743B1 (en) | Method of a reassign block processing time determination test for storage device | |
CN103064803B (zh) | 一种NAND Flash存储设备的数据读写方法和装置 | |
US10922023B2 (en) | Method for accessing code SRAM and electronic device | |
US20230386598A1 (en) | Methods for real-time repairing of memory failures caused during operations, memory systems performing repairing methods, and data processing systems including repairing memory systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211223 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |