• Title/Summary/Keyword: 임베디드 가상기계

Search Result 42, Processing Time 0.025 seconds

A Study on the Native Code Connection Technique (네이티브 코드 연결 기법에 관한 연구)

  • Yu, Jae-Min;Ko, Kwang-Man
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.07b
    • /
    • pp.898-900
    • /
    • 2005
  • 최근 다양한 모바일 기기가 등장하면서 플랫폼에 독립적인 응용 프로그래밍 실행 환경을 구축하기 위해 가상기계(Virtual Machine)와 가상기계 기반의 언어가 등장하고 있다. 가상기계 환경에서 수행되는 응용 프로그램의 원활한 수행물 위해서는 입출력, 시스템 함수 호출 등에 대해서는 플랫폼에 의존적인 네이티브 코드를 적절한 방식으로 연결해주어야 한다. 본 논문에서는 기존의 가상기계들이 특정 플랫폼에 탑재 되는 방식 및 네이티브 코드 연결 방식을 고찰한 후 본 연구팀에서 현재 개발중인 임베디드 시스템을 위한 가상기계(EVM)에 적용하여 보다 효과적인 연결 기법을 제시하고자 한다.

  • PDF

Design and Implementation of a Decompiler for Verification and Analysis of Intermediate Code in C++ Compiler (C++ 컴파일러에서 중간코드의 검증과 분석을 위한 역컴파일러의 설계 및 구현)

  • Bae Sung-Kyun;Kim Young-Keun;Lee Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.05a
    • /
    • pp.1405-1408
    • /
    • 2006
  • C++ 언어는 객체지향 프로그래밍 언어로, 기존의 C++ 프로그램은 각각의 플랫폼에 따른 컴파일러를 통해 목적기계의 코드(object code)로 변환되므로 실행되는 플랫폼에 의존적인 단점이 있다. 이러한 단점을 보완하는 방법으로 스택기반의 가상기계와 가상기계의 입력형태인 중간코드를 이용하는 기법이 있다. EVM(Embedded Virtual Machine)은 ANSI C, ISO/IEC C++ 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템 기반의 가상기계이며, EVM에서 실행되는 중간코드인 SIL(Standard Intermediate Language)은 객체지향 언어와 순차적인 언어를 모두 수용하기 위한 명령 코드의 집합으로 설계되어 있다. 본 논문에서는 C++ 컴파일러를 통해 생성된 SIL 코드가 올바른지 검증하고 원시코드의 분석을 용이하게 하기 위해서 SIL 코드를 어셈블리 코드와 유사한 형태의 재 표현된 C++ 프로그램으로 역컴파일하는 시스템을 설계하고 구현하였다.

  • PDF

Design and Implementation of Decompiler for Generating C Program from EVM SIL (EVM SIL에서 C 프로그램 생성을 위한 역컴파일러의 설계 및 구현)

  • Kim, Young-Keun;Kwon, Hyeok-Ju;Lee, Yang-Sun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2005.05a
    • /
    • pp.549-552
    • /
    • 2005
  • 기존의 ANSI C 프로그램은 각각의 플랫폼에 따른 컴파일러를 통해서 목적기계의 코드로 변환되고, 실행되어 플랫폼에 의존적인 단점이 있다. 이러한 단점을 보완하는 방법으로는 스택기반의 가상기계와 가상기계의 입력형태인 중간코드를 이용하는 기법이 있다. EVM(Embedded Virtual Machine)은 ANSI C 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적인 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 SIL 코드가 올바른 수행을 하는 것인지를 검증하고 원시코드의 분석을 용이하게 하기 위해서 생성된 SIL 코드를 어셈블리 형태와 유사한 재 표현된 ANSI C 언어로 바꾸는 역컴파일러 시스템을 설계하고 구현하였다.

  • PDF

Execution Engine of Virtual Machine for Pervasive Computing (퍼베이시브 컴퓨팅을 위한 가상 기계의 실행 엔진)

  • Park, Ji-Woo;Yi, Chang-Hwan;Oh, Se-Man
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2006.11a
    • /
    • pp.581-584
    • /
    • 2006
  • 퍼베이시브 컴퓨팅 환경을 실현하기 위해서는 작고 다양한 생활 용품에 장착할 수 있는 소규모 장치와 주변의 변화를 감지할 수 있는 센서 등을 사용한다. 이 소규모 장치들은 서로 다른 프로세서와 다양한 크기의 메모리를 가지고 있기 때문에 가상 기계 기술이 도입되어야 한다. 그러나 기존의 가상 기계들은 소규모 장치에 탑재하기에는 규모가 크기 때문에 퍼베이시브 컴퓨팅 환경에 적합한 소형 가상 기계의 실행 엔진이 필요하다. 본 논문에서는 임베디드 시스템을 위한 가상 기계인 EVM의 실행 엔진을 개선하여 퍼베이시브 컴퓨팅 환경에 적합한 실행 엔진을 설계 및 구현한다. 실행에 필요한 데이터를 줄이기 위해 SIL 명령어를 축약하고 불필요한 정보 및 객체지향 개념을 가진 명령어를 제거했다. 따라서 구현된 실행 엔진은 앞으로 구축될 퍼베이시브 컴퓨팅 환경을 위한 다양한 분야에 응용할 수 있다.

  • PDF

Virtual Machine Code Optimization using Profiling Data (프로파일링 데이터를 이용한 가상기계 코드 최적화)

  • Shin, Yang-Hoon;Yi, Chang-Hwan;Oh, Se-Man
    • The KIPS Transactions:PartA
    • /
    • v.14A no.3 s.107
    • /
    • pp.167-172
    • /
    • 2007
  • VM(Virtual Machine) can be considered as a software processor which interprets the machine code. Also, it is considered as a conceptional computer that consists of logical system configuration. But, the execution speed of VM system is much slower than that of a real processor system. So, it is very important to optimize the code for virtual machine to enhance the execution time. Especially the optimizer for a virtual machine code on embedded devices requires the highly efficient performance to the ordinary optimizer in the respect to the optimized ratio about cost. Fundamentally, functions and basic blocks which influence the execution time of virtual machine is found, and then an optimization for them nay get the high efficiency. In this paper, we designed and implemented the optimizer for the virtual(or abstract) machine code(VMC) using profiling. Firstly, we defined the profiling information which is necessary to the optimization of VMC. The information can be obtained from dynamically executing the machine code. And we implemented VMC optimizer using the profiling information. In our implementation, the VMC is SIL(Standard Intermediate Language) that is an intermediate code of EVM(Embedded Virtual Machine). Also, we tried a benchmark test for the VMC optimizer and obtained reasonable results.

Memory Access Behavior of Embedded Java Virtual Machine in Energy Viewpoint (에너지 관점에서 임베디드 자바가상기계의 메모리 접근 형태)

  • Yang Heejae
    • The KIPS Transactions:PartA
    • /
    • v.12A no.3 s.93
    • /
    • pp.223-228
    • /
    • 2005
  • Several researchers have pointed out that the energy consumption in memory takes a dominant fraction on the energy budget of a whole embedded system. This applies to the embedded Java virtual machine tn, and to develop a more energy-efficient JVM it is absolutely necessary to optimize the energy usage in Jana memory. In this paper we have analyzed the logical memory access pattern in JVM as it executes numerous number of bytecode instructions while running a Java program. The access pattern gives us an insight how to design and select a suitable memory technology for Java memory. We present the memory access pattern for the three logical data spaces of JVM: heap, operand stack, and local variable array. The result saws that operand stack is accessed most frequently and uniformly, whereas heap used least frequently and non-uniformly among the three. Both heap and local variable array are accessed mostly in read-only fashion, but no remarkable difference is found between read and write operations for operand stack usage.

A Study on the Library Linking of a Virtual Machine for Embedded System (임 베디드 시스뎀을 위한 가상기계의 라이브러리 링킹에 관한 연구)

  • Ko, Kwang-Man
    • Journal of the Korea Computer Industry Society
    • /
    • v.5 no.9
    • /
    • pp.965-972
    • /
    • 2004
  • This Paper presents the experiences of the static and dynamic library function connection technique for the embedded virtual machines, base on the native function connection methods of the virtual machines such as KVM, Waba VM. For this goals, we implements the new native function table for the static and dynamic library function connection technique base on the native function connection methods of the virtual machines such as KVM, Waba VM. And we presents the variety experiment and analysis results using the implemented technique.

  • PDF

Estimating Size of Class Area Using Probe Classes in Java Virtual Machine (자바가상기계에서 탐침 클래스를 이용한 클래스 영역 크기의 예측)

  • Yang, Hee-Jae
    • Journal of the Institute of Electronics Engineers of Korea CI
    • /
    • v.42 no.4 s.304
    • /
    • pp.11-16
    • /
    • 2005
  • Class area is a portion of memory where the constants, fields, and codes of the classes loaded into the Java virtual machine are kept. Knowing the size of the class area is very important especially for embedded Java system with limited memory resources. This paper induces a formula which makes it possible estimate the size of the area. The formula needs some constant values specific to target JVM implementation. We also show that these values can be found using some simple probe classes. An experimental result is included in this paper to confirm the correctness of our approach.

Retargetable Oolong-to-SIL IL Translator (재목적 Oolong-to-SIL 중간 언어 번역기)

  • 권혁주;김영근;이양선
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2004.05a
    • /
    • pp.310-313
    • /
    • 2004
  • 자바는 컴파일러에 의해 아키텍처 독립적인 바이트코드로 구성된 바이너리 형태의 클래스 파일을 생성하면 JVM에 의해 하드웨어와 운영체제에 상관없이 실행이 가능한 플랫폼 독립적인 언어로 현재 가장 널리 사용되는 범용 프로그램 언어중 하나이다. EVM(Embedded Virtual Machine)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어등을 모두 수용할 수 있는 임베디드 시스템을 위한 가상기계이며, SIL(Standard Intermediate Language)은 EVM에서 실행되는 중간언어로 다양한 프로그래밍 언어를 수용하기 위해서 객체지향 언어와 순차적 언어를 모두 수용하기 위한 연산 코드 집합을 갖고 있다. 본 논문에서는 자바 프로그램을 EVM에서 실행 될 수 있도록 자바 프로그램을 컴파일하여 생성된 클래스 파일로부터 Oolong 코트를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하는 Oolong-to-SIL 번역기 시스템을 구현하였다. 번역기 시스템을 정형화하기 위해 Oolong 코드의 명령어 등을 문법으로 작성하였으며, PGS를 통해 생성된 어휘 정보를 가지고 스캐너를 구성하였고, 파싱테이블을 가지고 파서를 설계하였다 파서의 출력으로 AST가 생성되면 번역기는 AST를 탐색하면서 의미적으로 동등한 SIL 코드를 생성하도록 번역기 시스템을 컴파일러 기법을 이용하여 모듈별로 구성하였다. 이와 같이 번역기를 구성함으로써 목적기계의 중간언어 형태에 따라 중간언어 번역기를 자동으로 구성할 수 있어 재목적성(Retargetability)을 높일 수 있다.

  • PDF

Fixed-Length Allocation and Deallocation of Memory for Embedded Java Virtual Machine (임베디드 자바가상기계를 위한 고정 크기 메모리 할당 및 해제)

  • 양희재
    • Proceedings of the IEEK Conference
    • /
    • 2003.07d
    • /
    • pp.1335-1338
    • /
    • 2003
  • Fixed-size memory allocation is one of the most promising way to avoid external fragmentation in dynamic memory allocation problem. This paper presents an experimental result of applying the fixed- size memory allocation strategy to Java virtual machine for embedded system. The result says that although this strategy induces another memory utilization problem caused by internal fragmentation, the effect is not very considerable and this strategy is well-suited for embedded Java system. The experiment has been performed in a real embedded Java system called the simpleRTJ.

  • PDF