CN104737137A - 电子设备的存储器压缩方法及其装置 - Google Patents
电子设备的存储器压缩方法及其装置 Download PDFInfo
- Publication number
- CN104737137A CN104737137A CN201480002742.6A CN201480002742A CN104737137A CN 104737137 A CN104737137 A CN 104737137A CN 201480002742 A CN201480002742 A CN 201480002742A CN 104737137 A CN104737137 A CN 104737137A
- Authority
- CN
- China
- Prior art keywords
- compression
- application
- compressed
- page
- 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
Links
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in 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/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
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)
- Memory System (AREA)
- Information Transfer Between Computers (AREA)
Abstract
公开了电子设备的存储器压缩方法及其装置。用于对电子设备中的存储器进行压缩的方法可包括:检测对于执行第一应用的请求;判定第一应用的执行是否要求存储器压缩;当要求存储器压缩时,对与电子设备的后台正在进行的应用相对应的存储器进行压缩;并且执行第一应用。
Description
相关申请的交叉引用
本申请要求2013年10月18日和2013年10月28日在韩国知识产权局递交的韩国申请序列号10-2013-0124885和10-2013-0128848的优先权,在此通过引用并入其全部内容。
技术领域
本发明概括而言涉及电子设备,更具体而言,涉及电子设备的存储器压缩方法及其装置。
背景技术
近来,存储器大小根据应用的复杂度的增大而增大了。虽然电子设备中使用的系统存储器的大小根据上述趋势已增大,但其不足以满足对于应用所要求的存储器大小的需求。
用于确保可用的存储器空间的方法之一是交换(swapping)。交换指的是这样一种方法:通过该方法,数据被从存储器空间传送到盘空间以便确保可用的存储器空间。在执行交换时,对盘的访问速度通常比对存储器的访问速度慢,因此系统性能可恶化。
为了解决上述问题,可考虑存储器压缩方法。存储器压缩可用于确保存储器存储空间并减小流量带宽。
然而,根据现有技术的存储器压缩在服务速率和压缩比率之间有折衷。
发明内容
技术问题
本发明提供了有效的存储器压缩方法及其装置。
更具体而言,本发明提供了用于选择性地压缩与存储器中加载的一个或多个应用相对应的数据以有效地确保可用的存储器空间的方法和装置。
此外,本发明提供了用于依据系统的情况改变存储器压缩方法以有效地压缩存储器的方法和装置。
解决问题的方案
根据本发明的一方面,一种用于压缩电子设备中的存储器的方法可包括:检测对于执行第一应用的请求;判定第一应用的执行是否要求存储器压缩;当要求存储器压缩时,对与电子设备的后台正在进行的应用相对应的存储器进行压缩;以及执行第一应用。
根据本发明的另一方面,一种电子设备可包括:存储器;以及控制器,该控制器进行控制以检测对于执行第一应用的请求,判定第一应用的执行是否要求存储器压缩,当要求存储器压缩时,对与电子设备的后台正在进行的应用相对应的存储器进行压缩,并且执行第一应用。
根据本发明的另一方面,一种用于压缩存储器的方法可包括:通过反映电子设备状态来识别关于压缩存储器的系统需求;基于所识别的系统需求从用于压缩存储器中存储的数据的压缩执行者、压缩单位和压缩处理中选择至少一个压缩元素;以及根据所选择的压缩元素来执行存储器压缩。
根据本发明的另一方面,一种包括存储器的电子设备可包括:存储数据的存储器;以及CPU,该CPU进行控制以识别系统需求,基于所识别的系统需求从用于对存储器中存储的数据进行压缩的压缩执行者、压缩单位和压缩处理中选择至少一个压缩元素,并且根据所选择的压缩元素来执行存储器压缩。
根据本发明的另一方面,一种用于对其中安装了多个应用并且两个或更多个应用可被同时执行的电子设备中的存储器进行压缩的方法可包括:检测对于执行第一应用的请求;将第一应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;以及作为比较的结果,如果第一应用的执行所要求的存储器大小大于可用存储器大小,则对与在后台正在进行的至少一个应用相对应的存储器进行压缩。
根据本发明的另一方面,一种其中安装了多个应用并且两个或更多个应用可被同时执行的电子设备可包括:存储器;以及控制器,该控制器进行控制:当检测到对于执行第一应用的请求时,将第一应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;并且作为比较的结果,如果第一应用的执行所要求的存储器大小大于可用存储器大小,则对与在后台正在进行的至少一个应用相对应的存储器进行压缩。
发明的有利效果
根据本发明的实施例,选择性地压缩与存储器中加载的一个或多个应用相对应的数据,从而可以有效地确保可用的存储器空间。从而,可以高效地利用现有的存储器,而不采用额外的存储器,因此可以通过降低制造成本而以低成本制造电子设备。此外,排除了访问速度慢的盘,从而提高了数据加载速度。
此外,根据本发明的实施例,可依据系统需求来改变存储器压缩方法,从而有效地执行存储器压缩。
此外,根据本发明的实施例,通过提高服务速率和压缩比率可以增强压缩性能。
附图说明
通过接下来结合附图的详细描述,本发明的上述和其他目的、特征和优点将更清楚,附图中:
图1图示了根据本发明的实施例的存储器压缩过程;
图2图示了根据本发明的实施例的电子设备执行存储器压缩的流程图;
图3图示了根据本发明的实施例的电子设备执行存储器压缩的流程图;
图4是图示出根据本发明的实施例的图3的操作S310——即选择要压缩的应用的操作——的详细流程图;
图5是图示出本发明的各种实施例之一的流程图;
图6图示了根据压缩执行者的特征;
图7图示了根据压缩单位的特征;
图8图示了根据压缩规则的特征;
图9图示了根据本发明的实施例的存储器压缩装置及其操作;
图10至图12图示了根据本发明的实施例的基于硬件加速器的存储器压缩的片上系统(system-on-chip,SoC)结构的各种实施例;
图13是图示出根据本发明的实施例的用于选择存储器压缩执行者的方法的流程图;
图14是图示出根据本发明的实施例的用于选择存储器压缩单位的方法的流程图;
图15是图示出根据本发明的实施例的用于选择存储器压缩单位的方法的流程图;
图16是图示出根据本发明的实施例的多页压缩系统的操作的流程图;
图17图示了根据本发明的实施例的基于硬件加速器的压缩系统的特征;
图18图示了根据本发明的实施例的系统参数之间的关系;
图19是图示出根据本发明的实施例的压缩处理的流程图;
图20是根据本发明的实施例的存储器压缩装置的框图;并且
图21是图示出本发明的各种实施例中的另一实施例的流程图。
具体实施方式
以下,将参考附图来详细描述本发明的各种实施例。应当注意,相同的元素虽然在不同图中示出也被用相同的标号来指代。另外,将省略可使得本发明的主题不清楚的对已知的功能和配置的详细描述。以下,应当注意,将只提供可帮助理解与本发明的各种实施例关联提供的操作的描述,而将省略其他描述以避免使得本发明的主题不太清楚。
图1图示了根据本发明的实施例的存储器压缩过程。
图1a示出了在至少一个应用被加载在存储器100中时,电子设备状态已被改变。电子设备可包括具有移动性的移动设备,例如智能电话、便携式终端等等,但不限于此。例如,电子设备可包括个人计算机、服务器、电视机(例如,数字电视机)、打印机、相机,等等。
虽然如后文所述电子设备状态可根据各种实施例被改变,但图1的描述将对接收到对执行特定应用的请求的情况做出。
如图1a所示,当接收到对执行特定应用的请求时,应用的执行所必需的数据和与其相关的数据(以下称为应用对应数据)被加载在存储器100中,并且当数据和相关数据被加载在存储器100中时,所请求的应用可被执行。图1a示出了接收到对执行应用A、B和C的请求,并且这些应用的执行所必需的数据和相关数据被加载在了存储器100中,从而被执行。
此外,可接收到对于执行特定应用的用户请求。在此情况下,如果存储器空间不足以加载执行所请求的应用所必需的数据和相关数据,或者不足以执行该应用,则根据本发明的实施例的电子设备可压缩存储器100。
根据本发明的实施例,电子设备可在加载应用对应数据或者在加载应用之后执行应用的至少一个操作之时执行存储器压缩。例如,电子设备可对与在后台进行中的应用之中的满足特定条件的应用相对应的存储器进行压缩。在本发明中,压缩存储器可以指相应应用的数据被压缩。
图1b示出了至少一个应用被压缩了。从而,可以确保用于执行所请求的应用的可用空间。
随后,如图1b所示,电子设备可执行所请求的应用。在本发明的实施例中,执行应用可以指将应用对应的数据加载在存储器100中并对其进行执行的操作。
同时,在图1b中执行了存储器压缩操作之后,可接收另一个应用执行请求。在此情况下,操作可根据被请求执行的应用的类型而不同。例如,存储器压缩之后请求的应用可包括尚未被加载在存储器中的应用、在存储器中已被压缩的应用或者已被加载在存储器中、但未被压缩的应用。
图1c示出了在通过上述过程的存储器压缩之后接收到对执行与压缩的存储器相对应的应用的请求的情况下的操作。
如图1c所示,在存储器压缩之后,当接收到对于执行与压缩的存储器相对应的应用(例如,应用A)的请求时,与所请求的应用相对应的压缩的存储器可被解压缩。然后,由于所请求的应用处于被加载在存储器100中的状态,所以电子设备可执行所请求的应用。
或者,虽然在图1c中未示出,但在存储器压缩之后,可接收到对于执行新应用的请求。新应用指的是尚未被加载在存储器100中的应用。在此情况下,电子设备可判定所请求的新应用的执行是否要求存储器压缩,并且可根据判定结果在压缩存储器100之后执行该新应用。
或者,虽然在图1c中未示出,但在存储器压缩之后,可接收到对于执行已被加载在存储器100中但尚未被压缩的应用的请求。在此情况下,电子设备可再执行所请求的应用。
同时,图1a至图1c示出了这样的实施例:在加载了特定应用的执行所必需的数据和相关数据的状态中,当接收到对于执行新应用的请求时,对加载的数据进行压缩。同时,根据本发明的另一实施例,要新加载在存储器中的数据可被压缩。将参考图1d至图1f来对此进行描述。
在图1d至图1f的实施例中,电子设备是打印机,并且要通过打印机打印出的文件被加载在存储器中。
首先,如图1d所示,要通过打印机打印出的文件A、B和C可被依次加载在存储器中。假定后来接收到对于输出文件D、E和F的请求。在此情况下,如图1d所示,文件D、E和F不是全都可被加载在存储器中。
在此情况下,打印机可对新请求的文件D、E和F进行压缩,并且可将其加载在存储器中,如图1e所示。
然后,在恰当的时间,例如当文件A和B已被打印出,并且文件C正被打印时,打印机可对已被压缩并加载在存储器中的文件D、E和F进行解压缩,如图1f所示。对文件解压缩的时间可基于打印机的打印速度、要打印的文件的大小、打印的进行程度等等来确定。
稍后将参考图5来描述上述的各种实施例。
同时,虽然在图1中应用或文件被说明为A、B和C的示例,但本发明不限于此。示例A、B和C可包括占用存储器的一些对象。所述对象可包括电子设备的屏幕配置信息、用户界面(user interface,UI)、原始文件,等等。
图2图示了根据本发明的实施例的电子设备压缩存储器的流程图。
首先,电子设备在操作S210中可检测电子设备状态中的变化。此外,电子设备可基于检测到的变化状态来判定是否要求存储器压缩。以下,将描述开始关于存储器压缩的必要性的判定的条件。
例如,当接收到对于执行或终止某个应用的请求时,电子设备可判定是否要求存储器压缩。例如,当接收到应用执行请求时,电子设备最好尽可能多地确保可用空间以执行所请求的应用。
除了对执行和终止应用的请求的检测以外,当检测到按钮点击事件时,电子设备可判定是否要求存储器压缩。所述按钮可包括物理按钮,或者软件按钮,并且还可包括音量按钮、唤醒/休眠按钮(或电源按钮)、首页(home)按钮,等等。例如,当检测到首页按钮点击时,在主屏幕图像中正在进行的应用应当被转换到背景层中,因此在主屏幕图像中正在进行的应用可被选择以进行压缩。此外,电子设备可按预定的周期来周期性地检查是否要求存储器压缩。例如,电子设备可按预定的周期识别存储器状态(例如,可用空间),并且可周期性地判定是否要求存储器压缩。
此外,电子设备可在CPU从空闲状态切换到活跃状态时以及从活跃状态切换到空闲状态时判定存储器压缩的必要性。此外,电子设备可在开始呼叫、终止呼叫、显示弹出消息(呼叫、闹铃、SMS等等)、检测到触摸输入、检测到对电子笔的使用或者其接近、检测到对诸如蓝牙之类的短程无线通信的使用、检测到对互联网的接入等等的情况下判定存储器压缩的必要性。
此外,电子设备可在检测到用于转换电子设备的屏幕图像的输入(或指令)、检测到用于刷新屏幕图像的输入、检测到用于将电子设备中显示的2D UI变换成3D UI的输入、检测到用于旋转电子设备中显示的屏幕图像的输入等等的情况下判定存储器压缩的必要性。
电子设备可基于上述因素来判定存储器压缩的必要性。
据此,电子设备可前进到操作S220来判定是否要求存储器压缩。例如,如果可用存储器空间等于或小于预定的参考值,则电子设备可判定需要存储器压缩。此外,如果在后台正在进行的应用的数目大于预定的值,则电子设备也可判定需要存储器压缩。此外,如果在后台存在于一段特定的时间内都未被使用的应用,如果在后台存在由用户配置的特定应用,或者如果在后台存在很少使用的应用,则电子设备可判定需要存储器压缩。此外,如果所请求的应用所要求的存储器大小根据在台后存在的当前应用大于可用存储器大小,则电子设备可判定要求存储器压缩。此外,如果由于存储器被与在台后存在的当前应用相对应的数据所占用,所请求的应用所要求的存储器未得到确保,则电子设备可判定要求存储器压缩。
作为操作S220中的判定的结果,当判定要求存储器压缩时,电子设备可前进到操作S230以执行存储器压缩。例如,电子设备可对与在后台正在进行的应用相对应的存储器进行压缩。这可意味着根据在后台运行的应用的数据(例如,在相机应用的情况下的存储的图像数据)被压缩。
稍后将详细描述操作S230中的存储器压缩。
在存储器压缩之后,电子设备可前进到操作S240,从而执行相应的功能。例如,所请求的应用可被执行。
同时,作为操作S220中的判定的结果,当判定不要求存储器压缩时,电子设备可前进到操作S240以执行相应的功能。
同时,虽然在存储器压缩之后执行相应的功能,但操作并不限于这种顺序。例如,电子设备可在操作S230中的存储器压缩之后返回到操作S220以再次判定存储器压缩的必要性。作为该判定的结果,当要求存储器压缩时,电子设备可重复操作S230以压缩存储器。
此外,在图2的描述中,虽然电子设备在检测到电子设备的状态变化之后判定存储器压缩的必要性,并且如果必要,则压缩存储器,但本发明不限于此。例如,当检测到电子设备的状态变化时,电子设备可不判定存储器压缩的必要性,而是可直接执行存储器压缩。例如,电子设备可在接收到应用执行请求时迅速地压缩存储器。
图3图示了根据本发明的实施例的电子设备压缩存储器的流程图。
如图3所示,电子设备在操作S310中可选择要压缩的应用。例如,电子设备可选择在后台正在进行的所有应用作为要压缩的应用,或者可从后台的应用中选择至少一个应用作为要压缩的应用。
此外,电子设备在操作S320中可选择压缩执行者。根据本发明的实施例,在压缩存储者时,CPU或硬件加速器可选择性地压缩存储器。
当决定了压缩执行者时,电子设备在操作S330中可选择压缩单位。根据本发明的实施例,存储器压缩可按单页单位或按多页单位进行。
当决定了压缩单位时,电子设备可前进到操作S340以根据本发明的实施例执行压缩处理。
稍后将参考附图更详细描述图3的操作。
图4是图示出根据本发明的实施例的图3的操作S310——即选择要压缩的应用的操作——的详细流程图;
首先,电子设备在操作S410中可判定是否有关于存储器压缩的优先列表。优先列表中包括的应用在存储器压缩中可被优先。
如果有优先列表,则电子设备可前进到操作S420以判定优先列表中包括的应用中的至少一个是否存在于存储器中或者在后台正在进行。当优先列表中包括的应用中的至少一个存在于存储器中或者在后台正在进行时,电子设备可选择相应的应用作为要压缩的那个。也就是说,电子设备可选择与该应用相对应的存储器作为要压缩的那个。
同时,如果在操作S420中优先列表中包括的应用不存在于存储器中或者不在后台正在进行,则电子设备可前进到操作S440以判定在选择要压缩的应用时是否要考虑相关性。相关性指的是与电子设备状态的变化的原因或者最近使用的应用的关系,这将在下文描述。
考虑到相关性,电子设备可前进到操作S450以选择与电子设备状态的变化的原因有低相关性的应用,或者与最近使用的应用有低相关性的应用,作为要压缩的那个。例如,当执行相机应用时,电子设备可选择与相机具有低相关性的金融应用作为要压缩的应用,因为相机与金融服务没有关系。
类似地,在最近使用的应用是相机应用的情况下,电子设备可判定SNS应用与相机应用具有高相关性,因为用户很有可能把利用相机应用拍摄的图像上传到SNS,而电子设备可判定金融服务应用与相机应用具有低相关性。根据判定结果,如果最近使用的应用是相机应用,则电子设备可选择金融应用作为要压缩的那个。
同时,在不考虑相关性的情况下,电子设备可前进到操作S460以选择很少使用的应用作为要压缩的那个。
根据图4的实施例,虽然电子设备依次考虑优先列表、相关性和使用频率,但本发明不限于这种顺序。例如,电子设备可根据优先列表、相关性和使用频率中的至少一个来选择至少一个应用,并且在其组合或顺序上可以有各种修改。
图5是图示出本发明的各种实施例之一的流程图。
更具体而言,图5示出了电子设备在如图2中提到的电子设备的状态变化对应于检测到应用执行请求并且在此之后检测到另一应用执行请求的情况下根据需要压缩存储器。在图5中,将省略已联系图2所做的描述。
首先,电子设备在操作S510中可检测应用执行请求的接收。然后,电子设备在操作S515中可判定是否要求存储器压缩。
如果要求存储器压缩,则电子设备可前进到操作S520以压缩存储器。在存储器压缩之后,或者当不要求存储器压缩时,电子设备可前进到操作S525以执行所请求的应用。
接下来,电子设备在操作S530中可检测另一应用执行请求。然后,电子设备在操作S535中可判定所请求的应用是否是新应用,也就是说,所请求的应用是否未被加载在存储器中或者未在后台正在进行。
如果该请求涉及新应用,则电子设备可前进到操作S540以判定是否需要存储器压缩。例如,电子设备可通过将新应用所必需的存储器大小与当前可用的存储器大小相比较来判定存储器压缩的必要性。或者,电子设备可根据在图2的操作S220中记载的判定条件中的至少一个来判定存储器压缩的必要性。
如果需要存储器压缩,则电子设备可前进到操作S545以压缩存储器。在图2的操作S230中已描述了存储器压缩的详细操作,因此这里将省略。在存储器压缩之后,电子设备可前进到操作S550以执行所请求的应用。
同时,如果在操作S540中不需要存储器压缩,则电子设备可前进到操作S550以执行所请求的应用。
同时,如果在操作S535中该请求不涉及新应用,则电子设备可前进到操作S555以判定所请求的应用是否是存储器中的压缩的应用。
在操作S540中已描述了对于存储器压缩的必要性的判定,因此这里将省略详细描述。如果要求存储器压缩,则电子设备可前进到操作S565以压缩存储器。此外,由于所请求的应用是压缩的应用,所以电子设备可前进到操作S570以对该应用解压缩以便执行。
同时,如果在操作S560中不要求存储器压缩,则电子设备可执行操作S570。
同时,如果作为操作S555中的判定的结果所请求的应用不是压缩的应用,则电子设备可前进到操作S575以再执行所请求的应用。
以下,将详细描述图3的操作S320至S340。
到现在为止,描述了选择要压缩的应用的操作,然后下面将对有效地压缩被选择为压缩目标的存储器或应用的操作进行描述。
首先,本发明的实施例提供了这样一种方法:通过该方法,根据系统需求利用适当的压缩方法来压缩存储器,从而改善系统性能。更具体而言,如图3中记载的,可根据系统需求来选择压缩存储器的压缩执行者、压缩单位和压缩算法。
以下,将参考图6至图8来描述在选择压缩方法及其特征时应当考虑到的因素。更具体而言,图6示出了根据压缩执行者的特征,并且图7和图8分别示出了根据压缩单位和压缩类型的特征。
首先,参考图6,作为压缩执行者的CPU的特征被与硬件(H/W)加速器的特征相比较。本实施例提供了根据系统需求来选择性地使用CPU和硬件加速器作为压缩执行者的方法。就灵活性和系统的成本而言,使用CPU作为存储器压缩比使用硬件加速器是更有效的。相反,与CPU相比,由硬件加速器进行的存储器压缩可减少压缩时间和功耗。本实施例中提供的硬件加速器可以是除了CPU以外的用于压缩存储器的元件。此外,硬件加速器可以是专用于压缩的元件。
一般地,CPU具有比硬件加速器更好的灵活性。硬件加速器适合于预定的工作,但硬件加速器难以根据系统需求添加或改变算法。例如,在要求应用新压缩算法的情况下,CPU可容易地通过改变/添加软件来反映该算法,但硬件加速器则几乎不能反映它。从而,CPU对于要求的高灵活性可能更好。
硬件加速器应当以额外的成本基于现有CPU的SoC来单独设计。因此,为了避免额外的成本,或者当硬件加速器在一些情况下不存在于SoC中时,使用CPU是更好的。
参考图7,作为压缩单位,将单页压缩的特征与多页压缩方法的特征相比较。本发明的实施例提供了根据系统需求选择性地使用单页压缩或多页压缩作为压缩单位的方法。与多页压缩相比,单页压缩可容易地实现,并且可以以高压缩比率减小存储器大小。相反,多页压缩可以以高加速压缩存储器,并且可降低功耗。
参考图8,作为压缩类型,将固定算法的特征与自适应算法的特征相比较。本发明的实施例提供了根据系统需求来改变压缩算法并且利用其来压缩存储器的方法。固定算法在压缩能力上是更优选的(superior),并且自适应算法在适应性上是更优选的。
到现在为止,参考图6至图8描述了用于压缩存储器的方法及其特征。因此,通过根据系统使用适当的压缩方法可以改善系统性能。
图9图示了根据本发明的实施例的存储器压缩装置及其操作。
参考图9,根据本发明的实施例的存储器压缩装置900可包括CPU 910、用于存储要压缩的页的输入缓冲器920、存储器压缩器930、用于存储经压缩的页的输出缓冲器940、以及用于存储关于要压缩的页或经压缩的页的压缩信息的压缩信息存储空间(元信息)950。N表示输入缓冲器大小。λ是到达速率的指标,意思是从OS生成要压缩的页的平均速度。μ是压缩服务速率的指标,意思是平均服务速率。可在每页中配置服务速率。R是压缩比率的指标,意思是平均压缩比率。平均压缩比率可基于每一页。描述中提到的系统需求可包括应用的特征、可用存储器大小、要确保的存储器大小、要求的服务速率/压缩比率/功耗/延时、CPU操作状态、电池状态、流量状态,等等。本发明的实施例提供了根据系统需求来改变压缩方法的方法。
更具体而言,对于这些元素,一般地,操作系统(operating system,OS)为了管理将存储器空间划分成特定大小的片段,这些片段被称为页,并且该大小可随着系统而变化。本发明中的术语“页”指的是可随着系统而变化的存储器管理单位。
输入缓冲器920可以是用于存储要压缩的页的空间,这是一种虚拟RAM盘。此外,输入缓冲器大小“N”指的是要存储的页的数目,其可以是可变的。输出缓冲器940可以是用于按页单位存储压缩结果的空间,并且其大小可依据输入缓冲器大小N而变化。
压缩信息存储空间(元信息)950可以是用于存储关于页的信息的空间,可通过用于分离要压缩的页与经压缩的页的内在索引(intrinsic index)来管理该空间。此外,压缩信息存储空间可包括存储相应页的缓冲器的位置,以及该缓冲器中的该位置的地址。其可包括经压缩的页的大小。
到达速率(λ)、服务速率(μ)和压缩比率(R)可随着系统需求而变化。此外,页的服务速率(μ)和压缩比率(R)可依据要压缩的页的模式和压缩算法而变化。到达速率(λ)、服务速率(μ)和压缩比率(R)在图中示出。
同时,根据本发明的实施例,可基于系统需求来选择在压缩存储器时使用的压缩执行者、压缩单位和压缩处理类型中的至少一个的压缩元素。系统需求可基于电子设备状态。例如,如果剩余电池电力小于预定的值,则关于存储器压缩的系统需求可被配置为成使得低功耗的压缩执行者可压缩存储器。
总之,根据本发明的实施例的系统需求可被定义为反映了电子设备状态的、为了存储器压缩应当考虑的至少一个项目。此外,在选择压缩元素时可反映系统需求。
系统需求可以是正在进行的应用或者将来要执行的(或者被请求执行的)应用所必需的。系统需求可包括如下的各种项目。例如,系统需求可包括用户操作场景、多任务环境中的任务执行状态、应用的特征、可用存储器大小、要通过存储器压缩确保的存储器大小、要求的服务速率、压缩比率、功耗、延时、CPU操作状态、电池状态、流量状态,等等。
可用存储器大小可随着用户操作场景而变化。例如,利用相机拍摄照片并将其通过SNS发送的操作可要求比智能电话的待机模式更多的存储器,因此可用存储器大小在前者中可相对减小。可用存储器的减小将会要求存储器压缩来确保可用存储器。
可压缩的存储器大小可根据多任务环境中的任务执行状态而变化。后台的任务占用的存储器空间不再被使用,因此存储器可被压缩。从而,后台的任务越多,可压缩的存储器大小就越大。这可影响对存储器服务速率的判定。也就是说,由于要压缩的存储器大小较大,所以可以按高服务速率来压缩存储器。
存储器大小和数据模式可根据应用的特征而不同。使用简单数据模式的应用,例如具有高压缩比率的文本文档,可被选择为要压缩的那个,否则其可被从压缩中排除。
可用存储器大小是可使用的存储器的大小。随着可用存储器大小减小,应用的操作可变慢,从而引起用户的不便。因此,当可用存储器大小减小到预定值以下时,可执行存储器压缩。
要确保的存储器大小的含义将被描述如下。例如,假定接收到对于执行相机应用的请求,并且相机应用的执行要求100兆字节(MB)。此外,电子设备的当前可用存储器只是50MB。在此情况下,相机应用的执行要求另外的50MB的存储器,从而这可以是要通过存储器压缩确保的存储器大小。
要求的服务速率、压缩比率、功耗和延时分别指的是如下含义。服务速率的意思是压缩操作速度,并且压缩比率是压缩效率的指标,例如其中75%的压缩比率的意思是原始大小被减小了3/4。一般地,服务速率与压缩比率成反比。因此,应当考虑到服务速率和压缩比率之间的关系来选择适当的压缩方法。此外,在要求低功耗的情况下,可选择低功耗的压缩执行者。
此外,延时的意思是存储器压缩的结果有多快得出,这与服务速率是不同的。
例如,如果在单页压缩中一页被压缩并且其结果在1秒后得出,则延时是1秒,并且服务速率是1页/秒。相反,如果在多页压缩中十页被压缩并且其结果在5秒后得出,则延时是5秒,并且服务速率是2页/秒。在此示例中,单页压缩在延时上比多页压缩短,而单页压缩在服务速率上比多页压缩慢。
如上所述,可根据要求的延时来确定压缩存储器的单位。
可根据CPU操作状态来选择压缩执行者。例如,处于繁忙状态中的CPU可执行存储器压缩,而当CPU处于空闲状态中时,单独的(separate)设备而不是CPU可压缩存储器。
可根据电池状态来选择压缩执行者。例如,剩余电池电力小于20%,则可选择低功耗的压缩执行者。
可根据流量状态来选择压缩执行者或压缩单位。在重流量的情况下,最好使由压缩产生的流量最小化。当压缩执行者是单独的设备而不是CPU时,要压缩的数据将被从CPU传送到该单独设备,这引起流量的增大。此外,在大压缩单位的情况下,由于一次要传送的压缩数据的大小较大,所以流量可增大。在此情况下,为了最小化流量的增大,CPU可被选择为压缩执行者,并且压缩单位可被选择为小的那个。
同时,系统需求不是固定的,而可以是可变的。例如,可用存储器大小可根据正在进行的应用的类型或者其数目而受到影响,并且可压缩存储器大小可随着多任务环境中的任务执行状态而变化。此外,正在进行的应用的特征可影响所要求的存储器大小和数据模式,这可影响压缩性能。如上所述,由于电子设备的操作是可变的,所以基于电子设备状态的系统需求也可以是可变的。
同时,存储器压缩器930可按预定的方式压缩页,而不考虑系统需求。在此情况下,基于存储器压缩器930的多页压缩可如下根据预定的方法来执行。
存储器压缩器930可使用ZIP型的压缩算法,并且输入缓冲器920可被配置为1MB。在此情况下,对于4KB的页,输入缓冲器920可存储256页。输出缓冲器940的大小可根据输入缓冲器920的大小来确定,并且元信息(Meta Info)可按相同的方式来确定。例如,输出缓冲器940的大小可被确定为与输入缓冲器920的大小相同,即1MB,并且元信息可被确定为32字节×256=8KB。
如果输入缓冲器920中存储的页超过预定义的阈值,则CPU 910可发送控制命令来指令存储器压缩器930开始压缩操作。已接收到控制命令的存储器压缩器930可压缩存储器,然后例如利用中断/轮询方法通知CPU存储器压缩已完成。
图10图示了根据本发明的实施例的基于硬件加速器的存储器压缩的片上系统(SoC)的结构,并且图11和图12图示了根据本发明的实施例的基于硬件加速器的存储器压缩的SoC结构的其他示例。基于硬件加速器的存储器压缩的SoC可执行图3的操作S320之后的操作。
参考图10,在设计压缩系统时,可根据灵活性、成本、服务速率、功耗等等来改变压缩执行者。考虑到灵活性和成本,CPU 1010可压缩存储器,并且可设计压缩专用的硬件加速器1030以便提高服务速率并且降低功耗。此外,如果必要,CPU 1010和硬件加速器1030可分割存储器并且可同时对其进行压缩。
参考图10至图12,根据本发明的硬件加速器可按各种方式来实现。也就是说,如图10所示,存储器压缩器1030可被布置在总线1060和存储器控制器1070外部。此外,如图11所示,存储器压缩器1115可被布置在存储器控制器1110内部。此外,如图12所示,存储器压缩器1220可被布置在总线1210和存储器控制器1230之间。图10至图12中提供的配置只是根据本发明的基于硬件加速器的存储器压缩的SoC的示例,而本发明的范围不限于此。
图13详细示出了图3的操作S320。更具体而言,图13是图示出根据本发明的实施例的用于选择存储器压缩执行者的方法的流程图。
如上所述,在本发明的实施例中,可基于系统需求来选择压缩执行者、压缩单位和压缩处理中的至少一个。据此,电子设备在操作S1310中可检查系统需求以便选择压缩执行者。
对系统需求的检查可由电子设备中的CPU(或控制器)进行。作为系统需求,CPU可检查应用的特征、可用存储器大小、要确保的存储器大小、要求的服务速率/压缩比率/功耗/延时、CPU操作状态、电池状态、流量状态,等等。例如,作为检查的结果,如果剩余电池电力小于阈值,则低功耗的硬件加速器可被选择为压缩执行者。
在操作1330中,CPU(或控制器)可判定是否优选CPU和硬件加速器同时作为压缩执行者来压缩存储器。
如果在操作S1330中优选CPU和硬件加速器同时压缩存储器,则电子设备可前进到操作S1340,然后CPU和硬件加速器同时执行压缩。如果在操作S1330中优选CPU或硬件加速器中的任一个来压缩存储器,则电子设备可前进到操作S1350来判定哪一个适合作为压缩执行者。
同时,虽然操作S1330和操作S1350在图13中是分离的,但关于选择CPU和硬件加速器两者作为压缩执行者的判定和关于CPU和硬件加速器中的哪一个适合于压缩执行者的判定可通过单个操作来做出。
随后,在操作S1350中,CPU(或控制器)可判定CPU和硬件加速器中的哪一个适合于压缩执行者。例如,CPU在高灵活性、高成本或者大于预定值的充足电池电力的情况下可判定CPU是适当的。此外,CPU(或控制器)在根据系统需求要求高服务速率或低功耗或者CPU的利用率相当低的情况下可判定硬件加速器是适当的。此外,CPU(或控制器)在根据系统需求要求非常高的服务速率的情况下可判定CPU和硬件加速器两者同时执行压缩是适当的。
例如,当CPU需要执行应用时,也就是说,当CPU要用于执行诸如用于显示图像的图库应用、电影播放器应用或者网络浏览应用之类的应用时,硬件加速器可被选择为压缩执行者。
此外,当要求短延时时,CPU和硬件加速器两者为了迅速压缩可被选择为压缩执行者。
当在操作S1350中CPU被选择为压缩执行者时,电子设备可前进到操作S1360。在操作S1360中,CPU可对被请求压缩的存储器数据进行压缩。当在操作S1350中硬件加速器被选择为压缩执行者时,电子设备可前进到操作S1370。在操作S1370中,硬件加速器可对被请求压缩的存储器数据进行压缩。
现在,根据本发明的实施例,将描述根据系统要求的服务速率选择压缩执行者的操作。如果系统要求的服务速率高于硬件加速器的最大服务速率,则可判定CPU和硬件加速器同时执行压缩(操作S1330)。在此情况下,CPU和硬件加速器可在下一操作中同时执行压缩。
根据另一实施例,当剩余电池电力小于50%时,或者当CPU的利用率小于10%时,根据系统的预定配置,可判定硬件加速器要执行压缩以便降低功耗并且将CPU转换到空闲状态中。在此情况下,硬件加速器可执行压缩。相反,当剩余电池电力大于50%时,或者当由于有限的成本而没有采用硬件加速器时,CPU可执行压缩。
根据系统需求的判定只是本发明的实施例的一个示例,而本发明的范围不限于此。很明显,系统需求的每个项目的条件可随着系统而变化。
现在,将参考图14至图17来描述根据本发明的实施例的判定压缩单位的方法。图14至图17示出了上文记载的图3的操作S330中的判定存储器压缩单位的详细操作。
图14是图示出根据本发明的实施例的用于选择存储器压缩单位的方法的流程图,并且图15是图示出根据本发明的实施例的用于选择存储器压缩单位的方法的流程图。此外,图16是图示出根据本发明的实施例的多页压缩系统的操作的流程图,并且图17图示了根据本发明的实施例的基于硬件加速器的压缩系统的特征。
参考图14,包括存储器的电子设备在操作S1410中可检查系统需求。例如,系统需求可以是输入缓冲器大小N、延时、可用存储器空间,等等。然而,系统需求不限于此。
在操作S1430中,CPU(或控制器)可判定是单页压缩适合作为压缩单位还是多页压缩适合作为压缩单位。CPU(或控制器)在短延时时段或者可用存储器不足的情况下或者在多媒体流服务应用正在进行时,可判定单页压缩是适当的。此外,在可用存储器充足的情况下,可判定多页压缩是适当的。判定条件不限于此。
当在操作S1430中判定单页压缩适当时,电子设备可前进到操作S1450以执行单页压缩。当在操作S1430中判定多页压缩适当时,电子设备可前进到操作S1470以执行多页压缩。
操作S1430中的判定可如下进行。例如,当作为一种用于检查压缩系统的试运行要求短延时(表明存储器压缩的结果多快得出的指标)时,单页压缩可能是优选的。
此外,根据应用的特征,例如,在由使用多媒体流服务的正在进行的应用引起的重流量的情况下,单页压缩可能是优选的。详细地说,重流量意味着有大量工作要处理。虽然多页压缩可高速进行,但其要求处理大量工作,因此多页压缩不适合于重流量。虽然在该实施例中单页压缩对于重流量是优选的,但本发明不限于此。
此外,CPU(或控制器)可根据输入缓冲器大小来判定压缩单位。例如,CPU(或控制器)可进行配置以使得在N=1的情况下按一页进行压缩(单页),并且在N≥1的情况下按几页进行压缩(多页)。
此外,单页压缩要求相对较小的输入缓冲器大小N,因此其适合于系统的可用存储器小于总存储器的预定值(例如,20%)的情况(可用存储器值不限于此,并且其可根据用户或电子设备的配置而不同)。相反,多页压缩适合于系统的可用存储器大于总存储器的预定值(例如,20%)的情况。然而,每个项的判定参考可根据系统而不同。
此外,当压缩执行者与压缩单位有关时,硬件加速器适合于多页压缩,而CPU适合于单页压缩。如上所述,虽然压缩单位可受压缩执行者的影响,但本发明不限于此,并且判定压缩执行者和压缩单位的操作可彼此独立。
接下来,将参考图15来描述初始化多页压缩系统的操作。在操作S1510中,CPU(或控制器)可将存储器分配到输入缓冲器。输入缓冲器是用于存储要压缩的页的空间,其可以是一种虚拟RAM盘。此外,输入缓冲器大小“N”指的是要存储的页的数目,其可以变化。输入缓冲器大小可由要存储的页的数目以及其大小来确定。
接下来,在操作S1530中,CPU(或控制器)可将存储器分配到输出缓冲器。输出缓冲器可以是用于按页单位存储压缩结果的空间,并且其大小可依据输入缓冲器大小N而变化。将存储器分配到输出缓冲器可在操作S1510之前进行。
CPU(或控制器)在操作S1550中可判定是否所有的缓冲器都被分配了存储器。如果不是所有缓冲器都被分配了,则CPU(或控制器)可返回到操作S1510以将存储器分配到每个缓冲器。当判定所有缓冲器都已被分配时,CPU(或控制器)在操作S1570中可为元数据分配存储器。
压缩信息存储空间可存储元数据。压缩信息存储空间可以是用于存储关于页的信息的空间,可通过用于分离要压缩的页与经压缩的页的内在索引来管理该空间。此外,压缩信息存储空间可包括存储相应页的缓冲器的位置,以及该缓冲器中的该位置的地址。其可包括经压缩的页的大小。
在操作S1590中,CPU(或控制器)可选择压缩处理类型。
现在,将参考图16来描述多页压缩系统的操作。
在操作S1610中,CPU(或控制器)可进行控制以在输入缓冲器中存储压缩目标数据。在操作S1630中,CPU(或控制器)可初始化与输入缓冲器相对应的元数据空间以存储压缩目标数据。
在操作S1650中,CPU(或控制器)可根据输入缓冲器状态来判定是否要求压缩。例如,当输入缓冲器空间已满或者输入缓冲器中的数据量超过预定阈值时,CPU(或控制器)可判定开始存储器压缩。
CPU(或控制器)在操作S1670中可开始压缩输入缓冲器中存储的数据。在CPU压缩数据的情况下,CPU可不发送单独的信号。硬件加速器可接收关于压缩的指令从而压缩数据。硬件加速器可从CPU接收关于压缩的指令。CPU和/或硬件加速器可执行压缩。CPU和/或硬件加速器可按每页对输入缓冲器中存储的页进行压缩,从而将其存储在输出缓冲器中。在操作S1680中,压缩操作正在进行中。在压缩期间,CPU可待机,而不把要压缩的额外页存储在输入缓冲器中。在硬件加速器完成压缩之后,CPU可继续把要压缩的数据存储在输入缓冲器中。
在操作S1690中,可存储关于经压缩的页的信息。关于经压缩的页的信息可被更新以被存储在元数据中。此外,关于等待压缩的页和关于压缩失败的页的信息可被更新在元数据中。一般地,OS按页单位管理存储器空间,因此按每页的压缩可促进存储器的解压缩。
接下来,将参考图17来描述基于硬件加速器的多页压缩系统的特征。
CPU可在输入缓冲器中最多存储N页,并且可通过硬件加速器来按每页执行压缩。从而,CPU对于N/μ的时间可处于空闲状态中,因此可降低功耗。可根据CPU的空闲时间、系统可用存储器空间、服务速率等等来动态地确定输入缓冲器大小N。
此外,CPU在硬件加速器对输入缓冲器中存储的页进行压缩时,可不把要压缩的额外页存储在相应的输入缓冲器中,并且在硬件加速器进行的压缩完成之后,CPU可继续存储页。这可减少CPU和硬件加速器之间的交互,从而降低通信开销。同时,可以使用多个输入缓冲器和输出缓冲器,据此,CPU可减少阻塞现象,根据这种现象,要压缩的页不能被存储,而是处于等待状态。
另外,输入缓冲器和输出缓冲器的存储器区域可被分配到物理上连续的空间,因此硬件加速器仅利用相应缓冲器区域的开始地址和大小信息就能执行直接存储器访问(direct memory access,DMA)操作。据此,可以提高数据传送速度并且可以简化硬件结构。
以下,将描述图3的操作S340中的压缩处理。
这里,在描述根据本发明的实施例的压缩处理之前将描述理解本发明所必要的系统参数之间的关系。
图18图示了根据本发明的实施例的系统参数之间的关系。
图18示出了系统参数之间的关系,即,到达速率λ、服务速率μ和压缩比率R。λ是到达速率的指标,意思是从OS生成要压缩的页的平均速度。μ是压缩服务速率的指标,意思是平均服务速率。R指的是压缩比率。
参考示出λ和μ之间的关系的曲线图,为了保持系统稳定,服务速率μ应当大于到达速率λ,因此服务速率μ与到达速率λ成比例。如果CPU或硬件加速器的服务速率μ不比生成要压缩的页的到达速率λ更快,则要压缩的页可不被处理。从而,为了系统的稳定管理,要求服务速率μ比要压缩的页的到达速率λ更快。
相反,参考示出μ和R之间的关系的曲线图,服务速率μ与压缩比率R成反比。也就是说,服务速率μ越快,压缩比率R越低,反之亦然。
图19是图示出根据本发明的实施例的压缩处理的流程图。
参考图19,示出了利用到达速率λ、服务速率μ和压缩比率R来选择压缩算法并且根据所选择的算法执行压缩的操作。
存储器压缩装置在操作1910中可获得系统参数。系统参数可包括到达速率λ、服务速率μ和压缩比率R。
在操作1930中,存储器压缩装置可计算要求的服务速率(μRequired)。要求的服务速率(μRequired)可通过要压缩的数据的到达速率λ或者要求的压缩时间来计算。
在操作S1950中,存储器压缩装置可计算要求的压缩比率(RRequired)。要求的压缩比率(RRequired)可根据系统的可用存储器空间、压缩要确保的存储器大小、要求的压缩比率等等来计算。操作S1930和操作S1950可按相反的顺序执行。
在操作S1970中,存储器压缩装置可通过在上述操作中获得的要求的服务速率(μRequired)和要求的压缩比率(RRequired)来确定压缩处理选择范围。此外,压缩算法可基于要求的服务速率(μRequired)和要求的压缩比率(RRequired)之一根据其优先级来确定。
可基于上述的参数中的至少一个从压缩算法中的至少一个中选择压缩算法。例如,存储器压缩装置可存储多个压缩算法,例如10个算法。压缩算法可包括“zip”格式、“tar”格式或者“rar”格式,但不限于此。
如果服务速率根据系统参数被赋予优先权,则存储器压缩装置可从多个算法之中选择最快服务速率的压缩算法,并且可执行压缩处理。例如,如果“zip”格式是公开的压缩算法之中的具有最快服务速率的算法,则存储器压缩装置可选择“zip”算法作为当前压缩算法。
又例如,如果压缩比率根据系统参数被判定为是优先的,则存储器压缩装置可选择多个算法之中的具有最高压缩比率的压缩算法,并且可执行压缩处理。例如,如果“rar”格式是公开的压缩算法之中的具有最高压缩比率的算法,则存储器压缩装置可选择“rar”算法作为当前压缩算法。
此外,根据本发明的实施例,可根据输入页的数据模式考虑到服务速率μ或压缩比率R的变化而改变算法。
此外,可根据正在进行中的应用的特征来改变使用的存储器大小、要求的存储器大小、存储器访问模式以及数据模式。从而,考虑到这种特征,可计算适当的μRequired和RRequired,从而确定压缩处理。另外,可通过检查压缩的结果来改变压缩处理。
可根据压缩执行者来适当地选择压缩算法。例如,在硬件加速器用于压缩的情况下,可从适合于硬件加速器的算法的候选组中选择算法。
现在,将描述确定压缩比率和服务速率的实施例。
在可用存储器空间不充足、CPU利用率低和诸如游戏、图像/电影播放器之类的使用大存储器的应用正在进行的情况下,高压缩比率可能是优选的。相反,当需要迅速确保存储器时,高服务速率可能是优选的。
例如,当可用存储器空间小于总存储器的30%,或者CPU的利用率小于20%时,可选择最高压缩比率的处理。此外,当可用存储器空间在30%到40%之间,或者CPU的利用率在20%到30%之间时,可选择次高压缩比率的处理。类似地,可如上所述根据可用存储器空间和CPU的利用率来配置压缩比率,并且可执行与之相对应的压缩。
例如,当系统在1秒内要求多于200MB的存储器时,可选择最快服务速率的处理。本实施例中描述的可用存储器空间、处理器利用率、要求的服务速率和压缩比率只是本发明的示例,而本发明的范围不限于此。此外,每个项目的参考值可随着系统而变化。
图20是根据本发明的实施例的存储器压缩装置的框图。
参考图20,存储器压缩装置2000可包括用于控制存储器压缩装置2000的整体操作的中央处理单元2010、用于压缩存储器的存储器压缩控制器2030、以及用于存储数据的存储器2050。
在该实施例中,中央处理单元2010可进行控制以基于系统需求选择单页压缩或多页压缩之一作为压缩单位。
根据该实施例,中央处理单元2010可进行控制以识别系统需求,基于所识别的系统需求从用于对存储器中存储的数据进行压缩的压缩执行者、压缩单位和压缩处理中选择至少一个压缩元素,并且根据所选择的压缩元素来执行存储器压缩。
根据该实施例,中央处理单元2010可进行控制以基于系统需求选择中央处理单元2010和硬件加速器2030中的至少一个作为压缩执行者。当硬件加速器被选择为压缩执行者时,中央处理单元2010可进行控制以把要压缩的页存储在输入缓冲器中,把经压缩的页存储在输出缓冲器中,并且把包括压缩结果在内的压缩相关信息存储在压缩信息存储空间中,并且硬件加速器对输入缓冲器中存储的页进行压缩。
另外,根据该实施例,中央处理单元2010可进行控制以基于系统需求选择单页压缩或多页压缩之一作为压缩单位。当多页压缩被选择为压缩单位时,中央处理单元2010可进行控制以选择硬件加速器作为压缩执行者。此外,当多页压缩被选择为压缩单位时,中央处理单元2010可进行控制以把要压缩的页存储在输入缓冲器中,并且可判定要压缩的页的量是否超过预定的阈值。如果判定要压缩的页的量超过预定的阈值,则中央处理单元2010可进行控制以压缩输入缓冲器中存储的页。
此外,根据本发明的实施例,中央处理单元2010可基于系统需求配置要求的服务速率和要求的压缩比率,并且可根据配置的服务速率和压缩比率来选择用于压缩页的压缩处理。
存储器压缩控制器2030可被称为硬件加速器。存储器压缩控制器2030可压缩存储器中存储的数据。存储器压缩控制器2030可以是用于存储器压缩的专用控制器。
根据本发明的实施例,存储器压缩控制器2030可被选择为压缩执行者以对输入缓冲器中存储的页进行压缩。
虽然在上述实施例中描述了中央处理单元2010和硬件加速器2030的功能,但其功能和操作不限于此,并且中央处理单元2010和硬件加速器2030可执行图1至图15中的实施例的操作。
图21是图示出本发明的各种实施例中的另一实施例的流程图。
图21图示了从检测到应用执行请求到最终执行的处理作为示例。
首先,电子设备在操作S2105中可检测对应用执行请求的接收。然后,电子设备在操作S2110中可判定是否要求存储器压缩。判定的标准可如下来各种各样地配置。如果应用的执行所要求的存储器大小大于可用存储器大小,或者可用存储器大小减小到预定值以下,则可执行压缩。
当判定要求压缩时,电子设备可前进到操作S2115以选择要压缩的应用。此外,电子设备在操作S2120中或者操作S2120之后可选择压缩执行者。如上所述,可根据CPU操作状态、要求的服务速率、功耗、电池状态等等来确定压缩执行者,并且当CPU处于空闲状态或者剩余电池电力低于预定值时,硬件加速器可执行压缩。
如果在操作S2120中判定CPU不适合于压缩执行者,则电子设备在操作S2125中可选择硬件加速器作为压缩执行者。相反,如果判定CPU适合作为压缩执行者,则电子设备可前进到操作S2130以选择CPU作为压缩执行者。
此外,电子设备在操作S2135中或者操作S2135之后可确定压缩单位。在此情况下,压缩单位可受压缩执行者、流量的量等等影响。当硬件加速器执行压缩时,或者在重流量的情况下,压缩可按多页单位执行。
电子设备在操作S2135中可判定单页压缩是否适当。当判定单页压缩适当时,电子设备可前进到操作S2145以选择单页压缩作为压缩单位。相反,当判定单页压缩不适当时,电子设备可前进到操作S2140以选择多页压缩作为压缩单位。
随后,电子设备在操作2150中或操作2150之后可选择压缩算法。可考虑到要求的服务速率和要求的压缩比率从可用算法的组中选择压缩算法。当要求高服务速率时,可选择具有高服务速率和低压缩比率的算法。
当在操作2150中选择了压缩算法时,电子设备在操作2155中可基于所选择的压缩执行者、压缩单位和压缩算法执行压缩。
根据本发明的实施例,选择操作的顺序和组合只是示例,并且可被修改。
在上述操作完成之后,电子设备可执行所请求的应用。
提供本说明书和附图中公开的实施例只是为了容易描述本发明并且帮助对本发明的透彻理解,而并不打算限制本发明的范围。因此,应当理解,除了本文公开的实施例以外,从本公开的技术构思得出的所有修改和变化或者经修改和改变的形式都落在本公开的范围内。
Claims (44)
1.一种用于压缩存储器的方法,该方法包括:
通过反映电子设备状态来识别关于压缩存储器的系统需求;
基于所识别的系统需求从用于压缩所述存储器中存储的数据的压缩执行者、压缩单位和压缩处理中选择至少一个压缩元素;以及
根据所选择的压缩元素来执行存储器压缩。
2.如权利要求1所述的方法,其中,所述系统需求包括正在进行的应用的特征、可用存储器大小、要通过存储器压缩确保的存储器大小、要求的服务速率、要求的压缩比率、要求的功耗、要求的延时、CPU操作状态或者电池状态中的至少一个。
3.如权利要求2所述的方法,其中,选择至少一个压缩元素包括选择压缩执行者,并且选择压缩执行者包括基于所述系统需求选择CPU或硬件加速器中的至少一个作为压缩执行者。
4.如权利要求3所述的方法,其中,当所述硬件加速器被选择为压缩执行者时,执行存储器压缩包括:
把要压缩的页存储在输入缓冲器中;
由所述硬件加速器对存储的页进行压缩;
把经压缩的页存储在输出缓冲器中;以及
把包括压缩结果在内的压缩相关信息存储在压缩信息存储空间中。
5.如权利要求2所述的方法,其中,选择至少一个压缩元素包括选择压缩单位,并且选择压缩单位包括基于所述系统需求选择单页压缩或多页压缩之一作为压缩单位。
6.如权利要求5所述的方法,其中,选择至少一个压缩元素包括:当多页压缩被选择为压缩单位时,选择硬件加速器作为压缩执行者。
7.如权利要求5所述的方法,其中,当多页压缩被选择为压缩单位时,执行存储器压缩包括:
把要压缩的页存储在输入缓冲器中;
判定所述输入缓冲器中存储的页的量是否超过预定阈值;
如果判定页的量超过预定阈值,则对所述输入缓冲器中存储的页进行压缩;以及
当压缩完成时,将压缩结果存储在压缩信息存储空间中。
8.如权利要求2所述的方法,其中,选择至少一个压缩元素包括选择压缩处理,并且选择压缩处理包括:
基于所述系统需求来配置要求的服务速率和要求的压缩比率;以及
选择压缩处理以使得压缩是在所配置的服务速率和压缩比率的范围中执行的。
9.一种包括存储器的电子设备,该电子设备包括:
存储数据的存储器;以及
CPU,该CPU进行控制以识别系统需求,基于所识别的系统需求从用于对所述存储器中存储的数据进行压缩的压缩执行者、压缩单位和压缩处理中选择至少一个压缩元素,并且根据所选择的压缩元素来执行存储器压缩。
10.如权利要求9所述的电子设备,其中,所述系统需求包括正在进行的应用的特征、可用存储器大小、要通过存储器压缩确保的存储器大小、要求的服务速率、要求的压缩比率、要求的功耗、要求的延时、CPU操作状态或者电池状态中的至少一个。
11.如权利要求10所述的电子设备,其中,所述CPU进行控制以基于所述系统需求选择所述CPU或硬件加速器中的至少一个作为压缩执行者。
12.如权利要求11所述的电子设备,其中,当所述硬件加速器被选择为压缩执行者时,所述CPU进行控制以把要压缩的页存储在输入缓冲器中,把经压缩的页存储在输出缓冲器中,并且把包括压缩结果在内的压缩相关信息存储在压缩信息存储空间中,并且所述硬件加速器对所述输入缓冲器中存储的页进行压缩。
13.如权利要求10所述的电子设备,其中,所述CPU进行控制以基于所述系统需求选择单页压缩或多页压缩之一作为压缩单位。
14.如权利要求13所述的电子设备,其中,当多页压缩被选择为压缩单位时,所述CPU进行控制以选择硬件加速器作为压缩执行者。
15.如权利要求13所述的电子设备,其中,当多页压缩被选择为压缩单位时,所述CPU进行控制以把要压缩的页存储在输入缓冲器中,判定所述输入缓冲器中存储的页的量是否超过预定阈值,并且如果判定页的量超过预定阈值,则对所述输入缓冲器中存储的页进行压缩。
16.如权利要求10所述的电子设备,其中,所述CPU基于所述系统需求来配置要求的服务速率和要求的压缩比率,并且选择所述压缩处理以使得压缩是在所配置的服务速率和压缩比率的范围中执行的。
17.一种用于压缩存储器的方法,该方法包括:
存储要压缩的页;
由CPU指令硬件加速器压缩所述页;
配置压缩单位以使得所述硬件加速器根据所述指令按多页压缩所述页;以及
根据所述配置由所述硬件加速器按多页单位执行压缩。
18.如权利要求17所述的方法,其中,存储所述页包括把所述要压缩的页存储在输入缓冲器中。
19.如权利要求18所述的方法,其中,执行压缩包括:当判定所述输入缓冲器中的页的量超过预定阈值时,对所述输入缓冲器中存储的页进行压缩。
20.一种包括存储器的电子设备,该电子设备包括:
存储数据的存储器;
CPU,该CPU指令硬件加速器对页进行压缩,并且进行控制以配置压缩单位以使得所述硬件加速器根据所述指令按多页对所述页进行压缩;以及
硬件加速器,该硬件加速器根据所述CPU的配置按多页单位执行所述压缩。
21.如权利要求20所述的电子设备,其中,所述CPU进行控制以把要压缩的页存储在输入缓冲器中。
22.如权利要求21所述的电子设备,其中,当判定所述输入缓冲器中的页的量超过预定阈值时,所述CPU使得所述硬件加速器对所述输入缓冲器中存储的页进行压缩。
23.一种用于压缩电子设备中的存储器的方法,该方法包括:
检测对于执行第一应用的请求;
判定所述第一应用的执行是否要求存储器压缩;
当要求存储器压缩时,对与所述电子设备的后台正在进行的应用相对应的存储器进行压缩;以及
执行所述第一应用。
24.如权利要求23所述的方法,还包括:
检测对于执行第二应用的请求;
判定所述第二应用是否在后台正在进行;
如果所述第二应用不是在后台正在进行,则判定所述第二应用的执行是否要求存储器压缩;
如果要求存储器压缩,则对与所述电子设备的后台正在进行的应用相对应的存储器进行压缩,并且执行所述第二应用;以及
如果不要求存储器压缩,则执行所述第二应用。
25.如权利要求24所述的方法,还包括:
如果所述第二应用在后台正在进行,则判定所述第二应用是否已被压缩;
如果所述第二应用已被压缩,则判定所述第二应用的执行是否要求存储器压缩;
如果要求存储器压缩,则对与所述电子设备的后台正在进行的应用相对应的存储器进行压缩,并且执行所述第二应用;以及
如果不要求存储器压缩,则对经压缩的第二应用进行解压缩,并且执行所述第二应用。
26.如权利要求25所述的方法,还包括:如果所述第二应用尚未被压缩,则再执行所述第二应用。
27.如权利要求23所述的方法,其中,在判定中,当所述第一应用的执行所要求的存储器大小大于根据在后台正在进行的至少一个应用的可用存储器大小时,判定要求存储器压缩。
28.如权利要求23所述的方法,其中,压缩存储器包括根据压缩的优先列表、与所述第一应用的相关性或者应用的使用频率中的至少一个来选择要压缩的应用。
29.一种电子设备,包括:
存储器;以及
控制器,该控制器进行控制以检测对于执行第一应用的请求,判定所述第一应用的执行是否要求存储器压缩,当要求存储器压缩时,对与所述电子设备的后台正在进行的应用相对应的存储器进行压缩,并且执行所述第一应用。
30.如权利要求29所述的电子设备,其中,所述控制器进行控制:检测对于执行第二应用的请求;判定所述第二应用是否在后台正在进行;如果所述第二应用不是在后台正在进行,则判定所述第二应用的执行是否要求存储器压缩;如果要求存储器压缩,则对与所述电子设备的后台正在进行的应用相对应的存储器进行压缩,并且执行所述第二应用;以及如果不要求存储器压缩,则执行所述第二应用。
31.如权利要求30所述的电子设备,其中,所述控制器进行控制:如果所述第二应用在后台正在进行,则判定所述第二应用是否已被压缩;如果所述第二应用已被压缩,则判定所述第二应用的执行是否要求存储器压缩;如果要求存储器压缩,则对与所述电子设备的后台正在进行的应用相对应的存储器进行压缩,并且执行所述第二应用;以及如果不要求存储器压缩,则对经压缩的第二应用进行解压缩,并且执行所述第二应用。
32.如权利要求31所述的电子设备,其中,所述控制器进行控制,如果所述第二应用尚未被压缩,则再执行所述第二应用。
33.如权利要求29所述的电子设备,其中,当所述第一应用的执行所要求的存储器大小大于根据在后台正在进行的至少一个应用的可用存储器大小时,所述控制器判定要求存储器压缩。
34.如权利要求29所述的电子设备,其中,所述控制器根据压缩的优先列表、与所述第一应用的相关性或者应用的使用频率中的至少一个来选择要压缩的应用。
35.一种用于对电子设备中的存储器进行压缩的方法,在所述电子设备中安装了多个应用并且两个或更多个应用可被同时执行,所述方法包括:
检测对于执行第一应用的请求;
将所述第一应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;以及
作为比较的结果,如果所述第一应用的执行所要求的存储器大小大于可用存储器大小,则对与在后台正在进行的至少一个应用相对应的存储器进行压缩。
36.如权利要求35所述的方法,还包括:
检测对于执行第二应用的请求;
判定所述第二应用是否在后台正在进行;
如果所述第二应用不是在后台正在进行,则将所述第二应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;以及
作为比较的结果,如果所述第二应用的执行所要求的存储器大小大于可用存储器大小,则对与在后台正在进行的至少一个应用相对应的存储器进行压缩。
37.如权利要求36所述的方法,还包括:
如果所述第二应用在后台正在进行,则判定与所述第二应用相对应的存储器是否已被压缩;
如果与所述第二应用相对应的存储器已被压缩,则将所述第二应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;
作为比较的结果,如果所述第二应用的执行所要求的存储器大小大于可用存储器大小,则对与在所述电子设备的后台正在进行的至少一个应用相对应的存储器进行压缩,并且执行所述第二应用;以及
作为比较的结果,如果所述第二应用的执行所要求的存储器大小小于可用存储器大小,则对经压缩的第二应用进行解压缩,并且执行所述第二应用。
38.如权利要求37所述的方法,还包括:如果所述第二应用尚未被压缩,则再执行所述第二应用。
39.如权利要求35所述的方法,其中,压缩存储器包括根据压缩的优先列表、与所述第一应用的相关性或者应用的使用频率中的至少一个来选择要压缩的应用。
40.一种电子设备,其中安装了多个应用并且两个或更多个应用可被同时执行,所述电子设备包括:
存储器;以及
控制器,该控制器进行控制:当检测到对于执行第一应用的请求时,将所述第一应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;并且作为比较的结果,如果所述第一应用的执行所要求的存储器大小大于可用存储器大小,则对与在后台正在进行的至少一个应用相对应的存储器进行压缩。
41.如权利要求40所述的电子设备,其中,所述控制器进行控制:当检测到对于执行第二应用的请求时,判定所述第二应用是否在后台正在进行;如果所述第二应用不是在后台正在进行,则将所述第二应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;并且作为比较的结果,如果所述第二应用的执行所要求的存储器大小大于可用存储器大小,则对与在后台正在进行的至少一个应用相对应的存储器进行压缩。
42.如权利要求41所述的电子设备,其中,所述控制器进行控制:如果所述第二应用在后台正在进行,则判定与所述第二应用相对应的存储器是否已被压缩;如果与所述第二应用相对应的存储器已被压缩,则将所述第二应用的执行所要求的存储器大小与根据在后台正在进行的至少一个应用的可用存储器大小相比较;作为比较的结果,如果所述第二应用的执行所要求的存储器大小大于可用存储器大小,则对与所述电子设备的后台正在进行的至少一个应用相对应的存储器进行压缩,并且执行所述第二应用;以及作为比较的结果,如果所述第二应用的执行所要求的存储器大小小于可用存储器大小,则对经压缩的第二应用进行解压缩,并且执行所述第二应用。
43.如权利要求43所述的电子设备,其中,如果所述第二应用尚未被压缩,则所述控制器再执行所述第二应用。
44.如权利要求40所述的电子设备,其中,所述控制器根据压缩的优先列表、与所述第一应用的相关性或者应用的使用频率中的至少一个来选择要压缩的应用。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0124885 | 2013-10-18 | ||
KR20130124885 | 2013-10-18 | ||
KR10-2013-0128848 | 2013-10-28 | ||
KR1020130128848A KR102114388B1 (ko) | 2013-10-18 | 2013-10-28 | 전자 장치의 메모리 압축 방법 및 장치 |
PCT/KR2014/009849 WO2015057031A1 (ko) | 2013-10-18 | 2014-10-20 | 전자 장치의 메모리 압축 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104737137A true CN104737137A (zh) | 2015-06-24 |
CN104737137B CN104737137B (zh) | 2019-07-12 |
Family
ID=53037356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480002742.6A Active CN104737137B (zh) | 2013-10-18 | 2014-10-20 | 电子设备的存储器压缩方法及其装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10037143B2 (zh) |
EP (1) | EP3059678B1 (zh) |
KR (1) | KR102114388B1 (zh) |
CN (1) | CN104737137B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068875A (zh) * | 2015-08-12 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种智能数据处理方法及装置 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
WO2017128032A1 (zh) * | 2016-01-26 | 2017-08-03 | 华为技术有限公司 | 一种数据处理方法以及数据处理设备 |
WO2018000128A1 (en) * | 2016-06-27 | 2018-01-04 | Intel Corporation | Dynamic configuration of compressed virtual memory |
CN112424799A (zh) * | 2018-07-19 | 2021-02-26 | 三星电子株式会社 | 电子装置及其控制方法 |
CN112668033A (zh) * | 2019-10-15 | 2021-04-16 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置及电子设备 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114638B2 (en) * | 2014-12-15 | 2018-10-30 | Cisco Technology, Inc. | Command message generation and execution using a machine code-instruction |
KR102535825B1 (ko) * | 2015-06-03 | 2023-05-23 | 삼성전자주식회사 | 시스템 온 칩 및 시스템 온 칩의 동작 방법 |
US9848242B2 (en) * | 2015-09-30 | 2017-12-19 | Rovi Guides, Inc. | Systems and methods for adjusting the priority of media assets scheduled to be recorded |
CN105404551A (zh) * | 2015-12-11 | 2016-03-16 | Tcl移动通信科技(宁波)有限公司 | 移动终端的应用前后台切换处理方法、系统及移动终端 |
US10346043B2 (en) * | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
JP2017138853A (ja) * | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置およびプログラム |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US20170264491A1 (en) * | 2016-03-12 | 2017-09-14 | Denis DeRuijter | Intent based controller for provisioning a network |
US11336294B2 (en) * | 2016-06-10 | 2022-05-17 | Apple Inc. | Hybrid, adaptive virtual memory compression |
WO2018084576A1 (en) | 2016-11-03 | 2018-05-11 | Samsung Electronics Co., Ltd. | Electronic device and controlling method thereof |
CN110419027B (zh) | 2017-03-22 | 2023-12-29 | 三星电子株式会社 | 管理应用的方法和使用该方法的计算设备 |
US10430246B2 (en) * | 2018-01-18 | 2019-10-01 | International Business Machines Corporation | Virtualized and synchronous access to hardware accelerators |
US11303296B2 (en) * | 2018-06-26 | 2022-04-12 | International Business Machines Corporation | Hardware accelerated compression of instrumentation data |
KR20200034499A (ko) * | 2018-09-21 | 2020-03-31 | 삼성전자주식회사 | 메모리 장치와 통신하는 데이터 처리 장치 및 방법 |
US11169853B2 (en) * | 2018-12-28 | 2021-11-09 | Intel Corporation | Technologies for providing dynamic selection of edge and local accelerator resources |
KR20210124607A (ko) * | 2020-04-06 | 2021-10-15 | 에스케이하이닉스 주식회사 | 데이터 저장 시스템 및 컨트롤러의 동작 방법 |
CN116107742A (zh) * | 2021-06-10 | 2023-05-12 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
US20220413909A1 (en) * | 2021-06-25 | 2022-12-29 | Intel Corporation | Techniques to enable quality of service control for an accelerator device |
US11943296B2 (en) | 2022-05-31 | 2024-03-26 | Red Hat, Inc. | Workload-based cache compression in a distributed storage system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1174358A (zh) * | 1996-06-05 | 1998-02-25 | 太阳微系统有限公司 | 减少运行时间存储空间需求的计算机系统和方法 |
US20080005190A1 (en) * | 2006-06-28 | 2008-01-03 | Nokia Corporation | System, Method, Apparatus and Computer Program Product for Providing Resource Reclamation in a Virtual Machine |
CN101390043A (zh) * | 2005-07-01 | 2009-03-18 | 美国日本电气实验室公司 | 嵌入式系统用的存储器体系结构 |
CN101405704A (zh) * | 2006-03-23 | 2009-04-08 | 国际商业机器公司 | 信息处理系统中的存储器压缩 |
CN102193748A (zh) * | 2010-03-18 | 2011-09-21 | 株式会社东芝 | 控制器、数据存储装置以及程序产品 |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04359315A (ja) * | 1991-06-05 | 1992-12-11 | Matsushita Electric Ind Co Ltd | データ圧縮制御装置及びデータ復元制御装置 |
US5418910A (en) * | 1992-05-05 | 1995-05-23 | Tandy Corporation | Dual buffer cache system for transferring audio compact disk subchannel information to a computer |
US5357614A (en) * | 1992-09-17 | 1994-10-18 | Rexon/Tecmar, Inc. | Data compression controller |
US5539865A (en) * | 1992-11-10 | 1996-07-23 | Adobe Systems, Inc. | Method and apparatus for processing data for a visual-output device with reduced buffer memory requirements |
JP2840511B2 (ja) * | 1992-12-10 | 1998-12-24 | 富士通株式会社 | 磁気テープ装置を用いたサブシステムのエラー回復処理装置及び方法 |
JP3809209B2 (ja) * | 1994-12-08 | 2006-08-16 | キヤノン株式会社 | 印刷装置及びデータ制御方法 |
US5765157A (en) * | 1996-06-05 | 1998-06-09 | Sun Microsystems, Inc. | Computer system and method for executing threads of execution with reduced run-time memory space requirements |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
US6910210B1 (en) * | 1998-11-24 | 2005-06-21 | Microsoft Corp. | System and method for terminating applications |
US6819271B2 (en) * | 1999-01-29 | 2004-11-16 | Quickshift, Inc. | Parallel compression and decompression system and method having multiple parallel compression and decompression engines |
US20010054131A1 (en) * | 1999-01-29 | 2001-12-20 | Alvarez Manuel J. | System and method for perfoming scalable embedded parallel data compression |
US6885319B2 (en) * | 1999-01-29 | 2005-04-26 | Quickshift, Inc. | System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms |
US6360300B1 (en) * | 1999-08-31 | 2002-03-19 | International Business Machines Corporation | System and method for storing compressed and uncompressed data on a hard disk drive |
JP2001136352A (ja) * | 1999-11-04 | 2001-05-18 | Canon Inc | 画像入力装置及びその制御方法 |
US6310563B1 (en) * | 2000-05-12 | 2001-10-30 | International Business Machines Corporation | Method and apparatus for enhanced decompressor parsing |
KR100910972B1 (ko) * | 2002-12-07 | 2009-08-05 | 엘지전자 주식회사 | 대화형 광디스크 장치에서의 재생 제어방법 |
US7047382B2 (en) * | 2000-11-29 | 2006-05-16 | Quickshift, Inc. | System and method for managing compression and decompression and decompression of system memory in a computer system |
KR100777271B1 (ko) * | 2001-02-28 | 2007-11-20 | 엘지전자 주식회사 | 디지털 시스템의 메모리 관리 방법 |
US7194140B2 (en) * | 2001-11-05 | 2007-03-20 | Canon Kabushiki Kaisha | Image processing apparatus and method which compresses image data of each region using a selected encoding method |
US6640283B2 (en) * | 2002-01-16 | 2003-10-28 | Hewlett-Packard Development Company, L.P. | Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size |
US6775751B2 (en) | 2002-08-06 | 2004-08-10 | International Business Machines Corporation | System and method for using a compressed main memory based on degree of compressibility |
US7188130B2 (en) * | 2003-09-30 | 2007-03-06 | International Business Machines Corporation | Automatic temporary precision reduction for enhanced compression |
US7188227B2 (en) * | 2003-09-30 | 2007-03-06 | International Business Machines Corporation | Adaptive memory compression |
US20070005911A1 (en) * | 2005-07-01 | 2007-01-04 | Nec Laboratories America, Inc. | Operating System-Based Memory Compression for Embedded Systems |
US20070005625A1 (en) | 2005-07-01 | 2007-01-04 | Nec Laboratories America, Inc. | Storage architecture for embedded systems |
US20070088920A1 (en) | 2005-10-19 | 2007-04-19 | Philip Garcia | Managing data for memory, a data store, and a storage device |
JP2008042401A (ja) * | 2006-08-03 | 2008-02-21 | Canon Inc | 情報処理装置、情報処理方法 |
KR100852729B1 (ko) | 2006-09-12 | 2008-08-19 | 이너비트 주식회사 | 데이타 압축 관리장치 |
KR100849305B1 (ko) | 2006-11-24 | 2008-07-29 | 삼성전자주식회사 | 데이터를 압축하여 관리하는 메모리 및 그 방법 |
US8510743B2 (en) * | 2007-10-31 | 2013-08-13 | Google Inc. | Terminating computer applications |
JP4917561B2 (ja) * | 2008-03-18 | 2012-04-18 | 株式会社リコー | 画像処理装置 |
US20090254705A1 (en) * | 2008-04-07 | 2009-10-08 | International Business Machines Corporation | Bus attached compressed random access memory |
TW201037516A (en) * | 2009-04-14 | 2010-10-16 | Inventec Corp | Method of accessing a memory |
US8458431B2 (en) * | 2009-11-03 | 2013-06-04 | International Business Machines Corporation | Expanding memory size |
JP2011128792A (ja) * | 2009-12-16 | 2011-06-30 | Toshiba Corp | メモリ管理装置 |
US8156306B1 (en) * | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8386740B2 (en) | 2010-03-29 | 2013-02-26 | International Business Machines Corporation | Modeling memory compression |
US8484405B2 (en) | 2010-07-13 | 2013-07-09 | Vmware, Inc. | Memory compression policies |
US8489824B2 (en) | 2010-09-20 | 2013-07-16 | International Business Machines Corporation | Selective memory compression for multi-threaded applications |
KR20120054699A (ko) * | 2010-11-22 | 2012-05-31 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 데이터 저장 시스템 및 그 방법 |
KR101759658B1 (ko) | 2011-02-23 | 2017-07-19 | 삼성전자 주식회사 | 메모리 장치 및 메모리 시스템 |
KR101861742B1 (ko) | 2011-08-30 | 2018-05-30 | 삼성전자주식회사 | 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법 |
KR101862341B1 (ko) | 2012-01-09 | 2018-05-30 | 삼성전자주식회사 | 데이터 압축 기능을 갖는 데이터 저장 장치 |
US9007239B1 (en) * | 2012-07-02 | 2015-04-14 | Amazon Technologies, Inc. | Reduction of memory consumption |
KR20140035082A (ko) * | 2012-09-13 | 2014-03-21 | 삼성전자주식회사 | 메모리 관리방법 |
US8898118B2 (en) * | 2012-11-30 | 2014-11-25 | International Business Machines Corporation | Efficiency of compression of data pages |
US9727246B2 (en) * | 2013-05-22 | 2017-08-08 | Hitachi, Ltd. | Memory device, computer system, and method of controlling memory device |
US10146435B2 (en) * | 2013-07-31 | 2018-12-04 | Hitachi, Ltd. | Storage system and data write method |
US9514146B1 (en) * | 2013-09-26 | 2016-12-06 | Emc Corporation | System and method for improving data compression of a storage system in an online manner |
US10277248B2 (en) * | 2015-07-07 | 2019-04-30 | Tidal Systems, Inc. | Compression engine with consistent throughput |
US10404836B2 (en) * | 2016-12-26 | 2019-09-03 | Intel Corporation | Managing state data in a compression accelerator |
US10224957B1 (en) * | 2017-11-27 | 2019-03-05 | Intel Corporation | Hash-based data matching enhanced with backward matching for data compression |
-
2013
- 2013-10-28 KR KR1020130128848A patent/KR102114388B1/ko active IP Right Grant
-
2014
- 2014-10-20 US US14/436,344 patent/US10037143B2/en active Active
- 2014-10-20 EP EP14851428.4A patent/EP3059678B1/en active Active
- 2014-10-20 CN CN201480002742.6A patent/CN104737137B/zh active Active
-
2018
- 2018-06-26 US US16/018,790 patent/US10895987B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1174358A (zh) * | 1996-06-05 | 1998-02-25 | 太阳微系统有限公司 | 减少运行时间存储空间需求的计算机系统和方法 |
CN101390043A (zh) * | 2005-07-01 | 2009-03-18 | 美国日本电气实验室公司 | 嵌入式系统用的存储器体系结构 |
CN101405704A (zh) * | 2006-03-23 | 2009-04-08 | 国际商业机器公司 | 信息处理系统中的存储器压缩 |
US20080005190A1 (en) * | 2006-06-28 | 2008-01-03 | Nokia Corporation | System, Method, Apparatus and Computer Program Product for Providing Resource Reclamation in a Virtual Machine |
CN102193748A (zh) * | 2010-03-18 | 2011-09-21 | 株式会社东芝 | 控制器、数据存储装置以及程序产品 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068875A (zh) * | 2015-08-12 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种智能数据处理方法及装置 |
WO2017128032A1 (zh) * | 2016-01-26 | 2017-08-03 | 华为技术有限公司 | 一种数据处理方法以及数据处理设备 |
US11061857B2 (en) | 2016-01-26 | 2021-07-13 | Huawei Technologies, Co., Ltd. | Data processing method and device |
WO2018000128A1 (en) * | 2016-06-27 | 2018-01-04 | Intel Corporation | Dynamic configuration of compressed virtual memory |
US10635337B2 (en) | 2016-06-27 | 2020-04-28 | Intel Corporation | Dynamic configuration of compressed virtual memory |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN112424799A (zh) * | 2018-07-19 | 2021-02-26 | 三星电子株式会社 | 电子装置及其控制方法 |
CN112668033A (zh) * | 2019-10-15 | 2021-04-16 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US10037143B2 (en) | 2018-07-31 |
EP3059678B1 (en) | 2022-09-21 |
US10895987B2 (en) | 2021-01-19 |
EP3059678A4 (en) | 2017-06-21 |
EP3059678A1 (en) | 2016-08-24 |
US20150339059A1 (en) | 2015-11-26 |
KR20150045348A (ko) | 2015-04-28 |
US20180300063A1 (en) | 2018-10-18 |
KR102114388B1 (ko) | 2020-06-05 |
CN104737137B (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104737137A (zh) | 电子设备的存储器压缩方法及其装置 | |
US11531625B2 (en) | Memory management method and apparatus | |
US9792227B2 (en) | Heterogeneous unified memory | |
JP6691669B2 (ja) | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム | |
WO2015081470A1 (zh) | 数据处理设备和数据处理的方法 | |
CN111966492B (zh) | 内存回收方法、装置、电子设备及计算机可读存储介质 | |
CN110765031B (zh) | 数据存储方法、装置、移动终端及存储介质 | |
CN114185494B (zh) | 内存匿名页的处理方法、电子设备及可读存储介质 | |
CN108108089B (zh) | 一种图片加载方法及装置 | |
WO2019196878A1 (zh) | 一种内存管理的方法以及相关设备 | |
WO2021057622A1 (zh) | 内存回收方法、装置、电子设备及存储介质 | |
KR102014083B1 (ko) | 단말기의 메모리 관리방법 및 장치 | |
WO2017006675A1 (ja) | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム | |
CN107241444B (zh) | 一种分布式缓存数据管理系统、方法及装置 | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
CN110554837A (zh) | 易疲劳存储介质的智能交换 | |
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
CN112799595A (zh) | 数据处理方法、设备及存储介质 | |
WO2021147330A1 (zh) | 内存交换的方法、装置 | |
CN111628895B (zh) | 一种配置数据同步方法、装置、设备及可读存储介质 | |
CN111078405B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN114281724A (zh) | 数据传输方法、装置及电子设备 | |
EP4145295A1 (en) | Memory compression method of electronic device and apparatus thereof | |
CN112995613B (zh) | 一种分析资源管理方法及装置 | |
CN115509958A (zh) | 内存页的缓存方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |