• 제목/요약/키워드: Dynamic compilation

검색결과 10건 처리시간 0.02초

Time-Predictable Java Dynamic Compilation on Multicore Processors

  • Sun, Yu;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • 제6권1호
    • /
    • pp.26-38
    • /
    • 2012
  • Java has been increasingly used in programming for real-time systems. However, some of Java's features such as automatic memory management and dynamic compilation are harmful to time predictability. If these problems are not solved properly then it can fundamentally limit the usage of Java for real-time systems, especially for hard real-time systems that require very high time predictability. In this paper, we propose to exploit multicore computing in order to reduce the timing unpredictability that is caused by dynamic compilation and adaptive optimization. Our goal is to retain high performance comparable to that of traditional dynamic compilation, while at the same time, obtain better time predictability for Java virtual machine (JVM). We have studied pre-compilation techniques to utilize another core more efficiently, preoptimization on another core (PoAC) scheme to replace the adaptive optimization system (AOS) in Jikes JVM and the counter based optimization (CBO). Our evaluation reveals that the proposed approaches are able to attain high performance while greatly reducing the variation of the execution time for Java applications.

동적 링크를 활용한 특정 함수 호출 (Exploit the method according to the function call)

  • 옥근호;강영진;이훈재
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국정보통신학회 2016년도 춘계학술대회
    • /
    • pp.755-758
    • /
    • 2016
  • 본 논문에서는 바이너리 프로그램에서 함수가 호출될 시 바이너리 내에서 어떠한 방법으로 함수를 호출하는지 설명한다. 그리고 그 함수를 호출할시 필요한 요소들과 C언어 파일의 동적링크 컴파일 과정과 그 요소들을 이어주는 '링커'라는 개념을 설명하고, 정적링크와 동적링크를 차이점을 비교 분석한다. 또한 동적 링크를 활용하여 취약점을 공격하는 Return To Dynamic Linker에 대해 간략히 서술하며 테스트바이너리에 시험해본다.

  • PDF

On-line Trace Based Automatic Parallelization of Java Programs on Multicore Platforms

  • Sun, Yu;Zhang, Wei
    • Journal of Computing Science and Engineering
    • /
    • 제6권2호
    • /
    • pp.105-118
    • /
    • 2012
  • We propose two new approaches that automatically parallelize Java programs at runtime. These approaches, which rely on run-time trace information collected during program execution, dynamically recompile Java byte code that can be executed in parallel. One approach utilizes trace information to improve traditional loop parallelization, and the other parallelizes traces instead of loop iterations. We also describe a cost/benefit model that makes intelligent parallelization decisions, as well as a parallel execution environment to execute parallelized programs. These techniques are based on Jikes RVM. Our approach is evaluated by parallelizing sequential Java programs, and its performance is compared to that of the manually parallelized code. According to the experimental results, our approach has low overheads and achieves competitive speedups compared to the manually parallelizing code. Moreover, trace parallelization can exploit parallelism beyond loop iterations.

효율적인 안드로이드 NFC 동작을 위한 Dalvik VM의 동적 컴파일 분석 (Analysis of dynamic compilation of Dalvik VM for effective Android NFC performance)

  • 유현주;김영섭;이수현;정민수
    • 한국멀티미디어학회:학술대회논문집
    • /
    • 한국멀티미디어학회 2012년도 춘계학술발표대회논문집
    • /
    • pp.113-115
    • /
    • 2012
  • 스마트폰은 다양한 서비스를 위한 기술이 집약되어 있으며 그 중 NFC(근거리 무선 통신) 기술은 기존의 모바일 RFID 기술보다 진일보하여 태그 읽기/쓰기 기능을 비롯하여 모바일 결제에 이르기까지 활용 범위가 매우 넓다. 이러한 NFC 기술을 활용한 안드로이드 어플리케이션의 구동에 있어 실시간 처리의 효율성은 서비스의 안정성에 크게 영향을 미친다. 따라서 안드로이드 플랫폼에서 보다 안정적인 실시간 서비스 실행을 위해 기존 안드로이드 실시간 처리 영역인 Dalvik VM의 동적 컴파일 메커니즘과 현재 발표되어 있는 개선된 방식의 메커니즘을 분석 정리하고자 한다. 또한 이를 바탕으로 향후 스마트 폰의 NFC 구동에 있어 Dalvik VM의 보다 최적화된 컴파일 방식을 제안할 수 있도록 연구하고자 한다.

  • PDF

경량 동적 코드 변환 기법을 이용한 동적 인스트루멘테이션 기법 설계 및 구현 (Design and Implementation of a Dynamic Instrumentation Framework based on Light-weight Dynamic Binary Translation)

  • 김지홍;이동우;김인혁;엄영익
    • 정보과학회 논문지
    • /
    • 제41권11호
    • /
    • pp.892-899
    • /
    • 2014
  • 동적 인스트루멘테이션 기법은 동적 코드 변환 기법을 사용하여 프로그램의 수행 흐름을 흐트러뜨리지 않으면서 분석 코드를 삽입하는 구현 기법으로 사용되고 있다. 기존의 동적 코드 변환 기법은 머신 코드 스트림을 중간 코드 형태로 파싱하고, 이를 일반적인 컴파일러 기법에 적용함으로써 코드를 변환한다. 이러한 방식의 코드 변환 과정에서 수반되는 높은 변환 오버헤드는 응답성이 높은 사용자 프로그램에 적용을 어렵게 한다. 본 논문에서는 변환 과정의 경량화를 통해 변환 오버헤드를 줄임으로써, 높은 동적 코드 변환 성능을 가지는 경량 동적 코드 변환 기법을 제안하고, 이를 기반으로 하는 동적 인스트루멘테이션 프레임워크를 제안한다. 제안 기법은 테이블 기반의 새로운 동적 주소 변환 기법으로 코드를 변환하고, 더불어 자주 실행되는 라이브러리 함수에 대해 변환 과정에 대해서는 주소 변환만을 함으로써 변환 오버헤드를 줄이는 변환 우회 기법을 이용한다. 기존 동적 코드 변환 기법과의 비교를 통해 2%~65%의 성능 향상을 확인하였다.

6H-SiC 위에 형성한 에피택시 AIN 박막 구조에 대한 전기적 특성의 평가온도 의존성 (Temperature Dependence on Electrical Characterization of Epitaxially Grown AIN film on 6H-SiC Structures)

  • 김용성;김광호
    • 한국전기전자재료학회논문지
    • /
    • 제19권1호
    • /
    • pp.18-22
    • /
    • 2006
  • Epitaxial aluminum nitride films on 6H-SiC (0001) were fabricated using reactive RF magnetron sputtering and post-deposition rapid thermal annealing. The electrical properties of AIN films depending on film thickness and measurement temperature have been observed. Full width at half maximum of AIN (0002) was $0.1204^{\circ}$ (about 430 arcsec) X-ray rocking curve results. The equivalent oxide thickness (EOT) of AIN film was estimated as about 10 nm and the leakage current density was within the order of $10^{-8} 4/cm^2$. The dielectric constant of AIN film estimated from the accumulation region of C-V curve measured at $300^{\circ}C$ was 8.3. The dynamic dielectric constant was obtained as 5.1 from J vs. 1/T plots at the temperature ranging from R.T. to $300^{\circ}C$ From above, estimation temperature dependance of the electrical properties of Al/AIN/SiC MIS devices was affirmed and useful data compilation for the reliabilities of SiC MIS is expected.

A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large-scale Switching Systems

  • Lee, Dong-Gill;Lee, Joon-Kyung;Choi, Wan;Lee, Byung-Sun;Han, Chi-Moon
    • ETRI Journal
    • /
    • 제18권4호
    • /
    • pp.265-286
    • /
    • 1997
  • This paper presents a new software development environment that supports an integrated methodology for covering all phases of software development and gives integrated methods with tools for ITUT (Telecommunication Standardization Section of the International Telecommunication Union) languages. The design of the environment to improve software productivity and quality is based on five main concepts: 1) formal specifications based on SDL (Specification and Description Language) and MSC (Message Sequence Charts) in the design phase, 2) verification and validation of those designs by tools, 3) automatic code generation and a safe separate compilation scheme based on CHILL (CCITT High-Level Language) to facilitate programming-in-the-many and programming-in-the-large. 4) debugging of distributed real-time concurrent CHILL programs, and 5) simulation of application software for integrated testing on the host machine based on CHILL. The application results of the environment compared with other approaches show that the productivity is increased by 19 % because of decreasing implementation and testing cost, and the quality is increased by 83 % because of the formal specifications with its static and dynamic checking facilities.

  • PDF

자바 적시 컴파일에서의 조건 수행을 이용한 비어 있는 포인터의 조기검사 (Early Null Pointer Check using Predication in Java Just-In-Time Compilation)

  • 이상규;최형규;문수묵
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권7호
    • /
    • pp.683-692
    • /
    • 2005
  • 자바에서는 어떤 객체에 접근하는 작업을 할 때마다 항상 해당 객체에 대한 레퍼런스가 널 (Null)인지 여부를 먼저 검사하도록 규정하고 있다. 자바 언어는 객체 중심 언어이기 때문에 객체 접근이 빈번하며 이러한 널 포인터 검사는 자바 프로그램의 성능을 크게 저하시킬 수 있다. 이러한 성능 저하를 줄이기 위한 방법으로 불필요하게 반복되는 널 포인터 검사를 제거하는 기법이 사용되고 있다. 즉, 적시 (Just-in-Time, JIT) 컴파일러가 사용되는 자바 수행 환경에서 코드 분석을 통해 불필요한 널 포인터 검사 코드를 제거하는 최적화를 한다. 본 논문은 JIT 컴파일러 수행 환경에서 조건 수행(predication)이라는 최근 마이크로프로세서의 특징을 이용하여, 기존의 최적화로는 제거할 수 없는 널 포인터 검사 코드를 추가로 없애는 방법을 제시한다. 일반적으로 널 포인터 검사 코드는 비교와 분기 두 명령어로 이루어져 있는데, 그 중에 비교 명령어를 객체를 사용하기 전에 수행하는 것이 아니라 객체가 정의된 직후에 미리 수행하도록 함으로써 널 포인터 검사를 위해 수행되는 총 비교 명령어 수를 줄이는 것이 이 방법의 주된 내용이다. 실험 결과 기존의 널 포인터 제거로 최적화된 코드에 비해 수행된 비교 명령어의 수는 SPECjvm98에서 평균 3.21$\%$줄었고, 생성된 비교 명령어 수는 1.98$\%$ 줄었다. 이는 인텔 IA-64 아이테니엄(Itanium) 컴퓨터에서 평균 0.32$\%$의 성능 향상을 가져왔다.

내장형 소프트웨어의 성능 향상을 위한 새로운 레지스터 할당 기법 (A New Register Allocation Technique for Performance Enhancement of Embedded Software)

  • Jong-Yeol, Lee
    • 대한전자공학회논문지SD
    • /
    • 제41권10호
    • /
    • pp.85-94
    • /
    • 2004
  • 본 논문에서는 메모리 접근 연산을 레지스터 접근 연산으로 변환함으로써 레지스터를 할당하여 내장형 소프트웨어의 성능 향상을 도모할 수 있는 위한 레지스터 할당 기법을 제안한다. 제안된 방법에서는 프로파일링(Profiling)을 통하여 메모리 트레이스(trace)를 얻는다. 그리고 각 함수의 수행 횟수에 대한 프로파일링 결과로부터 높은 동적 호출 횟수를 가지는 대상 함수를 선정하여 제안된 레지스터 할당 기법을 적용한다. 이와 같이 최적화의 대상이 되는 함수의 수를 줄임으로써 전체적인 컴파일 시간을 줄일 수 있다. 최적화대상 함수의 메모리 트레이스를 탐색하여 레지스터 접근 연산으로 변경될 경우 수행 사이클을 줄일 수 있는 메모리 접근 연산을 찾는다. 찾아진 메모리 접근 연산에 대해서는 컴파일러의 중간단계 코드를 수정하여 프로모션 레지스터(promotion register)를 할당한다. 이와 같은 과정을 거쳐 메모리 접근 연산이 프로모션 레지스터에 대한 접근 연산으로 대체되고 이로부터 성능향상을 얻을 수 있다. 제안된 레지스터 프로모션 기법을 ARM과 MCORE 프로세서용 컴파일러에 적용한 후 MediaBench와 DSPStone 벤치마크를 이용하여 cycle count를 비교함으로써 성능을 측정하였다. 그 결과 ARM과 MCORE에 대하여 평균 14%와 18%의 성능향상을 얻을 수 있었다.

레지스터 프로모션을 이용한 내장형 소프트웨어의 성능 향상 (Performance Enhancement of Embedded Software Using Register Promotion)

  • 이종열
    • 정보처리학회논문지A
    • /
    • 제11A권5호
    • /
    • pp.373-382
    • /
    • 2004
  • 이 논문에서는 내장형 소프트웨어의 성능 향상을 위하여 사용될 수 있는 레지스터 프로모션의 새로운 기법을 제안한다. 레지스터 프로모션은 프로그램 내의 메모리 접근 연산(memory access)을 레지스터 접근 연산(register access)으로 바꾸어서 프로그램의 성능 향상을 꾀하는 최적화 방법 중의 하나이다. 제안된 방법에서는 프로파일링(profiling)을 통하여 주어진 소스 코드 내에서의 메모리 접근 연산에 대한 트레이스(trace)를 얻는다. 그리고 각 함수의 수행 횟수에 대한 프로파일링 결과로부터 높은 동적 호출 횟수를 가지는 대상 함수를 선정하여 제안된 레지스터 프로모션 기법을 적용한다. 이와 같이 최적화의 대상이 되는 함수의 수를 줄임으로써 컴파일 시간을 줄일 수 있다. 최적화 대상 함수의 메모리 트레이스를 탐색하여 레지스터 접근 연산으로 변경될 경우 수행 사이클을 줄일 수 있는 메모리 접근 연산을 찾는다. 찾아진 메모리 접근 연산에 대해서는 컴파일러의 중간단계 코드를 수정하여 프로모션 레지스터를 할당한다. 이와 같은 과정을 거쳐 메모리 접근 연산이 프로모션 레지스터에 대한 접근 연산으로 대체되고 이로부터 성능향상을 얻을 수 있다. 제안된 레지스터 프로모션 기법을 ARM과 MCORE 프로세서용 컴파일러에 적용한 후 MediaBench와 DSPStone 벤치마크을 이용하여 실험한 결과 ARM과 MCORE 프로세서에 대하여 각각 평균 14%와 18%의 성능향상을 얻을 수 있었다.