Publications

Detailed Information

프로파일 정보를 기반으로 하는 동적 바이너리 변환의 간접 분기문 처리 최적화 : Profile-based Indirect Branch Handling for Dynamic Binary Translation

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

심명보

Advisor
문수묵
Major
공과대학 전기·컴퓨터공학부
Issue Date
2013-02
Publisher
서울대학교 대학원
Keywords
동적 바이너리 변환기간접 분기문타겟 주소 인라이닝 체인해시 테이블
Description
학위논문 (석사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2013. 2. 문수묵.
Abstract
동적 바이너리 변환기는 소스 코드의 재컴파일 없이, 바이너리 파일만을 가지고 같거나 다른 ISA(Instruction Set Architecture)에서 수행하는 에뮬레이션 기술이다. 정적 바이너리 변환기에서 처리하지 못하는 여러 가지 문제점을 해결할 수 있다는 장점이 있지만, 프로그램의 수행 시간에 바이너리 파일의 명령어 번역이 일어나므로 수행 성능이 항상 문제가 된다. 수행 성능 저하의 요인으로는 많은 코드 생성 최적화를 적용할 수 없다는 점과, 레지스터 매핑, 간접 분기문의 처리 등 다양한 요인들이 있다. 그 중에서 수행 시간에 레지스터나 메모리에 저장된 주소로 분기하는 간접 분기문은 매 수행마다 타겟이 달라질 수 있으므로, 이를 처리하기 위해서는 많은 오버헤드를 유발한다. 고정된 타겟으로 분기하는 직접 분기문은 생성된 코드 사이에 직접 분기하는 반면, 간접 분기문은 생성된 코드와 동적 바이너리 변환기의 문맥 전환 및 매핑 테이블 검색 등의 오버헤드가 추가적으로 발생하기 때문이다.
간접 분기문을 효율적으로 처리하기위해서 많은 최적화 방안이 연구되었으며, 일반적으로 동적 바이너리 변환기에서 간접 분기문의 처리를 최적화하기 위해서는 타겟 주소 인라이닝 체인과 해시 테이블을 생성하는 방식을 사용한다. 먼저, 간접 분기문의 타겟 주소 중 일부를 인라이닝 체인을 형성해서 수행 시간에 간단한 비교 후 바로 타겟 주소로 점프하고, 실패할 경우에는 해시 테이블에 접근해서 타겟 주소를 검색하며, 이마저도 실패할 경우 동적 바이너리 변환기 엔진으로 돌아가서 처리하도록 한다. 따라서, 효율적인 간접 분기문 처리를 위해서는 타겟 주소 인라이닝의 대상 선택이 중요하다.
본 논문에서는 동적 바이너리 변환기의 간접 분기문 처리를 최적화하기 위해서, 효율적인 타겟 주소 인라이닝 대상 선택 방법을 제시한다. 프로그램 수행 초기 단계에 간접 분기문마다 타겟의 주소 리스트 및 수행 빈도를 프로파일링해서 관리하며, 이 정보를 인라이닝 대상을 선택하는데 활용한다. 제안된 방식을 측정하기 위한 실험을 하며, 실험에서 사용하는 동적 바이너리 변환기는 QEMU(Quick EMUlator)를 사용하고, 벤치마크는 SPEC CINT2006과 C버전으로 변환한 CaffeineMark를 사용해서 성능을 측정하였다. 제안된 방식의 성능을 평가하기 위해서 기존 연구에서 제안된 방식인, 인라이닝 대상을 순차적으로 선택하는 방법인 FIFO (First-In First-Out)방식과 비교한다. 제안된 방식을 적용한 결과 SPEC CINT2006에서는 3%, CaffeineMark에서는 2%의 성능 향상을 얻을 수 있었다. 인라이닝 체인 전체의 적중률은 각각 27%, 54%가 향상되었다. 특히, 인라이닝 체인의 첫 번째 타겟 주소의 적중률이 각각 20%, 40%가 향상되었다.
Language
Korean
URI
https://hdl.handle.net/10371/122919
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share