CN112631662B - 众核异构架构下的多类型目标代码的透明加载方法 - Google Patents

众核异构架构下的多类型目标代码的透明加载方法 Download PDF

Info

Publication number
CN112631662B
CN112631662B CN201910904063.2A CN201910904063A CN112631662B CN 112631662 B CN112631662 B CN 112631662B CN 201910904063 A CN201910904063 A CN 201910904063A CN 112631662 B CN112631662 B CN 112631662B
Authority
CN
China
Prior art keywords
program
kernel
operating system
core
information
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.)
Active
Application number
CN201910904063.2A
Other languages
English (en)
Other versions
CN112631662A (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910904063.2A priority Critical patent/CN112631662B/zh
Publication of CN112631662A publication Critical patent/CN112631662A/zh
Application granted granted Critical
Publication of CN112631662B publication Critical patent/CN112631662B/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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种众核异构架构下的多类型目标代码的透明加载方法,用户执行execve系统调用进入内核打开目标代码文件,读入目标文件头部,寻找标代码格式的处理函数;检查目标代码ELF头部信息正确性和Machine字段信息;解析环境变量;填写程序参数、环境变量必要信息到用户栈;加载目标代码的程序头表;根据数据段表信息,将程序段、数据段拷贝到物理空间中;初始化,对该数据结构中的元素进行赋值;根据配置信息,配置运算核中的配置寄存器;启动运算核心;检查程序类型;加载操作系统中驻留服务程序,修改程序的执行入口为服务程序的入口;进入新的程序入口执行。本发明实现了一套“异构”程序的加载流程,统一了“异构”程序执行流程,提升了用户的好用性。

Description

众核异构架构下的多类型目标代码的透明加载方法
技术领域
本发明涉及一种众核异构架构下的多类型目标代码的透明加载方法,属于操作系统技术领域。
背景技术
在Linux操作系统中,用户程序目标代码的执行由操作系统内核负责。现有的众核处理器平台采用异构体系结构,其上运行的应用程序也不可避免的被“异构”化,分为“纯主核”目标码、“纯从核”目标码、“主从混合”目标码三类。另外,“纯主核”目标码从编译链接角度区分又分为静态链接目标码和动态链接目标码和动态库,操作系统内核需要针对上述多种目标代码程序分别区分处理,做到对用户透明。
目前在国际上CPU+GPU(Graphics Processing Unit,图形处理器)的异构架构下,用户课题的加载也是透明加载的,但其前提是用户课题不能使用通用的c编程接口,而是要采用统一计算设备架构(Compute Unified Device Architecture,cuda)特定的编程接口(RunTime API和driver API)操作GPU的设备。具体的流程如下:
1、编译流程
1)首先用设备编译器预处理,如NVIDIA Cuda compiler driver(nvcc),并将相关cuda代码(主要是核函数)编译为放置在fatbinary中cuda二进制(cubin)和并行程序执行(Parallel Thread Execution,PTX)中间代码,并将cuda特定的c++扩展转换为标准c++构造合成嵌入fatbinary;
2)再在主机端编译器预处理;
3)最后主机编译器将fatbinary嵌入到主机的目标代码;
2、加载流程
gpu目标代码按照正常的c/c++可执行代码加载,因为用户在源代码中已经显示的使用了cuda的API进行编程,因而用户可执行程序是直接通过cuda相关的API对设备进行操作的。
CPU+GPU的架构对比国产众核的架构在编程模型上是完全不一样的,CPU+GPU的架构将设备的操作以API接口的方式封装好,直接让用户操作控制在GPU上的执行流和数据流,操作系统是不直接参与操作设备的。而国产众核的架构在编程模型上还是继承了传统的多线程的编程模型,用户不直接操作众核设备,而是通过thread库直接创建众核上运行的线程,因此对众核设备的控制以及众核上运行线程的控制都需要操作系统的干预。
当前国产众核架构如太湖之光,其使用的流程为在用户层增加了一个加载器的用户可执行程序,该加载器为“纯主核”的应用程序,也是操作系统当前支持的唯一目标代码。对于“异构”的应用程序,则通过该加载器解析并分配到芯片上的“异构”从核上执行。操作系统并没有参与“异构”程序的解析加载的动作。
发明内容
本发明的目的是提供一种众核异构架构下的多类型目标代码的透明加载方法,该众核异构架构下的多类型目标代码的透明加载方法实现了一套“异构”程序的加载流程,统一了“异构”程序执行流程,提升了用户的好用性。
为达到上述目的,本发明采用的技术方案是:一种众核异构架构下的多类型目标代码的透明加载方法,包括以下步骤,
S1、用户执行execve类系统调用进入操作系统内核;
S2、操作系统内核打开目标代码文件,并读入目标代码文件头部信息,所述目标代码文件为ELF文件格式,对应的处理函数为load_elf_binary函数;
S3、操作系统内核检查ELF文件格式的目标代码文件头部信息的正确性,如果目标代码文件头部信息正确,执行下一步;否则,系统调用退出内核;
S4、操作系统内核检查ELF文件格式的目标代码文件头部中的Machine字段信息,如果Machine字段信息中有SW-MASTER信息,则执行S5,如果Machine字段信息中有SW-MIX信息或者SW-SLAVE信息,则执行S6;
S5、传统的linux流程,具体步骤如下:
S51、操作系统为用户进程分配页式的用户栈空间;
S52、操作系统内核填写纯主核目标代码的参数、环境变量必要信息;
S53、操作系统内核加载纯主核目标代码的程序头表;
S54、如果用户程序需要动态链接,则作系统内核寻找处理解释器段,并检查读取解释器段的程序头表,完成解释器的初始化;
S55、解释器装入目标代码的可加载段;
S56、操作系统内核填入目标代码的入口地址;
S57、S1中的用户进程进入新的目标代码的入口执行;
S6、操作系统内核解析目标代码的环境变量:此环境变量中包含有该“主从”混合目标代码或纯从核目标代码对“异构”运算核的配置信息;
S7、根据S6中获得的配置信息,进行如下操作;
S71、操作系统内核通过段式内存管理模块分配用户栈,根据S6中的配置信息,设置栈空间大小;
S72、操作系统内核通过“运算核”管理模块分配运算核资源申请“异构”的运算核资源;
S73、操作系统内核根据配置信息中空间大小,分配对应类型的物理空间,通过“段式”内存管理分配物理空间;
S8、操作系统内核填写主从混合目标代码或纯从核目标代码的参数、环境变量必要信息到用户栈;
S9、操作系统内核加载目标代码的程序头表,其中包含有关“异构”主从混合目标代码或纯从核目标代码自定义的程序头表;
S10、根据S9中解析的程序头表信息,将对应的程序头表、数据段拷贝到S7中申请的物理空间中;
S11、初始化程序与c库、线程库的接口信息,所谓初始化,即根据S7、S8、S9的信息填对该数据结构中的元素进行赋值;
S12、根据S7中的配置信息,配置运算核中相关的配置寄存器;
S13、启动运算核心:写运算核心中的启动/停止寄存器;
S14、操作系统内核检查程序类型:对于“主从”混合程序转S16,纯从核程序转S15;
S15、操作系统内核加载操作系统中驻留的服务程序,并修改目标代码的执行入口为服务程序的入口;
S16、进入新的程序入口执行。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,所述ELF格式的目标代码文件头部中的Machine字段与编译器存在以下约定:SW-MASTER表示纯主核目标代码,SW-MIX表示“主从”混合目标代码, SW-SLAVE表示纯从核目标代码。
2. 上述方案中,所述“异构”运算核的配置信息包括目标可执行程序物理空间大小、使用的运算核心个数、运算核的浮点配置信息、局部存储大小配置信息和栈大小配置信息。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明众核异构架构下的多类型目标代码的透明加载方法,其在于在异构众核架构下,针对多种目标代码,在操作系统层面中实现了一套“异构”程序的加载流程,统一了“异构”程序执行流程,提升了用户的好用性。
附图说明
附图1为本发明众核异构架构下的多类型目标代码的透明加载方法流程示意图。
具体实施方式
如图1所示,一种众核异构架构下的多类型目标代码的透明加载方法,包括以下步骤,
S1、用户执行execve类系统调用进入操作系统内核。
S2、操作系统内核打开目标代码文件,并读入目标代码文件头部信息,所述目标代码文件为ELF文件格式,对应的处理函数为load_elf_binary函数。
S3、操作系统内核检查ELF文件格式的目标代码文件头部信息的正确性,如果目标代码文件头部信息正确,执行下一步;否则,系统调用退出内核。检查是通过比较ELF文件头部信息中的幻数,如果elf头部信息中的幻数与操作系统内核中保存的幻数相等就表示正确,否则非法。
S4、操作系统内核检查ELF文件格式的目标代码文件头部中的Machine字段信息,如果Machine字段信息中有SW-MASTER信息,则执行S5,如果Machine字段信息中有SW-MIX信息或者SW-SLAVE信息,则执行S6。
S5、传统的linux流程,具体步骤如下:
S51、操作系统为用户进程分配页式的用户栈空间;其中,“页式的”是指用户栈空间本身是通过页式管理的,同时分配也是通过页式管理的方式分配的,这两种解释都包含在里面;
S52、操作系统内核填写纯主核目标代码的参数、环境变量必要信息;
S53、操作系统内核加载纯主核目标代码的程序头表;
S54、如果用户程序需要动态链接,则作系统内核寻找处理解释器段,并检查读取解释器段的程序头表,完成解释器的初始化;其中,解释器段是解释器中的程序段,在加载动态库之前需要加载解释器,加载解释器则需要解析解析器中的程序段,解释器段应该是属于解释器的一部分;
S55、解释器装入目标代码的可加载段;其中,可加载段可以为PT_LOAD段,PT_LOAD段用于标识目标代码使用的“动态库”,这个段不是唯一的,一个“动态库”对应一个段;
S56、操作系统内核填入目标代码的入口地址;
S57、S1中的用户进程进入新的目标代码的入口执行;其中,用户进程是调用execve类系统调用的用户进程,即S1中的“用户”。
S6、操作系统内核解析目标代码的环境变量,其解析获得结构是有关目标代码的配置信息:此环境变量中包含有该“主从”混合目标代码或纯从核目标代码对“异构”运算核的配置信息。
S7、根据S6中获得的配置信息,进行如下操作;
S71、操作系统内核通过段式内存管理模块分配用户栈,根据S6中的配置信息,设置栈空间大小;
S72、操作系统内核通过“运算核”管理模块分配运算核资源申请“异构”的运算核资源;
S73、操作系统内核根据配置信息中空间大小,分配对应类型的物理空间,通过“段式”内存管理分配物理空间。
S8、操作系统内核填写主从混合目标代码或纯从核目标代码的参数、环境变量必要信息到用户栈。
S9、操作系统内核加载目标代码的程序头表,其中包含有关“异构”主从混合目标代码或纯从核目标代码自定义的程序头表。
S10、根据S9中解析的程序头表信息,将对应的程序头表、数据段拷贝到S7中申请的物理空间中;其中“程序头表”中可以解析出一个个的“数据段”和“程序段”,这些“数据段”和“程序段”需要将它们从文件中拷贝到申请的物理空间中。
S11、初始化程序与c库、线程库的接口信息,所谓初始化,即根据S7、S8、S9的信息填对该数据结构中的元素进行赋值。S7中运算核资源信息、S8中得到的用户栈顶信息、S9中解析出的各个程序段的信息。
S12、根据S7中的配置信息,配置运算核中相关的配置寄存器。
S13、启动运算核心:写运算核心中的启动/停止寄存器。如写0x3为启动运算核,写0为停止运算核。
S14、操作系统内核检查程序类型:对于“主从”混合程序转S16,纯从核程序转S15。
S15、操作系统内核加载操作系统中驻留的服务程序,并修改目标代码的执行入口为服务程序的入口。
S16、进入新的程序入口执行。其中,“程序入口”表示程序的第一条执行指令地址。
所述ELF格式的目标代码文件头部中的Machine字段与编译器存在以下约定:SW-MASTER表示纯主核目标代码,SW-MIX表示“主从”混合目标代码, SW-SLAVE表示纯从核目标代码。
所述“异构”运算核的配置信息包括目标可执行程序物理空间大小、使用的运算核心个数、运算核的浮点配置信息、局部存储大小配置信息和栈大小配置信息。
实施例进一步解释如下:
操作系统内核打开目标代码文件,并读入目标代码文件头部,寻找目标代码格式对应的处理函数;ELF (Executable and Linking Format,可执行)为可执行、可关联的文件格式,扩展名为elf,因此把这一类型的文件简称为“ELF”。ELF文件格式处理函数是load_elf_binary函数。本发明中“纯主核”目标代码、“纯从核”目标代码和“主从混合”目标代码都是elf格式,因此,ELF文件格式处理函数是load_elf_binary函数,但是在对应的目标代码文件内的指令段或目标代码的入库地址方面存在区别。
内核检查目标代码的ELF文件格式头部信息正确性,elf文件格式头部信息如下:
ELF Header:
Magic: 7f 454c 46010101000000000000000000
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 832 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 13
Section header string table index: 10
其中magic、Data等关键字表示头部中的相关字段。如果ELF文件格式头部信息正确,执行下一步;ELF文件格式头部信息不正确的话,否则,目标代码就会报执行失败,用户程序直接退出。
操作系统内核检查ELF文件格式头部中的Machine字段信息(该字段与编译器存在约定:SW-MASTER表示纯主核目标代码,SW-MIX表示“主从”混合目标代码, SW-SLAVE表示纯从核目标代码),如果为纯主核目标代码,走传统的linux加载的流程;如果为主从或纯从核目标代码,走S6以后步骤)。
加载目标代码的程序头表,其中包含有关“异构”程序自定义的程序头表,如私有数据段、ldm数据段、共享数据段和交叉数据段等。
采用上述众核异构架构下的多类型目标代码的透明加载方法时,其在于在异构众核架构下,针对多种目标代码,在操作系统层面中实现了一套“异构”程序的加载流程,统一了“异构”程序执行流程,提升了用户的好用性。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
execve(执行文件)在父进程中fork一个子进程,在子进程中调用exec函数启动新的程序。exec函数一共有六个,其中execve为内核级系统调用,其他(execl,execle,execlp,execv,execvp)都是调用execve的库函数。
异构众核:CPU拥有众多的处理核心,众多核心设计结构不同,分别承担了不同的系统功能。
目标代码:指计算机科学中编译器或汇编器处理源代码后所生成的代码,它一般由机器代码或接近于机器语言的代码组成。
加载:将硬盘上的可执行目标代码调到内存中的过程。
运算核:在异构众核架构下,CPU拥有的众多处理核心中专门负责运算功能的核心称为运算核,例如太湖之光超级计算机上的CPU就是由4个管理核和256个运算核组成的。
页式内存管理:将内存空间划分成等长的若干区域,每个区域的大小一般取2的整数幂,称为一个物理页面有时称为块。
段式内存管理:分段大小不固定并且是一个连续的地址区。
用户栈:用户进程空间中的一块区域,用于保存用户进程的子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (3)

1.一种众核异构架构下的多类型目标代码的透明加载方法,其特征在于:包括以下步骤,
S1、用户执行execve类系统调用进入操作系统内核;
S2、操作系统内核打开目标代码文件,并读入目标代码文件头部信息,所述目标代码文件为ELF文件格式,对应的处理函数为load_elf_binary函数;
S3、操作系统内核检查ELF文件格式的目标代码文件头部信息的正确性,如果目标代码文件头部信息正确,执行下一步;否则,系统调用退出内核;
S4、操作系统内核检查ELF文件格式的目标代码文件头部中的Machine字段信息,如果Machine字段信息中有SW-MASTER信息,则执行S5,如果Machine字段信息中有SW-MIX信息或者SW-SLAVE信息,则执行S6;
S5、传统的linux流程,具体步骤如下:
S51、操作系统为用户进程分配页式的用户栈空间;
S52、操作系统内核填写纯主核目标代码的参数、环境变量必要信息;
S53、操作系统内核加载纯主核目标代码的程序头表;
S54、如果用户程序需要动态链接,则作系统内核寻找处理解释器段,并检查读取解释器段的程序头表,完成解释器的初始化;
S55、解释器装入目标代码的可加载段,如ELF目标代码文件中类型为“PT_LOAD”的段;
S56、操作系统内核填入目标代码的入口地址;
S57、S1中的用户进程进入新的目标代码的入口执行;
S6、操作系统内核解析目标代码的环境变量:此环境变量中包含有 “主从”混合目标代码或纯从核目标代码对“异构”运算核的配置信息;
S7、根据S6中获得的配置信息,进行如下操作;
S71、操作系统内核通过段式内存管理模块分配用户栈,根据S6中的配置信息,设置栈空间大小;
S72、操作系统内核通过“运算核”管理模块分配运算核资源申请“异构”的运算核资源;
S73、操作系统内核根据配置信息中空间大小,分配对应类型的物理空间,通过“段式”内存管理分配物理空间;
S8、操作系统内核填写主从混合目标代码或纯从核目标代码的参数、环境变量必要信息到用户栈;
S9、操作系统内核加载目标代码的程序头表,其中包含有关“异构”主从混合目标代码或纯从核目标代码自定义的程序头表;
S10、根据S9中解析的程序头表信息,将对应的程序头表、数据段拷贝到S7中申请的物理空间中;
S11、初始化程序与c库、线程库的接口信息,所谓初始化,即根据S7、S8、S9的信息填对数据结构中的元素进行赋值;
S12、根据S7中的配置信息,配置运算核中相关的配置寄存器;
S13、启动运算核心:写运算核心中的启动/停止寄存器;
S14、操作系统内核检查程序类型:对于“主从”混合程序转S16,纯从核程序转S15;
S15、操作系统内核加载操作系统中驻留的服务程序,并修改目标代码的执行入口为服务程序的入口;
S16、进入新的程序入口执行。
2.根据权利要求1所述的众核异构架构下的多类型目标代码的透明加载方法,其特征在于:ELF格式的目标代码文件头部中的Machine字段与编译器存在以下约定:SW-MASTER表示纯主核目标代码,SW-MIX表示“主从”混合目标代码, SW-SLAVE表示纯从核目标代码。
3.根据权利要求1所述的众核异构架构下的多类型目标代码的透明加载方法,其特征在于:所述“异构”运算核的配置信息包括目标可执行程序物理空间大小、使用的运算核心个数、运算核的浮点配置信息、局部存储大小配置信息和栈大小配置信息。
CN201910904063.2A 2019-09-24 2019-09-24 众核异构架构下的多类型目标代码的透明加载方法 Active CN112631662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910904063.2A CN112631662B (zh) 2019-09-24 2019-09-24 众核异构架构下的多类型目标代码的透明加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910904063.2A CN112631662B (zh) 2019-09-24 2019-09-24 众核异构架构下的多类型目标代码的透明加载方法

Publications (2)

Publication Number Publication Date
CN112631662A CN112631662A (zh) 2021-04-09
CN112631662B true CN112631662B (zh) 2022-07-12

Family

ID=75282562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910904063.2A Active CN112631662B (zh) 2019-09-24 2019-09-24 众核异构架构下的多类型目标代码的透明加载方法

Country Status (1)

Country Link
CN (1) CN112631662B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114942748A (zh) * 2021-09-30 2022-08-26 太初(无锡)电子科技有限公司 一种异构编程模型并行方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105242962A (zh) * 2015-11-24 2016-01-13 无锡江南计算技术研究所 基于异构众核的轻量级线程快速触发方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123401A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Method and system for exploiting parallelism on a heterogeneous multiprocessor computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105242962A (zh) * 2015-11-24 2016-01-13 无锡江南计算技术研究所 基于异构众核的轻量级线程快速触发方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《A Heterogeneous Multi-core Processor Architecture for High Performance Computing》;Jianjun Guo 等;《Asia-Pacific Conference on Advances in Computer Systems Architecture》;20060930;正文第359-365页 *
《一种异构多核系统的编译方法及实现》;刘丹丹 等;《微电子学与计算机》;20151130;第32卷(第11期);全文 *

Also Published As

Publication number Publication date
CN112631662A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
US10367822B2 (en) Restrictive access control for modular reflection
US9720708B2 (en) Data layout transformation for workload distribution
US7219329B2 (en) Systems and methods providing lightweight runtime code generation
US8024704B2 (en) Systems and methods for employing tagged types in a dynamic runtime environment
US8863079B2 (en) Efficient and expansive conversions between reference and primitive
US20110289519A1 (en) Distributing workloads in a computing platform
US7434212B2 (en) Method and apparatus to guarantee type and initialization safety in multithreaded programs
US6412108B1 (en) Method and apparatus for speeding up java methods prior to a first execution
CN106033370B (zh) 64位Java虚拟机的实现方法及装置
Chisnall The challenge of cross-language interoperability
US11301225B2 (en) Reducing application startup time by generating bytecode from metadata at build time
Stilkerich et al. Tailor‐made JVMs for statically configured embedded systems
CN117193882A (zh) 一种基于微内核操作系统的elf加载方法
CN112631662B (zh) 众核异构架构下的多类型目标代码的透明加载方法
Kataoka et al. A framework for constructing javascript virtual machines with customized datatype representations
US20030135535A1 (en) Transferring data between threads in a multiprocessing computer system
US11188316B2 (en) Performance optimization of class instance comparisons
Maas et al. A JVM for the Barrelfish Operating System
Barr et al. Java: Too Much for Your System?
Montelatici et al. Objective caml on. net: The ocamil compiler and toplevel
Jain Programming Languages
Gschwind et al. Reengineering a server ecosystem for enhanced portability and performance
Seitz The design and implementation of a bytecode for optimization on heterogeneous systems
CN112130929A (zh) 一种兼容裸机工具链多分区嵌入式配置方法及系统
Seitz Jr et al. Virtual machine and bytecode for optimization on heterogeneous systems

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