CN114741336B - 内存中Host侧缓存区调整方法、电子设备及芯片*** - Google Patents
内存中Host侧缓存区调整方法、电子设备及芯片*** Download PDFInfo
- Publication number
- CN114741336B CN114741336B CN202210645452.XA CN202210645452A CN114741336B CN 114741336 B CN114741336 B CN 114741336B CN 202210645452 A CN202210645452 A CN 202210645452A CN 114741336 B CN114741336 B CN 114741336B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- cache region
- host
- hpbregions
- 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
Images
Classifications
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种内存中Host侧缓存区调整方法、电子设备及芯片***,涉及存储技术领域;该方法可以根据***的负载情况,调整***内存中Host侧缓存区的大小,从而实现动态调整***所使用内存的大小,从而降低由于采用UFS器件的电子设备中预占用的***内存较多,导致常出现***负载较重的问题。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种内存中Host侧缓存区调整方法、电子设备及芯片***。
背景技术
随着存储技术的发展,存储标准也从eMMC(Embedded Multi Media Card)发展到UFS(universal Flash Storage)。UFS标准定义了UFS驱动程序和UFS主机控制器之间的接口,还定义了***内存中的数据结构,用于交换数据、控制和状态信息。
UFS标准可以将工作内存移动到***内存中,从而降低***成本并提高设备性能。例如,可以在***内存中预占用一部分空间作为Host侧缓存区,用来存储UFS器件的L2P表。然而,通常预占用的***内存较多,导致常出现***负载较重的问题。
发明内容
本申请提供一种内存中Host侧缓存区调整方法、电子设备及芯片***,可以降低由于采用UFS器件的电子设备中预占用的***内存较多,导致常出现***负载较重的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种内存中Host侧缓存区调整方法,该方法包括:
获取***的负载压力;
根据所述***的负载压力,调整所述***的内存中Host侧缓存区的大小,其中,所述内存中Host侧缓存区用于缓存所述UFS器件的L2P数据。
本申请中,通过根据***的负载压力,动态调整***内存中Host侧缓存区的大小,从而实现动态调整***占用的内存的大小,从而降低由于采用UFS器件的电子设备中预占用的***内存较多,导致常出现***负载较重的问题。
作为第一方面的一种实现方式,所述获取***的负载压力,包括:
获取***的内存状态和IO压力。
本申请中,可以通过内存状态和IO压力评价***的负载压力。
作为第一方面的另一种实现方式,所述根据所述***的负载压力,调整所述***的内存中Host侧缓存区的大小,包括:
在所述内存状态大于或等于第一阈值,或IO压力大于或等于第二阈值的情况下,调整所述内存中Host侧缓存区的大小为所述内存的第一百分比,其中,所述第一百分比小于初始化时所述Host侧缓存区所占内存的百分比。
本申请中,可以同时采用内存状态和IO压力评价***的负载压力,并且在内存状态较大、IO压力较大时,将Host侧缓存区调整的相比于初始化时预占用的空间更小,以缓解***的负载压力。
作为第一方面的另一种实现方式,所述根据所述***的负载压力,调整所述***的内存中Host侧缓存区的大小,还包括:
在所述内存状态小于所述第一阈值、且所述IO压力小于第二阈值时,根据所述内存状态和IO压力计算所述内存中Host侧缓存区的占比系数,所述占比系数用于确定所述Host侧缓存区所占内存的百分比;
根据所述Host侧缓存区的占比系数,调整所述Host侧缓存区的大小为所述内存的第二百分比。
本申请还可以根据内存状态的数值和IO压力的数值计算Host侧缓存区的占比系数,从而可以更细腻的调节Host侧缓存区所占内存的百分比。实现更细腻的调节。
作为第一方面的另一种实现方式,所述根据所述内存状态和IO压力计算所述内存中Host侧缓存区的占比系数包括:
根据公式K=MR/THMR×km+IOR/THIOR×ki,计算Host侧缓存区的占比系数;
其中,K表示Host侧缓存区的占比系数,MR为内存状态,THMR为内存状态最大阈值,km为内存权重,IOR为IO压力,THIOR为IO压力最大阈值,ki为IO权重。
作为第一方面的另一种实现方式,在调整所述***的内存中Host侧缓存区的大小之后,所述方法还包括:
获取所述UFS器件中各HPBRegion的访问统计结果,所述访问统计结果用于表示所述HPBRegion中的L2P数据对应的用户数据被访问的频率;
基于所述访问统计结果,从高到低对各HPBRegion进行排序;
根据调整后的Host侧缓存区的大小,选取前N个HPBRegion中的L2P数据存储在所述Host侧缓存区,其中,调整后的Host侧缓存区的大小最多包含N个HPBRegion。
本申请中,在调整Host侧缓存区的大小之后,可以根据调整后的Host侧缓存区的大小,选取访问频率较高的HPBRegion中的L2P数据存储在Host侧缓存区,以提高访问Host侧缓存区中的数据时的命中率。
作为第一方面的另一种实现方式,所述获取各HPBRegion的访问统计结果之前,所述方法还包括:
在接收到所述UFS器件中存储的用户数据的访问请求后,从文件***获取所述用户数据的冷热标记;
读取所述用户数据的逻辑地址对应的L2P数据;
根据所述用户数据的冷热特性确定所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果。
本申请还可以根据L2P数据对应的用户数据的冷热特性确定L2P数据所在的HPBRegion的访问频率,从而将访问频率较高的HPBRegion中的L2P数据存储在Host侧缓存区,以更精细的提高访问Host侧缓存区中的数据时的命中率。
作为第一方面的另一种实现方式,根据所述用户数据的冷热特性确定所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果,包括:
若所述用户数据的冷热标记表示所述用户数据为热数据,则将所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果加上第一阈值;
若所述用户数据的冷热标记表示所述用户数据为温数据,则将所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果加上第二阈值;
若所述用户数据的冷热标记表示所述用户数据为冷数据,则将所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果加上第三阈值,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值。
作为第一方面的另一种实现方式,所述选取前N个HPBRegion中的L2P数据存储在所述Host侧缓存区包括:
比较所述前N个HPBRegion和所述Host侧缓存区中当前存储的L2P数据对应的HPBRegion,得到待激活的HPBRegion和去激活的HPBRegion,所述待激活的HPBRegion为所述前N个HPBRegion中存在、且所述Host侧缓存区中当前存储的L2P数据对应的HPBRegion中不存在的HPBRegion,所述去激活的HPBRegion为所述前N个HPBRegion中不存在、且所述Host侧缓存区中当前存储的L2P数据对应的HPBRegion中存在的HPBRegion;
将待激活的HPBRegion中的L2P数据存储在Host侧缓存区中,将去激活的HPBRegion中的L2P数据从Host侧缓存区中删除。
第二方面,提供一种电子设备,包括处理器,处理器用于运行存储器中存储的计算机程序,实现本申请第一方面任一项的方法。
第三方面,提供一种芯片***,包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请第一方面任一项的方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被一个或多个处理器执行时实现本申请第一方面任一项的方法。
第五方面,本申请提供了一种计算机程序产品,当计算机程序产品在设备上运行时,使得设备执行本申请第一方面任一项的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的电子设备的UFS器件、内存和Host侧缓存区的关系示意图;
图3为本申请实施例提供的一种HPBRegion和L2P数据的关系示意图;
图4为本申请实施例提供的一种调整Host侧缓存区中L2P数据的流程示意图;
图5为本申请实施例提供的一种调整内存中Host侧缓存区大小的流程示意图;
图6为本申请实施例提供的一种调整Host侧缓存区中存储的L2P数据的流程示意图;
图7为本申请实施例提供的一种调整内存中Host侧缓存区大小以及调整Host侧缓存区中L2P数据的流程示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”、“第四”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的内存中Host侧缓存区的调整方法,可以适用于平板电脑、手机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备。这些电子设备中的存储器可以为UFS器件。本申请实施例对电子设备的具体类型不作限定。
图1示出了一种电子设备的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,摄像头193,显示屏194,以及用户标识模块( subscriberidentification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,触摸传感器180K等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了监听语音信息,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
本申请实施例并未特别限定内存中Host侧缓存区调整方法的执行主体的具体结构,只要可以通过运行记录有本申请实施例的内存中Host侧缓存区调整方法的代码,以根据本申请实施例提供的内存中Host侧缓存区调整方法进行处理即可。例如,本申请实施例提供的内存中Host侧缓存区调整方法的执行主体可以是电子设备中能够调用程序并执行程序的功能模块,或者为应用于电子设备中的处理装置,例如,芯片。
通用闪存存储(universal Flash Storage,UFS)是一种存储标准。采用该存储标准的存储器可以作为电子设备的存储器,例如,可以作为电子设备的硬盘。其中,UFS器件中一部分存储空间用于存储各种数据(例如,安装的应用程序、用户的各种文件等),另一部分存储空间用于存储UFS器件的L2P表。
L2P表是固态硬盘SSD(例如,UFS器件)的映射表,具体是逻辑地址(Logical BlockAddress,LBA)和物理地址(Physics Block Address,PBA)的映射。其中,逻辑地址是程序运行时由中央处理器生成的地址,也为虚拟地址。物理地址是硬盘中的地址,也为实际地址。物理地址不能直接由用户程序访问或查看,但是逻辑地址可以由用户程序访问或查看,因此,需要建立逻辑地址和物理地址的映射表,在中央处理器需要访问硬盘中的数据时,需要先基于数据的逻辑地址,访问该L2P表以查询数据的物理地址,然后基于该物理地址从硬盘中访问数据。
UFS存储标准中还可以设置有主机性能增强(host performance Booster,HPB)特性,是利用电子设备的内存来缓存UFS器件的L2P表,以提升读性能。
作为示例,可以将UFS器件的全部L2P表缓存在电子设备的内存中。
参见图2,UFS器件中可以划分为多个HPBRegion。UFS器件上HPB数据区的大小可以记为HPBRegionSize。在内存中分配部分空间作为缓存空间供Host侧占用时,供Host侧占用的大小为:HPBRegionSize/4kb×8Byte,相当于HPBRegionSize/512。即在内存中划分UFS器件上HPBRegionSize/512大小的空间供Host侧占用。为了便于描述,将内存中供Host侧占用空间记为Host侧缓存区。当然,电子设备的内存扣除Host侧缓存区后,剩下的部分内存用于执行原来***内存的功能。相当于***内存减少了Host侧缓存区大小。
作为示例,若电子设备的内存为8G,UFS器件为256G,则在内存中划分256G/512=512M大小的空间作为Host缓存区。相当于将内存的512M/8G=1/16拿出来作为Host缓存区,剩下的内存的15/16保持原有内存的作用。
其中,8G、256G和1/512仅用于示例,实际应用中,还可以是其他数值,本申请对此不做限制。
参见图3,在HPB数据区中存在多个HPBRegion(逻辑地址单元中的空间表示)。HPBRegion包含多个HPBSubRegion。每个HPBSubRegion中又包含多个HPBEntry。每个HPBEntry可以存储逻辑地址到物理地址转换的数据(L2P数据)。
在初始化时,Host侧在内存中预申请多个HPBRegion(例如,HPBRegionSize/512个)作为Host侧缓存区。并将UFS器件中存储的UFS器件的L2P表存储在该Host侧缓存区。在实际应用中,可以将UFS器件中存储的全部L2P表存储在该Host侧缓存区。
在实际应用中,可以按照图4所示的流程示意图将命中率较低的HPBRegion中的L2P数据从Host侧缓存区删除,由于存在删除的步骤,因此,随着时间Host侧缓存区中可能存在部分L2P数据,所以,也可以将命中率较高的HPBRegion中的L2P数据存储在Host侧缓存区。通过删除和存储的步骤实现Host侧缓存区中的L2P数据调整的过程。具体可参照图4所示实施例中的描述。
步骤S101,UFS器件侧根据每个HPBRegion被访问的频率确定待激活的HPBRegion(被访问频率较高的HPBRegion)和去激活的HPBRegion(被访问频率较低的HPBRegion)。
其中,HPBRegion被访问的频率表示该HPBRegion中的L2P数据被访问的频率。待激活的HPBRegion被激活后,该HPBRegion中的L2P数据可以存储在Host侧缓存区,去激活的HPBRegion去激活成功后,该HPBRegion中的L2P数据将从Host侧缓存区删除。
在实际应用中,可以设置阈值A和阈值B,被访问频率高于阈值A的HPBRegion中的L2P数据将存储在Host侧缓存区,被访问频率低于阈值B的HPBRegion中的L2P数据将从Host缓存区删除,根据Host缓存区当前存储的L2P数据对应的HPBRegion,确定待激活的HPBRegion和去激活的HPBRegion。
作为示例,被访问频率高于阈值A的HPBRegion包括:HPBRegion1和HPBRegion2。被访问频率低于阈值B的HPBRegion包括:HPBRegion3和HPBRegion4。当前Host侧缓存区存储的L2P数据为HPBRegion1和HPBRegion4中的L2P数据。可以将HPBRegion2设置为待激活的HPBRegion。将HPBRegion4设置为去激活的HPBRegion。
当然,实际应用中,还可以根据被访问的频率将HPBRegion进行从高到低排序,根据Host侧缓存区的大小,从被访问频率最高的HPBRegion开始,尽可能选择较多数量的HPBRegion,然后将这些选中的HPBRegion中的L2P数据作为存储在Host侧缓存区的L2P数据,再基于Host侧缓存区当前存储的HPBRegion确定哪些区域将被激活,哪些区域将被去激活。
推荐信息可能包括待激活的HPBRegion的推荐信息;也可能包括去激活的HPBRegion的推荐信息;也可能同时包括待激活的HPBRegion的推荐信息和去激活的HPBRegion的推荐信息。本申请实施例以同时包括待激活的HPBRegion的推荐信息和去激活的HPBRegion的推荐信息为例。
步骤S102,UFS器件侧向Host侧发送待激活的HPBRegion的推荐信息和去激活的子区域的HPBRegion的推荐信息。
步骤S103,Host侧接收到推荐信息后,若推荐信息中包括:去激活的HPBRegion的推荐信息,则将该推荐信息中去激活的HPBRegion中的L2P数据从Host侧缓存区删掉。
步骤S104,若推荐信息中包括:待激活的HPBRegion的推荐信息,Host侧请求从UFS器件侧获取待激活的HPBRegion中的L2P数据。
步骤S105,UFS器件侧接收到该请求后,读取该请求中的HPBRegion对应的L2P数据。
步骤S106,UFS器件侧提供读取的HPBRegion中的L2P数据给Host侧。
步骤S107,Host侧将接收到HPBRegion中的L2P数据存放在Host侧缓存区。
实际应用中,被访问频率较高的L2P数据不会将Host侧缓存区全部占用,会造成内存资源的浪费,即使将L2P数据全部放置在Host侧缓存区,有一些L2P数据被访问频率太低,也会导致内存资源的浪费。尤其是当L2P数据使用的Host侧缓存区中的空间越少,内存资源的浪费越严重。并且,当***负载严重、内存紧张的情况下,由于Host侧缓存区预占用内存资源较多,将会导致内存压力更严重。
为解决该问题,本申请实施例可以根据***内存状态以及IO状态动态调节Host侧缓存区的大小,降低由于Host侧缓存区预占用内存资源太多导致内存资源不够用的情况发生。
作为动态调节Host侧缓存区的大小的实施例,参照图5所示的流程示意图。
步骤S201,以预设的时间周期获取***的IO压力和内存状态。
其中,***的IO压力表示***读写的压力,可以根据实际情况采用不同的参数衡量***的IO压力。作为示例,可以是每秒钟有百分之多少的时间用于IO操作,还可以是每秒钟有百分之多少的时间IO队列为非空状态,还可以是每秒钟的吞吐量所占预设的最大吞吐量的百分比。当然,实际应用中,还可以是其他衡量***IO压力的参数。
***的内存状态表示***内存的压力,可以根据实际情况采用不同的参数衡量***的内存状态。作为示例,可以是当前内存被占用的百分比,还可以是一段时间内内存被占用的最大百分比,还可以是一段时间内多次采集的内存被占用的百分比的均值等。实际应用中,还可以是其他衡量***内存状态的参数。
本申请实施例以百分比作为示例衡量***的IO压力和内存状态,实际应用中,还可以将IO压力划分为多个等级,例如,大、中和小三个等级,内存状态也可以划分为多个等级,例如,紧张、普通和空闲三个等级。
本申请实施例以同时获取IO压力和内存状态,以确定***的负载情况(也可以理解为负载压力)。实际应用中,也可以仅根据其中的一个参数(例如,仅根据IO压力或者仅根据内存状态)确定***的负载压力。当然,实际应用中,还可以选择其他的参数或者更多的参数确定***的负载压力。若以一个参数衡量***的负载压力时,可以将本申请实施例中另一参数相关的条件删除。
作为确定负载压力的一个示例,当内存被消耗过多时,***的负载压力较大。当IO队列空闲状态时间较少时,***负载压力较大。
步骤S202,根据IO压力和内存状态,确定***负载情况。
本申请实施例中,若以百分比衡量***的IO压力和内存状态,则可以设置百分比阈值,以根据百分比阈值确定***负载情况。
作为示例,若内存状态大于或等于80%,或者IO压力大于或等于80%,则判断***繁忙。若内存状态小于80%、且IO压力小于80%,则判断***正常。
其中,80%仅用于示例,实际应用中,内存状态对应的阈值可以记为第一阈值,IO压力对应的阈值可以记为第二阈值。
即在所述内存状态小于所述第一阈值、且所述IO压力小于第二阈值时,判断***繁忙。
若以等级衡量***的IO压力和内存状态,则可以预先设置不同等级对应的负载情况。
IO压力为大、且内存状态为紧张,则对应***繁忙。其他情况,则对应***正常。
步骤S203,若***负载情况为繁忙,则将Host侧缓存区设定为内存的第一百分比,剩余空间返还给***。
其中,第一百分比可以为10%,5%等。5%和10%仅用于示例,实际应用中,可以将Host侧缓存区的大小设置的相比于初始的Host侧缓存区的大小(HPBRegionSize/512)更小,以应对***负载繁忙的情况。
步骤S204,若***负载情况为正常,则计算Host侧缓存区的占比系数。
在实际应用中,若负载情况为正常(非繁忙),可以将Host侧缓存区的大小设置为初始的Host侧缓存区大小(HPBRegionSize/512)。
当然,可以根据内存状态的百分比和IO压力的百分比计算Host侧缓存区大小为内存的百分比。
作为示例,若内存状态小于80%、且IO压力小于80%,则判断***正常,并计算占比系数。不同占比系数对应不同的百分比。
作为计算占比系数的实施例,K=MR/THMR×km+IOR/THIOR×ki。
其中,K表示Host侧缓存区的占比系数,MR为内存状态,THMR为内存状态最大阈值,km为内存权重,IOR为IO压力,THIOR为IO压力最大阈值,ki为IO权重。
即占比系数等于内存状态与内存状态最大阈值的比值乘以内存权重加上IO压力与IO压力最大阈值的比值乘以IO权重。
其中,内存状态最大阈值为预先设置的值,可以基于内存状态不同时***的情况确定。作为示例,当内存状态为90%时,***运行容易出现异常(卡顿、死机等),则可以将内存状态最大阈值设置为90%。
IO压力最大阈值也为预先设置的值,可以基于IO压力不同时***的情况确定。作为示例,当IO压力为95%时,***运行容易出现异常(例如,产生告警),则可以将IO压力最大阈值设置为95%。
当然,上述示例中的百分数仅用于示例,在实际应用中,由于电子设备的型号不同、采用的内存器件不同,也可能设置为不同的百分数。
IO权重和内存权重的总和可以为1。
作为一个示例,当IO压力为75%,内存状态为70%,该IO权重为0.5,内存权重为0.5时,则占比系数为75%/95%*0.5+70%/90%*0.5≈0.78。即占比系数为0.78。
其中,不同的占比系数对应不同的Host侧缓存区所占内存的百分比。当IO压力越大、内存状态越大,则占比系数越大。而IO压力越大、内存状态越大,Host侧缓存区所占内存的百分比应该越小,以便于留给***占用的内存越大,所以,占比系数和Host侧缓存区所占内存的百分比之间为反向关系。
当然,实际应用中,还可以对该占比系数进行四舍五入。
作为示例,Round函数可以将某个数四舍五入到小数点后面固定位数。
例如,Round(A,1)表示将数A四舍五入到小数点后面一位。
Round(0.256,1)=0.3。
Round(0.619,1)=0.6。
即可以将Round((MR/THMR×km+IOR/THIOR×ki),1)作为内存占比系数。
当然,实际应用中,还可以将负载情况为正常时,将负载情况划分为正常下的多个等级。
例如,负载情况为正常时,可以划分为多个等级,不同等级下,可以将Host侧缓存区的大小设置为内存的不同百分比。具体可参照表1所示的示例。
表1 不同IO压力等级和不同内存状态等级对应的Host侧缓存区所占内存的百分比
表1中的内存百分比中的百分数仅用于示例,并不对本申请造成任何限定。在实际应用中,还可以设置为更多或更少的等级,也可以设置不同的百分数。
步骤S205,根据占比系数调整Host缓存区所占内存的百分比为第二百分比。
当然,第二百分比也仅为一个示例,在实际应用中,还可以设置多个具体的空间值(Host侧缓存区的大小),不同的占比系数对应不用的空间值。
通过这种方式可以调整Host侧缓存区所占内存的百分比。当***负载较重时,Host侧缓存区所占内存较小,***所占用的内存(电子设备内存减去Host侧缓冲区)较大。当***负载较轻时,Host侧缓存区所占内存较大,***所占用的内存较小。然而,无论如何调整,Host侧缓存区均小于***所占用的内存。通过根据***负载情况实时调整和***负载匹配的内存占比,从而使得***内存扣除该Host侧缓存区去留下真正供***用的内存大小与***负载匹配。
在如前所述,可以实时调整Host侧缓存区所占内存的百分比,相当于在实时调整Host缓存区的大小。在Host侧缓存区存储L2P数据的目的是:在需要访问数据时,优先从Host侧缓存区存储的L2P数据中查找对应的物理地址,若在Host侧缓存区存储L2P数据中未查找对应的物理地址,则需要从UFS器件存储的L2P数据中查找对应的物理地址。以根据查找到的物理地址访问该物理地址对应的数据。所以,由于***繁忙,导致Host侧缓存区所占内存较小,不足以存储全部L2P数据时,Host侧缓存区缓存的L2P数据可以为访问率较高的HPBRegion中的L2P数据。
如前所述,可以根据UFS中各个HPBRegion被访问的频率确定存储在Host侧缓存区的L2P数据。在实际应用中,还可以根据各个HPBRegion中存储的L2P数据中的地址对应的数据的冷热特性预估各个HPBRegion中存储的L2P数据中的地址被访问的频率,从而将被访问频率较高的HPBRegion中的L2P数据存放在Host侧缓存区中,提高Host侧缓存区存储的L2P数据的命中率。
作为另一示例,可以根据UFS器件的HPBRegion中存储的地址对应的数据的冷热特性预估该HPBRegion(或中存储的地址)被访问的频率,从而将被访问频率较高的HPBRegion中的L2P数据存放在Host侧缓存区中,具体可参见图6所示流程示意图。
步骤S301,上层应用或***中的模块读取文件数据。
本申请实施例中,无论时电子设备中安装的应用,还是***中的其他模块均可以读取UFS器件中存储的文件数据,该文件数据可以记为用户数据。
步骤S302,从文件***获取该文件数据的冷热标记。
本申请实施例中,文件数据的冷热标记可以从文件***获取,文件***中标记文件数据的冷热标记的依据不做限定。
作为示例,文件***可以以文件数据的被访问频率确定文件数据的冷热标记,例如,被访问频率较高的文件数据为热数据,被访问频率较低的文件数据为冷数据。当然,实际应用中,还可以设置温数据,温数据的被访问频率低于热数据的被访问频率,高于冷数据的被访问频率。
作为另一示例,文件***也可以根据文件数据的类型确定文件数据的冷热标记。
需要说明,本申请实施例对文件***标记文件数据的冷热标记的依据仅用于示例,并不造成任何限定。
实际应用中,还可以将数据的冷热特性设置为更多个等级。
步骤S303,获取该文件数据对应的逻辑地址的L2P数据。
步骤S304,基于文件数据的冷热特性,更新该L2P数据所在的HPBRegion的访问统计结果。
根据公式NumCount[i]=Weights,计算访问统计结果。
其中,NumCount[i]表示第i个HPBRegion的访问统计结果Weights表示文件数据的冷热权重的累加,i小于或等于HPBRegion的总个数。
每当访问一次L2P数据,且该L2P数据位于第i个子区域,NumCount[i]就加上该L2P数据对应的文件数据的冷热权重。
其中,不同冷热标记的数据的权重不同。
作为示例,可以将数据分为冷数据和热数据,热数据的权重大于冷数据的权重,也可以将数据分为冷数据、暖数据和热数据,热数据的权重大于暖数据的权重,暖数据的权重大于冷数据的权重。
其中,冷热数据的划分可以基于现有的任何划分冷热数据的方式。
当然,实际应用中,也可以根据数据的冷热特性,将数据划分为更多的类型。本申请实施例对此不做限定。
以将数据划分为冷数据、暖数据和热数据为例,冷数据的权重可以为1,暖数据的权重可以为4,热数据的权重可为10。
其中,1、4和10仅用于举例,实际应用中,热数值的权重可以为第一值,暖数据的权重可以为第二值,冷数据的权重可以为第三值。第一值大于第二值,第二值大于第三值。
如前所述,访问一次文件数据,就需要访问一次该文件数据对应的L2P数据。所以,HPBRegion的访问统计结果可以用于表示HPBRegion中的L2P数据可能被访问的频率。若访问统计结果大,则表示该HPBRegion中的L2P数据被访问的频率较高,则可以将该HPBRegion中的L2P数据缓存在Host侧缓冲区。
当一个HPBRegion的访问统计结果初始值为预设值(例如,0)时,每访问一次HPBRegion中的L2P数据,将访问统计结果加上L2P数据对应的文件数据的冷热权重。随着访问次数的增多,访问统计结果也逐渐增大。
实际应用中,可以每经过一定时间(大于或等于上述实施例中的预设的时间周期)将每个HPBRegion的访问统计结果设置为初始值,重新开始统计这段时间每个HPBRegion的访问统计结果。本申请实施例对此不做限定。
步骤S305,根据访问统计结果对HPBRegion进行排序。
可以将HPBRegion按照访问统计结果从大到小进行排序。
步骤S306,将排序前N个HPBRegion中的L2P数据从UFS器件读取到Host侧缓存区。其中,N为Host侧缓存区能够包含的HPBRegion的最大个数,N为大于或等于1的自然数。
其中,N的确定方式包括:
首先确定当前Host侧缓存区的大小(例如,内存的5%)。根据Host侧缓存区的大小(例如N个HPBRegion),则可以取排序前(访问统计结果从大到小排序)N个HPBRegion中的L2P数据缓存到Host侧缓存区。这样,可以使得预估的被访问频率较高的HPBRegion中的L2P数据存储在Host侧缓存区,还实现了尽可能将较多的L2P数据存储在Host侧缓存区。从而提高Host侧缓存区命中率,降低Host侧缓存区未命中需要去UFS器件中访问L2P数据的几率。
通过这种方式,Host侧每次先访问Host侧缓存区,在访问Host侧缓存区得不到对应的L2P数据的情况下,再访问UFS器件中的全量L2P数据,以得到对应的物理地址。
需要说明,统计每个HPBRegion的访问统计结果可以由Host侧实现。当访问Host侧缓存区命中文件数据的L2P数据之后,Host侧可以将该L2P数据对应的HPBRegion的统计访问结果加上该L2P数据对应的冷热特性的权重;当访问Host侧缓存区未命中文件数据的L2P数据之后,从UFS器件访问文件数据的L2P数据,Host侧可以将L2P数据对应的HPBRegion的统计访问结果加上该L2P数据对应的冷热特性的权重。
在Host侧缓存区存储的部分HPBRegion的L2P数据在UFS器件中均存在对应的HPBRegion,所以,无论在Host侧缓存区命中L2P数据,还是需要到UFS器件中访问L2P数据,均可以统计到UFS器件中各个HPBRegion的统计访问结果。
在实际应用中,可以将图5所示实施例和图6所示实施例进行结合,在每次确定Host侧缓存区所占内存大小之后,根据当前统计的UFS器件中各个HPBRegion访问统计结果确定将哪些HPBRegion中存储的L2P数据存储在Host侧缓存区。
参见图7所示的流程示意图。
步骤S301,上层应用或***中的模块读取文件数据。
步骤S302,文件***获取该文件数据的冷热标记。
步骤S303,获取该文件数据对应的逻辑地址的L2P数据。
步骤S304,基于文件数据的冷热特性,更新该L2P数据所在的HPBRegion的访问统计结果。
其中,每当有上层应用或***中的模块读取文件数据时,均执行步骤S301至步骤S304。
步骤S201,以预设的时间周期获取***的IO压力和内存状态。
步骤S202,根据IO压力和内存状态,确定***负载情况。
步骤S203,若***负载情况为繁忙,则将Host侧缓存区设定为内存的第一百分比,剩余空间返还给***。
步骤S204,若***负载情况为正常,则计算Host侧缓存区的占比系数。
步骤S205,根据占比系数调整Host缓存区所占内存的百分比为第二百分比。
其中,每当经过预设的时间周期均执行步骤S201。在执行到步骤S205之后,获取各个HPBRegion的访问统计结果,并开始执行步骤S305和步骤S306。
步骤305,根据访问统计结果对HPBRegion进行排序。
步骤S306,将排序前N个HPBRegion中的L2P数据从UFS器件读取到Host侧缓存区。
图7所示流程中的各个步骤可以参照图5和图6所示实施例中的相关描述,在此不再赘述。
其中,调节Host侧缓存区占比的过程以预设的时间周期触发;各个HPBRegion的访问统计结果以每当有读取文件的需求时触发;每当调节Host侧缓存区的大小之后,获取各个HPBRegion的访问统计结果,相当于每间隔预设的时间周期获取一次各个HPBRegion的访问统计结果,只是每两次获取各个HPBRegion的访问统计结果期间,可能有读取文件数据的需求,即有HPBRegion的访问统计结果更新了,也可能在两次获取各个HPBRegion的访问统计结果期间,没有读取文件数据的需求,即各个HPBRegion的访问统计结果还和之前保持一致。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在第一设备上运行时,使得第一设备可实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到第一设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U 盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实施例还提供了一种芯片***,芯片***包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请任一方法实施例的步骤。芯片***可以为单个芯片,或者多个芯片组成的芯片模组。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种内存中Host侧缓存区调整方法,其特征在于,应用于采用UFS器件的电子设备,所述方法包括:
以第一时间周期获取***的负载压力;
根据所述***的负载压力,调整所述***的内存中Host侧缓存区的大小,其中,所述内存中Host侧缓存区用于缓存所述UFS器件的L2P数据;
获取所述UFS器件中各HPBRegion的访问统计结果,所述访问统计结果用于表示所述HPBRegion中的L2P数据对应的用户数据被访问的频率;
基于所述UFS器件中各HPBRegion的访问统计结果,从高到低对各HPBRegion进行排序;
根据调整后的Host侧缓存区的大小,选取前N个HPBRegion中的L2P数据存储在所述Host侧缓存区,其中,调整后的Host侧缓存区的大小最多包含N个HPBRegion;
其中,所述UFS器件中各HPBRegion的访问统计结果的确定方式包括:
以第二时间周期将所述UFS器件中各HPBRegion的访问统计结果设置为初始值,所述第二时间周期大于或等于所述第一时间周期;
在接收到所述UFS器件中存储的用户数据的访问请求后,从文件***获取所述用户数据的冷热标记;
读取所述用户数据的逻辑地址对应的L2P数据;
根据所述用户数据的冷热特性确定所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果;
其中,所述根据所述用户数据的冷热特性确定所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果包括:
若所述用户数据的冷热标记表示所述用户数据为热数据,则将所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果加上第一值;
若所述用户数据的冷热标记表示所述用户数据为冷数据,则将所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果加上第三值,所述第一值大于所述第三值。
2.如权利要求1所述的方法,其特征在于,所述获取***的负载压力,包括:
获取***的内存状态和IO压力。
3.如权利要求2所述的方法,其特征在于,所述根据所述***的负载压力,调整所述***的内存中Host侧缓存区的大小,包括:
在所述内存状态大于或等于第一阈值,或IO压力大于或等于第二阈值的情况下,调整所述内存中Host侧缓存区的大小为所述内存的第一百分比,其中,所述第一百分比小于初始化时所述Host侧缓存区所占所述内存的百分比。
4.如权利要求3所述的方法,其特征在于,所述根据所述***的负载压力,调整所述***的内存中Host侧缓存区的大小,还包括:
在所述内存状态小于所述第一阈值、且所述IO压力小于所述第二阈值时,根据所述内存状态和IO压力计算所述内存中Host侧缓存区的占比系数,所述占比系数用于确定所述Host侧缓存区所占所述内存的百分比;
根据所述Host侧缓存区的占比系数,调整所述Host侧缓存区的大小为所述内存的第二百分比。
5.如权利要求4所述的方法,其特征在于,所述根据所述内存状态和IO压力计算所述内存中Host侧缓存区的占比系数包括:
根据公式K=MR/THMR×km+IOR/THIOR×ki,计算Host侧缓存区的占比系数;
其中,K表示Host侧缓存区的占比系数,MR为内存状态,THMR为内存状态最大阈值,km为内存权重,IOR为IO压力,THIOR为IO压力最大阈值,ki为IO权重。
6.如权利要求1至5任一项所述的方法,其特征在于,调整后的Host侧缓存区的大小最多包含N个HPBRegion。
7.如权利要求1所述的方法,其特征在于,根据所述用户数据的冷热特性确定所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果,还包括:
若所述用户数据的冷热标记表示所述用户数据为温数据,则将所述用户数据对应的L2P数据所在的HPBRegion的访问统计结果加上第二值。
8.如权利要求6所述的方法,其特征在于,所述选取前N个HPBRegion中的L2P数据存储在所述Host侧缓存区包括:
比较所述前N个HPBRegion和所述Host侧缓存区中当前存储的L2P数据对应的HPBRegion,得到待激活的HPBRegion和去激活的HPBRegion,其中,所述待激活的HPBRegion为所述前N个HPBRegion中存在、且所述Host侧缓存区中当前存储的L2P数据对应的HPBRegion中不存在的HPBRegion,所述去激活的HPBRegion为所述前N个HPBRegion中不存在、且所述Host侧缓存区中当前存储的L2P数据对应的HPBRegion中存在的HPBRegion;
将所述待激活的HPBRegion中的L2P数据存储在所述Host侧缓存区中,将所述去激活的HPBRegion中的L2P数据从所述Host侧缓存区中删除。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1至8任一项所述的方法。
10.一种芯片***,其特征在于,包括处理器,所述处理器与存储器耦合,所述处理器执行存储器中存储的计算机程序,以实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210645452.XA CN114741336B (zh) | 2022-06-09 | 2022-06-09 | 内存中Host侧缓存区调整方法、电子设备及芯片*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210645452.XA CN114741336B (zh) | 2022-06-09 | 2022-06-09 | 内存中Host侧缓存区调整方法、电子设备及芯片*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114741336A CN114741336A (zh) | 2022-07-12 |
CN114741336B true CN114741336B (zh) | 2022-11-25 |
Family
ID=82288045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210645452.XA Active CN114741336B (zh) | 2022-06-09 | 2022-06-09 | 内存中Host侧缓存区调整方法、电子设备及芯片*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741336B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442309A (zh) * | 2019-07-24 | 2019-11-12 | 广东紫晶信息存储技术股份有限公司 | 一种基于光存储的冷热数据交换方法及*** |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
CN113391765A (zh) * | 2021-06-22 | 2021-09-14 | 中国工商银行股份有限公司 | 基于分布式存储***的数据存储方法、装置、设备及介质 |
CN113867641A (zh) * | 2021-09-29 | 2021-12-31 | 杭州海康存储科技有限公司 | 主机内存缓冲管理方法、装置、以及固态硬盘 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681792B (zh) * | 2012-04-16 | 2015-03-04 | 华中科技大学 | 一种固态盘内存分区方法 |
US9195396B2 (en) * | 2013-03-14 | 2015-11-24 | SanDisk Technologies, Inc. | Estimating access frequency statistics for storage device |
US10712949B2 (en) * | 2017-11-09 | 2020-07-14 | Western Digital Technologies, Inc. | Adaptive device quality of service by host memory buffer range |
KR20200132043A (ko) * | 2019-05-15 | 2020-11-25 | 에스케이하이닉스 주식회사 | 네트워크 서버, 데이터 처리 시스템 또는 메모리 시스템에서 데이터의 속성을 공유하는 방법 및 장치 |
US11249896B2 (en) * | 2019-12-20 | 2022-02-15 | Micron Technology, Inc. | Logical-to-physical mapping of data groups with data locality |
-
2022
- 2022-06-09 CN CN202210645452.XA patent/CN114741336B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442309A (zh) * | 2019-07-24 | 2019-11-12 | 广东紫晶信息存储技术股份有限公司 | 一种基于光存储的冷热数据交换方法及*** |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
CN113391765A (zh) * | 2021-06-22 | 2021-09-14 | 中国工商银行股份有限公司 | 基于分布式存储***的数据存储方法、装置、设备及介质 |
CN113867641A (zh) * | 2021-09-29 | 2021-12-31 | 杭州海康存储科技有限公司 | 主机内存缓冲管理方法、装置、以及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
CN114741336A (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108430003B (zh) | 音效补偿方法和装置、可读存储介质、终端 | |
KR101981879B1 (ko) | 음성 신호를 처리하기 위한 방법 및 장치 | |
CN111091828B (zh) | 语音唤醒方法、设备及*** | |
US20230370541A1 (en) | Sound Pickup Method For Terminal Device Through Bluetooth Peripheral And Terminal Device | |
CN113722087B (zh) | 虚拟内存管理方法和电子设备 | |
CN111508510B (zh) | 音频处理方法、装置、存储介质及电子设备 | |
KR101950305B1 (ko) | 통신 장치를 위한 소리 신호 처리 방법 및 장치 | |
CN114741336B (zh) | 内存中Host侧缓存区调整方法、电子设备及芯片*** | |
CN108540659B (zh) | 降低tdd噪声影响的方法、终端及计算机可读存储介质 | |
CN116795753A (zh) | 音频数据的传输处理的方法及电子设备 | |
CN108810787B (zh) | 基于音频设备的异物检测方法和装置、终端 | |
CN115858046B (zh) | 一种预加载内存页的方法、电子设备及芯片*** | |
CN115344537A (zh) | 存储空间分配的方法、装置、文件***和存储介质 | |
CN113485969B (zh) | 一种存储碎片化方法及装置、终端及计算机存储介质 | |
CN115617191A (zh) | 触控异常抑制方法、电子设备以及存储介质 | |
CN107370883A (zh) | 改善通话效果的方法、装置及移动终端 | |
US20210249030A1 (en) | Method for improving sound quality and electronic device using same | |
CN112152650B (zh) | 电磁波吸收参数控制方法、装置、终端及存储介质 | |
CN111666226B (zh) | 操作***内存回收的页颠簸保护方法及用户设备 | |
CN110399114B (zh) | 控制机器人进行视频监控的方法、装置及终端设备 | |
CN113138857A (zh) | 内存清理方法、移动终端及存储介质 | |
CN112911466B (zh) | 声音接收单元选择的方法和装置、终端、电子设备 | |
CN113518152A (zh) | 电话号码的识别方法、***及电子设备 | |
CN116233696B (zh) | 气流杂音抑制方法、音频模组、发声设备和存储介质 | |
CN115437783A (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 |