CN102467422A - 受损存储单元的资料保护方法 - Google Patents
受损存储单元的资料保护方法 Download PDFInfo
- Publication number
- CN102467422A CN102467422A CN2010105542592A CN201010554259A CN102467422A CN 102467422 A CN102467422 A CN 102467422A CN 2010105542592 A CN2010105542592 A CN 2010105542592A CN 201010554259 A CN201010554259 A CN 201010554259A CN 102467422 A CN102467422 A CN 102467422A
- Authority
- CN
- China
- Prior art keywords
- page
- impaired
- storer
- data
- backup
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种受损存储单元的资料保护方法,其执行开机程序,在存储器中保留初始备份存储器。接着执行操作系统,将存储器中操作系统的核心程序区内的资料载入映像区,如此当处理器对核心程序区内的资料做存取时,映像区内的资料也会跟着做存取。而通过存储器控制器检测不可修正错误,以判定受损的页面,而由初始备份存储器或动态从操作系统中取得备份存储器以取得备份页面,以备份受损页面中的资料及将此受损页面及将备份页面的对映地址记录于存储器控制器中的页面映射表。当操作系统存取受损页面时,存储器控制器根据页面映射表改为存取备份页面。
Description
技术领域
本发明是有关于一种资料保护方法,且特别是有关于一种受损存储单元的资料保护方法。
背景技术
随着电子科技的发达,各种信息的交流无不仰赖于各种储存媒体,而其中的存储器因其运作速率快,就成为电脑中不可或缺的储存媒体。然而,由于信息传输量日益增大,对于传送速率的要求也日益提升,导致系统业者对于存储器容量及速度的要求逐渐提高。
然而,在提高存储器容量的同时,存储器中存储单元的密度也相对增高,而随着集成电路在半导体存储元件上密度的增加,每个存储单元的尺寸就必须减少。因此,一个存储单元在需要得到较小尺规、又要得到其原本电容的情况下,不仅工艺变的复杂,在系统高速存取的要求下,存储单元出现错误的几率也会增加。
存储器发生错误的情况可分为可修正错误(Correctable Error,CE)及不可修正错误(Uncorrectable Error,UE)。可修正错误(Correctable Error,CE)一般为单位元错误(Single Bit Error,SBE)或是发生错误的位元数目与位子在电子装置的可修正范围内的多位元错误(Multi-Bit Error,MBE)。其中,可修正错误仍可同错误检测与修正(Error Detection and Correction,EDC)方法弹性地修正。对于此种错误,已知技术是借由在存储器中配置备用(Spare)存储器模块的方式,以在存储器发生可修正错误时作为资料备份之用。然而,此备用存储器会占用大量的存储器空间而造成存储器的浪费,而将资料备份至备用存储器的动作也会花费相当时间,结果使得系统整体的效能下降。
另一方面,对于不可修正错误,已知技术是使用存储器的一半作为重复(Mirror)存储器,以在存储器发生不可修正错误时作为资料修正之用。然而,此备用存储器会占用系统一半的存储器空间,结果则造成存储器的浪费,并使得系统整体的效能下降。此外,上述的资料重复备份方式为了保持原存储器及重复存储器中的资料一致,故在每次有资料写入或读出时需同时对这两部分存储器进行存取,相对地也会占用系统资源。
发明内容
本发明提供一种受损存储单元的资料保护方法,仅针对存储器中的操作系统的核心程序做映像(Mirror)备份,可节省所占用的存储器空间。
本发明提出一种受损存储单元的资料保护方法,适用于包括存储器的电子装置,此存储器包括存储器控制器及存储元件,存储元件由多个存储单元组成,而这些存储单元划分为多个页面。此方法是先执行开机程序,并在存储器中保留一初始备份存储器以提供给中断处理模块使用,此初始备份存储器包括至少一个备份页面。接着,执行操作系统,并将位于存储器中操作系统的核心程序区(kernel region)内的资料载入存储器的映像区(mirror region),然后在操作系统读取存储器时,通过存储器控制器检测各个页面中存储单元所出现的不可修正错误。当检测到有页面出现不可修正错误时,即判定此页面为受损页面,而由初始备份存储器中取得一个备份页面,以将此受损页面中的资料备份至备份页面。之后,将受损页面及备份页面的对映地址记录于存储器控制器中的页面映射表,并且在操作系统存取受损页面时,由存储器控制器根据页面映射表中的对映地址,改为存取备份页面的资料。
在本发明的一实施例中,上述在检测到有页面出现不可修正错误时,判定此页面为受损页面,而由初始备份存储器中取得备份页面,以将受损页面中的资料备份至备份页面的步骤包括判断受损页面是否位于操作系统的核心程序区,其中若受损页面不位于核心程序区,则执行例外程序以停止执行受此受损页面所影响的应用程序(Application)或虚拟器(Virtual Machine),而由电子装置的硬盘重新载入此应用程序或虚拟器的程序码至所取得的备份页面,以重新执行应用程序或虚拟器;若受损页面位于核心程序区,由存储器的映像区中重新载入与此受损页面相对应的资料至所取得的备份页面,以备份受损的核心程序区的资料。
在本发明的一实施例中,上述将位于存储器中操作系统的核心程序区内的资料载入存储器的映像区的步骤包括取得操作系统的核心程序区的基底地址及大小,接着决定映像区的映像基底地址,然后根据核心程序码的基底地址及大小将核心程序区内的资料载入映像基底地址,如此当处理器对核心程序区内资料做存取(access)时,映像区内资料也会跟着做存取,也就是所谓存储器映像(memory mirror)的机制。
在本发明的一实施例中,上述执行开机程序的步骤更包括在存储器的系统资料区中保留一存储器区段,以作为电子装置的中断处理模块与操作系统的应用模块交换资料之用。
在本发明的一实施例中,上述执行开机程序的步骤更包括启动中断处理模块,并致能当不可修正错误出现时的系统中断功能。
在本发明的一实施例中,上述执行操作系统的步骤更包括由基本输入输出系统(Basic Input/Output System,BIOS)中取得所保留的存储器的存储器区段与初始备份存储器的基底地址与大小,使得操作系统不会也不能使用此些存储器。
在本发明的一实施例中,上述通过存储器控制器检测各个页面中存储单元所出现的不可修正错误的步骤包括在存储器控制器检测到不可修正错误时,将出现不可修正错误的页面地址记录于寄存器,并发出系统中断,以执行中断处理模块。
在本发明的一实施例中,上述由初始备份存储器中取得备份页面,以将受损页面中的资料备份至备份页面的步骤更包括判断初始备份存储器的空置页面的数量是否少于一预设值,若空置页面的数量少于预设值,则动态从操作系统取得一存储空间以作为备份存储器。
在本发明的一实施例中,上述动态从操作系统取得备份存储器的步骤包括由中断处理模块写入页面请求于系统资料区中保留的存储器区段,接着由应用模块检视系统资料区的存储器区段的资料,以检视中断处理模块所发出的页面请求,然后由应用模块向操作系统取得备份存储器,以提供给中断处理模块,而中断处理模块即以此备份存储器当作备份页面使用。
在本发明的一实施例中,上述由应用模块检视系统资料区的存储器区段的资料,以检视中断处理模块所发出的页面请求的步骤包括由应用模块使用询问(Polling)方法或中断方法检视系统资料区的存储器区段的资料,以检视中断处理模块所发出的页面请求。
在本发明的一实施例中,上述由应用模块向操作系统取得备份存储器,以提供给中断处理模块使用的步骤包括由应用模块将备份存储器的基底地址及尺寸记录于系统资料区中保留的存储器区段,以提供给中断处理模块使用。
在本发明的一实施例中,上述由应用模块取得备份存储器,以提供给中断处理模块使用的步骤包括由中断处理模块查询一页面使用表,以从备份存储器中取得空置页面作为备份页面,并将此备份页面的使用状态更新为使用中,以及将受损页面的使用状态更新为受损。
在本发明的一实施例中,上述由中断处理模块查询页面使用表,以从备份存储器中取得空置页面作为备份页面的步骤更包括若中断处理模块在查询页面使用表时发现备份存储器已无空置页面,则禁能当不可修正错误出现时的系统中断的功能。
在本发明的一实施例中,上述由中断处理模块查询页面使用表,以从备份存储器中取得空置页面作为备份页面的步骤更包括若中断处理模块在查询页面使用表时发现备份存储器的空置页面的数量少于预设值时,动态从操作系统取得一存储空间以作为备份存储器。
在本发明的一实施例中,上述由中断处理模块查询页面使用表,以从备份存储器中取得空置页面作为备份页面的步骤更包括若中断处理模块在查询页面使用表时发现备份存储器已无空置页面,传送控制指令(IPMI OEMcommand)至基板管理控制器,以由基板管理控制器发出警示讯息。
在本发明的一实施例中,上述的核心程序区包括记录操作系统的核心程序及系统管理模式程序。
在本发明的一实施例中,上述的电子装置包括透过传统基本输入输出系统(Legacy Basic Input/Output System,Legacy BIOS)或扩展固件接口基本输入输出系统(Extensible Firmware Interface BIOS,EFI BIOS)进行开机。
在本发明的一实施例中,上述的不可修正错误包括发生错误的位元数目与位子超过电子装置的可修正范围的多位元错误。
基于上述,本发明的受损存储单元的资料保护方法系使用芯片组的存储器地址重映射(remapping)方法,仅针对存储器中的操作系统的核心程序做映像备份,并在出现不可修正错误时,将受损页面的地址转到正常页面的地址。借此,可在不占用过多存储器空间的情况下,达成受损存储单元的资料保护。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是依据本发明一实施例所绘示的电子装置的系统架构示意图。
图2是依据本发明一实施例所绘示的受损存储单元的资料保护方法的流程图。
图3是依据本发明一实施例所绘示的受损存储单元的资料保护方法的流程图。
图4是依据本发明一实施例所绘示的受损存储单元的资料保护方法的流程图。
图5是依据本发明一实施例所绘示的动态从操作系统取得备份页面的范例。
图6是依据本发明一实施例所绘示的动态从操作系统取得备份页面的方法流程图。
图7是依据本发明一实施例所绘示的系统资料区160中保留的存储器区段的范例。
图8(a)及图8(b)是依据本发明一实施例所绘示的更新页面使用表的范例。
主要元件符号说明:
100:电子装置
110:处理器
120:存储器
130:中断处理模块
140:存储器控制器
141:错误中断寄存器
142:错误页面寄存器
143:页面尺寸寄存器
144:来源页面寄存器
145:目的页面寄存器
146:备份寄存器
147:页面映射表
150:存储元件
160:系统资料区
161:请求尺寸
162:请求状态
163:回应尺寸
164:回应基底地址
170:应用模块
180:操作系统
810、820:页面使用表
S202~S212:本发明一实施例的受损存储单元的资料保护方法的步骤
S302~S312:本发明一实施例的受损存储单元的资料保护方法的步骤
S402~S426:本发明一实施例的受损存储单元的资料保护方法的步骤
S602~S610:本发明一实施例的动态从操作系统取得备份页面的方法步骤
具体实施方式
存储器中操作系统的核心程序区内的资料是电子装置执行操作系统所需的关键(critical)资料,一旦此区域内的资料发生不可修正错误,将会直接影响系统的正常运作,甚至造成当机。为了能够在不占用过多存储器资源的情况下防止系统当机,本发明是将存储器以划分成页面的方式来管理,并仅对操作系统的核心(kernel)资料进行存储器映像。在各个页面中的存储单元发生不可修正错误(Uncorrectable Error,UE)时,只将此页面从存储器中移除,借此可保留更多的存储器给操作系统运用,进而增加系统整体的效能。本发明即是根据上述概念所发展出来的一种受损存储单元的资料保护方法,以下即举实施例说明其详细实施方式。
图1是依据本发明一实施例所绘示的电子装置的系统架构示意图。请参照图1,本实施例的100包括处理器110、存储器120及中断处理模块130,而存储器120中包括存储器控制器140以及由多个存储单元组成的存储元件150。其中,处理器110例如是中央处理单元(Central Processing Unit,CPU),而存储元件150例如是动态随机存取存储器(Dynamic Random Access Memory,DRAM)或其他种类的存储器,在此并不设限。此外,中断处理模块130例如是系统管理中断处理程序(System Management Interrupt handler,SMI handler),而用以服务处理器110所接收到的系统管理中断(System Management Interrupt,SMI)。
详言之,当电子装置100中的元件触发系统管理中断时,即会发送系统管理中断讯息至处理器110,而处理器110在接收到此信号时,即进入系统管理模式(System Management Mode,SMM),而由基本输入输出系统(Basic InputOutput System,BIOS)在此模式下执行系统管理中断处理程序,以服务系统管理中断。
图2是依据本发明一实施例所绘示的受损存储单元的资料保护方法的流程图。请参照图2,本实施例的方法适用于图1的电子装置100,以下则搭配图1的电子装置100中的各个元件说明此方法的详细步骤。
首先,当电子装置100的电源开启后,即由处理器110执行开机程序,并在存储器120中保留一初始备份存储器(此大小要为页面大小的倍数,例如若页面大小为8KB,则此初始备份存储器可为1MB)以供中断处理模块作为备份页面使用(步骤S202)。其中,操作系统不能使用此初始备份存储器,而此初始备份存储器包括至少一个备份页面。
详言之,处理器110例如是执行传统基本输入输出系统(Legacy BasicInput/Output System,Legacy BIOS)或扩展固件接口基本输入输出系统(Extensible Firmware Interface BIOS,EFI BIOS)以进行开机,而其保留初始备份存储器的作法于传统Legacy BIOS中是使用进阶组态与电源介面(Advanced Configuration and Power Interface,ACPI)的INT 15h的E820h功能呼叫,而于EFI BIOS中是使用EFI介面的GetMemoryMap()功能呼叫。
在开机程序完成后,处理器110接着执行电子装置100的操作系统,并将位于存储器中操作系统的核心程序区(kernel region)内的资料载入存储器的映像区(mirror region)(步骤S204)。其中,处理器110例如是取得操作系统的核心程序区的基底地址及大小,并决定映像区的基底地址,而利用新增的一个ACPI机器语言(ACPI Machine Language,AML)方法,根据核心程序码的基底地址及大小将核心程序区内的资料载入映像区的基底地址,借此设定并启动核心程序区的映像保护功能,如此当处理器110对核心程序区(KernelRegion)内资料做存取(access)时,映像区(Mirror Region)内资料也会跟着做存取,此为所谓存储器映像(memory mirror)机制。此AML方法包括3个输入参数Parameter 0、Parameter 1、Parameter 2,其中参数Parameter 0为核心程序区的基底地址、Parameter 1为核心程序区的大小、Parameter 2为映像区的基底地址。
本实施例仅针对存储器中所有操作系统的核心程序区的程序码及资料进行存储器映像,此方法相对于映像整个存储器的方式不仅可节省存储器空间,且由于核心程序区的资料量少,可减少系统对原存储器与映像存储器同时进行读写的资料量。
接着,在操作系统读取存储器120时,透过存储器控制器140检测各个页面中存储单元所出现的不可修正错误(步骤S206)。上述的不可修正错误包括发生错误的位元数目或位子超过电子装置的可修正范围的多位元错误,在此不设限。
详言之,处理器110例如会先致能错误中断寄存器141,以致能不可修正错误出现时的系统中断功能,而透过存储器控制器140检测各个页面中存储单元所出现的不可修正错误。其中,存储器控制器140例如是在错误页面寄存器142中记录出现此不可修正错误的页面地址,并发出系统中断,以执行中断处理模块130。而中断处理模块130也是借由读取错误页面寄存器142中所记录的出现不可修正错误的页面,而得知哪个页面发生不可修正错误。
当存储器控制器140检测到不可修正错误时,即触发系统中断,而由中断处理模块130将此页面判定为受损页面,由备份存储器取得一个备份页面,以将受损页面中的资料备份至备份页面(步骤S208)。其中,上述的备份存储器例如是初始备份存储器或动态由操作系统中获得的备份存储器。
在资料备份完毕后,中断处理模块130即将上述受损页面及备份页面的对映地址记录于存储器控制器140中的页面映射表147(步骤S210)。其中,中断处理模块130例如是采用存储器地址重映射(remapping)方法,将受损页面的地址映射至备份页面的地址,并分别在页面映射表147的空白栏位中填入所述受损页面以及备份页面的地址。
借此,当下次操作系统欲存取受损页面时,存储器控制器140即可根据页面映射表中的对映地址,改为存取备份页面的资料(步骤S212),而达到保护受损存储单元的资料的功效。
借由上述的存储器地址重映射(remapping)方法,操作系统存取的是受损页面的原先地址,然而经由存储器控制器140的重映射,最终存取到的则是备份页面的映射地址。因此,在本实施例中,操作系统的程序无需更改。
需说明的是,当存储器控制器140检测到不可修正错误并触发系统中断时,中断处理模块130还进一步判断此出现不可修正错误的页面是否位于操作系统的核心程序区,并据以从硬盘中或从存储器的映像区中载入受损页面的程序码,以回复受损的资料。
详言之,图3是依据本发明一实施例所绘示的受损存储单元的资料保护方法的流程图。请同时参照图1及图3,本实施例系在存储器控制器140检测到不可修正错误并触发系统中断(步骤S302)时,由中断处理模块130判断受损页面是否位于操作系统的核心程序区(步骤S304)。其中若中断处理模块130判断受损页面不是位于核心程序区,则会离开中断处理模块130,并由处理器110判断出不可修正错误,并至操作系统执行一例外程序(Exception Software)以停止执行受此受损页面所影响的应用程序(Application)或虚拟器(VirtualMachine)(步骤S306),并由电子装置的硬盘将此应用程序或虚拟器的程序码重新载入所取得的备份页面(步骤S308),以重新执行应用程序或虚拟器(步骤S310)。反之,若中断处理模块130判断受损页面是位于核心程序区,则由存储器的映像区中将与受损页面相对应的资料重新载入所取得的备份页面,以备份受损的核心程序区的资料(步骤S312)。
此外,在另一实施例中,在电子装置100的处理器110在执行开机程序的过程中,还包括在存储器120的系统资料区中保留一个存储器区段,以作为上述中断处理模块130与操作系统的应用模块交换资料之用。以下则再举一实施例详细说明。
图4是依据本发明一实施例所绘示的受损存储单元的资料保护方法的流程图。请参照图4,本实施例的方法适用于图1的电子装置100,以下则搭配图1的电子装置100中的各个元件说明此方法的详细步骤。
首先,当电子装置100的电源开启后,即由处理器110执行开机程序(步骤S402)。在执行开机程序时,处理器110例如是在存储器120的系统资料区中保留一个存储器区段,以作为电子装置100的中断处理模块130与操作系统的应用模块交换资料之用(步骤S404)。其中,处理器110例如是保留地址介于9FC00h至9FFFFh之间总容量为1千字节(KB)的存储器区段。
值得注意的是,上述的处理器110例如是执行Legacy BIOS以进行开机,而处理器110保留的存储器区段例如是位于延伸基本输入输出系统的资料区(Extended BIOS Data Area,EBDA)内。在另一实施例中,处理器110例如是执行扩展固件接口BIOS(EFI BIOS)以进行开机,并使用此扩展固件接口保留存储器区段。保留的存储器区段的作法于Legacy BIOS时是使用ACPI INT15h的E820h功能呼叫,而于EFI BIOS时是使用EFI BIOS接口的GetMemoryMap()功能呼叫。以上两者仅为举例说明,在此并不限定。
接着,处理器110是在存储器120中保留初始备份存储器以提供给中断处理模块130当作备份页面使用(步骤S406)。需说明的是,中断处理模块130可将此初始备份存储器当作备份页面使用,当初始备份存储器的页面快用完时,中断处理模块130即透过应用模块170动态由操作系统180取得适量的备份存储器(例如1MB),而当由操作系统所取得的备份存储器的页面也快用完时,则可再从操作系统所取备份存储器,依此类推。其中,备份存储器包括至少一个备份页面,而这些备份存储器区块的地址可以是连续的或是不连续的存储器区块。意即,备份存储器的容量为单一页面容量的倍数,例如,若页面容量为八千字节(8KB),则备份存储器的容量即为八千字节的倍数(例如1MB)。
然后,处理器110会启动中断处理模块(步骤S408)。此中断处理模块例如是系统管理中断处理程序,而可用以处理系统中断事件。此外,处理器110亦致能当不可修正错误出现时的系统中断功能(步骤S410)。意即,每当存储器控制器140检测到不可修正错误出现时,即会触发系统中断并发送系统管理中断讯息至处理器110,而由处理器启动中断处理模块130。其中,处理器110例如借由将存储器控制器140的错误中断寄存器141致能,而启动不可修正错误出现时的系统中断功能。
需说明的是,在处理器110执行完开机程序的过程中,还可根据使用者的操作,执行BIOS的设定程序(setup utility)或其他软件工具,以供使用者修改存储器控制器所使用的页面尺寸(例如:8KB),或是初始备份存储器的大小(例如:128个8KB页面尺寸的存储器,其为1MB)以及每次向操作系统请求的备份存储器大小(例如:128个8KB页面尺寸的存储器,其为1MB)。
当处理器110执行完开机程序后,接着即执行操作系统,并将位于存储器中操作系统的核心程序区(kernel region)内的资料载入存储器的映像区(mirrorregion)(步骤S412)。此时操作系统由BIOS的接口可知道上述由处理器110在存储器120中所保留的存储器区段与备份存储器的基底地址与大小,故操作系统将不会也不能使用此些存储器区块。
在操作系统读取存储器120时,处理器110即透过存储器控制器140检测各个页面中存储单元所出现的不可修正错误(步骤S414)。详言之,当存储器控制器140检测到不可修正错误时,即会在错误页面寄存器142中记录出现此不可修正错误的页面地址,并发出系统中断,以执行中断处理模块130(步骤S416)。而中断处理模块130也是借由读取此错误页面寄存器142中所记录的出现不可修正错误的页面,而得知哪个页面发生不可修正错误。
当中断处理模块130得知有页面发生不可修正错误时,即将此页面判定为受损页面(步骤S418)。详言之,中断处理模块130使用初始备份存储器当作备份页面,但当其备份页面快用完时,则须动态从操作系统获得备份存储器,详言之,中断处理模块130例如是通过上述处理器110在存储器120的系统资料区中所保留的存储器区段,与操作系统中的应用模块交换资料,以取得备份存储器。
若中断处理模块130查询页面使用表时发现备份存储器的空置页面快用完,则再会通过存储器120的系统资料区中的存储器区段,与操作系统中的应用模块交换资料,以动态从操作系统取得一存储空间以作为备份存储器。
举例来说,图5是依据本发明一实施例所绘示的动态从操作系统取得备份页面的范例。图6是依据本发明一实施例所绘示的动态从操作系统取得备份页面的方法流程图。请同时参照图5及图6,本实施例系借由在中断处理模块130、系统资料区160、应用模块170及操作系统180之间传递资料,以从操作系统180取得备份存储器。
详言之,本实施例系由中断处理模块130在上述由处理器110在存储器120的系统资料区160中保留的存储器区段中写入页面请求(步骤S602)。
接着,由应用模块170检视此系统资料区160的存储器区段的资料,以检视中断处理模块130所发出的页面请求(步骤S604)。其中,应用模块170例如是借由询问(Polling)方法来检视系统资料区160的存储器区段的资料,并检视中断处理模块130是否正在请求备份存储器。
当应用模块170检视到页面请求时,即呼叫操作系统180,以取得备份存储器(步骤S606),并将所取得的备份存储器的基底地址及尺寸记录在系统资料区160的存储器区段中(步骤S608)。最后,中断处理模块130即借由存取此系统资料区160的存储器区段,而取得备份存储器(步骤S610)。
图7是依据本发明一实施例所绘示的系统资料区160中保留的存储器区段的范例。其中,系统资料区160包括图7所绘示的请求尺寸161、请求状态162、回应尺寸163及回应基底地址164等四个栏位。其中,中断处理模块130例如是在请求尺寸161中写入所欲请求的备份存储器的尺寸,并在请求状态162写入1以触发此备份存储器的请求。应用模块170在从操作系统180取得备份存储器后,即将所取得的备份存储器的基底地址及尺寸记录分别记录在回应尺寸163及回应基底地址164中,并在记录完毕后在请求状态162写入0以代表请求完成。借此,中断处理模块130即借由读取此回应尺寸163及回应基底地址164,获得所请求的备份存储器的基底地址及尺寸。
回到图4的步骤S418,当中断处理模块130取得备份存储器后,还进一步查询一个页面使用表,以从备份存储器中取得一个空置页面来作为备份页面,并将此备份页面的使用状态更新为使用中,以及将受损页面的使用状态更新为受损(步骤S420)。其中,所述的页面使用表例如是储存在系统管理模式(SystemManagement Mode,SMM)的随机存取存储器(RAM)中,在此并不设限。
举例来说,图8(a)及图8(b)是依据本发明一实施例所绘示的更新页面使用表的范例。请参照图8(a)及图8(b),本实施例的页面使用表810及820中包括页面地址及页面使用状态两个栏位,页面使用表810系记录受损页面及备份页面的原始状态,而页面使用表820则记录受损页面及备份页面的更新后的状态。在本实施例中,00代表页面为正常状态;01代表页面为使用中状态;10代表页面为受损状态;11则为保留状态。由图8(a)及图8(b)可知,页面x在页面使用状态栏位中的数位由01转变为10即代表页面x的状态由使用中状态转变为受损状态,而页面y在页面使用状态栏位中的数位由00转变为01则代表页面y的状态由正常状态转变为使用中状态。
需说明的是,若中断处理模块130查询页面使用表时发现备份存储器已无空置页面,且无法再从操作系统取得存储空间,即代表已无法利用备份存储器备份受损页面的资料,此时中断处理模块130例如会将可修正错误出现时的系统中断功能禁能,或是传送控制指令(IPMI OEM command)至基板管理控制器(Baseboard Management Controller,BMC),以由基板管理控制器发出警示讯息,而告知系统管理员进行存储器单元150的更换或其他合适动作。
在更新页面使用表之后,中断处理模块130即将受损页面中的资料备份至备份页面(步骤S422)。其中,中断处理模块130例如是将页面的尺寸写入存储器控制器140中的页面尺寸寄存器143,将受损页面及备份页面的地址分别写入存储器控制器140中的来源页面寄存器144、目的页面寄存器145,并致能(设为1)备份寄存器146,而控制存储器控制器140将受损页面中的资料备份至备份页面。而借由检视备份寄存器146的状态是否回复(设为0),即可得知资料备份是否完成。
在资料备份完毕后,中断处理模块130即将上述受损页面及备份页面的对映地址记录于存储器控制器140中的页面映射表147(步骤S424)。其中,中断处理模块130例如是采用存储器地址重映射(remapping)方法,将受损页面的地址映射至备份页面的地址,并分别在页面映射表147的空白栏位中填入所述受损页面以及备份页面的地址。
借此,当下次操作系统欲存取受损页面时,存储器控制器140即可根据页面映射表中的对映地址,改为存取备份页面的资料(步骤S426),而达到保护受损存储单元的资料的功效。
综上所述,本发明的受损存储单元的资料保护方法系借由将存储器划分成多个页面,并在各个页面中存储单元发生不可修正错误时,只将此页面从存储器中移除。采用此渐近式移除页面的方式除了可以预防不可修正错误发生外,并因为使用动态方式,于备份存储器的页面快用完时才向操作系统要一块备份存储器区块,故是以渐进式方式向操作系统要存储器区块,故还可提供较多的存储器给操作系统运用,因此可增加系统整体的效能。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (10)
1.一种受损存储单元的资料保护方法,适用于包括一存储器的一电子装置,该存储器包括一存储器控制器及一存储元件,该存储元件由多个存储单元组成,而所述存储单元划分为多个页面,该方法包括下列步骤:
执行一开机程序,并在该存储器中保留一初始备份存储器以提供给中断处理模块使用,该初始备份存储器包括至少一备份页面;
执行该操作系统,并将位于该存储器中该操作系统的一核心程序区内的资料载入该存储器的一映像区;
在该操作系统读取该存储器时,通过该存储器控制器检测各所述页面中存储单元所出现的一不可修正错误;
当检测到所述页面之一出现该不可修正错误时,判定该页面为一受损页面,而由该初始备份存储器中取得该至少一备份页面其中之一,以备份该受损页面中的资料至该备份页面;
记录该受损页面及该备份页面的一对映地址于该存储器控制器中的一页面映射表;以及
当该操作系统存取该受损页面时,由该存储器控制器根据页面映射表中的该对映地址,改为存取该备份页面的资料。
2.如权利要求1所述的受损存储单元的资料保护方法,其特征在于,将位于该存储器中该操作系统的该核心程序区内的资料载入该存储器的该映像区的步骤包括:
取得该操作系统的该核心程序区的一基底地址及大小;
决定该映像区的一映像基底地址;以及
根据该核心程序码的一基底地址及大小将该核心程序区内的资料载入该映像基底地址。
3.如权利要求1所述的受损存储单元的资料保护方法,其特征在于,执行该开机程序的步骤更包括:
在该存储器的一系统资料区中保留一存储器区段,以作为该电子装置的一中断处理模块与该操作系统的一应用模块交换资料之用。
4.如权利要求3所述的受损存储单元的资料保护方法,其特征在于,执行该开机程序的步骤更包括:
启动该中断处理模块;以及
致能当该不可修正错误出现时的一系统中断的功能。
5.如权利要求4所述的受损存储单元的资料保护方法,其特征在于,执行该操作系统的步骤更包括:
由一基本输入输出系统中取得所保留的该存储器的该存储器区段与该初始备份存储器的一基底地址与大小,并使该操作系统不会再使用该存储器的该存储器区段与该初始备份存储器。
6.如权利要求5所述的受损存储单元的资料保护方法,其特征在于,通过该存储器控制器检测各所述页面中存储单元所出现的该不可修正错误的步骤包括:
当该存储器控制器检测到该不可修正错误时,记录出现该不可修正错误的该页面的地址于一寄存器,并发出该系统中断,以执行该中断处理模块。
7.如权利要求1所述的受损存储单元的资料保护方法,其特征在于,在检测到所述页面之一出现该不可修正错误时,判定该页面为该受损页面,而由该初始备份存储器中取得该至少一备份页面其中之一,以备份该受损页面中的资料至该备份页面的步骤包括:
判断该受损页面是否位于该操作系统的该核心程序区;
若该受损页面不位于该核心程序区,执行一例外程序以停止执行受该受损页面所影响的一应用程序或一虚拟器,而由该电子装置的一硬盘重新载入该应用程序或该虚拟器的一程序码至所取得的该备份页面,以重新执行该应用程序或该虚拟器;以及
若该受损页面位于该核心程序区,由该存储器的该映像区中重新载入与该受损页面相对应的资料至所取得的该备份页面,以备份受损的该核心程序区的资料。
8.如权利要求1所述的受损存储单元的资料保护方法,其特征在于,该核心程序区包括记录该操作系统的一核心程序及一系统管理模式程序。
9.如权利要求1所述的受损存储单元的资料保护方法,其特征在于,该电子装置包括通过一传统基本输入输出系统或一扩展固件接口基本输入输出系统进行开机。
10.如权利要求1所述的受损存储单元的资料保护方法,其特征在于,该不可修正错误包括发生错误的一位元数目超过该电子装置的一可修正范围的一多位元错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105542592A CN102467422A (zh) | 2010-11-12 | 2010-11-12 | 受损存储单元的资料保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105542592A CN102467422A (zh) | 2010-11-12 | 2010-11-12 | 受损存储单元的资料保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102467422A true CN102467422A (zh) | 2012-05-23 |
Family
ID=46071086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105542592A Pending CN102467422A (zh) | 2010-11-12 | 2010-11-12 | 受损存储单元的资料保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102467422A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425334A (zh) * | 2007-10-30 | 2009-05-06 | 北京同方微电子有限公司 | 一种实现nor flash坏块管理的方法及其控制电路 |
CN101526907A (zh) * | 2008-03-04 | 2009-09-09 | 深圳市爱国者嵌入式系统科技有限公司 | 避免电子产品开机错误的闪存管理方法 |
CN101777013A (zh) * | 2009-01-12 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘及数据读写方法 |
-
2010
- 2010-11-12 CN CN2010105542592A patent/CN102467422A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425334A (zh) * | 2007-10-30 | 2009-05-06 | 北京同方微电子有限公司 | 一种实现nor flash坏块管理的方法及其控制电路 |
CN101526907A (zh) * | 2008-03-04 | 2009-09-09 | 深圳市爱国者嵌入式系统科技有限公司 | 避免电子产品开机错误的闪存管理方法 |
CN101777013A (zh) * | 2009-01-12 | 2010-07-14 | 成都市华为赛门铁克科技有限公司 | 一种固态硬盘及数据读写方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386836B2 (en) | Managing memory faults | |
US8689041B2 (en) | Method for protecting data in damaged memory cells by dynamically switching memory mode | |
TWI622923B (zh) | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 | |
EP3161639B1 (en) | Techniques for handling errors in persistent memory | |
US10133668B2 (en) | Technologies for providing cross data storage device communications | |
US8533418B2 (en) | Memory allocation with identification of requesting loadable kernel module | |
US20110202728A1 (en) | Methods and apparatus for managing cache persistence in a storage system using multiple virtual machines | |
US6119248A (en) | Operating system notification of correctable error in computer information | |
US20120198287A1 (en) | File system error detection and recovery framework | |
CN111033466A (zh) | 对闪存进行分区以及实现具有映像升级能力的灵活引导 | |
EP3054626B1 (en) | Data processing method and device for storage unit | |
TW201220186A (en) | Data protection method for damaged memory cells | |
CN104077375A (zh) | 一种cc-numa系统中节点的错误目录的处理方法和节点 | |
CN102968353A (zh) | 一种失效地址处理方法及装置 | |
CN111858531A (zh) | 一种基于多核硬盘的日志存储方法、系统及相关组件 | |
CN110780811A (zh) | 数据保护方法、装置及存储介质 | |
CN102959548A (zh) | 数据存储方法、查找方法及装置 | |
CN110347611B (zh) | 存储器系统和存储器系统的操作方法 | |
CN102455979B (zh) | 受损存储单元的资料保护方法 | |
US20230384947A1 (en) | Dynamic repartition of memory physical address mapping | |
CN103365792A (zh) | 信息处理设备和控制信息处理设备的方法 | |
CN102479119A (zh) | 动态切换存储器模式以保护受损记忆胞数据的方法 | |
CN111488124A (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN102467422A (zh) | 受损存储单元的资料保护方法 | |
EP3504627B1 (en) | Read operation redirect |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120523 |