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

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

패턴 테이블을 이용한 코드 최적화 (Code Optimization Using Pattern Table)

  • 윤성림;오세만
    • 한국멀티미디어학회논문지
    • /
    • 제8권11호
    • /
    • pp.1556-1564
    • /
    • 2005
  • 원시 프로그램에 대한 컴파일 과정 중 최적화 단계에서는 프로그램의 실행 속도를 개선시키고 코드 크기를 줄일 수 있는 다양한 최적화 기법을 수행한다[17]. 최적화 패턴 매칭 방법 중 스트링 패턴 매칭 방법은 중간 코드에 대응하는 최적의 패턴을 찾기 위한 방법으로 과다한 최적화 패턴 검색 시간으로 비효율적이다. 트리 패턴 매칭은 패턴 결정시 중복 비교가 발생할 수 있으며, 코드의 트리 구성에 많은 비용이 드는 단점을 가지고 있는 방법들이다[16,18]. 본 논문에서는 기존의 최적화 방법들의 단점을 극복하기 위한 방법으로 DFA (Deterministic Finite Automate) 최적화 테이블을 이용한 코드 최적화기를 제안하려고 한다. 이 방법은 다른 패턴 매칭 기법보다 결정적인 오토마타(Automata)로 구성하기 때문에 비용은 적어지고, 오토마타를 통해 결정적으로 패턴이 확정됨에 따른 패턴 선택 비용이 줄어들며, 최적화 패턴 검객 시간도 빨라지는 효율적인 방법의 최적화기이다.

  • PDF

중간 코드를 스택-기반 코드로의 변환기 (Translator for Stack-Based Codes from Intermediated Codes)

  • 김영국;고훈준;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 한국컴퓨터종합학술대회 논문집 Vol.32 No.1 (B)
    • /
    • pp.895-897
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 실행속도 저하의 해결 방법으로 네이티브 코드로 변환, JIT컴파일러, 바이트코드 최적화등의 연구가 되어 왔다. 그 중에 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 중간코드로 사용하는 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 store/load 코드가 생성된다. 따라서 본 논문은 불필요한 store/load 코드를 제거하기 위해서 부분 중복 코드 제거 후 불필요한 store/load문을 제거함으로서 불필요한 store/load 코드의 양을 줄이는 변환기를 제안하고, 거기에 대한 간단한 예를 들어 설명한다.

  • PDF

3-주소 코드를 스택-기반 코드로의 변환기 (Translator for Stack-Based Codes from Three-Address Codes)

  • 김영국;고훈준;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2005년도 춘계학술발표대회
    • /
    • pp.369-372
    • /
    • 2005
  • 자바의 문제점은 실행속도의 저하이다. 실행속도 저하의 해결 방법으로 네이티브 코드로 변환, JIT컴파일러, 바이트코드 최적화등의 연구가 되어 왔다. 그중에 바이트코드 최적화 방법을 사용하는 CTOC(Class To Optimized Classes)에서 3-주소 코드를 스택-기반 코드로 코드 확장 기법으로 변환 시 불필요한 store/load 코드가 생성된다. 따라서 본 논문은 불필요한 store/load 코드를 제거하기 위해서 부분 중복 코드 제거 후 불필요한 store/load문을 제거함으로서 불필요한 store/load 코드의 양을 줄이는 변환기를 제안하고, 거기에 대한 간단한 예를 들어 설명한다.

  • PDF

트리패턴매칭기법의 재목적 가능한 중간코드 최적화 시스템 (Retargetable Intermediate Code Optimization System Using Tree Pattern Matching Techniques)

  • 김정숙;오세만
    • 한국정보처리학회논문지
    • /
    • 제6권8호
    • /
    • pp.2253-2261
    • /
    • 1999
  • ACK에서는 패턴 테이블 생성기와 핍홀 최적화기에서 스트링 패턴 매칭 기법을 이용하여 EM 중간 코드에 대한 최적화 코드를 생성한다. 하지만 이 스트링 패턴 매칭 방법은 패턴 결정 시에 반복적으로 많은 비교 동작이 이루어지므로 비효율적이다. 본 논문은 ACK의 중간 코드 최적화기를 개선하기 위해 EM 트리 생성기, 최적화 패턴 테이블 생성기, 트리 패턴 매칭기로 구성된 트리 패턴 매칭 알고리즘을 이용한 EM 중간 코드 최적화 시스템을 설계하고 구현하였다. 이러한 트리 패턴 매칭 알고리즘은 EM 트리를 하향식으로 순회하면서 트리 구조를 가진 패턴 테이블을 참조하여 루트 노드를 중심으로 패턴 매칭을 수행한다. 트리 패턴 매칭 동작은 궁극적으로 ACK의 스트링 패턴 매칭에 비해 최적화 패턴을 찾는데 걸리는 시간을 평균 10.8% 감소시킬 수 있는 효과를 보였다.

  • PDF

컴파일러에 의한 C레벨 에러 체크 (Compiler triggered C level error check)

  • 정지문;윤종희;이종원;백윤흥
    • 정보처리학회논문지A
    • /
    • 제18A권3호
    • /
    • pp.109-114
    • /
    • 2011
  • IR(Intermediate Representation) 최적화 과정은 컴파일러 back-end의 중요한 부분으로서 sub-expression elimination, dead code elimination 등 최적화 기법들을 사용한다. 하지만 IR 최적화 단계에서 생기는 에러들을 검출하고 디버깅하는데 많은 어려움이 있다. 그 첫 번째 이유로는 컴파일 된 어셈블리 코드를 해독하여 에러를 체크하기 어렵고 두 번째로는 IR 최적화 단계에서 에러가 생겼는지 결정 짓기 어렵기 때문이다. 이런 이유들로 인하여, 우리는 C 레벨에서 IR 코드변환 무결점 여부를 체크하기 위한 기법들에 관한 연구를 진행하여 왔다. 우리는 MeCC(Memory Comparison-based Clone) 탐색기를 기반으로 하여, 최적화하기 전 IR코드와 최적화 한 후의 IR코드를 각각 C코드로 다시 변환한 뒤, 이 두 개의 C코드를 MeCC의 입력으로 주고, 결과의 일치 여부를 확인하는 방법을 사용한다. 하지만 MeCC가 완벽한 결과를 알려주지 않기 때문에, 우리는 각 IR 최적화 기법마다의 특징에 대한 정보를 사전에 처리해서 그 결과의 정확도를 높였다. 이 논문에서는 dead code elimination, instruction scheduling 및 common sub-expression elimination 등 최적화 기법들을 이용한 변환 코드들을 예시로 실험하여 최종적으로 MeCC에서의 C 레벨 코드의 정확한 에러 체크 동작여부를 보여준다.

CTOC에서 자바 바이트코드를 이용한 제어 흐름 분석에 관한 연구 (A Study on Control Flow Analysis Using Java Bytecodes in CTOC)

  • 유원희;김기태
    • 한국콘텐츠학회논문지
    • /
    • 제6권1호
    • /
    • pp.160-169
    • /
    • 2006
  • 본 논문은 바이트코드(bytecode) 수준에서 프로그램 분석과 최적화를 위한 구조를 서술한다. 바이트코드 수준에서 분석을 수행하기 위해서는 우선 제어 흐름 그래프(CFG : Control Flow Graph)를 생성해야 한다. 바이트코드의 특성 때문에 기존의 제어 흐름 분석 기술을 바이트코드에 적합하게 확장해야 한다. CFG를 작성하기 위해 기본 블록을 생성하고 기본 블록간의 관계를 이용하여 최적화 과정에서 사용되는 각종 정보를 생성한다. 생성된 CFG는 자바 바이트코드의 이해와 유지보수를 위해 테스트되고, 데이터 흐름 분석과 의존성 분석과 같은 다른 분석을 위해서 사용된다. 본 논문에서는 바이트코드 수준의 제어 흐름 분석을 위해 CTOC(Classes To Optimized Classes)의 CTOC-BR(CTOC-Bytecode tRanslator)을 구현한다. CTOC는 자바 바이트코드의 최적화와 분석을 위해 현재 개발 중인 프레임 워크의 이름이고, CTOC에서 CTOC-BR은 스택 기반인 바이트코드의 최적화와 분석을 쉽게 하기 위해 트리 형태로 변환을 수행하는 도구이다.

  • PDF

IMT-2000 표준의 터보코드를 위한 SOVA 복호기 최적화 설계 (An parameter optimization of SOVA decoder for the IMT-2000 complied Turbo code)

  • 김주민;정덕진
    • 한국통신학회논문지
    • /
    • 제26권5B호
    • /
    • pp.592-598
    • /
    • 2001
  • IMT-2000에서는 이미 터보코드가 채널코딩 기법으로 제안되어 있으며 특별히 3GPP 규격에서는 제한길이 4인 1/3 터보코드가 채택되어 있다. 기존의 논문에서는 일반적인 터보 코드의 성능에 대한 분석이 많이 제시되어 왔으나, 3GPP 규격의 터보 복호를 위한 SOVA 복호기의 성능 파라미터 추출과 그에 따른 성능 분석 수행되지 않았다. 본 연구에서는 효율적인 구조의 3GPP SOVA 복호기를 설계하기 위해서 외부정보의 스케일링과 신뢰도 갱신길이 라는 두 가지 파라미터에 따른 SOVA 복호기의 성능을 분석하고 최적의 파라미터 값을 제시하고자 한다. 이 파라미터의 최적화를 위하여 C++를 이용한 모의실험 결과, 3GPP 규격의 (13,15) 1/3 코드에서 스케일링 값은 1/2로 신뢰도 갱신길이는 10으로 최적화 되었다.

  • PDF

고속데이터 처리를 위한 터보 인코더 설계 (A Design of Turbo-encoder for High-speed Applications)

  • 정덕영;최덕영;손승일;이우섭
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2004년도 춘계종합학술대회
    • /
    • pp.678-681
    • /
    • 2004
  • 본 연구에서는 IMT-2000방식 중 WCDMA(Wideband Code Division Multiple Access)방식의 터보코드에 대해 연구하였으며 터보 코드에 사용하는 인터리버 중 신호대 잡음비 성능이 가장 좋은 GF 인터리버와 터보 코드의 단점 중에 하나인 처리하는 동안 걸리는 지연 시간을 보완하기 위하여 핑퐁 램을 사용하였다. 핑퐁 램을 사용함으로써 최초에 소스 데이터 입력 때 만 지연이 생기고 그 이후에는 연속적으로 데이터를 출력 할 수 있는 장점을 얻었다. 그리고 C언어를 이용한 최적화된 시뮬레이션과 터보 코드의 성능평가를 통한 최적화를 실시하였다. 그리고 최적화된 정보를 바탕으로 터보코드를 VHDL언어를 이용하여 설계하고, Xilinx Vertex 1000E(XCV1000E)-PQ240칩을 이용한 테스트 보드에 다운로드 후 PCI인터페이스를 통한 시뮬레이션을 구현하였다.

  • PDF

컴파일러 최적화 코드 분석 연구 조사 (A Study on Research in Analysis of Code Generated by Compiler Optimization)

  • 한상훈;강정환;권동현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2023년도 추계학술발표대회
    • /
    • pp.200-202
    • /
    • 2023
  • 컴파일러는 사용자가 작성한 소스 코드로부터 타겟 머신에서 동작하는 코드로 변환하기 위해 사용되는 프로그램으로 컴파일러의 구현은 몇 가지 단계로 구성된다. 그 단계 중 하나에 속하는 최적화 단계는 사용자에 의해 작성된 코드를 실행 시간, 메모리 사용량, 에너지 소모 등을 줄이기 위해 코드를 효율적으로 사용하고자 적용되는 단계이다. 그렇지만 이러한 컴파일러 최적화 기법은 사용자가 의도하지 않은 결과를 만들어 프로그램의 보안성을 낮추기도 한다. 이에 본 논문에서는 관련 연구 내용을 살펴보고 정리하고자 한다.

희소코드모션을 위한 최적화 알고리즘 (An Optimal Algorithm for Sparse Code Motion)

  • 유희종;신현덕;안희학
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 가을 학술발표논문집 Vol.29 No.2 (2)
    • /
    • pp.646-648
    • /
    • 2002
  • 본 논문에서는 코드 최적화를 위하여 계산적으로나 수명적으로 제한이 없는 희소 코드 모션 알고리즘을 제안한다. 이 알고리즘은 지나친 레지스터의 사용을 막기 위하여 불필요한 코드 모션을 억제한다. 또한, 본 논문에서는 기존 알고리즘의 술어의 의미가 명확하지 않은 것을 개선하였고 노드 단위 분석과 명령어 단위 분석을 혼용했기 때문에 발생하는 모호함도 개선하였다. 따라서, 제안한 알고리즘은 불필요하게 중복된 수식이나 배정문의 수행을 피하게 함으로써, 프로그램의 불필요한 재계산이나 재실행을 하지 않게 하여 프로그램의 능률 및 실행시간을 향상시킨다.

  • PDF