CN114461134B - 硬盘零碎块读写装置、方法、计算机设备和存储介质 - Google Patents
硬盘零碎块读写装置、方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114461134B CN114461134B CN202111402106.0A CN202111402106A CN114461134B CN 114461134 B CN114461134 B CN 114461134B CN 202111402106 A CN202111402106 A CN 202111402106A CN 114461134 B CN114461134 B CN 114461134B
- Authority
- CN
- China
- Prior art keywords
- hard disk
- data
- writing
- target data
- reading
- 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
- 239000012634 fragment Substances 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims description 58
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明适用于计算机系统存储领域,提供了一种硬盘零碎块读写装置,所述硬盘零碎块读写装置包括中央处理器、硬盘、适配器和存储模块;所述中央处理器用于向所述适配器发送读盘指令或写盘指令;所述适配器根据所述读盘指令,将所述硬盘中的第一目标数据写入所述存储模块;所述适配器根据所述写盘指令,从所述存储模块中读取第二目标数据,将所述第二目标数据写入所述硬盘中;所述硬盘用于存储数据,通过所述适配器读取或更改所述硬盘内特定的数据块;所述存储模块用于存储已读取的所述第一目标数据和待写入的所述第二目标数据。在硬盘和系统总线之间添加一个适配器,解决硬盘零散访问的复杂操作步骤,提高硬盘读写的效率。
Description
技术领域
本发明属于计算机系统存储领域,尤其涉及一种硬盘零碎块读写方法、装置、计算机设备和存储介质。
背景技术
磁盘或固态盘(以下统称硬盘,Hard Disk)作为计算机外设,有着不可或缺的作用,从操作系统镜像本、可执行程序到系统、用户数据几乎无一例外都要保持到硬盘上。比起内存,硬盘并非直接寻址,发起访问操作的延迟及支持带宽远远小于内存,但是因为内存资源的稀缺和昂贵,硬盘表现出很好的性价比,甚至还会被用于虚拟页面来对物理内存进行扩充,图1为经典架构下的硬盘读写系统。
然而,硬盘访问尺度也必须是按照盘块(Block,一般为512(0x200)字节)来进行。对硬盘每发起一次读写,都必须包含完整的一个或多个连续盘块。比如,如图2所示,应用软件希望读取一个文件的0x100~0x150,假设该文件起始位置为标号为9的盘块第0字节,那么驱动也必须将整个9号块执行从0~0x1ff的完整读取操作,然后驱动再将0~0xff和0x151~0x1ff字节过滤掉后给应用软件送出它期望的那一小段。
而写操作更为复杂。比如,如图3所示,应用软件希望改写一个文件的0x100~0x150(其他内容不变),我们这里依然假设该文件起始位置为标号为9的盘块第0字节。由于写也是以块为单元,对于不完整对齐到块的写,驱动需要得到改写之前块内的原始数据,所以驱动需要先读9号整个块,缓存到内存中(假设地址为0xc2000000~0xc20001ff),再将该段内存中用户希望更改的区域(0xc2000100~0xc200150)改写为用户数据,最后用这一块内存写9号盘块来完成操作。
这种不对齐到盘块的访问操作(下称零散访问),会造成很大的驱动软件开销,还会占用到系统内存的访问开销,拷贝目标数据的时间开销,影响整个系统的效率。
发明内容
本发明实施例的目的在于提供一种硬盘零碎块读写装置,旨在解决硬盘读写占用系统开销的问题。
本发明实施例是这样实现的,一种硬盘零碎块读写装置,所述硬盘零碎块读写装置包括中央处理器、硬盘、适配器和存储模块;所述中央处理器、所述硬盘和所述存储模块分别与所述适配器连接;
所述中央处理器用于向所述适配器发送读盘指令或写盘指令;
所述适配器根据所述读盘指令,将所述硬盘中的第一目标数据写入所述存储模块;所述适配器根据所述写盘指令,从所述存储模块中读取第二目标数据,将所述第二目标数据写入所述硬盘中;
所述硬盘用于存储数据,通过所述适配器读取或更改所述硬盘内特定的数据块;
所述存储模块用于存储已读取的所述第一目标数据和待写入的所述第二目标数据。
本发明实施例的另一目的在于一种应用硬盘零碎块读写装置的硬盘零碎块读取方法,所述硬盘零碎块读取方法包括:
接收读盘指令;
从硬盘中读取第一硬盘数据;所述第一硬盘数据中包含用户所需的第一目标数据;
将所述第一目标数据写入存储模块。
本发明实施例的另一目的在于一种应用硬盘零碎块读写装置的硬盘零碎块写入方法,所述硬盘零碎块写入方法包括:
接收写盘指令;
从存储模块中获取第二目标数据,从硬盘中获取第二硬盘数据,用所述第二目标数据替换所述第二硬盘数据中对应位置的数据,得到第三硬盘数据;
将所述第三硬盘数据写入所述硬盘。
本发明实施例的另一目的在于一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述硬盘零碎块读取方法的步骤,或执行所述的硬盘零碎块写入方法的步骤。
本发明实施例的另一目的在于一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述硬盘零碎块读取方法的步骤,或执行所述的硬盘零碎块写入方法的步骤。
本发明实施例提供的一种硬盘零碎块读写装置,在硬盘和系统总线之间添加一个适配器。适配器在硬盘中读取或写入数据,而硬盘的读写不再占用额外的系统开销。该设置从根本上解决系统软件对硬盘零散访问的复杂操作步骤,使得存储模块对硬盘的读写不再需要关注盘块的逻辑属性,而是类似向内存一样随机寻址访问,提高硬盘读写的效率。
附图说明
图1为经典架构下的硬盘读写系统;
图2为经典架构下读盘时序示意图;
图3为经典架构下写盘时序示意图;
图4为一个实施例中硬盘零碎块读写装置的结构框图;
图5为一个实施例中硬盘零碎块读写装置的适配器的逻辑示意图;
图6为一个实施例中硬盘零碎块读写装置的结构框图;
图7为一个实施例中硬盘零碎块读取方法的示意图;
图8为一个实施例中硬盘零碎块写入方法的示意图;
图9为一个实施例中硬盘零碎块读取方法的流程图;
图10为一个实施例中硬盘零碎块写入方法的流程图;
图11为一个实施例中写入操作的时序图;
图12为一个实施例中计算机设备的内部结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一xx脚本称为第二xx脚本,且类似地,可将第二xx脚本称为第一xx脚本。
图1为经典架构下的硬盘读写系统,硬盘通过总线直接与中央处理器和存储模块连接。在该系统的读取过程中,如图2所示,先将整个盘块数据存入,动态随机存储器缓冲区中,在依次读取动态随机存储器缓冲区中的盘块数据,最后得到目标数据,即图2中黑色方块的数据。在该系统的写入过程中,如图3所示,黑色方块为需要写入硬盘中的目标数据;需要先将硬盘中的整个盘块数据拷贝到动态随机存储器缓冲区中,在将目标数据放入动态随机存储器缓冲区,替换原先的数据,最后将更改后的整个盘块数据存入硬盘中。上述的读写方法是经典架构下的读写方法,需要频繁用占用系统内存,会加大驱动软件的访问开销,使得系统操作效率变低。
因此,在一个实施例中,如图4所示,提出了一种硬盘零碎块读写装置,该装置在硬盘30和系统总线之间设置了一个适配器40,使得不在需要在动态随机存储器缓冲区中进行拷贝缓存,而直接在适配器40中做数据的拆分与合并,在图1经典架构下进行优化,减小整个系统开销。
在一个实施例中,如图5所示,提供了一种硬盘零碎块读写装置,所述硬盘零碎块读写装置包括中央处理器20、硬盘30、适配器40和存储模块50;所述中央处理器20、所述硬盘30和所述存储模块50分别与所述适配器40连接;
所述中央处理器20用于向所述适配器40发送读盘指令或写盘指令;
所述适配器40根据所述读盘指令,将所述硬盘30中的第一目标数据写入所述存储模块50;所述适配器40根据所述写盘指令,从所述存储模块50中读取第二目标数据,将所述第二目标数据写入所述硬盘30中;
所述硬盘30用于存储数据,通过所述适配器40读取或更改所述硬盘30内特定的数据块;
所述存储模块50用于存储已读取的所述第一目标数据和待写入的所述第二目标数据。
在本实施例中,储模块50用于存储有目标数据,即第一目标数据和第二目标数据。在读取的过程中,要将存储模块50内的第一目标数据写入硬盘30中;在写入的过程中,要将硬盘30内的第二目标数据写入储模块50中。
本实施例在硬盘30和系统总线之间添加一个适配器40。适配器40在硬盘30中读取或写入数据,硬盘读写不再占用额外的系统开销;负责数据本身的合并和拆分就成为适配器40的工作。该设置从根本上解决系统(驱动)软件对硬盘零散访问的复杂操作步骤,使得存储模块50对硬盘30的读写不再需要关注盘块的逻辑属性,而是类似向内存一样随机寻址访问,提高硬盘30读写的效率。
在一个实施例中,如图5所示,提供了一种硬盘零碎块读写装置,所述适配器40包括寄存器模块41、合并逻辑模块42和专用缓存43;所述寄存器模块41连接所述中央处理器20和所述硬盘30;所述合并逻辑模块42连接所述硬盘30、所述存储模块50和所述专用缓存43;
所述寄存器模块41内设有所述适配器40的运行逻辑程序,使中央处理器20对所述适配器40进行配置和管理;
所述合并逻辑模块42根据所述读盘指令,从所述硬盘中读取包含所述第一目标数据的第一硬盘数据,将所述第一硬盘数据拆分为所述第一目标数据和第一子块数据;将所述第一目标数据写入所述存储模块50,将所述第一子块数据写入所述专用缓存43中;
所述合并逻辑模块42根据所述写盘指令,从所述硬盘30中获取包含待替换数据的第二硬盘数据,将所述第二硬盘数据写入所述专用缓存43中;从所述存储模块50中读取所述第二目标数据,将所述第二目标数据写入所述专用缓存43,覆盖待替换数据,得到第三硬盘数据;将所述第三硬盘数据写入所述硬盘30中;
所述专用缓存43用于实现所述合并逻辑模块42工作所需的数据存储。
在本实施例中,寄存器模块41用于中央处理器20对逻辑的配置和管理。合并逻辑模块42作用是根据中央处理器20通过寄存器模块41的配置信息,将用户需要的零散访问的数据流映射到存储模块50中,对硬盘30的访问进行二次拆分。其中,图5中S代表该访问口为从(slave),M代表主(Master);M可以对S进行可寻址(PIO、DMA读写均可)访问,S只能响应M的访问。
如图7所示,硬盘30中的黑色方块就是用户希望读盘的数据;如图8所示,存储模块50中的黑色方块就是用户希望存盘的数据;与经典架构的区别在于,存储模块50不需要再由用户段拷贝至缓冲段。
专用缓存43是实施例中为合并逻辑而实现的一块独立于内存(DRAM)的高速缓存,旨在合并逻辑模块42工作需要访问缓存时独占该通道资源,不影响其他模块对专用缓存43的访问,也不受其他模块访问专用缓存43时的通道带宽影响。专用缓存43针对硬盘30数据读取或写入,避免其他资源的占用,提高了数据传输的效率。
在一个实施例中,如图6所示,提供了一种硬盘零碎块读写装置。具体的,寄存器模块41具体为寄存器组,合并逻辑模块42具体为合并逻辑,存储模块50为DRAM(动态随机存储器),中央处理器20为P2020通信处理器(品牌系列是QorIQ P2)。
如图6所示,本实施例平台由P2020作为PCIe网络(PCI-Express;peripheralcomponent interconnect express,一种高速串行计算机扩展总线标准)的RC(Resistor-Capacitance circuit,电阻-电容电路)与CPU,同时它还兼有DDR(Double Data Rate,双倍速率同步动态随机存储器)控制器,可以被PCIe外设进行直接存储器访问入站访问;硬盘使用标准的SATA接口盘(Serial Advanced Technology Attachment hard disk,串口硬盘);Xilinx公司的FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的XC7K352T作为实现本实施例的承载主体,它通过PCIE与P2020互联,SATA与硬盘互联,内部则使用标准AXI4总线进行片内IP互联。
FPGA的XC7K352T内:PCIe与SATA控制器为通用货架IP;而中间的专用寄存器组、合并逻辑和专用缓存为本实施例所提及的实体。当CPU发起零散访问时,它先根据访问的地址参数填写好专用寄存器组,随后即可控制SATA控制器发起以盘为Master的DMA(DirectMemory Access,直接存储器访问)操作(读或写)。在以盘为Master的DMA操作过程中,合并逻辑会根据专用寄存器组的配置信息,对DMA数据流进行分割,将实际用户数据和仪器数据分流到用户内存或者是专用缓存中,实现本实施例所述的高效操作。
在一个实施例中,如图5和图7所示,提供了一种应用硬盘零碎块读写装置的硬盘零碎块读取方法,所述硬盘零碎块读取方法包括:
步骤S202,接收读盘指令。
步骤S204,从硬盘30中读取第一硬盘数据;所述第一硬盘数据中包含用户所需的第一目标数据。
步骤S206,将所述第一目标数据写入存储模块50。
在本实施例中,中央处理模块20通过系统总线向适配器40发送读盘指令,适配器40从硬盘30中读取第一硬盘数据,之后将第一硬盘数据中的第一目标数据写入存储模块50中。本实施例将硬盘30数据的拆分和提取过程合并到适配器40中进行,将零散访问的各种缓存操作集中在适配器40中实现,使得系统不再需要作为缓存的内存配置,同时优化了零散访问的步骤,节省缓存拷贝的时间。
在一个实施例中,如图7所示,提供了一种应用硬盘零碎块读写装置的硬盘零碎块读取方法,步骤S204包括步骤S302~S304:
步骤S302,获取所述读盘指令,从所述读盘指令中获取所述第一目标数据的数据起始地址和数据结束地址。
步骤S304,从所述硬盘30中读取所述第一硬盘数据;所述第一硬盘数据为包含所述数据起始地址和所述数据结束地址的一个或多个连续盘块中的数据。
在本实施例中,中央处理模块20通过系统总线向寄存器模块41发送读盘指令,寄存器模块41向合并逻辑模块42发送控制命令,合并逻辑模块42从硬盘30中读取第一硬盘数据,之后将第一硬盘数据中的第一目标数据写入存储模块50中。
硬盘30由许多个连续的盘块组成,因此,在读取硬盘30的中的数据时,需要读取连续的盘块。比如,需要读取一个文件的0x100~0x150,即第一目标数据,第一目标数据的数据起始地址为0x100,第一目标数据的数据结束地址为0x150;而整个盘块的长度为0x000~0x200;因此,本实施例通过第一目标数据的数据起始地址和数据结束地址确定范围最小的连续盘块,减少读取无用数据的盘块的数量,进而提高硬盘数据读取的效率。
在一个实施例中,如图7所示,提供了一种应用硬盘零碎块读写装置的硬盘零碎块读取方法,步骤S206包括步骤S402~S406:
步骤S402,从所述硬盘30中读取包含所述第一目标数据的第一硬盘数据。
步骤S404,通过合并逻辑模块42将所述第一硬盘数据拆分为所述第一目标数据和第一子块数据。
步骤S406,将所述第一目标数据写入存储模块50,将所述第一子块数据写入专用缓存43中。
在本实施例中,合并逻辑模块42承担读取并拆分第一硬盘数据的工作。第一硬盘数据分成第一目标数据和第一子块数据两部分,第一目标数据是用户所需要的数据,第一子块数据为不需要的数据。
如图9所示,第一子块数据并不一定是连续的数据。比如,需要读取第一目标数据0x100~0x150,而整个盘块的长度为0x000~0x200;因此,第一子块数据由0x000~0x100和0x150~0x200两部分组成。整个数据读取的过程为可以是:合并逻辑模块42读取0x100~0x150数据,将0x100~0x150数据存入专用缓存的前段中;合并逻辑模块42读取0x100~0x150数据,将0x100~0x150数据存入存储模块50中;合并逻辑模块42读取0x150~0x200数据,将0x150~0x200数据存入专用缓存的后段中。
整个数据读取的过程为也可以是:合并逻辑模块42读取0x000~0x200数据,将0x000~0x100和0x150~0x200两部分数据直接存入专用缓存43中,将0x100~0x150数据存入存储模块50中。
以上数据读取两种方法在操作的时序上是一样的,对于硬盘30来说并没有将操作拆分,只不过前者是从逻辑读取操作的角度来描述,后者是从用户直观的角度描述;两者并不冲突。从结果来看,合并逻辑模块42将第一硬盘数据分流成第一目标数据和第一子块数据,实现本实施例所述的高效操作。
在一个实施例中,如图5和图8所示,提供了一种应用硬盘零碎块读写装置的硬盘零碎块写入方法,所述硬盘零碎块写入方法包括:
步骤S502,接收写盘指令。
步骤S504,从存储模块50中获取第二目标数据,从硬盘30中获取第二硬盘数据,用所述第二目标数据替换所述第二硬盘数据中对应位置的数据,得到第三硬盘数据。
步骤S506,将所述第三硬盘数据写入所述硬盘30。
在本实施例中,中央处理器20通过系统总线向适配器40发送写盘指令;适配器40从硬盘30中读取第二硬盘数据,从存储模块50中获取第二目标数据,用所述第二目标数据替换所述第二硬盘数据中对应位置的数据,得到第三硬盘数据;将第三硬盘数据写入硬盘30中。其中,第二硬盘数据为需要更改的连续盘块中的数据,其中包含需要更改的数据;第二目标数据为用户所需要的数据。本实施例将硬盘30数据的提取、更改和写入过程合并到适配器中进行,将零散访问的各种缓存操作集中在适配器40中实现,使得系统不再需要作为缓存的内存配置,同时优化了零散访问的步骤,节省缓存拷贝的时间。
在一个实施例中,如图8所示,提供了一种应用硬盘零碎块读写装置的硬盘零碎块写入方法,步骤S504包括步骤S602~S608:
步骤S602,从所述存储模块50中获取所述第二目标数据。
步骤S604,获取所述第二目标数据所要写入硬盘30中的数据起始地址和数据结束地址,从硬盘30中读取包括所述数据起始地址和所述数据结束地址的连续盘块,得到所述第二硬盘数据。
步骤S606,将所述第二硬盘数据写入适配器40的专用缓存43中。
步骤S608,用所述第二目标数据替换所述专用缓存43中以所述数据起始地址为始,以所述数据结束地址为末的连续数据,得到所述第三硬盘数据。
在本实施例中,合并逻辑模块42从硬盘30中读取第二硬盘数据的方法与读取第一硬盘数据的方法相同,在此不再赘述。如图10所示,第二目标数据位于第二硬盘数据的中间位置。合并逻辑模块42从硬盘30中读取第二硬盘数据后,将第二硬盘数据存入专用缓存43中;在写盘的过程中,先使用专用缓存43的前段数据,再使用存储模块50中的第二目标数据,最后使用专用缓存43的后段数据,将数据进行合并后,得到第三硬盘数据。
对于硬盘30来说并没有将操作拆分,而是合并逻辑模块42对存储模块50中发起了拆分访问,如图11所示。合并逻辑模块对步骤实现的方法为将读盘访问拆分为3个针对具体目标数据或缓存的DMA写访问。因此,本实施例的写盘书序和合并时序相同,在相同时序中对硬盘30进行数据读取,不占用额外资源。
在一个实施例中,如图8和图10所示,一种应用硬盘零碎块读写装置的硬盘零碎块写入方法,步骤S506包括步骤S702~S708:
步骤S702,获取所述第三硬盘数据,通过合并逻辑模块合并所述第二硬盘数据的写入时序。
步骤S704,将所述第二硬盘数据写入硬盘中,替换硬盘中的所述第一硬盘数据。
本实施例为步骤S506的展开,其具体实施方式已经体现在上实施例中,在此不再赘述。
图12示出了一个实施例中计算机设备的内部结构图。如图12所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现硬盘零碎块读取方法或硬盘零碎块写入方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行硬盘零碎块读取方法或硬盘零碎块写入方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收读盘指令;
从硬盘中读取第一硬盘数据;所述第一硬盘数据中包含用户所需的第一目标数据;
将所述第一目标数据写入存储模块。
或者;
接收写盘指令;
从存储模块中获取第二目标数据,从硬盘中获取第二硬盘数据,用所述第二目标数据替换所述第二硬盘数据中对应位置的数据,得到第三硬盘数据;
将所述第三硬盘数据写入所述硬盘。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
接收读盘指令;
从硬盘中读取第一硬盘数据;所述第一硬盘数据中包含用户所需的第一目标数据;
将所述第一目标数据写入存储模块。
或者;
接收写盘指令;
从存储模块中获取第二目标数据,从硬盘中获取第二硬盘数据,用所述第二目标数据替换所述第二硬盘数据中对应位置的数据,得到第三硬盘数据;
将所述第三硬盘数据写入所述硬盘。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种硬盘零碎块读写装置,其特征在于,所述硬盘零碎块读写装置包括中央处理器、硬盘、适配器和存储模块;所述中央处理器、所述硬盘和所述存储模块分别与所述适配器连接;
所述中央处理器用于向所述适配器发送读盘指令或写盘指令;
所述适配器根据所述读盘指令,将所述硬盘中的第一目标数据写入所述存储模块;所述适配器根据所述写盘指令,从所述存储模块中读取第二目标数据,将所述第二目标数据写入所述硬盘中;
所述硬盘用于存储数据,通过所述适配器读取或更改所述硬盘内特定的数据块;
所述存储模块用于存储已读取的所述第一目标数据和待写入的所述第二目标数据;
所述适配器包括寄存器模块、合并逻辑模块和专用缓存;所述寄存器模块连接所述中央处理器和所述硬盘;所述合并逻辑模块连接所述硬盘、所述存储模块和所述专用缓存;
所述寄存器模块内设有所述适配器的运行逻辑程序,使中央处理器对所述适配器进行配置和管理;
所述合并逻辑模块根据所述读盘指令,从所述硬盘中读取包含所述第一目标数据的第一硬盘数据,将所述第一硬盘数据拆分为所述第一目标数据和第一子块数据;将所述第一目标数据写入所述存储模块,将所述第一子块数据写入所述专用缓存中;
所述合并逻辑模块根据所述写盘指令,从所述硬盘中获取包含待替换数据的第二硬盘数据,将所述第二硬盘数据写入所述专用缓存中;从所述存储模块中读取所述第二目标数据,将所述第二目标数据写入所述专用缓存,覆盖待替换数据,得到第三硬盘数据;将所述第三硬盘数据写入所述硬盘中;
所述专用缓存用于实现所述合并逻辑模块工作所需的数据存储。
2.一种应用硬盘零碎块读写装置的硬盘零碎块读取方法,其特征在于,所述硬盘零碎块读取方法包括:
接收读盘指令;
从硬盘中读取第一硬盘数据;所述第一硬盘数据中包含用户所需的第一目标数据;
将所述第一目标数据写入存储模块;
从所述硬盘中读取第一硬盘数据的方法包括:
获取所述读盘指令,从所述读盘指令中获取所述第一目标数据的数据起始地址和数据结束地址;
从所述硬盘中读取所述第一硬盘数据;所述第一硬盘数据为包含所述数据起始地址和所述数据结束地址的一个或多个连续盘块中的数据;
将所述第一目标数据写入所述存储模块的方法包括:
从所述硬盘中读取包含所述第一目标数据的第一硬盘数据;
通过合并逻辑模块将所述第一硬盘数据拆分为所述第一目标数据和第一子块数据;
将所述第一目标数据写入存储模块,将所述第一子块数据写入专用缓存中。
3.一种应用硬盘零碎块读写装置的硬盘零碎块写入方法,其特征在于,所述硬盘零碎块写入方法包括:
接收写盘指令;
从存储模块中获取第二目标数据,从硬盘中获取第二硬盘数据,用所述第二目标数据替换所述第二硬盘数据中对应位置的数据,得到第三硬盘数据;
将所述第三硬盘数据写入所述硬盘;
得到所述第三硬盘数据的方法包括:
从所述存储模块中获取所述第二目标数据;
获取所述第二目标数据所要写入硬盘中的数据起始地址和数据结束地址,从硬盘中读取包括所述数据起始地址和所述数据结束地址的连续盘块,得到所述第二硬盘数据;
将所述第二硬盘数据写入适配器的专用缓存中;
用所述第二目标数据替换所述专用缓存中以所述数据起始地址为始,以所述数据结束地址为末的连续数据,得到所述第三硬盘数据。
4.根据权利要求3所述的硬盘零碎块写入方法,其特征在于,将所述第三硬盘数据写入所述硬盘的方法包括:
获取所述第三硬盘数据,通过合并逻辑模块合并所述第二硬盘数据的写入时序;
将所述第三硬盘数据写入硬盘中,替换硬盘中的第一硬盘数据。
5.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利2所述硬盘零碎块读取方法的步骤,或执行权利要求3或4所述的硬盘零碎块写入方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求2所述硬盘零碎块读取方法的步骤,或执行权利要求3或4所述的硬盘零碎块写入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111402106.0A CN114461134B (zh) | 2021-11-19 | 2021-11-19 | 硬盘零碎块读写装置、方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111402106.0A CN114461134B (zh) | 2021-11-19 | 2021-11-19 | 硬盘零碎块读写装置、方法、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114461134A CN114461134A (zh) | 2022-05-10 |
CN114461134B true CN114461134B (zh) | 2024-05-14 |
Family
ID=81406397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111402106.0A Active CN114461134B (zh) | 2021-11-19 | 2021-11-19 | 硬盘零碎块读写装置、方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461134B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN107402723A (zh) * | 2017-07-25 | 2017-11-28 | 北京腾凌科技有限公司 | 读写数据的方法及存储系统 |
CN111399766A (zh) * | 2020-01-08 | 2020-07-10 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4257834B2 (ja) * | 2003-05-06 | 2009-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 磁気ディスク装置、ファイル管理システム及びその方法 |
WO2009123603A1 (en) * | 2008-03-31 | 2009-10-08 | Hewlett-Packard Development Company, L.P. | Systems and methods for accessing hard disk drives |
US20100049926A1 (en) * | 2008-08-21 | 2010-02-25 | International Business Machines Corporation | Enhancement of data mirroring to provide parallel processing of overlapping writes |
CN109725824A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 用于向存储系统中的盘阵列写入数据的方法和设备 |
US11036427B2 (en) * | 2019-04-04 | 2021-06-15 | International Business Machines Corporation | Using content addressable memory to perform read-modify-write operations in non-volatile random access memory (NVRAM) |
-
2021
- 2021-11-19 CN CN202111402106.0A patent/CN114461134B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN107402723A (zh) * | 2017-07-25 | 2017-11-28 | 北京腾凌科技有限公司 | 读写数据的方法及存储系统 |
CN111399766A (zh) * | 2020-01-08 | 2020-07-10 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
一种高效的IDE硬盘控制器设计;裴希杰;田泽;刘航;刘宁宁;;计算机技术与发展;20150531(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114461134A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9069673B2 (en) | Memory system configured to perform segment cleaning and related method of operation | |
US9058254B2 (en) | Memory device | |
US7872922B2 (en) | Memory system and method of writing into nonvolatile semiconductor memory | |
US8332573B2 (en) | Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media | |
US9141549B2 (en) | Memory system with read and write caches and method of controlling memory system with read and write caches | |
KR100687151B1 (ko) | 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법 | |
KR100533682B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
CN112035381B (zh) | 一种存储系统及存储数据处理方法 | |
US20080046639A1 (en) | Memory system with nonvolatile semiconductor memory | |
KR102233400B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US20090094299A1 (en) | Apparatus and method for defragmenting files on a hydrid hard disk | |
CN111026325B (zh) | 闪存控制器、闪存控制器的控制方法及相关的电子装置 | |
US7598891B2 (en) | Data development device and data development method | |
CN114461134B (zh) | 硬盘零碎块读写装置、方法、计算机设备和存储介质 | |
US11256435B2 (en) | Method and apparatus for performing data-accessing management in a storage server | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
US8180951B2 (en) | Memory system and method of controlling the memory system | |
US20040186949A1 (en) | XIP system and method for serial memory | |
KR102343600B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 | |
TWI824761B (zh) | 在以快閃記憶體為基礎的儲存裝置中快取位址映射資訊的方法與裝置 | |
US20220197549A1 (en) | Memory controller and storage device including the same | |
US20240143193A1 (en) | Memory system related to selectively storing data and a corresponding map, and an operating method of the memory system | |
CN114356649A (zh) | 一种高性能和高安全性的数据保护方法及存储装置 | |
CN113448487A (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |