CN105264500B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN105264500B CN105264500B CN201480000735.2A CN201480000735A CN105264500B CN 105264500 B CN105264500 B CN 105264500B CN 201480000735 A CN201480000735 A CN 201480000735A CN 105264500 B CN105264500 B CN 105264500B
- Authority
- CN
- China
- Prior art keywords
- amended
- data
- data cell
- address
- storage device
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及计算机技术领域,尤其涉及一种数据传输方法及装置;用以解决由于在发送修改后的数据时的数据传输粒度较大,有可能会传输很多不需要的数据,导致数据传输效率较低,浪费能耗的问题。本发明方法包括:主机接收数据修改指令,所述数据修改指令包括地址信息和数据信息;所述主机根据所述数据信息,对所述地址信息所指向的所述缓存中存储的页面的至少一个数据单元进行修改,并生成数据写入请求,其中,数据写入请求包括修改后的每个数据单元和修改后的每个数据单元的地址标识信息;所述主机将所述数据写入请求发送给所述存储设备,使得所述存储设备根据修改后的每个数据单元的地址,将所述修改后的每个数据单元写入所述存储设备的存储器中。
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)介质,比如相变存储器(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 LevelCache 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×k
其中,B为所述任意一个修改后的数据单元所属页面的起始位置的地址,n表示所述任意一个修改后的数据单元所对应的脏位是所述任意一个修改后的数据单元所属页面的第n个脏位,k为数据单元的大小。
上述公式中,第n个脏位是指将整个页面按照数据的逻辑顺序依次划分为多个数据单元后,对应第n个数据单元的脏位。
第二种:单元编号标识法;在该方式下,不同的数据单元具有不同的单元编号;
具体地,所述主机为修改后的数据单元设置标记,包括:所述主机记录修改后的数据单元的单元编号;
所述主机根据所述标记,生成所述数据写入请求,包括:所述主机根据记录的单元编号,确定修改后的数据单元和修改后的数据单元的地址标识信息,其中,所述地址标识信息包括修改后的数据单元所属页面的起始位置的地址和修改后的数据单元的单元编号。
在具体实施过程中,可以在确定完成对整个页面的修改后,根据记录的单元编号,确定该页面中修改后的数据单元,并将该页面的起始位置的地址、该页面中所有修改后的数据单元的数目、该页面中所有修改后的数据单元的单元编号以及每个修改后的数据单元生成一个数据包后发送给存储设备,这里,修改后的数据单元的数目用于存储设备确定接收的数据包的长度,可以用1个byte来标识;如图5所示,为主机向存储设备发送的修改后的数据单元以及基于单元编号的地址标识信息的示意图。
存储设备在接收到上述修改后的数据单元和基于单元编号的地址标识信息后,根据该地址标识信息,确定每个修改后的数据单元的地址,将每个修改后的数据单元写入对应的地址中;在具体实施中,针对任意一个修改后的数据单元,存储设备确定所述任意一个修改后的数据单元的单元编号与数据单元的大小的乘积;存储设备确定所述任意一个修改后的数据单元的地址为所述乘积与所述任意一个修改后的数据单元所属页面的起始位置的地址的和值。具体地,针对任意一个修改后的数据单元,存储设备可以根据以下公式确定所述任意一个修改后的数据单元的地址A:
A=B+L×k
其中,B为所述任意一个修改后的数据单元所属页面的起始位置的地址,L为所述任意一个修改后的数据单元的单元编号,k为数据单元的大小。
在具体实施过程中,若主机读取了多个页面,并对其中的每个页面都进行了修改,除上述信息外,还可以在发送给存储设备的数据包中再添加一条页面个数信息;若读取的多个页面中有部分页面所有的数据单元都被修改过,另外一部分页面只有部分数据单元被修改过,则可以采用不同的传输标志来区分所有数据单元都被修改过的页面和只有部分数据单元被修改过的页面,下面分别采用整页面(Whole Page)和子页面(Sub Page)来表示所有数据单元都被修改过的页面和只有部分数据单元被修改过的页面;如图6所示,为将整页面(Whole Page)和子页面(Sub Page)混合传输的示意图,采用第一传输标志(如0x00)来标志整页面,采用第二传输标志(如0xFF)来标志子页面,第一传输标志之后依次为整页面的个数、每个整页面的起始位置的地址及修改后的页面,第二传输标志之后依次为子页面的个数、每个子页面的地址标识信息以及修改后的数据单元。
与上述实施例相对应,本发明实施例还提供了以下基于存储设备侧的数据传输方法,具体实施与上述实施例相似,重复之处,不再赘述;
如图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、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (24)
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。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/075241 WO2015157885A1 (zh) | 2014-04-14 | 2014-04-14 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105264500A CN105264500A (zh) | 2016-01-20 |
CN105264500B true CN105264500B (zh) | 2018-03-06 |
Family
ID=54323329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480000735.2A Active CN105264500B (zh) | 2014-04-14 | 2014-04-14 | 一种数据传输方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105264500B (zh) |
WO (1) | WO2015157885A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107277179A (zh) * | 2017-08-10 | 2017-10-20 | 安徽声讯信息技术有限公司 | 一种基于数据包分享的大文件传输*** |
CN109871001B (zh) * | 2019-03-06 | 2023-04-18 | 普华基础软件股份有限公司 | 一种对发动机大数据量标定的方法 |
CN111093227B (zh) * | 2019-12-30 | 2022-09-13 | 武汉阿迪克电子股份有限公司 | 一种基于LoRaWAN的无线传输数据采集方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6720969B2 (en) * | 2001-05-18 | 2004-04-13 | Sun Microsystems, Inc. | Dirty tag bits for 3D-RAM SRAM |
CN102609361A (zh) * | 2012-01-16 | 2012-07-25 | 北京邮电大学 | 虚拟机存储数据迁移方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182563B1 (en) * | 2000-08-21 | 2009-09-02 | Texas Instruments France | Cache with DMA and dirty bits |
-
2014
- 2014-04-14 WO PCT/CN2014/075241 patent/WO2015157885A1/zh active Application Filing
- 2014-04-14 CN CN201480000735.2A patent/CN105264500B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6720969B2 (en) * | 2001-05-18 | 2004-04-13 | Sun Microsystems, Inc. | Dirty tag bits for 3D-RAM SRAM |
CN102609361A (zh) * | 2012-01-16 | 2012-07-25 | 北京邮电大学 | 虚拟机存储数据迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105264500A (zh) | 2016-01-20 |
WO2015157885A1 (zh) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10996883B2 (en) | Storage system including host device and storage device configured to perform selective purge operation | |
CN104461393B (zh) | 一种闪存存储器的混合映射方法 | |
CN106445843B (zh) | 使物理页面地址相关用于软判决解码 | |
CN106126447A (zh) | 控制存储装置的方法、存储器模块和存储*** | |
CN109800180A (zh) | 用于地址映射的方法和存储器*** | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN101533408A (zh) | 一种海量数据的处理方法及处理装置 | |
CN103914397B (zh) | 闪存存储设备及其管理方法 | |
CN105264500B (zh) | 一种数据传输方法及装置 | |
US11442634B2 (en) | Replay protected memory block command queue | |
CN113196245A (zh) | 主机常驻转换层有效性检查技术 | |
CN104598161B (zh) | 数据读取、写入方法和装置及数据存储结构 | |
KR20100069240A (ko) | 캐시 컨트롤을 위한 장치 및 방법 | |
US11385820B2 (en) | Command batching for a memory sub-system | |
CN109800178A (zh) | 垃圾收集方法以及用于混合地址映射的存储器*** | |
CN103902471B (zh) | 数据缓存处理方法和装置 | |
US9940034B2 (en) | Reducing read access latency by straddling pages across non-volatile memory channels | |
CN109840165A (zh) | 存储器***及其操作方法 | |
CN105335296B (zh) | 一种数据处理方法、装置及*** | |
US20200089610A1 (en) | Cache operations in a hybrid dual in-line memory module | |
US11698746B1 (en) | Journal scheme for a memory sub-system | |
CN104268005B (zh) | 虚拟机唤醒方法和装置 | |
US20220398029A1 (en) | Data Storage Device Having Predictive Analytics | |
WO2023149916A1 (en) | Memory device based accelerated deep-learning system | |
CN105359116A (zh) | 缓存器、共享缓存管理方法及控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210508 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |