多核CPU的负载均衡方法、多核CPU及固态硬盘.pdf

上传人:a**** 文档编号:629039 上传时间:2018-02-28 格式:PDF 页数:13 大小:1.67MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410302672.8

申请日:

2014.06.27

公开号:

CN104102458A

公开日:

2014.10.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20140627|||公开

IPC分类号:

G06F3/06; G06F9/50

主分类号:

G06F3/06

申请人:

北京兆易创新科技股份有限公司

发明人:

曹堪宇; 朱荣臻; 高会娟

地址:

100083 北京市海淀区学院路30号科大天工大厦A座12层

优先权:

专利代理机构:

北京润泽恒知识产权代理有限公司 11319

代理人:

刘祥景

PDF下载: PDF下载
内容摘要

本发明公开了一种多核CPU的负载均衡方法、多核CPU及固态硬盘,所述多核CPU包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法包括:前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。能够简化软件设计,提高开发效率。

权利要求书

1.  一种多核CPU的负载均衡方法,其特征在于,所述多核CPU包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法包括:
前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;
前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。

2.
  根据权利要求1所述的方法,其特征在于,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。

3.
  根据权利要求1所述的方法,其特征在于,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。

4.
  根据权利要求1或2或3所述的方法,其特征在于,所述前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系的步骤,包括:
首先依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算,然后依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。

5.
  根据权利要求1或2或3所述的方法,其特征在于,还包括:
所述前端CPU接收来自所述后端CPU的子请求处理完毕的通知;
所述前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。

6.
  一种多核CPU,其特征在于,包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,其中的前端CPU包括:
拆分模块,用于将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
映射模块,用于依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;及
第一发送模块,用于依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。

7.
  根据权利要求6所述的多核CPU,其特征在于,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。

8.
  根据权利要求6所述的多核CPU,其特征在于,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。

9.
  根据权利要求6或7或8所述的多核CPU,其特征在于,所述映射模块包括:
求余运算子模块,用于依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算;
取整运算子模块,用于依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。

10.
  一种固态硬盘,其特征在于,包括闪存,及前述权利要求6或7或8或9所述的多核CPU。

说明书

多核CPU的负载均衡方法、多核CPU及固态硬盘
技术领域
本发明涉及数据存储技术领域,特别是涉及一种多核CPU的负载均衡方法、多核CPU及固态硬盘。
背景技术
SSD(固态硬盘,Solid State Disk)是一种使用闪存作为存储介质的一类硬盘,其相对于传统硬盘,具有更高速度、更低功耗和更低噪音等优点。
由于固态硬盘所使用的闪存有擦写次数限制,一旦某一闪存块擦除/写入到达一定次数,就可能造成无法写入数据,或者数据损坏。为了避免这种情况发生,固态硬盘引入了FTL(闪存转换层,Flash translation layer),FTL通过主机的LBA(逻辑块地址,Logic Block Address)映射为闪存的PBA(物理块地址,Physics Block Address),对闪存的每个物理块进行管理,做到每个物理块的擦写次数均衡,延长了闪存的寿命,使得固态硬盘也有传统硬盘的使用寿命。FTL可以在主机端实现,也可以在设备端实现。
当在采用多核CPU的设备端实现FTL时,现有多核CPU的负载均衡方案通常根据功能将主机的读写请求分担到上述多核CPU上进行处理,比如有些CPU专门处理前端NVMe(非易失性存储总线,Non-Volatile Memory Express)协议功能的读写请求,有些CPU专门处理Nand flash功能的读写请求,有些CPU专门处理损耗均衡(Wear leveling)功能的读写请求,有些CPU专门处理页映射(Page mapping)功能的读写请求,等等。然而,在按照上述方案处理读写请求的过程中,CPU之间很有可能要进行数据共享,也即,在很多情况下需要在两个或两个以上CPU之间进行通讯,而CPU之间的通讯往往需要复杂的算法,这无疑增加了负载均衡代码的开发周期,降低了开发效率。
发明内容
本发明实施例所要解决的技术问题是提供一种多核CPU的负载均衡方 法、多核CPU及固态硬盘,能够简化软件设计,提高开发效率。
为了解决上述问题,本发明公开了一种多核CPU的负载均衡方法,所述多核CPU包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法包括:
前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;
前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。
优选的,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。
优选的,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。
优选的,所述前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系的步骤,包括:
首先依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算,然后依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。
优选的,所述方法还包括:
所述前端CPU接收来自所述后端CPU的子请求处理完毕的通知;
所述前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。
另一方面,本发明还公开了一种多核CPU,包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端 CPU管理的闪存不同,其中的前端CPU包括:
拆分模块,用于将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
映射模块,用于依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;及
第一发送模块,用于依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。
优选的,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。
优选的,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。
优选的,所述映射模块包括:
求余运算子模块,用于依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算;
取整运算子模块,用于依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。
另一方面,本发明还公开了一种固态硬盘,包括闪存,及前述的多核CPU。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例将多核CPU划分为一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同也即各后端CPU管理的闪存之间没有交叉,这样,当主机向固态硬盘发送数据的读写请求时,前端CPU可以将来自主机的读写请求拆分为以逻 辑块地址LBA为单位的子请求,并依据所述子请求与对应后端CPU的映射关系将各子请求发送给后端CPU进行FTL处理;由于各后端CPU管理的闪存之间没有交叉,且所述映射关系中每个子请求对应唯一的后端CPU,故各后端CPU可以处理完整的以LBA为单位的子请求,而不需要过多的通讯,因此,本发明实施例能够降低进行FTL处理的各后端CPU之间的耦合性,从而简化了软件设计,提高了开发效率。
附图说明
图1是本发明的一种多核CPU的负载均衡方法实施例一的流程图;
图2是本发明的一种多核CPU的负载均衡方法实施例二的流程图;
图3是本发明的一种固态硬盘中多核CPU的负载均衡方法示例的流程图;
图4是本发明的一种多核CPU实施例的结构框图;
图5是本发明的一种固态硬盘的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明的一种多核CPU的负载均衡方法实施例一的流程图,所述多核CPU具体可以包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法具体可以包括:
步骤101、前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
本发明实施例可以应用于采用多核CPU实现FTL的固态硬盘设备端,用于提高该设备端多核CPU负载均衡代码的开发效率。
假设每个LBA的大小为4096bytes,而所述读写请求涉及读取从0开始 的24个LBA,那么前端CPU可以将其拆分为LBA0、LBA1、LBA2、LBA3…LBA23等24个子请求。
步骤102、前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;
步骤103、前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。
综上,本发明实施例将多核CPU划分为一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同也即各后端CPU管理的闪存之间没有交叉,这样,当主机向固态硬盘发送数据的读写请求时,前端CPU可以将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求,并依据所述子请求与对应后端CPU的映射关系将各子请求发送给后端CPU进行FTL处理;由于各后端CPU管理的闪存之间没有交叉,且所述映射关系中每个子请求对应唯一的后端CPU,故各后端CPU可以处理完整的以LBA为单位的子请求,而不需要过多的通讯,因此,本发明实施例能够降低进行FTL处理的各后端CPU之间的耦合性,从而简化了软件设计,提高了开发效率。
在本发明的一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。本优选实施例能够将同一读写请求的子请求分散到各后端CPU,从而能够将大块连续的读写请求平均分配到不同的后端CPU进行处理,因此能够提高多核CPU的处理能力。
在本发明的另一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。由于闪存以页为单位读写数据,故在所述后端CPU对应的子请求数量等于每个闪存页所包含LBA的数量时,仅需读写1次即可进行 FTL处理,因此能够提高多核CPU的处理效率。
在本发明的一种应用示例中,假设所述读写请求涉及16个LBA的读写操作,对应的子请求分别为LBA0、LBA1、LBA2、LBA3…,而每个闪存页所包含LBA的数量为2,后端CPU的编号分别为CPU0、CPU1、CPU2…,那么,LBA0和LBA1可以放至CPU0处理,LBA2和LBA3可以放在CPU1处理。
在本发明的再一种优选实施例中,所述前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系的步骤102,具体可以包括:首先依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算,然后依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。
假设每个Nand Flash(与非闪存,Not And Flash)页包含m个LBA,进行FTL处理的后端CPU的数量为M,固态硬盘一共有M*N片Nand Flash,那么,子请求LBAi对应后端CPU的编号可以表示为:后端CPU的编号=取整((LBAi%(M*m))/m),其中,“%”为求余运算符,“/”为取整运算符号。参照表1,示出了m=2时子请求与对应后端CPU的映射关系的示意。
在表1

实施例二
参照图2,示出了本发明的一种多核CPU的负载均衡方法实施例二的流程图,所述多核CPU具体可以包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法具体可以包括:
步骤201、前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
步骤202、前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;
步骤203、前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理;
步骤204、前端CPU接收来自所述后端CPU的子请求处理完毕的通知;
步骤205、前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。
本实施例相对于实施例二,增加了前端CPU对于所述读写请求处理完毕的判断,具体地,其接收来自所述后端CPU的子请求处理完毕的通知,并在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。
参照图3,示出了本发明的一种固态硬盘中多核CPU的负载均衡方法示例的流程图,具体可以包括:
步骤301、前端CPU接收来自主机的读写请求;
步骤302、前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
步骤303、前端CPU计算后端CPU的编号=取整((LBAi%(M*m))/m);
步骤304、前端CPU将所述子请求发送至对应的后端CPU;
步骤305、后端CPU在接收到子请求后,在所管理的闪存中对所述子请求进行FTL处理;
步骤306、后端CPU在处理完毕后,向前端CPU发送子请求处理完毕的通知;
步骤307、前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种多核CPU实施例的结构框图,具体可以包括一个前端CPU401和至少一个后端CPU402,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,其中的前端CPU401具体可以包括:
拆分模块411,用于将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;
映射模块412,用于依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;及
第一发送模块413,用于依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。
在本发明的一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。
在本发明的另一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的 数量的整数倍。
在本发明的再一种优选实施例中,所述映射模块412具体可以包括:
求余运算子模块,用于依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算;
取整运算子模块,用于依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。
在本发明实施例中,优选的是,所述前端CPU401还可以包括:
接收模块,用于接收来自所述后端CPU的子请求处理完毕的通知;
第二发送模块,用于在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知
本发明实施例还提供了一种固态硬盘,其具体可以包括闪存,及前述的多核CPU,其中多核CPU具体可以包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同。
例如,一个固态硬盘通常由多片Nand Flash组成(比如16片),其中,每片Nand flash由多个块(Block)组成(比如2048个blocks),每个块(block)又由多个页(page)组成(比如256pages),每个页(page)存放的数据量为多个bytes(比如8192bytes)。Nand flash以页为单位读写数据,而以块为单位擦除数据;在每个页处于擦除状态时,这个页(page)上面的数据都是1,而经过编程(program)之后数据则有可能是0也有可能是1。
为使本领域技术人员更好地理解本发明实施例,参照图5,示出了本发明的一种固态硬盘的结构示意图,该固态硬盘具体可以包括:前端CPU501、多个后端CPU502和多片Nand Flash503,其中前端CPU501通过PCIe(快速外围组件互连,Peripheral Component Interconnect Express)或者SATA(串行高级技术附件,Serial Advanced Technology Attachment)等接口与主机相 连,前端CPU501分别与多个后端CPU502一一相连,每个后端CPU502分别与对应的N片Nand Flash503相连;
假设上述每片Nand Flash503的Page大小为8192bytes,主机的LBA基本单位大小为4096bytes,后端CPU502的数目为4,且假设将所述读写请求拆分为24个子请求,编号分别为1-23,那么,该24个子请求与4个后端CPU502的映射关系如图5所示,其中,第一个后端CPU502分别对应编号为0,1,8,9,16,17的子请求,第二个后端CPU502分别对应编号为2,3,10,11,18,19的子请求,第三个后端CPU502分别对应编号为4,5,12,13,20,21的子请求,第四个后端CPU502分别对应编号为6,7,14,15,22,23的子请求等等。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的 指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种非易失存储器的数据处理方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时, 对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

多核CPU的负载均衡方法、多核CPU及固态硬盘.pdf_第1页
第1页 / 共13页
多核CPU的负载均衡方法、多核CPU及固态硬盘.pdf_第2页
第2页 / 共13页
多核CPU的负载均衡方法、多核CPU及固态硬盘.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《多核CPU的负载均衡方法、多核CPU及固态硬盘.pdf》由会员分享,可在线阅读,更多相关《多核CPU的负载均衡方法、多核CPU及固态硬盘.pdf(13页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104102458A43申请公布日20141015CN104102458A21申请号201410302672822申请日20140627G06F3/06200601G06F9/5020060171申请人北京兆易创新科技股份有限公司地址100083北京市海淀区学院路30号科大天工大厦A座12层72发明人曹堪宇朱荣臻高会娟74专利代理机构北京润泽恒知识产权代理有限公司11319代理人刘祥景54发明名称多核CPU的负载均衡方法、多核CPU及固态硬盘57摘要本发明公开了一种多核CPU的负载均衡方法、多核CPU及固态硬盘,所述多核CPU包括一个前端CPU和至少一个后端CPU,其中的每个。

2、后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法包括前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。能够简化软件设计,提高开发效率。51INTCL权利要求书2页说明书7页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图3页10申请公布号。

3、CN104102458ACN104102458A1/2页21一种多核CPU的负载均衡方法,其特征在于,所述多核CPU包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法包括前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。2根据。

4、权利要求1所述的方法,其特征在于,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。3根据权利要求1所述的方法,其特征在于,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。4根据权利要求1或2或3所述的方法,其特征在于,所述前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系的步骤,包括首先依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算,然后依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算。

5、,所述取整运算结果为所述子请求的编号对应后端CPU的编号。5根据权利要求1或2或3所述的方法,其特征在于,还包括所述前端CPU接收来自所述后端CPU的子请求处理完毕的通知;所述前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。6一种多核CPU,其特征在于,包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,其中的前端CPU包括拆分模块,用于将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;映射模块,用于依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU。

6、的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;及第一发送模块,用于依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。7根据权利要求6所述的多核CPU,其特征在于,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。8根据权利要求6所述的多核CPU,其特征在于,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。9根据权利要求6或7或8所述的多核CPU,其特征在于,所述映射模块包括求余运算子模块,用于依据所述子请求。

7、的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算;取整运算子模块,用于依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。10一种固态硬盘,其特征在于,包括闪存,及前述权利要求6或7或8或9所述的多核权利要求书CN104102458A2/2页3CPU。权利要求书CN104102458A1/7页4多核CPU的负载均衡方法、多核CPU及固态硬盘技术领域0001本发明涉及数据存储技术领域,特别是涉及一种多核CPU的负载均衡方法、多核CPU及固态硬盘。背景技术0002SSD固态硬盘,SOLIDSTATEDIS。

8、K是一种使用闪存作为存储介质的一类硬盘,其相对于传统硬盘,具有更高速度、更低功耗和更低噪音等优点。0003由于固态硬盘所使用的闪存有擦写次数限制,一旦某一闪存块擦除/写入到达一定次数,就可能造成无法写入数据,或者数据损坏。为了避免这种情况发生,固态硬盘引入了FTL闪存转换层,FLASHTRANSLATIONLAYER,FTL通过主机的LBA逻辑块地址,LOGICBLOCKADDRESS映射为闪存的PBA物理块地址,PHYSICSBLOCKADDRESS,对闪存的每个物理块进行管理,做到每个物理块的擦写次数均衡,延长了闪存的寿命,使得固态硬盘也有传统硬盘的使用寿命。FTL可以在主机端实现,也可以。

9、在设备端实现。0004当在采用多核CPU的设备端实现FTL时,现有多核CPU的负载均衡方案通常根据功能将主机的读写请求分担到上述多核CPU上进行处理,比如有些CPU专门处理前端NVME非易失性存储总线,NONVOLATILEMEMORYEXPRESS协议功能的读写请求,有些CPU专门处理NANDFLASH功能的读写请求,有些CPU专门处理损耗均衡WEARLEVELING功能的读写请求,有些CPU专门处理页映射PAGEMAPPING功能的读写请求,等等。然而,在按照上述方案处理读写请求的过程中,CPU之间很有可能要进行数据共享,也即,在很多情况下需要在两个或两个以上CPU之间进行通讯,而CPU之。

10、间的通讯往往需要复杂的算法,这无疑增加了负载均衡代码的开发周期,降低了开发效率。发明内容0005本发明实施例所要解决的技术问题是提供一种多核CPU的负载均衡方法、多核CPU及固态硬盘,能够简化软件设计,提高开发效率。0006为了解决上述问题,本发明公开了一种多核CPU的负载均衡方法,所述多核CPU包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法包括0007前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;0008前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU。

11、的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;0009前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。0010优选的,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。0011优选的,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请说明书CN104102458A2/7页5求数量为对应闪存页所包含LBA的数量的整数倍。0012优选的,所述前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系的步骤。

12、,包括0013首先依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算,然后依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。0014优选的,所述方法还包括0015所述前端CPU接收来自所述后端CPU的子请求处理完毕的通知;0016所述前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。0017另一方面,本发明还公开了一种多核CPU,包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,其中。

13、的前端CPU包括0018拆分模块,用于将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;0019映射模块,用于依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;及0020第一发送模块,用于依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。0021优选的,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。0022优选的,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求。

14、数量为对应闪存页所包含LBA的数量的整数倍。0023优选的,所述映射模块包括0024求余运算子模块,用于依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算;0025取整运算子模块,用于依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。0026另一方面,本发明还公开了一种固态硬盘,包括闪存,及前述的多核CPU。0027与现有技术相比,本发明实施例包括以下优点0028本发明实施例将多核CPU划分为一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管。

15、理的闪存不同也即各后端CPU管理的闪存之间没有交叉,这样,当主机向固态硬盘发送数据的读写请求时,前端CPU可以将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求,并依据所述子请求与对应后端CPU的映射关系将各子请求发送给后端CPU进行FTL处理;由于各后端CPU管理的闪存之间没有交叉,且所述映射关系中每个子请求对应唯一的后端CPU,故各后端CPU可以处理完整的以LBA为单位的子请求,而不需要过多的通讯,因此,本发明实施例能够降低进行FTL处理的各后端CPU之间的耦合性,从而简化了软件设计,提高了开发效率。说明书CN104102458A3/7页6附图说明0029图1是本发明的一种多核CP。

16、U的负载均衡方法实施例一的流程图;0030图2是本发明的一种多核CPU的负载均衡方法实施例二的流程图;0031图3是本发明的一种固态硬盘中多核CPU的负载均衡方法示例的流程图;0032图4是本发明的一种多核CPU实施例的结构框图;0033图5是本发明的一种固态硬盘的结构示意图。具体实施方式0034为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。0035实施例一0036参照图1,示出了本发明的一种多核CPU的负载均衡方法实施例一的流程图,所述多核CPU具体可以包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存。

17、,且各后端CPU管理的闪存不同,所述方法具体可以包括0037步骤101、前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;0038本发明实施例可以应用于采用多核CPU实现FTL的固态硬盘设备端,用于提高该设备端多核CPU负载均衡代码的开发效率。0039假设每个LBA的大小为4096BYTES,而所述读写请求涉及读取从0开始的24个LBA,那么前端CPU可以将其拆分为LBA0、LBA1、LBA2、LBA3LBA23等24个子请求。0040步骤102、前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对。

18、应唯一的后端CPU;0041步骤103、前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。0042综上,本发明实施例将多核CPU划分为一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同也即各后端CPU管理的闪存之间没有交叉,这样,当主机向固态硬盘发送数据的读写请求时,前端CPU可以将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求,并依据所述子请求与对应后端CPU的映射关系将各子请求发送给后端CPU进行FTL处理;由于各后端CPU管理的闪存之间没。

19、有交叉,且所述映射关系中每个子请求对应唯一的后端CPU,故各后端CPU可以处理完整的以LBA为单位的子请求,而不需要过多的通讯,因此,本发明实施例能够降低进行FTL处理的各后端CPU之间的耦合性,从而简化了软件设计,提高了开发效率。0043在本发明的一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后端CPU中错开。本优选实施例能够将同一读写请求的子请求分散到各后端CPU,从而能够将大块连续的读写请求平均分配到不同的后端CPU进行处理,因此能够提高多核CPU的处理能力。0044在本发明的另一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,所述后。

20、端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。由于闪存以页为单位读写数据,故在所述后端CPU对应的子请求数量等于每个闪存页所包含LBA的说明书CN104102458A4/7页7数量时,仅需读写1次即可进行FTL处理,因此能够提高多核CPU的处理效率。0045在本发明的一种应用示例中,假设所述读写请求涉及16个LBA的读写操作,对应的子请求分别为LBA0、LBA1、LBA2、LBA3,而每个闪存页所包含LBA的数量为2,后端CPU的编号分别为CPU0、CPU1、CPU2,那么,LBA0和LBA1可以放至CPU0处理,LBA2和LBA3可以放在CPU1处理。0046在本发明的再一。

21、种优选实施例中,所述前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系的步骤102,具体可以包括首先依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算,然后依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。0047假设每个NANDFLASH与非闪存,NOTANDFLASH页包含M个LBA,进行FTL处理的后端CPU的数量为M,固态硬盘一共有MN片NANDFLASH,那么,子请求LBAI对应后端CPU的编号可以表示为后端CPU的编号取整LB。

22、AIMM/M,其中,“”为求余运算符,“/”为取整运算符号。参照表1,示出了M2时子请求与对应后端CPU的映射关系的示意。0048在表100490050实施例二0051参照图2,示出了本发明的一种多核CPU的负载均衡方法实施例二的流程图,所述多核CPU具体可以包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同,所述方法具体可以包括0052步骤201、前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;0053步骤202、前端CPU依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射。

23、关系;所述映射关系中每个子请求对应唯一的后端CPU;0054步骤203、前端CPU依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理;0055步骤204、前端CPU接收来自所述后端CPU的子请求处理完毕的通知;0056步骤205、前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机说明书CN104102458A5/7页8发送读写请求处理完毕的通知。0057本实施例相对于实施例二,增加了前端CPU对于所述读写请求处理完毕的判断,具体地,其接收来自所述后端CPU的子请求处理完毕的通知,并在等待所述读写请求中所有子请。

24、求都处理完毕后,向所述主机发送读写请求处理完毕的通知。0058参照图3,示出了本发明的一种固态硬盘中多核CPU的负载均衡方法示例的流程图,具体可以包括0059步骤301、前端CPU接收来自主机的读写请求;0060步骤302、前端CPU将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;0061步骤303、前端CPU计算后端CPU的编号取整LBAIMM/M;0062步骤304、前端CPU将所述子请求发送至对应的后端CPU;0063步骤305、后端CPU在接收到子请求后,在所管理的闪存中对所述子请求进行FTL处理;0064步骤306、后端CPU在处理完毕后,向前端CPU发送子请求处理完毕的。

25、通知;0065步骤307、前端CPU在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知。0066需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。0067参照图4,示出了本发明的一种多核CPU实施例的结构框图,具体可以包括一个前端CPU401和至少一个后端CPU402,其中的每个后端CPU用于管理。

26、固态硬盘的闪存,且各后端CPU管理的闪存不同,其中的前端CPU401具体可以包括0068拆分模块411,用于将来自主机的读写请求拆分为以逻辑块地址LBA为单位的子请求;0069映射模块412,用于依据后端CPU数量和每个闪存页所包含LBA的数量,得到所述子请求与对应后端CPU的映射关系;所述映射关系中每个子请求对应唯一的后端CPU;及0070第一发送模块413,用于依据所述映射关系,将所述子请求发送至对应的后端CPU,由所述后端CPU在所管理的闪存中对所述子请求进行闪存转换层FTL处理。0071在本发明的一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,同一读写请求的子请求在所述后。

27、端CPU中错开。0072在本发明的另一种优选实施例中,所述每个子请求与对应后端CPU的映射关系中,所述后端CPU对应的子请求数量为对应闪存页所包含LBA的数量的整数倍。0073在本发明的再一种优选实施例中,所述映射模块412具体可以包括0074求余运算子模块,用于依据所述子请求的编号对所述后端CPU数量和每个闪存页所包含LBA的数量的乘积进行求余运算;0075取整运算子模块,用于依据求余运算结果对所述每个闪存页所包含LBA的数量进行取整运算,所述取整运算结果为所述子请求的编号对应后端CPU的编号。说明书CN104102458A6/7页90076在本发明实施例中,优选的是,所述前端CPU401还。

28、可以包括0077接收模块,用于接收来自所述后端CPU的子请求处理完毕的通知;0078第二发送模块,用于在等待所述读写请求中所有子请求都处理完毕后,向所述主机发送读写请求处理完毕的通知0079本发明实施例还提供了一种固态硬盘,其具体可以包括闪存,及前述的多核CPU,其中多核CPU具体可以包括一个前端CPU和至少一个后端CPU,其中的每个后端CPU用于管理固态硬盘的闪存,且各后端CPU管理的闪存不同。0080例如,一个固态硬盘通常由多片NANDFLASH组成比如16片,其中,每片NANDFLASH由多个块BLOCK组成比如2048个BLOCKS,每个块BLOCK又由多个页PAGE组成比如256PA。

29、GES,每个页PAGE存放的数据量为多个BYTES比如8192BYTES。NANDFLASH以页为单位读写数据,而以块为单位擦除数据;在每个页处于擦除状态时,这个页PAGE上面的数据都是1,而经过编程PROGRAM之后数据则有可能是0也有可能是1。0081为使本领域技术人员更好地理解本发明实施例,参照图5,示出了本发明的一种固态硬盘的结构示意图,该固态硬盘具体可以包括前端CPU501、多个后端CPU502和多片NANDFLASH503,其中前端CPU501通过PCIE快速外围组件互连,PERIPHERALCOMPONENTINTERCONNECTEXPRESS或者SATA串行高级技术附件,SE。

30、RIALADVANCEDTECHNOLOGYATTACHMENT等接口与主机相连,前端CPU501分别与多个后端CPU502一一相连,每个后端CPU502分别与对应的N片NANDFLASH503相连;0082假设上述每片NANDFLASH503的PAGE大小为8192BYTES,主机的LBA基本单位大小为4096BYTES,后端CPU502的数目为4,且假设将所述读写请求拆分为24个子请求,编号分别为123,那么,该24个子请求与4个后端CPU502的映射关系如图5所示,其中,第一个后端CPU502分别对应编号为0,1,8,9,16,17的子请求,第二个后端CPU502分别对应编号为2,3,1。

31、0,11,18,19的子请求,第三个后端CPU502分别对应编号为4,5,12,13,20,21的子请求,第四个后端CPU502分别对应编号为6,7,14,15,22,23的子请求等等。0083对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。0084本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。0085本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件。

32、和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质包括但不限于磁盘存储器、CDROM、光学存储器等上实施的计算机程序产品的形式。0086本发明实施例是参照根据本发明实施例的方法、终端设备系统、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实。

33、现在流程图一个流程或多个流程和/或方框图一个方框或多说明书CN104102458A7/7页10个方框中指定的功能的装置。0087这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。0088这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程。

34、或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。0089尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。0090最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那。

35、些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。0091以上对本发明所提供的一种非易失存储器的数据处理方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。说明书CN104102458A101/3页11图1图2说明书附图CN104102458A112/3页12图3图4说明书附图CN104102458A123/3页13图5说明书附图CN104102458A13。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1