CN115344198A - 磁盘的数据读写方法、系统、终端设备及存储介质 - Google Patents

磁盘的数据读写方法、系统、终端设备及存储介质 Download PDF

Info

Publication number
CN115344198A
CN115344198A CN202210807692.5A CN202210807692A CN115344198A CN 115344198 A CN115344198 A CN 115344198A CN 202210807692 A CN202210807692 A CN 202210807692A CN 115344198 A CN115344198 A CN 115344198A
Authority
CN
China
Prior art keywords
data
writing
written
host
logical address
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.)
Pending
Application number
CN202210807692.5A
Other languages
English (en)
Inventor
邓海鑫
吴大畏
李晓强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Zhicun Technology Co ltd
Original Assignee
Guangzhou Zhicun Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Zhicun Technology Co ltd filed Critical Guangzhou Zhicun Technology Co ltd
Priority to CN202210807692.5A priority Critical patent/CN115344198A/zh
Publication of CN115344198A publication Critical patent/CN115344198A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种磁盘的数据读写方法、系统、终端设备以及存储介质,该方法包括:接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据对应的主机逻辑地址;将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取。本发明能够在磁盘进行大量的小数据更新时,提升磁盘随机数据的写入速度。

Description

磁盘的数据读写方法、系统、终端设备及存储介质
技术领域
本发明涉及存储器技术领域,尤其涉及一种磁盘的数据读写方法、系统、终端设备及存储介质。
背景技术
步入信息时代以来,随着网络技术和大数据技术的迅猛发展与应用,每时每刻在各行各业中都有海量数据产生。数据存储的重要性在如今日益明显,人们对数据存储系统的性能要求也越来越高,而磁盘由于能够存储大量需要长期保存的数据也备受人们青睐。但是当磁盘在进行大量的小数据更新,由于随机数据的不连续性,导致了磁盘写入大量小数据时需要频繁地对主机寻址表进行更新,这时磁盘的写入速度将是很缓慢的。因此,如何在磁盘进行大量的小数据更新时,提升磁盘随机数据的写入速度已经成为了行业内亟待解决的技术问题。
发明内容
本发明的主要目的在于提供一种磁盘的数据读写方法、系统、终端设备及存储介质,旨在实现在磁盘进行大量的小数据更新时,提升磁盘随机数据的写入速度。
为实现上述目的,本发明提供一种磁盘的数据读写方法,所述磁盘的数据读写方法包括以下步骤:
接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据对应的主机逻辑地址;
将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取。
进一步地,在所述将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表的步骤之前,所述方法还包括:
判断所述数据写入命令为随机写入还是顺序写入;
若所述数据写入命令为随机写入,则执行步骤:将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
若所述数据写入命令为顺序写入,则将所述待写入数据按照主机逻辑地址进行写入,以将所述待写入数据写入所述主机逻辑地址对应的设备逻辑地址。
进一步地,所述数据写入命令还包括:各待写入数据的扇区长度,所述判断所述数据写入命令为随机写入还是顺序写入的步骤,包括:
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据在所述数据写入命令中所有待写入数据的占比;
判断所述占比是否超过预设占比阈值;
若所述占比超过预设占比阈值,则判定所述数据写入命令为随机写入;
若所述占比不超过预设占比阈值,则判定所述数据写入命令为顺序写入。
进一步地,所述判断所述数据写入命令为随机写入还是顺序写入的步骤,还包括:
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据的数量;
判断所述数量是否超过预设数量阈值;
若所述数量超过预设数量阈值,则判定所述数据写入命令为随机写入;
若所述数量不超过预设数量阈值,则判定所述数据写入命令为顺序写入。
进一步地,所述将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入的步骤,包括:
将所述终端设备的空闲映射区域的起始设备逻辑地址作为起始写入地址;
以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域。
进一步地,所述建立所述主机逻辑地址与所述设备逻辑地址的地址映射表的步骤,包括:
获取各所述待写入数据实际写入的设备逻辑地址;
根据各所述待写入数据的主机逻辑地址和设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。
进一步地,所述根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取的步骤,包括:
根据所述地址映射表,将所述终端设备的主机寻址表中设备逻辑地址与主机逻辑地址的对应关系进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。
此外,为实现上述目的,本发明还提供一种磁盘的数据读写系统,所述磁盘的数据读写系统包括:
接收模块,用于接收到数据写入命令,所述数据写入命令包括待写入数据和所述待写入数据对应的主机逻辑地址;
写入模块,用于将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
更新模块,用于在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的设备逻辑地址与主机逻辑地址的寻址表进行更新。
此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的磁盘的数据读写程序,所述磁盘的数据读写程序被所述处理器执行时实现如上述中的磁盘的数据读写方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的磁盘的数据读写方法的步骤。
本发明提出的磁盘的数据读写方法、装置、终端设备以及计算机存储介质,通过接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据要写入的主机逻辑地址,将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表。本申请中由于是按照设备逻辑地址的顺序依次进行写入,则可以避免写入多个小数据时需要频繁对主机寻址表进行更新的情况,进而在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。因此,本实施例一方面在写入多个小数据时省去了频繁对主机寻址表进行更新的时间,从而提升了磁盘随机数据的写入速度。另一方面,对主机寻址表进行更新后再基于更新后的主机寻址表进行数据读取,也避免所述终端设备进行读取时,除了查询主机寻址表外还需要查询所述主机逻辑地址与所述设备逻辑地址的地址映射表才能读取的情况,从而避免了对于磁盘的读取速度的影响。
相比于传统方案,本发明将主机逻辑地址与终端设备的设备逻辑地址之间固定的一一对应关系分割开来,通过将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,则可以避免写入多个小数据时需要频繁对主机寻址表进行更新的情况,进而在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。因此,本实施例一方面在写入多个小数据时省去了频繁对主机寻址表进行更新的时间,从而提升了磁盘随机数据的写入速度。另一方面,对主机寻址表进行更新后再基于更新后的主机寻址表进行数据读取,也避免所述终端设备进行读取时,除了查询主机寻址表外还需要查询所述主机逻辑地址与所述设备逻辑地址的地址映射表才能读取的情况,从而避免了对于磁盘的读取速度的影响。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图;
图2是本发明一种磁盘的数据读写方法一实施例的流程示意图;
图3是本发明一种磁盘的数据读写系统的结构关系示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图。
需要说明的是,本发明实施例终端设备可以是针对以磁盘为存储介质的存储器,执行本发明提供的磁盘的数据读写方法的设备,该终端设备具体可以是移动终端、数据存储控制终端、PC(Personal Computer,个人计算机)或者便携计算机等终端。
如图1所示,该终端设备可以包括:处理器1001,例如CPU(Central ProcessingUnit,中央处理器),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对所述终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及磁盘的数据读写程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持磁盘的数据读写程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的磁盘的数据读写程序,并执行以下操作:
接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据对应的主机逻辑地址;
将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取。
进一步地,处理器1001可以调用存储器1005中存储的磁盘的数据读写程序,还执行以下操作:
判断所述数据写入命令为随机写入还是顺序写入;
若所述数据写入命令为随机写入,则执行步骤:将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
若所述数据写入命令为顺序写入,则将所述待写入数据按照主机逻辑地址进行写入,以将所述待写入数据写入所述主机逻辑地址对应的设备逻辑地址。
进一步地,处理器1001可以调用存储器1005中存储的磁盘的数据读写程序,还执行以下操作:
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据在所述数据写入命令中所有待写入数据的占比;
判断所述占比是否超过预设占比阈值;
若所述占比超过预设占比阈值,则判定所述数据写入命令为随机写入;
若所述占比不超过预设占比阈值,则判定所述数据写入命令为顺序写入。
进一步地,处理器1001可以调用存储器1005中存储的磁盘的数据读写程序,还执行以下操作:
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据的数量;
判断所述数量是否超过预设数量阈值;
若所述数量超过预设数量阈值,则判定所述数据写入命令为随机写入;
若所述数量不超过预设数量阈值,则判定所述数据写入命令为顺序写入。
进一步地,处理器1001可以调用存储器1005中存储的磁盘的数据读写程序,还执行以下操作:
将所述终端设备的空闲映射区域的起始设备逻辑地址作为起始写入地址;
以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域。
进一步地,处理器1001可以调用存储器1005中存储的磁盘的数据读写程序,还执行以下操作:
获取各所述待写入数据实际写入的设备逻辑地址;
根据各所述待写入数据的主机逻辑地址和设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。
进一步地,处理器1001可以调用存储器1005中存储的磁盘的数据读写程序,还执行以下操作:
根据所述地址映射表,将所述终端设备的主机寻址表中设备逻辑地址与主机逻辑地址的对应关系进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。
基于上述的结构,提出本发明磁盘的数据读写方法的各个实施例。
需要说明的是,通常情况下,主机逻辑地址与终端设备的设备逻辑地址为固定的一一对应关系,例如主机逻辑地址中的HostLBA-1对应设备逻辑地址中的deviceLBA-1;主机逻辑地址中的HostLBA-2对应设备逻辑地址中的deviceLBA-2;主机逻辑地址中的HostLBA-3对应设备逻辑地址中的deviceLBA-3。而当磁盘在进行大量的小数据更新,由于随机数据的不连续性,即大量的小数据对应的主机逻辑地址是不连续的,因此,该主机逻辑地址对应的设备逻辑地址也是不连续的,此时终端设备写入大量小数据则需要频繁地对主机寻址表进行更新,最终导致这时磁盘的写入速度非常缓慢。
针对上述现象,本申请提供一种磁盘的数据读写方法,通过接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据要写入的主机逻辑地址,将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表。本申请中由于是按照设备逻辑地址的顺序依次进行写入,则可以避免写入多个小数据时需要频繁对主机寻址表进行更新的情况,进而在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。因此,本实施例一方面在写入多个小数据时省去了频繁对主机寻址表进行更新的时间,从而提升了磁盘随机数据的写入速度。另一方面,对主机寻址表进行更新后再基于更新后的主机寻址表进行数据读取,也避免所述终端设备进行读取时,除了查询主机寻址表外还需要查询所述主机逻辑地址与所述设备逻辑地址的地址映射表才能读取的情况,从而避免了对于磁盘的读取速度的影响。
相比于传统方案,本发明将主机逻辑地址与终端设备的设备逻辑地址之间固定的一一对应关系分割开来,通过将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,则可以避免写入多个小数据时需要频繁对主机寻址表进行更新的情况,进而在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。因此,本实施例一方面在写入多个小数据时省去了频繁对主机寻址表进行更新的时间,从而提升了磁盘随机数据的写入速度。另一方面,对主机寻址表进行更新后再基于更新后的主机寻址表进行数据读取,也避免所述终端设备进行读取时,除了查询主机寻址表外还需要查询所述主机逻辑地址与所述设备逻辑地址的地址映射表才能读取的情况,从而避免了对于磁盘的读取速度的影响。
请参照图2,图2为本发明磁盘的数据读写方法第一实施例的流程示意图。
本发明实施例提供了磁盘的数据读写方法的实施例,本发明实施例磁盘的数据读写方法应用于上述终端设备中来提高磁盘的随机写入速度。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例中,本发明磁盘的数据读写方法包括:
步骤S100,接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据对应的主机逻辑地址;
所述终端设备接收到主机下发的数据写入命令,所述数据写入命令中可以包括一条或一条以上的待写入数据以及该待写入数据对应的主机逻辑地址。可以理解的是,所述数据写入命令还可以包括扇区长度(即所述待写入数据的数据量需要占据磁盘扇区的长度)等其他相关信息。
步骤S200,将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
在现有磁盘的数据写入方案中,主机逻辑地址与设备逻辑地址通常是一一对应的,例如主机逻辑地址中的HostLBA-1对应设备逻辑地址中的deviceLBA-1;主机逻辑地址中的HostLBA-2对应设备逻辑地址中的deviceLBA-2;主机逻辑地址中的HostLBA-3对应设备逻辑地址中的deviceLBA-3。在接收到数据写入命令时,将待写入数据按照各所述待写入数据的主机逻辑地址确定对应的终端设备的设备逻辑地址,依次将各待写入数据进行写入。因此,若待写入数据为大量的小数据时,则磁盘需要对主机寻址表进行频繁地更新。
而在本实施例中,则可以选取所述终端设备的空闲映射区域的起始设备逻辑地址作为起始写入地址,然后以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域。例如,所述起始写入地址为deviceLBA-10,则以所述起始写入地址为起点,将所述数据写入命令中的各所述待写入数据依次进行写入预设空闲存储区域。本实施例中,由于是按照设备逻辑地址的顺序依次进行写入,则可以避免写入多个小数据时需要频繁对主机寻址表进行更新的情况,从而在磁盘进行大量的小数据更新时,省去了频繁对主机寻址表进行更新的时间,提升磁盘随机数据的写入速度。
在写入待写入数据时,还可以获取各所述待写入数据实际写入的设备逻辑地址,然后根据各所述待写入数据的主机逻辑地址和设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。从而本实施例通过建立所述主机逻辑地址与所述设备逻辑地址的地址映射表,从而确定所述待写入数据实际写入的设备逻辑地址与该待写入数据的主机逻辑地址之间的对应关系。
其中,步骤S200中所述将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入的步骤,包括:
步骤S210,将所述终端设备的空闲映射区域的起始设备逻辑地址作为起始写入地址;
步骤S211,以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域。
其中,所述预设空闲存储区域为所述终端设备的存储区域内的未存储数据的存储区域。终端设备的空闲映射区域为所述终端设备的闲置映射区域内设备逻辑地址未被使用的映射区域。
可以理解的是,所述终端设备实际可访问的映射区域可以大于主机可访问的映射区域,因此存在闲置映射区域。例如,终端设备中主机可访问的映射区域对应的设备逻辑地址为deviceLBA-1至deviceLBA-256,但终端设备实际可访问的映射区域对应的设备逻辑地址为deviceLBA-1至deviceLBA-512,则所述终端设备的闲置映射区域对应的设备逻辑地址deviceLBA-257至deviceLBA-512。在该闲置映射区域内的设备逻辑地址均未被使用时,则所述终端设备的空闲映射区域为该闲置映射区域,该空闲映射区域的起始设备逻辑地址为deviceLBA-257。当在该闲置映射区域内的设备逻辑地址被使用一部分时,则所述终端设备的闲置映射区域内设备逻辑地址未被使用的部分映射区域为所述空闲映射区域。例如,闲置映射区域内的设备逻辑地址deviceLBA-257至deviceLBA-300被使用,则设备逻辑地址deviceLBA-301至deviceLBA-300对应的映射区域为空闲映射区域,该空闲映射区域对应的起始设备逻辑地址为deviceLBA-301。
本实施例中,通过将所述终端设备的空闲映射区域的起始设备逻辑地址作为起始写入地址,以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域,从而避免在磁盘进行大量的小数据更新时,需要频繁对主机寻址表进行更新的情况,提升磁盘随机数据的写入速度。
其中,步骤S200中所述建立所述主机逻辑地址与所述设备逻辑地址的地址映射表的步骤,包括:
步骤S220,获取各所述待写入数据实际写入的设备逻辑地址;
步骤S221,根据各所述待写入数据的主机逻辑地址和设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。
在将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入的时,获取各所述待写入数据实际写入的设备逻辑地址。根据各所述待写入数据的主机逻辑地址以及待写入数据实际写入的设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。例如,待写入数据的主机逻辑地址为HostLBA-1,而该待写入数据实际写入的设备逻辑地址为deviceLBA-10,则所述地址映射表中HostLBA-1则对应deviceLBA-10。
步骤S300,在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取。
当所述终端设备完成所述数据写入命令后,或是所述终端设备不存在命令需要执行的情况下,则可以认为所述终端设备处于空闲状态。所述主机寻址表为所述终端设备存储用于确定设备逻辑地址与主机逻辑地址对应关系的列表。由于本实施例中,将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,因此设备逻辑地址与主机逻辑地址对应关系发生了变化,则需要根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以将设备逻辑地址与主机逻辑地址恢复成准确的一一对应关系,从而可以基于更新后的主机寻址表进行数据读取。避免出现所述终端设备进行读取时,除了查询主机寻址表外还需要查询所述主机逻辑地址与所述设备逻辑地址的地址映射表才能读取的情况,从而避免了对于磁盘的读取速度的影响。
影响所述终端设备的磁盘的读取速度。
其中,步骤S300包括以下步骤:
步骤S310,根据所述地址映射表,将所述终端设备的主机寻址表中设备逻辑地址与主机逻辑地址的对应关系进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。
现有的主机寻址表通常是一个设备逻辑地址与一个主机逻辑地址之间存在固定对应关系。例如,设备逻辑地址中的deviceLBA-1对应主机逻辑地址中的HostLBA-1;设备逻辑地址中的deviceLBA-2对应主机逻辑地址中的HostLBA-2;设备逻辑地址中的deviceLBA-3对应主机逻辑地址中的HostLBA-3。当所述终端设备接收到主机的数据读取命令时,根据数据读取命令中的主机逻辑地址,查询该主机寻址表,确定需要所述主机的数据读取命令期望读取的数据处于哪一设备逻辑地址。因此,本实施例中,通过根据所述地址映射表,将所述终端设备的主机寻址表中设备逻辑地址与主机逻辑地址的对应关系进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系,可以避免在主机下发数据读取命令时,在查询该主机寻址表后,还需要再次查询地址映射表,才能获得主机下发数据读取命令对应的设备逻辑地址,从而可以避免影响所述终端设备的磁盘的读取速度。
本发明第一实施例中,通过接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据要写入的主机逻辑地址,将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表。本实施例中由于是按照设备逻辑地址的顺序依次进行写入,则可以避免写入多个小数据时需要频繁对主机寻址表进行更新的情况,进而在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。因此,本实施例一方面在写入多个小数据时省去了频繁对主机寻址表进行更新的时间,从而提升了磁盘随机数据的写入速度。另一方面,对主机寻址表进行更新后再基于更新后的主机寻址表进行数据读取,也避免所述终端设备进行读取时,除了查询主机寻址表外还需要查询所述主机逻辑地址与所述设备逻辑地址的地址映射表才能读取的情况,从而避免了对于磁盘的读取速度的影响。
更进一步地,另一实施例中,在步骤S200之前,所述方法还包括:
步骤S230,判断所述数据写入命令为随机写入还是顺序写入;
步骤S231,若所述数据写入命令为随机写入,则执行步骤:将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
步骤S232,若所述数据写入命令为顺序写入,则将所述待写入数据按照主机逻辑地址进行写入,以将所述待写入数据写入所述主机逻辑地址对应的设备逻辑地址。
在各待写入数据进行写入之前,可以根据所述数据写入命令中各所述待写入数据的扇区长度,所述数据写入命令中扇区长度较小的待写入数据的数量、占比等信息,判断所述数据写入命令的类型为存在较多扇区长度较小的待写入数据的随机写入,还是存在较多扇区长度较大的待写入数据的顺序写入。若所述数据写入命令为随机写入,则执行步骤S200,以提升磁盘随机数据的写入速度。若所述数据写入命令为顺序写入,说明存在较多扇区长度较大的待写入数据,则将所述待写入数据按照主机逻辑地址进行写入,以将所述待写入数据写入所述主机逻辑地址对应的设备逻辑地址。从而避免在扇区长度较小的待写入数据的数量较少的情况下,依旧建立所述主机逻辑地址与所述设备逻辑地址的地址映射表,并对终端设备的主机寻址表进行更新,进而可以保证在顺序写入的情况下,所述终端设备的写入速度不影响,以及减少所述终端设备的不必要的操作。
其中,所述数据写入命令还包括:各待写入数据的扇区长度,所述步骤S230包括:
步骤S240,根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据在所述数据写入命令中所有待写入数据的占比;
步骤S241,判断所述占比是否超过预设占比阈值;
步骤S242,若所述占比超过预设占比阈值,则判定所述数据写入命令为随机写入;
步骤S243,若所述占比不超过预设占比阈值,则判定所述数据写入命令为顺序写入。
具体地,所述数据写入命令还包括:各待写入数据的扇区长度,所述预设扇区长度为判定所述待写入数据是否为小数据(即数据量较小的数据)的阈值,如15个、20个、30个等。当待写入数据的扇区长度低于预设扇区长度时,则认为该待写入数据为小数据。当待写入数据的扇区长度不低于预设扇区长度时,则认为该待写入数据不是小数据。根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据在所述数据写入命令中所有待写入数据的占比,然后通过判断所述占比是否超过预设占比阈值(如40%、50%、60%等);若所述占比超过预设占比阈值,说明所述数据写入命令中待写入数据中小数据的占比较高,则判定所述数据写入命令为随机写入。若所述占比不超过预设占比阈值,说明所述数据写入命令中待写入数据中小数据的占比较低,大部分待写入数据的数据量较大,则判定所述数据写入命令为顺序写入。
其中,步骤S230还包括:
步骤S250,根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据的数量;
步骤S251,判断所述数量是否超过预设数量阈值;
步骤S252,若所述数量超过预设数量阈值,则判定所述数据写入命令为随机写入;
步骤S253,若所述数量不超过预设数量阈值,则判定所述数据写入命令为顺序写入。
在实际应用过程中也可能存在占比较高,但扇区长度低于预设扇区长度的待写入数据的数量较低的情况。例如数据写入命令中待写入数据为1个,该待写入数据为小数据,则占比高达100%。但实际待写入数据为小数据的数量较低的情况下,若依旧执行步骤S200和S300,则相对于直接按照主机逻辑地址进行写入,还需要额外增加地址映射表的建立过程和主机寻址表的更新过程,有可能会影响所述终端设备的磁盘的读写速度。
因此,可以根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据的数量,进而判断所述数量是否超过预设数量阈值。若所述数量超过预设数量阈值(如15、20、25等),说明所述数据写入命令中待写入数据中小数据的数量较高,则判定所述数据写入命令为随机写入。若所述数量不超过预设数量阈值,所述数据写入命令中待写入数据中小数据的数量较少,则判定所述数据写入命令为顺序写入。
可以理解的是,步骤S240、步骤S241以及步骤S250、步骤S251这两实施例中的步骤可以同时进行,例如当所述扇区长度低于预设扇区长度的待写入数据的占比超过预设占比阈值,所述扇区长度低于预设扇区长度的待写入数据的数量超过预设数量阈值的情况下,判定所述数据写入命令为随机写入。其他情况则判定所述数据写入命令为顺序写入。
此外,请参照图3,本发明实施例还提出一种磁盘的数据读写系统,所述磁盘的数据读写系统包括:
接收模块10,用于接收到数据写入命令,所述数据写入命令包括待写入数据和所述待写入数据要写入的主机逻辑地址;
写入模块20,用于将所述待写入数据按照存储设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
更新模块30,用于在所述存储设备处于空闲状态时,根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取。
可选地,所述磁盘的数据读写系统还包括:判断模块40,用于
判断所述数据写入命令为随机写入还是顺序写入;
若所述数据写入命令为随机写入,则执行步骤:将所述待写入数据按照存储设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
若所述数据写入命令为顺序写入,则将所述待写入数据按照主机逻辑地址进行写入,以将所述待写入数据写入所述主机逻辑地址对应的设备逻辑地址。
可选地,判断模块40,还用于
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据在所述数据写入命令中所有待写入数据的占比;
判断所述占比是否超过预设占比阈值;
若所述占比超过预设占比阈值,则判定所述数据写入命令为随机写入;
若所述占比不超过预设占比阈值,则判定所述数据写入命令为顺序写入。
可选地,判断模块40,还用于
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据的数量;
判断所述数量是否超过预设数量阈值;
若所述数量超过预设数量阈值,则判定所述数据写入命令为随机写入;
若所述数量不超过预设数量阈值,则判定所述数据写入命令为顺序写入。
可选地,写入模块20,还用于
将所述存储设备的空闲存储分区的起始设备逻辑地址作为起始写入地址;
以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域。
可选地,写入模块20,还用于
获取各所述待写入数据实际写入的设备逻辑地址;
根据各所述待写入数据的主机逻辑地址和设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。
可选地,更新模块30,还用于
根据所述地址映射表,将所述存储设备的主机寻址表中设备逻辑地址与主机逻辑地址的对应关系进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。
本发明磁盘的数据读写系统的各个功能模块在控制器运行时所实现的步骤,可参照上述本发明磁盘的数据读写方法的实施例,此处不再赘述。
此外,本发明实施例还提出一种终端设备,该终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的磁盘的数据读写程序,该磁盘的数据读写程序被所述处理器执行时实现如上述中的磁盘的数据读写方法的步骤。
其中,在所述处理器上运行的磁盘的数据读写程序被执行时所实现的步骤可参照本发明磁盘的数据读写方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机存储介质,应用于计算机,该计算机存储介质可以为非易失性计算机可读计算机存储介质,该计算机存储介质上存储有磁盘的数据读写程序,所述磁盘的数据读写程序被处理器执行时实现如上所述的磁盘的数据读写方法的步骤。
其中,在所述处理器上运行的磁盘的数据读写程序被执行时所实现的步骤可参照本发明磁盘的数据读写方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机存储介质(如Flash存储器、ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)中,用于控制该存储介质进行数据读写操作的控制器执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种磁盘的数据读写方法,其特征在于,所述磁盘的数据读写方法包括以下步骤:
接收数据写入命令,所述数据写入命令包括各待写入数据和各所述待写入数据对应的主机逻辑地址;
将各所述待写入数据按照终端设备的设备逻辑地址的顺序依次进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
在所述终端设备处于空闲状态时,根据所述地址映射表对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取,以基于更新后的主机寻址表进行数据读取。
2.如权利要求1所述的磁盘的数据读写方法,其特征在于,在所述将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表的步骤之前,所述方法还包括:
判断所述数据写入命令为随机写入还是顺序写入;
若所述数据写入命令为随机写入,则执行步骤:将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
若所述数据写入命令为顺序写入,则将所述待写入数据按照主机逻辑地址进行写入,以将所述待写入数据写入所述主机逻辑地址对应的设备逻辑地址。
3.如权利要求2所述的磁盘的数据读写方法,其特征在于,所述数据写入命令还包括:各待写入数据的扇区长度,所述判断所述数据写入命令为随机写入还是顺序写入的步骤,包括:
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据在所述数据写入命令中所有待写入数据的占比;
判断所述占比是否超过预设占比阈值;
若所述占比超过预设占比阈值,则判定所述数据写入命令为随机写入;
若所述占比不超过预设占比阈值,则判定所述数据写入命令为顺序写入。
4.如权利要求3所述的磁盘的数据读写方法,其特征在于,所述判断所述数据写入命令为随机写入还是顺序写入的步骤,还包括:
根据所述数据写入命令,确定所述扇区长度低于预设扇区长度的待写入数据的数量;
判断所述数量是否超过预设数量阈值;
若所述数量超过预设数量阈值,则判定所述数据写入命令为随机写入;
若所述数量不超过预设数量阈值,则判定所述数据写入命令为顺序写入。
5.如权利要求1所述的磁盘的数据读写方法,其特征在于,所述将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入的步骤,包括:
将所述终端设备的空闲映射区域的起始设备逻辑地址作为起始写入地址;
以所述起始写入地址为起点,将各所述待写入数据依次进行写入预设空闲存储区域。
6.如权利要求1所述的磁盘的数据读写方法,其特征在于,所述建立所述主机逻辑地址与所述设备逻辑地址的地址映射表的步骤,包括:
获取各所述待写入数据实际写入的设备逻辑地址;
根据各所述待写入数据的主机逻辑地址和设备逻辑地址,建立主机逻辑地址与设备逻辑地址的地址映射表。
7.如权利要求1所述的磁盘的数据读写方法,其特征在于,所述根据所述地址映射表,对所述终端设备的主机寻址表进行更新,以基于更新后的主机寻址表进行数据读取的步骤,包括:
根据所述地址映射表,将所述终端设备的主机寻址表中设备逻辑地址与主机逻辑地址的对应关系进行更新,以恢复所述设备逻辑地址与主机逻辑地址之间实际的对应关系。
8.一种磁盘的数据读写系统,其特征在于,所述磁盘的数据读写系统包括:
接收模块,用于接收到数据写入命令,所述数据写入命令包括待写入数据和所述待写入数据对应的主机逻辑地址;
写入模块,用于将所述待写入数据按照终端设备的设备逻辑地址的顺序进行写入,并建立所述主机逻辑地址与所述设备逻辑地址的地址映射表;
更新模块,用于在所述终端设备处于空闲状态时,根据所述地址映射表,对所述终端设备的设备逻辑地址与主机逻辑地址的寻址表进行更新。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的磁盘的数据读写程序,所述磁盘的数据读写程序被所述处理器执行时实现如权利要求1至7中任一项所述的磁盘的数据读写方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的磁盘的数据读写方法的步骤。
CN202210807692.5A 2022-07-08 2022-07-08 磁盘的数据读写方法、系统、终端设备及存储介质 Pending CN115344198A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210807692.5A CN115344198A (zh) 2022-07-08 2022-07-08 磁盘的数据读写方法、系统、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210807692.5A CN115344198A (zh) 2022-07-08 2022-07-08 磁盘的数据读写方法、系统、终端设备及存储介质

Publications (1)

Publication Number Publication Date
CN115344198A true CN115344198A (zh) 2022-11-15

Family

ID=83948671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210807692.5A Pending CN115344198A (zh) 2022-07-08 2022-07-08 磁盘的数据读写方法、系统、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN115344198A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117708000A (zh) * 2024-02-05 2024-03-15 成都佰维存储科技有限公司 数据的随机写入方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117708000A (zh) * 2024-02-05 2024-03-15 成都佰维存储科技有限公司 数据的随机写入方法、装置、电子设备及存储介质
CN117708000B (zh) * 2024-02-05 2024-05-07 成都佰维存储科技有限公司 数据的随机写入方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106445398B (zh) 一种基于新型存储器的嵌入式文件系统及其实现方法
KR101555210B1 (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
CN113625973B (zh) 数据写入方法、装置、电子设备及计算机可读存储介质
CN105988875B (zh) 一种运行进程的方法及装置
CN111666184B (zh) 固态驱动器ssd硬盘测试方法、装置及电子设备
CN115344198A (zh) 磁盘的数据读写方法、系统、终端设备及存储介质
CN115712394A (zh) 数据读写方法、装置、计算机设备及可读存储介质
US8185676B2 (en) Transitions between ordered and ad hoc I/O request queueing
CN115981565A (zh) 存储器、数据存储方法及电子设备
CN110334034B (zh) 映射表动态加载的方法、装置、计算机设备及存储介质
CN112328526A (zh) Io操作方法和装置
CN117008832A (zh) 智能座舱车辆数据的读写方法、装置、设备及存储介质
CN115269452A (zh) Trim命令处理方法、系统、终端设备及存储介质
CN111562983B (zh) 内存优化方法、装置、电子设备及存储介质
US20080162783A1 (en) Dynamically updateable and moveable memory zones
CN114138176B (zh) Nor Flash的擦除、升级方法及装置、计算机设备和存储介质
CN115576863A (zh) 一种数据读写方法、存储设备及存储介质
CN112650513B (zh) 程序升级方法、装置、计算机设备和存储介质
CN113971977A (zh) 存储器的读干扰影响检测方法、装置、设备及存储介质
CN116048377A (zh) 固态硬盘的数据处理方法及相关设备
CN108959517B (zh) 文件管理方法、装置及电子设备
CN112882831A (zh) 一种数据处理方法及装置
CN112631773A (zh) 数据动态释放方法、装置、设备及存储介质
CN115344202A (zh) 热数据的管理方法、装置、终端设备以及计算机存储介质
CN111459848A (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