Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA TRANSMISSION METHOD AND APPARATUS
Document Type and Number:
WIPO Patent Application WO/2015/157885
Kind Code:
A1
Abstract:
The present invention relates to the technical field of computers, and especially to a data transmission method and apparatus, so as to solve the problem that because of large data transmission granularity when modified data is sent, a large amount of unnecessary data may be transmitted, resulting in low data transmission efficiency and waste of energy. The method of the present invention comprises: a host receives a data modification instruction, the data modification instruction comprising address information and data information; the host modifies, according to the data information, at least one data unit of a page stored in a cache that the address information points to, and generates a data writing request, the data writing request comprising each modified data unit and address identification information of each modified data unit; and the host sends the data writing request to a storage device, so that the storage device writes each modified data unit into a memory of the storage device according to an address of each modified data unit.

Inventors:
WANG YUANGANG (CN)
XU JUN (CN)
ZHU GUANYU (CN)
XUE CHANGLIANG (CN)
ZHAO JUNFENG (CN)
Application Number:
PCT/CN2014/075241
Publication Date:
October 22, 2015
Filing Date:
April 14, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
G06F12/06
Foreign References:
CN102609361A2012-07-25
US6720969B22004-04-13
US20020069330A12002-06-06
Attorney, Agent or Firm:
TDIP & PARTNERS (CN)
北京同达信恒知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种数据传输方法, 其特征在于, 所述方法应用于存储系统中, 所述 存储系统包括主机和存储设备, 所述主机包括緩存, 其中, 所述緩存中存储 有至少一个页面, 每个页面包括多个数据单元, 所述数据单元的大小为 N个 字节, N为大于或等于 1 的正整数, 所述存储设备所支持的最小寻址单元为 一个字节, 该方法包括:

主机接收数据修改指令, 所述数据修改指令包括地址信息和数据信息; 所述主机根据所述数据信息, 对所述地址信息所指向的所述緩存中存储 的页面的至少一个数据单元进行修改;

所述主机生成数据写入请求, 其中, 所述数据写入请求包括修改后的每 个数据单元和所述修改后的每个数据单元的地址标识信息; 所述地址标识信 息用于所述存储设备确定修改后的每个数据单元的地址;

所述主机将所述数据写入请求发送给所述存储设备, 使得所述存储设备 根据修改后的每个数据单元的地址, 将所述修改后的每个数据单元写入所述 存储设备的存储器中。

2、 如权利要求 1所述的方法, 其特征在于, 所述方法还包括: 所述主机 为修改后的每个数据单元设置标记;

所述主机生成数据写入请求, 包括: 所述主机根据所述标记, 生成所述 数据写入请求。

3、 如权利要求 2所述的方法, 其特征在于, 所述主机为修改后的每个数 据单元设置标记, 包括: 所述主机将修改后的每个数据单元对应的脏位进行 置位;

所述主机根据所述标记, 生成所述数据写入请求, 包括: 所述主机根据 经过置位的脏位, 确定所述修改后的每个数据单元和所述修改后的每个数据 单元的地址标识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始位置的地址和修改后的每个数据单元所属页面的脏位。 4、 如权利要求 2所述的方法, 其特征在于, 所述主机为修改后的每个数 据单元设置标记, 包括: 所述主机记录修改后的每个数据单元的单元编号, 其中, 不同的数据单元具有不同的单元编号;

所述主机根据所述标记, 生成所述数据写入请求, 包括: 所述主机根据 记录的单元编号, 确定所述修改后的每个数据单元和所述修改后的每个数据 单元的地址标识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始位置的地址和所述修改后的每个数据单元的单元编号。

5、 一种数据传输方法, 其特征在于, 所述方法应用于存储系统中, 所述 存储系统包括主机和存储设备, 所述主机包括緩存, 所述存储设备包括存储 器, 所述存储器所支持的最小寻址单元为一个字节, 该方法包括:

所述存储设备接收所述主机发送的数据写入请求, 所述数据写入请求是 所述主机对所述緩存中的页面的至少一个数据单元进行修改后生成的, 并且, 所述数据写入请求包括修改后的每个数据单元和所述修改后的每个数据单元 的地址标识信息, 其中, 所述页面包括多个数据单元, 所述数据单元的大小 为 N个字节, N为大于或等于 1的正整数;

所述存储设备根据所述地址标识信息, 确定修改后的每个数据单元的地 址;

所述存储设备根据所述确定的修改后的每个数据单元的地址, 将所述修 改后的每个数据单元写入所述存储设备中的存储器中。

6、 如权利要求 5所述的方法, 其特征在于, 所述地址标识信息包括修改 后的每个数据单元所属页面的起始位置的地址和修改后的每个数据单元所属 页面的脏位;

所述存储设备根据所述地址标识信息, 确定修改后的每个数据单元的地 址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元所对应的脏位的顺序号与数据单元大小的乘积;

所述存储设备确定所述任意一个修改后的数据单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起始位置的地址的和值。

7、 如权利要求 5所述的方法, 其特征在于, 所述地址标识信息包括修改 后的每个数据单元所属页面的起始位置的地址和修改后的每个数据单元的单 元编号;

所述存储设备根据所述地址标识信息, 确定修改后的每个数据单元的地 址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元的单元编号与数据单元的大小的乘积;

所述存储设备确定所述任意一个修改后的数据单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起始位置的地址的和值。

8、 如权利要求 5~7任一所述的方法, 其特征在于, 所述存储器包括: 相 变存储器 PCM或者可变电阻式存储器 ReRAM或者磁性随机存储器 MRAM。

9、 一种数据传输装置, 其特征在于, 所述装置位于存储系统的主机中, 所述存储系统包括所述主机和存储设备, 所述主机包括緩存, 其中, 所述緩 存中存储有至少一个页面, 每个页面包括多个数据单元, 所述数据单元的大 小为 N个字节, N为大于或等于 1的正整数, 所述存储设备所支持的最小寻 址单元为一个字节, 所述装置包括:

接收模块, 用于接收数据修改指令, 并将接收的数据修改指令传输至处 理模块, 所述数据修改指令包括地址信息和数据信息;

处理模块, 用于根据所述数据信息, 对所述地址信息所指向的所述緩存 中存储的页面的至少一个数据单元进行修改, 并生成数据写入请求, 将生成 的所述数据写入请求传输至发送模块; 其中, 所述数据写入请求包括修改后 的每个数据单元和所述修改后的每个数据单元的地址标识信息; 所述地址标 识信息用于所述存储设备确定修改后的每个数据单元的地址;

发送模块, 用于将所述处理模块生成的所述数据写入请求发送给所述存 储设备, 使得所述存储设备根据修改后的每个数据单元的地址, 将所述修改 后的每个数据单元写入所述存储设备的存储器中。 10、 如权利要求 9所述的装置, 其特征在于, 所述处理模块具体用于: 为修改后的每个数据单元设置标记, 根据所述标记, 生成所述数据写入 请求。

11、 如权利要求 10所述的装置, 其特征在于, 所述处理模块具体用于: 将修改后的每个数据单元对应的脏位进行置位; 根据经过置位的脏位, 确定所述修改后的每个数据单元和所述修改后的每个数据单元的地址标识信 息, 其中, 所述地址标识信息包括修改后的每个数据单元所属页面的起始位 置的地址和修改后的每个数据单元所属页面的脏位。

12、 如权利要求 10所述的装置, 其特征在于, 所述处理模块具体用于: 记录修改后的每个数据单元的单元编号, 其中, 不同的数据单元具有不 同的单元编号; 根据记录的单元编号, 确定所述修改后的每个数据单元和所 述修改后的每个数据单元的地址标识信息, 其中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地址和所述修改后的每个数据单 元的单元编号。

13、 一种数据传输装置, 其特征在于, 所述装置位于存储系统的存储设 备中, 所述存储系统包括主机和所述存储设备, 所述主机包括緩存, 所述存 储设备包括存储器, 所述存储器所支持的最小寻址单元为一个字节, 所述装 置包括:

接收模块, 用于接收所述主机发送的数据写入请求, 将所述数据写入请 求传输至确定模块; 所述数据写入请求是所述主机对所述緩存中的页面的至 少一个数据单元进行修改后生成的, 并且, 所述数据写入请求包括修改后的 每个数据单元和所述修改后的每个数据单元的地址标识信息, 其中, 所述页 面包括多个数据单元, 所述数据单元的大小为 N个字节, N为大于或等于 1 的正整数;

确定模块, 用于根据所述地址标识信息, 确定修改后的每个数据单元的 地址, 并将所述修改后的每个数据单元的地址传输至写入模块;

写入模块, 用于根据所述确定模块确定的修改后的每个数据单元的地址, 将所述修改后的每个数据单元写入所述存储设备中的存储器中。

14、 如权利要求 13所述的装置, 其特征在于, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地址和修改后的每个数据单元所 属页面的脏位;

所述确定模块具体用于: 针对任意一个修改后的数据单元, 确定所述任 意一个修改后的数据单元所对应的脏位的顺序号与数据单元大小的乘积; 确 定所述任意一个修改后的数据单元的地址为所述乘积与所述任意一个修改后 的数据单元所属页面的起始位置的地址的和值。

15、 如权利要求 13所述的装置, 其特征在于, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地址和修改后的每个数据单元的 单元编号;

所述确定模块具体用于: 针对任意一个修改后的数据单元, 确定所述任 意一个修改后的数据单元的单元编号与数据单元的大小的乘积; 确定所述任 意一个修改后的数据单元的地址为所述乘积与所述任意一个修改后的数据单 元所属页面的起始位置的地址的和值。

16、如权利要求 13~15任一所述的装置,其特征在于, 所述存储器包括: 相变存储器 PCM或者可变电阻式存储器 ReRAM或者磁性随机存储器 MRAM。

17、 一种数据传输装置, 其特征在于, 所述装置位于存储系统中, 所述 存储系统包括所述装置和存储设备, 所述装置包括处理器和緩存, 其中, 所 述緩存中存储有至少一个页面, 每个页面包括多个数据单元, 所述数据单元 的大小为 N个字节, N为大于或等于 1的正整数, 所述存储设备所支持的最 小寻址单元为一个字节, 当所述装置运行时, 所述处理器执行如下方法:

接收数据修改指令, 所述数据修改指令包括地址信息和数据信息; 根据所述数据信息, 对所述地址信息所指向的所述緩存中存储的页面的 至少一个数据单元进行修改;

生成数据写入请求, 其中, 所述数据写入请求包括修改后的每个数据单 元和所述修改后的每个数据单元的地址标识信息; 所述地址标识信息用于所 述存储设备确定修改后的每个数据单元的地址;

将所述数据写入请求发送给所述存储设备, 使得所述存储设备根据修改 后的每个数据单元的地址, 将所述修改后的每个数据单元写入所述存储设备 的存储器中。

18、 如权利要求 17所述的装置, 其特征在于, 所述处理器执行的所述方 法还包括: 为修改后的每个数据单元设置标记; 所述处理器执行的所述方法 中, 所述生成数据写入请求, 包括: 根据所述标记, 生成所述数据写入请求。

19、 如权利要求 18所述的装置, 其特征在于, 所述处理器执行的所述方 法中, 所述为修改后的每个数据单元设置标记, 包括: 将修改后的每个数据 单元对应的脏位进行置位;

所述根据所述标记, 生成所述数据写入请求, 包括: 根据经过置位的脏 位, 确定所述修改后的每个数据单元和所述修改后的每个数据单元的地址标 识信息, 其中, 所述地址标识信息包括修改后的每个数据单元所属页面的起 始位置的地址和修改后的每个数据单元所属页面的脏位。

20、 如权利要求 18所述的装置, 其特征在于, 所述处理器执行的所述方 法中, 所述为修改后的每个数据单元设置标记, 包括: 记录修改后的每个数 据单元的单元编号, 其中, 不同的数据单元具有不同的单元编号;

所述根据所述标记, 生成所述数据写入请求, 包括: 根据记录的单元编 号, 确定所述修改后的每个数据单元和所述修改后的每个数据单元的地址标 识信息, 其中, 所述地址标识信息包括修改后的每个数据单元所属页面的起 始位置的地址和所述修改后的每个数据单元的单元编号。

21、 一种数据传输装置, 其特征在于, 所述装置位于存储系统中, 所述 存储系统包括主机和所述装置, 所述主机包括緩存, 所述装置包括处理器和 存储器,所述存储器所支持的最小寻址单元为一个字节, 当所述装置运行时, 所述处理器执行如下方法:

接收所述主机发送的数据写入请求, 所述数据写入请求是所述主机对所 述緩存中的页面的至少一个数据单元进行修改后生成的, 并且, 所述数据写 入请求包括修改后的每个数据单元和所述修改后的每个数据单元的地址标识 信息,其中,所述页面包括多个数据单元,所述数据单元的大小为 N个字节,

N为大于或等于 1的正整数;

根据所述地址标识信息, 确定修改后的每个数据单元的地址;

根据所述确定的修改后的每个数据单元的地址, 将所述修改后的每个数 据单元写入所述存储设备中的存储器中。

22、 如权利要求 21所述的装置, 其特征在于, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地址和修改后的每个数据单元所 属页面的脏位;

所述处理器执行的所述方法中, 所述根据所述地址标识信息, 确定修改 后的每个数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元所对应的脏位的顺序号与数据单元大小的乘积;

所述存储设备确定所述任意一个修改后的数据单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起始位置的地址的和值。

23、 如权利要求 21所述的装置, 其特征在于, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地址和修改后的每个数据单元的 单元编号;

所述处理器执行的所述方法中, 所述根据所述地址标识信息, 确定修改 后的每个数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元的单元编号与数据单元的大小的乘积;

所述存储设备确定所述任意一个修改后的数据单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起始位置的地址的和值。

24、如权利要求 21~23任一所述的装置,其特征在于, 所述存储器包括: 相变存储器 PCM或者可变电阻式存储器 ReRAM或者磁性随机存储器 MRAM。

Description:
一种数据传输方法及装置 技术领域

本发明涉及计算机技术领域, 尤其涉及一种数据传输方法及装置。

背景技术

当前, 主机都是基于小型计算机系统接口 ( Small Computer System Interface, SCSI )标准协议访问远端存储设备的, 在该标准协议下, 主机所进 行的数据读写请求都是以逻辑块(Logical Block, LB ) 为最小传输单位, 其 中, 一个 LB包含一个或多个扇区 (sector ), 每个扇区为 512个字节; 因此, 基于 SCSI标准协议进行数据读写时所传输数据的大 都不小于 512个字节。

基于上述读写方式,主机在读取远端存储设备 中具有一个 LB的某个页面 ( page )后, 按照指示对页面中的数据进行修改, 并将修改后的整个页面发送 给远端存储设备; 主机在对读取的页面进行修改时, 有可能只会修改几十个 字节的数据, 而在发送修改后的数据时, 仍然需要将整个页面都发送给远端 存储设备, 这样就会传输很多不需要的数据, 导致数据传输效率较低, 浪费 能耗。

综上, 由于在发送修改后的数据时的数据传输粒度较 大, 有可能会传输 很多不需要的数据, 导致数据传输效率较低, 浪费能耗。 发明内容

本发明实施例提供一种数据传输方法及装置, 用以解决由于在发送修改 后的数据时的数据传输粒度较大, 有可能会传输很多不需要的数据, 导致数 据传输效率较低, 浪费能耗的问题。

第一方面, 提供一种数据传输方法, 所述方法应用于存储系统中, 所述 存储系统包括主机和存储设备, 所述主机包括緩存, 其中, 所述緩存中存储 有至少一个页面, 每个页面包括多个数据单元, 所述数据单元的大小为 N个 字节, N为大于或等于 1 的正整数, 所述存储设备所支持的最小寻址单元为 一个字节, 该方法包括:

主机接收数据修改指令, 所述数据修改指令包括地址信息和数据信息; 所述主机根据所述数据信息, 对所述地址信息所指向的所述緩存中存储 的页面的至少一个数据单元进行修改;

所述主机生成数据写入请求, 其中, 所述数据写入请求包括修改后的每 个数据单元和所述修改后的每个数据单元的地 址标识信息; 所述地址标识信 息用于所述存储设备确定修改后的每个数据单 元的地址;

所述主机将所述数据写入请求发送给所述存储 设备, 使得所述存储设备 根据修改后的每个数据单元的地址, 将所述修改后的每个数据单元写入所述 存储设备的存储器中。

结合第一方面, 在第一种可能的实现方式中, 所述方法还包括: 所述主 机为修改后的每个数据单元设置标记;

所述主机生成数据写入请求, 包括: 所述主机根据所述标记, 生成所述 数据写入请求。

结合第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述主机为修改后的每个数据单元设置标记, 包括: 所述主机将修改后的每 个数据单元对应的脏位进行置位;

所述主机根据所述标记, 生成所述数据写入请求, 包括: 所述主机根据 经过置位的脏位, 确定所述修改后的每个数据单元和所述修改后 的每个数据 单元的地址标识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始位置的地址和修改后的每个数 据单元所属页面的脏位。

结合第一方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述主机为修改后的每个数据单元设置标记, 包括: 所述主机记录修改后的 每个数据单元的单元编号, 其中, 不同的数据单元具有不同的单元编号; 所述主机根据所述标记, 生成所述数据写入请求, 包括: 所述主机根据 记录的单元编号, 确定所述修改后的每个数据单元和所述修改后 的每个数据 单元的地址标识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始位置的地址和所述修改后的每 个数据单元的单元编号。

第二方面, 提供一种数据传输方法, 所述方法应用于存储系统中, 所述 存储系统包括主机和存储设备, 所述主机包括緩存, 所述存储设备包括存储 器, 所述存储器所支持的最小寻址单元为一个字节 , 该方法包括:

所述存储设备接收所述主机发送的数据写入请 求, 所述数据写入请求是 所述主机对所述緩存中的页面的至少一个数据 单元进行修改后生成的, 并且, 所述数据写入请求包括修改后的每个数据单元 和所述修改后的每个数据单元 的地址标识信息, 其中, 所述页面包括多个数据单元, 所述数据单元的大小 为 N个字节, N为大于或等于 1的正整数;

所述存储设备根据所述地址标识信息, 确定修改后的每个数据单元的地 址;

所述存储设备根据所述确定的修改后的每个数 据单元的地址, 将所述修 改后的每个数据单元写入所述存储设备中的存 储器中。

结合第二方面, 在第一种可能的实现方式中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和修改后的每个数据单元所 属页面的脏位;

所述存储设备根据所述地址标识信息, 确定修改后的每个数据单元的地 址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元所对应的脏位的顺序号与数据单 元大小的乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

结合第二方面, 在第二种可能的实现方式中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和修改后的每个数据单元的 单元编号;

所述存储设备根据所述地址标识信息, 确定修改后的每个数据单元的地 址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元的单元编号与数据单元的大小的 乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

结合第二方面, 或第二方面的第一或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述存储器包括: 相变存储器 PCM或者可变电阻式存储 器 ReRAM或者磁性随机存储器 MRAM。

第三方面, 提供一种数据传输装置, 所述装置位于存储系统的主机中, 所述存储系统包括所述主机和存储设备, 所述主机包括緩存, 其中, 所述緩 存中存储有至少一个页面, 每个页面包括多个数据单元, 所述数据单元的大 小为 N个字节, N为大于或等于 1的正整数, 所述存储设备所支持的最小寻 址单元为一个字节, 所述装置包括:

接收模块, 用于接收数据修改指令, 并将接收的数据修改指令传输至处 理模块, 所述数据修改指令包括地址信息和数据信息;

处理模块, 用于根据所述数据信息, 对所述地址信息所指向的所述緩存 中存储的页面的至少一个数据单元进行修改, 并生成数据写入请求, 将生成 的所述数据写入请求传输至发送模块; 其中, 所述数据写入请求包括修改后 的每个数据单元和所述修改后的每个数据单元 的地址标识信息; 所述地址标 识信息用于所述存储设备确定修改后的每个数 据单元的地址;

发送模块, 用于将所述处理模块生成的所述数据写入请求 发送给所述存 储设备, 使得所述存储设备根据修改后的每个数据单元 的地址, 将所述修改 后的每个数据单元写入所述存储设备的存储器 中。

结合第三方面, 在第一种可能的实现方式中, 所述处理模块具体用于: 为修改后的每个数据单元设置标记, 根据所述标记, 生成所述数据写入 请求。

结合第三方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述处理模块具体用于:

将修改后的每个数据单元对应的脏位进行置位 ; 根据经过置位的脏位, 确定所述修改后的每个数据单元和所述修改后 的每个数据单元的地址标识信 息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始位 置的地址和修改后的每个数据单元所属页面的 脏位。

结合第三方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述处理模块具体用于:

记录修改后的每个数据单元的单元编号, 其中, 不同的数据单元具有不 同的单元编号; 根据记录的单元编号, 确定所述修改后的每个数据单元和所 述修改后的每个数据单元的地址标识信息, 其中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和所述修改后的每个数据单 元的单元编号。

第四方面, 提供一种数据传输装置, 所述装置位于存储系统的存储设备 中, 所述存储系统包括主机和所述存储设备, 所述主机包括緩存, 所述存储 设备包括存储器, 所述存储器所支持的最小寻址单元为一个字节 , 所述装置 包括:

接收模块, 用于接收所述主机发送的数据写入请求, 将所述数据写入请 求传输至确定模块; 所述数据写入请求是所述主机对所述緩存中的 页面的至 少一个数据单元进行修改后生成的, 并且, 所述数据写入请求包括修改后的 每个数据单元和所述修改后的每个数据单元的 地址标识信息, 其中, 所述页 面包括多个数据单元, 所述数据单元的大小为 N个字节, N为大于或等于 1 的正整数;

确定模块, 用于根据所述地址标识信息, 确定修改后的每个数据单元的 地址, 并将所述修改后的每个数据单元的地址传输至 写入模块;

写入模块, 用于根据所述确定模块确定的修改后的每个数 据单元的地址, 将所述修改后的每个数据单元写入所述存储设 备中的存储器中。

结合第四方面, 在第一种可能的实现方式中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和修改后的每个数据单元所 属页面的脏位;

所述确定模块具体用于: 针对任意一个修改后的数据单元, 确定所述任 意一个修改后的数据单元所对应的脏位的顺序 号与数据单元大小的乘积; 确 定所述任意一个修改后的数据单元的地址为所 述乘积与所述任意一个修改后 的数据单元所属页面的起始位置的地址的和值 。

结合第四方面, 在第二种可能的实现方式中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和修改后的每个数据单元的 单元编号;

所述确定模块具体用于: 针对任意一个修改后的数据单元, 确定所述任 意一个修改后的数据单元的单元编号与数据单 元的大小的乘积; 确定所述任 意一个修改后的数据单元的地址为所述乘积与 所述任意一个修改后的数据单 元所属页面的起始位置的地址的和值。

结合第四方面, 或第四方面的第一或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述存储器包括: 相变存储器 PCM或者可变电阻式存储 器 ReRAM或者磁性随机存储器 MRAM。

第五方面, 提供一种数据传输装置, 所述装置位于存储系统中, 所述存 储系统包括所述装置和存储设备, 所述装置包括处理器和緩存, 其中, 所述 緩存中存储有至少一个页面, 每个页面包括多个数据单元, 所述数据单元的 大小为 N个字节, N为大于或等于 1的正整数, 所述存储设备所支持的最小 寻址单元为一个字节, 当所述装置运行时, 所述处理器执行如下方法:

接收数据修改指令, 所述数据修改指令包括地址信息和数据信息; 根据所述数据信息, 对所述地址信息所指向的所述緩存中存储的页 面的 至少一个数据单元进行修改;

生成数据写入请求, 其中, 所述数据写入请求包括修改后的每个数据单 元和所述修改后的每个数据单元的地址标识信 息; 所述地址标识信息用于所 述存储设备确定修改后的每个数据单元的地址 ; 将所述数据写入请求发送给所述存储设备, 使得所述存储设备根据修改 后的每个数据单元的地址, 将所述修改后的每个数据单元写入所述存储设 备 的存储器中。

结合第五方面, 在第一种可能的实现方式中, 所述处理器执行的所述方 法还包括: 为修改后的每个数据单元设置标记; 所述处理器执行的所述方法 中, 所述生成数据写入请求, 包括: 根据所述标记, 生成所述数据写入请求。

结合第五方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述处理器执行的所述方法中, 所述为修改后的每个数据单元设置标记, 包 括: 将修改后的每个数据单元对应的脏位进行置位 ;

所述根据所述标记, 生成所述数据写入请求, 包括: 根据经过置位的脏 位, 确定所述修改后的每个数据单元和所述修改后 的每个数据单元的地址标 识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起 始位置的地址和修改后的每个数据单元所属页 面的脏位。

结合第五方面的第一种可能的实现方式, 在第三种可能的实现方式中, 所述处理器执行的所述方法中, 所述为修改后的每个数据单元设置标记, 包 括: 记录修改后的每个数据单元的单元编号, 其中, 不同的数据单元具有不 同的单元编号;

所述根据所述标记, 生成所述数据写入请求, 包括: 根据记录的单元编 号, 确定所述修改后的每个数据单元和所述修改后 的每个数据单元的地址标 识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起 始位置的地址和所述修改后的每个数据单元的 单元编号。

第六方面, 提供一种数据传输装置, 所述装置位于存储系统中, 所述存 储系统包括主机和所述装置, 所述主机包括緩存, 所述装置包括处理器和存 储器, 所述存储器所支持的最小寻址单元为一个字节 , 当所述装置运行时, 所述处理器执行如下方法:

接收所述主机发送的数据写入请求, 所述数据写入请求是所述主机对所 述緩存中的页面的至少一个数据单元进行修改 后生成的, 并且, 所述数据写 入请求包括修改后的每个数据单元和所述修改 后的每个数据单元的地址标识 信息,其中,所述页面包括多个数据单元,所 述数据单元的大小为 N个字节,

N为大于或等于 1的正整数;

根据所述地址标识信息, 确定修改后的每个数据单元的地址;

根据所述确定的修改后的每个数据单元的地址 , 将所述修改后的每个数 据单元写入所述存储设备中的存储器中。

结合第六方面, 在第一种可能的实现方式中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和修改后的每个数据单元所 属页面的脏位;

所述处理器执行的所述方法中, 所述根据所述地址标识信息, 确定修改 后的每个数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元所对应的脏位的顺序号与数据单 元大小的乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

结合第六方面, 在第二种可能的实现方式中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和修改后的每个数据单元的 单元编号;

所述处理器执行的所述方法中, 所述根据所述地址标识信息, 确定修改 后的每个数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元的单元编号与数据单元的大小的 乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

结合第六方面, 或第六方面的第一或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述存储器包括: 相变存储器 PCM或者可变电阻式存储 器 ReRAM或者磁性随机存储器 MRAM。 附图说明

图 1为本发明实施例的应用场景示意图;

图 2为本发明实施例一提供的数据传输方法流程 ;

图 3 为本发明实施例中釆用脏位标识法标记修改后 的每个数据单元的示 意图;

图 4 为主机向存储设备发送的修改后的每个数据单 元以及基于脏位的地 址标识信息的示意图;

图 5 为主机向存储设备发送的修改后的数据单元以 及基于单元编号的地 址标识信息的示意图;

图 6为将整页面( Whole Page )和子页面( Sub Page )混合传输的示意图; 图 7为本发明实施例二提供的数据传输方法流程 ;

图 8为本发明实施例三提供的数据传输方法流程 ;

图 9为本发明实施例四提供的数据传输装置结构 意图;

图 10为本发明实施例五提供的数据传输装置结构 意图;

图 11为本发明实施例六提供的数据传输装置结构 意图;

图 12为本发明实施例七提供的数据传输装置结构 意图。 具体实施方式

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

如图 1 所示, 为本发明实施例的应用场景示意图, 本发明实施例应用于 存储系统中, 存储系统包括主机 1和存储设备 2 , 其中, 主机 1 中包括緩存 10 , 存储设备 2 包括存储器 20 , 存储器 20 为下一代非易失固态存储 ( Non- Violate Memory, NVM )介质,比 口 目变存 4诸器( Phase Change Memory, PCM ), 可变电阻式存储器(Resistive Random Access Memory, ReRAM )、 磁 性随机存储器(Magnetic Random Access Memory, MRAM )等, 这些类型的 存储器所支持的最小寻址单元为一个字节; 本发明实施例中, 主机 1 读取存 储设备 2中的页面 (page )后, 将读取的页面写入緩存 10 , 在接收到数据修 改指令后, 对写入緩存 10中的页面的数据单元进行修改; 其中, 每个緩存 10 中的页面包括多个数据单元; 这里, 主机 1 将緩存中的每个页面按照设定粒 度划分为多个部分, 每个部分称为一个数据单元。 所述数据单元的大小为 N 个字节, N为大于或等于 1的正整数。 主机 1修改数据后, 生成数据写入请 求, 该数据写入请求包括修改后的每个数据单元以 及修改后的每个数据单元 的地址标识信息, 主机 1将生成的数据写入请求发送给存储设备 2 ,存储设备 2根据地址标识信息, 确定修改后的每个数据单元的地址, 根据确定的地址, 将修改后的每个数据单元写入存储器 20中。 本发明实施例中, 主机 1在向存 储设备 2发送修改后的数据时, 只将修改后的数据所属的数据单元发送给存 储设备 2, 而无需将整个页面发送给存储设备 2, 从而减少了很多不必要的数 据传输, 极大地提高了数据传输效率。

下面结合说明书附图, 对本发明实施例作进一步详细描述;

如图 2所示, 为本发明实施例一提供的数据传输方法流程图 , 包括: S201 : 主机接收数据修改指令, 所述数据修改指令包括地址信息和数据 信息;

在该步骤之前, 主机在接收到用户触发的数据读取指令后, 向存储设备 发送数据读取请求, 该数据读取请求中包括主机需要读取的页面的 地址信息, 该地址信息可以是页面的逻辑地址、 虚拟地址或物理地址等, 存储设备接收 主机发送的数据读取请求, 并将该数据读取请求中的地址信息所指向的页 面 发送给主机; 主机在接收到存储设备发送的页面后, 将接收的页面写入緩存 中。

步骤 S201中,主机读取上述页面后,若接收到用户 发的数据修改指令, 则确定所述数据修改指令中的地址信息和数据 信息。 其中, 所述数据信息包 括修改后的数据; 所述地址信息用于指示修改的数据所处的页面 内的位置, 具体可以包括页内偏移量。 比如, 所述数据修改指令指示在读取的上述页面 中页内偏移量为 111000100000的位置处添加所述数据信息中包含的 修改后的 数据。

S202: 所述主机根据所述数据信息, 对所述地址信息所指向的所述緩存 中存储的页面的至少一个数据单元进行修改;

在该步骤中, 主机将緩存中的每个页面按照设定粒度划分为 多个部分, 每个部分称为一个数据单元, 设定粒度的大小也即每个数据单元的大小, 在 具体实施中, 可以根据实际需要设置数据单元的大小, 比如, 可以将每个页 面按照最后一级高速緩存行(Last Level Cache Line )粒度进行划分, 这样, 每个数据单元的大小为 Last Level Cache Line粒度的大小, 为几十个字节。

在上述步骤中, 主机在接收到用户触发的数据修改指令后, 根据该数据 修改指令中的地址信息, 确定需要修改的数据所属的数据单元, 并根据数据 修改指令中的数据信息, 对确定的数据单元中的数据进行修改。 比如, 将读 取的大小为 4KB的页面划分为五个数据单元, 每个数据单元对应的逻辑地址 范 围依次为 : 000000000000-1100110011 , 1100110011-11001100110 , 11001100110-100110011001 , 100110011001-110011001100 ,

110011001100-111111111111 ; 若所述数据修改指令指示在读取的页面中页内 偏移量为 111000100000 的位置处添加所述数据信息中包含的修改后的 数据, 则 根据 页 内 偏移量 111000100000 ( 属 于上述逻辑地址 范 围 110011001100-111111111111 ), 确定需要修改的数据单元为该页面的最后一个 数据单元。

S203 : 所述主机生成数据写入请求; 其中, 所述数据写入请求包括修改 后的每个数据单元和所述修改后的每个数据单 元的地址标识信息; 所述地址 标识信息用于所述存储设备确定修改后的每个 数据单元的地址。

在具体实施过程中, 在对数据单元进行修改时, 可以为修改后的每个数 据单元设置标记; 根据设置的标记, 确定修改后的每个数据单元以及修改后 的每个数据单元的地址标识信息。 设置标记的方式有多种, 比如, 可以釆用 脏位标识法或数据单元编号标识法。 若釆用脏位标识法, 则上述地址标识信 息主要包括修改后的每个数据单元所属页面的 起始位置的地址和修改后的每 个数据单元所属页面的脏位。 若釆用数据单元编号标识法, 则上述地址标识 信息主要包括修改后的每个数据单元所属页面 的起始位置的地址和修改后的 每个数据单元的单元编号。

S204: 所述主机将所述数据写入请求发送给所述存储 设备, 使得所述存 储设备根据修改后的每个数据单元的地址, 将所述修改后的每个数据单元写 入所述存储设备的存储器中。

在上述步骤 S203和步骤 S204中, 主机根据修改后的每个数据单元以及 用于标识修改后的每个数据单元的地址标识信 息, 生成数据写入请求, 并发 送给存储设备, 存储设备根据该数据写入请求中的地址标识信 息, 确定修改 后的每个数据单元的地址, 如虚拟地址、 逻辑地址、 物理地址等, 根据确定 的地址, 将修改后的每个数据单元写入存储器中的对应 位置处。

在上述步骤 S202中, 主机在对任意一个数据单元进行修改后, 为该数据 单元设置标记, 以标识该数据单元已被修改, 最后, 主机根据设置的一个或 多个标记, 确定这些标记所分别标识的修改后的数据单元 以及修改后的数据 单元的地址标识信息。 具体地, 设置标记可以有以下两种方式:

第一种: 脏位(dirty bit )标识法; 这里, 脏位是数据单元修改标志位, 用于表示对应的数据单元是否被修改过;

具体地, 所述主机为修改后的每个数据单元设置标记, 包括: 所述主机 将修改后的每个数据单元对应的脏位进行置位 ; 所述主机根据所述标记, 生 成所述数据写入请求, 包括: 所述主机根据每个置位的脏位, 确定修改后的 每个数据单元和修改后的每个数据单元的地址 标识信息, 其中, 所述地址标 识信息包括修改后的每个数据单元所属页面的 起始位置的地址和修改后的每 个数据单元所属页面的脏位。 上述方式中, 若页面中的某个数据单元已被修改, 则将该数据单元对应 的脏位进行置位, 例如, 将该脏位置为 1 , 该页面中没有置位的脏位则表示该 脏位对应的数据单元没有被修改; 这里, 若整个页面的大小为 4KB, 每个数 据单元为 64比特( byte ) , 则需要 8byte (即 64bit )来标识该页面内所有数据 单元的脏位; 如图 3 所示, 为本发明实施例中釆用脏位标识法标记修改后 的 每个数据单元的示意图。

在具体实施过程中, 可以在确定完成对整个页面的修改后, 根据经过置 位的脏位, 确定该页面中所有修改后的数据单元, 并将该页面的起始位置的 地址、 该页面的脏位(包括置位的脏位和没有置位的 脏位), 以及每个置位的 脏位对应的数据单元生成一个数据包后发送给 存储设备, 如图 4 所示, 为主 机向存储设备发送的修改后的每个数据单元以 及基于脏位的地址标识信息的 示意图。

存储设备在接收到上述修改后的数据单元和基 于脏位的地址标识信息后, 根据该地址标识信息, 确定每个修改后的数据单元的地址, 将每个修改后的 数据单元写入对应的地址中; 在具体实施中, 针对任意一个修改后的数据单 元, 存储设备确定所述任意一个修改后的数据单元 所对应的脏位的顺序号与 数据单元大小的乘积; 确定所述任意一个修改后的数据单元的地址为 所述乘 积与所述任意一个修改后的数据单元所属页面 的起始位置的地址的和值。 具 体地, 针对任意一个修改后的数据单元, 存储设备可以根据以下公式确定所 述任意一个修改后的数据单元的地址 A:

A = B + n X k

其中, B为所述任意一个修改后的数据单元所属页面 起始位置的地址, n表示所述任意一个修改后的数据单元所对应 脏位是所述任意一个修改后 的数据单元所属页面的第 n个脏位, k为数据单元的大小。

上述公式中, 第 n个脏位是指将整个页面按照数据的逻辑顺序 次划分 为多个数据单元后, 对应第 n个数据单元的脏位。

第二种: 单元编号标识法; 在该方式下, 不同的数据单元具有不同的单 元编号;

具体地, 所述主机为修改后的数据单元设置标记, 包括: 所述主机记录 修改后的数据单元的单元编号;

所述主机根据所述标记, 生成所述数据写入请求, 包括: 所述主机根据 记录的单元编号, 确定修改后的数据单元和修改后的数据单元的 地址标识信 息, 其中, 所述地址标识信息包括修改后的数据单元所属 页面的起始位置的 地址和修改后的数据单元的单元编号。

在具体实施过程中, 可以在确定完成对整个页面的修改后, 根据记录的 单元编号,确定该页面中修改后的数据单元, 并将该页面的起始位置的地址、 该页面中所有修改后的数据单元的数目、 该页面中所有修改后的数据单元的 单元编号以及每个修改后的数据单元生成一个 数据包后发送给存储设备, 这 里, 修改后的数据单元的数目用于存储设备确定接 收的数据包的长度, 可以 用 1个 byte来标识; 如图 5所示, 为主机向存储设备发送的修改后的数据单 元以及基于单元编号的地址标识信息的示意图 。

存储设备在接收到上述修改后的数据单元和基 于单元编号的地址标识信 息后, 根据该地址标识信息, 确定每个修改后的数据单元的地址, 将每个修 改后的数据单元写入对应的地址中; 在具体实施中, 针对任意一个修改后的 数据单元, 存储设备确定所述任意一个修改后的数据单元 的单元编号与数据 单元的大小的乘积; 存储设备确定所述任意一个修改后的数据单元 的地址为 所述乘积与所述任意一个修改后的数据单元所 属页面的起始位置的地址的和 值。 具体地, 针对任意一个修改后的数据单元, 存储设备可以根据以下公式 确定所述任意一个修改后的数据单元的地址 A:

A = B + L X k

其中, B为所述任意一个修改后的数据单元所属页面 起始位置的地址, L为所述任意一个修改后的数据单元的单元编 , k为数据单元的大小。

在具体实施过程中, 若主机读取了多个页面, 并对其中的每个页面都进 行了修改, 除上述信息外, 还可以在发送给存储设备的数据包中再添加一 条 页面个数信息; 若读取的多个页面中有部分页面所有的数据单 元都被修改过, 另外一部分页面只有部分数据单元被修改过, 则可以釆用不同的传输标志来 区分所有数据单元都被修改过的页面和只有部 分数据单元被修改过的页面, 下面分别釆用整页面(Whole Page )和子页面( Sub Page )来表示所有数据单 元都被修改过的页面和只有部分数据单元被修 改过的页面; 如图 6所示, 为 将整页面 (Whole Page )和子页面 ( Sub Page )混合传输的示意图, 釆用第一 传输标志(如 0x00 )来标志整页面, 釆用第二传输标志(如 OxFF )来标志子 页面, 第一传输标志之后依次为整页面的个数、 每个整页面的起始位置的地 址及修改后的页面, 第二传输标志之后依次为子页面的个数、 每个子页面的 地址标识信息以及修改后的数据单元。

与上述实施例相对应, 本发明实施例还提供了以下基于存储设备侧的 数 据传输方法, 具体实施与上述实施例相似, 重复之处, 不再赘述;

如图 7 所示, 为本发明实施例二提供的数据传输方法流程图 , 所述方法 应用于存储系统中,所述存储系统包括主机和 存储设备,所述主机包括緩存, 所述存储设备包括存储器, 所述存储器所支持的最小寻址单元为一个字节 , 包括:

S701 : 存储设备接收主机发送的数据写入请求, 所述数据写入请求是所 述主机对所述緩存中的页面的至少一个数据单 元进行修改后生成的, 并且, 所述数据写入请求包括修改后的每个数据单元 和所述修改后的每个数据单元 的地址标识信息, 其中, 所述页面包括多个数据单元, 所述数据单元的大小 为 N个字节, N为大于或等于 1的正整数;

S702: 所述存储设备根据所述地址标识信息, 确定修改后的每个数据单 元的地址;

S703: 所述存储设备根据所述确定的修改后的每个数 据单元的地址, 将 所述修改后的每个数据单元写入所述存储设备 中的存储器中。

可选地, 步骤 S701中, 所述地址标识信息包括修改后的每个数据单元 所 属页面的起始位置的地址和修改后的每个数据 单元所属页面的脏位; 步骤 S702中, 所述存储设备根据所述地址标识信息, 确定修改后的每个 数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元所对应的脏位的顺序号与数据单 元大小的乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

可选地, 步骤 S701中, 所述地址标识信息包括修改后的每个数据单元 所 属页面的起始位置的地址和修改后的每个数据 单元的单元编号;

步骤 S702中, 所述存储设备根据所述地址标识信息, 确定修改后的每个 数据单元的地址, 包括: 针对任意一个修改后的数据单元, 所述存储设备确 定所述任意一个修改后的数据单元的单元编号 与数据单元的大小的乘积; 所 述存储设备确定所述任意一个修改后的数据单 元的地址为所述乘积与所述任 意一个修改后的数据单元所属页面的起始位置 的地址的和值。

下面通过一个具体的实施例进一步说明本发明 实施例进行数据传输的方 法;

如图 8所示, 为本发明实施例三提供的数据传输方法流程图 , 包括: S801 : 主机在接收到用户触发的数据读取指令后, 向存储设备发送数据 读取请求, 该数据读取请求中包括主机需要读取的页面的 地址信息。

S802: 存储设备接收主机发送的数据读取请求, 并将该数据读取请求中 的地址信息所指向的页面发送给主机。

S803 : 主机在接收到包括地址信息和数据信息的数据 修改指令后, 根据 所述数据信息, 对所述地址信息所指向的所述緩存中存储的页 面的至少一个 数据单元进行修改, 并生成数据写入请求; 其中, 所述数据写入请求包括修 改后的每个数据单元和所述修改后的每个数据 单元的地址标识信息。

S804: 所述主机将所述数据写入请求发送给所述存储 设备。

S805 : 存储设备在接收到主机发送的数据写入请求后 , 根据所述数据写 入请求中的地址标识信息, 确定修改后的每个数据单元的地址; S806: 所述存储设备根据确定的修改后的每个数据单 元的地址, 将所述 修改后的每个数据单元写入所述存储设备中的 存储器中。

基于同一发明构思, 本发明实施例中还提供了一种与数据传输方法 对应 的数据传输装置, 由于该装置解决问题的原理与本发明实施例数 据传输方法 相似, 因此该装置的实施可以参见方法的实施, 重复之处不再赘述。

如图 9所示, 为本发明实施例四提供的数据传输装置结构示 意图, 所述 装置位于存储系统的主机中, 所述存储系统包括所述主机和存储设备, 所述 主机包括緩存, 其中, 所述緩存中存储有至少一个页面, 每个页面包括多个 数据单元, 所述数据单元的大小为 N个字节, N为大于或等于 1的正整数, 所述存储设备所支持的最小寻址单元为一个字 节, 所述装置包括:

接收模块 91 , 用于接收数据修改指令, 并将接收的数据修改指令传输至 处理模块 92 , 所述数据修改指令包括地址信息和数据信息;

处理模块 92 , 用于根据所述数据信息, 对所述地址信息所指向的所述緩 存中存储的页面的至少一个数据单元进行修改 , 并生成数据写入请求, 将生 成的所述数据写入请求传输至发送模块 93; 其中, 所述数据写入请求包括修 改后的每个数据单元和所述修改后的每个数据 单元的地址标识信息; 所述地 址标识信息用于所述存储设备确定修改后的每 个数据单元的地址;

发送模块 93 ,用于将所述处理模块 92生成的所述数据写入请求发送给所 述存储设备, 使得所述存储设备根据修改后的每个数据单元 的地址, 将所述 修改后的每个数据单元写入所述存储设备的存 储器中。

可选地, 所述处理模块 92具体用于:

为修改后的每个数据单元设置标记, 根据所述标记, 生成所述数据写入 请求。

可选地, 所述处理模块 92具体用于:

将修改后的每个数据单元对应的脏位进行置位 ; 根据经过置位的脏位, 确定所述修改后的每个数据单元和所述修改后 的每个数据单元的地址标识信 息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始位 置的地址和修改后的每个数据单元所属页面的 脏位。

可选地, 所述处理模块 92具体用于:

记录修改后的每个数据单元的单元编号, 其中, 不同的数据单元具有不 同的单元编号; 根据记录的单元编号, 确定所述修改后的每个数据单元和所 述修改后的每个数据单元的地址标识信息, 其中, 所述地址标识信息包括修 改后的每个数据单元所属页面的起始位置的地 址和所述修改后的每个数据单 元的单元编号。

如图 10所示, 为本发明实施例五提供的数据传输装置结构示 意图, 所述 装置位于存储系统的存储设备中, 所述存储系统包括主机和所述存储设备, 所述主机包括緩存, 所述存储设备包括存储器, 所述存储器所支持的最小寻 址单元为一个字节, 所述装置包括:

接收模块 101 , 用于接收所述主机发送的数据写入请求, 将所述数据写入 请求传输至确定模块 102;所述数据写入请求是所述主机对所述緩存 的页面 的至少一个数据单元进行修改后生成的, 并且, 所述数据写入请求包括修改 后的每个数据单元和所述修改后的每个数据单 元的地址标识信息, 其中, 所 述页面包括多个数据单元, 所述数据单元的大小为 N个字节, N为大于或等 于 1的正整数;

确定模块 102, 用于根据所述地址标识信息, 确定修改后的每个数据单元 的地址, 并将所述修改后的每个数据单元的地址传输至 写入模块 103;

写入模块 103 ,用于根据所述确定模块 102确定的修改后的每个数据单元 的地址, 将所述修改后的每个数据单元写入所述存储设 备中的存储器中。

可选地, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始 位置的地址和修改后的每个数据单元所属页面 的脏位;

所述确定模块 102具体用于: 针对任意一个修改后的数据单元, 确定所 述任意一个修改后的数据单元所对应的脏位的 顺序号与数据单元大小的乘积; 确定所述任意一个修改后的数据单元的地址为 所述乘积与所述任意一个修改 后的数据单元所属页面的起始位置的地址的和 值。 可选地, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始 位置的地址和修改后的每个数据单元的单元编 号;

所述确定模块 102具体用于: 针对任意一个修改后的数据单元, 确定所 述任意一个修改后的数据单元的单元编号与数 据单元的大小的乘积; 确定所 述任意一个修改后的数据单元的地址为所述乘 积与所述任意一个修改后的数 据单元所属页面的起始位置的地址的和值。

可选地, 所述存储器包括: 相变存储器 PCM 或者可变电阻式存储器 ReRAM或者磁性随机存储器 MRAM。

如图 11所示, 为本发明实施例六提供的数据传输装置结构示 意图, 所述 装置位于存储系统中, 所述存储系统包括所述装置和存储设备, 所述装置包 括处理器 111和緩存 112, 其中, 所述緩存 112中存储有至少一个页面, 每个 页面包括多个数据单元, 所述数据单元的大小为 N个字节, N为大于或等于 1的正整数, 所述存储设备所支持的最小寻址单元为一个字 节, 当所述装置运 行时, 所述处理器 111执行如下方法:

接收数据修改指令, 所述数据修改指令包括地址信息和数据信息; 根据所述数据信息, 对所述地址信息所指向的所述緩存中存储的页 面的 至少一个数据单元进行修改;

生成数据写入请求, 其中, 所述数据写入请求包括修改后的每个数据单 元和所述修改后的每个数据单元的地址标识信 息; 所述地址标识信息用于所 述存储设备确定修改后的每个数据单元的地址 ;

将所述数据写入请求发送给所述存储设备, 使得所述存储设备根据修改 后的每个数据单元的地址, 将所述修改后的每个数据单元写入所述存储设 备 的存储器中。

可选地, 所述处理器 111 执行的所述方法还包括: 为修改后的每个数据 单元设置标记; 所述处理器 111执行的所述方法中,所述生成数据写入请求 , 包括: 根据所述标记, 生成所述数据写入请求。

可选地, 所述处理器 111 执行的所述方法中, 所述为修改后的每个数据 单元设置标记, 包括: 将修改后的每个数据单元对应的脏位进行置位 ; 所述根据所述标记, 生成所述数据写入请求, 包括: 根据经过置位的脏 位, 确定所述修改后的每个数据单元和所述修改后 的每个数据单元的地址标 识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起 始位置的地址和修改后的每个数据单元所属页 面的脏位。

可选地, 所述处理器 111 执行的所述方法中, 所述为修改后的每个数据 单元设置标记, 包括: 记录修改后的每个数据单元的单元编号, 其中, 不同 的数据单元具有不同的单元编号;

所述根据所述标记, 生成所述数据写入请求, 包括: 根据记录的单元编 号, 确定所述修改后的每个数据单元和所述修改后 的每个数据单元的地址标 识信息, 其中, 所述地址标识信息包括修改后的每个数据单元 所属页面的起 始位置的地址和所述修改后的每个数据单元的 单元编号。

如图 12所示, 为本发明实施例七提供的数据传输装置结构示 意图, 所述 装置位于存储系统中, 所述存储系统包括主机和所述装置, 所述主机包括緩 存, 所述装置包括处理器 121和存储器 122, 所述存储器 122所支持的最小寻 址单元为一个字节, 当所述装置运行时, 所述处理器 121执行如下方法: 接收所述主机发送的数据写入请求, 所述数据写入请求是所述主机对所 述緩存中的页面的至少一个数据单元进行修改 后生成的, 并且, 所述数据写 入请求包括修改后的每个数据单元和所述修改 后的每个数据单元的地址标识 信息,其中,所述页面包括多个数据单元,所 述数据单元的大小为 N个字节, N为大于或等于 1的正整数;

根据所述地址标识信息, 确定修改后的每个数据单元的地址;

根据所述确定的修改后的每个数据单元的地址 , 将所述修改后的每个数 据单元写入所述存储设备中的存储器中。

可选地, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始 位置的地址和修改后的每个数据单元所属页面 的脏位;

所述处理器 121 执行的所述方法中, 所述根据所述地址标识信息, 确定 修改后的每个数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元所对应的脏位的顺序号与数据单 元大小的乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

可选地, 所述地址标识信息包括修改后的每个数据单元 所属页面的起始 位置的地址和修改后的每个数据单元的单元编 号;

所述处理器 121 执行的所述方法中, 所述根据所述地址标识信息, 确定 修改后的每个数据单元的地址, 包括:

针对任意一个修改后的数据单元, 所述存储设备确定所述任意一个修改 后的数据单元的单元编号与数据单元的大小的 乘积;

所述存储设备确定所述任意一个修改后的数据 单元的地址为所述乘积与 所述任意一个修改后的数据单元所属页面的起 始位置的地址的和值。

可选地, 所述存储器包括: 相变存储器 PCM 或者可变电阻式存储器 ReRAM或者磁性随机存储器 MRAM。

本领域内的技术人员应明白, 本发明的实施例可提供为方法、 系统、 或 计算机程序产品。 因此, 本发明可釆用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实施例的形式。 而且, 本发明可釆用在一个或多个 其中包含有计算机可用程序代码的计算机可用 存储介质 (包括但不限于磁盘 存储器、 CD-ROM、 光学存储器等)上实施的计算机程序产品的形 式。

本发明是参照根据本发明实施例的方法、 装置(系统)、 和计算机程序产 品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程图 和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流程 和 /或方框的结合。可提供这些计算机程序指令 通用计算机、专用计算机、 嵌入式处理机或其他可编程数据处理设备的处 理器以产生一个机器, 使得通 过计算机或其他可编程数据处理设备的处理器 执行的指令产生用于实现在流 程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能 装置。

这些计算机程序指令也可存储在能引导计算机 或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器 中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程或 多个流程和 /或方框图一个方框或多个方框中指定的功能

这些计算机程序指令也可装载到计算机或其他 可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列 操作步骤以产生计算机实现的 处理, 从而在计算机或其他可编程设备上执行的指令 提供用于实现在流程图 一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能 步骤。

尽管已描述了本发明的优选实施例, 但本领域内的技术人员一旦得知了 基本创造性概念, 则可对这些实施例作出另外的变更和修改。 所以, 所附权 利要求意欲解释为包括优选实施例以及落入本 发明范围的所有变更和修改。 发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权利 要 求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。