CN109313604A - 压缩虚拟存储器的动态配置 - Google Patents

压缩虚拟存储器的动态配置 Download PDF

Info

Publication number
CN109313604A
CN109313604A CN201680086180.7A CN201680086180A CN109313604A CN 109313604 A CN109313604 A CN 109313604A CN 201680086180 A CN201680086180 A CN 201680086180A CN 109313604 A CN109313604 A CN 109313604A
Authority
CN
China
Prior art keywords
cvm
exchange
threshold value
offset
memory
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
Application number
CN201680086180.7A
Other languages
English (en)
Other versions
CN109313604B (zh
Inventor
P·K·阿帕劳
周振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109313604A publication Critical patent/CN109313604A/zh
Application granted granted Critical
Publication of CN109313604B publication Critical patent/CN109313604B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

系统、装置和方法可提供使用压缩虚拟存储器(CVM)仲裁的CVM管理。CVM仲裁可监测CVM利用,对CVM进行调谐并且更新CVM设置,该更新CVM设置可在系统和/或装置重启时被启用。CVM仲裁可改善存储器管理,由此改善系统性能和用户体验。

Description

压缩虚拟存储器的动态配置
技术领域
实施例总体上涉及计算系统中的压缩虚拟存储器(CVM)管理。更具体地,实施例涉及监测CVM利用、对CVM进行调谐以及更新CVM设置,更新CVM设置可在系统和/或装置重启时启用,以改善存储器管理、系统性能和用户体验。
背景技术
诸如运行操作系统(诸如例如,安卓(开放手持设备联盟)、IOS(苹果公司)、LINUX(Linux基金会)或WINDOWS(微软公司)操作系统)的移动设备、笔记本计算机和平板计算机之类的计算系统可使用固定的(例如,供应商/工厂设置)CVM设置尺寸。例如,典型的移动设备可能具有固定在200MB、300MB或400MB的CVM设置尺寸,具有自60至100的swappiness(交换)(例如,LINUX内核参数),该swappiness可控制系统将存储器页从存储器和/或CVM交换到诸如闪存、硬件存储器之类的次级存储器存储上的交换空间/从该交换空间交换到存储器和/或CVM所达到的程度。在常规系统中,当可用系统存储器的量相对低时,即使在后台可能存在足够的工作正在由系统完成以通过停止(例如,“杀死”)进程和服务来维持空闲内存,但将数据移动到CVM中和将数据移动出CVM的开销可能增加。事实上,当在前台存储器中运行具有重度资源使用(例如,中央处理单元/CPU和/或存储器)的应用的同时,系统可能看起来几乎爬行至试图释放存储器时停止。另外,使CVM活动在后台中运行可能会进一步降级系统性能,因为碰巧驻留在CVM中的注定要被停止的一个或多个应用可能需要在被停止之前解压缩,而其他应用程序可能需要被压缩并且随后被推入CVM中从而为前台应用程序释放存储器。
附图说明
通过阅读以下说明书和所附权利要求并通过参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,其中:
图1A和图1B是根据实施例的动态配置系统的示例的框图;
图2是根据实施例的管理压缩虚拟存储器(CVM)的方法的示例的流程图;
图3是根据实施例的进行CVM仲裁的方法的示例的流程图;
图4是根据实施例的记载CVM对应用的启动时间的影响的数据的图表的示例的图示;
图5是根据实施例的记载CVM对在存储器中运行的进程的影响的数据的图表的示例的图示;
图6是根据实施例的处理器的示例的框图;以及
图7是根据实施例的计算系统的示例的框图。
具体实施方式
现在转向图1A,示出了包括处理器102(例如,CPU、输入/输出模块、芯片组)的动态配置系统100的框图,其中,处理器102运行操作系统(OS)104,诸如例如,安卓(开放手持设备联盟)、IOS(苹果公司)、LINUX(Linux基金会)或WINDOWS(微软公司)操作系统。处理器102可被并入各种各样的计算系统中,诸如例如,服务器、工作站、台式计算机、笔记本计算机、平板计算机、可转换平板、智能电话、个人数字助理(PDA)、移动互联网设备(MID)、媒体播放器、可穿戴计算机等等。
在所图示的示例中,在时刻t0,OS 104可在活动模式106下,在该活动模式106期间,一个或多个应用108在存储器110的前台或后台运行。OS 104可认为存储器前台中的应用被活跃地使用,并且因此在可用存储器相对低时该存储器前台中的应用不是杀死(例如,停止)的候选对象。OS 104可认为后台存储器中的应用被非活跃地使用,以使得如果需要收回(例如,释放)存储器空间,则OS 104可杀死(例如,停止)该存储器后台中的应用以保持和/或改善性能,例如,在网络浏览器中显示大型页面期间的交互性和/或用户体验(UX)。
存储器110可通过例如存储器总线耦合至处理器102。另外,存储器110可被实现为主存储器。存储器110可包括例如,易失性存储器、非易失性存储器等等或其组合。例如,存储器110可包括被配置为一个或多个存储器模块(诸如例如,双列直插存储器模块(DIMM)、小型双列直插存储器模块(SODIMM)等)的动态随机存取存储器(DRAM)、只读存储器(ROM)(例如,可编程只读存储器(PROM)、可擦除PROM(EPROM)、电可擦除EPROM(EEPROM)等)、相变存储器(PCM)等等或其组合。存储器110可包括以行和列布置的存储器单元的阵列,被分区为独立可寻址的存储位置。
存储器110还可包括可由OS 104提供的压缩虚拟存储器(CVM)(例如,也被称为“ZRAM”)112(例如,OS内核特征)可利用影响应用108的启动时间(例如,应用变成在前台存储器中活动的所在的时间)、性能和交互性的一个或多个设置来配置ZRAM 112。ZRAM 112可通过避免存储器分页成次级存储器存储(例如,闪存、硬件驱动器)上的交换空间来提高性能,并且替代地,操作系统104可执行存储器分页在ZRAM 112中/到ZRAM 112,直到OS 104和/或ZRAM 112决定使用次级存储器存储。ZRAM 112可像用于正在由处理器102执行和/或正在存储器110中运行的过程的虚拟高速缓存一样进行操作。所图示的ZRAM 112可创建基于存储器的块设备(例如,ZRAM块设备)以存储压缩存储器页(例如,存储器块)。ZRAM块设备可允许非常快的I/O(输入/输出),并且ZRAM 112压缩(例如,大约原始尺寸的三分之一)可提供存储器的大得多的部分以供由系统100使用。ZRAM 112可使用压缩和解压缩算法,这些压缩和解压缩算法可在消耗CPU循环的同时在处理器102的一个或多个CPU核(未示出)上/中运行。当检取ZRAM 112压缩存储器页时,可执行解压缩以访问相关联的地址并使用存储器页。
存储器监视器114一般可跟踪/监测存储器利用和/或ZRAM 112利用,并且当存储器利用和/或ZRAM利用相对低时,操作系统104可在框116处不采取动作。当存储器利用和/或ZRAM利用不相对低(例如,超过可用存储器的OS确定的最小阈值)时,操作系统104可触发(例如,执行)存储器不足(OOM)杀手程序(killer)守护进程118,以释放(例如,杀死和/或停止在后台存储器中运行的一个或多个应用)一定量的存储器至空闲存储器阈值,从而改善在前台存储器中运行(例如,被活跃地使用)的一个或多个应用108。由OOM杀手程序守护进程118进行的激进活动(例如,用于杀死应用的频繁的执行)可指示可能需要对释放存储器的辅助。当触发OOM杀手程序守护进程118时,ZRAM使用监视器120可基于进行ZRAM利用与ZRAM利用阈值(例如,动态地调谐)之间的比较来作出关于ZRAM利用是相对低(例如,低压力)还是相对高(例如,高压力)的判定。当ZRAM使用监视器120判定ZRAM利用是低的时,如已经提到的,操作系统104可不采取动作116。
然而,当ZRAM利用是相对高的时,可在框122处对ZRAM利用进行调谐,并且在下一次重启系统100和/或将系统100从睡眠模式唤醒时,可在框124处更新(例如,启用/调整/改变)一个或多个ZRAM设置(例如,ZRAM尺寸和/或swappiness)。取决于分别到一个或多个存储位置132、134和136的一个或多个操作系统通信路径126、128和130,所图示的OS 104存储经更新的ZRAM设置。
在所图示的示例中,OS 104可在时刻t1将系统100转变至睡眠或关机模式138,以等待在OS 104可将系统100转变至系统重启状态140所在的时刻t2使用经更新的ZRAM设置,在此期间,ZRAM被更新以使用存储在一个或多个存储位置132、134和136中的经更新的ZRAM设置。
在另一示例中,图1B图示出根据实施例的动态配置系统142的框图。可容易地替换已讨论的系统100(图1A)的动态配置系统142可包括处理器144、通信接口(未示出)以及耦合至处理器144的存储器146。处理器144运行操作系统(OS)148。存储器146可通过例如存储器总线耦合至处理器144。另外,存储器146可被实现为主存储器。存储器146可包括例如,易失性存储器、非易失性存储器等等或其组合。例如,存储器146可包括被配置为一个或多个存储器模块(诸如例如,DIMM、SODIMM等)的DRAM、ROM(例如,PROM、EPROM、EEPROM等)、PCM等等或其组合。存储器146可包括以行和列布置的存储器单元的阵列,被分区为独立可寻址的存储位置。
动态配置系统142可包括可执行一个或多个指令的核150a、150b,该一个或多个指令诸如,读取指令、写入指令、擦除指令、移动指令、算术指令、控制指令等等或其组合。核150a、150b可例如执行一个或多个指令以在高速缓存151或寄存器(未示出)与存储器146之间移动数据(例如,程序数据、操作代码、操作数等)、从存储器146读取数据、将数据写入存储器146、使用数据来执行算术操作(例如,加、减、按位操作、比较等)、执行与数据相关联的控制操作(例如,分支等)等等或其组合。指令可包括任何代码表示,诸如例如,二进制代码、八进制代码、和/或十六进制代码(例如,机器语言)、符号代码(例如,汇编语言)、十进制代码、字母数字代码、高级编程语言代码等等或其组合。因此,例如,十六进制代码可用于表示x86指令集的操作代码(例如,操作码),包括针对加法操作的字节值“00”、针对移动操作的字节值“8B”、针对递增/递减操作的字节值“FF”等等。
动态配置系统142可包括逻辑152以协调动态配置系统142的各组件和/或子系统之间的处理。操作系统148可触发(例如,执行)低存储器杀手程序(LMK)154(例如,存储器不足(OOM)杀手程序守护进程)以释放(例如,杀死和/或终止在后台存储器中运行的一个或多个应用)一定量的存储器至空闲存储器阈值156,从而改善在前台存储器中运行的一个或多个应用158、160的执行性能。存储器146可包括压缩虚拟存储器(CVM)162(例如,也被称为“ZRAM”),该CVM 162可创建一个或多个CVM块164、166(例如,CVM块设备)以存储一个或多个应用168、170、172(例如,在后台存储器中运行)可存储在其中的压缩存储器页(例如,存储器块)。CVM块164、166可允许非常快的I/O(输入/输出),并且CVM 162压缩(例如,大约原始尺寸的三分之一)可提供存储器的大得多的部分以供由系统142使用。CVM 162可使用压缩和解压缩算法,这些压缩和解压缩算法可在消耗CPU循环的同时在处理器144的一个或多个CPU核150a、150b上/中运行。
动态配置系统142可包括CVM仲裁器174,该CVM仲裁器174包括CVM监视器176(例如,CVM使用监视器)以监测CVM使用和/或存储器利用。操作系统148可执行存储器分页在CVM 162中/到CVM 162,直到OS 148和/或CVM仲裁器174决定使用次级存储器存储177。
CVM仲裁器174可包括CVM计算器178,该CVM计算器178为存储器146和/或CVM 162计算CVM尺寸180、CVM尺寸偏移182(例如,偏移)、swappiness 184和swappiness偏移186。CVM尺寸偏移182可用于对CVM 162的尺寸进行调谐。Swappiness偏移186可用于对swappiness 184进行调谐,例如,调谐至0与100之间的值。
CVM监视器176可监测低存储器杀手程序154并确定何时执行该低存储器杀手程序154/判定是否执行该低存储器杀手程序154。如果检测到存储器不足(OOM)或低存储器状况,则CVM监视器176可监测到CVM峰值利用率190,该CVM峰值利用率190可由CVM计算器178计算为CVM尺寸180与CVM峰值利用192(例如,所使用的CVM 162的空间的最大量)的比率。CVM仲裁器174可包括CVM调谐器194,该CVM调谐器194可进行CVM峰值利用率190与CVM峰值利用阈值195之间的比较,并且基于CVM峰值利用率190与CVM峰值利用阈值195之间的该比较来判定峰值利用率190是否超过CVM峰值利用阈值195。如果是,则在CVM峰值利用率190超过CVM峰值利用阈值195时,CVM调谐器194可将CVM尺寸偏移182增加到增加的CVM尺寸偏移。动态配置系统142可继续用当前CVM设置来操作,等待系统142在CVM设置可被更新/启用(包括将CVM尺寸180设置为增加的CVM尺寸偏移)时进行重启。
如果CVM调谐器194判定未超过CVM峰值利用阈值195,则CVM调谐器194可基于CVM峰值利用率190与CVM峰值利用阈值195之间的比较来判定CVM峰值利用率190是否小于CVM峰值利用阈值195(例如,大约为CVM尺寸180的50%)。如果CVM峰值利用率190小于CVM峰值利用阈值195,则CVM调谐器194可进行运行的(例如,已启动的)应用158、160、168、170、172(例如,在存储器146和/或CVM 162中)的数量与进程阈值196(am_process限制)之间的比较,并且基于运行的应用的数量与进程阈值196之间的比较来判定运行的应用158、160、168、170、172的数量是否小于进程阈值196。系统142可确保运行的应用的数量不超过进程阈值196。如果运行的应用的数量小于进程阈值196,则CVM调谐器194可基于运行的应用的数量与进程阈值196(例如,am_process限制)之间的比较将CVM尺寸偏移182降低至降低的CVM尺寸偏移。进程阈值196可由OS 148基于存储器146的尺寸和/或系统142的配置来设置。
如果运行的应用的数量小于进程阈值196,则CVM调谐器194可进行swappiness184与swappiness阈值197之间的比较,并且基于swappiness184与swappiness阈值197之间的该比较来判定swappiness184是否小于swappiness阈值197。如果swappiness184小于swappiness阈值197,则CVM调谐器可将用于swappiness184的swappiness偏移186增加至增加的swappiness偏移。动态配置系统142可继续用当前CVM设置来操作,等待该系统在CVM设置可被更新/启用(包括将CVM尺寸180设置为减小的CVM尺寸偏移以及将swappiness184设置为增加的swappiness偏移)时进行重启。
CVM监视器176还可监测CPU利用193和/或CVM利用,并且可进行CPU利用193与CPU利用阈值191之间的比较。例如,CVM利用可被认为是由CVM 162使用的系统资源和/或CVM尺寸180相对于所使用的CVM 162空间量的比率。CPU利用阈值191可基于系统142和/或OS 148的使用模型来定义。CVM仲裁器174可基于CPU利用193与CPU利用阈值191之间的比较来判定CPU利用193等于CPU利用阈值191(例如,大约100%CPU利用),并且基于在当前时刻(例如,tn)的CVM利用与在前一时刻(例如,tn-1)的CVM利用之间的比较来确定CVM利用正在增加或减少。
如果CVM仲裁器174基于CPU利用193与CPU利用阈值191之间的比较判定CPU利用193等于CPU利用阈值191,并且基于当前时刻(例如,tn)的CVM利用与前一时刻(例如,tn-1)的CVM利用之间的比较判定CVM利用正在减少或未在改变,则CVM仲裁器174可认为CVM 162(例如,由CVM进行的资源利用)不是系统性能(例如,访问存储器页、进程和/或进程数据)的瓶颈。
当CVM仲裁器174判定CPU利用193等于CPU利用阈值191,并且基于当前时刻(例如,tn)的CVM利用与前一时刻(例如,tn-1)的CVM利用之间的比较判定CVM利用正在增加,则CVM仲裁器174可认为CVM 162(例如,由ZRAM进行的资源利用)是系统开销的主要部分(例如,交换进程可能花费过多的CPU循环)。
CVM仲裁器174可包括CVM停止器198,当CPU利用193等于CPU利用阈值191并且CVM仲裁器174认为CVM 162是系统开销的主要部分时,该停止器198停止/停用CVM 162和/或减少内核交换守护进程(kswapd)循环(例如,kswapd可负责CVM活动)。CVM停止器198可停止/停用CVM 162同时保留CVM 162中的数据(通过将swappiness 184设置为0),以使得CVM162可不再由系统142使用,并且由CVM 162进行的资源消耗可被限制和/或消除。CVM停止器198可区别于从CVM 162擦除数据(例如,释放/擦除页)的交换关闭(swapoff)CVM设置区分开。
CVM仲裁器174可基于CPU利用193与CPU利用阈值191之间的比较判定CPU利用193小于CPU利用阈值191(例如,大约为80%的CPU利用)。当CVM仲裁器174判定CPU利用193小于CPU利用阈值191时,CVM仲裁器174可判定CVM 162是否被停止。CVM仲裁器174可包括CVM重启器189,该CVM重启器189用于在CPU利用193小于CPU利用阈值191并且CVM仲裁器174判定CVM 162被停止时重启CVM 162。CVM重启器189可将一个或多个CVM设置(例如,CVM尺寸180和/或swappiness 184)设置为先前CVM 162被停止CVM停止器198停止之前所设置的(多个)先前值。系统142可包括图形显示器199以及其他组件和/或子系统(未示出),并且使用CVM162改善针对图形显示器199和/或其他组件和/或子系统的交互性和/或性能的存储器管理。
现在转向图2,流程图200图示出管理压缩虚拟存储器(例如,ZRAM)的方法的示例。方法200一般可在诸如例如已经讨论的系统100(图1A)和系统142(图1B)之类的系统中实现。更具体地,方法200能以一个或多个模块被实现为逻辑指令和/或固件的集合,该逻辑指令和/或固件的集合存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等之类的机器或计算机可读存储介质中,存储在诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)的可配置逻辑中,存储在使用诸如例如专用集成电路(ASIC)、互补式金属氧化物半导体(CMOS)之类的电路技术或晶体管-晶体管逻辑(TTL)技术的固定功能硬件逻辑或其任何组合中。例如,能以一种或多种编程语言的任何组合来编写用于实施在方法200中示出的操作的计算机程序代码,这些编程语言包括诸如Java、Smalltalk、C++、ACPI(高级配置和功率接口)原语言(ASL)等等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言之类的常规的过程编程语言。
所图示的处理框202提供了将系统转变至系统重启模式、关机模式或睡眠模式。在关机期间模式和/或睡眠模式期间,系统操作参数可被保存以供由系统(例如,由系统的处理器执行的操作系统)在系统启动时使用。所图示的处理框204为存储器和/或ZRAM计算ZRAM的尺寸、ZRAM尺寸偏移(例如,偏移)、swappiness以及swappiness偏移。ZRAM尺寸偏移可用于对ZRAM的尺寸进行调谐。例如,可将swappiness调谐至0与100之间的值。用于swappiness的低值可使得操作系统将交互性优于系统性能,避免将应用交换出存储器和/或ZRAM,并且结果是,减少响应等待时间。用于swappiness的高值可使得操作系统将系统性能优于交互性,并且激进地将应用交换出存储器和/或ZRAM。CVM设置可取决于设备的使用模型(例如,重度应用用户、重度游戏、以媒体为中心的用户、网络浏览用户),以确保系统向用户提供最佳设备硬件和软件性能。
所图示的处理框206将系统转变至操作模式,在该操作模式期间,系统处理器执行一个或多个应用,将该一个或多个应用加载到存储器和/或ZRAM中。所图示的处理框208监测低存储器杀手程序并且确定何时执行该低存储器杀手程序/判定是否执行该低存储器杀手程序。如果在框208处检测到存储器不足(OOM)或低存储器状况,则所图示的处理框210监测峰值利用率。
所图示的处理框212进行峰值利用率与峰值利用阈值之间的比较,并且基于峰值利用率与峰值利用阈值之间的该比较来判定该峰值利用率是否超出峰值利用阈值(例如,大约为ZRAM尺寸的80%)。如果是,当峰值利用率超出峰值利用阈值时,则处理框214将ZRAM尺寸偏移增加至增加的ZRAM尺寸偏移。所图示的处理框216提供系统继续以当前ZRAM设置操作(例如,等待系统重启),并且所图示的处理框218提供ZRAM设置将被更新/启用,包括在系统重启时将ZRAM尺寸设置为增加的ZRAM偏移。
如果在框212处判定未超出峰值利用阈值,则所图示的处理框220基于峰值利用率与峰值利用阈值之间的比较来判定峰值利用率是否小于峰值利用阈值(例如,大约为ZRAM尺寸的50%)。如果峰值利用率小于峰值利用阈值,则所图示的处理框222进行(例如,存储器和/或ZRAM中)运行的(例如,已启动的)应用的数量与进程阈值(am_process限制)之间的比较,并且基于运行的应用的数量与进程阈值之间的比较来判定运行中的应用的数量是否小于进程阈值。如果是,当运行的应用的数量小于进程阈值(例如,am_process限制),则所图示的处理框224将ZRAM尺寸偏移减少至减少的ZRAM尺寸偏移。进程阈值可由诸如例如OS104(图1A)和OS 148(图1B)之类的OS基于存储器的尺寸和/或系统的配置来设置,并且确保运行的应用的数量不超出进程阈值。
所图示的处理框226进行swappiness与swappiness阈值(例如,100)之间的比较。框226还可基于swappiness与swappiness阈值之间的比较来判定swappiness是否小于swappiness阈值。如果是,则所图示的处理框228将用于swappiness的swappiness偏移增加至增加的swappiness偏移。如已经提到的,所图示的处理框216继续以当前ZRAM设置操作(例如,等待系统重启),并且所图示的处理框218更新/启用ZRAM设置,包括在系统重启时将ZRAM设置为增加的ZRAM偏移并且将swappiness设置为增加的swappiness偏移。
现在转向图3,流程图300图示出CVM(例如,ZRAM)仲裁的方法的示例。方法300一般可在诸如例如已讨论的系统100(图1A)和系统142(图1B)之类的系统中实现。更具体地,方法300可被实现为逻辑指令和/或固件的集合,该逻辑指令和/或固件的集合可被存储在诸如RAM、ROM、PROM、固件、闪存等之类的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,存储在使用诸如例如ASIC、CMOS或TTL技术的固定功能逻辑硬件中或者其任何组合中。
所图示的处理框302提供了将系统转变至系统重启模式、关机模式或睡眠模式。在关机期间模式和/或睡眠模式期间,系统操作参数可被保存以供由系统(例如,由系统的处理器执行的OS)在系统启动时使用。所图示的处理框304监测CPU利用和/或ZRAM利用,并且进行CPU利用与CPU利用阈值之间的比较。CPU利用阈值可基于系统和/或OS的使用模型来定义。ZRAM仲裁可基于CPU利用与CPU利用阈值之间的比较判定CPU利用等于CPU利用阈值(例如,大约100%CPU利用),并且基于在当前时刻(例如,tn)的ZRAM利用与在前一时刻(例如,tn-1)的ZRAM利用之间的比较来确定ZRAM利用正在增加或减少。
当ZRAM仲裁基于CPU利用与CPU利用阈值之间的比较判定CPU利用等于CPU利用阈值并且基于在当前时刻(例如,tn)的ZRAM利用与在前一时刻(例如,tn-1)的ZRAM利用之间的比较判定ZRAM利用正在减少或未在改变时,ZRAM仲裁可认为ZRAM(例如,由ZRAM进行的资源利用)并非系统性能(例如,访问存储器页、进程和/或进程数据)的瓶颈。
当ZRAM仲裁判定CPU利用等于CPU利用阈值并且基于在当前时刻(例如,tn)的ZRAM利用与在前一时刻(例如,tn-1)的ZRAM利用之间的比较判定ZRAM利用正在增加时,ZRAM仲裁可认为ZRAM(例如,由ZRAM进行的资源利用)是系统开销的主要部分(例如,交换进程可花费过多的CPU循环)。
当CPU利用等于CPU利用阈值并且ZRAM仲裁认为ZRAM是系统开销的主要部分时,所图示的处理框306停止/停用ZRAM和/或减少内核交换守护进程(kswapd)循环(例如,kswapd可负责ZRAM活动)。Kswapd可交换出经修改的页至交换空间(例如,在诸如闪存、硬件驱动器之类的次级存储器存储上)以保持存储器管理高效地进行操作。例如,当CPU利用很高时,ZRAM压缩/解压缩可花费大量的CPU循环,这可能使得系统性能变差并且甚至导致整个系统挂起一段时间。停止ZRAM机制(例如,ZRAM停止器)停止/停用ZRAM,同时保留ZRAM中的数据(例如,通过将ZRAM的swappiness设置为零),以使得ZRAM可不再由系统使用并且由ZRAM进行的资源消耗可被限制和/或消除。停止ZRAM机制可区别于从ZRAM擦除数据(例如,释放/擦除页)的交换关闭ZRAM设置。
所图示的处理框308基于CPU利用与CPU利用阈值之间的比较判定CPU利用小于CPU利用阈值(例如,大约为CPU利用的80%)。当ZRAM仲裁判定CPU利用小于CPU利用阈值时,所图示的处理框310判定ZRAM被停止。所图示的处理框312提供重新启动ZRAM机制(例如,ZRAM重新启动程序)以在CPU利用小于CPU利用阈值并且ZRAM仲裁判定ZRAM被停止时重新启动ZRAM。重新启动ZRAM机制将一个或多个ZRAM设置(例如,ZRAM尺寸和/或swappiness)设置为先前ZRAM被停止ZRAM机制停止之前的(多个)先前值。
图4图示出记载当CPU压力很高(例如,CPU利用等于或大于CPU利用阈值)时CVM(例如,ZRAM)对应用的启动时间的影响的数据的示例图表400。图表400图示出当CPU压力很高时,所启用的ZRAM可影响系统性能大约20%-40%。
图5图示出记载CVM(例如,ZRAM)对在存储器中运行的进程的影响的数据的示例图表500。图表500图示出例如,当启用ZRAM时,kswapd进程(例如,可负责ZRAM活动)可消耗大约35%的CPU循环,但是当禁用ZRAM时,可分发额外的CPU循环以便更快地启动应用并改善系统性能。例如,额外的CPU循环可由安卓服务app_process32和surfaceflinger分发,其中surfaceflinger可负责启动应用,而surfaceflinger可负责将应用和系统表面合成到将由系统的显示控制器显示的单个缓冲区。
图6图示出根据一个实施例的处理器核602。处理器核602可以是用于任何类型的处理器的核,这些处理器诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。虽然图6中仅图示了一个处理器核602,但处理元件可替代地包括多于一个图6中所图示的处理器核602。处理器核602可以是单线程核,或对于至少一个实施例,处理器核602可以是多线程的,因为其每个核可包括多于一个的硬件线程上下文(或“逻辑处理器”)。
图6还图示出耦合至处理器核602的存储器207。存储器207可以是本领域技术人员已知的或以其他方式对本领域技术人员可用的各种各样的存储器(包括存储器层次结构的各个层)中的任何一种。存储器207可包括要由处理器核602执行的一个或多个代码213指令,其中代码213可实现已讨论的方法200(图2)和/或方法300(图3)。在一个示例中,存储器207是非闪存存储器。处理器核602遵循由代码213指示的指令的程序序列。每个指令可进入前端部分211,并由一个或多个解码器221处理。解码器221可生成微操作(诸如,按预定义格式的固定宽度的微操作)作为其输出,或者可生成反映原始代码指令的其他指令、微指令或控制信号。所图示的前端211还包括寄存器重命名逻辑225和调度逻辑231,这些逻辑一般分配资源并将与转换指令相对应的操作进行排队以供执行。
处理器核602被示为包括具有一组执行单元255-1至255-N的执行逻辑251。一些实施例可包括专用于特定功能或功能集的数个执行单元。其他实施例可包括仅一个执行单元或可执行特定的功能的仅一个执行单元。所图示的执行逻辑251执行由代码指令指定的操作。
在完成执行由代码指令指定的操作之后,后端逻辑261对代码213的指令进行引退。在一个实施例中,处理器核602允许乱序执行,但是要求指令的有序引退。引退逻辑265可采取如本领域技术人员已知的各种形式(例如,重排序缓冲器等等)。以此方式,至少根据由解码器生成的输出、由寄存器重命名逻辑225利用的硬件寄存器和表、以及由执行逻辑251修改的任何寄存器(未示出),处理器核602在代码213的执行期间被变换。
虽然未在图6中图示,但处理元件可包括与处理器核602一起在芯片上的其他元件。例如,处理元件可包括与处理器核602一起的存储器控制逻辑。处理元件可包括I/O控制逻辑和/或可包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可包括一个或多个高速缓存。
现在参考图7,所示为根据实施例的计算系统1000实施例的框图。图7中所示出的是多处理器系统1000,其包括第一处理元件1070和第二处理元件1080。尽管示出了两个处理元件1070和1080,但是要理解,系统1000的实施例还可包括仅一个此类处理元件。
系统1000被图示为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连1050耦合。应当理解,图7中所图示的互连中的任何或全部可被实现为多分支总线而不是点对点互连。
如图7中所示,处理元件1070和1080中的每个处理元件可以是包括第一和第二处理器核(即,处理器核1074a和1074b以及处理器核1084a和1084b)的多核处理器。此类核1074a、1074b、1084a、1084b可被配置成用于以与上面结合图6所讨论的方式类似的方式来执行指令代码。
每个处理元件1070、1080可包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a、1896b可存储分别由处理器的一个或多个组件(诸如核1074a、1074b以及1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可本地地对存储器1032、1034中所存储的数据进行高速缓存以供处理器的各组件的更快速访问。在一个或多个实施例中,共享高速缓存1896a、1896b可包括一个或多个中级高速缓存(诸如,第2级(L2)、第3级(L3)、第4级(L4)、或其他级的高速缓存)、末级高速缓存(LLC)和/或其组合。
虽然被示出为具有仅两个处理元件1070、1080,但要理解,实施例的范围并不限于此。在其他实施例中,在给定的处理器中可存在一个或多个附加处理元件。替换地,处理元件1070、1080中的一者或多者可以是除处理器之外的元件,诸如加速器或现场可编程门阵列。例如,(多个)附加处理元件可包括与第一处理器1070相同的(多个)附加处理器、与第一处理器1070异构或不对称的(多个)附加处理器、加速器(诸如例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理元件。在包括架构、微架构、热、功耗特性等等一系列品质度量方面,处理元件1070、1080之间可存在各种差异。这些差异自身可有效地表现为处理元件1070、1080之中的不对称性和异构性。对于至少一个实施例,各处理元件1070、1080可驻留在同一管芯封装中。
第一处理元件1070可进一步包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076和1078。类似地,第二处理元件1080可包括MC 1082以及P-P接口1086和1088。如图7中所示,MC 1072和1082将处理器耦合至相应的存储器,即存储器1032和存储器1034,这些存储器可以是本地附连到相应处理器的主存储器的部分。尽管MC 1072和1082被图示为被集成到处理元件1070、1080中,但对于替代实施例,MC逻辑可以是处理元件1070、1080外部的分立逻辑,而不是被集成于其中。
第一处理元件1070和第二处理元件1080可分别经由P-P互连1076、1086耦合至I/O子系统1090。如图7中所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括将I/O子系统1090与高性能图形引擎1038耦合的接口1092。在一个实施例中,可使用总线1049将图形引擎1038耦合至I/O子系统1090。替代地,点对点互连可耦合这些组件。
进而,I/O子系统1090可经由接口1096耦合至第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或诸如PCI高速总线或另一第三代I/O互连总线之类的总线,但是实施例的范围不限于此。
如图7中所示,各I/O设备1014(例如,相机、传感器)可与总线桥1018一起耦合至第一总线1016,该总线桥1018可将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合至第二总线1020,包括例如键盘/鼠标1012、(多个)通信设备1026、以及诸如可包括代码1030的盘驱动器或其他大容量存储设备之类的数据存储单元1019。所图示的代码1030可实现已讨论的方法200(图2)和/或方法300(图3),并且可类似于已讨论的代码213(图6)。进一步地,音频I/O 1024可耦合至第二总线1020,并且电池1010可向计算系统1000供给功率。
注意,构想了其他实施例。例如,系统可实现多分支总线或者另一此类通信拓扑,而不是图7的点对点架构。另外,可替代地使用比图7中所示的更多或更少的集成芯片来对图7的元件进行分区。
附加注解与示例:
示例1可包括一种基于存储器的计算系统,该系统包括:图形显示器;动态配置装置,通信地耦合至图形显示器,该动态配置装置包括,压缩虚拟存储器(CVM),具有CVM尺寸;CVM监视器,用于监测低存储器杀手程序和峰值利用率,判定该低存储器杀手程序被执行,并且进行峰值利用率与峰值利用阈值之间的比较;以及CVM调谐器,用于基于该峰值利用率与峰值利用阈值之间的比较来对CVM尺寸进行调谐。
示例2可包括如示例2所述的系统,其中,CVM调谐器用于基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率超出峰值利用阈值,其中,存储器进一步包括:用于计算所述CVM尺寸和偏移的CVM计算器、以及用于将该偏移增加到增加的偏移的CVM设置更新器,其中,当系统重启时,CVM尺寸被设置为增加的偏移,并且其中,低存储器杀手程序将在可用的存储器量低时被执行。
示例3可包括如示例1或2中任一项所述的系统,其中,峰值利用阈值将等于CVM尺寸的大约80%。
示例4可包括如示例1所述的系统,其中,CVM调谐器用于基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率小于峰值利用阈值,进行在CVM中运行的应用的数量与进程阈值之间的比较,以及基于运行中的应用的数量与进程阈值之间的比较来判定该运行中的应用的数量小于进程阈值,并且其中,存储器进一步包括:用于计算CVM尺寸和偏移的CVM计算器、以及用于将该偏移减少到减少的偏移的CVM设置更新器。
示例5可包括如示例4所述的系统,其中,CVM调谐器用于为CVM计算swappiness和swappiness偏移,进行该swappiness与swappiness阈值之间的比较,以及基于该swappiness与swappiness阈值之间的比较来判定该swappiness小于swappiness阈值,并且其中,CVM设置更新器用于将针对swappiness的swappiness偏移增加到增加的swappiness偏移。
示例6可包括如示例5所述的系统,其中,当系统重启时,swappiness将被增加到增加的swappiness偏移,并且CVM尺寸将被减少到减少的偏移,其中,用于该swappiness的低值指示使交互性优先于系统性能并且避免将应用交换出CVM,而用于该swappiness的高值指示使系统性能优先于交互性并且激进地将应用交换出CVM,并且其中,低存储器杀手程序将在可用的存储器量低时被执行。
示例7可包括如示例1或4中任一项所述的系统,其中,峰值利用阈值将等于CVM尺寸的大约50%。
示例8可包括一种动态配置装置,该装置包括:压缩虚拟存储器(CVM)监视器,用于监测低存储器杀手程序和针对CVM的CVM尺寸的峰值利用率,判定该低存储器杀手程序被执行,并且进行峰值利用率与峰值利用阈值之间的比较;以及CVM调谐器,用于基于该峰值利用率与峰值利用阈值之间的比较来对CVM尺寸进行调谐。
示例9可包括如示例8所述的装置,进一步包括用于计算CVM尺寸和针对CVM的偏移的CVM尺寸计算器,其中,CVM调谐器进一步用于基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率超出峰值利用阈值,其中,装置进一步包括用于将偏移增加到增加的偏移的CVM设置更新器,其中,当装置被重新启动时,CVM尺寸将被设置为该增加的偏移,其中,装置的存储器包括CVM,并且其中,低存储器杀手程序将在可用的存储器的量低时被执行。
示例10可包括如示例8或9中任一项所述的装置,其中,峰值利用阈值将等于CVM尺寸的大约80%。
示例11可包括如示例8所述的装置,进一步包括用于计算CVM尺寸和针对CVM的偏移的CVM尺寸计算器,其中CVM调谐器用于基于峰值利用率与峰值利用阈值之间的比较来进一步判定峰值利用率小于峰值利用阈值,进行在CVM中运行的应用的数量与进程阈值之间的比较,并且基于运行的应用的数量与进程阈值之间的比较来判定该运行中的应用的数量小于进程阈值,其中,装置进一步包括用于将偏移减少到减少的偏移的CVM设置更新器。
示例12可包括如示例11所述的装置,其中,CVM调谐器进一步用于为CVM计算swappiness和swappiness偏移,进行该swappiness与swappiness阈值之间的比较,并且基于该swappiness与swappiness阈值之间的比较来判定该swappiness小于swappiness阈值,并且其中,CVM设置更新器进一步用于将针对swappiness的swappiness偏移增加到增加的swappiness偏移。
示例13可包括如示例12所述的装置,其中,当装置被重新启动时,swappiness将被增加到增加的swappiness偏移,并且CVM尺寸将被减少到减少的偏移,其中,用于swappiness的低值指示使交互性优先于系统性能并且避免将应用交换出CVM,而用于该swappiness的高值指示使系统性能优先于交互性并且激进地将应用交换出所述CVM,其中,该装置的存储器包括CVM,其中,低存储器杀手程序将在可用的存储器量低时被执行。
示例14可包括如示例8或11中任一项所述的装置,其中,峰值利用阈值将等于CVM尺寸的大约50%。
示例15可包括至少一种计算机可读存储介质,该至少一种计算机可读存储介质包括指令集,该指令集在由计算系统执行时使得该计算系统:判定为该计算系统的存储器触发低存储器杀手程序;基于判定低存储器杀手程序被触发而进行针对压缩虚拟存储器(CVM)的CVM尺寸的峰值利用率与峰值利用阈值之间的比较;以及基于该峰值利用率与峰值利用阈值之间的比较来对CVM尺寸进行调谐。
示例16可包括如示例15所述的至少一种计算机可读存储介质,其中,指令的集合在由计算系统执行时使得该计算系统:基于峰值利用率与峰值利用阈值之间的比较来判定峰值利用率超出峰值利用阈值;计算所述CVM尺寸和偏移;将该偏移增加到增加的偏移;以及当计算系统重启时,将CVM尺寸设置为该增加的偏移,其中,存储器包括所述CVM,其中,低存储器杀手程序将在可用的存储器量低时被触发。
示例17可包括如示例15或16中任一项所述的至少一种计算机可读存储介质,其中,峰值利用阈值将等于CVM尺寸的大约80%。
示例18可包括如示例15所述的至少一种计算机可读存储介质,其中,指令的集合在由计算系统执行时使得该计算系统:基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率小于峰值利用阈值,进行在CVM中运行的应用的数量与进程阈值之间的比较,并且基于运行的应用的数量与进程阈值之间的比较来判定该运行的应用的数量小于进程阈值,计算CVM尺寸和偏移、以及将该偏移减少到减少的偏移,其中,存储器包括CVM。
示例19可包括如示例18所述的至少一种计算机可读存储介质,其中,指令的集合在由计算系统执行时使得该计算系统:为CVM计算swappiness和swappiness偏移,进行该swappiness与swappiness阈值之间的比较,基于该swappiness与swappiness阈值之间的比较来判定该swappiness小于swappiness阈值,以及将针对swappiness的swappiness偏移增加到增加的swappiness偏移。
示例20可包括如示例19所述的至少一种计算机可读存储介质,其中,当计算系统被重新启动时,指令集在由计算系统执行时使得该计算系统将swappiness设置为增加的swappiness偏移,并且将CVM尺寸减少到减少的偏移,其中,用于该swappiness的低值指示使交互性优先于系统性能并且避免将应用交换出CVM,而用于该swappiness的高值指示使系统性能优先于交互性并且激进地将应用交换出CVM,其中,低存储器杀手程序将在可用的存储器量低时被触发。
示例21可包括如示例15或18中任一项所述的至少一种计算机可读存储介质,其中,峰值利用阈值将等于CVM尺寸的大约50%。
示例22可包括一种方法,该方法包括:判定为计算机系统的存储器触发低存储器杀手程序;基于判定该低存储器杀手程序被触发而进行针对压缩虚拟存储器(CVM)的CVM尺寸的峰值利用率与峰值利用阈值之间的比较;以及基于该峰值利用率与峰值利用阈值之间的比较来对CVM尺寸进行调谐。
示例23可包括如示例22所述的方法,其中,对CVM尺寸进行调谐的步骤进一步包括:基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率超出峰值利用阈值;计算CVM尺寸和偏移;将该偏移增加到增加的偏移;以及当计算机系统重启时,将CVM尺寸设置为该增加的偏移,其中,存储器包括CVM,其中,低存储器杀手程序在可用的存储器量低时被触发。
示例24可包括如示例22所述的方法,其中,对CVM尺寸进行调谐的步骤进一步包括:基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率小于峰值利用阈值;进行在CVM中运行的应用的数量与进程阈值之间的比较;基于运行的应用的数量与进程阈值之间的比较来判定该运行的应用的数量小于进程阈值;计算CVM尺寸和偏移;以及将该偏移减少到减少的偏移。
示例25可包括如示例24所述的方法,进一步包括:为CVM计算swappiness和swappiness偏移;进行该swappiness与swappiness阈值之间的比较;基于该swappiness与swappiness阈值之间的比较来判定该swappiness小于swappiness阈值;将用于该swappiness的swappiness偏移增加到增加的swappiness偏移;以及当系统重启时,将该swappiness设置为增加的swappiness偏移;以及将CVM尺寸设置为减少的偏移,其中,用于swappiness的低值指示使交互性优先于系统性能并且避免将应用交换出CVM,而用于swappiness的高值指示使系统性能优先于交互性并且激进地将应用交换出CVM,其中,存储器包括CVM,并且其中,低存储器杀手程序在可用的存储器量低时被触发。
示例26可包括一种基于存储器的计算设备,该设备包括:用于判定为该系统的存储器触发低存储器杀手程序的装置;用于基于判定该低存储器杀手程序被触发而进行针对压缩虚拟存储器(CVM)的CVM尺寸的峰值利用率与峰值利用阈值之间的比较的装置;以及用于基于该峰值利用率与峰值利用阈值之间的比较来对CVM尺寸进行调谐的装置。
示例27可包括如示例26所述的设备,进一步包括:用于基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率超出峰值利用阈值的装置;用于计算CVM尺寸和偏移的装置;用于将该偏移增加到增加的偏移的装置;以及用于在计算机系统重启时将CVM尺寸设置为该增加的偏移的装置,其中,存储器包括CVM,其中,低存储器杀手程序将在可用的存储器量低时被触发。
示例28可包括如示例26所述的设备,进一步包括:用于基于峰值利用率与峰值利用阈值之间的比较来判定该峰值利用率小于峰值利用阈值的装置;用于进行在CVM中运行的应用的数量与进程阈值之间的比较的装置;用于基于运行的应用的数量与进程阈值之间的比较来判定该运行的应用的数量小于进程阈值的装置;用于计算CVM尺寸和偏移的装置;以及用于将该偏移减少到减少的偏移的装置。
示例29可包括如示例26所述的设备,进一步包括:用于为CVM计算swappiness和swappiness偏移的装置;用于进行该swappiness与swappiness阈值之间的比较的装置;用于基于该swappiness与swappiness阈值之间的比较来判定该swappiness小于swappiness阈值的装置;用于将用于该swappiness的swappiness偏移增加到增加的swappiness偏移的装置;以及用于在系统重启时将该swappiness设置为增加的swappiness偏移的装置;以及用于将CVM尺寸设置为减少的偏移的装置。
示例30可包括如示例29所述的设备,其中,用于swappiness的低值用于指示使交互性优先于系统性能并且避免将应用交换出CVM,而用于swappiness的高值用于指示使系统性能优先于交互性并且激进地将应用交换出CVM,其中,存储器用于包括CVM,并且其中,低存储器杀手程序将在可用的存储器量低时被触发。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、芯片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在一些附图中,信号导线是用线表示的。一些线可以是不同的以指示更具构成性的信号路径,可具有数字标号以指示构成性信号路径的数目,和/或可在一端或多端具有箭头以指示主要信息流向。然而,这不应以限制性方式来解释。相反,此类增加的细节可与一个或多个示例性实施例结合使用以促进对电路的更容易的理解。任何所表示的信号线,不管是否具有附加信息,实际上都可包括一个或多个信号,这一个或多个信号可在多个方向上行进,并且可用任何适合类型的信号方案来实现,例如利用差分对来实现的数字或模拟线路、光纤线路,和/或单端线路。
示例尺寸/模型/值/范围可能已经被给出,但是实施例不限于此。随着制造技术(例如,光刻法)随时间变得成熟,预料到能制造出更小尺寸的设备。另外,为了说明和讨论的简单,到IC芯片和其他组件的公知的功率/接地连接可在附图内示出也可不示出,并且这样做也是为了不使所述实施例的某些方面模糊。进一步地,能以框图形式示出布置以避免使实施例模糊,还鉴于相对于此类框图布置的实现的细节高度依赖于将在其内实现实施例的计算系统这一事实,即,此类细节应当很好地在本领域技术人员的见识范围之内。在阐述了具体细节(例如,电路)以描述示例实施例的情况下,对本领域技术人员应当显而易见的是,实施例可以在没有这些具体细节的情况下或者利用这些具体细节的变型来实施。说明书因此被视为是说明性的而不是限制性的。
术语“耦合”在本文中被用于表示所讨论的部件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。另外,术语“第一”、“第二”等在本文中仅用于便于讨论,不带有特定时间的或按时间顺序的意义,除非另有陈述。
如在本申请和权利要求书中所使用的,由术语“中的一个或多个”联接的项列表可以意味着列举的项的任何组合。例如,短语“A、B或C中的一个或多个”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
本领域技术人员从前面的描述将领会,实施例的广泛技术可以以各种形式来实现。因此,尽管已结合其特定示例描述了实施例,但实施例的真实范围不应当限于此,因为在研究附图、说明书和所附权利要求书之后,其他修改对于本领域技术人员将变得显而易见。

Claims (25)

1.一种基于存储器的计算系统,包括:
图形显示器;
动态配置装置,通信地耦合至所述图形显示器,所述动态配置装置包括,
压缩虚拟存储器(CVM),具有CVM尺寸;
CVM监视器,用于监测低存储器杀手程序和峰值利用率,判定所述低存储器杀手程序被执行,以及进行所述峰值利用率与峰值利用阈值之间的比较;以及
CVM调谐器,用于基于所述峰值利用率与所述峰值利用阈值之间的所述比较来对所述CVM尺寸进行调谐。
2.如权利要求1所述的系统,其特征在于,所述CVM调谐器用于基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率超出所述峰值利用阈值,其中,所述存储器进一步包括用于计算所述CVM尺寸和偏移的CVM计算器、以及用于将所述偏移增加到增加的偏移的CVM设置更新器,其中,当所述系统重启时,所述CVM尺寸被设置为所述增加的偏移,并且其中,所述低存储器杀手程序将在可用的存储器量低时被执行。
3.如权利要求1或2中任一项所述的系统,其特征在于,所述峰值利用阈值将等于所述CVM尺寸的大约80%。
4.如权利要求1所述的系统,其特征在于,所述CVM调谐器用于基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率小于所述峰值利用阈值,进行在所述CVM中运行的应用的数量与进程阈值之间的比较,以及基于运行的应用的所述数量与所述进程阈值之间的所述比较来判定运行的应用的所述数量小于所述进程阈值,并且其中,所述存储器进一步包括用于计算所述CVM尺寸和偏移的CVM计算器、以及用于将所述偏移减少到减少的偏移的CVM设置更新器。
5.如权利要求4所述的系统,其特征在于,所述CVM调谐器用于为所述CVM计算交换和交换偏移,进行所述交换与交换阈值之间的比较,以及基于所述交换与所述交换阈值之间的所述比较来判定所述交换小于所述交换阈值,并且其中,所述CVM设置更新器用于将针对所述交换的交换偏移增加到增加的交换偏移。
6.如权利要求5所述的系统,其特征在于,当所述系统重启时,所述交换将被增加到所述增加的交换偏移,并且所述CVM尺寸将被减少到所述减少的偏移,其中,用于所述交换的低值指示使交互性优先于系统性能并且避免将应用交换出所述CVM,而用于所述交换的高值指示使系统性能优先于交互性并且激进地将应用交换出所述CVM,并且其中,所述低存储器杀手程序将在可用的存储器量低时被执行。
7.如权利要求1或4中任一项所述的系统,其特征在于,所述峰值利用阈值将等于所述CVM尺寸的大约50%。
8.一种动态配置装置,包括:
压缩虚拟存储器(CVM)监视器,用于监测低存储器杀手程序和针对CVM的CVM尺寸的峰值利用率,判定所述低存储器杀手程序被执行,并且进行所述峰值利用率与峰值利用阈值之间的比较;以及
CVM调谐器,用于基于所述峰值利用率与所述峰值利用阈值之间的所述比较来对所述CVM尺寸进行调谐。
9.如权利要求8所述的装置,其特征在于,进一步包括用于计算CVM尺寸和针对CVM的偏移的CVM尺寸计算器,其中,所述CVM调谐器进一步用于基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率超出所述峰值利用阈值,其中,所述装置进一步包括用于将所述偏移增加到增加的偏移的CVM设置更新器,其中,当所述装置被重新启动时,所述CVM尺寸将被设置为所述增加的偏移,其中,所述装置的存储器包括所述CVM,并且其中,所述低存储器杀手程序将在可用的存储器量低时被执行。
10.如权利要求8或9中任一项所述的装置,其特征在于,所述峰值利用阈值将等于所述CVM尺寸的大约80%。
11.如权利要求8所述的装置,其特征在于,进一步包括用于计算CVM尺寸和针对CVM的偏移的CVM尺寸计算器,其中所述CVM调谐器用于基于所述峰值利用率与所述峰值利用阈值之间的所述比较来进一步判定所述峰值利用率小于所述峰值利用阈值,进行在所述CVM中运行的应用的数量与进程阈值之间的比较,并且基于运行的应用的所述数量与所述进程阈值之间的所述比较来判定运行的应用的所述数量小于所述进程阈值,并且其中,所述装置进一步包括用于将所述偏移减少到减少的偏移的CVM设置更新器。
12.如权利要求11所述的装置,其特征在于,所述CVM调谐器进一步用于为所述CVM计算交换和交换偏移,进行所述交换与交换阈值之间的比较,并且基于所述交换与所述交换阈值之间的所述比较来判定所述交换小于所述交换阈值,并且其中,所述CVM设置更新器进一步用于将针对所述交换的交换偏移增加到增加的交换偏移。
13.如权利要求12所述的装置,其特征在于,当所述装置被重新启动时,所述交换将被增加到所述增加的交换偏移,并且所述CVM尺寸将被减少到所述减少的偏移,其中,用于所述交换的低值指示使交互性优先于系统性能并且避免将应用交换出所述CVM,而用于所述交换的高值指示使系统性能优先于交互性并且激进地将应用交换出所述CVM,其中,所述装置的存储器包括所述CVM,并且其中,所述低存储器杀手程序将在可用的存储器量低时被执行。
14.如权利要求8或11中任一项所述的装置,其特征在于,所述峰值利用阈值将等于所述CVM尺寸的大约50%。
15.至少一种计算机可读存储介质,包括指令集,所述指令集在由计算系统执行时使得所述计算系统:
判定为所述计算系统的存储器触发低存储器杀手程序;
基于判定所述低存储器杀手程序被触发而进行针对压缩虚拟存储器(CVM)的CVM尺寸的峰值利用率与峰值利用阈值之间的比较;以及
基于所述峰值利用率与所述峰值利用阈值之间的所述比较来对所述CVM尺寸进行调谐。
16.如权利要求15所述的至少一种计算机可读存储介质,其特征在于,所述指令集在由所述计算系统执行时使得所述计算系统:
基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率超出所述峰值利用阈值;
计算所述CVM尺寸和偏移;
将所述偏移增加到增加的偏移;以及
当所述计算系统重启时,将所述CVM尺寸设置为所述增加的偏移,其中,所述存储器包括所述CVM,其中,所述低存储器杀手程序将在可用的存储器量低时被触发。
17.如权利要求15或16中任一项所述的至少一种计算机可读存储介质,其特征在于,所述峰值利用阈值将等于所述CVM尺寸的大约80%。
18.如权利要求15所述的至少一种计算机可读存储介质,其特征在于,所述指令集在由所述计算系统执行时使得所述计算系统:
基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率小于所述峰值利用阈值;
进行在所述CVM中运行的应用的数量与进程阈值之间的比较;
基于运行的应用的所述数量与所述进程阈值的所述比较来判定运行的应用的所述数量小于所述进程阈值;
计算所述CVM尺寸和偏移;以及
将所述偏移减少到减少的偏移,其中,所述存储器包括所述CVM。
19.如权利要求18所述的至少一种计算机可读存储介质,其特征在于,所述指令集在由所述计算系统执行时使得所述计算系统:
为所述CVM计算交换和交换偏移;
进行所述交换与交换阈值之间的比较;
基于所述交换与所述交换阈值之间的所述比较来判定所述交换小于所述交换阈值;以及
将用于所述交换的交换偏移增加到增加的交换偏移。
20.如权利要求19所述的至少一种计算机可读存储介质,其特征在于,当所述计算系统被重新启动时,所述指令集在由所述计算系统执行时使得所述计算系统将所述交换设置为所述增加的交换偏移,并且将所述CVM尺寸减少到所述减少的偏移,其中,用于所述交换的低值指示使交互性优先于系统性能并且避免将应用交换出所述CVM,而用于所述交换的高值指示使系统性能优先于交互性并且激进地将应用交换出所述CVM,并且其中,所述低存储器杀手程序将在可用的存储器量低时被触发。
21.如权利要求15或18中任一项所述的至少一种计算机可读存储介质,其中,所述峰值利用阈值将等于所述CVM尺寸的大约50%。
22.一种方法,包括:
判定为计算机系统的存储器触发低存储器杀手程序;
基于判定所述低存储器杀手程序被触发而进行针对压缩虚拟存储器(CVM)的CVM尺寸的峰值利用率与峰值利用阈值之间的比较;以及
基于所述峰值利用率与所述峰值利用阈值之间的所述比较来对所述CVM尺寸进行调谐。
23.如权利要求22所述的方法,其特征在于,对所述CVM尺寸进行调谐的步骤进一步包括:
基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率超出所述峰值利用阈值;
计算所述CVM尺寸和偏移;
将所述偏移增加到增加的偏移;以及
当所述计算机系统重启时,将所述CVM尺寸设置为所述增加的偏移,其中,所述存储器包括所述CVM,其中,所述低存储器杀手程序在可用的存储器量低时被触发。
24.如权利要求22所述的方法,其特征在于,对所述CVM尺寸进行调谐的步骤进一步包括:
基于所述峰值利用率与所述峰值利用阈值之间的所述比较来判定所述峰值利用率小于所述峰值利用阈值;
进行在所述CVM中运行的应用的数量与进程阈值之间的比较;
基于运行的应用的所述数量与所述进程阈值的所述比较来判定运行的应用的所述数量小于所述进程阈值;
计算所述CVM尺寸和偏移;以及
将所述偏移减少到减少的偏移;
计算所述CVM尺寸和偏移;
将所述偏移减少到减少的偏移;
为所述CVM计算交换和交换偏移;
进行所述交换与交换阈值之间的比较;
基于所述交换与所述交换阈值之间的所述比较来判定所述交换小于所述交换阈值;
将用于所述交换的交换偏移增加到增加的交换偏移;以及当所述系统重启时,
将所述交换设置为所述增加的交换偏移;以及
将所述CVM尺寸设置为所述减少的偏移,其中,用于所述交换的低值指示使交互性优先于系统性能并且避免将应用交换出所述CVM,而用于所述交换的高值指示使系统性能优先于交互性并且激进地将应用交换出所述CVM,其中,所述存储器包括所述CVM,并且其中,所述低存储器杀手程序在可用的存储器量低时被触发。
25.一种动态配置设备,包括用于执行权利要求22至24中任一项所述的方法的装置。
CN201680086180.7A 2016-06-27 2016-06-27 用于压缩虚拟存储器的动态配置的计算系统、装置和方法 Active CN109313604B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/087267 WO2018000128A1 (en) 2016-06-27 2016-06-27 Dynamic configuration of compressed virtual memory

Publications (2)

Publication Number Publication Date
CN109313604A true CN109313604A (zh) 2019-02-05
CN109313604B CN109313604B (zh) 2023-05-23

Family

ID=60785005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680086180.7A Active CN109313604B (zh) 2016-06-27 2016-06-27 用于压缩虚拟存储器的动态配置的计算系统、装置和方法

Country Status (4)

Country Link
US (1) US10635337B2 (zh)
EP (1) EP3475829A4 (zh)
CN (1) CN109313604B (zh)
WO (1) WO2018000128A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175075A (zh) * 2019-05-21 2019-08-27 深圳市君和睿通科技股份有限公司 安卓系统内存优化方法及装置
CN111708614A (zh) * 2020-08-19 2020-09-25 鹏城实验室 一种虚拟机资源参数动态调节方法、系统及相关设备
CN114168065A (zh) * 2020-09-10 2022-03-11 荣耀终端有限公司 调整内存配置参数的方法和装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102091409B1 (ko) * 2018-03-09 2020-03-20 삼성전자 주식회사 전자장치 및 그 제어방법
CN110727606A (zh) * 2019-09-27 2020-01-24 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备
EP3812902B1 (en) * 2019-10-25 2022-07-27 Thomson Licensing Method for controlling memory resources in an electronic device, device for controlling memory resources, electronic device and computer program
US11442832B2 (en) 2020-11-24 2022-09-13 Hewlett Packard Enterprise Development Lp Managing synchronized reboot of a system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696926A (en) * 1993-07-30 1997-12-09 Apple Computer, Inc. Method and apparatus for transparently compressing data in a primary storage device
WO2013003636A2 (en) * 2011-06-28 2013-01-03 Nextnav, Llc Coding in a wide area positioning system (waps)
EP2582038A1 (en) * 2011-10-14 2013-04-17 Research In Motion Limited Methods and apparatus for power control
US20140189281A1 (en) * 2012-12-28 2014-07-03 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
CN104503740A (zh) * 2014-12-01 2015-04-08 小米科技有限责任公司 内存管理方法和装置
WO2015150954A1 (en) * 2014-03-31 2015-10-08 Koninklijke Philips N.V. System and method for acoustic imaging with coherent compounding using intercostal spaces
CN105224389A (zh) * 2015-09-23 2016-01-06 电子科技大学 基于线性相关性及分段性装箱理论的虚拟机资源整合方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728907B1 (en) * 2000-04-14 2004-04-27 Microsoft Corporation System and method for self-diagnosing system crashes
JP4920898B2 (ja) * 2005-03-24 2012-04-18 株式会社日立製作所 計算機システム、データ管理方法およびプログラム
US20120324481A1 (en) 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
TWI514278B (zh) * 2012-09-19 2015-12-21 Ind Tech Res Inst 開機之映像檔之大小縮減方法及運算裝置
KR102114388B1 (ko) * 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
US20150242432A1 (en) * 2014-02-21 2015-08-27 Microsoft Corporation Modified Memory Compression
US10552179B2 (en) * 2014-05-30 2020-02-04 Apple Inc. Resource management with dynamic resource policies
US10248321B1 (en) * 2015-09-15 2019-04-02 Amazon Technologies, Inc. Simulating multiple lower importance levels by actively feeding processes to a low-memory manager
CN105512050B (zh) * 2015-11-25 2018-09-04 小米科技有限责任公司 内存管理方法及装置
US10552320B2 (en) * 2016-04-01 2020-02-04 Intel Corporation Using a projected out of memory score to selectively terminate a process without transitioning to a background mode
US10649889B2 (en) * 2017-06-04 2020-05-12 Apple Inc. Method and apparatus for managing kernel memory of data processing systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696926A (en) * 1993-07-30 1997-12-09 Apple Computer, Inc. Method and apparatus for transparently compressing data in a primary storage device
WO2013003636A2 (en) * 2011-06-28 2013-01-03 Nextnav, Llc Coding in a wide area positioning system (waps)
EP2582038A1 (en) * 2011-10-14 2013-04-17 Research In Motion Limited Methods and apparatus for power control
US20140189281A1 (en) * 2012-12-28 2014-07-03 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
WO2015150954A1 (en) * 2014-03-31 2015-10-08 Koninklijke Philips N.V. System and method for acoustic imaging with coherent compounding using intercostal spaces
CN104503740A (zh) * 2014-12-01 2015-04-08 小米科技有限责任公司 内存管理方法和装置
CN105224389A (zh) * 2015-09-23 2016-01-06 电子科技大学 基于线性相关性及分段性装箱理论的虚拟机资源整合方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOUSUKE SHIOZAWA等: "Development of basic-type CMP/P-CVM fusion processing system (Type A) and its fundamental characteristics", 《PROCEEDINGS OF INTERNATIONAL CONFERENCE ON PLANARIZATION/CMP TECHNOLOGY 2014》 *
雷元武: "合成孔径雷达成像处理硬件加速器技术研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175075A (zh) * 2019-05-21 2019-08-27 深圳市君和睿通科技股份有限公司 安卓系统内存优化方法及装置
CN111708614A (zh) * 2020-08-19 2020-09-25 鹏城实验室 一种虚拟机资源参数动态调节方法、系统及相关设备
CN114168065A (zh) * 2020-09-10 2022-03-11 荣耀终端有限公司 调整内存配置参数的方法和装置
WO2022052897A1 (zh) * 2020-09-10 2022-03-17 荣耀终端有限公司 调整内存配置参数的方法和装置
US11995317B2 (en) 2020-09-10 2024-05-28 Honor Device Co., Ltd. Method and apparatus for adjusting memory configuration parameter
CN114168065B (zh) * 2020-09-10 2024-05-31 荣耀终端有限公司 调整内存配置参数的方法和装置

Also Published As

Publication number Publication date
CN109313604B (zh) 2023-05-23
US10635337B2 (en) 2020-04-28
WO2018000128A1 (en) 2018-01-04
EP3475829A4 (en) 2020-02-26
EP3475829A1 (en) 2019-05-01
US20190146699A1 (en) 2019-05-16

Similar Documents

Publication Publication Date Title
CN109313604A (zh) 压缩虚拟存储器的动态配置
US7254676B2 (en) Processor cache memory as RAM for execution of boot code
KR102490908B1 (ko) 자원 스케줄링 방법 및 단말 장치
TWI516909B (zh) 包括在裝置中自主的硬體式深度省電之能源效率及能源節約的方法、設備及系統
JP5695766B2 (ja) マルチコアシステムエネルギー消費最適化
US9244520B2 (en) Techniques for managing power and performance of multi-socket processors
US10628321B2 (en) Progressive flush of cache memory
Laga et al. Lynx: A learning linux prefetching mechanism for ssd performance model
WO2014138411A1 (en) System and method for tiered caching and storage allocation
CN109997118A (zh) 在永久存储器系统中以超高速一致地存储大量数据的方法
US10489296B2 (en) Quality of cache management in a computer
CN103999062A (zh) 经分段的高速缓存
CN107077184A (zh) 具有快速恢复的系统待机仿真
US9507534B2 (en) Home agent multi-level NVM memory architecture
US11782761B2 (en) Resource management unit for capturing operating system configuration states and offloading tasks
CN115981833A (zh) 一种任务处理方法及装置
EP4315041A1 (en) Processing-in-memory concurrent processing system and method
US12020065B2 (en) Hierarchical processor selection
JP6036457B2 (ja) 演算処理装置、情報処理装置及び情報処理装置の制御方法
US8850443B2 (en) Asynchronous input/output (I/O) using alternate stack switching in kernel space
US10936047B2 (en) Power state management
US10452546B2 (en) Cache utility modeling for automated cache configuration
US11899589B2 (en) Systems, methods, and devices for bias mode management in memory systems
US11354127B2 (en) Method of managing multi-tier memory displacement using software controlled thresholds
CN108345428A (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