一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于eMMC的数据存储方法、装置、终端设备及存储介质与流程

2022-02-24 13:03:04 来源:中国专利 TAG:
基于emmc的数据存储方法、装置、终端设备及存储介质
技术领域
:1.本发明涉及计算机信息
技术领域
:,尤其涉及一种基于emmc的数据存储方法、装置、终端设备及存储介质。
背景技术
::2.emmc(embeddedmultimediacard,嵌入式多媒体控制器)的基本结构具体为将emmc控制器和nand型快闪存储器(nandflash)芯片封装在一块芯片内。emmc内部是由nandflash构成的,而nandflash存储器的更新是以块为单位的,导致基于emmc的存储系统随机写性能不稳定,特别是对于小数据的随机写性能较差,如现有技术中emmc对于小数据的写请求,每接收到操作系统下发的写请求,便直接更新该写请求所请求写入的块存储区域,进而在小数据的写请求频繁发生时,可能导致频繁将写请求对应的小数据多次写入到同一块存储区域,导致emmc的使用寿命变短。3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:4.本发明提供一种基于emmc的数据存储方法、装置、终端设备及存储介质,旨在解决频繁将写请求对应的小数据多次写入到同一块存储区域,导致emmc的使用寿命变短的问题。5.为实现上述目的,本发明提供一种基于emmc的数据存储方法,所述基于emmc的数据存储方法包括:6.接收到写请求时,获取所述写请求对应的目标扇区;7.将所述写请求缓存至所述目标扇区对应的缓存数据簇;8.在有所述缓存数据簇满足预设条件时,将满足所述预设条件的所述缓存数据簇中的所述写请求对应的写入数据写入所述缓存数据簇所对应的扇区,其中,满足所述预设条件的所述缓存数据簇缓存至少两次写请求。9.可选地,预设条件包括以下条件中的至少一种:10.所述缓存数据簇所对应扇区的剩余存储容量小于预设存储容量;11.所述缓存数据簇中的各个所述写请求对应的目标扇区组成所述缓存数据簇所对应的所有扇区。12.可选地,接收到写请求时,获取所述写请求对应的目标扇区的步骤之后,还包括:13.从lru管理列表中的连续缓存区获取待缓存数据簇;14.获取所述目标扇区对应的所述缓存数据簇;15.在所述待缓存数据簇与所述目标扇区对应的所述缓存数据簇相同时,执行将所述写请求缓存至所述目标扇区对应的所述缓存数据簇的步骤。16.可选地,获取所述目标扇区对应的缓存数据簇的步骤之后,还包括:17.在所述待缓存数据簇与所述目标扇区对应的缓存数据簇不相同时,获取上一次写请求对应的待写入扇区;18.在所述待写入扇区对应的待写入缓存数据簇与所述目标扇区对应的缓存数据簇相同,将所述缓存数据簇移动至lru管理列表中的连续缓存区。19.可选地,接收到写请求时,获取所述写请求对应的目标扇区的步骤之后,还包括:20.获取所述写请求对应的写入数据的存储容量;21.在所述存储容量小于或者等于第二预设存储容量时,执行所述将所述写请求缓存至所述目标扇区对应的缓存数据簇的步骤。22.可选地,获取所述写请求对应的写入数据的存储容量的步骤之后,还包括:23.在所述存储容量大于第二预设存储容量时,将所述写请求对应的写入数据写入到所述目标扇区。24.可选地,在有所述缓存数据簇满足预设条件时,将满足所述预设条件的所述缓存数据簇中的所述写请求对应的写入数据写入所述缓存数据簇所对应的扇区的步骤之后,还包括:25.将满足所述预设条件的所述缓存数据簇从lru管理列表中删除。26.此外,为实现上述目的,本发明还提供一种基于emmc的数据存储装置,所述基于emmc的数据存储装置包括:27.获取模块,用于接收到写请求时,获取所述写请求对应的目标扇区;28.缓存模块,用于将所述写请求缓存至所述目标扇区对应的缓存数据簇;29.写模块,用于在有所述缓存数据簇满足预设条件时,将满足所述预设条件的所述缓存数据簇中的所述写请求对应的写入数据写入所述缓存数据簇所对应的扇区,其中,满足所述预设条件的所述缓存数据簇缓存至少两次写请求。30.此外,为实现上述目的,本发明还提供一种终端设备,所述终端设备包括:存储器、处理器以及存储在所述存储器里并可在所述处理器上运行的基于emmc的数据存储程序,所述基于emmc的数据存储程序被所述处理器执行时实现如以上所述基于emmc的数据存储方法的各个步骤。31.此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有基于emmc的数据存储程序,所述基于emmc的数据存储程序被所述处理器执行时实现如以上所述基于emmc的数据存储方法的各个步骤。32.相较于每次接收到写请求,将写请求对应的写入数据写入至写请求对应的扇区,从而更新扇区所在的块存储区域,本发明提出的基于emmc的数据存储方法、装置、终端设备及存储介质,接收到写请求时,将写请求先缓存至缓存数据簇进行缓存,缓存数据簇是写请求要写入的目标扇区所对应的缓存数据簇,直到有缓存数据簇满足预设条件时,将满足预设条件的缓存数据簇中的写请求对应的写入数据一次性写入缓存数据簇所对应的扇区,在满足预设条件的缓存数据簇中缓存有至少两次写请求时,通过将至少两次写请求分别对应的写入数据通过一次写操作一次性写入缓存数据簇所对应的扇区,对扇区所在的块存储区域进行一次更新,减少了写入块存储区域的写入次数,增长emmc的使用寿命。附图说明33.图1为本发明的基于emmc的数据存储方法各个实施例涉及的终端设备的结构示意图;34.图2为本发明的基于emmc的数据存储方法一实施例的流程示意图;35.图3为emmc由一系列的数据簇组成的简单示意图;36.图4为lru映射表的映射关系示意图;37.图5为本发明的基于emmc的数据存储方法第二实施例的流程示意图;38.图6为本发明的基于emmc数据存储装置的模块示意图。39.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式40.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。41.本发明的一种基于emmc的数据存储方法,所述基于emmc的数据存储方法包括:42.接收到写请求时,获取所述写请求对应的目标扇区;43.所述写请求缓存至所述目标扇区对应的缓存数据簇;将所述写请求缓存至所述待缓存数据簇;44.在有所述缓存数据簇满足预设条件时,将满足所述预设条件的所述缓存数据簇中的所述写请求对应的写入数据写入所述缓存数据簇所对应的扇区,其中,满足所述预设条件的所述缓存数据簇缓存至少两次写请求。45.相较于每次接收到写请求,将写请求对应的写入数据写入至写请求对应的扇区,从而更新扇区所在的块存储区域,本发明的方法接收到写请求时,将写请求先缓存至缓存数据簇进行缓存,缓存数据簇是写请求要写入的目标扇区所对应的缓存数据簇,直到有缓存数据簇满足预设条件时,将满足预设条件的缓存数据簇中的写请求对应的写入数据一次性写入缓存数据簇所对应的扇区,在满足预设条件的缓存数据簇中缓存有至少两次写请求时,通过将至少两次写请求分别对应的写入数据通过一次写操作一次性写入缓存数据簇所对应的扇区,对扇区所在的块存储区域进行一次更新,减少了写入块存储区域的写入次数,增长emmc的使用寿命。46.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。47.终端设备可以以各种形式来实施。例如,本发明中描述的终端设备可以包括诸如计步器及便捷式媒体播放器(portablemediaplayer,pmp)等移动终端,也可以包括手环及手表等可穿戴设备。48.请参考图1,图1为本发明的基于emmc的数据存储方法各个实施例涉及的终端设备的结构示意图。49.如图1所示,该终端设备可以包括:存储器101以及处理器102。本领域技术人员可以理解,图1示出的终端的结构框图并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,存储器101中存储有操作系统以及基于emmc的数据存储程序。处理器102是终端设备的控制中心,处理器102执行存储在存储器101内的基于emmc的数据存储程序,以实现本发明的基于emmc的数据存储方法各实施例的步骤。50.可选地,终端设备还可包括显示单元103,显示单元103包括显示面板,可采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板,用于输出显示用户浏览的界面。51.基于上述终端设备的结构框图,提出本发明的基于emmc的数据存储方法的各个实施例。52.在一实施例中,本发明提供一种基于emmc的数据存储方法,请参考图2,图2为本发明的基于emmc的数据存储方法一实施例的流程示意图。在该实施例中,基于emmc的数据存储方法包括以下步骤:53.步骤s10,接收到写请求时,获取所述写请求对应的目标扇区;54.步骤s20,将所述写请求缓存至所述目标扇区对应的缓存数据簇;55.步骤s30,在有所述缓存数据簇满足预设条件时,将满足所述预设条件的所述缓存数据簇中的所述写请求对应的写入数据写入所述缓存数据簇所对应的扇区。56.emmc内部是由nandflash构成的,且由于nandflash存储器的更新是以块为单位的。为便于理解emmc的物理存储空间,从块设备驱动程序的角度来看,emmc的物理存储空间是由一系列的数据簇组成的,具体可参考图3,图3为emmc由一系列的数据簇组成的简单示意图。需要说明的是,每个数据簇有由多个连续的扇区组成,其中,扇区是物理存储的最基本处理单元。可以理解的是,由于emmc更新是以块为单位的,emmc驱动程序和emmc设备之间i/o传输的基本单位是由多个连续的扇区组成的数据簇。57.在本实施例中,对应于组成emmc的一系列数据簇,设置与每个数据簇对应的缓存数据簇,其中,缓存数据簇是占用内核存储容量的缓存区,缓存数据簇用于缓存写请求,通过设置lru管理列表也即lru映射表的方式实现缓存数据簇与扇区之间的对应关系,且通过lru管理列表管理与组成emmc的各个缓存数据簇。举例来说,组成emmc的一系列数据簇为:c0-cn,对应于每个数据簇相应设置缓存数据簇,也即缓存数据簇为cluster0-clustern,且假设数据簇c1对应的扇区为1-10时,缓存数据簇cluster0中存储的写请求所请求写入的扇区为1-10所对应的扇区,数据簇c1对应的扇区为11-20时,缓存数据簇cluster1中存储的写请求所请求写入的扇区为11-20所对应的扇区。58.可选地,lru管理列表也即lru映射表是缓存数据簇与扇区采用二级索引的方式实现。需要说明的是,lru映射表所包含有一级映射表以及二级映射表,其中,一级映射表包含了缓存数据簇的相关信息,二级映射表包含每个缓存数据簇与扇区之间的映射关系。举例来说,可参考图4,图4为lru映射表的映射关系示意图,其中,缓存数据簇的大小可设置为1m,每个扇区的大小为512个字节。59.可选地,通过lru管理列表管理与组成emmc的各个缓存数据簇,具体地,通过lru管理列表管理与组成emmc的各个缓存数据簇中,缓存数据簇所对应的扇区的剩余存储容量大于或者等于预设存储容量的目标缓存数据簇,其中,缓存数据簇所对应的扇区的剩余存储容量,是指缓存数据簇所对应的所有扇区中除了目标扇区之外的扇区的存储容量,目标扇区是缓存数据簇中所缓存的所有写请求所请求写入的扇区。60.可选地,缓存数据簇所对应的扇区的剩余存储容量大于或者等于预设存储容量的目标缓存数据簇,可以是目标缓存数据簇还存在有未写入数据的至少一个扇区。61.目标扇区为写请求写入的物体存储区域。接收到写请求时,获取写请求对应的目标扇区,其中,确定写请求的目标扇区可获取写请求要写入的物理地址,以通过物理地址确定要写入的目标扇区。62.基于缓存数据簇与扇区之间的对应关系,将写请求缓存至目标扇区对应的缓存数据簇,可先获取与目标扇区对应的缓存数据簇,进而将写请求缓存至缓存数据簇,以通过缓存数据簇“累计”至少两个写请求。63.步骤s30在有缓存数据簇满足预设条件时,将满足预设条件的缓存数据簇中的写请求对应的写入数据写入缓存数据簇所对应的扇区,可选地,预设条件包括以下条件中的至少一种:64.所述缓存数据簇所对应扇区的剩余存储容量小于预设存储容量;65.所述缓存数据簇中的各个所述写请求对应的目标扇区组成所述缓存数据簇所对应的所有扇区。66.需要说明的是,缓存数据簇所对应的扇区的剩余存储容量,是指缓存数据簇所对应的所有扇区中除了目标扇区之外的扇区的存储容量,目标扇区是缓存数据簇中所缓存的所有写请求所请求写入的扇区。在缓存数据簇所对应扇区的剩余存储容量小于预设存储容量时,表明缓存数据簇所对应的扇区中大概率不存在有未写入数据的扇区,将满足预设条件的缓存数据簇中的写请求对应的写入数据写入缓存数据簇所对应的扇区,以通过一次写操作写满缓存数据簇对应的整块存储区域。67.同理地,预设条件是缓存数据簇中的各个写请求对应的目标扇区组成缓存数据簇所对应的所有扇区,例如,缓存数据簇中缓存有写请求a、c以及d,a请求写入至cluster0的1-4扇区,c请求写入到cluster0的5-6扇区,d请求写入到cluster0的7-10扇区,其中,映射关系cluster0对应扇区1-10,缓存数据簇中缓存的写请求a、c以及d分别对应写入的目标扇区恰好组成缓存数据簇所对应的所有扇区,也即,表明缓存数据簇所对应的每个扇区均存储有数据。68.可选地,在预设条件包括缓存数据簇所对应扇区的剩余存储容量小于预设存储容量以及缓存数据簇中的各个所述写请求对应的目标扇区组成所述缓存数据簇所对应的所有扇区两个条件时,只要有缓存数据簇满足预设条件中的其中一个,则可认为有缓存数据簇满足预设条件。69.可选地,满足预设条件的缓存数据簇缓存至少两次写请求。70.此外,为便于理解本实施例,以下通过一个例子进行说明:71.假设存在以下写请求:a、b、c、d以及e,其中,a请求写入至cluster0的1-4扇区;b请求写入到cluster1的12-13扇区;c请求写入到cluster0的5-6扇区;d请求写入到cluster0的7-10扇区;e请求写入到cluster1的15-17扇区;其中,映射关系cluster0对应扇区1-10,cluster1对应扇区11-20。72.通过将写请求a、c、d依次缓存至cluster0,在cluster0对应的扇区均对应有待写入的写入数据时,可简单理解为写请求a、c、以及d合并成一个大的写请求f,将写请求f对应的写入数据写入至cluster0对应的扇区,也即将写请求a对应的写入数据写入至cluster0对应的1-4扇区,写请求c对应的写入数据写入至cluster0对应的5-6扇区,以及写请求d对应的写入数据写入至cluster0对应的7-10扇区,以存储满cluster0对应的整个块存储区域,从而达到通过一次写操作将多个小数据的写请求的写入数据写满cluster0对应的整个块存储区域,避免多个小数据的写请求分别通过多次写操作将写请求对应的写入数据写入至cluster0对应的整个块存储区域,减少写操作的次数。同理地,写请求b、e合并成另一个大的写请求g,在此不再赘述。其中,lru管理列表为cluster0和cluster1分别分配出f和g对应请求需要的写缓存。73.作为一种可选的实施方式,步骤s10之后,还包括:74.获取所述写请求对应的写入数据的存储容量;75.在所述存储容量小于或者等于第二预设存储容量时,执行步骤s20也即将所述写请求缓存至所述目标扇区对应的缓存数据簇;76.在所述存储容量大于第二预设存储容量时,将所述写请求对应的写入数据写入到所述目标扇区。77.可以理解的是,在写请求对应的写入数据的存储容量小于或者等于第二预设存储容量时,表明写请求为小数据的写请求,可将写请求缓存至目标扇区对应的缓存数据簇,以通过缓存数据簇对小数据的写请求进行累积,进而在缓存数据簇达到预设条件时,将满足预设条件的缓存数据簇中的写请求对应的写入数据写入缓存数据簇所对应的扇区;在写请求对应的写入数据的存储容量大于第二预设存储容量时,表明写请求为大数据的写请求,可直接将写请求对应的写入数据写入到目标扇区。78.可选地,第二预设存储容量可根据缓存数据簇所对应的一扇区的存储容量确定,还可根据缓存数据簇所对应的扇区数量以及一扇区的存储容量共同确定,以使得满足预设条件的缓存数据簇所缓存的写请求的数量为至少两次。79.作为一种可选的实施方式,步骤s30之后,还包括:80.将满足所述预设条件的所述缓存数据簇从lru管理列表中删除。81.lru(leastrecentlyused)即为最近最少使用策略,是一种缓存管理策略,该策略的基本思想是假设最近很少被重复访问的缓存纪录在最近的将来也不会被访问。在本实施例中,满足预设条件的缓存数据簇,也即缓存数据簇所对应的扇区大概率上已被写满时,可将满足预设条件的缓存数据簇从lru管理列表中删除,以预留出空闲的缓存区域空间存储扇区还未被写满的缓存数据簇。82.需要说明的是,emmc内部是由nandflash构成的,且由于nandflash存储器的更新是以块为单位的,导致基于emmc的存储系统在小数据的随机写性能方面较差,如接收到小数据的写请求,直接将该写请求对应的写入数据写入至对应的块存储区域,进而在小数据的写请求频繁发生时,导致频繁将写请求对应的小数据多次写入到同一块存储区域,导致emmc的使用寿命变短。83.相较于每次接收到写请求,将写请求对应的写入数据写入至写请求对应的扇区,从而更新扇区所在的块存储区域,在本实施例公开的技术方案中,接收到写请求时,将写请求先缓存至缓存数据簇进行缓存,缓存数据簇是写请求要写入的目标扇区所对应的缓存数据簇,直到有缓存数据簇满足预设条件时,将满足预设条件的缓存数据簇中的写请求对应的写入数据一次性写入缓存数据簇所对应的扇区,在满足预设条件的缓存数据簇中缓存有至少两次写请求时,通过将至少两次写请求分别对应的写入数据通过一次写操作一次性写入缓存数据簇所对应的扇区,对扇区所在的块存储区域进行一次更新,减少了写入块存储区域的写入次数,增长emmc的使用寿命。84.在基于上述任意一实施例的基础上提出的第二实施例中,请参考图5,图5为本发明的基于emmc的数据存储方法第二实施例的流程示意图。在该实施例中,步骤s10之后,还包括:85.步骤s40,从lru管理列表中的连续缓存区获取待缓存数据簇;86.步骤s50,获取所述目标扇区对应的所述缓存数据簇;87.步骤s60,在所述待缓存数据簇与所述目标扇区对应的所述缓存数据簇相同时,执行步骤s20即将所述写请求缓存至所述目标扇区对应的所述缓存数据簇。88.连续缓存区的待缓存数据簇指的是至少两次连续的写请求所请求写入的目标扇区所对应的缓存数据簇相同的数据簇,也即至少两次连续的写请求所请求写入的目标扇区属于同一个块存储区域。通过将待缓存数据簇放置于lru管理列表中的连续缓存区,表明待缓存数据簇所对应的扇区或者块存储区域频繁被写入数据,在接收到写请求时,可确定写请求所请求写入的目标扇区,优先确定目标扇区对应的缓存数据簇与待缓存数据簇是否相同,在待缓存数据簇与目标扇区对应的缓存数据簇相同时,表明写请求连续写入同一块存储区域,执行步骤s20即将写请求缓存至目标扇区对应的缓存数据簇,以减少分配缓存数据簇对应的写缓存时间同时,快速确定写请求命中的缓存数据簇。89.作为一种可选的实施方式,步骤s50之后,还包括:90.在所述待缓存数据簇与所述目标扇区对应的缓存数据簇不相同时,获取上一次写请求对应的待写入扇区;91.在所述待写入扇区对应的待写入缓存数据簇与所述目标扇区对应的缓存数据簇相同,将所述缓存数据簇移动至lru管理列表中的连续缓存区。92.在待缓存数据簇与目标扇区对应的缓存数据簇不相同时,表明写请求并非连续写入同一块存储区域,获取上一次写请求对应的待写入扇区,在待写入扇区对应的待写入缓存数据簇与目标扇区对应的缓存数据簇相同时,表明满足连续两次写请求所请求的写入的目标扇区所对应的缓存数据簇相同,该缓存数据簇所对应的扇区或者块存储区域大概率频繁被写入数据,将缓存数据簇移动至lru管理列表中的连续缓存区。93.在本实施例公开的技术方案中,通过将待缓存数据簇放置于lru管理列表中的连续缓存区,表明待缓存数据簇所对应的扇区或者块存储区域频繁被写入数据,在接收到写请求时,确定写请求所请求写入的目标扇区,优先确定目标扇区对应的缓存数据簇与待缓存数据簇是否相同,在待缓存数据簇与目标扇区对应的缓存数据簇相同时,将写请求缓存至目标扇区对应的缓存数据簇,以减少分配缓存数据簇对应的写缓存时间同时,快速确定写请求命中的缓存数据簇。94.本发明还提出一种基于emmc的数据存储装置100,请参考图6,图6为本发明的基于emmc数据存储装置的模块示意图,所述基于emmc的数据存储装置100包括:95.获取模块110,用于接收到写请求时,获取所述写请求对应的目标扇区;96.缓存模块120,用于将所述写请求缓存至所述目标扇区对应的缓存数据簇;97.写模块130,用于在有所述缓存数据簇满足预设条件时,将满足预设条件的所述缓存数据簇中的所述写请求对应的写入数据写入所述缓存数据簇所对应的扇区,其中,满足所述预设条件的所述缓存数据簇缓存至少两次写请求。98.本发明还提出一种终端设备,所述终端设备包括:包括存储器、处理器以及存储在存储器里并可在处理器上运行的基于emmc的数据存储程序,基于emmc的数据存储程序被处理器执行时实现上述任一实施例中的基于emmc的数据存储方法的步骤。99.本发明还提出一种存储介质,该存储介质上存储有基于emmc的数据存储程序,所述基于emmc的数据存储程序被处理器执行时实现如以上任一实施例所述的基于emmc的数据存储方法的步骤。100.在本发明提供的装置、终端设备和可读存储介质的实施例中,包含了上述基于emmc的数据存储方法各实施例的全部技术特征,说明书拓展和解释内容与上述基于emmc的数据存储方法的各实施例基本相同,在此不做再赘述。101.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。102.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。103.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本发明每个实施例的方法。104.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献