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

검색결과 480건 처리시간 0.026초

다수의 레지스터를 확보하기 위한 ARM Thumb 레지스터 뱅크의 제안 (Banked Register File for ARM Thumb to Secure More Registers)

  • 이제형;박진표;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 한국컴퓨터종합학술대회 논문집 Vol.32 No.1 (A)
    • /
    • pp.781-783
    • /
    • 2005
  • ARM 프로세서는 내장형 시스템에서 가장 널리 사용되는 32비트 마이크로 프로세서 중 하나이며, Thumb 명령어 세트는 보다 작은 코드 크기를 위해 제공하는 16비트 확장 명령어 세트이다. Thumb의 약점중의 하나는 줄어든 명령어 길이 때문에 이용할 수 있는 레지스터의 개수가 반으로 줄어든다는 것인데 결과적으로 가용 레지스터의 부족으로 인해 spill 코드가 빈번하게 발생할 수 있다. 우리는 약간의 하드웨어 및 명령어 수정을 통해 뱅크(bank)로 이루어진 레지스터 파일을 제공하고자 한다. 이로 인해 컴파일러는 보다 여유 있는 레지스터를 확보하게 되어 spill 코드가 줄어들게 되므로 보다 작은 크기의 코드를 얻어낼 수 있다. 이 변화된 형태의 레지스터 파일을 운용하기 위한 효율적인 레지스터 할당기법이 요구되며, 제안하는 영역기반 레지스터 할당기법을 통해 이이 최적화된 Thumb 코드 대비 약 $5.1\%$의 코드 크기 감소효과를 볼 수 있었다.

  • PDF

구문 트리를 이용한 자바 바이트코드에서 SIL로의 번역기 (Java Bytecode-to-SIL Translator using an Abstract Syntax Tree)

  • 김영근;권혁주;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.519-522
    • /
    • 2004
  • 자바는 현재 가장 널리 사용되는 범용 프로그래밍 언어중 하나로 컴파일러에 의해 중간언어인 바이트코드로 변환되며 JVM(Java Virtual Machine)에 의해 실행되는 플랫폼 독립적인 언어이다. SIL(Standard Intermediate Language)은 Microsoft사의 .NET 언어와 SUN사의 Java 언어 등을 모두 수용할 수 있는 임베디드 시스템을 위한 중간언어로 가상기계인 EVM(Embedded Virtual Machine)에서 실행된다. 본 논문에서는 자바 프로그램을 컴파일하여 생성된 클래스 파일에서 Oolong 코드를 추출하고 추출된 Oolong 코드를 EVM의 SIL 코드로 변환하여 자바로 구현된 프로그램이 EVM에서 실행되도록 하는 Bytecode-to-SIL 번역기 시스템을 구현하였다. 그리고 본 번역기 시스템을 다른 플랫폼에 용이하게 설치하기 위한 재목적성(retargetability)을 위해 단일패스(one-pass)을 사용하는 기존의 번역기들과 달리 AST를 이용한 컴파일러 기법을 사용하여 AST가 가지고 있는 정보에 대해 최적화 작업을 수행하여 보다 효과적인 코드 변환을 할 수 있도록 설계하였다.

  • PDF

전력 소모 최소화를 통한 성능 개선의 코드 가시화 방법 (Code visualization approach for performance improvement via mlnlmlzlng power dissipation)

  • 안현식;박보경;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2020년도 춘계학술발표대회
    • /
    • pp.375-376
    • /
    • 2020
  • 높은 사양이 필요한 하드웨어 기반의 모바일 및 IoT 임베디드 시스템은 저전력과 성능에 중요한 이슈를 갖고 있다. 이는 전력 소비로 발열량 증가 및 기기의 수명 단축 문제가 발생된다. 이러한 환경에서 소프트웨어도 제한된 전력, 메모리 등에서 안정적인 동작을 수행해야 하므로 디바이스의 소비전략이 증가한다. 이를 해결하고자, 코드 관점에서 전력 소모 최소화를 통한 소프트웨어 성능 개선 가시화 방법을 제안한다. 이는 코드 가시화를 통해 복잡한 모듈을 식별하고, 저전력 코드 패턴을 적용하여 소프트웨어 성능을 개선한다. 이런 코드로 소비전력을 감소 및 성능을 개선함으로써 코드의 품질을 최적화 할 수 있다.

CTOC에서 스택 기반 코드를 효율적인 중간코드로 변환기 설계 (Design of Translator for Efficient Intermediated Code from Stack Based Codes in CTOC)

  • 김경수;김기태;조선문;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 추계학술발표논문집(상)
    • /
    • pp.429-432
    • /
    • 2004
  • 자바 언어는 객체지향 언어이며 효율적인 애플리케이션을 개발하기 위해 설계되었다. 특히 다양한 개발 환경과 이식성에 맞는 언어로써 각광을 받고 있다. 하지만 자바 언어로 애플리케이션을 개발하면 다른 언어로 작성하는 것 보다 실행이 느리다는 단점을 가지고 있다. 이러한 자바 실행 속도를 극복하기 위해 많은 연구가 되고 있는데, 그 중에서도 JIT방식과 네이티브 코드로 변환 방식이 있다. 본 논문은 스택기반의 자바 바이트코드에서 3-주소 형태로 변환하여 최적화하는 CTOC중에서 바이트코드에서 3-주소 형태 즉 CTOC-T의 중간 표현인 CTOC-B를 설계하려 한다. CTOC-B는 스택기반의 중간표현으로써 자바 바이트코드보다 코드의 변환과 분석이 용이하게 만든 형태의 표현이다. 본 논문에서는 자바 바이트코드에서 스택기반 중간코드인 CTOC-B 코드로의 효율적인 변환기를 설계하며, CTOC-B의 특징을 분석해 본다.

  • PDF

OpenCL을 이용한 이미지 처리 프로그램의 자동 최적화 방법 (Automatic Optimization Methods for Image Processing Programs Using OpenCL)

  • 신재호;조강원;이일구;이재진
    • 정보과학회 컴퓨팅의 실제 논문지
    • /
    • 제23권3호
    • /
    • pp.188-193
    • /
    • 2017
  • 영상 장비가 발전하고 고화질 이미지의 사용량이 많아짐에 따라 이를 병렬화하여 빠르게 처리하는 방법이 많이 연구되고 있다. 본 논문은 OpenCL을 사용한 이미지 처리 프로그램이 하드웨어에 관계없이 최적의 성능을 내도록 하는 방법을 제시한다. OpenCL은 계산 디바이스의 아키텍처에 따라 적절한 병렬화 방법과 워크그룹 크기를 개발자가 실험을 통해 찾아야 한다. 하지만 이는 시간적, 자원적 한계가 있다. 본 논문에서는 대상 하드웨어에 최적화된 병렬화 방법과 워크그룹 크기를 프로파일링을 통해 자동으로 선택하는 방법을 제안한다. 또한 OpenCL을 사용한 이미지 처리는 입력 이미지의 크기에 따라 순차코드 보다 성능이 좋을 수도 있고 안좋을 수도 있다. 본 논문에서는 OpenCL코드의 성능이 순차코드 성능보다 좋아지는 시점의 이미지 크기를 자동으로 검색하여 OpenCL을 사용할지 기존의 순차코드를 사용할지 결정하는 이미지 크기 threshold를 설정하는 방법을 제시한다. 이를 통해 이미지 처리 프로그램이 임의의 하드웨어에서 이미지 크기에 상관없이 항상 최적의 성능을 보이는 것을 확인했다.

정적 단일 배정 형태를 위한 정적 타입 배정에 관한 연구 (A Study on Static Type Assignment for Static Single Assignment Form)

  • 김기태;유원희
    • 한국콘텐츠학회논문지
    • /
    • 제6권2호
    • /
    • pp.117-126
    • /
    • 2006
  • 자바 바이트코드는 많은 장점을 갖지만 수행 속도가 느리고 분석이 어렵다는 단점을 갖는다 이를 극복하기 위해 바이트코드에 대한 분석과 최적화가 수행되어야 한다. 우선 바이트코드에 대한 제어 흐름 분석을 수행한다. 제어 흐름 분석 후 데이터 흐름 분석과 최적화를 위해서 변수가 어디서 정의되고 어디서 사용되는지에 대한 정보가 필요하다. 각 위치에서 변수에 배정되는 값에 따라 동일한 이름의 변수가 다른 위치에서 다른 값을 가지는 경우가 발생한다. 따라서 정적으로 값과 타입을 결정하기 위해서 변수는 배정되는 것에 따라 분리되어야 한다. 이를 위해 단일 배정 형태를 이용하여 표현할 수 있다. 정적 단일 배정형태(SSA Form)로 변경한 후 정적 분석과 최적화를 위해서는 각 변수와 표현식이 나타내는 각각의 노드에 타입 정보를 설정해야 한다. 본 논문은 타입에 대한 기본 정보를 바탕으로 관련된 동등한 노드를 발견하고 강 결합 요소로 설정한 후 각 노드에 타입을 효율적으로 설정하는 방법을 제안한다

  • PDF

Ideograph를 이용한 최적화 및 병렬성 정보 표현에 관한 연구 (A Study on the Optimization and Parallelism Information Representation using Ideograph)

  • 정성옥;고광만
    • 지능정보연구
    • /
    • 제6권2호
    • /
    • pp.41-47
    • /
    • 2000
  • 최적화란 비효율적인 코드를 구분해 내서 실행 속도 및 기억 공간의 효율성을 높여 주는 방법으로 컴파일러의 각 단계에서 수행된다. Augustus K. Uht에 의해 제안된 Ideograph는 입력 프로그램에 대한 제어 의존성과 자료 의존성에 관한 정보를 동시에 표현할 수 있어 코드 최적화 단계에서 효과 적으로 이용될 수 있으며 프로그램에 존재하는 병렬성을 표현하는데 효과적이다. 구문 트리는 원시 프로그램을 정보를 효율적으로 표현할 수 있는 중간 표현으로서 컴파일러 구 현에 널리 사용되고 있다. 본 논문에서는 원시 프로그램의 중간 표현이 구문 트리를 입력으로 받아 최적화 정보를 추출한 후 제어 흐름 및 자료 흐름 분석 정보를 추출하여 제어 의존성과 자료 의 존성을 Ideograph에 동시에 표현한다.

  • PDF

임베디드 코어 설계시 효율적인 설계 공간 탐색을 위한 컴파일드 코드 방식 시뮬레이터 생성 시스템 구축 (Construction of a Compiled-code Simulator Generation System for Efficient Design Exploration in Embedded Core Design)

  • 김상우;황선영
    • 한국통신학회논문지
    • /
    • 제36권1B호
    • /
    • pp.71-79
    • /
    • 2011
  • 본 논문은 어플리케이션에 최적화된 임베디드 시스템 설계에 있어 효율적인 설계 공간을 탐색할 수 있도록 머신 기술 언어를 기반으로 한 컴파일드 코드 방식 시뮬레이터 생성 시스템을 제안한다. 제안된 시스템 event-driven 시뮬레이션의 융통성을 유지하면서 많은 시뮬레이션 시간을 소요하는 인스트럭션 펫치와 디코딩 과정을 정적으로 결정하여 빠른 수행시간을 갖는 컴파일드 코드 방식 시뮬레이터를 생성한다. 생성된 시뮬레이터는 임베디드 코어의 성능 측정을 위한 사이클 수준과 인스트럭션 수준의 시뮬레이션을 가진다. 구축된 컴파일드 코드 방식 시뮬레이터 생성기의 효율성을 확인하기 위해 JPEG 인코더 어플리케이션에 대한 아키텍처 탐색을 수행하였다. 제안된 시스템은 MIPS R3000 프로세서의 초기 임베디드 코어로 시작하여 어플리케이션에 최적화된 임베디드 코어를 얻어내었다. 이 과정에서 많은 시뮬레이션 시간이 요구되었다. 사이클 수준 컴파일드 코드 빙식 시뮬레이터는 event-driven 시뮬레이션의 정확성을 가지며 평균 21.7%의 향상된 시뮬레이션의 수행 속도를 보인다.

셀프-캐스코드 구조를 적용한 LDO 레귤레이터 설계 (Design of Low Dropout Regulator using self-cascode structure)

  • 최성열;김영석
    • 한국정보통신학회논문지
    • /
    • 제22권7호
    • /
    • pp.993-1000
    • /
    • 2018
  • 본 논문에서는 셀프-캐스코드 구조를 이용한 LDO 레귤레이터를 제안하였다. 셀프-캐스코드 구조의 소스 측 MOSFET의 채널 길이를 조절하고, 드레인 측 MOSFET의 바디에 순방향 전압을 인가함으로써 최적화하였다. 오차 증폭기 입력 차동단의 셀프-캐스코드 구조는 높은 트랜스컨덕턴스를 가지도록, 출력단은 높은 출력 저항을 가지도록 최적화하였다. 제안 된 LDO 레귤레이터는 $0.18{\mu}m$ CMOS 공정을 사용하였고, SPECTERE를 이용하여 시뮬레이션 되었다. 제안 된 셀프-캐스코드 구조를 이용한 LDO 레귤레이터의 로드 레귤레이션은 0.03V/A로 기존 LDO의 0.29V/A보다 급격하게 개선되었다. 라인 레귤레이션은 2.23mV/V로 기존 회로보다 약 3배 향상되었다. 안정화 속도는 625ns로 기존 회로보다 346ns 개선되었다.