CN105094691B - 一种数据操作的方法、设备和*** - Google Patents
一种数据操作的方法、设备和*** Download PDFInfo
- Publication number
- CN105094691B CN105094691B CN201410216351.6A CN201410216351A CN105094691B CN 105094691 B CN105094691 B CN 105094691B CN 201410216351 A CN201410216351 A CN 201410216351A CN 105094691 B CN105094691 B CN 105094691B
- Authority
- CN
- China
- Prior art keywords
- data
- written
- block
- control apparatus
- caching
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据操作的方法、设备和***,涉及计算机领域,以解决现有技术中CPU对块设备进行数据操作的效率低的问题。该方法包括:接收CPU发送的操作指令;当该操作指令为读指令时,读取该块设备中的第一数据块,并将该第一数据块中的待读取数据返回至CPU;当该操作指令为写指令时,将该写指令指示的待写入数据写入到缓存中,并将包括该待写入数据的第二数据块写入该块设备。该方法用于对块设备中的数据进行操作。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据操作的方法、设备和***。
背景技术
UAS(Unified Accessing Storage,一体化存储)***中包括多种不同特性的存储设备,如DRAM(Dynamic Random Access Memory,动态随机访问存储器)、NVM(Non-VolatileMemory,非易失性存储器)、Flash-based SSD(Flash-based Solid State Disk,基于Flash的固态硬盘)和HDD(Hard Disk,磁盘)。其中,DRAM和NVM为字符设备,此类设备支持按字节/字符来读写数据,一般用作内存;Flash-based SSD和HDD为块设备,此类设备的数据读写只能以块粒度进行,一般用作外存,块设备并不支持基于字节的寻址,通常一个块粒度为512B(Byte,字节)。
现有技术中,对于粒度较小的数据访问,如元数据访问和数据库访问,CPU(Central Processing Unit,中央处理器)不能通过load指令和store指令直接访问块设备中的数据,而需要先通过一系列的操作指令调用内核中的应用程序将块设备中的数据以块粒度读到DRAM内存中,CPU再通过load指令和store指令来访问DRAM内存中的该数据,例如,CPU需要向块设备写入非块粒度的8B的数据,则该CPU根据该待写入数据的目的地址确定该块设备中对应的数据,并通过一系列的操作指令调用内核中的应用程序将该数据以块粒度,如512B,读取到DRAM内存中,该CPU再通过store指令将该非块粒度的8B的数据与该DRAM内存中的该块粒度的512B的数据相合并,并最终将该合并后的数据以块粒度写回该块设备。
由上可知,该CPU在发送操作指令对块设备中的数据进行操作之前,需要通过一系列指令将该块设备中待操作的指令读取到内存中,操作过程复杂,降低了CPU对块设备进行数据操作的效率。
发明内容
本发明提供一种数据操作的方法、设备和***,以解决现有技术中CPU对块设备进行数据操作的效率低的问题。
为达到上述目的,本发明采用如下技术方案:
第一方面,提供一种数据操作的方法,所述方法包括:
存储控制设备接收中央处理器CPU发送的读指令;所述读指令用于对块设备进行数据读取操作;
将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中;
将所述第一数据块中的所述待读取数据返回至CPU。
在第一方面的第一种可能的实现方式中,所述将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中包括:
从所述读指令中获取所述待读取数据在所述块设备中的读取地址信息;
根据所述读取地址信息将所述块设备中对应所述读取地址的第一数据块读取到所述缓存中;
所述将所述第一数据块中的所述待读取数据返回至CPU包括:
在所述缓存的所述第一数据块中确定所述待读取数据,并将所述待读取数据返回至所述CPU。
第二方面,提供一种数据操作的方法,所述方法包括:
存储控制设备接收中央处理器CPU发送的写指令;所述写指令用于对块设备进行数据写入操作;
将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中;
生成包括所述待写入数据的第二数据块,并将所述第二数据块写入所述块设备。
在第二方面的第一种可能的实现方式中,所述写指令包括所述待写入数据的数据内容和所述待写入数据在块设备中的写入地址信息;
在所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中之前包括:
获取所述待写入数据的所述数据内容和所述写入地址信息;
所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中包括:
将所述待写入数据的所述数据内容以及所述写入地址信息存储到所述缓存中。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述生成包括所述待写入数据的第二数据块包括:
确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件;所述历史待写入数据为在向所述缓存写入所述待写入数据之前所述缓存存储的未写入所述块设备的待写入数据;
将所述历史待写入数据与所述待写入数据组成所述第二数据块。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件包括:
确定所述历史待写入数据的写入地址信息与所述待写入数据的写入地址信息连续,且所述历史待写入数据与所述待写入数据总的数据大小符合向所述块设备写入数据的块粒度。
结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述生成包括所述待写入数据的第二数据块包括:
根据所述待写入数据的写入地址信息,从所述块设备中读取对应所述写入地址的数据块,将所述数据块与所述待写入数据合并为所述第二数据块,所述数据块为所述块设备存储的将要写入所述待写入数据的数据块。
结合第二方面、第二方面的第一至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,在所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中之前,所述方法还包括:
在所述缓存中不存在空闲空间时,确定所述缓存中的待替换数据,并将所述待替换数据写入所述块设备,所述待替换数据为所述缓存中存储的历史待写入数据。
第三方面,提供一种存储控制设备,所述存储控制设备包括缓存,所述存储控制设备还包括:
接收单元,用于接收中央处理器CPU发送的读指令;所述读指令用于对块设备进行数据读取操作;
数据操作单元,用于将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中;
发送单元,用于将所述第一数据块中的所述待读取数据返回至CPU。
在第三方面的第一种可能的实现方式中,所述存储控制设备还包括获取单元,用于从所述读指令中获取所述待读取数据在所述块设备中的读取地址信息;
所述数据操作单元具体用于,根据所述读取地址信息将所述块设备中对应所述读取地址的第一数据块读取到所述缓存中;
所述发送单元具体用于,在所述缓存的所述第一数据块中确定所述待读取数据,并将所述待读取数据返回至所述CPU。
第四方面,提供一种存储控制设备,所述存储控制设备包括缓存,所述存储控制设备还包括:
接收单元,用于接收中央处理器CPU发送的写指令;所述写指令用于对块设备进行数据写入操作;
数据操作单元,用于将所述写指令指示的待写入数据写入到所述缓存中;
数据处理单元,用于生成包括所述待写入数据的第二数据块;
所述数据操作单元还用于,将所述第二数据块写入所述块设备。
在第四方面的第一种可能的实现方式中,所述写指令包括所述待写入数据的数据内容和所述待写入数据在块设备中的写入地址信息;
所述存储控制设备还包括获取单元,用于获取所述待写入数据的所述数据内容和所述写入地址信息;
所述数据操作单元具体用于,将所述待写入数据的所述数据内容以及所述写入地址信息存储到所述缓存中。
结合第四方面或者第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述存储控制设备还包括确定单元,用于确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件;所述历史待写入数据为在向所述缓存写入所述待写入数据之前所述缓存存储的未写入所述块设备的待写入数据;
所述数据处理单元具体用于,将所述历史待写入数据与所述待写入数据组成所述第二数据块。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述确定单元具体用于,确定所述历史待写入数据的写入地址信息与所述待写入数据的写入地址信息连续,且所述历史待写入数据与所述待写入数据总的数据大小符合向所述块设备写入数据的块粒度。
结合第四方面的第一种可能的实现方式,在第四种可能的实现方式中,所述数据操作单元具体用于:
根据所述待写入数据的写入地址信息,从所述块设备中读取对应所述写入地址信息的数据块;所述数据块为所述块设备存储的将要写入所述待写入数据的数据块;
所述数据处理单元具体用于,将所述数据块与所述待写入数据合并为所述第二数据块。
结合第四方面、第四方面的第一至第四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,所述存储控制设备包括确定单元,用于在所述缓存中不存在空闲空间时,确定所述缓存中的待替换数据;
所述数据操作单元还用于,将所述待替换数据写入所述块设备,所述待替换数据为所述缓存中存储的历史待写入数据。
第五方面,提供一种数据操作***,所述数据操作***包括:存储控制设备、中央处理器CPU、块设备,其中,所述CPU与所述存储控制设备相连,所述存储控制设备与所述块设备相连;
所述存储控制设备包括第三方面或第三方面的第一种可能的实现方式所述的存储控制设备,和/或,
所述存储控制设备包括第四方面至第四方面的五种可能的实现方式中的任一种可能的实现方式所述的存储控制设备;
所述CPU,用于向所述存储控制设备发送操作指令,以便所述存储控制设备根据所述操作指令对所述块设备进行数据操作;
所述块设备,用于存储数据。
采用上述方案,存储控制设备在接收到的CPU发送的指示操作块设备的操作指令时,对于读指令,该存储控制设备从块设备中读取包括待读取数据的第一数据块,并将该待读取数据返回至该CPU,对于写指令,该存储控制设备将待写入数据写入到该存储控制设备的缓存中,并生成包括该待写入数据的第二数据块写入到该块设备中,这样,该CPU能够直接发送指示操作块设备的操作指令对该块设备中的数据进行操作,简化了CPU对块设备进行数据操作的过程,提高了数据操作的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据操作的方法的流程示意图;
图2为本发明实施例提供的另一种数据操作的方法的流程示意图;
图3为本发明实施例提供的另一种数据操作的方法的流程示意图;
图4为本发明实施例提供的一种存储控制设备的结构示意图;
图5为本发明实施例提供的另一种存储控制设备的结构示意图;
图6为本发明实施例提供的另一种存储控制设备的结构示意图;
图7为本发明实施例提供的另一种存储控制设备的结构示意图;
图8为本发明实施例提供的一种数据操作***的结构示意图;
图9为本发明实施例提供的另一种数据操作***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本方案的所有实施例中,数据操作包括写数据操作和读数据操作,其中,读指令可以是load指令,写指令可以是store指令。
本发明实施例提供一种数据操作的方法,该的数据操作为数据读取操作,如图1所示,该方法包括:
S101、存储控制设备接收CPU发送的读指令。
其中,该读指令用于对块设备进行数据读取操作。
需要说明的是,操作指令包括操作码和操作数,操作码用于指示对该块设备进行数据读取操作还是数据写入操作,操作数包括源操作数和目的操作数,用于指示该操作指令的操作地址,也就是说,若该CPU也向该存储控制设备发送写指令,则该存储控制设备可根据接收到的操作指令的操作码确定该操作指令是否为读指令。
S102、该存储控制设备将该块设备中包括待读取数据的第一数据块读取到该存储控制设备的缓存中。
S103、该存储控制设备将该第一数据块中的该待读取数据返回至CPU。
具体地,该存储控制设备从该读指令中获取该待读取数据在该块设备中的读取地址信息,根据该读取地址信息将该块设备中对应该读取地址的第一数据块读取到该缓存中,则该存储控制设备在该缓存中确定该待读取数据,并将该待读取数据返回至该CPU。
需要说明的是,该存储控制设备的缓存支持按字节来读写数据;该待读取数据可以不满足与该块设备进行数据交互的块粒度条件,也就是说,若该块粒度条件为:与该块设备进行交互的数据的大小为512B的倍数,则该待读取数据可以为8B,该第一数据块的数据大小可以为512B或者512B的倍数。
示例地,该存储控制设备在接收到CPU发送的读指令后,获取该读指令指示读取的待读取数据在块设备中的读取地址信息,并根据该地址信息确定该块设备中存储包括该待读取数据的第一数据块的存储地址,则该存储控制设备根据该读指令生成块设备读指令,其中,该块设备读指令的源操作数为该第一数据块的存储地址,目的操作数为该缓存中的地址,通过该块设备读指令将该块设备中的该第一数据块读取到该存储控制设备的缓存中,并将该待读取数据返回至该CPU,完成该CPU在块设备中的数据读取操作。
值的说明的是,由上述步骤S101至步骤S103可知,本发明实施例中该存储控制设备通过自身缓存实现了CPU对该块设备的数据操作,从而避免了现有技术中的块设备与内存之间的数据传输,并且由于块设备中的数据不再占用内存空间,因此减轻了内存***的负担。
采用上述方案,存储控制设备在接收到的CPU发送的指示向块设备读取数据的读指令时,从块设备中读取包括待读取数据的第一数据块,并将该待读取数据返回至该CPU,这样,该CPU能够直接发送读指令对该块设备中的数据进行读取操作,简化了CPU对块设备进行数据读取操作的过程,提高了数据读取的效率。
本发明实施例提供一种数据操作的方法,该数据操作为数据写入操作,如图2所示,该方法包括:
S201、存储控制设备接收CPU发送的写指令。
其中,该写指令用于对块设备进行数据写入操作。
需要说明的是,操作指令包括操作码和操作数,操作码用于指示对该块设备进行数据读取操作还是数据写入操作,操作数包括源操作数和目的操作数,用于指示该操作指令的操作地址,也就是说,若该CPU也向该存储控制设备发送读指令,则该存储控制设备可根据接收到的操作指令的操作码确定该操作指令是否为写指令。
S202、该存储控制设备将该写指令指示的待写入数据写入到该存储控制设备的缓存中。
具体地,该该写指令包括该待写入数据的数据内容和该待写入数据在块设备中的写入地址信息,则该存储控制设备获取该待写入数据的该数据内容和该写入地址信息,并将该待写入数据的该数据内容以及该写入地址信息存储到该缓存中。
S203、该存储控制设备生成包括该待写入数据的第二数据块,并将该第二数据块写入该块设备。
具体地,该存储控制设备生成包括该待写入数据的第二数据块有以下两种实现方式:
方式一、该存储控制设备确定该缓存中存储的历史待写入数据与该待写入数据满足数据块生成条件,将该历史待写入数据与该待写入数据组成该第二数据。
其中,该历史待写入数据为在向该缓存写入该待写入数据之前该缓存存储的未写入该块设备的待写入数据。
需要说明的是,待写入数据写入缓存后,不立即写回块设备。因此,在该待写入数据写入该缓存之前,该缓存中可能已经存储了多个历史待写入数据。
具体地,该存储控制设备在确定该缓存中存储的历史待写入数据与该待写入数据在块设备的写入地址相连续,且该历史待写入数据与该待写入数据总的数据大小符合向该块设备写入数据的块粒度时,将该历史待写入数据与该待写入数据组成该第二数据块。
示例地,该待写入数据的大小与该缓存中存储的历史待写入数据的大小均为8B,与该块设备进行交互的数据的大小为512B的倍数,则若该存储控制设备在向该缓存中写入该待写入数据之前,该缓存中存储有63个8B的历史待写入数据,且该63个历史待写入数据与该待写入数据在该块设备中的写入地址连续,则该存储控制设备将该63个历史待写入数据与该待写入数据组成512B的第二数据块。
方式二、该存储控制设备根据该待写入数据的写入地址信息,从该块设备中读取对应该写入地址的数据块,将该数据块与该待写入数据合并为该第二数据块。
其中,该数据块为该块设备存储的将要写入该待写入数据的数据块。
需要说明的是,该存储控制设备可以在将该待写入数据写入该缓存之后,并在该缓存写满待写入数据之前,通过方式二将该待写入数据写入该块设备中,也可以先通过方式一将该待写入数据写入该块设备中,或者直到该缓存写满待写入数据,则在该存储控制设备向缓存写入下一个待写入数据之前,该待写入数据作为待替换数据通过方式二写入该块设备。
另外,方式一向该块设备写入的第二数据块中全部是待写入数据,而方式二向该块设备写入的第二数据块中既包括待写入数据,也包括该块设备中原有的数据,也就是说,在将对应该待写入数据的写入地址的数据块与该待写入数据进行合并时,该待写入数据替换该数据块中的一部分数据,另一部分数据仍为该块设备中原有的数据。
可选地,在该存储控制设备将待写入数据写入缓存中时,若该缓存存在空闲空间,该空闲空间为未存储待写入数据的空间,则该存储控制设备直接将该待写入数据写入该空闲空间;若该缓存中不存在空闲空间,即该缓存写满待写入数据,此时,该存储控制设备根据一定的替换策略,如LRU(Least Recently Used,最近最少使用)策略,确定该缓存中的待替换数据,并在将该待替换数据写入该块设备后,将该待写入数据写入该缓存。
其中,该存储控制设备将该待替换数据写入该块设备的方法具体可参照方式一和方式二中将该待写入数据写入该块设备的描述。
值的说明的是,由上述步骤S201至步骤S203可知,本发明实施例中该存储控制设备通过自身缓存实现了CPU对该块设备的数据操作,从而避免了现有技术中的块设备与内存之间的数据传输,并且由于块设备中的数据不再占用内存空间,因此减轻了内存***的负担。
采用上述方案,存储控制设备在接收到的CPU发送的指示向块设备写入数据的写指令时,将待写入数据写入到该存储控制设备的缓存中,并生成包括该待写入数据的第二数据块写入到该块设备中,这样,该CPU能够直接发送写指令向该块设备写入数据,简化了CPU对块设备进行数据写入操作的过程,提高了数据写入的效率。
为了使本领域技术人员能够更清楚地理解本发明实施例提供的一种数据操作方法的技术方案,下面通过具体的实施例对本发明提供的一种数据操作的方法进行详细说明,其中,该数据操作包括数据读取操作和数据写入操作,如图3所示,包括:
S301、CPU向存储控制设备发送操作指令。
其中,该操作指令用于对块设备进行数据操作。
S302、该存储控制设备确定该操作指令是否为读指令。
值的说明的是,操作指令包括操作码和操作数,操作数包括源操作数和目的操作数,用于指示该操作指令的操作地址,则该存储控制设备根据该操作指令的操作码判断该操作指令指示的操作。
在本发明实施例一种可能的实现方式中,UAS***对内存(字符设备)和外存(块设备)进行统一地址编址,对内存的物理地址范围和外存的物理地址范围进行划分,因此,该存储控制设备在接收到该CPU发送的操作指令后,可以根据该操作指令指示操作的物理地址确定该操作指令的操作对象为块设备,例如,该存储控制设备根据该操作指令的操作码确定该操作指令为读指令,且根据该读指令的源操作数确定该读指令指示读取的物理地址,若该物理地址在外存的物理地址范围内,则确定该读指令的读取对象为块设备;该存储控制设备根据该操作指令的操作码确定该操作指令为写指令,且根据该写指令的目的操作数确定该写指令指示待写入数据的物理地址,若该物理地址在外存的物理地址范围内,则该存储控制设备确定该写指令的写入对象为块设备。
需要说明的是,若该存储控制设备接收该CPU发送的指示操作内存的操作指令,则该存储控制设备将该操作指令发送至内存,以便该CPU通过现有技术的流程对该内存进行数据操作。
若是,则执行步骤S303至步骤S305,结束流程;若否,说明该操作指令为写指令,则执行步骤S306。
S303、该存储控制设备根据该读指令生成块设备读指令。
其中,该块设备读指令用于读取该块设备中包括待读取数据的第一数据块。
具体地,该存储控制设备在确定该操作指令为读指令且该操作指令的操作对象为块设备后,获取该读指令指示读取的待读取数据在块设备中的读取地址信息,并根据该地址信息确定该块设备中存储包括该待读取数据的第一数据块的存储地址,则该存储控制设备根据该读指令生成块设备读指令,其中,该块设备读指令的源操作数为该第一数据块的存储地址,目的操作数为该缓存中的地址。
S304、该存储控制设备根据该块设备读指令将该块设备中包括待读取数据的第一数据读取到该存储控制设备的缓存中。
S305、该存储控制设备将该第一数据中的该待读取数据返回至该CPU。
通过上述步骤S301至步骤S305,完成CPU对该块设备的读数据操作。
S306、该存储控制设备确定缓存中是否存在空闲空间。
其中,该空闲空间为未存储历史待写入数据的空间。
若是,则执行步骤S307;若否,则执行步骤S313至步骤S314。
S307、该存储控制设备将该待写入数据写入该空闲空间。
具体地,该写指令包括该待写入数据的数据内容以及该待写入数据在块设备中的写入地址信息,则该存储控制设备将该待写入数据的数据内容以及该写入地址信息存储到该缓存中。
可选地,该存储控制设备在执行完该步骤S307后,执行步骤S308至S309,结束流程,或者,执行步骤S310至步骤S312,结束流程。
S308、该存储控制设备确定该缓存中存储的历史待写入数据与该待写入数据满足数据块生成条件。
需要说明的是,待写入数据写入缓存后,不立即写回块设备。因此,在该待写入数据写入该缓存之前,该缓存中可能已经存储了多个历史待写入数据。
该数据块生成条件为,该缓存中存储的历史待写入数据与该待写入数据在块设备的写入地址相连续,且该历史待写入数据与该待写入数据总的数据大小符合向该块设备写入数据的块粒度。
可选地,若该存储控制设备确定该缓存中存储的历史待写入数据与该待写入数据不满足数据块生成条件,此时,可执行步骤S310至步骤S312。
S309、该存储控制设备将该历史待写入数据与该待写入数据组成第二数据,并将该第二数据写入该块设备。
S310、该存储控制设备获取该待写入数据在块设备中的写入地址信息。
S311、该存储控制设备根据该写入地址信息读取该块设备中对应该写入地址的数据块。
S312、该存储控制设备将该数据块与该待写入数据合并为第二数据,并将该第二数据写入该缓存。
值的说明的是,该存储控制设备在执行完步骤S307后,可循环执行步骤S301至步骤S307,直到该存储控制设备的缓存中不存在空闲空间,此时,若该存储控制设备向该缓存写下一个待写入数据,并确定该待写入数据为待替换数据时,执行步骤S308至S309将该待写入数据写入块设备,或者,执行步骤S310至步骤S312将该待写入数据写入块设备,结束流程。
S313、该存储控制设备确定待替换数据。
具体地,该存储控制设备根据一定的替换策略,如LRU策略,确定该缓存中的待替换数据。
S314、该存储控制设备将该待替换数据写入该块设备。
需要说明的是,该存储控制设备将该待替换数据写入该块设备具体可参照步骤S308至步骤S309或者步骤S310至步骤S312。此处不再赘述了。
另外,该存储控制设备在将该待替换数据写入该块设备后,将该待写入数据写入该缓存,即执行步骤S307。
采用上述方案,存储控制设备在接收到的CPU发送的指示操作块设备的操作指令时,对于读指令,该存储控制设备从块设备中读取包括待读取数据的第一数据块,并将该待读取数据返回至该CPU,对于写指令,该存储控制设备将待写入数据写入到该存储控制设备的缓存中,并生成包括该待写入数据的第二数据块写入到该块设备中,这样,该CPU能够直接发送指示操作块设备的操作指令对该块设备中的数据进行操作,简化了CPU对块设备进行数据操作的过程,提高了数据操作的效率。
另外,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本发明实施例提供一种存储控制设备40,对应上述图1的方法实施例,该存储控制设备40的各个功能单元均可用于上述方法步骤。如图4所示,该存储控制设备40包括缓存43,该存储控制设备40还包括:
接收单元41,用于接收中央处理器CPU发送的读指令。
其中,该读指令用于对块设备进行数据读取操作。
数据操作单元42,用于将该块设备中包括待读取数据的第一数据块读取到该存储控制设备的缓存43中。
发送单元44,将该第一数据块中的该待读取数据返回至CPU。
具体地,该存储控制设备还包括获取单元45,该获取单元45从该读指令中获取该待读取数据在该块设备中的读取地址信息,该数据操作单元具体42根据该读取地址信息将该块设备中对应该读取地址的第一数据块读取到该缓存中,该发送单元44在该缓存的该第一数据块中确定该待读取数据,并将该待读取数据返回至该CPU。
需要说明的是,该存储控制设备的缓存支持按字节来读写数据;该待读取数据可以不满足与该块设备进行数据交互的块粒度条件,也就是说,若该块粒度条件为:与该块设备进行交互的数据的大小为512B的倍数,则该待读取数据可以为8B,该第一数据块的数据大小可以为512B或者512B的倍数。
示例地,该存储控制设备在接收到CPU发送的读指令后,获取该读指令指示读取的待读取数据在块设备中的读取地址信息,并根据该地址信息确定该块设备中存储包括该待读取数据的第一数据块的存储地址,则该存储控制设备根据该读指令生成块设备读指令,其中,该块设备读指令的源操作数为该第一数据块的存储地址,目的操作数为该缓存中的地址,通过该块设备读指令将该块设备中的该第一数据块读取到该存储控制设备的缓存中,并将该待读取数据返回至该CPU,完成该CPU在块设备中的数据读取操作。
这样,本发明实施例中该存储控制设备通过自身缓存实现了CPU对该块设备的数据操作,从而避免了现有技术中的块设备与内存之间的数据传输,并且由于块设备中的数据不再占用内存空间,因此减轻了内存***的负担。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
采用上述存储控制设备,该存储控制设备在接收到的CPU发送的指示向块设备读取数据的读指令时,从块设备中读取包括待读取数据的第一数据块,并将该待读取数据返回至该CPU,这样,该CPU能够直接发送读指令对该块设备中的数据进行读取操作,简化了CPU对块设备进行数据读取操作的过程,提高了数据读取的效率。
本发明实施例提供另一种存储控制设备50,对应上述图2的方法实施例,该存储控制设备50的各个功能单元均可用于上述方法步骤。如图5所示,该存储控制设备50包括缓存53,该存储控制设备50还包括:
接收单元51,用于接收中央处理器CPU发送的写指令。
其中,该写指令用于对块设备进行数据写入操作。
数据操作单元52,用于将该写指令指示的待写入数据写入到该缓存53中。
数据处理单元54,用于生成包括该待写入数据的第二数据块。
该数据操作单元52还用于,将该第二数据块写入该块设备。
具体地,该写指令包括该待写入数据的数据内容和该待写入数据在块设备中的写入地址信息,则该存储控制设备还包括获取单元55,用于获取该待写入数据的该数据内容和该写入地址信息,该数据操作单元52将该待写入数据的该数据内容以及该写入地址信息存储到该缓存53中。
进一步地,该存储控制设备生成包括该待写入数据的第二数据块有以下两种实现方式:
方式一、该存储控制设备还包括确定单元56,用于确定该缓存中存储的历史待写入数据与该待写入数据满足数据块生成条件,该数据处理单元54具体用于,将该历史待写入数据与该待写入数据组成该第二数据块。
其中,该历史待写入数据为在向该缓存写入该待写入数据之前该缓存存储的未写入该块设备的待写入数据。
需要说明的是,待写入数据写入缓存后,不立即写回块设备。因此,在该待写入数据写入该缓存之前,该缓存中可能已经存储了多个历史待写入数据。
具体地,该确定单元56具体用于,确定该历史待写入数据的写入地址信息与该待写入数据的写入地址信息连续,且该历史待写入数据与该待写入数据总的数据大小符合向该块设备写入数据的块粒度。
示例地,该待写入数据的大小与该缓存中存储的历史待写入数据的大小均为8B,与该块设备进行交互的数据的大小为512B的倍数,则若该存储控制设备在向该缓存中写入该待写入数据之前,该缓存中存储有63个8B的历史待写入数据,且该63个历史待写入数据与该待写入数据在该块设备中的写入地址连续,则该存储控制设备将该63个历史待写入数据与该待写入数据组成512B的第二数据块。
方式二、该数据操作单元52具体用于,根据该待写入数据的写入地址信息,从该块设备中读取对应该写入地址信息的数据块,该数据处理单元54具体用于,将该数据块与该待写入数据合并为该第二数据块。
其中,该数据块为该块设备存储的将要写入该待写入数据的数据块。
需要说明的是,该存储控制设备可以在将该待写入数据写入该缓存之后,并在该缓存写满待写入数据之前,通过方式二将该待写入数据写入该块设备中,也可以先通过方式一将该待写入数据写入该块设备中,或者直到该缓存写满待写入数据,则在该存储控制设备向缓存写入下一个待写入数据之前,该待写入数据作为待替换数据通过方式二写入该块设备。
另外,方式一向该块设备写入的第二数据块中全部是待写入数据,而方式二向该块设备写入的第二数据块中既包括待写入数据,也包括该块设备中原有的数据,也就是说,在将对应该待写入数据的写入地址的数据块与该待写入数据进行合并时,该待写入数据替换该数据块中的一部分数据,另一部分数据仍为该块设备中原有的数据。
可选地,在该存储控制设备将待写入数据写入缓存中时,若该缓存存在空闲空间,该空闲空间为未存储待写入数据的空间,则该存储控制设备直接将该待写入数据写入该空闲空间;若该缓存中不存在空闲空间,即该缓存写满待写入数据,此时,该确定单元56根据一定的替换策略,如LRU策略,确定该缓存中的待替换数据,并在该数据操作单元52将该待替换数据写入该块设备后,将该待写入数据写入该缓存。
其中,该存储控制设备将该待替换数据写入该块设备的方法具体可参照方式一和方式二中将该待写入数据写入该块设备的描述。
这样,本发明实施例中该存储控制设备通过自身缓存实现了CPU对该块设备的数据操作,从而避免了现有技术中的块设备与内存之间的数据传输,并且由于块设备中的数据不再占用内存空间,因此减轻了内存***的负担。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
采用上述存储控制设备,该存储控制设备在接收到的CPU发送的指示向块设备写入数据的写指令时,将待写入数据写入到该存储控制设备的缓存中,并生成包括该待写入数据的第二数据块写入到该块设备中,这样,该CPU能够直接发送写指令向该块设备写入数据,简化了CPU对块设备进行数据写入操作的过程,提高了数据写入的效率。
本发明实施例提供另一种存储控制设备60,如图6所示,该存储控制设备60包括:
处理器(processor)61、通信接口(Communications Interface)62、存储器(memory)63、缓存64和通信总线65;其中,所述处理器61、所述通信接口62、所述存储器63和所述缓存66通过所述通信总线65完成相互间的通信。
所述通信接口62,用于与外部设备进行通信。
所述缓存64,用于存储该存储控制设备60通过通信接口62从外部设备接收到的数据。
存储器63用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器63可能包括高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器63也可以是存储器阵列。存储器63还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
所述处理器61用于执行所述存储器63中的程序代码,以实现以下操作:
接收中央处理器CPU发送的读指令;所述读指令用于对块设备进行数据读取操作;
将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中;
将所述第一数据块中的所述待读取数据返回至CPU。
可选地,所述将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中具体包括:
从所述读指令中获取所述待读取数据在所述块设备中的读取地址信息;
根据所述读取地址信息将所述块设备中对应所述读取地址的第一数据块读取到所述缓存中;
所述将所述第一数据块中的所述待读取数据返回至CPU包括:
在所述缓存的所述第一数据块中确定所述待读取数据,并将所述待读取数据返回至所述CPU。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供另一种存储控制设备70,如图7所示,该存储控制设备70包括:
处理器(processor)71、通信接口(Communications Interface)72、存储器(memory)73、缓存74和通信总线75;其中,所述处理器71、所述通信接口72、所述存储器73和所述缓存77通过所述通信总线75完成相互间的通信。
所述通信接口72,用于与外部设备进行通信。
所述缓存74,用于存储该存储控制设备70通过通信接口72从外部设备接收到的数据。
存储器73用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器73可能包括高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器73也可以是存储器阵列。存储器73还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
所述处理器71用于执行所述存储器73中的程序代码,以实现以下操作:
接收中央处理器CPU发送的写指令;所述写指令用于对块设备进行数据写入操作;
将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中;
生成包括所述待写入数据的第二数据块,并将所述第二数据块写入所述块设备。
可选地,所述写指令包括所述待写入数据的数据内容和所述待写入数据在块设备中的写入地址信息;
在所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中之前包括:
获取所述待写入数据的所述数据内容和所述写入地址信息;
所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中具体包括:
将所述待写入数据的所述数据内容以及所述写入地址信息存储到所述缓存中。
可选地,所述生成包括所述待写入数据的第二数据块包括:
确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件;所述历史待写入数据为在向所述缓存写入所述待写入数据之前所述缓存存储的未写入所述块设备的待写入数据;
将所述历史待写入数据与所述待写入数据组成所述第二数据块。
可选地,所述确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件包括:
确定所述历史待写入数据的写入地址信息与所述待写入数据的写入地址信息连续,且所述历史待写入数据与所述待写入数据总的数据大小符合向所述块设备写入数据的块粒度。
可选地,所述生成包括所述待写入数据的第二数据块包括:
根据所述待写入数据的写入地址信息,从所述块设备中读取对应所述写入地址的数据块,将所述数据块与所述待写入数据合并为所述第二数据块,所述数据块为所述块设备存储的将要写入所述待写入数据的数据块。
可选地,在所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中之前,所述操作还包括:
在所述缓存中不存在空闲空间时,确定所述缓存中的待替换数据,并将所述待替换数据写入所述块设备,所述待替换数据为所述缓存中存储的历史待写入数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供一种数据操作***80,如图8所示,该数据操作***80包括CPU81、存储控制设备82和块设备83,其中,该CPU81与该存储控制设备82相连,该存储控制设备82与该块设备83相连。
该CPU81,用于向该存储控制设备82发送操作指令,以便该存储控制设备82根据该操作指令对该块设备83进行数据操作。
该存储控制设备82包括如图4所示的存储控制设备40和/或如图5所示的存储控制设备50,其具体作用可参照图4和/或图5对应的实施例中的描述,此处不再赘述。
该块设备83,用于存储数据。
采用上述数据操作***,存储控制设备在接收到的CPU发送的指示操作块设备的操作指令时,对于读指令,该存储控制设备从块设备中读取包括待读取数据的第一数据块,并将该待读取数据返回至该CPU,对于写指令,该存储控制设备将待写入数据写入到该存储控制设备的缓存中,并生成包括该待写入数据的第二数据块写入到该块设备中,这样,该CPU能够直接发送指示操作块设备的操作指令对该块设备中的数据进行操作,简化了CPU对块设备进行数据操作的过程,提高了数据操作的效率。
本发明实施例提供一种数据操作***90,如图9所示,该数据操作***90包括CPU91、存储控制设备92和块设备93,其中,该CPU91与该存储控制设备92相连,该存储控制设备92与该块设备93相连。
该CPU91,用于向该存储控制设备92发送操作指令,以便该存储控制设备92根据该操作指令对该块设备93进行数据操作。
该存储控制设备92包括如图6所示的存储控制设备60和/或如图7所示的存储控制设备70,其具体作用可参照图6和/或图7对应的实施例中的描述,此处不再赘述。
该块设备93,用于存储数据。
采用上述数据操作***,存储控制设备在接收到的CPU发送的指示操作块设备的操作指令时,对于读指令,该存储控制设备从块设备中读取包括待读取数据的第一数据块,并将该待读取数据返回至该CPU,对于写指令,该存储控制设备将待写入数据写入到该存储控制设备的缓存中,并生成包括该待写入数据的第二数据块写入到该块设备中,这样,该CPU能够直接发送指示操作块设备的操作指令对该块设备中的数据进行操作,简化了CPU对块设备进行数据操作的过程,提高了数据操作的效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种数据操作的方法,其特征在于,所述方法包括:
存储控制设备接收中央处理器CPU发送的读指令;所述读指令用于对块设备进行数据读取操作;
将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中,所述待读取数据不满足与所述块设备进行数据交互的块粒度条件;
将所述第一数据块中的所述待读取数据返回至CPU。
2.根据权利要求1所述的方法,其特征在于,所述将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中包括:
从所述读指令中获取所述待读取数据在所述块设备中的读取地址信息;
根据所述读取地址信息将所述块设备中对应所述读取地址的第一数据块读取到所述缓存中;
所述将所述第一数据块中的所述待读取数据返回至CPU包括:
在所述缓存的所述第一数据块中确定所述待读取数据,并将所述待读取数据返回至所述CPU。
3.一种数据操作的方法,其特征在于,所述方法包括:
存储控制设备接收中央处理器CPU发送的写指令;所述写指令用于对块设备进行数据写入操作;
将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中,所述待写入数据不满足与所述块设备进行数据交互的块粒度条件;
生成包括所述待写入数据的第二数据块,并将所述第二数据块写入所述块设备。
4.根据权利要求3所述的方法,其特征在于,所述写指令包括所述待写入数据的数据内容和所述待写入数据在块设备中的写入地址信息;
在所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中之前包括:
获取所述待写入数据的所述数据内容和所述写入地址信息;
所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中包括:
将所述待写入数据的所述数据内容以及所述写入地址信息存储到所述缓存中。
5.根据权利要求3或4所述的方法,其特征在于,所述生成包括所述待写入数据的第二数据块包括:
确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件;所述历史待写入数据为在向所述缓存写入所述待写入数据之前所述缓存存储的未写入所述块设备的待写入数据;
将所述历史待写入数据与所述待写入数据组成所述第二数据块。
6.根据权利要求5所述的方法,其特征在于,所述确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件包括:
确定所述历史待写入数据的写入地址信息与所述待写入数据的写入地址信息连续,且所述历史待写入数据与所述待写入数据总的数据大小符合向所述块设备写入数据的块粒度。
7.根据权利要求4所述方法,其特征在于,所述生成包括所述待写入数据的第二数据块包括:
根据所述待写入数据的写入地址信息,从所述块设备中读取对应所述写入地址的数据块,将所述数据块与所述待写入数据合并为所述第二数据块,所述数据块为所述块设备存储的将要写入所述待写入数据的数据块。
8.根据权利要求3、4、6、7任一项所述的方法,其特征在于,在所述将所述写指令指示的待写入数据写入到所述存储控制设备的缓存中之前,所述方法还包括:
在所述缓存中不存在空闲空间时,确定所述缓存中的待替换数据,并将所述待替换数据写入所述块设备,所述待替换数据为所述缓存中存储的历史待写入数据。
9.一种存储控制设备,其特征在于,所述存储控制设备包括缓存,所述存储控制设备还包括:
接收单元,用于接收中央处理器CPU发送的读指令;所述读指令用于对块设备进行数据读取操作;
数据操作单元,用于将所述块设备中包括待读取数据的第一数据块读取到所述存储控制设备的缓存中,所述待读取数据不满足与所述块设备进行数据交互的块粒度条件;
发送单元,用于将所述第一数据块中的所述待读取数据返回至CPU。
10.根据权利要求9所述的存储控制设备,其特征在于,所述存储控制设备还包括获取单元,用于从所述读指令中获取所述待读取数据在所述块设备中的读取地址信息;
所述数据操作单元具体用于,根据所述读取地址信息将所述块设备中对应所述读取地址的第一数据块读取到所述缓存中;
所述发送单元具体用于,在所述缓存的所述第一数据块中确定所述待读取数据,并将所述待读取数据返回至所述CPU。
11.一种存储控制设备,其特征在于,所述存储控制设备包括缓存,所述存储控制设备还包括:
接收单元,用于接收中央处理器CPU发送的写指令;所述写指令用于对块设备进行数据写入操作;
数据操作单元,用于将所述写指令指示的待写入数据写入到所述缓存中,所述待写入数据不满足与所述块设备进行数据交互的块粒度条件;
数据处理单元,用于生成包括所述待写入数据的第二数据块;
所述数据操作单元还用于,将所述第二数据块写入所述块设备。
12.根据权利要求11所述的存储控制设备,其特征在于,所述写指令包括所述待写入数据的数据内容和所述待写入数据在块设备中的写入地址信息;
所述存储控制设备还包括获取单元,用于获取所述待写入数据的所述数据内容和所述写入地址信息;
所述数据操作单元具体用于,将所述待写入数据的所述数据内容以及所述写入地址信息存储到所述缓存中。
13.根据权利要求11或12所述的存储控制设备,其特征在于,所述存储控制设备还包括确定单元,用于确定所述缓存中存储的历史待写入数据与所述待写入数据满足数据块生成条件;所述历史待写入数据为在向所述缓存写入所述待写入数据之前所述缓存存储的未写入所述块设备的待写入数据;
所述数据处理单元具体用于,将所述历史待写入数据与所述待写入数据组成所述第二数据块。
14.根据权利要求13所述的存储控制设备,其特征在于,所述确定单元具体用于,确定所述历史待写入数据的写入地址信息与所述待写入数据的写入地址信息连续,且所述历史待写入数据与所述待写入数据总的数据大小符合向所述块设备写入数据的块粒度。
15.根据权利要求12所述的存储控制设备,其特征在于,所述数据操作单元具体用于:
根据所述待写入数据的写入地址信息,从所述块设备中读取对应所述写入地址信息的数据块;所述数据块为所述块设备存储的将要写入所述待写入数据的数据块;
所述数据处理单元具体用于,将所述数据块与所述待写入数据合并为所述第二数据块。
16.根据权利要求11、12、14、15任一项所述的存储控制设备,其特征在于,所述存储控制设备包括确定单元,用于在所述缓存中不存在空闲空间时,确定所述缓存中的待替换数据;
所述数据操作单元还用于,将所述待替换数据写入所述块设备,所述待替换数据为所述缓存中存储的历史待写入数据。
17.一种数据操作***,其特征在于,所述数据操作***包括:存储控制设备、中央处理器CPU、块设备,其中,所述CPU与所述存储控制设备相连,所述存储控制设备与所述块设备相连;
所述存储控制设备包括权利要求9至10任一项所述的存储控制设备和/或权利要求11至16任一项所述的存储控制设备;
所述CPU,用于向所述存储控制设备发送操作指令,以便所述存储控制设备根据所述操作指令对所述块设备进行数据操作;
所述块设备,用于存储数据。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910419053.XA CN110187832B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
CN201410216351.6A CN105094691B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
PCT/CN2015/079432 WO2015176664A1 (zh) | 2014-05-21 | 2015-05-21 | 一种数据操作的方法、设备和*** |
US15/357,408 US10318165B2 (en) | 2014-05-21 | 2016-11-21 | Data operating method, device, and system |
US16/415,940 US11010056B2 (en) | 2014-05-21 | 2019-05-17 | Data operating method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410216351.6A CN105094691B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910419053.XA Division CN110187832B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094691A CN105094691A (zh) | 2015-11-25 |
CN105094691B true CN105094691B (zh) | 2019-05-21 |
Family
ID=54553436
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410216351.6A Active CN105094691B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
CN201910419053.XA Active CN110187832B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910419053.XA Active CN110187832B (zh) | 2014-05-21 | 2014-05-21 | 一种数据操作的方法、设备和*** |
Country Status (3)
Country | Link |
---|---|
US (2) | US10318165B2 (zh) |
CN (2) | CN105094691B (zh) |
WO (1) | WO2015176664A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094691B (zh) * | 2014-05-21 | 2019-05-21 | 华为技术有限公司 | 一种数据操作的方法、设备和*** |
US9886194B2 (en) * | 2015-07-13 | 2018-02-06 | Samsung Electronics Co., Ltd. | NVDIMM adaptive access mode and smart partition mechanism |
CN110837479B (zh) * | 2018-08-17 | 2023-09-01 | 华为云计算技术有限公司 | 数据处理方法、相关设备及计算机存储介质 |
CN110896406A (zh) * | 2018-09-13 | 2020-03-20 | 华为技术有限公司 | 数据存储方法、装置及服务器 |
CN109144431B (zh) * | 2018-09-30 | 2021-11-02 | 华中科技大学 | 数据块的缓存方法、装置、设备及存储介质 |
CN111580757B (zh) * | 2020-05-14 | 2022-10-14 | 江苏芯盛智能科技有限公司 | 数据写入方法、***和固态硬盘 |
CN113553009B (zh) * | 2021-07-27 | 2022-06-03 | 湖南国科微电子股份有限公司 | 数据读取方法、数据写入方法及数据读写方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727395A (zh) * | 2008-10-17 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 闪存设备的管理***、方法及闪存设备 |
CN103324578A (zh) * | 2013-06-20 | 2013-09-25 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存设备及其随机写入方法 |
CN103680610A (zh) * | 2012-09-03 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 差分存储NAND Flash存储器写操作的方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5634086A (en) * | 1985-05-06 | 1986-11-13 | Wang Laboratories, Inc. | Information processing system with enhanced instruction execution and support control |
JP3602294B2 (ja) * | 1997-05-28 | 2004-12-15 | 株式会社ルネサステクノロジ | 半導体メモリおよび情報記憶装置 |
CN1275143C (zh) | 2003-06-11 | 2006-09-13 | 华为技术有限公司 | 数据处理***及方法 |
CN100492274C (zh) * | 2007-08-17 | 2009-05-27 | 杭州华三通信技术有限公司 | 存储控制***及其处理节点 |
CN101441551B (zh) | 2007-11-23 | 2012-10-10 | 联想(北京)有限公司 | 计算机、外存储器以及处理外存储器中数据信息的方法 |
JP5521716B2 (ja) * | 2010-04-06 | 2014-06-18 | 富士通株式会社 | ストレージ制御プログラム、ストレージ制御方法およびストレージ制御装置 |
JP4829365B1 (ja) * | 2010-05-31 | 2011-12-07 | 株式会社東芝 | データ記憶装置及びデータ書き込み方法 |
US9251058B2 (en) | 2010-09-28 | 2016-02-02 | SanDisk Technologies, Inc. | Servicing non-block storage requests |
CN102682012A (zh) * | 2011-03-14 | 2012-09-19 | 成都市华为赛门铁克科技有限公司 | 一种文件***内读写数据的方法及装置 |
CN102262608A (zh) * | 2011-07-28 | 2011-11-30 | 中国人民解放军国防科学技术大学 | 基于处理器核的协处理器读写操作控制方法及装置 |
KR101789190B1 (ko) * | 2012-03-06 | 2017-11-20 | 한국전자통신연구원 | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 |
CN105094691B (zh) * | 2014-05-21 | 2019-05-21 | 华为技术有限公司 | 一种数据操作的方法、设备和*** |
CN106886498B (zh) * | 2017-02-28 | 2020-06-26 | 华为技术有限公司 | 数据处理装置和终端 |
-
2014
- 2014-05-21 CN CN201410216351.6A patent/CN105094691B/zh active Active
- 2014-05-21 CN CN201910419053.XA patent/CN110187832B/zh active Active
-
2015
- 2015-05-21 WO PCT/CN2015/079432 patent/WO2015176664A1/zh active Application Filing
-
2016
- 2016-11-21 US US15/357,408 patent/US10318165B2/en active Active
-
2019
- 2019-05-17 US US16/415,940 patent/US11010056B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727395A (zh) * | 2008-10-17 | 2010-06-09 | 深圳市朗科科技股份有限公司 | 闪存设备的管理***、方法及闪存设备 |
CN103680610A (zh) * | 2012-09-03 | 2014-03-26 | 北京兆易创新科技股份有限公司 | 差分存储NAND Flash存储器写操作的方法及装置 |
CN103324578A (zh) * | 2013-06-20 | 2013-09-25 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存设备及其随机写入方法 |
Also Published As
Publication number | Publication date |
---|---|
US11010056B2 (en) | 2021-05-18 |
WO2015176664A1 (zh) | 2015-11-26 |
US20190272099A1 (en) | 2019-09-05 |
US20170068452A1 (en) | 2017-03-09 |
US10318165B2 (en) | 2019-06-11 |
CN110187832B (zh) | 2023-08-22 |
CN110187832A (zh) | 2019-08-30 |
CN105094691A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094691B (zh) | 一种数据操作的方法、设备和*** | |
USRE49273E1 (en) | Switch and memory device | |
CN104133780B (zh) | 一种跨页预取方法、装置及*** | |
TWI627536B (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
CN111684434A (zh) | 多层存储器***中的预测数据协作 | |
CN104050089B (zh) | 片上***及其操作方法 | |
CN111684435B (zh) | 实施于存储器***中的通过消息传递接口的存储器存取通信 | |
CN111699477A (zh) | 在存储器***中经由数据串流隔离的加速数据存取 | |
KR20170130386A (ko) | 비휘발성 저장 디바이스를 위한 장애 안전 라이트 백 캐싱 모드 디바이스 드라이버 | |
CN107636625A (zh) | 用于共享***高速缓存的虚拟化控制的方法和装置 | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US11151052B2 (en) | Reading sequential data from memory using a pivot table | |
CN105706071A (zh) | 持久性存储器的块存储孔 | |
CN107562645B (zh) | 一种内存页管理方法及计算设备 | |
JP5336423B2 (ja) | 計算機システム | |
CN110059033A (zh) | 数据中心中的共享存储器控制器 | |
CN103345451A (zh) | 一种在多核处理器中缓冲数据的方法 | |
US10642493B2 (en) | Mobile device and data management method of the same | |
TWI710905B (zh) | 資料儲存裝置及邏輯至物理位址映射表之載入方法 | |
CN105095138B (zh) | 一种扩展同步内存总线功能的方法和装置 | |
JP2014049091A (ja) | 情報処理装置 | |
CN109388585A (zh) | 用于基于高速缓存类型来提供高速缓存一致性的技术 | |
CN115794682A (zh) | 缓存替换方法及装置、电子设备、存储介质 | |
Kim et al. | HMB-SSD: Framework for efficient exploiting of the host memory buffer in the NVMe SSD | |
CN109766057A (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 |