处理压缩程序代码的电子设备和方法

文档序号:6358115阅读:267来源:国知局
专利名称:处理压缩程序代码的电子设备和方法
技术领域
本发明涉及采用代码压缩的电子设备,该设备包含一个流水线处理器,并且涉及对这种处理器的管理方法。
背景技术
复杂的单板电子设备的设计者经常需要用RISC(精简指令集计算机)的处理能力来实现具有高级特性和性能的设备,并需要尽可能低的固定成本。事实上,这是难以实现的。这种集成在专用集成电路(ASIC)中的单板RISC处理器,例如在存储容量方面,尤其在它们的代码存储容量方面,展现出局限的特性。代码压缩方法事实上会使用于单板应用的存储容量降低。
如本说明书结尾处的参考文件[1]和[2]中所述的称作”Codepack”的IBM的代码压缩设备是这种类型的设备的实现的一个例子。
如本说明书参考文件[2]中所述及

图1中所示的代码压缩技术,一般包含一方面,利用软件程序10将源代码11转换成放置在程序存储器13中的压缩指令12;另一方面,在位于RISC处理器16与存储器13之间的解压单元14中解压专用集成电路15中的传输中的(on the fly)指令;总线18和19分别是内部和外部总线。
然而,这种压缩技术具有重大缺点由于被压缩的和然后被解压的指令的流与没有这些压缩和解压步骤时原本的流的不同,有一部分处理能力损失。参考文件[2]由此预测的运行能力的损失达10%。
另一方面,当RISC处理器被采用时,其体系结构也可能影响设备的性能。多数RISC处理器事实上具有一个流水线,流水线的阶段数目取决于处理器的设计。这也适用于例如Advanced Risc Machine Ltd公司的ARM7处理器和MIPs公司的R3000处理器。所有流水线的第一阶段都是取指阶段。在这个阶段,处理器启动其地址总线,以在其数据总线上获得一条指令。在这种处理器中,每个在条件转移指令中终止的程序循环会导致大量的时间损失事实上,有几条指令—其数量取决于流水线的范围—是在条件转移后被调用的,并且在发生一个朝向循环的起点的转移时这些指令是不被执行的。流水线然后必须被清空,在循环的开始时再填充。流水线就这样先被清空,然后在从每次循环回到的循环的开始处时被再填充,这对处理器的性能有负面影响。
图2表示在具有三个阶段的流水线执行一个n个指令的循环期间的这种缺点,第n个指令是条件转移指令。这三个阶段分别是,取值阶段(任务A)、解码阶段(任务B)、执行阶段(任务C)。在本例中,每次执行该循环,就有标注号为20的两个对应于该循环的外部的指令调用的周期(周期n+1和n+2)损失,这导致处理器处理能力的降低。所示带阴影线的周期对应于清空周期。假设这个循环被执行100次,并且循环的大小是20条指令,则损失了2000个周期中的200个,这表示大约10%的损失。
为了解决这个问题,如参考文件[3]中所述,一些微处理器采用允许能预测下一个调用地址的转移单元。但是,在单板电子设备领域中,传统上使用的处理器不具有这种单元,因为在这个领域中,要努力在成本和自主方面做得尽可能精确。

发明内容
本发明的目的是弥补上述的缺点。
本发明涉及一种采用代码压缩的电子设备,该设备包含一个流水线处理器、一个允许预测下一个调用地址的转移单元、一个代码解压单元和一个存储器,为该组合的处理器、转移单元和解压单元而定义的一个新的压缩指令集,特征在于,解压单元适合于通过译解已经被插入该新指令集的循环开始和循环结束标号而向转移单元发送对应循环的开始和结束的两个信号,并且转移单元适合于处理这两个信号。
在没有循环开始或循环结束信号时是透明地运行的转移单元,在这个情况中执行将复制输入信号到输出信号。
本发明也涉及一种在以条件转移指令来结束压缩程序循环的对流水线处理器管理的方法,其特征在于该方法包含-将循环开始和循环结束标号插入到循环中的第一条和最后一条指令中;-在遇到循环开始标号时,存储循环开始地址;
-在遇到循环结束标号时,如果是返回循环,则考虑位于循环开始地址的指令。
本发明提出的解决方案可被应用于多数采用压缩技术的RISC处理器。它能降低执行时间,并在代码大小和处理能力之间提供良好的折衷。
按照本发明的设备能被有意地用于便携式设备的领域,特别是以移动电话为工具的电信领域。一方面,它允许在增加新特征功能时避免增加存储器尺寸;另一方面,它允许实现极具竞争力的成本。
本发明的这些和其它方面,将在后文通过结合实施例的非限定性举例说明而得到阐述和变得显而易见。
附图简介图1表示已知类型的代码压缩/解压设备。
图2表示在一个n个指令的循环的执行期间具有三个阶段的流水线的行为,其中第n个指令是条件转移指令。
图3表示按照本发明的设备。
图4表示按照本发明的设备的操作的例子的流程图。
具体实施例方式
如图3中所示,按照本发明的设备是一个采用代码压缩的设备,它包含一个诸如单板处理器的流水线处理器25、一个转移单元26、一个为减少流水线被清空的次数而改进的解压单元27、一个存储器28。图中显示了地址总线BA、数据总线DA、控制信号SC和本发明专用的两个信号BeginOfLoop和EndOfLoop。
转移单元26允许为避免清空流水线而能预测正确地址。
将循环开始和循环结束标号插入到每个循环的第一条和最后一条指令中。这样,在遇到循环开始标号时,循环开始地址被存储。在遇到循环结束标号时,如果是返回循环,所考虑的指令不是位于该循环的之后的地址的指令,而是位于该循环的开始地址的指令。因此就不再需要为再次执行循环而清空流水线。因此,除了在循环结尾处存在的清空,所有的流水线清空都被避免。
在按照本发明的设备中,将转移单元26安置在处理器的外部,这允许处理器的操作得到改善,并且弥补解压单元27在性能方面的影响。
在如图3中所示的按照本发明的设备中,专用集成电路(ASIC)可包含-所有的部件25、26、27和28,或者-除留在外部的存储器28以外的所有的部件,或者-除处理器25以外的所有的部件,或者-转移单元26和解压单元27。
对应于图3中所示的设备的实施例的特点,是在单板应用中广泛采用的ARM7TDMI类型的处理器25。
解压单元27允许通过译解插在压缩指令集中的循环开始和循环结束两个标号,向转移单元26生成两个信号“BeginOfLoop”和“EndOfLoop”。控制信号SC是允许访问存储器的信号,ABORT(异常中止)信号允许在处理器上生成一个例外,nEXEC信号指示执行阶段中的某个指令不在正被执行的过程中,nOPC信号指示一个操作码调用。
对于不对应于取操作码的存储器调用,转移单元是透明的,它包含复制由下列等式所代表的地址和数据总线Abu[31:0]=Ap[31:0]和Dbu[31:0]=Dp[31:0]。
因此在图4中的流程图中表示转移单元26的一例操作,该流程图连续地显示-循环开始测试(标注号30),-被指定为关于指令的大小的“偏移量”(offset)的初始变量的初始化(标注号31),-循环结束测试(标注号32),-变量偏移量的修改(标注号33),-被指定为“下标”(index)的第二个变量的初始化(标注号35),-循环结束指令在处理器的执行阶段中时的时间的测试(标注号36),-被执行的条件转移测试(标注号37),-ABORT例外的生成(标注号38),-使流水线现象透明并避免任何清空的测量(标注号39)。
当条件转移没有被执行时,生成一个ABORT例外,以便退出循环。这个例外改变其返回地址,以便正确地恢复代码的执行。
参考文件[1]“PowerPC Adopts Code Compression”(PowerPC采用代码压缩),Jim Turley,(Microdesign Resources,1998.10.26,Microprocessor Report)[2]“CodePackTMCode Compression for PowerPCTMProcessors”(CodepackTMPowerpCTM处理器的代码压缩),Mark Game和AlanBooker(因特网网址www.chip.ibm.com/products/powerpc/corer/cd pack-wp.pdf;1.0版)[3]“PowerPC 630eTMRISC Microprocessor TechnicalSummary”(PowerPC 630eTMRISC微处理器技术摘要)(MPR603TSU-04,MPC603E/D,摩托罗拉公司,1995,1-32页)
权利要求
1.一种采用代码压缩的电子设备,该设备包含一个流水线处理器(25)、一个允许预测下一个指令的地址的转移单元(26)、一个代码解压单元(27)和一个存储器(28),为该组合的处理器(25)、转移单元(26)和解压单元(27)而定义的一个新的压缩指令集,其特征在于,该解压单元(27)适合于通过译码已经被插入该新的压缩指令集的循环开始和循环结束标号而向转移单元(26)发送用于循环的开始和结束的两个信号(BeginOfLoop、EndOfLoop),并且转移单元(26)适合于处理这两个信号。
2.如权利要求1中所要求的设备,其中,转移单元(26)在没有循环开始或循环结束信号时透明地运行,并因此在这个情况中执行将输入信号复制到输出信号。
3.如权利要求1中所要求的设备,包括一个含有处理器(25)、转移和解压单元(26、27)和存储器(28)的专用集成电路。
4.如权利要求1中所要求的设备,包括一个将处理器(25)与转移和解压单元(26、27)集成在一起的专用集成电路。
5.如权利要求1中所要求的设备,包括一个将转移和解压单元(26、27)与存储器(28)集成在一起的专用集成电路。
6.如权利要求1中所要求的设备,包括一个将转移和解压单元(26、27)集成在一起的专用集成电路。
7.如前述的任何一项权利要求中所要求的设备,该设备是单板设备。
8.一种依靠条件转移指令终止的压缩程序循环的对流水线处理器管理的方法,其特征在于,该方法包含下述步骤将循环开始和循环结束标号插入到循环中的第一条和最后一条指令中;在遇到循环开始标号时,存储循环开始地址;在遇到循环结束标号时,如果是返回循环,则考虑位于循环开始地址的指令。
9.如权利要求8中所要求的方法,其中,流水线处理器是RISC处理器。
全文摘要
本发明涉及一种采用代码压缩的电子设备,该设备包含流水线处理器(25)、允许预测下一个调用地址的转移单元(26)、代码解压单元(27)和存储器(28),为该组合的处理器(25)、转移单元(26)和解压单元(27)而定义的一个新的压缩指令集。解压单元(27)适合于通过译码已经被插入该新指令集的循环开始和循环结束标号而向转移单元(26)发送对应循环的开始和结束的两个信号。转移单元(26)处理这两个信号。本发明也涉及对这种处理器的管理方法。
文档编号G06F9/38GK1513138SQ02811226
公开日2004年7月14日 申请日期2002年6月4日 优先权日2001年6月6日
发明者A·S·C·罗赛, A S C 罗赛 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1