내장형 자바시스템을 위한 인스톨-타임 컴파일러 프로그램을 기록한 컴퓨터 판독가능한 기록매체
    1.
    发明授权
    내장형 자바시스템을 위한 인스톨-타임 컴파일러 프로그램을 기록한 컴퓨터 판독가능한 기록매체 有权
    具有嵌入式系统的安装时间编译程序的计算机可读记录介质

    公开(公告)号:KR101088515B1

    公开(公告)日:2011-11-30

    申请号:KR1020100002022

    申请日:2010-01-08

    Abstract: 본 발명은 내장형 자바시스템을 위한 인스톨-타임 컴파일러에 관한 것으로서, 보다 구체적으로는 (1) 응용프로그램 메모리(M
    app )만을 사용하며, 외부로부터 입력되는 입력 Jar 파일에 포함되어 있는 클래스 파일 및 리소스 파일 목록을 읽어 들이는 응용프로그램 리더부; (2) 응용프로그램 메모리(M
    class )만을 사용하며, 클래스 파일들을 읽어 들이고 바이트코드를 검증하는 클래스 파일 리더/바이트코드 검증부; (3) 메소드 메모리(M
    method )를 사용하여 변환 작업을 수행하되, 변환 중 최적화할 참조를 접근하는 바이트코드를 만나게 되면 상기 응용프로그램 메모리(M
    app )에 참조 리스트를 만들고, 상기 응용프로그램 메모리(M
    app )의 참조 리스트를 참조하여 코드를 생성하는 바이트코드 변환부; (4) 클래스 메모리(M
    class )만을 사용하며, 상기 파일 리더/바이트코드 검증부로부터 검증된 클래스 데이터 구조 및 런타임 함수들을 저장하는 클래스 데이터구조/런타임 함수부; (5) 응용프로그램 메모리(M
    app )만을 사용하며, 상기 생성된 코드를 플랫폼 상에서 실행 가능하도록 바인딩 및 재배치 처리를 통하여 수정하는 바인딩/재배치부; (6)응용프로그램 메모리(M
    app )만을 사용하며, 상기 바인딩/재배치부로부터 전송된 클래스 파일을 이진 파일로 생성하는 이진 파일 생성부; 및 (7) 응용프로그램 메모리(M
    app )만을 사용하며, 상기 이진 파일 생성부에서 생성된 이진 파일을 출력 Jar 파일로 압축하여 자바 가상머신으로 전송하는 Jar 압축부를 포함하는 것을 그 구성상의 특징으로 한다.
    본 발명에서 제안하고 있는, 내장형 시스템을 위한 인스톨-타임 컴파일러에 따르면, 응용프로그램 분석에 기초하여, 인스톨-타임 컴파일러를 참조 접근 최적화 및 메모리 사용량을 고려한 최적화를 통해 최적화시킴으로써, 구현하기 어려운 최적화의 구현을 가능하게 하며, 특히 메모리가 적은 내장형 시스템의 메모리 효율성을 높일 수 있게 한다.

    수행 중 선행 컴파일링을 이용한 내장형 시스템을 위한 자바 컴파일링 방법

    公开(公告)号:KR101088516B1

    公开(公告)日:2011-11-30

    申请号:KR1020100002023

    申请日:2010-01-08

    Abstract: 본 발명은 수행 중 선행 컴파일링(In client Ahead-Of-Time Compiling; In c-AOTC)을 이용한 내장형 시스템을 위한 자바 컴파일링 방법으로서, 보다 구체적으로는 (1) 자바 응용프로그램 수행 중, 메소드가 핫스팟(hot spot) 메소드인지 확인하는 단계; (2) 단계 (1)에서 핫스팟 메소드가 아닌 것으로 확인된 경우, 인터프리터(interpreter)로 해당 메소드를 수행한 후, 단계 (1)로 돌아가 다음 메소드를 수행하는 단계; (3) 단계 (1)에서 핫스팟 메소드인 것으로 확인된 경우, 해당 메소드에 대한 머신 코드가 클라이언트-선행 컴파일러(c-AOTC) 파일에 저장되어 있는지를 확인하는 단계; (4) 단계 (3)에서 저장되어 있는 것으로 확인된 경우, 해당 머신 코드를 로딩 및 재배치(relocation)하여 수행한 후, 단계 (1)로 돌아가 다음 메소드를 수행하는 단계; (5) 단계 (3)에서 저장되어 있지 않은 것으로 확인된 경우, 적시 컴파일러(Just-In-Time Compiler; JITC)를 이용하여 해당 메소드의 바이트코드를 머신 코드로 변환한 후, 코드 캐시(code cache)가 풀(full)인지 여부를 확인하는 단계; (6) 단계 (5)에서 상기 코드 캐시가 풀이 아닌 것으로 확인된 경우, 상기 변환된 머신 코드를 상기 코드 캐시에 저장하고 단계 (1)로 돌아가 다음 메소드를 수행하는 단계; 및 (7) 단계 (5)에서 코드 캐시가 풀인 것으로 확인된 경우, 상기 코드 캐시에 저장된 임의의 메소드를 선택하여 해당 머신 코드를 상기 클라이언트-선행 컴파일러(c-AOTC) 파일에 저장하고 상기 코드 캐시에서 삭제한 후, 상기 변환된 머신 코드를 상기 코드 캐시에 저장하고 단계 (1)로 돌아가 다음 메소드를 수행하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
    본 발명에서 제안하고 있는 내장형 시스템을 위한 자바 컴파일링 방법에 따르면, 클라이언트-선행 컴파일러(c-AOTC) 파일에 머신 코드가 저장되어 있지 않은 핫스팟 메소드에 대하여 적시 컴파일러(JITC)를 이용하여 변환된 머신 코드를 코드 캐시에 저장할 때 코드 캐시가 부족할 경우, 코드 캐시에서 임의의 메소드를 선택하여 해당 머신 코드를 클라이언트-선행 컴파일러(c-AOTC) 파일에 저장하고 코드 캐시에서는 삭제한 후, 코드 캐시의 삭제된 공간에 변환된 머신 코드를 저장할 수 있도록 구성함으로써, 적시 컴파일러(JITC)의 이용 시의 코드 캐시의 부족 문제를 해결할 수 있다.

    엑스86 애플리케이션 바이너리를 암 호스트에서 큐이엠유를 이용하여 실행시키는 환경에서의, 암의 미사용 레지스터를 이용한 최적화 방법
    3.
    发明公开
    엑스86 애플리케이션 바이너리를 암 호스트에서 큐이엠유를 이용하여 실행시키는 환경에서의, 암의 미사용 레지스터를 이용한 최적화 방법 无效
    使用ARM的使用注册表的优化方法在X-86应用程序二进制环境中与ARM主机中的QEMU一起运行

    公开(公告)号:KR1020130078275A

    公开(公告)日:2013-07-10

    申请号:KR1020110147122

    申请日:2011-12-30

    Abstract: PURPOSE: An optimizing method capable of using an unused register of an advanced reduced instruction set computer (RISC) machine (ARM) in the environment which executes an x86 application binary in the ARM host by using QEMU is provided to match a part of the regional variables of the intermediate code with the register, which is unused when the QEMU generates the code, among the ARM, thereby reducing the x86 binary execution time which is executed in the ARM host. CONSTITUTION: An intermediate code is generated by reading an x86 application binary as a basic block (S100). A machine code generated/performed through the optimization of the intermediate code (S200). Previous steps are repeated for the next basic block (S300). A part of the values which have to be maintained between the machine codes are matched with the register which is unused when the QEMU generates the code. [Reference numerals] (S100) Step of generating an intermediate code by reading an x86 application binary as a basic block; (S200) Step of generating and performing a machine code through the optimization of the intermediate code; (S300) Step of repeating previous step 1 and 2 for the next basic block

    Abstract translation: 目的:提供一种能够使用在ARM主机中使用QEMU执行x86应用程序二进制的环境中的高级精简指令集计算机(RISC)机器(ARM)的未使用寄存器的优化方法,以匹配部分区域 具有寄存器的中间代码的变量,当QEMU生成代码时未被使用,从而减少在ARM主机中执行的x86二进制执行时间。 构成:通过读取作为基本块的x86应用程序二进制生成中间代码(S100)。 通过中间代码的优化生成/执行机器代码(S200)。 对于下一个基本块重复以前的步骤(S300)。 在机器代码之间必须保持的值的一部分与当QEMU生成代码时未使用的寄存器匹配。 (附图标记)(S100)通过读取作为基本块的x86应用二进制生成中间代码的步骤; (S200)通过中间代码的优化来生成和执行机器代码的步骤; (S300)对下一个基本块重复上一步骤1和2的步骤

    메소드 특수화를 이용한 확장된 널 포인터 검사 제거 방법
    4.
    发明公开
    메소드 특수화를 이용한 확장된 널 포인터 검사 제거 방법 无效
    一种使用方法专用来消除空点检查的扩展方法

    公开(公告)号:KR1020130077673A

    公开(公告)日:2013-07-09

    申请号:KR1020110146516

    申请日:2011-12-29

    CPC classification number: G06F11/28 G06F8/40

    Abstract: PURPOSE: An extended null pointer test removal method using method specialization is provided to call a callee method where a null pointer test is removed if the argument of a callee method called during a compile process is not null, thereby removing unnecessary null pointer tests. CONSTITUTION: If a method is called during a compile process, the argument of a callee method is checked (S100). If the argument of the callee method is not null, the existence of a callee method where a null pointer test is removed is checked for the callee method (S200). If the callee method where a null pointer test is removed does exist, the callee method where a null pointer test is removed is called (S300). If the callee method where a null pointer test is removed does not exist yet, a new callee method where a null pointer test is removed is compiled, generated and called for the callee method. [Reference numerals] (S100) Step of checking if a factor of a callee method is in null value when the method is called during a compile process; (S200) Step of checking the existence of the callee method without a null pointer test when the factor is not in the null value; (S300) Step of calling the callee method without the null pointer test

    Abstract translation: 目的:提供使用方法专用的扩展空指针测试删除方法来调用被调用方法,如果在编译过程中调用的调用方法的参数不为空,则删除空指针测试,从而删除不必要的空指针测试。 构成:如果在编译过程中调用了一个方法,则检查被调用方法的参数(S100)。 如果被调用方法的参数不为空,则检查删除空指针测试的被叫方法的存在(S200)。 如果删除空指针测试的被调用方法存在,则调用空指针测试被删除的被叫方法(S300)。 如果删除空指针测试的被调用方法尚不存在,那么将删除空指针测试的新的被调用方法被编译,生成并被调用为被叫方法。 (附图标记)(S100)在编译处理中调用该方法时,检查被叫方法的因素是否为空值的步骤; (S200)当系数不在空值时,不进行空指针测试,检查被叫方法的存在的步骤; (S300)调用被叫方法而不进行空指针测试的步骤

    멀티코어 환경에서의 효율적인 적시 컴파일 수행 방법
    5.
    发明授权
    멀티코어 환경에서의 효율적인 적시 컴파일 수행 방법 有权
    一种在多核环境中执行有效的即时编译的方法

    公开(公告)号:KR101100439B1

    公开(公告)日:2011-12-30

    申请号:KR1020100129537

    申请日:2010-12-16

    Inventor: 문수묵 정동헌

    CPC classification number: G06F9/468 G06F8/41 G06F9/524

    Abstract: PURPOSE: An effective JITC performing method in a multicore environment is provided to support JITC requests by sharing a main thread and a thread performing a JITC and efficiently utilizing a multicore. CONSTITUTION: A JITC thread with a relatively lower priority than a main thread is generated if a compile request about a predetermined code section is received among performing the application(S200). The JITC thread is performed if the idle time of the main thread or the machine code of the JITC thread is necessary(S300). A machine code generated by performing the JITC thread is stored in a code cache(S400).

    Abstract translation: 目的:提供多核环境中有效的JITC执行方法,通过共享主线程和执行JITC的线程并有效利用多核来支持JITC请求。 构成:如果在执行应用程序之间接收到关于预定代码段的编译请求,则生成具有比主线程优先级低的JITC线程(S200)。 如果需要主线程的空闲时间或JITC线程的机器代码,则执行JITC线程(S300)。 通过执行JITC线程生成的机器代码被存储在代码高速缓存中(S400)。

    캐시 프로파일을 이용한 향상된 소프트웨어 파이프라인 스케줄링 방법
    6.
    发明授权
    캐시 프로파일을 이용한 향상된 소프트웨어 파이프라인 스케줄링 방법 有权
    使用现金简档的增强型软件流水线调度方法

    公开(公告)号:KR101236562B1

    公开(公告)日:2013-02-22

    申请号:KR1020100002029

    申请日:2010-01-08

    Abstract: 본 발명은 캐시 프로파일(cash profile)을 이용한 향상된 소프트웨어 파이프라인 스케줄링(Enhances software Pipeline Schedule; EPS) 방법에 관한 것으로서, 보다 구체적으로는 (1) 캐시 프로파일링을 수행하는 단계; 및 (2) 상기 수행된 캐시 프로파일링 결과를 이용하여, 향상된 소프트웨어 파이프라인 스케줄링을 수행하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
    본 발명의 캐시 프로파일을 이용한 향상된 소프트웨어 파이프라인 스케줄링 방법에 따르면, 명령어 스케줄링 시 캐시 프로파일링 결과를 활용함으로써 명령어의 병렬성의 확보와 캐시 성능의 향상을 동시에 달성할 수 있다.

    캐시 프로파일을 이용한 향상된 소프트웨어 파이프라인 스케줄링 방법
    7.
    发明公开
    캐시 프로파일을 이용한 향상된 소프트웨어 파이프라인 스케줄링 방법 有权
    使用现金配置文件的增强软件管道调度方法

    公开(公告)号:KR1020110081725A

    公开(公告)日:2011-07-14

    申请号:KR1020100002029

    申请日:2010-01-08

    CPC classification number: G06F9/38 G06F9/30

    Abstract: PURPOSE: An EPS method using a cache profile is provided to secure the parallelism of instruction and improve the performance of cache at the same time. CONSTITUTION: Cache profiling is performed(S100). EPS(Enhanced Pipeline Scheduling) is performed by using a cache profiling result(S200). On the basis of the cache profiling result, the optimization target load instruction is determined. Instructions connected to the load instruction with a dependent relation are divided from remaining instructions. Different options are applied to the divided instruction.

    Abstract translation: 目的:提供使用缓存配置文件的EPS方法来保护指令的并行性,同时提高缓存的性能。 构成:执行缓存分析(S100)。 通过使用缓存分析结果(S200)来执行EPS(增强流水线调度)。 在缓存分析结果的基础上,确定优化目标加载指令。 连接到具有从属关系的加载指令的指令与剩余指令分开。 对分割的指令应用不同的选项。

    디지털 티브이 소프트웨어 플랫폼을 위한 하이브리드 자바 컴파일 시스템

    公开(公告)号:KR1020110081723A

    公开(公告)日:2011-07-14

    申请号:KR1020100002026

    申请日:2010-01-08

    Abstract: PURPOSE: A hybrid JAVA compile system for a DTV(Digital Television) software platform is provided to apply a different compile mode to a system, a middleware class, and an xlet application according to each characteristic of the system, the middleware class, and the xlet application. CONSTITUTION: A system and middleware method administration module(100) administrates a machine code which is previously compiled and installed. An xlet application receiving module(200) receives an xlet application from a broadcast station. An xlet application compile module(300) compiles the received xlet application using a JITC(Just-In-Time Compile) mode. A JAVA application execution module(400) executes a JAVA application using the machine code for the complied xlet application.

    Abstract translation: 目的:提供一种用于DTV(数字电视)软件平台的混合JAVA编译系统,以根据系统的每个特性,中间件类,和中间件类,将不同的编译模式应用于系统,中间件类和xlet应用程序 xlet应用程序 构成:系统和中间件方法管理模块(100)管理先前编译和安装的机器代码。 小应用程序接收模块(200)从广播站接收xlet应用程序。 xlet应用编译模块(300)使用JITC(即时编译)模式来编译接收到的xlet应用程序。 JAVA应用程序执行模块(400)使用所编译的xlet应用程序的机器代码执行JAVA应用程序。

    수행 중 선행 컴파일링을 이용한 내장형 시스템을 위한 자바 컴파일링 방법

    公开(公告)号:KR1020110081720A

    公开(公告)日:2011-07-14

    申请号:KR1020100002023

    申请日:2010-01-08

    CPC classification number: G06F8/47 G06F8/447

    Abstract: PURPOSE: A JAVA compiling method for an embedded system is provided to solve the insufficiency of a code cache in the use of a JITC(Just-In-Time Compiler). CONSTITUTION: If a method is not a hot spot method, an embedded system executes the method with an interpreter and performs a next method(S100,S200). If the method is the hot spot method, the embedded system confirms whether a machine code for a corresponding method is stored in a c-AOTC(client Ahead-Of-Time Compiling) file(S300). If the machine code is stored in the c-AOTC file, the embedded system loads and relocates the machine code and executes the machine code(S400).

    Abstract translation: 目的:提供一种用于嵌入式系统的JAVA编译方法,以解决使用JITC(即时编译器)中代码高速缓存的不足。 构成:如果方法不是热点方法,嵌入式系统使用解释器执行该方法,并执行下一种方法(S100,S200)。 如果该方法是热点方法,则嵌入式系统确认相应方法的机器代码是否存储在c-AOTC(客户端未来编译)文件(S300)中。 如果机器代码存储在c-AOTC文件中,嵌入式系统将加载并重新定位机器代码并执行机器代码(S400)。

    내장형 자바시스템을 위한 인스톨-타임 컴파일러 프로그램을 기록한 컴퓨터 판독가능한 기록매체

    公开(公告)号:KR1020110081719A

    公开(公告)日:2011-07-14

    申请号:KR1020100002022

    申请日:2010-01-08

    CPC classification number: G06F9/445 G06F8/44 G06F9/4488 G06F9/45516

    Abstract: PURPOSE: A computer-readable recording medium recording an install-time compiler program for an embedded JAVA system is provided to optimize an install-time compiler through reference access optimization and optimization considering the usage of memory on the basis of an application analysis. CONSTITUTION: An application reader(205) reads class files and a resource file list included in an input Jar file inputted from the outside. A class file reader/byte code verifier(210) reads the class file and verifies a byte code. A byte code transformer(220) creates a code with reference to the reference list of an application memory. A binding/rearrangement unit(230) modifies the created code through binding/rearrangement.

    Abstract translation: 目的:提供一种记录嵌入式JAVA系统的安装时间编译程序的计算机可读记录介质,以便根据应用程序分析考虑存储器的使用,通过参考访问优化和优化来优化安装时编译器。 构成:应用程序读取器(205)读取从外部输入的输入Jar文件中的类文件和资源文件列表。 类文件读取器/字节码验证器(210)读取类文件并验证字节码。 字节代码变换器(220)参考应用存储器的参考列表创建代码。 绑定/重排单元(230)通过绑定/重排来修改所创建的代码。

Patent Agency Ranking