[发明专利]一种数据处理方法及装置有效
申请号: | 201910243905.4 | 申请日: | 2019-03-28 |
公开(公告)号: | CN109976939B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 叶怀胜 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F11/10 | 分类号: | G06F11/10 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 喻嵘;郭迎侠 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 | ||
本发明实施例提供一种数据处理方法及装置,其中,所述方法包括,获取指令,所述指令用于指示向非易失性内存写入第一数据;基于所述第一数据生成第一校验码,所述第一校验码用于表示所述第一数据完整写入所述非易失性内存中的状态;将所述第一校验码写入非易失性内存;执行所述指令,向非易失性内存中写入数据,得到第二数据;基于所述第二数据生成第二校验码;比较所述第一校验码和所述第二校验码,以判断所述第一数据是否被完整写入所述非易失性内存。通过本发明提供的方法及装置,能够在发生异常掉电或系统崩溃重启后,校验是否存在数据页撕裂的问题。
技术领域
本发明属于计算机技术领域,具体涉及一种数据处理方法及装置。
背景技术
随着各种新型非易失性存储器件的出现和成本的不断降低,非易失性内存在各种数据中心中的应用场景也变得更为丰富和普遍。凭借非易失性内存可以持久化存储数据、读写延迟接近于易失性内存而远优于闪存的特点,其在写缓存、元数据存储、分级存储和内存型数据库等场景中有着广阔的应用空间。
由于业界工艺原因,同时CPU内的缓存行为了追求极致的读写带宽,通常只能被设计成为易失的。一般CPU为追求更高的读写带宽,会在内部集成多级缓存以缓存行(CacheLine)方式提高对热点指令和数据的命中效率,以及对非易失性内存或是易失性内存进行读写操作时,同样会利用缓存行提升读写性能。
当被缓存对象是易失性内存时,即使系统发生异常掉电或者崩溃,缓存行内和易失性内存中的数据会同时丢失,因此不会存在内存数据页撕裂(Page Tearing)的问题。而当CPU访问非易失性内存时,缓存行会基于非易失性内存的最小存储单元(4096byte)做划分并分别存储进非易失性内存的存储单元,当发生异常掉电或系统崩溃时必然造成一部分缓存行与相对应的非易失性内存的最小存储单元内的数据不一致的问题,也就是说会造成数据页撕裂的问题。这对于操作系统的内存管理来讲是一个非常严重的问题。
因此,亟需一种新的写入非易失性内存的方法,以使得当发生异常掉电或系统崩溃时,能够避免数据页撕裂的问题。
发明内容
本发明提供了一种数据处理方法及装置。
为了解决上述技术问题,本发明实施例提供了如下的技术方案:
本发明第一方面提供一种数据处理方法,包括,
获取指令,所述指令用于指示向非易失性内存写入第一数据;
基于所述第一数据生成第一校验码,所述第一校验码用于表示所述第一数据完整写入所述非易失性内存中的状态;
将所述第一校验码写入非易失性内存;
执行所述指令,向非易失性内存中写入数据,得到第二数据;
基于所述第二数据生成第二校验码;
比较所述第一校验码和所述第二校验码,以判断所述第一数据是否被完整写入所述非易失性内存。
作为优选,所述方法还包括,
若所述第一校验码和所述第二校验码相同,表示所述第一数据已经被完整写入所述非易失性内存;
若所述第一校验码和所述第二校验码不相同,发出提示信息,所述提示信息用以提示所述第一数据未被完整写入所述非易失性内存。
作为优选,所述基于所述第一数据生成第一校验码,包括,
所述第一数据包括N个第一单元数据,计算每个所述第一单元数据的第一单元数据校验码。
作为优选,所述向非易失性内存中写入数据,包括,
当所述第一单元数据的部分数据被写入非易失性内存时,基于所述部分数据所在的第一单元数据生成第一单元数据校验码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910243905.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据储存装置以及非挥发式存储器操作方法
- 下一篇:一种软启动网络设备