• 제목/요약/키워드: 코드 최적화

검색결과 476건 처리시간 0.025초

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

  • 소창호;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권3호
    • /
    • pp.227-235
    • /
    • 2005
  • 임베디드 시스템에서는 메모리와 에너지의 소비가 중요한 관심사 중 하나이다. 메모리와 에너지의 소비를 줄이기 위해 32비트의 ARM 프로세서는 16비트 Thumb 명령어 세트를 지원한다. 주어진 응용프로그램에 대해 Thumb 코드는 일반적으로 ARM 코드보다 코드 사이즈가 작지만, 실행속도는 느리다. 코드 사이즈가 작으면서도 실행속도가 느리지 않은 코드를 생성하기 위한 방법으로 Krishnaswarmy는 응용프로그램에 대한 프로파일 정보를 이용하여 모듈 수준에서 ARM과 Thumb 명령어 세트를 선택하는 알고리즘을 고안했다. 이 알고리즘은 작은 성능 손실로도 상당한 코드 사이즈 감소 효과를 갖지만, 명령어 세트가 모듈 수준에서 선택되기 때문에 Thumb 코드로 컴파일 하면 코드 사이즈를 줄일 수 있는 함수들도 ARM 코드로 컴파일 되어, 추가적인 코드 사이즈 감소의 기회를 잃게 되는 문제점을 갖고 있다. 본 논문에서는 ARM과 Thumb 코드가 혼합된 코드 사이즈의 감소를 이끌어내기 위해 함수 수준에서 프로파일(Profile) 정보를 이용한 명령어 세트 선택 알고리즘을 제안했다. 우리는 성능에서의 페널티는 없이 2.7%의 코드 사이즈를 추가로 줄일 수 있었다.

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

  • 김기태;김제민;유원희
    • 정보처리학회논문지D
    • /
    • 제15D권2호
    • /
    • pp.197-206
    • /
    • 2008
  • 최근 많이 사용되고 있는 자바 바이트코드의 분석과 최적화를 효율적으로 수행하기 위해 CTOC 프레임워크가 구현되었다. CTOC에서는 바이트코드에 대해 분석과 최적화를 수행하기 위해 가장 먼저 eCFG를 생성하였다. 분석하기 어렵다는 바이트코드의 특성 때문에 기존의 바이트 코드를 제어 흐름 분석에 적합하게 확장하여 제어 흐름 그래프를 작성하였다. 이를 확장된 제어 흐름 그래프인 eCFG라 부른다. 또한 정적으로 분석하기 위해 eCFG를 SSA Form으로 변환 하였다. 변환 시 많은 프로그램에서 루프가 발견되었다. 이전 CTOC에서는 루프에 대한 처리를 수행하지 않은 상태에서 직접 SSA Form으로 변환을 수행하였다. 하지만 SSA Form으로 변환하기 이전에 루프에 대한 부분을 처리하면 더욱 효율적인 SSA Form을 생성할 수 있게 된다. 본 논문은 루프에 대한 처리를 효율적으로 하기 위해 eCFG를 SSA Form으로 변환하는 과정 이전에 루프를 발견하고 이와 관련된 루프 트리를 생성하는 과정을 보인다.

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

  • 홍유표
    • 대한전자공학회논문지SD
    • /
    • 제37권3호
    • /
    • pp.48-54
    • /
    • 2000
  • 이 논문은 임베디드 소프트웨어를 위한 소프트웨어 합성시 don't care 정보를 이용하여 합성된 소프트웨어의 성능을 향상시키기 위한 방법을 제시한다. 임베디드 시스템은 주로 실시간 처리가 요구되는 분야에 사용되기 때문에 매우 까다로운 실시간 및 코드 크기의 제한이 있기 때문에 그에 관한 최적화는 매우 중요하다. 우리는 BDD 기반의 유한상태기계 전달 함수의 표현으로부터 확장된 유한상태기계를 유도하는 소프트웨어 합성의 경우에 돈 케어정보를 추출하고, 그를 이용한 BBD를 최소화하여, 일차적으로는 코드크기를 줄이고 결과적으로는 코드가 실행되는 임베디드 시스템의 성능을 향상시키는 방법을 제안한다. 그러한 방법이 적용된 실험적 결과를 제시하고, don't care 기반의 BDD 최소화와 BDD 변수의 동적 재배열의 결합 등 관련 연구 방향을 제안한다.

  • PDF

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

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

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

  • 고광만;박희완;윤종희;최광훈
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.101-102
    • /
    • 2012
  • 안드로이드 플랫폼에 적합한 어플리케이션 보급이 급증하면서 안드로이드 가상머신인 달빅(dalvik)의 성능 향상을 위한 연구가 다양하게 시도되고 있다. 전력 공급이 제한적인 모바일 기기에서 효율적인 어플리케이션 실행을 위한 플랫폼의 성능 향상과 더불어 전력 에너지의 최적화된 소비가 중요한 이슈가 되고 있다. 이 논문은 달빅에서 실행되는 dex 파일의 바이트코드를 에너지 소비 중심으로 스케줄링하여 Java 어플리케이션의 전력 에너지 소비를 최적화하고자 하는 시도이다. 에너지 지향적인 스케줄링 기법은 전통적인 리스트-인스트럭션 스케줄링 기법을 기반으로 하였으며 스케줄링 전 후의 실험 결과를 제시하여 이 연구의 효과를 입증한다.

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

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

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

  • 유재일;최광훈
    • 정보보호학회논문지
    • /
    • 제32권2호
    • /
    • pp.171-179
    • /
    • 2022
  • 자체 수정 코드(Self-Modifying-Code)란 실행 시간 동안 스스로 실행 코드를 변경하는 코드를 말한다. 이런 기법은 특히 악성코드가 정적 분석을 우회하는 데 악용된다. 따라서 이러한 악성코드를 효과적으로 검출하려면 자체 수정 코드를 파악하는 것이 중요하다. 그동안 동적 분석 방법으로 자체 수정 코드를 분석해왔으나 이는 시간과 비용이 많이 든다. 만약 정적 분석으로 자체 수정 코드를 검출할 수 있다면 악성코드 분석에 큰 도움이 될 것이다. 본 논문에서는 LLVM IR로 변환한 바이너리 실행 프로그램을 대상으로 자체 수정 코드를 탐지하는 정적 분석 방법을 제안하고, 자체 수정 코드 벤치마크를 만들어 이 방법을 적용했다. 본 논문의 실험 결과 벤치마크 프로그램을 컴파일로 변환한 최적화된 형태의 LLVM IR 프로그램에 대해서는 설계한 정적 분석 방법이 효과적이었다. 하지만 바이너리를 리프팅 변환한 비정형화된 LLVM IR 프로그램에 대해서는 자체 수정 코드를 검출하기 어려운 한계가 있었다. 이를 극복하기 위해 바이너리를 리프팅 하는 효과적인 방법이 필요하다.

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

  • 문석배
    • 한국정보과학회 언어공학연구회:학술대회논문집(한글 및 한국어 정보처리)
    • /
    • 한국정보과학회언어공학연구회 1994년도 제6회 한글 및 한국어정보처리 학술대회
    • /
    • pp.223-230
    • /
    • 1994
  • 본 한글꼴은 음절 및 음소의 가시성을 높이고자 한글 음소의 이중 가로선형 배열을 통한 밀도 분산형 한글꼴과 음소 나열형 한글꼴 등의 새로운 한글꼴의 다양한 표현의 실험 연구이다. 일도 분산형 한글꼴은 새로운 음소형 한글코드(닿소리, 홑소리, 받침 조합형)와 서로 대응하드록 일원화 한글꼴로 한글 및 옛 한글의 음소 조합형의 입.출력이 가능하다. 이러한 시도는 1바이트 이내에서 현대한글 및 옛한글을 구현하며, 이는 한글의 구현원리에 따른 음소형 코드체계의 실현 가능성으로 한글 코드체계의 최적화에 대한 새로운 가설을 제시 한다.

  • PDF

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

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

  • PDF

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

  • 곽재욱;모정훈
    • 대한전자공학회논문지TC
    • /
    • 제43권11호
    • /
    • pp.1-7
    • /
    • 2006
  • 본 논문에서는 코드분할 다중화방식(CDMA)을 기반으로 한 무선 애드혹 네트워크에서의 혼잡 제어와 전송 파워 제어의 복합 최적화 기법에 대해서 고찰하고, 낮은 신호대비 잡음 및 간섭(이하 SINR) 상황을 고려한 알고리즘을 제시한다. 기존의 연구 [6]에서 제시된 CDMA기반의 무선 애드혹 네트워크를 위한 복합 제어 방식은 높은 SINR 상황을 가정하고 있으며, 낮은 SINR 상황에 대해서는 고려하지 않았다. 본 논문에서 우리는 SINR이 1보다 상대적으로 훨씬 작은 낮은 SINR 상황에 대해서 고려해야 할 문제점들을 살펴보고, 적절한 알고리즘을 제시한다.