Instruction sets for variable length integer decoding and associated methods and devices. These instruction sets include instructions for encoding and decoding variables, and can be included as instruction set architectures (ISAs) for processor architectures such as x86 and Arm-based architectures and other ISAs. In one aspect, instructions include: variable size encoding instructions for encoding the size of variables; variable encoding instructions for encoding variables; variable size decoding instructions for decoding the size of encoded variables; and variable decoding instructions for decoding encoded variables. Varint coded size instructions and varint coded instructions can be combined in a single instruction. Similarly, variable decoding size instructions and variable decoding instructions can be combined in a single instruction. In one aspect, instructions use a variable length quantum (VLQ) encoding scheme in which varint is encoded into one or more octet groups.
【技术实现步骤摘要】
【国外来华专利技术】用于可变长度整数译码的指令集背景信息诸如谷歌、脸书、微软和亚马逊之类的公司大规模地处理数据。用于云计算和大型互联网服务的计算平台通常被托管在大型数据中心中,该大型数据中心被称为仓库规模计算机(WSC)。此类仓库规模计算机的设计挑战相当不同于传统服务器或托管服务的那些设计挑战,并且并强调跨数千个计算节点的互联网规模服务的系统设计,以用于大规模的性能和成本效率。它们的数据处理中的很大一部分涉及处理大型整数。最近,谷歌的研究人员发表了论文(Kanev,Svilen等,“Profilingawarehouse-scalecomputer(对仓库规模计算机进行概况分析)”.2015年ACM/IEEE第42届国际计算机架构研讨会(ISCA).IEEE,2015),他们在该论文中报告了关于大约三年时间中一系列谷歌生产集群的工作负荷的概况分析信息。尽管研究人员在应用内发现了某种热点行为,但他们标识出构成总数据中心周期中的很大部分的跨应用的公共程序。这些热点中的大部分在功能上对于执行超越单个机器的计算是唯一的——称为“数据中心负担(tax)”的组件,诸如,远程程序调用、协议缓冲器串行化和压缩。研究人员推测,此类“负担”呈现用于微架构优化(例如,核内和核外加速器)的有趣的机会,其可被应用到未来的数据中心优化的服务器芯片上系统(SoC)。如图1中所示,WSC周期中的22-27%在数据中心负担的不同组件中被花费。这之中为协议缓冲器处理和管理。根据前述论文,协议缓冲器(Protocolbuffer)是用于谷歌内部数据存储和传输的公共语言。针对WSC的代码中最常见的习惯之一是将数据串行 ...
【技术保护点】
1.一种处理器,包括:电路和逻辑中的至少一者,被配置成用于实现指令的集合,所述指令的集合是用于所述处理器的指令集架构(ISA)的部分,所述指令的集合与对可变长度整数(varint)进行编码和解码有关,所述指令的集合包括,varint尺寸编码指令,用于对varint的尺寸进行编码;varint编码指令,用于对varint进行编码;varint尺寸解码指令,用于对经编码的varint的尺寸进行解码;以及varint解码指令,用于对经编码的varint进行解码。
【技术特征摘要】
【国外来华专利技术】2016.09.30 US 15/281,3801.一种处理器,包括:电路和逻辑中的至少一者,被配置成用于实现指令的集合,所述指令的集合是用于所述处理器的指令集架构(ISA)的部分,所述指令的集合与对可变长度整数(varint)进行编码和解码有关,所述指令的集合包括,varint尺寸编码指令,用于对varint的尺寸进行编码;varint编码指令,用于对varint进行编码;varint尺寸解码指令,用于对经编码的varint的尺寸进行解码;以及varint解码指令,用于对经编码的varint进行解码。2.如权利要求1所述的处理器,其中,所述varint尺寸编码指令包括:将指令标识为varint尺寸编码指令的操作码;标识在其中存储varint的源寄存器的源操作数;以及标识将在其中写入所述varint尺寸编码指令的结果的目的地寄存器的目的地操作数。3.如权利要求1或2所述的处理器,其中,所述varint编码指令包括:将指令标识为varint编码指令的操作码;包括目的地指针(dstptr)的第一操作数;包括在其中存储源varint的64个位或128个位中的一者的源寄存器的第二操作数;以及包括在其中存储所述varint的尺寸的寄存器的第三操作数。4.如前述权利要求中任一项所述的处理器,其中,所述varint编码指令在被执行时执行包括以下各项的操作:将varint转换为包括一个或多个可变长度量(VLQ)八位位组的VLQ编码。5.如前述权利要求中任一项所述的处理器,其中,所述ISA包括并行位转储(PDEP)指令,并且所述varint编码指令在被执行时采用至少一个PDEP指令,每个PDEP指令包括与所述varint的原始或经位移位的部分对应的源操作数、以及包括具有0x7f7f7f7f...模式的掩码的第二操作数。6.如前述权利要求中任一项所述的处理器,其中,所述varint尺寸解码指令包括:将指令标识为varint尺寸解码指令的操作码;标识将在其中写入所述varint尺寸解码指令的结果的目的地寄存器的目的地操作数;以及指向将由所述varint尺寸解码指令进行解码的经编码的varint的位置的源指针。7.如权利要求6所述的处理器,其中,所述varint编码指令在被执行时执行包括以下各项的操作:开始于经编码的varint的第一个字节,对一个或多个顺序字节中的每个顺序字节求值,直到确定正在被求值的字节的最高有效位是‘0’;以及将所述varint的以字节为单位的尺寸存储在目的地寄存器中,所述尺寸等于被求值的字节的数量。8.如前述权利要求中任一项所述的处理器,其中,所述varint解码指令包括:将指令标识为varint解码指令的操作码;包括在其处写入所述varint解码指令的结果的目的地的第一操作数;指向将由所述varint解码指令进行解码的经编码的varint的位置的源指针;以及标识在其中存储所述varint的尺寸的寄存器的第三操作数。9.如前述权利要求中任一项所述的处理器,其中,所述处理器采用基于Arm的微架构。10.如前述权利要求中任一项所述的处理器,其中,所述处理器采用基于x86的微架构。11.一种非瞬态机器可读介质,具有存储于其上的半导体设计数据,所述半导体设计数据定义用于处理器中的指令集架构(ISA)的电路和逻辑,所述ISA包括与对可变长度整数(varint)进行编码和解码有关的指令的集合,所述指令的集合包括,varint尺寸编码指令,用于对varint的尺寸进行编码;varint编码指令,用于对varint进行编码;varint尺寸解码指令,用于对经编码的varint的尺寸进行解码;以及varint解码指令,用于对经编码的varint进行解码。12.如权利要求11所述的非瞬态机器可读介质,其中,所述varint尺寸编码指令包括:将指令标识为varint尺寸编码指令的操作码;标识在其中存储varint的源寄存器的源操作数;以及标识将在其中写入所述varint尺寸编码指令的结果的目的地寄存器的目的地操作数。13.如权利要求11或12所述的非瞬态机器可读介质,其中,所述varint编码指令包括:将指令标识为varint编码指令的操作码;包括目的地指针(dstptr)的第一操作数;包括在其中存储源varint的64个位或128个位中的一者的源寄存器的第二操作数;以及包括在其中存储所述varint的尺寸的寄存器的第三操作数。14.如权利要求11-13中任一项所述的非瞬态机器可读介质,其中,所述varint编码指令在被执行...
【专利技术属性】
技术研发人员:J·D·吉尔福德,V·戈帕尔,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。