• Title/Summary/Keyword: 코드 최적화

Search Result 476, Processing Time 0.031 seconds

Profile Guided Selection of ARM and Thumb Instructions at Function Level (함수 수준에서 프로파일 정보를 이용한 ARM과 Thumb 명령어의 선택)

  • Soh Changho;Han Taisook
    • Journal of KIISE:Software and Applications
    • /
    • v.32 no.3
    • /
    • pp.227-235
    • /
    • 2005
  • In the embedded system domain, both memory requirement and energy consumption are great concerns. To save memory and energy, the 32 bit ARM processor supports the 16 bit Thumb instruction set. For a given program, the Thumb code is typically smaller than the ARM code. However, the limitations of the Thumb instruction set can often lead to generation of poorer quality code. To generate codes with smaller size but a little slower execution speed, Krishnaswarmy suggests a profiling guided selection algorithm at module level for generating mixed ARM and Thumb codes for application programs. The resulting codes of the algorithm give significant code size reductions with a little loss in performance. When the instruction set is selected at module level, some functions, which should be compiled in Thumb mode to reduce code size, are compiled to ARM code. It means we have additional code size reduction chance. In this paper, we propose a profile guided selection algorithm at function level for generating mixed ARM and Thumb codes for application programs so that the resulting codes give additional code size reductions without loss in performance compared to the module level algorithm. We can reduce 2.7% code size additionally with no performance penalty

Constructing A Loop Tree in CTOC (CTOC에서 루프 트리 구성하기)

  • Kim, Ki-Tae;Kim, Je-Min;Yoo, Weong-Hee
    • The KIPS Transactions:PartD
    • /
    • v.15D no.2
    • /
    • pp.197-206
    • /
    • 2008
  • The CTOC framework was implemented to efficiently perform analysis and optimization of the Java bytecode that is often being used lately. In order to analyze and optimize the bytecode from the CTOC, the eCFG was first generated. Due to the bytecode characteristics of difficult analysis, the existing bytecode was expanded to be suitable for control flow analysis, and the control flow graph was drawn. We called eCFG(extended Control Flow Graph). Furthermore, the eCFG was converted into the SSA Form for a static analysis. Many loops were found in the conversion program. The previous CTOC performed conversion directly into the SSA Form without processing the loops. However, processing the loops prior to the SSA Form conversion allows more efficient generation of the SSA Form. This paper examines the process of finding the loops prior to converting the eCFG into the SSA Form in order to efficiently process the loops, and exhibits the procedures for generating the loop tree.

Embedded Software Minimization Using Don′t Cares (Don′t Care 정보를 이용한 임베디드 소프트웨어의 최적화)

  • Hong, Yu-Pyo
    • Journal of the Institute of Electronics Engineers of Korea SD
    • /
    • v.37 no.3
    • /
    • pp.48-54
    • /
    • 2000
  • This paper exploits the use of don't cares on software synthesis for embedded systems. Embedded systems have extremely tight real-time and code size constraints. We propose applying BDD minimization techniques in the presence of a don't care set to synthesize code for extended Finite State Machines from a BDD-based representation of the FSM transition function. The don't care set can be derived from local analysis as well as from external information. We show experimental results, discuss their implications, the interactions between BDD-based minimization and dynamic variable reordering, and propose directions for future research.

  • PDF

Improvement of Program Parallelism by Using Loop Transformation (루프 변환에 의한 프로그램 병렬성 개선 방안)

  • Kim, J.M.;Chi, D.H.;Yoon, S.H.
    • Electronics and Telecommunications Trends
    • /
    • v.14 no.2 s.56
    • /
    • pp.1-13
    • /
    • 1999
  • 본 연구는 병렬성 및 지역성 증진을 위한 컴파일러 최적화에 관한 연구로서, 순차 언어로 작성된 프로그램을 병렬성을 명시하는 프로그램으로 변환하는 자동 병렬화 기술을 연구하고, 병렬화를 위한 코드 변환을 수행한 후 쓰레드를 이용한 최적화된 코드 생성을 통하여 프로그램의 효율성을 높이는 것을 목적으로 한다. 이는 병렬 컴퓨터에서의 프로그램 개발 생산성을 높일 수 있고, 컴파일러의 관련 기술 발전에 도움을 줄 수 있다. 본 고에서는 순차 언어인 FORTRAN 및 C 프로그램을 입력으로 받아 병렬성 및 지역성 분석을 수행하고, 분석을 통해 기본 컴파일러로 선정한 SUIF 컴파일러에서 사용되는 루프 변환을 포함하여 루프 분산 및 병합의 프로그램 변환을 수행한 후, 쓰레드 실행시간 라이브러리로 병렬성을 명시한 C 프로그램을 출력하는 병렬화 번역기에 대한 연구 내용을 기술하였다.

Energy-oriented Dalvik Bytecode Scheduling Technique (에너지-지향 달빅 바이트코드 스케줄링 기술)

  • Ko, Kwang-Man;Park, Hee-Wan;Youn, Jong-Hee;Choi, Kwang-Hoon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.101-102
    • /
    • 2012
  • 안드로이드 플랫폼에 적합한 어플리케이션 보급이 급증하면서 안드로이드 가상머신인 달빅(dalvik)의 성능 향상을 위한 연구가 다양하게 시도되고 있다. 전력 공급이 제한적인 모바일 기기에서 효율적인 어플리케이션 실행을 위한 플랫폼의 성능 향상과 더불어 전력 에너지의 최적화된 소비가 중요한 이슈가 되고 있다. 이 논문은 달빅에서 실행되는 dex 파일의 바이트코드를 에너지 소비 중심으로 스케줄링하여 Java 어플리케이션의 전력 에너지 소비를 최적화하고자 하는 시도이다. 에너지 지향적인 스케줄링 기법은 전통적인 리스트-인스트럭션 스케줄링 기법을 기반으로 하였으며 스케줄링 전 후의 실험 결과를 제시하여 이 연구의 효과를 입증한다.

Improving Software Pipelining Performance Using a Register Renaming Technique (소프트웨어 파이프라이닝에서 레지스터 변경을 통한 성능 개선)

  • Cho, Doosan
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2010.11a
    • /
    • pp.1642-1643
    • /
    • 2010
  • 멀티미디어 도메인의 응용 프로그램에는 풍부한 병렬성이 내재하기 때문에 VLIW (Very Long Instruction Word) 형식의 신호처리 프로세서가 많이 사용되고 있다. VLIW 프로세서를 구성하는 복수의 연산처리유닛 (processing unit, PU)의 사용률은 컴파일러의 명령어 스케쥴러의 성능에 의하여 결정된다. 명령어들 사이의 병렬성을 분석하여 동시 수행가능한 명령어들을 각기 다른 PU 에서 수행되도록 프로그램 코드를 최적화한다. 하지만 기존의 명령어 스케쥴러는 복잡한 데이터 디펜던스 그래프 (data dependence graph, DDG)를 구성하여 복수의 PU 를 충분히 사용하도록 하지 못하는 문제점을 내재하고 있다. 이는 명령어 스케쥴러가 각 레지스터 사용시간을 별도로 고려하지 않기 때문에 실제로 내재된 데이터 디펜던스 보다 복잡성이 높은 디펜던스 그래프를 구성하게 되어 스케쥴러가 올바르게 최적화된 코드 스케쥴링 결과를 제공하지 못하기 때문이다. 본 연구에서는 레지스터의 라이프타임을 다른 레지스터를 이용하여 적절히 끊어주는 것으로 데이터 디펜던스 복잡도 완화하여 시스템 성능 향상의 가능성을 보이고 있다.

An LLVM-Based Implementation of Static Analysis for Detecting Self-Modifying Code and Its Evaluation (자체 수정 코드를 탐지하는 정적 분석방법의 LLVM 프레임워크 기반 구현 및 실험)

  • Yu, Jae-IL;Choi, Kwang-hoon
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.32 no.2
    • /
    • pp.171-179
    • /
    • 2022
  • Self-Modifying-Code is a code that changes the code by itself during execution time. This technique is particularly abused by malicious code to bypass static analysis. Therefor, in order to effectively detect such malicious codes, it is important to identify self-modifying-codes. In the meantime, Self-modify-codes have been analyzed using dynamic analysis methods, but this is time-consuming and costly. If static analysis can detect self-modifying-code it will be of great help to malicious code analysis. In this paper, we propose a static analysis method to detect self-modified code for binary executable programs converted to LLVM IR and apply this method by making a self-modifying-code benchmark. As a result of the experiment in this paper, the designed static analysis method was effective for the standardized LLVM IR program that was compiled and converted to the benchmark program. However, there was a limitation in that it was difficult to detect the self-modifying-code for the unstructured LLVM IR program in which the binary was lifted and transformed. To overcome this, we need an effective way to lift the binary code.

Study on the Hangul typeface of the decentralized density through the horizontal disposition of phoneme. (Hangul typeface for New Hangul Code) (음소의 가로선형 배열을 통한 밀도 분산형 한글꼴연구 ( 새로운 음소형 코드체계를 위한 한글꼴 ))

  • Moon, Souk-Bae
    • Annual Conference on Human and Language Technology
    • /
    • 1994.11a
    • /
    • pp.223-230
    • /
    • 1994
  • 본 한글꼴은 음절 및 음소의 가시성을 높이고자 한글 음소의 이중 가로선형 배열을 통한 밀도 분산형 한글꼴과 음소 나열형 한글꼴 등의 새로운 한글꼴의 다양한 표현의 실험 연구이다. 일도 분산형 한글꼴은 새로운 음소형 한글코드(닿소리, 홑소리, 받침 조합형)와 서로 대응하드록 일원화 한글꼴로 한글 및 옛 한글의 음소 조합형의 입.출력이 가능하다. 이러한 시도는 1바이트 이내에서 현대한글 및 옛한글을 구현하며, 이는 한글의 구현원리에 따른 음소형 코드체계의 실현 가능성으로 한글 코드체계의 최적화에 대한 새로운 가설을 제시 한다.

  • PDF

Autonomous Object to Support Dynamic Composition of Functionality based on Code Mobility (코드 이동성에 기반한 동적 기능 합성을 지원하는 자율적 객체)

  • 김인규;홍장의;배두환
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 1999.10a
    • /
    • pp.457-459
    • /
    • 1999
  • 자율적 객체(autonomous object)는 분산 시스템에서의 기능(functionality)에 대한 융통성과 동적 확장성을 제공하기 위해 적합한 패러다임이다. 코드 이동성에 근거한 기능의 동적 합성이 자율적 객체에 의하여 지원되면 사용자의 다양한 서비스 요구 충족과 네트워크 부하 및 서비스 응답 시간 최적화 등과 같은 잇점을 얻을 수 있다. 본 논문에서는 이러한 잇점을 제공하는 코드 이동성에 기반한 동적 기능 합성에 대한 연구로서 기존의 연구들에서 제안하는 동적 기능 합성을 확장하고, 확장된 합성 메커니즘을 실현하기 위한 언어적 구조체(language constructs)를 설계하였다. 또한, 자율적 객체가 수행되는 환경으로서의 플랫폼을 제안하고 적용 사례를 통하여 코드 이동성에 근거한 기능 합성의 예를 제시하였다.

  • PDF

Joint Congestion and Power Control Optimization for Wireless Ad-hoc Network in the Low-SINR Regime (낮은 SINR 상황의 무선 애드혹 네트워크를 위한 혼잡 제어와 전송 파워 제어의 복합 최적화 기법)

  • Kwak, Jae-Wook;Mo, Jeong-Hoon
    • Journal of the Institute of Electronics Engineers of Korea TC
    • /
    • v.43 no.11 s.353
    • /
    • pp.1-7
    • /
    • 2006
  • This paper consider a code-division multiple-access(CDMA) wireless ad-hoc network in low-SINR regime. In previous research [6], there has been proposed a algorithm for achieving global optimum at high SINR regime, but has not been fully investigated at low-SINR regime. In this paper, we focus on a case where SINR is much smaller than 1, and propose a algorithm that is suitable for low-SINR regime.