서지주요정보
Reducing constant loads for ARM executable files = ARM 실행파일의 상수 로드 경감을 위한 연구
서명 / 저자 Reducing constant loads for ARM executable files = ARM 실행파일의 상수 로드 경감을 위한 연구 / Hyun-Ik Na.
발행사항 [대전 : 한국과학기술원, 2007].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8018438

소장위치/청구기호

학술문화관(문화관) 보존서고

MCS 07020

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

For several benefits, unignorable amount of read-only data has been embedded in the text sections of an executable file though there are separate data sections in the file. This, however, becomes serious hindrance when we come to the issues of directly manipulating an executable file for analyzing, profiling or optimizing it. It also incurs some overhead in code size and performance. With all this drawbacks, in a fixed-length instruction set architecture, it goes beyond our choice to embed data into text sections due to the limitation on the bitfield size of the immediate operands in instructions. More specifically, whenever we access data segment we must load the address of the target data in advance from near the current instruction. This makes embedding the address values into the text sections inevitable in such architecture. In this thesis we show that a minor addition in a fixed-length instruction set architecture can cover most of the cases of necessity for the big constants like data addresses without embedding them into the text sections. In addition, it results in code size reduction and improvement in performance. The discussion and experiments are targeted to the ARM instruction set architecture which is an instance of fixed length instruction set architecture and the most widespread one in embedded computing area. The experiments are done with self-constructed binary engineering tool which does necessary analyzing, profiling and rewriting of the ARM executable files and the Simplescalar-ARM simulator.

많은 경우, 실행파일의 텍스트 영역에는 인스트럭션 이외에도 읽기 전용 데이터가 소량 포함된다. 특히 ARM과 같이 고정 길이 인스트럭션을 채용한 아키텍쳐에서는 그 제약으로 인해 데이터가 섞여 있는 실행코드를 생성하는 일이 불가피하다. 그러나 이 방식은 정확한 디스어셈블을 불가능하게 하기 때문에 실행파일 분석에 가장 큰 장애로 작용한다는 단점이 있다. 그리고 실행코드의 크기나 성능에도 약간의 오버헤드가 된다. 본 연구에서는 우선 ARM 실행코드를 직접 분석하여 인스트럭션과 데이터를 분리하는 과정을 시도한다. 분석은 확실히 인스트럭션이라고 지정할 수 있는 위치에서부터 시작하여, 몇가지 규칙에 의해 추가적인 인스트럭션과 데이터를 식별해내는 방식으로 수행된다. 그리고 특정 컴파일러의 코드 생성 방식이 참고되어야 한다. 이 결과로 테스트 프로그램들에 걸쳐 대략 95.1% 이상의 식별율을 보인다. 다음으로 ARM 아키텍쳐에 약간의 추가를 통해 텍스트 영역에서 상수 로드를 줄일 수 있는 수단을 제시한다. 이는 부정확한 디스어셈블 결과에 의존하고 있는 지금까지의 실행파일 분석 및 최적화 과정을 개선하는 수단이 될 수 있다. 텍스트 영역안의 데이터가 대부분의 경우 주소값이라는 점이 새 인스트럭션을 설계할 때 중요하게 고려된다. 그리고 시뮬레이션을 통해 파악한 값의 분포도 참고한다. 추가된 인스트럭션의 효과를 측정하기 위해 우선 기존의 ARM 실행파일을 변환한다. 변환을 위해 자체 제작한 ARM 실행파일 분석/변환 도구를 이용하였고, 변환 내용은 상수값 로드 인스트럭션을 추가된 인스트럭션으로 대체하는 것이었다. 그리고 새로운 인스트럭션을 지원하도록 수정된 ARM 시뮬에이터 상에서 변환된 실행파일을 실행하여 성능 개선을 측정한다. 이 변환이 메모리 접근 인스트럭션을 산술 계산 인스트럭션으로 대체하는 효과가 있다는 점에서 성능 개선을 기대할 수 있다. 그러나 높은 캐쉬 효율과 느린 클럭 속도로 인해 현재의 ARM 프로세서 사양에서는 큰 개선을 보지 못하였고, 캐쉬 접근 비용이 상대적으로 높은 상황을 가정했을 때는 의미있는 성능 개선을 이룰 수 있음을 보였다.

서지기타정보

서지기타정보
청구기호 {MCS 07020
형태사항 v, 30 p. : 삽화 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 나현익
지도교수의 영문표기 : Hwan-Soo Han
지도교수의 한글표기 : 한환수
학위논문 학위논문(석사) - 한국과학기술원 : 전산학전공,
서지주기 Reference : p. 29-30
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서