Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR REDUCING READ DELAY
Document Type and Number:
WIPO Patent Application WO/2013/143273
Kind Code:
A1
Abstract:
A method and device for reducing read delay. The corresponding method comprises: when one or more flash chips corresponding to a read command are in a busy state, setting data read from the one or more flash chips which are in a busy state as wrong data; and according to the wrong data and the data read from other flash chips, obtaining correct data after reconstruction, and reporting the correct data. By setting the data read from flash chips as wrong data, and obtaining correct data after reconstruction according to the wrong data and the data read from other flash chips, the present invention enables flash chips to avoid being erased during a read operation or blocked during a write operation, thereby effectively reducing delay, and increasing the storage system performance.

Inventors:
LI YANSONG (CN)
Application Number:
PCT/CN2012/082964
Publication Date:
October 03, 2013
Filing Date:
October 15, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
LI YANSONG (CN)
International Classes:
G06F3/06
Foreign References:
CN102662608A2012-09-12
CN1287361A2001-03-14
KR20090071337A2009-07-01
Other References:
See also references of EP 2811392A4
Attorney, Agent or Firm:
BEIJING CATALY IP ATTORNEY AT LAW (CN)
北京凯特来知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求

1、 一种降低读延时的方法, 其特征在于, 包括- 当读命令对应的一个或多个 ash芯片处于忙状态时, 将处于忙状态的一个或多个 flash上读 取到的数据置为错误的数据;

根据所述错误的数据以及从其它 flash芯片上读取的数据获得重建后的正确数据, 并将所述正 确数据上报。

2、 根据权利要求 1所述的方法, 其特征在于, 所述判断 flash芯片处于忙状态包括: 通过检测每个 flash芯片的忙 /闲信号电平、通过下发读状态命令、或者同时检测每个 flash芯 片的忙 /闲信号电平及下发读状态命令确定 flash芯片是否处于忙状态。

3、 根据权利要求 2所述的方法, 其特征在于, 所述读取 flash芯片数据的读命令通过 SATA、

SAS或 PCIe接口接收。

4、 根据权利要求 2或 3所述的方法, 其特征在于, 该方法还包括: 根据读命令报文携带的地址 字段与 SSD内部的 flash芯片地址的对应关系确定所述读命令与 flash芯片的对应关系。

5、根据权利要求 1所述的方法, 其特征在于, 所述置为错误的数据包括: 将读取的数据置为任 何不符合 flash数据校验规则的数据组合。

6、 根据权利要求 1所述的方法, 其特征在于, 所述获得重建后的正确数据包括:

SSD控制器接收到发送来的错误的数据并检测到数据错误后, 启动纠错功能, 利用多组 flash 存储单元之间存在的数据约束关系, 获得重建后的正确数据。

7、 根据权利要求 1所述的控制方法, 其特征在于, 该方法还包括:

当检测到读数据错误并且标识位是 0时, 错误计数器加 1 ; 当检测到读数据错误并且标识位是 1 时, 错误计数器不变。

8、 一种降低读延时的装置, 其特征在于, 包括:

置错单元, 用于当读命令对应的一个或多个 flash芯片处于忙状态时, 将处于忙状态的一个或 多个 flash上读取到的数据置为错误的数据;

重建上报单元, 用于根据所述错误的数据以及从其它 flash芯片上读取的数据获得重建后的正 确数据, 并将所述正确数据上报。

9、 根据权利要求 8所述的装置, 其特征在于, 在置错单元中包括:

判断子单元, 用于通过检测每个 flash芯片的忙 /闲信号电平、通过下发读状态命令、 或者同时 检测每个 flash芯片的忙 /闲信号电平及下发读状态命令确定 flash芯片是否处于忙状态。

10、 根据权利要求 9所述的装置, 其特征在于, 在置错单元中, 所述读取 flash芯片数据的读 命令通过 SATA、 SAS或 PCIe接口接收。

11、 根据权利要求 9或 10所述的装置, 其特征在于, 在置错单元中还包括:

读取子单元, 用于根据读命令报文携带的地址字段与 SSD内部的 flash芯片地址的对应关系确 定所述读命令与 flash芯片的对应关系。

12、 根据权利要求 8所述的装置, 其特征在于, 在置错单元中, 所述置为错误的数据包括: 将 读取的数据置为任何不符合 flash数据校验规则的数据组合。

13、 根据权利要求 8所述的装置, 其特征在于, 在重建上报单元中包括:

重建子单元,用于 SSD控制器接收到发送来的错误的数据并检测到数据错误后, 启动纠错功能, 利用多组 flash存储单元之间存在的数据约束关系, 获得重建后的正确数据。

14、 根据权利要求 8所述的装置, 其特征在于, 该装置还包括:

错误计数单元, 用于当检测到读数据错误并且标识位是 0时, 错误计数器加 1 ; 当检测到读数 据错误并且标识位是 1时, 错误计数器不变。

Description:
一种降低读延时的方法及装置

本申请要求了 2012年 03月 30日提交的、 申请号为 201210095907· 1、 发明名称为 "一种降低 读延时的方法及装置" 的中国申请的优先权, 其全部内容通过引用结合在本申请中。

技术领域

本发明属于数据存储技术领域, 涉及一种降低读延时的方法及装置。

发明背景

存储领域常用的数据载体是机械硬盘和固态硬 盘 (SSD), 由于 SSD具有高性能、低延迟、低功耗、 环境适应性强等优点, 同时成本也在不断降低, 因此目前应用的越来越普遍。

SSD—般由 NAND flash芯片组成, 它存在固有的比特跳变、 读干扰等问题, 会导致读出的数据 出错, 同时还有擦写次数的限制, 因此在 NAND flash芯片的结构和 SSD设计上都采取了保证可靠性 的措施。 例如: NAND flash内部包括一个或多个晶片, 每个晶片包括多个平面, 每个平面包括多个 块, 每个块包括多个页。

其中页是读、 写数据的基本单元, 包括多个字节 (例如 2048+64字节), 其中每 512字节 +16字 节为一个检错 /纠错单元, 512字节用来保存数据, 16字节用来保存检错 /纠错码。 当读取数据时, 每个 512+16字节的单元会进行校验, 如果出错的位数较少可以被纠正, 如果出错的位数太多无法纠 正就需要利用上层的纠错机制例如 RAID算法来解决。

NAND flash的块是基本的擦除单元, 每个块包括多个页 (例如 64个)。 为了修改 flash中已经 写入的数据, 必须先将该数据所在的块擦除, 然后才能写入新数据, 这是 flash的基本特征。

SSD在工作过程中需要不断执行擦除或写操作, 而 flash芯片在执行这两种操作的时候处于忙 状态 (通过芯片的硬件管脚 R/B#来表示, 高电平表示准备好, 低电平表示忙), 不能再响应读操作, 只有等待擦除或写操作完成后才能继续执行读 操作。 由于 NAND flash芯片的块擦除一般需要 3ms, 写操作一般需要 900us, 而读操作一般只需要 50us, 这样擦除和写操作会阻塞读操作, 造成较大的 读延时, 影响存储系统的性能, 在擦除或写操作特别频繁的场景下这种现象更 为明显。

发明内容

本发明为解决现有的基于 flash芯片的存储设备在读、 写、 擦除同时存在的情况下, 读操作被 擦除和写操作阻塞, 从而造成较大读延时的问题, 提供了一种降低读延时的方法及装置。

本发明的实施例提供了一种降低读延时的方法 , 包括:

当读命令对应的一个或多个 flash芯片处于忙状态时, 将处于忙状态的一个或多个 flash上读 取到的数据置为错误的数据;

根据所述错误的数据以及从其它 flash芯片上读取的数据获得重建后的正确数据 并将所述正 确数据上报。

本发明的实施例还提供了一种降低读延时的装 置, 包括:

置错单元, 用于当读命令对应的一个或多个 flash芯片处于忙状态时, 将处于忙状态的一个或 多个 flash上读取到的数据置为错误的数据; 重建上报单元, 用于根据所述错误的数据以及从其它 flash芯片上读取的数据获得重建后的正 确数据, 并将所述正确数据上报。

由上述本发明的实施例提供的技术方案可以看 出, 通过从 flash芯片上读取到的数据置为错误 的数据, 并根据错误的数据以及从其它 flash芯片上读取的数据获得重建后的正确数据 使 flash 芯片处于忙状态时能够避免读操作被擦除和写 操作阻塞, 从而有效减少延时, 提高了存储系统的性 能。

附图简要说明

为了更清楚地说明本发明实施例的技术方案, 下面将对实施例描述中所需要使用的附图作简 单 地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于本领域普通技术人员来 讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。

图 1为本发明的实施例提供的结合具体硬件的 SSD设备的结构示意图;

图 2为本发明的实施例提供的 SSD控制器的结构示意图;

图 3为本发明的实施例提供的降低读延时的方法 整体流程框图;

图 4为本发明的实施例提供的降低读延时的方法 流程示意图;

图 5为本发明的实施例提供的基于 RAID控制器的结合具体硬件的 SSD设备的结构示意图; 图 6为本发明的实施例提供的基于 RAID控制器的 SSD控制器的结构示意图;

图 7为本发明的实施例提供的降低读延时的装置 结构示意图。

实施本发明的方式

下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显 然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前 提下所获得的所有其他实施例, 都属于本发明保护的 范围。

本实施例提供了一种降低读延时的方法, 包括: 当读命令对应的一个或多个 flash芯片处于忙 状态时, 将处于忙状态的一个或多个 flash上读取到的数据置为错误的数据; 根据所述错误的数据 以及从其它 flash芯片上读取的数据获得重建后的正确数据 并将所述正确数据上报。 本实施例提 供的技术方案主要应用在由主机、 SSD控制器以及多个通道的 flash组成的 SSD设备中, 相应的主 机通过 SSD控制器读写 flash中的数据。 其中, SSD设备的硬件结构包括一个服务器机框, 在服务 器机框中设有一块底板, 底板上安装有 CPU、 内存、 南桥等芯片, 用于对其它扩展卡进行控制, 实 现主机的功能; SSD控制器 (对 SSD内部的 flash进行控制) 也可采用芯片, 如 FPGA、 ASIC等, 通 过对这个芯片进行编程来完成接收主机的读写 请求, 并对 SSD设备中的 flash芯片进行各种访问及 控制; SSD控制器对应的芯片可以与各个 flash都设置在一个 PCB板上, 通过 PCB走线相连, 最后 呈现的形式是一个硬盘盒, 通过 SATA或 SAS接口与底板相连, 或者也可以将 flash芯片和 SSD控制 器做成一个扩展卡, 通过 PCIe接口与底板相连。

一个结合具体硬件的 SSD设备的结构如图 1所示。 其中的 SSD控制器的结构如图 2所示, 包括 主机接口、检错 /纠错模块、 收发模块几个部分。相应的主机接口用来从主 机接收各种命令及其对应 的地址、 数据, 例如读某个地址的数据或将数据写入某个地址 等, 目前常见的接口是 SATA、 SAS、 PCIe; 收发模块用来完成数据或命令的收发; 检错 /纠错模块用于保证来自 flash数据的正确性, 然 后将数据上报给主机,主要完成两个功能: 1、将每个 flash通道的数据及其校验码进行检错和纠错, 如果超出纠错能力则调用 RAID算法恢复数据, 2、执行 RAID算法, 当某个通道的数据有错且无法纠 正时, 利用其他通道的正确数据恢复该通道数据; 收发模块用于接收来自多个通道的 flash数据或 状态, 其中数据再转发给检错 /纠错模块而状态一般不会返回主机(如果主 需要的话也会返回给主 机, 例如 SATA接口也可以査询 SSD的忙状态) , 而是由收发模块自己使用, 或者将来自主机的命令 转换为 flash可以识别的命令, 或者将来自主机的数据写入多个通道的 flash, 同时还要满足 RAID 算法对数据排列方式的要求 (即条带方式)。

图 3所示的是本实施例提供的降低读延时的方法 整体流程框图, 下面结合说明书附图对本实 施例作详细说明, 如图 4所示, 该方法包括:

步骤 41, 当读命令对应的一个或多个 flash芯片处于忙状态时, 将处于忙状态的一个或多个 flash上读取到的数据置为错误的数据。

当主机下发读取 flash芯片数据的读命令时, 根据读命令中包含的地址信息, 确定该地址信息 对应的 flash芯片, 即对应于哪些 flash芯片组成的条带。另外,还査询上述地址 息对应的 flash 芯片的当前状态, 即是否处于忙状态。如果某个 flash芯片的当前状态为空闲,则将读取的该 flash 芯片的数据直接上报给 SSD设备的检错 /纠错模块; 如果其中某个 flash芯片处于忙状态, 则将来自 该 flash芯片的数据进行置错处理,使转发给检错 /纠错模块的数据不符合 flash芯片内部的校验规 则。 例如, 假设校验规则为偶校验, 那么收发模块构造一个不满足偶校验要求的数 据, 并且让检错 / 纠错模块能够发现这个错误,从而触发该模块 执行 RAID算法来纠正这个通道 flash芯片的错误数据。

其中, 各通道 flash芯片的忙 /闲状态可以通过软件方式、硬件方式或者软 件结合的方式来实 现, 具体为:

①、软件方式: NAND flash的内部提供了一个状态寄存器,通过芯片 态读取命令 (read status) 可以得到该寄存器的值, 根据指定位的 0、 1状态就能知道 flash芯片的忙 /闲状态。 当主机下发读 数据的命令时, 需要将该命令对应的所有 flash芯片状态都读取一遍。

②、 硬件方式: NAND flash芯片还提供了一个 R/B#信号, 可以将它们都接入 SSD控制器, 通过 査询对应信号的电平状态就能知道 flash芯片的忙 /闲状态。

③、 软硬件结合方式: R/B#信号是漏级开路输出, 可以支持线与的连接方式, 可以将同一个通 道所有 flash芯片的该信号连接起来, 然后接入控制器, 这样信号线总数会减少很多。 SSD控制器 通过检测这个线与信号的电平可以知道是否某 个通道有 flash 芯片处于忙状态, 然后再通过 read status命令来区分该通道下是哪一个 flash芯片处于忙状态。 如果要读取数据所在的 flash芯片处 于空闲状态, 可以直接读取数据; 如果所在的 flash芯片处于忙状态, 则读取到的数据置为错误的 数据。

并且, flash 芯片的状态査询命令 (read status)的发起不受芯片忙 /闲状态影响, 如果这个状 态査询命令是主机下发的, 则当收发模块取得对应通道上的 flash芯片状态之后, 不经过检错 /纠错 模块的处理而是直接上报给主机, 因为状态信息没有经过 RAID算法处理。

另外, flash 芯片内部的校验规则还可以采用具有检错和纠 错能力的汉明码, 而且产生的错误 数据可以有很多选择, 可以在设计控制器的时候事先确定下来。 这是因为 flash芯片处于忙状态时 不能响应读数据的命令, 该命令会被忽略, 这样 SSD控制器读到的数据是不确定的, 可能通过检错 / 纠错模块的校验, 也可能通不过, 如果前一种情况发生就会把无效数据当成正确 数据上报了, 所以 为了确保可靠性必须人为构造错误数据。

步骤 42, 根据所述错误的数据以及从其它 flash芯片上读取的数据获得重建后的正确数据 并 将所述正确数据上报。

具体的, SSD设备的检错 /纠错模块会将每个通道的数据分别做校验, 果检测到有错误的数据, 则通过 RAID算法纠正, 否则直接上报给主机。 当检错 /纠错模块检测到从处于忙状态的 flash读取 的数据存在错误时, 会通过相应的 RAID算法纠正, 然后结合从其它通道得到的重建数据一起上报 给 主机, 以完成相应的读操作。

检错 /纠错模块在发现某个通道的数据出错并将其 正之后,一般会做错误统计, 当超出某个门 限时会上报给主机, 要求更换整个 SSD (对于 flash芯片无法单独更换的场合, 例如焊接在底板上) 或者更换某个通道上的 flash芯片 (对于 flash芯片可以单独更换的场合, 例如每个通道上的 flash 芯片组成一个可更换的模块)。由于本实施例 是将处于忙状态的 flash芯片的通道数据当作错误数据 处理的, 而该通道的 flash芯片并未发生故障, 因此需要区分这种情况避免误判。 可以在收发模块 中定义一个标识位, 缺省为 0, 每次当该模块有意构造错误数据上报给检错 /纠错模块时, 标识位设 置为 1, 否则为 0, 于是检错 /纠错模块可以根据这个标识位来决定是否给 误计数器增值。

在重建数据的过程中,由于各通道 flash芯片的擦除、写命令都是由收发模块发出 的,而 MID 算法的数据重建能力有限, 例如 RAID5只能纠正一个通道上的错误, 因此必须根据具体的 AID算法 来限制任意时刻每个条带上处于忙状态的 flash芯片的数量, 这是由收发模块完成的。 它可以通过 控制每次向各通道上 flash芯片发出的擦除、 写命令数量, 并实时査询各通道上 flash芯片的忙 / 闲状态, 来保证每个条带上处于忙状态的 flash芯片数量不会超出 RAID算法重建数据的能力。

由于步骤 42中纠正的是人为制造的错误数据, 目的都是为了重建数据, 可以将来源不同的问题 统一处理, 相应的问题可以是 flash芯片的数据错误, 也可以是 flash芯片处于忙状态, 有利于模 块的重用。

本实施例还提供了一种通过 RAID控制器降低读延时的方法,为了进一步提 容错能力同时提高 性能, SSD控制器通常支持多个通道, 每个通道上连接多个 flash芯片, 而且按照 RAID模式工作。 另外, 多个 flash芯片按照 RAID算法将数据和校验码按条带方式保存, 当某个 flash芯片不可用时 可以通过条带上其他 flash芯片读取的数据恢复出来, 从而提高了可靠性。 RAID有多种类别, SSD 中常用的是 MID4和 RAID5, 其中 RAID4是将校验码固定保存在某个通道的所有 flash芯片上, 而 RAID5是将校验码逐一保存在多个通道的所有 flash芯片上。

与上述 SSD控制器的情形类似, RAID控制器也是一种常用的提高存储系统性能 可靠性的器件, 它与主机一般通过 PCI或 PCIe接口相连, 然后通过多个通道 (例如 8个)与硬盘相连 (可以是机械硬 盘或 SSD) , 每个通道采用 SAS或 FC接口并且只能连接一个硬盘, 如图 5所示。 一个具体的应用场 景示例如图 6所示, 机架服务器当中其中一个扩展卡为 RAID卡, RAID卡中有 RAID控制器, 与多个 SSD硬盘盒 (包括 SSD控制器及多个 Flash) 中的 SSD控制器相连; 多个扩展卡仍然通过 PCIe接口 与底板相连。

RAID控制器按照 RAID算法将数据以条带方式保存在多个 SSD上, 当主机通过 PCI/PCIe接口向

RAID控制器下发读数据请求时, 如果某个 SSD正在执行 NAND flash的擦除及写操作并且不具备相 应的数据重建功能,那么在 RAID控制器和 SSD之间必须按照上述实施例中 SSD控制器和 NAND flash 芯片那种方式来重建数据, 即: RAID控制器通过命令査询各通道 SSD的忙 /闲状态, 对处于忙状态 的 SSD, RAID控制器内部的数据收发模块将该通道的数 置为错误, 结合其它通道得到的有效数据 一起上报给 RAID控制器内部的检错 /纠错模块, RAID控制器内部的检错 /纠错模块先对各通道的数 据进行检测, 发现上述忙状态的通道数据有误, 则按照 RAID算法通过其他通道的数据重建该错误数 据, 然后通过 PCI/PCIe接口统一上报给主机。

采用本实施例提供的技术方案, 通过从 ash芯片上读取到的数据置为错误的数据, 并根据错 误的数据以及从其它 flash芯片上读取的数据获得重建后的正确数据 使 flash芯片处于忙状态时 能够避免读操作被擦除和写操作阻塞, 从而有效减少延时, 提高了存储系统的性能。

需要说明的是, 本领域普通技术人员可以理解实现上述各方法 实施例中的全部或部分步骤是可 以通过程序来指令相关的硬件完成, 相应的程序可以存储于一种计算机可读存储介 质中, 上述提到 的存储介质可以是只读存储器, 磁盘或光盘等。

本发明的实施例还提供了一种降低读延时的装 置, 如图 7所示, 包括:

置错单元 71, 用于当读命令对应的一个或多个 flash芯片处于忙状态时, 将处于忙状态的一个 或多个 flash上读取到的数据置为错误的数据;

重建上报单元 72, 用于根据所述错误的数据以及从其它 flash芯片上读取的数据获得重建后的 正确数据, 并将所述正确数据上报。

本实施例可以对 SSD控制器 (如 FPGA或类似的硬件芯片) 或 RAID控制器进行相应的编程, 制 得能够完成相应的功能的单元模块。 其中, 降低读延时的装置的各单元模块可设置在如图 2所示的 SSD控制器中, 也可以设置在如图 5所示的 RAID控制器中。

可选的, 在置错单元 71中可以包括: 判断子单元, 用于通过检测每个 flash芯片的忙 /闲信号 电平、通过下发读状态命令、或者同时检测每 个 flash芯片的忙 /闲信号电平及下发读状态命令确定 flash芯片是否处于忙状态。

可选的, 在置错单元 71中, 读取 flash芯片数据的读命令通过 SATA、 SAS或 PCIe接口接收。 可选的, 在置错单元 71 中还可以包括: 读取子单元, 用于根据读命令报文携带的地址字段与 SSD内部的 flash芯片地址的对应关系确定所述读命令与 flash芯片的对应关系。

可选的, 在置错单元 71中, 置为错误的数据包括: 将读取的数据置为任何不符合 flash数据校 验规则的数据组合。

可选的, 在重建上报单元 72中可以包括: 重建子单元, 用于 SSD控制器接收到发送来的错误的 数据并检测到数据错误后, 启动纠错功能, 利用多组 flash存储单元之间存在的数据约束关系, 获 得重建后的正确数据。

可选的, 该装置还可以包括: 错误计数单元, 用于当检测到读数据错误并且标识位是 0时, 错 误计数器加 1 ; 当检测到读数据错误并且标识位是 1时, 错误计数器不变。

采用本实施例的方案, 通过从 flash芯片上读取到的数据置为错误的数据, 并根据错误的数据 以及从其它 flash芯片上读取的数据获得重建后的正确数据 使 flash芯片处于忙状态时能够避免 读操作被擦除和写操作阻塞, 从而有效减少延时, 提高了存储系统的性能。

上述降低读延时的装置中包含的各单元的处理 功能的具体实施方式在之前的方法实施方式中 己 经描述, 在此不再重复描述。

本发明方案可以在由计算机执行的计算机可执 行指令的一般上下文中描述, 例如程序单元。 一 般地, 程序单元包括执行特定任务或实现特定抽象数 据类型的例程、 程序、 对象、 组件、 数据结构 等等。 也可以在分布式计算环境中实践本发明方案, 在这些分布式计算环境中, 由通过通信网络而 被连接的远程处理设备来执行任务。 在分布式计算环境中, 程序单元可以位于包括存储设备在内的 本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描 述, 各个实施例之间相同相似的部分互相参见即 可, 每个实施例重点说明的都是与其他实施例的不 同之处。 尤其, 对于装置实施例而言, 由于其基 本相似于方法实施例, 所以描述得比较简单, 相关之处参见方法实施例的部分说明即可。 以上所描 述的装置实施例仅仅是示意性的, 其中所述作为分离部件说明的单元可以是或者 也可以不是物理上 分开的, 作为单元显示的部件可以是或者也可以不是物 理单元, 即可以位于一个地方, 或者也可以 分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部 模块来实现本实施例方案的 目的。 本领域普通技术人员在不付出创造性劳动的情 况下, 即可以理解并实施。

本领域普通技术人员可以意识到,结合本文中 所公开的实施例描述的各示例的单元及算法步 骤, 能够以电子硬件、 或者计算机软件和电子硬件的结合来实现。 这些功能究竟以硬件还是软件方式来 执行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可以对每个特定的应用来使用不 同方法来实现所描述的功能, 但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述的系统、 装置和单元 的具体工作过程, 可以参考前述方法实施例中的对应过程, 在此不再赘述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和方法, 可以通过其它的 方式实现。 例如, 以上所描述的装置实施例仅仅是示意性的, 例如, 所述单元的划分, 仅仅为一种 逻辑功能划分, 实际实现时可以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦 合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信连接, 可以是电性, 机械或其它 的形式。

所述作为分离部件说明的单元可以是或者也可 以不是物理上分开的, 作为单元显示的部件可以 是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据 实际的需要选择其中的部分或者全部单元来实 现本实施例方案的目的。

另外, 在本发明各个实施例中的各功能单元可以集成 在一个处理单元中, 也可以是各个单元单 独物理存在, 也可以两个或两个以上单元集成在一个单元中 。

所述功能如果以软件功能单元的形式实现并作 为独立的产品销售或使用时, 可以存储在一个计 算机可读取存储介质中。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术做 出贡献的 部分或者该技术方案的部分可以以软件产品的 形式体现出来, 该计算机软件产品存储在一个存储介 质中, 包括若干指令用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网络设备等) 执 行本发明各个实施例所述方法的全部或部分步 骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读 存储器 (ROM, Read-Only Memory) 、 随机存取存储器 (RAM, Random Access Memory) 、 磁碟或者 光盘等各种可以存储程序代码的介质。

通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了解到本发明 可借助软件加必需 的通用硬件的方式来实现, 通用硬件包括通用集成电路、 通用 CPU、 通用存储器、 通用元器件等, 当然也可以通过专用硬件包括专用集成电路、 专用 CPU、 专用存储器、 专用元器件等来实现, 但很 多情况下前者是更佳的实施方式。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术做 出贡献的部分可以以软件产品的形式体现出来 , 该计算机软件产品存储在可读取的存储介质中 , 如 计算机的软盘, 硬盘或光盘等, 包括若干指令用以使得一台计算机设备 (可以是个人计算机, 服务 器, 或者网络设备等) 执行本发明各个实施例的方法。

以上所述, 仅为本发明较佳的具体实施方式, 但本发明的保护范围并不局限于此, 任何熟悉本 技术领域的技术人员在本发明揭露的技术范围 内, 可轻易想到的变化或替换, 都应涵盖在本发明的 保护范围之内。 因此, 本发明的保护范围应该以权利要求的保护范围 为准。