CN117668319B - 数据查询方法、电子设备及存储介质 - Google Patents
数据查询方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117668319B CN117668319B CN202410142128.5A CN202410142128A CN117668319B CN 117668319 B CN117668319 B CN 117668319B CN 202410142128 A CN202410142128 A CN 202410142128A CN 117668319 B CN117668319 B CN 117668319B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- table information
- task
- processing module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 238000012545 processing Methods 0.000 claims description 145
- 230000004044 response Effects 0.000 claims description 73
- 230000008569 process Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 12
- 238000005192 partition Methods 0.000 abstract description 11
- 238000007726 management method Methods 0.000 description 68
- 230000003068 static effect Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 18
- 238000013507 mapping Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据查询方法、电子设备及存储介质,涉及终端技术领域,电子设备在执行第一任务时,若电子设备未从第一存储器中查询到第一任务所需的第一数据,电子设备查询第一存储器是否缓存有第一数据的逻辑地址到物理地址L2P表信息;若电子设备从第一存储器中查询到第一数据的L2P表信息,电子设备基于第一数据的L2P表信息,从第二存储器中获取第一数据;第一存储器包括第一存储区域和第二存储区域,第一存储区域用于存储预设的高频数据的L2P表信息,第二存储区域用于存储执行不同优先级任务所需数据的L2P表信息。通过分区存储不同数据的L2P表信息,可提升第一存储器缓存命中率,可提升数据查询速度。
Description
技术领域
本申请涉及终端技术领域,尤其涉及数据查询方法、电子设备及存储介质。
背景技术
随着电子设备的发展,电子设备支持的功能越来越丰富。用户使用电子设备的过程中,电子设备可能同时运行有多个应用,包括前台应用和后台应用。电子设备在执行前台应用或后台应用的某一任务或进程时,通常需要从存储设备获取数据,若数据获取不及时,可能被用户感知,影响用户使用电子设备的体验。
因此,如何提升电子设备的数据查询速度是亟待解决的一个问题。
发明内容
本申请实施例提供一种数据查询方法、电子设备及存储介质,提升电子设备的数据查询速度。
第一方面,本申请实施例提供一种数据查询方法,应用于电子设备,电子设备包括第一存储器和第二存储器,第一存储器为电子设备的内部存储器,第二存储器为电子设备的外部存储器,该方法包括:电子设备在执行第一任务时,若电子设备未从第一存储器中查询到第一数据,电子设备查询第一存储器是否缓存有第一数据的逻辑地址到物理地址L2P表信息,第一数据的L2P表信息用于指示第一数据在第二存储器的物理地址;若电子设备从第一存储器中查询到第一数据的L2P表信息,电子设备基于第一数据的L2P表信息,从第二存储器中获取第一数据;第一存储器包括第一存储区域和第二存储区域,第一存储区域用于存储预设的高频数据的L2P表信息,第二存储区域用于存储执行不同优先级任务所需的数据的L2P表信息,第一数据为执行第一任务所需的数据。
其中,第一存储器可以为图5所示的主机存储器,第二存储器可以为图5所示的通用闪存UFS存储设备,第一任务可以为图9所示的任务A,第一任务可以为VIP任务(重要任务)或非VIP任务(非重要任务),第一数据的L2P表信息包括第一数据的逻辑地址到物理地址的映射表。第一存储区域可以为图5所示的HPB存储器的静态区域,第二存储区域可以为图5所示的HPB存储器的动态区域,示例性的,第二存储区域存储有VIP任务所需的数据的L2P表信息和非VIP任务所需的数据的L2P表信息。
上述方法中,在电子设备的第一存储器中划分第一存储区域和第二存储区域,不同区域用于存储不同数据的L2P表信息,第一存储区域存储一些高频数据的L2P表信息,第二存储区域存储不同优先级任务所需数据的L2P表信息,通过分区域存储的方式,对不同数据的L2P表信息进行分区管理,保证资源划分的公平性,可以在一定程度上提升第一存储器缓存命中率。这样,电子设备在执行第一任务时,能够以较大概率从第一存储器中获取到第一任务的第一数据的L2P表信息,基于第一数据的L2P表信息从第二存储器获取第一数据,可提升数据查询速度,进而可提升设备的io性能。
第一方面的一个可选实施例中,电子设备包括第一处理模块和第二处理模块,第一处理模块负责管理和控制第一存储器,第二处理模块负责管理和控制第二存储器;电子设备查询第一存储器是否缓存有第一数据的L2P表信息,包括:第一处理模块查询第一存储器是否缓存有第一数据的L2P表信息;若电子设备从第一存储器中查询到第一数据的L2P表信息,电子设备基于第一数据的L2P表信息,从第二存储器中获取第一数据,包括:若第一处理模块从第一存储器中查询到第一数据的L2P表信息;第一处理模块向第二处理模块发送第一查询请求,第一查询请求包括第一数据的L2P表信息;第二处理模块基于第一数据的L2P表信息,从第二存储器的第一存储空间获取第一数据,并向第一处理模块发送第一查询响应,第一查询响应包括第一数据。
其中,第一处理模块可以为图5所示的CPU1,第二处理模块可以为图5所示的CPU2,第一查询请求可以为图9所示的io请求1,第一查询响应可以为图9所示的io响应1。第二存储器的第一存储空间可以为图5所示的NAND闪存的存储空间。
上述方法示出了电子设备查询第一数据时的内部模块的交互流程,第一处理模块从第一存储器获取到第一数据的L2P表信息后,需要向第二存储器的第二处理模块下发查询请求,由第二处理模块基于L2P表信息从第二存储器的第一存储空间获取第一数据,并将第一数据返回第一处理模块,以便第一处理模块执行第一任务。由于上述过程无需第二处理模块查询第一数据的L2P表信息,从而缩短了数据查询的时间,提升了数据查询速度。
第一方面的一个可选实施例中,第一处理模块从第一存储器中查询到第一数据的L2P表信息,包括:第一处理模块从第一存储器的第一存储区域中查询到第一数据的L2P表信息,或者,从第一存储器的第二存储区域中查询到第一数据的L2P表信息。
示例性的,若第一数据为高频数据,第一数据的L2P表信息存储在第一存储器的第一存储区域。若第一数据为经常被访问的VIP任务或非VIP任务的数据(除高频数据之外的数据),第一数据的L2P表信息存储在第一存储器的第二存储区域。
上述方法中,若第一数据为高频数据或经常被访问的VIP任务或非VIP任务的数据,电子设备可直接在第一存储器命中第一数据的L2P表信息,进而可根据第一数据的L2P表信息获取第一数据在第二存储器中的物理地址,根据该物理地址快速获取第一数据,提升了数据查询速度。
第一方面的一个可选实施例中,若第一处理模块未从第一存储器中查询到第一数据的L2P表信息,第一处理模块向第二处理模块发送第二查询请求,第二查询请求包括第一数据的标识;第二处理模块基于第一数据的标识,从第二存储器的第一存储空间获取第一数据的L2P表信息;第二处理模块基于第一数据的L2P表信息,从第一存储空间获取第一数据;第二处理模块向第一处理模块发送第二查询响应,第二查询响应包括第一数据和第一数据的L2P表信息。
其中,第二查询请求可以为图9所示的io请求2,第一数据的标识可以为第一数据的inode,第二查询响应可以为图9所示的io响应2。
上述方法中,若第一数据不是高频数据或经常被访问的VIP任务或非VIP任务的数据,电子设备无法从第一存储器中获取第一数据的L2P表信息,电子设备需要先从第二存储器的第一存储空间获取第一数据的L2P表信息,再基于第一数据的L2P表信息从第二存储器的第一存储空间获取第一数据,即电子设备需要访问第一存储空间两次,以获取第一数据和第一数据的L2P表信息。
第一方面的一个可选实施例中,响应于接收到第二查询响应,第一处理模块将第一数据的L2P表信息存储至第一存储器的第二存储区域。
上述方法中,电子设备的第一处理模块在获取到第一数据和第一数据的L2P表信息后,可以将第一数据的L2P表信息存储至第一存储器的第二存储区域,以便后续查询时使用。
第一方面的一个可选实施例中,第一存储器的第二存储区域包括第一优先级任务的L2P链表,以及第二优先级任务的L2P链表,第一优先级高于第二优先级;第一处理模块将第一数据的L2P表信息存储至第一存储器的第二存储区域,包括:若第一任务是第一优先级任务,第一处理模块将第一数据的L2P表信息添加至第一优先级任务的L2P链表中;或者,若第一任务是第二优先级任务,第一处理模块将第一数据的L2P表信息添加至第二优先级任务的L2P链表中。
一种可选的实施例中,电子设备的第一处理模块获取第一任务的任务标签,确定第一任务为VIP任务还是非VIP任务。
其中,第一优先级任务的L2P链表包括第一优先级任务所需的数据的L2P表信息,例如,第一优先级任务的L2P链表为图7所示的VIP任务的L2P链表。第二优先级任务的L2P链表包括第二优先级所需的任务的L2P表信息,例如,第二优先级任务的L2P链表可以为非VIP任务的L2P链表。
上述方法中,电子设备可根据第一任务的优先级,将执行第一任务所需的第一数据的L2P表信息添加至相应任务优先级的L2P链表中,实现对不同数据的L2P表信息进行分区管理,保证资源划分的公平性,可以在一定程度上提升第一存储器缓存命中率。
第一方面的一个可选实施例中,若第一任务是第一优先级任务,第一处理模块将第一数据的L2P表信息添加至第一优先级任务的L2P链表中,包括:若第一优先级任务的L2P链表的L2P表的数量已达到预设数量,第一处理模块基于最近最少使用LRU策略,淘汰第一优先级任务的L2P链表中的至少一个L2P表,再将第一数据的L2P表信息添加至第一优先级任务的L2P链表中。或者,
若第一任务是第二优先级任务,第一处理模块将第一数据的L2P表信息添加至第二优先级任务的L2P链表中,包括:若第二优先级任务的L2P链表的L2P表的数量已达到预设数量,第一处理模块基于最近最少使用LRU策略,淘汰第二优先级任务的L2P链表中的至少一个L2P表,再将第一数据的L2P表信息添加至第二优先级任务的L2P链表中。
其中,淘汰的L2P表可以为L2P链表中expires变量为0的L2P表,或者,L2P链表中expires变量从大到小进行排序后,最后N个expires变量的L2P表,例如,N取1或2。
上述方法中,电子设备在确定将第一数据的L2P表信息添加至某优先级任务的L2P链表时,若该L2P链表的L2P表的数量已达到预设数量,电子设备需要从L2P链表中淘汰最近最少使用的至少一个L2P表,从而释放出存储空间,以添加当前使用的第一数据的L2P表。通过动态更新第一存储器的第一存储区域中的L2P链表,以使第一存储器有较高的缓存命中率。
第一方面的一个可选实施例中,该方法还包括:电子设备开机或重启后,电子设备获取配置信息,配置信息包括预设的高频数据的文件名和标识;电子设备从第二存储器中获取高频数据的L2P表信息;电子设备将高频数据的L2P表信息存储至第一存储器的第一存储区域。
上述方法中,电子设备基于配置信息,提前从第二存储器中获取高频数据的L2P表信息,并将高频数据的L2P表信息写入第一存储器的第一存储区域,这样,在执行高频数据相关的任务时,电子设备可从第一存储器中获取高频数据的L2P表信息,提升高频数据查询速度。
第一方面的一个可选实施例中,电子设备还包括配置模块,电子设备获取配置信息,包括:配置模块从外部存储器获取配置文件,通过解析配置文件,获取配置信息;配置模块向电子设备的第一处理模块发送配置信息;电子设备从第二存储器中获取高频数据的L2P表信息,包括:第一处理模块向电子设备的第二处理模块发送第三查询请求,第三查询请求包括高频数据的标识;第二处理模块基于高频数据的标识,从第二存储器的第一存储空间或第二存储空间获取高频数据的L2P表信息;第二处理模块向第一处理模块发送第三查询响应,第三查询响应包括高频数据的L2P表信息;电子设备将高频数据的L2P表信息存储至第一存储器的第一存储区域,包括:第一处理模块将高频数据的L2P表信息存储至第一存储器的第一存储区域。
上述方法示出了电子设备初始化第一存储器的第一存储区域时的内部模块的交互流程,通过第一处理模块和第二处理模块的信息交互,实现将高频数据的L2P表信息写入第一存储器的第一存储区域。
第一方面的一个可选实施例中,该方法还包括:电子设备获取更新配置信息,更新配置信息包括新增的高频数据的文件名和标识;电子设备从第二存储器中获取新增的高频数据的L2P表信息;电子设备将新增的高频数据的L2P表信息存储至第一存储器的第一存储区域。
上述方法中,考虑到电子设备性能的扩展,扩展功能相关任务的数据可能为高频数据,则需要将这些高频数据的L2P表信息更新至第一存储器的第一存储空间,以优化电子设备的第一存储器的第一存储空间的L2P表信息,这样,在执行高频数据相关的任务时,电子设备可从第一存储器中获取高频数据的L2P表信息,提升高频数据查询速度。
第二方面,本申请实施例提供了一种电子设备,电子设备包括:一个或多个处理器和存储器;存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第一方面中任一项的方法。
第三方面,本申请实施例提供了一种芯片***,芯片***应用于电子设备,芯片***包括一个或多个处理器,一个或多个处理器用于调用计算机指令以使得电子设备执行如第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面中任一项所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在电子设备上运行时,使得电子设备执行如第一方面中任一项所述的方法。
应当理解的是,本申请的第二方面至第五方面与本申请的第一方面的技术方案相对应,各方面及对应的可选实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的电子设备的结构示意图一;
图2为本申请实施例提供的数据查询方法的流程图一;
图3为本申请实施例提供的数据查询方法的流程图二;
图4为本申请实施例提供的LRU算法的原理图;
图5为本申请实施例提供的电子设备的结构示意图二;
图6为本申请实施例提供的HPB存储器中静态区域的初始化过程的示意图;
图7为本申请实施例提供的HPB存储器的动态区域的L2P链表的示意图;
图8为本申请实施例提供的主机***中HPB L2P管理模块的处理流程示意图;
图9为本申请实施例提供的数据查询方法的流程图三;
图10为本申请实施例提供的数据查询方法的流程图四;
图11为本申请实施例提供的电子设备的结构示意图三。
具体实施方式
电子设备的io(input/output,输入/输出)性能,是指电子设备在读写、传输和执行程序等方面的表现。提升电子设备io性能对于提升用户体验、增强多任务处理能力、提升***性能和延长电子设备使用寿命等方面都具有重要意义。
本申请实施例提出的技术方案主要用于提升电子设备的io性能。
为了便于理解方案,下面首先对本申请实施例涉及的电子设备的结构进行说明。
电子设备的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的软件***为安卓***为例,示例性说明电子设备的结构。
示例性的,图1为本申请实施例提供的电子设备的结构示意图一。分层架构将电子设备的软件***分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。如图1所示,电子设备包括应用程序层、应用程序框架层、内核层和硬件层。
应用程序层可以包括例如相机,日历,通话,地图,导航,蓝牙,音乐等应用程序。
应用程序框架层可为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。
内核层是硬件和软件之间的层,本申请实施例中,内核层包括主机***,主机***包括中央处理器(Central Processing Unit,CPU)(如图1中的CPU1)、主机存储器(hostmemory)和主机控制接口(host controller interface)。CPU1可通过主机控制接口访问硬件层的USF存储设备。主机存储器可以缓存部分数据,主机存储器也可称为主机内存或主存储器。
当电子设备执行某一进程或进程中的某一任务时,电子设备的主机***有读取数据的需求,若主机***从主机存储器中未获取到数据,主机***需要向USF存储设备发送io请求,以触发USF存储设备获取数据。上述过程可以看作是电子设备执行了一次io操作,io操作通常是指电子设备内部的操作,而非用户触发的操作。
示例性的,当电子设备执行启动应用A的进程时,该进程包括获取应用A的启动动画数据,若主机***的主机存储器中未缓存应用A的启动动画数据,主机***向USF存储设备发送io请求,以触发USF存储设备获取应用A的启动动画数据。
本申请实施例中,硬件层包括通用闪存(Universal Flash Storage,USF)存储设备,USF存储设备包括存储设备控制器(storage device controller)和NAND闪存。存储设备控制器包括CPU(如图1中的CPU2)、静态随机存储器(Static Random Access Memory,SRAM)和NAND控制器。NAND闪存是一种非易失性存储器。
CPU2可看作是USF存储设备中的主处理器,主要负责处理电子设备上层(例如,应用程序层、应用程序框架层或者内核层)发送的io请求,解析io请求中数据的逻辑地址。
存储设备控制器中的SRAM可以看作是USF存储设备的内存,SRAM中存储着数据的L2P(Logical to Physical)表。L2P表是一种以逻辑地址为索引,物理地址为内容的映射表,用于实现逻辑地址到物理地址的映射,即将逻辑地址转换为物理地址。逻辑地址是指有操作***或应用程序生成的虚拟地址,用于访问内存或存储设备中的数据。物理地址是指实际存储数据的物理位置。
CPU2在解析io请求中数据的逻辑地址后,可以通过查询SRAM中的数据对应的L2P表,获取数据在存储介质NAND中的物理地址。
由于成本的限制,UFS存储设备中的SRAM通常只有几兆,无法存储整个NAND的地址映射表,也即SRAM中存储的L2P表并不完整,因此会发生L2P表无法命中的情况。此时,UFS存储设备就需要对NAND做一次额外的查询,以获取数据对应的L2P表。具体过程参见图2。
示例性的,图2为本申请实施例提供的数据查询方法的流程图一。如图2所示,电子设备的主机***在执行某进程或进程中的某任务时,获取数据的流程,可以包括:
S0. 主机***的CPU1访问主机存储器。
若主机存储器未查询到数据,可执行:
S1. CPU1向USF存储设备的CPU2发送io请求。示例性的,CPU1通过主机控制接口向CPU2发送io请求。
S2. 响应于接收到io请求,CPU2访问SRAM,查询数据对应的L2P表。
若CPU2在SRAM中未查询到数据对应的L2P表,可执行:
S3. CPU2通过NAND控制器访问NAND,查询数据对应的L2P表。
S4. CPU2查询到数据对应的L2P表后,将数据对应的L2P表存储至SRAM。
S5. CPU2通过NAND控制器访问NAND,获取数据。
CPU2基于SRAM中数据对应的L2P表,获取数据在NAND的物理地址,通过NAND控制器访问NAND,从该物理地址获取数据。
S6. CPU2向CPU1发送io响应,io响应可以包括数据和数据对应的L2P表。
CPU1接收到数据对应的L2P表后,可将数据对应的L2P表存储至主机存储器。
该实施例中,主机***的主机存储器和USF的SRAM均未命中L2P表,需要USF的CPU2对NAND做一次额外查询,以获取L2P表。在获取L2P表之后,可将获取的L2P表分别存储至主机***的主机存储器和USF的SRAM中,为后续查询提供依据。
在一些实施例中,若CPU2在SRAM中查询到数据对应的L2P表,执行S5和S6。
该实施例中,主机***的主机存储器未命中L2P表,但USF内存命中L2P表,USF的CPU2基于L2P表,通过NAND控制器从NAND获取数据,并将数据返回主机***。
基于上述实施例,查询某进程或某任务数据的流程中,主要涉及以下几个部分的时延:
(1)主机***的主机存储器发生页面错误(page fault)到产生io请求的时延。
该时延即S0的时延。页面错误是指主机***在主机存储器中未查询到所需数据或数据对应的文件页时产生的事件,该事件也称为缺页事件。
(2)主机***向USF存储设备发送io请求的时延。该时延即S1的时延
(3)USF存储设备内置CPU2访问SRAM产生的时延。该时延即S2的时延
(4)当USF存储设备内置CPU2通过SRAM未查询到L2P表(即UFS存储设备的L2P缓存未命中)时,访问NAND产生的时延。该时延即S3的时延。
(5)USF存储设备内置CPU2访问存储在NAND中数据,并将该数据返回主机***的时延。该时延即S5和S6的时延。
上述时延中,(4)和(5)耗时最长,即最大时延主要是访问NAND的时延,包括访问NAND以查询数据对应的L2P表的时延,以及访问NAND以获取数据的时延。
HPB(Host Performance Booster)方案是一种优化电子设备io性能的方案,其主要思路是在主机***的主机存储器(以手机为例,手机的主机存储器的大小通常是几GB到几十GB)中划分一部分内存,通常为十几到几十兆,例如划分64M内存用于HPB方案,存储USF存储设备中的部分L2P表信息,相当于增大了USF的SRAM存储空间。这样,在主机存储器未存储数据时,CPU1可优先从主机存储器查询数据对应的L2P表信息,以获取数据的物理地址。通常,数据(也可称为文件)对应的L2P表信息的大小大约为数据本身大小的1/1000。
一种示例中,如果在主存储器命中数据对应的L2P表,可节省很大一部分延迟,如访问NAND以查询数据对应的L2P表的延迟,从而提升设备的io性能。另一种示例中,如果没有在主机存储器命中数据对应的L2P表,CPU1向USF存储设备发送io请求。
示例性的,图3为本申请实施例提供的数据查询方法的流程图二。基于图2实施例,如图3所示,在执行S1之前,还包括:
S7. 主机***的CPU1访问主机存储器,查询数据对应的L2P表。
主机***的CPU1在主机存储器中未查询数据的情况下,CPU1进一步在主机存储器中查询数据对应的L2P表。
在一些实施例中,若CPU1在主机存储器中查询到数据对应的L2P表,可执行:
S8. CPU1通过CPU2和NAND控制器,访问NAND,以获取数据。
CPU1向CPU2发送查询请求1,查询请求1中包括数据对应的L2P表。CPU2接收到查询请求后,无需查询其SRAM,从数据对应的L2P表获取数据在NAND的物理地址。CPU2向NAND控制器下发查询请求2,查询请求2中包括数据在NAND的物理地址,NAND控制基于该物理地址获取数据。NAND控制器通过CPU2向CPU1返回查询到的数据。
该实施例中,采用HPB方案,主机内存直接命中L2P表,主机***基于L2P表从NAND获取数据,提升了电子设备的响应速度。
在一些实施例中,若CPU1在主机存储器中未查询到数据对应的L2P表,可执行S1至S6。
该实施例中,主机内存没有命中L2P表,主机***向USF存储设备发起io请求,以获取数据和数据对应的L2P表。
通常情况下,NAND存储介质被划分为不同区域(region),每个区域对应一张L2P表。示例性的,NAND存储介质包括区域1和区域2,区域1对应的L2P表用于存储区域1中数据的逻辑地址与物理地址的映射关系,区域2对应的L2P表用于存储区域2中数据的逻辑地址与物理地址的映射关系。
上述HPB方案,主机存储器采用最近最少使用(Least Recently Used,LRU)策略,缓存L2P表信息。示例性的,图4为本申请实施例提供的LRU算法的原理图。如图4所示,某一时刻,主机存储器中缓存的L2P表信息可看作是一个L2P链表,该L2P链表中包括多个区域的L2P表,每个区域的L2P表均配置有一个read_timeout_expires变量(后文简称为expires变量),该变量用于记录区域最近被访问的次数。
一种示例中,当有新的区域被访问时,该区域对应的L2P表会被链接到L2P链表中,该区域对应的L2P表的expires变量初始化为100,如图4中的L2P表_1。
一种示例中,若每经过1s某区域没有被访问,该区域对应的L2P表的expires变量就减少1,当expires变量减少为0时,该区域对应的L2P表会被淘汰出L2P链表,如图4中的L2P表_n。
一种示例中,若某区域对应的L2P表的expires变量减少至40,该区域再次被访问,则该区域对应的L2P表的expires变量将被重新置为100,如图4中,L2P表_n-1的expires变量大于L2P表_n-2的expires变量。
基于上述几个示例可知,L2P链表并非一个先进先出的链表,基于L2P链表中各个L2P表的expires变量大小淘汰一个或多个L2P表。例如,某一时刻,若链表中有expires变量为0的L2P链表,淘汰expires变量为0的L2P表(可能是一个或多个),若链表中没有expires变量为0的L2P链表,将链表中各个L2P表的expires变量按照从大到小进行排序,淘汰最后N个expires变量对应的L2P表,N为正整数,例如N取1或2。
理想情况下,采用上述HPB方案,主机***查询主机存储器,若命中数据对应的L2P表,可提升查询数据的响应速度。然而,经实际测试发现,HPB方案L2P表在主机存储器中实际的命中率只有百分之十左右,其主要原因是HPB方案使用的LRU算法存在以下问题:
一是电子设备在使用的过程中,io量(io请求的次数)通常很大,短时间内可能不断访问不同的数据或文件,L2P链表中L2P表的淘汰速率明显不够。
二是,对于安卓***来说,如果在某些场景下有大量的后台应用io,会造成L2P链表中存储的大部分L2P表是后台应用io相关的L2P表,前台应用io相关的L2P表缓存较少,这将影响对于前台应用的io响应速度。其中,后台应用io是指后台应用相关的io,后台应用是指在后台运行中的应用程序。前台应用io是指前台应用相关的io,前台应用是指正在被用户打开、操作或当前正在显示的应用程序。
针对上述问题,本申请实施例提供一种电子设备,通过对电子设备主机***的主机存储器的存储区域进行区域划分,以使不同存储区域存储不同的L2P表信息,优化主机存储器中L2P表的存储机制。进一步的,通过电子设备主机***中的HPB L2P管理模块控制主机存储器中L2P表的存储与淘汰,提高主机存储器的缓存命中率,从而提升电子设备的io性能。
下面结合图5讲述对电子设备的主机***的改进进行详细说明。
示例性的,图5为本申请实施例提供的电子设备的结构示意图二。在图1所示电子设备的基础上,如图5所示,电子设备的主机***除了包括CPU1、主机存储器和主机控制接口外,还包括HPB L2P管理模块和HPB存储器。
HPB L2P管理模块负责管理HPB存储器中的L2P表信息,并控制改进的HPB方案的执行,具体过程参见后文。主机存储器除了缓存部分数据外,还可以缓存一部分数据的L2P表信息,L2P表信息存储在HPB存储器中,即HPB存储器是存储L2P表的介质。
在一些实施例中,HPB存储器也可称为HPB内存,HPB内存是前述主机内存的一部分。具体来说,HPB存储器被划分为两个区域,分别为静态区域(pinned region)和动态区域(dynamic region)。
静态区域用于存储高频数据的L2P表信息,静态区域的L2P表通常是固定不变的。示例性的,图5中静态区域存储有高频数据1至高频数据n的L2P表。这样,当主机***需要获取高频数据时,可以从HPB存储器的静态区域获取高频数据对应的L2P表,以获取高频数据在NAND的物理地址,可提升数据查询速度。
动态区域用于存储动态的L2P链表,L2P链表中的L2P表可能被淘汰,动态区域的L2P链表包括两种类型的L2P链表。示例性的,如图5所示,动态区域包括第一L2P链表和第二L2P链表,其中第一L2P链表中的L2P表均为VIP任务的L2P表,第二L2P链表中的L2P表均为非VIP任务的L2P表。VIP任务的优先级高于非VIP任务的优先级。HPB L2P管理模块负责对第一L2P链表和第二L2P链表进行管理,以提高HPB存储器中L2P表的命中率。
需要指出的是,某一应用的一个进程可能包括多个任务,任务A为多个任务的其中一个。在t时刻,任务A为VIP任务,在t+n时刻,任务A可能为非VIP任务,即同一任务在不同时刻可能被标记为不同类型的任务。相应的,任务A对应的L2P表,可能被添加至第一L2P链表或第二L2P链表,但同一时刻该任务对应的L2P表只能够被添加至这两个链表的其中一个。此外,同一任务可能对应不同应用,例如,应用A的某一进程包括任务A,应用B的某一进程也包括任务A。
需要指出的是,VIP任务通常是前台任务,例如,正在与用户进行交互的任务。VIP任务也可能是一些较为重要的后台任务,例如,负责应用保活的任务、负责网络连接与数据处理的任务等。非VIP任务通常是后台任务,例如,正在后台运行的应用的更新任务等。
基于前文实施例,HPB存储器的静态区域存储高频数据的L2P表信息。电子设备可采用动态模型和滑动模型,执行大量测试用例,以确定高频数据的文件名和inode等信息。其中动态模型可用于执行不同应用程序的不同测试用例,以检测电子设备的io性能,如视频应用中,执行测试播放视频的用例,或者测试登入或登出视频应用的用例等。滑动模型可用于执行不同应用程序的用户界面上的滑动操作相关的用例,以检测电子设备的io性能。测试人员将高频数据的文件名和inode等信息写入xml配置文件中,xml配置文件可存储在电子设备的外部存储器(如UFS存储设备)中。电子设备开机或重启后,电子设备可以从外部存储器中读取xml配置文件,以初始化HPB存储器中静态区域。
其中,高频数据的inode是指高频数据在内核层中的标识,内核层基于该标识可以唯一确定该高频数据。电子设备可基于高频数据的inode生成高频数据的逻辑地址,从而可以从NAND或者SRAM中获取高频数据的L2P表信息。
下面结合图6对HPB存储器的静态区域的相关内容进行详细介绍。
示例性的,图6为本申请实施例提供的HPB存储器中静态区域的初始化过程的示意图。以安卓***为例,如图6所示,电子设备开机或重启后,电子设备执行***初始化过程,在***初始化时,电子设备的应用程序框架层中的配置模块(图6中的parser模块)从外部存储器获取xml配置文件,并对xml配置文件进行解析,获取高频数据的文件名和inode等配置信息。配置模块将配置信息,下发给应用程序框架层的iaware模块。iaware模块接收到配置信息后,可通过proc文件***,向电子设备的内核层的HPB L2P管理模块发送配置信息。HPB L2P管理模块接收到配置信息后,利用HPB原生的通信协议向USF存储设备发送L2P请求,L2P请求中包括高频数据的inode,L2P请求用于请求获取高频数据对应的L2P表信息。USF存储设备接收到L2P请求后,获取高频数据对应的L2P表信息,并向HPB L2P管理模块发送L2P响应,L2P响应中包括高频数据对应的L2P表信息。HPB L2P管理模块接收到L2P响应后,将高频数据对应的L2P表信息存储至HPB存储器的静态区域,例如,图5中,高频数据对应的L2P表信息包括高频数据1至高频数据n的L2P表。
需要指出的是,图6所示的iaware模块可以看作是应用程序框架层向内核层发送数据的一个接口模块,proc文件***可以看作是内核层的一个接口模块。
电子设备运行过程中,通常有多个任务同时执行,这些任务包括前台任务和后台任务,通常前台任务涉及用户交互,前台任务的优先级高于后台任务。然而,有些前台任务与后台任务有依赖关系,因此并非所有后台任务都是不重要的。鉴于此,电子设备可基于当前任务运行情况,动态地为每个任务打标签,标签可分为VIP标签或非 VIP标签,以此来标记任务的重要程度,并在HPB存储器中分别维护VIP任务的相关数据对应的L2P表信息,以及非VIP任务的相关数据对应的L2P表信息,以提升主机存储器的缓存命中率。
下面结合图7对HPB存储器的动态区域的相关内容进行详细介绍。
示例性的,图7为本申请实施例提供的HPB存储器的动态区域的L2P链表的示意图。如图7所示,HPB存储器的动态区域的动态存储两种类型的L2P链表,分别为VIP任务的L2P链表和非VIP任务的L2P链表。VIP任务的L2P链表包括VIP任务的相关数据的逻辑地址与物理地址的映射表,即VIP任务的相关数据对应的L2P表,非VIP任务的L2P链表包括非VIP任务的相关数据的逻辑地址与物理地址的映射表,即非VIP任务的相关数据对应的L2P表。
上述两种L2P链表均采用前述LRU策略,即使用计数的方法,L2P链表中的每个L2P表引入变量expires,每超过一秒L2P表未被引用,则expires减一,当有新的L2P表加入L2P链表,且L2P链表空间已满,优先淘汰expires最小的L2P表。
电子设备的主机***在执行某一任务时,图7所示的HPB L2P管理模块负责监控主机存储器的缺页事件,当发生缺页事件时,即主机***未从主机存储器获取到该任务的相关数据时,HPB L2P管理模块查询HPB存储器是否有该任务相关数据对应的L2P表,如果没有查询到,则HPB L2P管理模块向USF存储设备发送io请求,以获取缺页的数据以及数据对应的L2P表。在获取数据对应的L2P表时,HPB L2P管理模块可基于本次任务的标签(VIP标签或非VIP标签),将该数据对应的L2P表添加至对应的L2P链表。下面结合几个具体示例对上述过程进行详细说明。
一种示例中,电子设备在执行带VIP标签的任务时,需要访问存储在NAND中VIP任务的相关数据,如果电子设备的主机***未从主机存储器获取到VIP任务的相关数据,即发生了页面错误,主机***的HPB L2P管理模块向USF存储设备发送io请求,USF存储设备响应于io请求,向HPB L2P管理模块发送io响应,io响应包括VIP任务的相关数据以及VIP任务的相关数据对应的L2P表。HPB L2P管理模块将VIP任务的相关数据对应的L2P表添加至动态区域的VIP任务的L2P链表中。示例性的,图7中,HPB L2P管理模块将L2P表_1添加至VIP任务的L2P链表中。
一种示例中,如果VIP任务的L2P链表中的L2P表的数量已达到最大值,在添加新的VIP任务的相关数据对应的L2P表之前,可采用前述最近最少使用LRU策略,淘汰当前VIP任务的L2P链表中的至少一个L2P表。示例性的,图7中,如果VIP任务的L2P链表中的L2P表_3的expires变量为0,或者,为当前VIP任务的L2P链表中L2P表的expires变量的最小值,则淘汰L2P表_3。
一种示例中,电子设备在执行非VIP标签的任务时,需要访问存储在NAND中非VIP任务的相关数据,如果电子设备的主机***未从主机存储器获取到非VIP任务的相关数据,即发生了页面错误,主机***的HPB L2P管理模块向USF存储设备发送io请求,USF存储设备响应于io请求,向HPB L2P管理模块发送io响应,io响应包括非VIP任务的相关数据以及非VIP任务的相关数据对应的L2P表。HPB L2P管理模块将非VIP任务的相关数据对应的L2P表添加至动态区域的非VIP任务的L2P链表中。示例性的,图7中,HPB L2P管理模块将L2P表_1’添加至非VIP任务的L2P链表中。
一种示例中,如果非VIP任务的L2P链表中的L2P表的数量已达到最大值,在添加新的非VIP任务的相关数据对应的L2P表之前,可采用前述最近最少使用LRU策略,淘汰当前非VIP任务的L2P链表中的至少一个L2P表。示例性的,图7中,如果非VIP任务的L2P链表中的L2P表_2’的expires变量为0,或者,为当前非VIP任务的L2P链表中L2P表的expires变量的最小值,则淘汰L2P表_2’。
基于前述实施例,下面结合图8对主机***中HPB L2P管理模块的处理流程进行总述。
示例性的,图8为本申请实施例提供的主机***中HPB L2P管理模块的处理流程示意图。如图8所示,电子设备开启或重启后,HPB L2P管理模块接收来自应用程序框架层的配置模块的***初始化的指示信息,以执行***初始化过程,具体可参见图9实施例的S901至S906。
在完成HPB存储器的静态区域初始化后,HPB L2P管理模块可分别遍历动态区域的两个L2P链表,遍历的目的是淘汰满足条件的L2P表,以释放动态区域的存储空间。其中,满足条件的L2P表可以是例如expires变量为0的L2P表,或者,按照expires变量从大到小进行排序后,最后N个expires变量对应的L2P表。
示例性的,图8中,HPB L2P管理模块先对VIP任务的L2P链表进行遍历,获取VIP任务的L2P链表中的每个L2P表的expires变量,从VIP任务的L2P链表中淘汰满足上述条件的L2P表。在完成对VIP任务的L2P链表的遍历后,以同样的方式,获取非VIP任务的L2P链表中的每个L2P表的expires变量,从非VIP任务的L2P链表中淘汰满足上述条件的L2P表。在完成对VIP任务和非VIP任务的L2P链表的遍历后,HPB L2P管理模块进行监听模式。
在一些实施例中,也可以先执行对非VIP任务的L2P链表的遍历,再执行对VIP任务的L2P链表的遍历。或者,同时执行对VIP任务和非VIP任务的L2P链表的遍历。
HPB L2P管理模块在监听模式下,监听是否发生页面错误,若主机***执行某任务时,从主机存储器未获取到该任务的相关数据,则HPB L2P管理模块认为发生了页面错误。当HPB L2P管理模块确定发生页面错误时,首先确定发生页面错误的该任务是否为VIP任务,HPB L2P管理模块可通过获取任务标签,确定该任务是VIP任务还是非VIP任务。
一种示例中,HPB L2P管理模块确定当前任务为VIP任务,HPB L2P管理模块确定VIP任务的L2P链表中的L2P表的数量是否达到预设数量,若未达到预设数量,HPB L2P管理模块可直接将当前任务的相关数据对应的L2P表(即新的L2P表)添加至VIP任务的L2P链表中,若已达到预设数量,HPB L2P管理模块执行对VIP任务的L2P链表的遍历,以从VIP任务的L2P链表中淘汰至少一个L2P表。在一些实施例中,在执行完对VIP任务的L2P链表的遍历后,HPB L2P管理模块还可以执行对非VIP任务的L2P链表的遍历。
另一种示例中,HPB L2P管理模块确定当前任务为非VIP任务,HPB L2P管理模块确定非VIP任务的L2P链表中的L2P表的数量是否达到预设数量,若未达到预设数量,HPB L2P管理模块可直接将当前任务的相关数据对应的L2P表(即新的L2P表)添加至非VIP任务的L2P链表中,若已达到预设数量,HPB L2P管理模块执行对非VIP任务的L2P链表的遍历,以从非VIP任务的L2P链表中淘汰至少一个L2P表。在一些实施例中,在执行完对非VIP任务的L2P链表的遍历后,HPB L2P管理模块还可以执行对VIP任务的L2P链表的遍历。
上述实施例示出了HPB L2P管理模块的处理流程,HPB L2P管理模块不仅负责HPB存储器的静态区域中L2P表信息的初始化,还负责维护HPB存储器的动态区域中的两个动态变化的L2P链表,以提升HPB存储器缓存的L2P表信息的命中率,从而提升电子设备的io性能。
基于前述几个实施例,电子设备在执行前台任务或后台任务时,可基于本申请实施例提出的数据查询方法,从主机存储器或UFS存储设备中获取任务相关的数据。通过对主机***中的HPB存储器的存储优化以及对HPB L2P管理模块的性能优化,可提升获取数据物理地址的速度,从而提升查询或写入数据的响应速度,实现对电子设备io性能的优化。
下面结合图9和图10对本申请实施例提供的数据查询方法进行详细说明。
示例性的,图9为本申请实施例提供的数据查询方法的流程图三。如图9所示,该数据查询方法包括初始化HPB存储器的静态区域的流程以及数据查询流程,下面分别对这两个流程进行说明。
图9中,初始化HPB存储器的静态区域的流程,包括:
S901. 电子设备开机或重启后,应用程序框架层的配置模块向内核层的主机***的CPU1发送***初始化的指示信息。
指示信息用于指示CPU1执行对HPB存储器的静态区域的初始化。
S902. CPU1向配置模块发送配置请求,配置请求用于请求获取主机***的HPB存储器的静态区域的配置信息。
S903. 配置模块向CPU1发送配置响应。
一种示例中,CPU1的HPB L2P管理模块向配置模块发送配置请求,配置模块接收到该配置请求后,获取xml配置文件,并对xml配置文件进行解析,以获取主机***的HPB存储器的静态区域的配置信息,该配置信息中包括高频数据的文件名和inode等。配置模块向CPU1的HPB L2P管理模块发送配置响应,配置响应包括该配置信息。
S904a. CPU1向UFS存储设备的CPU2发送L2P请求1,L2P请求1包括高频数据的inode。
一种示例中,CPU1的HPB L2P管理模块向CPU2发送L2P请求1,CPU2接收到L2P请求1后,查询UFS存储设备的SRAM是否有高频数据对应的L2P表。
在一些实施例中,若CPU2从UFS存储设备的SRAM查询到高频数据对应的L2P表,执行:S905a. CPU2向CPU1发送L2P响应1,L2P响应1包括高频数据对应的L2P表。
该实施例中,CPU2直接从SRAM获取高频数据对应的L2P表。
在一些实施例中,若CPU2从UFS存储设备的SRAM未查询到高频数据对应的L2P表,执行:S904b. CPU2向UFS存储设备的NAND控制器发送L2P请求1。NAND控制器接收到L2P请求1后,基于L2P请求1中高频数据的inode,从NAND获取高频数据对应的L2P表。
在S904b之后,执行:S905b. NAND控制器向CPU2发送L2P响应1,L2P响应1包括高频数据对应的L2P表。
在S905b之后,执行S905a。
该实施例中,CPU2通过NAND控制器访问NAND,以获取高频数据对应的L2P表。
在S905a之后,执行:
S906. CPU1将高频数据对应的L2P表存储至HPB存储器的静态区域。
一种示例中,CPU1的HPB L2P管理模块将高频数据对应的L2P表存储至HPB存储器的静态区域。
上述S901至S906示出了电子设备开机或重启后,初始化HPB存储器的静态区域的过程,为后续数据查询流程提供数据支撑。
图9中,数据查询流程,包括:
S907. 主机***的CPU1执行任务A时,查询主机存储器是否存储有任务A的数据。
本实施例中,任务A可以是某应用程序的前台任务或者后台任务。示例性的,任务A为获取某应用程序的开机动画数据的任务。
在一些实施例中,若CPU1在主机存储器中未查询到任务A的数据,生成页面错误事件。CPU1通过HPB L2P管理模块监听到该缺页事件后,可执行:
S908. 主机***的CPU1查询HPB存储器是否有任务A的数据对应的L2P表。
CPU1通过HPB L2P管理模块查询HPB存储器是否有任务A的数据对应的L2P表。
在一些实施例中,若HPB L2P管理模块在HPB存储器中查询到任务A的数据对应的L2P表,执行:
S909. 主机***的CPU1向UFS存储设备的CPU2发送io请求1,io请求1包括任务A的数据对应的L2P表。
S910. CPU2向NAND控制器发送查询请求1,查询请求1用于请求获取任务A的数据。
查询请求1包括任务A的数据在NAND的物理地址。NAND控制器接收查询请求1后,基于任务A的数据在NAND的物理地址,从NAND获取任务A的数据。
S911. NAND控制器向CPU2发送查询响应1,查询响应1包括任务A的数据。
S912. CPU2向CPU1发送io响应1,io响应i包括任务A的数据。
CPU1接收到io响应1后,基于io响应1中任务A的数据,执行任务A。示例性的,任务A的数据为某应用程序的开机动画数据,CPU1接收到任务A的数据后,向上层传输该数据,以显示该开机动画数据。
该实施例中,在主机***未缓存任务A,但缓存有任务A的数据对应的L2P表的情况下,主机***可将该L2P表发送至UFS存储设备,以便UFS存储设备的CPU2基于该L2P表,通过NAND控制器从NAND获取任务A的数据,可提升数据查询速度。
在一些实施例中,若HPB L2P管理模块在HPB存储器中未查询到任务A的数据对应的L2P表,执行:
S913. 主机***的CPU1向UFS存储设备的CPU2发送io请求2,io请求2包括任务A的数据的inode。
S914. CPU2向NAND控制器发送L2P请求2,L2P请求2包括任务A的数据的inode。
NAND控制器接收L2P请求2后,基于任务A的数据的inode,从NAND获取任务A的数据对应的L2P表。
S915. NAND控制器向CPU2发送L2P响应2,L2P响应2包括任务A的数据对应的L2P表。
S916. CPU2向NAND控制器发送查询请求2,查询请求2包括任务A的物理地址。
NAND控制器接收查询请求2后,基于任务A的物理地址从NAND获取任务A的数据。
S917. NAND控制器向CPU2发送查询响应2,查询响应2包括任务A的数据。
S918. CPU2向主机***的CPU1发送io响应2,io响应2包括任务A的数据以及任务A的数据对应的L2P表。
CPU1接收到io响应2后,CPU1基于io响应2中任务A的数据,执行任务2。CPU1将任务A的数据对应的L2P表存储至HPB存储器中,可用于后续数据查询。
该实施例中,在主机***未缓存任务A,且未缓存任务A的数据对应的L2P表的情况下,主机***向UFS存储设备发送io请求,以请求任务A的数据和数据对应的L2P表。UFS存储设备的CPU2需要先从NAND获取任务A的数据对应的L2P表,再基于该L2P表从NAND获取任务A的数据,经两轮访问NAND后,UFS存储设备向主机***返回io响应,io响应中包括任务A的数据和数据对应的L2P表。相较于前一个实施例,其数据查询速度较慢。
在一些实施例中,S912或S918之后,执行:
S919. 主机***的CPU1更新HPB存储器的动态区域的L2P链表。
CPU1通过HPB L2P管理模块更新HPB存储器的动态区域的L2P链表。HPB存储器的动态区域的L2P链表包括VIP任务的L2P链表和非VIP任务的L2P链表。CPU1通过HPB L2P管理模块控制更新VIP任务的L2P链表和非VIP任务的L2P链表。
HPB L2P管理模块获取任务A的标签,以确定任务A为VIP任务还是非VIP任务。
一种示例中,任务A的标签为VIP标签,任务A为VIP任务,HPB L2P管理模块获取任务A的数据对应的L2P表后,控制更新VIP任务的L2P链表。
更新VIP任务的L2P链表包括:将任务A的数据对应的L2P表添加至VIP任务的L2P链表,初始化任务A的数据对应的L2P表的expires变量(如设置为100);以及,更新VIP任务的L2P链表中剩余L2P表的expires变量,更新策略参见前文LRU策略,此处不再展开。
一种示例中,若VIP任务的L2P链表中L2P表的数量达到预设数量,在将任务A的数据对应的L2P表添加至VIP任务的L2P链表之前,还包括:从VIP任务的L2P链表中淘汰至少一个L2P表。淘汰策略参见前文LRU策略,此处不再展开。
一种示例中,任务A的标签为非VIP标签,任务A为非VIP任务,HPB L2P管理模块获取任务A的数据对应的L2P表后,控制更新非VIP任务的L2P链表。
更新非VIP任务的L2P链表包括:将任务A的数据对应的L2P表添加至非VIP任务的L2P链表,初始化任务A的数据对应的L2P表的expires变量(如设置为100);以及,更新非VIP任务的L2P链表中剩余L2P表的expires变量,更新策略参见前文LRU策略,此处不再展开。
一种示例中,若非VIP任务的L2P链表中L2P表的数量达到预设数量,在将任务A的数据对应的L2P表添加至非VIP任务的L2P链表之前,还包括:从非VIP任务的L2P链表中淘汰至少一个L2P表。淘汰策略参见前文LRU策略,此处不再展开。
随着电子设备功能的扩展,扩展功能相关的进程或任务中数据可能为高频数据,则需要将这些高频数据对应的L2P表写入HPB存储器的静态区域,以优化电子设备的io请求。考虑到静态区域存储空间的限制,可以周期性地更新HPB存储器的静态区域中的L2P表信息,例如,增加一部分高频数据对应的L2P表,删除一部分高频数据对应的L2P表。下面以新增高频数据对应的L2P表为例,对更新HPB存储器的静态区域的流程进行说明。
示例性的,图10为本申请实施例提供的数据查询方法的流程图四。如图10所示,该数据查询方法,包括:
S1001. 应用程序框架层的配置模块向内核层的主机***的CPU1发送更新配置信息。
配置模块在接收到更新配置信息后,向主机***的CPU1发送更新配置信息。更新配置信息包括新增的高频数据的文件名和inode等。
S1002a. 主机***的CPU1向UFS存储设备的CPU2发送L2P请求3,L2P请求3包括新增高频数据的inode。
在一些实施例中,若CPU2从UFS存储设备的SRAM查询到新增高频数据对应的L2P表,执行:S1003a. CPU2向主机***的CPU1发送L2P响应3,L2P响应3包括新增高频数据对应的L2P表。
在一些实施例中,若CPU2从UFS存储设备的SRAM未查询到新增高频数据对应的L2P表,执行:S1002b. CPU2向UFS存储设备的NAND控制器发送L2P请求3。NAND控制器接收到L2P请求3后,基于L2P请求3中新增高频数据的inode,从NAND获取新增高频数据对应的L2P表。
在S1002b之后,执行:S1003b. NAND控制器向CPU2发送L2P响应3,L2P响应3包括新增高频数据对应的L2P表。
在S1003b之后,执行S1003a。
在S1003a之后,执行:
S1004. 主机***的CPU1将新增高频数据对应的L2P表存储至HPB存储器的静态区域。
一种示例中,CPU1的HPB L2P管理模块将新增高频数据对应的L2P表存储至HPB存储器的静态区域。
上述S1001至S1004示出了更新HPB存储器的静态区域的过程,用于向HPB存储器的静态区域写入新的高频数据对应的L2P表,为后续数据查询流程提供数据支撑。
基于前述几个实施例,本申请实施例提供一种数据查询方法,应用于电子设备,电子设备包括第一存储器和第二存储器,第一存储器为电子设备的内部存储器,第二存储器为电子设备的外部存储器,该方法包括:
电子设备在执行第一任务时,若电子设备未从第一存储器中查询到第一数据,电子设备查询第一存储器是否缓存有第一数据的逻辑地址到物理地址L2P表信息,第一数据的L2P表信息用于指示第一数据在第二存储器的物理地址;
若电子设备从第一存储器中查询到第一数据的L2P表信息,电子设备基于第一数据的L2P表信息,从第二存储器中获取第一数据。
其中,第一存储器包括第一存储区域和第二存储区域,第一存储区域用于存储预设的高频数据的L2P表信息,第二存储区域用于存储执行不同优先级任务所需的数据的L2P表信息,第一数据为执行第一任务所需的数据。
其中,第一存储器可以为图5所示的主机存储器,第二存储器可以为图5所示的通用闪存UFS存储设备,第一任务可以为图9所示的任务A,第一任务可以为VIP任务(重要任务)或非VIP任务(非重要任务),第一数据的L2P表信息包括第一数据的逻辑地址到物理地址的映射表。第一存储区域可以为图5所示的HPB存储器的静态区域,第二存储区域可以为图5所示的HPB存储器的动态区域,示例性的,第二存储区域存储有VIP任务所需的数据的L2P表信息和非VIP任务所需的数据的L2P表信息。
上述方法中,在电子设备的第一存储器中划分第一存储区域和第二存储区域,不同区域用于存储不同数据的L2P表信息,第一存储区域存储一些高频数据的L2P表信息,第二存储区域存储不同优先级任务所需数据的L2P表信息,通过分区域存储的方式,对不同数据的L2P表信息进行分区管理,保证资源划分的公平性,可以在一定程度上提升第一存储器缓存命中率。这样,电子设备在执行第一任务时,能够以较大概率从第一存储器中获取到第一任务的第一数据的L2P表信息,基于第一数据的L2P表信息从第二存储器获取第一数据,可提升数据查询速度,进而可提升设备的io性能。
一个可选实施例中,电子设备包括第一处理模块和第二处理模块,第一处理模块负责管理和控制第一存储器,第二处理模块负责管理和控制第二存储器;电子设备查询第一存储器是否缓存有第一数据的L2P表信息,包括:第一处理模块查询第一存储器是否缓存有第一数据的L2P表信息;若电子设备从第一存储器中查询到第一数据的L2P表信息,电子设备基于第一数据的L2P表信息,从第二存储器中获取第一数据,包括:若第一处理模块从第一存储器中查询到第一数据的L2P表信息;第一处理模块向第二处理模块发送第一查询请求,第一查询请求包括第一数据的L2P表信息;第二处理模块基于第一数据的L2P表信息,从第二存储器的第一存储空间获取第一数据,并向第一处理模块发送第一查询响应,第一查询响应包括第一数据。
其中,第一处理模块可以为图5所示的CPU1,第二处理模块可以为图5所示的CPU2,第一查询请求可以为图9所示的io请求1,第一查询响应可以为图9所示的io响应1。第二存储器的第一存储空间可以为图5所示的NAND闪存的存储空间。
上述方法示出了电子设备查询第一数据时的内部模块的交互流程,第一处理模块从第一存储器获取到第一数据的L2P表信息后,需要向第二存储器的第二处理模块下发查询请求,由第二处理模块基于L2P表信息从第二存储器的第一存储空间获取第一数据,并将第一数据返回第一处理模块,以便第一处理模块执行第一任务。由于上述过程无需第二处理模块查询第一数据的L2P表信息,从而缩短了数据查询的时间,提升了数据查询速度。
一个可选实施例中,第一处理模块从第一存储器中查询到第一数据的L2P表信息,包括:第一处理模块从第一存储器的第一存储区域中查询到第一数据的L2P表信息,或者,从第一存储器的第二存储区域中查询到第一数据的L2P表信息。
示例性的,若第一数据为高频数据,第一数据的L2P表信息存储在第一存储器的第一存储区域。若第一数据为经常被访问的VIP任务或非VIP任务的数据(除高频数据之外的数据),第一数据的L2P表信息存储在第一存储器的第二存储区域。
上述方法中,若第一数据为高频数据或经常被访问的VIP任务或非VIP任务的数据,电子设备可直接在第一存储器命中第一数据的L2P表信息,进而可根据第一数据的L2P表信息获取第一数据在第二存储器中的物理地址,根据该物理地址快速获取第一数据,提升了数据查询速度。
一个可选实施例中,若第一处理模块未从第一存储器中查询到第一数据的L2P表信息,第一处理模块向第二处理模块发送第二查询请求,第二查询请求包括第一数据的标识;第二处理模块基于第一数据的标识,从第二存储器的第一存储空间获取第一数据的L2P表信息;第二处理模块基于第一数据的L2P表信息,从第一存储空间获取第一数据;第二处理模块向第一处理模块发送第二查询响应,第二查询响应包括第一数据和第一数据的L2P表信息。
其中,第二查询请求可以为图9所示的io请求2,第一数据的标识可以为第一数据的inode,第二查询响应可以为图9所示的io响应2。
上述方法中,若第一数据不是高频数据或经常被访问的VIP任务或非VIP任务的数据,电子设备无法从第一存储器中获取第一数据的L2P表信息,电子设备需要先从第二存储器的第一存储空间获取第一数据的L2P表信息,再基于第一数据的L2P表信息从第二存储器的第一存储空间获取第一数据,即电子设备需要访问第一存储空间两次,以获取第一数据和第一数据的L2P表信息。
一个可选实施例中,响应于接收到第二查询响应,第一处理模块将第一数据的L2P表信息存储至第一存储器的第二存储区域。
上述方法中,电子设备的第一处理模块在获取到第一数据和第一数据的L2P表信息后,可以将第一数据的L2P表信息存储至第一存储器的第二存储区域,以便后续查询时使用。
一个可选实施例中,第一存储器的第二存储区域包括第一优先级任务的L2P链表,以及第二优先级任务的L2P链表,第一优先级高于第二优先级;第一处理模块将第一数据的L2P表信息存储至第一存储器的第二存储区域,包括:若第一任务是第一优先级任务,第一处理模块将第一数据的L2P表信息添加至第一优先级任务的L2P链表中;或者,若第一任务是第二优先级任务,第一处理模块将第一数据的L2P表信息添加至第二优先级任务的L2P链表中。
一种可选的实施例中,电子设备的第一处理模块获取第一任务的任务标签,确定第一任务为VIP任务还是非VIP任务。
其中,第一优先级任务的L2P链表包括第一优先级任务所需的数据的L2P表信息,例如,第一优先级任务的L2P链表为图7所示的VIP任务的L2P链表。第二优先级任务的L2P链表包括第二优先级所需的任务的L2P表信息,例如,第二优先级任务的L2P链表可以为非VIP任务的L2P链表。
上述方法中,电子设备可根据第一任务的优先级,将执行第一任务所需的第一数据的L2P表信息添加至相应任务优先级的L2P链表中,实现对不同数据的L2P表信息进行分区管理,保证资源划分的公平性,可以在一定程度上提升第一存储器缓存命中率。
一个可选实施例中,若第一任务是第一优先级任务,第一处理模块将第一数据的L2P表信息添加至第一优先级任务的L2P链表中,包括:若第一优先级任务的L2P链表的L2P表的数量已达到预设数量,第一处理模块基于最近最少使用LRU策略,淘汰第一优先级任务的L2P链表中的至少一个L2P表,再将第一数据的L2P表信息添加至第一优先级任务的L2P链表中。或者,
若第一任务是第二优先级任务,第一处理模块将第一数据的L2P表信息添加至第二优先级任务的L2P链表中,包括:若第二优先级任务的L2P链表的L2P表的数量已达到预设数量,第一处理模块基于最近最少使用LRU策略,淘汰第二优先级任务的L2P链表中的至少一个L2P表,再将第一数据的L2P表信息添加至第二优先级任务的L2P链表中。
其中,淘汰的L2P表可以为L2P链表中expires变量为0的L2P表,或者,L2P链表中expires变量从大到小进行排序后,最后N个expires变量的L2P表,例如,N取1或2。
上述方法中,电子设备在确定将第一数据的L2P表信息添加至某优先级任务的L2P链表时,若该L2P链表的L2P表的数量已达到预设数量,电子设备需要从L2P链表中淘汰最近最少使用的至少一个L2P表,从而释放出存储空间,以添加当前使用的第一数据的L2P表。通过动态更新第一存储器的第一存储区域中的L2P链表,以使第一存储器有较高的缓存命中率。
一个可选实施例中,该方法还包括:电子设备开机或重启后,电子设备获取配置信息,配置信息包括预设的高频数据的文件名和标识;电子设备从第二存储器中获取高频数据的L2P表信息;电子设备将高频数据的L2P表信息存储至第一存储器的第一存储区域。
上述方法中,电子设备基于配置信息,提前从第二存储器中获取高频数据的L2P表信息,并将高频数据的L2P表信息写入第一存储器的第一存储区域,这样,在执行高频数据相关的任务时,电子设备可从第一存储器中获取高频数据的L2P表信息,提升高频数据查询速度。
一个可选实施例中,电子设备还包括配置模块,电子设备获取配置信息,包括:配置模块从外部存储器获取配置文件,通过解析配置文件,获取配置信息;配置模块向电子设备的第一处理模块发送配置信息;电子设备从第二存储器中获取高频数据的L2P表信息,包括:第一处理模块向电子设备的第二处理模块发送第三查询请求,第三查询请求包括高频数据的标识;第二处理模块基于高频数据的标识,从第二存储器的第一存储空间或第二存储空间获取高频数据的L2P表信息;第二处理模块向第一处理模块发送第三查询响应,第三查询响应包括高频数据的L2P表信息;电子设备将高频数据的L2P表信息存储至第一存储器的第一存储区域,包括:第一处理模块将高频数据的L2P表信息存储至第一存储器的第一存储区域。
上述方法示出了电子设备初始化第一存储器的第一存储区域时的内部模块的交互流程,通过第一处理模块和第二处理模块的信息交互,实现将高频数据的L2P表信息写入第一存储器的第一存储区域。
一个可选实施例中,该方法还包括:电子设备获取更新配置信息,更新配置信息包括新增的高频数据的文件名和标识;电子设备从第二存储器中获取新增的高频数据的L2P表信息;电子设备将新增的高频数据的L2P表信息存储至第一存储器的第一存储区域。
上述方法中,考虑到电子设备性能的扩展,扩展功能相关任务的数据可能为高频数据,则需要将这些高频数据的L2P表信息更新至第一存储器的第一存储空间,以优化电子设备的第一存储器的第一存储空间的L2P表信息,这样,在执行高频数据相关的任务时,电子设备可从第一存储器中获取高频数据的L2P表信息,提升高频数据查询速度。
本申请实施例提出的数据查询方法可应用于任一电子设备,该电子设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。电子设备可以为具有触摸屏的手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)电子设备、增强现实(augmented reality,AR)电子设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medicalsurgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。本申请实施例对电子设备所采用的具体技术和具体设备形态不做限定。
示例性的,图11为本申请实施例提供的电子设备的结构示意图三。如图11所示,电子设备100包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,传感器180,按键190,摄像头193,显示屏194。
可以理解,本实施例示意的结构并不构成对电子设备100的具体限定。在一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件,或软件和硬件的组合实现。
可以理解,实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
处理器110可以包括一个或多个处理单元。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中还可以设置存储器,用于存储指令和数据。
本申请实施例中,处理器110可用于调用存储器中的计算机程序,以使得电子设备执行本申请实施例提供的数据查询方案,以提升电子设备的io性能。
USB接口130是符合USB标准规范的接口,可用于连接充电器为电子设备充电,也可用于电子设备与***设备之间传输数据,也可用于连接耳机,通过耳机播放音频。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN),蓝牙,全球导航卫星***(global navigation satellite system,GNSS),调频(frequencymodulation,FM),NFC,红外技术(infrared,IR)等无线通信的解决方案。
电子设备100通过GPU,显示屏194,以及应用处理器等可以实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行指令以生成或改变显示信息。
电子设备100可以包括1个或多个显示屏194,显示屏194用于显示图像,视频等。电子设备100可以通过图像信号处理(image signal process,ISP)模块,一个或多个摄像头193,视频编解码器,GPU,一个或多个显示屏194以及应用处理器等实现拍摄功能。摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括一个或多个摄像头193。
外部存储器接口120可用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得电子设备100执行各种功能应用以及数据处理等。本申请实施例中,内部存储器可对应前述实施例的主机存储器。
传感器180中可以包括下述一种或多种,例如:压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,或骨传导传感器等。
本申请实施例还提供一种电子设备,该电子设备包括:一个或多个处理器和存储器,存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如前述方法实施例中的步骤,其实现原理和技术效果与前述相关实施例类似,此处不再赘述。
本申请实施例还提供一种芯片***,所述芯片***应用于电子设备,所述芯片***包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如前述方法实施例中的步骤,其实现原理和技术效果与前述相关实施例类似,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如前述方法实施例中的步骤,其实现原理和技术效果与前述相关实施例类似,此处不再赘述。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在电子设备上运行时,使得所述电子设备执行如前述方法实施例中的步骤,其实现原理和技术效果与前述相关实施例类似,此处不再赘述。
上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
在一些实施例中,计算机可读介质可以包括RAM,ROM,只读光盘(compact discread-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital Subscriber Line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(Digital Versatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (14)
1.一种数据查询方法,其特征在于,应用于电子设备,所述电子设备包括第一存储器和第二存储器,所述第一存储器为所述电子设备的内部存储器,所述第二存储器为所述电子设备的外部存储器,所述方法包括:
所述电子设备在执行第一任务时,若所述电子设备未从所述第一存储器中查询到第一数据,所述电子设备查询所述第一存储器是否缓存有所述第一数据的逻辑地址到物理地址L2P表信息,所述第一数据的L2P表信息用于指示所述第一数据在所述第二存储器的物理地址;
若所述电子设备从所述第一存储器中查询到所述第一数据的L2P表信息,所述电子设备基于所述第一数据的L2P表信息,从所述第二存储器中获取所述第一数据;
所述第一存储器包括第一存储区域和第二存储区域,所述第一存储区域用于存储预设的高频数据的L2P表信息,所述高频数据是与扩展功能相关的进程或任务中的数据,所述第二存储区域用于存储执行不同优先级任务所需的数据的L2P表信息,所述第一数据为执行所述第一任务所需的数据。
2.根据权利要求1所述的方法,其特征在于,所述电子设备包括第一处理模块和第二处理模块,所述第一处理模块负责管理和控制所述第一存储器,所述第二处理模块负责管理和控制所述第二存储器;
所述电子设备查询所述第一存储器是否缓存有所述第一数据的L2P表信息,包括:
所述第一处理模块查询所述第一存储器是否缓存有所述第一数据的L2P表信息;
若所述电子设备从所述第一存储器中查询到所述第一数据的L2P表信息,所述电子设备基于所述第一数据的L2P表信息,从所述第二存储器中获取所述第一数据,包括:
若所述第一处理模块从所述第一存储器中查询到所述第一数据的L2P表信息;
所述第一处理模块向所述第二处理模块发送第一查询请求,所述第一查询请求包括所述第一数据的L2P表信息;
所述第二处理模块基于所述第一数据的L2P表信息,从所述第二存储器的第一存储空间获取所述第一数据,并向所述第一处理模块发送第一查询响应,所述第一查询响应包括所述第一数据。
3.根据权利要求2所述的方法,其特征在于,所述第一处理模块从所述第一存储器中查询到所述第一数据的L2P表信息,包括:
所述第一处理模块从所述第一存储器的第一存储区域中查询到所述第一数据的L2P表信息,或者,从所述第一存储器的第二存储区域中查询到所述第一数据的L2P表信息。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第一处理模块未从所述第一存储器中查询到所述第一数据的L2P表信息,所述第一处理模块向所述第二处理模块发送第二查询请求,所述第二查询请求包括所述第一数据的标识;
所述第二处理模块基于所述第一数据的标识,从所述第二存储器的第一存储空间获取所述第一数据的L2P表信息;
所述第二处理模块基于所述第一数据的L2P表信息,从所述第一存储空间获取所述第一数据;
所述第二处理模块向所述第一处理模块发送第二查询响应,所述第二查询响应包括所述第一数据和所述第一数据的L2P表信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于接收到所述第二查询响应,所述第一处理模块将所述第一数据的L2P表信息存储至所述第一存储器的所述第二存储区域。
6. 根据权利要求5所述的方法,其特征在于,所述第一存储器的所述第二存储区域包括第一优先级任务的L2P链表,以及第二优先级任务的L2P链表,所述第一优先级高于所述第二优先级;所述第一处理模块将所述第一数据的L2P表信息存储至所述第一存储器的所述第二存储区域,包括:
若所述第一任务是所述第一优先级任务,所述第一处理模块将所述第一数据的L2P表信息添加至所述第一优先级任务的L2P链表中;或者
若所述第一任务是所述第二优先级任务,所述第一处理模块将所述第一数据的L2P表信息添加至所述第二优先级任务的L2P链表中。
7.根据权利要求6所述的方法,其特征在于,
若所述第一任务是所述第一优先级任务,所述第一处理模块将所述第一数据的L2P表信息添加至所述第一优先级任务的L2P链表中,包括:
若所述第一优先级任务的L2P链表的L2P表的数量已达到预设数量,所述第一处理模块基于最近最少使用LRU策略,淘汰所述第一优先级任务的L2P链表中的至少一个L2P表,再将所述第一数据的L2P表信息添加至所述第一优先级任务的L2P链表中;
若所述第一任务是所述第二优先级任务,所述第一处理模块将所述第一数据的L2P表信息添加至所述第二优先级任务的L2P链表中,包括:
若所述第二优先级任务的L2P链表的L2P表的数量已达到预设数量,所述第一处理模块基于最近最少使用LRU策略,淘汰所述第二优先级任务的L2P链表中的至少一个L2P表,再将所述第一数据的L2P表信息添加至所述第二优先级任务的L2P链表中。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备开机或重启后,所述电子设备获取配置信息,所述配置信息包括预设的高频数据的文件名和标识;
所述电子设备从所述第二存储器中获取所述高频数据的L2P表信息;
所述电子设备将所述高频数据的L2P表信息存储至所述第一存储器的所述第一存储区域。
9.根据权利要求8所述的方法,其特征在于,
所述电子设备还包括配置模块,所述电子设备获取配置信息,包括:所述配置模块从外部存储器获取配置文件,通过解析所述配置文件,获取所述配置信息;
所述配置模块向所述电子设备的第一处理模块发送所述配置信息;所述电子设备从所述第二存储器中获取所述高频数据的L2P表信息,包括:所述第一处理模块向所述电子设备的第二处理模块发送第三查询请求,所述第三查询请求包括所述高频数据的标识;所述第二处理模块基于所述高频数据的标识,从所述第二存储器的第一存储空间或第二存储空间获取所述高频数据的L2P表信息;所述第二处理模块向所述第一处理模块发送第三查询响应,所述第三查询响应包括所述高频数据的L2P表信息;
所述电子设备将所述高频数据的L2P表信息存储至所述第一存储器的所述第一存储区域,包括:所述第一处理模块将所述高频数据的L2P表信息存储至所述第一存储器的所述第一存储区域。
10.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备获取更新配置信息,所述更新配置信息包括新增的高频数据的文件名和标识;
所述电子设备从所述第二存储器中获取所述新增的高频数据的L2P表信息;
所述电子设备将所述新增的高频数据的L2P表信息存储至所述第一存储器的所述第一存储区域。
11.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至10中任一项所述的方法。
12.一种芯片***,其特征在于,所述芯片***应用于电子设备,所述芯片***包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至10中任一项所述的方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在电子设备上运行时,使得所述电子设备执行如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410142128.5A CN117668319B (zh) | 2024-02-01 | 2024-02-01 | 数据查询方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410142128.5A CN117668319B (zh) | 2024-02-01 | 2024-02-01 | 数据查询方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117668319A CN117668319A (zh) | 2024-03-08 |
CN117668319B true CN117668319B (zh) | 2024-06-18 |
Family
ID=90084790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410142128.5A Active CN117668319B (zh) | 2024-02-01 | 2024-02-01 | 数据查询方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117668319B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100088A (zh) * | 2019-06-17 | 2020-12-18 | 三星电子株式会社 | 电子装置以及使用该电子装置的存储部的方法 |
CN113010454A (zh) * | 2021-02-09 | 2021-06-22 | Oppo广东移动通信有限公司 | 数据读写方法、装置、终端及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200025184A (ko) * | 2018-08-29 | 2020-03-10 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 |
KR20200122086A (ko) * | 2019-04-17 | 2020-10-27 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치 |
US20230367706A1 (en) * | 2021-03-16 | 2023-11-16 | Micron Technology, Inc. | Managing regions of a memory system |
CN116360671A (zh) * | 2021-12-27 | 2023-06-30 | 北京小米移动软件有限公司 | 存储方法、装置、终端及存储介质 |
CN114880251B (zh) * | 2022-07-12 | 2023-08-29 | 荣耀终端有限公司 | 存储单元的访问方法、访问装置和终端设备 |
-
2024
- 2024-02-01 CN CN202410142128.5A patent/CN117668319B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100088A (zh) * | 2019-06-17 | 2020-12-18 | 三星电子株式会社 | 电子装置以及使用该电子装置的存储部的方法 |
CN113010454A (zh) * | 2021-02-09 | 2021-06-22 | Oppo广东移动通信有限公司 | 数据读写方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117668319A (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515056B2 (en) | API for resource discovery and utilization | |
CN107786794B (zh) | 向应用提供由图像传感器获取的图像的电子装置和方法 | |
CN111078147B (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
US10209915B2 (en) | Electronic device and file read and write method thereof | |
US20100250825A1 (en) | Method and apparatus for mounting files and directories to a local or remote host | |
CN103154909A (zh) | 分布式高速缓冲存储器一致性协议 | |
CN110928935B (zh) | 数据的访问命令处理方法、装置和*** | |
CN107861691B (zh) | 一种多控存储***的负载均衡方法和装置 | |
CN116401004A (zh) | 数据共享方法、设备、***及存储介质 | |
CN114546897A (zh) | 内存访问方法、装置、电子设备及存储介质 | |
CN113064919B (zh) | 数据处理方法、数据存储***、计算机设备及存储介质 | |
CN114153615A (zh) | 内存管理方法、装置、设备、计算机程序及存储介质 | |
WO2014190700A1 (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
KR102324436B1 (ko) | 테더링 방법 및 이를 구현하는 전자 장치 | |
CN117668319B (zh) | 数据查询方法、电子设备及存储介质 | |
KR20190117294A (ko) | 전자 장치 및 그의 제어방법 | |
CN116489177A (zh) | 一种基于块存储的io访问方法、装置、电子设备及介质 | |
CN116166570A (zh) | 一种垃圾回收方法及装置 | |
CN113243008A (zh) | 具有共享页面高速缓存的分布式vfs | |
CN115981892A (zh) | 日志读取方法、装置、电子设备及存储介质 | |
CN115774701A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
CN115048047A (zh) | 一种数据处理***和方法 | |
KR20180069635A (ko) | 서버, 전자 장치 및 데이터 관리 방법 | |
US11237741B2 (en) | Electronic device and control method for controlling memory | |
CN106068506B (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 |