• 제목/요약/키워드: ARM 명령어 집합

검색결과 9건 처리시간 0.033초

바이너리 분석을 위한 ARM 명령어 구조 분석 (ARM Instruction Set Architecture Analysis for Binary Analysis)

  • 정승일;류찬호
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2018년도 제58차 하계학술대회논문집 26권2호
    • /
    • pp.167-170
    • /
    • 2018
  • 본 논문에서는 바이너리 분석을 위한 ARM의 구조를 분석한다. 바이너리 분석이란 0과 1로 이루어진 이진 값의 의미를 분석하는 것을 말한다. 바이너리 코드를 역어셈블(Disassemble)하여 값으로만 존재하는 데이터가 어떤 명령어(Instruction)이며 어떤 피연산자(Operand)를 의미하는지 알 수 있다. 소스코드를 컴파일하여 실행파일이 생성이 되면 바이너리 값으로 구성되며 이 실행파일을 바이너리 파일이라고도 한다. 바이너리 파일을 분석하기 위해서 CPU의 명령어 집합 구조(Instruction Set Architecture)를 알아야 한다. PC와 서버, 모바일 등에서 많이 사용되고 있는 ARM 중에서 64비트를 지원하는 AArch64(ARMv8)의 명령어 구조를 분석하여 효율적인 바이너리 분석의 기반을 마련하고자 한다.

  • PDF

AMEX: 16비트 Thumb 명령어 집합 구조의 주소 지정 방식 확장 (AMEX: Extending Addressing Mode of 16-bit Thumb Instruction Set Architecture)

  • 김대환
    • 한국컴퓨터정보학회논문지
    • /
    • 제17권11호
    • /
    • pp.1-10
    • /
    • 2012
  • 본 논문에서는 16비트 Thumb 명령어 집합 구조를 개선하기 위하여 주소 지정 방식을 확장하는 기법을 제시한다. 제시된 방법의 핵심 아이디어는 사용 빈도가 낮은 명령어들의 레지스터필 드의 너비를 감소시키고 이를 통해 절약한 비트들을 이용하여 사용 빈도가 높은 명령어들에 새로운 주소 지정 방식을 도입하는 것이다. 제시된 기법은 16 비트 Thumb 구조의 상위 집합인 32비트 ARM 구조에서 사용되는 유용한 주조 지정 방식들을 채택한다. 데이터 리스트에 대한 접근 속도를 향상시키기 위하여 크기가 조정된 레지스터 오프셋 주소 지정 방식과 사후 인덱스 주소 지정 방식이 로드와 저장 명령어에 도입된다. 실험결과, 제시된 방법은 전통적인 방식과 비교하여 평균 8.5%의 성능을 향상시킨다.

Thumb-2 명령어 집합 구조의 병렬 분기 명령어 확장 (Parallel Branch Instruction Extension for Thumb-2 Instruction Set Architecture)

  • 김대환
    • 한국컴퓨터정보학회논문지
    • /
    • 제18권7호
    • /
    • pp.1-10
    • /
    • 2013
  • 본 논문에서는 Thumb-2 명령어 집합 구조의 성능을 개선하기 위하여 분기 명령어와 사용 빈도가 높은 명령어를 동시에 실행하는 병렬 분기 명령어 집합을 제시한다. 제시된 기법에서는 16비트 분기 명령어와 사용 빈도가 높은 16비트 LOAD, ADD, MOV, STORE, SUB 명령어를 각각 결합하는 새로운 32비트 명령어를 도입한다. 새로운 명령어의 인코딩 공간을 제공하기 위해 사용 빈도가 낮은 기존 명령어의 레지스터 필드에 사용되는 비트 수를 줄이고 이를 통해 절약된 비트들을 이용하여 병렬 분기 명령어를 인코딩한다. 실험 결과, 제시된 방법은 코드 크기를 증가시키지 않고 전통적인 방식과 비교하여 평균 8.0%의 성능을 향상시킨다.

기호 형태의 값-집합 분석을 이용한 ARM 위치 독립적 코드의 정교한 역어셈블리 기법 (A Disassembly Technique of ARM Position-Independent Code with Value-Set Analysis Having Symbol-Form Domain)

  • 하동수;오희국
    • 정보보호학회논문지
    • /
    • 제28권5호
    • /
    • pp.1233-1246
    • /
    • 2018
  • 스마트 모바일의 보급에 따라, 컴퓨터 보안에서 ARM 아키텍처 명령어로 구성된 위치 독립적 코드의 역어셈블리 기법이 중요해지고 있다. 그러나 대부분의 기존 기법들은 x86 아키텍처 대상으로 연구되었으며, 위치 종속적 코드의 문제 해결과 범용성에 초점이 맞추어져 있다. 따라서, ARM 아키텍처의 고정 길이 명령어와 위치 독립적 코드의 특징이 제대로 반영되지 않아, 바이너리 계측과 같이 바이너리 자체를 직접 수정하는 수준의 고도화된 응용 보안 기술에 적용하기에는 수집되는 주소 정보의 정확도가 낮다. 본 논문에서, 우리는 ARM 명령어로 구성된 위치 독립적인 코드의 특성을 반영한 역어셈블리 기법을 제안한다. 정확하고 추적 가능한 주소의 수집을 위해, 도메인이 기호화된 값-집합 분석을 설계하였다. 또한, 역어셈블의 주요 문제점을 해결하기 위해, 컴파일러가 생성하는 코드의 특징을 활용한 휴리스틱을 고안하였다. 우리 기법의 정확도와 유효성을 검증하기 위해, 안드로이드 8.1 빌드에 포함된 669개의 공유라이브러리 및 실행 파일을 대상으로 실험하였으며, 그 결과 완전한 역어셈블의 비율이 91.47%로 나왔다.

음성부호 처리에 적합한 RISC 프로세서의 설계 및 구현 (Design and Implementation of RISC Processor for Speech Coding)

  • 김진;이준용
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2000년도 가을 학술발표논문집 Vol.27 No.2 (3)
    • /
    • pp.18-20
    • /
    • 2000
  • 디지털 음성통신을 위한 빠르고 쉬운 내장 프로세서(Embedded processor)가 요구되어짐에 따라 음성신호 압축 복원 알고리즘인 ADPCM과 LD-CELP의 구현에 가장 빈번히 사용되는 연산의 특성을 조사하였다. ARM6 processor core의 기본 구성요소들과 명령어집합을 기반으로 하여 음성부호화 알고리즘의 연산의 특성을 효율적으로 처리하기 위한 명령어와 구조를 추가한 범용 프로세서의 구조를 제안하고 VHDL로 기술하여 동작을 검증하였다. ARM6의 ALU logic에 leading zero count를 위한 회로를 추가하였고 opcode를 변경하였으며, LPC 계수 연산을 위해 제안된 MAC을 도입하여 효율적인 구현이 가능하도록 설계하였다.

  • PDF

다수 혹은 긴 워드 연산을 위한 레지스터 파일 확장을 통한 대칭 및 비대칭 암호화 알고리즘의 가속화 (Accelerating Symmetric and Asymmetric Cryptographic Algorithms with Register File Extension for Multi-words or Long-word Operation)

  • 이상훈;최린
    • 전자공학회논문지CI
    • /
    • 제43권2호
    • /
    • pp.1-11
    • /
    • 2006
  • 본 연구에서는 대칭 및 비대칭 암호화 알고리즘을 가속화하기 위해, 다수 혹은 긴 워드 연산을 위한 레지스터 파일 확장 구조 (Register File Extension for Multi-words or Long-word Operation: RFEMLO)라는 새로운 레지스터 파일 구조를 제안한다. 암호화 알고리즘은 긴 워드 피연산자에 대한 명령어를 통하여 가속화 할 수 있다는 점에 착안하여, RFEMLO는 하나의 레지스터 명을 통해 여러 개의 레지스터에 접근할 수 있도록 하여 여러 연산자에 대해 동일한 연산을 수행할 수 있도록 하거나, 여러 개의 레지스터를 하나의 데이터로 사용할 수 있게 한다. RFEMLO는 긴 워드 피연산자에 대한 명령어 집합의 추가와 이를 지원하는 기능 유닛을 추가함으로서 범용 프로세서에 적용할 수 있다. 제안된 하드웨어 구조와 명령어 집합의 효율성을 평가하기 위해 Simplescalar/ARM 3.0을 사용하여 대칭 및 비대칭의 다양한 암호화 알고리즘에 적용하였다. 실험 결과, RFEMLO을 적용한 순차적 파이프라인을 가진 프로세서에서 대칭 암호화 알고리즘의 경우 $40%{\sim}160%$의 성능 향상을, 비대칭 암호화 알고리즘의 경우 $150%{\sim}230%$의 높은 성능향상을 얻을 수 있었다. RFEMLO의 적용을 통한 성능 항상은 이슈 폭의 증가를 이용한 슈퍼스칼라 구현에 따른 성능 향상과 비교할 때, 훨씬 적은 하드웨어 비용으로 효과적인 성능 향상을 얻을 수 있음을 확인하였으며 슈퍼스칼라 프로세서에 RFEMLO를 적용하는 경우에도 대칭 암호화 알고리즘에서는 최대 83.6%, 비대칭 암호화 알고리즘에서는 최대 138.6%의 추가적인 성능향상을 얻을 수 있었다.

ARM용 내장형 소프트웨어의 정적인 수행시간 분석 도구 (Static Timing Analysis Tool for ARM-based Embedded Software)

  • 황요섭;안성용;심재홍;이정아
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제11권1호
    • /
    • pp.15-25
    • /
    • 2005
  • 내장형 시스템에서 응용 프로그램을 구동시킬 때는 일련의 태스크들의 집합을 수행하여야 한다. 이러한 태스크들은 특정 하드웨어로 구현 될 수도 있고, 특정 프로세서에서 구동되는 소프트웨어로 구현될 수도 있다. 내장형 시스템에서 응용 프로그램을 구동시키기 위하여 하드웨어/소프트웨어의 자원 선택 및 작업 분할이 필요하게 되고 이때 하드웨어 및 소프트웨어의 성능 예측이 이용된다. 하드웨어 성능 예측과 달리 소프트웨어 성능 예측은 구동 환경과 밀접한 관계가 있으며, 하드웨어 소프트웨어 통합 설계를 위하여 최적 및 최악의 수행 시간 경계를 예측하는 것은 중요한 문제이다. 수행 시간 경계의 엄격한 예측은 저 비용의 프로세서를 사용할 수 있게 하며, 시스템 비용을 낮추는데 도움을 준다. 본 논문에서는 ARM용 내장형 시스템을 고려하여, loop문의 반복 횟수 경계 값과 프로그램의 추가적인 경로 호출 정보를 이용하여, 수행 시간의 경계를 최대한 실제 값에 접근하도록 예측하는 도구를 개발하였다. 개발된 도구는 현재 i960과 m68k 아키텍처를 지원하는 "Cinderella"라는 시간 분석 도구를 기본 도구로 활용하고 있다. ARM 프로세서를 지원하기 위하여 제어흐름과 디버깅 정보를 추출할 수 있는 ARM ELF 목적 파일 모듈을 추가하고, ARM 명령어 집합을 처리할 수 있는 모듈을 기존 도구에 추가하였다. 여러 가지 벤치마크 프로그램을 대상으로 실시한 실험 결과, 임의의 입력 데이타를 이용하고 수행 횟수를 고려한 ARMulator의 수행 시간이 구현된 도구에서의 정적인 수행 시간 예측 경계 값으로 들어오는 것을 확인할 수 있었다.

컴퓨터의 개념 교육을 위한 가상 머신의 설계 및 구현 (Design and Implementation of Virtual Machines as an Aid in Teaching Computer Concepts)

  • 나정호;조강원;강수연;정우근;이재진
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(A)
    • /
    • pp.131-133
    • /
    • 2012
  • 본 연구에서는 컴퓨터의 개념을 학부 신입생 교육과정에서 쉽게 이해할 수 있도록 ARM 명령어 집합의 부분 집합을 정의하고, 어셈블리 언어 코드를 입력받아 실행하는 가상 머신을 설계하고 구현하였다. 기존 교육 과정의 컴퓨터 구조 과목에서 다루는 어셈블리 언어는 실제의 머신을 기반으로 하기 때문에 개념을 학습하는데 있어서 불필요하게 복잡하다는 단점이 있다. 하지만 본 연구에서는 교육에 필요한 내용만을 포함한 가상 머신을 새롭게 정의함으로써 좀 더 우아한 방법으로 컴퓨터의 개념을 이해할 수 있도록 하였다. 특히 어셈블리 언어 학습을 통해서 컴퓨터 구조와 고급 언어 간의 상호작용을 이해하는데 도움이 될 수 있다. 제안한 가상 머신은 자바로 구현하였으며, 스캐너 및 파서를 구현하기 위해서 오픈소스 컴파일러-컴파일러 시스템을 사용하였다. 해당 가상 머신은 공과대학 학부 신입생을 위한 실습 프로그램으로 사용되었으며 컴퓨터 개념의 이해를 돕는데 유의미한 기여를 하였다.

주차 보조 시스템을 위한 ECU 설계 (Design of Electronic Control Unit for Parking Assist System)

  • 최진혁;이성수
    • 전기전자학회논문지
    • /
    • 제24권4호
    • /
    • pp.1172-1175
    • /
    • 2020
  • 차량에 사용되는 ECU에는 CPU 코어, 차량통신 콘트롤러, 메모리 인터페이스, 센서 인터페이스, I/O 인터페이스 등이 집적되어 있다. 현재 사용되는 차량용 ECU는 대부분 자사만의 독점적 프로세서 아키텍쳐로 개발하였으나, 최근 자율주행자동차 및 커넥티드카에서 소프트웨어 범용성을 위해 ARM, RISC-V와 같은 표준 프로세서를 기반으로 한 차량용 ECU의 수요가 급증하고 있다. 본 논문에서는 명령어 집합이 무료로 공개된 RISC-V를 기반으로 하여 주차 보조 시스템에 사용하기 위한 차량용 ECU를 설계하였다. 개발된 ECU는 32b RISC-V CPU 코어, CAN, LIN 등의 IVN 콘트롤러, ROM, SRAM 등의 메모리 인터페이스, SPI, UART, I2C 등의 I/O 인터페이스를 내장하였다. 65nm CMOS 공정에서 구현한 결과는 동작 주파수 50MHz, 면적 0.37㎟, 게이트 수 55,310개였다.