The present invention relates to a system and method for performing memory compression. Systems, devices and methods for efficiently moving data for storage and processing are described. In various implementations, the compression unit within the processor includes multiple hardware channels, selects two or more input words for compression, and allocates them to two or more of multiple hardware channels. When processing each assigned input word, each word is compared with multiple entries in the table. If the same entry for each index table in the assigned input word is determined, the hardware channel with the oldest input word generates a single read request for the table entry, and the hardware channel with the latest input word generates a single write request for updating the table entry when compression is completed. Each hardware channel generates compressed packages based on its assigned input words.
【技术实现步骤摘要】
用于执行存储器压缩的系统和方法
本文描述的实施方案涉及计算系统的领域,并且更具体地,涉及有效地移动数据以用于存储和处理。
技术介绍
一般而言,多种计算系统包括处理器和存储器,并且处理器生成对指令和应用数据的访问请求,同时处理一个或多个软件应用程序。例如,当提取指令和数据时,处理器检查本地高速缓存存储器的分级结构,并且如果没有找到,则处理器向主存储器或其他存储装置(诸如CD-ROM或硬盘驱动器)发布对期望的指令和数据的请求。有时,在计算系统上同时运行的软件应用程序的数量达到可观的数量。此外,多种计算系统包括多个处理器,诸如中央处理单元(CPU)、数据并行处理器(如图形处理单元(GPU))、数字信号处理器(DSP)等。因而,用于处理多个软件应用程序的指令和数据的量显著增长。然而,本地高速缓存存储器中的存储器存储位置具有有限量的存储空间。因而,发生在本地高速缓存存储器和永久存储装置之间交换指令和数据。等待将加载的请求的信息的交换和对应延迟减少计算系统的性能。为了减少特定数量的数据的存储量,数据被压缩。此类压缩利用了数据中包括的单独的数据位的重复序列。当将访问数据时,数据 ...
【技术保护点】
1.一种装置,包括:第一缓冲器,所述第一缓冲器被配置为存储多个输入字;表,所述表包括多个条目;和压缩电路,所述压缩电路包括第一多个硬件通道,其中响应于接收到压缩指令的指示,所述压缩电路被配置为:将所述多个输入字中的第一组两个或更多个输入字分配给所述第一多个硬件通道;确定所述第一组两个或更多个输入字中的至少两个对应于所述表的相同条目;在确定所述第一组的输入字之间的依赖关系之前:确定是否用所述第一组的所述输入字中的任一个来更新所述表;以及将所述多个输入字中的第二组输入字分配给所述第一多个硬件通道,其中所述第二组与所述第一组不同;生成存储对应于所述多个输入字的数据的压缩包。
【技术特征摘要】
2017.07.28 US 15/663,1151.一种装置,包括:第一缓冲器,所述第一缓冲器被配置为存储多个输入字;表,所述表包括多个条目;和压缩电路,所述压缩电路包括第一多个硬件通道,其中响应于接收到压缩指令的指示,所述压缩电路被配置为:将所述多个输入字中的第一组两个或更多个输入字分配给所述第一多个硬件通道;确定所述第一组两个或更多个输入字中的至少两个对应于所述表的相同条目;在确定所述第一组的输入字之间的依赖关系之前:确定是否用所述第一组的所述输入字中的任一个来更新所述表;以及将所述多个输入字中的第二组输入字分配给所述第一多个硬件通道,其中所述第二组与所述第一组不同;生成存储对应于所述多个输入字的数据的压缩包。2.根据权利要求1所述的装置,其中所述压缩电路还被配置为:确定所述第一组的输入字之间的依赖关系;以及针对所述多个硬件通道中的每个硬件通道,基于所述第一组的输入字之间的所述依赖关系,生成指定压缩包的类型的命令。3.根据权利要求1所述的装置,其中针对将访问的每个表条目,所述压缩电路还被配置为:确定所述第一组的最新输入字;以及在确定所述第一组的输入字之间的依赖关系之前,将所述最新字转发到所述第二组。4.根据权利要求1所述的装置,其中针对将访问的每个表条目,所述压缩电路还被配置为:确定所述第一组的最旧输入字;以及仅从所述多个硬件通道中分配给所述最旧输入字的硬件通道发送针对所述表中的输入字的读取请求。5.根据权利要求4所述的装置,其中针对所述多个硬件通道中的每个硬件通道,确定所述第一组的输入字之间的依赖关系包括将分配给该硬件通道的输入字与第二输入字进行比较。6.根据权利要求5所述的装置,其中所述第二输入字是存储在为分配给所述硬件通道的所述输入字确定的所述表的条目中的输入字。7.根据权利要求5所述的装置,其中所述第二输入字:针对分配给所述第一组的最旧输入字的硬件通道,是存储在为所述第一组的每个输入字确定的所述表的条目中的输入字;并且针对未分配给所述第一组的最旧输入字的给定硬件通道,是作为比分配给所述给定硬件通道的输入字更旧的最新输入字的、所述第一组的输入字。8.根据权利要求3所述的装置,其中所述压缩电路被进一步配置为响应于确定所生成的指定压缩包的类型的命令指示对所述表的更新,将所述第一组的最新输入字存储在所述表中。9.根据权利要求3所述的装置,其中所述压缩电路被进一步配置为在确定所生成的指定压缩包的类型的命令指示对所述表的更新之前,将所述第一组的最新输入字存储在所述表中。10.根据权利要求1所述的装置,还包括解压缩电路,所述解压缩电路包括第二多个硬件通道,其中响应于接收到解压缩指令的指示,所述解压缩电路被配置为:将多个压缩包中的第三组两个或更多个压缩包分配给所述第二多个硬件通道,其中所述第三组的每个压缩包被指示为访问所述表的相同条目;针对所述第二多个硬件通道的每个硬件通道,确定用于为分配的压缩包提供字的源是所述表还是所分配的压缩包;以及在写入缓冲器中写入来自所确定的源的所述字。11.根据权利要求10所述的装置,其中所述解压缩电路被进一步配...
【专利技术属性】
技术研发人员:A·萨泽加丽,C·E·塔克,J·E·高宁恩,G·R·威廉姆斯三世,C·CC·李,
申请(专利权)人:苹果公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。