CN101405704A - 信息处理系统中的存储器压缩 - Google Patents

信息处理系统中的存储器压缩 Download PDF

Info

Publication number
CN101405704A
CN101405704A CNA2007800101477A CN200780010147A CN101405704A CN 101405704 A CN101405704 A CN 101405704A CN A2007800101477 A CNA2007800101477 A CN A2007800101477A CN 200780010147 A CN200780010147 A CN 200780010147A CN 101405704 A CN101405704 A CN 101405704A
Authority
CN
China
Prior art keywords
processor
processor core
information
compressed information
compression
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.)
Pending
Application number
CNA2007800101477A
Other languages
English (en)
Inventor
M·K·克施温德
B·米诺尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101405704A publication Critical patent/CN101405704A/zh
Pending legal-status Critical Current

Links

Images

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/04Addressing variable-length words or parts of words
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

所披露的异构处理器压缩信息以便更有效地将所述信息存储在连接到所述处理器的系统存储器中。所述异构处理器包括连接到一个或多个处理器核心的通用处理器核心,所述一个或多个处理器核心显示的体系结构不同于所述通用处理器核心的体系结构。在一个实施例中,所述处理器将除所述通用处理器核心之外的某个处理器核心专用于存储器压缩和解压缩任务。在另一个实施例中,系统存储器存储已压缩信息和未压缩信息两者。

Description

信息处理系统中的存储器压缩
技术领域
本发明一般地涉及存储器系统,具体地说,涉及采用使用存储器压缩的存储器系统的信息处理系统。
背景技术
存储器带宽和存储器容量是现代信息处理系统体系结构中的主要关注对象。存储器的成本可以构成信息处理系统总体成本的非常重要部分。此外,存储器系统越来越难以传送高性能信息处理系统所需的数据量。出现这种情况是因为诸如功耗和可用于引脚布置的存储器模块面积之类的物理约束限制了存储器模块的信号速度和信号引脚数量。
在系统存储器体系结构的另一方面中,存储器容量以至少两种方式影响信息处理系统设计和性能。低成本信息处理系统在此类系统中包括的物理存储器数量很有限。在高端信息处理系统中,性能随在诸如主存储器之类的低等待时间存储装置中存储高数据量的能力而提高。
数据压缩技术为这些设计难题提供了有吸引力的解决方案。更具体地说,对于给定数量的物理存储容量,数据压缩可以增加有效的存储器大小。遗憾的是,用于存储器系统的常规数据压缩方法往往涉及诸如专用芯片组之类的昂贵和高复杂性电路。例如,此类方法可以采用使用存储器压缩的专用存储器控制器,以便与基本上未修改的系统体系结构一起使用。为了加速压缩和解压缩,此类常规存储器系统可以将未压缩数据存储在高速缓冲存储器中,而将已压缩数据存储在主系统存储器中。在此情况下,专用存储器控制器控制在高速缓冲存储器与主系统存储器之间传送的数据的压缩和解压缩。此类专用存储器控制器将导致额外的系统复杂性和成本。
发明内容
相应地,在一个实施例中,披露了一种用于压缩和解压缩异构多核处理器中的信息的方法。所述方法包括由显示第一体系结构的第一处理器核心处理信息以及由显示第二体系结构的第二处理器核心处理信息。所述方法还包括由所述第二处理器核心压缩要由所述异构多核处理器发送到系统存储器的信息,以便作为已压缩信息存储在所述系统存储器中。所述方法还包括由所述第二处理器核心解压缩从所述系统存储器接收的已压缩信息以便由所述异构处理器用作未压缩信息。在一个实施例中,所述第一体系结构是通用处理器核心,而所述第二体系结构是执行由所述第一处理器核心分配的任务的专用处理器核心。在另一个实施例中,所述方法包括由所述异构多核处理器将已压缩信息和未压缩信息两者存储在所述系统存储器中。
在另一个实施例中,披露了一种包括显示第一体系结构的第一处理器核心的异构多核处理器。所述处理器还包括显示第二体系结构的第二处理器核心,所述第二处理器核心压缩信息以提供已压缩信息并且解压缩已压缩信息以提供未压缩信息。所述处理器还包括将所述第一处理器核心连接到所述第二处理器核心的总线,所述总线适于将所述已压缩信息和未压缩信息传入和传出系统存储器。在一个实施例中,所述第一体系结构是通用处理器核心,而所述第二体系结构是执行由所述第一处理器核心分配的任务的专用处理器核心。在另一个实施例中,所述异构多核处理器将已压缩信息和未压缩信息两者存储在所述系统存储器中。
附图说明
现在将仅通过实例的方式并参考附图描述本发明的优选实施例,这些附图是:
图1示出了采用使用所披露的存储器压缩技术的处理器的信息处理系统(IHS)的方块图;
图2示出了已分区的系统存储器的表示;
图3是示出了存储器解压缩方法的流程图;
图4是示出了存储器解压缩方法的更多方面的流程图;
图5是示出了存储器压缩方法的流程图;
图6A示出了提供有关一种压缩信息方法的其他详细信息的流程图;
图6B示出了提供有关一种解压缩信息方法的其他详细信息的流程图;
图7示出了用于动态修改已压缩存储器与未压缩存储器的比率以增大压缩的方法的流程图;以及
图8示出了用于动态修改已压缩存储器与未压缩存储器的比率以减小压缩的方法的流程图。
具体实施方式
信息处理系统(IHS)中的专用压缩引擎往往复杂且昂贵。使用存储器压缩的IHS可以采取桌上型计算机、服务器、手提式计算机、便携式计算机、笔记本计算机、主机、小型计算机或其他形状因数IHS的形式。例如,使用存储器压缩的IHS可以采取其他形状因数,例如个人数字助理(PDA)、游戏设备、手提式电话设备、通信设备或其他包括处理器和存储器的设备。使用存储器压缩的定制存储器控制器是专用压缩引擎的一个实例。IBM存储器扩展技术(MXT)采用此类专用压缩引擎-Tremaine等人,“IBM Memory Expansion Technology(MXT)”(IBM存储器扩展技术(MXT),IBM JRD,第45卷,第2期,2001年3月)。在Tremaine等人的披露中,两个处理器共享连接到主存储器的公共共享L3高速缓冲存储器。主系统存储器存储已压缩数据,而共享高速缓冲存储器存储未压缩数据。当数据在共享高速缓存和主存储器之间移动时,特殊的逻辑密集型压缩器和解压缩器硬件引擎将压缩和解压缩数据。如上所述,此类专用存储器压缩系统往往复杂且昂贵。
图1示出了采用使用所披露的存储器压缩技术的处理器105的信息处理系统100。在一个实施例中,处理器105采用出版物“Cell BroadbandEngine Architecture(单元宽带引擎体系结构)”(版本1.0,由IBM公司、索尼和东芝开发,2005年8月8日,所披露的内容在此完全引入作为参考)中描述的处理器体系结构。在一个实施例中,处理器105是异构处理器,即这样的处理器:其包括至少一个具有第一指令集的通用处理器单元以及至少一个具有不同于通用处理器的体系结构和指令集的其他处理器单元。例如,所述其他处理器可以是专用处理器单元或专用处理器。在图1所示的特定实施例中,处理器105包括通用处理器单元110,例如采用RISC指令集的Power PC处理器元件(PPE),通用处理器单元110通过元件互连总线(EIB)115连接到八个采用单指令多数据(SIMD)指令集的协处理器元件(SPE),即处理器121、122、...、128。更具体地说,PPE 110包括PowerPC处理器单元(PPU)130,后者具有连接到其中的L1高速缓冲存储器134的处理器单元(PXU)132。L2高速缓冲存储器136如所示出的那样连接到L1高速缓冲存储器134。存储器接口控制器140将EIB 115连接到系统存储器200。总线接口控制器(BIC)145将处理器105连接到I/O集线器150。I/O集线器150连接到诸如显示器162、介质驱动器164、网络接口166之类的I/O设备或其他I/O设备168。在一个实施例中,介质驱动器164为操作系统、软件应用和其他信息提供非易失性存储。网络接口166在IHS 100和其他IHS之间提供有线或无线通信。
在一个实施例中,PPE 110控制处理器任务,而SPE 121、122、...、128执行由PPE 110分配的数据密集型处理任务。SPE 121-128可以用作诸如信息压缩、信息解压缩之类的任务以及其他信息处理任务的加速器。代表性SPE 121包括至少一个协处理器单元(SPU)155。SPU 155包括连接到本地存储装置(LS)157的协处理单元(SXU)156。SPU 155还包括至少一个如所示出的那样连接到元件互连总线(EIB)115的协同存储器流控制(SMF)158。其余的SPE 122、123、...、128包括与代表性SPE 121的结构类似的结构。在一个实施例中,处理器105是异构多核处理器,即包括两种不同类型处理器单元的处理器。在一个实施例中,PPE 110是通用灵活处理器核心,而从SPE 121不处理外部中断并且不处理到存储器的完全可寻址性的角度,代表性SPE 121可以更加专用。换句话说,SPE 121可以访问它自己的本地存储存储器157,但在访问存储器200时必须请求PPE 110的帮助。
图2示出了系统存储器200的表示。IHS 100将系统存储器200分为已压缩存储器页205和未压缩存储器页210。系统存储器200还包括页表,所述页表包括有关系统存储器200中已压缩和未压缩信息的位置的信息。因此,图2提供了提供存储器压缩的IHS 100中的系统存储器200的存储器图。在一个实施例中,同一存储器芯片200存储已压缩和未压缩数据两者。在公共存储器200中存储已压缩和未压缩数据有利地消除了针对每种类型数据维护单独存储器区域的成本。处理器105将常用数据以未压缩形式存储在系统存储器200中,并且还将不常用数据以压缩形式存储在系统存储器200中。此技术减少了存储器等待时间,即访问存储器中的数据所需的时间。如以下更详细讨论的,IHS 100采用多种可接受的算法之一来压缩和解压缩数据。例如,IHS 100可以采用Huffman编码[Huffman 52]、Lempel-Ziv(LZ)数据压缩[Ziv 77、78]和算术编码[Rissanen 76]算法中的一种或多种来压缩数据,如以下出版物中所述:[Huffman 52],Huffman,D.A.,A Method for the Construction of Minimum Redundancy Codes(用于构造最小冗余代码的方法),IRE会议记录,第40卷,1098-1102页,1952年;[Ziv 77],Ziv,J.和A.Lempel,A Universal Algorithm for Sequentialdata Compression(用于顺序数据压缩的通用算法),IEEE信息理论学报,第IT-23卷,第3期,337-343页,1977年;[Ziv 78],Ziv,J.和A.Lempel,Compression of Individual Sequence via Variable-Rate Coding(通过可变速率编码压缩单个序列),IEEE信息理论学报,第IT-24卷,第5期,530-536页,1978年;以及[Rissanen 76],Rissanen,J.J.,Generalized KraftInequality and Arithmetic Coding(通用克拉夫特不等式和算术编码),IBMJRD,第20卷,第3期,198-203页,1976年,所有这些内容在此完全引入作为参考。本领域的技术人员将理解,处理器105可以采用当前现有的或未来的压缩算法以执行压缩和解压缩操作。
在一个实施例中,诸如SPE 121之类的专用或可编程核心为诸如PPE110之类的通用处理器核心提供压缩服务。更具体地说,SPE 121可以通过用作可编程加速器或定制加速器来提供压缩服务。在一个实施例中,SPE是高度优化的数据处理引擎,可提供用于在处理器105内提供压缩和解压缩服务的平台。至少一个SPE提供压缩服务。在一个实施例中,SPE 121的压缩加速器仅为PPE提供压缩服务。在其他实施例中,一个SPE中的压缩加速器为PPE 110和处理器105中的其他处理器核心提供压缩服务。在一个实施例中,单个SPE可以为整个信息处理系统(IHS)100提供压缩服务。但是,SPE 121-128包括比PPE 110更宽的数据路径,并且SPE擅长执行数据处理密集型任务,例如压缩、解压缩、加密、解密、编码和解码MPEG媒体流。
图3是示出由SPE 121中的加速器实现的用于在PPE 110控制下处理存储器解压缩任务的方法的流程图。在此实例中,专用SPE 121用作加速器以协助访问以压缩形式存储在系统存储器200中的页。过程流开始于开始方块300。随后,按照方块305,软件应用中的线程或操作系统(OS)中的线程尝试访问系统存储器。例如,PPE 110在执行应用或OS中的线程期间尝试访问存储器。作为响应,PXU 132中包含的存储器管理单元(MMU)和SMF 158中包含的存储器管理单元之一尝试执行页转换以访问系统存储器200中的被请求数据。决策方块310执行测试以判定页转换是否成功。如果页转换成功,则存储器200包括未压缩格式的被请求数据,并且按照方块315,对被请求数据的存储器访问继续而无需解压缩。但是,如果由于被请求页在页表215中没有页表表项而使页转换不成功,则或者是被请求数据以压缩格式存在于存储器200中,或者是存在实际的页错误。在优选实施例中,处理器105发出异常并且控制传递给异常处理机软件组件。为了判定被请求数据是以压缩格式存在于存储器200中还是存在实际页错误,决策方块320执行测试以判定是否可以以压缩格式提供被请求数据。更具体地说,PXU 132可以执行用于执行此测试的软件程序。如果决策方块320判定不能以压缩格式提供被请求数据,则按照方块325,PPE 110执行适合于无法从存储器提供数据的情况的操作。例如,如果当前无法以未压缩格式提供数据,则数据可能存在于盘或IHS 100内的其他非易失性存储装置164中。在此情况下,IHS 100通过请求非易失性存储装置164中包括被请求数据的页来访问非易失性存储装置中的被请求数据。在页错误处理的另一方面,处理器105初始化与零初始化的数据对应的页,以响应实现页错误服务的异常处理机软件组件的页错误。在页错误处理的再一方面,应用访问非法(即,被保护)地址,并且发出错误通知。
但是,如果决策方块320判定当前可在存储器200中以压缩格式提供被请求数据,则SPE 121-128之一用作压缩/解压缩加速器以解压缩系统存储器200中的被请求的压缩数据。在此实例中,SPE 121专用于压缩/解压缩活动并且用作加速器来执行这些活动。在一个实施例中,PPE 110引导系统存储器200将包括被请求的压缩数据的已压缩页的副本发送到SPE121。然后按照方块330,PPE 110可以指示SPE 121用作加速器以至少解压缩此选择的已压缩页。为了解压缩已压缩信息,SPE 121使用SPE 121先前使用的任意算法来压缩此信息。在一个实施例中,SPE 121还解压缩在选定已压缩页之前和选定已压缩页之后的一个或多个页,以便稍后如果SPE 121需要这些页时可以提供它们。在SPE 121执行解压缩活动的同时,PPE 110可自由地执行其他计算活动。
在解压缩被请求信息之后或在此类解压缩期间,按照方块335,PPE121调度下一个要执行的线程。
当SPE 121提供的加速器完成当前被请求数据的解压缩时,SPE 121发出数据已解压缩通知。决策方块340执行测试以判定SPE 121是否发出数据已解压缩通知。如果决策方块340确定SPE 121尚未发出数据已解压缩通知,则过程流继续返回调度PPE 110应执行的下一个线程的方块335。在一个实施例中,PXU 132包括实现方块305的存储器访问过程的加载/存储单元(LSU,未示出)。此LSU也可以实现方块310的页转换和方块315的数据访问。在处理器105上运行的操作系统和软件可以实现方块320-345以响应发出页错误异常的PXU 132中的MMU。本领域的技术人员将理解,可以不同地划分这些功能。当决策方块340判定SPE 121发出数据已压缩通知时,按照方块345,PPE 110或其他SPE调度错误线程以便执行。在此,错误线程指需要访问SPE 121现在已成功解压缩的已压缩数据并且等待执行或其他处理的线程。然后过程流继续返回方块305,在该处开始另一次存储器访问。
总之,当PPE 110或诸如SMF 158之类的存储器流控制器访问位于存储器200中的已压缩页时,页表215不会引用此类已压缩的被请求信息,并且因此与PPE 110或SMF 158关联的MMU将生成导致PPE 110进入异常处理机软件组件的页错误异常。页表215包括对系统存储器200中的未压缩页而不是已压缩页的引用。PPE 110接收结果页错误异常。在PPE110上执行的软件尝试从系统存储器200检索包括被请求信息的已压缩页。为了完成此任务,PPE 110通过DMA请求从系统存储器200中的已压缩存储器205复制已压缩页。然后PPE 110通过向SPE 121提供已压缩页并指示SPE 121用作解压缩已压缩页的加速器来启动已压缩页的解压缩。当SPE 121完成解压缩任务时,SPE 121将通知PPE 110。PPE 110然后检索已解压缩信息并将已解压缩信息存储在未压缩存储器页210中。但是,如果被请求信息既不在已压缩存储器页205中也不在未压缩存储器页210中,则处理器105将执行请求分页以尝试从诸如硬盘或其他介质驱动器之类的非易失性存储装置164中检索被请求信息。如果无法通过此类请求分页提供被请求信息,则存在实际错误或异常。响应于此类实际错误,处理器105生成错误通知或通过常规错误处理方法以其他方式处理错误。
因此,处理器105将存储器压缩和解压缩功能从PPE 110卸载到SPE。在一个实施例中,处理器105通过将SPE分配为页解压缩服务,来减小PPE启动存储器传输和解压缩步骤的开销。诸如SPE 121之类的SPE用作专用压缩/解压缩加速器。SPE 121可以执行预测性解压缩。例如,SPE 121解压缩要求的被请求页以及至少此要求的被请求页之后的页。在局部引用原则下,后续存储器访问将很可能使用此要求的被请求页之后的页。有利地,当PPE 110稍后需要此要求的被请求页之后的页时,该页已经以解压缩格式存在。本领域的技术人员将理解还可以使用其他预测性方法,其中SPU实现一种或多种算法以判定是否执行预测性解压缩。
处理器105可以将SPE 121永久配置为解压缩器,或备选地,可以在需要解压缩信息时将SPE 121或其他SPE配置为解压缩器。在后一种情况下,先前执行解压缩任务的SPE可以执行其他活动,直到出现其他解压缩任务。换句话说,处理器105可以将SPE配置为专用解压缩器或配置为按需解压缩器。同样,处理器105可以将SPE配置为专用压缩器或配置为按需压缩器。此外,处理器105可以将SPE配置为专用压缩器/解压缩器。
图4是示出了当处理器105使SPE 121专用于诸如压缩和解压缩之类的加速任务时由SPE 121中的加速器实现的方法的流程图。过程流开始于开始方块400。按照方块405,PPE 110初始化SPE 121中的压缩/解压缩代码,由此使SPE 121可以执行压缩或解压缩任务。然后按照方块410,SPE 121接收解压缩请求。按照方块415,PPE 110或SPE 121执行测试以判定当前未压缩存储器210中是否具有可用空间以存储SPE 121为了响应解压缩请求而解压缩的信息。如果当前未压缩存储器210中没有可用空间,则按照方块500,SPE 121压缩未压缩存储器210中的数据并将如此压缩的信息传送到已压缩存储器205。此操作将释放未压缩存储器210中的空间。当未压缩存储器210中的空间变得可用时,过程流继续到方块420。在方块420,PPE 110或SPE 121在系统存储器200内的已压缩存储器索引中查找被请求的已压缩信息所在的被请求页。在一个实施例中,系统存储器200存储已压缩存储器索引。在另一个实施例中,SPE本地存储装置157存储已压缩存储器索引或已压缩存储器索引的一部分。以此方式存储已压缩存储器索引将减少访问等待时间,但由于有限的本地存储存储器大小将导致大小限制。在一个实施例中,本地存储装置157缓存已压缩存储器索引的一部分以提高访问速度。然后按照方块425,SPE 121解压缩被请求的已压缩页。响应于SPE 121解压缩被请求的已压缩页,按照方块430,PPE110或SPE 121(使用SMF 158)更新存储器200中的页表215并发出通知以指示未压缩存储器210现在包含被请求页。然后按照方块435,PPE 110或SPE 121执行测试以判定其他解压缩请求是否未决。如果其他解压缩请求未决,则过程流继续返回方块410以处理此请求。但是,如果其他解压缩请求没有未决,按照方块440,SPE 121可以可选地推测性地解压缩与SPE 121上次解压缩的页相邻的页。然后过程流继续返回决策方块415并且过程如以前那样继续。在一个实施例中,当处理器105解压缩页时,处理器105将已解压缩页存储在未压缩存储器210中。页表215包括所有存储在未压缩存储器210中的未压缩页的表项。但在一个实施例中,页表215不包括已压缩页的表项。相反,已压缩存储器索引记录存储在已压缩存储器205中的已压缩页。
图5是提供有关数据压缩的更多详细信息以使空间可用于图4的流程图的未压缩存储器方块500的流程图。过程流开始于开始方块505。按照方块510,PPE 110或SPE 121标识存储被请求信息的页。按照决策方块515,PPE 110或SPE 121执行测试以判定是否仍可以以压缩格式提供被请求页。如果不再可以以压缩格式提供被请求页,则按照方块520,SPE 121根据预定压缩算法压缩被请求页。然后PPE 110或SPE 121更新页表215以表明未压缩存储器210没有存储被请求页,而是已压缩存储器205以压缩形式存储了被请求页。如果决策方块515发现仍可以以压缩形式提供被请求页,过程流直接转到方块525的更新页表任务。然后PPE 110或SPE121更新已压缩存储器索引以指示已压缩存储器205现在包含压缩形式的被请求页。压缩过程在结束方块535结束。
图6A是提供有关其中SPE压缩信息的一种方法的其他详细信息的流程图。当SPE无法直接有效地访问包含在系统存储器200中的信息时,此方法尤其有用。此方法开始于开始方块600。此方法假设PPE 110或处理器105的其他组件指示SPE 121压缩存储在未压缩存储器210的页中的信息。作为响应,按照方块605,SMF 158将被请求存储器页从未压缩存储器210复制到SPE 121的SPU 155中的本地存储装置(LS)157。这是“复制入”操作。一旦SMF 158将被请求页存储在LS 157中,按照方块610,SPE 121中的SPU 155就压缩整个页由此形成已压缩页。然后按照方块615,SMF 158将已压缩页发送回存储器200以便存储在已压缩存储器205中。这是“复制出”操作。此方法在结束方块620完成。
图6B是提供有关其中SPE解压缩信息的一种方法的其他详细信息的流程图。此方法开始于开始方块650。此方法假设PPE 110或处理器105的其他组件指示SPE 121解压缩存储在已压缩存储器205的页中的信息。作为响应,按照方块655,SMF 158将被请求的已压缩存储器页从已压缩存储器205复制到SPE 121的SPU 155中的本地存储装置(LS)157。这是“复制入”操作。一旦SMF 158将被请求的已压缩页存储在LS 157中,按照方块660,SPE 121中的SPU 155就解压缩整个页由此形成未压缩页。然后按照方块665,SMF 158将未压缩页发送回存储器200以便存储在未压缩存储器210中。这是“复制出”操作。此方法在结束方块670完成。
所披露的IHS的一个实施例在系统存储器200中的已压缩存储器空间量与未压缩存储器空间量之间提供了可调整的比率。IHS 100可以通过重新引导IHS 100并在IHS初始化期间移动已压缩存储器205与未压缩存储器210之间的边界220,来调整存储在系统存储器200中的已压缩信息量与存储在系统存储器200中的未压缩信息量的比率。从在固定时段内(即初始化期间的系统配置)发生的角度,此边界调整是静态的。但是也可以动态更改边界220以及系统存储器200中的已压缩信息量与未压缩信息量之间的比率。
图7和8是示出用于动态修改已压缩存储器205与未压缩存储器210之间的比率的方法的流程图。如上所述,在一个实施例中,IHS 100将已压缩信息和未压缩信息存储在公共存储器区域中,即系统存储器200中。IHS 100可以在任意时间点动态移动边界220并调整系统存储器200存储的已压缩信息与未压缩信息的比率。
更具体地说,图7是示出用于动态增大或扩展已压缩存储器区域105的方法的流程图。在此方法中,所述方法包括移动存储器边界220以便相对于未压缩存储器210的大小增加已压缩存储器205的大小。在此实施例中,SPE 121压缩先前在未压缩存储器210中的页并将如此压缩的页移动到已压缩存储器205。此实施例增大了系统存储器200中的已压缩信息与未压缩信息的比率。此操作对应于在图2所示的系统存储器200的表示中向下移动边界220。返回图7,过程流开始于开始方块700。按照方块705,用户可以启动边界220的更改以增加存储在系统存储器200中的已压缩信息量。备选地,IHS 100中的软件或硬件可以监视并确定可用的系统存储器量太低,并且作为响应,确定应更改边界位置以增加已压缩信息量。接下来,按照方块710,处理器105确定移动边界220将影响哪个(哪些)存储器页。在一个实施例中,PPE 110或SPE 121处理这些决策步骤。
然后PPE 110或SPE 121通过从页表215中删除受影响的页,来从受影响的存储器区域中卸载未压缩存储器页。然后按照方块720,PPE 110或SPE 121压缩受影响的存储器区域中的页。接下来,按照方块730,PPE110或SPE 121将新压缩的页添加到已压缩存储器索引以完成将受影响的存储器区域中的页移动到已压缩存储器205。通过此方式,处理器105动态增加已压缩存储器量,并且过程在结束方块730结束。
图8是示出用于动态减小已压缩存储器区域205并增加未压缩存储器区域210的方法的流程图。在此实施例中,所述方法包括移动存储器边界220以便相对于未压缩存储器210的大小减小已压缩存储器205的大小。过程流开始于开始方块800。按照方块805,用户可以启动边界220的更改以减小存储在系统存储器200中的已压缩信息量。备选地,IHS 100中的软件或硬件可以启动已压缩存储器空间的减小以响应预定运行条件。然后按照方块810,PPE 110或SPE 121从未压缩存储器210中驱逐一个或多个页,并将此一个或多个页移动到诸如介质驱动器164之类的非易失性存储装置中。然后按照方块815,PPE 110或SPE 121标识已压缩存储器205中受移动边界220影响的存储器区域以减小已压缩存储器。按照方块820,PPE 110或SPE 121解压缩已压缩存储器205的受影响存储器区域中的所有页。然后按照方块825,PPE 110或SPE 121将这些未压缩存储器页移动到通过先前从未压缩存储器210驱逐页而释放的未压缩存储器空间。按照方块830,PPE 110或SPE 121更新页表215以反映未压缩存储器210的已修改内容,并更新已压缩存储器索引以反映已压缩存储器205的已修改内容。过程流在结束方块835结束。
以上披露了一种采用异构处理器的信息处理系统,所述处理器使用存储器压缩技术以经济有效的方式增加有效的系统存储器空间。
通过本发明的此说明,本发明的修改和备选实施例对于本领域的技术人员而言将显而易见。相应地,此说明教导了本领域的技术人员执行本发明的方式,并且旨在被视为仅是示例性的。示出和说明的本发明的形式构成当前实施例。本领域的技术人员可以对部件做出形状、大小和布置方面的各种更改。例如,本领域的技术人员可以用等效元件代替在此示出和说明的元件。此外,本领域的技术人员在得益于本发明的此说明之后,可以独立于使用其他特性来使用本发明的特定特性而不偏离本发明的范围。
权利要求书(按照条约第19条的修改)
1.一种压缩和解压缩异构多核处理器中的信息的方法,所述方法包括:
由显示第一体系结构的第一处理器核心处理信息;
由显示第二体系结构的第二处理器核心处理信息;
由所述第二处理器核心压缩要由所述异构多核处理器发送到系统存储器的信息以便作为已压缩信息存储在所述系统存储器中;以及
由所述第二处理器核心解压缩从所述系统存储器接收的已压缩信息以便由所述异构处理器用作未压缩信息;以及
其中,响应于所述第一处理器核心的信息请求,判定所述信息是否以压缩形式存储在所述系统存储器中,并且在肯定性判定的情况下,使所述第二处理器核心解压缩所述信息。
2.如权利要求1中所述的方法,其中所述第一体系结构是通用处理器核心,而所述第二体系结构是用于执行由所述第一处理器核心分配的任务的专用处理器核心。
3.如权利要求1中所述的方法,还包括由所述异构多核处理器将已压缩信息和未压缩信息两者存储在用作共享存储器的所述系统存储器中。
4.如权利要求1中所述的方法,其中所述第二处理器核心中的存储器流控制器将已压缩信息和未压缩信息传入和传出所述系统存储器。
5.如权利要求1中所述的方法,其中所述第二处理器核心专用于压缩和解压缩信息。
6.如权利要求1中所述的方法,其中所述第二处理器核心推测性地解压缩所述系统存储器中的所述第一处理器核心可能需要的信息,并且所述第二处理器核心推测性地压缩信息以便存储在所述系统存储器中。
7.如权利要求1中所述的方法,还包括由所述处理器更改所述系统存储器中的已压缩信息与未压缩信息的比率。
8.如权利要求1中所述的方法,其中在所述第二处理器核心压缩或解压缩信息的同时,所述第一处理器核心执行其他任务。
9.一种异构多核处理器,所述异构多核处理器包括:
显示第一体系结构的第一处理器核心;
显示第二体系结构的第二处理器核心,所述第二处理器核心压缩信息以提供已压缩信息并且解压缩已压缩信息以提供未压缩信息;以及
将所述第一处理器核心连接到所述第二处理器核心的总线,所述总线适于将所述已压缩信息和未压缩信息传入和传出系统存储器;
所述多核处理器还包括用于以下操作的逻辑:响应于所述第一处理器核心的信息请求,判定所述信息是否以压缩形式存储在所述系统存储器中,并且在肯定性判定的情况下,使所述第二处理器核心解压缩所述信息以便提供给所述第一处理器核心。
10.一种信息处理系统(IHS),所述信息处理系统包括:
如权利要求9中所述的异构处理器;以及
连接到所述异构处理器的用于存储所述已压缩信息和所述未压缩信息的系统存储器。

Claims (16)

1.一种压缩和解压缩异构多核处理器中的信息的方法,所述方法包括:
由显示第一体系结构的第一处理器核心处理信息;
由显示第二体系结构的第二处理器核心处理信息;
由所述第二处理器核心压缩要由所述异构多核处理器发送到系统存储器的信息以便作为已压缩信息存储在所述系统存储器中;以及
由所述第二处理器核心解压缩从所述系统存储器接收的已压缩信息以便由所述异构处理器用作未压缩信息。
2.如权利要求1中所述的方法,其中所述第一体系结构是通用处理器核心,而所述第二体系结构是用于执行由所述第一处理器核心分配的任务的专用处理器核心。
3.如权利要求1中所述的方法,还包括由所述异构多核处理器将已压缩信息和未压缩信息两者存储在用作共享存储器的所述系统存储器中。
4.如权利要求1中所述的方法,其中所述第二处理器核心中的存储器流控制器将已压缩信息和未压缩信息传入和传出所述系统存储器。
5.如权利要求1中所述的方法,其中所述第二处理器核心专用于压缩和解压缩信息。
6.如权利要求1中所述的方法,其中所述第一处理器核心和所述第二处理器核心共享压缩和解压缩信息任务。
7.如权利要求1中所述的方法,其中所述第二处理器核心推测性地解压缩所述系统存储器中的所述第一处理器核心可能需要的信息,并且所述第二处理器核心推测性地压缩信息以便存储在所述系统存储器中。
8.如权利要求1中所述的方法,还包括由所述处理器更改所述系统存储器中的已压缩信息与未压缩信息的比率。
9.如权利要求1中所述的方法,其中在所述第二处理器核心压缩或解压缩信息的同时,所述第一处理器核心执行其他任务。
10.一种异构多核处理器,所述异构多核处理器包括:
显示第一体系结构的第一处理器核心;
显示第二体系结构的第二处理器核心,所述第二处理器核心压缩信息以提供已压缩信息并且解压缩已压缩信息以提供未压缩信息;以及
将所述第一处理器核心连接到所述第二处理器核心的总线,所述总线适于将所述已压缩信息和未压缩信息传入和传出系统存储器。
11.如权利要求10中所述的异构多核处理器,其中所述第一体系结构是通用处理器核心,而所述第二体系结构是执行由所述第一处理器核心分配的任务的专用处理器核心。
12.如权利要求10中所述的异构多核处理器,其中所述系统存储器包括存储已压缩信息和未压缩信息两者的共享存储器。
13.如权利要求10中所述的异构多核处理器,其中所述第二处理器核心专用于压缩和解压缩信息。
14.如权利要求10中所述的异构多核处理器,其中所述第一处理器核心和所述第二处理器核心共享压缩和解压缩信息任务。
15.如权利要求10中所述的异构多核处理器,其中所述第二处理器核心推测性地解压缩所述系统存储器中的所述第一处理器核心可能需要的信息,并且所述第二处理器核心推测性地压缩信息以便存储在所述系统存储器中。
16.一种信息处理系统(IHS),所述信息处理系统包括:
如权利要求10到15中的任一权利要求所述的异构处理器;以及
连接到所述异构处理器的用于存储所述已压缩信息和所述未压缩信息的系统存储器。
CNA2007800101477A 2006-03-23 2007-03-08 信息处理系统中的存储器压缩 Pending CN101405704A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/387,999 2006-03-23
US11/387,999 US7849241B2 (en) 2006-03-23 2006-03-23 Memory compression method and apparatus for heterogeneous processor architectures in an information handling system

Publications (1)

Publication Number Publication Date
CN101405704A true CN101405704A (zh) 2009-04-08

Family

ID=38121527

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800101477A Pending CN101405704A (zh) 2006-03-23 2007-03-08 信息处理系统中的存储器压缩

Country Status (4)

Country Link
US (1) US7849241B2 (zh)
EP (1) EP2005305A1 (zh)
CN (1) CN101405704A (zh)
WO (1) WO2007107457A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737137A (zh) * 2013-10-18 2015-06-24 三星电子株式会社 电子设备的存储器压缩方法及其装置
CN105765541A (zh) * 2013-12-03 2016-07-13 罗伯特·博世有限公司 用于机动车的控制器
CN107251000A (zh) * 2015-02-12 2017-10-13 高通股份有限公司 片上系统中的动态存储器利用
CN107533510A (zh) * 2015-04-29 2018-01-02 高通股份有限公司 自适应的基于压缩的分页

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8085171B2 (en) * 2006-03-24 2011-12-27 University Of Mississippi High-speed data compression based on set associative cache mapping techniques
EP2005594A4 (en) * 2006-03-24 2010-10-20 Univ Mississippi HIGH SPEED DATA COMPRESSION BASED ON ASSOCIATIVE ASSEMBLY MEMORY MAPPING (ANEMEMOIRE) MAPPING TECHNIQUES
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
JP2008165381A (ja) * 2006-12-27 2008-07-17 Ricoh Co Ltd 画像処理装置及び画像処理方法
US7876940B2 (en) * 2007-01-30 2011-01-25 International Business Machines Corporation Universal image processing
US8238624B2 (en) 2007-01-30 2012-08-07 International Business Machines Corporation Hybrid medical image processing
US8331737B2 (en) 2007-04-23 2012-12-11 International Business Machines Corporation Heterogeneous image processing system
US8462369B2 (en) * 2007-04-23 2013-06-11 International Business Machines Corporation Hybrid image processing system for a single field of view having a plurality of inspection threads
US8326092B2 (en) 2007-04-23 2012-12-04 International Business Machines Corporation Heterogeneous image processing system
US9015399B2 (en) * 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561037B2 (en) 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8675219B2 (en) * 2007-10-24 2014-03-18 International Business Machines Corporation High bandwidth image processing with run time library function offload via task distribution to special purpose engines
US20090132582A1 (en) * 2007-11-15 2009-05-21 Kim Moon J Processor-server hybrid system for processing data
US9135073B2 (en) 2007-11-15 2015-09-15 International Business Machines Corporation Server-processor hybrid system for processing data
KR101420798B1 (ko) * 2007-11-23 2014-07-17 삼성전자주식회사 실시간 응답성이 요구되는 코드를 위한 요구 페이징 방법및 단말
US20090150556A1 (en) * 2007-12-06 2009-06-11 Kim Moon J Memory to storage communication for hybrid systems
US9332074B2 (en) * 2007-12-06 2016-05-03 International Business Machines Corporation Memory to memory communication and storage for hybrid systems
US8229251B2 (en) 2008-02-08 2012-07-24 International Business Machines Corporation Pre-processing optimization of an image processing system
US8379963B2 (en) * 2008-03-28 2013-02-19 International Business Machines Corporation Visual inspection system
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
EP2483777A4 (en) * 2009-09-30 2016-05-11 Altera Corp ENHANCED EXCHANGE OF WAVEFORM DATA BETWEEN MULTIPLE PROCESSORS USING COMPRESSION AND DECOMPRESSION
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US8484405B2 (en) * 2010-07-13 2013-07-09 Vmware, Inc. Memory compression policies
US9305006B2 (en) * 2010-11-11 2016-04-05 Red Hat, Inc. Media compression in a digital device
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9592448B2 (en) * 2013-03-15 2017-03-14 Skyera, Llc Apparatus and method for using fields in N-space translation of storage requests
US9684667B2 (en) 2014-08-05 2017-06-20 Dell Products L.P. System and method of optimizing the user application experience
US9658860B2 (en) * 2014-08-05 2017-05-23 Dell Products L.P. System and method for optimizing bootup performance
US20160092361A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Caching technologies employing data compression
US9652384B2 (en) 2014-12-16 2017-05-16 Intel Corporation Apparatus, system and method for caching compressed data
US9928142B2 (en) 2015-11-10 2018-03-27 International Business Machines Corporation Resolving page faults out of context
US10444991B1 (en) * 2015-12-09 2019-10-15 EMC IP Holding Company, LLC In-place resumable partial decompression
CN107040581B (zh) * 2017-01-25 2021-03-02 腾讯科技(深圳)有限公司 一种网络包发送方法、装置、服务器及系统
JP2021043837A (ja) * 2019-09-13 2021-03-18 キオクシア株式会社 メモリシステム
US20230359553A1 (en) * 2020-10-23 2023-11-09 Hewlett-Packard Development Company, L.P. Access to volatile memories

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237675A (en) * 1990-06-04 1993-08-17 Maxtor Corporation Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5812817A (en) * 1994-10-17 1998-09-22 International Business Machines Corporation Compression architecture for system memory application
US5729228A (en) 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
US5864859A (en) 1996-02-20 1999-01-26 International Business Machines Corporation System and method of compression and decompression using store addressing
US7024512B1 (en) * 1998-02-10 2006-04-04 International Business Machines Corporation Compression store free-space management
US6549995B1 (en) * 2000-01-06 2003-04-15 International Business Machines Corporation Compressor system memory organization and method for low latency access to uncompressed memory regions
US6564305B1 (en) * 2000-09-20 2003-05-13 Hewlett-Packard Development Company Lp Compressing memory management in a device
EP1251460A1 (en) * 2001-04-19 2002-10-23 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Adaptive method for allocation of random access memory
US7548586B1 (en) * 2002-02-04 2009-06-16 Mimar Tibet Audio and video processing apparatus
KR100463205B1 (ko) * 2003-02-13 2004-12-23 삼성전자주식회사 시퀀셜 버퍼를 내장하여 디에스피의 데이터 억세스 성능을향상시키는 컴퓨터 시스템 및 그 컴퓨터 시스템의 데이터억세스 방법
WO2004092913A2 (en) 2003-04-14 2004-10-28 Arc International Digital processor apparatus with code compression and method
US6879270B1 (en) * 2003-08-20 2005-04-12 Hewlett-Packard Development Company, L.P. Data compression in multiprocessor computers
JP4699685B2 (ja) * 2003-08-21 2011-06-15 パナソニック株式会社 信号処理装置及びそれを用いた電子機器
US7302543B2 (en) * 2004-06-16 2007-11-27 Nec Laboratories America, Inc. Compressed memory architecture for embedded systems
US8001294B2 (en) * 2004-09-28 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for providing a compressed network in a multi-processing system
US7480489B2 (en) * 2004-11-22 2009-01-20 Broadcom Corporation Wireless device having a distinct hardware accelerator to support data compression protocols dedicated to GSM (V.42)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737137A (zh) * 2013-10-18 2015-06-24 三星电子株式会社 电子设备的存储器压缩方法及其装置
CN104737137B (zh) * 2013-10-18 2019-07-12 三星电子株式会社 电子设备的存储器压缩方法及其装置
US10895987B2 (en) 2013-10-18 2021-01-19 Samsung Electronics Co., Ltd. Memory compression method of electronic device and apparatus thereof
CN105765541A (zh) * 2013-12-03 2016-07-13 罗伯特·博世有限公司 用于机动车的控制器
CN105765541B (zh) * 2013-12-03 2018-12-14 罗伯特·博世有限公司 用于机动车的控制器
TWI651652B (zh) * 2013-12-03 2019-02-21 羅伯特博斯奇股份有限公司 汽車用的控制裝置
CN107251000A (zh) * 2015-02-12 2017-10-13 高通股份有限公司 片上系统中的动态存储器利用
CN107533510A (zh) * 2015-04-29 2018-01-02 高通股份有限公司 自适应的基于压缩的分页

Also Published As

Publication number Publication date
EP2005305A1 (en) 2008-12-24
US7849241B2 (en) 2010-12-07
WO2007107457A1 (en) 2007-09-27
US20070245097A1 (en) 2007-10-18

Similar Documents

Publication Publication Date Title
CN101405704A (zh) 信息处理系统中的存储器压缩
US6532121B1 (en) Compression algorithm with embedded meta-data for partial record operation augmented with expansion joints
US5379036A (en) Method and apparatus for data compression
US6496882B2 (en) Method and system for virtual memory compression in an embedded system
US6657562B2 (en) Data compression/decompression method and apparatus
CN100524251C (zh) 采用压缩缓存线信息价值的计算系统、处理器及方法
CA2132762C (en) Method and apparatus for data compression
US5909658A (en) High speed electron beam lithography pattern processing system
US5237675A (en) Apparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
US8037255B2 (en) Memory and method for data compression and management
US20090204651A1 (en) Accessing file data stored in non-volatile re-programmable semiconductor memories
CN1331058C (zh) 将存储器压缩数据存储到存储器压缩磁盘上的方法
WO2013160969A1 (en) Storage apparatus and data management method
CN101930387A (zh) 用于更新压缩只读文件系统的改进的容错方法及装置
US7644263B2 (en) Storage control system and boot control system
CN113474999A (zh) 溢出临时结果以适应存储边界
JP3201716B2 (ja) コンピュータ装置
JP3488160B2 (ja) 命令セットの拡張を通じて、risc実行可能コードを圧縮する方法及びシステム
US6647480B1 (en) Data block update utilizing flash memory having unused memory size smaller than the data block size
US5799138A (en) Apparatus for instruction-word-linK compression
US20050071151A1 (en) Compression-decompression mechanism
EP0905613B1 (en) Method for storing and using executable programs and apparatus therefor
KR100544171B1 (ko) 임베디드 시스템 및 그 운용방법
JP2010287114A (ja) データ格納方法及びデータ格納装置
EP4355047A2 (en) Technology for early abort of compression acceleration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20090408