CN111949564A - 一种内存交换方法及显示设备 - Google Patents
一种内存交换方法及显示设备 Download PDFInfo
- Publication number
- CN111949564A CN111949564A CN202010814421.3A CN202010814421A CN111949564A CN 111949564 A CN111949564 A CN 111949564A CN 202010814421 A CN202010814421 A CN 202010814421A CN 111949564 A CN111949564 A CN 111949564A
- Authority
- CN
- China
- Prior art keywords
- memory
- anonymous page
- display device
- page
- target
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 94
- 230000006835 compression Effects 0.000 claims abstract description 90
- 238000007906 compression Methods 0.000 claims abstract description 90
- 238000012216 screening Methods 0.000 claims abstract description 11
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 29
- 238000011084 recovery Methods 0.000 abstract description 11
- 239000010410 layer Substances 0.000 description 38
- 238000004891 communication Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/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)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开一种内存交换方法及显示设备,在回收内存时,从内存页中扫描匿名页;计算所述匿名页在交换分区中的压缩率;筛选压缩率小于或等于阈值的第一目标匿名页,并将所述第一目标匿名页换入交换分区,以使所述交换分区对所述第一目标匿名页进行压缩后存储;所述交换分区为RAM中预留的部分内存。本申请增加压缩率的阈值约束,将压缩率相对较小的第一目标匿名页存入交换分区,以确保存入交换分区的匿名页可以被相对较大幅度地压缩,这样交换分区就可以存储更多的匿名页,那么在系统物理内存不足时也可以回收更多的内存,留给其他进程使用的物理内存也就更多,进而提高内存回收的效率以及显示设备的运行性能。
Description
技术领域
本发明涉及内存回收技术领域,尤其涉及一种内存交换方法及显示设备。
背景技术
操作系统的内存中一般存储有系统和运行的应用程序的相关数据,当内存不足时,常用的方式是杀应用程序的进程或者进行内存回收。以Linux系统为例,传统的方式是使用硬盘作为交换分区,在需要回收内存时,将内存中不经常访问的内存页(一般为匿名页)换入硬盘的交换分区中,从而释放被匿名页占用的物理内存。对于嵌入式系统而言,通常使用flash代替硬盘作为交换分区,但flash自身具有一定的写入寿命,利用flash实现内存交换会加速flash的寿命损耗。
为了避免flash寿命损耗,一种方式是使用zRAM(内存压缩)技术实现内存交换,即预留一部分内存作为zRAM交换分区,在需要回收内存时,将匿名页转入zRAM交换分区,并在zRAM交换分区中进行压缩存储,从而释放被匿名页占用的物理内存。当系统再次访问zRAM交换分区中的数据时,可以将数据解压缩后重新加载到内存。
发明人在研究过程中发现,待交换的内存页的选择过程对zRAM是透明的,并不由zRAM决定,各内存页在zRAM中压缩时具有不同的压缩率(压缩后数据大小与原始数据大小的比率),一旦将压缩率较大的内存页交换到zRAM中,比如内存中10MB的原始数据交换到zRAM中却占用9.5MB,则不仅没有取得良好的节省内存效果,降低zRAM中能够存储的内存页数量,还会增加CPU压缩、解压缩等处理过程的负担。
发明内容
为解决上述技术问题,本发明提供一种内存交换方法及显示设备。
第一方面提供的显示设备,包括:
RAM,所述RAM中预留部分内存作为交换分区;
控制器,与所述RAM连接,被配置为执行:
在回收内存时,从内存页中扫描匿名页;
计算所述匿名页在交换分区中的压缩率;
筛选压缩率小于或等于阈值的第一目标匿名页,并将所述第一目标匿名页换入所述交换分区,以使所述交换分区对所述第一目标匿名页进行压缩后存储。
第二方面提供的显示设备中的内存交换方法,包括:
在回收内存时,从内存页中扫描匿名页;
计算所述匿名页在交换分区中的压缩率;
筛选压缩率小于或等于阈值的第一目标匿名页,并将所述第一目标匿名页换入交换分区,以使所述交换分区对所述第一目标匿名页进行压缩后存储;所述交换分区为RAM中预留的部分内存。
本申请提供的技术方案中,当显示设备需要回收内存时,主要回收内存页中匿名页占用的内存,则在扫描匿名页时,计算匿名页若存入交换分区被压缩的压缩率,本申请对压缩率设置阈值约束,压缩率大于阈值的匿名页不会存储到交换分区中,从匿名页中筛选出第一目标匿名页,所述第一目标匿名页是指压缩率小于或等于阈值的匿名页,即需要筛选出压缩率未超出阈值约束范围的匿名页,然后将第一目标匿名页换入交换分区中,交换分区对第一目标匿名页进行压缩,并存储压缩后的第一目标匿名页。由于添加了压缩率的阈值约束,将压缩率相对较小的第一目标匿名页存入交换分区,以确保存入交换分区的匿名页可以被相对较大幅度地压缩,这样交换分区就可以存储更多的匿名页,那么在系统物理内存不足时也可以回收更多的内存,留给其他进程使用的物理内存也就更多,进而提高内存回收的效率以及显示设备的运行性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要访问的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1中示例性示出了显示设备200与控制装置100之间操作场景的示意图;
图2中示例性示出了图1中显示设备200的硬件配置框图;
图3中示例性示出了图1中控制装置100的硬件配置框图;
图4中示例性示出了图1中显示设备200中软件配置示意图;
图5中示例性示出了显示设备200中应用程序的图标控件界面显示示意图;
图6中示例性示出了内存交换方法的流程图。
具体实施方式
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明(Unless otherwise indicated)。应该理解这样访问的用语在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中访问的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
本申请中访问的术语“遥控器”,是指电子设备(如本申请中公开的显示设备)的一个组件,通常可在较短的距离范围内无线控制电子设备。一般访问红外线和/或射频(RF)信号和/或蓝牙与电子设备连接,也可以包括WiFi、无线USB、蓝牙、动作传感器等功能模块。例如:手持式触摸遥控器,是以触摸屏中用户界面取代一般遥控装置中的大部分物理内置硬键。
本申请中访问的术语“手势”,是指用户通过一种手型的变化或手部运动等动作,用于表达预期想法、动作、目的/或结果的用户行为。
图1中示例性示出了根据实施例中显示设备与控制装置之间操作场景的示意图。如图1中示出,用户可通过移动终端300和控制装置100操作显示设备200。
在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式等,通过无线或其他有线方式来控制显示设备200。用户可以通过遥控器上按键,语音输入、控制面板输入等输入用户指令,来控制显示设备200。如:用户可以通过遥控器上音量加减键、频道控制键、上/下/左/右的移动按键、语音输入按键、菜单键、开关机按键等输入相应控制指令,来实现控制显示设备200的功能。
在一些实施例中,也可以访问移动终端、平板电脑、计算机、笔记本电脑、和其他智能设备以控制显示设备200。例如,访问在智能设备上运行的应用程序控制显示设备200。该应用程序通过配置可以在与智能设备关联的屏幕上,在直观的用户界面(UI)中为用户提供各种控制。
在一些实施例中,移动终端300可与显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。如:可以实现用移动终端300与显示设备200建立控制指令协议,将遥控控制键盘同步到移动终端300上,通过控制移动终端300上用户界面,实现控制显示设备200的功能。也可以将移动终端300上显示音视频内容传输到显示设备200上,实现同步显示功能。
如图1中还示出,显示设备200还与服务器400通过多种通信方式进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。示例的,显示设备200通过发送和接收信息,以及电子节目指南(EPG)互动,接收软件程序更新,或访问远程储存的数字媒体库。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。通过服务器400提供视频点播和广告服务等其他网络服务内容。
显示设备200,可以液晶显示器、OLED显示器、投影显示设备。具体显示设备类型,尺寸大小和分辨率等不作限定,本领技术人员可以理解的是,显示设备200可以根据需要做性能和配置上一些改变。
显示设备200除了提供广播接收电视功能之外,还可以附加提供计算机支持功能的智能网络电视功能,包括但不限于,网络电视、智能电视、互联网协议电视(IPTV)等。
图2中示例性示出了根据示例性实施例中显示设备200的硬件配置框图。
在一些实施例中,显示设备200中包括控制器250、调谐解调器210、通信器220、检测器230、输入/输出接口255、显示器275,音频输出接口285、存储器260、供电电源290、用户接口265、外部装置接口240中的至少一种。
在一些实施例中,显示器275,用于接收源自第一处理器输出的图像信号,进行显示视频内容和图像以及菜单操控界面的组件。
在一些实施例中,显示器275,包括用于呈现画面的显示器组件,以及驱动图像显示的驱动组件。
在一些实施例中,显示视频内容,可以来自广播电视内容,也可以是说,可通过有线或无线通信协议接收的各种广播信号。或者,可显示来自网络通信协议接收来自网络服务器端发送的各种图像内容。
在一些实施例中,显示器275用于呈现显示设备200中产生且用于控制显示设备200的用户操控UI界面。
在一些实施例中,根据显示器275类型不同,还包括用于驱动显示的驱动组件。
在一些实施例中,显示器275为一种投影显示器,还可以包括一种投影装置和投影屏幕。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或外部服务器进行通信的组件。例如:通信器可以包括WIFI模块221,蓝牙模块222,有线以太网模块223等其他网络通信协议模块或近场通信协议模块,以及红外接收器中的至少一种,从而通信器220可根据控制器250的控制,接收控制装置100的控制信号,并将控制信号实现为WIFI信号、蓝牙信号、射频信号等信号类型。
在一些实施例中,显示设备200可以通过通信器220与外部控制装置100或内容提供设备之间建立控制信号和数据信号发送和接收。
在一些实施例中,用户接口265,可用于接收控制装置100(如:红外遥控器等)红外控制信号。
在一些实施例中,检测器230是显示设备200用于采集外部环境或与外部交互的信号。
在一些实施例中,检测器230包括光接收器,用于采集环境光线强度的传感器,可以通过采集环境光可以自适应性显示参数变化等。
在一些实施例中,检测器230还可以包括图像采集器,如相机、摄像头等,可以用于采集外部环境场景,以及用于采集用户的属性或与用户交互手势,可以自适应变化显示参数,也可以识别用户手势,以实现与用户之间互动的功能。
在一些实施例中,检测器230还可以包括温度传感器等,如通过感测环境温度。
在一些实施例中,显示设备200可自适应调整图像的显示色温。如当温度偏高的环境时,可调整显示设备200显示图像色温偏冷色调,或当温度偏低的环境时,可以调整显示设备200显示图像偏暖色调。
在一些实施例中,检测器230还可声音采集器等,如麦克风,可以用于接收用户的声音。示例性的,包括用户控制显示设备200的控制指令的语音信号,或采集环境声音,用于识别环境场景类型,使得显示设备200可以自适应适应环境噪声。
在一些实施例中,如图2所示,输入/输出接口255被配置为,可进行控制器250与外部其他设备或其他控制器250之间的数据传输。如接收外部设备的视频信号数据和音频信号数据、或命令指令数据等。
在一些实施例中,外部装置接口240可以包括,但不限于如下:可以高清多媒体接口HDMI接口、模拟或数据高清分量输入接口、复合视频输入接口、USB输入接口、RGB端口等任一个或多个接口。也可以是上述多个接口形成复合性的输入/输出接口。
在一些实施例中,如图2所示,调谐解调器210被配置为,通过有线或无线接收方式接收广播电视信号,可以进行放大、混频和谐振等调制解调处理,从多多个无线或有线广播电视信号中解调出音视频信号,该音视频信号可以包括用户所选择电视频道频率中所携带的电视音视频信号,以及EPG数据信号。
在一些实施例中,调谐解调器210解调的频点受到控制器250的控制,控制器250可根据用户选择发出控制信号,以使的调制解调器响应用户选择的电视信号频率以及调制解调该频率所携带的电视信号。
在一些实施例中,广播电视信号可根据电视信号广播制式不同区分为地面广播信号、有线广播信号、卫星广播信号或互联网广播信号等。或者根据调制类型不同可以区分为数字调制信号,模拟调制信号等。或者根据信号种类不同区分为数字信号、模拟信号等。
在一些实施例中,控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主体设备的外置设备中,如外置机顶盒等。这样,机顶盒将接收到的广播电视信号调制解调后的电视音视频信号输出给主体设备,主体设备经过第一输入/输出接口接收音视频信号。
在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250可以控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器275上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中,所述对象可以是可选对象中的任何一个,例如超链接或图标。与所选择的对象有关操作,例如:显示连接到超链接页面、文档、图像等操作,或者执行与所述图标相对应程序的操作。用于选择UI对象用户命令,可以是通过连接到显示设备200的各种输入装置(例如,鼠标、键盘、触摸板等)输入命令或者与由用户说出语音相对应的语音命令。
如图2所示,控制器250包括随机存取存储器251(Random Access Memory,RAM)、只读存储器252(Read-Only Memory,ROM)、视频处理器270、音频处理器280、其他处理器253(例如:图形处理器(Graphics Processing Unit,GPU)、中央处理器254(CentralProcessing Unit,CPU)、通信接口(Communication Interface),以及通信总线256(Bus)中的至少一种。其中,通信总线连接各个部件。
在一些实施例中,RAM 251用于存储操作系统或其他正在运行中的程序的临时数据。
在一些实施例中,ROM 252用于存储各种系统启动的指令。
在一些实施例中,ROM 252用于存储一个基本输入输出系统,称为基本输入输出系统(Basic Input Output System,BIOS)。用于完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。
在一些实施例中,在收到开机信号时,显示设备200电源开始启动,CPU运行ROM252中系统启动指令,将存储在存储器的操作系统的临时数据拷贝至RAM 251中,以便于启动或运行操作系统。当操作系统启动完成后,CPU再将存储器中各种应用程序的临时数据拷贝至RAM 251中,然后,以便于启动或运行各种应用程序。
在一些实施例中,处理器254,用于执行存储在存储器中操作系统和应用程序指令。以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。
在一些示例性实施例中,处理器254,可以包括多个处理器。多个处理器可包括一个主处理器以及一个或多个子处理器。主处理器,用于在预加电模式中执行显示设备200一些操作,和/或在正常模式下显示画面的操作。一个或多个子处理器,用于在待机模式等状态下一种操作。
在一些实施例中,图形处理器253,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等。包括运算器,通过接收用户输入各种交互指令进行运算,根据显示属性显示各种对象。以及包括渲染器,对基于运算器得到的各种对象,进行渲染,上述渲染后的对象用于显示在显示器上。
在一些实施例中,视频处理器270被配置为将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等等视频处理,可得到直接可显示设备200上显示或播放的信号。
在一些实施例中,视频处理器270,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等。
其中,解复用模块,用于对输入音视频数据流进行解复用处理,如输入MPEG-2,则解复用模块进行解复用成视频信号和音频信号等。
视频解码模块,则用于对解复用后的视频信号进行处理,包括解码和缩放处理等。
图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。
帧率转换模块,用于对转换输入视频帧率,如将60Hz帧率转换为120Hz帧率或240Hz帧率,通常的格式采用如插帧方式实现。
显示格式化模块,则用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。
在一些实施例中,图形处理器253可以和视频处理器可以集成设置,也可以分开设置,集成设置的时候可以执行输出给显示器的图形信号的处理,分离设置的时候可以分别执行不同的功能,例如GPU+FRC(Frame Rate Conversion))架构。
在一些实施例中,音频处理器280,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理,得到可以在扬声器中播放的声音信号。
在一些实施例中,视频处理器270可以包括一颗或多颗芯片组成。音频处理器,也可以包括一颗或多颗芯片组成。
在一些实施例中,视频处理器270和音频处理器280,可以单独的芯片,也可以于控制器一起集成在一颗或多颗芯片中。
在一些实施例中,音频输出,在控制器250的控制下接收音频处理器280输出的声音信号,如:扬声器286,以及除了显示设备200自身携带的扬声器之外,可以输出至外接设备的发生装置的外接音响输出端子,如:外接音响接口或耳机接口等,还可以包括通信接口中的近距离通信模块,例如:用于进行蓝牙扬声器声音输出的蓝牙模块。
供电电源290,在控制器250控制下,将外部电源输入的电力为显示设备200提供电源供电支持。供电电源290可以包括安装显示设备200内部的内置电源电路,也可以是安装在显示设备200外部电源,在显示设备200中提供外接电源的电源接口。
用户接口265,用于接收用户的输入信号,然后,将接收用户输入信号发送给控制器250。用户输入信号可以是通过红外接收器接收的遥控器信号,可以通过网络通信模块接收各种用户控制信号。
在一些实施例中,用户通过控制装置100或移动终端300输入用户命令,用户输入接口则根据用户的输入,显示设备200则通过控制器250响应用户的输入。
在一些实施例中,用户可在显示器275上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示器中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
存储器260,包括存储用于驱动显示设备200的各种软件模块。如:第一存储器中存储的各种软件模块,包括:基础模块、检测模块、通信模块、显示控制模块、浏览器模块、和各种服务模块等中的至少一种。
基础模块用于显示设备200中各个硬件之间信号通信、并向上层模块发送处理和控制信号的底层软件模块。检测模块用于从各种传感器或用户输入接口中收集各种信息,并进行数模转换以及分析管理的管理模块。
例如,语音识别模块中包括语音解析模块和语音指令数据库模块。显示控制模块用于控制显示器进行显示图像内容的模块,可以用于播放多媒体图像内容和UI界面等信息。通信模块,用于与外部设备之间进行控制和数据通信的模块。浏览器模块,用于执行浏览服务器之间数据通信的模块。服务模块,用于提供各种服务以及各类应用程序在内的模块。同时,存储器260还用存储接收外部数据和用户数据、各种用户界面中各个项目的图像以及焦点对象的视觉效果图等。
图3示例性示出了根据示例性实施例中控制装置100的配置框图。如图3所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口、存储器、供电电源。
控制装置100被配置为控制显示设备200,以及可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。如:用户通过操作控制装置100上频道加减键,显示设备200响应频道加减的操作。
在一些实施例中,控制装置100可是一种智能设备。如:控制装置100可根据用户需求安装控制显示设备200的各种应用。
在一些实施例中,如图1所示,移动终端300或其他智能电子设备,可在安装操控显示设备200的应用之后,可以起到控制装置100类似功能。如:用户可以通过安装应用,在移动终端300或其他智能电子设备上可提供的图形用户界面的各种功能键或虚拟按钮,以实现控制装置100实体按键的功能。
控制器110包括处理器112和RAM 113和ROM 114、通信接口130以及通信总线。控制器用于控制控制装置100的运行和操作,以及内部各部件之间通信协作以及外部和内部的数据处理功能。
通信接口130在控制器110的控制下,实现与显示设备200之间控制信号和数据信号的通信。如:将接收到的用户输入信号发送至显示设备200上。通信接口130可包括WiFi芯片131、蓝牙模块132、NFC模块133等其他近场通信模块中至少之一种。
用户输入/输出接口140,其中,输入接口包括麦克风141、触摸板142、传感器143、按键144等其他输入接口中至少一者。如:用户可以通过语音、触摸、手势、按压等动作实现用户指令输入功能,输入接口通过将接收的模拟信号转换为数字信号,以及数字信号转换为相应指令信号,发送至显示设备200。
输出接口包括将接收的用户指令发送至显示设备200的接口。在一些实施例中,可以红外接口,也可以是射频接口。如:红外信号接口时,需要将用户输入指令按照红外控制协议转化为红外控制信号,经红外发送模块进行发送至显示设备200。再如:射频信号接口时,需将用户输入指令转化为数字信号,然后按照射频控制信号调制协议进行调制后,由射频发送端子发送至显示设备200。
在一些实施例中,控制装置100包括通信接口130和输入输出接口140中至少一者。控制装置100中配置通信接口130,如:WiFi、蓝牙、NFC等模块,可将用户输入指令通过WiFi协议、或蓝牙协议、或NFC协议编码,发送至显示设备200。
存储器190,用于在控制器的控制下存储驱动和控制控制装置100的各种运行程序、数据和应用。存储器190,可以存储用户输入的各类控制信号指令。
供电电源180,用于在控制器的控制下为控制装置100各元件提供运行电力支持。可以电池及相关控制电路。
在一些实施例中,系统可以包括内核(Kernel)、命令解析器(shell)、文件系统和应用程序。内核、shell和文件系统一起组成了基本的操作系统结构,它们让用户可以管理文件、运行程序并访问系统。上电后,内核启动,激活内核空间,抽象硬件、初始化硬件参数等,运行并维护虚拟内存、调度器、信号及进程间通信(IPC)。内核启动后,再加载Shell和用户应用程序。应用程序在启动后被编译成机器码,形成一个进程。
参见图4,在一些实施例中,将系统分为四层,从上至下分别为应用程序(Applications)层(简称“应用层”),应用程序框架(Application Framework)层(简称“框架层”),安卓运行时(Android runtime)和系统库层(简称“系统运行库层”),以及内核层。
在一些实施例中,应用程序层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(Window)程序、系统设置程序、时钟程序、相机应用等;也可以是第三方开发者所开发的应用程序,比如嗨见程序、K歌程序、魔镜程序等。在具体实施时,应用程序层中的应用程序包不限于以上举例,实际还可以包括其它应用程序包,本申请实施例对此不做限制。
框架层为应用程序层的应用程序提供应用编程接口(Aplication PogrammingIterface,API)和编程框架。应用程序框架层包括一些预先定义的函数。应用程序框架层相当于一个处理中心,这个中心决定让应用层中的应用程序做出动作。应用程序通过API接口,可在执行中访问系统中的资源和取得系统的服务。
如图4所示,本申请实施例中应用程序框架层包括管理器(Managers)、内容提供者(Content Provider)和视图系统(View System)等,其中管理器包括以下模块中的至少一个:活动管理器(Activity Manager)用与和系统中正在运行的所有活动进行交互;位置管理器(Location Manager)用于给系统服务或应用提供了系统位置服务的访问;文件包管理器(Package Manager)用于检索当前安装在设备上的应用程序包相关的各种信息;通知管理器(Notification Manager)用于控制通知消息的显示和清除;窗口管理器(WindowManager)用于管理用户界面上的括图标、窗口、工具栏、壁纸和桌面部件。
在一些实施例中,活动管理器用于:管理各个应用程序的生命周期以及通常的导航回退功能,比如控制应用程序的退出(包括将显示窗口中当前显示的用户界面切换到系统桌面)、打开、后退(包括将显示窗口中当前显示的用户界面切换到当前显示的用户界面的上一级用户界面)等。
在一些实施例中,窗口管理器用于管理所有的窗口程序,比如获取显示器大小,判断是否有状态栏,锁定屏幕,截取屏幕,控制显示窗口变化(例如将显示窗口缩小显示、抖动显示、扭曲变形显示等)等。
在一些实施例中,系统运行库层为上层即框架层提供支撑,当框架层被访问时,安卓操作系统会运行系统运行库层中包含的C/C++库以实现框架层要实现的功能。
在一些实施例中,内核层是硬件和软件之间的层。如图4所示,内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、WIFI驱动、USB驱动、HDMI驱动、传感器驱动(如指纹传感器,温度传感器,触摸传感器、压力传感器等)等。
在一些实施例中,内核层还包括用于进行电源管理的电源驱动模块。
在一些实施例中,图4中的软件架构对应的软件程序和/或模块存储在图2或图3所示的第一存储器或第二存储器中。
在一些实施例中,以魔镜应用(拍照应用)为例,当遥控接收装置接收到遥控器输入操作,相应的硬件中断被发给内核层。内核层将输入操作加工成原始输入事件(包括输入操作的值,输入操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,根据焦点当前的位置识别该输入事件所对应的控件以及以该输入操作是确认操作,该确认操作所对应的控件为魔镜应用图标的控件,魔镜应用调用应用框架层的接口,启动魔镜应用,进而通过调用内核层启动摄像头驱动,实现通过摄像头捕获静态图像或视频。
在一些实施例中,对于具备触控功能的显示设备,以分屏操作为例,显示设备接收用户作用于显示器上的输入操作(如分屏操作),内核层可以根据输入操作产生相应的输入事件,并向应用程序框架层上报该事件。由应用程序框架层的活动管理器设置与该输入操作对应的窗口模式(如多窗口模式)以及窗口位置和大小等。应用程序框架层的窗口管理根据活动管理器的设置绘制窗口,然后将绘制的窗口数据发送给内核层的显示驱动,由显示驱动在显示器的不同显示区域显示与之对应的应用界面。
在一些实施例中,如图5中所示,应用程序层包含至少一个应用程序可以在显示器中显示对应的图标控件,如:直播电视应用程序图标控件、视频点播(Video On Demand,VOD)应用程序图标控件、媒体中心应用程序图标控件、应用程序中心图标控件、游戏应用图标控件等。
在一些实施例中,直播电视应用程序,可以通过不同的信号源提供直播电视。例如,直播电视应用程可以访问来自有线电视、无线广播、卫星服务或其他类型的直播电视服务的输入提供电视信号。以及,直播电视应用程序可在显示设备200上显示直播电视信号的视频。
在一些实施例中,视频点播应用程序,可以提供来自不同存储源的视频。不同于直播电视应用程序,视频点播提供来自某些存储源的视频显示。例如,视频点播可以来自云存储的服务器端、来自包含已存视频节目的本地硬盘储存器。
在一些实施例中,媒体中心应用程序,可以提供各种多媒体内容播放的应用程序。例如,媒体中心,可以为不同于直播电视或视频点播,用户可通过媒体中心应用程序访问各种图像或音频所提供服务。
在一些实施例中,应用程序中心,可以提供储存各种应用程序。应用程序可以是一种游戏、应用程序,或某些和计算机系统或其他设备相关但可以在智能电视中运行的其他应用程序。应用程序中心可从不同来源获得这些应用程序,将它们储存在本地储存器中,然后在显示设备200上可运行。
以上实施例介绍了显示设备的硬件/软件架构以及功能实现等内容。在一些应用场景中,当系统物理内存不足时,一种处理方式是回收内存,以Linux系统为例,会在RAM中预留一定存储容量的内存作为交换分区,即zRAM交换分区,在需要回收内存时,将内存中不经常访问的内存页(一般为匿名页)转入交换分区,并在交换分区中进行压缩存储,从而释放被匿名页占用的物理内存,当系统再次访问zRAM交换分区中的数据时,可以将数据解压缩后重新加载到内存。
操作系统中采用分页机制,以内存页(Page)为单位来管理内存,以页为单位的内存交换速度更快。本申请中所述的匿名页是不被经常访问的内存页,比如进程地址空间的堆、栈、数据段等,匿名页不是以文件形式存在,因此无法与磁盘文件进行交换,也不能如文件页那样可以直接丢弃回收,由于匿名页可能会被再次访问,一旦直接丢弃回收,则无法还原加载到内存中,所以匿名页一般需要交换到zRAM交换分区中,以缓解内存紧张。
举例来说,假设系统总内存为600M,每个程序进程占用30M的内存,则常规的方式支持同时运行20个程序进程;若采用基于zRAM的方案,从600M中预留300M作为zRAM交换分区,另外300M则为活动内存,假设每个应用程序被压缩后为10M,则zRAM交换分区中可以存储300/10=30个程序进程,活动内存中可以运行300/30=10个程序进程,即总共可以同时运行40个程序进程,由此可见交换分区内可以存放较多不经常访问的程序进程,从而释放更多的内存给新的程序或经常访问的程序去使用。
基于前述应用场景的研究发现,待交换的匿名页的选择过程对zRAM是透明的,并不由zRAM决定,即zRAM无法自主选择去交换和压缩哪些内存页,zRAM交换分区中使用同一压缩算法对各个匿名页进行压缩处理,比如采用LZO(Lempel-Ziv-Oberhumer)压缩算法,zRAM交换分区使用的压缩算法不限定,由于各匿名页的数据和属性等内容的不同,即便使用同一种压缩算法得到的压缩率也可能不同,其中,压缩率=压缩后数据大小/原始数据大小,比如原始数据大小为40M,压缩后数据大小为20M,则压缩率为0.5,压缩率越大,说明数据被压缩的幅度越小,压缩后存入交换分区中占用的内存相对越多;反之,如果压缩率越小,即数据被压缩的幅度更大,压缩后占用交换分区的内存相对也就越少。
各匿名页在zRAM交换分区中压缩时具有不同的压缩率,目前的方式仅仅是扫描匿名页,然后将获取的匿名页由交换分区进行压缩并存储,其在扫描阶段无法识别各个匿名页的压缩率,因此极易将压缩率较大的匿名页交换到zRAM交换分区中,比如内存中10MB的原始数据交换到zRAM交换分区中占用9.5MB,即压缩率为0.95,也就是说该数据占用总内存的比例变化很小,不仅没有取得良好的节省内存效果,降低zRAM交换分区中能够存储的进程数量,还会增加CPU压缩、解压缩等处理过程的负担。
对此,本申请提供一种在扫描阶段识别压缩率,并根据压缩率的阈值约束,获取换入交换分区数据的内存交换方法,如图6所示,所述方法是显示设备中的控制器250被配置执行的,即内存交换方法的执行主体为控制器250,所述方法包括:
步骤S10,在回收内存时,从内存页中扫描匿名页。
在一些实施例中,系统会根据内存页的访问和使用情况,来决定优先将那些内存交换到zRAM交换分区,系统会创建并维护一对活跃(active)列表和非活跃(inactive)列表,活跃列表用于记录被频繁访问(活跃)的内存页,非活跃列表用于记录未被频繁访问过(非活跃)的内存页。关于内存页是活跃或是非活跃的判别,一般是由控制器(相当于系统内核)利用LRU(Least Recently Used,最近最少使用)算法进行处理并标记,活跃列表中最近访问不频繁的内存页会被移动到非活跃列表中,同样地,非活跃列表中活跃的内存页会被移回到活跃列表中,即活跃列表和非活跃列表是保持动态更新的。在回收内存时,优先在非活跃列表中进行,即需要获取非活跃列表中满足条件的匿名页换入到交换分区中。内存页在活跃列表与非活跃列表之间的移动逻辑可以参照相关现有技术,本申请实施例不再赘述。
步骤S20,计算所述匿名页在交换分区中的压缩率。
在回收内存时,在非活跃列表中扫描匿名页,当从非活跃列表中获取到匿名页后,利用zRAM交换分区当前内置的压缩算法,计算每个匿名页对应的压缩率,并记录每个匿名页与其压缩率的对应关系,以便后续第一目标匿名页的筛选。
步骤S30,判断压缩率是否大于阈值。如果压缩率大于阈值,则执行步骤S50;反之,如果压缩率小于或等于阈值,该匿名页即为第一目标匿名页,则执行步骤S40。
步骤S40,将压缩率小于或等于阈值的第一目标匿名页换入所述交换分区,以使所述交换分区对所述第一目标匿名页进行压缩后存储。
本申请对压缩率设置阈值约束,压缩率大于阈值的匿名页不会存储到交换分区中,从匿名页中筛选出满足阈值约束条件的第一目标匿名页,所述第一目标匿名页是指压缩率小于或等于阈值的匿名页,即需要筛选出压缩率未超出阈值约束范围的匿名页,然后将第一目标匿名页换入交换分区中,交换分区对第一目标匿名页进行压缩,并存储压缩后的第一目标匿名页。由于添加了压缩率的阈值约束,将压缩率相对较小的第一目标匿名页存入交换分区,以确保存入交换分区的匿名页可以被相对较大幅度地压缩,这样交换分区就可以存储更多的匿名页,交换分区能够得以充分有效地利用,那么在系统物理内存不足时也可以回收更多的内存,留给其他进程使用的物理内存也就更多,进而提高内存回收的效率以及显示设备的运行性能。
在实际应用中期望能够优先将压缩率小的匿名页换入交换分区,以最大化地回收物理内存,提高系统支持运行的程序进程数量,对此在一些实施例中,将在非活跃列表中获取的匿名页按照压缩率进行排序,按照压缩率从低到高的顺序,将筛选出的第一目标匿名页换入到交换分区,直至回收的内存达到目标值或者所述交换分区达到存储容量的上限为止。如果按照压缩率从低到高(递增)的顺序对匿名页排序,则按照序位从前到后的顺序依次筛选出第一目标匿名页并交换到zRAM交换分区中,直至内存回收到目标值,或者交换分区已满而无法再接收第一目标匿名页为止,则停止内存交换,回收内存的过程结束;如果按照压缩率从高到低(递减)的顺序对匿名页排序,则按照序位从后往前的顺序依次筛选第一目标匿名页并交换到zRAM交换分区中。
以Linux系统为例,Linux内核回收内存时扫描页的方法是:定义扫描优先级,一般设置的扫描优先级为0~12,通过扫描优先级可换算出在每个LRU上应该扫描的页数,优先级越高,则需要扫描的页数越多,也表征内存回收的迫切性越强。比如,整个内存回收过程以最低的0扫描优先级开始,先扫描每个LRU中最近最少使用的几个页面,然后试图回收它们,如果一次扫描下来,已经回收了足够数量的页面,则本次回收过程结束;否则,继续增大扫描优先级,再重新扫描,直至回收到足够数量的页面;而如果始终不能回收足够数量的页面,则将扫描优先级增至最大,也就是所有页面都将被扫描,这时,就算回收的页面数量仍然不足,回收过程都会结束。
在一些实施例中,为避免因压缩率的阈值约束而导致zRAM得不到充分利用,在某些情况下支持阈值的可调性,比如在以较低优先级扫描内存页时,适当调高压缩率的阈值,以适当放宽匿名页内存交换到zRAM交换分区的条件,从而接收更多的内存交换,以保证能回收足够的页面。在具体实现时,可根据扫描优先级和交换分区的使用量等因素,由控制器自动适应性调整阈值,然后利用调整后的阈值去筛选第一目标匿名页。比如,zRAM交换分区为300M,初始设置的阈值为0.5,则开始回收内存时只有压缩率小于或等于0.5的匿名页才能被交换到zRAM交换分区中,假设当以0优先级扫描页时,zRAM交换分区只使用了50M,显然阈值0.5筛选出的交换内存远低于zRAM交换分区的内存上限(300M),则有需要调整下阈值,此时可以增大阈值,比如增大到0.8,从而使zRAM交换分区能接收更多的第一目标匿名页,从而提高zRAM交换分区的利用率,提高系统回收的内存。
前述实施例是根据扫描优先级和交换分区的使用量等因素,可以由控制器自动适配和调整阈值,在一些实施例中,可以设置专门的阈值修改接口,阈值修改接口对外面向用户,可以支持用户根据实际情况手动对阈值进行调优。
在一些实施例中,控制器可以根据扫描优先级和所述交换分区的使用量等因素,来确定是否需要调整阈值,当确定需要调整阈值时,可以触发预置的提示逻辑,提示用户通过阈值修改接口调整阈值,提示的方式可以是在显示器上显示提示信息,或者通过扬声器播放提示信息,又或者向用户终端发送提示信息等形式,提示信息中可以携带有当前扫描优先级和交换分区的使用量等信息,从而为用户手动调整阈值提供参考信息,然后用户通过阈值修改接口修改和更新阈值,控制器接收阈值修改接口反馈的更新后的阈值时,即可根据更新后的阈值去筛选第一目标匿名页,从而交换更多的内存,以提高zRAM的利用率。需要说明的是,调整阈值的方式不限于上述各实施例所述。
步骤S50,将压缩率大于阈值的第二目标匿名页移动到所述活跃列表中。
本申请利用阈值约束,过滤掉压缩率大于阈值的第二目标匿名页,也就是说第二目标匿名页不会被交换到zRAM中,而交换到zRAM中的第一目标匿名页是在非活跃列表中选取的,因此本方案将第二目标匿名页移动到活跃列表中,使第二目标匿名页不会干扰内存交换过程,从而提高基于压缩率阈值约束的内存交换过程的准确性和效率。
由于活跃列表和非活跃列表中的内存页受LRU监控,两个列表是处于动态更新的,第二目标匿名页被移动到活跃列表中后,如果后续较长时间内第二目标匿名页仍没有被访问,即没有任何服务进程使用过第二目标匿名页,则第二目标匿名页还会被移动回非活跃列表,在非活跃列表中扫描匿名页时,还会再一次计算该第二目标匿名页的压缩率,以此类推,在第二目标匿名页未被访问以及阈值未发生变化的情况下,第二目标匿名页的数据不会发生变更,其压缩率也就不会发生改变,那么第二目标匿名页的压缩率会始终大于阈值,导致第二目标匿名页会在活跃列表和非活跃列表之间往复移动,那么在进行扫描时,第二目标匿名页每次移动到非活跃列表中就会累积计算一次压缩率,导致同一匿名页的压缩率计算冗余,从而消耗控制器的计算资源和性能,降低内存回收的效率。
为防止计算冗余,在一些实施例中,在将第二目标匿名页移动到活跃列表之前,为第二目标匿名页设置比特位标识(Page_zRAM_checked),比如在第二目标匿名页的标志字段中增加比特位标识,所述比特位标识用于标记第二目标匿名页已经计算过压缩率,并且由于压缩率大于阈值而无法交换到zRAM中。
在一些实施例中,可以仅为第二目标匿名页增设比特位标识,第一目标匿名页无比特位标识,比如当扫描时检测到某匿名页A具有比特位标识时,则无需再计算匿名页A的压缩率,而是直接禁止其进入swap缓存以及禁止交换到zRAM中,并将匿名页A移动到活跃列表中即可,无比特位标识的匿名页则需要计算压缩率。
在一些实施例中,当具有比特位标识的第二目标匿名页被再次访问时,即存在程序进程使用了第二目标匿名页时,第二目标匿名页中记录的内存数据可能发生改变,这样第二目标匿名页的压缩率可能也会相应变化,需要在下次回收内存扫描页时重新计算该第二目标匿名页的压缩率,因此需要清除第二目标匿名页的比特位标识,以避免因存在比特位标识而取消计算压缩率导致的该第二目标匿名页无法重新被扫描的问题。
比特位标识的作用形式不限于前述实施例,在其他一些实施例中,也可为各个匿名页都添加比特位标识,比特位标识可以设置0和1的赋值,比特位标识设置为0则说明对应的匿名页未计算过压缩率,比特位标识设置为1则说明对应的匿名页已经计算过压缩率,并且由于压缩率大于阈值而无法交换到zRAM中,比如当扫描时检测到某匿名页B的比特位标识为1,则无需计算匿名页B的压缩率,而是直接禁止其进入swap缓存以及禁止交换到zRAM中,并将匿名页B移动到活跃列表中即可,比特位标识为0的匿名页则需要计算压缩率。
匿名页的比特位标识初始默认为0,当计算出匿名页C的压缩率大于阈值,即匿名页C为第二目标匿名页时,将匿名页C的比特位标识由0变更为1,之后再移动至活跃列表中;当匿名页C被再次访问时,需要在下次扫描时重新计算其压缩率,则将匿名页C的比特位标识由1复位为初始值0,则匿名页C不再是第二目标匿名页,实质上也相当于清除了比特位标识所产生的标记作用。
在一些实施例中,当扫描匿名页并筛选到第一目标匿名页后,可以先将第一目标匿名页添加到swap缓存中,然后再写入zRAM交换分区。基于zRAM内存回收过程中涉及的其他处理程序、逻辑和环节则并不影响本方案的实质,具体可以参照现有基于zRAM内存回收的相关内容,本申请实施例不再赘述。本领域技术人员可以根据实际应用适应性调整压缩率计算、阈值过滤等步骤在内存回收中所处的具体位置和环节,以实际应用中能够利用本方案的实质解决背景技术中的问题为准。
由以上技术方案可知,通过压缩率的阈值约束和阈值过滤方案,对基于zRAM的内存回收过程进行了适应性改进,将压缩率相对较小的第一目标匿名页存入交换分区,以确保存入交换分区的匿名页可以被相对较大幅度地压缩,这样交换分区就可以存储更多的匿名页,那么在系统物理内存不足时也可以回收更多的内存,留给其他进程使用的物理内存也就更多,进而提高内存回收的效率以及显示设备的运行性能。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,当计算机存储介质位于显示设备中时,该程序执行时可包括前述控制器250被配置的内存交换方法中涉及的全部程序步骤。其中,计算机存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本说明书中显示设备实施例和方法实施例之间相同相似的部分互相参照即可,相关内容不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,并不构成对本发明保护范围的限定。本发明的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种显示设备,其特征在于,包括:
RAM,所述RAM中预留部分内存作为交换分区;
控制器,与所述RAM连接,被配置为执行:
在回收内存时,从内存页中扫描匿名页;
计算所述匿名页在交换分区中的压缩率;
筛选压缩率小于或等于阈值的第一目标匿名页,并将所述第一目标匿名页换入所述交换分区,以使所述交换分区对所述第一目标匿名页进行压缩后存储。
2.根据权利要求1所述的显示设备,其特征在于,所述控制器还被配置为执行:
创建活跃列表和非活跃列表;其中,所述活跃列表用于记录被频繁访问的内存页,所述非活跃列表用于记录未被频繁访问过的内存页;
根据LRU算法,对所述活跃列表和所述非活跃列表进行更新。
3.根据权利要求2所述的显示设备,其特征在于,所述控制器还被配置为执行:
将压缩率大于阈值的第二目标匿名页移动到所述活跃列表中。
4.根据权利要求3所述的显示设备,其特征在于,所述控制器还被配置为执行:
在将所述第二目标匿名页移动到活跃列表之前,为所述第二目标匿名页设置比特位标识,所述比特位标识用于标记所述第二目标匿名页由于压缩率大于阈值而无法换入到所述交换分区。
5.根据权利要求4所述的显示设备,其特征在于,所述控制器还被配置为执行:
响应于所述第二目标匿名页被再次访问,清除所述第二目标匿名页的比特位标识。
6.根据权利要求2所述的显示设备,其特征在于,所述控制器还被配置为执行:
在所述非活跃列表中扫描所述匿名页。
7.根据权利要求1所述的显示设备,其特征在于,所述控制器还被配置为执行:
根据扫描优先级和所述交换分区的使用量,调整所述阈值;
根据调整后的阈值筛选第一目标匿名页。
8.根据权利要求1所述的显示设备,其特征在于,所述控制器还被配置为执行:
根据扫描优先级和所述交换分区的使用量,确定是否需要调整所述阈值;
当确定需要调整所述阈值时,提示用户通过阈值修改接口调整阈值;
接收所述阈值修改接口发送的更新后的阈值;
根据更新后的阈值筛选第一目标匿名页。
9.根据权利要求6所述的显示设备,其特征在于,所述控制器还被配置为执行:
将所述非活跃列表中的匿名页按照压缩率进行排序;
按照压缩率从低到高的顺序,将筛选出的第一目标匿名页换入到所述交换分区,直至回收的内存达到目标值或者所述交换分区达到存储容量的上限。
10.一种显示设备中的内存交换方法,其特征在于,包括:
在回收内存时,从内存页中扫描匿名页;
计算所述匿名页在交换分区中的压缩率;
筛选压缩率小于或等于阈值的第一目标匿名页,并将所述第一目标匿名页换入交换分区,以使所述交换分区对所述第一目标匿名页进行压缩后存储;所述交换分区为RAM中预留的部分内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010814421.3A CN111949564B (zh) | 2020-08-13 | 2020-08-13 | 一种内存交换方法及显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010814421.3A CN111949564B (zh) | 2020-08-13 | 2020-08-13 | 一种内存交换方法及显示设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949564A true CN111949564A (zh) | 2020-11-17 |
CN111949564B CN111949564B (zh) | 2024-05-17 |
Family
ID=73342181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010814421.3A Active CN111949564B (zh) | 2020-08-13 | 2020-08-13 | 一种内存交换方法及显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949564B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965920A (zh) * | 2021-03-30 | 2021-06-15 | 维沃移动通信有限公司 | 内存管理方法、装置、电子设备以及存储介质 |
CN113885787A (zh) * | 2021-06-08 | 2022-01-04 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
CN114741205A (zh) * | 2022-06-02 | 2022-07-12 | 荣耀终端有限公司 | 一种匿名页回收方法及电子设备 |
CN116089319A (zh) * | 2022-08-30 | 2023-05-09 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
CN116185890A (zh) * | 2023-04-23 | 2023-05-30 | 荣耀终端有限公司 | 内存回收方法及电子设备 |
CN116244067A (zh) * | 2021-06-10 | 2023-06-09 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN116578424A (zh) * | 2023-07-11 | 2023-08-11 | 麒麟软件有限公司 | 基于hmat的内存回收方法 |
CN116909495A (zh) * | 2023-09-14 | 2023-10-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843756A (zh) * | 2017-01-13 | 2017-06-13 | 中国科学院信息工程研究所 | 基于页面分类的内存页面回收方法及系统 |
CN107704321A (zh) * | 2017-09-30 | 2018-02-16 | 北京元心科技有限公司 | 内存分配的方法、装置及终端设备 |
CN109992393A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
CN109992402A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110018900A (zh) * | 2018-01-10 | 2019-07-16 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110457235A (zh) * | 2019-08-20 | 2019-11-15 | Oppo广东移动通信有限公司 | 内存压缩方法、装置、终端及存储介质 |
CN110764906A (zh) * | 2019-09-27 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 内存回收处理方法、装置、电子设备以及存储介质 |
CN110765031A (zh) * | 2019-09-27 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据存储方法、装置、移动终端及存储介质 |
CN110888746A (zh) * | 2019-12-10 | 2020-03-17 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN110895492A (zh) * | 2019-12-11 | 2020-03-20 | Oppo(重庆)智能科技有限公司 | 设备控制方法、装置、存储介质及电子设备 |
-
2020
- 2020-08-13 CN CN202010814421.3A patent/CN111949564B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843756A (zh) * | 2017-01-13 | 2017-06-13 | 中国科学院信息工程研究所 | 基于页面分类的内存页面回收方法及系统 |
CN107704321A (zh) * | 2017-09-30 | 2018-02-16 | 北京元心科技有限公司 | 内存分配的方法、装置及终端设备 |
CN109992393A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 应用处理方法和装置、电子设备、计算机可读存储介质 |
CN109992402A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110018900A (zh) * | 2018-01-10 | 2019-07-16 | 广东欧珀移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110457235A (zh) * | 2019-08-20 | 2019-11-15 | Oppo广东移动通信有限公司 | 内存压缩方法、装置、终端及存储介质 |
CN110764906A (zh) * | 2019-09-27 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 内存回收处理方法、装置、电子设备以及存储介质 |
CN110765031A (zh) * | 2019-09-27 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 数据存储方法、装置、移动终端及存储介质 |
CN110888746A (zh) * | 2019-12-10 | 2020-03-17 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN110895492A (zh) * | 2019-12-11 | 2020-03-20 | Oppo(重庆)智能科技有限公司 | 设备控制方法、装置、存储介质及电子设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965920A (zh) * | 2021-03-30 | 2021-06-15 | 维沃移动通信有限公司 | 内存管理方法、装置、电子设备以及存储介质 |
CN113885787A (zh) * | 2021-06-08 | 2022-01-04 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
CN116244067A (zh) * | 2021-06-10 | 2023-06-09 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN116244067B (zh) * | 2021-06-10 | 2024-05-03 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN114741205B (zh) * | 2022-06-02 | 2022-11-11 | 荣耀终端有限公司 | 一种匿名页回收方法及电子设备 |
CN114741205A (zh) * | 2022-06-02 | 2022-07-12 | 荣耀终端有限公司 | 一种匿名页回收方法及电子设备 |
CN116089319A (zh) * | 2022-08-30 | 2023-05-09 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
CN116089319B (zh) * | 2022-08-30 | 2023-10-31 | 荣耀终端有限公司 | 内存处理方法及相关装置 |
CN116185890A (zh) * | 2023-04-23 | 2023-05-30 | 荣耀终端有限公司 | 内存回收方法及电子设备 |
CN116185890B (zh) * | 2023-04-23 | 2023-09-19 | 荣耀终端有限公司 | 内存回收方法及电子设备 |
CN116578424A (zh) * | 2023-07-11 | 2023-08-11 | 麒麟软件有限公司 | 基于hmat的内存回收方法 |
CN116578424B (zh) * | 2023-07-11 | 2023-09-26 | 麒麟软件有限公司 | 基于hmat的内存回收方法 |
CN116909495A (zh) * | 2023-09-14 | 2023-10-20 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
CN116909495B (zh) * | 2023-09-14 | 2023-12-15 | 合肥康芯威存储技术有限公司 | 一种存储装置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111949564B (zh) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111954044B (zh) | 通道切换方法和显示设备 | |
CN111949564B (zh) | 一种内存交换方法及显示设备 | |
CN111970549B (zh) | 菜单显示方法和显示设备 | |
CN112135180B (zh) | 一种内容显示方法和显示设备 | |
CN112165641A (zh) | 一种显示设备 | |
CN112954424A (zh) | 显示设备及摄像头启动方法 | |
CN111954059A (zh) | 屏保的展示方法及显示设备 | |
CN112506859B (zh) | 一种维护硬盘数据的方法及显示设备 | |
CN111954043B (zh) | 一种信息栏显示方法及显示设备 | |
CN112040535B (zh) | 一种Wifi处理方法及显示设备 | |
CN112269668A (zh) | 一种应用资源共享及显示设备 | |
CN111984167A (zh) | 一种快捷命名的方法及显示设备 | |
CN112040340A (zh) | 资源文件获取方法及显示设备 | |
CN112235621B (zh) | 一种可视区域的显示方法及显示设备 | |
CN114079827A (zh) | 菜单显示方法和显示设备 | |
CN111931692A (zh) | 显示设备及图像识别方法 | |
CN111966646B (zh) | 文件缓存方法和显示设备 | |
CN112291600B (zh) | 一种缓存方法及显示设备 | |
CN112492402B (zh) | 一种显示设备 | |
CN111935519B (zh) | 通道切换方法和显示设备 | |
CN111913755B (zh) | 一种应用程序的扫描方法和显示设备 | |
CN112231088B (zh) | 一种浏览器进程优化方法及显示设备 | |
CN111970554B (zh) | 一种图片显示方法和显示设备 | |
CN111984504A (zh) | 浏览器内存监控方法及电子设备 | |
CN112040287A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221020 Address after: 83 Intekte Street, Devon, Netherlands Applicant after: VIDAA (Netherlands) International Holdings Ltd. Address before: 266100 Songling Road, Laoshan District, Qingdao, Shandong Province, No. 399 Applicant before: QINGDAO HISENSE MEDIA NETWORKS Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |