当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于数据压缩和解压缩的处理器指令制造技术

技术编号:33908323 阅读:10 留言:0更新日期:2022-06-25 19:03
提供了一种处理器,该处理器包括压缩指令,用以将存储在存储器中的未压缩只读数据的多个相邻数据块压缩成一个已压缩只读数据块并且将该已压缩只读数据块存储在存储器中的多个相邻块中。在执行应用以对只读数据进行操作期间,存储已压缩只读数据块的多个相邻块中的一者被从存储器读取,被存储在预取缓冲器中,并且在存储器控制器中被解压缩。响应于在执行应用期间对已压缩只读数据块中的相邻数据块的后续请求,未压缩数据块被直接从预取缓冲器读取。冲器读取。冲器读取。

【技术实现步骤摘要】
用于数据压缩和解压缩的处理器指令


[0001]本公开涉及计算机处理器架构,更具体地涉及用于数据压缩和解压缩的处理器指令。

技术介绍

[0002]存储器带宽和延迟是计算机系统中许多工作负载的性能瓶颈。提高计算机系统中的存储器效率可提高系统性能并降低能耗。缓存存储器可放大存储器带宽并减少有效存储器延迟。然而,缓存存储器的容量有限。
附图说明
[0003]随着以下详细描述的进行并参考附图,所要求保护的主题的实施例的特征将变得显而易见,其中,使用的相同编号描绘相同的部件,并且其中:
[0004]图1图示了指令格式的实施例;
[0005]图2图示了寻址字段的实施例;
[0006]图3是根据一些实施例的寄存器架构的框图;
[0007]图4A是图示了示例性有序管道和示例性寄存器重命名、乱序发布/执行管道的框图;
[0008]图4B是图示了处理器中包括的有序架构核的示例性实施例和示例性寄存器重命名、乱序发布/执行架构核的框图;
[0009]图5A是根据本专利技术的一些实施例的单个处理器核及其到管芯上互连网络的连接和二级(L2)缓存的本地子集的框图;
[0010]图5B是图5A中的处理器核的一部分的展开图;
[0011]图6是片上系统(SoC)的框图;
[0012]图7是根据本专利技术实施例的图6所示的SoC的一部分的框图,该部分包括集成存储器控制器单元中的压缩/解压缩引擎;
[0013]图8是VHWCOMPRESS指令在SoC中的操作的流程图;
[0014]图9A图示了未压缩相邻数据块;
[0015]图9B图示了对应于图9A所示的未压缩数据块的已压缩数据和相关联的元数据;
[0016]图10是VMOVRAWCOMPRESS指令在SoC中的操作的流程图;
[0017]图11是VWRCOMPRESS指令在SoC中的操作的流程图;
[0018]图12是VHWCOMPRESSSTORE指令在SoC中的操作的流程图;
[0019]图13是根据本专利技术实施例的图6所示的SoC的一部分的框图,该部分包括二级(L2)缓存控制器中的压缩/解压缩引擎;
[0020]图14是图6所示的SoC的框图;以及
[0021]图15是包括图6所示的SoC的系统的框图。
[0022]虽然将参考所要求保护的主题的说明性实施例继续进行以下的详细描述,但是它
们的许多替代、修改、和变型对于本领域技术人员来说将是显而易见的。因此,期望所要求保护的主题被赋予较宽涵义,并且由所附权利要求限定。
具体实施方式
[0023]已知压缩存储器数据的存储器压缩技术。这些存储器压缩技术中的很多技术专注于压缩要存储在存储器中的数据,以增加有效存储器容量。这些技术要么需要操作系统(OS)消除碎片(这会产生性能开销),要么可能会由于元数据访问开销而潜在地降低有效存储器带宽。将已压缩数据存储在缓存中有效扩展了缓存的大小并增加了缓存的有效带宽。
[0024]在深度学习系统中,神经网络模型被存储在存储器中,并且处理器中的计算逻辑对存储在存储器中的参数(例如,神经网络权重)进行乘法累加(MAC)计算。存储器与处理器之间的数据传输是能量密集型过程,并且可能消耗机器学习工作负载中高达90%的电量。
[0025]神经网络权重是只读数据,也就是说,它们在机器学习推理工作负载的执行期间不会改变。对只读数据进行操作的其他应用包括允许用户读取数据但不允许用户修改数据的只读数据库。应用使用的只读数据是在计算机系统中执行应用期间一般不进行修改或删除的数据。
[0026]在一个实施例中,处理器压缩指令将存储在存储器中的未压缩只读数据的多个相邻数据块压缩成一个已压缩只读数据块,并且将该已压缩只读数据块存储在存储器中的多个相邻块中。在对只读数据进行操作的应用的执行期间,存储已压缩只读数据块的多个相邻块中的一者被从存储器中读取,被存储在预取缓冲器中,并在存储器控制器中被解压缩。响应于应用执行期间对已压缩只读数据块中的相邻数据块的后续请求,直接从预取缓冲器中读取未压缩相邻块。
[0027]只读数据的多个相邻数据块的压缩提高了有效存储器带宽并减少了对于只读数据的存储器访问延迟,从而为使用只读数据的应用提高了性能并降低了存储器能耗。可将只读数据存储在具有动态随机存取存储器(DRAM)的双列直插式存储器模块(dual inline memory module,DIMM)中。可使用例如位

平面压缩(Bit

Plane Compression)、基本增量即时压缩(Base

delta

immediate compression)、频繁值压缩(Frequent Value Compression)等通用压缩算法,来对只读数据的多个相邻数据块进行压缩。
[0028]也可将已压缩数据存储在缓存存储器中,以提高“网状”片上互连拓扑的有效缓存和网状带宽。通过处理器中的指令对只读数据进行压缩和解压缩。
[0029]将参照下面讨论的细节描述本专利技术的各种实施例和方面,并且附图将图示出各种实施例。下面的描述和附图是对本专利技术的说明,不应被理解为对本专利技术的限制。通过描述若干具体细节来提供对本专利技术的各种实施例的透彻理解。然而,在某些情况下,为了提供对于本专利技术的实施例的简要讨论,将不描述众所周知或常规的细节。
[0030]说明书中提及“一个实施例(one embodiment or an embodiment)”意指结合实施例描述的特定特征、结构、或特性可包括在本专利技术的至少一个实施例中。说明书中不同位置出现的短语“在一个实施例中”不一定都指代同一个实施例。
[0031]本文描述的一个或多个指令的实施例可以通过不同的格式来体现。另外,下文将详细描述示例性系统、架构、和管道。一个或多个指令的实施例可以在此类系统、架构、和管道上执行,但并不限于这些详细描述。
[0032]指令集可包括一种或多种指令格式。给定指令格式可定义指定要进行的操作(例如,操作码)和要进行该操作的一个或多个操作数的各种字段(例如,位的数目、位的位置)和/或其他一个或多个数据字段(例如,掩码)。通过指令模板(或子格式)的定义进一步分解一些指令格式。例如,给定指令格式的指令模板可被定义为具有该指令格式的字段的不同子集(所包括的字段通常按相同顺序排列,但因为包括的字段较少因此至少一些字段具有不同的位位置)和/或被定义为具有以不同方式进行解析的给定字段。因此,指令集架构(ISA)的每条指令是使用给定指令格式(并且如果被定义,则以该指令格式的指令模板中的给定的一个指令模板)表达的并且包括用于指定操作和操作数的字段。例如,示例性ADD指令具有特定操作码和以下指令格式,该指令格式包括用于指定操作码的操作码字段和用于选择操作数(源1/目的地和源2)的操作数字段;并且指令流中出现的这种ADD指令在操作数字段中具有选择特本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器,包括:指令解码器,用以对指令进行解码,所述指令包括第一操作数和第二操作数;执行单元,与所述指令解码器耦合,所述执行单元响应于所述指令以:读取存储在所述第二操作数中的数据块;以及将所述第二操作数存储在引擎中的数据缓冲器和预取数据缓存中,以进行数据压缩和数据解压缩,所述引擎包括压缩/解压缩单元,用以对存储在所述数据缓冲器中的所述第二操作数进行压缩,所述引擎提供已压缩数据块并将所述已压缩数据块存储在存储器中的多个相邻块中。2.根据权利要求1所述的处理器,其中,所述第一操作数是所述存储器中的存储器位置。3.根据权利要求2所述的处理器,还包括:缓存控制器,其中,所述引擎在所述缓存控制器中并且所述存储器为末级缓存。4.根据权利要求2所述的处理器,还包括:集成存储器控制器,其中,所述引擎在所述集成存储器控制器中并且所述存储器通信地耦合到所述处理器。5.根据权利要求1所述的处理器,其中,要被所述引擎压缩的数据是只读数据。6.根据权利要求1所述的处理器,其中,所述第二操作数是向量寄存器。7.根据权利要求6所述的处理器,其中,所述向量寄存器为512位。8.一种方法,包括:对处理器的指令解码器中的指令进行解码,所述指令包括第一操作数和第二操作数;响应于所述指令,通过执行单元读取存储在所述第二操作数中的数据块;以及通过所述执行单元将所述第二操作数存储在引擎中的数据缓冲器和预取数据缓存中,以进行数据压缩和数据解压缩,所述引擎包括压缩/解压缩单元,用以对存储在所述数据缓冲器中的所述第二操作数进行压缩,所述引擎提供已压缩数据块并将所述已压缩数据块存储在存储器中的多个相邻块中。9.根据权利要求8所述的方法,其中,所述第一操作数是所述存储器中的存储器位置。10.根据权利要求9所述的方法,其中,所述引擎在缓存控制器中并且所...

【专利技术属性】
技术研发人员:王哲阿拉
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1