CN113760193A - 用于资源受限制装置的数据读写方法、装置及指令集 - Google Patents
用于资源受限制装置的数据读写方法、装置及指令集 Download PDFInfo
- Publication number
- CN113760193A CN113760193A CN202111018810.6A CN202111018810A CN113760193A CN 113760193 A CN113760193 A CN 113760193A CN 202111018810 A CN202111018810 A CN 202111018810A CN 113760193 A CN113760193 A CN 113760193A
- Authority
- CN
- China
- Prior art keywords
- target
- variable
- variables
- index
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 239000000126 substance Substances 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 6
- 238000013523 data management Methods 0.000 abstract description 10
- 238000013500 data storage Methods 0.000 abstract description 10
- 238000013075 data extraction Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 37
- 238000010276 construction Methods 0.000 description 36
- 238000003491 array Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请涉及一种用于资源受限制装置的数据读写方法、装置及指令集,涉及数据管理技术领域,该方法包括以下步骤:获取目标代码,将目标代码中的变量进行分类,获得不同类型的目标变量;将不同类型的目标变量存储至对应的有序序列数据集合中;其中,有序序列数据集合对应一种类型的目标变量;有序序列数据集合内包括至少1个查找索引,查找索引与一个目标变量对应;查找索引与目标变量的实际物理地址相关联。本申请基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
Description
技术领域
本申请涉及数据管理技术领域,具体涉及一种用于资源受限制装置的数据读写方法、装置及指令集。
背景技术
在嵌入式开发中,智能SE、安全MCU芯片之类的装置具有资源有限且对性能要求较高的特点,传统上的C语言无法满足嵌入式模块多变的用户使用场景,无法满足同一个应用软件代码在不同嵌入式模块上都能运行的要求,同时其数据存储结构无法保证应用数据的安全,因此在嵌入式软件中常用Java语言和Java card虚拟机技术来进行应用代码开发,但是Java语言一方面存在授权使用的风险,另一方面其采用的token技术使得性能较差。
故而,为解决现有的技术问题,需要一种新的数据读写技术,满足当前嵌入式开发的技术需求。
发明内容
本申请提供一种用于资源受限制装置的数据读写方法、装置及指令集,基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
第一方面,本申请提供了一种用于资源受限制装置的数据读写方法,所述方法包括以下步骤:
获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
进一步的,所述用于资源受限制装置的数据读写方法还包括以下步骤:
响应数据读取指令,获取与所述数据读取指令对应的所述目标变量的所述查找索引;
根据所述查找索引,访问所述目标变量的实际物理地址。
具体的,所述目标变量包括全局目标变量以及局部目标变量。
进一步的,所述用于资源受限制装置的数据读写方法还包括以下步骤:
获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的所述全局目标变量以及所述局部目标变量;
将不同类型的所述全局目标变量存储至对应的虚拟结构体中;
将不同类型的所述局部目标变量存储至对应的虚拟机堆栈中;其中,
所述虚拟结构体对应一种类型的所述全局目标变量;
所述虚拟机堆栈对应一种类型的所述局部目标变量;
所述虚拟结构体内包括至少1个第一查找索引,所述第一查找索引与一个所述全局目标变量对应;
所述虚拟机堆栈内包括至少1个第二查找索引,所述第二查找索引与一个所述局部目标变量;
所述第一查找索引与所述全局目标变量的实际物理地址相关联;
所述第二查找索引与所述局部目标变量的实际物理地址相关联。
第二方面,本申请提供了一种用于资源受限制装置的数据读写装置,所述装置包括:
变量提取模块,其用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
变量存储模块,其用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
进一步的,所述用于资源受限制装置的数据读写装置还包括:
变量读取模块,其用于响应数据读取指令,获取与所述数据读取指令所述对应的所述目标变量的所述查找索引;
所述变量读取模块还用于根据所述查找索引,访问所述目标变量的实际物理地址。
进一步的,所述变量提取模块还用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的所述全局目标变量以及所述局部目标变量;
所述变量存储模块还用于将不同类型的所述全局目标变量存储至对应的所述虚拟结构体中;
所述变量存储模块还用于将不同类型的所述局部目标变量存储至对应的所述虚拟机堆栈中;其中,
所述虚拟结构体对应一种类型的所述全局目标变量;
所述虚拟机堆栈对应一种类型的所述局部目标变量;
所述虚拟结构体内包括至少1个第一查找索引,所述第一查找索引与一个所述全局目标变量对应;
所述虚拟机堆栈内包括至少1个第二查找索引,所述第二查找索引与一个所述局部目标变量;
所述第一查找索引与所述全局目标变量的实际物理地址相关联;
所述第二查找索引与所述局部目标变量的实际物理地址相关联。
第三方面,本申请提供了一种用于资源受限制装置的数据读写方法,所述方法基于数据读写指令集;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
第四方面,本申请提供了一种用于资源受限制装置的数据读写装置,所述装置用于执行数据读写指令集;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被所述装置执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被所述装置执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
第五方面,本申请提供了一种用于资源受限制装置的数据读写指令集;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
本申请提供的技术方案带来的有益效果包括:
本申请基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
附图说明
术语解释:
MCU:Microcontroller Unit,微控制单元;
NVM:Non-volatile Memory,固定存储器,非易失存储器;
RAM:Random Access Memory,随机存取存储器;
API:Application Programming Interface,应用程序接口。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中提供的用于资源受限制装置的数据读写方法的步骤流程图;
图2为本申请实施例中提供的用于资源受限制装置的数据读写方法的指令集示意图;
图3为本申请实施例中提供的用于资源受限制装置的数据读写方法的全局的基本类型变量的指令集示意图;
图4为本申请实施例中提供的用于资源受限制装置的数据读写方法的局部的基本类型变量的指令集示意图;
图5为本申请实施例中提供的用于资源受限制装置的数据读写方法的全局的数组变量的指令集示意图;
图6为本申请实施例中提供的用于资源受限制装置的数据读写方法的局部的数组变量指令集示意图;
图7为本申请实施例中提供的用于资源受限制装置的数据读写方法的全局的自定义结构体变量的指令集示意图;
图8为本申请实施例中提供的用于资源受限制装置的数据读写方法的局部的自定义结构体变量的指令集示意图;
图9为本申请实施例中提供的用于资源受限制装置的数据读写方法的指令格式示意图;
图10为本申请实施例中提供的用于资源受限制装置的数据读写装置的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图对本申请的实施例作进一步详细说明。
本申请实施例提供一种用于资源受限制装置的数据读写方法、装置及指令集,基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
为达到上述技术效果,本申请的总体思路如下:
一种用于资源受限制装置的数据读写方法,该方法包括以下步骤:
S1、获取目标代码,将目标代码中的变量进行分类,获得不同类型的目标变量;
S2、将不同类型的目标变量存储至对应的有序序列数据集合中;其中,
有序序列数据集合对应一种类型的目标变量;
有序序列数据集合内包括至少1个查找索引,查找索引与一个目标变量对应;
查找索引与目标变量的实际物理地址相关联。
以下结合附图对本申请的实施例作进一步详细说明。
第一方面,参见图1~9所示,本申请实施例提供一种用于资源受限制装置的数据读写方法,该方法包括以下步骤:
S1、获取目标代码,将目标代码中的变量进行分类,获得不同类型的目标变量;
S2、将不同类型的目标变量存储至对应的有序序列数据集合中;其中,
有序序列数据集合对应一种类型的目标变量;
有序序列数据集合内包括至少1个查找索引,查找索引与一个目标变量对应;
查找索引与目标变量的实际物理地址相关联。
针对现有技术存在的缺陷,本申请实施例的目的在于提供一种嵌入式软件操作系统字节码精简指令集和实现装置,用于智能SE(Solid Edge)、安全MCU芯片之类的资源受限装置,基于C语言开发的各种应用软件代码,减少其生成的字节码大小,不但可以减少芯片的存储空间需求,能提高数据访问的安全性,同时可以满足下载文件可以跨平台执行的需求。
为实现上述目的,本申请实施例中的用于资源受限制装置的数据读写方法,还存在以下技术特性:
指令集是可验证的、数据安全的指令序列,指令包括1个字节的操作码和0个、1个或多个字节的操作数;
将C语言软件代码中的变量按照数据类型和存储类型进行划分,针对不同类型的变量使用不同的指令集进行存储和访问;
将所有的变量都存储在一个有序序列数据集合中,有序序列数据集合包括应用的虚拟结构体和虚拟机堆栈;
指令集为每个应用构造至少一个应用的虚拟结构体以及对应的索引引用,构造时将应用的所有全局变量作为成员存储在虚拟结构体中;
指令集为每个自定义的struct结构体变量、数组变量构造一个索引引用;
指令集将应用变量的访问地址转换为数据集合上的偏移,并将偏移作为操作数来生成对应变量的存储和访问指令,其中全局变量地址转换为应用虚拟结构体内的偏移,局部变量地址转换为定义该局部变量的函数所在虚拟机堆栈内的偏移;
在构造声明的数组变量时,构造指令的操作码表示数组的类型,当数组存在初始值时将使用赋值指令把数组的初始值赋值给构造的数组变量;
在构造声明的结构体变量时,构造指令的操作码表示结构体的类型,当结构体成员中存在数组变量或结构体变量时,按照成员的先后顺序依次构造成员中的数组变量和结构体变量,然后将构造的变量使用赋值指令赋值给原始结构体成员;
指令集在数据的逻辑运算指令中设置了一个额外的操作数,用作数据类型的标记,用于记录逻辑运算指令中的数据的类型;
数据指针变量指向一个数组或结构体,数据指针在构造时将数组、结构体的索引和一个偏移结合起来表示一个相对地址。
本申请实施例基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
进一步的,用于资源受限制装置的数据读写方法还包括以下步骤:
响应数据读取指令,获取与数据读取指令对应的目标变量的查找索引;
根据查找索引,访问目标变量的实际物理地址。
具体的,目标变量包括全局目标变量以及局部目标变量。
具体的,有序序列数据集合包括虚拟结构体以及虚拟机堆栈。
进一步的,用于资源受限制装置的数据读写方法还包括以下步骤:
获取目标代码,将目标代码中的变量进行分类,获得不同类型的全局目标变量以及局部目标变量;
将不同类型的全局目标变量存储至对应的虚拟结构体中;
将不同类型的局部目标变量存储至对应的虚拟机堆栈中;其中,
虚拟结构体对应一种类型的全局目标变量;
虚拟机堆栈对应一种类型的局部目标变量;
虚拟结构体内包括至少1个第一查找索引,第一查找索引与一个全局目标变量对应;
虚拟机堆栈内包括至少1个第二查找索引,第二查找索引与一个局部目标变量;
第一查找索引与全局目标变量的实际物理地址相关联;
第二查找索引与局部目标变量的实际物理地址相关联。
具体的,目标变量包括基本类型变量、数组类型变量、结构体类型变量以及指针变量。
基于本申请实施例,给出具体的实施实例,具体情况如下:
在常用的C语言编译器(例如keil、VC)中,所有数据包括基本数据、数组和结构体都是按照其声明的顺序依次排列,数组、结构体之间没有进行隔离,很容易导致数据访问越界或者非法访问的问题,因此本方案中提出了一种的C语言虚拟机指令集,有效解决了应用数据存储和访问的安全问题,具体指令集如说明书附图的图2所示:
本申请实施例中将应用数据分为4个大类,针对每一类型的数据提供了相应的字节码指令集进行存储和访问。;
第一类,基本类型变量:
基本类型变量包括C语言中常用的char、unsigned char、short、unsigned short、int、unsigned int类型;
所有全局的基本类型变量都直接存储在应用的虚拟结构体中,其存储和访问地址是虚拟结构体中的2个字节偏移,该偏移在字节码中作为操作码的操作数。在访问全局的基本类型变量时先获取应用的虚拟结构体的索引,然后计算虚拟结构体的实际物理地址,再加上操作数的相对偏移即是变量的实际物理地址。全局的基本类型变量的指令格式为:opcode(1字节)opdata(2字节),具体存储和访问指令集见图3;
所有局部的基本类型变量(包括函数的参数和局部变量)都直接存储在虚拟机堆栈上,其存储和访问地址是基于当前函数的堆栈地址的1个字节偏移,该偏移在字节码中作为操作码的操作数。在访问局部的基本类型变量时先获取函数的堆栈地址,然后加上操作数的相对偏移即是变量的实际物理地址。局部的基本类型变量的指令格式为:opcode(1字节)opdata(1字节),具体存储和访问指令集见图4。
第二类,数组类型变量:
数组类型变量包括各种基本类型数据组成的数组;
所有全局的数组变量都以索引的形式存储在应用的虚拟结构体中,其存储和访问地址是虚拟结构体中的2个字节偏移,该偏移在字节码中作为操作码的操作数。在访问全局的数组变量时先获取应用的虚拟结构体的索引,然后计算虚拟结构体的实际物理地址,再加上操作数的相对偏移即是数组索引的实际物理地址。全局的数组变量的指令格式为:opcode(1字节)opdata(2字节),具体存储和访问指令集见图5;
所有局部的数组变量都以索引的形式存储在虚拟机堆栈上,其存储和访问地址是基于当前函数的堆栈地址的1个字节偏移,该偏移在字节码中作为操作码的操作数。在访问局部的数组变量时先获取函数的堆栈地址,然后加上操作数的相对偏移即是数组索引的实际物理地址。局部的数组变量的指令格式为:opcode(1字节)opdata(1字节),具体存储和访问指令集见图6。
第三类、结构体类型变量:
结构体类型变量包括C语言中的自定义结构体变量和应用的虚拟结构体;
应用的虚拟结构体是应用代码中的所有全局变量的一个集合,全局变量作为虚拟结构体的一个成员来存储和访问,虚拟结构体是全局变量的访问入口,应用本身无法访问虚拟结构体。
应用安装到虚拟机上时会在应用的安装函数中构造虚拟结构体变量的索引,该索引与应用在注册表中的信息相关联;
本申请实施例中定义了应用的虚拟结构体的构造指令:
Opcode(STRUCT_NEW),opdata(type),其中type为2字节的标识,该标识表示常量池中记录结构体的类型的条目;
所有全局的自定义结构体变量都以索引的形式存储在应用的虚拟结构体中,其存储和访问地址是虚拟结构体中的2个字节偏移,该偏移在字节码中作为操作码的操作数。在访问全局的结构体变量时先获取应用的虚拟结构体的索引,然后计算虚拟结构体的实际物理地址,再加上操作数的相对偏移即是结构体变量索引的实际物理地址。全局的结构体变量的指令格式为:opcode(1字节)opdata(2字节),具体存储和访问指令集见图7;
所有局部的自定义结构体变量都以索引的形式存储在虚拟机堆栈上,其存储和访问地址是基于当前函数的堆栈地址的1个字节偏移,该偏移在字节码中作为操作码的操作数。在访问局部的结构体变量时先获取函数的堆栈地址,然后加上操作数的相对偏移即是结构体变量索引的实际物理地址。局部的结构体变量的指令格式为:opcode(1字节)opdata(1字节),具体存储和访问指令集见图8。
第四类、指针变量:
在C语言中指针变量过于灵活的用法导致很容易出现非法指针或异常指针,所有有必要对指针地址进行约束。
在虚拟机中由于应用的后下载特点使得指针无法指向一个实际物理地址,而只能指向一个相对地址,因此在虚拟机中指针指向的地址使用数组、结构体的索引和一个偏移结合起来表示;
指针的存储和访问方式同数组类型变量。
本申请实施例中,数组、结构体索引的构造方式分为隐式构造和显式构造,隐式构造是在应用函数运行前程序自动执行构造指令码来创建数组或结构体类型变量,显式构造是应用程序主动调用特定方法来创建数组或结构体类型变量。
具体的,指针、数组和结构体类型的变量的索引与存储变量数据的实际物理地址之间是一种映射关系,每个索引对应一个物理内存;
应用全局变量的索引存储在应用的虚拟结构体中,对应的变量数据存储在应用内存中;应用局部变量的索引存储在虚拟机堆栈中,对应的变量数据存储在运行时数据堆。变量数据在物理内存中存储时包括实际数据内容和安全信息,其中安全信息包括但不限于变量类型、大小、所属应用等信息;
物理内存分为应用内存、虚拟机堆栈内存和运行时数据堆内存,
应用内存包括设备上应用可用的非易失性内存(NVM)和易失性内存(RAM),应用的虚拟结构体、全局变量都存储在应用内存中;
虚拟机堆栈内存存储函数的参数、局部变量,以及其他虚拟机运行所需的信息数据,其中指针、数组和结构体类型的局部变量以索引的形式存储在虚拟机堆栈中;
运行时数据堆是一个用于存储函数临时数据的缓冲区,存储局部数组和结构体类型变量的实际物理数据。
具体的,隐式构造的索引包括:应用虚拟结构体、全局数组和结构体变量、局部数组和结构体变量;其中,
应用虚拟结构体、全局数组和结构体变量的构造字节码在应用安装时自动执行,局部数组和结构体变量的构造字节码在具体函数运行时自动执行。
另外,显式构造的索引包括:通过应用编程接口(API)定义的方法来创建数组和结构体变量。
全局变量在应用虚拟结构体中分成两部分进行存储:索引类型部分和基本类型部分;
虚拟结构体中记录了变量索引的总个数和所有全局变量的总大小。
全局变量的访问方法是优先获取应用的虚拟结构体,其中基本类型变量的地址是在虚拟结构体中偏移,索引类型变量的地址是先根据虚拟结构体中的偏移找到索引值,然后查找索引对应的物理内存。
局部变量的访问方法是优先获取虚拟机堆栈中当前函数的堆栈地址,其中基本类型变量的地址是在函数堆栈中偏移,索引类型变量的地址是先根据函数堆栈中的偏移找到索引值,然后查找索引对应的物理内存。
针对C语言中的基本类型变量的逻辑运算,例如大于(等于)、小于(等于)、等于、右移、乘法、除法、取模操作,本方案在每个运算指令操作码后设置了一个额外的操作数,该操作数表示逻辑运算的数据的类型,大小为1个字节,其中高半字节表示左操作数的类型,低半字节表示右操作数的类型,其指令格式为opcode(1字节)optype(1字节)opdata(0、1或多个字节),具体指令集见图9。
第二方面,参见图10所示,本申请实施例提供一种用于资源受限制装置的数据读写装置,其基于第一方面提及的用于资源受限制装置的数据读写,该装置包括:
变量提取模块,其用于获取目标代码,将目标代码中的变量进行分类,获得不同类型的目标变量;
变量存储模块,其用于将不同类型的目标变量存储至对应的有序序列数据集合中;其中,
有序序列数据集合对应一种类型的目标变量;
有序序列数据集合内包括至少1个查找索引,查找索引与一个目标变量对应;
查找索引与目标变量的实际物理地址相关联。
本申请实施例中,基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
进一步的,该用于资源受限制装置的数据读写装置还包括:
变量读取模块,其用于响应数据读取指令,获取与数据读取指令对应的目标变量的查找索引;
变量读取模块还用于根据查找索引,访问目标变量的实际物理地址。
进一步的,该变量提取模块还用于获取目标代码,将目标代码中的变量进行分类,获得不同类型的全局目标变量以及局部目标变量;
变量存储模块还用于将不同类型的全局目标变量存储至对应的虚拟结构体中;
变量存储模块还用于将不同类型的局部目标变量存储至对应的虚拟机堆栈中;其中,
虚拟结构体对应一种类型的全局目标变量;
虚拟机堆栈对应一种类型的局部目标变量;
虚拟结构体内包括至少1个第一查找索引,第一查找索引与一个全局目标变量对应;
虚拟机堆栈内包括至少1个第二查找索引,第二查找索引与一个局部目标变量;
第一查找索引与全局目标变量的实际物理地址相关联;
第二查找索引与局部目标变量的实际物理地址相关联。。
具体的,目标变量包括基本类型变量、数组类型变量、结构体类型变量以及指针变量。
第三方面,本申请实施例提供一种用于资源受限制装置的数据读写方法,该方法与第一方面提及的用于资源受限制装置的数据读写方法基于同一技术理念,该方法基于数据读写指令集;
该数据读写指令集包括一组用于处理目标代码的指令序列;
该指令序列在被执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
该指令序列在被执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
本申请实施例基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
进一步的,该指令序列在被执行时还用于进行以下操作:
响应数据读取指令,获取与数据读取指令对应的目标变量的查找索引;
根据查找索引,访问目标变量的实际物理地址。
具体的,目标变量包括全局目标变量以及局部目标变量。
具体的,有序序列数据集合包括虚拟结构体以及虚拟机堆栈。
进一步的,该指令序列在被执行时还用于进行以下操作:
获取目标代码,将目标代码中的变量进行分类,获得不同类型的全局目标变量以及局部目标变量;
将不同类型的全局目标变量存储至对应的虚拟结构体中;
将不同类型的局部目标变量存储至对应的虚拟机堆栈中;其中,
虚拟结构体对应一种类型的全局目标变量;
虚拟机堆栈对应一种类型的局部目标变量;
虚拟结构体内包括至少1个第一查找索引,第一查找索引与一个全局目标变量对应;
虚拟机堆栈内包括至少1个第二查找索引,第二查找索引与一个局部目标变量;
第一查找索引与全局目标变量的实际物理地址相关联;
第二查找索引与局部目标变量的实际物理地址相关联。
具体的,目标变量包括基本类型变量、数组类型变量、结构体类型变量以及指针变量。
本申请实施例中,数组、结构体索引的构造方式分为隐式构造和显式构造,隐式构造是在应用函数运行前程序自动执行构造指令码来创建数组或结构体类型变量,显式构造是应用程序主动调用特定方法来创建数组或结构体类型变量。
具体的,指针、数组和结构体类型的变量的索引与存储变量数据的实际物理地址之间是一种映射关系,每个索引对应一个物理内存;
应用全局变量的索引存储在应用的虚拟结构体中,对应的变量数据存储在应用内存中;应用局部变量的索引存储在虚拟机堆栈中,对应的变量数据存储在运行时数据堆。变量数据在物理内存中存储时包括实际数据内容和安全信息,其中安全信息包括但不限于变量类型、大小、所属应用等信息;
物理内存分为应用内存、虚拟机堆栈内存和运行时数据堆内存,
应用内存包括设备上应用可用的非易失性内存(NVM)和易失性内存(RAM),应用的虚拟结构体、全局变量都存储在应用内存中;
虚拟机堆栈内存存储函数的参数、局部变量,以及其他虚拟机运行所需的信息数据,其中指针、数组和结构体类型的局部变量以索引的形式存储在虚拟机堆栈中;
运行时数据堆是一个用于存储函数临时数据的缓冲区,存储局部数组和结构体类型变量的实际物理数据。
具体的,隐式构造的索引包括:应用虚拟结构体、全局数组和结构体变量、局部数组和结构体变量;其中,
应用虚拟结构体、全局数组和结构体变量的构造字节码在应用安装时自动执行,局部数组和结构体变量的构造字节码在具体函数运行时自动执行。
另外,显式构造的索引包括:通过应用编程接口(API)定义的方法来创建数组和结构体变量。
全局变量在应用虚拟结构体中分成两部分进行存储:索引类型部分和基本类型部分;
虚拟结构体中记录了变量索引的总个数和所有全局变量的总大小。
全局变量的访问方法是优先获取应用的虚拟结构体,其中基本类型变量的地址是在虚拟结构体中偏移,索引类型变量的地址是先根据虚拟结构体中的偏移找到索引值,然后查找索引对应的物理内存。
局部变量的访问方法是优先获取虚拟机堆栈中当前函数的堆栈地址,其中基本类型变量的地址是在函数堆栈中偏移,索引类型变量的地址是先根据函数堆栈中的偏移找到索引值,然后查找索引对应的物理内存。
第四方面,本申请实施例提供一种用于资源受限制装置的数据读写装置,该装置用于执行数据读写指令集,该数据读写指令集与第一方面提及的用于资源受限制装置的数据读写方法基于同一技术理念;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被所述装置执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被所述装置执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
本申请实施例基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
进一步的,该指令序列在被执行时还用于进行以下操作:
响应数据读取指令,获取与数据读取指令对应的目标变量的查找索引;
根据查找索引,访问目标变量的实际物理地址。
具体的,目标变量包括全局目标变量以及局部目标变量。
具体的,有序序列数据集合包括虚拟结构体以及虚拟机堆栈。
进一步的,该指令序列在被执行时还用于进行以下操作:
获取目标代码,将目标代码中的变量进行分类,获得不同类型的全局目标变量以及局部目标变量;
将不同类型的全局目标变量存储至对应的虚拟结构体中;
将不同类型的局部目标变量存储至对应的虚拟机堆栈中;其中,
虚拟结构体对应一种类型的全局目标变量;
虚拟机堆栈对应一种类型的局部目标变量;
虚拟结构体内包括至少1个第一查找索引,第一查找索引与一个全局目标变量对应;
虚拟机堆栈内包括至少1个第二查找索引,第二查找索引与一个局部目标变量;
第一查找索引与全局目标变量的实际物理地址相关联;
第二查找索引与局部目标变量的实际物理地址相关联。
具体的,目标变量包括基本类型变量、数组类型变量、结构体类型变量以及指针变量。
本申请实施例中,数组、结构体索引的构造方式分为隐式构造和显式构造,隐式构造是在应用函数运行前程序自动执行构造指令码来创建数组或结构体类型变量,显式构造是应用程序主动调用特定方法来创建数组或结构体类型变量。
具体的,指针、数组和结构体类型的变量的索引与存储变量数据的实际物理地址之间是一种映射关系,每个索引对应一个物理内存;
应用全局变量的索引存储在应用的虚拟结构体中,对应的变量数据存储在应用内存中;应用局部变量的索引存储在虚拟机堆栈中,对应的变量数据存储在运行时数据堆。变量数据在物理内存中存储时包括实际数据内容和安全信息,其中安全信息包括但不限于变量类型、大小、所属应用等信息;
物理内存分为应用内存、虚拟机堆栈内存和运行时数据堆内存,
应用内存包括设备上应用可用的非易失性内存(NVM)和易失性内存(RAM),应用的虚拟结构体、全局变量都存储在应用内存中;
虚拟机堆栈内存存储函数的参数、局部变量,以及其他虚拟机运行所需的信息数据,其中指针、数组和结构体类型的局部变量以索引的形式存储在虚拟机堆栈中;
运行时数据堆是一个用于存储函数临时数据的缓冲区,存储局部数组和结构体类型变量的实际物理数据。
具体的,隐式构造的索引包括:应用虚拟结构体、全局数组和结构体变量、局部数组和结构体变量;其中,
应用虚拟结构体、全局数组和结构体变量的构造字节码在应用安装时自动执行,局部数组和结构体变量的构造字节码在具体函数运行时自动执行。
另外,显式构造的索引包括:通过应用编程接口(API)定义的方法来创建数组和结构体变量。
全局变量在应用虚拟结构体中分成两部分进行存储:索引类型部分和基本类型部分;
虚拟结构体中记录了变量索引的总个数和所有全局变量的总大小。
全局变量的访问方法是优先获取应用的虚拟结构体,其中基本类型变量的地址是在虚拟结构体中偏移,索引类型变量的地址是先根据虚拟结构体中的偏移找到索引值,然后查找索引对应的物理内存。
局部变量的访问方法是优先获取虚拟机堆栈中当前函数的堆栈地址,其中基本类型变量的地址是在函数堆栈中偏移,索引类型变量的地址是先根据函数堆栈中的偏移找到索引值,然后查找索引对应的物理内存。
第五方面,本申请实施例提供一种用于资源受限制装置的数据读写指令集,该数据读写指令集与第一方面提及的用于资源受限制装置的数据读写方法基于同一技术理念;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被所述装置执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被所述装置执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
本申请实施例基于目标代码中的目标变量的类型,分配对应的有序序列数据集合,并借助索引进行数据管理,为数据存储和数据提取提供便利,有效降低对存储资源的要求,满足资源受限环境下的使用需求。
进一步的,该指令序列在被执行时还用于进行以下操作:
响应数据读取指令,获取与数据读取指令对应的目标变量的查找索引;
根据查找索引,访问目标变量的实际物理地址。
具体的,目标变量包括全局目标变量以及局部目标变量。
具体的,有序序列数据集合包括虚拟结构体以及虚拟机堆栈。
进一步的,该指令序列在被执行时还用于进行以下操作:
获取目标代码,将目标代码中的变量进行分类,获得不同类型的全局目标变量以及局部目标变量;
将不同类型的全局目标变量存储至对应的虚拟结构体中;
将不同类型的局部目标变量存储至对应的虚拟机堆栈中;其中,
虚拟结构体对应一种类型的全局目标变量;
虚拟机堆栈对应一种类型的局部目标变量;
虚拟结构体内包括至少1个第一查找索引,第一查找索引与一个全局目标变量对应;
虚拟机堆栈内包括至少1个第二查找索引,第二查找索引与一个局部目标变量;
第一查找索引与全局目标变量的实际物理地址相关联;
第二查找索引与局部目标变量的实际物理地址相关联。
具体的,目标变量包括基本类型变量、数组类型变量、结构体类型变量以及指针变量。
本申请实施例中,数组、结构体索引的构造方式分为隐式构造和显式构造,隐式构造是在应用函数运行前程序自动执行构造指令码来创建数组或结构体类型变量,显式构造是应用程序主动调用特定方法来创建数组或结构体类型变量。
具体的,指针、数组和结构体类型的变量的索引与存储变量数据的实际物理地址之间是一种映射关系,每个索引对应一个物理内存;
应用全局变量的索引存储在应用的虚拟结构体中,对应的变量数据存储在应用内存中;应用局部变量的索引存储在虚拟机堆栈中,对应的变量数据存储在运行时数据堆。变量数据在物理内存中存储时包括实际数据内容和安全信息,其中安全信息包括但不限于变量类型、大小、所属应用等信息;
物理内存分为应用内存、虚拟机堆栈内存和运行时数据堆内存,
应用内存包括设备上应用可用的非易失性内存(NVM)和易失性内存(RAM),应用的虚拟结构体、全局变量都存储在应用内存中;
虚拟机堆栈内存存储函数的参数、局部变量,以及其他虚拟机运行所需的信息数据,其中指针、数组和结构体类型的局部变量以索引的形式存储在虚拟机堆栈中;
运行时数据堆是一个用于存储函数临时数据的缓冲区,存储局部数组和结构体类型变量的实际物理数据。
具体的,隐式构造的索引包括:应用虚拟结构体、全局数组和结构体变量、局部数组和结构体变量;其中,
应用虚拟结构体、全局数组和结构体变量的构造字节码在应用安装时自动执行,局部数组和结构体变量的构造字节码在具体函数运行时自动执行。
另外,显式构造的索引包括:通过应用编程接口(API)定义的方法来创建数组和结构体变量。
全局变量在应用虚拟结构体中分成两部分进行存储:索引类型部分和基本类型部分;
虚拟结构体中记录了变量索引的总个数和所有全局变量的总大小。
全局变量的访问方法是优先获取应用的虚拟结构体,其中基本类型变量的地址是在虚拟结构体中偏移,索引类型变量的地址是先根据虚拟结构体中的偏移找到索引值,然后查找索引对应的物理内存。
局部变量的访问方法是优先获取虚拟机堆栈中当前函数的堆栈地址,其中基本类型变量的地址是在函数堆栈中偏移,索引类型变量的地址是先根据函数堆栈中的偏移找到索引值,然后查找索引对应的物理内存。
需要说明的是,在本申请中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种用于资源受限制装置的数据读写方法,其特征在于,所述方法包括以下步骤:
获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
2.如权利要求1所述的用于资源受限制装置的数据读写方法,其特征在于,所述方法还包括以下步骤:
响应数据读取指令,获取与所述数据读取指令对应的所述目标变量的所述查找索引;
根据所述查找索引,访问所述目标变量的实际物理地址。
3.如权利要求1所述的用于资源受限制装置的数据读写方法,其特征在于:
所述目标变量包括全局目标变量以及局部目标变量。
4.如权利要求3所述的用于资源受限制装置的数据读写方法,其特征在于,所述方法还包括以下步骤:
获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的所述全局目标变量以及所述局部目标变量;
将不同类型的所述全局目标变量存储至对应的虚拟结构体中;
将不同类型的所述局部目标变量存储至对应的虚拟机堆栈中;其中,
所述虚拟结构体对应一种类型的所述全局目标变量;
所述虚拟机堆栈对应一种类型的所述局部目标变量;
所述虚拟结构体内包括至少1个第一查找索引,所述第一查找索引与一个所述全局目标变量对应;
所述虚拟机堆栈内包括至少1个第二查找索引,所述第二查找索引与一个所述局部目标变量;
所述第一查找索引与所述全局目标变量的实际物理地址相关联;
所述第二查找索引与所述局部目标变量的实际物理地址相关联。
5.一种用于资源受限制装置的数据读写装置,其特征在于,所述装置包括:
变量提取模块,其用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
变量存储模块,其用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
6.如权利要求5述的用于资源受限制装置的数据读写装置,其特征在于:
变量读取模块,其用于响应数据读取指令,获取与所述数据读取指令所述对应的所述目标变量的所述查找索引;
所述变量读取模块还用于根据所述查找索引,访问所述目标变量的实际物理地址。
7.如权利要求5述的用于资源受限制装置的数据读写装置,其特征在于:
所述变量提取模块还用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的所述全局目标变量以及所述局部目标变量;
所述变量存储模块还用于将不同类型的所述全局目标变量存储至对应的所述虚拟结构体中;
所述变量存储模块还用于将不同类型的所述局部目标变量存储至对应的所述虚拟机堆栈中;其中,
所述虚拟结构体对应一种类型的所述全局目标变量;
所述虚拟机堆栈对应一种类型的所述局部目标变量;
所述虚拟结构体内包括至少1个第一查找索引,所述第一查找索引与一个所述全局目标变量对应;
所述虚拟机堆栈内包括至少1个第二查找索引,所述第二查找索引与一个所述局部目标变量;
所述第一查找索引与所述全局目标变量的实际物理地址相关联;
所述第二查找索引与所述局部目标变量的实际物理地址相关联。
8.一种用于资源受限制装置的数据读写方法,其特征在于,所述方法基于数据读写指令集;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
9.一种用于资源受限制装置的数据读写装置,其特征在于,所述装置用于执行数据读写指令集;
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被所述装置执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被所述装置执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
10.一种用于资源受限制装置的数据读写指令集,其特征在于:
所述数据读写指令集包括一组用于处理目标代码的指令序列;
所述指令序列在被执行时用于获取目标代码,将所述目标代码中的变量进行分类,获得不同类型的目标变量;
所述指令序列在被执行时还用于将不同类型的所述目标变量存储至对应的有序序列数据集合中;其中,
所述有序序列数据集合对应一种类型的所述目标变量;
所述有序序列数据集合内包括至少1个查找索引,所述查找索引与一个所述目标变量对应;
所述查找索引与所述目标变量的实际物理地址相关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111018810.6A CN113760193B (zh) | 2021-08-26 | 2021-08-26 | 用于资源受限制装置的数据读写方法、装置及指令集 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111018810.6A CN113760193B (zh) | 2021-08-26 | 2021-08-26 | 用于资源受限制装置的数据读写方法、装置及指令集 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113760193A true CN113760193A (zh) | 2021-12-07 |
CN113760193B CN113760193B (zh) | 2024-04-02 |
Family
ID=78792396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111018810.6A Active CN113760193B (zh) | 2021-08-26 | 2021-08-26 | 用于资源受限制装置的数据读写方法、装置及指令集 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760193B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780146A (zh) * | 2022-06-17 | 2022-07-22 | 深流微智能科技(深圳)有限公司 | 资源地址查询方法、装置、系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6446839A (en) * | 1987-08-17 | 1989-02-21 | Toshiba Corp | Prolog processor |
US5384825A (en) * | 1993-07-01 | 1995-01-24 | Motorola, Inc. | Method for memory dialing for cellular telephones |
US5671383A (en) * | 1995-10-04 | 1997-09-23 | Intel Corporation | Register renaming in a superscalar microprocessor utilizing local and global renamer devices |
CN1359491A (zh) * | 1999-02-02 | 2002-07-17 | 太阳微系统公司 | 用于资源受限装置的面向对象的指令集 |
CN1754151A (zh) * | 2000-09-21 | 2006-03-29 | 国际商业机器公司 | Java中的可变性分析 |
CN102929682A (zh) * | 2012-12-06 | 2013-02-13 | 盛科网络(苏州)有限公司 | 自动扩展tcl语言的预处理方法和装置 |
CN109697279A (zh) * | 2018-12-27 | 2019-04-30 | 潍柴动力股份有限公司 | 一种a2l变量地址处理方法和装置 |
CN110333870A (zh) * | 2019-06-28 | 2019-10-15 | 潍柴动力股份有限公司 | Simulink模型变量分配的处理方法、装置及设备 |
US20200241917A1 (en) * | 2017-10-13 | 2020-07-30 | Huawei Technologies Co., Ltd. | Resource management method and terminal device |
CN112506569A (zh) * | 2020-12-14 | 2021-03-16 | 杭州趣链科技有限公司 | 一种字节码执行方法、字节码执行装置及终端设备 |
-
2021
- 2021-08-26 CN CN202111018810.6A patent/CN113760193B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6446839A (en) * | 1987-08-17 | 1989-02-21 | Toshiba Corp | Prolog processor |
US5384825A (en) * | 1993-07-01 | 1995-01-24 | Motorola, Inc. | Method for memory dialing for cellular telephones |
US5671383A (en) * | 1995-10-04 | 1997-09-23 | Intel Corporation | Register renaming in a superscalar microprocessor utilizing local and global renamer devices |
CN1359491A (zh) * | 1999-02-02 | 2002-07-17 | 太阳微系统公司 | 用于资源受限装置的面向对象的指令集 |
CN1754151A (zh) * | 2000-09-21 | 2006-03-29 | 国际商业机器公司 | Java中的可变性分析 |
CN102929682A (zh) * | 2012-12-06 | 2013-02-13 | 盛科网络(苏州)有限公司 | 自动扩展tcl语言的预处理方法和装置 |
US20200241917A1 (en) * | 2017-10-13 | 2020-07-30 | Huawei Technologies Co., Ltd. | Resource management method and terminal device |
CN109697279A (zh) * | 2018-12-27 | 2019-04-30 | 潍柴动力股份有限公司 | 一种a2l变量地址处理方法和装置 |
CN110333870A (zh) * | 2019-06-28 | 2019-10-15 | 潍柴动力股份有限公司 | Simulink模型变量分配的处理方法、装置及设备 |
CN112506569A (zh) * | 2020-12-14 | 2021-03-16 | 杭州趣链科技有限公司 | 一种字节码执行方法、字节码执行装置及终端设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780146A (zh) * | 2022-06-17 | 2022-07-22 | 深流微智能科技(深圳)有限公司 | 资源地址查询方法、装置、系统 |
CN114780146B (zh) * | 2022-06-17 | 2022-08-26 | 深流微智能科技(深圳)有限公司 | 资源地址查询方法、装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113760193B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100329063B1 (ko) | 마이크로컨트롤러를 이용한 고급 프로그래밍 언어 사용 | |
US6865659B2 (en) | Using short references to access program elements in a large address space | |
US6880155B2 (en) | Token-based linking | |
US6581206B2 (en) | Computer program language subset validation | |
US20030135792A1 (en) | Language subset validation | |
US8176142B2 (en) | Shared JAVA jar files | |
US20080114804A1 (en) | System and method for interoperating with foreign objects from a single language computing environment | |
JP4378459B2 (ja) | 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化 | |
CN110287695B (zh) | 一种Java卡及其临时对象的管理方法 | |
CN113760193B (zh) | 用于资源受限制装置的数据读写方法、装置及指令集 | |
CZ423598A3 (cs) | Přenosný bezpečný transakční systém pro programovatelná inteligentní zařízení | |
CN116661910B (zh) | 一种应用调用的方法及装置 | |
US6804681B2 (en) | Identifying and tracking object references in a java programming environment | |
EP1444572B1 (en) | Method and apparatus for facilitating compact object headers | |
US6934726B2 (en) | Storing and retrieving of field descriptors in Java computing environments | |
WO2002091172A2 (en) | Identifying references to objects during bytecode verification | |
CN116700841B (zh) | 一种原生api调用的方法及装置 | |
CN112199159B (zh) | 对操作数栈和变量表的读写方法、装置、设备及存储介质 | |
CN112631720B (zh) | 内存控制方法、介质及设备 | |
CN116700840B (zh) | 文件执行方法、装置、电子设备及可读存储介质 | |
US20040011875A1 (en) | Data carrier | |
CN115309405A (zh) | 一种代码链接优化方法 | |
JP2003256209A (ja) | プログラム実行装置 | |
CN116382785A (zh) | 用于数据处理的方法及装置、计算设备及存储介质 | |
KR101357518B1 (ko) | Transient 메모리에 파일 데이터가 저장되는 파일을 운용하는 스마트카드 및 그의 파일 관리 방법 |
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 |