[发明专利]基于零的高效解压缩有效
申请号: | 201180076334.1 | 申请日: | 2011-12-30 |
公开(公告)号: | CN104094221B | 公开(公告)日: | 2017-09-05 |
发明(设计)人: | E·乌尔德-阿迈德-瓦尔;S·赛尔;K·A·杜什;C·R·扬特;B·L·托尔 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/305 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 毛力 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 高效 解压缩 | ||
技术领域
本发明的领域一般涉及计算机处理器架构,更具体地涉及基于零的高效解压缩。
背景技术
指令集、或指令集架构(ISA)是涉及编程的计算机架构的一部分,并且可包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处理、以及外部输入和输出(I/O)。应注意术语指令在本文中一般指的是宏指令——即提供给处理器以供执行的指令——与从处理器的解码器解码宏指令得到的微指令或微操作码不同。指令集架构与微架构不同,微架构是实现ISA的处理器的内部设计。具有不同微架构的处理器可共享共同的指令集。
指令集包括一个或多个指令格式。给定指令格式定义各种字段(位数、位位置)以指定要执行的操作以及将对其进行该操作的操作数等。给定指令是使用给定指令格式来表达的,并指定操作和操作数。指令流是特定指令序列,其中该序列中的每一指令都是指令格式的指令出现。
科学、金融、自动向量化的通用RMS(识别、挖掘以及合成)/可视和多媒体应用(例如,2D/3D图形、图像处理、视频压缩/解压缩、语音识别算法和音频操纵)常常需要对大量的数据项执行相同操作(被称为“数据并行性”)。单指令多数据(SIMD)是指使处理器对多个数据项执行相同操作的一种指令。SIMD技术尤其适用于将寄存器中的多个位逻辑地划分成多个固定大小的数据元素的处理器,其中每个数据元素表示单独的值。例如,64位寄存器中的位可以被指定为作为四个单独的16位数据元素来操作的源操作数,每一个数据元素都表示单独的16位值。作为另一个示例,256位寄存器中的位可以被指定为作为四个单独的64位打包数据元素(四字(Q)大小的数据元素)、八个单独的32位打包数据元素(双字(D)大小的数据元素)、十六个单独的16位打包数据元素(字(W)大小的数据元素)、或三十二个单独的8位数据元素(字节(B)大小的数据元素)来操作的源操作数。这种类型的数据被称为打包数据类型或向量数据类型,并且这种数据类型的操作数被称为打包数据操作数或向量操作数。换句话说,打包数据项或向量指的是打包数据元素的序列;并且打包数据操作数或向量操作数是SIMD指令(也称为打包数据指令或向量指令)的源操作数或目的地操作数。
作为示例,一种类型的SIMD指令指定了将要以纵向方式对两个源向量操作数执行的单个向量操作,用于生成具有相同大小的、具有相同数量的数据元素并且按照相同数据元素次序的目的地向量操作数(也被称为结果向量操作数)。源向量操作数中的数据元素被称为源数据元素,而目的地向量操作数中的数据元素被称为目的地或结果数据元素。这些源向量操作数具有相同大小并且包含相同宽度的数据元素,因此它们包含相同数量的数据元素。两个源向量操作数中的相同位位置中的源数据元素形成数据元素对(也称为对应的数据元素;即,每个源操作数的数据元素位置0中的数据元素相对应,每个源操作数中的数据元素位置1中的数据元素相对应,以此类推)。对这些源数据元素对中的每一个分别执行该SIMD指令指定的操作,以产生匹配数量的结果数据元素,并且因此每一对源数据元素具有相应的结果数据元素。由于该操作是纵向的,且由于结果向量操作数是相同大小、具有相同数量的数据元素并且结果数据元素按照与源向量操作数相同的数据元素顺序被存储,所以结果数据元素处于结果向量操作数中与它们在源向量操作数中的相应源数据元素对相同的位位置中。除此示例性类型的SIMD指令之外,还有各种其他类型的SIMD指令(例如,只有一个或具有两个以上的源向量操作数的;以横向方式操作的;生成不同大小的结果向量操作数的,具有不同大小的数据元素的,和/或具有不同的数据元素顺序的)。应该理解,术语目的地向量操作数(或目的地操作数)被定义为执行由指令所指定的操作的直接结果,包括将该目的地操作数存储在某一位置(寄存器或由该指令所指定的存储器地址),以便它可以作为源操作数由另一指令访问(由另一指令指定相同位置)。
某些指令集架构允许多个向量和标量操作并行完成并更新指令集架构寄存器集。可以利用这些指令集架构实现压缩/解压缩指令和算法,诸如基于行程长度编码(run-length encoding,RLE)的指令。
RLE是一种形式的无损数据压缩,其中当数据流中的数据序列包含一个或多个连续数据值集合时对这些数据序列进行压缩。不是存储连续数据值集合中的每个数据元素,而是存储具有该值的单个元素且其后跟随有具有连续元素计数的元素。这种压缩形式对包含许多这种行程(run)的数据最有用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180076334.1/2.html,转载请声明来源钻瓜专利网。