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

经压缩代码的加速执行制造技术

技术编号:8327637 阅读:198 留言:0更新日期:2013-02-14 13:32
描述了涉及加速经压缩代码的执行的方法和装置。在一个实施例中,使用两级嵌入式代码解压缩方案,其消除气泡,这可增大速度和/或降低功耗。也描述并要求保护其他的实施例。

【技术实现步骤摘要】
【国外来华专利技术】领域本公开一般涉及计算领域。更具体地,本专利技术的实施例一般涉及经压缩代码的加速执行。背景许多应用对于代码大小尺寸(code size footprint)是敏感的。一个关键示例是移动应用,该移动应用可使用基于只读存储器(ROM)的系统,其中永久性存储器存储是整体系统成本、大小、或功耗中的关键因素。在一些实例中,代码压缩可被用来减轻这些问题中的至少一些,有时因所需的经压缩代码的飞行(on-the-fly)解压缩而带来性能降低和/或功耗增加。附图简述参照附图提供详细描述。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在不同附图中使用相同附图标记来指示相似或相同的项目。图1和2分别例示了在压缩之前和之后的嵌入式编码压缩。图3、5和7例示了根据一些实施例的流水线化解压缩器的框图。图4和6例示了根据一些实施例的流入流水线化解压缩器的数据。图8是根据本专利技术的实施例的方法的流程图。图9和10例示了可用于实现本文中所讨论的一些实施例的计算系统的实施例的框图。图11例示是根据一些实施例的无线局域或蜂窝网通信系统的框图。详细描述在以下描述中,阐述众多具体细节以提供对各实施例的透彻理解。然而,本专利技术的各个实施例在没有这些具体细节的情况下也可实践。在其他情形中,众所周知的方法、过程、组件和电路并未进行详细描述以免混淆本专利技术的特定实施例。此外,本专利技术实施例的各方面可使用各种手段来执行,诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)或硬件与软件的某种组合。出于本公开的目的,对“逻辑”的引述应表示硬件、软件(包括例如控制处理器的操作的微代码)或其某种组合。一些实施例例如通过减少或消除最频繁执行的代码流的性能开销、减少功耗和/或减小代码大小来提升两级嵌入式代码解压缩方案。一般而言,嵌入式代码压缩旨在标识组成嵌入式码字的一组独特比特模式以及旨在将其存储在表(也称为“词典”)中。经压缩的嵌入式代码存储原始嵌入式码字序列中的每个模式的(短的)独特标识符,如图1和2中所示的。此外,实施例在指定代码词典或存储器中的值的位置时利用弹性,以实现对初始指针值的更高效推导。此类实施例可在避免解压缩性能中的额外成本的同时达成由嵌入式代码压缩所提供的益处。在图1和2中,addr(地址)指的是嵌入式代码指令的地址。在未经压缩的形式下(参见例如图1),addr直接访问ROM以取得嵌入式代码指令(inst)。在经压缩的形式下(参见例如图2),独特嵌入式代码指令被存储在“独特模式”表/阵列202(或词典)中,并且仅仅指向模式的索引(指针)被存储在嵌入式代码指令的原始空隙中(指针阵列204)。这种组织使用两级过程来解压嵌入式码字:在第一级中,访问指针阵列204来取得进入独特模式阵列202的索引(指针),进而访问该独特模式阵列202来提供字。假定原始ROM具有6500个嵌入式码字,每个嵌入式码字具有312比特,并且有总共2005个独特嵌入式码字。原始ROM占用(312x6500)2,028,000比特,而经压缩的ROM仅占用(6500*11+312*2005)697,060比特(其中11是对独特模式阵列202中的2005个条目进行索引所需的比特数目)。因而,压缩率(经压缩的大小/原始大小)为34.37%。因此,用于嵌入式代码解压缩的先前方法可能引发流改变下的性能成本。为此,一些实施例在实现压缩的同时避免此性能影响。在各个实施例中,本文中讨论的指针阵列和独特模式阵列/表可在分开的存储单元(诸如参照图9或10讨论的存储器)上实现,或者被实现为同一存储单元(诸如参照图9或10讨论的存储器)内的区域。图3示出根据实施例的流水线化解压缩器的框图。在图3、5和7中,R1、R2和R3指的是可被用来临时存储在流水线级之间传递的数据的寄存器或先进先出(FIFO)缓冲器。图4例示了根据实施例的流入图3的流水线化解压缩器的数据。参看图3,经压缩的组织将利用对“独特模式”表302的间接访问。此间接增加从存储代码的存储器取得指令所需的时间。注意:在从独特模式阵列302取得指令之前,从指针阵列304取得指针。如果用于从阵列302和304两者进行获取的时间段并非是短至足以符合处理器周期时间(例如,小于或等于处理器的一个周期),则其会影响处理器性能。为了确保此时间段符合处理器周期时间,经压缩的ROM可仅使用固定大小代码指令和/或被流水线化。图3示出了被流水线化为两级的解压缩器。第一流水线级包括指针阵列304,而第二流水线级包括独特模式表/阵列302。在执行期间,‘addr’地址序列被呈现给经压缩的ROM。在图3的流水线解压缩器中,地址最初被呈现给指针阵列304。在下一级中,这产生访问独特模式阵列302的指针,而同时新‘addr’被呈现给指针阵列304,且具有每周期一个字的吞吐量。只要开始新‘addr’序列,此流水线化组织就引发一周期“气泡(bubble)”。在重新开始流水线时,“气泡”发生。这例如在嵌入式码流的起始处或在跳跃期间发生。一般而言,“气泡”是指示流水线级(包含气泡的级)没有执行任何有用工作的象征性表示。参看图4,示出了流入图3的流水线化解压缩器的数据。在第一周期(周期1)中,指针阵列304的输入包含第一指令地址(Addr1)。在第二周期(周期2)中,第二指令地址(Addr2)被提供给指针阵列304,而第一指针(指针1)被提供给独特模式阵列302。气泡在R2处发生,因为解压缩器在第一周期中无法向独特模式阵列提供指针。图5示出根据实施例的流水线化解压缩器的框图。图5的实施例通过将第一指针(指针1)直接(例如,绕开指针阵列504)提供给独特模式阵列502,与此同时第二地址(Addr2)被提供给指针阵列504,来避免R1处的气泡(参照图3-4所讨论的)。如图所示,多路复用器可选择第一指针或指针阵列504的输出来经由R2传送给第二流水线。因而,第一指令是在新流的第一周期中从独特模式阵列502直接取得的,而第二指令的地址(‘addr’)被用来“准备启动(prime)”流水线。图6示出了例如在第一指针被直接提供给独特模式阵列时,流入图5的流水线化解压缩器的数据。注意:与图4相比,第一周期(周期1)中的气泡已被移除。在第一周期中,指针阵列504的输入包含第二指令地址,而独特模式阵列502的输入包含指向指令的指针。在第二周期(周期本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.06.27 US 12/824,1871.一种装置,包括:
第一存储单元,用于存储与嵌入式代码指令地址相对应的指针;
第二存储单元,用于存储与所述指针相对应的独特嵌入式代码指令;以及
用于执行所存储的嵌入式代码指令的处理器,其中所述第一存储单元响应
于在第一存储单元处对所述嵌入式代码指令地址的接收而向所述第二存储单
元传送所述指针,以及
其中所述第二存储单元响应于在所述第二存储单元处对所述指针的接收
而输出所述独特嵌入式代码指令。
2.如权利要求1所述的装置,其特征在于,所述第二存储单元在新嵌入
式代码指令地址序列的第一周期期间并且在第二指针之前接收第一指针,所述
第一指针与第一嵌入式代码指令地址相对应,所述第二指针与第二嵌入式代码
指令地址相对应。
3.如权利要求2所述的装置,其特征在,所述第二存储单元从所述第一
存储单元接收第二指针,以及通过绕开所述第一存储单元接收所述第一指针。
4.如权利要求1所述的装置,其特征在于,所述第二存储单元在新嵌入
式代码指令地址序列的第一周期期间并且在第二指针之前接收第一指针,所述
第一指针与第一嵌入式代码指令地址相对应,所述第二指针与第二嵌入式代码
指令地址相对应,其中所述第一指针将是从所述第二嵌入式代码指令地址推导
出的值。
5.如权利要求1所述的装置,其特征在于,在每个后继处理器周期期间,
在新嵌入式代码指令地址序列的第一周期之后,将从所述第一存储单元取得至
少一个指针,并且将从所述第二存储单元取得至少一个独特嵌入式代码指令。
6.如权利要求1所述的装置,其特征在于,用于从第一存储单元取得所
述指针以及从所述第二存储单元取得所述独特嵌入式代码指令的时间段等于
或小于所述处理器的一个周期。
7.如权利要求1所述的装置,其特征在于,所述独特嵌入式代码指令包
括存储在所述第二存储单元中的一组独特比特模式,所述一组独特比特模式组
成嵌入式码字。
8.如权利要求1所述的装置,其特征在于,还包括只读存储器,其中所
述存储器包括所述第一存储单元或所述第二存储单元。
9.如权利要求1所述的装置,其特征在于,还包括用于耦合所述第一存
储单元或所述第二存储单元的至少一个缓冲器或寄存器。
10.如权利要求1所述的装置,其特征在于,还包括用于耦合所述第一存
储单元或所述第二存储单元的多路复用器。
11.如权利要求1所述的装置,其特征在于,所述处理器、所述第一存储
单元或所述第二存储单元中的一个或多个在同一集成电路管芯上。
12.如权利要求1所述的装置,其特征在于,所述处理器包括多个处理器
核。
13.一种方法,包括:
将与嵌入式代码指令地址相对应的指针存储在第一存储单元中;
将与所述指针相对应的独特嵌入式代码指令存储在第二存储单元中;以及
其中所述第一存储单元响应于在第一存储单元处对所述嵌入式代码指令
地址的接收而向所述第二存储单元传送所述指针,以及
其中所述第二存储单元响应于在所述第二存储单元处对所述指针的接收

\t而输出所述独特嵌入式代码指令。
14.如权利要求13所述的方法,其特征在于,还包括在新嵌入式代码指
令地址序列的第一周期期间并且在第二指针之前在所述第二存储单元处接收
第一指针,所述第一指针与第一嵌入式代码指令地址相对应,所述第二指针与
第二嵌入式代码指令地址相对应。
15.如权利要求14所述的方法,其特征在,还包括在所述第二存储单元
处从所述第一存储单元接收第二指针,以及通过绕开所述第一存储单元接收所
述第一指针。
16.如权利要求13所述的方法,其特征在于,还包括在新嵌入式代码指
令地址序列的第一周期期间并且在第二指针之前在所述第二存储单元处接收
第一指针,所述第一指针与第一嵌入式代码指令地址相对应,所述第二指针与
第二嵌入式代码指令地址相对应,其中所述第一指针将是从所述第二嵌入式代
码指令地址推导出的值。
17.如权利要求13所述的方法,其特征在于,还包括在每个后继处理器
周期期间,在新嵌入式代码指令地址序列的第一周期之后,从所述第一存储单
元取得至少一个指针...

【专利技术属性】
技术研发人员:E·鲍林M·小布莱特尼兹N·伯恩S·阿弗尼
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1