CN114579208A - 一种Java卡的自适应调整执行速度提升方法 - Google Patents

一种Java卡的自适应调整执行速度提升方法 Download PDF

Info

Publication number
CN114579208A
CN114579208A CN202210480459.0A CN202210480459A CN114579208A CN 114579208 A CN114579208 A CN 114579208A CN 202210480459 A CN202210480459 A CN 202210480459A CN 114579208 A CN114579208 A CN 114579208A
Authority
CN
China
Prior art keywords
java
ram
array
execution
instruction
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.)
Granted
Application number
CN202210480459.0A
Other languages
English (en)
Other versions
CN114579208B (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.)
Guangzhou Wise Security Technology Co Ltd
Original Assignee
Guangzhou Wise Security Technology Co Ltd
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 Guangzhou Wise Security Technology Co Ltd filed Critical Guangzhou Wise Security Technology Co Ltd
Priority to CN202210480459.0A priority Critical patent/CN114579208B/zh
Publication of CN114579208A publication Critical patent/CN114579208A/zh
Application granted granted Critical
Publication of CN114579208B publication Critical patent/CN114579208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种Java卡的自适应调整执行速度提升方法,该方法实现了Java卡程序根据不同的Applet执行过程中使用到的Java指令的次数多少,将执行频率最高的Java指令拷贝到ram中执行,形成热码区,执行频率低的Java指令在flash中执行,形成冷码区。通过此方法不仅比通常的Java指令都在flash中执行的JAVA卡执行速度快,而且针对不同客户的Java Applet的执行,也做了速度优化。从而总体上实现了JAVA卡的自适应的执行速度的最优最快。

Description

一种Java卡的自适应调整执行速度提升方法
技术领域
本发明涉及智能卡技术领域,尤其涉及一种Java卡的自适应调整执行速度提升方法。
背景技术
目前的Java卡程序是存储在flash中,执行时,是cpu从flash中读取,执行程序指令。flash由于与工艺有关,读取flash的速度是固定的,读取速度比较慢,不会随着cpu主频提高而提高,但是ram的读取速度与cpu的主频有关,主频越高,读取速度就越快,正常情况下ram的读取速度是Flash的几倍,甚至几十倍,几百倍,同时ram的写速度也非常快。
基于上述缺点,因此需要找到一种能够将执行频率较高的指令程序从flash拷贝到ram上,由cpu直接从ram中读取指令,从而提升执行速度的方法。
发明内容
本发明的目的在于提供一种JAVA卡的自适应调整执行速度提升方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种Java卡的自适应调整执行速度提升方法,通过构建冷热码模板表将Java平台由此划分热码区域和冷码区域,热码区域放置高频执行代码,在ram中执行,冷码区域放置低频执行代码,在flash中执行;所述构建冷热码模板表可以通过客户Applet的前期执行自学习实现,具体包括以下步骤:
S1,定义两个Java指令函数数组Java_byteCode_Array0[]和Java_byteCode_Array1[],所述数组Java_byteCode_Array0[]存储Java指令函数的地址和长度,Java指令函数体存储在flash程序区;所述数组Java_byteCode_Array1[],包含对应Java指令函数的函数体起始地址,并将其存储在flash程序区中;
S2,Java卡上电复位过程中,将数组Java_byteCode_Array1[]从flash拷贝到ram中,同时判断其中的Java指令程序地址是否在ram中,如在ram中,该Java指令的flash地址从数组Java_byteCode_Array0[]中对应索引位置的指令存储地址获取,将对应的函数体从flash拷贝到ram中;若不在ram中,则不拷贝函数体;
S3,执行Java Applet,如果在执行前收到统计counter指令,则进入步骤S4,否则直接正常执行Java Applet直至结束;
S4,在ram中创建couter_Array[]数组,统计Java Applet执行过程中各个Java指令执行的次数,并将couter_Array[]数组清为0;
S5,根据执行Applet过程中Java指令执行的次数统计,将执行次数最多的Java指令函数体拷贝到ram中,从而下次执行时,Java指令程序由cpu从ram中读取执行。
优选的,步骤S1中定义的数组Java_byteCode_Array0[]的长度为0xB9,每个数组成员由Java指令函数体起始地址和函数体长度组成,Java_byteCode_Array0[]数组中按照Java指令的索引排序。如nop指令的索引为0x00,所以放在数组索引为0的位置,putfield_i_this的索引为0xB9,其执行指令函数体起始地址就放在数组索引为0xB9的位置上。
优选的,所述数组Java_byteCode_Array1[]形成一个固定模板,模板采用链表式存储组成,其中所有内部方法函数的链表,均可支持增删改查,动态更新管理。
优选的,步骤S4中创建的数组counter_Array[],用于Java指令执行的次数统计;根据执行Applet过程中Java指令执行的次数统计,将执行次数最多的几个Java指令函数体拷贝到ram中,从而下次执行时,Java指令程序由cpu从ram中读取执行,同时修改指令nop和sconst_m1在数组Java_byteCode_Array1[]中的Java指令函数地址,该地址为ram中的对应的函数体起始地址。
优选的,在确认拷贝的指令个数时,需要考虑的是空闲的ram空间大小,拷贝到ram中的Java函数体的大小不能超过空闲的RAM空间大小,然后将Java_byteCode_Array1[]数组回写到flash中原来位置,下次复位后,就将修改后的执行最优的Java_byteCode_Array1[]数组作为整体从flash中拷贝到ram中。
本发明的有益效果是:
本发明提供了一种Java卡的自适应调整执行速度提升方法,该方法实现了Java卡程序根据不同的Applet执行过程中使用到的Java指令的次数多少,将执行频率最高的Java指令拷贝到ram中执行,形成热码区,执行频率低的Java指令在flash中执行,形成冷码区。通过此方法不仅比通常的Java指令都在flash中执行的JAVA卡执行速度快,而且针对不同客户的Java Applet的执行,也做了速度优化。从而总体上实现了JAVA卡的自适应的执行速度的最优最快。
附图说明
图1是实施例1中提供的JAVA卡的自适应调整执行速度提升方法流程示意图;
图2是实施例1中提供的数组Java_byteCode_Array0[]的原理示意图;
图3是实施例1中提供的数组Java_byteCode_Array1[]的原理示意图;
图4是实施例1中提供的数组counter_Array[]原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供了一种Java卡的自适应调整执行速度提升方法,如图1所示,通过构建冷热码模板表将JAVA平台由此划分热码区域和冷码区域,热码区域放置高频执行代码,在ram中执行,冷码区域放置低频执行代码,在flash中执行;所述构建冷热码模板表可以通过客户Applet的前期执行自学习实现,包括以下步骤:
S1,定义2个Java指令函数数组Java_byteCode_Array0[]和Java_byteCode_Array1[],其中一个数组Java_byteCode_Array0[]存储了Java指令函数的地址和长度,Java指令函数体存储在flash程序区,数组Java_byteCode_Array1[],包含了Java指令函数体起始地址,这两个数组都存储在flash程序区中。
S2,Java卡上电复位过程中,将数组Java_byteCode_Array1[]从flash拷贝到ram中,同时判断其中的Java指令程序地址是否在ram中,如在ram中,指令的flash地址从Java_byteCode_Array0[]数组中对应索引位置的指令存储地址获取,将对应的函数体从flash拷贝到ram中;若不在ram中,则不拷贝函数体;
S3,执行Java Applet,如果在执行前收到统计counter指令,则进入步骤S4,否则直接正常执行Java Applet直至结束;
S4,在ram中创建couter_Array[]数组,统计Java Applet执行过程中各个Java指令执行的次数,并将couter_Array[]数组清为0;
S5,根据执行Applet过程中Java指令执行的次数统计,将执行次数最多的Java指令函数体拷贝到ram中,从而下次执行时,Java指令程序由cpu从ram中读取执行。
本实施例中,步骤S1中定义的数组Java_byteCode_Array0[]存储了Java指令函数的地址和长度,Java指令函数体存储在flash程序区,如图2所示,由于Java卡的指令有0xB9个,所以结构数组Java_byteCode_Array0[]的长度为0xB9,每个数组成员由Java指令函数体起始地址和函数体长度组成,Java_byteCode_Array0[]数组中按照Java指令的索引排序,如nop指令的索引为0x00,所以放在数组索引为0的位置,putfield_i_this的索引为0xB9,其执行指令函数体起始地址就放在数组索引为0xB9的位置上。
定义的数组Java_byteCode_Array1[],其中包含了Java指令函数体起始地址,如图3所示,该数组也存储在flash中,Java卡上电复位过程中,从flash拷贝到ram中。
步骤S4中创建的数组counter_Array[],用于Java指令执行的次数统计。根据执行Applet过程中Java指令执行的次数统计,将执行次数最多的几个Java指令函数体拷贝到ram中,从而下次执行时,Java指令程序由cpu从ram中读取执行。如图4所示,在Java applet执行过程中,指令nop和sconst_m1执行次数较多,就将其执行函数体从flash拷贝到ram中,同时修改指令nop和sconst_m1在数组Java_byteCode_Array1[]中的Java指令函数地址,该地址为ram中的对应的函数体起始地址。
基于上述的修改,使得下次上电复位时,对应的Java指令nop和sconst_m1函数体也会提前从flash拷贝到ram中,指令的flash地址从Java_byteCode_Array0[]数组中对应索引位置的指令存储地址获取,从而实现快速执行过程。
需要注意的是,在确认拷贝的指令个数时,需要考虑的是空闲的RAM空间大小,比如空余2KB的ram,那拷贝到ram中的Java函数体的大小不能超过2KB,然后将Java_byteCode_Array1[]数组回写到flash中原来位置,下次复位后,就将修改后的执行最优的Java_byteCode_Array1[]数组作为整体从flash中拷贝到ram中。如复位开始没有收到清counter指令,就是正常的执行过程。
通过这种方法可以根据具体的加载到Java卡上的Applet动态调整拷贝到ram中的Java指令,从而达到速度最快。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明提供了一种JAVA卡的自适应调整执行速度提升方法,该方法实现了JAVA卡程序根据不同的Applet执行过程中使用到的Java指令的次数多少,将执行频率最高的Java指令拷贝到ram中执行,形成热码区,执行频率低的Java指令在flash中执行,形成冷码区。通过此方法不仅比通常的Java指令都在flash中执行的JAVA卡执行速度快,而且针对不同客户的Java Applet的执行,也做了速度优化。从而总体上实现了JAVA卡的自适应的执行速度的最优最快。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (5)

1.一种Java卡的自适应调整执行速度提升方法,其特征在于,通过构建冷热码模板表将JAVA平台由此划分热码区域和冷码区域,热码区域放置高频执行代码,在ram中执行,冷码区域放置低频执行代码,在flash中执行;所述构建冷热码模板表通过客户Applet的前期执行自学习实现,具体包括以下步骤:
S1,定义两个Java指令函数数组Java_byteCode_Array0[]和Java_byteCode_Array1[],所述数组Java_byteCode_Array0[]存储Java指令函数的地址和长度,Java指令函数体存储在flash程序区;所述数组Java_byteCode_Array1[],包含对应Java指令函数的函数体起始地址,并将其存储在flash程序区中;
S2,Java卡上电复位过程中,将数组Java_byteCode_Array1[]从flash拷贝到ram中,同时判断其中的Java指令程序地址是否在ram中,如在ram中,该Java指令的flash地址从数组Java_byteCode_Array0[]中对应索引位置的指令存储地址获取,将对应的函数体从flash拷贝到ram中;若不在ram中,则不拷贝函数体;
S3,执行Java Applet,如果在执行前收到统计counter指令,则进入步骤S4,否则直接正常执行Java Applet直至结束;
S4,在ram中创建couter_Array[]数组,统计Java Applet执行过程中各个Java指令执行的次数,并将couter_Array[]数组清为0;
S5,根据执行Applet过程中Java指令执行的次数统计,将执行次数最多的Java指令函数体拷贝到ram中,从而下次执行时,Java指令程序由cpu从ram中读取执行。
2.根据权利要求1所述的Java卡的自适应调整执行速度提升方法,其特征在于,步骤S1中定义的数组Java_byteCode_Array0[]的长度为0xB9,每个数组成员由Java指令函数体起始地址和函数体长度组成,Java_byteCode_Array0[]数组中按照Java指令的索引排序。
3.根据权利要求1所述的JAVA卡的自适应调整执行速度提升方法,其特征在于,所述数组Java_byteCode_Array1[]形成一个固定模板,模板采用链表式存储组成,其中所有内部方法函数的链表,均可支持增删改查,动态更新管理。
4.根据权利要求1所述的Java卡的自适应调整执行速度提升方法,其特征在于,步骤S4中创建的数组counter_Array[],用于Java指令执行的次数统计;根据执行Applet过程中Java指令执行的次数统计,将执行次数最多的几个Java指令函数体拷贝到ram中,从而下次执行时,Java指令程序由cpu从ram中读取执行,同时修改指令nop和sconst_m1在数组Java_byteCode_Array1[]中的Java指令函数地址,该地址为ram中的对应的函数体起始地址。
5.根据权利要求1所述的Java卡的自适应调整执行速度提升方法,其特征在于,在确认拷贝的指令个数时,需要考虑空闲的ram空间大小,拷贝到ram中的Java函数体的大小不能超过空闲的ram空间大小,然后将Java_byteCode_Array1[]数组回写到flash中原来位置,下次复位后,就将修改后的执行最优的Java_byteCode_Array1[]数组作为整体从flash拷贝到ram中。
CN202210480459.0A 2022-05-05 2022-05-05 一种Java卡的自适应调整执行速度提升方法 Active CN114579208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210480459.0A CN114579208B (zh) 2022-05-05 2022-05-05 一种Java卡的自适应调整执行速度提升方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210480459.0A CN114579208B (zh) 2022-05-05 2022-05-05 一种Java卡的自适应调整执行速度提升方法

Publications (2)

Publication Number Publication Date
CN114579208A true CN114579208A (zh) 2022-06-03
CN114579208B CN114579208B (zh) 2022-08-26

Family

ID=81778845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210480459.0A Active CN114579208B (zh) 2022-05-05 2022-05-05 一种Java卡的自适应调整执行速度提升方法

Country Status (1)

Country Link
CN (1) CN114579208B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101580A (en) * 1997-04-23 2000-08-08 Sun Microsystems, Inc. Apparatus and method for assisting exact garbage collection by using a stack cache of tag bits
US20050091468A1 (en) * 2003-10-28 2005-04-28 Renesas Technology America, Inc. Processor for virtual machines and method therefor
CN102662806A (zh) * 2012-02-29 2012-09-12 浙江大学 一种针对Java卡不同性能指标的自适应测试方法
CN103927187A (zh) * 2014-05-09 2014-07-16 成都凯智科技有限公司 嵌入式系统程序执行方法
CN104077173A (zh) * 2013-03-31 2014-10-01 宋浩 智能卡内java程序指令的执行方法及智能卡
US20170109387A1 (en) * 2015-10-14 2017-04-20 Paxata, Inc. Cache optimization for data preparation
CN108090341A (zh) * 2017-12-15 2018-05-29 深圳市文鼎创数据科技有限公司 Java卡控制方法及Java卡
CN111443991A (zh) * 2020-03-26 2020-07-24 恒宝股份有限公司 智能卡控制方法、装置及智能卡

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101580A (en) * 1997-04-23 2000-08-08 Sun Microsystems, Inc. Apparatus and method for assisting exact garbage collection by using a stack cache of tag bits
US20050091468A1 (en) * 2003-10-28 2005-04-28 Renesas Technology America, Inc. Processor for virtual machines and method therefor
CN102662806A (zh) * 2012-02-29 2012-09-12 浙江大学 一种针对Java卡不同性能指标的自适应测试方法
CN104077173A (zh) * 2013-03-31 2014-10-01 宋浩 智能卡内java程序指令的执行方法及智能卡
CN103927187A (zh) * 2014-05-09 2014-07-16 成都凯智科技有限公司 嵌入式系统程序执行方法
US20170109387A1 (en) * 2015-10-14 2017-04-20 Paxata, Inc. Cache optimization for data preparation
CN108090341A (zh) * 2017-12-15 2018-05-29 深圳市文鼎创数据科技有限公司 Java卡控制方法及Java卡
CN111443991A (zh) * 2020-03-26 2020-07-24 恒宝股份有限公司 智能卡控制方法、装置及智能卡

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘天华等: "Java智能卡指令折叠优化算法的研究与实现", 《INTERNATIONAL CONFERENCE ON COMPUTER,COMMUNICATIONS AND INFORMATION TECHNOLOGY(CCIT 2014)》 *

Also Published As

Publication number Publication date
CN114579208B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
US7908443B2 (en) Memory controller and method for optimized read/modify/write performance
CN106156278B (zh) 一种数据库数据读写方法和装置
JP2008537618A (ja) 自動化ページベースのramシャドウイングを備えるコンピュータ装置、及び、操作方法
WO2021036254A1 (zh) 在区块链中并发执行交易的方法和装置
CN109901890B (zh) 一种控制器加载多核固件的方法、装置、计算机设备及存储介质
CN114816263A (zh) 存储访问方法及智能处理装置
US9110791B2 (en) Optimistic object relocation
CN114579208B (zh) 一种Java卡的自适应调整执行速度提升方法
CN112667593B (zh) 一种ETL流程执行hbase快速装载的方法与装置
JP2005500604A (ja) 移動端末機におけるモデムとメモリとの間のインターフェース装置及び方法
CN116225999B (zh) 一种dma数据传输方法及系统
US20050268157A1 (en) Method for writing data to a non-volatile memory embedded in an integrated circuit and corresponding circuit
CN106293790A (zh) 基于Firefox操作系统的应用程序升级方法和装置
CN112487028A (zh) 服务器数据存储的方法、系统、电子装置和存储介质
Chiang et al. Two-stage diff: An efficient dynamic software update mechanism for wireless sensor networks
CN114691549A (zh) 一种文件写入方法、装置及计算设备
CN109426454A (zh) 具备独立磁盘冗余阵列的固态驱动器及其处理请求的方法
CN111651124B (zh) Ssd映射表多核分区并行重建方法、装置、设备及介质
US9141310B1 (en) Methods and apparatuses for shared state information among concurrently running processes or threads
CN103186474B (zh) 对处理器的高速缓存进行清除的方法以及该处理器
CN111984409A (zh) 一种提高系统资源利用率的方法及装置
US11182302B2 (en) Memory device, electronic device, and associated read method
US20050251795A1 (en) Method, system, and program for optimizing code
CN112130961B (zh) 基于numa架构的容器绑定方法及系统
JP2004343158A (ja) コンフィグレーション装置、方法及びプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant