CN111506262A - 一种存储系统、文件存储和读取方法及终端设备 - Google Patents
一种存储系统、文件存储和读取方法及终端设备 Download PDFInfo
- Publication number
- CN111506262A CN111506262A CN202010219526.4A CN202010219526A CN111506262A CN 111506262 A CN111506262 A CN 111506262A CN 202010219526 A CN202010219526 A CN 202010219526A CN 111506262 A CN111506262 A CN 111506262A
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- logic unit
- storage form
- unit
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- 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/0608—Saving storage space on storage systems
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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/0658—Controller construction 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/068—Hybrid 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/0683—Plurality of storage devices
-
- 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
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种存储系统、文件存储和读取方法及终端设备,该方法可以应用于人工智能领域,终端设备可以是手机、平板、笔记本等。以包括UFS的存储系统为例,该存储系统通过配置UFS的不同的介质形态,例如配置UFS包括SLC和TLC介质形态的持久化存储空间,实现混合介质的多盘存储。并基于该存储系统,优先选取与应用运行速率相关的热点文件,存储到UFS的SLC存储区,并将映射的多盘的文件挂载在文件系统的同一目录下,可以在用户无感知的情况下实现文件在SLC存储区和TLC存储区的迁移,从而提高存储系统的性能;此外,配置该UFS具有多种介质形态的转换模式,平衡用户对性能和容量的需求,保证运行速率,提高用户体验。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种混合介质多盘存储系统、文件存储和读取方法以及终端设备。
背景技术
现有的终端设备中通常都内置有存储器件,以扩大终端设备的存储空间。通过配置存储器件的不同介质类型,对应的不同存储区域,且不同存储区域用于存储不同的数据类型,从而在终端设备的运行过程中,实现混合介质的多盘存储,提高终端设备的存储性能。
例如,对于个人电脑(personal computer,PC)等固定终端,通常是内置固态硬盘(solid state drive,SSD)或者机械硬盘(hard disk drive,HDD)等多个存储器件,通过存储器件之间的性能差异实现混合介质的多盘存储,从而提高存储性能。
对于手机等移动终端,一般内置有如通用闪存存储(universal flash storage,UFS)或者内嵌式多媒体存储卡(embedded multimedia card,EMMC)等单一存储器件。由于手机等移动终端具有轻薄、精小、便携的特点,结构空间狭窄,一般只能内置单个存储器件,且该单个的存储器件通常被配置为具有较大容量的存储形态。随着用户需求的增大,需要存储的数据会越来越多,如果该存储器件的存储空间满足要求,那么性能便无法满足用户的使用需求。
发明内容
本申请提供一种存储系统、文件存储和读取方法以及终端设备,能够实现混合介质的多盘存储,兼顾存储系统的容量、性能和寿命。
第一方面,提供了一种存储方法,该方法应用于包括处理器和通用闪存存储器UFS的电子设备中,该方法包括:配置该UFS的第一逻辑单元的数据存储形态为第一存储形态,第二逻辑单元的数据存储形态为第二存储形态,该第一逻辑单元和该第二逻辑单元挂载在文件系统的同一目录下,该第一存储形态和该第二存储形态相异,且该第二存储形态的读写性能大于该第一存储形态的读写性能;响应于新文件的创建请求,确定第一信息,根据该第一信息选择该第一逻辑单元或者该第二逻辑单元,并在选择的逻辑单元中创建该新文件。
示例性的,在本申请实施例中,将第二逻辑单元配置为比第一逻辑单元具有更高读写性能的颗粒介质。换言之,具有第二存储形态的第二逻辑单元比具有第一存储形态的第一逻辑单元具有更高的读写性能。例如在UFS的存储空间中配置包括SLC存储形态的第二逻辑单元和TLC存储形态的第一逻辑单元。
应理解,本申请实施例中配置的SLC存储区(第二逻辑单元)为持久存储区,该SLC存储区相当于从原有的常规存储区(TLC存储区)中划分出的一部分固定存储,是终端设备机身存储的一部分,该SLC存储区存储的数据在断电后继续保留。
本申请实施例通过配置SLC存储形态的高速存储区,处理器可以直接将文件创建到该SLC存储区,且可以从该SLC存储区读取文件,避免了只能通过缓存区(cache)将文件创建到常规存储区(TLC存储区)进行持久化存储。由于SLC介质的性能和寿命都远远高于TLC介质,因此,本申请实施例提供的存储系统可以提高数据读写的性能,且可以提高存储系统的寿命。
应理解,本申请实施例的SLC存储区和TLC存储区映射的盘挂载在文件系统的同一目录下。因此,对于一个应用的文件,可以在SLC存储区和TLC存储区之间进行迁移,在用户层面上,用户不需要感知该迁移过程,也不会影响用户的使用。
应理解,这里的新文件可以是指在应用安装包经过解压、编译等得到的各种文件。
对于系统创建新文件的过程,可以对应不同的实现过程。例如,系统可以通过open接口打开缓冲区,根据参数执行不同的结果,如果没有文件就创建文件,例如通过write接口写入该新文件的内容,通过close接口关闭该新文件。
在一种可能的实现方式中,创建新文件到文件系统的过程中,当该新文件需要被创建到SLC存储区(高速存储区)时,首先系统可以调用open接口或者create接口,创建新文件,获取该新文件的描述符fd;再调用ioctl接口传入参数,指定该新文件的内容要落盘到SLC存储区映射的快盘;再调用write接口写入该新文件的内容到该描述符fd对应的内存缓冲区,调用close接口关闭该新文件的描述符fd,最后内核文件系统会在合适的时机将内存中数据回刷到磁盘的高速存储区,该新文件的内容实现真正落盘。
创建新文件到文件系统的过程中,当该新文件需要被创建到TLC存储区(常规存储区)时,首先系统可以调用open接口或者create接口,创建新文件,获取该新文件描述符fd;再调用ioctl接口传入参数,指定该新文件的内容要落盘到TLC存储区映射的慢盘;再调用write接口写入该新文件的内容到该描述符fd对应的内存缓冲区,调用close接口关闭文件描述符该新文件的描述符fd,最后内核文件系统会在合适的时机将内存中数据回刷到磁盘的常规存储区,该新文件的内容实现真正落盘。
应理解,以上介绍的过程为一种可能的创建新文件并将新文件的内容落盘过程,还可以通过不同的实现方式,本申请实施例对此不作限定。在本申请实施例中,系统调用的接口不包含任何逻辑单元LU的信息,对于用户层面,各类应用访问文件的接口不需要变化。
还应理解,本申请实施例中,针对每一个应用的文件,通过按照不同的规则区分不同的文件,再将不同的文件分别创建到UFS的SLC存储区和TLC存储区,以满足不同场景下,对性能和存储容量的需求。
可选地,该创建新文件的请求消息中可以包括机器学习的数据或者预设数据表的信息,主机可以根据接收的请求消息获取该机器学习的数据或者预设数据表的信息,该机器学习的数据或者预设数据表的信息可以列举多个热点应用或者某应用的热点文件,从而主机可以确定用户当前待安装的应用是否是热点应用,或者该应用中的哪些文件是热点文件。或者,主机还可以通过其他可能的方式获取该机器学习的数据或者预设数据表的信息,本申请实施例对此不作限定。
结合第一方面,在第一方面的某些实现方式中,该第一信息包括该新文件的文件类型信息。
可选地,主机可以根据创建新文件的请求消息,该创建新文件的请求消息还可以包括该新文件的文件类型的信息,主机可以结合前述机器学习的数据或者预设数据表的信息,和该新文件的文件类型的信息,选择创建新文件到第一逻辑单元或者第二逻辑单元。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一信息包括该新文件所属目录的信息;或者当该新文件作为目录文件时,该第一信息包括该目录文件的信息。
应理解,该新文件所属的目录或者该新文件作为目录文件的信息,也可以包含在主机30接收到的新文件创建请求消息中,本申请实施例对此不作限定。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一信息包括该新文件所属的应用的信息。结合第一方面和上述实现方式,在第一方面的某些实现方式中,该新文件所属的应用的信息包括该新文件所属的应用对应的应用包名。
可选地,在应用安装时,例如用户在应用商店下载该应用时,根据预设的规则确定文件创建的存储单元。例如,由应用商店指示该应用的文件所属的目录,当待创建的新文件属于热点文件时,主机在创建该新文件时,将该新文件创建到第二逻辑单元。
在另一种可能的实现方式中,主机可以根据所述新文件所属的应用,选择所述第一逻辑单元或者所述第二逻辑单元。例如,由应用商店指示热点应用的范围,当待创建的新文件属于某个热点应用时,主机在创建该新文件时,将该新文件创建到第二逻辑单元。
可选地,主机30可以根据当前安装的APP的包名确定待写入高速存储区的文件。
示例性的,在本申请实施例中,安装某款应用程序(application,APP)或者运行该APP时,处理器读取该APP的各类文件的频率不同。按照处理器读取该APP的各类文件的频率由高到低排序,可以设置频率阈值,将处理器读取频率大于等于频率阈值的文件称为“热点文件”。并将该类热点文件写入SLC存储区,可以将该APP的其他文件写入TLC存储区,或者根据SLC存储区的剩余容量大小,将该APP的其他文件也按照处理器的读取频率由高到低的顺序,写入部分较高读取频率的文件,可以利用高速存储区的高性能,提高读取数据的速率,进而提升运行该APP的速率,提高用户体验。
示例性的,如果处理器将包名为PKG的APP的文件写入SLC存储区,可以利用SLC存储区的高性能,提高运行该APP的速率,提高用户体验。此外,将该APP的其他相关文件创建到TLC存储区,可以避免该类文件对SLC存储区的无效占用,节省出更多的SLC存储区的空间给其他应用,提高其他应用的运行速率,提高用户体验。另一方面,该方法只需要根据APP的包名,确定写入SLC存储区的文件,无需存储任何文件的访问时间或访问频次信息,实现过程更加便捷。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该方法还包括:根据该处理器对该文件系统的文件的访问热度,将该第一逻辑单元的文件迁移到该第二逻辑单元;和/或将该第二逻辑单元的文件迁移到该第一逻辑单元。
应理解,对于已经创建到SLC存储区和TLC存储区的文件,在后续手机的使用过程中,针对不同的应用场景,两个存储区的文件被主机读取的频率会发生变化。要调整SLC存储区和TLC存储区的文件,不能影响用户的正常使用。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,当该处理器访问该第一逻辑单元的文件的频率大于或等于第一阈值时,将该第一逻辑单元的文件迁移到该第二逻辑单元;和/或当该处理器访问该第二逻辑单元的文件的频率小于或等于该第一阈值时,将该第二逻辑单元的文件迁移到该第一逻辑单元。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该方法还包括:获取用户已安装的应用程序的数量信息;当该用户已安装的应用程序的数量小于第二阈值时,将该第一逻辑单元的文件迁移到该第二逻辑单元;当该用户已安装的应用程序的总数量大于或等于该第二阈值时,将用户已安装的应用程序按照用户使用频率从大到小的顺序排列,根据该第二逻辑单元的容量大小,确定用户使用频率从大到小的前K个应用程序的热点文件,将该前K个应用程序的热点文件迁移到该第二逻辑单元,K为正整数。
对于不同的用户,手机安装的APP的数量不同。按照用户的安装APP的数量,可以将用户划分为不同的群体。在保证用户隐私的情况下,处理器可以获取用户安装应用的数量,进而将该用户划分为不同的群体。针对安装APP数量少的用户,可以直接将所有APP的热点文件迁移到高速存储区。该方法能够使得用户尽快获得SLC存储区的性能收益。对于安装APP数量多的用户,其安装的APP数量较多。此时,可以根据用户曾经对各种APP的使用频率等,直接将使用频率高的APP的热点文件创建到SLC存储区。该方法对于用户经常使用的APP,能够获得高速存储区的性能收益,提高用户体验。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,当该用户已安装的应用程序中前K个应用程序的热点文件已经创建在该第二逻辑单元且该第二逻辑单元的容量大于或者等于第三阈值时,该方法还包括:获取该用户安装的应用程序中前K个应用之外的N个应用,遍历该N个应用的不同文件,确定M个文件集合,该M个文件集合中的每个文件集合包括该N个应用的至少一个文件;计算将该M个文件集合分别创建到该第二逻辑单元对应的M个时间收益,该时间收益为相对时间收益或者绝对时间收益;根据该M个文件集合和对应的该M个时间收益,确定该M个文件集合的M个影响系数;将该M个影响系数按照从大到小的顺序排列,根据该第二逻辑单元的容量和该M个文件集合的大小,从该M个影响系数中确定前S个影响系数,并将该S个影响系数对应的S个文件集合创建到该第二逻辑单元。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,将该第一逻辑单元的文件迁移到该第二逻辑单元,和/或将该第二逻辑单元的文件迁移到该第一逻辑单元的发生时机为:该电子设备当前为空闲态;和/或接收到用户的系统优化请求;和/或该第二逻辑单元的容量大于或者等于第四阈值。
可选地,主机可以选择合适的时机,对TLC存储区的文件和SLC速存储区的文件进行调整。在一种可能的实现方式中,当手机处于空闲未被使用的场景时,根据用户的日常使用习惯,主机将创建在TLC存储区的文件和创建在SLC存储区的文件进行迁移。
应理解,本申请实施例的“空闲态”可以是设备处于充电状态或者灭屏状态的未使用状态。且当判断设备处于充电状态,或者设备屏幕熄灭的时长达到预设时长时,确定设备处于空闲未被使用的时段,并将该时段确定为上述合适的时机,将创建在TLC存储区的文件和创建在SLC存储区的文件进行迁移。
通过上述方法,结合用户的使用习惯进行个性化动态调整,选取手机处于充电状态或者灭屏状态等闲时,对文件存储的区域进行调整,实现对高性能的SLC存储区的空间的有效管理,保证在有限容量中写入时间收益最大的文件组合,获得最优的增益提升。而且,该调整存储区域的过程用户无感,不影响用户正常使用手机。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该方法还包括:配置所述第二逻辑单元的存储形态转换模式。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第二逻辑单元固定为该第二存储形态;或者当该第二逻辑单元的存储空间小于第五阈值时,该第二逻辑单元从该第二存储形态单向转化为该第一存储形态;或者当该第二逻辑单元的存储空间小于该第五阈值时,该第二逻辑单元从该第二存储形态转化为该第一存储形态,并且当该第二逻辑单元的存储空间大于或等于该第五阈值时,该第二逻辑单元从该第一存储形态转化为该第二存储形态。
本申请实施例还可以通过配置SLC存储区的存储形态的转换模式,例如,该SLC存储区可以配置为在一定条件下由SLC存储形态转换为TLC存储形态的单向返还模式,以满足用户对存储系统的容量需求;或者,可以配置为永久的SLC存储形态的不返还模式,以满足用户对存储系统的读写性能需求;又或者,可以配置为SLC存储形态和TLC存储形态的双向返还模式,可以由SLC存储形态转换为TLC存储形态,TLC存储形态还可以再转换为SLC存储形态。在用户对存储系统的容量有更高需求时,SLC存储形态可以转换为TLC存储形态,以扩大存储系统的容量;在用户对存储系统的性能有更高需求时,该SLC存储区保持SLC存储形态,可以提高存储系统的数据读写的性能。多种存储形态的转换模式可以针对多种不同的用户场景,在用户无感知的情况下提高用户体验。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一存储形态包括三层存储单元TLC,该第二存储形态包括单层存储单元SLC;或者该第一存储形态包括双层存储单元MLC,该第二存储形态包括SLC;或者该第一存储形态包括四层存储单元QLC,该第二存储形态包括SLC;或者该第一存储形态包括TLC,该第二存储形态包括MLC;或者该第一存储形态包括QLC,该第二存储形态包括MLC;或者该第一存储形态包括QLC,该第二存储形态包括TLC。
应理解,单层存储单元SLC、多层存储单元(multi-level cell,MLC)、三层存储单元TLC和四层存储单元(quad-level cell,QLC),容量依次增大,但是性能和寿命依次减小。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该处理器向该UFS的控制器发送第一指令,该第一指令包括该UFS多个逻辑单元的起始地址和终止地址;响应于该第一指令,该UFS的控制器根据该UFS多个逻辑单元的起始地址和终止地址,确定该第一逻辑单元和该第二逻辑单元;该处理器向该UFS的控制器发送第二指令,响应于该第二指令,该UFS的控制器配置该第一逻辑单元的数据存储形态为该第一存储形态,该第二逻辑单元的数据存储形态为该第二存储形态;其中,该第一逻辑单元映射为系统普通盘,该第二逻辑单元映射为系统快盘,且该系统普通盘和该系统快盘的文件挂载在该文件系统的同一目录下。
具体地,处理器可以向UFS发送指令,由UFS控制器根据指令完成以上的介绍的配置逻辑单元、创建文件、迁移文件或者转换存储形态的过程,本申请实施例对此不再赘述。
本申请实施例的高速存储区和常规存储区映射的盘挂载在文件系统的同一目录下,即高速存储区和常规存储区的文件具有相同的目录。因此,对于一个应用的文件,可以在高速存储区和常规存储区之间进行迁移,在用户层面上,用户不需要感知该迁移过程,也不会影响用户的使用。
第二方面,提供了一种电子设备,其特征在于,包括:配置单元,用于配置该UFS的第一逻辑单元的数据存储形态为第一存储形态,第二逻辑单元的数据存储形态为第二存储形态,该第一逻辑单元和该第二逻辑单元挂载在文件系统的同一目录下,该第一存储形态和该第二存储形态相异,且该第二存储形态的读写性能大于该第一存储形态的读写性能;处理单元,用于响应于新文件的创建请求,确定第一信息,根据该第一信息选择该第一逻辑单元或者该第二逻辑单元,并在选择的逻辑单元中创建该新文件。
结合第二方面,在第二方面的某些实现方式中,该第一信息包括该新文件的文件类型信息。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第一信息包括该新文件所属目录的信息;或者当该新文件作为目录文件时,该第一信息包括该目录文件的信息。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第一信息包括该新文件所属的应用的信息。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该新文件所属的应用的信息包括该新文件所属的应用对应的应用包名。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该处理单元还用于:根据该处理器对该文件系统的文件的访问热度,将该第一逻辑单元的文件迁移到该第二逻辑单元;和/或将该第二逻辑单元的文件迁移到该第一逻辑单元。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,当该处理器访问该第一逻辑单元的文件的频率大于或等于第一阈值时,将该第一逻辑单元的文件迁移到该第二逻辑单元;和/或当该处理器访问该第二逻辑单元的文件的频率小于或等于该第一阈值时,将该第二逻辑单元的文件迁移到该第一逻辑单元。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该电子设备还包括:获取单元,用于获取用户已安装的应用程序的数量信息;以及,该处理单元还用于:当该用户已安装的应用程序的数量小于第二阈值时,将该第一逻辑单元的文件迁移到该第二逻辑单元;当该用户已安装的应用程序的总数量大于或等于该第二阈值时,将用户已安装的应用程序按照用户使用频率从大到小的顺序排列,根据该第二逻辑单元的容量大小,确定用户使用频率从大到小的前K个应用程序的热点文件,将该前K个应用程序的热点文件迁移到该第二逻辑单元,K为正整数。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,当该用户已安装的应用程序中前K个应用程序的热点文件已经创建在该第二逻辑单元且该第二逻辑单元的容量大于或者等于第三阈值时,该获取单元还用于:获取该用户安装的应用程序中前K个应用之外的N个应用,遍历该N个应用的不同文件,确定M个文件集合,该M个文件集合中的每个文件集合包括该N个应用的至少一个文件;该处理单元,还用于:计算将该M个文件集合分别创建到该第二逻辑单元对应的M个时间收益,该时间收益为相对时间收益或者绝对时间收益;根据该M个文件集合和对应的该M个时间收益,确定该M个文件集合的M个影响系数;将该M个影响系数按照从大到小的顺序排列,根据该第二逻辑单元的容量和该M个文件集合的大小,从该M个影响系数中确定前S个影响系数,并将该S个影响系数对应的S个文件集合创建到该第二逻辑单元。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该处理单元将该第一逻辑单元的文件迁移到该第二逻辑单元,和/或将该第二逻辑单元的文件迁移到该第一逻辑单元的发生时机为:该电子设备当前为空闲态;和/或接收到用户的系统优化请求;和/或该第二逻辑单元的容量大于或者等于第四阈值。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该配置单元还用于:配置该第二逻辑单元的存储形态转换模式。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第二逻辑单元的存储形态转换模式包括以下任意一种:该第二逻辑单元固定为该第二存储形态;或者当该第二逻辑单元的存储空间小于第五阈值时,该第二逻辑单元从该第二存储形态单向转化为该第一存储形态;或者当该第二逻辑单元的存储空间小于该第五阈值时,该第二逻辑单元从该第二存储形态转化为该第一存储形态,并且当该第二逻辑单元的存储空间大于或等于该第五阈值时,该第二逻辑单元从该第一存储形态转化为该第二存储形态。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第一存储形态包括三层存储单元TLC,该第二存储形态包括单层存储单元SLC;或者该第一存储形态包括双层存储单元MLC,该第二存储形态包括SLC;或者该第一存储形态包括四层存储单元QLC,该第二存储形态包括SLC;或者该第一存储形态包括TLC,该第二存储形态包括MLC;或者该第一存储形态包括QLC,该第二存储形态包括MLC;或者该第一存储形态包括QLC,该第二存储形态包括TLC。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,接收第一指令,该第一指令包括该UFS多个逻辑单元的起始地址和终止地址;响应于该第一指令,根据该UFS多个逻辑单元的起始地址和终止地址,确定该第一逻辑单元和该第二逻辑单元;接收第二指令,响应于该第二指令,配置该第一逻辑单元的数据存储形态为该第一存储形态,该第二逻辑单元的数据存储形态为该第二存储形态;其中,该第一逻辑单元映射为系统普通盘,该第二逻辑单元映射为系统快盘,且该系统普通盘和该系统快盘的文件挂载在该文件系统的同一目录下。
第三方面,提供了一种电子设备,其特征在于,包括:一个或多个处理器;通用闪存存储器UFS;一个或多个存储器;多个应用程序;以及一个或多个程序,其中该一个或多个程序被存储在该存储器中,当该一个或者多个程序被该处理器执行时,使得该电子设备执行如第一方面和第一方面的实现方式中任一项方法。
第四方面,提供了一种装置,该装置包含在电子设备中,该装置具有实现上述方面及上述方面的可能实现方式中电子设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,显示模块或单元、检测模块或单元、处理模块或单元等。
第五方面,一种存储系统,该存储系统包括:通用闪存存储器UFS、处理器和接口,所述处理器和接口相互配合,使得所述存储系统执行上述如第一方面和第一方面的实现方式中任一项方法。
第六方面,本申请提供了一种电子设备,包括:触摸显示屏,其中,触摸显示屏包括触敏表面和显示器;摄像头;一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中,一个或多个计算机程序被存储在存储器中,一个或多个计算机程序包括指令,当指令被电子设备执行时,使得电子设备执行上述任一方面任一项可能的方法。
第七方面,本申请提供了一种电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述如第一方面和第一方面的实现方式中任一项方法。
第八方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述如第一方面和第一方面的实现方式中任一项方法。
第九方面,本申请提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述如第一方面和第一方面的实现方式中任一项方法。
附图说明
图1是本申请实施例提供的一例存储系统的结构示意图。
图2是本申请实施例的存储系统的软件结构框图。
图3是一例存储系统的UFS配置示意图。
图4是本申请实施例提供的一例UFS配置示意图。
图5是本申请实施例提供的一例存储形态转换模式示意图。
图6是本申请实施例提供的一例存储系统的数据读写过程示意图。
图7是本申请实施例提供的一例文件创建过程示意图。
图8是本申请实施例提供的一例文件系统管理模块示意图。
图9是本申请实施例提供的又一例文件创建过程示意图。
图10是本申请实施例提供的又一例文件迁移过程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
图1是本申请实施例提供的一例存储系统100的结构示意图。示例性的,存储系统100可以包括处理器10,存储器20和接口30。
处理器10可以包括一个或多个处理单元,例如:处理器10可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是存储系统100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
存储器20用于存储指令和数据,存储器20可以包括设置于处理器10中的内部存储器和外部存储器,外部存储器可以与处理器10连接。在一些实施例中,处理器10中的内部存储器可以为高速缓冲存储器。该存储器可以保存处理器10刚用过或循环使用的指令或数据。如果处理器10需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器10的等待时间,因而提高了系统的效率。
在本申请实施例中,该存储系统100可以以UFS为基础,实现文件存储和读取的过程,因此,以该存储系统100具有单一的UFS为例,基于UFS建立混合介质多盘存储系统。应理解,存储器20包括但不限于UFS,还可以是其他类型的存储器,本申请实施例对此不做限定。
还应理解,该存储系统100还可以包括更多的存储器件或者其他类型的存储器件,例如EMMC等,本申请实施例对此不做限定。
接口30可以是一个或多个的不同种类的接口,可以包括内部接口或者外部接口,用于连接存储系统的各个模块。示例性的,接口可以包括集成电路(inter-integratedcircuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universalasynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobileindustry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。应理解,存储系统100也可以采用不同的接口连接方式,或多种接口连接方式的组合,本申请实施例对接口的类型和连接方式不做限定。
可以理解的是,本申请实施例示意的结构并不构成对存储系统100的具体限定。在本申请另一些实施例中,存储系统100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请实施例提供的存储系统100可以应用于内置有UFS的终端设备,该终端设备可以是手机、平板电脑、PC、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等具有UFS的设备,本申请实施例对终端设备的具体类型不作任何限制。
应理解,对于本申请实施例列举的终端设备,除了包括上述的存储系统100之外,还可以包括其他更多的部件。例如,终端设备还可以包括充电管理模块,电源管理模块,电池,天线,移动通信模块,无线通信模块,音频模块,扬声器,受话器,麦克风,耳机接口,传感器模块,按键,马达,指示器,摄像头,显示屏,以及用户标识模块(subscriberidentification module,SIM)卡接口等的一种或者多种。其中,传感器模块可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。本申请实施例对终端设备包括的部件的数量和种类不作任何限制。
图2是本申请实施例的存储系统100的软件结构框图。应理解,图2可以对应于图1的存储系统100结构,将该存储系统100划分为设备侧和主机30。其中,设备侧可以对应于存储系统100的存储器,例如UFS 20;主机30可以对应于处理器10以及由处理器10提供的软件架构。主机30的软件架构可以采用分层架构,本申请实施例以分层架构的Android系统为例,示例性说明存储系统100的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机、通话、音乐、视频、导航等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,资源管理器等。
其中,窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:媒体库(media libraries),图像处理库等。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。图像处理库用于实现图形绘图,图像渲染,合成,和图层处理等。
内核层是硬件和软件之间的层。内核层至少包含驱动模块和文件系统管理模块等,驱动模块可以包括显示驱动、摄像头驱动、传感器驱动等。文件管理模块用于实现对用户数据或文件的管理。
为了便于理解,本申请以下实施例将以具有图1和图2所示结构的存储系统为例,并假设内置于该存储系统100的UFS 20的大小为256千兆字节(kilomegabyte,GB),对本申请实施例提供的存储系统、以及基于该存储系统存储数据的方法和读取数据的方法进行具体阐述。
图3是一例存储系统的UFS配置示意图。如图3所示,对于现有的包含UFS 20的存储系统,UFS 20可以划分为缓存区(cache)和常规存储区,缓存区和常规存储区具有不同的数据存储形态。其中,缓存区(cache)一般被封装为单层存储单元(single-level cell,SLC)模式的数据存储形态,封装为SLC存储形态的每个储存单元可存放1比特(bit)的数据,因此缓存区也可以称为“高速缓存区(cache)”。被封装为SLC存储形态的缓存区一般只用来做数据缓存,对应图3中的缓存区(cache),该区域的数据存储和数据读取的性能高,但是不能实现数据的持久化存储。
常规存储区一般被封装为三层存储单元(triple-level cell,TLC)模式的存储形态,封装为TLC存储形态的每个储存单元可存放3比特(bit)的数据,因此常规存储区也可以称为“TLC存储区”。示例性的,以256GB的UFS为例,UFS出厂时可以包括大约4GB的缓存区(cache)和256GB的常规存储区,缓存区被封装为SLC存储形态,常规存储区被封装为TLC存储形态。
应理解,4GB的cache一般为UFS出厂时,除了256GB的持久化存储区之外附带的缓存区域,因此,UFS实际上可以包括256GB的存储区域和4GB的缓存区域。
应理解,在同样介质成本下,TLC存储区的容量是SLC的三倍,而SLC存储区的寿命和性能都远超TLC存储区。对于存储器件和终端设备而言,考虑到容量规格和存储系统的性能,如图3所示,现有的包含UFS的存储系统被封装成包括cache(缓存区)和常规存储区(TLC存储区),可以理解为包括少量SLC存储形态和TLC存储形态的混合介质存储形态,以获取较大的存储空间,且提高存储系统的性能。其中,被封装为SLC存储形态的缓存区很小,例如4GB,一般只用来做数据缓存(cache),不能实现数据的持久化存储。封装TLC存储形态的存储区做持久化存储,容量大,例如256GB,对应图3中阴影部分示出的常规存储区(或者称为“TLC存储区”)。
如图3的箭头方向所示的数据写入过程,主机30将数据写入UFS 20时,必须先将数据写入cache进行缓存,再由cache写入常规存储区(TLC存储区)进行持久化存储。对应地,当主机30从UFS 20读取数据时,既可以直接从cache中读取数据,也可以直接从常规存储区读取数据。换言之,数据写入的过程需要经过cache进行缓存,数据读取的过程可以有主机30直接从cache或者常规存储区(TLC存储区)进行获取。
应理解,缓存区(cache)本身容量很小,使用到一定程度,数据会被挤出缓存区(cache),下次如果再读取被挤出的数据,仍然会从TLC存储区中获取。只有恰好数据存储在缓存区(cache)时,从cache读取数据,才会提高数据读取的性能。如果数据从TLC存储区(常规存储区)中获取,读写性能不会得到改善。此外,数据首次被写入时,被存储在TLC存储区,数据读取的过程仍然体现常规的TLC性能,性能同样不会得到改善。再者,cache的容量有限,如果所有数据都经过cache读取,读写次数过多导致擦除次数过多,随着用户长时间使用,寿命消耗得更快,无法长时间使用。
本申请将提供一种基于UFS的存储系统,并提供一种存储方法,以实现混合介质的存储效果,兼顾存储系统的存储空间和读写性能。
图4是本申请实施例提供的一例UFS配置示意图。本申请以存储系统100内置256GB的UFS 20为例,在本申请实施例中,按照图4所示的方法对UFS 20进行初始化配置,应理解,该初始化配置过程可以由存储系统100的处理器10或者主机30来执行。
可选地,处理器10或者主机30可以向UFS 20发送指令,UFS控制器根据该指令执行配置过程。具体的配置过程包括:
步骤一:配置UFS 20的逻辑单元的数量和大小
具体地,在UFS 20初始化过程中,首先将256GB的UFS 20配置为(N+M)个逻辑单元(logic unit,LU),N大于或等于1,M大于或等于1,且N和M为整数。其中,N和M用于区分不同的存储形态,例如(N+M)个LU包括至少两种不同的存储形态。
在一种可能的实现方式中,配置所述UFS的第一逻辑单元的数据存储形态为第一存储形态,第二逻辑单元的数据存储形态为第二存储形态,所述第一逻辑单元和所述第二逻辑单元挂载在文件系统的同一目录下,所述第一存储形态和所述第二存储形态相异,且所述第二存储形态的读写性能大于所述第一存储形态的读写性能。
在本申请实施例中,以(N+M)个LU包括两种不同的存储形态为例进行介绍,(N+M)个LU包括N个第一逻辑单元和M个第二逻辑单元,N个第一逻辑单元被配置为第一存储形态,M个第二逻辑单元被配置为第二存储形态,且该第一逻辑单元和第二逻辑单元挂载在文件系统的同一目录下。
应理解,本申请实施例对(N+M)中每个LU的存储空间大小不做限定。
在后续实施例的介绍中,以N为4,M为1为例进行说明,256GB的UFS 20被配置包括(4+1)个LU,4个第一逻辑单元被配置为第一存储形态,1个第二逻辑单元被配置为第二存储形态。其中,4个第一逻辑单元分别记作LU 0、LU 1、LU 2和LU 3,1个第二逻辑单元,记作LU4。LU 0、LU 1、LU 2、LU 3和LU 4的存储大小可以相同或者相异,本申请实施例对此不做限定。
在一种可能的实现方式中,在本申请实施例配置(4+1)个LU的过程中,将LU 0和LU1分别配置为4兆字节(MByte,MB),LU 2配置为8MB,LU 3被配置为1008MB+225GB,即配置4个LU(LU 0至LU 3)总的存储空间为226GB,第5个LU(LU 4)配置成30GB的大小。其中,LU 3和LU4是用户可以使用的存储区域。
由此,经过如上所介绍的配置过程,该UFS的256GB的逻辑单元域被配置包括4个具有第一存储形态的存储区和1个具有第二存储形态的存储区。
步骤二:配置UFS 20的逻辑单元的存储形态
在一种可能的实现方式中,将第二逻辑单元配置为比第一逻辑单元具有更高读写性能的颗粒介质。换言之,具有第二存储形态的第二逻辑单元比具有第一存储形态的第一逻辑单元具有更高的读写性能。
可选地,第一存储形态包括三层存储单元TLC,第二存储形态包括单层存储单元SLC;或者,第一存储形态包括双层存储单元MLC,第二存储形态包括SLC;又或者,第一存储形态包括QLC,第二存储形态包括SLC;又或者,第一存储形态包括TLC,第二存储形态包括MLC;又或者,第一存储形态包括QLC,第二存储形态包括MLC;又或者,第一存储形态包括QLC,第二存储形态包括TLC。
应理解,单层存储单元SLC、多层存储单元(multi-level cell,MLC)、三层存储单元TLC和四层存储单元(quad-level cell,QLC),容量依次增大,但是性能和寿命依次减小。
示例性的,在本申请实施例中,如图4所示,经过步骤一,将256GB的UFS 20配置为(4+1)个不同大小的LU,再通过步骤二配置LU的存储形态。例如,将前置4个LU(LU 0、LU 1、LU 2和LU 3)配置成TLC存储形态,将第5个LU(LU 4)配置成SLC存储形态。换言之,UFS 20被配置为包括4个TLC存储区,1个SLC存储区。
应理解,在同样介质成本下,TLC存储区的容量是SLC存储区的三倍,因此,当30GB的LU 4配置成SLC存储形态时,该LU 4的实际存储空间为10GB。如图4所示,经过步骤二,30GB的LU 4体现为10GB的SLC存储区。
还应理解,本申请实施例中配置的SLC存储区为持久存储区,该SLC存储区相当于从原有的常规存储区(TLC存储区)中划分出的一部分固定存储,是终端设备机身存储的一部分,该SLC存储区存储的数据在断电后继续保留。因此,不同于图3中介绍的缓存区(cache),图3中的cache可以存储日常运行的程序和数据等,断电后cache的程序和数据可以被清除。在本申请实施例的描述中,对存储系统原有的cache不做过多赘述。
还应理解,该SLC存储区相比于现有的cache,都为SLC存储形态,各方面读写性能持平。但是,该SLC存储区可以应用于所有数据读写的用户场景,例如数据可以直接写入该SLC存储区,而不需要通过cache写入TLC存储区,简化了数据写入的流程,提高了数据读写性能;而且该SLC存储区的寿命远超TLC存储区,可以提高存储系统的使用寿命。
通过在UFS的存储空间中配置包括SLC存储形态的存储区域和TLC存储形态的存储区域,相比于全TLC存储形态的存储区域,可以提升存储系统的性能和寿命。例如,经过检测,UFS如果被配置为包括SLC存储形态的存储区域和TLC存储形态的存储区域,在读取数据的过程中,从存储系统的器件层面或者从内核层的工作效率层面,UFS的读性能可以提升50%;从用户使用层面,用户使用该应用过程中,整体用户文件读性能可以提升20%-30%。
步骤三:配置UFS 20的逻辑单元的存储形态转换模式
具体地,UFS 20包括的4个TLC存储区为常规存储区,用于持久化存储,因此,将LU0、LU 1、LU 2和LU 3固定配置为TLC存储形态。对于1个SLC存储区,可以通过配置不同的存储形态,将LU 4根据不同的场景和需求,配置成将来使用过程中对应的存储形态转换模式,例如该LU 4可以实现SLC存储形态和TLC存储形态之间的转换,以满足不同的用户需求。
(1)存储形态转换模式一
在一种可能的实现方式中,将LU 4的存储形态转换模式配置成单向返还模式。具体地,LU 4可以从第二存储形态单向转化为第一存储形态。
应理解,这里的“单向返还模式”可以理解为:LU 4被配置为SLC存储形态,且当满足预设条件时,该LU 4可以由SLC存储形态转换为TLC存储形态。由于该过程为不可逆过程,所以称之为“单向返还模式”。
可选地,该预设条件可以包括以下中的至少一种:LU 4所代表的SLC存储区存储的数据大于或等于预设阈值(例如10GB);或者说LU 4所代表的SLC存储区的剩余存储空间小于某预设阈值;或者,LU 4所代表的SLC存储区的使用寿命达到预设值。可选地,该SLC存储区的使用寿命可以用该SLC存储区的编程擦除(program&erase,PE)的次数进行统计,该预设值为PE次数达到1000次。当满足上述预设条件中的至少一种时,LU 4可以由SLC存储形态转换为TLC存储形态。
示例性的,图5是本申请实施例提供的一例存储形态转换模式示意图,单向返还模式可以如图5中的(a)图所示。LU 4在满足预设条件时,可以由10GB的SLC存储区转换为30GB的TLC存储区。
应理解,当LU 4由SLC存储形态转换为TLC存储形态之后,LU 4的存储空间恢复为30GB,该种配置方式可以扩大存储系统的实际存储空间。例如,当LU 4上存储的数据超过10GB时,LU 4的存储空间无法满足当前的用户需求,将LU 4由SLC存储形态转换为TLC存储形态,即将10GB的存储空间扩大到30GB的存储空间,可以缓解当前的数据存储压力,且该存储形态的转换过程不影响SLC存储的原数据的格式和大小。
此外,LU 4的存储形态转换模式配置成单向返还模式,在用户层面上,可用的UFS20的实际存储空间并没有损失,仍然是256GB,在用户无感知的情况下保证了UFS的实际存储空间的使用效率。
还应理解,当LU 4由SLC存储形态转换为TLC存储形态之后,即LU 4由SLC存储区转换为TLC存储区,并且永久体现为TLC存储区。此时LU 0、LU 1、LU 2、LU 3和LU 4都为TLC存储区。
(2)存储形态转换模式二
在一种可能的实现方式中,将LU 4的存储形态转换模式配置成不返还模式。
应理解,这里的“不返还模式”可以理解为:LU 4被配置为SLC存储形态,且永久性保持为SLC存储形态。由于该过程为不发生存储形态的转换,所以称之为“不返还模式”。
具体地,如图5中的(b)图所示,可以配置该SLC存储区在使用过程中对应的存储形态转换模式为“不返还模式”,即该SLC存储区不能由SLC存储形态转换为TLC存储形态。且不设置该SLC存储区的编程擦除次数的上限,即不设置该SLC存储区的使用寿命。因此,该SLC存储区将永远不会发生存储形态的转换,且SLC的使用寿命远远大于TLC的使用寿命,用户将能一直使用该SLC存储区存储数据,体验高性能存储形态的存储空间,以提高数据的读写性能。
应理解,在该转换模式下,用户实际访问的SLC存储区的存储空间和可见容量大小规格都是10GB,最终UFS 20的实际存储空间变为236GB。
(3)存储形态转换模式三
在一种可能的实现方式中,将LU 4的存储形态转换模式配置成双向返还模式。
应理解,这里的“双向返还模式”可以理解为:LU 4可以被配置为SLC存储形态和TLC存储形态中的任意一种模式,且SLC存储形态和TLC存储形态之间可以互相转换。
具体地,如图5中的(c)图所示,可以配置该SLC存储区在使用过程中对应的存储形态转换模式为“双向返还模式”,即该LU 4可以由SLC存储形态转换为TLC存储形态,TLC存储形态还可以再转换为SLC存储形态。
可选地,当LU 4的存储空间小于预设阈值时,LU 4可以从所述第二存储形态转化为第一存储形态,并且当LU 4的存储空间大于或等于预设阈值时,LU 4也可以从所述第一存储形态转化为第二存储形态,本申请实施例对此不作限定。
可选地,LU 4的编程擦除次数在预设值(例如1000次)之内时,可以根据用户对存储系统的容量大小规格的需要,将LU 4从SLC存储形态转换成TLC形态,也可以从TLC存储形态转换成SLC存储形态。例如,当用户当前需要存储到LU 4的数据大于10GB时,该LU 4由SLC存储形态转换为TLC存储形态;当用户当前需要存储到LU 4的数据小于或等于10GB时,该LU4再由TLC存储形态转换为SLC存储形态。
应理解,当存储系统的容量充裕的时候,LU 4是SLC存储形态,处于高性能模式,可以获得更好的读写体验;当存储系统的容量不够的时候,LU 4是TLC存储形态,增加了可用存储容量,处于高容量模式,此时可以获取更大的存储空间。
通过上述方案,可以根据用户当前对存储系统的容量和性能的需求,灵活调整LU4的存储形态,从而实现性能和容量的平衡利用。相比于单一返还模式的存储形态转换,该方法可以避免存储系统为单一的TLC存储形态,无法获取更高的存储性能体验;相比于不返还模式的存储形态转换模式二,该方法可以在存储空间有限的情况下扩大存储空间,可以避免当LU 4的存储容量达到峰值(例如10GB)时,该LU 4由SLC存储形态转换为TLC存储形态,LU 4再也无法回到SLC存储形态时的高性能状态,从而提高存储系统的性能。此外,LU 4的存储形态转换模式配置成双向返还模式,在用户层面上,可用的UFS 20的实际存储空间并没有损失,仍然是256GB,在用户无感知的情况下,保证了UFS的实际存储空间的使用效率。
应理解,以上步骤一至步骤三为UFS 20接受处理器10的指令,由UFS控制器在UFS20完成的初始化配置过程。UFS 20的初始化配置完成以后,根据处理器10的指令,将UFS 20配置的(4+1)个LU映射到主机30,形成主机30侧的逻辑存储设备。该逻辑存储设备可以理解为在主机30侧的不同存储区域或者存储空间,该主机30侧的逻辑存储设备和UFS 20的LU一一对应。
步骤四:将UFS 20的逻辑单元进行映射
具体地,将UFS 20配置的LU 0、LU 1、LU 2、LU 3和LU 4映射到主机30,形成主机30的逻辑存储设备,在主机30侧分别对应独立的存储区域。
示例性的,LU 0对应主机30的存储区域sda,LU 1对应主机30的存储区域sdb,LU 2对应主机30的存储区域sdc,LU 3对应主机30的存储区域sdd,LU 4对应主机30的存储区域sde。可以将主机30侧对应的独立存储区域称为“盘”,例如UFS 20的LU 0、LU 1、LU 2、LU 3映射到主机30的普通盘,LU 4映射到主机30的高速盘。那么,sda、sdb、sdc、sdd为普通盘,sde为高速盘。
应理解,本申请实施例的LU 4和LU 3虽然映射了不同的盘,但是对于设备的文件系统而言,LU 4映射的高速盘和LU 3映射的普通盘的文件挂载在文件系统的同一目录下。
在存储系统工作过程中,主机30处于运行状态,当文件在主机30侧被写入存储区域sdd,则意味着该文件实际被存储到UFS 20的LU 3,即该文件存储到如图6所示的常规存储区(TLC存储区)。当文件在主机30侧被写入存储区域sde,则意味着该文件实际被存储到UFS 20的LU 4,即该文件备存储到如图6所示的高速存储区(SLC存储区)。
本申请实施例基于内置有UFS的存储系统,通过上述步骤一至步骤四的过程,配置该UFS包括不同存储形态的多个存储区域,不同的存储形态的存储区域的数据读写性能不同,使得该存储系统具有混合存储介质,满足用户对存储系统的容量和性能的要求。
示例性的,图6是本申请实施例提供的一例存储系统的数据读写过程示意图。如图6所示,配置UFS 20的存储区域包括TLC存储形态的常规存储区、SLC存储形态的缓存区(cache)和SLC存储形态的高速存储区。
应理解,SLC存储形态的高速存储区(SLC存储区)可以提高存储系统的读写性能和寿命,TLC存储形态的常规存储区(TLC存储区)可以保证存储系统的容量规格,从而平衡用户对存储系统的容量和性能的需求。还应理解,本申请实施例中所说的数据可以是应用的相关文件等。
还应理解,图6中常规存储区和高速存储区还可以是独立的存储区域,常规存储区和高速存储区的存储形态可以不进行转换。换言之,本申请实施例提供的创建文件的方法还可以用于包括独立的常规存储区和高速存储区的存储系统,本申请实施例对此不作限定。
如图6所示,向下的箭头可以代表主机30将数据写入UFS 20的过程,向上的箭头代表了主机30从UFS 20读取数据的过程。具体地,在数据写入过程中,主机30可以将数据写入缓存区(cache),或者通过缓存区(cache)将数据写入常规存储区(TLC存储区),又或者可以直接将数据写入SLC存储形态的高速存储区(SLC存储区)。其中,常规存储区(TLC存储区)和高速存储区(SLC存储区)可以用于持久化存储,缓存区(cache)参照现有方案仅用于数据缓存。
在数据读取的过程中,主机30可以从缓存区(cache)读取数据,或者直接从常规存储区(TLC存储区)读取数据,又或者可以直接从高速存储区(SLC存储区)读取数据。
综上所述,本申请实施例通过配置SLC存储形态的高速存储区,主机30可以直接将数据写入该高速存储区(SLC存储区),且可以从该高速存储区读取数据,避免了只能通过缓存区(cache)将数据写入常规存储区进行持久化存储。由于SLC介质的性能和寿命都远远高于TLC介质,因此,本申请实施例提供的存储系统可以提高数据读写的性能,且可以提高存储系统的寿命。
此外,本申请实施例还可以通过配置该高速存储区(SLC存储区)的存储形态的转换模式,例如,该高速存储区可以配置为在一定条件下由SLC存储形态转换为TLC存储形态的单向返还模式,以满足用户对存储系统的容量需求;或者,该高速存储区可以配置为永久的SLC存储形态的不返还模式,以满足用户对存储系统的读写性能需求;又或者,该高速存储区可以配置为SLC存储形态和TLC存储形态的双向返还模式,可以由SLC存储形态转换为TLC存储形态,TLC存储形态还可以再转换为SLC存储形态。在用户对存储系统的容量有更高需求时,SLC存储形态的高速存储区(SLC存储区)可以转换为TLC存储形态的常规存储区(TLC存储区),以扩大存储系统的容量;在用户对存储系统的性能有更高需求时,该高速存储区保持SLC存储形态,可以提高存储系统的数据读写的性能。多种存储形态的转换模式可以针对多种不同的用户场景,在用户无感知的情况下提高用户体验。
根据前述介绍的存储系统,在该存储系统的工作过程中,主机30可以将数据写入UFS 20。图7是本申请实施例提供的一例文件创建过程示意图,在手机的不同使用场景中,待写入的数据类型不同。如图7所示,方法700针对不同的应用场景,确定不同的数据或文件写入高速存储区。
场景一
例如当用户为手机安装应用程序(application,APP)时,可以执行步骤701-步骤704的方法。
701,开始。
702,安装应用场景时,主机30接收创建新文件的请求。,
用户安装APP时,需要将该APP的文件创建到存储系统的存储区。具体地,当安装APP时,待创建的新文件包括安装该APP时各类不同的二进制文件,不同的二进制文件具有不同的名称以及文件类型。
应理解,这里的新文件可以是指在应用商店下载的应用安装包经过解压、编译等得到的各种文件。
可选地,该创建新文件的请求消息中可以包括机器学习的数据或者预设数据表的信息,主机30可以根据接收的请求消息获取该机器学习的数据或者预设数据表的信息,该机器学习的数据或者预设数据表的信息可以列举多个热点应用或者某应用的热点文件,从而主机30可以确定用户当前待安装的应用是否是热点应用,或者该应用中的哪些文件是热点文件。
主机30可以进一步地将不同的文件创建到不同的存储区域,例如图6示出的缓存区(cache),或者通过缓存区(cache)将数据写入常规存储区(TLC存储区),又或者,可以直接将数据写入SLC存储形态的高速存储区(SLC存储区)。其中,对于手机安装应用的场景,待创建的新文件需要进行持久化存储,即写入常规存储区(TLC存储区)或者高速存储区(SLC存储区)。
703,主机30响应于创建新文件的请求消息,根据该请求消息选择所述第一逻辑单元或者所述第二逻辑单元。
704,主机30在选择的逻辑单元中创建所述新文件。
在一种可能的实现方式中,主机30可以根据所述待创建的新文件的文件类型,选择所述第一逻辑单元或者所述第二逻辑单元。
可选地,主机30可以根据创建新文件的请求消息,该创建新文件的请求消息还可以包括该新文件的文件类型的信息,主机30可以结合前述机器学习的数据或者预设数据表的信息,和该新文件的文件类型的信息,选择创建新文件到第一逻辑单元或者第二逻辑单元。
示例性的,手机中常见的文件类型可以列举如下表1所示,表1列出了一些可能的文件格式以及对应的文件类型。例如,请求消息中预设了应用压缩包文件为热点文件,当主机30接收到创建文件请求后,将该.apk文件创建到第二逻辑单元,即高速存储区,本申请实施例对此不作限定。
表1
文件格式 | 文件类型 |
.apk | 应用压缩包 |
.so | 库文件 |
.odex/.vdex | 优化编译的二进制文件 |
.db/.db-journal/.db-wal | 数据库文件 |
.xml | 配置信息 |
.mp4 | 视频媒体文件 |
.jpg/.png | 图片媒体文件 |
.m4a/.mp3/.flac | 音频媒体文件 |
.amr | 音频文件(通话记录、录音等) |
enc | 加密文件(个人数据、聊天记录等) |
在另一种可能的实现方式中,主机30可以根据所述待创建的新文件所属的目录或者该新文件作为目录文件,,选择所述第一逻辑单元或者所述第二逻辑单元。
可选地,在应用安装时,例如用户在应用商店下载该应用时,根据预设的规则确定文件创建的存储单元。例如,由应用商店指示该应用的文件所属的目录,当待创建的新文件属于热点文件时,主机30在创建该新文件时,将该新文件创建到第二逻辑单元(LU 4)。
应理解,该新文件所属的目录或者该新文件作为目录文件的信息,可以包含在主机30接收到的新文件创建请求消息中,本申请实施例对此不作限定。
可选地,主机30可以根据所述新文件所属的应用,选择所述第一逻辑单元或者所述第二逻辑单元。例如,由应用商店指示热点应用的范围,当待创建的新文件属于某个热点应用时,主机30在创建该新文件时,将该新文件创建到第二逻辑单元(LU 4)。
可选地,主机30可以根据当前安装的APP的包名确定待写入高速存储区的文件。
示例性的,主机30可以按照该APP的包名,例如,确定将包名为PKG的该APP的特定路径下特定类型的相关数据(二进制文件)写入高速存储区。例如,包名为PKG的该APP的相关数据可以列举包括以下的一种或者多种:
(1)/data/app/PKG/base.apk文件;
(2)/data/app/PKG/lib路径下的.so文件;
(3)/data/app/PKG/oat路径下的base.odex、base.vdex、base.art文件;
(4)/data/data/PKG下的.db文件等。
在该APP的安装时刻,主机30并不知道该APP安装后,被用户使用的情况,即不能获取安装该APP后,主机读取该APP的各类数据的频率,这种情况下,可以直接将根据上述方法,按照该APP的包名,确定待写入高速存储区的数据。
可选地,主机30将包名为PKG的该APP的文件写入高速存储区,可以将该APP的其他文件写入常规存储区,或者根据高速存储区的剩余容量大小,将除以上特定路径下特定类型之外的其他文件也部分写入高速存储区,本申请实施例对此不做限定。
应理解,由于高速存储区的SLC存储介质的性能和寿命都高于常规存储区,如果主机30将包名为PKG的该APP的文件写入高速存储区,可以利用高速存储区的高性能,提高运行该APP的速率,提高用户体验。此外,将该APP的其他文件写入常规存储区,可以避免该类文件对高速存储区的无效占用,节省出更多的高速存储区的空间给其他应用,提高其他应用的运行速率,提高用户体验。另一方面,该方法只需要根据APP的包名,确定写入高速存储区的文件,无需存储任何文件的访问时间或访问频次信息,实现过程更加便捷。在另一种可能的实现方式中,主机30可以根据对安装的APP的各类文件的访问频率,确定待写入高速存储区的数据。
示例性的,在本申请实施例中,安装该APP或者运行该APP时,主机30读取该APP的各类文件的频率不同。按照主机30读取该APP的各类文件的频率由高到低排序,可以设置频率阈值,将主机30读取频率大于等于频率阈值的文件称为“热点文件”。
可选地,对于被广泛应用的APP,经过应用启动行为分析,手机在安装之前可以获取该APP安装后启动过程中频繁访问的文件路径及文件类型所具有的共性特征,从而确定主机30读取频率较大的热点文件,并将热点文件创建到高速存储区。本申请实施例对确定APP的各类文件的频率的方法不做限定。
可选地,主机30将该类热点文件写入高速存储区,可以将该APP的其他文件写入常规存储区,或者根据高速存储区的剩余容量大小,将该APP的其他文件也按照主机的读取频率由高到低的顺序,写入部分较高读取频率的文件,本申请实施例对此不做限定。
应理解,由于高速存储区的SLC存储介质的性能和寿命都高于常规存储区,如果主机30将热点文件创建到高速存储区,可以利用高速存储区的高性能,提高读取文件的速率,进而提升运行该APP的速率,提高用户体验。此外,将主机30读取频率较低的文件创建到常规存储区,可以避免该类文件对高速存储区的无效占用,节省出更多的高速存储区的空间给其他应用,提高其他应用的运行速率,提高用户体验。
在另一种可能的实现方式中,主机30可以根据用户安装的APP的数量,确定待创建到高速存储区的文件。
对于不同的用户,手机安装的APP的数量不同。按照用户的安装APP的数量,可以将用户划分为不同的群体。例如,将安装的APP的数量大于或者等于100个的用户标记为重度使用用户;将安装的APP的数量大于或者等于50且小于100个的用户标记为中度使用用户;安装的APP的数量小于50个的用户标记为轻度使用用户。
应理解,这里“重度”、“中度”和“轻度”是以用户安装的APP的数量为参照依据,进行的一种划分,本申请实施例对用户的划分方式不做限定。
还应理解,本申请实施例对主机获取用户安装的APP的方式不做限定。可选地,例如,当用户使用手机时,会在该手机厂商提供的服务器侧注册用户账号,并安装了45个应用。如果用户更换手机,可以继续在新手机上登录该账号,在保证用户隐私的情况下,主机可以获取该账号安装应用的数量,进而将该用户划分为轻度使用用户。
对于轻度使用用户或者中度使用用户,其安装的APP数量较少,例如安装的APP数量小于或者等于100个。此时,高速存储区(10GB)的容量能够容纳100个APP中的绝大多数APP的热点文件,主机可以直接将所有APP的热点文件创建到高速存储区。该方法能够使得用户尽快获得高速存储区的性能收益,不需要等待应用在使用一段时间后再被迁入高速存储区。
对于重度使用用户,其安装的APP数量较多,例如安装的APP数量大于100个。此时,高速存储区(10GB)的容量仅仅能够容纳部分APP中的热点文件。此时,可以根据用户曾经对各种APP的使用频率等,直接将使用频率高的APP的热点文件创建到高速存储区。该方法对于用户经常使用的APP,能够获得高速存储区的性能收益,提高用户体验。
场景二
以上介绍了用户为手机安装APP的场景下,主机30可以根据不同的方法,确定创建到高速存储区的文件。对于已经创建到高速存储区和常规存储区的文件,在后续手机的使用过程中,针对不同的应用场景,两个存储区的文件被主机读取的频率会发生变化。
例如,在白天09:00至18:00的工作时段,用户对手机已经安装的办公类APP的使用概率较高,而对聊天等社交类APP的使用概率较低;而在18:00至23:00的闲暇时段,用户对办公类APP的使用概率较低,而对聊天等社交类APP的使用概率较高。如果办公类APP的文件被永久写入到高速存储区,聊天等社交类APP的文件被永久写入到常规存储区,那么在白天09:00至18:00的工作时段,用户对办公类APP有较高的使用体验;在18:00至23:00的闲暇时段,用户对社交类APP有较差的使用体验。或者,如果办公类APP的文件被永久写入到常规存储区,聊天等社交类APP的文件被永久写入到高速存储区,那么在白天09:00至18:00的工作时段,用户对办公类APP有较差的使用体验;在18:00至23:00的闲暇时段,用户对社交类APP有较高的使用体验。
因此,本申请实施例还提供一种针对高速存储区和常规存储区的数据调整方案,以满足用户不同的使用需求。下面针对用户日常使用场景,可以执行方法700中步骤705-步骤707。
705,主机30确定当前为用户日常使用场景。
706,主机30确定待迁移到高速存储区的文件。
707,主机30将所述第一逻辑单元的文件迁移到所述第二逻辑单元;和/或将所述第二逻辑单元的文件迁移到所述第一逻辑单元文件。
首先,要调整高速存储区和常规存储区的文件,不能影响用户的正常使用。可选地,主机30可以选择合适的时机,对存储在常规存储区的数据和存储在高速存储区的数据进行存储位置的调整。
在一种可能的实现方式中,当手机处于空闲未被使用的场景时,根据用户的日常使用习惯,主机将创建在常规存储区的文件迁移到高速存储区,和/或将创建在高速存储区的文件迁移到常规存储区。
示例性的,主机可以确定当前手机的使用状态,例如手机处于充电状态或者灭屏状态。进一步地,当判断手机处于充电状态,或者手机屏幕熄灭的时长达到预设时长时,确定手机处于空闲未被使用的时段,并将该时段确定为上述合适的时机,主机将创建在常规存储区的文件迁移到高速存储区,和/或将创建在高速存储区的文件迁移到常规存储区。
可选地,主机可以根据用户对多个APP的使用习惯,重新为每个应用分配高速存储区的存储空间,然后对常规存储区的文件和高速存储区的文件进行调整。
在一种可能的实现方式中,在一定时间内,按照用户对安装的L个应用的使用频率(或者访问次数)从大到小的顺序排列,从L个应用中选择使用频率(或者访问次数)最高的K个应用,在高速存储区中分配足够的存储空间,并将该K个应用的热点文件全部装入高速存储区。
应理解,L大于或者等于K,且L和K为正整数。其中,L和K的数量可通过大数据统计的应用热度确定,本申请实施例对此不做赘述。
如果选出的K个应用的热点文件存储在常规存储区,可以在手机处于空闲未被使用的时间时,将该K个应用的热点文件从常规存储区调整到高速存储区。
或者,如果选出的K个应用的热点文件已经都存储在高速存储区,且该高速存储区的容量还比较充足时,可以继续按照应用的使用频率(或者访问次数)从大到小的顺序排列,从剩余(L-K)个应用中选择一定数量的应用,并将该K个应用的热点文件全部写入高速存储区。
通过上述方法,可以在高速存储区的容量允许的情况下,将用户使用频率高或者访问次数多的应用的热点文件写入高速存储区,以保证高速存储区带来的高性能体验,进而提升该应用的运行速率,提高用户体验。
在另一种可能的实现方式中,当选出的K个应用的热点文件已经都存储在高速存储区,且该高速存储区的容量还比较充足时,对于剩余(L-K)个应用,可以按照应用的使用频率(或者访问次数)的占比,将可分配的高速存储区的剩余总空间按比例分给剩余的(L-K)个应用。
可选地,将高速存储区的剩余总空间按比例分给剩余的(L-K)个应用时,可以按照以下的策略为(L-K)个应用筛选应用热点文件。具体筛选过程包括:
(1)首先进行样本收集,通过选取大量的应用,遍历不同类型的文件的组合写入快速存储区后的应用启动时间收益。
(2)计算不同类型的文件与该应用启动时间收益的相关系数,作为该文件类型对应的影响系数。
通过步骤(1)和步骤(2),得到表2,表2是本申请实施例提供的一例文件类型和影响系数的统计表。如表2所示,对于文件类型分别包括base.apk、base.odex、base.vdex、base.art和.so文件为例,计算每一种文件类型的文件写入快速存储区后的应用时间收益。
应理解,以表2中列举的文件类型为例,该应用启动时间收益可以通过相对时间收益或者绝对时间收益来表征。其中,相对收益可以理解为:对于应用A来说,该应用的base.apk文件从常规存储区写入高速存储区之后,当用户启动应用A时,可以节省的时间。例如,如果该应用的base.apk文件从常规存储区写入高速存储区之后节省的时间大于该应用的.so文件从常规存储区写入高速存储区之后节省的时间,则可以认为调整base.apk文件到高速存储区带来的时间收益更大,即应用A的启动会更快。
绝对时间收益可以理解为:对于应用A和应用B来说,如果base.apk文件存储在常规存储区,应用A启动时的耗时为10秒(second,s),应用B启动时的耗时为30s;当base.apk文件从常规存储区写入高速存储区之后,应用A启动耗时缩短了2s,应用B启动也耗时缩短了2s。此时,即使应用A和应用B的启动时间都缩短了2s,但是对于应用A,绝对时间收益为2/10,对于应用B,绝对时间收益为2/30,因此,应用A的绝对时间收益大于应用B的绝对时间收益,此时将应用A的base.apk文件从常规存储区写入高速存储区可以取得更大的时间收益。本申请实施例对时间收益的表征方式不做限定。
表2
文件类型 | 影响系数 |
base.apk | a |
base.odex | b |
base.vdex | c |
base.art | d |
.so | e |
(3)计算得到文件组合决策表。
示例性的,对于应用A来说,由表2中计算的结果,可以遍历所有类型文件的组合,计算每种组合的影响系数。表3是本申请实施例提供的一例文件组合影响系数的统计表。例如,文件组合可以包括base.apk+base.odex、base.odex+base.vdex、base.apk+base.odex+base.vdex等,并对应的计算文件组合中所有文件的总大小。按照文件组合的大小,从小到大的顺序进行排序,即表3中文件组合的大小为:Y1<Y2<Y3<…<Yk。
同时,对应的计算文件组合中所有类型文件的影响系数之和,遵循随着文件组合大小Y的增大,影响系数X逐渐递增的原则取包络,将不符合该原则的组合排除。最终得到表3所示的文件组合决策表,表3中文件组合的影响系数X随着文件组合大小Y的增大而递增。
表3
文件类型 | 影响系数 | 文件组合的大小 |
base.apk+base.odex | X1=a+b | Y1 |
base.odex+base.vdex | X2=b+c | Y2 |
base.apk+base.odex+base.vdex | X3=a+b+c | Y3 |
… | … | … |
base.apk+base.odex+…+… | Xk | Yk |
(4)根据高速存储区的容量大小y,选择对应的文件组合。
具体地,若高速存储区的可用空间有限,分配给该应用A的容量为y,则能够从表中选出文件组合的大小Y小于或等于y且影响系数X最大的文件组合,即为最优文件组合。
示例性的,如果Y3正好等于高速存储区的可用容量y,X3>X2且X3>X1,则base.apk+base.odex+base.vdex为最优文件组合,将应用A的base.apk+base.odex+base.vdex作为热点文件,从常规存储区写入高速存储区,以保证高速存储区带来的高性能体验,获取最大的时间收益。
同理,对于用户安装的多个应用,可以根据用户访问每个应用的频次为每个应用分配高速存储区空间,并针对每个应用计算该应用的文件组合决策表,从文件组合决策表中得到最优的文件组合,作为热点文件,从常规存储区写入高速存储区,以保证高速存储区带来的高性能体验,针对每一个应用的获取最大的时间收益。
通过上述方法,结合用户的使用习惯进行个性化动态调整,选取手机处于充电状态或者灭屏状态等闲时,对文件存储的区域进行调整,实现对高性能的高速存储区的空间的有效管理,保证在有限容量中写入时间收益最大的文件组合,获得最优的增益提升。而且,该调整存储区域的过程用户无感,不影响用户正常使用手机。
上述介绍的文件创建和文件读取的过程,或者在常规存储区和高速存储区之间,进行文件迁移的过程,主机30不但要准确知道每一个应用的文件创建的位置,还要能够实现对常规存储区和高速存储区的管理。
应理解,本申请实施例的LU 4和LU 3映射的盘挂载在文件系统的同一目录下。因此,对于一个应用的文件,可以在LU 3和LU 4之间进行迁移,在用户层面上,用户不需要感知该迁移过程,也不会影响用户的使用。
对于系统创建新文件的过程,可以对应不同的实现过程。例如,系统可以通过open接口打开缓冲区,根据参数执行不同的结果,如果没有文件就创建文件,例如通过write接口写入该新文件的内容,通过close接口关闭该新文件。
在一种可能的实现方式中,创建新文件到文件系统的过程中,当该新文件需要被创建到SLC存储区(高速存储区)时,首先系统可以调用open接口或者create接口,创建新文件,获取该新文件的描述符fd;再调用ioctl接口传入参数,指定该新文件的内容要落盘到SLC存储区映射的快盘;再调用write接口写入该新文件的内容到该描述符fd对应的内存缓冲区,调用close接口关闭该新文件的描述符fd,最后内核文件系统会在合适的时机将内存中数据回刷到磁盘的高速存储区,该新文件的内容实现真正落盘。
创建新文件到文件系统的过程中,当该新文件需要被创建到TLC存储区(常规存储区)时,首先系统可以调用open接口或者create接口,创建新文件,获取该新文件描述符fd;再调用ioctl接口传入参数,指定该新文件的内容要落盘到TLC存储区映射的慢盘;再调用write接口写入该新文件的内容到该描述符fd对应的内存缓冲区,调用close接口关闭文件描述符该新文件的描述符fd,最后内核文件系统会在合适的时机将内存中数据回刷到磁盘的常规存储区,该新文件的内容实现真正落盘。
应理解,以上介绍的过程为一种可能的创建新文件并将新文件的内容落盘过程,还可以通过不同的实现方式,本申请实施例对此不作限定。在本申请实施例中,系统调用的接口不包含任何逻辑单元LU的信息,对于用户层面,各类应用访问文件的接口不需要变化。
示例性地,本申请实施例提供四种文件系统的新接口,实现对高速存储区的管理。
示例性的,图8是本申请实施例提供的一例文件系统管理模块示意图,如图8所示,对于图2中主机30的内核层的文件系统管理模块,本申请提供多种不同功能的接口,例如配置接口、查询接口、写入接口、迁移接口等。
具体地,配置接口,用于实时配置高速存储区的存储形态转换模式。该配置接口,可以实时配置高速存储区的存储形态转换模式。利用该配置接口的能力,可以调整高速存储区的存储形态转换方向和转换寿命值。
示例性的,基于新型开源闪存文件系统(flash friendly file system,f2fs)设计ioctl接口。具体的实现过程中,可以借助于新增cmd码F2FS_IOC_SET_TZ_STATUS_IOR(F2FS_IOCTL_MAGIC,20,struct tz_status),tz_status结构体包含需要配置的高速存储区的信息,例如SLC存储形态信息和容量信息等。
查询接口,用于实时查询高速存储区的使用状态信息。该配置接口,可以实时查询高速存储区的使用状态信息,例如高速存储区空间使用量,剩余容量,剩余寿命值,存储形态转换信息等。
示例性的,基于f2fs设计ioctl接口。具体的实现过程中,可以借助于新增cmd码F2FS_IOC_GET_TZ_STATUS_IOR(F2FS_IOCTL_MAGIC,20,struct tz_status),tz_status结构体包含需要查询的高速存储区使用状态信息。
写入接口也可以称为“落盘接口”,用于向该高速存储区创建文件。创建数据时,主机可以确定该数据存放在高速存储区还是常规存储区。图9是本申请实施例提供的又一例文件创建过程示意图,利用写入接口,采用一定的规则和策略,如图9所示,选取合适的文件放入高速存储区,再其他文件写入常规存储区。
示例性的,基于f2fs设计ioctl接口。具体的实现过程中,可以新增cmd码F2FS_IOC_SET_TZ_KEY_FILE_IOW(F2FS_IOCTL_MAGIC,16,__u32),在文件落盘的时候,同步配置该文件的描述符属性,0表示落常规存储区,1表示落高速存储区。
迁移接口,用于将文件从高速存储区迁移到常规存储区,或者从常规存储区迁移到高速存储区,即实现文件在高速存储区和常规存储区之间的互相迁移。利用该能力,针对用户的使用行为习惯和文件重要程度的变化做出调整,选取合适时机,进行文件迁移。图10是本申请实施例提供的又一例文件迁移过程示意图,如图10所示,文件1可以从高速存储区调整到常规存储区,或者从常规存储区调整到高速存储区,即在高速存储区和常规存储区之间的互相迁移。
示例性的,基于f2fs设计ioctl接口。具体的实现过程中,可以新增cmd码F2FS_IOC_MIGRATE_TZ_KEY_FILE_IOW(F2FS_IOCTL_MAGIC,22,__u32),在文件落盘的时候,同步配置该文件的描述符属性,0表示将该文件从常规存储区迁移到高速存储区,1表示从高速存储区迁移到常规存储区。
通过设计上述介绍的多种接口,可以实现存储系统的配置、文件创建和文件读取的过程,以及在常规存储区和高速存储区之间,进行文件迁移的过程,从而进一步在各种不同的场景下,兼顾对存储系统性能、寿命和容量的要求,提升系统运行速度。
应理解,本申请实施例提供的存储系统还可以广泛应用于未来要求高存储性能的场景,例如可以满足AI场景对于大量数据访问的低时延高性能要求,或者内存容量紧张的时候的与存储之间的高速频繁交换数据的需求,第五代移动网络通信(5th generationwireless systems,5G)的网络带宽的数据传输需求,以及工作局域网或者家庭局域网的分布式终端数据传输需求等。
此外,该存储系统可应用的架构并不仅限于某种特定的混合存储架构,例如TLC或者SLC。无论混合存储区域所使用的介质是什么、介质种类有多少、容量大小是多少、是否固定容量等,都可以采用本技术方案对用户应用数据进行分类存储。
可以理解的是,终端设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对终端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的终端设备,可以执行上述数据存储或数据读取的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,终端设备可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对终端设备的动作进行控制管理。存储模块可以用于支持终端设备执行存储程序代码和数据等。通信模块,可以用于支持终端设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他终端设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的终端设备可以为具有图1所示结构的设备。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在终端设备上运行时,使得终端设备执行上述相关方法步骤实现上述实施例中的数据存储和数据读取的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的数据存储和数据读取的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的数据存储和数据读取的方法。
其中,本实施例提供的终端设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (32)
1.一种存储方法,其特征在于,所述方法应用于包括处理器和通用闪存存储器UFS的电子设备中,所述方法包括:
配置所述UFS的第一逻辑单元的数据存储形态为第一存储形态,第二逻辑单元的数据存储形态为第二存储形态,所述第一逻辑单元和所述第二逻辑单元挂载在文件系统的同一目录下,所述第一存储形态和所述第二存储形态相异,且所述第二存储形态的读写性能大于所述第一存储形态的读写性能;
响应于新文件的创建请求,确定第一信息,根据所述第一信息选择所述第一逻辑单元或者所述第二逻辑单元,并在选择的逻辑单元中创建所述新文件。
2.根据权利要求1所述的方法,其特征在于,所述第一信息包括所述新文件的文件类型信息。
3.根据权利要求1或2所述的方法,其特征在于,所述第一信息包括所述新文件所属目录的信息;或者当所述新文件作为目录文件时,所述第一信息包括所述目录文件的信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一信息包括所述新文件所属的应用的信息。
5.根据权利要求4所述的方法,其特征在于,所述新文件所属的应用的信息包括所述新文件所属的应用对应的应用包名。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
根据所述处理器对所述文件系统的文件的访问热度,将所述第一逻辑单元的文件迁移到所述第二逻辑单元;和/或将所述第二逻辑单元的文件迁移到所述第一逻辑单元。
7.根据权利要求6所述的方法,其特征在于,
当所述处理器访问所述第一逻辑单元的文件的频率大于或等于第一阈值时,将所述第一逻辑单元的文件迁移到所述第二逻辑单元;和/或
当所述处理器访问所述第二逻辑单元的文件的频率小于或等于所述第一阈值时,将所述第二逻辑单元的文件迁移到所述第一逻辑单元。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
获取用户已安装的应用程序的数量信息;
当所述用户已安装的应用程序的数量小于第二阈值时,将所述第一逻辑单元的文件迁移到所述第二逻辑单元;
当所述用户已安装的应用程序的总数量大于或等于所述第二阈值时,将用户已安装的应用程序按照用户使用频率从大到小的顺序排列,根据所述第二逻辑单元的容量大小,确定用户使用频率从大到小的前K个应用程序的热点文件,将所述前K个应用程序的热点文件迁移到所述第二逻辑单元,K为正整数。
9.根据权利要求8所述的方法,其特征在于,当所述用户已安装的应用程序中前K个应用程序的热点文件已经创建在所述第二逻辑单元且所述第二逻辑单元的容量大于或者等于第三阈值时,所述方法还包括:
获取所述用户安装的应用程序中前K个应用之外的N个应用,遍历所述N个应用的不同文件,确定M个文件集合,所述M个文件集合中的每个文件集合包括所述N个应用的至少一个文件;
计算将所述M个文件集合分别创建到所述第二逻辑单元对应的M个时间收益,所述时间收益为相对时间收益或者绝对时间收益;
根据所述M个文件集合和对应的所述M个时间收益,确定所述M个文件集合的M个影响系数;
将所述M个影响系数按照从大到小的顺序排列,根据所述第二逻辑单元的容量和所述M个文件集合的大小,从所述M个影响系数中确定前S个影响系数,并将所述S个影响系数对应的S个文件集合创建到所述第二逻辑单元。
10.根据权利要求6至9中任一项所述的方法,其特征在于,所述将所述第一逻辑单元的文件迁移到所述第二逻辑单元,和/或将所述第二逻辑单元的文件迁移到所述第一逻辑单元的发生时机为:
所述电子设备当前为空闲态;和/或
接收到用户的系统优化请求;和/或
所述第二逻辑单元的容量大于或者等于第四阈值。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述方法还包括:
配置所述第二逻辑单元的存储形态转换模式。
12.根据权利要求11所述的方法,其特征在于,所述第二逻辑单元的存储形态转换模式包括以下任意一种:
所述第二逻辑单元固定为所述第二存储形态;或者
当所述第二逻辑单元的存储空间小于第五阈值时,所述第二逻辑单元从所述第二存储形态单向转化为所述第一存储形态;或者
当所述第二逻辑单元的存储空间小于所述第五阈值时,所述第二逻辑单元从所述第二存储形态转化为所述第一存储形态,并且当所述第二逻辑单元的存储空间大于或等于所述第五阈值时,所述第二逻辑单元从所述第一存储形态转化为所述第二存储形态。
13.根据权利要求1至12中任一项所述的方法,其特征在于,
所述第一存储形态包括三层存储单元TLC,所述第二存储形态包括单层存储单元SLC;或者
所述第一存储形态包括双层存储单元MLC,所述第二存储形态包括SLC;或者
所述第一存储形态包括四层存储单元QLC,所述第二存储形态包括SLC;或者
所述第一存储形态包括TLC,所述第二存储形态包括MLC;或者
所述第一存储形态包括QLC,所述第二存储形态包括MLC;或者
所述第一存储形态包括QLC,所述第二存储形态包括TLC。
14.根据权利要求1至13中任一项所述的方法,其特征在于,所述配置所述UFS包括第一逻辑单元和第二逻辑单元,包括:
所述处理器向所述UFS的控制器发送第一指令,所述第一指令包括所述UFS多个逻辑单元的起始地址和终止地址;
响应于所述第一指令,所述UFS的控制器根据所述UFS多个逻辑单元的起始地址和终止地址,确定所述第一逻辑单元和所述第二逻辑单元;
所述处理器向所述UFS的控制器发送第二指令,响应于所述第二指令,所述UFS的控制器配置所述第一逻辑单元的数据存储形态为所述第一存储形态,所述第二逻辑单元的数据存储形态为所述第二存储形态;
其中,所述第一逻辑单元映射为系统普通盘,所述第二逻辑单元映射为系统快盘,且所述系统普通盘和所述系统快盘的文件挂载在所述文件系统的同一目录下。
15.一种电子设备,其特征在于,包括:
配置单元,用于配置所述UFS的第一逻辑单元的数据存储形态为第一存储形态,第二逻辑单元的数据存储形态为第二存储形态,所述第一逻辑单元和所述第二逻辑单元挂载在文件系统的同一目录下,所述第一存储形态和所述第二存储形态相异,且所述第二存储形态的读写性能大于所述第一存储形态的读写性能;
处理单元,用于响应于新文件的创建请求,确定第一信息,根据所述第一信息选择所述第一逻辑单元或者所述第二逻辑单元,并在选择的逻辑单元中创建所述新文件。
16.根据权利要求15所述的电子设备,其特征在于,所述第一信息包括所述新文件的文件类型信息。
17.根据权利要求15或16所述的电子设备,其特征在于,所述第一信息包括所述新文件所属目录的信息;或者当所述新文件作为目录文件时,所述第一信息包括所述目录文件的信息。
18.根据权利要求15至17中任一项所述的电子设备,其特征在于,所述第一信息包括所述新文件所属的应用的信息。
19.根据权利要求18所述的电子设备,其特征在于,所述新文件所属的应用的信息包括所述新文件所属的应用对应的应用包名。
20.根据权利要求15至19中任一项所述的电子设备,其特征在于,所述处理单元还用于:
根据所述处理器对所述文件系统的文件的访问热度,将所述第一逻辑单元的文件迁移到所述第二逻辑单元;和/或将所述第二逻辑单元的文件迁移到所述第一逻辑单元。
21.根据权利要求20所述的电子设备,其特征在于,
当所述处理器访问所述第一逻辑单元的文件的频率大于或等于第一阈值时,将所述第一逻辑单元的文件迁移到所述第二逻辑单元;和/或
当所述处理器访问所述第二逻辑单元的文件的频率小于或等于所述第一阈值时,将所述第二逻辑单元的文件迁移到所述第一逻辑单元。
22.根据权利要求20或21所述的电子设备,其特征在于,所述电子设备还包括:
获取单元,用于获取用户已安装的应用程序的数量信息;
以及,所述处理单元还用于:
当所述用户已安装的应用程序的数量小于第二阈值时,将所述第一逻辑单元的文件迁移到所述第二逻辑单元;
当所述用户已安装的应用程序的总数量大于或等于所述第二阈值时,将用户已安装的应用程序按照用户使用频率从大到小的顺序排列,根据所述第二逻辑单元的容量大小,确定用户使用频率从大到小的前K个应用程序的热点文件,将所述前K个应用程序的热点文件迁移到所述第二逻辑单元,K为正整数。
23.根据权利要求22所述的电子设备,其特征在于,当所述用户已安装的应用程序中前K个应用程序的热点文件已经创建在所述第二逻辑单元且所述第二逻辑单元的容量大于或者等于第三阈值时,所述获取单元还用于:
获取所述用户安装的应用程序中前K个应用之外的N个应用,遍历所述N个应用的不同文件,确定M个文件集合,所述M个文件集合中的每个文件集合包括所述N个应用的至少一个文件;
所述处理单元,还用于:
计算将所述M个文件集合分别创建到所述第二逻辑单元对应的M个时间收益,所述时间收益为相对时间收益或者绝对时间收益;
根据所述M个文件集合和对应的所述M个时间收益,确定所述M个文件集合的M个影响系数;
将所述M个影响系数按照从大到小的顺序排列,根据所述第二逻辑单元的容量和所述M个文件集合的大小,从所述M个影响系数中确定前S个影响系数,并将所述S个影响系数对应的S个文件集合创建到所述第二逻辑单元。
24.根据权利要求20至23中任一项所述的电子设备,其特征在于,所述处理单元将所述第一逻辑单元的文件迁移到所述第二逻辑单元,和/或将所述第二逻辑单元的文件迁移到所述第一逻辑单元的发生时机为:
所述电子设备当前为空闲态;和/或
接收到用户的系统优化请求;和/或
所述第二逻辑单元的容量大于或者等于第四阈值。
25.根据权利要求15至24中任一项所述的电子设备,其特征在于,所述配置单元还用于:
配置所述第二逻辑单元的存储形态转换模式。
26.根据权利要求25所述的电子设备,其特征在于,所述第二逻辑单元的存储形态转换模式包括以下任意一种:
所述第二逻辑单元固定为所述第二存储形态;或者
当所述第二逻辑单元的存储空间小于第五阈值时,所述第二逻辑单元从所述第二存储形态单向转化为所述第一存储形态;或者
当所述第二逻辑单元的存储空间小于所述第五阈值时,所述第二逻辑单元从所述第二存储形态转化为所述第一存储形态,并且当所述第二逻辑单元的存储空间大于或等于所述第五阈值时,所述第二逻辑单元从所述第一存储形态转化为所述第二存储形态。
27.根据权利要求15至26中任一项所述的电子设备,其特征在于,
所述第一存储形态包括三层存储单元TLC,所述第二存储形态包括单层存储单元SLC;或者
所述第一存储形态包括双层存储单元MLC,所述第二存储形态包括SLC;或者
所述第一存储形态包括四层存储单元QLC,所述第二存储形态包括SLC;或者
所述第一存储形态包括TLC,所述第二存储形态包括MLC;或者
所述第一存储形态包括QLC,所述第二存储形态包括MLC;或者
所述第一存储形态包括QLC,所述第二存储形态包括TLC。
28.根据权利要求15至27中任一项所述的电子设备,其特征在于,所述配置单元具体用于:
接收第一指令,所述第一指令包括所述UFS多个逻辑单元的起始地址和终止地址;
响应于所述第一指令,根据所述UFS多个逻辑单元的起始地址和终止地址,确定所述第一逻辑单元和所述第二逻辑单元;
接收第二指令,响应于所述第二指令,配置所述第一逻辑单元的数据存储形态为所述第一存储形态,所述第二逻辑单元的数据存储形态为所述第二存储形态;
其中,所述第一逻辑单元映射为系统普通盘,所述第二逻辑单元映射为系统快盘,且所述系统普通盘和所述系统快盘的文件挂载在所述文件系统的同一目录下。
29.一种电子设备,其特征在于,所述电子设备包括处理器以及通用闪存存储器UFS,所述处理器用于执行如权利要求1至14中任一项所述的方法。
30.一种终端设备,其特征在于,包括:一个或多个处理器;通用闪存存储器UFS,存储器;多个应用程序;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,当所述一个或者多个程序被所述处理器执行时,使得所述终端设备执行权利要求1至14中任一项所述的方法。
31.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子装置上运行时,使得所述电子装置执行如权利要求1至14中任一项所述的方法。
32.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至14中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010219526.4A CN111506262B (zh) | 2020-03-25 | 2020-03-25 | 一种存储系统、文件存储和读取方法及终端设备 |
US17/914,200 US20230120862A1 (en) | 2020-03-25 | 2021-03-24 | Storage System, File Storage and Reading Method, and Terminal Device |
PCT/CN2021/082695 WO2021190555A1 (zh) | 2020-03-25 | 2021-03-24 | 一种存储系统、文件存储和读取方法及终端设备 |
EP21774045.5A EP4109230A4 (en) | 2020-03-25 | 2021-03-24 | STORAGE SYSTEM, FILE STORAGE AND READING METHODS, AND TERMINAL DEVICE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010219526.4A CN111506262B (zh) | 2020-03-25 | 2020-03-25 | 一种存储系统、文件存储和读取方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506262A true CN111506262A (zh) | 2020-08-07 |
CN111506262B CN111506262B (zh) | 2021-12-28 |
Family
ID=71864575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010219526.4A Active CN111506262B (zh) | 2020-03-25 | 2020-03-25 | 一种存储系统、文件存储和读取方法及终端设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230120862A1 (zh) |
EP (1) | EP4109230A4 (zh) |
CN (1) | CN111506262B (zh) |
WO (1) | WO2021190555A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269759A (zh) * | 2020-10-23 | 2021-01-26 | 北京浪潮数据技术有限公司 | 一种共享文件存储的迁移方法及相关装置 |
CN112601106A (zh) * | 2020-11-16 | 2021-04-02 | 北京都是科技有限公司 | 视频图像的处理方法、装置及存储介质 |
CN112764678A (zh) * | 2021-01-18 | 2021-05-07 | Oppo广东移动通信有限公司 | 数据搬移方法、相关装置、以及计算机存储介质 |
CN112799475A (zh) * | 2021-01-04 | 2021-05-14 | 湖南磐石科技有限公司 | 自带独立系统硬盘的固态硬盘及计算机设备 |
CN113448739A (zh) * | 2021-08-31 | 2021-09-28 | 阿里云计算有限公司 | 一种数据处理方法及装置 |
WO2021190555A1 (zh) * | 2020-03-25 | 2021-09-30 | 华为技术有限公司 | 一种存储系统、文件存储和读取方法及终端设备 |
CN114168498A (zh) * | 2021-11-09 | 2022-03-11 | 百富计算机技术(深圳)有限公司 | 一种断线保持方法、装置、设备及计算机存储介质 |
WO2022116778A1 (en) * | 2020-12-02 | 2022-06-09 | International Business Machines Corporation | Enhanced application performance using storage system optimization |
WO2022193129A1 (en) * | 2021-03-16 | 2022-09-22 | Micron Technology, Inc. | Memory management procedures for write boost mode |
WO2023045483A1 (zh) * | 2021-09-23 | 2023-03-30 | 华为技术有限公司 | 一种存储设备、数据存储方法及存储系统 |
CN116069263A (zh) * | 2023-03-07 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 文件系统的优化方法、装置、服务器、设备及存储介质 |
CN116560587A (zh) * | 2023-07-10 | 2023-08-08 | 北京小米移动软件有限公司 | 数据管理系统及终端设备 |
WO2024026956A1 (zh) * | 2022-08-05 | 2024-02-08 | 中山市江波龙电子有限公司 | 数据存储方法、装置、存储设备及计算机可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11907539B2 (en) * | 2020-11-20 | 2024-02-20 | Samsung Electronics Co., Ltd. | System and method for stream based data placement on hybrid SSD |
CN114936007A (zh) * | 2022-06-02 | 2022-08-23 | 三星(中国)半导体有限公司 | 存储数据的方法和装置 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398749A (zh) * | 2008-11-13 | 2009-04-01 | 成都市华为赛门铁克科技有限公司 | 一种静态损耗均衡的方法、装置和系统 |
CN101727503A (zh) * | 2010-01-29 | 2010-06-09 | 宋振华 | 一种创建磁盘文件系统的方法 |
CN103400598A (zh) * | 2007-08-14 | 2013-11-20 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
CN103677654A (zh) * | 2012-09-24 | 2014-03-26 | 联想(北京)有限公司 | 一种存储数据的方法及电子设备 |
CN103914360A (zh) * | 2013-01-05 | 2014-07-09 | 联想(北京)有限公司 | 电子设备和数据备份恢复方法 |
CN103942151A (zh) * | 2014-04-10 | 2014-07-23 | 深圳市硅格半导体有限公司 | 闪存的数据存储方法及装置 |
US20150160872A1 (en) * | 2013-12-09 | 2015-06-11 | Hsun-Yuan Chen | Operation method of distributed memory disk cluster storage system |
US20150205680A1 (en) * | 2014-01-17 | 2015-07-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
CN105045523A (zh) * | 2014-04-15 | 2015-11-11 | 三星电子株式会社 | 存储控制器、存储装置和系统及操作存储控制器的方法 |
CN107102814A (zh) * | 2016-02-19 | 2017-08-29 | 群联电子股份有限公司 | 内存管理方法、内存控制电路单元与内存储存装置 |
CN107943713A (zh) * | 2017-11-22 | 2018-04-20 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘读性能的方法及固态硬盘 |
CN108804344A (zh) * | 2018-05-18 | 2018-11-13 | 记忆科技(深圳)有限公司 | 带文件系统的闪存存储方法及装置 |
CN109947358A (zh) * | 2017-12-20 | 2019-06-28 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110083573A (zh) * | 2019-04-30 | 2019-08-02 | 维沃移动通信有限公司 | 一种文件管理方法和移动终端 |
CN110795027A (zh) * | 2018-08-03 | 2020-02-14 | 三星电子株式会社 | 固态存储设备及包括该固态存储设备的电子系统 |
CN110795360A (zh) * | 2018-08-03 | 2020-02-14 | 爱思开海力士有限公司 | 数据存储设备以及该数据存储设备的操作方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003216460A (ja) * | 2002-01-21 | 2003-07-31 | Hitachi Ltd | 階層ストレージ装置及びその制御装置 |
KR101521493B1 (ko) * | 2008-07-16 | 2015-05-19 | 시게이트 테크놀로지 엘엘씨 | 통신 속도를 조절할 수 있는 컨트롤러, 상기 컨트롤러를포함하는 데이터 저장 장치, 및 상기 데이터 저장 장치를포함하는 데이터 통신 시스템 |
TWI607448B (zh) * | 2016-09-07 | 2017-12-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
WO2019083389A1 (en) * | 2017-10-26 | 2019-05-02 | EMC IP Holding Company LLC | MANAGING A FILE SYSTEM IN MULTIPLE LOGIC UNIT NUMBERS (LUN) |
CN111506262B (zh) * | 2020-03-25 | 2021-12-28 | 华为技术有限公司 | 一种存储系统、文件存储和读取方法及终端设备 |
-
2020
- 2020-03-25 CN CN202010219526.4A patent/CN111506262B/zh active Active
-
2021
- 2021-03-24 EP EP21774045.5A patent/EP4109230A4/en active Pending
- 2021-03-24 WO PCT/CN2021/082695 patent/WO2021190555A1/zh unknown
- 2021-03-24 US US17/914,200 patent/US20230120862A1/en active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400598A (zh) * | 2007-08-14 | 2013-11-20 | 三星电子株式会社 | 固态存储器、包含其的计算机系统和操作其的方法 |
CN101398749A (zh) * | 2008-11-13 | 2009-04-01 | 成都市华为赛门铁克科技有限公司 | 一种静态损耗均衡的方法、装置和系统 |
CN101727503A (zh) * | 2010-01-29 | 2010-06-09 | 宋振华 | 一种创建磁盘文件系统的方法 |
CN103677654A (zh) * | 2012-09-24 | 2014-03-26 | 联想(北京)有限公司 | 一种存储数据的方法及电子设备 |
CN103914360A (zh) * | 2013-01-05 | 2014-07-09 | 联想(北京)有限公司 | 电子设备和数据备份恢复方法 |
US20150160872A1 (en) * | 2013-12-09 | 2015-06-11 | Hsun-Yuan Chen | Operation method of distributed memory disk cluster storage system |
US20150205680A1 (en) * | 2014-01-17 | 2015-07-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
CN103942151A (zh) * | 2014-04-10 | 2014-07-23 | 深圳市硅格半导体有限公司 | 闪存的数据存储方法及装置 |
CN105045523A (zh) * | 2014-04-15 | 2015-11-11 | 三星电子株式会社 | 存储控制器、存储装置和系统及操作存储控制器的方法 |
CN107102814A (zh) * | 2016-02-19 | 2017-08-29 | 群联电子股份有限公司 | 内存管理方法、内存控制电路单元与内存储存装置 |
CN107943713A (zh) * | 2017-11-22 | 2018-04-20 | 深圳忆联信息系统有限公司 | 一种提升固态硬盘读性能的方法及固态硬盘 |
CN109947358A (zh) * | 2017-12-20 | 2019-06-28 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108804344A (zh) * | 2018-05-18 | 2018-11-13 | 记忆科技(深圳)有限公司 | 带文件系统的闪存存储方法及装置 |
CN110795027A (zh) * | 2018-08-03 | 2020-02-14 | 三星电子株式会社 | 固态存储设备及包括该固态存储设备的电子系统 |
CN110795360A (zh) * | 2018-08-03 | 2020-02-14 | 爱思开海力士有限公司 | 数据存储设备以及该数据存储设备的操作方法 |
CN110083573A (zh) * | 2019-04-30 | 2019-08-02 | 维沃移动通信有限公司 | 一种文件管理方法和移动终端 |
Non-Patent Citations (2)
Title |
---|
KIROCK KWON: "An advanced SLC-buffering for TLC NAND flash-based storage", 《 IEEE TRANSACTIONS ON CONSUMER ELECTRONICS》 * |
石伟: "基于闪存特性的存储优化及应用研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021190555A1 (zh) * | 2020-03-25 | 2021-09-30 | 华为技术有限公司 | 一种存储系统、文件存储和读取方法及终端设备 |
CN112269759B (zh) * | 2020-10-23 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种共享文件存储的迁移方法及相关装置 |
CN112269759A (zh) * | 2020-10-23 | 2021-01-26 | 北京浪潮数据技术有限公司 | 一种共享文件存储的迁移方法及相关装置 |
CN112601106B (zh) * | 2020-11-16 | 2022-11-15 | 北京都是科技有限公司 | 视频图像的处理方法、装置及存储介质 |
CN112601106A (zh) * | 2020-11-16 | 2021-04-02 | 北京都是科技有限公司 | 视频图像的处理方法、装置及存储介质 |
US11726692B2 (en) | 2020-12-02 | 2023-08-15 | International Business Machines Corporation | Enhanced application performance using storage system optimization |
WO2022116778A1 (en) * | 2020-12-02 | 2022-06-09 | International Business Machines Corporation | Enhanced application performance using storage system optimization |
GB2616789A (en) * | 2020-12-02 | 2023-09-20 | Ibm | Enhanced application performance using storage system optimization |
CN112799475A (zh) * | 2021-01-04 | 2021-05-14 | 湖南磐石科技有限公司 | 自带独立系统硬盘的固态硬盘及计算机设备 |
CN112764678A (zh) * | 2021-01-18 | 2021-05-07 | Oppo广东移动通信有限公司 | 数据搬移方法、相关装置、以及计算机存储介质 |
WO2022193129A1 (en) * | 2021-03-16 | 2022-09-22 | Micron Technology, Inc. | Memory management procedures for write boost mode |
CN113448739B (zh) * | 2021-08-31 | 2022-02-11 | 阿里云计算有限公司 | 一种数据处理方法及装置 |
CN113448739A (zh) * | 2021-08-31 | 2021-09-28 | 阿里云计算有限公司 | 一种数据处理方法及装置 |
WO2023045483A1 (zh) * | 2021-09-23 | 2023-03-30 | 华为技术有限公司 | 一种存储设备、数据存储方法及存储系统 |
CN114168498A (zh) * | 2021-11-09 | 2022-03-11 | 百富计算机技术(深圳)有限公司 | 一种断线保持方法、装置、设备及计算机存储介质 |
CN114168498B (zh) * | 2021-11-09 | 2024-02-06 | 百富计算机技术(深圳)有限公司 | 一种断线保持方法、装置、设备及计算机存储介质 |
WO2024026956A1 (zh) * | 2022-08-05 | 2024-02-08 | 中山市江波龙电子有限公司 | 数据存储方法、装置、存储设备及计算机可读存储介质 |
CN116069263A (zh) * | 2023-03-07 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 文件系统的优化方法、装置、服务器、设备及存储介质 |
CN116560587B (zh) * | 2023-07-10 | 2023-10-13 | 北京小米移动软件有限公司 | 数据管理系统及终端设备 |
CN116560587A (zh) * | 2023-07-10 | 2023-08-08 | 北京小米移动软件有限公司 | 数据管理系统及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230120862A1 (en) | 2023-04-20 |
CN111506262B (zh) | 2021-12-28 |
EP4109230A1 (en) | 2022-12-28 |
WO2021190555A1 (zh) | 2021-09-30 |
EP4109230A4 (en) | 2023-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506262B (zh) | 一种存储系统、文件存储和读取方法及终端设备 | |
US8775737B2 (en) | Efficient cache management | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
US9626126B2 (en) | Power saving mode hybrid drive access management | |
US9323460B2 (en) | Assigning priorities to data for hybrid drives | |
WO2022257748A1 (zh) | 虚拟内存管理方法和电子设备 | |
CN113590501A (zh) | 一种数据存储方法及相关设备 | |
KR20200139433A (ko) | 컨트롤러의 동작 방법 및 메모리 시스템 | |
KR102314138B1 (ko) | 모바일 장치 및 모바일 장치의 데이터 관리 방법 | |
WO2019080531A1 (zh) | 一种信息采集及内存释放的方法及装置 | |
KR20200114086A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN115934002B (zh) | 固态硬盘的访问方法、固态硬盘、存储系统及云服务器 | |
CN107577612B (zh) | 移动装置和将数据存储在移动装置中的方法 | |
CN113805792A (zh) | 存储器系统及其操作方法 | |
JP2016515258A (ja) | 最適化ファイル動作のためのファイル集合化 | |
CN102760061B (zh) | 屏蔽固态硬盘存储接口差异的方法及存储系统 | |
CN117369735B (zh) | 数据存储方法、电子设备及存储介质 | |
KR20200053052A (ko) | 스토리지 장치 및 스토리지 장치로 전송되는 데이터를 관리하는 전자 장치 | |
US20110106861A1 (en) | Interface Techniques Providing Contiguous Storage For Files | |
CN114490442B (zh) | 文件片段调整方法及电子设备 | |
US20230168822A1 (en) | Memory management method and semiconductor device adjusting size of contiguous memory allocation area | |
US11835992B2 (en) | Hybrid memory system interface | |
CN102622301A (zh) | 一种闪存文件的读取和更新方法及系统 | |
CN117707639A (zh) | 应用启动加速方法、电子设备及存储介质 | |
CN116954511A (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 |