优化编译器生成的程序代码的方法技术

技术编号:2857624 阅读:202 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种用于编译器生成的程序代码(38)的优化的方法。由编译器生成的程序代码(38)由程序代码段(42)检查,程序代码段(42)至少有关其动作而对应包含在预定库(28)中的库代码段(30x)。因此,通过分别调用对应的库代码段(30x),替换找到的程序代码段(42)。一种计算机程序产品,包括用于执行所述方法的程序指令。一种移动数据载体(10),包括根据所述方法优化的程序代码(44),并且包括库。本发明专利技术使得移动数据载体(10)中可用的存储器能够有效使用,并且对程序修改和/或对相对小量的数据载体(10)的生产提供高度适应性。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及便携数据载体的编程,并涉及通过便携数据载体的程序执行。便携数据载体在本申请的意义内具体可以是各种设计的芯片卡(smart card,灵通卡)或者芯片模块。便携数据载体在当今共同使用时,具有处理器核心和以不同技术生产的多个存储器。在典型配置中,例如,提供掩膜编程的(mask-programmed)ROM、电可擦写和可编程EEPROM和可写RAM。RAM用作为运行程序期间的工作存储器,而处理器核心要执行的程序代码可存储在ROM和/或EEPROM中。数据载体的这些和类似设计描述在W.Rankl and W.Effing,Hanser Verlag的书“Handbuch der Chipkarten”1999年第三版的3.4节。一般地,EEPROM中的存储单元占据大约4倍的ROM存储单元的芯片面积。为了节省芯片面积,或者为了以同样面积取得更大的可用存储容量,因此可希望在ROM中尽可能广地容纳可执行程序代码。然而,有必要早在掩膜编程的ROM的生产阶段,为大量数据载体不可改变地定义掩膜编程的ROM的内容。比较起来,写入EEPROM,仅仅在完成和初始化一系列数据载体后,或者在个性化单独的数据载体时执行。因此,由于更大的适应性,可执行程序代码尽可能广地存储在EEPROM中是有利的。这既适用于数据载体的较小产量的编程,也适用于在大产量情形的错误修正和附加功能的引入。因而在便携载体的编程中存在问题一方面,尽可能广地使用掩膜编程的ROM和同等存储器;另一方面,对程序变化和/或对较小产量的数据载体的生产取得尽可能大的适应性。根据本专利技术,通过具有权利要求1的特征的方法、根据权利要求8的计算机程序产品和根据权利要求10的便携数据载体,完全或部分地解决了此问题。各从属权利要求定义本专利技术的优选发展。在有关方法的各权利要求中条目化各步骤的顺序不被理解为对保护范围的限制。而是,提供了本专利技术的各开发,其中这些步骤以不同顺序、或者完全或部分并行地、或者彼此完全或部分交织地执行。本专利技术来自使用包括用于优化程序代码目的的多重库代码段的预定库的基本思想。在根据本专利技术的优化方法中,为在其效果或功能上分别对应一个库代码段的程序代码段,一方面,搜索要优化的程序代码。这样的程序代码段分别由对应的库代码段的一个调用替换。优化的程序代码存储在数据载体的第一存储区域中(例如在EEPROM中),而为在第二存储区域中(例如在ROM中)的存储提供库。在专利技术人进行的测试中,根据本专利技术的优化过程导致对第一存储区域提供的程序代码的规模的显著减少。该结果是未预料到的,因为我们会直观地假定使用实际范围的库,仅会找到少部分程序代码对应库代码段。本专利技术产生的代码规模的减少具有结果在具有预定量的存储器的数据载体的情形,在第一存储区域中可包括用于附加功能的程序代码。如果第一存储区域设计为EEPROM或以等同技术设计,在数据载体的个性化或完成或初始化之后,只需要装载该程序代码。由于其简洁而实现多重功能的程序代码,因此可既迅速而且甚至对小产量的各数据载体、或甚至对单一数据载体进行改变或重写。根据本专利技术,预定库位于第二存储区域中,即例如在掩膜编程的ROM中。通常,根据本专利技术通过优化得到的程序代码的节省(saving)少于库的大小。然而,即使在此情形,由于更好地利用有价值的第一存储区域,应用本专利技术也是有利的。如果在编译器生成的程序代码中存在多个代码段,那么其各组在每个情形可分别通过一个单一库代码段替换,而如果库仅仅包含少数不需要的代码段,那么优化可导致程序代码收缩甚至多于库的长度。在此情形,即使第一和第二存储区域仅仅是同样的物理存储区域(field)的概念部分,应用本专利技术也是有利的。根据本专利技术,为了优化目的,为程序代码段进行搜索,即搜索可由对应的库代码段替换的编译器生成的程序代码中的部分。在程序生成期间,编程人员不需要考虑随后的优化过程;特别是,编程人员不需要在用于库例程的调用的程序中预作安排。因此,本专利技术不以任何方式使编程更难。在这里使用的术语的选择中,术语“程序代码”或“代码段”的意图在于不仅表示在链接(linkage)前或后的可执行机器代码,而且表示对应的汇编源代码。换言之,在本专利技术的不同开发中,根据本专利技术的优化过程既可根据编译器生成的汇编源代码执行,也可根据已经汇编的机器代码执行。在前者的情形,汇编和必要时的链接仅仅在优化后执行。同样地,库可以在优化期间作为汇编源代码和/或作为已经汇编的机器代码是可用的。一般,无论何时两个代码段执行相互对应的功能,库代码段对程序代码段的替换就是可能的。就此而论,可就代码段的准确效果进行复杂计算,以便例如初始化替换过程,即使代码段中的个别指令以无害方式交换。在具体地简单示范性的各实施例中,作为对照,仅仅在代码段在由其定义的机器代码方面是相同的条件下进行替换。然而,甚至在此简单开发的情形,由于例如可能一般不替换具有带有不在该代码段中的跳转目的地的跳转的代码段的事实,也需要代码段的某些分析。如果使用以类似过程调用的方式包含一个或多个参数(例如存储地址或者数值)的参数化的代码段,附加的替换可能跟着发生。最好,通过插入程序代码中的子程序调用指令,正常地调用库代码段。然后紧跟库代码段之后,在库中提供返回指令。如果要替换的代码段干扰程序流,该规则的例外就可应用在有些实施例中。例如,如果代码段以子程序返回指令结束,该调用就可通过跳转指令正常被实现。根据本专利技术,预定义使用的库,即不依赖在当前优化运行中处理的程序代码。然而,为了实现可能的最好优化结果,最好设计库使其包含适当的条目用于程序代码的频繁出现的结构。这样的频繁出现的代码部分可具体依赖于数据载体的硬件和/或操作系统和/或依赖于在编译器生成的程序代码的生成中使用的编译器。根据本专利技术提供的计算机程序产品具体可以是计算机可读数据载体,如例如电子或磁或光存储介质,但其不限于物理数据载体。电或光信号(例如通信链路的电压电平)也理解为这里使用的意义上的计算机程序产品。计算机程序产品包括执行根据本专利技术的优化步骤的程序代码。最好,计算机程序产品还包括编译器和/或汇编器和/或链接器和/或装载器程序。根据本专利技术的计算机程序产品和根据本专利技术的便携数据载体最好被开发具有对应上述和/或在有关方法的各权利要求中所述的特征的特征。本专利技术的进一步的特征、目的和优点通过示范实施例和多个替代实施例的以下说明来揭示。参照示意图,其中唯一的图(附图说明图1)说明本专利技术的示范实施例中的程序代码的不同版本的表示和便携数据载体的表示。本专利技术用于便携数据载体10的编程中,便携数据载体10在这里描述的示范实施例中设计为芯片卡。数据载体10以其自身已知的方式包括具有处理器核心12的半导体芯片、掩膜编程的ROM 14、EEPROM 16、RAM 18和用于非接触或接触绑定(contact-bound)通信的接口20。所述各部件经由总线22彼此连接。在各替代实施例中,三个存储区域14、16、18可以其它技术设计;具体地,FLASH技术可用于ROM 14和/或EEPROM 16。第一和第二存储区域24、26概念性地提供在存储区域14、16、18中。第一存储区域24用作接收可执行机器代码形式的优化的程序代码。同样可执行机器代码形式的预定库本文档来自技高网...

【技术保护点】
优化编译器生成的程序代码(38)的方法,该编译器生成的程序代码计划用于具有处理器核心(12)和第一和第二存储区域(24、26)的便携数据载体(10);提供第一存储区域(24)以接收优化的程序代码(44);提供第二存储区域(2 6)以接收具有多重库代码段(30x)的预定库(28);以及为至少有关其效果分别对应一个库代码段(30x)的程序代码段(42)搜索编译器生成的程序代码(38),由此找到的程序代码段(42)分别通过对应的库代码段(30x)的一个调用被替 换。

【技术特征摘要】
【国外来华专利技术】DE 2002-4-15 10216602.11.优化编译器生成的程序代码(38)的方法,该编译器生成的程序代码计划用于具有处理器核心(12)和第一和第二存储区域(24、26)的便携数据载体(10)提供第一存储区域(24)以接收优化的程序代码(44);提供第二存储区域(26)以接收具有多重库代码段(30x)的预定库(28);以及为至少有关其效果分别对应一个库代码段(30x)的程序代码段(42)搜索编译器生成的程序代码(38),由此找到的程序代码段(42)分别通过对应的库代码段(30x)的一个调用被替换。2.根据权利要求1所述的方法,其特征在于仅仅在两个代码段(42、30x)在作为可执行机器代码的其形式上相同的条件下,程序代码段(42)由库代码段(30x)替换。3.根据权利要求1所述的方法,其特征在于至少有些库代码段(30x)被参数化。4.根据权利要求1-3的任一所述的方法,其特征在于至少在程序代码段(42)不干扰程序流的条件下,通过对对应的库代码段(30x)的子程序调用指令(46),替换要替换的程序代码段(42)。5.根据权利要求1-4的任一所述的方法,其特征在于编译器生成的程序代码(38...

【专利技术属性】
技术研发人员:迈克尔鲍尔迪希韦勒沃纳尼斯
申请(专利权)人:德国捷德有限公司
类型:发明
国别省市:DE[德国]

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

1