CN103748550B - 用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备 - Google Patents

用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备 Download PDF

Info

Publication number
CN103748550B
CN103748550B CN201280040750.0A CN201280040750A CN103748550B CN 103748550 B CN103748550 B CN 103748550B CN 201280040750 A CN201280040750 A CN 201280040750A CN 103748550 B CN103748550 B CN 103748550B
Authority
CN
China
Prior art keywords
instruction
layout
instructions
index
selection type
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.)
Expired - Fee Related
Application number
CN201280040750.0A
Other languages
English (en)
Other versions
CN103748550A (zh
Inventor
谢尔盖·拉林
卢西恩·科德雷斯库
安舒曼·达斯古普塔
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103748550A publication Critical patent/CN103748550A/zh
Application granted granted Critical
Publication of CN103748550B publication Critical patent/CN103748550B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • 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
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种压缩程序指令的序列的方法通过检查程序指令流以识别满足参数的两个或两个以上指令的序列而开始。由选定类型的布局指令替代所述经识别的两个或两个以上指令的序列,接着压缩所述选定类型的布局指令。一种解压缩方法将X索引和Y索引作为压缩值一起存取。将所述压缩值解压缩为选定类型的布局指令,将所述选定类型的布局指令解码并用两个或两个以上指令的序列替代。一种用于解压缩的设备包含用于存储压缩指令的存储子系统,其中压缩指令包括X索引和Y索引。解压缩器被配置用于将从所述存储子系统存取的X索引和Y索引翻译为选定类型的布局指令,将所述选定类型的布局指令解码并用两个或两个以上指令的序列替代。

Description

用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备
相关申请案的交叉参考
2011年5月3日申请的标题为“用于存储和翻译内嵌在存储器层级内的熵编码软件的方法和设备(MethodsandApparatusforStorageandTranslationofEntropyEncodedSoftwareEmbeddedwithinaMemoryHierarchy)”的第13/099,463号美国专利申请案具有与本申请案相同的受让人,为相关申请案,且在此全文以引用的方式并入本文中。
技术领域
本发明大体涉及具有用于改进内嵌应用中的代码密度的压缩指令集的处理器,且更特定来说涉及用于产生指令序列的经压缩表示、存储所述经压缩指令序列且将所述经压缩指令序列翻译为可执行机器译码程序指令的技术。
背景技术
例如蜂窝式电话、膝上型计算机、个人数字助理(PDA)等许多便携式产品需要使用执行程序支持通信和多媒体应用的处理器。此类产品的处理系统包含一个或一个以上处理器,每一者具有针对指令、输入运算数和执行结果的存储装置。举例来说,针对处理器的指令、输入运算数和执行结果可存储在由通用寄存器堆、多层指令高速缓冲存储器、数据高速缓冲存储器和系统存储器组成的层级式存储器子系统中。
为了提供高代码密度,可使用原生指令集架构(ISA),其具有两个指令格式,例如作为32位指令格式的子集的16位指令格式。在许多情况下,所取得的16位指令由处理器在允许执行硬件经设计为仅支持32位指令格式的解码过程之前或之中变换为32位指令。作为32位指令的子集的16位指令的使用是限制可编码为16位格式的信息的量的约束。举例来说,16位指令格式可限制可指定的可寻址源运算数寄存器和目的地寄存器的数目。16位指令格式例如可使用3位或4位寄存器堆地址字段,而32位指令可使用5位字段。如果两个格式在程序中部分归因于指令寻址约束(例如,形成分支到16位和32位指令)而混合,那么处理器管线复杂性也可能增加。并且,代码压缩的要求依据不同程序而变化,从而使针对一个程序选择的固定16位指令格式不太有利于由不同程序使用。在此方面,现有处理器的传统代码可能不能有效地利用两个指令格式来显著改进代码密度且满足实时要求。这些和其它约束限制了具有作为标准大小指令中使用的字段的子集的字段的缩减大小指令的效力。
发明内容
在本发明的若干方面中,本发明的实施例解决了改进代码密度的需要,方法是通过压缩程序指令的序列、存储经压缩序列并将所述经压缩序列翻译为可执行指令序列。本文提出的技术允许针对内嵌软件极其有效地利用存储装置和发射管道。
为实现此些目的,本发明的一实施例应用一种压缩程序指令的序列的方法。识别满足参数的两个或两个以上指令的序列。两个或两个以上指令的经识别序列由选定类型的布局指令替代。所述选定类型的布局指令经压缩为压缩值的X索引和Y索引对。
本发明的另一实施例提出一种将表示指令序列的压缩值解压缩的方法。X索引和Y索引作为压缩值一起存取。所述压缩值解压缩为选定类型的布局指令。将所述选定类型的布局指令解码以用两个或两个以上指令的序列替代所述选定类型的布局指令。
本发明的另一实施例提出一种用于将表示指令序列的压缩值解压缩的设备。存储子系统经配置用于存储经压缩指令,其中经压缩指令包括X索引和Y索引。解压缩器经配置用于将从存储子系统存取的X索引和Y索引翻译为选定类型的布局指令。解码器经配置用于用两个或两个以上指令的序列替代所述选定类型的布局指令。
从以下具体实施方式和附图将了解对本发明实施例的更完整理解以及本发明的更多特征和优点。
附图说明
图1是其中可有利地采用本发明的实施例的示范性无线通信系统的框图;
图2是根据本发明的实施例经设计用于高效且低成本运行时解压缩的代码压缩系统;
图3说明根据本发明的实施例将基于混合掩码的指令分裂为具有字节重叠填补位的X样式和Y样式的指令分割过程的示范性元件;
图4是根据本发明的实施例的解压缩器和执行系统,其中以压缩形式存储在层2高速缓冲存储器和层1高速缓冲存储器中的程序经解压缩以供执行;
图5说明根据本发明的实施例包括第一未压缩极长指令字(VLIW)包和第一经压缩VLIW包的示范性VLIW包格式;
图6说明根据本发明的实施例包括第二未压缩VLIW包、第二VLIW压缩包和第三VLIW压缩包的示范性VLIW包格式;
图7说明根据本发明的实施例支持VLIW压缩包的无操作(NOP)和功能指令组合的示范性列表;
图8说明根据本发明的实施例包括包含频繁使用的指令对的第三未压缩VLIW包和第四VLIW压缩包的示范性VLIW包格式;
图9A说明根据本发明的实施例用于压缩程序指令的序列的过程;
图9B说明根据本发明的实施例用于将表示压缩程序指令的序列的压缩值解码的过程;以及
图10说明根据本发明的实施例的示范性解压缩状态图。
具体实施方式
现将参看附图更充分描述本发明,附图中展示本发明的若干实施例。然而,本发明可以各种形式体现且不应解释为限于本文陈述的实施例。而是,提供这些实施例使得本发明将为详尽和完整的,且将把本发明的范围完全传达给所属领域的技术人员。
供在上面操作或用于实行根据本发明的教示的操作的计算机程序代码或“程序代码”可初始以例如C、C++、Smalltalk、VisualTSQL、Perl等高级编程语言或以各种其它编程语言编写。通过使用以原生指令格式编码的指令将高级程序代码转换为原生汇编程序而将以这些语言的一者编写的源程序或源代码编译为目标处理器架构。举例来说,指令集架构(ISA)的原生指令格式可为固定位数,例如32位格式或16位格式,或可为可变位数,例如32位格式与16位格式的组合。目标处理器架构的程序还可直接以原生汇编语言编写。原生汇编程序使用机器级二进制指令的指令助记符表示。如本文使用的编译器或人类编程员产生的程序代码或计算机可读媒体指代例如格式可由处理器理解的目标代码等机器语言代码。
图1说明其中可有利地采用本发明的实施例的示范性无线通信系统100。出于说明的目的,图1展示三个远程单元120、130和150以及两个基站140。将认识到,常见无线通信系统可具有更多远程单元和基站。包含如分别由组件125A、125C、125B和125D表示的硬件组件、软件组件或两者的远程单元120、130、150以及基站140已经过调适以体现如下文进一步论述的本发明。图1展示从基站140到远程单元120、130和150的前向链路信号180,以及从远程单元120、130和150到基站140的反向链路信号190。
在图1中,远程单元120展示为移动电话,远程单元130展示为便携式计算机,且远程单元150展示为无线本地回路系统中的固定位置远程单元。借助实例,远程单元或者可为蜂窝式电话、寻呼机、对讲机、手持式个人通信系统(PCS)单元、例如个人数字助理等便携式数据单元,或例如仪表读取设备等固定位置数据单元。尽管图1说明根据本发明的教示的远程单元,但本发明不限于这些示范性的所说明的单元。本发明的实施例可适当地用于任何处理器系统中。
图2是根据本发明的实施例的经设计用于高效且低成本运行时解压缩的用于代码压缩的压缩系统200。压缩系统200包含如上文描述的源代码和源代码中呈未压缩形式的二进制库文件,以及包括正编译的当前程序应用的库文件204。压缩系统200还包含编译器和链接器206以及任选的简档反馈信息208,其用于基于原生指令集架构(ISA)格式和支持的数据区段212产生链接的可执行代码210。原生ISA由固定未压缩格式表示且可表示多种方法,包含(例如)固定64或32或16位编码以及此些编码的混合。原生ISA是针对通常效用开发且并非特定为特定应用定制。通过维持固定字边界(例如,32位指令字边界),尽管16位和32位指令可一起混合在代码中,但也可使用仅支持分支、调用、返回等的固定字地址的寻址模型。
从此ISA选择的指令可依据当前应用压缩和定制,同时维持代码的可寻址性且保证快速、固定的等待解压缩时间。此压缩可经自动化以在线性时间内产生经压缩代码。原生ISA具有低信息熵,其根据本发明的实施例通过针对给定源代码和库文件204产生定制熵限界编码而增加。当前上下文中的信息熵被界定为程序的当前表示中的信息内容的量度。信息熵可视为使用原生指令符号的程序的当前表示与使用压缩符号的程序的最短可能表示(其保留了程序的原始功能性)之间的比率。用于产生压缩程序的字母表的粒度处在个别字节等级,作为计算系统中的极微小可存储且可寻址实体。两种程序表示中保留的信息内容为程序的原始功能性。举例来说,熵“1”可以其最短可能表示形式表示一个特定确切程序。具有小于“1”的熵的程序指示可支持一个以上程序,且可能可支持非常大数目的程序,这需要存储器中增加的存储容量。
在图2中,提供链接的可执行代码210作为到翻译工具216的输入,翻译工具216产生经压缩代码218和解码表220。经压缩代码218和支持数据区段212存储在存储装置214中,例如硬盘、光盘、内嵌式装置的快闪存储器,或可从其将选定代码提供到处理器复合体203以供执行的其它此类存储媒体。处理器复合体203包含主存储器222、层2高速缓冲存储器(L2高速缓冲存储器)224、层1指令高速缓冲存储器(L1高速缓冲存储器)226和处理器核心228。处理器核心228包含具有根据实施例的翻译存储器(TM)232和执行管线234的解码器230。经压缩代码存储在存储装置214、主存储器222、L2高速缓冲存储器224和L1高速缓冲存储器226中。经解压缩代码通常从L1高速缓冲存储器226取得且由执行管线234执行。下文更详细描述用于产生经压缩代码218且用于在解码器230中解码经压缩指令的翻译工具216的各个实施例。
处理器复合体203可适当地用于图1的组件125A-125D中,用于执行以经压缩形式存储在L1Icache226、L2高速缓冲存储器224和主存储器222中的程序代码。为了论述的清晰,未展示可连接到处理器复合体的外围装置。处理器核心228可为通用处理器、数字信号处理器(DSP)、专用处理器(ASP)等。处理器复合体203的各个组件可使用专用集成电路(ASIC)技术、现场可编程门阵列(FPGA)技术或其它可编程逻辑、离散门或晶体管逻辑,或适于既定应用的任何其它可用的技术实施。尽管展示单一处理器核心228,但本发明的实施例的压缩指令的处理适用于超标量设计和实施并行管线的其它架构,例如多线程、多核心,和极长指令字(VLIW)设计。
图3说明根据本发明的实施例将基于二进制混合掩码(MM)304的原生ISA固定大小指令A302分裂为具有重叠填补位310和312的Ax样式306和Ay样式308的指令分割过程的示范性元件300。填补位归因于现代存储器系统强加的要求而产生,以至少以字节粒度片段表示指令和数据。具有字节粒度片段的格式的使用用于提供压紧表示,从而允许位粒度上的存储重叠,同时满足存储系统的字节粒度要求。
为压缩原生ISA代码片段,将代码片段分割为指令群组,每一群组贡献单一共享X样式和一组唯一Y样式。Ax样式306表示对于指令A所属的指令群组为共同的位样式。Ay样式308表示体现原生指令A302与Ax样式306之间的差异的位样式。注意,代码片段可分割为1与N之间的任何数目的群组,其中N为代码片段中的原生指令的数目。代码片段的X样式存储在包括X存储器的X词典中,且代码片段的Ay样式存储在包括Y存储器的Y词典中。X索引是X存储器中的位置的地址,且Y索引是Y存储器中的位置的地址。这两个索引、来自X和Y词典的样式以及二进制混合掩码的组合确切地表示原生指令。
压缩操作314使用代码片段的至少一个混合掩码304从原生指令302选择Ax样式306和Ay样式308。在以下实例中,十六进制数字或hex数字用“0x”前缀表示。举例来说,原生指令302[0x9F6D0121]与混合掩码304[0xFF80FF80]组合以产生Ax样式306[0x9F00(8,9,A,B)]和Ay样式308[0xDA8(4,5,6,7)]。括号中的数字(例如,(8,9,A,B))表示由于重叠填补位310的两个“无关”状态的缘故可从其选择一个数字以用于特定4位位置的可能数字的集合。解码器228解压缩操作316使用代码片段的所述至少一个混合掩码、X索引取得的X存储器样式和Y索引取得的Y存储器样式来解压缩经压缩指令。举例来说,混合掩码304[0xFF80FF80]与从X存储器取得的Ax样式306,[0x9F00(8,9,A,B)]以及从Y存储器取得的Ay样式308,[0xDA8(4,5,6,7)]组合,以产生原生指令302[0x9F6D0121]。
如上文描述,X样式和Y样式分别存储在字节可寻址X存储器和字节可寻址Y存储器中。X样式、Y样式或两者的索引压缩利用一过程,所述过程消除副本X样式和副本Y样式且使填补位重叠(例如,字节可寻址位置中的重叠填补位310和312),因此减少物理存储装置的双重利用。利用单一混合掩码,所有X样式具有相同数目的位,且所有Y样式具有相同数目的位。在不同混合掩码的情况下,有可能具有针对每一原生指令的多种不同X和Y样式。然而,混合掩码的仅几个组合通常提供原生ISA代码片段与经压缩代码片段之间的映射(相对于所测试混合掩码组合的数目占用最小存储空间)。产生需要低存储容量的经压缩代码的单一混合掩码视为近似最佳混合掩码。
图4是根据本发明的实施例的解压缩器和执行系统400,其中以压缩形式存储在L2高速缓冲存储器224和L1高速缓冲存储器226中的程序经解压缩以供在执行管线234中执行。L1高速缓冲存储器226包含XY索引存储器402,其将X索引和Y索引对存储在可寻址位置中,例如具有7位X索引值0x54和9位Y索引值0x134的XY条目404。多路复用器405用于选择关于L1高速缓冲存储器命中406的XY条目,或关于L1高速缓冲存储器226中的未中的来自L2高速缓冲存储器224的XY值407。在L1高速缓冲存储器226和L2高速缓冲存储器224两者中的未中的情况下,使用多路复用器经由路径403从主存储器选择XY条目。在具有索引X寄存器408、索引Y寄存器410、X存储器412、Y存储器414、单一掩码(MM)寄存器416和组合器418的解码器230中实现解压缩操作。解压缩指令存储装置419包含多个未经压缩指令420,其可包含选定类型的布局指令,如下文更详细描述。
在程序加载时或在内嵌式系统启动过程中,主存储器222被加载上压缩代码,X存储器412和Y存储器414被加载上相关联X和Y词典上下文,且单一二进制混合掩码在MM寄存器416中设定。注意,X和Y存储器上下文以及混合掩码可视需要在执行期间再加载。举例来说,再加载可允许将原始代码压缩为多个片段,每一片段具有其自身的定制编码。举例来说,一些复杂的内嵌式系统(例如,智能电话)可从主应用调用多个独立的子过程,所述子过程不共享代码空间且为自含式的。每一此应用可具有其自身的包括X/Y词典和MM的定制编码,其在子过程启动时加载。对于描述的剩余部分,使用具有用于包含任何应用代码的整个系统的图2的单一翻译存储器232和单一编码的解码器230来描述解压缩器系统400。
接下来,执行管线234开始从L1Icache226取得指令。首先,对L1Icache的每次存取可产生未中指示422,从而致使对L2高速缓冲存储器224的存取。首先,对L2高速缓冲存储器224的存取也可产生未中,从而致使对图2的主存储器222的存取,主存储器222以在L2高速缓冲存储器224中加载且经由多路复用器405在路径403上转发到解码器230的经压缩指令响应。解码器230将XY索引压缩指令解压缩为未压缩格式以供存储在解压缩指令存储装置419中且供在执行管线234中执行,如相对于图3的解压缩操作316描述。在操作周期之后,L1Icache226和L2高速缓冲存储器224可达到稳定状态。
从处理器的角度来说,执行管线234尝试取得操作,在L1Icache226中搜索指令的取得地址和控制信号421。L1Icache226可确定指令存在。L1高速缓冲存储器取得操作例如是针对XY条目404,其是L1高速缓冲存储器226中的命中,从而致使XY条目404经由多路复用器405传递到解码器230。XY条目404分裂,其中X索引值0x54在索引X寄存器408中接收,且Y索引值0x134在索引Y寄存器410中接收。在地址0x54处从X存储器412取得的X样式306提供到组合器418。在地址0x134处从Y存储器414取得的Y样式308也提供到组合器418。存储在MM寄存器416中的单一混合掩码(MM)304[0xFF80FF80]进一步提供到组合器418。组合器418根据MM304将来自X样式306的适当位与来自Y样式308的适当位组合以产生原生指令302,原生指令302存储在解压缩指令存储装置419中且传递到执行管线234。
在所描述的系统中,程序内容以暗示加密格式存储。尽管不对指令流执行特定加密类型的数据加扰,但程序代码以应用特定和压缩形式存储在存储装置214、主存储器222、L2高速缓冲存储器224和L1高速缓冲存储器226中。由于程序代码的经编码状态的一部分驻留在翻译存储器232中的处理器核心228(其在最终产品中不容易从外部存取)内部,所以存储装置214以及上部存储器层级222、224和226内容不足以恢复原始程序,从而使得难以分析或复制。
VLIW架构为指令集架构(ISA)设计者提出若干挑战。举例来说,每一VLIW包包括多个指令,每一指令通常绑定到特定执行单元且并行执行。控制转移粒度依据定义是整个VLIW包。此VLIW包的中部可能不存在跳跃目标。在一种方法中,VLIW包可使用针对每一指令的唯一编码存储在存储器中以确定性地识别包中的每一指令。但由于VLIW内编码的指令理应是并行执行的,所以具有完全编码32位指令例如可能浪费存储空间且解码起来较慢因此影响性能。事实上,解码VLIW代码可能是解析连续操作以确定VLIW包边界的循序任务。
另一极端是形成完全用指令填充的VLIW包,包含无操作(NOP)指令,其中每一指令可由其在包中的位置明确地确定。因此,每一包将具有针对可并行操作的每一功能单元的指令时隙位置。举例来说,具有六个指令的并行发布速率的处理器架构将具有六个指令的对应VLIW包。当前框架中的此方法可视为VLIW包的完全未压缩状态化表示。此方法的一个可能益处是VLIW包中每一指令中的位的扩展以增加每一指令的能力。然而,此方法在其自身存储无操作指令的方式方面存在浪费,因为在不依赖并行执行的情况下形成含有所有有用指令的VLIW包难以实现。本发明的实施例引入利用压缩基础结构来最佳地编码VLIW包的不同方法。
图5说明根据本发明的实施例包括第一未压缩极长指令字(VLIW)包502和第一经压缩VLIW包504的示范性VLIW包格式500。第一未压缩VLIW包502包括四个32位指令集架构(ISA)指令,例如32位加法(ADD)指令506、第一32位无操作(NOP)指令507、第二32位NOP指令508和32位分支JUMP指令509。在利用16位ISA的替代实施例中,四个16位指令将例如被存储在未压缩VLIW64位包中。在图5中,两个32位NOP指令507和508是由图2的翻译工具216识别且压缩为如图3所示的X[2nop]压缩字段516和Y[2nop]压缩字段517的两个NOP的序列。ADD指令506和JUMP指令509各自被压缩为对应的X索引和Y索引对压缩值,也如图3所示。因此,第一未压缩VLIW包502经压缩以形成第一压缩VLIW包504。
第一压缩VLIW包504包括表示四个指令506-509的X和Y压缩字段的三个集合。32位ADD指令506由八位X[add]压缩字段514和八位Y[add]压缩字段515表示。第一NOP指令507和第二NOP指令508的序列由八位X[2nop]压缩字段516和八位Y[2nop]压缩字段517表示。X[2nop]压缩字段516和Y[2nop]压缩字段517表示当解码为第一NOP指令507和第二NOP指令508时扩展的两个NOP指令的熵编码序列。JUMP指令509由八位X[jmp]压缩字段518和八位Y[jmp]压缩字段519表示。
图6说明根据本发明的实施例包括第二未压缩VLIW包602、第二VLIW压缩包603和第三VLIW压缩包604的示范性VLIW包格式600。第二未压缩VLIW包602包括四个32位指令,例如第一32位无操作(NOP)指令606、第二32位NOP指令607、32位存储指令608和第三32位NOP指令609。
第二压缩VLIW包603包括表示四个指令606-609的三个X和Y压缩字段。第一NOP指令606和第二NOP指令607的序列由八位X[2nop]压缩字段614和八位Y[2nop]压缩字段615表示。X[2nop]压缩字段614和Y[2nop]压缩字段615表示当解码为第一NOP指令606和第二NOP指令607时扩展的两个ISANOP指令的熵编码序列。32位存储指令608由八位X[store]压缩字段616和八位Y[store]压缩字段617表示。第三NOP指令609由八位X[1nop]压缩字段618和八位Y[1nop]压缩字段619表示。
第二未压缩VLIW包602具有有用位的低利用率,其仅具有由两个群组的NOP606、607和609围绕的一个有效负载指令608。为了提供第二未压缩VLIW包602的比第二压缩VLIW包603所提供的表示更紧密的表示,每包利用专门NOP指令,其对VLIW包内的指令的布局进行编码。此专门NOP指令称为布局NOP。随着VLIW包中指令数目增加以适应较大数目的功能单元,在VLIW包中提供单一布局NOP而非单独编码可包含的每一个别NOP指令变得愈加有利。对于无NOP指令的那些VLIW包,不会浪费存储空间,因为不需要布局NOP。通过将布局NOP指令放置在VLIW包的开始或结尾,与针对“n”指令VLIW包的排序O(n)的循序任务复杂性相比,布局恢复变为排序O(1)的任务复杂性。
第三VLIW压缩包604包括表示四个指令606-609的两个X和Y压缩字段的集合。第一NOP指令606、第二NOP指令607、存储指令608和第三NOP指令609的序列由2nop_LS_lnop指令表示。2nop_LS_lnop指令是引入到当前ISA的新布局NOP指令的实例。2nop_LS_lnop指令识别NOP指令的数目以及NOP指令在NOP指令与存储指令的组合中的放置。两个NOP指令606和607、存储指令608和第三NOP指令609的序列由图2的翻译工具216识别且压缩为如图3所示的X[2nop_LS_lnop]压缩字段622和Y[2nop_LS_lnop]压缩字段623。存储指令608压缩为单一X索引和Y索引对,也如图3所示。因此,第二未压缩VLIW包602经压缩以形成第三VLIW压缩包604。举例来说,X[2nop_LS_lnop]压缩字段622和Y[2nop_LS_lnop]压缩字段623表示当解码为第一NOP指令606和第二NOP指令607、针对存储指令的占位符以及第三NOP指令609时各自扩展的两个ISANOP指令、存储指令和第三NOP指令的熵编码序列。32位存储指令608由针对存储指令的占位符填充的八位X[store]压缩字段624和八位Y[store]压缩字段625表示。
图7说明根据本发明支持VLIW压缩包的无操作(NOP)和功能指令组合的示范性列表700。布局NOP列702含有经编码以表示四个指令的序列的布局NOP指令条目。举例来说,四个指令的序列包括NOP指令(N)、算术逻辑单元指令(A)、加载或存储指令(LS)和控制指令(C)的组合。算术逻辑单元1(ALU1)VLIW位置列704含有经编码以表示ALU1指令或NOP指令的条目。ALU2VLIW位置列705含有经编码以表示ALU2指令或NOP指令的条目。加载或存储VLIW位置列706含有经编码以表示加载或存储(LD/ST)指令或NOP指令的条目。控制VLIW位置列707含有经编码以表示控制指令或NOP指令的条目。举例来说,线条目708是表示四个NOP指令(4N)且在每一时隙列704-707中具有NOP指令的布局NOP指令。在另一实例中,线条目709是表示三个NOP指令(3N)和一控制指令(C)且在每一时隙列704-706中具有NOP指令以及在时隙列707中具有控制指令的布局NOP指令。在又一实例中,线条目710是表示每一时隙列704和705中的两个NOP指令(2N)、时隙列706中的加载或存储指令(LD/ST)以及时隙列707中的另一NOP指令(N)的布局NOP指令。线条目710的2N_LS_N布局NOP指令可对应于图6的第三VLIW压缩包604。并且,注意,图7中的列702的布局NOP指令不依赖于应用,且通常取决于基本VLIW架构。
使用布局NOP指令的方法可扩展以引入针对特定应用定制的新自定义指令,但可解码到现有ISA空间。举例来说,如果在程序评估过程期间,确定一个或一个以上特定VLIW包以高频率在指令流中出现,那么每一不同VLIW包可编码为单一专门布局指令。VLIW包中此频繁使用的指令的序列由图2的翻译工具216识别且压缩为如图3所示的单一X压缩字段和单一Y压缩字段。因此,多个专门布局指令可包含在ISA中,使用ISA的未使用编码用于解码目的,以及用于压缩频繁使用的指令的序列,如下文更详细描述。注意,不同于布局NOP指令,所述多个专门布局指令是依赖于应用的。
图8说明根据本发明的实施例包括包含频繁使用的指令对的第三未压缩VLIW包802和经压缩专门布局指令804的示范性VLIW包格式800。第三未压缩VLIW包802包括四个32位指令,例如比较相等(P1=cmp.eq(r0,0))指令806、第一无操作(NOP)指令807、第二NOP指令808和分支返回指令809。比较相等指令806和返回指令809包括频繁使用的指令对。使用频率可依据在图2的处理器复合体203上运行的程序的分析确定。此使用频率分析可例如在模拟环境中动态确定或在图2的编译器和链接器206中静态确定。
第三未压缩VLIW包802可由cmp_2nop_return指令表示,其是引入到当前ISA的专门布局指令的实例。cmp_2nop_return指令由图2的翻译工具216识别且压缩为如图3所示的X[cmp_2nop_return]压缩字段822和Y[cmp_2nop_return]压缩字段823。因此,第三未压缩VLIW包802经压缩以形成经压缩专门布局指令804。
经压缩专门布局指令804包括表示四个指令806-809的两个X和Y压缩字段。比较相等指令806和返回指令809的频繁使用的序列由八位X[cmp_2nop_return]压缩字段822和八位Y[cmp_2nop_return]压缩字段823表示。X[cmp_2nop_return]压缩字段822和Y[cmp_2nop_return]压缩字段823表示当解码为比较相等指令806、两个NOP指令807和808以及分支返回指令809时扩展的两个频繁使用的ISA指令的熵编码序列。
图9A说明根据本发明的实施例用于压缩程序指令的序列的过程900。在框902处,接收来自程序指令流的指令。在框904处,根据参数检查程序指令流以寻找两个或两个以上指令的序列。两个32位指令的序列的示范性参数可为包括两个指令的序列的64位样式。在另一实施例中,两个指令的序列的参数可为两个汇编器指令记忆术的序列,每一者表示ISA中的一指令。VLIW包中的此频繁使用的指令序列可由编译器(例如,图2的编译器206)或翻译工具(例如,图2的翻译工具216)识别。从程序指令流接收指令,可接着一次将两个指令与参数比较以指示是否已发现两个指令的序列。举例来说,第一参数可指示两个NOP指令的序列。第二参数可指示三个NOP指令的序列。所述参数还可指示特定指令序列的列表中的条目,例如NOP与功能指令组合的示范性列表700。参数的其它实例可依据应用确定,例如经设定以指示频繁使用的指令序列的参数,如参看图8描述。
在决策框906处,作出是否已发现两个或两个以上指令的当前序列满足参数的确定。如果两个或两个以上指令的当前序列不满足参数,那么过程900返回到框904。如果两个或两个以上指令的当前序列满足参数,那么过程900进行到框908。在框908处,用与参数相关联的选定类型的布局指令替代两个或两个以上指令的序列。在框910处,将选定类型的布局指令压缩为X压缩字段和Y压缩字段。过程900接着返回到框904。
图9B说明根据本发明的实施例用于将表示程序指令序列的压缩值解码的过程950。在框952处,接收来自压缩指令流的压缩指令。在框954处,将所接收X压缩字段和Y压缩字段解压缩例如为选定类型的布局指令。过程950重复以将每一所接收的压缩指令解压缩。在框956处,根据布局指令的解码用两个或两个以上指令替代示范性选定类型的布局指令。在框958处,执行所述两个或两个以上指令,这针对框958处接收的所述两个或两个以上指令完成过程950。
图10说明根据本发明的实施例的示范性解压缩状态图1000。解压缩状态图1000说明经压缩专门布局指令1002(例如,经压缩专门布局指令804)进入以确定经解压缩指令1005以供在处理器管线上执行的状态。图10展示包括例如主存储器222、L2高速缓冲存储器224和L1高速缓冲存储器226的存储器层级1006中的经压缩专门布局指令1002。处理器核心228包括经压缩指令解码器1008和执行管线234。获取操作1007从存储器层级1006将经压缩专门布局指令1002检索到经压缩指令解码器1008。经压缩指令解码器1008经配置以使用X[cmp_2nop_return]1003作为X索引来存取X存储器1010以获得X位样式,且使用Y[cmp_2nop_return]1004作为Y索引以存取Y存储器1011来获得Y位样式。在组合器1014中应用适当混合掩码(MM)1012,组合器1014经配置以根据MM1012将X位样式与Y位样式组合,且将获取操作1016期间的经翻译值提供到处理器核心228。举例来说,经翻译值可为32位cmp_2nop_return指令1018。解码器230可操作以在解码操作1020中解码32位cmp_2nop_return指令1018,并将经解码输出作为未经压缩VLIW包1005提供到执行管线234。未经压缩VLIW包1005包括比较相等指令1022、第一NOP指令1023、第二NOP指令1024和返回指令1025。两个NOP指令1023和1024作为解码操作1020的一部分插入,借此不需要在存储器层级1006中针对这两个指令的存储区域。ALU1执行单元1032、ALU2执行单元1033、加载/存储(LD/ST)执行单元1034和控制执行单元1035各自可配置以执行对应的指令1022-1025。
结合本文揭示的实施例描述的方法可体现在硬件与软件的组合中,所述软件为存储在非瞬时计算机可读存储媒体中且可由处理器执行的计算机可读指令的程序或序列。计算机可读指令的程序或序列可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程只读存储器(EPROM)、硬盘、可拆卸盘、磁带、压缩光盘只读存储器(CD-ROM),或此项技术中已知或将来将提出的任何其它形式的存储媒体中。存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息以及在一些情况下向存储媒体写入信息。存储媒体到处理器的耦合可为与电路实施方案一体的直接耦合,或可利用一个或一个以上接口,从而支持直接存取或使用下载技术的数据串流。
虽然在用于处理器中的说明性实施例的上下文中揭示本发明,但将认识到,所属领域的一般技术人员可依据以上论述和所附权利要求书采用广泛多种实施方案。举例来说,在替代实施例中,图2的解码器230可在系统中放置在层2(L2)高速缓冲存储器之后,其中主存储器和L2高速缓冲存储器存储经压缩指令,且层1(L1)高速缓冲存储器存储未经压缩指令。在此系统中,主存储器和L2高速缓冲存储器将还存储两个或两个以上指令的压缩序列。

Claims (22)

1.一种压缩程序指令的序列的方法,所述方法的特征在于:
识别满足参数(904、906)的极长指令字VLIW包(602)的一个指令时隙(704)中的第一指令(606)以及不同指令时隙(705)中的第二指令(607);以及
根据所述参数以压缩形式(614、615、910)用选定布局指令(710、908)替代所述VLIW包中的经识别的第一指令和第二指令,其中以压缩形式(616、617)使用在所述第一指令和所述第二指令被替代之后保持在所述VLIW包中的指令(608),其中所述选定布局指令不由处理器执行单元来执行。
2.根据权利要求1所述的方法,其中所述参数指示两个无操作NOP指令,且其中每一NOP指令位于单独指令时隙中。
3.根据权利要求2所述的方法,其中所述替代包括:
用表示所述两个NOP指令的单一布局指令替代所述两个NOP指令。
4.根据权利要求1所述的方法,其中所述参数指示作为一个或一个以上无操作NOP指令与一个或一个以上功能指令的组合的两个或两个以上指令。
5.根据权利要求4所述的方法,其中所述替代包括:
用将所述第一和第二指令识别为NOP指令且识别所述NOP指令在所述VLIW中的放置的单一布局指令替代所述第一指令和所述第二指令。
6.根据权利要求1所述的方法,其中所述参数指示所述第一指令和所述第二指令是频繁使用的指令对。
7.根据权利要求6所述的方法,其中所述替代包括:
用识别所指示的指令对中的每一指令以及每一指令在所述VLIW中的放置的单一布局指令替代所指示的指令对。
8.根据权利要求1所述的方法,其中所述第一指令和所述第二指令包括两个指令的VLIW包,其中呈压缩形式的所述选定布局指令为呈压缩形式的所述VLIW包。
9.根据权利要求1所述的方法,其进一步包括:
将所述选定布局指令压缩为压缩值的第一X索引和第一Y索引对,其中所述VLIW包包含所述第一指令、所述第二指令和第三指令;
将所述第三指令压缩为压缩值的第二X索引和第二Y索引对;以及
将压缩值的所述第一X索引和第一Y索引对以及压缩值的所述第二X索引和第二Y索引对存储在用于所述VLIW包的压缩存储的存储器中。
10.根据权利要求1所述的方法,其中所述VLIW包包含所述第一指令、所述第二指令和第三指令,且具有指令替代的所述VLIW包包含呈压缩形式的所述选定布局指令和呈压缩形式的所述第三指令。
11.一种将表示两个或两个以上指令的压缩值解压缩的方法,所述方法的特征在于:
将X索引(1003)和Y索引(1004)作为压缩值(1002)一起存取;
将所述压缩值解压缩(1010-1012、1014)为表示两个或两个以上指令的选定类型的布局指令(1018);以及
将所述选定类型的布局指令解码(230)以在由所述选定类型的布局指令指定以供并行执行(1032-1035)的极长指令字(VLIW)内的位置中用所述两个或两个以上指令(1022-1025)替代所述选定类型的布局指令,其中所述选定类型的布局指令不由处理器执行单元来执行。
12.根据权利要求11所述的方法,其中所述解压缩包括:
根据所述X索引从X样式存储器选择X样式;
根据所述Y索引从Y样式存储器选择Y样式;以及
根据混合掩码将所述X样式与所述Y样式组合以产生所述选定类型的布局指令。
13.根据权利要求11所述的方法,其中所述选定类型的布局指令指示两个无操作NOP指令。
14.根据权利要求11所述的方法,其中所述选定类型的布局指令指示作为一个或一个以上无操作NOP指令与一个或一个以上功能指令的组合的两个或两个以上指令。
15.根据权利要求11所述的方法,其中所述选定类型的布局指令指示频繁使用的指令对,识别所述指令对的每一指令以及供执行的每一指令的放置。
16.根据权利要求11所述的方法,其中基于从处理器核心的存储器层级的指令获取而实现所述解压缩。
17.一种用于将表示两个或两个以上指令的压缩值解压缩的设备,所述设备的特征在于:
存储子系统(1006),其经配置用于存储压缩指令,其中压缩指令(1002)包括X索引(1003)和Y索引(1004);
解压缩器(1010-1012、1014),其经配置用于将从所述存储子系统存取的X索引和Y索引翻译为选定类型的布局指令(1018),所述选定类型的布局指令(1018)表示由所述选定类型的布局指令指定的极长指令字VLIW包内的两个或两个以上指令,其中所述选定类型的布局指令不由处理器执行单元来执行;以及
解码器(230),其经配置用于在由所述选定类型的布局指令指定的所述VLIW包内的位置中用所述两个或两个以上指令(1022-1025)替代所述选定类型的布局指令。
18.根据权利要求17所述的设备,其中所述解压缩器包括:
X样式存储器,其可操作以存储根据所述X索引选择的X样式;
Y样式存储器,其可操作以存储根据所述Y索引选择的Y样式;以及
组合器,其经配置用于根据混合掩码将选定X样式与选定Y样式组合以产生所述选定类型的布局指令。
19.根据权利要求17所述的设备,其中所述两个或两个以上指令是两个无操作NOP指令。
20.根据权利要求17所述的设备,其中所述两个或两个以上指令是一个或一个以上无操作NOP指令与一个或一个以上功能指令的组合。
21.根据权利要求17所述的设备,其中所述两个或两个以上指令是频繁使用的指令对。
22.根据权利要求17所述的设备,其中所述存储子系统包括:
层1指令高速缓冲存储器,其经配置以存储所述压缩指令。
CN201280040750.0A 2011-07-28 2012-07-30 用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备 Expired - Fee Related CN103748550B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/192,916 2011-07-28
US13/192,916 US10120692B2 (en) 2011-07-28 2011-07-28 Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form
PCT/US2012/048904 WO2013016737A1 (en) 2011-07-28 2012-07-30 Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form

Publications (2)

Publication Number Publication Date
CN103748550A CN103748550A (zh) 2014-04-23
CN103748550B true CN103748550B (zh) 2016-07-06

Family

ID=46604609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280040750.0A Expired - Fee Related CN103748550B (zh) 2011-07-28 2012-07-30 用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备

Country Status (7)

Country Link
US (1) US10120692B2 (zh)
EP (1) EP2737397A1 (zh)
JP (1) JP5869125B2 (zh)
KR (1) KR101584660B1 (zh)
CN (1) CN103748550B (zh)
IN (1) IN2014CN00678A (zh)
WO (1) WO2013016737A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
US20140365884A1 (en) * 2012-03-30 2014-12-11 Google Inc. Voice command recording and playback
US9330001B2 (en) * 2012-05-21 2016-05-03 Zeropoint Technologies Ab Cache system and a method of operating a cache memory
US9389854B2 (en) 2013-03-15 2016-07-12 Qualcomm Incorporated Add-compare-select instruction
KR102210997B1 (ko) * 2014-03-12 2021-02-02 삼성전자주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US10063665B2 (en) * 2015-02-18 2018-08-28 Actmobile Networks, Inc. System and method to eliminate duplicate byte patterns in network streams
US10558808B2 (en) 2016-03-03 2020-02-11 Qualcomm Incorporated Methods and apparatus for packet-based validation of control-flow transfers for hardware control-flow enforcement
US10565014B2 (en) * 2017-12-05 2020-02-18 Western Digital Technologies, Inc. Data processing offload using in-storage code execution

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101010666A (zh) * 2003-12-16 2007-08-01 皇家飞利浦电子股份有限公司 存储器高效率的指令处理电路

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0440525A (ja) 1990-06-06 1992-02-10 Seiko Epson Corp 並列処理型マイクロプロセッサ
US5463750A (en) 1993-11-02 1995-10-31 Intergraph Corporation Method and apparatus for translating virtual addresses in a data processing system having multiple instruction pipelines and separate TLB's
JPH07168694A (ja) 1993-12-14 1995-07-04 Hitachi Ltd プロセッサおよびそれを用いたデータ処理システム
JPH08161169A (ja) 1994-12-09 1996-06-21 Toshiba Corp Vliw方式の計算機システム及びvliwの解釈・実行方法
JP3598589B2 (ja) 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5924125A (en) 1995-08-01 1999-07-13 Arya; Siamak Method and apparatus for parallel access to consecutive TLB entries
JP3412462B2 (ja) 1997-07-30 2003-06-03 松下電器産業株式会社 プロセッサ
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
JPH1185512A (ja) 1997-09-03 1999-03-30 Fujitsu Ltd 命令圧縮格納および命令復元機能を有するデータ処理装置
US6199126B1 (en) * 1997-09-23 2001-03-06 International Business Machines Corporation Processor transparent on-the-fly instruction stream decompression
US20020112029A1 (en) 1998-03-06 2002-08-15 Craig S. Gravina System and method for accepting and integrating entertainment information from entertainment information producers
EP1475912B1 (en) 1999-07-06 2014-02-26 Samsung Electronics Co., Ltd. Apparatus and method for encoding/decoding transport format combination indicator in CDMA mobile communication system
JP3556556B2 (ja) 2000-02-08 2004-08-18 株式会社東芝 命令コード変換装置及び情報処理システム
US6859870B1 (en) * 2000-03-07 2005-02-22 University Of Washington Method and apparatus for compressing VLIW instruction and sharing subinstructions
US6779101B1 (en) * 2000-03-07 2004-08-17 University Of Washington Method and apparatus for processing compressed VLIW subinstruction opcodes
GB2366643B (en) 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors
WO2002061574A1 (en) 2001-01-30 2002-08-08 Koninklijke Philips Electronics N.V. Computer instruction with instruction fetch control bits
US7028286B2 (en) 2001-04-13 2006-04-11 Pts Corporation Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
JP3806341B2 (ja) 2001-11-22 2006-08-09 ユニバーシティ・オブ・ワシントン サブ命令の共用、命令のストアならびに圧縮のための方法、およびコンピュータシステム
US6795897B2 (en) 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
JP4026753B2 (ja) * 2002-07-25 2007-12-26 株式会社日立製作所 半導体集積回路
EP1530755B1 (en) 2002-08-16 2019-11-06 Intel Corporation Apparatus, method, and compiler enabling processing of variable length isntructions in a very long instruction word processor
GB2393274B (en) 2002-09-20 2006-03-15 Advanced Risc Mach Ltd Data processing system having an external instruction set and an internal instruction set
AU2003253159A1 (en) 2002-09-24 2004-04-19 Koninklijke Philips Electronics N.V. Apparatus, method ,and compiler enabling processing of load immediate instructions in a very long instruction word processor
US7249248B2 (en) 2002-11-25 2007-07-24 Intel Corporation Method, apparatus, and system for variable increment multi-index looping operations
US7290122B2 (en) 2003-08-29 2007-10-30 Motorola, Inc. Dataflow graph compression for power reduction in a vector processor
EP1839264A2 (en) 2005-01-18 2007-10-03 Trestle Corporation System and method for creating variable quality images of a slide
US7404042B2 (en) 2005-05-18 2008-07-22 Qualcomm Incorporated Handling cache miss in an instruction crossing a cache line boundary
US7594098B2 (en) 2005-07-01 2009-09-22 Stmicroelectronics, Sa Processes and devices for compression and decompression of executable code by a microprocessor with RISC architecture and related system
US8099587B2 (en) 2005-07-20 2012-01-17 Intel Corporation Compressing and accessing a microcode ROM
CN101075903B (zh) 2006-05-17 2012-07-04 中兴通讯股份有限公司 网络资源配置方法和装置
CN100492279C (zh) 2006-07-27 2009-05-27 中国科学院计算技术研究所 对复杂指令译码生成微码的译码装置和方法
KR100875836B1 (ko) * 2007-03-23 2008-12-24 삼성전자주식회사 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법
US20100223237A1 (en) 2007-11-05 2010-09-02 University Of Florida Research Foundation, Inc. Lossless data compression and real-time decompression
US8281151B2 (en) 2008-04-09 2012-10-02 Hewlett-Packard Development Company L. P. Auditor assisted extraction and verification of client data returned from a storage provided while hiding client data from the auditor
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101010666A (zh) * 2003-12-16 2007-08-01 皇家飞利浦电子股份有限公司 存储器高效率的指令处理电路

Also Published As

Publication number Publication date
US10120692B2 (en) 2018-11-06
WO2013016737A1 (en) 2013-01-31
EP2737397A1 (en) 2014-06-04
JP2014524097A (ja) 2014-09-18
JP5869125B2 (ja) 2016-02-24
IN2014CN00678A (zh) 2015-04-03
KR101584660B1 (ko) 2016-01-12
US20130031337A1 (en) 2013-01-31
KR20140043834A (ko) 2014-04-10
CN103748550A (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN103748550B (zh) 用于存储熵编码指令序列及将其翻译成可执行形式的方法和设备
US7865692B2 (en) Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
JP6363739B2 (ja) メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
US6101592A (en) Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US7703088B2 (en) Compressing “warm” code in a dynamic binary translation environment
JP3585800B2 (ja) 情報処理装置
CN102741817B (zh) 方法和装置和记录载体
CN104216682B (zh) 微处理器以及选择性解压缩微程序码的相关方法
Xianhua et al. Efficient code size reduction without performance loss
Chen et al. A low power-consuming embedded system design by reducing memory access frequencies
Li et al. An Architecture-Oriented Approach to Code Compression for Embedded Processors
Bonny Huffman-based Code Compression Techniques for Embedded Systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160706

Termination date: 20190730

CF01 Termination of patent right due to non-payment of annual fee